:root{color-scheme:dark;--gb-bg0-hard: #1d2021;--gb-bg0: #282828;--gb-bg0-soft: #32302f;--gb-bg1: #3c3836;--gb-bg2: #504945;--gb-bg3: #665c54;--gb-bg4: #7c6f64;--gb-fg0: #fbf1c7;--gb-fg1: #ebdbb2;--gb-fg2: #d5c4a1;--gb-fg3: #bdae93;--gb-fg4: #a89984;--gb-gray: #928374;--gb-red: #fb4934;--gb-red-dim: #cc241d;--gb-green: #b8bb26;--gb-green-dim: #98971a;--gb-yellow: #fabd2f;--gb-yellow-dim: #d79921;--gb-blue: #83a598;--gb-blue-dim: #458588;--gb-purple: #d3869b;--gb-purple-dim: #b16286;--gb-aqua: #8ec07c;--gb-aqua-dim: #689d6a;--gb-orange: #fe8019;--gb-orange-dim: #d65d0e;--ui-bg: var(--gb-bg0-soft);--ui-surface: var(--gb-bg1);--ui-surface-2: var(--gb-bg2);--ui-border: var(--gb-bg2);--ui-border-strong: var(--gb-bg3);--ui-text: var(--gb-fg1);--ui-text-strong: var(--gb-fg0);--ui-text-muted: var(--gb-fg4);--ui-accent: var(--gb-blue);--ui-accent-2: var(--gb-aqua);--ui-ok: var(--gb-green);--ui-warn: var(--gb-yellow);--ui-danger: var(--gb-red);--ui-info: var(--gb-purple);--ui-radius: .5rem;--ui-radius-lg: .75rem;--ui-appbar-h: 2.4rem;--ui-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ui-font-mono: ui-monospace, "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--ui-shadow: 0 1px 3px rgb(0 0 0 / .35), 0 4px 16px rgb(0 0 0 / .25)}*{box-sizing:border-box}body{margin:0;background:var(--ui-bg);color:var(--ui-text);font-family:var(--ui-font);line-height:1.5}::selection{background:var(--gb-bg3);color:var(--ui-text-strong)}a{color:var(--ui-accent)}a:hover{color:var(--ui-accent-2)}:is(button,input,select,textarea){font:inherit;accent-color:var(--ui-accent)}:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}code,pre,kbd{font-family:var(--ui-font-mono)}*{scrollbar-color:var(--gb-bg3) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--gb-bg3);border-radius:5px}::-webkit-scrollbar-track{background:transparent}.page{display:flex;flex-direction:column;height:calc(100vh - var(--ui-appbar-h, 0rem))}.header{display:flex;align-items:center;flex-shrink:0;gap:12px;padding:10px 16px;border-bottom:1px solid var(--ui-border);background:var(--ui-surface)}.brand{font-weight:700;color:var(--ui-text-strong);text-decoration:none}.subtitle{color:var(--ui-text-muted)}.spacer{flex:1}.who{display:inline-flex;align-items:center;gap:8px;color:var(--ui-text-muted)}.btn{display:inline-block;padding:6px 12px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-surface);color:var(--ui-text);font-size:14px;text-decoration:none;cursor:pointer}.btn:hover{border-color:var(--ui-accent)}.btn.primary{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--gb-bg0-hard)}.btn.wide{width:100%}.home{width:100%;padding:24px;max-width:960px;margin:0 auto;overflow-y:auto;overscroll-behavior:contain}.dungeon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.dungeon-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface);color:var(--ui-text);cursor:pointer}.dungeon-card:hover{border-color:var(--ui-accent)}.dungeon-card img{width:100%;aspect-ratio:2 / 1;object-fit:cover;border-radius:8px}.dungeon-name{font-weight:600}.dungeon-meta{color:var(--ui-text-muted);font-size:13px}.route-list{list-style:none;padding:0}.route-list li{padding:6px 0;border-bottom:1px solid var(--ui-border)}.route-list a{color:var(--ui-accent);text-decoration:none}.routes-filters{display:flex;gap:8px;margin-bottom:14px}.routes-filters input,.routes-filters select{padding:6px 8px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-bg);color:var(--ui-text)}.routes-filters input{flex:1;min-width:0}.routes-table{width:100%;border-collapse:collapse}.routes-table td{padding:6px 10px;border-bottom:1px solid var(--ui-border)}.routes-table th{padding:0;border-bottom:1px solid var(--ui-border-strong)}.routes-table td a{color:var(--ui-accent);text-decoration:none}main.ladder{max-width:1240px}.ladder-table td{white-space:nowrap}.ladder-table td.ladder-team{white-space:normal}.ladder .ladder-controls{display:flex;align-items:center;gap:10px;margin:8px 0 12px}.ladder .ladder-controls select{padding:5px 8px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-bg);color:var(--ui-text)}.ladder .ladder-controls .spacer{flex:1}.ladder-table{font-variant-numeric:tabular-nums}.ladder-table .ladder-level{font-weight:700;white-space:nowrap}.ladder-table .ladder-level small{margin-left:5px;font-weight:400;color:var(--ui-text-muted)}.ladder-table .ladder-num{text-align:right;white-space:nowrap}.ladder-table .ladder-num small.bad{color:var(--ui-danger)}.ladder-table .ladder-team span+span:before{content:" · ";color:var(--ui-text-muted)}.ladder-table tr.ladder-failed td{color:var(--ui-text-muted)}.routes-sort{width:100%;padding:6px 10px;border:0;background:none;color:var(--ui-text-muted);font:inherit;font-weight:600;text-align:left;cursor:pointer;white-space:nowrap}.routes-sort:hover{color:var(--ui-text-strong)}.routes-sort-dir{font-size:11px}.routes-sort-dir.idle{visibility:hidden}.tabbar{display:flex;align-items:stretch;flex-shrink:0;gap:4px;padding:6px 8px 0;border-bottom:1px solid var(--ui-border);background:var(--ui-surface);overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-width:thin}.rtab{display:flex;align-items:center;gap:6px;max-width:240px;padding:6px 6px 6px 10px;border:1px solid var(--ui-border);border-bottom:none;border-radius:8px 8px 0 0;background:var(--ui-bg);color:var(--ui-text-muted);font-size:13px;white-space:nowrap;cursor:pointer}.rtab:hover{border-color:var(--ui-border-strong);color:var(--ui-text)}.rtab.active{background:var(--ui-surface);border-color:var(--ui-accent);color:var(--ui-text-strong)}.rtab:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}.rtab-icon{width:18px;height:18px;flex-shrink:0;border-radius:3px;object-fit:cover}.rtab-title{overflow:hidden;text-overflow:ellipsis}.rtab-cloud{font-size:11px;opacity:.7}.rtab-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--ui-accent)}.rtab-x,.rtab-add{padding:2px 5px;border:none;border-radius:4px;background:none;color:inherit;font-size:15px;line-height:1;cursor:pointer}.rtab-x{opacity:.5}.rtab-x:hover{opacity:1;background:var(--ui-bg)}.rtab-add{align-self:center;padding:4px 10px;color:var(--ui-text-muted);font-size:18px}.rtab-add:hover{color:var(--ui-text-strong);background:var(--ui-bg)}.dungeon-select{width:100%;padding:6px 8px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-bg);color:var(--ui-text)}.footnote.bound code{color:var(--ui-text)}.planner-body{display:flex;flex:1;min-height:0}.sidebar{width:300px;flex-shrink:0;padding:14px;border-right:1px solid var(--ui-border);background:var(--ui-surface);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px}.title-input{width:100%;padding:8px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-bg);color:var(--ui-text)}.progress{display:flex;flex-direction:column;gap:4px;font-size:14px}.progress-bar{height:10px;border-radius:5px;background:var(--ui-bg);overflow:hidden}.progress-fill{height:100%;background:var(--ui-accent);transition:width .15s}.progress-fill.done{background:var(--ui-ok)}.affixes{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--ui-border);border-radius:8px}.affix-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ui-text-muted)}.affix-check{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}html.standalone{--ui-appbar-h: 0rem}html.standalone life-app-switcher{display:none}.import-form{display:flex;gap:8px;max-width:640px;margin:12px 0}.import-form input{flex:1}.gap-field{display:flex;align-items:center;gap:5px;color:var(--ui-text-muted);font-size:13px;white-space:nowrap}.gap-field input{flex:none;width:3.5rem;padding:8px 6px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-bg);color:var(--ui-text)}.gap-field input[type=checkbox]{width:auto;padding:0}.home.import-wide{max-width:1400px}.import-debug h3,.import-debug h4{margin:18px 0 8px}.import-debug-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.import-debug-stats{display:grid;grid-template-columns:max-content 1fr max-content 1fr;gap:4px 14px;margin:8px 0 12px;font-size:13px}.import-debug-stats dt{color:var(--ui-text-muted)}.import-debug-stats dd{margin:0}.import-debug-stats small,.import-debug-table small{color:var(--ui-text-muted)}.import-debug .bad{color:var(--ui-danger)}.import-debug .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.import-debug-notes pre,.import-debug-raw{padding:10px 12px;border:1px solid var(--ui-border);border-radius:6px;background:var(--ui-bg);font-size:12px;white-space:pre-wrap;overflow-x:auto}.import-debug-table{font-size:13px;font-variant-numeric:tabular-nums}.import-debug-table td,.import-debug-table th{padding:4px 8px;vertical-align:top}.import-debug-table tr.ladder-failed td{color:var(--ui-text-muted)}.import-debug-pull{margin:10px 0;border:1px solid var(--ui-border);border-radius:6px}.import-debug-pull.empty{border-color:var(--ui-danger)}.import-debug-pull-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;padding:6px 10px;font-size:13px;color:var(--ui-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.import-debug-pull-head strong{color:var(--ui-text)}.pulls{display:flex;flex-direction:column;gap:6px}.pull{padding:7px 9px;border:1px solid var(--ui-border);border-radius:6px;cursor:pointer;font-size:14px}.pull-head{display:flex;align-items:center;gap:8px}.pull-mobs{list-style:none;margin:6px 0 0;padding:0 0 0 20px;color:var(--ui-text-muted);font-size:12.5px;line-height:1.5}.pull.active{border-color:var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 12%,var(--ui-surface))}.pull-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.pull-name{font-weight:600}.pull-meta{color:var(--ui-text-muted);margin-left:auto;font-size:12px}.pull-cum{display:flex;align-items:center;gap:8px;margin-top:6px}.pull-cum-bar{flex:1;height:4px;border-radius:2px;background:var(--ui-bg);overflow:hidden}.pull-cum-fill{height:100%;background:var(--ui-accent);transition:width .15s}.pull-cum-fill.done{background:var(--ui-ok)}.pull-cum>span{color:var(--ui-text-muted);font-size:11px;white-space:nowrap}.progress-bar{position:relative}.progress-tick{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--ui-text);opacity:.8}.progress-tick.pillar{width:3px;margin-left:-1.5px;background:var(--ui-bg);box-shadow:0 0 0 1px var(--ui-text);opacity:1;z-index:1}.summary{width:220px;flex-shrink:0;padding:10px 10px 14px;border-left:1px solid var(--ui-border);background:var(--ui-surface);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:3px;font-size:12px}.summary-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.summary-total{color:var(--ui-text-muted);white-space:nowrap}.summary-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:6px;align-items:baseline;padding:3px 6px;border-left:3px solid transparent;border-radius:0 4px 4px 0;cursor:pointer;font-variant-numeric:tabular-nums}.summary-row:hover,.summary-row.active{background:var(--ui-bg)}.summary-pull{font-weight:700;white-space:nowrap}.summary-time{color:var(--ui-text-muted);white-space:nowrap;font-size:11px}.summary-count{white-space:nowrap}.summary-count small{color:var(--ui-text-muted);font-size:10.5px}.summary-blood{color:#d94a4a;font-size:11px}.summary-sl{display:inline-flex;gap:2px;align-self:center}.summary-sl img{width:14px;height:14px;border-radius:50%;border:1.5px solid #9b7bf7;background:#14161a;display:block}.summary-sl img.spawn{opacity:.45;border-style:dashed}.summary-sl img.early{border-color:var(--ui-danger)}.source-link a{color:var(--ui-accent)}.summary-foot{margin-top:6px;color:var(--ui-text-muted);text-align:right}.map-col{position:relative}.splits-panel{position:absolute;top:8px;left:8px;z-index:7;width:max-content;min-width:640px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:hidden;padding:10px 12px;border:1px solid var(--ui-border-strong);border-radius:8px;background:var(--ui-surface);box-shadow:0 6px 24px #00000073;display:flex;flex-direction:column;gap:6px;font-size:12.5px}.splits-panel .hl-head .relic-meta{margin-right:auto}.splits-form{display:flex;gap:8px;align-items:center}.splits-form .title-input{flex:1;margin:0}.splits-scroll{overflow:auto;min-height:0}.splits-table{border-collapse:collapse;font-variant-numeric:tabular-nums;white-space:nowrap}.splits-table th,.splits-table td{padding:3px 8px;text-align:right;border-bottom:1px solid var(--ui-border)}.splits-table thead th{color:var(--ui-text-muted);font-weight:600;text-align:center;vertical-align:bottom}.splits-table .splits-run-h{border-left:1px solid var(--ui-border)}.splits-table tbody td:nth-child(2n),.splits-table tfoot td:nth-child(2n),.splits-table .splits-sub th:nth-child(odd){border-left:1px solid var(--ui-border)}.splits-table .splits-sub th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;padding-top:0}.splits-table .splits-pull-h,.splits-table .splits-pull{text-align:left;position:sticky;left:0;background:var(--ui-surface)}.splits-table .splits-pull{font-weight:700}.splits-table .splits-pull small{margin-left:6px;font-weight:400;color:var(--ui-text-muted)}.splits-table .splits-pull .pull-swatch{margin-right:6px}.splits-table tbody tr:hover td{background:var(--ui-bg)}.splits-table .splits-missing{color:var(--ui-text-muted);text-align:center}.splits-table td small{margin-left:5px;font-size:10.5px}.splits-table td small.ok{color:var(--ui-ok)}.splits-table td small.bad{color:var(--ui-danger)}.splits-table tfoot td{border-bottom:none;border-top:1px solid var(--ui-border-strong);color:var(--ui-text-muted)}.splits-label{width:7em;padding:1px 4px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ui-text);font:inherit;font-weight:600;text-align:center}input.splits-label:hover,input.splits-label:focus{border-color:var(--ui-border-strong);background:var(--ui-bg)}.splits-date{display:block;font-weight:400;font-size:10.5px;color:var(--ui-text-muted)}.splits-run-h a{color:var(--ui-text-muted);text-decoration:none;margin:0 4px}.splits-run-h .pull-x{vertical-align:middle}.splits-btn.active{border-color:var(--ui-accent)}.hl-panel{position:absolute;top:8px;right:8px;z-index:6;width:740px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow-y:auto;padding:10px 12px;border:1px solid var(--ui-border-strong);border-radius:8px;background:var(--ui-surface);box-shadow:0 6px 24px #00000073;display:flex;flex-direction:column;gap:2px;font-size:12.5px}.hl-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.hl-head .affix-title{margin-right:auto}.hl-head .pull-x{margin-left:4px}.hl-mini{background:none;border:1px solid var(--ui-border);border-radius:4px;color:var(--ui-text-muted);font:inherit;font-size:11px;padding:1px 6px;cursor:pointer}.hl-mini:hover{color:var(--ui-text)}.hl-cols,.hl-row{display:grid;grid-template-columns:16px minmax(10em,1fr) 2.4em 2.4em 3.4em 3.8em 4.8em 3.8em 4.8em 3.8em;gap:8px;align-items:center}.hl-sort{background:none;border:none;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;text-align:left}.hl-sort:hover{color:var(--ui-text)}.hl-cols .hl-sort:nth-child(n+3),.hl-cols>span:last-child{text-align:right;white-space:nowrap}.hl-marks{display:inline-flex;gap:2px;justify-content:flex-end}.hl-mark{background:none;border:1px solid transparent;border-radius:4px;padding:0 3px;font-size:12px;line-height:18px;cursor:pointer;opacity:.35;filter:grayscale(1)}.hl-mark:hover:not(:disabled){opacity:.8;filter:none}.hl-mark.on{opacity:1;filter:none;border-color:var(--ui-border-strong)}.hl-mark.value.on{color:#f0b93d}.hl-mark:disabled{cursor:default}.hl-row.mark-illegal .hl-name{color:#ff6b6b}.hl-row.mark-value .hl-name{color:#f0b93d}.pull-illegal{color:#ff3b3b;white-space:nowrap}.pull-name{white-space:nowrap}.summary-row.illegal .summary-pull:after{content:" ⛔";font-size:10px}.hl-cols{color:var(--ui-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:0 4px 2px;border-bottom:1px solid var(--ui-border)}.hl-cols>span:nth-child(n+3),.hl-row .hl-num{text-align:right;font-variant-numeric:tabular-nums}.hl-row{padding:2px 4px;border-radius:4px;cursor:pointer}.hl-row:hover{background:var(--ui-bg)}.hl-name{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hl-name img{border-radius:50%;flex-shrink:0}.pull-time{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--ui-text-muted);font-size:12px}.pull-time-field{display:inline-flex;align-items:center;gap:6px}.pull-time-arrow{color:var(--ui-text-muted)}.pull-time-input{width:52px;padding:1px 4px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ui-text);background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:4px}.pull-time-input::placeholder{color:var(--ui-text-muted);opacity:.6}.pull-time-dur{margin-left:auto;font-variant-numeric:tabular-nums}.pull-x{background:none;border:none;color:var(--ui-text-muted);font-size:16px;cursor:pointer;padding:0 2px}.pull-x:hover{color:var(--ui-danger)}.actions{display:flex;flex-direction:column;gap:8px}.share{display:flex;gap:6px}.share input{flex:1;padding:6px;border:1px solid var(--ui-accent);border-radius:6px;background:var(--ui-bg);color:var(--ui-text);font-size:13px}.banner{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--ui-accent);border-radius:6px;font-size:14px}.map-wrap{position:relative;flex:1;min-width:0;display:flex;overflow:hidden}.map{flex:1;min-width:0;touch-action:none;cursor:grab}.tooltip{position:absolute;pointer-events:none;display:flex;flex-direction:column;gap:2px;padding:8px 10px;max-width:180px;border:1px solid var(--ui-border);border-radius:8px;background:color-mix(in srgb,var(--gb-bg0-hard) 95%,transparent);font-size:13px;z-index:10}.tooltip-count{color:var(--ui-text)}.tooltip-flags{color:var(--ui-text-muted);font-size:12px}.tooltip-id{color:var(--ui-text-muted);font-family:var(--ui-font-mono);font-size:10.5px;opacity:.8}.map:active{cursor:grabbing}.mob{cursor:pointer}.library{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--ui-border);border-radius:8px}.lib-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.lib-list li{display:flex;align-items:center;gap:6px;min-width:0}.lib-load{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:none;border:none;padding:4px 2px;color:var(--ui-accent);font-size:13.5px;cursor:pointer}.lib-load:hover{text-decoration:underline}.lib-meta{flex-shrink:0;color:var(--ui-text-muted);font-size:12px}.footnote{color:var(--ui-text-muted);font-size:13px}kbd{padding:1px 5px;border:1px solid var(--ui-border-strong);border-bottom-width:2px;border-radius:4px;background:var(--ui-bg);font-size:12px}.error{color:var(--ui-danger);padding:0 16px}.loading{color:var(--ui-text-muted);padding:16px}.map-col{flex:1;min-width:0;display:flex;flex-direction:column}.map-switch{display:flex;gap:6px;padding:6px 8px;flex-wrap:wrap}.map-switch button{background:#242830;color:#cfd3da;border:1px solid #3a3f4a;border-radius:999px;padding:4px 12px;font-size:.85rem;cursor:pointer;text-transform:capitalize}.map-switch button.active{background:#31527a;border-color:#4f8ef7;color:#fff}.map-switch button:focus-visible{outline:2px solid #4f8ef7;outline-offset:2px}.map-switch-n{opacity:.65;font-size:.78rem;margin-left:2px}.kl-wrap{max-width:880px;margin:0 auto;padding:12px 16px 60px}.kl-toolbar{position:sticky;top:0;background:var(--bg, #14161a);padding:10px 0;z-index:2}.kl-toolbar input{width:100%;padding:8px 12px;border-radius:8px;border:1px solid #3a3f4a;background:#242830;color:inherit}.kl-list{display:flex;flex-direction:column;gap:4px}.kl-dungeon{font-size:1rem;margin:18px 0 6px;position:sticky;top:52px;background:#14161a;padding:6px 0;z-index:1}.kl-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid #2c313a;border-radius:10px;background:#1b1e24}.kl-level{font-variant-numeric:tabular-nums;font-weight:700;min-width:44px}.kl-mods{flex:1;display:flex;flex-wrap:wrap;gap:5px}.kl-mod{font-size:.78rem;padding:2px 8px;border-radius:999px;background:#242a33;color:#aeb6c2}.kl-mod-affix{background:#31527a;color:#dce8f7}.kl-saved{font-size:.78rem;color:#8fd94a;white-space:nowrap}.fr-wrap{max-width:880px;margin:0 auto;padding:12px 16px 60px}.fr-subtitle{color:#aeb6c2;font-size:.85rem;margin:6px 0 14px}.fr-list{display:flex;flex-direction:column;gap:4px}.fr-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid #2c313a;border-radius:10px;background:#1b1e24}.fr-level{font-variant-numeric:tabular-nums;font-weight:700;min-width:62px;display:flex;flex-direction:column;line-height:1.15}.fr-level small{font-weight:400;color:#7d8590}.fr-entries{flex:1;display:flex;flex-wrap:wrap;gap:5px}.fr-entry{font-size:.82rem;padding:3px 10px;border-radius:999px;background:#31527a;color:#dce8f7;text-decoration:none;display:inline-flex;align-items:baseline;gap:6px}.fr-entry:hover{background:#3c649a}.fr-entry small{font-variant-numeric:tabular-nums;color:#a9c4e4}.fr-entry-missing{background:#242a33;color:#6b7280}.relics{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--ui-border);border-radius:8px}.relic-row{display:flex;align-items:center;gap:8px;font-size:14px}.relic-row .pull-x{margin-left:auto}.relic-badge{width:18px;height:18px;border-radius:50%;border:1px solid var(--ui-border-strong);vertical-align:-4px}.relic-badge.small{width:14px;height:14px;margin-right:3px;vertical-align:-3px;border-color:#9b7bf7}.relic-meta{font-size:12px;color:var(--ui-text-muted)}.relic-add{display:flex;gap:8px}.relic-add .btn.active{border-color:var(--ui-accent);color:var(--ui-accent)}.relic-cell{display:inline-flex;align-items:center;gap:2px;margin-right:8px}.relic-n{font-size:12px;color:var(--ui-text-muted);font-variant-numeric:tabular-nums}.fr-relic{width:14px;height:14px;border-radius:50%;align-self:center;margin-left:2px}.map-toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:4px 0 8px}.tool-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-surface);color:var(--ui-text);cursor:pointer}.tool-btn img{width:22px;height:22px;border-radius:50%}.tool-btn:hover{border-color:var(--ui-accent)}.tool-btn.active{border-color:var(--ui-accent);box-shadow:0 0 0 1px var(--ui-accent) inset}.tool-sep{width:1px;height:22px;margin:0 4px;background:var(--ui-border-strong)}.tool-swatch{width:18px;height:18px;padding:0;border:1px solid var(--ui-border-strong);border-radius:50%;cursor:pointer}.tool-swatch.active{border-color:var(--ui-text-strong);box-shadow:0 0 0 2px var(--ui-bg),0 0 0 3px var(--ui-text-muted)}.tool-clear{margin-left:4px;padding:3px 8px;border:1px solid var(--ui-border-strong);border-radius:6px;background:none;color:var(--ui-text-muted);font-size:12px;cursor:pointer}.tool-clear:hover{color:var(--ui-text);border-color:var(--ui-accent)}.tool-hint{margin-left:6px;font-size:12px;color:var(--ui-text-muted)}.relic-menu{position:absolute;z-index:10;display:flex;flex-direction:column;min-width:160px;padding:4px;border:1px solid var(--ui-border-strong);border-radius:8px;background:var(--ui-surface);box-shadow:0 6px 18px #00000073}.relic-menu-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border:0;border-radius:6px;background:none;color:var(--ui-text);font-size:13px;text-align:left;cursor:pointer}.relic-menu-item:hover{background:var(--ui-bg)}.relic-menu-item.active{color:var(--ui-accent)}.relic-menu-sep{height:1px;margin:4px 6px;background:var(--ui-border)}.relic-menu-x{width:18px;text-align:center;color:var(--ui-text-muted)}.stitch-canvas{flex:1;min-height:480px;height:calc(100vh - 140px);border:1px solid var(--ui-border);border-radius:8px;overflow:hidden}.stitch-canvas canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.stitch-layer{display:flex;flex-direction:column;gap:3px;padding:6px 0;border-bottom:1px solid var(--ui-border)}.stitch-layer:last-child{border-bottom:0}.stitch-layer-head{display:flex;align-items:center;justify-content:space-between}.stitch-btns{display:flex;gap:2px}.stitch-slider{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ui-text-muted)}.stitch-slider span:first-child{width:44px}.stitch-slider input{flex:1;min-width:0}.stitch-val{width:34px;text-align:right;font-variant-numeric:tabular-nums}.stitch-edges{display:flex;gap:4px;margin:2px 0}.stitch-edge.active{color:var(--ui-accent);border-color:var(--ui-accent)}.stitch-edge-row{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--ui-text-muted)}.stitch-edge-row.off{opacity:.55}.stitch-edge-row input{flex:1;min-width:0}.stitch-edge-name{width:40px;flex-shrink:0}.stitch-edge-row .stitch-val{width:30px}.pull.drop-above{box-shadow:0 -2px 0 var(--ui-accent)}.pull.drop-below{box-shadow:0 2px 0 var(--ui-accent)}.comp-grid{display:flex;flex-wrap:wrap;gap:4px}.comp-tag{padding:2px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-surface);cursor:pointer;line-height:0;opacity:.55}.comp-tag img{width:22px;height:22px;border-radius:4px}.comp-tag.active{opacity:1;border-color:var(--ui-accent)}.comp-tag:disabled{cursor:default}.relic-needs{display:flex;flex-direction:column;gap:3px;padding-bottom:4px;border-bottom:1px solid var(--ui-border)}.relic-need{display:flex;align-items:center;gap:5px;font-size:12px}.relic-need-btn{width:18px;height:18px;padding:0;border:1px solid var(--ui-border-strong);border-radius:4px;background:none;color:var(--ui-text);cursor:pointer;line-height:1}.relic-need-n{min-width:20px;text-align:right;font-variant-numeric:tabular-nums}.routes-table .rt-nowrap{white-space:nowrap}.routes-table .rt-name{width:100%;max-width:0;white-space:nowrap}.routes-table .rt-name a{display:inline-block;max-width:calc(100% - 1.6em);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.level-select{padding:5px 8px;border:1px solid var(--ui-border-strong);border-radius:6px;background:var(--ui-bg);color:var(--ui-text);font:inherit;font-size:14px}
