:root{color-scheme:dark;--navy:#071526;--panel:#0d2138;--silver:#b9c0c8;--line:#294058;--text:#f4f6f8;--muted:#9fb0c2;--accent:#d7dde3;--login-blue:#2c68e8;--login-blue-dark:#1744ad}*{box-sizing:border-box}body{margin:0;color:var(--text);font:15px/1.5 Arial,Helvetica,sans-serif;min-height:100vh}
.login-page{min-height:100vh;background:radial-gradient(1100px 650px at 50% 12%,#174a91 0%,#0b2c5b 42%,#06182f 100%);color:#eef5ff;overflow-x:hidden}
.login-page::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 42%,rgba(0,0,0,.15));}
.login-shell{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:28px 16px}
.login-card{width:min(660px,100%);padding:clamp(32px,5vw,46px);border:1px solid rgba(225,238,255,.28);border-radius:24px;background:#0b2d5bd9;background:linear-gradient(180deg,rgba(19,62,116,.9),rgba(7,31,66,.92));box-shadow:0 24px 75px rgba(0,0,0,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.login-header{text-align:center}.login-logo-frame{width:128px;height:128px;margin:0 auto 15px;display:grid;place-items:center;border:1px solid rgba(235,244,255,.28);border-radius:19px;background:rgba(255,255,255,.09);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 30px rgba(0,0,0,.15)}
.login-logo{display:block;width:104px;height:104px;object-fit:contain}.login-header h1{margin:0;color:#fff;font-size:clamp(3rem,10vw,4rem);font-weight:900;line-height:1;letter-spacing:.04em;text-shadow:0 3px 16px rgba(0,0,0,.22)}
.login-subtitle{margin:10px 0 12px;color:#e6efff;font-size:clamp(.88rem,3vw,1.05rem);font-weight:800;letter-spacing:.15em}
.platform-login-badge{display:inline-block;padding:6px 12px;border:1px solid rgba(222,236,255,.25);border-radius:999px;background:rgba(4,25,55,.38);color:#cbdcff;font-size:.72rem;font-weight:800;letter-spacing:.13em}
.login-form{margin-top:31px}.field-group{margin-top:20px}.field-group label{display:block;margin:0 0 9px;color:#fff;font-size:1rem;font-weight:800}
.login-card input{display:block;width:100%;min-height:60px;margin:0;padding:15px 18px;border:1px solid rgba(235,242,252,.98);border-radius:13px;background:#f8fbff;color:#10223b;font:700 1.05rem/1.2 Arial,Helvetica,sans-serif;box-shadow:0 7px 18px rgba(0,0,0,.14)}
.login-card input::placeholder{color:#718096;font-weight:600;opacity:1}.login-card input:hover{border-color:#fff}.login-card input:focus-visible{outline:3px solid #8cb4ff;outline-offset:2px;border-color:#4d83ee;box-shadow:0 0 0 5px rgba(105,153,244,.2)}
.password-field{display:flex;align-items:stretch;width:100%}.password-field input{flex:1 1 auto;min-width:0;border-radius:13px 0 0 13px}.login-card .password-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 112px;min-height:60px;margin:0;padding:0 14px;border:1px solid #fff;border-left:0;border-radius:0 13px 13px 0;background:#e9f0fa;color:#12345f;font:800 .88rem/1 Arial,Helvetica,sans-serif;cursor:pointer}
.password-toggle:hover{background:#fff}.password-toggle:focus-visible,.login-submit:focus-visible,.forgot-link:focus-visible{outline:3px solid #9fc0ff;outline-offset:3px}.toggle-icon{margin-right:5px;font-size:1rem}.caps-warning{margin:7px 2px 0;color:#ffe08a;font-weight:800}
.login-submit{display:block;width:100%;min-height:60px;margin-top:27px;padding:15px;border:1px solid rgba(255,255,255,.22);border-radius:13px;background:linear-gradient(180deg,#3476f3,var(--login-blue-dark));color:#fff;font:800 1.05rem/1.2 Arial,Helvetica,sans-serif;letter-spacing:.02em;box-shadow:0 12px 28px rgba(6,29,83,.4);cursor:pointer;transition:transform .15s ease,filter .15s ease}
.login-submit:hover{filter:brightness(1.1);transform:translateY(-1px)}.login-submit:active{transform:translateY(0)}
.forgot-link{display:block;width:max-content;max-width:100%;margin:20px auto 0;padding:4px;color:#e1ecff;font-weight:800;text-align:center;text-underline-offset:4px}.forgot-link:hover{color:#fff;text-decoration-thickness:2px}
.login-footer{margin-top:23px;color:#b9c9e2;font-size:.82rem;text-align:center}.login-error{margin:21px 0 0;padding:12px 14px;border:1px solid rgba(255,184,184,.5);border-left:4px solid #ff8585;border-radius:10px;background:rgba(91,9,22,.48);color:#fff;font-weight:700}
.login-page>.login-card{margin:clamp(20px,6vh,64px) auto}.login-page>.login-card>img{display:block;width:106px;height:106px;object-fit:contain;margin:0 auto 18px;padding:8px;border:1px solid rgba(235,244,255,.25);border-radius:16px;background:rgba(255,255,255,.08)}.login-page>.login-card h1{text-align:center}.login-page>.login-card form>label{display:block;margin:16px 0 7px;color:#f5f8ff;font-weight:800}.login-page>.login-card form>label input{margin-top:7px}.login-page>.login-card form>button{width:100%;min-height:54px;margin-top:20px;border:0;border-radius:12px;background:linear-gradient(180deg,var(--login-blue),var(--login-blue-dark));color:#fff;font-weight:800;cursor:pointer}
.notice-message{margin:16px 0;padding:12px;background:#eef6f1;border-left:4px solid #287346;color:#173725}.login-card>p{color:#d7e4f7}.login-card>h1{color:#fff}#reset-status{margin-top:16px;color:#d7e4f7}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 4vw;border-bottom:1px solid var(--line);background:#071526ee}.brand{display:flex;gap:18px;align-items:center}.brand img{width:112px}.brand div{border-left:1px solid #607080;padding-left:18px}.brand strong,.brand span{display:block}.brand span,.user span{color:var(--muted)}.user{display:flex;gap:20px;align-items:center}.user a,.notice a{color:var(--accent)}.dashboard{max-width:1180px;margin:auto;padding:60px 24px}.welcome>span{display:block;color:#718094;font-size:11px;font-weight:700;letter-spacing:.16em;margin-top:25px}.welcome h1{font-size:38px;margin:8px 0}.welcome p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}.cards article,.card{min-height:170px;padding:26px;background:var(--panel);border:1px solid var(--line);color:var(--text);text-decoration:none}.cards h2{font-size:19px}.cards p{color:var(--muted)}.card.active{border-top:3px solid var(--silver)}.notice{margin-top:24px;padding:18px;border:1px solid var(--line);background:#0b1d31}:root .link-button{color:var(--accent);border:0;background:none;padding:0;font:inherit;text-decoration:underline;cursor:pointer}
@media(max-width:800px){.cards{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start}.user{flex-direction:column;gap:4px}}
@media(max-width:720px){.login-shell{padding:22px 14px}.login-card{width:min(620px,100%);padding:30px 28px}}
@media(max-width:520px){.login-shell{place-items:start center;padding:14px 10px}.login-card{width:100%;padding:24px 18px;border-radius:18px}.login-logo-frame{width:108px;height:108px}.login-logo{width:88px;height:88px}.login-form{margin-top:23px}.login-card .password-toggle{flex-basis:86px;min-width:86px;padding:0 9px}.toggle-icon{display:none}.login-card input{font-size:16px}.login-subtitle{letter-spacing:.11em}.platform-login-badge{font-size:.66rem;letter-spacing:.09em}}
@media(prefers-reduced-motion:reduce){.login-submit{transition:none}}
.login-shell>.login-card>.login-logo-frame{width:128px;height:128px;margin:0 auto 15px}
.login-shell>.login-card>.login-logo-frame>.login-logo{display:block;width:104px!important;height:104px!important;max-width:104px;max-height:104px;object-fit:contain}
.login-shell>.login-card>h1{text-align:center}
.login-shell>.login-card>form>label{display:block;margin:16px 0 7px;color:#f5f8ff;font-weight:800}
.login-shell>.login-card>form>label input,.login-shell>.login-card>form>label select{margin-top:7px}
.login-shell>.login-card>form>button{width:100%;min-height:54px;margin-top:20px;border:0;border-radius:12px;background:linear-gradient(180deg,var(--login-blue),var(--login-blue-dark));color:#fff;font-weight:800;cursor:pointer}
.login-shell>.login-card>form>h2{margin:30px 0 8px;color:#fff;font-size:1.2rem}
.login-shell>.login-card>form>label{line-height:1.4}
.login-shell>.login-card>form>label select{display:block;width:100%;min-height:58px;margin-top:9px;padding:13px 46px 13px 16px;border:1px solid rgba(235,242,252,.98);border-radius:13px;background-color:#f8fbff;color:#10223b;font:700 1rem/1.25 Arial,Helvetica,sans-serif;box-shadow:0 7px 18px rgba(0,0,0,.14);cursor:pointer}
.login-shell>.login-card>form>label select:hover{border-color:#fff;background-color:#fff}
.login-shell>.login-card>form>label select:focus-visible{outline:3px solid #8cb4ff;outline-offset:2px;border-color:#4d83ee;box-shadow:0 0 0 5px rgba(105,153,244,.2)}
.login-shell>.login-card>form>label+label{margin-top:18px}
.login-shell>.login-card input.otp-code{text-align:center;font-size:1.3rem;letter-spacing:.22em}
.login-success{margin:21px 0 0;padding:12px 14px;border:1px solid rgba(131,239,190,.5);border-left:4px solid #58d79d;border-radius:10px;background:rgba(8,76,52,.48);color:#fff;font-weight:700}
.login-page>.login-card form>button.secondary{border:1px solid rgba(210,224,245,.45);background:#142d4d}
