:root{--bg:#f4f5fa;--surface:#fff;--surface-2:#f4f5fa;--border:#e7e9f2;--text:#0f1424;--muted:#667085;--primary:#0b57d0;--primary-hover:#0a47ab;--primary-ink:#fff;--primary-soft:#eaf1ff;--accent:#2f9e44;--grad:linear-gradient(135deg, #0a3fb5 0%, #0b57d0 55%, #1f9a55 100%);--danger:#e5484d;--ok:#12a66b;--warn:#c2700a;--bar:#0b57d01a;--bar-fill:linear-gradient(90deg, #0b57d0, #2f9e44);--ring:0 0 0 4px #0b57d026;--glass:#ffffffb8;--shadow-sm:0 1px 2px #0f14240a, 0 0 0 1px #0f142405;--shadow-md:0 8px 24px -6px #0f14241a, 0 2px 6px -2px #0f14240d;--shadow-lg:0 32px 64px -16px #0f14244d;--radius:16px;--side-bg:linear-gradient(180deg, #0a1636 0%, #070f24 100%)}@media (prefers-color-scheme:dark){:root{--bg:#080a14;--surface:#101322;--surface-2:#181c30;--border:#232842;--text:#eef0fa;--muted:#9aa3bd;--primary:#6ea8ff;--primary-hover:#9cc4ff;--primary-ink:#0a0c18;--primary-soft:#12244a;--danger:#ff6b70;--ok:#3ddc97;--warn:#ffb64d;--bar:#6ea8ff1f;--ring:0 0 0 4px #6ea8ff33;--glass:#0c0e1cb8;--shadow-sm:none;--shadow-md:0 8px 24px -6px #0000008c;--shadow-lg:0 32px 64px -16px #000c;--side-bg:linear-gradient(180deg, #091230 0%, #050b1c 100%)}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";margin:0;font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{background:radial-gradient(900px 420px at 85% -10%, #0b57d01f, transparent 70%), radial-gradient(700px 380px at 0% 0%, #2f9e4414, transparent 70%), var(--bg);background-attachment:fixed}a{color:var(--primary);text-decoration:none}::selection{background:#0b57d044}h1{letter-spacing:-.03em;margin:0;font-size:26px;font-weight:750;line-height:1.2}h2{letter-spacing:-.01em;margin:0 0 14px;font-size:15px;font-weight:650}h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px}code{background:var(--surface-2);border-radius:6px;padding:2px 6px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.shell{grid-template-columns:264px 1fr;min-height:100vh;display:grid}.side{background:var(--side-bg);color:#aab1cc;border-right:1px solid #ffffff0d;flex-direction:column;gap:3px;height:100vh;padding:22px 14px 16px;display:flex;position:sticky;top:0}.brand{padding:0 0 22px}.brand img{background:#fff;border-radius:14px;width:100%;height:auto;padding:6px 10px;display:block;box-shadow:0 8px 20px -8px #000a}.brand-mark{color:#fff;background:var(--grad);border-radius:12px;flex:none;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 8px 20px -4px #0b57d099,inset 0 1px #fff5}.brand-mark svg{width:19px;height:19px}.nav-label{text-transform:uppercase;letter-spacing:.1em;color:#5f6788;padding:6px 12px 8px;font-size:10.5px;font-weight:650}.side a{color:#aab1cc;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.side a svg{opacity:.85;flex:none;width:18px;height:18px}.side a:hover{color:#fff;background:#ffffff0f}.side a.active{color:#fff;background:linear-gradient(90deg,#0b57d02e,#2f9e4414);font-weight:600;box-shadow:inset 0 0 0 1px #6ea8ff2e}.side a.active svg{opacity:1;color:#9cc4ff}.side a.active:before{content:"";background:var(--grad);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-14px}.side .spacer{flex:1}.side .logout{color:#aab1cc;box-shadow:none;background:#ffffff0a;border:1px solid #ffffff14;justify-content:center;align-items:center;gap:8px;display:flex}.side .logout:hover{color:#fff;background:#ffffff14}.side .logout svg{width:16px;height:16px}.side-user{background:#ffffff08;border:1px solid #ffffff10;border-radius:12px;align-items:center;gap:10px;margin-bottom:8px;padding:12px;display:flex}.side-user b{color:#fff;font-size:13px;font-weight:600;line-height:1.2;display:block}.side-user span{color:#7e86a6;font-size:11.5px}.content{flex-direction:column;min-width:0;display:flex}.topbar{z-index:5;background:var(--glass);-webkit-backdrop-filter:saturate(180%)blur(14px);backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid var(--border);align-items:center;gap:12px;height:60px;padding:0 36px;display:flex;position:sticky;top:0}.crumb{color:var(--muted);font-size:13px}.crumb b{color:var(--text);font-weight:600}.topbar .live{color:var(--muted);align-items:center;gap:8px;margin-left:auto;font-size:12.5px;display:inline-flex}.live i{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 0 var(--ok);border-radius:50%;animation:2s infinite pulse}@keyframes pulse{70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.main{width:100%;max-width:1360px;padding:28px 36px 56px;animation:.35s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head p{color:var(--muted);margin:4px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:18px;padding:22px}.card>h2:first-child{margin-bottom:16px}.grid{gap:16px;display:grid}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.cols2{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}.kpi{align-items:center;gap:14px;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.kpi:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translateY(-2px)}.kpi-ico{background:var(--primary-soft);width:44px;height:44px;color:var(--primary);border-radius:13px;flex:none;place-items:center;display:grid}.kpi-ico svg{width:20px;height:20px}.kpi.hero{background:var(--grad);color:#fff;border:0;box-shadow:0 16px 32px -12px #0b57d099}.kpi.hero .kpi-ico{color:#fff;background:#ffffff26}.kpi.hero .l{color:#fffc}.kpi .v{letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:750;line-height:1.1}.kpi .l{color:var(--muted);margin-top:3px;font-size:12.5px;font-weight:500}.toolbar{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px;display:flex}.toolbar .grow{flex:1}label.f{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;font-weight:550;display:flex}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-sm);border-radius:11px;padding:9px 12px;transition:border-color .15s,box-shadow .15s}input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;box-shadow:none;padding:0}input::placeholder,textarea::placeholder{color:#98a2b3}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:11px;padding:9px 15px;font-weight:550;transition:background .15s,border-color .15s,box-shadow .15s,transform 80ms,filter .15s}button:hover{background:var(--surface-2);border-color:color-mix(in srgb, var(--primary) 30%, var(--border))}button:active{transform:translateY(1px)scale(.99)}button:focus-visible{box-shadow:var(--ring);outline:none}button.primary{background:var(--grad);color:#fff;border-color:#0000;font-weight:600;box-shadow:0 8px 18px -6px #0b57d080,inset 0 1px #ffffff40}button.primary:hover{filter:brightness(1.08);box-shadow:0 10px 22px -6px #0b57d0aa,inset 0 1px #ffffff40}button.danger{color:var(--danger)}button.danger:hover{background:color-mix(in srgb, var(--danger) 10%, transparent);border-color:var(--danger)}button.sm{border-radius:9px;padding:5px 11px;font-size:12.5px}button:disabled{opacity:.5;cursor:not-allowed;filter:none}.table-wrap{margin:0 -22px -6px;padding:0 22px 6px;overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:13px 14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;background:var(--surface-2);white-space:nowrap;font-size:11px;font-weight:650}th:first-child{border-top-left-radius:11px;border-bottom-left-radius:11px}th:last-child{border-top-right-radius:11px;border-bottom-right-radius:11px}th{border-bottom:0}tbody tr{transition:background .12s}tbody tr:hover td{background:color-mix(in srgb, var(--primary-soft) 55%, transparent)}tbody tr:last-child td{border-bottom:0}tr.click{cursor:pointer}tr.click:hover td{background:var(--primary-soft)}td .muted{font-size:12.5px}.empty{text-align:center;color:var(--muted);padding:36px 12px!important}.who{align-items:center;gap:12px;display:flex}.who b{font-weight:600;line-height:1.25;display:block}.who span{color:var(--muted);font-size:12.5px}.avatar{color:#fff;letter-spacing:.02em;text-transform:uppercase;border-radius:11px;flex:none;place-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:grid}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:550;display:inline-flex}.badge.ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent)}.badge.off{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.badge.warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 15%, transparent)}.badge.ok:before,.badge.off:before,.badge.warn:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.muted{color:var(--muted)}.error{background:color-mix(in srgb, var(--danger) 9%, var(--surface));color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);border-radius:12px;margin-bottom:16px;padding:11px 14px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pager{justify-content:flex-end;align-items:center;gap:10px;margin-top:16px;display:flex}.skel{background:linear-gradient(90deg, var(--surface-2) 25%, color-mix(in srgb, var(--border) 70%, transparent) 50%, var(--surface-2) 75%);background-size:200% 100%;border-radius:8px;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#080e228c;justify-content:center;align-items:flex-start;padding:6vh 16px;animation:.15s ease-out fade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:22px;width:min(520px,100%);padding:26px;animation:.2s cubic-bezier(.2,.9,.3,1.1) pop}.modal.wide{width:min(900px,100%)}.modal-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-head button{border-radius:10px;place-items:center;width:34px;height:34px;padding:0;display:grid}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.97)}}.form{gap:16px;display:grid}.form2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.kv{grid-template-columns:170px 1fr;gap:10px 14px;display:grid}.kv-s{grid-template-columns:150px 1fr;align-content:start}.kv dt{color:var(--muted)}.kv dd{word-break:break-word;margin:0;font-weight:500}.bar-row{grid-template-columns:minmax(80px,160px) 1fr 56px;align-items:center;gap:14px;margin:11px 0;display:grid}.bar-track{background:var(--bar);border-radius:999px;height:10px;overflow:hidden}.bar-fill{background:var(--bar-fill);border-radius:999px;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1)}.bar-row .n{text-align:right;font-variant-numeric:tabular-nums;font-weight:650}.chart text{font-family:inherit}.login{color:#eef0fa;background:radial-gradient(60% 55% at 12% 0,#0b57d044,#0000),radial-gradient(50% 50% at 100% 100%,#2f9e4433,#0000),#07122b;place-items:center;min-height:100vh;padding:16px;display:grid;position:relative;overflow:hidden}.login:before{content:"";opacity:.5;pointer-events:none;background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000 20%,#0000 70%);mask-image:radial-gradient(circle at 50% 40%,#000 20%,#0000 70%)}.login .card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);width:min(420px,100%);box-shadow:var(--shadow-lg);background:#ffffff0d;border:1px solid #ffffff1f;border-radius:24px;margin:0;padding:36px;position:relative}.login .card h1{color:#fff;font-size:24px}.login .muted,.login label.f{color:#aab1cc}.login input{color:#fff;background:#ffffff0f;border-color:#ffffff1f}.login input:focus{border-color:#6ea8ff}.login-logo{background:#fff;border-radius:16px;justify-self:center;width:210px;max-width:100%;height:auto;padding:8px 14px}.login .form{justify-items:stretch}.login button.primary{padding:12px 14px;font-size:14.5px}.checks{gap:6px;max-height:320px;padding-right:4px;display:grid;overflow-y:auto}.checks>div{border:1px solid var(--border);border-radius:12px;padding:10px 12px}.checks label{align-items:center;gap:8px;padding:3px 0;display:flex}img.doc{border:1px solid var(--border);border-radius:12px;max-width:100%}.burger,.scrim{display:none}@media (max-width:1100px){.main{padding:24px 24px 48px}.topbar{padding:0 24px}}@media (max-width:860px){.shell{grid-template-columns:1fr}.side{z-index:40;width:min(288px,84vw);height:100dvh;box-shadow:none;transition:transform .25s cubic-bezier(.2,.8,.2,1);position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}.side.open{transform:none;box-shadow:24px 0 48px -12px #000a}.scrim{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050a1c8c;animation:.2s fade;display:block;position:fixed;inset:0}.burger{place-items:center;width:38px;height:38px;margin-left:-6px;padding:0;display:grid}.burger svg{width:20px;height:20px}.topbar{height:56px;padding:0 16px}.topbar .live{gap:0;font-size:0}.main{padding:20px 16px 40px}h1{font-size:22px}.form2,.kv{grid-template-columns:1fr}.kv{gap:2px 0}.kv dd{margin-bottom:10px}.card{border-radius:14px;padding:16px}.table-wrap{margin:0 -16px -6px;padding:0 16px 6px}th,td{padding:11px 10px}td{white-space:nowrap}.toolbar{gap:10px}.toolbar label.f{flex:140px}.toolbar label.f input,.toolbar label.f select,.page-head .row,.page-head .row button{width:100%}.overlay{align-items:flex-end;padding:0}.modal,.modal.wide{border-radius:22px 22px 0 0;width:100%;max-height:92dvh;padding:20px 16px 28px;animation:.25s cubic-bezier(.2,.8,.2,1) sheet;overflow-y:auto}@keyframes sheet{0%{opacity:0;transform:translateY(40px)}}.pager{justify-content:space-between}}@media (max-width:560px){.kpis{grid-template-columns:repeat(2,1fr);gap:10px}.kpi{flex-direction:column;align-items:flex-start;gap:10px}.kpi .v{font-size:24px}.kpi-ico{border-radius:11px;width:38px;height:38px}.bar-row{grid-template-columns:minmax(60px,110px) 1fr 40px;gap:10px}.login .card{padding:26px 20px}.toolbar button{flex:auto}}
