:root{--bg-primary: #0f1117;--bg-secondary: #161921;--bg-card: #1c1f28;--bg-hover: #262a35;--text-primary: #e8eaed;--text-secondary: #a3a9b8;--text-muted: #858b99;--accent: #2f6fde;--accent-hover: #3c7ce8;--accent-text: #8ab4ff;--focus-ring: rgba(138, 180, 255, .35);--success: #4cc38a;--warning: #e5b344;--danger: #e5484d;--border: rgba(232, 234, 237, .08);--border-strong: rgba(232, 234, 237, .14);--highlight: inset 0 1px 0 rgba(255, 255, 255, .06);--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--sidebar-width: 224px;--ease: cubic-bezier(.22, 1, .36, 1);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: ui-monospace, SFMono-Regular, Consolas, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}button{font-family:var(--font);cursor:pointer;border:none;border-radius:var(--radius-sm);height:36px;padding:0 16px;font-size:13px;font-weight:500;background:var(--accent);color:#fff;transition:background-color .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease),transform .12s var(--ease)}button:hover{background:var(--accent-hover)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-strong)}button.ghost:hover{background:var(--bg-hover);color:var(--text-primary)}button.danger{background:transparent;color:var(--danger);border:1px solid rgba(229,72,77,.4)}button.danger:hover{background:#e5484d1a}input,select,textarea{font-family:var(--font);font-size:13px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 12px;outline:none;transition:border-color .15s var(--ease)}input,select{height:36px}input[type=checkbox]{height:auto;accent-color:var(--accent)}input:focus,select:focus,textarea:focus{border-color:var(--accent-text);box-shadow:0 0 0 3px var(--focus-ring)}textarea{resize:vertical;min-height:120px;line-height:1.5}label{display:flex;flex-direction:column;gap:4px;color:var(--text-secondary);font-size:12px}label.inline{flex-direction:row;align-items:center;gap:8px;font-size:13px;color:var(--text-primary)}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:24px;padding:20px 12px}.sidebar__brand{font-weight:600;font-size:15px;padding:0 12px}.sidebar__tz{color:var(--text-muted);font-size:12px;padding:0 12px;margin:0}.sidebar__brand small{display:block;color:var(--text-muted);font-weight:400;font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar nav a{display:flex;align-items:center;height:36px;padding:0 12px;color:var(--text-secondary);border-radius:var(--radius-sm);font-size:14px;transition:background-color .15s var(--ease),color .15s var(--ease)}.sidebar nav a:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}.sidebar nav a.active{background:var(--bg-hover);color:var(--text-primary);box-shadow:var(--highlight)}.main{margin-left:var(--sidebar-width);padding:32px;flex:1;min-width:0;max-width:1600px}h1{font-size:24px;font-weight:500;line-height:1.2;margin-bottom:16px}h2{font-size:15px;font-weight:500;margin-bottom:12px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--text-muted)}.small{font-size:12px}.error{color:var(--danger)}.mono{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}.notice{display:flex;gap:12px;align-items:baseline}.notice .dot{flex:none;transform:translateY(-1px)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px}.tile{display:flex;flex-direction:column;gap:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--text-primary);transition:border-color .15s var(--ease),background-color .15s var(--ease)}.tile__label{color:var(--text-secondary);font-size:12px}.tile__value{font-size:28px;line-height:1.1;font-weight:500;font-variant-numeric:tabular-nums}.tile__hint{color:var(--text-muted);font-size:12px}a.tile:hover{border-color:var(--border-strong);background:var(--bg-hover);text-decoration:none}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;background:var(--bg-card);font-variant-numeric:tabular-nums}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:12px;font-weight:500;color:var(--text-secondary);background:var(--bg-secondary);white-space:nowrap}tr:last-child td{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.clickable td{transition:background-color .15s var(--ease)}tbody tr.clickable:hover td{background:var(--bg-hover)}td.nowrap{white-space:nowrap}td .sub{color:var(--text-muted);font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-xs);font-size:12px;font-weight:500;background:var(--bg-hover);color:var(--text-secondary);white-space:nowrap}.badge.success{background:#4cc38a1f;color:var(--success)}.badge.warning{background:#e5b3441f;color:var(--warning)}.badge.danger{background:#e5484d1f;color:var(--danger)}.badge.accent{background:#8ab4ff1f;color:var(--accent-text)}.badge--icon{padding:2px 6px;font-size:14px;line-height:18px;vertical-align:top;cursor:default}.chips{display:flex;gap:4px;flex-wrap:wrap}.chip{height:32px;padding:0 12px;font-size:13px;font-weight:400;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.chip:hover{background:var(--bg-hover);color:var(--text-primary)}.chip.active{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary);box-shadow:var(--highlight)}.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding-top:12px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--text-muted)}.dot.ok{background:var(--success)}.dot.bad{background:var(--danger)}.dot.warn{background:var(--warning)}.drawer-backdrop{position:fixed;inset:0;background:#00000080;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(640px,100vw);z-index:41;background:var(--bg-secondary);border-left:1px solid var(--border);padding:24px;overflow-y:auto;animation:drawer-in .3s var(--ease)}@keyframes drawer-in{0%{transform:translate(12px);opacity:0}}@media(prefers-reduced-motion:reduce){.drawer{animation:none}}.kv{display:grid;grid-template-columns:176px 1fr;gap:8px 12px;font-size:13px}.kv dt{color:var(--text-secondary)}.timeline{display:flex;flex-direction:column;gap:12px}.timeline__item{border-left:2px solid var(--border-strong);padding-left:12px}.change{font-size:13px;color:var(--text-secondary)}.change s{color:var(--text-muted)}.bars{display:flex;align-items:flex-end;gap:4px;height:96px}.bars__col{flex:1;background:#343947;border-radius:2px 2px 0 0;min-height:2px;transition:background-color .15s var(--ease)}.bars__col:hover{background:#4a5163}.bars__col.current{background:var(--accent)}.bars__axis{display:flex;justify-content:space-between;margin-top:8px}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login form{width:340px;display:flex;flex-direction:column;gap:16px}.exp-grid{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.exp-list{display:flex;flex-direction:column;gap:2px;max-height:75vh;overflow-y:auto}.exp-item{padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;transition:background-color .15s var(--ease)}.exp-item:hover{background:var(--bg-hover)}.exp-item.active{background:var(--bg-hover);border-color:var(--border-strong);box-shadow:var(--highlight)}.exp-item .mono{color:var(--text-muted);display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exp-item__tags{color:var(--text-muted);font-size:12px;margin-left:8px}.preview{background:#17212b;border-radius:var(--radius);padding:12px 16px;white-space:pre-wrap;font-size:14px;border:1px solid var(--border)}@media(max-width:900px){.sidebar{position:static;width:auto;flex-direction:row;align-items:center;gap:12px;padding:8px 12px;overflow-x:auto}.sidebar__brand{padding:0 12px 0 0}.sidebar nav{flex-direction:row}.layout{flex-direction:column}.main{margin-left:0;padding:20px 16px}.exp-grid,.kv{grid-template-columns:1fr}}button.link{background:none;height:auto;padding:0;color:var(--accent-text);font-weight:500}button.link:hover{background:none;text-decoration:underline}.drawer+.drawer-backdrop{z-index:42}.drawer+.drawer-backdrop+.drawer{z-index:43}a.btn{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;background:var(--accent);color:#fff}a.btn:hover{background:var(--accent-hover);text-decoration:none}.date-range{gap:8px}.date-range input[type=date]{width:auto;color-scheme:dark}.picker{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow-y:auto}.picker__item{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;width:100%;height:auto;min-height:40px;padding:8px 12px;font-weight:400;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm)}.picker__item:hover{background:var(--bg-hover)}.picker__item.active{background:var(--bg-hover);border-color:var(--border-strong)}
