:root{--bg:oklch(97% .008 80);--surface:oklch(100% 0 0);--surface2:oklch(95% .008 80);--text:oklch(25% .015 55);--muted:oklch(46% .015 55);--border:oklch(25% .015 55 / .16);--accent:oklch(43% .12 38);--accentsoft:oklch(94% .025 55);--warning:oklch(42% .1 38);--shadow:oklch(25% .02 55 / .1);--font-body:'General Sans',system-ui,sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.2rem;--text-xl:clamp(1.6rem,2.4vw,2.25rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem}
[data-theme=dark]{--bg:oklch(19% .008 65);--surface:oklch(23% .008 65);--surface2:oklch(27% .009 65);--text:oklch(93% .01 80);--muted:oklch(73% .013 70);--border:oklch(90% .01 65 / .18);--accent:oklch(79% .1 47);--accentsoft:oklch(30% .025 55);--warning:oklch(79% .1 47);--shadow:oklch(5% .01 55 / .35);color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5}button,input,select{font:inherit;color:inherit}button,select{cursor:pointer}button{border:1px solid var(--border);background:var(--surface);padding:var(--space-2) var(--space-4);border-radius:6px;min-height:44px;font-size:var(--text-sm);font-weight:500}button:hover{background:var(--surface2);border-color:var(--muted)}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration-color:var(--border);text-underline-offset:3px}a:hover{color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input,select{border:1px solid var(--border);border-radius:6px;background:var(--surface);min-height:44px;padding:var(--space-2) var(--space-3);max-width:100%}input::placeholder{color:var(--muted)}.skip{position:fixed;left:var(--space-4);top:-100px;z-index:50;background:var(--surface);padding:var(--space-3)}.skip:focus{top:var(--space-4)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.topbar{padding:var(--space-4) var(--space-10);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);background:var(--surface)}.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;font-size:var(--text-sm);font-weight:700;letter-spacing:.04em}.brand svg{width:32px;height:32px;color:var(--accent)}.brand-light{font-weight:400;color:var(--muted)}nav{display:flex;gap:var(--space-3)}nav button:first-child{background:transparent;border-color:transparent}main{max-width:1760px;margin:auto;padding:0 var(--space-10)}.intro{display:flex;justify-content:space-between;gap:var(--space-8);align-items:center;padding:var(--space-10) 0 var(--space-8)}.eyebrow{font-size:var(--text-xs);letter-spacing:.1em;font-weight:600;color:var(--accent);margin:0 0 var(--space-2)}h1{font-size:var(--text-xl);line-height:1.2;letter-spacing:-.035em;font-weight:600;margin:0 0 var(--space-3)}h2{font-size:var(--text-lg);line-height:1.3;font-weight:600}p{margin:0 0 var(--space-4)}.lede{color:var(--muted);margin:0;max-width:75ch}.snapshot{display:flex;flex-direction:column;gap:var(--space-1);flex-shrink:0;font-size:var(--text-xs);padding-left:var(--space-6);border-left:1px solid var(--border)}.snapshot strong{font-size:var(--text-sm);font-weight:500}.muted{color:var(--muted)}
.filters{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:var(--space-5)}.searchrow{display:flex;align-items:end;gap:var(--space-4)}.searchrow label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);font-weight:500}.searchbox{flex:1}.searchrow input{height:48px;font-size:var(--text-base)}.zipbox{width:190px}.primary{background:var(--accent);color:var(--surface);border-color:var(--accent);min-height:48px;font-weight:600}.primary:hover{background:var(--text);color:var(--surface)}[data-theme=dark] .primary{color:var(--bg)}.filterrow{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border);font-size:var(--text-sm)}.filterrow select{font-size:var(--text-sm)}.check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);cursor:pointer}.check input{min-height:18px;width:18px;height:18px;accent-color:var(--accent);margin:0}.text-button{border:0;background:none;padding:var(--space-2);color:var(--accent);text-decoration:underline;text-underline-offset:3px}.filterrow .text-button{margin-left:auto;font-size:var(--text-xs)}.zipfeedback:empty{display:none}.zipfeedback{margin-top:var(--space-3);padding:var(--space-3);background:var(--surface2);border-radius:4px;font-size:var(--text-sm)}.zipfeedback.error{color:var(--warning)}.notice{font-size:var(--text-xs);color:var(--muted);padding:var(--space-4) 0;display:flex;flex-wrap:wrap;gap:var(--space-1)}.notice strong{color:var(--text);font-weight:500}.inline-button{padding:0;min-height:24px;border:0;background:none;color:var(--accent);font-size:inherit;text-decoration:underline;text-underline-offset:3px}
.directory{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.tablebar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5)}.tablebar strong{font-size:var(--text-sm);font-weight:600}.tablebar .muted{font-size:var(--text-xs);margin-left:var(--space-3)}.viewcontrols{display:flex;gap:var(--space-3);align-items:center}.viewcontrols select{font-size:var(--text-xs);border:0;background:transparent}.segmented{display:flex;border:1px solid var(--border);border-radius:6px;padding:var(--space-1)}.segmented button{border:0;background:transparent;min-height:34px;font-size:var(--text-xs);padding:var(--space-2) var(--space-3)}.segmented button[aria-pressed=true]{background:var(--surface2);font-weight:600}.table-scroll{overflow:auto;max-height:68vh;border-top:1px solid var(--border)}table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:1090px}th{font-size:var(--text-xs);font-weight:500;text-align:left;background:var(--surface2);position:sticky;top:0;z-index:3;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border)}td{padding:var(--space-5);vertical-align:top;border-bottom:1px solid var(--border);font-size:var(--text-sm);line-height:1.6}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface2)}th:first-child,td:first-child{position:sticky;left:0;background:var(--surface);z-index:2;box-shadow:1px 0 var(--border)}th:first-child{background:var(--surface2);z-index:4}th:first-child{width:28%}th:nth-child(2){width:28%}th:nth-child(3){width:24%}th:nth-child(4){width:20%}.programname{font-size:var(--text-base);line-height:1.35;font-weight:600;display:block;margin-bottom:var(--space-2)}.area{color:var(--muted);font-size:var(--text-xs);line-height:1.5;margin:0 0 var(--space-3)}.row-meta{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.category-label{font-size:var(--text-xs);color:var(--muted)}.details-button{min-height:32px;padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.chip{display:inline-block;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border-radius:4px;background:var(--surface2);border:1px solid var(--border);font-weight:500;margin-bottom:var(--space-2)}.chip.exhausted{background:var(--accentsoft);color:var(--warning)}.ziplabel{display:block;font-weight:500;margin-bottom:var(--space-1)}.zipnote{font-size:var(--text-xs);color:var(--muted);display:block;margin-bottom:var(--space-2)}.zipbutton{border:0;background:transparent;padding:var(--space-1) 0;color:var(--accent);font-size:var(--text-sm);text-decoration:underline;text-underline-offset:3px;min-height:36px}.zip-preview{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--muted)}.status-copy{font-size:var(--text-xs);color:var(--muted)}table.full{min-width:2520px}table.full th{width:260px}table.full th:first-child{width:340px}table.full th:nth-child(2){width:280px}table.full th:nth-child(3){width:330px}table.full td{font-size:var(--text-sm)}.tablefoot{padding:var(--space-3) var(--space-5);display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);color:var(--muted);border-top:1px solid var(--border)}.empty{text-align:center;padding:var(--space-12) var(--space-6)}.empty p{color:var(--muted)}.loading{padding:var(--space-12);color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);font-size:var(--text-xs);color:var(--muted);padding:var(--space-6) 0 var(--space-8)}
dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;width:min(850px,94vw);max-height:90vh;padding:0;box-shadow:0 20px 80px var(--shadow)}dialog::backdrop{background:oklch(15% .01 50 / .55);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:var(--space-4);padding:var(--space-6);position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);z-index:5}.dialog-head h2{margin:0;font-size:var(--text-lg)}.dialog-head button{flex-shrink:0}#dialogbody{padding:var(--space-6)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.detail-field{border-bottom:1px solid var(--border);padding-bottom:var(--space-5)}.detail-field h3{font-size:var(--text-xs);font-weight:500;color:var(--muted);margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:.04em}.detail-field p{font-size:var(--text-base);margin:0}.geobox{background:var(--surface2);padding:var(--space-5);border-radius:6px;margin-bottom:var(--space-6)}.geobox h3{font-size:var(--text-base);margin:0 0 var(--space-2)}.geobox p{font-size:var(--text-sm);margin-bottom:var(--space-3)}.source-list{font-size:var(--text-xs);display:flex;flex-wrap:wrap;gap:var(--space-3)}.zip-tools{display:flex;gap:var(--space-4);align-items:end;margin:var(--space-5) 0}.zip-tools label{display:flex;flex-direction:column;gap:var(--space-2);flex:1;font-size:var(--text-sm)}.zipgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:var(--space-2);max-height:42vh;overflow:auto;padding:var(--space-1)}.zipitem{padding:var(--space-2);border:1px solid var(--border);border-radius:4px;display:flex;flex-direction:column;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.zipitem span{font-size:var(--text-xs);color:var(--muted);overflow-wrap:anywhere}.zipitem.current{border-color:var(--accent);background:var(--accentsoft)}.method-copy p,.method-copy li{font-size:var(--text-sm);color:var(--muted)}.method-copy h3{font-size:var(--text-base);margin-top:var(--space-6)}.method-copy li{margin-bottom:var(--space-3)}.method-copy a{color:var(--accent)}.warn{color:var(--warning)}[hidden]{display:none!important}
@media(max-width:1000px){.snapshot{display:none}.brand-light{display:none}.topbar{padding:var(--space-3) var(--space-5)}main{padding:0 var(--space-5)}.tablebar{flex-wrap:wrap}.filterrow .text-button{margin-left:0}.tablebar .muted{display:block;margin-left:0}footer{flex-wrap:wrap}}
@media(max-width:600px){.topbar{padding:var(--space-3) var(--space-4)}nav button:first-child{display:none}.brand{font-size:var(--text-xs)}main{padding:0 var(--space-4)}.intro{padding:var(--space-6) 0;gap:0}.eyebrow{font-size:var(--text-xs)}h1{font-size:var(--text-xl)}.lede{font-size:var(--text-sm)}.filters{padding:var(--space-4)}.searchrow{flex-wrap:wrap;gap:var(--space-3)}.searchbox{flex:1 1 100%}.zipbox{width:auto;flex:1;min-width:110px}.searchrow .primary{padding:var(--space-2) var(--space-3)}.filterrow{gap:var(--space-2)}.filterrow>label:not(.check){width:100%}.filterrow select{width:100%}.check{min-height:36px}.notice{display:block}.notice strong{display:block}.viewcontrols{width:100%;justify-content:space-between;gap:var(--space-2)}.viewcontrols select{max-width:110px;padding-left:0}.tablebar{padding:var(--space-3) var(--space-4)}.table-scroll{max-height:none;overflow:visible}.table-scroll:has(table.full){overflow:auto;max-height:75vh}table:not(.full){min-width:0;display:block}table:not(.full) thead{display:none}table:not(.full) tbody{display:block}table:not(.full) tr{display:block;border-top:1px solid var(--border);padding:var(--space-4)}table:not(.full) td{display:block;position:static;box-shadow:none;border:0;padding:var(--space-2) 0;font-size:var(--text-sm)}table:not(.full) td:before{content:attr(data-label);display:block;font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--space-1)}table:not(.full) td:first-child:before{display:none}.programname{font-size:var(--text-lg)}.tablefoot{display:block}.tablefoot span{display:block;margin-bottom:var(--space-2)}footer{display:block}footer span{display:block;margin-bottom:var(--space-2)}dialog{width:96vw;max-height:94vh}.dialog-head,#dialogbody{padding:var(--space-4)}.dialog-head h2{font-size:var(--text-base)}.detail-grid{grid-template-columns:1fr}.zip-tools{flex-wrap:wrap}.zipgrid{grid-template-columns:repeat(3,1fr)}}
.mobile-filter-toggle{display:none}
@media(max-width:600px){.mobile-filter-toggle{display:block;width:100%;margin-top:var(--space-3);background:transparent}.filterrow:not(.expanded){display:none}table.full th:first-child{width:210px;left:auto;z-index:3;box-shadow:none}table.full td:first-child{position:static;box-shadow:none}.details-button,.zipbutton{min-height:44px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s,color .15s}dialog[open]{animation:appear .15s ease-out}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
