.login-page[data-v-9020eba8]{min-height:calc(100vh - 72px);padding:var(--space-6);place-items:center;display:grid}.login-card[data-v-9020eba8]{gap:var(--space-4);border-top:2px solid var(--color-accent);width:min(100%,460px);box-shadow:var(--shadow-card);padding:clamp(24px,6vw,48px);display:grid}.login-kicker[data-v-9020eba8]{color:var(--color-accent);font:700 var(--font-size-meta)/1.4 var(--font-family-mono);letter-spacing:.12em;margin:0}.login-card h1[data-v-9020eba8]{margin:0;font-size:clamp(24px,5vw,32px)}.login-card .hint[data-v-9020eba8]{margin:0;line-height:1.7}.login-form[data-v-9020eba8]{gap:var(--space-2);display:grid}.login-form label[data-v-9020eba8]{color:var(--color-text-muted);font-size:var(--font-size-meta)}.login-form input[data-v-9020eba8]{width:100%;min-height:46px;padding:0 var(--space-3);border-color:var(--color-line-strong);font-family:var(--font-family-mono);letter-spacing:.03em}.login-form button[data-v-9020eba8]{margin-top:var(--space-2);min-height:46px}.login-error[data-v-9020eba8]{margin:var(--space-1) 0 0;color:var(--color-danger-strong);font-size:var(--font-size-body);line-height:1.5}.planner-strategy-layout[data-v-0eb28630]{grid-template-rows:minmax(0,1fr);max-height:calc(100vh - 145px);overflow:hidden}.strategy-config-column[data-v-0eb28630],.strategy-condition-drawer[data-v-0eb28630],.strategy-summary[data-v-0eb28630]{min-height:0;max-height:none;overflow:hidden auto}@media (width<=900px){.planner-strategy-layout[data-v-0eb28630],.planner-strategy-layout.is-drawer-open[data-v-0eb28630]{grid-template-rows:none;max-height:none;overflow:visible}.strategy-config-column[data-v-0eb28630],.strategy-condition-drawer[data-v-0eb28630],.strategy-summary[data-v-0eb28630]{min-height:auto;overflow:visible}}:root{--color-bg:#050708;--color-bg-elevated:#0b0f11;--color-surface:#101517;--color-surface-strong:#151c1e;--color-surface-control:#111719eb;--color-surface-input:#080c0d;--color-surface-canvas:#06090a;--color-surface-header:#040607eb;--color-surface-card-start:#141b1df5;--color-surface-card-end:#0a0e0ff0;--color-surface-subtle:#04070842;--color-page-glow:#00c8ed0e;--color-grid-line:#ffffff06;--color-diagonal-line:#ddeceb09;--color-line:#e4efee38;--color-line-strong:#eef7f699;--color-line-soft:#e4efee21;--color-text:#f2f5f3;--color-text-muted:#9aa8a6;--color-text-faint:#687574;--color-text-on-accent:#031012;--color-accent:#00c8ed;--color-accent-soft:#00c8ed29;--color-accent-strong:#63dff2;--color-accent-muted:#00c8ed94;--color-accent-quiet:#00c8ed52;--color-accent-dim:#00c8ed12;--color-warning:#e7b550;--color-warning-soft:#e7b5501a;--color-danger:#ec8077;--color-danger-strong:#ffaaa2;--color-danger-soft:#ec80771a;--color-danger-line:#ec80776b;--color-success:#8ce4ef;--color-info-text:#bfeaf0;--color-edge:#597077;--color-edge-visible:#353e40;--color-node-frame:#b6d7d9;--color-node-halo-inner:#dcfcfcf5;--color-node-halo-outer:#50d8de70;--color-node-halo-warning-inner:#ffdc72;--color-node-halo-warning-outer:#ffd86594;--color-label-bg:#000000e0;--color-label:#f7f4ec;--color-control-border:#e4efee3d;--color-node-empty:#36b6c3;--color-node-combat:#df7670;--color-node-event:#bc87cb;--color-node-exit:#75d4e0;--color-route-one:#7dd3fc;--color-route-two:#fbbf24;--color-route-three:#c4b5fd;--color-route-casing:#061a20;--color-route-core:#55e7ff;--color-route-pulse:#f5feff;--color-route-corridor:#70838c;--color-route-special:#f4c86a;--color-route-special-soft:#f4c86a2e;--color-route-step-bg:#040d10f5;--color-route-step-line:#b2f4f8eb;--font-family-sans:"Microsoft YaHei","Noto Sans SC",Inter,sans-serif;--font-family-mono:Consolas,monospace;--font-size-meta:12px;--font-size-body:13px;--font-size-title:18px;--font-size-display:24px;--font-size-code:11px;--line-height-body:1.6;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:14px;--space-5:18px;--space-6:20px;--radius-control:2px;--control-height:42px;--control-padding-inline:20px;--shadow-card:0 14px 42px #0000002e;--icon-size-sm:16px;--icon-size-md:24px;--icon-size-lg:48px;--bg:var(--color-bg);--bg-elevated:var(--color-bg-elevated);--surface:var(--color-surface);--surface-strong:var(--color-surface-strong);--line:var(--color-line);--line-strong:var(--color-line-strong);--text:var(--color-text);--text-muted:var(--color-text-muted);--text-faint:var(--color-text-faint);--cyan:var(--color-accent);--cyan-soft:var(--color-accent-soft);--amber:var(--color-warning);--danger:var(--color-danger);font-family:var(--font-family-sans);color:var(--color-text);background:var(--color-bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}.auth-loading{min-height:calc(100vh - 72px);color:var(--color-text-muted);font-size:var(--font-size-body);place-items:center;display:grid}.account-name{color:var(--color-text-muted);font-size:var(--font-size-meta);white-space:nowrap;align-self:center}body{background-color:#050708;background-image:radial-gradient(at 72% 46%,#00c8ed0e,#0000 30%),linear-gradient(90deg,#ffffff06 1px,#0000 1px),linear-gradient(#ffffff06 1px,#0000 1px),none;background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,138px 138px,138px 138px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;min-width:320px;margin:0}body:before{content:"";z-index:-1;pointer-events:none;background-color:#0000;background-image:linear-gradient(135deg,#0000 49.85%,#ddeceb09 50%,#0000 50.15%),linear-gradient(45deg,#0000 49.85%,#ddeceb06 50%,#0000 50.15%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:276px 276px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:72px 0 0}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);min-height:38px;color:var(--text);cursor:pointer;background:#111719eb;border-radius:2px;padding:.55rem .85rem;transition:border-color .16s,background .16s,color .16s}button:hover:not(:disabled){border-color:var(--cyan);background:var(--cyan-soft)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}button:disabled{opacity:.42;cursor:not-allowed}.primary{background:var(--cyan);border-color:var(--cyan);color:#031012;font-weight:800}.primary:hover:not(:disabled){color:#031012;background:#63dff2;border-color:#63dff2}header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#040607eb;justify-content:space-between;align-items:center;height:72px;padding:0 32px;display:flex}header>div{padding-left:16px;position:relative}header>div:before{content:"";background:var(--cyan);width:3px;height:33px;position:absolute;top:1px;left:0}header b,header small{display:block}header b{letter-spacing:1px;font-size:17px}header small{color:var(--text-muted);margin-top:4px;font-size:12px}nav{align-items:stretch;gap:0;height:100%;display:flex}nav button{min-width:96px;height:100%;color:var(--text-muted);background:0 0;border:0;border-left:1px solid #e4efee21;border-radius:0;font-size:13px;font-weight:700}nav button:hover:not(:disabled){color:var(--text);background:#00c8ed14}nav .active{color:var(--cyan);box-shadow:inset 0 -3px var(--cyan)}main{max-width:1680px;margin:auto;padding:28px 32px}.card{border:1px solid var(--line);background:linear-gradient(145deg,#141b1df5,#0a0e0ff0);border-radius:2px;padding:20px;box-shadow:0 14px 42px #0000002e}.card h1,.card h2,.card h3{letter-spacing:.5px;font-weight:800}.card h3{font-size:15px}.hint,.settings small,.planner-profile small{color:var(--text-muted);font-size:13px;line-height:1.6}input,select,textarea{width:100%;min-height:38px;color:var(--text);background:#080c0d;border:1px solid #e4efee3d;border-radius:2px;padding:8px 10px}textarea{resize:vertical;min-height:64px}.settings{gap:18px;max-width:760px;margin:40px auto;display:grid}.settings label,aside label,.toolbar label,.inventory label{gap:6px;display:grid}.settings h1,.settings h2{margin:0}.status-pill{border-left:3px solid var(--cyan);background:var(--cyan-soft);color:#b4f2fc;padding:9px 10px;font-size:13px;display:block}.settings details{border-top:1px solid var(--line);gap:12px;padding-top:14px;display:grid}.settings summary{cursor:pointer;font-size:16px;font-weight:700}.notice{border-left:3px solid var(--cyan);color:#c8e8eb;background:#00c8ed14;max-width:1616px;margin:14px auto 0;padding:10px 14px;font-size:13px}.settings-notice{max-width:760px}.admin-invite-panel{border-bottom:1px solid var(--line);gap:12px;padding-bottom:18px;display:grid}.admin-invite-panel input{font-family:var(--font-family-mono);letter-spacing:.03em}.steps{background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;max-width:1616px;margin:0 auto;display:grid}.steps button{min-height:52px;color:var(--text-faint);text-align:left;background:#0c1112;border:0;border-radius:0;padding:12px 16px;font-weight:700}.steps button.on{color:var(--text);box-shadow:inset 3px 0 var(--cyan);background:#121a1c}.steps button:hover:not(:disabled){color:var(--text);background:#162124}.upload-grid{grid-template-columns:1fr 1fr;gap:18px;max-width:1200px;margin:24px auto;display:grid}.upload-grid>.primary{grid-column:1/-1}.upload-grid img{border:1px solid var(--line);max-width:100%;max-height:300px;margin:12px auto;display:block}.choice{margin:12px 0;display:block}.thumbs{gap:10px;display:flex;overflow:auto}.thumbs figure{min-width:130px;margin:0}.thumbs img{height:90px}.thumbs figcaption{color:var(--text-muted);font-size:12px}.recognition-progress{align-items:center;gap:18px;margin:24px 0;display:flex}.recognition-progress h2,.recognition-progress p{margin:0}.recognition-progress small{color:var(--text-muted);margin-top:8px;display:block}.spinner{border:3px solid #ffffff2e;border-top-color:var(--cyan);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.recognition-runner{max-width:1200px;margin:24px auto 0}.recognition-runner-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.recognition-runner-head h2,.recognition-runner-head p{margin:0}.recognition-targets{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.recognition-targets label{gap:var(--space-2) var(--space-3);padding:var(--space-4);border:1px solid var(--color-line);background:var(--color-surface-subtle);cursor:pointer;grid-template-columns:auto 1fr;align-items:center;display:grid}.recognition-targets label.selected{border-color:var(--color-accent);box-shadow:inset 3px 0 var(--color-accent)}.recognition-targets label.disabled{opacity:.48;cursor:not-allowed}.recognition-targets input{grid-row:1/span 2;width:auto;min-height:auto}.recognition-targets small{color:var(--color-text-muted);line-height:var(--line-height-body)}.recognition-runner-progress{gap:var(--space-3);margin-top:var(--space-4);color:var(--color-info-text);grid-template-columns:minmax(160px,1fr) auto;align-items:center;display:grid}.recognition-runner-progress progress{width:100%;accent-color:var(--color-accent)}.recognition-runner-note{margin:var(--space-3) 0 0;color:var(--color-text-muted);font-size:var(--font-size-body)}.workbench{grid-template-columns:minmax(0,2.2fr) minmax(330px,1fr);gap:18px;margin-top:18px;display:grid}.toolbar,.inventory,.actions{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.toolbar input,.inventory input{width:72px}.toolbar label,.inventory label{color:var(--text-muted);font-size:12px}.map-overview-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.map-overview-head h2{margin:0 0 6px}.edge-edit-hint{color:#92e6f2;margin:14px 0;font-size:13px}svg{border:1px solid var(--line);background:radial-gradient(circle at 65% 48%,#00c8ed14,#0000 30%),#06090a;border-radius:0;width:100%;height:clamp(330px,52vh,620px);margin-top:12px}svg line{stroke:#597077;stroke-width:5px;cursor:pointer}.slot{cursor:default}.slot rect{fill:#0b1011;stroke:#6b7e80;stroke-dasharray:5}.slot text{fill:var(--text);pointer-events:none;font-size:13px}.slot.selected rect{stroke:var(--cyan);stroke-width:5px;filter:drop-shadow(0 0 4px #00c8edcc)}.map-edge{stroke:#597077;stroke-width:5px}.route-slot .node-icon-frame{fill:none;stroke:#b6d7d9;stroke-width:3px}.route-slot rect{fill:#0b1011;stroke:#6b7e80;stroke-dasharray:5}.map-edge-visible{pointer-events:none}.slot .unresolved-dot{fill:var(--amber);stroke:none}aside{max-height:calc(100vh - 145px);overflow:auto}aside h2{margin-top:0}aside>label{margin:12px 0}aside ul{padding-left:20px}.error{color:#ffaaa2}.warning{color:#f0c86f}.success{color:#8ce4ef;margin-top:12px;display:block}.actions{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}details img{width:100%;margin-top:8px}pre{border:1px solid var(--line);white-space:pre-wrap;background:#06090a;max-height:220px;padding:10px;font:11px/1.4 Consolas,monospace;overflow:auto}.node-palette{margin:14px 0;border:0!important;border-top:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;padding:14px 0!important}.palette-list{gap:12px;max-height:none;padding:2px 2px 8px;display:flex;overflow-x:auto}.palette-group{min-width:152px}.palette-item{text-align:left;border-left:3px solid var(--line);align-items:center;gap:8px;width:100%;min-height:48px;margin-bottom:6px;display:flex}.palette-item span{flex:1}.palette-icon{object-fit:cover;filter:saturate(.82);border-radius:50%;flex:0 0 34px;width:34px;height:34px}.palette-item small,.parts small{color:var(--text-muted)}.palette-item.selected{border-color:var(--cyan);color:#d8fbff;box-shadow:inset 0 0 0 1px var(--cyan)}.palette-item.empty_traversable{border-left-color:#36b6c3}.palette-item.combat{border-left-color:#df7670}.palette-item.event{border-left-color:#bc87cb}.palette-item.shop{border-left-color:var(--amber)}.palette-item.exit{border-left-color:#75d4e0}.parts{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.parts article{border:1px solid var(--line);background:#04070842;border-radius:2px;gap:7px;padding:12px;display:grid}.parts b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.part-review-panel{margin:0 32px 28px}.part-review-panel .part-review{border:0;padding:0;display:block}.part-review-panel .part-review h2{margin:0 0 6px}.review-inventory{margin:14px 0}.planner-page{padding:28px 32px}.planner-banner{border-left:3px solid var(--cyan);justify-content:space-between;align-items:center;gap:20px;display:flex}.planner-banner h1,.planner-banner p{margin:0}.planner-banner p{color:var(--text-muted);margin-top:6px}.planner-layout{grid-template-columns:minmax(220px,.8fr) minmax(420px,1.6fr) minmax(280px,1fr);gap:18px;margin-top:18px;display:grid}.planner-profile,.planner-results{align-content:start;gap:10px;display:grid}.planner-profile h2,.planner-map h2,.planner-results h2{margin:0 0 8px}.preset,.goal{border:1px solid var(--line);background:#02050633;border-radius:2px;align-items:center;gap:8px;padding:10px;display:flex}.planner-warning{border-left:3px solid var(--amber);color:#f2d891;background:#e7b5501a;margin:12px 0;padding:10px 14px;font-size:13px}.planner-empty{max-width:650px;margin:28px auto}.route-map{min-height:360px;margin:0}.route-line{fill:none;pointer-events:none;stroke-linecap:round;transition:stroke-opacity .15s,stroke-width .15s}.route-card{text-align:left;background:#060a0b9e;border-radius:2px;gap:6px;width:100%;display:grid}.route-card span,.route-card small{color:var(--text-muted)}.route-card.selected{border-color:var(--cyan);box-shadow:inset 3px 0 var(--cyan)}.route-detail{border-top:1px solid var(--line);margin-top:8px;padding-top:10px}.route-detail h3{margin:10px 0 6px}.route-detail p,.route-detail ol{margin:0}.route-detail dl{grid-template-columns:1fr auto;gap:5px;margin:0;display:grid}.route-detail dd{margin:0}.stale .route-map,.stale .route-card{filter:saturate(.4)}.graph-edit-panel{grid-template-columns:minmax(190px,.6fr) minmax(340px,1.5fr);gap:18px;margin:0 32px 28px;display:grid}.node-palette{border-right:1px solid var(--line);padding-right:14px}.node-palette h2,.part-review h2,.graph-editor-head h2{margin:0 0 6px}.graph-editor-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.graph-editor-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.slot-grid-viewport{border:1px solid var(--line);background:#06090a;border-radius:0;min-height:250px;padding:12px;overflow:auto}.slot-grid{transform-origin:0 0;gap:10px;min-width:max-content;padding:4px;transition:transform .12s;display:grid}.slot-drop{min-width:68px}.slot-button{touch-action:manipulation;background:#1c3438;border:2px solid #8fb9bc;align-content:center;justify-items:center;gap:4px;width:100%;height:68px;padding:8px;display:grid}.slot-button small{color:#cedae4;font-size:10px}.slot-button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.slot-button.absent{background:#0b1011;border-style:dashed}.slot-button.unresolved_observation,.slot-button.unknown,.slot-button.ambiguous{background:#3a3540;border-style:dashed}.slot-button.empty_traversable{background:#1d5962}.slot-button.current{background:var(--amber);color:#141207}.slot-button.selected{outline:3px solid var(--cyan);outline-offset:2px}.quick-node-review{border:1px solid var(--line);border-radius:2px;grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;margin-top:12px;padding:10px;display:grid}.quick-node-review h3{grid-column:1/-1;margin:0}.quick-node-review label{gap:5px;display:grid}.edge-editor{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.edge-editor h3{margin:0 0 8px}.edge-row{align-items:center;gap:8px;margin:7px 0;display:flex}.edge-target{text-align:left;flex:1;min-height:44px}.edge-row.selected .edge-target{border-color:var(--cyan)}.danger{color:#ffc4bf;border-color:#9b5752;min-height:44px}@media (width<=1050px){.planner-layout{grid-template-columns:1fr}.planner-page{padding:20px}.planner-banner{flex-direction:column;align-items:flex-start}.planner-results{order:-1}}@media (width<=900px){header{align-items:flex-start;gap:12px;height:auto;min-height:64px;padding:12px 14px}header>div{max-width:55%;padding-left:10px}header b{font-size:14px;line-height:1.35}header small{display:none}nav{gap:4px;margin-left:auto}nav button{border:1px solid var(--line);min-width:auto;height:38px;padding:8px;font-size:12px}.workbench,.upload-grid,.graph-edit-panel{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.steps button{min-height:46px;font-size:12px}.workbench,.upload-grid{margin-top:14px}.planner-page,main{padding:16px 14px}.part-review-panel,.graph-edit-panel{margin:0 14px 18px}.map-overview-head,.graph-editor-head{flex-direction:column}.toolbar,.graph-editor-actions{justify-content:flex-start}aside{max-height:none}.palette-group{min-width:142px}.edge-row{align-items:stretch}.edge-row .danger{min-width:78px}.graph-edit-panel button{min-height:44px}.quick-node-review{grid-template-columns:1fr}.quick-node-review button{width:100%}}.node-icon-frame{display:none}.palette-icon.large{flex-basis:51px;width:51px;height:51px;margin:-8px}.workbench{grid-template-columns:minmax(0,1fr);align-items:start}.main-pane{grid-template-columns:minmax(250px,300px) minmax(0,1fr);align-items:start;min-width:0;display:grid}.main-pane>.node-palette{grid-area:3/1;min-width:0}.main-pane>svg{grid-area:3/2;min-width:0}.node-palette{background:#04080980;max-height:calc(100vh - 220px);overflow:auto;border:1px solid var(--line)!important;margin:0!important;padding:14px!important}.node-palette h2{margin:0 0 4px;font-size:18px}.node-palette>.hint{margin:0 0 12px}.palette-list{gap:18px;max-height:none;padding:0;display:grid;overflow:visible}.palette-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;display:grid}.palette-group h3{grid-column:1/-1;margin:0;font-size:12px}.palette-item{text-align:center;border-left-width:2px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:84px;margin:0;padding:10px 8px;display:flex}.palette-item span{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:100%;overflow:hidden}.palette-item small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.palette-icon{flex-basis:42px;width:42px;height:42px}.workbench>aside.card{min-width:0;display:none}main:has(.workbench .toolbar button.active) .slot.selected .node-icon-halo-inner{stroke:var(--cyan);stroke-width:6px;filter:drop-shadow(0 0 8px #00c8edf2)}main:has(.workbench .toolbar button.active) .slot.selected .node-icon-halo-outer{stroke:var(--cyan);stroke-width:6px;filter:drop-shadow(0 0 8px #00c8edf2)}main:has(.workbench .toolbar button.active) .slot.selected rect{stroke:var(--cyan);stroke-width:6px;filter:drop-shadow(0 0 8px #00c8edf2)}.map-overview-head .toolbar{justify-content:flex-end}.map-overview-head .toolbar button{white-space:nowrap}@media (width<=900px){.main-pane{grid-template-columns:230px minmax(0,1fr)}.workbench,.main-pane{display:block}.node-palette{max-height:320px;margin-bottom:14px!important}.main-pane>svg{margin-top:14px}.workbench>aside.card{display:none!important}.palette-list{grid-template-columns:1fr 1fr}.palette-group{gap:8px}}.slot.drag-target .node-icon-halo-inner,.slot.drag-target .node-icon-halo-outer,.slot.drag-target rect{stroke:#f2d891;stroke-width:6px;filter:drop-shadow(0 0 8px #e7b550e6)}.workbench{grid-template-columns:minmax(0,1fr);margin-bottom:18px}.main-pane{grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:18px}.main-pane>.map-overview-head,.main-pane>.edge-edit-hint{grid-column:1/-1}.main-pane>.node-palette{grid-area:3/1}.main-pane>svg{grid-area:3/2}.main-pane svg{background:radial-gradient(circle at 54% 46%,#00c8ed1f,#0000 34%),linear-gradient(145deg,#070d0f,#030607 72%);border-color:#a0cdd059}.map-canvas{background-blend-mode:screen,screen,screen,normal,normal;background:radial-gradient(circle at 20% 18%,#4e265461,#0000 24%),radial-gradient(circle at 78% 52%,#1c5c464d,#0000 28%),radial-gradient(circle at 52% 88%,#18444e4d,#0000 24%),radial-gradient(circle,#0000002e,#0000 64%),#030607}.map-edge-shadow{stroke:#050708;stroke-width:13px;stroke-linecap:round}.map-edge-visible{stroke:#353e40;stroke-width:6px;stroke-linecap:round}.map-edge-hit{stroke-width:28px}.slot,.slot .node-icon{overflow:visible}.slot .node-icon-halo-outer{fill:none;stroke:var(--color-node-halo-outer);stroke-width:2px;opacity:.72;filter:drop-shadow(0 0 7px var(--color-node-halo-outer))}.slot .node-icon-halo-inner{fill:none;stroke:var(--color-node-halo-inner);stroke-width:2.5px;filter:drop-shadow(0 0 2px var(--color-node-halo-inner)) drop-shadow(0 0 6px var(--color-node-halo-outer))}.slot .node-icon-halo-outer,.slot .node-icon-halo-inner,.slot .empty-land-marker,.slot .node-vertex{pointer-events:none}.slot .node-vertex{fill:var(--color-accent);stroke:var(--color-surface-canvas);stroke-width:2px;filter:drop-shadow(0 0 4px var(--color-accent))}.map-canvas-vertices .map-edge-visible{stroke-width:8px}.slot.empty_traversable .node-icon-halo-inner{stroke:#7ce8e4}.slot.exit .node-icon-halo-inner{stroke:#f1d17a}.slot-label-bg{fill:#000000e0;stroke:none;pointer-events:none}.slot-label{text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-weight:800;fill:#f7f4ec!important;font-size:12px!important}.current-label{text-anchor:middle;pointer-events:none;font-weight:800;fill:#fff9d7!important;font-size:10px!important}.slot.current .node-icon-halo-inner{stroke:var(--color-node-halo-warning-inner);stroke-width:3px;filter:drop-shadow(0 0 2px var(--color-node-halo-warning-inner)) drop-shadow(0 0 9px var(--color-node-halo-warning-outer))}.palette-item.exit{min-height:108px;overflow:visible}.palette-icon.exit{object-fit:contain;border-radius:0;flex-basis:63px;width:63px;height:63px;overflow:visible}.annotation-panel{margin:0 32px 18px}.annotation-toolbar{grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:12px 18px;display:grid}.annotation-status{min-width:0}.annotation-toolbar>.actions{grid-column:1/-1;margin-top:0;padding-top:12px}.source-preview{border-top:1px solid var(--line);grid-column:1/-1;padding-top:10px}.source-preview summary{cursor:pointer;color:#bfeaf0;font-weight:700}.source-preview-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:12px;display:grid}.source-preview-grid figure{border:1px solid var(--line);background:#06090a;margin:0;padding:8px}.source-preview-grid figcaption{color:var(--text-muted);margin-bottom:7px;font-size:12px}.source-preview-grid img{object-fit:contain;width:100%;height:150px;display:block}.part-review-head{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.part-review-head h2{margin:0 0 6px}.part-review-head .hint,.review-inventory{margin:0}.review-fields{grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;min-width:min(100%,540px);display:grid}.review-field{min-width:0;color:var(--color-text-muted);font-size:var(--font-size-meta);gap:6px;display:grid}.review-field>span{white-space:nowrap;align-items:center;gap:6px;display:flex}.review-field em{color:var(--color-danger-strong);font-style:normal}.review-field input{width:100%}.review-field small{color:var(--color-danger-strong);line-height:1.35}.review-field.invalid input{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}.review-field.invalid>span{color:var(--color-danger-strong)}.part-card{grid-template-columns:52px minmax(0,1fr) auto auto;align-items:center;min-height:84px;gap:12px!important;display:grid!important}.part-icon-placeholder{background:#e4efee14;border:2px solid #e4efee73;width:48px;height:48px}.part-summary{gap:6px;min-width:0;display:grid}.part-summary b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.part-summary span{color:var(--text-muted);font-size:13px}.part-summary span.low,.part-card.low-confidence{border-color:var(--danger);color:#ffc4bf}.part-summary span.low{color:#ffaaa2}.part-remaining{white-space:nowrap;font-size:14px}.part-card .danger{min-height:38px}@media (width<=900px){.main-pane{display:block}.main-pane>svg{margin-top:14px}.annotation-panel{margin:0 14px 18px}.annotation-toolbar{grid-template-columns:1fr}.source-preview{grid-column:auto}.part-review-head{align-items:start;display:grid}.review-fields{grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}.review-inventory{justify-content:flex-start}.part-card{grid-template-columns:44px minmax(0,1fr) auto;gap:9px!important}.part-card .part-remaining{grid-column:2}.part-card .danger{grid-area:1/3/span 2}}@media (width<=560px){.review-fields{grid-template-columns:1fr}.review-field input{max-width:none}}body{background:radial-gradient(ellipse at 72% 46%,var(--color-page-glow),transparent 30%),linear-gradient(90deg,var(--color-grid-line) 1px,transparent 1px),linear-gradient(var(--color-grid-line) 1px,transparent 1px),var(--color-bg)}body:before{background:linear-gradient(135deg,transparent 49.85%,var(--color-diagonal-line) 50%,transparent 50.15%),linear-gradient(45deg,transparent 49.85%,#ddeceb06 50%,transparent 50.15%)}button{background:var(--color-surface-control);border-radius:var(--radius-control)}.primary{color:var(--color-text-on-accent)}.primary:hover:not(:disabled){background:var(--color-accent-strong);border-color:var(--color-accent-strong);color:var(--color-text-on-accent)}header{background:var(--color-surface-header)}nav button{border-left-color:var(--color-line-soft)}.card{background:linear-gradient(145deg,var(--color-surface-card-start),var(--color-surface-card-end));box-shadow:var(--shadow-card)}input,select,textarea{background:var(--color-surface-input);border-color:var(--color-control-border);border-radius:var(--radius-control)}svg,.slot-grid-viewport,pre,.source-preview-grid figure{background-color:var(--color-surface-canvas)}.card{padding:var(--space-6)}.card h1{font-size:var(--font-size-display)}.card h2{font-size:var(--font-size-title)}.hint,.settings small,.planner-profile small{font-size:var(--font-size-body);line-height:var(--line-height-body)}header small,.toolbar label,.inventory label{font-size:var(--font-size-meta)}pre{font:var(--font-size-code)/1.4 var(--font-family-mono)}.parts article{background:var(--color-surface-subtle)}.planner-warning{background:var(--color-warning-soft)}.source-preview summary{color:var(--color-info-text)}.map-edge,.map-edge-visible{stroke:var(--color-edge)}.map-edge-visible{stroke:var(--color-edge-visible)}.map-edge-visible.low{stroke:var(--color-danger);filter:drop-shadow(0 0 5px var(--color-danger))}.map-edge-shadow.low{stroke:var(--color-surface-canvas)}.map-canvas-bare{background:0 0!important}.route-slot .node-icon-frame{stroke:var(--color-node-frame)}.slot-label-bg{fill:var(--color-label-bg)}.slot-label{fill:var(--color-label)!important}.design-lab-page{gap:var(--space-5);max-width:1780px;margin:auto;display:grid}.design-lab-kicker{color:var(--color-accent);font:700 var(--font-size-meta)/1.4 var(--font-family-mono);letter-spacing:.1em;text-transform:uppercase;margin:0}.route-design-hero{justify-content:space-between;align-items:flex-start;gap:var(--space-5);border-left:3px solid var(--color-accent);display:flex}.route-design-hero h1{margin:var(--space-2) 0}.route-design-hero p{max-width:760px;margin:0}.route-design-hero-state{justify-items:end;gap:var(--space-2);min-width:180px;display:grid}.route-design-hero-state strong{font-size:var(--font-size-title);color:var(--color-text)}.route-design-hero-state small{color:var(--color-text-muted);font-size:var(--font-size-body)}.route-design-focus,.route-design-workbench,.route-design-detail,.route-design-inventory{gap:var(--space-5);display:grid}.route-design-section-head,.route-design-workbench-head,.route-design-panel-head{justify-content:space-between;align-items:flex-end;gap:var(--space-5);display:flex}.route-design-section-head h2,.route-design-panel-head h3{margin:var(--space-2) 0 0}.route-design-section-head>.hint{text-align:right;max-width:620px;margin:0}.route-design-focus-grid{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.route-design-focus-item{gap:var(--space-1);min-height:102px;padding:var(--space-3);border-top:2px solid var(--color-accent);background:var(--color-surface-subtle);display:grid}.route-design-focus-item span,.route-design-focus-item small{color:var(--color-text-muted);font-size:var(--font-size-meta)}.route-design-focus-item strong{font-size:var(--font-size-body);color:var(--color-text)}.route-design-workbench{padding:var(--space-5)}.route-design-workbench-head{align-items:center}.route-design-workbench-head h2{margin:var(--space-2) 0 0}.route-design-workbench-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:flex}.route-design-source-label{color:var(--color-text-muted);font-size:var(--font-size-meta)}.route-design-mode-switch{border:1px solid var(--color-line);background:var(--color-surface-subtle);gap:2px;padding:2px;display:flex}.route-design-mode-switch button{min-width:102px;min-height:48px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);text-align:left;color:var(--color-text-muted);background:0 0;border:1px solid #0000;gap:2px;display:grid}.route-design-mode-switch button:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-text)}.route-design-mode-switch button.active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text)}.route-design-mode-switch strong{font-size:var(--font-size-body)}.route-design-mode-switch small{font-size:var(--font-size-meta);color:inherit}.route-design-notice,.route-design-warning{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);color:var(--color-info-text);font-size:var(--font-size-body);margin:0}.route-design-warning{border-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-text)}.route-design-layout{gap:var(--space-4);grid-template-columns:minmax(220px,260px) minmax(540px,1fr) minmax(260px,320px);align-items:start;display:grid}.route-design-layout.route-design-map-mode{grid-template-columns:minmax(220px,260px) minmax(0,1fr)}.route-design-layout.route-design-map-mode .route-design-map-panel{grid-column:2}.route-design-layout.route-design-route-mode{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}.route-design-layout.route-design-route-mode .route-design-map-panel{grid-column:1}.route-design-sidebar,.route-design-map-panel{border:1px solid var(--color-line);background:var(--color-surface-subtle);min-width:0}.route-design-sidebar{gap:var(--space-3);padding:var(--space-4);display:grid}.route-design-map-panel{gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-canvas);display:grid}.route-design-panel-head{align-items:flex-start}.route-design-panel-head h3{font-size:var(--font-size-title)}.route-design-count{border:1px solid var(--color-line-strong);color:var(--color-text-muted);font:var(--font-size-meta)/1.2 var(--font-family-mono);white-space:nowrap;padding:4px 8px}.route-design-palette .node-palette{background:0 0;border:0!important;margin:0!important;padding:0!important}.route-design-palette .palette-list{gap:var(--space-3);max-height:540px;padding:0 2px 4px;display:grid;overflow:auto}.route-design-palette .palette-group{min-width:0}.route-design-palette .palette-group h3{margin:0 0 var(--space-2);font-size:var(--font-size-meta);color:var(--color-text-muted)}.route-design-palette .palette-item{min-height:50px;margin-bottom:var(--space-2);padding:var(--space-2);background:var(--color-surface-control)}.route-design-interaction-hint{padding-top:var(--space-3);border-top:1px solid var(--color-line);color:var(--color-text-muted);font-size:var(--font-size-meta);margin:0;line-height:1.5}.route-design-legend{gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-meta);justify-items:end;display:grid}.route-design-legend span{white-space:nowrap;align-items:center;gap:6px;display:flex}.route-design-legend-dot{background:var(--color-warning);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 2px #e7b55040}.route-design-legend-line{border-top:2px dashed var(--color-route-two);width:26px}.route-design-legend-line.selected{border-top:4px solid var(--color-route-one)}.route-design-legend-step{border:1px solid var(--color-route-step-line);background:var(--color-route-step-bg);width:18px;height:18px;color:var(--color-text);font:700 10px/1 var(--font-family-mono);border-radius:50%;place-items:center;font-style:normal;display:grid}.route-design-legend-special{border-top:2px dashed var(--color-route-special);width:26px}.route-design-map-stack{border:1px solid var(--color-line);background:var(--color-map-space);min-height:460px;position:relative;overflow:hidden}.route-design-map-stack .map-canvas{border:0;height:clamp(420px,52vw,720px);min-height:420px;margin:0}.route-design-route-overlay{pointer-events:none;z-index:2;background:0 0;border:0;width:100%;height:100%;margin:0;position:absolute;inset:0}.route-design-route-overlay .route-hit{stroke:#0000;stroke-width:22px;pointer-events:none}.route-design-route-overlay .route-corridor{stroke:var(--color-route-corridor);stroke-opacity:.26;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:none;transition:stroke-opacity .16s}.route-design-route-overlay .route-corridor.dimmed{stroke-opacity:.11}.route-design-route-overlay .route-hit{stroke:#0000;stroke-width:22px;stroke-linecap:round;pointer-events:stroke;cursor:pointer}.route-design-route-overlay .route-hit-special{stroke:#0000;stroke-width:24px;stroke-linecap:round;fill:none;pointer-events:stroke;cursor:pointer}.route-design-route-overlay .route-preview-line{stroke:var(--color-route-core);stroke-width:3px;stroke-opacity:.55;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:none}.route-design-route-overlay .route-selected-casing{stroke:var(--color-route-casing);stroke-width:7px;stroke-opacity:.9;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:none}.route-design-route-overlay .route-selected-core{stroke:var(--color-route-core);stroke-width:3.7px;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;fill:none;filter:drop-shadow(0 0 5px #55e7ff26);pointer-events:none}.route-design-route-overlay .route-selected-pulse{stroke:var(--color-route-pulse);stroke-width:3.5px;stroke-opacity:1;stroke-linecap:round;stroke-linejoin:round;fill:none;filter:drop-shadow(0 0 6px #55e7ffbf);stroke-dasharray:4 68;pointer-events:none;animation:1.2s linear infinite route-selected-flow}.route-design-route-overlay .route-selected-chevron{stroke:var(--color-route-pulse);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.82;pointer-events:none}.route-design-route-overlay .route-special-casing{stroke:var(--color-route-casing);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.9;pointer-events:none}.route-design-route-overlay .route-special-path{stroke:var(--color-route-special);stroke-width:2.2px;stroke-dasharray:7 6;stroke-linecap:round;stroke-linejoin:round;fill:none;filter:drop-shadow(0 0 5px var(--color-route-special-soft));pointer-events:none}.route-design-route-overlay .route-special-arrow{stroke:var(--color-route-special);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:none}.route-design-route-overlay .route-preview-special-path,.route-design-route-overlay .route-preview-special-arrow{opacity:.62}.route-design-route-overlay .route-special-label rect{fill:var(--color-route-step-bg);stroke:var(--color-route-special);stroke-width:1.2px;filter:drop-shadow(0 0 5px var(--color-route-special-soft));pointer-events:none}.route-design-route-overlay .route-special-label text{fill:var(--color-text);font:700 9px/1 var(--font-family-sans);pointer-events:none}.route-design-route-overlay .route-step-badge-group rect{fill:var(--color-route-step-bg);stroke:var(--color-route-step-line);stroke-width:1.2px;filter:drop-shadow(0 0 5px #55e7ff4d);pointer-events:none}.route-design-route-overlay .route-step-badge-group text{fill:var(--color-text);font:700 9px/1 var(--font-family-mono);pointer-events:none}.route-design-route-overlay .route-step-badge-group.repeat rect{stroke:var(--color-route-core);fill:#001a20fa}@keyframes route-selected-flow{to{stroke-dashoffset:-72px}}@keyframes route-line-flow{to{stroke-dashoffset:-26px}}.route-design-map-footer{gap:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-meta);flex-wrap:wrap;line-height:1.5;display:flex}.route-design-map-footer span:last-child{color:var(--color-info-text);flex:240px}.route-design-width-note{margin:calc(var(--space-3) * -1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-meta);line-height:1.5}.route-design-route-focus .route-design-map-panel .map-edge-shadow{opacity:.18}.route-design-route-focus .route-design-map-panel .map-edge-visible{opacity:.22}.route-design-route-focus .route-design-map-panel .route-background-node{opacity:.42}.route-design-route-focus .route-design-map-panel .route-focus-node{opacity:1}.route-design-route-list{gap:var(--space-2);display:grid}.route-design-route-card{width:100%;padding:var(--space-3);border-left:3px solid var(--color-line-strong);text-align:left;background:var(--color-surface-control);gap:5px;display:grid}.route-design-route-card:hover,.route-design-route-card:focus-visible,.route-design-route-card.preview{border-color:var(--color-accent);background:#55e7ff12}.route-design-route-card.selected{border-color:var(--color-route-one);box-shadow:inset 3px 0 var(--color-route-one);background:var(--color-accent-soft)}.route-design-route-card strong{color:var(--color-text)}.route-design-route-card>span:not(.route-design-route-rank){color:var(--color-text-muted);font-size:var(--font-size-meta);line-height:1.45}.route-design-route-rank{color:var(--color-accent);font:700 var(--font-size-meta)/1.2 var(--font-family-mono)}.route-design-action-card{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-line-strong);border-left:3px solid var(--color-accent);background:var(--color-surface);display:grid}.route-design-action-card h4,.route-design-action-card p{margin:0}.route-design-action-card h4{font-size:var(--font-size-body);line-height:1.5}.route-design-action-card p:last-child{color:var(--color-text-muted);font-size:var(--font-size-meta);line-height:1.5}.route-design-resource-list{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-line);margin:0;display:grid}.route-design-resource-list div{justify-content:space-between;gap:var(--space-3);font-size:var(--font-size-meta);display:flex}.route-design-resource-list dt{color:var(--color-text-muted)}.route-design-resource-list dd{text-align:right;color:var(--color-text);margin:0}.route-design-resource-list .route-design-ledger-sources{justify-content:stretch;display:grid}.route-design-ledger-sources dd{text-align:left}.route-design-ledger-sources ul{margin:var(--space-1) 0 0;padding-left:1.25rem}.route-design-detail-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.route-design-detail-grid article{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-line);background:var(--color-surface-subtle);display:grid}.route-design-detail-grid p{color:var(--color-text-muted);font-size:var(--font-size-body);margin:0;line-height:1.6}.route-design-detail-index{color:var(--color-accent);font:700 var(--font-size-meta)/1.2 var(--font-family-mono)}.route-design-inventory{grid-template-columns:auto 1fr;align-items:center}.route-design-inventory h2{margin:var(--space-2) 0 0}.route-design-inventory-list{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.route-design-inventory-list a{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--color-line);color:var(--color-text);background:var(--color-surface-subtle);text-decoration:none;display:grid}.route-design-inventory-list a:hover,.route-design-inventory-list a:focus-visible{border-color:var(--color-accent);background:var(--color-accent-soft)}.route-design-inventory-list span{color:var(--color-text-muted);font-size:var(--font-size-meta);line-height:1.4}.route-design-strategy{gap:var(--space-4);grid-template-columns:minmax(260px,.8fr) minmax(0,1.4fr);align-items:center;display:grid}.route-design-strategy h2,.route-design-strategy p{margin:var(--space-2) 0 0}.route-design-strategy-options{gap:var(--space-2);flex-wrap:wrap;display:flex}.route-design-strategy-options .preset,.route-design-strategy-options .goal{margin:0}.route-design-strategy>.planner-warning{grid-column:1/-1;margin:0}.planner-required-goal{gap:var(--space-4);border-left:3px solid var(--color-warning);grid-template-columns:minmax(260px,1fr) auto;align-items:center;display:grid}.planner-required-goal h2,.planner-required-goal p{margin:var(--space-2) 0 0}.planner-required-goal>.planner-warning{grid-column:1/-1;margin:0}.planner-parts-hint{margin:calc(var(--space-5) * -1) 0 0;padding:0 var(--space-2);color:var(--color-text-muted)}.route-design-constraint-group{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-line);display:grid}.route-design-constraint-head{justify-content:space-between;gap:var(--space-3);align-items:baseline;display:flex}.route-design-constraint-head span,.constraint-option small{color:var(--color-text-muted);font-size:var(--font-size-meta)}.constraint-option{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);background:var(--color-surface-subtle);align-items:center;display:flex}.constraint-option>span{gap:2px var(--space-2);grid-template-columns:auto 1fr;align-items:center;display:grid}.constraint-option>span small{grid-column:2}.constraint-option select,.constraint-select select{min-height:36px;padding:0 var(--space-2);border:1px solid var(--color-line-strong);background:var(--color-surface-control);color:var(--color-text)}.constraint-select{justify-content:space-between;align-items:center;gap:var(--space-3);max-width:280px;display:flex}.constraint-toggle{gap:var(--space-2);color:var(--color-text-muted);align-items:center;display:flex}.route-design-constraint-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.route-design-constraint-tags span{padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);background:var(--color-surface-subtle);color:var(--color-text);font-size:var(--font-size-meta)}.route-design-constraint-states{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.constraint-state{gap:var(--space-2);min-height:96px;padding:var(--space-3);border:1px solid var(--color-line);background:var(--color-surface-subtle);display:grid}.constraint-state p{color:var(--color-text-muted);font-size:var(--font-size-meta);margin:0;line-height:1.5}.constraint-state-success{border-top:2px solid var(--color-success)}.constraint-state-danger{border-top:2px solid var(--color-danger-strong)}.constraint-state-warning{border-top:2px solid var(--color-warning)}.constraint-state-accent{border-top:2px solid var(--color-accent)}.route-design-constraint-group>.planner-warning{margin:0}.planner-strategy-panel{border:1px solid var(--color-line);background:linear-gradient(135deg,var(--color-surface-card-start),var(--color-surface-card-end));overflow:hidden;box-shadow:0 18px 42px #00000029}.planner-strategy-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);display:flex}.planner-strategy-header h2{margin:var(--space-2) 0 0;font-size:clamp(20px,2vw,28px)}.planner-strategy-subtitle{max-width:700px;margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--font-size-body);line-height:1.55}.strategy-pending-badge,.strategy-applied-badge{min-height:30px;padding:0 var(--space-3);border:1px solid var(--color-line-strong);color:var(--color-text-muted);font:700 var(--font-size-meta)/1 var(--font-family-mono);white-space:nowrap;align-items:center;gap:7px;display:flex}.strategy-pending-badge{border-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning)}.strategy-pending-badge:before,.strategy-applied-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px}.planner-strategy-layout{border-top:1px solid var(--color-line);grid-template-columns:minmax(0,1.55fr) minmax(68px,.18fr) minmax(270px,.72fr);display:grid}.strategy-config-column{min-width:0;padding:0 var(--space-5)}.strategy-section{gap:var(--space-4);padding:var(--space-5) 0;border-bottom:1px solid var(--color-line);display:grid}.strategy-section:last-child{border-bottom:0}.strategy-section-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.strategy-section-heading>div:first-child{gap:var(--space-3);align-items:flex-start;min-width:0;display:flex}.strategy-section-heading h3{color:var(--color-text);font-size:var(--font-size-title);margin:0}.strategy-section-heading p{color:var(--color-text-muted);font-size:var(--font-size-meta);margin:4px 0 0;line-height:1.45}.strategy-section-index{color:var(--color-accent);font:700 var(--font-size-meta)/1.35 var(--font-family-mono)}.strategy-section-value,.strategy-advanced-note{color:var(--color-info-text);font:700 var(--font-size-meta)/1.35 var(--font-family-mono);text-align:right;white-space:nowrap}.strategy-segmented{border:1px solid var(--color-line);background:var(--color-surface-subtle);grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;display:grid}.strategy-segmented button{min-height:66px;padding:var(--space-3);text-align:left;color:var(--color-text-muted);background:0 0;border:1px solid #0000;gap:4px;display:grid}.strategy-segmented button:hover,.strategy-segmented button:focus-visible{background:var(--color-accent-soft);color:var(--color-text)}.strategy-segmented button.selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text);box-shadow:inset 3px 0 var(--color-accent)}.strategy-segmented strong{font-size:var(--font-size-body)}.strategy-segmented small{font-size:var(--font-size-meta);color:inherit;opacity:.82}.strategy-condition-list{background:var(--color-line);gap:1px;display:grid}.strategy-condition-row{gap:var(--space-3);min-width:0;padding:var(--space-3);background:var(--color-surface-control);grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;transition:background .16s;display:grid}.strategy-condition-row:hover,.strategy-condition-row.enabled{background:#00c8ed0e}.condition-glyph{border:1px solid var(--color-line-strong);background:var(--color-surface-input);opacity:.75;width:26px;height:26px;display:block;position:relative;transform:rotate(45deg)}.condition-glyph:before,.condition-glyph:after{content:"";background:currentColor;position:absolute}.condition-glyph:before{width:8px;height:1px;top:12px;left:8px}.condition-glyph:after{width:1px;height:8px;top:8px;left:12px}.condition-glyph-common{color:var(--color-accent);border-color:var(--color-accent)}.condition-glyph-combat{color:var(--color-danger);border-color:var(--color-danger)}.condition-glyph-parts{color:var(--color-warning);border-color:var(--color-warning)}.condition-glyph-exit{color:var(--color-success);border-color:var(--color-success)}.strategy-condition-copy{gap:3px;min-width:0;display:grid}.strategy-condition-copy strong{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--font-size-body);overflow:hidden}.strategy-condition-copy small{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:var(--font-size-meta);overflow:hidden}.strategy-condition-copy select{width:max-content;max-width:100%;min-height:30px;padding:0 var(--space-2);border:1px solid var(--color-line-strong);background:var(--color-surface-input);color:var(--color-text);font-size:var(--font-size-meta);margin-top:4px}.strategy-switch{cursor:pointer;place-items:center;min-width:42px;min-height:28px;display:grid;position:relative}.strategy-switch-input{opacity:0;width:1px;height:1px;position:absolute}.strategy-switch-track{border:1px solid var(--color-line-strong);background:var(--color-surface-input);border-radius:20px;align-items:center;width:38px;height:22px;padding:3px;transition:background .16s,border-color .16s;display:flex}.strategy-switch-track span{background:var(--color-text-muted);border-radius:50%;width:14px;height:14px;transition:transform .16s,background .16s}.strategy-switch-input:checked+.strategy-switch-track span{background:var(--color-accent);transform:translate(16px);box-shadow:0 0 8px #00c8eda6}.strategy-switch-input:focus-visible+.strategy-switch-track{outline:2px solid var(--color-accent);outline-offset:3px}.strategy-remove-button{color:var(--color-text-faint);font-size:var(--font-size-meta);white-space:nowrap;background:0 0;border:0;padding:4px 0}.strategy-remove-button:hover,.strategy-remove-button:focus-visible{color:var(--color-warning)}.strategy-add-trigger{gap:var(--space-2);padding:var(--space-3) 0;border:0;border-top:1px dashed var(--color-line-strong);color:var(--color-accent);text-align:left;background:0 0;grid-template-columns:auto auto 1fr;align-items:center;display:grid}.strategy-add-trigger small{color:var(--color-text-muted);font-size:var(--font-size-meta)}.strategy-add-mark{width:22px;height:22px;font:700 18px/1 var(--font-family-mono);border:1px solid;place-items:center;display:grid}.strategy-control-grid{gap:var(--space-2);grid-template-columns:minmax(170px,.8fr) minmax(200px,1fr);display:grid}.strategy-field,.strategy-toggle-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:46px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);background:var(--color-surface-subtle);display:flex}.strategy-field span{color:var(--color-text);font-size:var(--font-size-body)}.strategy-field select{min-height:34px;padding:0 var(--space-2);border:1px solid var(--color-line-strong);background:var(--color-surface-control);color:var(--color-text);font-size:var(--font-size-meta)}.strategy-toggle-row{justify-content:flex-start}.strategy-toggle-row input{accent-color:var(--color-accent)}.strategy-toggle-row span{gap:2px;min-width:0;display:grid}.strategy-toggle-row strong{color:var(--color-text);font-size:var(--font-size-meta)}.strategy-toggle-row small{color:var(--color-text-muted);font-size:11px;line-height:1.35}.strategy-advanced-field{max-width:420px}.strategy-condition-drawer{border-left:1px solid var(--color-line);border-right:1px solid var(--color-line);background:#04070861;min-width:0}.strategy-drawer-rail{align-content:center;justify-items:center;gap:var(--space-4);min-height:100%;padding:var(--space-3);display:grid}.strategy-drawer-rail-line{background:linear-gradient(var(--color-accent),transparent);width:1px;height:70px}.strategy-drawer-rail-button{justify-items:center;gap:var(--space-2);padding:var(--space-2);color:var(--color-text-muted);writing-mode:vertical-rl;background:0 0;border:1px solid #0000;display:grid}.strategy-drawer-rail-button:hover,.strategy-drawer-rail-button:focus-visible{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text)}.strategy-drawer-rail-button>span{width:24px;height:24px;font:700 18px/1 var(--font-family-mono);writing-mode:horizontal-tb;border:1px solid;place-items:center;display:grid}.strategy-drawer-rail-button small{color:var(--color-text-faint);font-size:var(--font-size-meta)}.strategy-drawer-content{align-content:start;gap:var(--space-3);min-width:0;padding:var(--space-4);display:grid}.strategy-drawer-header{justify-content:space-between;gap:var(--space-3);align-items:flex-start;display:flex}.strategy-drawer-kicker{color:var(--color-accent);font:700 10px/1.3 var(--font-family-mono);letter-spacing:.12em}.strategy-drawer-header h3,.strategy-summary-header h3{color:var(--color-text);font-size:var(--font-size-title);margin:4px 0 0}.strategy-drawer-header p{color:var(--color-text-muted);font-size:var(--font-size-meta);margin:4px 0 0}.strategy-drawer-close{color:var(--color-text-muted);font-size:var(--font-size-meta);background:0 0;border:0;padding:5px 0}.strategy-drawer-close:hover,.strategy-drawer-close:focus-visible{color:var(--color-text)}.strategy-search{align-items:center;gap:var(--space-2);min-height:38px;padding:0 var(--space-3);border:1px solid var(--color-line-strong);background:var(--color-surface-input);display:flex}.strategy-search:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}.strategy-search input{width:100%;min-width:0;color:var(--color-text);font-size:var(--font-size-meta);background:0 0;border:0;outline:0;padding:0}.strategy-search-icon{border:1px solid var(--color-text-muted);border-radius:50%;flex:0 0 13px;width:13px;height:13px;position:relative}.strategy-search-icon:after{content:"";background:var(--color-text-muted);width:5px;height:1px;position:absolute;bottom:-2px;right:-4px;transform:rotate(45deg)}.strategy-category-tabs{gap:2px;padding-bottom:2px;display:flex;overflow:auto}.strategy-category-tabs button{min-height:30px;padding:0 var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-meta);white-space:nowrap;background:0 0;border:1px solid #0000}.strategy-category-tabs button:hover,.strategy-category-tabs button:focus-visible,.strategy-category-tabs button.selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text)}.strategy-drawer-meta{justify-content:space-between;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-line);color:var(--color-text-muted);font-size:var(--font-size-meta);display:flex}.strategy-drawer-meta strong{color:var(--color-info-text);font-weight:500}.strategy-library-list{background:var(--color-line);gap:1px;max-height:560px;display:grid;overflow:auto}.strategy-library-row{gap:var(--space-2);padding:var(--space-2);background:var(--color-surface-control);grid-template-columns:26px minmax(0,1fr) auto;align-items:center;display:grid}.strategy-library-row>div{gap:2px;min-width:0;display:grid}.strategy-library-row strong{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--font-size-meta);overflow:hidden}.strategy-library-row small{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:11px;overflow:hidden}.strategy-library-row em{color:var(--color-text-faint);font-size:10px;font-style:normal}.strategy-library-row button{border:1px solid var(--color-line-strong);min-width:38px;color:var(--color-accent);background:0 0;justify-items:center;gap:1px;padding:4px;font-size:18px;line-height:1;display:grid}.strategy-library-row button:hover,.strategy-library-row button:focus-visible{border-color:var(--color-accent);background:var(--color-accent-soft)}.strategy-library-row button.added{border-color:var(--color-line);color:var(--color-success);opacity:.72;cursor:default}.strategy-library-row button.added:hover{border-color:var(--color-line);background:0 0}.strategy-added-icon{border:1px solid;border-radius:50%;width:15px;height:15px;display:block;position:relative}.strategy-added-icon:before{content:"";border-bottom:1px solid;border-left:1px solid;width:7px;height:3px;position:absolute;top:6px;left:3px;transform:rotate(-45deg)}.strategy-library-row button small{color:inherit;font-size:10px}.strategy-library-empty{padding:var(--space-4);background:var(--color-surface-control);color:var(--color-text-muted);font-size:var(--font-size-meta);margin:0;line-height:1.5}.strategy-summary{align-content:start;gap:var(--space-3);min-width:0;padding:var(--space-4);background:#060c0e9e;display:grid}.strategy-summary-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-line);display:flex}.strategy-summary-dot{background:var(--color-success);width:9px;height:9px;box-shadow:0 0 10px var(--color-success);border-radius:50%;margin-top:8px}.strategy-summary-dot.pending{background:var(--color-warning);box-shadow:0 0 10px var(--color-warning)}.strategy-summary-group{gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-line);display:grid}.strategy-summary-hero{padding:var(--space-3);border-left:3px solid var(--color-accent);background:var(--color-accent-soft)}.strategy-summary-group>span,.strategy-summary-label span{color:var(--color-text-muted);font-size:var(--font-size-meta)}.strategy-summary-hero strong{color:var(--color-text);font-size:var(--font-size-title)}.strategy-summary-label{justify-content:space-between;gap:var(--space-2);align-items:baseline;display:flex}.strategy-summary-label>strong{color:var(--color-accent);font:700 var(--font-size-meta)/1 var(--font-family-mono)}.strategy-summary-muted{color:var(--color-text-faint)!important;font-size:11px!important}.strategy-summary-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.strategy-summary-list li{gap:var(--space-2);grid-template-columns:8px minmax(0,1fr);align-items:start;display:grid}.summary-list-dot{background:var(--color-accent);border-radius:50%;width:7px;height:7px;margin-top:5px;box-shadow:0 0 7px}.summary-dot-combat{color:var(--color-danger);background:var(--color-danger)}.summary-dot-parts{color:var(--color-warning);background:var(--color-warning)}.summary-dot-exit{color:var(--color-success);background:var(--color-success)}.strategy-summary-list li>div{gap:2px;min-width:0;display:grid}.strategy-summary-list strong{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--font-size-meta);overflow:hidden}.strategy-summary-list small,.strategy-summary-empty,.strategy-summary-parameter{color:var(--color-text-muted);margin:0;font-size:11px;line-height:1.45}.strategy-summary-empty{padding:var(--space-2);background:var(--color-surface-subtle)}.strategy-summary-parameter{padding-left:var(--space-2);border-left:2px solid var(--color-warning);color:var(--color-info-text)}.strategy-summary-value{justify-content:space-between;gap:var(--space-2);align-items:baseline;margin:0;display:flex}.strategy-summary-value strong{color:var(--color-text);font-size:var(--font-size-body)}.strategy-summary-value span{color:var(--color-text-muted);text-align:right;font-size:11px}.strategy-summary-status{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-line);background:var(--color-surface-subtle);align-items:flex-start;display:flex}.summary-status-indicator{background:var(--color-success);border-radius:50%;flex:0 0 8px;width:8px;height:8px;margin-top:4px;box-shadow:0 0 8px}.strategy-summary-status.pending .summary-status-indicator{background:var(--color-warning)}.strategy-summary-status div{gap:3px;display:grid}.strategy-summary-status strong{color:var(--color-text);font-size:var(--font-size-meta)}.strategy-summary-status small{color:var(--color-text-muted);font-size:11px;line-height:1.4}.strategy-replan-button{width:100%;min-height:44px;margin-top:auto}@media (width<=1200px){.planner-strategy-layout{grid-template-columns:minmax(0,1.2fr) minmax(58px,.15fr) minmax(245px,.72fr)}.planner-strategy-layout.is-drawer-open{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr) minmax(245px,.72fr)}.strategy-config-column{padding:0 var(--space-4)}.strategy-section{padding:var(--space-4) 0}.strategy-control-grid{grid-template-columns:1fr}.strategy-condition-copy small{white-space:normal}}@media (width<=900px){.planner-strategy-header{display:grid}.planner-strategy-layout,.planner-strategy-layout.is-drawer-open{grid-template-columns:1fr}.strategy-config-column{padding:0 var(--space-4)}.strategy-condition-drawer{border-top:1px solid var(--color-line);border-left:0;border-right:0}.strategy-drawer-rail{min-height:84px;padding:var(--space-3) var(--space-4);grid-template-columns:auto 1fr;place-items:center start}.strategy-drawer-rail-line{background:linear-gradient(90deg,var(--color-accent),transparent);width:70px;height:1px}.strategy-drawer-rail-button{writing-mode:horizontal-tb;grid-template-columns:auto auto;place-items:center start}.strategy-drawer-rail-button small{grid-column:2}.strategy-drawer-content{padding:var(--space-4)}.strategy-summary{border-bottom:1px solid var(--color-line);order:-1}.strategy-summary-group{grid-template-columns:1fr auto;align-items:start}.strategy-summary-hero{grid-template-columns:1fr}.strategy-summary-list,.strategy-summary-parameter,.strategy-summary-value,.strategy-summary-status,.strategy-replan-button{grid-column:1/-1}.strategy-library-list{max-height:none}}@media (width<=560px){.planner-strategy-header,.strategy-config-column,.strategy-drawer-content,.strategy-summary{padding-left:var(--space-3);padding-right:var(--space-3)}.strategy-segmented{grid-template-columns:1fr}.strategy-segmented button{min-height:54px}.strategy-condition-row{grid-template-columns:26px minmax(0,1fr) auto}.strategy-remove-button{grid-column:2;justify-self:start}.strategy-condition-copy select{width:100%}.strategy-section-heading{display:grid}.strategy-section-value,.strategy-advanced-note{text-align:left}.strategy-field,.strategy-toggle-row{align-items:flex-start}.strategy-field{display:grid}.strategy-field select{width:100%}.strategy-summary-group{grid-template-columns:1fr}.strategy-summary-label{grid-column:1}.strategy-summary-list,.strategy-summary-parameter,.strategy-summary-value,.strategy-summary-status,.strategy-replan-button{grid-column:auto}}.route-design-detail-list{padding-left:var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-body);margin:0;line-height:1.6}.route-design-score-list{gap:var(--space-1);font-size:var(--font-size-meta);grid-template-columns:1fr auto;margin:0;display:grid}.route-design-score-list dt{color:var(--color-text-muted)}.route-design-score-list dd{text-align:right;color:var(--color-text);margin:0}@media (width<=1200px){.route-design-layout{grid-template-columns:230px minmax(420px,1fr)}.route-design-results{grid-column:1/-1}.route-design-route-list{grid-template-columns:repeat(3,minmax(0,1fr))}.route-design-action-card{grid-column:1/-1}.route-design-resource-list{border-top:0;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:0}}@media (width<=900px){.route-design-hero,.route-design-section-head,.route-design-workbench-head{align-items:start;display:grid}.route-design-hero-state{justify-items:start}.route-design-section-head>.hint{text-align:left}.route-design-focus-grid,.route-design-layout,.route-design-detail-grid,.route-design-inventory,.route-design-strategy{grid-template-columns:1fr}.route-design-results{grid-column:auto}.route-design-route-list,.route-design-inventory-list,.route-design-constraint-states{grid-template-columns:1fr 1fr}.route-design-workbench{padding:var(--space-3)}.route-design-workbench-actions{justify-content:flex-start}.route-design-map-stack{min-height:390px}.route-design-map-stack .map-canvas{height:clamp(390px,90vw,620px);min-height:390px}.route-design-resource-list{grid-template-columns:1fr}.route-design-action-card{grid-column:auto}.planner-required-goal{grid-template-columns:1fr}.planner-required-goal>.goal{justify-self:start}}@media (width<=560px){.constraint-option{display:grid}.constraint-option select{width:100%}.route-design-route-list,.route-design-inventory-list{grid-template-columns:1fr}.route-design-legend{justify-items:start}.route-design-map-footer{display:grid}}.route-design-map-readonly .map-canvas{pointer-events:none}.route-design-map-readonly .map-canvas .node-icon-hit-area,.route-design-map-readonly .map-canvas .slot-hit-area{cursor:default}@media (width<=1200px){.route-design-layout.route-design-route-mode{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}.route-design-layout.route-design-route-mode .route-design-results{grid-column:auto}}@media (width<=900px){.route-design-layout.route-design-map-mode,.route-design-layout.route-design-route-mode{grid-template-columns:1fr}.route-design-layout.route-design-map-mode .route-design-map-panel,.route-design-layout.route-design-route-mode .route-design-map-panel,.route-design-layout.route-design-route-mode .route-design-results{grid-column:auto}.route-design-mode-switch{width:100%}.route-design-mode-switch button{flex:1}}@media (prefers-reduced-motion:reduce){.route-design-route-overlay .route-selected-pulse{animation:none}}.edge-toggle{min-width:122px}.map-canvas{width:100%;height:clamp(330px,52vh,620px);display:block}.slot .slot-label-bg{fill:#0000;stroke:none;stroke-dasharray:none}.slot .slot-hit-area{fill:#0000;stroke:none;stroke-dasharray:none;pointer-events:all}.slot.selected .slot-hit-area{stroke:var(--color-accent);stroke-width:2px;stroke-dasharray:4 5}.slot.drag-target .slot-hit-area{stroke:var(--color-warning);stroke-width:3px;stroke-dasharray:5 4}.slot .empty-land-marker{fill:#e8fdff;stroke:#7ce8e4;stroke-width:2px;filter:drop-shadow(0 0 6px #7ce8e4e6);pointer-events:none}.slot .node-icon-hit-area{fill:#0000;stroke:none;pointer-events:all;cursor:pointer}.slot .node-icon-hit-area:focus-visible{stroke:var(--color-accent);stroke-width:2px;stroke-dasharray:4 5}.slot .slot-label-bg,.slot .slot-label,.slot .current-label{pointer-events:none}.map-edge-hit{pointer-events:stroke}.slot.empty_traversable.selected .node-icon,.slot.empty_traversable.current .node-icon{filter:drop-shadow(0 0 7px var(--color-accent))}.slot .node-icon{pointer-events:none;transform-box:fill-box;transform-origin:50%}.slot:not(.node) .slot-hit-area{cursor:pointer}.part-card>*{min-width:0}.part-card{grid-template-columns:minmax(44px,48px) minmax(0,1fr) minmax(0,100px) auto}.part-summary b{overflow-wrap:anywhere;white-space:normal;line-height:1.35;display:block}.part-summary span{overflow-wrap:anywhere;line-height:1.35;display:block}.part-remaining{white-space:normal;overflow-wrap:anywhere;text-align:right;max-width:100px;line-height:1.35}.part-review-hint{margin:.25rem 0 0}.validation-blockers,.validation-warnings{border-left:3px solid var(--color-warning);background:var(--color-warning-soft);grid-column:1/-1;margin-top:12px;padding:10px 12px}.validation-blockers{border-left-color:var(--color-danger)}.validation-blockers strong,.validation-warnings strong{margin-bottom:6px;display:block}.validation-blockers ul{margin:0;padding-left:20px}.validation-warnings{gap:8px;display:grid}.validation-warnings label{color:var(--color-text);align-items:flex-start;gap:8px;display:flex}.validation-warnings input{width:auto;min-height:auto;margin-top:3px}@media (width<=900px){.part-card{grid-template-columns:44px minmax(0,1fr) auto}.part-remaining{text-align:left;max-width:100px}}:root{--color-map-space:#030607;--color-map-nebula-violet:#9b6fb8;--color-map-nebula-violet-soft:#4a3e72;--color-map-nebula-cyan:#55d7dc;--color-map-nebula-cyan-soft:#236d78;--color-map-star:#bdeff4;--color-part-media:#182326}.map-space{fill:var(--color-map-space)}.map-nebula{filter:blur(6px);mix-blend-mode:screen}.map-star{fill:var(--color-map-star);filter:drop-shadow(0 0 3px var(--color-map-star))}.main-pane>.map-canvas{height:clamp(420px,100vh - 300px,720px);min-height:420px}.parts{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.part-card{border:1px solid var(--color-line);border-radius:var(--radius-control);grid-template-rows:auto auto;align-items:center;min-height:124px;position:relative;background:linear-gradient(145deg,var(--color-surface-strong),var(--color-surface))!important;grid-template-columns:72px minmax(0,1fr) auto!important;gap:10px 14px!important;padding:14px!important;display:grid!important}.part-card.low-confidence{border-color:var(--color-danger);color:var(--color-text)}.part-media{border:1px solid var(--color-line-strong);background:var(--color-part-media);width:72px;height:72px;color:var(--color-text-faint);font-size:var(--font-size-meta);letter-spacing:.08em;grid-area:1/1;place-items:center;display:grid;overflow:hidden}.part-media img{object-fit:cover;width:100%;height:100%;display:block}.part-name{overflow-wrap:anywhere;grid-area:1/2;align-self:end;min-width:0;font-size:15px;line-height:1.35}.part-remove{white-space:nowrap;grid-area:1/3;align-self:start;min-height:32px;padding:6px 10px!important}.part-remaining{white-space:nowrap;grid-area:2/1/auto/span 2;justify-self:start;max-width:none;font-size:14px;line-height:1.35}.part-confidence{color:var(--color-text-muted);font-size:var(--font-size-body);white-space:nowrap;grid-area:2/3;justify-self:end}.part-confidence.low{color:var(--color-danger-strong)}@media (width<=1100px){.main-pane>.map-canvas{height:clamp(380px,68vh,620px);min-height:380px}.parts{grid-template-columns:1fr}.part-card{min-height:112px;grid-template-columns:64px minmax(0,1fr) auto!important}.part-media{width:64px;height:64px}}@media (width<=700px){.recognition-targets{grid-template-columns:1fr}.recognition-runner-head{display:grid}.recognition-runner-progress{grid-template-columns:1fr}}.route-design-confirm-button,.route-design-back-button{width:100%;margin-top:var(--space-3)}.route-design-back-button{text-align:left;border-color:var(--color-line-strong);color:var(--color-info-text)}.route-design-route-detail-panel{gap:var(--space-3);margin-top:var(--space-3);display:grid}.route-design-detail-summary{gap:var(--space-1);padding:var(--space-3);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);display:grid}.route-design-detail-summary>span:last-child{color:var(--color-text-muted);font-size:var(--font-size-meta);line-height:1.45}.route-design-action-list{gap:var(--space-2);display:grid}.route-design-action-step{gap:var(--space-2);width:100%;min-height:0;padding:var(--space-3);border:1px solid var(--color-line);border-left:3px solid var(--color-line-strong);background:var(--color-surface-control);text-align:left;grid-template-columns:28px minmax(0,1fr);align-items:start;display:grid}.route-design-action-step:hover,.route-design-action-step:focus-visible,.route-design-action-step.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.route-design-action-step.locked{box-shadow:inset 3px 0 var(--color-warning);border-color:var(--color-warning)}.route-design-action-step.node-related{border-right-color:var(--color-route-special)}.route-design-action-index{border:1px solid var(--color-route-step-line);width:24px;height:24px;color:var(--color-accent);font:700 var(--font-size-meta)/1 var(--font-family-mono);border-radius:50%;place-items:center;display:grid}.route-design-action-copy{gap:2px;min-width:0;display:grid}.route-design-action-copy>strong{color:var(--color-text)}.route-design-action-copy>span{color:var(--color-info-text);font-size:var(--font-size-meta);line-height:1.45}.route-design-action-copy>small{color:var(--color-text-muted);font-size:var(--font-size-meta);line-height:1.45}.route-design-action-copy .route-design-action-special{color:var(--color-route-special)}.route-design-action-copy .route-design-action-resource{color:var(--color-success)}.route-design-action-copy .route-design-action-note{color:var(--color-text-faint)}.route-design-route-detail .route-design-map-panel .map-edge-shadow{opacity:.12}.route-design-route-detail .route-design-map-panel .map-edge-visible{opacity:.14}.route-design-route-detail .route-design-route-overlay .route-special-path{opacity:.62}.route-design-route-detail .route-design-route-overlay .route-special-path.highlighted{stroke-width:3.2px;opacity:1}.route-design-route-detail .route-design-route-overlay .route-special-casing:not(.highlighted),.route-design-route-detail .route-design-route-overlay .route-special-arrow:not(.highlighted){opacity:.34}.route-design-route-detail .route-design-route-overlay .route-selected-core.highlighted{stroke-width:5px}.route-design-route-detail .route-design-route-overlay .route-selected-casing.highlighted{stroke-width:9px}.route-design-route-detail .route-design-route-overlay .route-selected-pulse.highlighted{stroke-width:4.5px}.route-design-route-detail .route-design-route-overlay .route-step-badge-group.highlighted rect{stroke:var(--color-warning);fill:var(--color-warning-soft)}.route-design-route-detail .route-design-route-overlay .route-step-badge-group.highlighted text{fill:var(--color-warning)}@media (width<=900px){.route-design-action-step{padding:var(--space-3) var(--space-2)}}.planner-strategy-layout{grid-template-columns:minmax(0,1fr) minmax(330px,410px)}.planner-strategy-layout.is-drawer-open{grid-template-columns:minmax(0,1fr) minmax(340px,385px) minmax(330px,410px)}.strategy-condition-drawer:not(.open){display:none}.strategy-condition-drawer.open{display:block}.strategy-summary{border-left:1px solid var(--color-line);background:linear-gradient(160deg,#09161dd1,#050c10d1)}.strategy-condition-row{min-height:58px;padding:var(--space-2) var(--space-3);grid-template-columns:16px 28px minmax(0,1fr) auto}.condition-drag-handle{opacity:.68;background:radial-gradient(circle,var(--color-text-muted) 1.2px,transparent 1.4px) 0 0/5px 5px;width:10px;height:16px}.strategy-segmented button{grid-template-rows:auto auto;grid-template-columns:34px minmax(0,1fr);align-items:center}.strategy-segmented button strong,.strategy-segmented button small{grid-column:2}.strategy-preference-icon{border:2px solid var(--color-text-muted);opacity:.78;grid-row:1/3;width:27px;height:27px;display:block}.strategy-preference-icon-combat_first{box-shadow:inset 0 0 0 5px var(--color-surface-control),inset 0 0 0 7px currentColor;color:var(--color-accent);border-radius:50%}.strategy-preference-icon-balanced{color:var(--color-text-muted);border-radius:50% 50% 42% 42%;transform:scaleX(.82)}.strategy-preference-icon-balanced:before,.strategy-preference-icon-balanced:after{content:"";background:currentColor;width:1px;height:24px;margin:auto;display:block;position:relative}.strategy-preference-icon-balanced:after{width:18px;height:1px;top:-13px;left:3px}.strategy-preference-icon-non_combat_first{border:0;border-left:2px solid var(--color-text-muted);color:var(--color-success);border-radius:50% 0;transform:rotate(-35deg)skew(-12deg)}.strategy-preference-icon-non_combat_first:before{content:"";background:currentColor;width:2px;height:25px;margin:0 0 0 10px;display:block;transform:rotate(35deg)}.strategy-field,.strategy-toggle-row{min-height:62px}.strategy-drawer-header{padding-bottom:var(--space-2)}.strategy-drawer-close{width:30px;height:30px;padding:0;font-size:0;position:relative}.strategy-drawer-close:before,.strategy-drawer-close:after{content:"";background:var(--color-text);width:18px;height:1.5px;position:absolute;top:14px;left:7px;transform:rotate(45deg)}.strategy-drawer-close:after{transform:rotate(-45deg)}.strategy-drawer-close:hover,.strategy-drawer-close:focus-visible{background:var(--color-accent-soft)}.strategy-library-list{gap:var(--space-3);background:0 0;max-height:620px;display:grid}.strategy-library-group{gap:4px;display:grid}.strategy-library-group h4{padding:0 0 var(--space-1);border-left:3px solid var(--color-accent);padding-left:var(--space-2);color:var(--color-text);font-size:var(--font-size-body);margin:0;font-weight:600}.strategy-library-row{border:1px solid var(--color-line);background:var(--color-surface-control)}.strategy-library-row+.strategy-library-row{border-top:0}.strategy-plus-icon{border:1px solid;border-radius:50%;width:15px;height:15px;display:block;position:relative}.strategy-plus-icon:before,.strategy-plus-icon:after{content:"";background:currentColor;width:7px;height:1px;position:absolute;top:6px;left:4px}.strategy-plus-icon:after{transform:rotate(90deg)}.strategy-add-mark{font-size:0;position:relative}.strategy-add-mark:before,.strategy-add-mark:after{content:"";background:currentColor;width:10px;height:1px;position:absolute}.strategy-add-mark:after{transform:rotate(90deg)}.strategy-summary-hero{border-left:3px solid var(--color-accent);border-bottom:1px solid var(--color-line);background:0 0}.strategy-summary-list-muted{opacity:.75}.summary-dot-muted{background:var(--color-text-faint);box-shadow:none}.strategy-summary-complexity{justify-content:center;align-items:center;gap:var(--space-2);padding-top:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-meta);display:flex}.strategy-summary-complexity strong{color:var(--color-success);font-weight:600}.strategy-complexity-bars{background:linear-gradient(to top,transparent 0 0),linear-gradient(to top,var(--color-accent) 0 100%) 0 4px/3px 9px no-repeat,linear-gradient(to top,var(--color-accent) 0 100%) 6px 1px/3px 12px no-repeat,linear-gradient(to top,var(--color-accent) 0 100%) 12px 0/3px 13px no-repeat;opacity:.72;width:16px;height:13px}@media (width>=1201px){.strategy-control-grid{grid-template-columns:minmax(150px,.72fr) repeat(3,minmax(145px,1fr))}}@media (width>=901px) and (width<=1200px){.strategy-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.planner-strategy-layout,.planner-strategy-layout.is-drawer-open{grid-template-columns:1fr}.strategy-summary{border-left:0}.strategy-control-grid{grid-template-columns:1fr}}@media (width<=560px){.strategy-condition-row{grid-template-columns:12px 26px minmax(0,1fr) auto}.strategy-condition-copy small{white-space:normal}.strategy-summary-complexity{justify-content:flex-start}}.planner-strategy-panel{border-color:var(--color-line-soft);box-shadow:0 16px 38px #00000024}.planner-strategy-header{height:auto;min-height:0;padding-bottom:var(--space-4)}.planner-strategy-header>div{min-width:0}.strategy-pending-badge,.strategy-applied-badge{min-height:26px;padding:0 var(--space-2);background:0 0;border:0}.strategy-pending-badge{color:var(--color-warning)}.planner-strategy-layout{border-top-color:var(--color-line-soft)}.strategy-config-column{padding-left:var(--space-4);padding-right:var(--space-4)}.strategy-section{gap:var(--space-3);padding:var(--space-4) 0;border-bottom-color:var(--color-line-soft)}.strategy-section-heading h3{letter-spacing:.01em;font-size:16px;font-weight:650}.strategy-section-heading p{color:var(--color-text-faint);margin-top:3px;font-size:11px}.strategy-section-index{opacity:.9;font-size:14px}.strategy-section-value,.strategy-advanced-note{color:var(--color-text-muted);font-weight:500}.strategy-segmented{gap:var(--space-2);background:0 0;border:0;padding:0}.strategy-segmented button{min-height:70px;padding:var(--space-3);border:1px solid var(--color-line-soft);border-radius:var(--radius-control);opacity:.76;background:#050c0f4d}.strategy-segmented button:hover,.strategy-segmented button:focus-visible{border-color:var(--color-control-border);background:var(--color-surface-subtle);opacity:1}.strategy-segmented button.selected{border-color:var(--color-accent);box-shadow:inset 2px 0 var(--color-accent);opacity:1;background:#00c8ed0e}.strategy-segmented strong{font-weight:600}.strategy-segmented small{color:var(--color-text-muted);opacity:1}.strategy-segmented button.selected small{color:var(--color-info-text)}.strategy-condition-list{border-top:1px solid var(--color-line-soft);background:0 0;gap:0}.strategy-condition-row{gap:var(--space-2);min-height:54px;padding:var(--space-2) 0;border-bottom:1px solid var(--color-line-soft);background:0 0;grid-template-columns:16px 28px minmax(0,1fr) 42px 36px}.strategy-condition-row:hover{background:#ffffff05}.strategy-condition-row.enabled{background:#00c8ed07}.strategy-condition-row.enabled:hover{background:#00c8ed0b}.condition-drag-handle{opacity:.42}.condition-glyph{opacity:.62;width:24px;height:24px}.strategy-condition-copy{gap:2px}.strategy-condition-copy strong{font-size:14px;font-weight:600}.strategy-condition-copy small{color:var(--color-text-muted);font-size:12px}.strategy-condition-copy select{border-color:var(--color-control-border);border-radius:var(--radius-control);background:var(--color-surface-subtle);min-height:30px;margin-top:3px;font-size:12px}.strategy-switch{min-width:36px;min-height:26px}.strategy-switch-track{border-color:var(--color-control-border);background:#080e10b3;width:34px;height:20px;padding:2px}.strategy-switch-track span{width:14px;height:14px}.strategy-switch-input:checked+.strategy-switch-track{border-color:var(--color-accent);background:#00c8ed38}.strategy-switch-input:checked+.strategy-switch-track span{transform:translate(14px);box-shadow:0 0 6px #00c8ed6b}.strategy-remove-button{border-radius:var(--radius-control);width:32px;min-width:32px;height:32px;min-height:32px;color:var(--color-text-faint);background:0 0;border:0;place-items:center;padding:0;font-size:0;line-height:1;display:grid}.strategy-remove-button span{opacity:.72;width:14px;height:14px;position:relative}.strategy-remove-button span:before,.strategy-remove-button span:after{content:"";background:currentColor;width:1px;height:12px;position:absolute;top:1px;left:6px}.strategy-remove-button span:before{transform:rotate(45deg)}.strategy-remove-button span:after{transform:rotate(-45deg)}.strategy-remove-button:hover,.strategy-remove-button:focus-visible{background:var(--color-accent-soft);color:var(--color-accent)}.strategy-remove-button:hover span,.strategy-remove-button:focus-visible span{opacity:1}.strategy-remove-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.strategy-add-trigger{gap:var(--space-2);padding:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--font-size-meta);border-top:0}.strategy-add-trigger:hover,.strategy-add-trigger:focus-visible{color:var(--color-accent)}.strategy-add-trigger small{color:var(--color-text-faint)}.strategy-add-mark{border:0;width:20px;height:20px;font-size:18px}.strategy-control-grid{gap:var(--space-2)}.strategy-field,.strategy-toggle-row{min-height:54px;padding:var(--space-2) var(--space-3);border-color:var(--color-line-soft);border-radius:var(--radius-control);background:var(--color-surface-subtle)}.strategy-field span{font-size:13px}.strategy-field select{border-color:var(--color-control-border);border-radius:var(--radius-control);background:var(--color-surface-control);min-height:32px}.strategy-toggle-row{gap:var(--space-2)}.strategy-toggle-row input{width:16px;height:16px;min-height:16px;accent-color:var(--color-accent);flex:0 0 16px;margin:0}.strategy-toggle-row strong{font-size:13px;font-weight:600}.strategy-toggle-row small{color:var(--color-text-muted);font-size:11px}.strategy-condition-drawer{border-left-color:var(--color-line-soft);border-right-color:var(--color-line-soft);background:#0407083d}.strategy-summary{border-left-color:var(--color-line-soft);background:linear-gradient(160deg,#09161d9e,#050c10a3)}.strategy-summary-header{padding-bottom:var(--space-3);border-bottom-color:var(--color-line-soft)}.strategy-summary-header h3{font-size:17px}.strategy-summary-hero{padding:var(--space-2) 0 var(--space-3);background:0 0;border-bottom:0}.strategy-summary-hero strong{font-size:16px}.strategy-summary-hero small{color:var(--color-text-muted);font-size:11px}.strategy-summary-group{gap:var(--space-2);padding:var(--space-2) 0;border-bottom:0}.strategy-summary-label span{font-size:12px}.strategy-summary-list{gap:var(--space-1)}.strategy-summary-list strong{font-size:12px;font-weight:600}.strategy-summary-list small,.strategy-summary-parameter{font-size:11px}.strategy-summary-parameter{padding-left:var(--space-2);border-left-color:var(--color-warning)}.strategy-summary-status{min-height:0;padding:var(--space-2) 0;border:0;border-left:2px solid var(--color-line-strong);background:0 0}.strategy-summary-status.pending{border-color:var(--color-warning);background:0 0}.strategy-summary-complexity{padding-top:0}.strategy-replan-button{border-radius:var(--radius-control);min-height:44px;box-shadow:none}@media (width<=560px){.strategy-condition-row{gap:var(--space-1);grid-template-columns:12px 26px minmax(0,1fr) 36px 32px}.strategy-condition-copy strong{font-size:13px}.strategy-remove-button{grid-column:auto;justify-self:center;width:32px;min-width:32px;height:32px;min-height:32px}.strategy-condition-copy select{width:100%}}@media (width<=900px){.planner-strategy-header{row-gap:var(--space-3);height:auto;min-height:0}}.steps{grid-template-columns:repeat(6,1fr)}.workbench-step-nav{width:100%;height:auto}.workbench-step-nav-button{align-items:center;gap:var(--space-3);grid-template-columns:auto minmax(0,1fr);min-width:0;display:grid}.workbench-step-nav-index{border:1px solid var(--color-line-strong);width:28px;height:28px;color:var(--color-text-muted);font:700 var(--font-size-meta)/1 var(--font-family-mono);place-items:center;display:grid}.workbench-step-nav-copy{gap:2px;min-width:0;display:grid}.workbench-step-nav-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workbench-step-nav-copy small{color:var(--color-text-faint);font-size:var(--font-size-meta);font-weight:500}.workbench-step-nav-button.completed:not(.active) .workbench-step-nav-index{border-color:var(--color-accent);color:var(--color-accent)}@media (width<=1100px){.steps{grid-template-columns:repeat(2,1fr)}.workbench-step-nav-button{gap:var(--space-2);padding:var(--space-2) var(--space-3)}}.merge-demo{gap:var(--space-4);display:grid}.merge-demo-switch{border:1px solid var(--color-line);background:var(--color-surface-subtle);gap:2px;padding:2px;display:flex}.merge-demo-switch button{min-width:120px;min-height:48px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);text-align:left;color:var(--color-text-muted);background:0 0;border:1px solid #0000;gap:2px;display:grid}.merge-demo-switch button:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-text)}.merge-demo-switch button.active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text)}.merge-demo-switch strong{font-size:var(--font-size-body)}.merge-demo-switch small{font-size:var(--font-size-meta);color:inherit}.merge-demo-upload{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.merge-demo-upload img{max-width:100%;max-height:220px;margin:var(--space-3) auto 0;border:1px solid var(--color-line);display:block}.merge-demo-next{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);display:flex}.workbench-map-review{gap:var(--space-4);margin-top:var(--space-5);display:grid}.map-review-next{justify-content:flex-end;gap:var(--space-3);border-top:1px solid var(--color-line);padding-top:var(--space-4);display:flex}.map-review-stage,.resource-confirm-stage{gap:var(--space-4);display:grid}.map-review-head,.resource-confirm-head{justify-content:space-between;align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.map-review-head h2,.resource-confirm-head h2{margin:0}.map-review-toolbar{gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.map-review-edit-tools{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.map-review-opacity{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-meta);display:flex}.map-review-issue,.resource-confirm-issue{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-danger);color:var(--color-danger-strong);font-size:var(--font-size-body);background:#ec80771a;margin:0}.map-review-hint{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);color:var(--color-info-text);font-size:var(--font-size-body);margin:0;font-weight:600}.map-review-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.map-review-split .map-review-head,.map-review-split .map-review-issue,.map-review-split .map-review-hint,.map-review-split .map-review-library{grid-column:1/-1}.map-review-library{min-width:0}.map-review-library-toggle.active{border-color:var(--color-accent);color:var(--color-accent)}.map-review-library.node-palette,.map-review-library .node-palette{max-width:none;max-height:calc(100vh - 260px)}.map-review-source,.map-review-result,.map-review-canvas,.map-review-overlay-stack{border:1px solid var(--color-line);background:var(--color-surface-canvas);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;min-width:0}.map-review-source{align-content:start;gap:var(--space-2);padding:var(--space-3);display:grid}.map-review-source img{object-fit:contain;background:var(--color-surface-input);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:clamp(360px,48vw,640px);display:block}.map-review-result,.map-review-canvas{padding:var(--space-3)}.map-canvas image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.map-review-result .map-canvas,.map-review-canvas .map-canvas,.map-review-overlay-stack .map-canvas{border:0;height:clamp(360px,48vw,640px);min-height:360px;margin:0}.map-review-overlay{grid-template-columns:minmax(0,1fr)}.map-review-overlay .map-review-head,.map-review-overlay .map-review-issue,.map-review-overlay .map-review-hint,.map-review-overlay .map-review-library,.map-review-overlay .map-review-align{grid-column:1/-1}.map-review-opacity input[type=range]{width:120px;min-height:auto;accent-color:var(--color-accent)}.map-review-overlay-stack{min-height:360px}.map-review-overlay-stack.is-aligning{cursor:grab;outline:2px solid var(--color-accent);outline-offset:2px;touch-action:none}.map-review-overlay-stack.is-aligning.is-panning{cursor:grabbing}.map-review-overlay-stack.is-aligning .map-graph{pointer-events:none}.map-review-overlay-stack.is-aligning .node-icon-hit-area,.map-review-overlay-stack.is-aligning .slot-hit-area,.map-review-overlay-stack.is-aligning .map-edge-hit{cursor:inherit}.map-review-overlay-stack.is-peeking .map-graph{pointer-events:none}.map-review-align{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);flex-wrap:wrap;align-items:center;display:flex}.map-review-align-text{color:var(--color-info-text);font-size:var(--font-size-body);font-weight:600}.map-review-align .ghost{border-color:var(--color-accent);color:var(--color-accent);font-weight:600}.map-review-key{min-width:2.4em;padding:2px var(--space-2);border:1px solid var(--color-line);background:var(--color-surface-input);color:var(--color-text);font-size:var(--font-size-meta);border-bottom-width:2px;border-radius:6px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.resource-confirm-parts{gap:var(--space-3);display:grid}.resource-confirm-catalog{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=1100px){.map-review-split,.map-review-overlay,.merge-demo-upload{grid-template-columns:1fr}.map-review-library.node-palette,.map-review-library .node-palette{max-width:none}}button.primary,button.secondary,button.ghost,button.danger,.route-design-button{min-height:var(--control-height);padding:0 var(--control-padding-inline);border-radius:var(--radius-control)}button.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:800}button.primary:hover:not(:disabled){background:var(--color-accent-strong);border-color:var(--color-accent-strong);color:var(--color-text-on-accent)}button.secondary{background:var(--color-surface-control);border-color:var(--color-control-border);color:var(--color-text)}button.secondary:hover:not(:disabled),button.secondary:focus-visible{background:var(--color-accent-soft);border-color:var(--color-accent-muted);color:var(--color-text)}button.ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled),button.ghost:focus-visible{background:var(--color-surface-subtle);border-color:var(--color-line-soft);color:var(--color-text)}button.danger{background:var(--color-surface-subtle);border-color:var(--color-danger-line);color:var(--color-danger-strong)}button.danger:hover:not(:disabled),button.danger:focus-visible{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger-strong)}.route-design-button{flex:none;width:auto;min-width:120px}.route-design-button-system{gap:var(--space-5);display:grid}.route-design-button-rule{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-accent-dim);display:flex}.route-design-button-rule-copy{gap:var(--space-1);min-width:0;display:grid}.route-design-button-rule-copy>span,.route-design-sample-label,.route-design-choice-title{color:var(--color-text-muted);font-size:var(--font-size-meta)}.route-design-button-rule-copy>strong{font-size:var(--font-size-title)}.route-design-button-rule-copy>small{color:var(--color-text-muted);font-size:var(--font-size-body)}.route-design-button-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.route-design-button-gallery{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.route-design-button-sample{align-content:space-between;gap:var(--space-4);min-height:160px;padding:var(--space-4);border:1px solid var(--color-line-soft);background:var(--color-surface-subtle);display:grid}.route-design-button-sample>div{gap:var(--space-1);display:grid}.route-design-button-sample strong{font-size:var(--font-size-body)}.route-design-button-sample p{color:var(--color-text-muted);font-size:var(--font-size-meta);margin:0;line-height:1.5}.route-design-button-sample .route-design-button{justify-self:start}.route-design-choice-showcase{gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-line-soft);display:grid}.route-design-choice-showcase h3{font-size:var(--font-size-title);margin:0}.route-design-choice-groups{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.route-design-choice-group{gap:var(--space-2);min-width:0;display:grid}.route-design-choice-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.route-design-choice-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.route-design-choice-card{align-items:start;gap:var(--space-2);min-width:0;min-height:82px;padding:var(--space-3);border:1px solid var(--color-line-soft);background:var(--color-surface-subtle);cursor:pointer;grid-template-columns:auto minmax(0,1fr);transition:border-color .16s,background .16s,box-shadow .16s;display:grid;position:relative}.route-design-choice-card:hover{border-color:var(--color-control-border);background:var(--color-surface-control)}.route-design-choice-card:focus-within{outline:2px solid var(--color-accent);outline-offset:2px}.route-design-choice-card.selected{border-color:var(--color-line-soft);border-left:3px solid var(--color-accent);padding-left:calc(var(--space-3) - 2px);background:var(--color-accent-dim);box-shadow:none}.route-design-choice-card input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.route-design-choice-mark{border:1px solid var(--color-text-muted);background:0 0;border-radius:50%;width:16px;height:16px;margin-top:2px;display:block}.route-design-choice-card.selected .route-design-choice-mark{border-color:var(--color-accent)}.route-design-choice-card.selected .route-design-choice-mark:after{content:"";background:var(--color-accent);width:8px;height:8px;box-shadow:0 0 6px var(--color-accent);border-radius:50%;margin:3px;display:block}.route-design-choice-copy{gap:var(--space-1);min-width:0;display:grid}.route-design-choice-copy strong{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--font-size-body);overflow:hidden}.route-design-choice-copy small{color:var(--color-text-muted);font-size:var(--font-size-meta);line-height:1.45}.route-design-cyan-ladder{gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-line-soft);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.route-design-cyan-level{gap:var(--space-1) var(--space-2);grid-template-columns:auto 1fr;align-items:center;min-width:0;display:grid}.route-design-cyan-level strong{font-size:var(--font-size-body)}.route-design-cyan-level small{color:var(--color-text-muted);font-size:var(--font-size-meta);grid-column:2;line-height:1.45}.route-design-cyan-swatch{border-radius:1px;width:34px;height:8px;display:block}.route-design-cyan-level.high .route-design-cyan-swatch{background:var(--color-accent);box-shadow:0 0 10px var(--color-accent)}.route-design-cyan-level.medium .route-design-cyan-swatch{background:var(--color-accent-muted)}.route-design-cyan-level.low .route-design-cyan-swatch{background:var(--color-accent-quiet)}.recognition-targets label.selected{border-color:var(--color-line-soft);background:var(--color-accent-dim);box-shadow:inset 3px 0 var(--color-accent)}.strategy-segmented button.selected{border-color:var(--color-line-soft);background:var(--color-accent-dim);box-shadow:inset 2px 0 var(--color-accent)}.workbench-step-nav-button.completed:not(.active){background:var(--color-surface-subtle);color:var(--color-text-muted);box-shadow:none}.workbench-step-nav-button.completed:not(.active) .workbench-step-nav-index{border-color:var(--color-accent-muted);color:var(--color-accent-muted);background:0 0}.workbench-step-nav-button.completed:not(.active) .workbench-step-nav-copy small{color:var(--color-text-faint)}.steps button.workbench-step-nav-button.active{background:var(--color-accent-dim);color:var(--color-text);box-shadow:inset 3px 0 var(--color-accent)}.workbench-step-nav-button.active .workbench-step-nav-index{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.upload-grid>.primary{grid-column:1/-1;justify-self:end;width:auto;min-width:120px}.upload-dropzone:focus{border-color:var(--color-accent)}.upload-dropzone:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;box-shadow:0 0 0 1px var(--color-accent-soft),var(--shadow-card)}.recognition-targets input{accent-color:var(--color-accent)}.map-review-edit-tools button.secondary.active,.map-review-library-toggle.secondary.active{border-color:var(--color-line-soft);background:var(--color-accent-dim);box-shadow:inset 3px 0 var(--color-accent);color:var(--color-text)}.strategy-choice-card{position:relative;padding-right:calc(var(--space-3) + 24px)!important}.strategy-preference-radio{top:var(--space-3);right:var(--space-3);border:1px solid var(--color-text-muted);opacity:.82;border-radius:50%;width:14px;height:14px;position:absolute}.strategy-choice-card.selected .strategy-preference-radio{border-color:var(--color-accent);background:var(--color-accent);box-shadow:inset 0 0 0 3px var(--color-surface-control);opacity:1}button.strategy-remove-button.ghost{background:0 0;border-color:#0000;width:32px;min-width:32px;height:32px;min-height:32px;padding:0}button.strategy-add-trigger.ghost{min-height:38px;padding:var(--space-2) 0 0;background:0 0;border-color:#0000}button.strategy-drawer-rail-button.ghost{min-height:38px;padding:var(--space-2);background:0 0;border-color:#0000}button.strategy-drawer-close.ghost{background:0 0;border-color:#0000;min-height:30px;padding:0}.strategy-library-row button.secondary{min-width:56px;min-height:38px;padding:4px var(--space-2);background:0 0}.strategy-library-row button.secondary.added{border-color:var(--color-line);background:0 0}.strategy-replan-button{justify-self:end;width:auto;min-width:120px}.route-design-mode-switch button.active,.route-design-route-card.selected{border-color:var(--color-line-soft);background:var(--color-accent-dim);box-shadow:inset 3px 0 var(--color-accent)}.route-design-confirm-button,.route-design-back-button{width:auto;min-width:120px}.route-design-back-button{justify-self:start}.palette-item.selected{border-color:var(--color-line-soft);background:var(--color-accent-dim);box-shadow:inset 3px 0 var(--color-accent)}@media (width<=560px){.strategy-replan-button{justify-self:stretch;width:100%}.route-design-confirm-button,.route-design-back-button{width:100%}}@media (width<=1100px){.route-design-button-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.route-design-choice-groups{grid-template-columns:1fr}}@media (width<=700px){.route-design-button-rule{align-items:start;display:grid}.route-design-button-actions{justify-content:flex-start}.route-design-button-gallery,.route-design-cyan-ladder,.route-design-choice-grid,.route-design-choice-grid-three{grid-template-columns:1fr}}.map-edge-hit{stroke:#0000;stroke-width:24px;cursor:pointer}.palette-list{gap:12px}.palette-group{gap:8px;display:grid}.palette-group h3{color:var(--color-text-muted);margin:0;font-size:13px}@media (width<=900px){.palette-group{gap:8px;display:flex}.palette-group h3{align-self:center;min-width:max-content}}
