:root{--bg: #f7f8fa;--surface: #ffffff;--ink: #111827;--muted: #6b7280;--line: #e5e7eb;--accent: #111827;--danger: #b91c1c;--warn-bg: #fef3c7;--warn-ink: #92400e;--radius: 8px;--gap: 16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.centered{display:grid;place-items:center;min-height:100vh}.muted{color:var(--muted)}.spacer{flex:1}.error{color:var(--danger);margin:0}.auth-page{display:grid;place-items:center;min-height:100vh;padding:var(--gap)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;width:100%;max-width:380px;display:grid;gap:10px}.card h1{margin:0 0 4px;font-size:20px}label{font-size:13px;color:var(--muted)}input,select{padding:10px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--ink)}button,.button{padding:10px 16px;border:0;border-radius:var(--radius);background:var(--accent);color:#fff;font:inherit;cursor:pointer;text-align:center;text-decoration:none}button:disabled{opacity:.6;cursor:default}button.link{background:none;color:var(--muted);padding:4px 8px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{font-weight:600}.banner{padding:10px 16px}.banner-billing{background:var(--warn-bg);color:var(--warn-ink)}.content{display:grid;grid-template-columns:260px 1fr;gap:var(--gap);padding:var(--gap)}.sidebar{display:grid;gap:4px;align-content:start}.sidebar a{padding:8px 10px;border-radius:var(--radius);color:var(--ink);text-decoration:none}.sidebar a:hover{background:var(--surface)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.boot-error{max-width:520px;margin:15vh auto;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.sidebar a.active{background:var(--surface);font-weight:600}.report-head h1{margin:0 0 2px;font-size:20px}.small{font-size:12px}.controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:16px 0}.controls label{display:grid;gap:4px;font-size:12px;color:var(--muted)}.controls input,.controls select{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink)}.controls button{font:inherit;padding:7px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer}.table-state{padding:24px 0}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.table-scroll table{border-collapse:collapse;width:100%;font-size:13px}.table-scroll th,.table-scroll td{padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.table-scroll thead th{position:sticky;top:0;background:var(--surface);text-align:left;font-weight:600;color:var(--muted)}.table-scroll .numeric{text-align:right;font-variant-numeric:tabular-nums}.table-scroll tbody tr:last-child td{border-bottom:none}.table-scroll td span{display:inline-block;max-width:460px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.sort{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;font-weight:600}.table-stale{opacity:.55;transition:opacity .12s ease}.pager{display:flex;align-items:center;gap:12px;margin-top:12px}.pager button{font:inherit;padding:6px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer}.pager button:disabled{opacity:.45;cursor:default}
