:root{
  --bg:#f6f7f9; --panel:#ffffff; --panel-2:#f0f2f5; --border:#e3e6ea;
  --border-strong:#cdd2d8; --text:#1f2328; --text-dim:#57606a; --text-mute:#8b949e;
  --accent:#2563eb; --blue:#2563eb; --green:#16a34a; --yellow:#d97706; --red:#dc2626;
  --good-bg:rgba(22,163,74,.10); --bad-bg:rgba(220,38,38,.10);
  --shadow:0 1px 2px rgba(16,24,40,.06);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.45;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;}
a{color:var(--accent);text-decoration:none;}
.container{max-width:1180px;margin:0 auto;padding:16px 18px 60px;}

/* header */
.header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px 0;border-bottom:1px solid var(--border);margin-bottom:16px;}
.brand{font-size:20px;font-weight:800;}
.brand small{color:var(--text-dim);font-weight:500;font-size:13px;margin-left:6px;}
.spacer{flex:1;}
select,button.ctl{background:var(--panel);color:var(--text);border:1px solid var(--border-strong);
  border-radius:8px;padding:8px 12px;font-size:14px;cursor:pointer;}
select:hover,button.ctl:hover{border-color:var(--accent);}
.btn-meth{background:var(--accent);color:#fff;font-weight:700;border:none;
  border-radius:8px;padding:9px 14px;cursor:pointer;}
.sources{color:var(--text-mute);font-size:12px;margin:-6px 0 14px;}

/* controls */
.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden;}
.seg button{background:var(--panel);color:var(--text-dim);border:none;padding:8px 14px;
  cursor:pointer;font-size:13px;}
.seg button.active{background:var(--accent);color:#fff;font-weight:700;}

/* tabs */
.tabs{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--border);}
.tabs button{background:none;border:none;color:var(--text-dim);padding:10px 16px;
  font-size:15px;cursor:pointer;border-bottom:2px solid transparent;}
.tabs button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:700;}

/* kpis */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;}
.kpi{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);}
.kpi .label{color:var(--text-dim);font-size:12px;}
.kpi .value{font-size:22px;font-weight:800;margin-top:4px;}
.kpi .sub{color:var(--text-mute);font-size:12px;margin-top:2px;}
.kpi .sub.good{color:var(--green);} .kpi .sub.bad{color:var(--red);}

/* note */
.note{background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:14px 18px;margin-bottom:16px;box-shadow:var(--shadow);}
.note h4{margin:0 0 8px;font-size:15px;}
.note ul{margin:4px 0;padding-left:20px;} .note li{margin:3px 0;}
.note .rec{color:#b45309;}

/* tables */
.tbl-title{font-weight:700;margin:8px 0;}
table{width:100%;border-collapse:collapse;background:var(--panel);
  border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px;box-shadow:var(--shadow);}
th,td{padding:8px 12px;text-align:left;font-size:13px;border-bottom:1px solid var(--border);}
th{color:var(--text-dim);font-weight:600;background:var(--panel-2);}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;}
tr.section td{font-weight:700;background:var(--panel-2);}
tr.subtotal td{font-weight:700;background:var(--good-bg);}
tr.subtotal.bad td{background:var(--bad-bg);}
tr.line td:first-child{padding-left:26px;color:var(--text-dim);}
tr:last-child td{border-bottom:none;}

/* charts */
.viz-title{font-weight:700;margin:18px 0 8px;font-size:15px;}
.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.chart-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:var(--shadow);}
.chart-card .t{font-weight:700;margin-bottom:8px;font-size:14px;}
.chart-wrap{position:relative;height:300px;}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:820px){.charts,.cols2{grid-template-columns:1fr;}}
.muted{color:var(--text-mute);}

/* financial ratios */
.ratios{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:16px;}
.ratio{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--border-strong);
  border-radius:10px;padding:12px 14px;box-shadow:var(--shadow);}
.ratio.g{border-left-color:var(--green);} .ratio.y{border-left-color:var(--yellow);} .ratio.r{border-left-color:var(--red);}
.ratio .rn{color:var(--text-dim);font-size:12px;}
.ratio .rv{font-size:20px;font-weight:800;margin-top:3px;}
.ratio.g .rv{color:var(--green);} .ratio.r .rv{color:var(--red);} .ratio.y .rv{color:#b45309;}
.ratio .rt{color:var(--text-mute);font-size:11px;margin-top:3px;}
