:root{--bg:#f6f4f7;--surface:#fff;--text:#1f1a22;--muted:#655d6a;--divider:#e4dfe6;--accent:#6e5a75;--accent-strong:#5a4861;--accent-soft:#ebe4ed;--warn:#f3ead8;--warn-text:#6a5223;--ok:#dfece6;--ok-text:#2c5b50;--danger:#f2dcd4;--danger-text:#9a3523;--info:#e1e8ee;--info-text:#435d70;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}.layout{grid-template-columns:232px 1fr;min-height:100vh;display:grid}aside.sidebar{background:var(--surface);border-right:1px solid var(--divider);height:100vh;padding:20px 12px;position:sticky;top:0;overflow:auto}.brand{padding:0 8px 16px;font-size:20px;font-weight:700}.brand span{color:var(--accent);font-weight:600}nav{flex-direction:column;gap:2px;display:flex}nav .nav-group{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:14px 10px 4px;font-size:11px;font-weight:700}nav a{color:var(--text);border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:14px;text-decoration:none;display:flex}nav a:hover{background:var(--bg)}nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}nav a .count{background:var(--accent);color:#fff;border-radius:99px;padding:1px 7px;font-size:11px;font-weight:700}main{min-width:0;padding:0 32px 48px}.banner{background:var(--warn);color:var(--warn-text);margin:0 -32px 24px;padding:8px 32px;font-size:13px;font-weight:600}.banner.backend{background:var(--accent-soft);color:var(--accent-strong)}h1{margin:0 0 4px;font-size:24px}h2{margin:0;font-size:17px}.header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.header .lede{color:var(--muted);margin:0;font-size:14px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions.end{justify-content:flex-end;margin-top:16px}.section{margin:24px 0}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.table-wrap{background:var(--surface);border:1px solid var(--divider);border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--divider);vertical-align:top;padding:10px 12px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:var(--surface);font-size:12px;font-weight:600;position:sticky;top:0}.th-sort{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;padding:0}tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}tr.clickable:hover td,tr.clickable:focus-visible td{background:var(--bg)}tr.selected td{background:var(--accent-soft)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.status{white-space:nowrap;color:#444;background:#eee;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.status-accent{background:var(--accent-soft);color:var(--accent-strong)}.status-ok{background:var(--ok);color:var(--ok-text)}.status-warn{background:var(--warn);color:var(--warn-text)}.status-danger{background:var(--danger);color:var(--danger-text)}.status-info{background:var(--info);color:var(--info-text)}.tag{background:var(--warn);color:var(--warn-text);border-radius:99px;padding:1px 6px;font-size:11px;font-weight:600}.state-published{background:var(--ok);color:var(--ok-text)}.state-archived{color:#555;background:#eee}.muted{color:var(--muted);font-size:14px}.small{font-size:12px}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:8px;display:grid}.stat{background:var(--surface);border:1px solid var(--divider);border-radius:12px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.stat strong{font-variant-numeric:tabular-nums;font-size:26px}.stat span{color:var(--muted);font-size:13px}.stat small{color:var(--muted);font-size:11px}.stat-warn strong{color:var(--warn-text)}.stat-danger strong{color:var(--danger-text)}.stat-ok strong{color:var(--ok-text)}.empty{background:var(--surface);border:1px dashed var(--divider);color:var(--muted);text-align:center;border-radius:12px;padding:32px}.state{padding:16px 0}.error-box{color:var(--danger-text)}.locked{padding:48px}.locked .form.narrow{max-width:360px}.form{gap:12px;max-width:720px;margin-bottom:24px;display:grid}.form.grid2{grid-template-columns:1fr 1fr}.form.grid2 .span2{grid-column:span 2}.form label,.field{color:var(--muted);gap:4px;font-size:13px;font-weight:600;display:grid}.form label.check{color:var(--text);align-items:center;gap:8px;font-weight:400;display:flex}input,textarea,select{font:inherit;border:1px solid var(--divider);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:8px 14px}button:hover{background:var(--accent-strong)}button.secondary{background:var(--accent-soft);color:var(--accent-strong)}button.secondary:hover{background:#dfd4e2}button.link{color:var(--accent-strong);background:0 0;padding:0;text-decoration:underline}button.link.danger,.danger{color:var(--danger-text)}button.danger-btn{background:var(--danger-text)}button.chip{background:var(--surface);color:var(--text);border:1px solid var(--divider);border-radius:99px;padding:6px 12px;font-size:13px}button.chip.selected{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent-soft);font-weight:600}button:disabled{opacity:.5;cursor:default}.error{color:var(--danger-text)}.ok{color:var(--ok-text);font-weight:600}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filters .search{gap:6px;display:flex}.filters input,.filters select{min-height:36px}.pagination{justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.period{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.period-custom{align-items:center;gap:6px;display:flex}.statusbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.media-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:12px 0 24px;display:grid}.media-grid figure{background:var(--surface);border:1px solid var(--divider);border-radius:12px;margin:0;padding:8px}.media-grid img{border-radius:8px;width:100%;height:auto;display:block}.media-grid figcaption{margin-top:6px;font-size:12px}.upload{align-items:center;gap:10px;margin:4px 0;font-size:13px;display:flex}.upload.failed{color:var(--danger-text)}.card{background:var(--surface);border:1px solid var(--divider);border-radius:12px;padding:16px}ul.plain{padding:0;list-style:none}.nowrap{white-space:nowrap}.kv{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;font-size:14px;display:grid}.kv div{display:contents}.kv dt{color:var(--muted)}.kv dd{margin:0}.scrim{z-index:20;background:#1f1a2259;position:fixed;inset:0}.drawer{background:var(--surface);z-index:21;flex-direction:column;width:min(560px,92vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #00000026}.drawer.wide{width:min(820px,94vw)}.drawer-head{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px 12px;display:flex}.drawer-head h2{font-size:20px}.drawer-body{align-content:start;gap:18px;padding:16px 24px 32px;display:grid;overflow:auto}.dialog{background:var(--surface);z-index:22;border-radius:14px;width:min(480px,92vw);padding:20px 24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 48px #00000040}.dialog h2{margin-bottom:8px;font-size:18px}.dialog-body{color:var(--muted);margin-bottom:12px;font-size:14px}.notice{border-radius:10px;padding:10px 12px;font-size:13px}.notice-info{background:var(--info);color:var(--info-text)}.notice-warn{background:var(--warn);color:var(--warn-text)}.notice-danger{background:var(--danger);color:var(--danger-text)}.notice-ok{background:var(--ok);color:var(--ok-text)}.timeline{gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.timeline li{grid-template-columns:170px 1fr;gap:12px;display:grid}.timeline time{color:var(--muted);font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.steps{gap:14px;padding-left:20px;display:grid}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=1100px){.two-col{grid-template-columns:1fr}}.bars{gap:4px;display:grid}.bar{grid-template-columns:110px 1fr 60px;align-items:center;gap:8px;font-size:13px;display:grid}.bar i{background:var(--accent);border-radius:5px;min-width:2px;height:10px;display:block}.bar b{font-variant-numeric:tabular-nums;text-align:right}.definitions{color:var(--muted);font-size:13px}.definitions dt{color:var(--text);margin-top:6px;font-weight:600}.definitions dd{margin:0}
