:root{--bg: #f4f6f8;--surface: #ffffff;--ink: #17212b;--muted: #5d6b7a;--line: #dde3ea;--accent: #0b6e5f;--accent-ink: #ffffff;--accent-soft: #e3f3f0;--danger: #b3261e;--danger-soft: #fdecea;--sidebar: #12202b;--sidebar-ink: #c9d4de;--radius: 8px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:22px;margin:0 0 2px}h2{font-size:15px;margin:0 0 12px}code{background:var(--bg);padding:1px 5px;border-radius:4px}.muted{color:var(--muted);font-size:13px}.nowrap{white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums}.shell{display:flex;min-height:100vh}.sidebar{width:220px;flex:none;background:var(--sidebar);color:var(--sidebar-ink);display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-size:18px;font-weight:700;color:#fff;padding:0 8px 14px}.brand span{color:#6fd3c1;font-weight:500}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar nav a{color:inherit;text-decoration:none;padding:7px 10px;border-radius:6px}.sidebar nav a:hover{background:#ffffff14;color:#fff}.sidebar nav a.active{background:var(--accent);color:#fff}.nav-heading{font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.6;padding:14px 10px 4px}.sidebar-foot{border-top:1px solid rgba(255,255,255,.12);padding:12px 8px 0}.sidebar-foot .muted{color:inherit;opacity:.6;font-size:12px}.sidebar-foot .user{color:#fff;font-weight:600;margin-bottom:8px;word-break:break-all}.content{flex:1;min-width:0;padding:24px 28px 48px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.btn{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:6px;white-space:nowrap}.btn:hover:not(:disabled){border-color:#b8c2cd}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.small{padding:4px 10px;font-size:13px}.btn.danger{color:var(--danger)}.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.sidebar .btn{background:transparent;color:var(--sidebar-ink);border-color:#ffffff40}input,select,textarea{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px;width:100%}textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;resize:vertical}input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input:disabled{background:var(--bg);color:var(--muted)}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface);flex-wrap:wrap}.segmented button{font:inherit;border:0;background:none;padding:7px 12px;cursor:pointer;color:var(--muted)}.segmented button+button{border-left:1px solid var(--line)}.segmented button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.alert,.notice{border-radius:6px;padding:9px 12px;margin:0 0 12px}.alert{background:var(--danger-soft);color:var(--danger);border:1px solid #f3c4bf}.notice{background:var(--accent-soft);color:var(--accent);border:1px solid #bfe3db}.loading{opacity:.55;transition:opacity .15s}.empty{text-align:center;color:var(--muted);padding:28px 12px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.toolbar .search{max-width:320px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}th,td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th.num{text-align:right}tbody tr:last-child td{border-bottom:0}.table-wrap td{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr.deleted td{color:var(--muted)}th{white-space:nowrap}td.actions{text-align:right;white-space:nowrap;max-width:none}.table-wrap td.actions,.table-wrap th:last-child{position:sticky;right:0;background:var(--surface);box-shadow:-1px 0 0 var(--line)}td.actions .btn+.btn{margin-left:6px}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#e8ecf0;color:var(--muted)}.pill[data-status=ACTIVE]{background:var(--accent-soft);color:var(--accent)}.pill[data-status=DELETED]{background:var(--danger-soft);color:var(--danger)}.pager{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:12px;color:var(--muted)}.overlay{position:fixed;inset:0;background:#12202b80;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto;z-index:10}.dialog{background:var(--surface);border-radius:10px;padding:22px 24px;width:100%;max-width:460px;box-shadow:0 16px 48px #00000040}.dialog.wide{max-width:860px}.dialog h2{font-size:18px;margin-bottom:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px 16px}.form-grid label,.login-card label,.filter-row label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}.form-grid label.full{grid-column:1 / -1}.form-grid label small{font-weight:400}.form-grid em{color:var(--danger);font-style:normal}.field-error{color:var(--danger)}.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--sidebar)}.login-card{background:var(--surface);border-radius:12px;padding:28px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}.login-card .brand{color:var(--ink);padding:0}.login-card .brand span{color:var(--accent)}.login-card p{margin:-8px 0 4px}.filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;width:100%}.filter-row label{min-width:150px;flex:1;max-width:240px;color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.tile,.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.tile.hero{background:var(--accent);border-color:var(--accent);color:#fff}.tile.hero .muted,.tile.hero .tile-label{color:#ffffffd9}.tile-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.tile-value{font-size:24px;font-weight:700;margin:4px 0 2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.card{margin-bottom:16px;min-width:0}.card-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}.card-grid .card{margin:0;overflow-x:auto}.chart{display:flex;gap:8px;height:220px}.chart-y{display:flex;flex-direction:column;justify-content:space-between;text-align:right;color:var(--muted);font-size:12px;min-width:36px}.chart-plot{flex:1;min-width:0;display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:linear-gradient(var(--line),var(--line)) 0 0 / 100% 1px no-repeat,linear-gradient(var(--line),var(--line)) 0 50% / 100% 1px no-repeat}.bar-slot{flex:1;min-width:0;position:relative}.bar-slot:hover{background:var(--accent-soft)}.bar{position:absolute;bottom:0;left:12%;right:12%;min-height:1px;background:var(--accent);border-radius:3px 3px 0 0}.chart-x{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin:6px 0 0 44px}.breakdown th,.breakdown td{padding:8px}.breakdown td:first-child{width:50%;max-width:0}.slice-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.share-track{height:4px;background:var(--bg);border-radius:2px;margin-top:5px}.share-fill{height:100%;background:var(--accent);border-radius:2px}.small-note{margin:10px 0 0}@media(max-width:1100px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.sidebar nav{flex-direction:row;flex-wrap:wrap}.nav-heading{display:none}.content{padding:16px}.card-grid,.tiles{grid-template-columns:1fr}.filter-row label{max-width:none}}
