:root{--navy:#071030;--navy2:#111d4f;--ink:#1c2538;--muted:#657089;--line:#dce1ea;--bg:#f4f6fa;--card:#fff;--ok:#087f5b;--warn:#b26a00;--danger:#b42318;--info:#2463a8;--radius:14px;--shadow:0 8px 28px rgba(7,16,48,.08)}*{box-sizing:border-box}html{font-family:"Arial Narrow",Arial,sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-height:100vh}a{color:inherit}button,input,select,textarea{font:inherit}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:8px 20px;position:sticky;top:0;z-index:50}.brand img{display:block;width:260px;max-width:58vw;height:58px;object-fit:contain;object-position:left center}.topbar-user{margin-left:auto;text-align:right;line-height:1.15}.topbar-user span{display:block;font-weight:800}.topbar-user small{color:var(--muted)}.nav-toggle{display:none;margin-left:auto;border:0;background:var(--navy);color:white;border-radius:8px;padding:8px 11px;font-size:20px}.app-shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{background:var(--navy);padding:20px 12px}.sidebar nav{display:grid;gap:5px;position:sticky;top:96px}.sidebar a,.install-link{display:block;text-decoration:none;color:#dbe2ff;padding:11px 13px;border-radius:9px;border:0;background:transparent;text-align:left;width:100%;cursor:pointer}.sidebar a:hover,.sidebar a.active,.install-link:hover{background:#fff;color:var(--navy);font-weight:800}.content{padding:24px;min-width:0}.auth-content{min-height:100vh;display:grid;place-content:center;padding:20px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 20px}.page-heading h1{margin:0;color:var(--navy);font-family:"Arial Narrow",Arial,sans-serif;font-stretch:condensed;font-size:clamp(26px,4vw,40px);text-transform:uppercase;letter-spacing:.02em}.server-clock{font-weight:800;color:var(--muted);white-space:nowrap}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.card h2,.card h3{margin-top:0;color:var(--navy)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{background:#fff;border:1px solid var(--line);border-left:5px solid var(--navy);border-radius:12px;padding:18px}.metric strong{display:block;font-size:32px;color:var(--navy)}.metric span{color:var(--muted);font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field-full{grid-column:1/-1}.field label{font-weight:800;color:var(--navy)}input,select,textarea{width:100%;border:1px solid #bfc7d6;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(17,49,130,.14);border-color:var(--navy2)}input[type=checkbox]{width:auto}.actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:14px}.btn{appearance:none;border:0;border-radius:9px;padding:10px 15px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary{background:var(--navy);color:#fff}.btn-secondary{background:#e8ebf3;color:var(--navy)}.btn-success{background:var(--ok);color:#fff}.btn-warning{background:#f0a326;color:#251500}.btn-danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}th{background:var(--navy);color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:800}.badge-ok{background:#dff7ed;color:#056448}.badge-warning{background:#fff0cf;color:#8a5100}.badge-danger{background:#fee4e2;color:#9b1c1c}.badge-info{background:#e3efff;color:#1c5798}.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px;border:1px solid transparent;font-weight:700}.alert-success{background:#e2f6ee;border-color:#a8dfca;color:#086044}.alert-warning{background:#fff3d8;border-color:#f0cf80;color:#744500}.alert-danger{background:#fee9e7;border-color:#efb6b1;color:#8f1b13}.alert-info{background:#e8f2ff;border-color:#b6d4fa;color:#174d86}.login-card{width:min(440px,94vw);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.login-card .login-logo{width:100%;height:100px;object-fit:contain;margin-bottom:16px}.empty{padding:28px;text-align:center;color:var(--muted)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.tabs a{padding:9px 12px;border-radius:8px;background:#e8ebf3;text-decoration:none;font-weight:800}.tabs a.active{background:var(--navy);color:#fff}.scanner-layout{display:grid;grid-template-columns:minmax(300px,1.2fr) minmax(280px,.8fr);gap:18px}.scanner-box{background:#050b20;border-radius:16px;overflow:hidden;position:relative;aspect-ratio:4/3}.scanner-box video,.scanner-box canvas{width:100%;height:100%;object-fit:cover;display:block}.scan-frame{position:absolute;inset:15%;border:3px solid white;border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.25);pointer-events:none}.scan-state{min-height:230px;display:grid;align-content:start;gap:10px}.scan-result{border-radius:13px;padding:16px;background:#edf1f8}.scan-result.success{background:#e1f6ed}.scan-result.warning{background:#fff0cf}.scan-result.error{background:#fee7e5}.scan-result h2{margin:0 0 8px}.event-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.event-switch input{position:absolute;opacity:0}.event-switch label{padding:13px;border:2px solid var(--line);border-radius:10px;text-align:center;font-weight:900;cursor:pointer}.event-switch input:checked+label{background:var(--navy);border-color:var(--navy);color:#fff}.qr-card{width:360px;max-width:100%;margin:auto;background:#fff;border:2px solid var(--navy);border-radius:16px;padding:18px;text-align:center}.qr-card img{height:70px;max-width:100%}.qr-target canvas{max-width:100%;height:auto}.small{font-size:13px}.inline{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.nowrap{white-space:nowrap}.print-only{display:none}@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.scanner-layout{grid-template-columns:1fr}}@media(max-width:760px){.topbar{height:66px;padding:7px 12px}.brand img{height:50px;width:210px}.topbar-user{display:none}.nav-toggle{display:block}.app-shell{display:block;min-height:calc(100vh - 66px)}.sidebar{display:none;position:fixed;inset:66px 0 0 0;z-index:45;padding:18px;overflow:auto}.sidebar.open{display:block}.sidebar nav{position:static}.content{padding:15px}.page-heading{align-items:start;flex-direction:column}.server-clock{font-size:13px}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.scanner-layout{grid-template-columns:1fr}.scanner-box{aspect-ratio:1/1}.field-full{grid-column:auto}th,td{padding:9px 10px}.actions .btn{flex:1 1 auto}}@media print{.topbar,.sidebar,.page-heading,.no-print,.actions{display:none!important}.app-shell{display:block}.content{padding:0}.card{box-shadow:none;border:0;padding:0}.print-only{display:block}.table-wrap{overflow:visible;border:0}table{font-size:10pt}th{background:#071030!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.module-subnav{display:flex;gap:7px;flex-wrap:wrap;margin:-6px 0 18px;padding:5px;border:1px solid var(--line);border-radius:11px;background:#fff}.module-subnav a{padding:9px 15px;border-radius:8px;color:var(--navy);font-weight:800;text-decoration:none}.module-subnav a:hover{background:#eef1f7}.module-subnav a.active{color:#fff;background:var(--navy)}@media(max-width:600px){.module-subnav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.module-subnav a{padding:9px 6px;text-align:center}}
