:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #eef2f7;--line: #e2e8f0;--line-soft: #edf1f6;--text: #1c2434;--muted: #64748b;--faint: #94a3b8;--accent: #3c50e0;--accent-soft: #eef0fd;--accent-line: #c7cdf7;--good: #10b981;--good-soft: #e7f8f1;--bad: #dc3545;--bad-soft: #fdecee;--warn: #d97706;--warn-soft: #fef3e2;--r-sm: 6px;--r: 8px;--r-lg: 12px;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13.5px/1.5 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}h1,h2,h3{letter-spacing:-.01em;color:var(--text)}h3{font-size:14px;margin:0}p{margin:0 0 var(--s3)}.card .n,td,.kpi,code,.mono{font-variant-numeric:tabular-nums}.layout{display:flex;min-height:100vh}.side{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:var(--s4) var(--s3);display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh}.side .brand{display:flex;align-items:center;gap:var(--s2);font-size:15px;font-weight:700;margin:0 0 var(--s4);padding:0 var(--s2)}.side .brand span.mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;font-size:12px;font-weight:800}.side .group{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:var(--s3) var(--s2) var(--s1)}.side a{display:flex;align-items:center;gap:10px;padding:7px var(--s2);border-radius:var(--r-sm);color:var(--muted);font-size:13.5px;font-weight:500;transition:background .12s ease,color .12s ease}.side a:hover{background:var(--surface-3);color:var(--text)}.side a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.side a svg{flex-shrink:0}.side .out{margin-top:auto;color:var(--muted)}.side .out:hover{color:var(--bad);background:var(--bad-soft)}.content{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--s6);background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.crumbs{color:var(--muted);font-size:13px}.crumbs b{color:var(--text);font-weight:600}.who{display:flex;align-items:center;gap:var(--s2);color:var(--muted);font-size:12.5px}.who .avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:11px}.main{flex:1;padding:var(--s5) var(--s6) var(--s8);max-width:1440px;width:100%}.main>h2:first-child{margin:0 0 var(--s1);font-size:19px;font-weight:700}.main>h2:first-child+p{color:var(--muted);margin-bottom:var(--s4)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s2);margin:var(--s3) 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3) var(--s4);box-shadow:var(--shadow);margin-bottom:var(--s3)}.cards .card{margin-bottom:0}.card .n{font-size:20px;font-weight:700;line-height:1.15}.card .l{color:var(--muted);font-size:12px;font-weight:500;margin-top:var(--s1)}.card .hint{color:var(--faint);font-size:11.5px;margin-top:2px}.kpi{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3)}.kpi .ico{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.kpi .ico.good{background:var(--good-soft);color:var(--good)}.kpi .ico.bad{background:var(--bad-soft);color:var(--bad)}.kpi .ico.warn{background:var(--warn-soft);color:var(--warn)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:var(--s3)}.section-title{margin:var(--s5) 0 var(--s2)}.panel,.main>table{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.panel .scroll{overflow-x:auto}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface)}.card table{box-shadow:none}th,td{text-align:left;padding:8px var(--s3);font-size:13px;border-bottom:1px solid var(--line-soft)}th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);white-space:nowrap}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}input,select,button,textarea{font:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:var(--r-sm);padding:6px 10px;transition:border-color .12s ease,box-shadow .12s ease;max-width:100%}td select{padding:3px 8px;font-size:12.5px}input[type=checkbox],input[type=radio]{width:auto;padding:0;accent-color:var(--accent)}input::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}button{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--r-sm);padding:6px 14px;font-weight:600;font-size:13px;cursor:pointer;transition:background .12s ease,opacity .12s ease}button:hover:not(:disabled){background:#2f41c4}button:disabled{opacity:.5;cursor:default}button.ghost{background:var(--surface);color:var(--text);border:1px solid var(--line);font-weight:500}button.ghost:hover:not(:disabled){background:var(--surface-3)}button.danger{background:var(--bad);border-color:var(--bad)}button.danger:hover:not(:disabled){background:#b92a38}.row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.filters{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin:var(--s3) 0}.filters label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px}.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) 0}.bar{display:block;height:8px;border-radius:4px;background:var(--accent);min-width:2px}.pill{display:inline-flex;align-items:center;padding:1px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--surface-3);color:var(--muted);white-space:nowrap}.pill.ok{background:var(--good-soft);color:#059669}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.err{background:var(--bad-soft);border:1px solid #f6c3c8;color:#b42332;border-radius:var(--r-sm);padding:8px var(--s3);font-size:13px}.muted{color:var(--muted)}.faint{color:var(--faint);font-size:12.5px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c243459;display:grid;place-items:center;z-index:20}.login{display:grid;place-items:center;min-height:100vh;padding:var(--s5);background:var(--bg)}.login form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s8);width:100%;max-width:380px;display:grid;gap:var(--s4);box-shadow:0 10px 30px #10182814}.login .brand{display:flex;align-items:center;gap:var(--s3)}.login .brand .mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--accent);font-weight:800;font-size:14px;color:#fff}.login .brand h2{margin:0;font-size:18px;font-weight:700}.login .brand p{margin:0;font-size:12.5px;color:var(--muted)}.login label{display:grid;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted)}.login input{padding:9px 12px}.login button{padding:10px}@media (max-width: 820px){.layout{flex-direction:column}.side{width:100%;height:auto;position:static;flex-direction:row;overflow-x:auto;padding:var(--s2) var(--s3);border-right:0;border-bottom:1px solid var(--line)}.side .brand,.side .group{display:none}.side .out{margin-top:0}.side a{white-space:nowrap}.topbar{display:none}.main{padding:var(--s4) var(--s3)}.main table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.main table td{white-space:nowrap}.side{-webkit-overflow-scrolling:touch;scrollbar-width:none}.side a{min-height:36px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}.kpi{position:relative}.kpi>div:first-child{width:100%}.kpi .n{max-width:calc(100% - 34px)}.kpi .ico{position:absolute;top:0;right:0;width:28px;height:28px}.kpi .ico svg{width:15px;height:15px}}a.card.link{display:block;color:inherit;transition:border-color .12s ease,box-shadow .12s ease}a.card.link:hover{border-color:var(--accent-line);box-shadow:0 2px 8px #3c50e01f}.card .go{color:var(--accent);font-size:11.5px;font-weight:600;margin-top:6px}.actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s3) 0}a.btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 12px;color:var(--text);font-weight:500;font-size:13px}a.btn:hover{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s2)}.panel-head a{font-size:12px;font-weight:600;display:inline-flex;align-items:center;min-height:28px;padding:0 4px}.card table{border:0}.card td{padding:6px 4px}.nowrap{white-space:nowrap}.spark{display:flex;align-items:flex-end;gap:6px;height:120px}.spark-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px}.spark-col span{width:100%;background:var(--accent);border-radius:3px 3px 0 0;min-height:3px}.spark-col small{color:var(--muted);font-size:10.5px}.person{line-height:1.25}.person .faint{font-size:11.5px}
