:root{--bg:#f6f4f0;--card:#fff;--ink:#1f2328;--muted:#6b6f76;--line:#e6e1d8;--accent:#b4541a;--accent-2:#f3e3d6;
--up:#c0392b;--down:#1e8449;--promo:#7d3c98;--own:#b4541a;--radius:10px;font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header{background:#22201c;color:#fff;display:flex;align-items:center;gap:1.2rem;padding:.6rem 1.2rem;position:sticky;top:0;z-index:5;flex-wrap:wrap}
header .brand{font-weight:700;letter-spacing:.02em}header .brand span{color:#f0a36b}
header nav{display:flex;gap:.2rem;flex-wrap:wrap}header nav a{color:#ddd;padding:.35rem .6rem;border-radius:6px}
header nav a.on,header nav a:hover{background:#3a362f;color:#fff;text-decoration:none}
header .me{margin-left:auto;color:#aaa;font-size:.9em}header .me a{color:#ccc}
.badge{display:inline-block;background:var(--accent);color:#fff;border-radius:9px;padding:0 .45em;font-size:.8em;margin-left:.2em}
main{padding:1.2rem;max-width:1500px;margin:0 auto}
h1{font-size:1.45rem;margin:.2rem 0 1rem}h2{font-size:1.1rem;margin:1.4rem 0 .6rem}h3{font-size:1rem;margin:.8rem 0 .4rem}
.grid{display:grid;gap:1rem}.g2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;overflow:auto}
.kpi .v{font-size:1.7rem;font-weight:700}.kpi .l{color:var(--muted);font-size:.85em}
table{border-collapse:collapse;width:100%}th,td{padding:.38rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:.8em;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#faf8f5;position:sticky;top:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.own td{background:var(--accent-2)}tr:hover td{background:#fbf6f0}
.muted{color:var(--muted)}.small{font-size:.85em}.nowrap{white-space:nowrap}
.tag{display:inline-block;border:1px solid var(--line);border-radius:5px;padding:0 .35em;font-size:.78em;color:var(--muted);margin:.05rem .1rem .05rem 0;background:#fff}
.tag.promo{border-color:var(--promo);color:var(--promo)}.tag.key{border-color:var(--accent);color:var(--accent)}.tag.own{background:var(--own);color:#fff;border-color:var(--own)}
.up{color:var(--up)}.down{color:var(--down)}
.idx{font-weight:600}.idx.hi{color:var(--up)}.idx.lo{color:var(--down)}
form.filters{display:flex;gap:.5rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}
label{display:flex;flex-direction:column;font-size:.8em;color:var(--muted);gap:.2rem}
input,select,textarea{font:inherit;padding:.38rem .5rem;border:1px solid #cfc8bc;border-radius:7px;background:#fff;color:var(--ink)}
input[type=checkbox]{width:auto}
button,.btn{font:inherit;background:var(--accent);color:#fff;border:0;border-radius:7px;padding:.42rem .9rem;cursor:pointer;display:inline-block}
button.ghost,.btn.ghost{background:#fff;color:var(--ink);border:1px solid #cfc8bc}
button.danger{background:#8e2b22}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.heat td.cell{text-align:right;font-variant-numeric:tabular-nums}
.chart{position:relative;height:340px}
.thumb{width:44px;height:44px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid var(--line)}
.photo-big{max-width:100%;max-height:78vh;border-radius:8px;border:1px solid var(--line)}
.notice{background:#fff8e6;border:1px solid #f0d58c;padding:.6rem .8rem;border-radius:8px;margin-bottom:1rem}
.ok{background:#e9f7ef;border-color:#a9dfbf}
.login{max-width:380px;margin:12vh auto}.login .card{padding:1.6rem}
@media (max-width:700px){main{padding:.7rem}.g2{grid-template-columns:1fr}th,td{padding:.3rem}}
