/* Per-lottery analytics */
.an-glance { display:flex; flex-direction:column; gap:16px; }
.an-glance-main { display:flex; gap:14px; align-items:flex-start; }
.an-glance-ico { width:48px; height:48px; border-radius:var(--r-sm); display:grid; place-items:center; flex:none; font-size:1.5rem;
  background:var(--good-soft); border:1px solid var(--primary); }
.an-glance-title { font-family:var(--font-display); font-weight:800; font-size:1.2rem; color:var(--ink);
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; }
.an-glance-text { margin:6px 0 0; color:var(--ink-2); line-height:1.65; font-size:.97rem; }
.an-stats { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; }
.an-stat { padding:12px 14px; border-radius:var(--r-sm); background:var(--surface-2); border:1px solid var(--line); min-width:0; }
.an-stat b { display:block; font-family:var(--font-display); font-size:1.45rem; font-weight:800; color:var(--ink); line-height:1.1; letter-spacing:-.01em; }
.an-stat b.hot { color:var(--good); font-family:var(--font-mono); }
.an-stat b.cold { color:var(--accent-ink); font-family:var(--font-mono); }
.an-stat span { display:block; font-size:.78rem; color:var(--muted); margin-top:3px; }
@media (max-width:600px) { .an-stats { grid-template-columns:1fr 1fr; } }

/* ---- Deviation charts (inline SVG, no charting library) ----
   Every bar is a digit's share minus the fair 10%: up = came up more often,
   down = less often. The zero line IS the fair share; the share is printed
   at the end of each bar so the picture never has to be decoded. */
.digit-bars { display:block; width:100%; height:auto; max-height:240px; }
.digit-bars .ds-bar { fill:var(--line-2); }
.digit-bars .ds-bar.hot { fill:var(--good); }
.digit-bars .ds-bar.cold { fill:var(--accent-fill); }
.digit-bars .ds-zero { stroke:var(--ink-2); stroke-width:1.2; }
.digit-bars .ds-zero-l { font-family:var(--font-mono); font-size:9px; font-weight:700; fill:var(--ink-2); }
.digit-bars .ds-v { font-family:var(--font-mono); font-size:11px; font-weight:700; fill:var(--ink-2); }
.digit-bars .ds-v.hot { fill:var(--good); }
.digit-bars .ds-v.cold { fill:var(--accent-ink); }
.digit-bars .ds-l { font-family:var(--font-mono); font-size:13px; font-weight:700; fill:var(--ink); }
.digit-bars .ds-l.hot { fill:var(--good); }
.digit-bars .ds-l.cold { fill:var(--accent-ink); }
.an-legend { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:8px; font-size:.82rem; color:var(--muted); }
.an-legend .k { display:inline-flex; align-items:center; gap:6px; }
.an-legend .sw { width:12px; height:12px; border-radius:3px; background:var(--line-2); display:inline-block; }
.an-legend .sw.hot { background:var(--good); }
.an-legend .sw.cold { background:var(--accent-fill); }
.an-legend .sw.zero { width:14px; height:2px; border-radius:0; background:var(--ink-2); }

.pos-bars { display:block; width:100%; height:auto; }
.pos-bars rect { fill:var(--line-2); }
.pos-bars rect.hot { fill:var(--good); }
.pos-bars rect.cold { fill:var(--accent-fill); }
.pos-bars .pz { stroke:var(--ink-2); stroke-width:.8; }
.pos-bars .pv { font-family:var(--font-mono); font-size:9px; font-weight:700; fill:var(--muted); }
.pos-bars .pv.hot { fill:var(--good); }
.pos-bars .pv.cold { fill:var(--accent-ink); }
.pos-bars .pl { font-family:var(--font-mono); font-size:9px; font-weight:700; fill:var(--ink); }
.pos-bars .pl.hot { fill:var(--good); }
.pos-bars .pl.cold { fill:var(--accent-ink); }
.an-table td, .an-table th { padding:8px 10px; }

.an-hc { display:flex; gap:16px; align-items:center; padding:14px 16px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface-2); }
.an-hc-d { font-size:2.4rem; font-weight:700; line-height:1; }

/* Per-place tiles */
.an-pos { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; }
.an-pos-card { padding:12px 13px; border-radius:var(--r-sm); background:var(--surface-2); border:1px solid var(--line);
  display:flex; flex-direction:column; align-items:flex-start; }
.an-pos-head { display:flex; flex-direction:column; gap:1px; margin-bottom:10px; }
.an-pos-head b { color:var(--ink); font-size:.95rem; }
.an-pos-digits { display:flex; gap:10px; }
.an-pos-d { display:flex; flex-direction:column; align-items:center; min-width:44px; padding:6px 8px; border-radius:var(--r-xs); background:var(--surface); border:1px solid var(--line-2); }
.an-pos-d i { font-style:normal; font-family:var(--font-mono); font-weight:700; font-size:1.35rem; line-height:1; }
.an-pos-d.hot i { color:var(--good); }
.an-pos-d.cold i { color:var(--accent-ink); }
.an-pos-d small { font-size:.62rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:700; margin-top:3px; }
@media (max-width:640px) { .an-pos { grid-template-columns:1fr 1fr; } }

.an-details { margin-top:14px; border-top:1px solid var(--line); padding-top:12px; }
.an-details summary { cursor:pointer; font-weight:600; color:var(--primary-ink); font-size:.9rem; min-height:44px; display:flex; align-items:center; }

/* ---- Where the winning chances are ---- */
.tc-stats { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; margin:14px 0 4px; }
.tc-stat { padding:10px 12px; border-radius:var(--r-sm); background:var(--surface-2); border:1px solid var(--line); min-width:0; }
.tc-stat b { display:block; font-family:var(--font-display); font-size:1.3rem; font-weight:800; color:var(--ink); line-height:1.15; letter-spacing:-.01em; }
.tc-stat.best { border-color:var(--primary); background:var(--good-soft); }
.tc-stat.best b { color:var(--good); font-family:var(--font-mono); }
.tc-stat span { display:block; font-size:.74rem; color:var(--muted); margin-top:3px; line-height:1.4; }
@media (max-width:400px) { .tc-stat b { font-size:1.1rem; } .tc-stat { padding:9px 10px; } }

.tc-h { font-size:.76rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:700; margin:18px 0 8px; }
.tc-list { display:flex; flex-direction:column; gap:8px; }
/* Two lines per tier, odds on the right, a full-width bar underneath:
     4th Prize  ₹5,000              1 in 526
     19 winning endings a draw         0.19%
     [bar] */
.tc-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 12px; align-items:baseline;
  padding:10px 12px 12px; border-radius:var(--r-sm); background:var(--surface-2); border:1px solid var(--line); }
.tc-row.best { border-color:var(--primary); background:var(--good-soft); }
.tc-tier { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; min-width:0; }
.tc-tier b { color:var(--ink); font-size:.98rem; }
.tc-amt { font-family:var(--font-mono); color:var(--ink-2); font-weight:600; font-size:.86rem; white-space:nowrap; }
.tc-odds { font-family:var(--font-mono); font-weight:700; color:var(--ink); font-size:1.05rem; white-space:nowrap; text-align:right; }
.tc-row.best .tc-odds { color:var(--good); }
.tc-cap { font-size:.78rem; color:var(--muted); }
.tc-pct { font-family:var(--font-mono); font-size:.76rem; color:var(--muted); white-space:nowrap; text-align:right; }
.tc-bar { grid-column:1 / -1; display:block; width:100%; height:7px; margin-top:6px; border-radius:4px; background:var(--surface-3); }
.tc-bar rect { fill:var(--primary-fill); }
.tc-row.best .tc-bar rect { fill:var(--good); }

.tc-exact { display:flex; flex-wrap:wrap; gap:6px; }
.tc-x { display:inline-flex; align-items:baseline; gap:6px; padding:6px 10px; border-radius:var(--r-xs);
  background:var(--surface-2); border:1px solid var(--line); font-size:.84rem; color:var(--ink-2); }
.tc-x b { color:var(--ink); }
