/* Rate Pulse dashboard. Uses the site's tokens from styles.css; nothing here overrides the brand. */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 40px}
.tile{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--night);padding:14px 16px}
.tile .k{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:0 0 6px}
.tile .v{font-family:var(--head);font-weight:800;font-size:1.9rem;line-height:1.05;margin:0;text-transform:uppercase}
.tile .v span,.city .v span{font-size:1rem;font-weight:600;color:var(--ink-2);text-transform:none;margin-left:2px}
.tile .s{font-size:.86rem;color:var(--ink-2);margin:6px 0 0}
.chart{margin:18px 0 8px}
.chart .legend{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 6px;font-size:.9rem;color:var(--ink-2)}
.chart .key i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}
.chart .key i.k1{background:#2a78d6}.chart .key i.k2{background:#eb6834}.chart .key i.k3{background:#1baf7a}
.chart .plot{position:relative;background:#fff;border:1px solid var(--line);padding:8px 4px 0}
.chart svg{width:100%;height:auto;display:block;font-family:var(--body)}
.chart .g{stroke:var(--line);stroke-width:1}
.chart .ax{fill:var(--ink-3);font-size:12px}
.chart .dl{fill:var(--ink-2);font-size:13px;font-weight:600}
.chart .pt{stroke:#fff;stroke-width:2}
.chart .hit{fill:transparent;cursor:crosshair}
.chart .xh{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3;opacity:0}
.chart .xh.on{opacity:1}
.chart .tip{position:absolute;top:8px;background:var(--night);color:#fff;font-size:.82rem;line-height:1.35;padding:8px 10px;border-radius:2px;pointer-events:none;min-width:190px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.chart .tip b{display:block;font-family:var(--head);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.chart .tip i{display:inline-block;width:10px;height:3px;margin-right:6px;vertical-align:middle}
.chart figcaption{margin-top:8px}
.tview{margin-top:10px}.tview summary{cursor:pointer;color:var(--link);font-size:.92rem}
.scroll{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0}
table.data{border-collapse:collapse;width:100%;font-size:.9rem;background:#fff}
table.data th,table.data td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}
table.data thead th{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);background:var(--card);white-space:nowrap}
table.data td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
table.rank{min-width:980px}
table.rank th[scope=row]{font-weight:600;white-space:nowrap}
.pos{color:var(--ready);font-weight:600}.neg{color:var(--decide);font-weight:600}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.chips li{font-size:.8rem;padding:2px 8px;border-radius:2px;display:inline-block;width:max-content;max-width:100%}
.chips.pro li{background:var(--ready-bg);color:var(--ready)}
.chips.con li{background:var(--decide-bg);color:var(--decide)}
table.sub{min-width:860px}
table.sub td.up{background:var(--ready-bg);color:var(--ready);font-weight:600}
table.sub td.down{background:var(--decide-bg);color:var(--decide);font-weight:600}
table.sub tr.avg th,table.sub tr.avg td{background:var(--card);font-weight:600}
h3.mt{margin:40px 0 6px}
.watch{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px}
.watch li{display:grid;grid-template-columns:120px minmax(0,1fr) 200px;gap:16px;background:#fff;border:1px solid var(--line);padding:14px 16px}
.watch .when{font-family:var(--head);font-weight:700;font-size:1.15rem;text-transform:uppercase;line-height:1.2}
.watch .when .muted{font-size:.9rem;font-weight:600}
.watch h3{font-size:1.2rem;margin:2px 0 4px}
.watch p{margin:0 0 4px}
.tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:0}
.impact{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.lvl{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:2px;font-size:.95rem}
.lvl.l0{background:var(--card);color:var(--ink-2);border:1px solid var(--line)}
.lvl.l1{background:var(--check-bg);color:var(--check)}
.lvl.l2{background:var(--hivis);color:var(--hivis-ink)}
.lvl.l3,.lvl.l4{background:var(--decide);color:#fff}
.cities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}
.city{display:block;background:#fff;border:1px solid var(--line);border-top:4px solid var(--hivis);padding:14px 16px;color:var(--ink);text-decoration:none}
.city:hover{border-color:var(--night)}
.city h3{font-size:1.5rem;margin:2px 0 6px}
.city .v{font-family:var(--head);font-weight:800;font-size:1.6rem;margin:0 0 4px}
.city p{margin:0 0 4px}
.method ul{padding-left:1.2em}.method li{margin-bottom:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:900px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.cities{grid-template-columns:repeat(2,minmax(0,1fr))}.watch li{grid-template-columns:96px minmax(0,1fr)}.watch .impact{grid-column:2}}
@media (max-width:560px){.tiles,.cities{grid-template-columns:1fr}.watch li{grid-template-columns:1fr;gap:6px}.watch .impact{grid-column:auto}.tile .v{font-size:1.6rem}}
