.map-page{background:radial-gradient(ellipse at 0% 100%,rgba(200,70,30,.22),transparent 50%),var(--navy)}
.map-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding:26px 0 14px}
.map-hd .k{font-family:var(--mono);font-size:13px;letter-spacing:2px;color:var(--teal-hi)}
.map-hd h1{font-family:var(--display);font-size:clamp(22px,2.6vw,32px);font-weight:800;color:var(--cream);margin-top:6px;line-height:1.1}
.map-hd h1 em{font-style:normal;color:var(--ochre)}
.map-hd p{font-size:15.5px;color:var(--sand);max-width:60ch;margin-top:6px}
.timebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--navy2);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:14px}
.timebar label{font-family:var(--mono);font-size:13px;color:var(--muted)}
.timebar input[type=range]{flex:1;min-width:180px;accent-color:var(--ochre)}
.timebar .yr{font-family:var(--display);font-size:24px;color:var(--cream);min-width:70px}
.timebar .status{font-family:var(--mono);font-size:12.5px;letter-spacing:1px;padding:4px 9px;border-radius:5px;border:1px solid var(--line);color:var(--sand)}
.timebar .status.forecast{border:1.5px dashed var(--ochre);color:var(--ochre)}
.timebar .status.scored{border-color:var(--teal);color:var(--teal-hi)}
.timebar .btn{color:var(--sand);border-color:var(--line)}
.timebar .ticks{flex-basis:100%;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;color:var(--muted);padding:0 2px}
.map-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
@media (max-width:1060px){.map-grid{grid-template-columns:1fr}}
.chart{position:relative;background:rgba(32,31,69,.5);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.chart svg{width:100%;height:auto;display:block;touch-action:manipulation}
.filters{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 0}
.filters button,.toggles label{font-family:var(--mono);font-size:12.5px;border:1px solid var(--line);background:none;padding:5px 11px;border-radius:20px;color:var(--sand);cursor:pointer}
.filters button i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.filters button[aria-pressed=true]{background:var(--sand);color:var(--navy);border-color:var(--sand)}
.toggles{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px}
.toggles label{display:inline-flex;align-items:center;gap:6px}
.toggles input{accent-color:var(--ochre)}
.forecast-flag{margin-left:auto;font-family:var(--mono);font-size:12.5px;color:var(--ochre);border:1.5px dashed var(--ochre);background:rgba(20,19,43,.85);padding:6px 10px;border-radius:6px}
.history-flag{margin-left:auto;font-family:var(--mono);font-size:12.5px;color:var(--sand);border:1px solid var(--line);background:rgba(20,19,43,.85);padding:6px 10px;border-radius:6px}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--mono);font-size:12.5px;border-top:1px solid var(--line);padding:10px 14px;color:var(--sand)}
.legend b{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.legend .gh{border:1.5px dashed var(--lav);background:none}
/* svg */
.ring-lbl{font-family:var(--mono);font-size:17px;font-weight:600;fill:#c9c3ef;letter-spacing:2px;paint-order:stroke;stroke:#14132b;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.ring-lbl.under{opacity:.18}
.sun-lbl{font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:3px;fill:#f8e9cc}
.idea{cursor:pointer;outline:none}
.lbl{font-family:var(--serif);font-size:20px;font-weight:600;fill:#f4e3c3;paint-order:stroke;stroke:#14132b;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.lbl.hot{fill:#fff3c8}
.leader{fill:none;stroke:#f4e3c3;stroke-opacity:.55;stroke-width:1.2}
.idea .dot{transition:r .15s}
.idea .halo{fill:none;stroke:#f8e9cc;stroke-width:2;opacity:0}
.idea:hover .halo,.idea.sel .halo{opacity:.7}
.idea:focus-visible .halo{opacity:1;stroke:#f2b04a;stroke-width:3.5}
.idea.dim{opacity:.18}
.idea.fc .dot{stroke:#f2b04a;stroke-dasharray:3 3;stroke-width:2}
.trail{fill:none;stroke-width:2;stroke-linecap:round;opacity:.3}
.trail.future{stroke-dasharray:5 6;opacity:.4}
.ghost circle{fill:none;stroke:#b9a7ff;stroke-width:1.6;stroke-dasharray:3 3}
.ghost circle{pointer-events:all;cursor:help}
.ghost-lbl{font-family:var(--mono);font-weight:600;fill:#d9cfff;paint-order:stroke;stroke:#14132b;stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.ghost line{stroke:#b9a7ff;stroke-opacity:.35;stroke-dasharray:2 4}
@media (max-width:700px){.ring-lbl{font-size:24px}.idea .dot{r:16}}
/* panel */
.panel{background:var(--paper);color:var(--ink);border-radius:16px;padding:20px;position:sticky;top:16px;
 background-image:linear-gradient(rgba(200,70,30,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(200,70,30,.08) 1px,transparent 1px);background-size:20px 20px}
.panel .k{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--rust-ink);display:flex;justify-content:space-between;align-items:center;text-transform:uppercase}
.panel .x{background:none;border:1px solid var(--ink);border-radius:50%;width:30px;height:30px;cursor:pointer;color:var(--ink);font-size:14px}
.panel h2{font-family:var(--display);font-size:24px;font-weight:800;margin:8px 0 6px;line-height:1.1}
.panel p{font-size:16px;line-height:1.45}
.panel .hc{margin:14px 0 4px}
.panel .spark-row{display:flex;gap:12px;align-items:center;margin-top:10px}
.panel .spark-cap{font-family:var(--mono);font-size:11.5px;line-height:1.5;color:var(--ink-muted)}
.panel .spark{display:block;flex:none;background:rgba(251,246,234,.7);border:1px solid rgba(29,28,26,.2);border-radius:4px}
.panel .chk{display:inline-block;border:1px solid var(--green);color:var(--green);border-radius:4px;padding:1px 6px;margin-right:6px}
.panel .chk.warn{border-color:var(--rust-ink);color:var(--rust-ink)}
.panel .linkbtn{font-family:var(--mono);font-size:13px;background:none;border:0;padding:0;color:var(--ink);text-decoration:underline;cursor:pointer}
.panel .copied{font-family:var(--mono);font-size:12px;color:var(--green)}
.review-badge{display:inline-block;font-family:var(--mono);font-size:12.5px;letter-spacing:1px;color:var(--teal-hi);border:1px solid var(--teal);border-radius:5px;padding:3px 8px;margin-top:8px}
.review-badge.draft{color:var(--ochre);border:1.5px dashed var(--ochre)}
table.ideas .rng{font-family:var(--mono);font-size:12px;color:var(--muted)}
.panel .meta{font-family:var(--mono);font-size:12px;color:var(--ink-muted);margin-top:6px}
.panel h3{font-family:var(--mono);font-size:12.5px;letter-spacing:2px;font-weight:600;margin:16px 0 6px;text-transform:uppercase;border-top:1px dashed #8d877b;padding-top:12px}
.panel ul.why{list-style:none;font-size:15px;line-height:1.5}
.panel ul.why li{display:flex;gap:8px}
.panel ul.why .y{color:var(--green);font-weight:700}
.panel ul.why .n{color:var(--rust-ink);font-weight:700}
.panel .pb{font-size:15px}
.panel .links{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.panel .links a{font-family:var(--mono);font-size:13px;color:var(--ink)}
.panel .rve{margin-top:16px}
.panel .empty{font-family:var(--mono);font-size:13.5px;color:var(--ink-muted);line-height:1.6}
/* table fallback */
.tbl-wrap{margin-top:34px;overflow-x:auto}
table.ideas{width:100%;border-collapse:collapse;font-size:15px}
table.ideas caption{text-align:left;font-family:var(--display);font-size:20px;color:var(--cream);padding-bottom:6px}
table.ideas caption small{display:block;font-family:var(--mono);font-size:12.5px;color:var(--muted);font-weight:400;margin-top:4px}
table.ideas th,table.ideas td{text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
table.ideas th{font-family:var(--mono);font-size:12.5px;letter-spacing:1px;color:var(--muted);font-weight:600;text-transform:uppercase}
table.ideas th button{background:none;border:0;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;text-transform:inherit}
table.ideas td.num{font-family:var(--mono)}
table.ideas td .cat{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}
table.ideas button.open{background:none;border:0;color:var(--cream);font:inherit;font-weight:600;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:rgba(244,227,195,.35);text-underline-offset:3px}
table.ideas tr.fc td.at{color:var(--ochre)}

table.ideas tbody th{font-family:var(--serif);font-size:15px;text-transform:none;letter-spacing:0;color:var(--cream)}
