:root{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--raised: #242423;--hover: rgba(255, 255, 255, .06);--ink: #ffffff;--secondary: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--accent: #3987e5;--accent-ink: #ffffff;--good: #0ca30c;--warning: #fab219;--critical: #d03b3b;--good-text: #0ca30c;--critical-text: #e66767;--warning-text: #fab219;--shadow: 0 12px 32px rgba(0, 0, 0, .45);--radius: 6px;--font: system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "Cascadia Mono", Consolas, monospace}:root[data-theme=light]{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--raised: #ffffff;--hover: rgba(11, 11, 11, .05);--ink: #0b0b0b;--secondary: #52514e;--muted: #6f6e69;--grid: #e1e0d9;--border: rgba(11, 11, 11, .1);--border-strong: rgba(11, 11, 11, .2);--accent: #2a78d6;--good-text: #006300;--critical-text: #b42f2f;--warning-text: #8a5a00;--shadow: 0 12px 32px rgba(0, 0, 0, .14)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--ink);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}code,.mono{font-family:var(--mono);font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{display:grid;grid-template-columns:240px minmax(0,1fr);height:100%}.main{min-width:0;overflow:auto;display:flex;flex-direction:column}.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-right:1px solid var(--border)}.brand{display:flex;align-items:center;gap:8px;padding:14px 14px 10px;font-weight:650;font-size:14px}.brand-mark{width:22px;height:22px;border-radius:5px;display:grid;place-items:center;background:var(--accent);color:#fff}.sidebar-section{padding:6px 8px}.sidebar-label{padding:10px 8px 4px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.dash-list{flex:1;overflow:auto;padding:0 8px}.dash-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:var(--radius);background:transparent;cursor:pointer}.dash-item:hover{background:var(--hover)}.dash-item.active{background:var(--raised);box-shadow:inset 2px 0 0 var(--accent)}.dash-item-name{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-item-url{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer{display:flex;align-items:center;gap:4px;padding:8px;border-top:1px solid var(--border)}.sidebar-footer .version{margin-left:auto;color:var(--muted);font-size:11px;padding-right:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--raised);cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--hover);border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:550}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.danger{color:var(--critical-text)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--hover);border-color:transparent}.btn.icon{width:30px;padding:0}.btn.small{height:26px;padding:0 8px;font-size:12px}.btn.small.icon{width:26px;padding:0}.btn.block{width:100%}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.input,.select{height:30px;padding:0 10px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--page);min-width:0}.select{padding-right:6px}.input:focus,.select:focus{border-color:var(--accent);outline:none}.input.large{height:38px;font-size:14px}.field{display:flex;flex-direction:column;gap:5px}.field>span{color:var(--secondary);font-size:12px;font-weight:550}.field .hint{color:var(--muted);font-size:12px;font-weight:400}.check{display:inline-flex;align-items:center;gap:8px;color:var(--secondary);cursor:pointer}.row{display:flex;align-items:center;gap:8px}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.secondary{color:var(--secondary)}.toolbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;background:var(--page);border-bottom:1px solid var(--border)}.toolbar-title{min-width:0;flex:1}.toolbar-title h1{margin:0;font-size:16px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-meta{display:flex;gap:10px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden}.toolbar-meta .url{overflow:hidden;text-overflow:ellipsis}.toolbar-controls{display:flex;align-items:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.banner{display:flex;align-items:center;gap:10px;margin:10px 16px 0;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface)}.banner.error{border-color:color-mix(in srgb,var(--critical) 55%,transparent)}.banner.error svg{color:var(--critical-text);flex:none}.grid-area{padding:8px;flex:1}.react-grid-item.react-grid-placeholder{background:var(--accent);opacity:.15;border-radius:var(--radius)}.react-grid-item>.react-resizable-handle{opacity:0;transition:opacity .15s}.react-grid-item:hover>.react-resizable-handle{opacity:.7}:root:not([data-theme=light]) .react-grid-item>.react-resizable-handle:after{border-color:var(--muted)}.panel{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.panel-header{display:flex;align-items:center;gap:6px;height:34px;padding:0 6px 0 12px;flex:none}.panel-drag{flex:1;min-width:0;display:flex;align-items:center;gap:6px;height:100%;cursor:grab}.panel-drag:active{cursor:grabbing}.panel-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{display:inline-flex;align-items:center;gap:4px;padding:0 6px;height:18px;border-radius:9px;font-size:11px;color:var(--secondary);background:var(--hover);white-space:nowrap;flex:none}.panel-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.panel:hover .panel-actions,.panel:focus-within .panel-actions{opacity:1}.panel-body{flex:1;min-height:0;position:relative;padding:0 10px 10px}.panel-empty{height:100%;display:grid;place-items:center;text-align:center;color:var(--muted);padding:8px}.chart{position:absolute;inset:0 6px 6px}.stat{height:100%;display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:0}.stat-value{font-size:clamp(22px,2.6vw,34px);font-weight:650;line-height:1.1;letter-spacing:-.01em;white-space:nowrap}.stat-sub{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden}.stat-spark{flex:1;min-height:0;max-height:40px;margin-top:4px;position:relative}.spark-dot{position:absolute;width:8px;height:8px;border-radius:50%;border:2px solid;box-sizing:content-box;transform:translate(-50%,-50%)}.stat-spark svg{width:100%;height:100%;display:block;overflow:visible}.badge{display:inline-flex;align-items:center;gap:4px;font-weight:600;font-size:12px}.badge.good{color:var(--good-text)}.badge.warning{color:var(--warning-text)}.badge.critical{color:var(--critical-text)}.donut-center{position:absolute;left:36%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.donut-center strong{display:block;font-size:20px;font-weight:650;line-height:1.1}.donut-center span{color:var(--muted);font-size:11px}.table-wrap{height:100%;overflow:auto;border-top:1px solid var(--border)}table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.data th,table.data td{padding:5px 10px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--grid)}table.data th{position:sticky;top:0;background:var(--surface);color:var(--secondary);font-weight:600;font-size:12px;z-index:1}table.data td.num,table.data th.num{text-align:right}table.data tbody tr:hover td{background:var(--hover)}table.data td.clip{max-width:320px;overflow:hidden;text-overflow:ellipsis}.records{height:100%;display:flex;flex-direction:column;gap:6px}.records-bar{display:flex;align-items:center;gap:8px}.records-bar .input{height:26px;width:240px}.overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:#0000008c}.modal{width:min(560px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow)}.modal.wide{width:min(880px,100%)}.modal-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:15px;font-weight:650;flex:1}.modal-body{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:14px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:220px;padding:4px;background:var(--raised);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow)}.menu button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:0;border-radius:5px;background:transparent;text-align:left;cursor:pointer}.menu button:hover{background:var(--hover)}.menu hr{border:0;border-top:1px solid var(--border);margin:4px 0}.menu-anchor{position:relative}.welcome{max-width:760px;width:100%;margin:0 auto;padding:48px 24px;display:flex;flex-direction:column;gap:20px}.welcome h1{margin:0;font-size:22px;font-weight:650}.welcome p.lead{margin:4px 0 0;color:var(--secondary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:14px}.card h3{margin:0;font-size:14px;font-weight:650}.kind-groups{display:flex;flex-direction:column;gap:8px}.kind-row{display:flex;gap:10px;align-items:baseline}.kind-row>b{width:110px;flex:none;color:var(--secondary);font-weight:550;font-size:12px}.kind-row .chips{display:flex;flex-wrap:wrap;gap:4px}.kind-row .chip{height:22px;border-radius:11px;padding:0 8px;font-size:12px}.samples{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sample{text-align:left;padding:12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:2px}.sample:hover{border-color:var(--accent)}.sample span{color:var(--muted);font-size:12px}.health-line{display:flex;align-items:center;gap:8px;color:var(--secondary)}.auth-wrap{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px}.auth-card{width:min(400px,100%);display:flex;flex-direction:column;gap:14px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.auth-card h1{margin:0;font-size:18px;font-weight:650}.auth-card p{margin:0}.auth-brand{padding:0}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form .banner{margin:0}.auth-links{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.auth-note{font-size:12px}.auth-foot{font-size:11px}.user-block{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.user-avatar{width:28px;height:28px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--raised);border:1px solid var(--border-strong);font-weight:650;font-size:12px}.user-info{flex:1;min-width:0;font-size:12px;line-height:1.3}.user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-error{margin:0 8px 8px;padding:8px 10px;border-radius:var(--radius);font-size:12px;color:var(--critical-text);background:var(--hover);display:flex;gap:6px;align-items:flex-start}.btn.active{background:var(--hover)}.readonly .panel-drag{cursor:default}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--border)}.brand{padding:10px 12px}.sidebar-label,.user-info,.sidebar-footer .version{display:none}.sidebar-section{order:2;padding:6px 4px}.sidebar-section .btn.block{width:auto}.user-block{order:3;margin-left:auto;border-top:0;padding:6px 4px}.sidebar-footer{order:4;border-top:0;padding:6px 8px 6px 0}.dash-list{order:5;flex:1 1 100%;display:flex;gap:6px;overflow-x:auto;padding:0 12px 10px}.dash-item{flex:none;width:auto;max-width:70vw;border:1px solid var(--border)}.sync-error{order:6;flex:1 1 100%}.toolbar{padding:10px 12px}.toolbar-controls{flex-wrap:wrap;width:100%}.toolbar-controls .select{flex:1;min-width:0}.toolbar-meta{flex-wrap:wrap;white-space:normal}.welcome{padding:24px 16px}.samples,.form-grid{grid-template-columns:1fr}.records-bar .input{width:100%}}.tenant-block{padding:0 8px 6px}.tenant-block .select{width:100%}.tenant-name{display:flex;align-items:center;gap:6px;padding:6px 8px;color:var(--secondary);font-weight:550}.count-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:650;display:inline-grid;place-items:center}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tab{border:0;background:transparent;padding:8px 12px;cursor:pointer;color:var(--secondary);border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.welcome.admin{max-width:980px}.request-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.request-card:last-child{border-bottom:0;padding-bottom:0}.request-card:first-child{padding-top:0}.request-who{display:flex;flex-direction:column;gap:2px;min-width:0}.request-controls{display:flex;flex-direction:column;gap:8px}.request-editor{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--page)}@media(max-width:760px){.request-card{grid-template-columns:1fr}.tenant-block{order:1;flex:1 1 100%;padding:0 12px 6px}}.segmented{display:inline-flex;padding:2px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--page)}.segmented button{border:0;background:transparent;padding:0 10px;height:24px;border-radius:4px;cursor:pointer;color:var(--secondary)}.segmented button.active{background:var(--raised);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--border)}.history{display:flex;flex-direction:column;gap:8px}.history-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.panel.kpi{height:auto;padding:12px;gap:4px}.panel.kpi .stat-value{font-size:28px}.delta{font-size:12px;font-weight:550}.delta.good{color:var(--good-text)}.delta.critical{color:var(--critical-text)}.delta.muted{color:var(--secondary)}.history-chart{height:300px}.history-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:8px}.history-tables .panel{height:auto;max-height:420px}.sidebar-nav{padding:0 8px}.dash-item.nav .dash-item-name{display:inline-flex;align-items:center;gap:6px}.ov-body{padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}.ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.ov-card{display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;padding:14px 14px 12px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius)}.ov-card:hover{border-color:var(--muted)}.ov-card.good{border-left-color:var(--good)}.ov-card.warning{border-left-color:var(--warning)}.ov-card.critical{border-left-color:var(--critical)}.ov-head{display:flex;align-items:center;gap:8px}.ov-name{flex:1;min-width:0;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ov-main strong{font-size:30px;font-weight:650;letter-spacing:-.01em}.ov-sub{font-size:12px}.ov-hours{width:100%;height:36px;display:block}.ov-foot{display:flex;flex-direction:column;gap:2px;font-size:12px;min-height:18px}.ov-msg{color:var(--ink)}.ov-alerts{height:auto}.ov-alerts .panel-body{padding:0 12px 12px}.ov-alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}.ov-alert-list li{display:flex;align-items:center;gap:10px;font-size:12.5px;flex-wrap:wrap}
