:root{--ground:#f2f3f1;--land:#eef0f1;--surface:#fff;--surface-2:#f5f6f4;--line:#e2e4e0;--fg:#1c1f1d;--fg-2:#5c625e;--accent:#1d5fbf;--accent-fg:#fff;--check:#9a5b00;--check-bg:#fdf0db;--o0:#eef2f6;--o1:#d3e1ee;--o2:#a8c5df;--o3:#6f9ccb;--o4:#3d72aa;--o5:#1f4f86;--on-o5:#fff;--f0:#ecebf7;--f1:#cfcbee;--f2:#a39adf;--f3:#6f5fc6;--f4:#4632a0;--shadow:0 8px 28px #141c1829, 0 1px 3px #141c181a;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ground:#0f1110;--land:#1a1d20;--surface:#232725;--surface-2:#2b302d;--line:#383e3a;--fg:#eef1ee;--fg-2:#a7aea9;--accent:#7cb3ff;--accent-fg:#0b1220;--check:#f2b552;--check-bg:#3a2a10;--o0:#1f2429;--o1:#1d3247;--o2:#25486a;--o3:#336796;--o4:#5590c6;--o5:#9cc4ea;--on-o5:#111;--f0:#25233a;--f1:#352f63;--f2:#4c3f95;--f3:#7564cf;--f4:#a99cf0;--shadow:0 8px 28px #00000080, 0 1px 3px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@media (prefers-contrast:more){:root{--fg-2:var(--fg);--line:color-mix(in srgb, var(--fg) 45%, transparent)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}html,body{overscroll-behavior:none}body{background:var(--land);color:var(--fg);font:15px/1.45 var(--font);-webkit-font-smoothing:antialiased}::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}h1,h2,h3,p{margin:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{height:100dvh;position:relative;overflow:hidden}.app>.map{background:var(--land);touch-action:none;position:absolute;inset:0}.topbar{z-index:3;gap:10px;display:flex;position:absolute;top:12px;left:12px}.brand{background:var(--surface);width:404px;height:44px;box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:8px;padding:0 6px 0 12px;display:flex}.brand .mark{background:var(--fg);width:22px;height:22px;color:var(--surface);letter-spacing:.02em;border-radius:6px;flex:none;place-items:center;font-size:10px;font-weight:800;display:grid}.brand h1{white-space:nowrap;font-size:15px;font-weight:700}.project{color:var(--fg-2);align-items:center;margin-left:auto;display:flex;position:relative}.project select{appearance:none;color:var(--fg-2);cursor:pointer;background:0 0;border:0;border-radius:10px;height:44px;padding:0 26px 0 10px;font-size:13px;font-weight:600}.project select:active{background:var(--surface-2);color:var(--fg)}.project svg{pointer-events:none;position:absolute;right:6px}.search{background:var(--surface);width:340px;height:44px;box-shadow:var(--shadow);color:var(--fg-2);border-radius:12px;align-items:center;gap:8px;padding:0 14px;display:flex;position:relative}.search svg{flex:none}.search input{min-width:0;height:100%;color:var(--fg);background:0 0;border:0;outline:0;flex:1;font-size:15px}.search input::placeholder{color:var(--fg-2)}.search:focus-within{box-shadow:var(--shadow), 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent)}.results{background:var(--surface);box-shadow:var(--shadow);overscroll-behavior:contain;border-radius:12px;max-height:60dvh;margin:0;padding:6px;list-style:none;position:absolute;top:50px;left:0;right:0;overflow-y:auto}.results button{text-align:left;background:0 0;border:0;border-radius:8px;width:100%;min-height:44px;padding:8px 10px;display:grid}.results button:active{background:var(--surface-2)}.results b{font-size:14px;font-weight:600}.results small,.results .none{color:var(--fg-2);font-size:13px}.results .none{padding:10px}.panel{z-index:2;background:var(--surface);width:404px;max-height:calc(100% - 80px);box-shadow:var(--shadow);touch-action:manipulation;border-radius:16px;flex-direction:column;display:flex;position:absolute;top:68px;left:12px}.panel .grab{display:none}.scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;min-height:0;animation:enter .28s var(--ease);flex-direction:column;flex:1;gap:14px;padding:16px 18px 20px;display:flex;overflow-y:auto}.scroll>*{flex:none}@keyframes enter{0%{opacity:.4;transform:translateY(4px)}}.title h2{letter-spacing:-.015em;text-wrap:balance;font-size:1.65rem;line-height:1.15}.title h2.sub{font-size:1.15rem}.title p{color:var(--fg-2);text-wrap:pretty;margin-top:3px;font-size:14px}.title .filters{color:var(--fg);font-size:13px;font-weight:600}.title.profile{border-top:1px solid var(--line);margin-top:10px;padding-top:16px}.crumbs{align-items:center;min-height:32px;margin:-6px 0 -6px -8px;display:flex}.back{min-height:44px;color:var(--accent);background:0 0;border:0;border-radius:10px;align-items:center;gap:2px;padding:0 8px;font-size:14px;font-weight:600;display:inline-flex}.back:active{background:var(--surface-2)}.btn{white-space:nowrap;min-height:44px;transition:background-color .15s var(--ease), filter .15s var(--ease);border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.btn.primary{background:var(--accent);color:var(--accent-fg)}.btn.primary:active:not(:disabled){filter:brightness(1.08)}.btn.tonal{background:var(--surface-2);color:var(--accent)}.btn.tonal:active{background:color-mix(in srgb, var(--accent) 10%, var(--surface-2))}.btn:disabled{cursor:not-allowed;background:var(--surface-2);color:var(--fg-2)}.actions{gap:8px;display:flex}.actions .btn{flex:1}.panel>.scroll>.btn.primary,.panel>.scroll>.btn:disabled{width:100%}.verdict{align-items:center;gap:14px;display:flex}.verdict .score{background:var(--o5);width:64px;height:64px;color:var(--on-o5);border-radius:16px;flex:none;align-content:center;place-items:center;display:grid}.verdict .score b{font-variant-numeric:tabular-nums;font-size:26px;line-height:1}.verdict .score span{opacity:.85;font-size:10px}.verdict>div:last-child{color:var(--fg-2);gap:2px;font-size:14px;display:grid}.verdict>div:last-child b{color:var(--fg);font-size:16px}.heads-up{color:var(--fg);align-items:flex-start;gap:8px;font-size:14px;display:flex}.heads-up svg{color:var(--check);flex:none;margin-top:1px}.links{display:grid}.row{text-align:left;border:0;border-top:1px solid var(--line);width:100%;min-height:56px;color:var(--fg-2);background:0 0;align-items:center;gap:12px;padding:10px 2px;font-size:14px;display:flex}.row:active .txt b{color:var(--accent)}.row .ico{background:var(--surface-2);width:34px;height:34px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.row .txt{flex:1;min-width:0;display:grid}.row .txt b{color:var(--fg);font-weight:600}.row .txt small{color:var(--fg-2);font-size:13px}.ranked{margin:0 -8px;padding:0;list-style:none;display:grid}.ranked button{text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px;display:flex}.ranked button:active{background:var(--surface-2)}.ranked li+li button{box-shadow:0 -1px 0 var(--line)}.ranked li:active+li button,.ranked li+li button:active{box-shadow:none}.rank{text-align:right;width:24px;color:var(--fg-2);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.who{flex:1;min-width:0;display:grid}.who b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.who small{color:var(--fg-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.pill{text-align:center;font-variant-numeric:tabular-nums;background:var(--o1);min-width:36px;color:var(--fg);border-radius:8px;flex:none;padding:3px 8px;font-size:13px;font-weight:700}.group{gap:8px;display:grid}.group h3{color:var(--fg-2);font-size:13px;font-weight:600}.rows{background:var(--surface-2);border-radius:12px;margin:0;display:grid}.rows>div{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;font-size:14px;display:flex}.rows>div:first-child{border-top:0}.rows dt{color:var(--fg-2);min-width:0}.rows dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.rows dd small{color:var(--fg-2);white-space:nowrap;font-weight:400}.est{color:var(--check);background:var(--check-bg);border-radius:6px;margin-right:6px;padding:1px 6px;font-size:11px;font-weight:600}.notes{color:var(--fg-2);gap:6px;margin:0;padding-left:18px;font-size:14px;display:grid}.fine{color:var(--fg-2);font-size:12px}.mono{font-family:var(--mono);overflow-wrap:anywhere;font-size:11px}.empty{color:var(--fg-2);padding:8px 0;font-size:14px}.textlink{color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.status-line{color:var(--fg-2);align-items:center;gap:8px;font-size:14px;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.files{margin:0;padding:0;list-style:none;display:grid}.file{border-top:1px solid var(--line);gap:6px;padding:12px 0 14px;display:grid}.file .head{align-items:center;gap:12px;display:flex}.file .txt{flex:1;min-width:0;display:grid}.file .txt b{font-size:15px;font-weight:600}.file .txt small{color:var(--fg-2);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:13px}.file .btn{flex:none;padding:0 12px}.note{color:var(--fg-2);text-wrap:pretty;gap:4px;font-size:13px;display:grid}.note .warn{color:var(--fg);align-items:flex-start;gap:6px;display:flex}.note .warn svg{color:var(--check);flex:none;margin-top:1px}.note a,.fine a{color:var(--accent);text-underline-offset:3px;font-weight:600;text-decoration-thickness:1px}.edit{gap:18px;display:grid}.edit .fixed{background:var(--surface-2);border-radius:12px;padding:10px 12px;font-size:14px}.edit .fixed:first-letter{text-transform:uppercase}.edit select,.edit input{font-size:16px}.rows.inputs>label{min-height:56px;color:var(--fg-2);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:6px 6px 6px 12px;font-size:14px;display:flex}.rows.inputs>label:first-child{border-top:0}.num{background:var(--surface);border:1px solid var(--line);width:148px;height:44px;color:var(--fg-2);border-radius:10px;flex:none;align-items:center;gap:4px;padding:0 10px;display:flex}.num:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.num i{font-style:normal}.num input{text-align:right;min-width:0;height:100%;color:var(--fg);font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:0;outline:0;flex:1}.num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num input::placeholder{color:var(--fg-2)}.num input:invalid{color:var(--check)}.mapctl{z-index:3;justify-items:end;gap:8px;display:grid;position:absolute;top:12px;right:12px}.stack{background:var(--surface);box-shadow:var(--shadow);border-radius:10px;display:grid;overflow:hidden}.stack button{width:44px;height:44px;color:var(--fg);background:0 0;border:0;place-items:center;display:grid}.stack button:active{background:var(--surface-2)}.stack button+button{border-top:1px solid var(--line)}.stack button[aria-expanded=true]{color:var(--accent)}.layers{background:var(--surface);width:280px;box-shadow:var(--shadow);animation:enter .2s var(--ease);border-radius:14px;grid-template-columns:minmax(0,1fr);gap:14px;padding:14px;display:grid}.layers fieldset{border:0;gap:6px;margin:0;padding:0;display:grid}.layers legend,.field>span{color:var(--fg-2);padding:0;font-size:13px;font-weight:600}.seg{background:var(--surface-2);border-radius:11px;gap:2px;padding:3px;display:flex}.seg button{min-height:40px;color:var(--fg-2);background:0 0;border:0;border-radius:8px;flex:1;font-size:13px;font-weight:600}.seg button[aria-pressed=true]{background:var(--fg);color:var(--surface)}.field{gap:6px;display:grid}.field select{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;width:100%;min-height:44px;padding:0 10px;font-size:14px}.check{color:var(--fg-2);align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent);margin:1px 0 0}.check span{display:grid}.check small{font-size:12px}.legend{z-index:1;background:var(--surface);box-shadow:var(--shadow);color:var(--fg-2);border-radius:10px;gap:6px;padding:10px 12px;font-size:12px;display:grid;position:absolute;bottom:36px;right:12px}.legend b{color:var(--fg);font-size:12px}.legend .ramp{border-radius:4px;width:180px;height:8px;display:flex;overflow:hidden}.legend .ramp i{flex:1}.legend .ends{justify-content:space-between;display:flex}.maplibregl-ctrl-attrib{font:11px var(--font)}@media (width<=719px){.topbar{left:12px;right:68px;top:max(12px, env(safe-area-inset-top))}.brand{flex:none;width:auto;padding:0 2px}.brand .mark{display:none}.brand h1{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.project select{padding-right:24px}.search{flex:1;width:auto;min-width:0;padding:0 12px;position:static}.results{right:-56px}.mapctl{top:max(12px, env(safe-area-inset-top))}.mapctl .zoom{display:none}.layers{width:min(280px,100vw - 24px)}.legend{bottom:auto;left:12px;right:auto;top:calc(max(12px, env(safe-area-inset-top)) + 54px);padding:8px 10px}.legend .ramp{width:120px}.panel{width:auto;height:44dvh;max-height:none;transition:height .3s var(--ease);border-radius:16px 16px 0 0;inset:auto 0 0;box-shadow:0 -6px 24px #141c1829}.panel.expanded{height:88dvh}.panel .grab{background:0 0;border:0;flex:none;place-items:center;width:100%;height:44px;margin-bottom:-12px;display:grid}.panel .grab i{background:var(--line);border-radius:3px;width:38px;height:5px}.scroll{padding:4px 16px calc(24px + env(safe-area-inset-bottom))}.title h2{font-size:1.45rem}.maplibregl-ctrl-bottom-right{bottom:44dvh}}@media (hover:hover) and (pointer:fine){.project select:hover{background:var(--surface-2);color:var(--fg)}.results button:hover,.back:hover,.ranked button:hover,.stack button:hover{background:var(--surface-2)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.tonal:hover{background:color-mix(in srgb, var(--accent) 10%, var(--surface-2))}.row:hover .txt b{color:var(--accent)}.ranked li:hover+li button,.ranked li+li button:hover{box-shadow:none}}@media (pointer:coarse){.search input,.project select,.field select{font-size:16px}.layers{width:min(320px,100vw - 24px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app .maplibregl-ctrl.maplibregl-ctrl-attrib{background:color-mix(in srgb, var(--surface) 85%, transparent);color:var(--fg-2)}@media (prefers-reduced-transparency:reduce){.app .maplibregl-ctrl.maplibregl-ctrl-attrib{background:var(--surface)}}@media (prefers-color-scheme:dark){.app .maplibregl-ctrl-attrib-button{filter:invert()}}.app .maplibregl-ctrl-attrib a{color:var(--fg-2)}
