:root{--bg:#f6f7f9;--surface:#fff;--text:#16181d;--muted:#5f6672;--border:#e3e6eb;--accent:#5b4cdb;--accent-soft:#ecebfd;--on-accent:#fff;--good:#137a4b;--good-soft:#e3f5ec;--warn:#9a5b00;--warn-soft:#fdf1dc;--bad:#b42318;--bad-soft:#fde8e6;--radius:10px;--scroll-shadow:#1018282e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1115;--surface:#171a20;--text:#e8eaee;--muted:#9aa2ae;--border:#2a2f38;--accent:#a59cff;--accent-soft:#26233f;--on-accent:#17142b;--good:#5fd39b;--good-soft:#13281f;--warn:#f0b85a;--warn-soft:#2d2412;--bad:#ff8a80;--bad-soft:#321816;--scroll-shadow:#00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1115;--surface:#171a20;--text:#e8eaee;--muted:#9aa2ae;--border:#2a2f38;--accent:#a59cff;--accent-soft:#26233f;--on-accent:#17142b;--good:#5fd39b;--good-soft:#13281f;--warn:#f0b85a;--warn-soft:#2d2412;--bad:#ff8a80;--bad-soft:#321816;--scroll-shadow:#00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:12px 24px;display:flex}.topbar .brand{color:var(--text);font-weight:650}.topbar nav{gap:16px;display:flex}.theme-toggle{border:1px solid var(--border);border-radius:8px;margin-left:auto;display:flex;overflow:hidden}.theme-toggle button{background:var(--bg);color:var(--muted);border:0;border-right:1px solid var(--border);border-radius:0;padding:5px 10px;line-height:1}.theme-toggle button:last-child{border-right:0}.theme-toggle button:hover:not([data-active=true]){background:var(--accent-soft);color:var(--text)}.theme-toggle button[data-active=true]{background:var(--accent);color:var(--on-accent)}.session{align-items:center;gap:10px;font-size:13px;display:flex}.logout-button{background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:8px;padding:5px 10px}.logout-button:hover{background:var(--bad-soft);color:var(--bad);border-color:var(--bad-soft)}main{max-width:1680px;margin:0 auto;padding:24px 32px}.login-wrap{justify-content:center;align-items:center;min-height:calc(100vh - 53px);display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;width:100%;max-width:320px;padding:32px;display:flex}.login-card h1{font-size:18px}.login-card label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-card input{width:100%}.login-card button{padding:8px 12px}.login-error{background:var(--bad-soft);color:var(--bad);border-radius:8px;margin:0;padding:8px 10px;font-size:13px}h1{margin:0 0 4px;font-size:22px}h2{margin:28px 0 10px;scroll-margin-top:16px;font-size:16px}.jump-nav{gap:16px;margin:16px 0 0;display:flex}.jump-nav a{color:var(--muted);font-size:13px;font-weight:600}.jump-nav a:hover{color:var(--accent);text-decoration:none}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.sub{color:var(--muted);margin:0 0 20px}.kpis{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.kpi .label{color:var(--muted);font-size:12px}.kpi .value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:650}.kpi .hint{color:var(--muted);font-size:12px}.kpi .value.bad{color:var(--bad)}.kpi .value.good{color:var(--good)}.dash-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:12px;display:grid}.kpi-stack{flex-direction:column;gap:8px;display:flex}.kpi-stack .kpi{justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.kpi-stack .kpi .label{font-size:13px}.kpi-stack .kpi .value{text-align:right;white-space:nowrap;font-size:20px;line-height:1.2;padding:0!important}@media (max-width:1100px){.dash-layout{grid-template-columns:minmax(0,1fr)}.kpi-stack{order:-1;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}}.dash-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.dash-grid .span-2{grid-column:span 2}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:14px 16px}.panel header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.panel header h2{margin:0;font-size:14px}.panel header .muted{font-size:12px}.panel .chart{padding:0}.panel .empty{padding:24px 8px}.live-list,.bar-list{margin:0;padding:0;list-style:none}.live-list li{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:7px 0;display:flex}.live-list li:last-child{border-bottom:0}.live-list a{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.live-list .num{font-variant-numeric:tabular-nums;font-size:12px}.pulse{background:var(--good);border-radius:50%;flex:none;width:8px;height:8px}@media (prefers-reduced-motion:no-preference){.pulse{animation:1.6s ease-out infinite pulse}}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--good) 55%, transparent)}to{box-shadow:0 0 0 7px #0000}}.bar-list li{padding:5px 0}.bar-row{justify-content:space-between;gap:12px;margin-bottom:4px;font-size:13px;display:flex}.bar-row>:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bar-row .num{font-variant-numeric:tabular-nums;font-weight:600}.bar-track{background:var(--bg);border-radius:999px;height:6px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:999px;height:100%}.bar-fill.good{background:var(--good)}.bar-fill.warn{background:var(--warn)}.bar-fill.bad{background:var(--bad)}.bar-fill.muted{background:var(--muted)}@media (max-width:900px){.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-grid .span-2{grid-column:auto}}.card{border:1px solid var(--border);border-radius:var(--radius);background-color:var(--surface);background-image:linear-gradient(to right, var(--surface) 30%, transparent), linear-gradient(to left, var(--surface) 30%, transparent), linear-gradient(to right, var(--scroll-shadow), transparent), linear-gradient(to left, var(--scroll-shadow), transparent);background-position:0,100%,0,100%;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px}th{color:var(--muted);background:var(--surface);font-size:12px;font-weight:600}thead th{z-index:1;box-shadow:0 1px 0 var(--border);position:sticky;top:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:color-mix(in srgb, var(--accent-soft) 40%, transparent)}tr.row-link{cursor:pointer;position:relative}tr.row-link .stretched-link:after{content:"";position:absolute;inset:0}th .sort-link{text-align:inherit;color:var(--muted);margin:-9px -12px;padding:9px 12px;display:block}th .sort-link:hover{background:var(--accent-soft);color:var(--text);text-decoration:none}th .sort-link.active{color:var(--accent)}.sort-arrow{width:9px;margin-left:4px;font-size:9px;display:inline-block}.pager{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.pager-links{align-items:center;gap:12px;display:flex}.pager-links .disabled{color:var(--border)}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:550;display:inline-block}.badge.good{background:var(--good-soft);color:var(--good)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.muted{background:var(--bg);color:var(--muted)}.muted{color:var(--muted)}.reason-code{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:1px 6px;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.empty{text-align:center;color:var(--muted);padding:32px}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.filters a{border:1px solid var(--border);color:var(--muted);background:var(--surface);border-radius:999px;padding:4px 10px}.filters a.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.circle-search{align-items:center;gap:6px;margin-left:auto;display:flex}.circle-search input{width:220px}.circle-search a{color:var(--muted);padding:4px 10px;font-size:13px}input,button,select,textarea{font:inherit}input,select,textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:5px 10px}input{width:160px}textarea{resize:vertical;width:100%}button{background:var(--accent);color:var(--on-accent);cursor:pointer;border:0;border-radius:8px;padding:5px 12px}button.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}button.secondary:hover{background:var(--accent-soft)}.tabs{border-bottom:1px solid var(--border);gap:4px;margin:12px 0 16px;display:flex}.tabs a{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-weight:600}.tabs a:hover{color:var(--text);text-decoration:none}.tabs a.active{color:var(--accent);border-bottom-color:var(--accent)}.notice{background:var(--accent-soft);color:var(--accent);border-radius:8px;margin:0 0 12px;padding:10px 14px}.notice.good{background:var(--good-soft);color:var(--good)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.bad{background:var(--bad-soft);color:var(--bad)}.mod-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.mod-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.mod-form label.grow{flex:1;min-width:240px}.mod-form.confirm{margin:16px 0 0}td.wrap{white-space:normal;min-width:160px}tr.highlight td{background:var(--good-soft)}mark{background:var(--warn-soft);color:var(--text);border-radius:3px;padding:0 2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}.action-picker{margin-bottom:16px;padding:16px}.action-picker fieldset{border:0;min-width:0;margin:0;padding:0}.action-picker legend{margin-bottom:10px;padding:0;font-weight:600}.action-options{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;display:grid}.action-option{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px 12px 40px;display:flex;position:relative}.action-option:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.action-option input{width:auto;accent-color:var(--accent);margin:0;position:absolute;top:14px;left:14px}.action-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.action-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.action-name{font-weight:600}.action-effect{flex-direction:column;gap:2px;display:flex}.action-effect code,.ledger code{color:var(--muted);font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.ids-row{flex-direction:column;gap:6px;margin-top:16px;display:flex}.ids-row>label{font-size:13px;font-weight:600}.ids-row>label .muted{font-weight:400}.ids-input{align-items:stretch;gap:8px;display:flex}.ids-input textarea{flex:1;min-height:42px}.ids-input button{padding:0 20px}.preview{border-color:color-mix(in srgb, var(--warn) 40%, var(--border));margin-bottom:16px;padding:16px}.preview h2{margin:0;font-size:16px}.preview-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.ledger{border:1px solid var(--border);border-radius:8px;margin:0 0 14px;padding:0;list-style:none;overflow:hidden}.ledger li{background:var(--warn-soft);grid-template-columns:minmax(150px,max-content) 24px max-content 1fr;align-items:baseline;gap:8px;padding:10px 14px;display:grid}.ledger li+li{border-top:1px solid var(--border)}.ledger li.idle{background:var(--surface)}.ledger .ledger-col{color:var(--text);font-size:13px}.ledger-arrow{color:var(--muted);text-align:center}.ledger .ledger-val{color:var(--warn);font-size:13px;font-weight:700}.ledger li.idle .ledger-val{color:var(--muted)}.ledger-rows{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}tr.unchanged td{color:var(--muted)}td.post-text{max-width:560px;line-height:1.45}.confirm-bar{align-items:center;gap:8px;margin-top:14px;display:flex}.confirm-bar input[name=reason]{flex:1;width:auto;padding:8px 12px}.confirm-bar button{white-space:nowrap;padding:8px 16px}.confirm-bar .cancel{color:var(--muted);padding:0 6px}.confirm-note{margin:8px 0 0}.back-link{margin:-4px 0 12px;font-size:13px}.user-cell{flex-direction:column;display:flex}label.user-cell{cursor:pointer}.user-link{font-weight:600}.user-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px;display:flex}.user-head h2{margin:0 0 2px;font-size:20px}.user-head p{margin:0 0 8px}.user-head p:last-child{margin:0}.user-actions{flex-wrap:wrap;gap:8px;display:flex}.button-link{background:var(--accent);color:var(--on-accent);border-radius:8px;padding:7px 14px;font-weight:550;display:inline-block}.button-link:hover{filter:brightness(1.05);text-decoration:none}.button-link.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.button-link.secondary:hover{background:var(--accent-soft);filter:none}h2 .muted{margin-left:4px;font-weight:400}.log-table td.ids-cell{font-variant-numeric:tabular-nums;min-width:120px}.post-search{gap:8px;margin-bottom:12px;display:flex}.post-search input[type=search]{background:var(--surface);border-radius:var(--radius);flex:1;width:auto;padding:10px 14px;font-size:16px}.post-search button{border-radius:var(--radius);padding:0 22px}.search-hint{margin-top:4px}.results-count{margin:0 0 8px;font-size:13px}.post-results th.check,.post-results td.check{width:1%;padding-right:0}.post-results th.id-col,.post-results td.id-col{text-align:left;width:1%;color:var(--muted);font-variant-numeric:tabular-nums}.post-results th.tight,.post-results td.tight{width:1%}.post-results.even-cols{table-layout:fixed;min-width:860px}.post-results.even-cols th,.post-results.even-cols td{text-overflow:ellipsis;text-align:left;width:auto;overflow:hidden}.post-results.even-cols th.check,.post-results.even-cols td.check{width:40px}.post-results.even-cols .user-cell>*{text-overflow:ellipsis;overflow:hidden}.post-results td.check input,.post-results th.check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.post-results td.post-text label{cursor:pointer;display:block}.post-results tr.unchanged label{cursor:default}.post-meta{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px;display:block}.post-results tbody tr:has(input:checked) td{background:var(--accent-soft)}.selection-bar{z-index:2;border:1px solid var(--border);background:var(--surface);width:fit-content;box-shadow:0 6px 24px var(--scroll-shadow);visibility:hidden;opacity:0;border-radius:999px;align-items:center;gap:10px;margin:12px 0 0 auto;padding:8px 8px 8px 16px;display:flex;position:sticky;bottom:16px;transform:translateY(8px)}.selection-bar.open{visibility:visible;opacity:1;transform:none}.selection-bar button{border-radius:999px;padding:6px 14px}@media (prefers-reduced-motion:no-preference){.selection-bar{transition:opacity .16s,transform .16s,visibility .16s}}@media (max-width:640px){.ids-input,.confirm-bar,.post-search{flex-direction:column;align-items:stretch}.ids-input button,.post-search button{padding:10px}.ledger li{grid-template-columns:1fr max-content}.ledger-arrow{display:none}.ledger-rows{text-align:left;grid-column:1/-1;font-weight:400}.selection-bar{width:auto;margin-left:0}}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.row-actions form{gap:6px;display:flex}.row-actions input{width:140px}.chart{padding:12px 16px}.chart svg{width:100%;height:140px;display:block}.chart .line{fill:none;stroke:var(--accent);stroke-width:2px}.chart .area{fill:var(--accent-soft)}.chart .axis{stroke:var(--border)}.chart text{fill:var(--muted);font-size:11px}.chart.tall svg{height:180px}.chart .bar{fill:color-mix(in srgb, var(--accent) 35%, transparent)}.chart .bar:hover{fill:var(--accent)}.chart .grid{stroke:var(--border);stroke-dasharray:3 4}.activity-chart .plot{position:relative}.activity-chart .y-labels{color:var(--muted);flex-direction:column;justify-content:space-between;font-size:11px;line-height:1;display:flex;position:absolute;left:0}.activity-chart .x-labels{height:16px;color:var(--muted);font-size:11px;position:relative}.activity-chart .x-labels span{white-space:nowrap;position:absolute;transform:translate(-50%)}.legend{color:var(--muted);gap:16px;margin-top:6px;font-size:12px;display:flex}.legend .swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.legend .swatch.bar{background:color-mix(in srgb, var(--accent) 35%, transparent)}.legend .swatch.line{vertical-align:3px;background:var(--accent);height:2px}.skeleton{background:linear-gradient(90deg, var(--border) 25%, var(--bg) 37%, var(--border) 63%);background-size:400% 100%;border-radius:6px;animation:1.4s infinite skeleton-pulse}@keyframes skeleton-pulse{0%{background-position:100%}to{background-position:0}}@media (max-width:640px){main{padding:16px}.topbar{flex-wrap:wrap;gap:12px;padding:12px 16px}input{flex:1}}
