.app{--bg:var(--sd-bg);--surface:var(--sd-surface);--surface-2:var(--sd-gray-50);--surface-sunken:var(--sd-gray-100);--border:var(--sd-border);--border-strong:var(--sd-gray-300);--text:var(--sd-ink);--text-2:var(--sd-muted);--text-3:var(--sd-gray-400);--accent:var(--sd-primary);--accent-soft:var(--sd-primary-50);--warn:var(--sd-warning-700);--warn-soft:var(--sd-warning-50);--danger:var(--sd-danger-700);--danger-soft:var(--sd-danger-50);--ok:var(--sd-success-700);--map-bg:var(--sd-gray-100);--map-outline:var(--sd-surface);--sp-radius:var(--radius-lg);--sp-radius-sm:var(--radius-sm);--shadow:var(--sd-elev-card,0 1px 2px #10141b0f, 0 2px 8px #10141b0d);--font:var(--font-sans);--mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--rail-w:296px;--panel-w:344px;--header-h:52px;--strip-h:208px}.app,.app *,.app :before,.app :after{box-sizing:border-box}.app{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}.app button,.app input,.app select,.app textarea{font:inherit;color:inherit}.app :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--sp-radius-sm)}.app .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.app .visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{flex-direction:column;height:100%;display:flex;overflow:hidden}.app .topbar{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:20;flex:none;align-items:center;gap:16px;padding:0 16px;display:flex}.app .topbar__brand{flex-direction:column;flex:160px;gap:1px;min-width:0;display:flex}.app .topbar__title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:14px;font-weight:650;overflow:hidden}.app .topbar__sub{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.app .tabs{background:var(--surface-sunken);border-radius:var(--sp-radius);gap:2px;padding:3px;display:flex}.app .tab{appearance:none;border-radius:var(--sp-radius-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:5px 12px;font-size:12.5px;font-weight:550}.app .tab:hover{color:var(--text)}.app .tab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.app .topbar__spacer{flex:1}.app .synthetic-chip{background:var(--warn-soft);color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 28%, transparent);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.app .synthetic-chip__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.app .workspace{flex:1;min-height:0;display:flex}.app .rail,.app .panel{overscroll-behavior:contain;background:var(--surface);min-height:0;overflow-y:auto}.app .rail{flex:0 0 var(--rail-w);border-right:1px solid var(--border)}.app .panel{flex:0 0 var(--panel-w);border-left:1px solid var(--border)}.app .stage{background:var(--map-bg);flex:auto;grid-template-rows:minmax(260px,1fr) auto auto;min-width:0;min-height:0;display:grid}.app .map-wrap{min-height:0;position:relative}.app .strip{height:var(--strip-h);background:var(--surface);border-top:1px solid var(--border);flex:none;min-height:0;display:flex}.app[data-rail=hidden] .rail,.app[data-detail=hidden] .panel,.app[data-strip=hidden] .strip{display:none}.app[data-strip=hidden] .stage{grid-template-rows:minmax(0,1fr) auto}.app .panel-toggles{background:var(--surface-sunken);border-radius:var(--sp-radius);gap:2px;padding:3px;display:flex}.app .panel-toggles button{appearance:none;color:var(--text-3);border-radius:var(--sp-radius-sm);cursor:pointer;background:0 0;border:0;padding:4px 6px;line-height:0}.app .panel-toggles button:hover{background:var(--surface);color:var(--text-2)}.app .panel-toggles button[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}.app .timeline{background:var(--surface);border-top:1px solid var(--border);flex:none;align-items:center;gap:14px;padding:9px 16px 11px;display:flex}.app .timeline__play{border:1px solid var(--accent);border-radius:var(--sp-radius-sm);background:var(--accent);color:var(--sd-surface);cursor:pointer;flex:none;align-items:center;gap:6px;padding:5px 12px 5px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.app .timeline__play:hover{filter:brightness(1.08)}.app .timeline__play:disabled{opacity:.45;cursor:not-allowed}.app .timeline__now{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;flex:0 0 216px;font-size:12.5px;font-weight:650;overflow:hidden}@media (width<=1400px){.app .timeline__now{flex-basis:190px}}.app .timeline__track{flex:auto;min-width:0;padding-bottom:13px;position:relative}.app .timeline__track input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;margin:0}.app .timeline__ticks{pointer-events:none;height:12px;position:absolute;inset:auto 0 0}.app .timeline__tick{color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:9.5px;position:absolute;transform:translate(-50%)}.app .timeline__range{color:var(--text-3);white-space:nowrap;flex:none;font-size:11px}.app .timeline__speed select{width:auto;padding:4px 6px;font-size:11.5px}@media (width<=900px){.app .timeline{flex-wrap:wrap;gap:10px}.app .timeline__range{display:none}.app .timeline__track{flex-basis:100%;order:5}}.app .section{border-bottom:1px solid var(--border);padding:12px 14px 14px}.app .section:last-child{border-bottom:0}.app .section__title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;font-size:10.5px;font-weight:700;display:flex}.app .field{margin-bottom:10px}.app .field:last-child{margin-bottom:0}.app .field__label{color:var(--text-2);margin-bottom:4px;font-size:11.5px;font-weight:600;display:block}.app .field__hint{color:var(--text-3);margin-top:4px;font-size:11px;line-height:1.4}.app select,.app input[type=search],.app input[type=text],.app input[type=number]{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--sp-radius-sm);width:100%;padding:6px 8px;font-size:12.5px}.app select:hover,.app input:hover{border-color:var(--text-3)}.app .segmented{border:1px solid var(--border-strong);border-radius:var(--sp-radius-sm);display:flex;overflow:hidden}.app .segmented button{appearance:none;border:0;border-right:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;white-space:nowrap;flex:1;padding:5px 6px;font-size:12px;font-weight:550}.app .segmented button:last-child{border-right:0}.app .segmented button:hover{background:var(--surface-2);color:var(--text)}.app .segmented button[aria-pressed=true]{background:var(--accent);color:var(--sd-surface);border-color:var(--accent)}.app .check{cursor:pointer;align-items:flex-start;gap:8px;padding:4px 0;font-size:12.5px;display:flex}.app .check input{accent-color:var(--accent);flex:none;margin:2px 0 0}.app .btn{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--sp-radius-sm);cursor:pointer;padding:5px 10px;font-size:12px;font-weight:550}.app .btn:hover{background:var(--surface-2)}.app .btn--subtle{color:var(--accent);background:0 0;border-color:#0000;padding:2px 4px}.app .btn--subtle:hover{background:var(--accent-soft)}.app .picker__search{margin-bottom:8px;position:relative}.app .picker__list{border:1px solid var(--border);border-radius:var(--sp-radius-sm);background:var(--surface-2);max-height:268px;overflow-y:auto}.app .picker__group{z-index:1;background:var(--surface-sunken);border-bottom:1px solid var(--border);letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);padding:5px 9px;font-size:10px;font-weight:700;position:sticky;top:0}.app .picker__item{text-align:left;appearance:none;border:0;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;width:100%;padding:7px 9px;font-size:12.5px;line-height:1.35;display:block}.app .picker__item:hover{background:var(--accent-soft)}.app .picker__item[aria-current=true]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.app .picker__item-row{align-items:center;gap:6px;display:flex}.app .picker__flag{letter-spacing:.04em;background:var(--surface-sunken);color:var(--text-3);border:1px solid var(--border);border-radius:3px;flex:none;padding:1px 4px;font-size:9.5px;font-weight:700}.app .picker__flag--nomap{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb, var(--warn) 30%, transparent)}.app .picker__empty{text-align:center;color:var(--text-3);padding:18px 12px;font-size:12px}.app .maplibregl-map{font-family:var(--font)}.app .map-overlay{z-index:5;pointer-events:none;position:absolute}.app .map-overlay>*{pointer-events:auto}.app .map-overlay--tl{max-width:min(460px,100% - 20px);top:10px;left:10px}.app .map-overlay--bl{max-height:calc(100% - 136px);bottom:10px;left:10px}.app .map-overlay--br{max-height:calc(100% - 136px);bottom:10px;right:10px}.app .map-overlay--bl>*,.app .map-overlay--br>*{overscroll-behavior:contain;max-height:100%;overflow-y:auto}.app .map-card{background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:var(--sp-radius);box-shadow:var(--shadow);padding:10px 12px}.app .map-title{letter-spacing:-.01em;margin:0 0 2px;font-size:13px;font-weight:650}.app .map-subtitle{color:var(--text-2);margin:0;font-size:11.5px}.app .map-caveat{border-top:1px solid var(--border);color:var(--warn);gap:6px;margin-top:7px;padding-top:7px;font-size:11px;line-height:1.45;display:flex}.app .map-caveat svg{flex:none;margin-top:1px}.app .legend__title{color:var(--text-2);margin:0 0 6px;font-size:11px;font-weight:650}.app .legend__row{cursor:default;border-radius:3px;align-items:center;gap:7px;padding:1.5px 3px;font-size:11.5px;display:flex}.app .legend__row--interactive{cursor:pointer}.app .legend__row--interactive:hover,.app .legend__row--active{background:var(--surface-sunken)}.app .legend__swatch{border:1px solid #00000029;border-radius:2px;flex:none;width:15px;height:11px}.app .legend__count{color:var(--text-3);margin-left:auto;padding-left:8px;font-size:10.5px}.app .legend__note{border-top:1px solid var(--border);color:var(--text-3);max-width:230px;margin-top:7px;padding-top:7px;font-size:10.5px;line-height:1.4}.app .legend__bivariate{grid-template-columns:repeat(3,20px);gap:2px;display:grid}.app .legend__bivariate div{border-radius:2px;width:20px;height:20px}.app .map-tooltip{z-index:8;pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--sp-radius-sm);box-shadow:var(--shadow);min-width:150px;max-width:250px;padding:7px 9px;font-size:12px;position:absolute}.app .map-tooltip__name{margin-bottom:1px;font-weight:650}.app .map-tooltip__parent{color:var(--text-3);margin-bottom:5px;font-size:10.5px}.app .map-tooltip__value{letter-spacing:-.015em;font-size:15px;font-weight:650}.app .map-tooltip__meta{color:var(--text-2);margin-top:3px;font-size:10.5px}.app .detail__header{border-bottom:1px solid var(--border);padding:13px 14px 12px}.app .detail__name{letter-spacing:-.015em;margin:0;font-size:16px;font-weight:650;line-height:1.2}.app .detail__parent{color:var(--text-3);margin-top:2px;font-size:11.5px}.app .bignum{align-items:baseline;gap:7px;margin:10px 0 2px;display:flex}.app .bignum__value{letter-spacing:-.025em;font-size:27px;font-weight:640;line-height:1}.app .bignum__label{color:var(--text-2);font-size:11.5px;line-height:1.3}.app .flag{border-radius:999px;align-items:center;gap:5px;padding:2px 7px;font-size:10.5px;font-weight:650;display:inline-flex}.app .flag--good{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok)}.app .flag--moderate{background:var(--warn-soft);color:var(--warn)}.app .flag--unstable{background:var(--danger-soft);color:var(--danger)}.app .statgrid{background:var(--border);border:1px solid var(--border);border-radius:var(--sp-radius-sm);grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.app .statgrid__cell{background:var(--surface);padding:7px 9px}.app .statgrid__label{color:var(--text-3);margin-bottom:1px;font-size:10.5px}.app .statgrid__value{font-size:13.5px;font-weight:600}.app .statgrid__sub{color:var(--text-2);margin-top:1px;font-size:10.5px}.app .compare-row{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:10px;padding:5px 0;font-size:12px;display:flex}.app .compare-row:last-child{border-bottom:0}.app .compare-row__label{color:var(--text-2);min-width:0}.app .compare-row__value{white-space:nowrap;font-weight:600}.app .delta--up{color:var(--danger)}.app .delta--down{color:var(--ok)}.app .delta--flat{color:var(--text-3)}.app .empty-state{text-align:center;color:var(--text-3);padding:30px 22px}.app .empty-state__icon{opacity:.4;margin-bottom:10px}.app .empty-state__title{color:var(--text-2);margin-bottom:4px;font-size:13px;font-weight:600}.app .empty-state__body{font-size:12px;line-height:1.5}.app .notice{border-radius:var(--sp-radius-sm);border:1px solid;gap:8px;padding:9px 10px;font-size:11.5px;line-height:1.45;display:flex}.app .notice--warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb, var(--warn) 28%, transparent)}.app .notice--info{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 26%, transparent)}.app .notice--danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 28%, transparent)}.app .notice svg{flex:none;margin-top:1px}.app .strip__pane{border-right:1px solid var(--border);flex-direction:column;flex:1;min-width:0;padding:10px 14px 12px;display:flex}.app .strip__pane:last-child{border-right:0}.app .strip__pane--rank{flex:0 0 410px}.app .strip__head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.app .strip__title{color:var(--text-2);font-size:11.5px;font-weight:650}.app .strip__hint{color:var(--text-3);font-size:10.5px}.app .strip__body{flex:1;min-height:0;position:relative}.app .ranklist{flex-direction:column;gap:1px;height:100%;display:flex;overflow-y:auto}.app .rankrow{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:3px;grid-template-columns:26px minmax(0,1fr) 76px 66px;align-items:center;gap:8px;width:100%;padding:3px 5px;font-size:12px;display:grid}.app .rankrow:hover{background:var(--surface-sunken)}.app .rankrow[aria-current=true]{background:var(--accent-soft);font-weight:600}.app .rankrow__rank{color:var(--text-3);text-align:right;font-size:10.5px}.app .rankrow__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app .rankrow__bar{background:var(--surface-sunken);border-radius:2px;height:13px;position:relative;overflow:hidden}.app .rankrow__fill{border-radius:2px;position:absolute;inset:0 auto 0 0}.app .rankrow__val{text-align:right;font-size:11.5px}.app .rank-divider{letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:8px;padding:5px 5px 3px;font-size:10px;font-weight:700;display:flex}.app .rank-divider:after{content:"";background:var(--border);flex:1;height:1px}.app .chart{width:100%;height:100%;display:block;overflow:visible}.app .chart text{fill:var(--text-3);font-size:9.5px}.app .chart .axis-line{stroke:var(--border-strong);stroke-width:1px}.app .chart .gridline{stroke:var(--border);stroke-width:1px;stroke-dasharray:2 3}.app .chart .ref-line{stroke:var(--text-3);stroke-width:1px;stroke-dasharray:3 3}.app .chart .point{cursor:pointer}.app .chart .point--selected{stroke:var(--text);stroke-width:2px}.app .sparkline__area{fill:var(--accent);opacity:.12}.app .sparkline__line{fill:none;stroke:var(--accent);stroke-width:1.75px;stroke-linejoin:round;stroke-linecap:round}.app .sparkline__dot{fill:var(--accent)}.app .boot{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;padding:24px;display:flex}.app .boot__title{font-size:14px;font-weight:600}.app .boot__body{color:var(--text-2);max-width:430px;font-size:12.5px;line-height:1.55}.app .spinner{border:2.5px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.app .spinner{animation-duration:2.4s}.app *{transition:none!important}}.app dialog.sheet{border:1px solid var(--border);border-radius:var(--sp-radius);background:var(--surface);width:calc(100% - 32px);max-width:620px;color:var(--text);padding:0;box-shadow:0 8px 40px #00000040}.app dialog.sheet::backdrop{background:#0a0d1273}.app .sheet__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.app .sheet__title{margin:0;font-size:14px;font-weight:650}.app .sheet__body{color:var(--text-2);max-height:65vh;padding:14px 16px 18px;font-size:12.5px;line-height:1.6;overflow-y:auto}.app .sheet__body h4{color:var(--text);letter-spacing:.02em;margin:16px 0 6px;font-size:12px;font-weight:700}.app .sheet__body h4:first-child{margin-top:0}.app .sheet__body p{margin:0 0 9px}.app .sheet__body ul{margin:0 0 9px;padding-left:18px}.app .sheet__body li{margin-bottom:4px}.app .sheet__body code{font-family:var(--mono);background:var(--surface-sunken);border-radius:3px;padding:1px 4px;font-size:11.5px}.app .criterion{border:1px solid var(--border);border-radius:var(--sp-radius-sm);background:var(--surface-2);margin-bottom:7px;padding:8px 9px}.app .criterion__head{align-items:center;gap:6px;margin-bottom:6px;display:flex}.app .criterion__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.app .criterion__controls{grid-template-columns:78px 1fr;align-items:center;gap:6px;display:grid}.app .criterion__meta{color:var(--text-3);margin-top:5px;font-size:10.5px}.app .icon-btn{appearance:none;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px;line-height:0}.app .icon-btn:hover{background:var(--surface-sunken);color:var(--danger)}.app .chiplist{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.app .chip{background:var(--surface-sunken);color:var(--text-2);border:1px solid var(--border);border-radius:999px;padding:2px 7px;font-size:10.5px}.app .chip--hit{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 26%, transparent)}@media (width<=1280px){.app{--rail-w:262px;--panel-w:306px}}@media (width<=1080px){.app .topbar{height:auto;min-height:var(--header-h);flex-wrap:wrap;gap:8px 16px;padding:8px 16px}.app .topbar__brand{flex:100%}.app .tabs{flex:auto;min-width:0;overflow-x:auto}.app .workspace{flex-direction:column;display:flex;overflow-y:auto}.app .rail,.app .panel{border:0;border-bottom:1px solid var(--border);flex:none;order:1;overflow:visible}.app .panel{order:2}.app .stage{flex:none;order:-1;height:auto;min-height:0;display:block}.app .map-wrap{height:56vh;min-height:340px}.app .strip{flex-direction:column;height:auto}.app .strip__pane{border-right:0;border-bottom:1px solid var(--border);flex:none;height:210px}}@media (width<=620px){.app .topbar{padding:8px 12px}.app .tabs{flex-basis:100%;order:3;width:100%;overflow-x:auto}.app .synthetic-chip{white-space:normal;text-align:left}.app .map-overlay--tl{max-width:calc(100% - 20px)}.app .legend__note{max-width:180px}}
