/* Layout: one reading column — live "next deadline" panel, then a ranked ledger of venues, each row = identity | why | countdown */
:root{
  --bg:#F2F4F7; --surface:#FFFFFF; --ink:#141A26; --muted:#5B6578; --line:#DDE2EA;
  --accent:#1F4FD1; --accent-soft:#E6ECFB;
  --hot:#C2361F; --hot-soft:#FBE9E5; --warm:#A86A00; --warm-soft:#FBF1DC; --calm:#1E7A55; --calm-soft:#E2F3EA;
  --f-display:"Bricolage Grotesque", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --f-body:"IBM Plex Sans", "Helvetica Neue", Arial, system-ui, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --r:10px;
  --fam-ml:#2a78d6; --fam-lang:#eb6834; --fam-vis:#1baf7a; --fam-data:#eda100; --fam-ai:#e87ba4; --fam-soc:#6250d6; --fam-psy:#e34948;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0E121A; --surface:#161B26; --ink:#E8ECF3; --muted:#9AA4B6; --line:#262E3D;
  --accent:#7D9BFF; --accent-soft:#1C2645;
  --hot:#FF7A63; --hot-soft:#3A1D19; --warm:#F0B44C; --warm-soft:#332712; --calm:#5CC99A; --calm-soft:#14301F;
  --fam-ml:#3987e5; --fam-lang:#d95926; --fam-vis:#199e70; --fam-data:#c98500; --fam-ai:#d55181; --fam-soc:#9085e9; --fam-psy:#e66767;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0E121A; --surface:#161B26; --ink:#E8ECF3; --muted:#9AA4B6; --line:#262E3D;
  --accent:#7D9BFF; --accent-soft:#1C2645;
  --hot:#FF7A63; --hot-soft:#3A1D19; --warm:#F0B44C; --warm-soft:#332712; --calm:#5CC99A; --calm-soft:#14301F;
  --fam-ml:#3987e5; --fam-lang:#d95926; --fam-vis:#199e70; --fam-data:#c98500; --fam-ai:#d55181; --fam-soc:#9085e9; --fam-psy:#e66767;
  color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--f-body);-webkit-font-smoothing:antialiased}
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.wrap{max-width:1040px;margin:0 auto;padding-inline:20px;padding-block:28px 64px;display:flex;flex-direction:column;gap:28px}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* header */
header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}
.brand{display:flex;gap:14px;align-items:center;min-width:0}
.brand svg{flex:none}
h1{font:700 clamp(26px,4vw,36px)/1.05 var(--f-display);letter-spacing:-.02em;margin:0;text-wrap:balance}
.sub{color:var(--muted);margin:4px 0 0;font-size:14px;max-width:60ch}
.clock{display:flex;gap:18px;font-size:12px;color:var(--muted);text-align:right}
.clock b{display:block;font:500 15px var(--f-mono);color:var(--ink);font-variant-numeric:tabular-nums}
.clock span{text-transform:uppercase;letter-spacing:.08em}

/* favoritas */
.fav{all:unset;cursor:pointer;display:inline-grid;place-items:center;width:26px;height:26px;margin-left:6px;vertical-align:-3px;border-radius:999px;color:var(--muted);opacity:.55;transition:opacity .15s,color .15s,transform .15s}
.fav svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.fav:hover{opacity:1;color:var(--warm)}
.fav[aria-pressed="true"]{opacity:1;color:var(--warm)}
.fav[aria-pressed="true"] svg{fill:currentColor}
.fav:focus-visible{outline:2px solid var(--accent);opacity:1}
.fav:active{transform:scale(.88)}
.hero h2 .fav{width:34px;height:34px;vertical-align:4px;color:inherit;opacity:.5}
.hero h2 .fav svg{width:22px;height:22px}
.hero h2 .fav[aria-pressed="true"]{color:inherit;opacity:1}
.star-i svg{width:12px;height:12px;fill:currentColor;vertical-align:-1px;margin-right:4px}

/* visão Ano */
.year{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 14px}
.ycap{font-size:13.5px;color:var(--muted);min-height:2.6em;margin:0 0 6px;padding:0 4px}
.ycap b{color:var(--ink);font-weight:600}
.yscroll{overflow-x:auto;margin:0 -4px}
.ychart{display:block;font-family:var(--f-body)}
.ychart text{fill:var(--muted);font-size:11px}
.ystrip-t{font:600 10.5px var(--f-body);letter-spacing:.1em;text-transform:uppercase;fill:var(--accent)!important}
.ygrid{stroke:var(--line);stroke-width:1}
.ytick{font:500 10.5px var(--f-mono)}
.ybar{fill:color-mix(in srgb,var(--accent) 55%,var(--surface))}
.ybar.peak{fill:var(--accent)}
.ylbl{font:600 11px var(--f-mono);fill:var(--ink)!important}
.ym:hover .ybar{fill:var(--accent)}
.ynow{stroke:var(--hot);stroke-width:1.5;stroke-dasharray:3 3}
.ynowlbl{fill:var(--hot)!important;font:600 10px var(--f-mono)}
.yrow-bg{fill:transparent}
.yrow:hover .yrow-bg,.yrow.on .yrow-bg{fill:var(--accent-soft)}
.yname{fill:var(--ink)!important;font-size:12.5px!important;font-weight:500}
.ylink:hover .yname{fill:var(--accent)!important;text-decoration:underline}
.yconf{fill:var(--accent);opacity:.85}
.yrev{stroke:var(--muted);stroke-width:2;stroke-linecap:round;opacity:.45}
.ynotif{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}
.ydl{stroke:var(--surface);stroke-width:2}
.ydl.u-hot{fill:var(--hot)}.ydl.u-warm{fill:var(--warm)}.ydl.u-calm{fill:var(--calm)}
.ydl.u-past{fill:var(--line);stroke:var(--muted);stroke-width:1}
.ydl.est{fill:var(--surface)!important;stroke-width:2}
.ydl.est.u-hot{stroke:var(--hot)}.ydl.est.u-warm{stroke:var(--warm)}.ydl.est.u-calm{stroke:var(--calm)}
.ydl.minor{opacity:.7}
.ybeyond{font:600 14px var(--f-mono);fill:var(--muted)!important}
.ychart [data-tip],.ym .hit{cursor:default}
.ychart.focus .yrow.dim{opacity:.28}
.ychart .yrow{transition:opacity .15s}
.ydl.next-open{stroke:var(--ink);stroke-width:2.5}
.yrow.alt .yname{fill:var(--accent)!important}
.ylegend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);margin-top:10px;padding:0 4px;align-items:center}
.ylegend span{display:inline-flex;align-items:center;gap:6px}
.lg-dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.lg-dot.u-hot{background:var(--hot)}.lg-dot.u-warm{background:var(--warm)}.lg-dot.u-calm{background:var(--calm)}
.lg-dot.est{border:2px solid var(--muted)}
.lg-rev{display:inline-block;width:22px;height:2px;border-radius:1px;background:var(--muted);opacity:.6}
.lg-notif{display:inline-block;width:8px;height:8px;border:1.5px solid var(--ink);transform:rotate(45deg)}
.lg-conf{display:inline-block;width:22px;height:8px;border-radius:4px;background:var(--accent);opacity:.85}
.year .tbl td,.year .tbl th{text-align:left}

/* temas: grafo e célula */
.gwrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.gbar{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.gsearch{max-width:300px}
.gbtn{text-decoration:none;color:var(--ink);font-size:13px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg)}
.gbtn:hover{border-color:var(--muted)}
.gbar .gbtn+.gbtn{margin-left:-12px}
.glegend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted)}
.glegend span{display:inline-flex;align-items:center;gap:6px}
.gdot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c)}
.fam-ml{--c:var(--fam-ml)}.fam-lang{--c:var(--fam-lang)}.fam-vis{--c:var(--fam-vis)}.fam-data{--c:var(--fam-data)}.fam-ai{--c:var(--fam-ai)}.fam-soc{--c:var(--fam-soc)}.fam-psy{--c:var(--fam-psy)}
.graph{display:block;width:100%;height:auto;aspect-ratio:16/10;max-height:78vh;touch-action:none;user-select:none;-webkit-user-select:none}
.gcap{font-size:13.5px;color:var(--muted);padding:10px 14px 12px;border-top:1px solid var(--line);min-height:3.2em}
.gcap b{color:var(--ink)}
.nuc-a{stop-color:color-mix(in srgb,var(--accent) 35%,var(--surface))}
.nuc-b{stop-color:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.cyto-a{stop-color:color-mix(in srgb,var(--accent) 10%,transparent)}
.cyto-b{stop-color:color-mix(in srgb,var(--accent) 3%,transparent)}
.glink{fill:none;stroke:var(--c);stroke-width:1.1;opacity:.28;transition:opacity .2s}
.graph .cn,.graph .tn{cursor:pointer;outline:none;transition:opacity .2s}
.graph .cn .nuc{fill:url(#gNuc);stroke:color-mix(in srgb,var(--accent) 70%,var(--surface));stroke-width:1.5}
.graph .cn .memb{fill:var(--accent);opacity:.18}
.graph .cl{font:600 11.5px var(--f-body);fill:var(--ink);pointer-events:none}
.graph .cl.out{font-size:11px}
.graph .tn .org{fill:var(--c);stroke:var(--surface);stroke-width:2}
.graph .tl{font:500 10px var(--f-body);fill:var(--muted);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.graph text{paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
.graph .cn:hover .nuc,.graph .cn.on .nuc,.graph .cn:focus-visible .nuc{stroke:var(--ink);stroke-width:2}
.graph .tn.on .org,.graph .tn:focus-visible .org{stroke:var(--ink)}
.graph .tn.on .tl{fill:var(--ink);font-weight:600}
.graph .tn.minor .tl{opacity:0;transition:opacity .2s}
.graph .tn.minor.on .tl,.graph .tn.minor:hover .tl,.graph .tn.minor:focus-visible .tl{opacity:1}
.graph.focus .glink{opacity:.05}
.graph.focus .glink.on{opacity:.75;stroke-width:1.6}
.graph.focus .cn:not(.on):not(.core),.graph.focus .tn:not(.on){opacity:.22}
.cmemb{fill:url(#gCyto);stroke:color-mix(in srgb,var(--accent) 55%,var(--surface));stroke-width:2;stroke-dasharray:1 7;stroke-linecap:round}
.cmemb-glow{fill:none;stroke:var(--accent);stroke-width:10;opacity:.12}
.graph .core .nuc{stroke-width:2.5}
.graph .core-l{font:700 22px var(--f-display);fill:var(--ink);letter-spacing:-.01em}
.graph .core-s{font:500 11px var(--f-mono);fill:var(--muted)}
.graph .pct{font:500 10px var(--f-mono);fill:var(--muted)}
.graph .tn .tl{font-size:11px}
.gtable{margin-top:12px}
.gtable td,.gtable th{text-align:left!important;vertical-align:top}
.tchips li{display:inline-flex;align-items:center;gap:6px}

/* mapa das sedes */
.map-act{display:flex;gap:6px}
.mbtn{all:unset;cursor:pointer;font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.mbtn:hover{color:var(--ink);border-color:var(--muted)}
.mbtn:focus-visible{outline:2px solid var(--accent)}
.vmap{height:420px;border-radius:8px;overflow:hidden;margin-top:10px;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;isolation:isolate}
.vmap-load{font-size:13px;color:var(--muted)}
.vmap.leaflet-container{display:block;font:12px var(--f-body);background:var(--bg)}
.vmap .leaflet-control-zoom a{background:var(--surface);color:var(--ink);border-color:var(--line)}
.vmap .leaflet-control-zoom a:hover{background:var(--bg)}
.vmap .leaflet-control-attribution{background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--muted)}
.vmap .leaflet-control-attribution a{color:var(--muted)}
.vtip{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgb(0 0 0 / .18);font:12px var(--f-body);padding:6px 9px}
.vtip::before{display:none}
.vtip-main{border-color:var(--accent);font-size:12.5px}
.vpin{position:relative}
.vpin-dot{position:absolute;inset:5px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 0 0 2px var(--accent)}
.vpin-pulse{position:absolute;inset:0;border-radius:50%;background:var(--accent);opacity:.35;animation:vpulse 2s ease-out infinite}
@keyframes vpulse{0%{transform:scale(.6);opacity:.5}100%{transform:scale(2.4);opacity:0}}
@media (prefers-reduced-motion:reduce){.vpin-pulse{animation:none}}
@media (max-width:560px){.vmap{height:320px}}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-top:-12px}
.tabs a{text-decoration:none;color:var(--muted);font-size:14px;font-weight:500;padding:8px 14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current]{color:var(--ink);border-bottom-color:var(--accent)}

/* páginas de vídeo e apresentação */
.page{display:flex;flex-direction:column;gap:16px}
.page-head h2{font:700 clamp(22px,3vw,28px)/1.1 var(--f-display);letter-spacing:-.01em;margin:0}
.page-head p{color:var(--muted);margin:6px 0 0;font-size:14px;max-width:65ch}
.media-frame{display:block;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
video.media-frame{aspect-ratio:16/9;background:#000}
.media-frame.slides{aspect-ratio:16/10;min-height:360px}
.page-fallback{padding:24px;margin:0;color:var(--muted)}
.page-links{display:flex;gap:8px;flex-wrap:wrap;font-size:13px}
.page-links a{text-decoration:none;color:var(--ink);padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.page-links a:hover{border-color:var(--muted)}

/* next deadline panel */
.next{background:var(--ink);color:var(--bg);border-radius:14px;padding:24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:end}
.next .eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.next h2{font:700 clamp(22px,3vw,30px)/1.1 var(--f-display);margin:6px 0 4px;letter-spacing:-.01em}
.next p{margin:0;opacity:.8;font-size:14px}
.big{display:flex;gap:10px}
.big div{text-align:center;min-width:64px}
.big b{display:block;font:500 clamp(30px,5vw,46px)/1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.big small{font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.65}
.soon{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid color-mix(in srgb,var(--bg) 20%,transparent);padding-top:16px}
.soon button{all:unset;cursor:pointer;font-size:13px;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--bg) 12%,transparent)}
.soon button:hover{background:color-mix(in srgb,var(--bg) 22%,transparent)}
.soon button:focus-visible{outline:2px solid var(--bg)}
.soon .mono{opacity:.75;margin-left:6px}

/* controls */
.controls{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}
.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{all:unset;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;border-radius:999px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.seg button:focus-visible{outline:2px solid var(--accent)}
.ctl-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-right:8px}
.ctl{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.ctl-area{flex-basis:100%}
.seg .n{font-size:11px;opacity:.6;margin-left:2px}
.search{display:flex;align-items:center;gap:6px;flex:1;max-width:360px;min-width:200px}
.search input{flex:1;min-width:0;font:13px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 14px}
.search input:focus{outline:2px solid var(--accent);outline-offset:1px}
.empty{list-style:none;color:var(--muted);padding:24px;text-align:center;border:1px dashed var(--line);border-radius:var(--r)}

/* ledger */
.list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}
.row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);display:grid;grid-template-columns:44px minmax(0,1.1fr) minmax(0,1.4fr) 230px;gap:18px;padding:20px;position:relative;scroll-margin-top:16px;transition:box-shadow .3s}
.row.flash{box-shadow:0 0 0 2px var(--accent)}
.rank{font:700 22px/1 var(--f-display);color:var(--muted);padding-top:2px}
.name h3{font:700 21px/1.15 var(--f-display);margin:0;letter-spacing:-.01em}
.name .full{font-size:13px;color:var(--muted);margin:3px 0 10px}
.meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12px}
.tag{padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.meters{display:grid;grid-template-columns:auto 1fr auto;gap:4px 8px;align-items:center;margin-top:12px;font-size:11px;color:var(--muted)}
.meter{height:5px;background:var(--line);border-radius:3px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--accent);border-radius:3px}
.meter.fit i{background:var(--muted)}
.why h4{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 6px;font-weight:600}
.why p{margin:0;font-size:14px;max-width:62ch}
.steps{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12.5px}
.steps li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:baseline;color:var(--muted)}
.steps li::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--muted);transform:translateY(-1px)}
.steps li.done{text-decoration:line-through;opacity:.55}
.steps li.done::before{background:var(--muted)}
.steps li.current{color:var(--ink);font-weight:500}
.steps li.current::before{border-color:var(--accent);background:var(--accent)}
.steps .mono{font-size:12px}
.cd{border-left:1px solid var(--line);padding-left:18px;display:flex;flex-direction:column;gap:6px;min-width:0}
.cd .lbl{font-size:12px;color:var(--muted)}
.cd .lbl strong{color:var(--ink);font-weight:600}
.timer{font:500 24px/1.1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap}
.timer small{font-size:12px;color:var(--muted);margin:0 6px 0 1px;letter-spacing:0}
.when{font-size:12px;color:var(--muted)}
.runway{height:4px;border-radius:2px;background:var(--line);overflow:hidden;margin-top:2px}
.runway i{display:block;height:100%}
.pill{align-self:flex-start;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;letter-spacing:.02em}
.u-hot .pill{background:var(--hot-soft);color:var(--hot)} .u-hot .runway i{background:var(--hot)} .u-hot .timer{color:var(--hot)}
.u-warm .pill{background:var(--warm-soft);color:var(--warm)} .u-warm .runway i{background:var(--warm)}
.u-calm .pill{background:var(--calm-soft);color:var(--calm)} .u-calm .runway i{background:var(--calm)}
.status{font-size:11px;color:var(--muted)}
.status.est{color:var(--warm)}
.cd-links{margin-top:auto;display:flex;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:500}
.cd-links a{text-decoration:none}
.cd-links a:hover{text-decoration:underline}
.cfp{color:var(--muted)}
.row{cursor:pointer}
.row:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.name h3 a{color:inherit;text-decoration:none}
.name h3 a:hover{color:var(--accent)}

#home,.dash{display:flex;flex-direction:column;gap:28px}
[hidden]{display:none!important}

/* ---------- painel da conferência ---------- */
.dash{gap:16px}
.dnav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}
.dnav a{text-decoration:none;color:var(--muted);padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.dnav a:hover{color:var(--ink);border-color:var(--muted)}
.dnav .back{color:var(--ink);font-weight:500}
.dnav-r{display:flex;gap:8px;min-width:0}
.dnav .step{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}

.hero{background:var(--ink);color:var(--bg);border-radius:14px;padding:26px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 36px;align-items:end;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-40px;top:-60px;width:320px;height:220px;border-radius:50%;border:1px solid color-mix(in srgb,var(--bg) 14%,transparent);pointer-events:none}
.hero .eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.hero h2{font:700 clamp(30px,5vw,48px)/1 var(--f-display);letter-spacing:-.025em;margin:8px 0 6px}
.hero-id,.hero-cd{min-width:0}
.hero-full{margin:0;opacity:.85;font-size:15px}
.hero-where{margin:4px 0 0;opacity:.65;font-size:13.5px}
.hero-cd p{margin:6px 0 0;opacity:.75;font-size:13px}
.hero-cd .big{margin-top:8px}
.u-hot .hero-cd .big b{color:var(--hot)}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.btn{all:unset;cursor:pointer;font-size:13px;font-weight:500;padding:7px 13px;border-radius:999px;background:color-mix(in srgb,var(--bg) 12%,transparent);color:var(--bg);text-decoration:none}
.btn:hover{background:color-mix(in srgb,var(--bg) 22%,transparent)}
.btn.pri{background:var(--bg);color:var(--ink)}
.btn:focus-visible{outline:2px solid var(--bg);outline-offset:2px}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi span{font-size:12px;color:var(--muted)}
.kpi b{font:600 26px/1.15 var(--f-body);letter-spacing:-.01em}
.kpi small{font-size:11.5px;color:var(--muted)}

.dgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;grid-auto-flow:row dense}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;min-width:0}
.span-12{grid-column:span 12}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}
.ct{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 4px;font-weight:600}
.cs{font-size:13px;color:var(--muted);margin:0 0 12px}
.cs.mini,.mini{font-size:11.5px}
.sub{font-size:12px;color:var(--muted);font-weight:600;margin:16px 0 6px}
.ch{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.why-card p{margin:0;font-size:15px;max-width:80ch}

/* charts */
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart text{font:11px var(--f-body);fill:var(--muted)}
.chart .tick{font-variant-numeric:tabular-nums}
.chart .dlabel{fill:var(--ink);font-weight:600}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .axis{stroke:var(--muted);stroke-width:1.5}
.chart .bar{fill:var(--accent)}
.chart .bar.on{fill:color-mix(in srgb,var(--accent) 75%,var(--surface))}
.chart .hit,.chart .overlay{fill:transparent;cursor:crosshair;outline:none}
.chart .hit:focus-visible,.chart .overlay:focus-visible{stroke:var(--accent);stroke-width:1.5}
.chart .line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart .area{fill:var(--accent);opacity:.1}
.chart .dot{fill:var(--accent);stroke:var(--surface);stroke-width:2}
.chart .dot.on{r:6}
.chart .xhair{stroke:var(--muted);stroke-width:1}
.chart .ref{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.chart .ref.theta{stroke:var(--accent);stroke-dasharray:none}
.chart .now{stroke:var(--hot);stroke-width:1.5}
.chart .nowlbl{fill:var(--hot);font-weight:600}
.chart .vb circle{fill:var(--muted);stroke:var(--surface);stroke-width:2;opacity:.7}
.chart .vb.me circle{fill:var(--accent);opacity:1}
.chart .vb{cursor:default;outline:none}
.chart .vb:focus-visible circle{stroke:var(--accent)}

/* status das datas: forma + cor, nunca só cor */
.mk{cursor:default;outline:none}
.mk circle,.mk rect:first-child{stroke-width:2}
.st-oficial circle,.st-oficial rect:first-child{fill:var(--ink);stroke:var(--surface)}
.st-preliminar circle{fill:var(--surface);stroke:var(--ink);stroke-width:3}
.st-estimado circle,.st-projetado circle{fill:var(--surface);stroke:var(--muted);stroke-dasharray:3 2}
.mk.past{opacity:.4}
.mk:focus-visible circle{stroke:var(--accent)}
.mk rect[fill=transparent]{stroke:none}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
i.lg{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;box-sizing:border-box}
i.lg.st-oficial{background:var(--ink)}
i.lg.st-preliminar{border:2.5px solid var(--ink)}
i.lg.st-estimado,i.lg.st-projetado{border:1.5px dashed var(--muted)}
.mslist{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:2px 24px;font-size:13px}
.mslist li{display:grid;grid-template-columns:14px minmax(0,1fr) auto auto;gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line)}
.mslist li.past{opacity:.5}
.mslist .mono{white-space:nowrap}
.mslist small{display:block;font-size:11px;color:var(--muted)}
.mslist .rel{color:var(--muted);font-size:11.5px;min-width:52px;text-align:right}

.tip{position:fixed;z-index:50;display:none;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 6px 24px rgb(0 0 0 / .14);max-width:260px}
.tip-h{font-weight:600;margin-bottom:4px}
.tip div:not(.tip-h){display:flex;gap:8px;align-items:baseline}
.tip b{font-variant-numeric:tabular-nums}
.tip span{color:var(--muted)}

details.tbl{margin-top:10px;font-size:12.5px}
details.tbl summary{cursor:pointer;color:var(--muted)}
.tbl table{width:100%;border-collapse:collapse;margin-top:8px}
.tbl th,.tbl td{text-align:right;padding:4px 6px;border-bottom:1px solid var(--line)}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl th{font-weight:500;color:var(--muted)}

/* plano reverso */
.plan{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;position:relative}
.plan li{display:grid;grid-template-columns:128px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:8px 0 8px 18px;border-left:2px solid var(--line);position:relative;font-size:13.5px}
.plan li::before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--muted);box-sizing:border-box}
.plan li.hard::before{background:var(--accent);border-color:var(--accent)}
.plan li.hard b{color:var(--accent)}
.plan li.late,.plan li.done{opacity:.55}
.plan li.late .pr{color:var(--warm)}
.plan small{display:block;color:var(--muted);font-size:12px}
.plan .pd{font-size:12px;color:var(--muted);white-space:nowrap}
.plan .pr{font-size:12px;color:var(--muted);white-space:nowrap}
.rw{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rw div{display:flex;flex-direction:column}
.rw b{font:600 30px/1.1 var(--f-body)}
.rw span{font-size:12px;color:var(--muted)}
.rwbar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin:14px 0 6px}
.rwbar i{display:block;height:100%;background:var(--accent)}
.hol{list-style:none;margin:6px 0 0;padding:0;font-size:12.5px;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 16px}
.hol li{display:flex;gap:8px;white-space:nowrap}
.hol .mono{color:var(--muted);font-size:12px;min-width:96px}

/* θ */
.theta-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:24px;align-items:center}
.theta-card .cs b{color:var(--ink);font-weight:600}
.slider{display:flex;flex-direction:column;gap:6px;font-size:13px;margin-top:6px}
.slider output{font-family:var(--f-mono);font-weight:500}
.slider input{accent-color:var(--accent);width:100%}
.pbig{margin:10px 0 6px;font-size:14px;color:var(--muted)}
.pbig b{font:600 28px var(--f-body);color:var(--ink);margin-left:4px}

/* listas */
.tracks{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:10px}
.tracks li{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13.5px}
.tracks p{margin:4px 0 0;color:var(--muted);font-size:12.5px}
.rules{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 16px;margin:0;font-size:13.5px}
.rules dt{color:var(--muted);font-size:12.5px}
.rules dd{margin:0}
.past{list-style:none;margin:0;padding:0;font-size:13px;display:flex;flex-direction:column;gap:3px}
.past .mono{display:inline-block;width:44px;color:var(--muted)}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.chips li{font-size:12.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg)}
.alt{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.alt li{display:grid;grid-template-columns:minmax(0,1fr) auto auto 60px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.alt a{text-decoration:none;color:var(--ink);min-width:0}
.alt a span{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alt a:hover b{color:var(--accent)}
.alt .mono{font-size:12px}
.alt .mini{color:var(--muted);text-align:right;white-space:nowrap}
.ck{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.ck label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.ck input{accent-color:var(--accent);margin-top:3px}
.ck input:checked+span{color:var(--muted);text-decoration:line-through}
#note{width:100%;font:13.5px/1.5 var(--f-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;resize:vertical}
.links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.links a{text-decoration:none}
.links a:hover{text-decoration:underline}
.srcs{font-size:12px;color:var(--muted);margin:0}
.srcs a{color:var(--muted)}

footer{font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:6px;max-width:75ch}
footer p{margin:0}

@media (max-width:880px){
  .span-7,.span-6,.span-5{grid-column:span 12}
  .theta-card{grid-template-columns:1fr}
  .hero{grid-template-columns:1fr}
  .row{grid-template-columns:36px minmax(0,1fr);}
  .why,.cd{grid-column:2}
  .cd{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px}
}
@media (max-width:560px){
  .next{grid-template-columns:1fr}
  .big div{min-width:0;flex:1}
  .row{grid-template-columns:1fr;padding:16px}
  .rank{font-size:14px}
  .hero{padding:20px}
  .card{padding:16px}
  .plan li{grid-template-columns:minmax(0,1fr) auto;padding-left:16px}
  .plan .pd{grid-column:1/-1}
  .alt li{grid-template-columns:minmax(0,1fr) auto}
  .alt .tag,.alt .mini{display:none}
  .rules{grid-template-columns:1fr;gap:2px}
  .rules dd{margin-bottom:8px}
  .why,.cd{grid-column:1}
  .clock{text-align:left}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
