*{box-sizing:border-box}
:root{--blue:#06469f;--blue2:#0752b5;--blue3:#0b63c7;--navy:#173b70;--ink:#19365d;--muted:#607796;--pale:#eaf2ff;--pale2:#f4f8ff;--line:#d9e6f8;--white:#fff;--shadow:0 14px 36px rgba(6,70,159,.09)}
html{scroll-behavior:smooth}body{margin:0;background:#f7faff;color:var(--ink);font:14px Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden}a{color:var(--blue2)}
.top{min-height:78px;background:#fff;color:var(--ink);padding:13px max(20px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:1px solid #e7eef9;box-shadow:0 5px 20px rgba(20,65,125,.05);position:relative;z-index:2}
.brand{display:flex;align-items:center;gap:12px;color:var(--blue);text-decoration:none}.brand b{display:block;letter-spacing:.12em;font-size:17px;font-weight:850}.brand small{display:block;color:#7187a6;font-size:10px;letter-spacing:.09em;margin-top:3px}.logo{width:42px;height:42px;border-radius:14px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:850;letter-spacing:-1px;box-shadow:0 7px 18px rgba(6,70,159,.18)}
.top nav{display:flex;gap:6px;flex-wrap:wrap}.top nav a{color:#526987;text-decoration:none;padding:10px 12px;border-radius:999px;font-size:12px;font-weight:700;transition:background .2s,color .2s}.top nav a.active,.top nav a:hover{background:var(--pale);color:var(--blue)}
.wrap{max-width:1180px;margin:34px auto;padding:0 22px}.eyebrow{font-size:10px;color:var(--blue2);font-weight:850;letter-spacing:.16em;text-transform:uppercase}.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:8px 0 24px;flex-wrap:wrap}.head h1{font-size:32px;font-weight:800;letter-spacing:-.04em;margin:6px 0;color:var(--blue)}.muted{color:var(--muted);font-size:12px;line-height:1.7}
.card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px;margin-bottom:17px;box-shadow:var(--shadow);animation:rise-in .65s both}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stat{font-size:34px;font-weight:800;color:var(--blue);margin:9px 0}
.btn{display:inline-block;border:0;border-radius:999px;padding:12px 19px;background:var(--blue);color:white;text-decoration:none;font-weight:800;font-size:12px;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;box-shadow:0 6px 16px rgba(6,70,159,.12)}.btn:hover{background:var(--blue2);transform:translateY(-2px);box-shadow:0 10px 22px rgba(6,70,159,.2)}.btn:active{transform:translateY(0)}.btn.secondary{background:#eaf2ff;color:var(--blue);box-shadow:none}.btn.danger{background:#fff0ee;color:#b33d35;box-shadow:none}.btn.dark{background:var(--navy);color:white}
.field{display:flex;flex-direction:column;gap:7px;margin:14px 0}.field label{font-size:11px;color:#405d82;font-weight:800}.field input,.field select{border:1px solid #d7e4f6;border-radius:11px;padding:13px 14px;background:#fff;color:var(--ink);font:inherit;outline:none;transition:border .2s,box-shadow .2s}.field input:focus,.field select:focus{border-color:var(--blue2);box-shadow:0 0 0 4px #0752b51a}.form{max-width:560px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:690px}th{text-align:left;color:#6a82a3;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:13px;border-bottom:1px solid var(--line)}td{padding:14px 13px;border-bottom:1px solid #edf2fa;font-size:12px}.badge{padding:6px 10px;border-radius:999px;background:#e8f2ff;color:var(--blue);font-size:10px;font-weight:850}.badge.off{background:#fff0ee;color:#a34c43}.alert{padding:13px 15px;border-radius:12px;background:#edf5ff;border:1px solid #d7e8ff;color:#315b91;font-size:11px;line-height:1.7;margin:15px 0}.toast{max-width:1180px;margin:14px auto 0;padding:13px 18px;border-radius:11px;background:#e8f2ff;color:var(--blue);animation:rise-in .35s both}.toast.err{background:#fff0ee;color:#a34c43}
.login{min-height:100vh;background:radial-gradient(circle at 15% 10%,#dceaff 0,transparent 32%),linear-gradient(135deg,#f6f9ff,#eaf2ff);display:grid;grid-template-columns:1.05fr .95fr;color:var(--ink);position:relative;isolation:isolate}.login:before,.login:after{content:"";position:absolute;border:1px solid #0752b51a;border-radius:50%;z-index:-1;animation:orbit 18s linear infinite}.login:before{width:460px;height:460px;right:39%;top:-170px}.login:after{width:620px;height:620px;right:33%;top:-240px;animation-direction:reverse}
.intro{padding:6vh 7vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;min-height:100vh}.intro:after{content:"ND";position:absolute;right:2vw;bottom:-8vw;font-size:clamp(180px,30vw,390px);font-weight:900;color:#0752b508;pointer-events:none;letter-spacing:-.1em}.intro .brand{color:var(--blue)}.intro .brand small{color:#7187a6}.intro .logo{background:var(--blue)}.intro h1{font-size:clamp(36px,4.2vw,58px);line-height:1.04;letter-spacing:-.055em;font-weight:850;margin:19px 0 14px;position:relative;z-index:1;color:var(--blue);max-width:620px}.intro h1 span{color:#315f9f}.intro p{color:#607796;line-height:1.85;max-width:470px;font-size:14px;position:relative;z-index:1}.brand-art{width:min(250px,48vw);margin:25px 0 8px;border-radius:24px;overflow:hidden;background:#06469f;box-shadow:0 20px 45px rgba(6,70,159,.2);animation:float 6s ease-in-out infinite;position:relative;z-index:1}.brand-art img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}.admin-art{width:min(190px,40vw);margin:22px 0 0}.hero-kicker{margin-top:15px}.hero-points{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:16px;color:#526f96;font-size:11px;font-weight:750;position:relative;z-index:1}.hero-points span{white-space:nowrap}
.loginbox{display:grid;place-items:center;padding:32px;background:linear-gradient(155deg,#06469f,#0759b8 58%,#0b63c7);position:relative;overflow:hidden}.loginbox:before{content:"";position:absolute;width:380px;height:380px;border:1px solid #ffffff25;border-radius:50%;top:-190px;right:-150px;box-shadow:0 0 0 35px #ffffff08,0 0 0 70px #ffffff05;animation:orbit 25s linear infinite}.loginbox:after{content:"";position:absolute;width:260px;height:260px;border:1px solid #ffffff20;border-radius:50%;bottom:-140px;left:-100px;animation:orbit 22s linear infinite reverse}.loginbox .card{width:min(440px,100%);padding:34px;color:var(--ink);border-radius:22px;background:#fff;border:1px solid #ffffff80;box-shadow:0 24px 60px rgba(0,28,80,.2);position:relative;z-index:1;animation:card-in .7s cubic-bezier(.2,.8,.2,1) both}.loginbox h2{font-size:26px;font-weight:850;margin:7px 0;color:var(--blue)}.loginbox .muted{margin-bottom:22px}.loginbox .btn{width:100%;text-align:center}.loginbox .center{text-align:center}.loginbox .center a{font-size:12px}.pin{font:800 15px ui-monospace,monospace;letter-spacing:2px}.small{font-size:11px}.actions{display:flex;gap:6px;flex-wrap:wrap}h3{font-size:20px;font-weight:800;color:var(--blue);margin:0 0 15px}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1deg)}}@keyframes rise-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes card-in{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes orbit{to{transform:rotate(360deg)}}
@media(max-width:900px){.login{grid-template-columns:1fr}.intro{padding:34px 7vw 24px;min-height:auto}.intro h1{font-size:clamp(36px,7vw,48px)}.brand-art{width:170px;margin:18px 0 4px}.hero-kicker{margin-top:10px}.loginbox{padding:28px 20px 36px;min-height:570px}.login:before,.login:after{display:none}}
@media(max-width:600px){.top{padding:12px 15px}.top nav{width:100%;overflow-x:auto;flex-wrap:nowrap}.top nav a{white-space:nowrap}.wrap{margin:22px auto;padding:0 14px}.head h1{font-size:27px}.grid{grid-template-columns:1fr}.intro{padding:28px 22px 18px}.intro h1{font-size:36px}.intro p{font-size:13px}.brand-art{width:145px}.loginbox{padding:20px 14px 28px;min-height:unset}.loginbox .card{padding:25px 21px}.hero-points{gap:8px 12px;font-size:10px}.card{padding:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
