:root{
    --navy:#071d35;
    --blue:#0c5595;
    --cyan:#0b8bc8;
    --orange:#f36c21;
    --ink:#172435
}
*{box-sizing:border-box}
body{
    margin:0;
    color:var(--ink);
    background:#eef2f5;
    font-family:Arial,Helvetica,sans-serif
}
.topbar{
    height:84px;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 max(5vw,28px);
    border-bottom:1px solid #d8e0e6
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--navy);
    line-height:1
}
.mark{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    background:var(--navy);
    color:#fff;
    font-weight:900;
    font-style:italic;
    border-radius:5px;
    border-bottom:5px solid var(--orange)
}
.brand strong{
    display:block;
    font-size:23px;
    letter-spacing:1.5px
}
.brand span{
    display:block;
    margin-top:5px;
    color:var(--blue);
    font-size:10px;
    letter-spacing:4.5px;
    font-weight:bold
}
.secure{
    color:#5c6977;
    font-size:13px;
    font-weight:bold
}
.secure i{
    display:inline-block;
    width:9px;
    height:9px;
    background:#26a468;
    border-radius:50%;
    margin-right:7px
}
.hero{
    min-height:calc(100vh - 140px);
    padding:58px max(5vw,28px);
    display:grid;
    grid-template-columns:minmax(300px,.82fr) minmax(420px,560px);
    gap:7vw;
    align-items:center;
    background:linear-gradient(
        110deg,
        rgba(6,28,51,.98) 0%,
        rgba(8,51,88,.96) 50%,
        rgba(238,242,245,.94) 50.2%
    )
}
.welcome{
    color:#fff;
    max-width:600px
}
.eyebrow{
    margin:0 0 18px;
    color:#57b8e6;
    font-size:13px;
    letter-spacing:3px;
    font-weight:800
}
h1{
    margin:0;
    font-size:clamp(46px,5.5vw,78px);
    letter-spacing:-3.5px;
    line-height:.96
}
.intro{
    max-width:520px;
    color:#c9d7e4;
    font-size:18px;
    line-height:1.6
}
.card{
    background:#fff;
    border-radius:14px;
    padding:31px;
    box-shadow:0 22px 60px rgba(2,17,32,.28)
}
.cardHead{
    display:flex;
    justify-content:space-between;
    border-bottom:1px solid #e5e9ed;
    padding-bottom:20px;
    margin-bottom:21px
}
.cardHead p{
    margin:0 0 6px;
    color:var(--orange);
    font-size:10px;
    letter-spacing:2px;
    font-weight:900
}
h2{
    margin:0;
    color:var(--navy);
    font-size:25px
}
.docIcon{
    font-size:36px;
    color:var(--blue)
}
label{
    display:block;
    margin-bottom:18px;
    color:#334152;
    font-size:12px;
    font-weight:800
}
input{
    width:100%;
    margin-top:7px;
    border:1px solid #cfd7de;
    background:#fbfcfd;
    padding:14px 13px;
    border-radius:6px;
    color:#12253a;
    font:16px Arial,sans-serif;
    outline:none
}
input:focus{
    border-color:var(--cyan);
    box-shadow:0 0 0 3px rgba(11,139,200,.12)
}
.dropzone{
    position:relative;
    padding:30px 12px;
    border:2px dashed #9fc1d8;
    border-radius:8px;
    text-align:center;
    background:#f3f9fc;
    cursor:pointer
}
.fileInput{
    position:absolute;
    inset:0;
    opacity:0;
    cursor:pointer;
    margin:0
}
.camera{
    display:block;
    width:42px;
    height:42px;
    line-height:37px;
    margin:0 auto 10px;
    border:2px solid var(--cyan);
    border-radius:50%;
    color:var(--cyan);
    font-size:28px
}
.dropzone strong,
.dropzone small{
    display:block
}
.dropzone strong{
    color:var(--blue);
    font-size:15px
}
.dropzone small{
    margin-top:6px;
    color:#71808e;
    font-weight:normal
}
button{
    width:100%;
    border:0;
    border-radius:6px;
    padding:16px 18px;
    background:var(--orange);
    color:#fff;
    font-weight:900;
    letter-spacing:1.6px;
    cursor:pointer
}
button:hover{background:#d95610}
button:disabled{opacity:.65}
.notice{
    margin:0 0 16px;
    padding:12px;
    border-radius:6px;
    font-size:13px;
    font-weight:bold
}
.success{
    color:#176a42;
    background:#e7f7ef
}
.error{
    color:#982c27;
    background:#fff0ef
}
.help{
    text-align:center;
    margin:15px 0 0;
    color:#83909b;
    font-size:11px
}
footer{
    min-height:56px;
    padding:15px max(5vw,28px);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    background:#06192c;
    color:#8ea2b4;
    font-size:11px
}
footer strong{
    color:#cbd7e1;
    letter-spacing:1px
}
@media(max-width:900px){
    .hero{
        grid-template-columns:1fr;
        background:linear-gradient(
            180deg,
            #071d35 0,
            #0a3a61 37%,
            #eef2f5 37.2%
        );
        padding-top:48px;
        gap:50px
    }
    .welcome{
        text-align:center;
        margin:auto
    }
    .card{
        max-width:560px;
        width:100%;
        margin:auto
    }
}
@media(max-width:560px){
    .topbar{
        height:72px;
        padding:0 17px
    }
    .mark{
        width:40px;
        height:40px
    }
    .brand strong{font-size:17px}
    .brand span{
        font-size:8px;
        letter-spacing:3px
    }
    .secure{display:none}
    .hero{
        padding:36px 14px 45px;
        background:linear-gradient(
            180deg,
            #071d35 0,
            #0a3a61 31%,
            #eef2f5 31.2%
        )
    }
    .intro{font-size:15px}
    .card{padding:22px 18px}
    h2{font-size:21px}
    footer{
        flex-direction:column;
        text-align:center
    }
}
