:root{--bg:#f6f8fb;--panel:#fff;--panel2:#f9fbfd;--line:#e6ebf1;--text:#142033;--muted:#718096;--soft:#eef2f7;--brand:#1e5eff;--brand2:#0d47d9;--green:#15a66a;--greenSoft:#eaf8f2;--red:#e5484d;--redSoft:#fff0f0;--amber:#c77c11;--amberSoft:#fff6e6;--nav:#0f1724;--navText:#aeb9c8;--shadow:0 16px 40px rgba(28,45,75,.08);--radius:18px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:258px;background:linear-gradient(180deg,#111a28,#0c1420);padding:22px 16px;display:flex;flex-direction:column;z-index:30;box-shadow:8px 0 30px rgba(10,20,35,.08)}.brandmark{display:flex;align-items:center;gap:12px;padding:6px 8px 22px;color:#fff}.logo{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#2d6bff,#6a8dff);display:grid;place-items:center;font-size:13px;font-weight:800;letter-spacing:.06em;box-shadow:0 8px 24px rgba(45,107,255,.35)}.brandmark strong{display:block;font-size:15px}.brandmark span{display:block;color:#7f90a7;font-size:11px;margin-top:2px}.nav{display:flex;flex-direction:column;gap:5px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;color:var(--navText);text-decoration:none;font-size:13.5px;font-weight:650;transition:.18s ease}.nav a:hover{background:rgba(255,255,255,.05);color:#fff}.nav a.active{background:linear-gradient(90deg,rgba(45,107,255,.22),rgba(45,107,255,.08));color:#fff;box-shadow:inset 3px 0 0 #4b7cff}.i{width:18px;height:18px;flex:0 0 auto}.sidefoot{margin-top:auto}.systemchip{display:flex;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);border-radius:13px;padding:11px 12px;color:#fff}.systemchip b{display:block;font-size:12px}.systemchip small{display:block;color:#77889d;font-size:10px;margin-top:2px}.statusdot{width:8px;height:8px;border-radius:50%;background:#8996a7;box-shadow:0 0 0 4px rgba(137,150,167,.12)}.statusdot.online{background:#2ac982;box-shadow:0 0 0 4px rgba(42,201,130,.12)}.logoutbtn{width:100%;margin-top:10px;border:0;background:transparent;color:#7f90a7;padding:10px 12px;display:flex;align-items:center;gap:10px;border-radius:10px;cursor:pointer}.logoutbtn:hover{background:rgba(255,255,255,.04);color:#fff}.main{margin-left:258px;min-height:100vh}.topbar{height:68px;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:20}.breadcrumbs{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.breadcrumbs b{color:#c1c9d4}.breadcrumbs strong{color:var(--text)}.topactions{display:flex;align-items:center;gap:9px}.avatar{width:34px;height:34px;border-radius:11px;background:#eef3ff;color:#315fd8;display:grid;place-items:center;font-weight:800;font-size:13px;border:1px solid #dde6fb}.mobileMenu{display:none;border:0;background:transparent}.content{padding:26px 28px 50px;max-width:1600px;margin:auto}.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}.pagehead h1{margin:0;font-size:28px;letter-spacing:-.03em}.pagehead p{margin:6px 0 0;color:var(--muted);font-size:13.5px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:17px 18px;box-shadow:0 8px 28px rgba(28,45,75,.05)}.metric .label{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.metric strong{display:block;font-size:27px;line-height:1;margin-top:9px;letter-spacing:-.03em}.metric .sub{font-size:11px;color:#96a2b2;margin-top:6px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:17px}.panel{padding:20px;margin-bottom:17px}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.panelhead h2{margin:0;font-size:16px}.sectiontitle{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}.sectiontitle h2{margin:0;font-size:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 12px;border-radius:11px;font-size:12.5px;font-weight:700;text-decoration:none;cursor:pointer;transition:.15s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(22,38,67,.08)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.good{background:var(--green);border-color:var(--green);color:#fff}.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.soft{background:var(--panel2)}.btn.small{padding:7px 9px;font-size:11.5px}.gatecard{position:relative;overflow:hidden}.gatecard:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:#dce3ed}.gatecard.active:before{background:linear-gradient(90deg,#2ac982,#64dba4)}.gatehead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.gatehead h3{margin:0;font-size:15px}.badge{border-radius:999px;padding:5px 8px;background:#f3f6fa;border:1px solid #e4eaf1;color:#788698;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.state{display:inline-flex;align-items:center;gap:7px;margin-top:6px;font-size:11px;color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;background:#acb6c4}.dot.on{background:#27bd7a}.gateinfo{display:grid;gap:7px;margin:15px 0;color:var(--muted);font-size:11.5px}.gateinfo span{display:flex;align-items:center;gap:8px}.gateactions{display:flex;gap:7px;flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:11px}.mono,code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}code{background:#f1f4f8;color:#3a516e;padding:2px 6px;border-radius:6px}.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 28px rgba(28,45,75,.05)}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:11px 13px;border-bottom:1px solid #edf1f5;font-size:12px;vertical-align:middle}th{background:#fafbfc;color:#8793a3;font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}td strong{font-size:12.5px}.ok{color:var(--green);font-weight:700}.bad{color:var(--red);font-weight:700}.warn{color:var(--amber);font-weight:700}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:13px;margin-bottom:15px;font-size:12.5px}.alert.success{background:var(--greenSoft);color:#176846;border:1px solid #cfeede}.alert.error{background:var(--redSoft);color:#9c2f33;border:1px solid #ffd4d5}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{margin-bottom:11px}.field.full{grid-column:1/-1}.field label{display:block;margin-bottom:6px;color:#6f7d90;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea{width:100%;border:1px solid #dde4ec;background:#fff;color:var(--text);border-radius:11px;padding:10px 11px;font:inherit;font-size:12.5px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9bb6ff;box-shadow:0 0 0 3px rgba(30,94,255,.08)}.field textarea{min-height:86px;resize:vertical}.checks{display:flex;flex-wrap:wrap;gap:8px}.check{display:inline-flex;align-items:center;gap:7px;background:#f7f9fc;border:1px solid #e4eaf1;padding:7px 9px;border-radius:9px;font-size:11px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.token{background:#f8fafc;border:1px dashed #cfd8e5;padding:12px;border-radius:11px;font-family:ui-monospace,monospace;font-size:11px;word-break:break-all;color:#435772}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs a{padding:9px 10px;margin-bottom:-1px;text-decoration:none;color:var(--muted);font-size:11.5px;font-weight:700;border-bottom:2px solid transparent}.tabs a.active{color:var(--brand);border-color:var(--brand)}.weekday{display:grid;grid-template-columns:130px 1fr 1fr;gap:9px;align-items:center;margin:7px 0}.empty{padding:34px;text-align:center;color:var(--muted)}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f1724,#18263a)}.loginbox{width:min(410px,92vw);background:#fff;border-radius:22px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.loginbrand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.loginbrand .logo{color:#fff}.loginbox h1{font-size:24px;margin:0}.loginbox p{color:var(--muted);font-size:12.5px;margin:5px 0 20px}.searchbox{position:relative}.searchbox .i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#8f9baa}.searchbox input{padding-left:35px}.kpirow{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted);font-size:10.5px;font-weight:700}.chip b{color:var(--text)}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.mobileMenu{display:inline-flex}.breadcrumbs{display:none}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}}@media(max-width:620px){.content{padding:18px 12px 36px}.topbar{padding:0 12px}.metrics{grid-template-columns:1fr 1fr}.pagehead h1{font-size:23px}.grid{grid-template-columns:1fr}.weekday{grid-template-columns:1fr}.gateactions .btn{flex:1}.topactions .btn span{display:none}}
