:root{
  --ground:#F1F0ED; --surface:#FFFFFF; --surface-2:#F8F7F4; --sunk:#E9E7E2;
  --ink:#191A18; --ink-2:#4A4B47; --muted:#7B7C76;
  --line:#DCDAD3; --line-soft:#E9E7E1;
  --accent:#1F4D46; --accent-soft:#DFEAE7; --accent-ink:#153833;
  --good:#1C6A48; --good-soft:#DEEFE5;
  --warn:#8A6510; --warn-soft:#F7ECD5;
  --bad:#A33427; --bad-soft:#F8E3DF;
  --shadow:0 1px 2px rgba(25,26,24,.05),0 10px 26px -18px rgba(25,26,24,.3);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#141614; --surface:#1C1E1C; --surface-2:#232523; --sunk:#101210;
  --ink:#E8E9E4; --ink-2:#B5B7B0; --muted:#83857E;
  --line:#32352F; --line-soft:#272A25;
  --accent:#63B5A5; --accent-soft:#17302B; --accent-ink:#8FD2C4;
  --good:#5CBE8C; --good-soft:#152C1D;
  --warn:#D6A44A; --warn-soft:#2E2515;
  --bad:#E08276; --bad-soft:#331C19;
  --shadow:0 1px 2px rgba(0,0,0,.45),0 10px 26px -18px rgba(0,0,0,.9);
}}
:root[data-theme="dark"]{
  --ground:#141614; --surface:#1C1E1C; --surface-2:#232523; --sunk:#101210;
  --ink:#E8E9E4; --ink-2:#B5B7B0; --muted:#83857E;
  --line:#32352F; --line-soft:#272A25;
  --accent:#63B5A5; --accent-soft:#17302B; --accent-ink:#8FD2C4;
  --good:#5CBE8C; --good-soft:#152C1D;
  --warn:#D6A44A; --warn-soft:#2E2515;
  --bad:#E08276; --bad-soft:#331C19;
  --shadow:0 1px 2px rgba(0,0,0,.45),0 10px 26px -18px rgba(0,0,0,.9);
}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);
  font-family:"Golos Text",system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Bitter",Georgia,serif;margin:0;letter-spacing:-.012em}
h1{font-size:26px;font-weight:800;line-height:1.1}
h2{font-size:17px;font-weight:700}
h3{font-size:14px;font-weight:600}
p{margin:0}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.num{font-family:"JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}

/* каркас */
.shell{display:grid;grid-template-columns:212px 1fr;min-height:100vh}
nav{background:var(--surface);border-right:1px solid var(--line);padding:18px 0;display:flex;flex-direction:column;gap:3px}
nav .brand{font-family:"Bitter",serif;font-weight:800;font-size:17px;padding:0 18px 14px;
  border-bottom:1px solid var(--line-soft);margin-bottom:10px;display:flex;flex-direction:column;gap:2px}
nav .brand small{font-family:"Golos Text",sans-serif;font-weight:400;font-size:11.5px;color:var(--muted);letter-spacing:.02em}
nav a{display:block;padding:8px 18px;color:var(--ink-2);font-size:14.5px;border-left:3px solid transparent}
nav a:hover{background:var(--surface-2);text-decoration:none}
nav a.on{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft);font-weight:600}
nav .sp{flex:1}
nav .out{font-size:12.5px;color:var(--muted);padding:8px 18px}
nav .theme{background:none;border:0;color:var(--muted);font-size:12.5px;text-align:left;
  padding:8px 18px;cursor:pointer;font-weight:400}
nav .theme:hover{color:var(--accent)}
nav .theme:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
main{padding:26px 28px 70px;max-width:1180px}
.head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.head p{color:var(--muted);font-size:13.5px}

/* плитки */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:22px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:5px;box-shadow:var(--shadow);padding:13px 15px;
  display:flex;flex-direction:column;gap:4px}
.tile .k{font-size:12px;color:var(--muted);letter-spacing:.02em}
.tile .v{font-family:"JetBrains Mono",monospace;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;letter-spacing:-.02em}
.tile .s{font-size:12px;color:var(--muted)}
.tile.acc{border-left:3px solid var(--accent)}

/* таблицы */
.card{background:var(--surface);border:1px solid var(--line);border-radius:5px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:22px}
.card>.t{display:flex;align-items:baseline;gap:10px;padding:13px 15px;border-bottom:1px solid var(--line)}
.card>.t p{font-size:12.5px;color:var(--muted);margin-left:auto}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th{font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
  text-align:right;padding:9px 12px;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}
th:first-child{text-align:left}
th a{color:var(--muted)}
th a.on{color:var(--accent)}
td{padding:8px 12px;border-bottom:1px solid var(--line-soft);text-align:right;white-space:nowrap;
  font-family:"JetBrains Mono",monospace;font-variant-numeric:tabular-nums}
td:first-child{text-align:left;font-family:"Golos Text",sans-serif;white-space:normal;min-width:190px}
tbody tr:hover td{background:var(--surface-2)}
tr:last-child td{border-bottom:0}
.pos{color:var(--good)}
.neg{color:var(--bad)}
.dim{color:var(--muted)}

.pill{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  padding:2px 7px;border-radius:2px}
.p-good{background:var(--good-soft);color:var(--good)}
.p-warn{background:var(--warn-soft);color:var(--warn)}
.p-bad{background:var(--bad-soft);color:var(--bad)}
.p-acc{background:var(--accent-soft);color:var(--accent-ink)}

/* полоска доли */
.bar{position:relative;height:6px;background:var(--sunk);border-radius:3px;overflow:hidden;min-width:54px;display:inline-block;vertical-align:middle}
.bar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);display:block}

/* фильтры и формы */
.filters{display:flex;gap:9px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
label.f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
input,select{font-family:"Golos Text",sans-serif;font-size:14px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:4px;padding:7px 9px}
input.n{font-family:"JetBrains Mono",monospace;font-variant-numeric:tabular-nums;font-weight:600}
input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
button{font-family:"Golos Text",sans-serif;font-size:13.5px;font-weight:600;color:#fff;background:var(--accent);
  border:0;border-radius:4px;padding:8px 14px;cursor:pointer}
:root[data-theme="dark"] button,:root:not([data-theme="light"]) button{color:#0C1F1C}
button.ghost{background:none;color:var(--muted);border:1px solid var(--line)}
button:hover{opacity:.9}

/* экономика */
.scen{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.scen form{background:var(--surface);border:1px solid var(--line);border-radius:5px;box-shadow:var(--shadow);
  padding:14px 15px;display:flex;flex-direction:column;gap:11px}
.scen .top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.scen .big{font-family:"JetBrains Mono",monospace;font-variant-numeric:tabular-nums;font-size:27px;font-weight:600;letter-spacing:-.03em}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rows{display:flex;flex-direction:column;font-size:13px}
.rows div{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid var(--line-soft)}
.rows div:last-child{border-bottom:0}
.rows span{color:var(--muted)}
.rows b{font-family:"JetBrains Mono",monospace;font-variant-numeric:tabular-nums;font-weight:600}
.actions{display:flex;gap:8px}

.note{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:4px;
  padding:11px 14px;font-size:13.5px;color:var(--ink-2);margin-bottom:14px}
.note b{color:var(--ink)}

/* вход */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login form{background:var(--surface);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);
  padding:26px;display:flex;flex-direction:column;gap:13px;width:330px}
.login h1{font-size:22px}
.login .err{background:var(--bad-soft);color:var(--bad);border-radius:3px;padding:8px 11px;font-size:13px}

/* спарк-график */
.spark{display:flex;align-items:flex-end;gap:3px;height:56px}
.spark i{flex:1;background:var(--accent-soft);border-top:2px solid var(--accent);display:block;min-height:2px}
.sparkwrap{display:flex;flex-direction:column;gap:6px}
.sparklabels{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}

@media (max-width:760px){
  .shell{grid-template-columns:1fr}
  nav{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line);padding:10px}
  nav .brand{border:0;margin:0;padding:0 10px 0 8px}
  nav a{border-left:0;border-bottom:3px solid transparent;padding:6px 10px}
  nav a.on{border-left:0;border-bottom-color:var(--accent)}
  nav .sp{display:none}
  main{padding:18px 14px 60px}
}
