:root{color-scheme:dark;--bg: #0b0c0e;--surface-1: #141518;--surface-2: #1a1c20;--surface-3: #22252a;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .13);--text: #eceef1;--text-2: #a5aab3;--muted: #6f747d;--silver: linear-gradient(135deg, #f4f5f7 0%, #b9bec7 45%, #e6e8ec 70%, #9aa0aa 100%);--silver-solid: #c9ced6;--glass: rgba(24, 26, 30, .62);--glass-border: rgba(255, 255, 255, .09);--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #9085e9;--good: #2fb37c;--warn: #d39b2a;--crit: #ea6060;--info: #6ea8ff;--radius: 14px;--radius-sm: 9px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", sans-serif;--sidebar: 236px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}body{min-height:100vh;overflow-x:hidden}a{color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}.num,.kpi-value,td.n,th.n{font-variant-numeric:tabular-nums}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-.01em}h1{font-size:24px;font-weight:650}h2{font-size:15px;font-weight:600}h3{font-size:13px;font-weight:600;color:var(--text-2)}p{margin:0}.muted{color:var(--muted)}.t2{color:var(--text-2)}.small{font-size:12px}.xs{font-size:11px}.silver-text{background:var(--silver);-webkit-background-clip:text;background-clip:text;color:transparent}.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;padding:18px 12px;background:var(--glass);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;gap:4px;z-index:30}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px}.brand img{width:38px;height:38px;border-radius:9px}.brand b{font:650 14px/1.1 var(--font-display);letter-spacing:.02em}.brand span{display:block;font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.nav-group{margin-top:10px;padding:0 10px 4px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;text-decoration:none;color:var(--text-2);font-weight:500;transition:background .15s,color .15s}.nav a:hover{background:#ffffff0a;color:var(--text)}.nav a.active{background:#ffffff12;color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.nav a svg{width:17px;height:17px;flex:none;opacity:.85}.nav .count{margin-left:auto;font-size:11px;background:var(--crit);color:#fff;border-radius:10px;padding:0 6px}.sidebar-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.main{min-width:0;padding:22px 28px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.topbar .title{display:flex;flex-direction:column;gap:2px}.topbar .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mobile-bar{display:none}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:0}.card.flush{padding:0;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.card-head .sub{font-size:12px;color:var(--muted)}.section{margin-top:26px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.section-head h2{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-2)}.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.grid.wide{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:10px}.span2{grid-column:span 2}hr.sep{border:0;border-top:1px solid var(--border);margin:14px 0}.kpi{position:relative;display:flex;flex-direction:column;gap:6px;min-height:118px}.kpi-label{font-size:12px;color:var(--text-2);font-weight:500;display:flex;gap:6px;align-items:center}.kpi-value{font:650 28px/1.1 var(--font-display);letter-spacing:-.02em}.kpi-value.lg{font-size:40px}.kpi-value.na{font:500 13px/1.35 var(--font);color:var(--muted);letter-spacing:0;padding-top:6px}.kpi-delta{font-size:12px;color:var(--text-2)}.kpi-delta.up:before{content:"▲ ";color:var(--good);font-size:10px}.kpi-delta.down:before{content:"▼ ";color:var(--crit);font-size:10px}.kpi-meta{margin-top:auto;font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.kpi .spark{position:absolute;right:14px;top:16px;opacity:.9}.tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:5px;border:1px solid var(--border-strong);color:var(--text-2);white-space:nowrap}.tag.real{color:var(--good);border-color:#2fb37c59}.tag.est{color:var(--warn);border-color:#d39b2a66}.tag.sim{color:var(--s6);border-color:#9085e973}.tag.fc{color:var(--info);border-color:#6ea8ff66}.tag.manual{color:var(--text-2)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}.dot.fresh,.dot.ok{background:var(--good)}.dot.stale,.dot.warn{background:var(--warn)}.dot.error,.dot.crit{background:var(--crit)}.dot.unconfigured,.dot.missing{background:var(--muted)}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.status.good{color:var(--good)}.status.warn{color:var(--warn)}.status.crit{color:var(--crit)}.status.info{color:var(--info)}.status.none{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 13px;border-radius:10px;background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text);cursor:pointer;font-weight:500;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .15s,border-color .15s,transform .1s;white-space:nowrap}.btn:hover{background:#ffffff17;border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--silver);color:#0d0e10;border-color:transparent;font-weight:600;box-shadow:0 1px #ffffff59 inset,0 6px 18px #00000059}.btn.primary:hover{filter:brightness(1.05)}.btn.danger{color:var(--crit)}.btn.sm{height:28px;padding:0 10px;font-size:12px;border-radius:8px}.btn.ghost{background:transparent;border-color:transparent;backdrop-filter:none}.btn svg{width:15px;height:15px}.seg{display:inline-flex;padding:3px;border-radius:11px;background:#ffffff0a;border:1px solid var(--glass-border);gap:2px}.seg button{border:0;background:transparent;padding:5px 11px;border-radius:8px;color:var(--text-2);cursor:pointer;font-size:12.5px;font-weight:500}.seg button.on{background:#ffffff1a;color:var(--text);box-shadow:0 1px #ffffff14 inset}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],select,textarea,input:not([type]){height:34px;padding:0 10px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border-strong);outline:none;min-width:0;width:100%}textarea{height:auto;min-height:80px;padding:8px 10px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#c9ced68c;box-shadow:0 0 0 3px #c9ced61f}input[type=checkbox]{accent-color:#c9ced6;width:15px;height:15px}label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-2);min-width:0}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filters select,.filters input{width:auto;min-width:130px}.tbl-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-weight:500;color:var(--muted);font-size:11.5px;padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.tbl td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:#ffffff05}.tbl td.n,.tbl th.n{text-align:right}.tbl td.mono{white-space:nowrap}.tbl tr.click{cursor:pointer}.heat{border-radius:5px;padding:3px 6px;text-align:center;font-variant-numeric:tabular-nums}.na-box{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:11px;background:#ffffff06;border:1px dashed var(--border-strong);color:var(--text-2);font-size:12.5px}.na-box b{color:var(--text);font-weight:600}.notice{padding:10px 14px;border-radius:11px;font-size:12.5px;border:1px solid;display:flex;gap:10px;align-items:flex-start}.notice.warn{border-color:#d39b2a59;background:#d39b2a12}.notice.crit{border-color:#ea606059;background:#ea606012}.notice.info{border-color:#6ea8ff4d;background:#6ea8ff0f}.notice.sim{border-color:#9085e966;background:#9085e912}.chart{position:relative;width:100%}.chart svg{display:block;width:100%;overflow:visible}.chart .grid-line{stroke:#ffffff0f;stroke-width:1}.chart .axis-label{fill:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums}.chart .tip{position:absolute;pointer-events:none;background:#141518f5;border:1px solid var(--border-strong);border-radius:9px;padding:7px 10px;font-size:12px;white-space:nowrap;box-shadow:0 10px 30px #00000073;z-index:5;transform:translate(-50%,-110%)}.chart .tip .k{color:var(--muted);font-size:11px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-2);margin-bottom:8px}.legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.hbar{display:grid;grid-template-columns:minmax(80px,34%) 1fr auto;gap:10px;align-items:center;font-size:12.5px;padding:4px 0}.hbar .track{height:8px;background:#ffffff0d;border-radius:4px;overflow:hidden}.hbar .fill{height:100%;border-radius:4px;background:var(--silver-solid)}.hbar .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.meter{height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.meter>div{height:100%;border-radius:4px}.drawer-bg{position:fixed;inset:0;background:#00000080;z-index:60;backdrop-filter:blur(3px)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(620px,100vw);background:var(--surface-1);border-left:1px solid var(--border-strong);z-index:61;overflow-y:auto;padding:20px 22px 40px;animation:slidein .2s ease-out}@keyframes slidein{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--surface-3);border:1px solid var(--border-strong);padding:10px 16px;border-radius:11px;z-index:90;box-shadow:0 10px 30px #00000080;font-size:13px}.fade-in{animation:fade .25s ease-out}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}.kcol{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:200px}.kcol.over{border-color:var(--silver-solid)}.kcol h3{display:flex;justify-content:space-between;padding:2px 4px 10px}.kcard{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:9px 10px;margin-bottom:8px;cursor:grab;font-size:13px}.kcard:hover{border-color:var(--border-strong)}.prio{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle}.prio.critical{background:var(--crit)}.prio.high{background:var(--warn)}.prio.medium{background:var(--silver-solid)}.prio.low{background:var(--muted)}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal .dow{font-size:11px;color:var(--muted);padding:4px;text-align:center}.cal .day{min-height:92px;background:var(--surface-1);border:1px solid var(--border);border-radius:9px;padding:5px;font-size:11.5px;overflow:hidden}.cal .day.other{opacity:.4}.cal .day.today{border-color:var(--silver-solid)}.cal .ev{background:var(--surface-3);border-radius:5px;padding:1px 5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(1200px 600px at 50% -10%,rgba(201,206,214,.1),transparent 60%),var(--bg)}.login{width:min(400px,100%);background:var(--glass);border:1px solid var(--glass-border);border-radius:20px;padding:28px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 30px 80px #00000080}.login img.qr{background:#fff;border-radius:12px;padding:10px;width:200px;height:200px;display:block;margin:8px auto}code,.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.focus .hide-in-focus{display:none!important}.focus .kpi-value{font-size:40px}@media print{html,body{background:#fff;color:#111}.sidebar,.topbar .actions,.mobile-bar,.no-print{display:none!important}.shell{display:block}.main{padding:0}.card{border-color:#ddd;background:#fff;break-inside:avoid}.muted,.t2,.kpi-label,.kpi-meta{color:#555!important}.chart .axis-label{fill:#555}}@media (max-width: 1100px){.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;transform:translate(-102%);transition:transform .22s ease}.sidebar.open{transform:none}.mobile-bar{display:flex;position:sticky;top:0;z-index:25;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border)}.main{padding:16px 16px 60px}.grid.two,.grid.three{grid-template-columns:1fr}.span2{grid-column:auto}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.kpi-value{font-size:23px}.kpi{min-height:104px}h1{font-size:20px}.cal .day{min-height:64px}}.kpi-meta .row{flex-wrap:nowrap;align-items:flex-start}.kpi-meta .row .dot{margin-top:4px}
