:root{
  --fg:#101418;
  --muted:#5b6672;
  --line:rgba(27,42,74,.14);
  --bg:#F1F4F7;
  --soft:#FFFFFF;
  --accent:#B93C55;
  --accent-soft:#FBEAEE;
  --warn:#8F3E00;
  --radius:4px;
  --radius-btn:10px;
  --t-body:16px;
  --t-small:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--fg);
  font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:var(--t-body);line-height:1.6;
}
.wrap{max-width:1100px;margin:0 auto;padding:24px 16px 64px}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
h1{font-size:26px;margin:0 0 4px;letter-spacing:-.01em}
.lede{color:var(--muted);font-size:var(--t-small);margin:0}
.top-actions{display:flex;gap:8px}
.card{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:18px 0}
label{display:block;font-size:var(--t-small);color:var(--muted);margin:0 0 6px}
input[type=password]{
  width:100%;max-width:340px;padding:10px 12px;font:inherit;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);color:var(--fg);
}
input[type=password]:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn{
  appearance:none;border:1px solid var(--accent);background:var(--accent);color:#fff;
  font:inherit;font-weight:600;padding:10px 16px;border-radius:var(--radius-btn);
  cursor:pointer;min-height:42px;margin-top:12px;
}
.btn.ghost{background:var(--soft);color:var(--accent)}
.btn[disabled]{opacity:.5;cursor:default}
.msg{color:var(--muted);font-size:var(--t-small);margin:10px 0 0}
.msg.error{color:var(--warn)}
.banner{
  border:1px solid var(--line);border-left:3px solid var(--accent);
  background:var(--soft);border-radius:var(--radius);padding:10px 12px;
  font-size:var(--t-small);color:var(--muted);margin:18px 0
}
.banner.demo{border-left-color:var(--warn);color:var(--warn)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}
.kpi{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}
.kpi .k{font-size:12px;color:var(--muted);text-transform:none}
.kpi .v{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.kpi .s{font-size:12px;color:var(--muted)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 10px}
.tabs button{
  appearance:none;border:1px solid var(--line);background:var(--soft);color:var(--fg);
  font:inherit;font-size:var(--t-small);padding:6px 12px;border-radius:999px;cursor:pointer
}
.tabs button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);font-weight:600}
.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}
table{border-collapse:collapse;width:100%;font-size:var(--t-small)}
th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;white-space:nowrap}
th{background:var(--soft);font-weight:600;cursor:pointer;position:sticky;top:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tbody tr:hover{background:#fafbfc}
.foot{display:flex;gap:8px;color:var(--muted);font-size:12px;margin-top:32px;border-top:1px solid var(--line);padding-top:12px}
@media (max-width:560px){h1{font-size:22px}.kpi .v{font-size:19px}}
