/* =========================================================
   ZAS GATE PASS MANAGEMENT SYSTEM
   Complete Application Stylesheet — v3.2
   Base UI + Movement UI + Easy Mode
   Replace the complete contents of /assets/css/style.css
   ========================================================= */
:root{--primary:#246bfd;--primary-dark:#1649ae;--secondary:#7f56d9;--success:#16a36a;--warning:#e89a18;--danger:#dc3c4d;--navy:#0b1530;--navy-light:#172a59;--bg:#f3f6fb;--card:#fff;--text:#172033;--muted:#6b778c;--line:#dde4ef;--shadow:0 14px 35px rgba(20,35,70,.08),0 2px 8px rgba(20,35,70,.04);--sidebar-width:260px;--topbar-height:72px;--easy-green:#148455;--easy-blue:#1769e0;--easy-orange:#e87916;--easy-red:#d83d4c;--easy-line:#dce5f1;--easy-muted:#66758d}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{min-height:100vh;margin:0;background:radial-gradient(circle at 100% 0,rgba(36,107,253,.07),transparent 30%),var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}a{color:var(--primary)}img{max-width:100%}.hidden{display:none!important}.text-center{text-align:center}.text-muted{color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.appbar{position:fixed;z-index:900;top:0;right:0;left:0;height:var(--topbar-height);display:flex;align-items:center;gap:14px;padding:0 22px;color:#fff;background:radial-gradient(circle at 85% 15%,rgba(93,125,255,.32),transparent 25%),linear-gradient(135deg,#091630,#17356f);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 8px 30px rgba(10,23,50,.2)}.appbar strong{display:block;font-size:16px;letter-spacing:-.2px}.appbar small{display:block;margin-top:2px;color:#c7d4ef;font-size:11px}.appbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.app-icon{display:grid;width:42px;height:42px;place-items:center;padding:0;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:13px;cursor:pointer;text-decoration:none;transition:.2s ease}.app-icon:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}.install-btn{padding:9px 14px;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:12px;cursor:pointer;font-weight:700}
.sidebar{position:fixed;z-index:1000;top:0;bottom:0;left:0;width:var(--sidebar-width);padding:20px 14px;overflow-y:auto;color:#fff;background:radial-gradient(circle at 10% 0,rgba(67,111,255,.23),transparent 30%),linear-gradient(180deg,#09142c,#111f42);box-shadow:16px 0 50px rgba(10,20,45,.22);transform:translateX(-105%);transition:transform .25s ease}.sidebar.open{transform:translateX(0)}.brand{display:flex;align-items:center;gap:12px;padding:8px 8px 22px;margin-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.brand>span{display:grid;width:45px;height:45px;place-items:center;color:#fff;background:linear-gradient(135deg,#246bfd,#7f56d9);border-radius:14px;box-shadow:0 10px 25px rgba(36,107,253,.34);font-size:22px;font-weight:900}.brand b{display:block;font-size:14px;letter-spacing:.4px}.brand small{display:block;margin-top:2px;color:#aebedf;font-size:10px}.sidebar>a{display:flex;align-items:center;min-height:45px;margin:4px 0;padding:11px 13px;color:#cfdbf3;border-radius:12px;text-decoration:none;font-weight:650;transition:.18s ease}.sidebar>a:hover,.sidebar>a.active{color:#fff;background:rgba(255,255,255,.1);transform:translateX(3px)}.sidebar-overlay{position:fixed;z-index:950;inset:0;display:none;background:rgba(5,12,28,.56);backdrop-filter:blur(3px)}.sidebar-overlay.open{display:block}
.main-content{width:min(1380px,calc(100% - 32px));min-height:100vh;margin:0 auto;padding:calc(var(--topbar-height) + 26px) 0 55px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px}.page-title{color:var(--text);font-size:26px;font-weight:850;letter-spacing:-.8px}.meta{color:var(--muted);font-size:12px}.badge{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 10px;color:#385078;background:#edf3ff;border:1px solid #d9e5ff;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.card,.gp-card{margin-bottom:16px;padding:20px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.card-title{margin-bottom:14px;font-size:17px;font-weight:850}.gp-card{position:relative;overflow:hidden}.gp-card:before{position:absolute;top:0;right:0;left:0;height:4px;content:"";background:linear-gradient(90deg,#246bfd,#7f56d9)}.gp-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.gp-number{color:#173469;font-size:18px;font-weight:900;letter-spacing:-.4px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.stat-card{position:relative;min-height:128px;overflow:hidden;padding:20px;color:#fff;border-radius:20px;box-shadow:0 18px 38px rgba(20,35,70,.13)}.stat-card:after{position:absolute;top:-45px;right:-38px;width:125px;height:125px;content:"";background:rgba(255,255,255,.12);border-radius:50%}.stat-blue{background:linear-gradient(145deg,#1767e9,#3191ed)}.stat-green{background:linear-gradient(145deg,#098f65,#1ab883)}.stat-yellow{background:linear-gradient(145deg,#d88214,#f1ab27)}.stat-red{background:linear-gradient(145deg,#c93449,#ef5a68)}.stat-val{position:relative;z-index:1;margin-bottom:8px;font-size:35px;font-weight:900;line-height:1}.stat-lbl{position:relative;z-index:1;color:rgba(255,255,255,.9);font-size:12px;font-weight:750}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.quick-item{min-height:65px;display:flex;align-items:center;padding:16px 18px;color:#294570;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);text-decoration:none;font-weight:800;transition:.2s ease}.quick-item:hover{color:var(--primary);border-color:#b9cdfd;transform:translateY(-2px)}
.btn{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;padding:9px 15px;border:0;border-radius:12px;cursor:pointer;text-decoration:none;font-size:13px;font-weight:800;transition:transform .18s ease,box-shadow .18s ease}.btn:hover{transform:translateY(-1px)}.btn-blue{color:#fff;background:linear-gradient(135deg,#246bfd,#1758d2);box-shadow:0 8px 20px rgba(36,107,253,.22)}.btn-green{color:#fff;background:linear-gradient(135deg,#10a26c,#0b8659)}.btn-amber{color:#fff;background:linear-gradient(135deg,#e89a18,#c8790e)}.btn-red{color:#fff;background:linear-gradient(135deg,#dc3c4d,#bb2638)}.btn-gray{color:#3f506a;background:#edf1f7;border:1px solid #dce3ee}.btn:disabled{opacity:.65;cursor:wait}
.field{margin-bottom:15px}.field label,label{display:block;margin-bottom:7px;color:#3f4d62;font-size:12px;font-weight:800}input[type=text],input[type=number],input[type=password],input[type=email],input[type=date],input[type=time],select,textarea,.inp,.sel,.txa{width:100%;min-height:45px;padding:10px 12px;color:var(--text);background:#fff;border:1px solid #d4ddea;border-radius:12px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}textarea,.txa{min-height:95px;resize:vertical}input:focus,select:focus,textarea:focus,.inp:focus,.sel:focus,.txa:focus{border-color:#739cff;box-shadow:0 0 0 4px rgba(36,107,253,.1)}.checkbox-row{display:flex;align-items:center;gap:9px;min-height:40px;padding:9px 11px;margin:7px 0;background:#f8faff;border:1px solid #e1e7f0;border-radius:11px;cursor:pointer}.checkbox-row input{width:17px;height:17px;margin:0}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}
.alert{margin-bottom:16px;padding:13px 15px;border-radius:13px;font-size:13px;font-weight:700}.alert-success{color:#087348;background:#e8f8f0;border:1px solid #bdebd5}.alert-error{color:#a82131;background:#fff0f2;border:1px solid #f4c4cb}.alert-warning{color:#8b5800;background:#fff7df;border:1px solid #f4dfaa}
.table-wrap{width:100%;overflow-x:auto;border-radius:16px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid #e8edf4;vertical-align:middle}th{background:#f4f7fb;color:#43516a;font-size:12px;font-weight:850}tr:last-child td{border-bottom:0}tr:hover td{background:#fbfcff}
.tabs{display:flex;gap:6px;padding:5px;margin-bottom:16px;overflow-x:auto;background:#e9eef7;border-radius:14px}.tab{flex:0 0 auto;padding:10px 14px;color:#65728a;border-radius:10px;text-decoration:none;font-size:12px;font-weight:800}.tab.active{color:#1d4db1;background:#fff;box-shadow:0 4px 12px rgba(20,35,70,.08)}
.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}.thumb-grid img{width:100%;height:145px;object-fit:cover;background:#edf1f7;border:1px solid var(--line);border-radius:14px}.photo-field{margin-top:12px;padding:14px;background:#f8faff;border:1px solid var(--line);border-radius:16px}.photo-field img{display:block;max-width:180px;margin-top:12px;border-radius:13px}.photo-status{display:block;margin-top:8px;color:var(--muted);font-size:11px}.voice-recorder{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8faff}.voice-recorder audio{width:100%;margin-top:10px}.voice-status{display:block;margin-top:8px;color:var(--muted);font-size:12px}.media-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.verification-stage{margin:12px 0;padding:10px 12px;border-radius:12px;background:#eef4ff;color:#173469;font-weight:800}.gp-card form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.issuer-hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px;margin-bottom:18px;border-radius:26px;color:#fff;background:radial-gradient(circle at 85% 20%,#587bff55,transparent 28%),linear-gradient(135deg,#08142e,#17356f);box-shadow:0 22px 60px rgba(8,20,46,.25)}.issuer-hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-70px;bottom:-140px;background:#fff1}.issuer-hero h1{margin:4px 0 6px;font-size:30px;letter-spacing:-1px}.issuer-hero p{margin:0;color:#cdd9f5}.hero-kicker,.movement-kicker{font-size:10px;font-weight:900;letter-spacing:1.5px}.hero-date{position:relative;z-index:1;text-align:right;font-size:18px;font-weight:900}.hero-date small{display:block;margin-top:5px;font-size:11px;color:#bfd0f4}.movement-launch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.movement-launch{position:relative;isolation:isolate;overflow:hidden;min-height:245px;padding:22px;border-radius:26px;text-decoration:none;color:#fff;display:flex;flex-direction:column;box-shadow:0 20px 44px rgba(20,35,70,.17),inset 0 1px 0 #ffffff55;transform:translateY(0);transition:transform .22s ease,box-shadow .22s ease}.movement-launch:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(145deg,#ffffff20,transparent 45%)}.movement-launch:after{content:"";position:absolute;z-index:-1;width:180px;height:180px;border-radius:50%;right:-70px;top:-75px;background:#fff2;filter:blur(2px)}.movement-launch:hover{transform:translateY(-7px);box-shadow:0 28px 60px rgba(20,35,70,.26),inset 0 1px 0 #ffffff66}.movement-launch:active{transform:translateY(-1px) scale(.99)}.movement-launch.inward{background:linear-gradient(145deg,#0468dc,#02a7bf)}.movement-launch.outward{background:linear-gradient(145deg,#e9552d,#f39b18)}.movement-launch.transfer{background:linear-gradient(145deg,#5c3bdc,#a23fd0)}.movement-orb{display:grid;place-items:center;width:55px;height:55px;border-radius:18px;margin-bottom:28px;background:#ffffff22;border:1px solid #ffffff40;box-shadow:inset 0 1px 0 #ffffff55,0 10px 25px #0015;font-size:30px;font-weight:300}.movement-launch strong{font-size:23px;margin:7px 0 8px;letter-spacing:-.5px}.movement-launch small{line-height:1.55;color:#fffddd;min-height:60px}.movement-cta{margin-top:auto;padding-top:18px;font-size:13px;font-weight:850}.movement-cta b{float:right;font-size:20px}.dashboard-actions .movement-launch{min-height:230px}.compact-stats{margin-top:4px}.back-link{display:inline-block;margin-bottom:8px;color:#526078;text-decoration:none;font-size:13px;font-weight:800}.route-card{overflow:hidden}.transfer-route-grid{display:grid;grid-template-columns:1fr 54px 1fr;align-items:center;gap:12px}.route-panel{padding:16px;border:1px solid var(--line);border-radius:18px}.route-panel.source{background:linear-gradient(145deg,#f5f8ff,#eef4ff)}.route-panel.destination{background:linear-gradient(145deg,#f7f3ff,#f1eaff)}.route-label{display:inline-flex;padding:5px 9px;border-radius:99px;background:#172a59;color:#fff;font-size:10px;font-weight:900;letter-spacing:1px;margin-bottom:12px}.route-arrow{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#246bfd,#7f56d9);color:#fff;font-size:24px;box-shadow:0 10px 24px #4058aa44}.route-end{min-height:174px;padding:20px;border-radius:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.route-end.outside{background:linear-gradient(145deg,#f4f7fb,#e9eef7);border:1px dashed #aebbd0}.route-end span{font-size:10px;letter-spacing:1px;font-weight:900;color:#65728a}.route-end strong{font-size:21px;margin:8px}.route-end small{color:#79859a}.internal-info{margin-top:14px;padding:12px 14px;border-radius:13px;background:#f3efff;color:#5c3bb2;font-size:13px;font-weight:750}.history-section{margin-top:30px;padding-top:18px;border-top:1px solid var(--line)}
.easy-title{text-align:center;margin:8px 0 20px}.easy-title h1{margin:0 0 6px;font-size:30px;letter-spacing:-1px}.easy-title p{margin:0;color:var(--muted,#66758d);font-size:15px}.easy-card{position:relative;padding-top:28px}.easy-step{position:absolute;top:-13px;left:18px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1769e0;color:#fff;font-weight:900;box-shadow:0 8px 20px #1769e044}.big-control{min-height:58px!important;font-size:18px!important;border-radius:16px!important}.full-btn{width:100%}.submit-easy{position:sticky;bottom:10px;z-index:20;width:100%;min-height:66px;font-size:19px;border-radius:18px;box-shadow:0 16px 35px #14845555}.easy-item{padding:16px;margin:0 0 14px;border:2px solid #dce5f1;border-radius:20px;background:#fff;transition:.2s}.easy-item.editing{border-color:#1769e0;box-shadow:0 0 0 5px #1769e015}.easy-item.saved{border-color:#34a66d;background:#eefaf4}.easy-item.saved .category-grid,.easy-item.saved .field,.easy-item.saved>.inp,.easy-item.saved .item-actions .btn-green{display:none}.easy-item-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.easy-item-head strong{font-size:20px}.item-state{padding:6px 10px;border-radius:99px;background:#eaf1ff;color:#1769e0;font-size:12px;font-weight:850}.easy-item.saved .item-state{background:#d8f4e5;color:#148455}.category-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}.category-btn,.unit-btn{min-height:82px;padding:8px 5px;border:1px solid #d9e2ef;border-radius:15px;background:#f8faff;color:#263750;cursor:pointer}.category-btn span,.unit-btn span{display:block;font-size:28px}.category-btn b,.unit-btn b{display:block;margin-top:3px;font-size:11px}.category-btn.selected,.unit-btn.selected{border:2px solid #1769e0;background:#eaf1ff;color:#114ba7}.unit-button-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quantity-box{height:70px!important;text-align:center;font-size:30px!important;font-weight:900}.quick-qty{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.quick-qty button{min-height:48px;border:0;border-radius:13px;background:#eaf1ff;color:#174da9;font-size:17px;font-weight:900;cursor:pointer}.item-actions{display:grid;grid-template-columns:2fr 1fr;gap:8px;margin-top:12px}.big-photo .btn{width:100%;min-height:58px}.gate-pending-count{width:max-content;margin:0 auto 18px;padding:8px 15px;border-radius:99px;background:#fff2d9;color:#a45c00;font-weight:900}.easy-gp-card{padding:18px}.internal-route-banner{display:grid;grid-template-columns:1fr 45px 1fr;align-items:center;text-align:center;padding:14px;margin-bottom:12px;border-radius:16px;background:linear-gradient(135deg,#eaf1ff,#f3eaff);font-size:16px}.internal-route-banner span{font-size:28px;color:#7048d4}.simple-route{padding:10px 12px;margin-bottom:12px;border-radius:12px;background:#f5f7fb;color:#536078;font-weight:700}.gate-item-list{display:grid;gap:9px}.gate-item{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #dce5f1;border-radius:15px;background:#fff}.gate-item-no{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:#172a59;color:#fff;font-weight:900}.gate-item div{display:flex;flex:1;justify-content:space-between;gap:10px}.gate-item strong{color:#1769e0;font-size:17px}.source-photo-title{margin-top:15px;font-weight:900;color:#36465f}.quantity-check-big{display:block;margin:16px 0;cursor:pointer}.quantity-check-big input{position:absolute;opacity:0}.quantity-check-big span{display:flex;justify-content:center;align-items:center;min-height:72px;border:3px solid #b8c5d8;border-radius:18px;background:#f6f8fb;font-size:21px;font-weight:900}.quantity-check-big input:checked+span{border-color:#148455;background:#dcf7e9;color:#0c7046;box-shadow:0 0 0 5px #14845518}.gate-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.gate-action{display:flex;align-items:center;justify-content:center;gap:14px;min-height:74px;border:0;border-radius:18px;color:#fff;font-size:32px;font-weight:900;cursor:pointer}.gate-action span{font-size:20px}.gate-action.approve{background:#148455}.gate-action.hold{background:#e29a16}.gate-action.reject{background:#d83d4c}.empty-state{text-align:center;padding:35px;font-size:34px}.empty-state h3{font-size:20px}.mapping-row{padding:16px 0;border-bottom:1px solid #dce5f1}.mapping-title{display:flex;gap:9px;align-items:center;margin-bottom:10px;font-size:18px}.unit-check-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-bottom:12px}.unit-check input{display:none}.unit-check span{display:block;padding:10px 6px;text-align:center;border:1px solid #dce5f1;border-radius:12px;background:#f8faff;font-weight:800}.unit-check input:checked+span{border-color:#1769e0;background:#eaf1ff;color:#174da9}.master-line{display:grid;grid-template-columns:32px 1fr auto auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #eef1f5}
@media(min-width:1100px){.sidebar{transform:translateX(0)}.sidebar-overlay{display:none!important}.appbar{left:var(--sidebar-width)}.main-content{width:auto;margin-left:var(--sidebar-width);padding-right:28px;padding-left:28px}.appbar>.app-icon:first-child{display:none}}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:1fr}.movement-launch-grid{grid-template-columns:1fr}.transfer-route-grid{grid-template-columns:1fr}.route-arrow{margin:auto;transform:rotate(90deg)}}
@media(max-width:760px){:root{--topbar-height:64px}.appbar{padding:0 12px}.main-content{width:calc(100% - 20px);padding-top:calc(var(--topbar-height) + 16px)}.page-header{align-items:flex-start;flex-direction:column}.page-title{font-size:22px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{min-height:105px;padding:16px;border-radius:16px}.stat-val{font-size:28px}.card,.gp-card{padding:16px;border-radius:16px}.gp-top{align-items:flex-start}.action-grid{grid-template-columns:1fr}.issuer-hero{padding:20px;border-radius:22px}.issuer-hero h1{font-size:25px}.hero-date{display:none}.movement-launch-grid{grid-template-columns:1fr;gap:12px}.movement-launch{min-height:160px;padding:19px;border-radius:22px}.movement-orb{margin-bottom:12px}.movement-launch small{min-height:auto}.transfer-route-grid{grid-template-columns:1fr}.route-arrow{transform:rotate(90deg);margin:auto}.movement-form .card{border-radius:18px}.thumb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.easy-title h1{font-size:26px}.category-grid{grid-template-columns:repeat(3,1fr)}.unit-button-grid{grid-template-columns:repeat(3,1fr)}.unit-check-grid{grid-template-columns:repeat(3,1fr)}.easy-card{border-radius:20px}.gate-item div{flex-direction:column}.gate-item strong{font-size:19px}.two-col{grid-template-columns:1fr!important}}
@media(max-width:440px){.stats-grid{grid-template-columns:1fr 1fr}.stat-card{min-height:98px;padding:14px}.stat-val{font-size:25px}.appbar strong{max-width:185px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.install-btn{display:none!important}.thumb-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(2,1fr)}.unit-button-grid{grid-template-columns:repeat(2,1fr)}.quick-qty{grid-template-columns:repeat(2,1fr)}}

/* =========================================================
   ZAS LOGIN PAGE
   ========================================================= */

.login-page {
    min-height: 100vh;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background:
        radial-gradient(
            circle at 15% 10%,
            rgba(64, 113, 255, 0.24),
            transparent 32%
        ),
        radial-gradient(
            circle at 90% 85%,
            rgba(127, 86, 217, 0.22),
            transparent 35%
        ),
        linear-gradient(135deg, #07142d, #102b5d 55%, #142a54);
    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;
}

.login-shell {
    width: 100%;
    max-width: 440px;
}

.login-card {
    position: relative;
    overflow: hidden;
    padding: 32px;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 28px;
    box-shadow:
        0 30px 80px rgba(0, 10, 35, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.login-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 5px;
    content: "";
    background: linear-gradient(90deg, #246bfd, #7f56d9);
}

.login-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-bottom: 22px;
    margin-bottom: 24px;
    border-bottom: 1px solid #e4e9f1;
}

.login-logo {
    display: grid;
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    place-items: center;
    color: #ffffff;
    background: linear-gradient(135deg, #246bfd, #7f56d9);
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(36, 107, 253, 0.3);
    font-size: 26px;
    font-weight: 900;
}

.login-brand h1 {
    margin: 0;
    color: #14203a;
    font-size: 21px;
    font-weight: 900;
    letter-spacing: -0.5px;
}

.login-brand p {
    margin: 3px 0 0;
    color: #748198;
    font-size: 12px;
    font-weight: 650;
}

.login-heading {
    margin-bottom: 22px;
}

.login-heading h2 {
    margin: 0 0 5px;
    color: #18233a;
    font-size: 25px;
    font-weight: 900;
    letter-spacing: -0.6px;
}

.login-heading p {
    margin: 0;
    color: #758197;
    font-size: 13px;
}

.login-form {
    margin: 0;
}

.login-field {
    margin-bottom: 16px;
}

.login-field label {
    display: block;
    margin-bottom: 7px;
    color: #3c4a63;
    font-size: 12px;
    font-weight: 850;
}

.login-field input {
    width: 100%;
    min-height: 54px;
    padding: 12px 15px;
    color: #172033;
    background: #f8faff;
    border: 1px solid #d5deeb;
    border-radius: 15px;
    outline: none;
    font-size: 16px;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}

.login-field input:focus {
    background: #ffffff;
    border-color: #5484f5;
    box-shadow: 0 0 0 5px rgba(36, 107, 253, 0.11);
}

.login-submit {
    display: flex;
    width: 100%;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 8px;
    padding: 12px 18px;
    color: #ffffff;
    background: linear-gradient(135deg, #246bfd, #174fbe);
    border: 0;
    border-radius: 16px;
    box-shadow: 0 14px 30px rgba(36, 107, 253, 0.28);
    cursor: pointer;
    font-size: 16px;
    font-weight: 900;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.login-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 38px rgba(36, 107, 253, 0.35);
}

.login-submit:active {
    transform: translateY(0);
}

.login-footer {
    margin-top: 22px;
    color: #8a96a9;
    font-size: 11px;
    font-weight: 650;
    text-align: center;
}

.login-card .alert {
    margin-bottom: 17px;
}

@media (max-width: 520px) {
    .login-page {
        align-items: center;
        padding: 14px;
    }

    .login-card {
        padding: 24px 20px;
        border-radius: 23px;
    }

    .login-brand {
        margin-bottom: 20px;
    }

    .login-heading h2 {
        font-size: 23px;
    }

    .login-field input {
        min-height: 56px;
        font-size: 17px;
    }

    .login-submit {
        min-height: 62px;
        font-size: 17px;
    }
}
