:root{--bg:#0f1115;--panel:#171a21;--line:#262b36;--text:#e6e8ee;--muted:#8b93a7;--accent:#f7931a;--green:#3ecf8e;--red:#ff5c5c;--blue:#5b9cff}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:5}
header .brand{font-weight:700;color:var(--accent);font-size:15px}
header nav a{color:var(--text);margin-right:14px}header nav a.active{color:var(--accent)}
header .meta{margin-left:auto;color:var(--muted);font-size:12px}
main{padding:16px 18px;max-width:1600px;margin:0 auto}
h1{font-size:20px;margin:0 0 12px}h2{font-size:16px;margin:18px 0 8px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:14px;overflow-x:auto;min-width:0}
.grid2>*{min-width:0}
body{overflow-x:hidden}
.filters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.filters label{display:flex;flex-direction:column;font-size:11px;color:var(--muted);gap:3px}
input,select,button,textarea{background:#0f1218;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit}
input[type=number]{width:90px}
button,.btn{background:var(--accent);color:#111;border:none;font-weight:600;cursor:pointer;padding:7px 12px;border-radius:6px}
button.secondary,.btn.secondary{background:#262b36;color:var(--text)}
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th:first-child,td:first-child,th.l,td.l{text-align:left}
th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0;background:var(--panel)}
th a{color:var(--muted)}th a.on{color:var(--accent)}
tr:hover td{background:#1c2029}
.pos{color:var(--green)}.neg{color:var(--red)}.muted{color:var(--muted)}
.tag{display:inline-block;font-size:10px;padding:1px 6px;border-radius:10px;border:1px solid var(--line);color:var(--muted);margin-right:3px}
.tag.dev{border-color:#b45309;color:#f59e0b}.tag.bot{border-color:#6d28d9;color:#a78bfa}.tag.cl{border-color:#0e7490;color:#22d3ee}.tag.fresh{border-color:#15803d;color:#4ade80}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.kpi{background:#0f1218;border:1px solid var(--line);border-radius:8px;padding:10px}
.kpi .v{font-size:18px;font-weight:700}.kpi .k{font-size:11px;color:var(--muted);text-transform:uppercase}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.pager{display:flex;gap:10px;align-items:center;margin-top:10px;color:var(--muted)}
.login{max-width:360px;margin:80px auto}
.login input{width:100%;margin-bottom:10px}
.err{color:var(--red);margin-bottom:10px}
.ok{color:var(--green)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.grid2{grid-template-columns:1fr}header nav a{margin-right:8px}main{padding:10px}header .meta{margin-left:0;width:100%}h1{font-size:16px;word-break:break-all}}
canvas{max-width:100%}
.small{font-size:12px}
