:root{--bg: #f6f7f8;--panel: #ffffff;--ink: #18212b;--muted: #5d6874;--line: #dde2e7;--soft: #eef1f4;--accent: #1f5f8b;--accent-ink: #ffffff;--sel: #e4eef6;--ok: #1e7a4c;--ok-soft: #e3f3ea;--warn: #8a5a00;--warn-soft: #fbf0d9;--no: #a3302a;--no-soft: #f8e4e2;--b-census: #1f5f8b;--b-census-soft: #e4eef6;--b-survey: #6b4fa0;--b-survey-soft: #eee8f7;--b-vehicle: #8a5a00;--b-vehicle-soft: #fbf0d9;--b-business: #1e7a4c;--b-business-soft: #e3f3ea;--b-student: #9c3b6c;--b-student-soft: #f7e6ef;--f-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #12171d;--panel: #1a2128;--ink: #e6ebf0;--muted: #9aa6b2;--line: #2c3640;--soft: #222b34;--accent: #6fb0dc;--accent-ink: #0d1820;--sel: #1f3344;--ok: #5fc792;--ok-soft: #173327;--warn: #e2b45a;--warn-soft: #352a14;--no: #ec7d75;--no-soft: #3a1d1b;--b-census: #8cc3e8;--b-census-soft: #1f3344;--b-survey: #c3aef0;--b-survey-soft: #2c2440;--b-vehicle: #e2b45a;--b-vehicle-soft: #352a14;--b-business: #5fc792;--b-business-soft: #173327;--b-student: #eea3c8;--b-student-soft: #3a1f2d;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--f-body)}h1,h2,h3{margin:0 0 8px;line-height:1.2;text-wrap:balance}h1{font-size:26px}h2{font-size:18px}h3{font-size:14px;margin-top:18px}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=search]{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:7px 9px;width:100%}code{font:12px var(--f-mono)}.muted{color:var(--muted)}.small{font-size:12px}.pad{padding:14px 16px}.error{color:var(--no)}.banner{margin:0;padding:8px 16px;background:var(--no-soft)}button.primary{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);border-radius:4px;padding:7px 12px;cursor:pointer;font-weight:500}button.primary:disabled{opacity:.5;cursor:default}button.link{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-align:left}button.link:hover{text-decoration:underline}.signin{display:grid;place-items:center;height:100%;padding:16px}.signin-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:28px;max-width:420px;display:grid;gap:10px}.shell{display:flex;flex-direction:column;height:100%}.top{display:flex;align-items:baseline;gap:16px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{font-weight:600;font-size:16px;letter-spacing:.01em}.meta{color:var(--muted);font:12px var(--f-mono);flex:1}.columns{flex:1;display:grid;grid-template-columns:minmax(280px,400px) minmax(0,1fr) minmax(240px,320px);min-height:0}.col{min-width:0;min-height:0;overflow:auto;border-right:1px solid var(--line);background:var(--panel)}.col:last-child{border-right:0}.detail-col{background:var(--bg)}@media (max-width: 1100px){.columns{grid-template-columns:minmax(260px,360px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.tree-col{grid-row:1 / span 2}.audience-col{border-top:1px solid var(--line);max-height:40vh}}@media (max-width: 700px){.columns{grid-template-columns:1fr;grid-template-rows:none;overflow:auto}.col{overflow:visible;border-right:0;border-bottom:1px solid var(--line)}.tree-col{grid-row:auto}.audience-col{max-height:none}}.tree{display:grid;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);height:100%}.tree-tools{display:grid;gap:8px;padding:12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.check{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px}.rows{padding:4px 0 24px}.row{display:flex;align-items:center;gap:4px;min-height:28px;padding-right:8px}.row.on{background:var(--sel)}.row.k-category .row-name{font-weight:600;text-transform:none}.row.nodata .row-name{color:var(--muted)}.twisty{width:20px;flex:0 0 20px;background:none;border:0;color:var(--muted);cursor:pointer;padding:0;text-align:center}.row-name{flex:1;min-width:0;background:none;border:0;padding:3px 2px;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-name:hover{color:var(--accent)}.badge{display:inline-block;font-size:11px;font-weight:500;padding:0 7px;border-radius:10px;white-space:nowrap;line-height:18px}.b-census{background:var(--b-census-soft);color:var(--b-census)}.b-survey_rate{background:var(--b-survey-soft);color:var(--b-survey)}.b-vehicle{background:var(--b-vehicle-soft);color:var(--b-vehicle)}.b-business{background:var(--b-business-soft);color:var(--b-business)}.b-student{background:var(--b-student-soft);color:var(--b-student)}.b-mixed{background:var(--soft);color:var(--ink)}.b-none{background:var(--soft);color:var(--muted)}.hits{list-style:none;margin:0;padding:4px 0 24px}.hit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;width:100%;text-align:left;background:none;border:0;padding:7px 12px;cursor:pointer}.hit:hover,.hit.on{background:var(--sel)}.hit-name{font-weight:500}.hit-path{grid-column:1 / -1;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node{max-width:72ch}.crumbs{color:var(--muted);font-size:12px;margin:0 0 6px}.acr{color:var(--muted);font:13px var(--f-mono)}.how{display:flex;gap:8px;align-items:baseline;margin:6px 0 10px}.def{margin:0 0 8px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0}.kids{list-style:none;margin:0;padding:0;columns:2 220px;column-gap:24px}.kids li{padding:2px 0;break-inside:avoid}.k-none{color:var(--muted)}.id{margin-top:24px;overflow-wrap:anywhere}.chips{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:14px;padding:3px 4px 3px 10px;background:var(--bg)}.chip .x{background:none;border:0;cursor:pointer;color:var(--muted);font-size:16px;line-height:1;padding:0 4px}select,textarea,input[type=text]{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:6px 8px;width:100%}textarea{font:12px/1.5 var(--f-mono);resize:vertical}select:focus-visible,textarea:focus-visible,input[type=text]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.secondary{background:var(--panel);color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:6px 12px;cursor:pointer;font-weight:500}button.secondary:disabled{opacity:.55;cursor:default}.any-add{display:inline-flex;gap:6px;align-items:center}.any-add select{width:auto}.warn{color:var(--warn)}.right{float:right;font-weight:400}.tabs{display:flex;gap:2px;padding:8px 16px 0;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:1}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:6px 12px;cursor:pointer;color:var(--muted);font-weight:500}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.tabs button:disabled{opacity:.45;cursor:default}.builder{display:grid;gap:4px}.block{padding:10px 0;border-top:1px solid var(--line);display:grid;gap:6px}.block h3{margin:0}.field{font-weight:600;font-size:13px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;width:max-content;max-width:100%}.seg button{background:var(--panel);border:0;padding:5px 10px;cursor:pointer;color:var(--muted);font-size:13px}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--sel);color:var(--ink);font-weight:500}.states{display:grid;gap:6px}.state-list{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:4px;padding:4px 8px;display:grid;gap:2px}.state-list .check{color:var(--ink);font-size:13px}.zips{display:grid;gap:6px}.file{position:relative;color:var(--accent);cursor:pointer}.file input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;cursor:pointer}.file:focus-within{outline:2px solid var(--accent);outline-offset:2px}.suggest{list-style:none;margin:0;padding:4px 0;border:1px solid var(--line);border-radius:4px;background:var(--panel)}.suggest button{display:block;width:100%;text-align:left;background:none;border:0;padding:5px 8px;cursor:pointer}.suggest button:hover,.suggest button:focus-visible{background:var(--sel)}.run{display:grid;gap:6px;padding-top:12px;border-top:1px solid var(--line)}.run .primary{justify-self:start}.results{max-width:1000px}.totals{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 8px}.total{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 14px;display:grid;min-width:150px}.t-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.t-value{font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.trust{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 14px;margin:10px 0}.trust h3{margin:4px 0}.trust ul{margin:4px 0;padding-left:18px}.trust li{margin:2px 0}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel)}table.grid{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}table.grid th,table.grid td{padding:5px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}table.grid th{position:sticky;top:0;background:var(--panel);font-size:12px}table.grid .num{text-align:right}th .sort{background:none;border:0;padding:0;cursor:pointer;font-weight:600;color:var(--muted)}th.num .sort{text-align:right;width:100%}.modes{display:flex;gap:2px;background:var(--soft);border-radius:6px;padding:2px}.modes button{background:none;border:0;border-radius:4px;padding:4px 14px;cursor:pointer;color:var(--muted);font-weight:500}.modes button.on{background:var(--panel);color:var(--ink);box-shadow:0 0 0 1px var(--line)}.top{align-items:center}.kind{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:1px 8px;border-radius:10px}.kind-consumer{background:var(--b-census-soft);color:var(--b-census)}.kind-business{background:var(--b-business-soft);color:var(--b-business)}.paste textarea{font:12px/1.5 var(--f-mono)}.paste-tools{display:flex;gap:12px;align-items:center}.interp{list-style:none;margin:4px 0;padding:0;display:grid;gap:6px;max-height:320px;overflow:auto}.interp>li{border:1px solid var(--line);border-radius:4px;padding:6px 8px;background:var(--bg)}.interp>li.st-not_found{opacity:.7}.interp-head .flag{color:var(--warn)}.interp>li.st-not_found .flag{color:var(--no)}.interp-ind{list-style:none;margin:4px 0 0;padding:0 0 0 4px;display:grid;gap:2px}.interp-ind .check{color:var(--ink);font-size:12px;align-items:flex-start}.mono{font-family:var(--f-mono);font-size:12px}.builder-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.builder-head h2{margin:0}.small-btn{padding:3px 10px!important;font-size:12px}.confirm-clear{display:inline-flex;gap:8px;align-items:center}.read textarea{width:100%;box-sizing:border-box}.read .card{border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin:12px 0;background:var(--bg);display:grid;gap:6px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-head h3{margin:0}.crit{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px}.crit ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}.crit-role{color:var(--muted);padding-top:2px}.crit .phrase{color:var(--muted)}.read .flag{color:var(--warn)}.crit.unmatched .phrase{color:var(--no)}.notes{margin:4px 0;padding-left:18px}.chip.none{border-style:dashed}.in-market-pick{display:grid;gap:6px}.in-market-pick select{width:100%}.in-market-note{border-left:3px solid var(--accent);padding:4px 8px;background:var(--panel)}.tier{font-size:11px;padding:1px 6px;border-radius:8px;border:1px solid var(--line);margin-left:6px}.tier-in_market{border-color:var(--accent);color:var(--accent)}.geo-cart{display:grid;gap:6px}.geo-search{display:flex;gap:6px}.geo-search input[type=search]{flex:1;min-width:0}.geo-search select{width:auto}.geo-search .miles{width:70px}.geo-chips .chip .link.small{font-size:11px}.chip.none{color:var(--muted)}.geo-radius{display:grid;gap:4px}.geo-radius .expand{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.geo-radius .expand input{width:90px}.geo-radius .expand select{width:auto}.geo-result p{margin:4px 0}:root{--s1: #1f5f8b;--s2: #c2702a;--s3: #2f8f6b;--s4: #8a4fa0;--s5: #b23a48;--s6: #6b7a1f;--s7: #3a7fb8;--s8: #7a5a3a}@media (prefers-color-scheme: dark){:root{--s1: #6fb0dc;--s2: #e39a5a;--s3: #5fc79a;--s4: #c39ae0;--s5: #ec7d8a;--s6: #b8c75f;--s7: #8cc3e8;--s8: #c9a27a}}.app{min-height:100%;display:flex;flex-direction:column}.app>.top{position:sticky;top:0;z-index:5}.paste-top{background:var(--panel);border-bottom:1px solid var(--line);padding:10px 16px;display:grid;gap:8px}.paste-row{display:flex;gap:10px;align-items:flex-start}.paste-row textarea{flex:1;min-width:0;font:13px/1.45 var(--f-body)}.paste-actions{display:grid;gap:6px;justify-items:start;min-width:170px}.paste-row.follow textarea{min-height:34px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}.read .cards .card{margin:0}.work{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr) minmax(320px,400px);height:clamp(460px,64vh,820px);border-bottom:1px solid var(--line)}.work .col{min-width:0;min-height:0;overflow:auto;border-right:1px solid var(--line);background:var(--panel)}.work .col:last-child{border-right:0}.work .tree-col{display:flex;flex-direction:column;overflow:hidden}.work .tree-col .modes{margin:10px 12px 0;justify-content:stretch}.work .tree-col .modes button{flex:1;padding:4px 6px;font-size:13px}.work .tree-col .tree{flex:1;min-height:0;overflow:auto;height:auto}.item-col{background:var(--bg)!important}.intro{max-width:60ch}.count-tabs{display:flex;gap:2px;align-items:center;flex-wrap:wrap;padding:8px 12px 0;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.count-tabs button[role=tab]{background:none;border:0;border-bottom:2px solid transparent;padding:5px 10px;cursor:pointer;color:var(--muted);font-weight:500;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.count-tabs .link{margin-left:8px}.carts{display:grid;gap:4px}.count-label{font-weight:600;font-size:15px;border-color:transparent!important;background:transparent!important;padding:2px 4px!important}.count-label:hover,.count-label:focus{border-color:var(--line)!important;background:var(--bg)!important}.builder-head{flex-wrap:nowrap}.row-fields select{width:auto;max-width:100%}.backfill{color:var(--ink);font-size:13px;align-items:flex-start}.own-geo{border-top:1px solid var(--line);padding-top:8px}.drawer{border:1px solid var(--line);border-radius:6px;margin-top:10px;background:var(--bg)}.drawer-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;background:none;border:0;padding:8px 10px;cursor:pointer;font-weight:600;text-align:left}.drawer-body{padding:0 10px 10px;display:grid;gap:2px}.drawer-note{border-left:3px solid var(--warn);background:var(--warn-soft);padding:6px 8px;margin:0 0 4px}.flag{color:var(--warn)}.geo-exclude .field{color:var(--no)}.scoreboard{position:sticky;bottom:0;z-index:4;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -2px 8px #0000000f;padding:10px 16px;display:grid;gap:8px}.tiles{display:flex;gap:10px;height:112px;overflow:hidden}.tiles.all{height:auto;flex-wrap:wrap}.tiles.stale .tile:not(.more){opacity:.6}.tile{flex:0 1 220px;min-width:150px;height:112px;display:grid;align-content:start;gap:3px;text-align:left;cursor:pointer;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;overflow:hidden}.tile.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--sel)}.tile.failed{border-color:var(--no)}.tile.more{flex:0 0 auto;min-width:90px;place-content:center;color:var(--accent);font-weight:600}.tile.deduped{cursor:default;margin-left:auto;flex:0 1 240px;border-style:dashed;border-color:var(--accent);background:var(--panel)}.tile-label{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-total{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.15;white-space:nowrap}.tile-total .unit{font-size:12px;font-weight:400;color:var(--muted)}.tile-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.split{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--soft)}.split>span{display:block;height:100%}.split>span+span{box-shadow:-1px 0 0 var(--panel)}.score-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.geo-line{font:12px var(--f-mono);color:var(--muted);min-width:0}.details{padding:14px 16px 40px;background:var(--bg);display:grid;gap:8px}.details-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.details-head h2{margin:0}.details-tools{margin-left:auto;display:inline-flex;gap:12px;align-items:center}.total-row td{font-weight:600;border-top:2px solid var(--line)}.zip-wrap{max-height:420px;overflow:auto}.by-zip h3{display:flex;gap:12px;align-items:baseline}@media (max-width: 1100px){.work{grid-template-columns:minmax(240px,300px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;height:auto}.work .tree-col{grid-row:1 / span 2;height:70vh}.work .carts-col{grid-column:2;border-top:1px solid var(--line)}}@media (max-width: 700px){.work{grid-template-columns:1fr}.work .tree-col{grid-row:auto;height:60vh}.work .carts-col{grid-column:auto}.paste-row{flex-direction:column}.tile{min-width:130px}}.carts .backfill{display:flex;gap:6px;align-items:flex-start}.tile.deduped .tile-sub{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.work{height:max(440px,calc(100vh - 330px))}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:grid;place-items:center;padding:16px;z-index:20}.modal{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:20px 22px;max-width:440px;width:100%;box-shadow:0 8px 28px #00000040}.modal .actions{margin:16px 0 6px}
