:root{
  --bg: #fbfaf7;
  --ink: #1c1c1c;
  --muted: #6b6b6b;
  --card: #ffffff;
  --line: rgba(0,0,0,0.08);
  --accent: #0b6b2f;
  --danger: #8a1f11;
  --chip: rgba(0,0,0,0.05);
  --shadow: 0 10px 30px rgba(0,0,0,0.06);
  --radius: 14px;
}

*{box-sizing:border-box}
body{
  margin:0;
  background: radial-gradient(1200px 500px at 20% -10%, rgba(11,107,47,0.15), transparent 60%),
              radial-gradient(900px 500px at 100% 0%, rgba(138,31,17,0.10), transparent 55%),
              var(--bg);
  color:var(--ink);
  font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
  line-height:1.35;
}

a{color:inherit}
.wrap{max-width:1200px;margin:28px auto;padding:0 18px}
.top{
  display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;
  margin-bottom:18px;
}
.brand h1{margin:0;font-size:28px;letter-spacing:0.2px}
.brand .sub{color:var(--muted);font-size:13px;margin-top:4px}

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:14px 0 16px}
@media (max-width: 1100px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width: 640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat{padding:12px 12px 10px}
.stat .k{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:0.08em}
.stat .v{font-size:20px;margin-top:6px}
.stat .v small{font-size:12px;color:var(--muted)}
.stat .v.positive{color:var(--accent)}
.stat .v.negative{color:var(--danger)}

.filters{padding:14px}
.filters form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.filters label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
.filters input,.filters select{
  font:inherit;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 10px;
  min-width:160px;
}
.filters input[type="text"]{min-width:260px}
.filters .chk{flex-direction:row;align-items:center;gap:8px;color:var(--ink)}
.filters button{
  border:1px solid var(--line);
  background: linear-gradient(180deg, rgba(11,107,47,0.12), rgba(11,107,47,0.06));
  padding:9px 12px;
  border-radius:10px;
  cursor:pointer;
}
.filters .ghost{
  background:transparent;
}

.tabs{
  display:flex;gap:8px;flex-wrap:wrap;
  padding:10px;
  border-bottom:1px solid var(--line);
}
.tab{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid transparent;
  background:transparent;
  cursor:pointer;
  color:var(--muted);
  font-size:13px;
}
.tab[aria-selected="true"]{
  color:var(--ink);
  border-color:var(--line);
  background:rgba(0,0,0,0.02);
}
.chip{background:var(--chip);border-radius:999px;padding:2px 8px;font-size:12px;color:var(--muted)}

.section{display:none;padding:14px}
.section.active{display:block}

table{width:100%;border-collapse:collapse}
th,td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);text-align:left}
td{font-size:13px}
.mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace}
.muted{color:var(--muted)}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--chip);font-size:12px}
.pill.ok{background:rgba(11,107,47,0.12);color:var(--accent)}
.pill.bad{background:rgba(138,31,17,0.10);color:var(--danger)}
.foot{margin-top:10px;color:var(--muted);font-size:12px}
.err{padding:14px;border-left:4px solid var(--danger);background:rgba(138,31,17,0.06)}

.charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width: 900px){.charts-grid{grid-template-columns:1fr}}
.chart-card{padding:12px}
.chart-head{display:flex;gap:10px;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.chart-title{font-size:12px;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted)}
.chart-wrap{position:relative;height:280px}
.chart-wrap.tall{height:340px}
.status{color:var(--muted);font-size:12px}
