:root{
  --bg:#f5f6f8;--surface:#ffffff;--text:#111827;--muted:#5f6673;--line:#e4e7ec;
  --brand:#1d4ed8;--brand-ink:#ffffff;--accent:#facc15;--logo:#1d4ed8;
  --l0:#22c55e;--l1:#eab308;--l2:#f97316;--l3:#dc2626;--na:#d1d5db;
  --l0-bg:#ecfdf3;--l1-bg:#fefce8;--l2-bg:#fff1e6;--l3-bg:#fdecec;
  --radius:14px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f1115;--surface:#171a21;--text:#e6e8ec;--muted:#9aa1ad;--line:#272b34;
  --brand:#8fb0ff;--brand-ink:#0b1630;--logo:#2f5be0;
  --l0:#34d399;--l1:#facc15;--l2:#fb923c;--l3:#f87171;--na:#3a3f4a;
  --l0-bg:#11251c;--l1-bg:#2a2710;--l2-bg:#2e1f12;--l3-bg:#321718;
}}
:root[data-theme="dark"]{
  --bg:#0f1115;--surface:#171a21;--text:#e6e8ec;--muted:#9aa1ad;--line:#272b34;
  --brand:#8fb0ff;--brand-ink:#0b1630;--logo:#2f5be0;
  --l0:#34d399;--l1:#facc15;--l2:#fb923c;--l3:#f87171;--na:#3a3f4a;
  --l0-bg:#11251c;--l1-bg:#2a2710;--l2-bg:#2e1f12;--l3-bg:#321718;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{max-width:1020px;margin:0 auto;padding:0 16px}
h1{font-size:clamp(1.6rem,4.5vw,2.4rem);line-height:1.15;margin:.2em 0 .3em;letter-spacing:-.01em}
h2{font-size:1.3rem;margin:1.8em 0 .6em}
h3{font-size:1.05rem;margin:1.3em 0 .4em}
small{display:block;color:var(--muted);font-size:.82em}
header.site{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header.site .wrap{display:flex;align-items:center;gap:16px;min-height:56px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text);text-decoration:none;font-size:1.1rem}
.logo svg{width:26px;height:26px}.logo rect{fill:var(--logo)}.logo g{fill:var(--accent)}.logo .c{fill:#a16207}
header.site nav{display:flex;gap:4px;overflow-x:auto;margin-left:auto;scrollbar-width:none}
header.site nav a{padding:6px 10px;border-radius:8px;color:var(--muted);text-decoration:none;white-space:nowrap;font-size:.95rem}
header.site nav a[aria-current],header.site nav a:hover{background:var(--bg);color:var(--text)}
main.wrap{padding-top:18px;padding-bottom:48px}
main > section{margin-top:28px}
main > section.hero{margin-top:8px}
.crumbs{display:block;margin:0 0 10px;font-size:.85rem;color:var(--muted)}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--text);text-decoration:underline}
.crumbs span{color:var(--text)}
.hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;border-left:6px solid var(--l0)}
.hero.l1{border-left-color:var(--l1)}.hero.l2{border-left-color:var(--l2)}.hero.l3{border-left-color:var(--l3)}
.eyebrow{margin:0;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}
.verdict{font-size:1.35rem;font-weight:700;margin:.2em 0;display:flex;align-items:center;gap:10px}
.verdict .dot{width:16px;height:16px}
.lead{font-size:1.06rem;color:var(--muted);margin:.4em 0 0}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--l0);flex:none;vertical-align:-1px}
.l1 .dot,.l1>.dot{background:var(--l1)}.l2 .dot{background:var(--l2)}.l3 .dot{background:var(--l3)}.na .dot{background:var(--na)}
.hero.l0 .verdict .dot{background:var(--l0)}.hero.l1 .verdict .dot{background:var(--l1)}.hero.l2 .verdict .dot{background:var(--l2)}.hero.l3 .verdict .dot{background:var(--l3)}
.tablewrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line)}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
thead th{font-size:.82rem;color:var(--muted);font-weight:600;white-space:nowrap}
tbody th{font-weight:600}
tbody th a{color:var(--text);text-decoration:none}tbody th a:hover{text-decoration:underline}
.ptable td{white-space:nowrap}.ptable td .dot{margin-right:8px}
.ptable td.l1{background:var(--l1-bg)}.ptable td.l2{background:var(--l2-bg)}.ptable td.l3{background:var(--l3-bg)}
.matrix th,.matrix td{padding:6px 8px;text-align:center}
.matrix tbody th{text-align:left;min-width:180px}
.matrix thead th a{color:var(--muted);text-decoration:none}
.matrix td .dot{width:14px;height:14px}
.matrix small{font-weight:400}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.85rem;color:var(--muted);margin:10px 0}
.legend>span{display:inline-flex;align-items:center;gap:6px}
.legend .l0 .dot{background:var(--l0)}
.note{font-size:.85rem;color:var(--muted)}
.tipbox{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:10px;padding:12px 16px}
.tabs{display:flex;flex-wrap:wrap;gap:6px}
.tabs input{position:absolute;opacity:0;pointer-events:none}
.tabs label{padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:.92rem}
.tabs input:checked+label{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.tabs input:focus-visible+label{outline:2px solid var(--brand);outline-offset:2px}
.tabs .tab{display:none;width:100%;margin-top:6px}
#d0:checked~.t0,#d1:checked~.t1,#d2:checked~.t2{display:block}
.chartwrap{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 8px 6px}
.chart{width:100%;height:auto;display:block}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .daysep{stroke:var(--muted);stroke-dasharray:3 3;stroke-width:1}
.chart text{fill:var(--muted);font-size:13px}
.chart .xlab.day{font-weight:600;fill:var(--text)}
.chart .b.l0{fill:var(--l0)}.chart .b.l1{fill:var(--l1)}.chart .b.l2{fill:var(--l2)}.chart .b.l3{fill:var(--l3)}
.chart .b.now{stroke:var(--text);stroke-width:2}
figcaption{font-size:.8rem;color:var(--muted);padding:4px 6px 0}
.mapsec{display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px 20px}
.mapsec h2{margin-top:.6em}
.map{width:100%;height:auto;display:block;max-height:560px}
.map path,.map use{stroke:var(--surface);stroke-width:1.2;fill:var(--l0);transition:opacity .15s}
.map .l1{fill:var(--l1)}.map .l2{fill:var(--l2)}.map .l3{fill:var(--l3)}.map .na{fill:var(--na)}
.map a:hover>*,.map a:focus>*{opacity:.75}
.maps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.maps.four{grid-template-columns:repeat(4,1fr)}
.mapfig{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px}
.mapfig figcaption{font-weight:600;color:var(--text);font-size:.9rem;padding:0 4px 6px}
.links{list-style:none;padding:0;margin:0;display:grid;gap:2px 16px}
.links.cols{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.links li{padding:4px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.links li small{white-space:nowrap}
.links a{text-decoration:none}.links a:hover{text-decoration:underline}
.season{display:inline-flex;gap:2px;vertical-align:middle}
.season i{width:9px;height:9px;border-radius:2px;background:var(--line)}
.season i.s1{background:var(--l1)}.season i.s2{background:var(--l2)}
.cal.one{display:inline-grid;gap:4px}
.cal.one .season i{width:26px;height:18px;border-radius:4px}
.cal .months{display:inline-flex;gap:2px}.cal .months i{width:26px;text-align:center;font-style:normal;font-size:.75rem;color:var(--muted)}
.calendar td{padding:0;height:30px;border-left:2px solid var(--surface)}
.calendar td.s1{background:var(--l1)}.calendar td.s2{background:var(--l2)}
.calendar th.now{color:var(--text);text-decoration:underline}
.calendar td.now{box-shadow:inset 0 0 0 2px var(--text)}
.sw{display:inline-block;width:14px;height:14px;border-radius:3px}.sw.s1{background:var(--l1)}.sw.s2{background:var(--l2)}
.hist td{padding:0;min-width:18px;height:22px;border-left:2px solid var(--surface);background:var(--l0-bg)}
.hist td.l1{background:var(--l1)}.hist td.l2{background:var(--l2)}.hist td.l3{background:var(--l3)}
.hist thead th{padding:4px 2px;text-align:center;font-weight:400}
.az{display:flex;flex-wrap:wrap;gap:4px}
.az a{display:inline-block;min-width:34px;text-align:center;padding:4px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-decoration:none;font-weight:600}
.search{position:relative;display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.search input{flex:1 1 240px;font:inherit;padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text)}
.search button{font:inherit;padding:10px 14px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);cursor:pointer}
#results{position:absolute;top:100%;left:0;right:0;z-index:4;list-style:none;margin:4px 0 0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);overflow:hidden}
#results:empty{display:none}
#results a{display:flex;justify-content:space-between;gap:8px;padding:9px 14px;text-decoration:none;color:var(--text)}
#results a:hover,#results a.sel{background:var(--bg)}
#results small{display:inline}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 16px;margin-bottom:8px}
.faq summary{cursor:pointer;font-weight:600}
.faq p{margin:.6em 0 .2em}
.ad{margin:24px 0;min-height:100px;text-align:center}
.ad.placeholder{display:flex;align-items:center;justify-content:center;border:2px dashed var(--line);border-radius:var(--radius);color:var(--muted);flex-direction:column}
.adlabel{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.partner{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 20px;margin-top:28px}
.partner h2{margin:.2em 0 .4em;font-size:1.1rem}
.partner ul{margin:0;padding-left:18px}
footer.site{border-top:1px solid var(--line);background:var(--surface);font-size:.85rem;color:var(--muted)}
footer.site a{color:var(--muted)}
@media (max-width:760px){
  .mapsec{grid-template-columns:1fr;padding:8px 14px}
  .maps,.maps.four{grid-template-columns:1fr 1fr}
  .maps:not(.four) .mapfig:first-child{grid-column:1/-1}
  .hero{padding:16px}
  th,td{padding:7px 9px}
  .matrix tbody th{min-width:140px}
  .cal.one .season i,.cal .months i{width:20px}
}
.wtable td{white-space:nowrap}
.wtable td .dot{margin-right:8px}
.wtable td small{display:inline;margin-left:6px}
.wtable tr.day th{background:var(--bg);font-size:.85rem;color:var(--muted)}
.wtable td.l2{background:var(--l2-bg)}.wtable td.l1{background:var(--l1-bg)}
.sw.cur{background:transparent;box-shadow:inset 0 0 0 2px var(--text)}
