.place-picker-dialog[data-v-f536893d]{width:min(1000px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--border, #eee5d8);border-radius:16px;color:var(--ink, #3a2b1c);background:#fff;box-shadow:0 20px 80px #3a2b1c33;overflow:hidden}.place-picker-dialog[data-v-f536893d]::backdrop{background:#3a2b1c66}.picker-shell[data-v-f536893d]{display:flex;flex-direction:column;max-height:calc(100dvh - 50px)}.picker-heading[data-v-f536893d]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border, #eee5d8);flex-shrink:0}.picker-heading h2[data-v-f536893d]{margin:0;font-size:20px;font-weight:750;line-height:1.4}.picker-close[data-v-f536893d]{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border, #eee5d8);border-radius:12px;color:var(--muted, #766b5c);flex-shrink:0}.picker-close[data-v-f536893d]:hover,.picker-cancel[data-v-f536893d]:hover{border-color:#dfb577;background:#fffaf3}.picker-content[data-v-f536893d]{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:0;flex:1;overflow:auto;overscroll-behavior:contain}.picker-search[data-v-f536893d]{padding:20px;border-right:1px solid var(--border, #eee5d8);min-width:0}.picker-search-label[data-v-f536893d]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.picker-search-input[data-v-f536893d]{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;border:1px solid #c8b18c;border-radius:12px;color:var(--muted, #766b5c);background:#fff}.picker-search-input[data-v-f536893d]:focus-within{border-color:var(--accent-strong, #8a4b05);outline:3px solid #8a4b05;outline-offset:1px}.picker-search-input input[data-v-f536893d]{width:100%;min-width:0;min-height:26px;border:0;background:none;outline:none;font-size:16px;color:var(--ink, #3a2b1c)}.picker-search-input input[data-v-f536893d]::placeholder{color:var(--muted, #766b5c);opacity:1}.picker-feedback[data-v-f536893d]{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--muted, #766b5c);overflow-wrap:anywhere}.picker-error[data-v-f536893d]{color:#a54530}.picker-results[data-v-f536893d]{max-height:360px;min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:6px;margin:12px -6px -6px}.picker-results li+li[data-v-f536893d]{border-top:1px solid var(--border, #eee5d8)}.picker-results button[data-v-f536893d]{display:flex;align-items:center;gap:10px;width:100%;min-height:68px;padding:12px;border-radius:12px;text-align:left}.picker-results button[data-v-f536893d]:hover{background:#fffaf3}.picker-results .chosen[data-v-f536893d]{background:var(--accent-soft, #fff0d7);color:var(--accent-strong, #8a4b05)}.picker-results button>svg[data-v-f536893d]{flex-shrink:0;color:var(--muted, #766b5c)}.picker-results button>svg[data-v-f536893d]:last-child{margin-left:auto}.picker-results button>span[data-v-f536893d]{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.picker-results strong[data-v-f536893d]{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.picker-results small[data-v-f536893d]{font-size:12px;line-height:1.6;color:var(--muted, #766b5c);overflow-wrap:anywhere}.picker-map-panel[data-v-f536893d]{display:flex;flex-direction:column;min-width:0;background:#fff8ed}.picker-map-heading[data-v-f536893d]{display:flex;align-items:center;gap:8px;min-height:48px;padding:12px 20px;flex-shrink:0;background:#fff;font-size:13px;line-height:1.5;font-weight:600;color:var(--muted, #766b5c)}.picker-map[data-v-f536893d],.picker-map-unavailable[data-v-f536893d]{height:420px;min-height:225px;flex:1;width:100%}.picker-map-hidden[data-v-f536893d]{display:none}.picker-map-unavailable[data-v-f536893d]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;color:var(--accent-strong, #8a4b05)}.picker-map-unavailable strong[data-v-f536893d]{font-size:14px;line-height:1.5;color:var(--ink, #3a2b1c);overflow-wrap:anywhere}.picker-map-unavailable p[data-v-f536893d]{max-width:320px;margin:0;font-size:12px;line-height:1.7;color:var(--muted, #766b5c);overflow-wrap:anywhere}.picker-footer[data-v-f536893d]{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:12px 20px;border-top:1px solid var(--border, #eee5d8);background:#fff;flex-shrink:0}.picker-selection[data-v-f536893d]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.picker-selection>svg[data-v-f536893d]{flex-shrink:0;color:var(--accent-strong, #8a4b05)}.picker-selection>div[data-v-f536893d]{display:flex;flex-direction:column;gap:3px;min-width:0}.picker-selection strong[data-v-f536893d]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.4;overflow-wrap:anywhere}.picker-selection small[data-v-f536893d]{font-size:12px;line-height:1.5;color:var(--muted, #766b5c);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-cancel[data-v-f536893d]{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:76px;padding:10px 16px;border:1px solid var(--border, #eee5d8);border-radius:12px;background:#fff;color:var(--ink, #3a2b1c);font-size:14px;line-height:1.5;font-weight:500;white-space:nowrap;flex-shrink:0}.picker-close[data-v-f536893d]:focus-visible,.picker-cancel[data-v-f536893d]:focus-visible,.picker-results button[data-v-f536893d]:focus-visible{outline:3px solid #8a4b05;outline-offset:2px}@media(max-width:760px){.place-picker-dialog[data-v-f536893d]{width:calc(100vw - 20px);max-height:calc(100dvh - 20px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.picker-shell[data-v-f536893d]{max-height:calc(100dvh - 22px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.picker-heading[data-v-f536893d]{padding:12px 16px}.picker-content[data-v-f536893d]{display:flex;flex-direction:column}.picker-search[data-v-f536893d]{padding:16px;border-right:0;border-bottom:1px solid var(--border, #eee5d8);flex-shrink:0}.picker-results[data-v-f536893d]{max-height:184px;margin-top:8px}.picker-results button[data-v-f536893d]{min-height:68px;padding:12px}.picker-map-panel[data-v-f536893d]{flex-shrink:0}.picker-map-heading[data-v-f536893d]{padding:12px 16px}.picker-map[data-v-f536893d],.picker-map-unavailable[data-v-f536893d]{height:clamp(225px,34dvh,340px);min-height:225px;flex:none}.picker-map-unavailable[data-v-f536893d]{padding:20px}.picker-footer[data-v-f536893d]{padding:12px 16px;gap:12px}}@media(max-height:560px)and (min-width:600px){.place-picker-dialog[data-v-f536893d]{width:min(1000px,calc(100vw - 24px));max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.picker-shell[data-v-f536893d]{max-height:calc(100dvh - 26px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.picker-heading[data-v-f536893d],.picker-footer[data-v-f536893d]{padding:8px 16px}.picker-content[data-v-f536893d]{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);overflow:hidden}.picker-search[data-v-f536893d]{display:flex;flex-direction:column;min-height:0;padding:16px;border-right:1px solid var(--border, #eee5d8);border-bottom:0;overflow:hidden}.picker-search-input[data-v-f536893d],.picker-feedback[data-v-f536893d]{flex-shrink:0}.picker-results[data-v-f536893d]{flex:1;min-height:0;max-height:none;margin-top:8px}.picker-map-panel[data-v-f536893d]{min-height:0;flex-shrink:1}.picker-map-heading[data-v-f536893d]{min-height:44px;padding:10px 16px}.picker-map[data-v-f536893d],.picker-map-unavailable[data-v-f536893d]{height:auto;min-height:0;flex:1}.picker-map-unavailable[data-v-f536893d]{gap:8px;padding:16px;overflow:auto;justify-content:safe center}.picker-map-unavailable[data-v-f536893d]>*{flex-shrink:0}}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,맑은 고딕,sans-serif;color:var(--ink);background:var(--canvas);font-size:14px;text-rendering:auto;--ink: #3a2b1c;--muted: #766b5c;--accent: #fcac3b;--accent-strong: #8a4b05;--accent-line: #ba6e04;--accent-hover: #f4a32d;--accent-soft: #fff0d7;--destination: #ef8b78;--border: #eee5d8;--surface: #fff;--canvas: #fffaf3;--radius: 16px;--card-inset: 20px;--control-radius: 12px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{border:0;background:none;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8a4b05;outline-offset:3px}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.035em;word-break:keep-all;overflow-wrap:anywhere}h2{font-size:18px;font-weight:700;line-height:1.4}strong{font-weight:600}input::placeholder{color:var(--muted)}ul,ol{margin:0;padding:0;list-style:none}p{line-height:1.65;word-break:keep-all;overflow-wrap:anywhere}small{font-size:12px}::selection{background:#ffe0a8}.skip-link{position:fixed;top:8px;left:12px;z-index:100;padding:12px 16px;border-radius:12px;background:var(--ink);color:#fff;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-header{height:calc(72px + env(safe-area-inset-top,0px));min-height:calc(72px + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:32px;padding:env(safe-area-inset-top,0px) max(24px,calc((100vw - 1152px)/2)) 0;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;line-height:1.2}.brand-mark{display:block;width:44px;height:44px;flex-shrink:0}.brand>span:last-child{font-size:22px;font-weight:800;letter-spacing:-.04em}.desktop-nav{display:flex;align-items:center;gap:28px;margin-left:auto;height:100%;color:var(--muted);font-weight:600}.desktop-nav a{display:flex;align-items:center;gap:6px;height:100%;min-height:44px;position:relative}.desktop-nav a[aria-current=page]{color:var(--accent-strong)}.desktop-nav a[aria-current=page]:after{content:"";position:absolute;right:0;bottom:0;left:0;height:3px;border-radius:3px 3px 0 0;background:var(--accent)}.nav-count{font-size:12px;padding:2px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent-strong)}.icon-button{width:44px;height:44px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:12px}.icon-button:hover{background:#faf5ee}.settings-button{border:1px solid var(--border);color:var(--muted)}.app-main{width:min(1200px,100%);padding:24px 24px 32px;margin:0 auto;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0 20px}.page-heading h1{font-size:26px;line-height:1.35;font-weight:750;letter-spacing:-.045em}.page-heading p{margin-top:8px;color:var(--muted)}.page-heading>svg{color:var(--accent-strong)}.eyebrow{font-size:12px;font-weight:600;color:var(--muted)}.mobile-break{display:none}.app-footer{width:min(1200px,100%);margin:0 auto;padding:8px 24px 24px;font-size:12px;line-height:1.7;text-align:center;color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}.mobile-nav{display:none}.workspace{display:grid;grid-template-columns:320px minmax(0,1fr);grid-template-areas:"planner map" "summary preview" ". chapters";gap:20px;align-items:start}.workspace>*{min-width:0;width:100%}.planner-card{grid-area:planner}.map-card{grid-area:map}.route-summary-card{grid-area:summary}.preview-card{grid-area:preview}.chapter-card{grid-area:chapters}.planner-card,.route-summary-card,.map-card,.preview-card,.chapter-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.planner-card,.route-summary-card,.chapter-card{padding:var(--card-inset)}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.card-heading h2{min-width:0}.card-heading>.text-button{flex-shrink:0}.card-heading>span{flex-shrink:0;font-size:12px;color:var(--muted)}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px;border-radius:var(--control-radius);font-size:13px;font-weight:600;color:var(--accent-strong);white-space:nowrap}.text-button:hover:not(:disabled){background:var(--accent-soft)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 16px;border-radius:12px;background:var(--accent);color:var(--ink);font-size:14px;line-height:1.5;font-weight:650}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;font-size:14px;line-height:1.5;font-weight:500;white-space:nowrap}.secondary-button:hover:not(:disabled){border-color:#dfb577;background:#fffaf3}.transport-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:16px;padding:4px;border-radius:12px;background:#faf5ee}.transport-toggle button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:600;color:var(--muted)}.transport-toggle .selected{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-strong)}.place-fields{position:relative;display:grid;gap:12px}.place-select{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-width:0;min-height:76px;padding:12px 54px 12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;text-align:left;line-height:1.5}.place-select:hover{border-color:#dfb577}.place-select.editing{border-color:var(--accent-strong)}.place-select>svg{position:absolute;right:16px;color:var(--muted)}.place-dot{width:9px;height:9px;flex-shrink:0;z-index:1;border:2px solid #fff;border-radius:50%;outline:1.5px solid var(--accent-strong);background:var(--accent)}.destination-dot{outline-color:var(--destination);background:var(--destination)}.place-line{position:absolute;top:40px;bottom:40px;left:19px;border-left:1px dashed #cdbb9e}.place-text{display:flex;flex-direction:column;gap:3px;min-width:0;width:100%}.place-text>small{font-size:12px;color:var(--muted)}.place-text>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;letter-spacing:-.015em}.place-text .placeholder{font-size:14px;font-weight:500;color:var(--muted)}.place-address{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}.swap-button{position:absolute;top:50%;right:8px;z-index:2;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--muted);transform:translateY(-50%)}.swap-button:hover:not(:disabled){color:var(--accent-strong);background:var(--accent-soft)}.find-route{display:grid;grid-template-columns:20px minmax(0,1fr) 20px;gap:12px;width:100%;margin-top:16px;text-align:center}.find-route>svg,.find-route>.spinner{justify-self:center}.field-error,.small-status{margin-top:12px;font-size:13px;line-height:1.65;color:var(--muted)}.field-error{color:#a54530}.example-button{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:64px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.example-button strong{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;width:100%;font-size:13px;color:var(--accent-strong)}.example-place{display:-webkit-box;min-width:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}.small-chip{flex-shrink:0;padding:4px 7px;border-radius:6px;background:#faf5ee;color:var(--muted);font-size:12px;line-height:1.5;white-space:nowrap}.route-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}.route-stats>div{display:flex;flex-direction:column;gap:6px;min-width:0}.route-stats>div+div{padding-left:16px;border-left:1px solid var(--border)}.route-stats strong{font-size:26px;font-weight:700;letter-spacing:-.04em}.route-stats small{font-size:12px;color:var(--muted)}.route-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.route-actions>.text-button{margin-left:auto}.route-warnings{margin-top:16px;padding:0 12px;border-radius:10px;background:#faf5ee;color:var(--muted)}.route-warnings summary{display:list-item;min-height:44px;padding:12px 0;cursor:pointer;font-size:13px;font-weight:600;line-height:1.5}.route-warnings p{font-size:12px;line-height:1.7}.route-warnings p+p{margin-top:8px}.route-warnings[open]{padding-bottom:12px}.map-card{position:relative;display:flex;flex-direction:column;align-self:stretch;min-height:380px}.map-toolbar{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;min-height:64px;padding:16px var(--card-inset)}.map-title{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:16px;line-height:1.5;font-weight:700;color:var(--ink)}.map-title svg{color:var(--accent-strong)}.map-mini-status,.map-hint{font-size:12px;line-height:1.6;color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}.map-mini-status{min-width:0;flex:1 1 190px;text-align:right}.map-hint{color:var(--accent-strong)}.live-map,.diagram-map,.map-unavailable{min-height:330px;flex:1}.live-map{height:330px}.diagram-map{position:relative;background:#f7efe3;overflow:hidden}.diagram-map>svg{position:absolute;inset:0;display:block;width:100%;height:100%}.diagram-caption{position:absolute;left:16px;bottom:12px;padding:6px 8px;border-radius:6px;background:#fffffff0;color:var(--muted);font-size:12px}.map-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px;background:#fff8ed;text-align:center;color:#8a4b05}.map-unavailable strong{color:var(--ink);font-size:16px}.map-unavailable p{max-width:360px;color:var(--muted);font-size:14px}.map-pin{display:block;padding:6px 11px;border-radius:8px;background:var(--accent);color:var(--ink);font-size:12px;font-weight:600;box-shadow:0 2px 6px #3a2b1c20}.map-current{display:block;border:3px solid #fff;border-radius:50%;background:#fff;box-shadow:0 0 0 5px #fcac3b40;color:var(--ink);font-size:20px;line-height:1}.preview-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:var(--card-inset) var(--card-inset) 16px}.preview-heading>div{min-width:0}.preview-heading h2{font-size:18px}.scene-status{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;padding:5px 8px;border-radius:6px;background:#faf5ee;color:var(--muted);font-size:12px;line-height:1.5;white-space:nowrap}.status-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.scene-status.matched{background:var(--accent-soft);color:var(--accent-strong)}.scene-status.demo{background:#fff0d7;color:#8a4b05}.scene-status.missing{background:#fff0e9;color:#a54530}.range-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 var(--card-inset) 16px}.range-tabs button{min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--control-radius);background:#fff;color:var(--muted);font-size:14px;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}.range-tabs button.selected{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.preview-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:360px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#faf5ee;overflow:hidden}.preview-stage.is-empty{min-height:112px;background:#fff8ed}.stage-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;max-width:580px;padding:28px 24px;text-align:center;pointer-events:none}.stage-icon{display:grid;place-items:center;width:56px;height:56px;margin-bottom:16px;border-radius:16px;background:#fff0d7;color:#8a4b05}.brand-illustration{display:block;width:144px;height:86px;max-width:100%;flex-shrink:0;object-fit:contain}.preview-illustration{width:160px;height:96px}.preview-stage.is-empty .stage-content{padding:16px 20px}.scene-illustration{width:128px;height:76px;margin-bottom:12px}.map-unavailable>.brand-illustration{margin-bottom:4px}.saved-illustration{width:160px;height:96px;margin-bottom:20px}.stage-kicker{margin-bottom:12px;color:#8a4b05;font-size:12px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}.stage-content h3{max-width:460px;color:#3a2b1c;font-size:18px;font-weight:600;line-height:1.55}.stage-content p{max-width:390px;margin-top:8px;color:var(--muted);font-size:14px;white-space:pre-line}.stage-route-line{display:flex;align-items:center;gap:8px;margin-top:20px}.stage-route-line span{width:7px;height:7px;border-radius:50%;background:#dfb577}.stage-route-line span.active{width:12px;height:12px;background:var(--accent);box-shadow:0 0 0 4px #fcac3b26}.stage-route-line i{display:block;width:28px;height:1px;background:#e8d8be}.coordinate-caption{margin-top:16px;color:var(--muted);font-size:12px;line-height:1.6}.live-roadview{position:absolute;inset:0;width:100%;height:100%;background:#faf5ee}.live-roadview.concealed{opacity:0;pointer-events:none}.viewer-caption{position:absolute;top:16px;right:16px;left:16px;z-index:2;display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:10px;background:#3a2b1ce8;color:#fff;font-size:13px;line-height:1.6;pointer-events:none}.viewer-caption svg{margin-top:2px}.player-controls{padding:16px var(--card-inset) var(--card-inset)}.player-topline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.play-button{min-width:112px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 12px;border-radius:12px;background:var(--accent);color:var(--ink);font-size:14px;line-height:1.5;font-weight:600;white-space:nowrap}.play-button:hover:not(:disabled){background:var(--accent-hover)}.play-button:only-child{grid-column:1 / -1;width:100%;min-height:48px}.player-position{min-width:0;display:flex;flex-direction:column;gap:4px}.player-position strong{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--ink);font-size:14px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.player-position small{color:var(--muted);font-size:12px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}.speed-select{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;line-height:1.5;white-space:nowrap}.speed-select select{width:72px;min-height:44px;padding:8px 6px;border:1px solid var(--border);border-radius:var(--control-radius);background:#fff;color:var(--ink);font-size:14px;line-height:1.5}.progress-row{display:flex;align-items:center;gap:12px;min-height:44px;margin-top:12px}.progress-row>span{flex-shrink:0;min-width:32px;color:var(--muted);font-size:12px;line-height:1.5}.progress-row>span:last-child{text-align:right}.progress-slider{min-width:0;width:100%;min-height:44px;margin:0;padding:0;appearance:none;border:0;border-radius:4px;background:linear-gradient(to right,var(--accent-line) var(--progress, 0%),#eee5d8 var(--progress, 0%)) center / 100% 5px no-repeat;cursor:pointer}.progress-slider::-webkit-slider-thumb{width:16px;height:16px;appearance:none;border:2px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent-strong)}.progress-slider::-moz-range-thumb{width:14px;height:14px;border:2px solid var(--accent-strong);border-radius:50%;background:var(--accent)}.chapter-card>.card-heading{margin-bottom:12px}.chapter-list{height:320px;max-height:320px;padding-bottom:var(--chapter-tail-space, 0px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cfb892 transparent}.chapter-list li+li{border-top:1px solid #f3eadc}.chapter-list button{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;padding:12px;border-radius:var(--control-radius);text-align:left}.chapter-list button:hover{background:#fffaf3}.chapter-list button.active{background:var(--accent-soft)}.chapter-index{flex-shrink:0;width:22px;color:var(--muted);font-size:12px}.chapter-list button>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;word-break:keep-all;overflow-wrap:anywhere}.chapter-list strong{color:var(--ink);font-size:14px;line-height:1.6}.chapter-list small{color:var(--muted);font-size:12px;line-height:1.6}.chapter-list svg{color:var(--muted)}.chapter-list button.active .chapter-index,.chapter-list button.active strong,.chapter-list button.active svg{color:var(--accent-strong)}.demo-banner,.setup-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:20px;border:1px solid #ead7b7;border-radius:12px;background:#fff5e6;color:#8a4b05;font-size:13px;line-height:1.6}.demo-banner>span:nth-child(2){display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:4px 12px;min-width:0}.demo-banner>svg{margin-left:auto}.demo-tag{flex-shrink:0;padding:3px 7px;border-radius:6px;background:#fcac3b;color:var(--ink);font-size:12px;font-weight:700;white-space:nowrap}.demo-detail{color:#8a4b05}.setup-banner{background:#faf5ee;border-color:var(--border);color:var(--muted)}.connection-error{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:20px;border:1px solid #ebc6bb;border-radius:12px;background:#fff5f0;font-size:14px}.connection-error>svg{color:#a54530}.connection-error>div{min-width:0;flex:1}.connection-error p{margin-top:4px;color:#92503e}.connection-error button{flex-shrink:0}.toast{position:fixed;bottom:24px;left:50%;z-index:30;display:flex;align-items:center;gap:10px;min-width:280px;max-width:calc(100vw - 32px);padding:6px 6px 6px 16px;border-radius:12px;background:#3a2b1cf7;color:#fff;font-size:14px;line-height:1.65;box-shadow:0 8px 24px #3a2b1c20;transform:translate(-50%)}.toast>span{min-width:0;word-break:keep-all;overflow-wrap:anywhere}.toast .icon-button{margin-left:auto;color:#f3dfbf}.toast .icon-button:hover{background:#ffffff15}.settings-dialog{--dialog-inset: 20px;width:470px;max-width:calc(100% - 32px);max-height:calc(100dvh - 48px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:var(--dialog-inset);border:1px solid var(--border);border-radius:16px;overflow:auto;background:#fff;color:var(--ink);box-shadow:0 18px 80px #3a2b1c30}.settings-dialog::backdrop{background:#3a2b1c70}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.settings-dialog .dialog-heading{position:sticky;top:calc(-1 * var(--dialog-inset));z-index:2;margin:calc(-1 * var(--dialog-inset)) calc(-1 * var(--dialog-inset)) 16px;padding:var(--dialog-inset) var(--dialog-inset) 12px;border-bottom:1px solid var(--border);background:var(--surface)}.dialog-heading h2{font-size:20px}.dialog-heading>.icon-button{border:1px solid var(--border);color:var(--muted)}.settings-dialog>p{color:var(--muted);font-size:14px}.connection-list{display:grid;margin:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.connection-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;font-size:13px}.connection-list dt{color:var(--muted)}.connection-list dd{max-width:62%;margin:0;text-align:right;color:var(--muted);font-size:13px;line-height:1.65;word-break:keep-all;overflow-wrap:anywhere}.connection-list dd.ready{color:var(--accent-strong)}.settings-dialog .dialog-footnote{margin-bottom:20px;font-size:13px}.settings-dialog>.secondary-button{width:100%}.saved-page{width:100%}.saved-empty{display:flex;flex-direction:column;align-items:center;padding:52px 24px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;text-align:center}.saved-empty h2{margin-bottom:8px;font-size:20px}.saved-empty p{max-width:390px;margin-bottom:24px;color:var(--muted);font-size:14px}.saved-privacy{display:flex;align-items:flex-start;justify-content:center;gap:8px;margin-top:20px;color:var(--muted);font-size:12px}.saved-privacy svg{margin-top:2px}.saved-list{display:flex;flex-direction:column;gap:12px}.saved-list li{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.saved-mode{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent-strong)}.saved-list li>div{flex:1;min-width:0}.saved-list h2{display:grid;grid-template-columns:minmax(0,1fr) 17px minmax(0,1fr);align-items:start;gap:8px;margin-top:4px;font-size:16px;line-height:1.65}.saved-list h2>svg{margin-top:5px}.saved-endpoint{min-width:0;word-break:keep-all;overflow-wrap:anywhere}.saved-list p{margin-top:4px;color:var(--muted);font-size:12px}.saved-list .icon-button{color:var(--muted)}.spinner{width:18px;height:18px;border:2px solid #3a2b1c40;border-top-color:var(--ink);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1100px){:root{--card-inset: 16px}}@media(max-width:1100px)and (min-width:901px){.workspace{grid-template-columns:320px minmax(0,1fr);gap:16px}.card-heading h2{font-size:17px}}@media(max-width:900px){.app-header{gap:20px;padding-inline:20px}.app-main{padding:20px 20px 28px}.page-heading h1{font-size:24px}.workspace{display:flex;flex-direction:column;gap:16px}.map-card{min-height:320px}.live-map,.diagram-map,.map-unavailable{min-height:270px}.live-map{height:270px}.preview-stage{min-height:300px}.preview-stage.is-empty{min-height:104px}.app-footer{padding-inline:20px}.saved-list li{gap:12px}}@media(max-width:680px){.app-header{height:calc(64px + env(safe-area-inset-top,0px));min-height:calc(64px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px))}.brand>span:last-child{font-size:21px}.desktop-nav{display:none}.settings-button{margin-left:auto}.app-main{padding:20px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px))}.page-heading{padding:0 0 16px}.map-toolbar{min-height:56px;padding-block:12px}.map-mini-status{flex-basis:160px}.preview-heading{gap:8px}.stage-content{padding:24px 20px}.stage-content h3{font-size:17px}.stage-route-line i{width:24px}.viewer-caption{top:12px;right:12px;left:12px;font-size:13px}.chapter-list{height:300px;max-height:300px}.chapter-list button{padding-inline:8px}.app-footer{padding:8px 20px calc(96px + env(safe-area-inset-bottom,0px))}.mobile-nav{position:fixed;right:0;bottom:0;left:0;z-index:20;display:flex;justify-content:space-around;min-height:72px;padding:8px max(12px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));border-top:1px solid var(--border);background:#fff}.mobile-nav>a,.mobile-nav>button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:48px;padding:2px;color:var(--muted);font-size:12px}.mobile-nav>a[aria-current=page]{color:var(--accent-strong);font-weight:600}.toast{bottom:calc(88px + env(safe-area-inset-bottom,0px))}.connection-error{flex-wrap:wrap}.connection-error>div{min-width:180px}.connection-error button{width:100%}.demo-banner,.setup-banner{gap:8px;padding:12px}.demo-banner>span:nth-child(2){display:block}.demo-banner strong,.demo-detail{display:block}.demo-detail{margin-top:4px}.demo-banner>svg{display:none}.settings-dialog{--dialog-inset: 20px}.saved-empty{padding:36px 20px}.saved-list li{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:start;gap:12px;padding:16px}.saved-mode{grid-column:1;grid-row:1;width:44px;height:44px}.saved-list li>div{display:contents}.saved-list .eyebrow{grid-column:2;grid-row:1;align-self:center}.saved-list li>.icon-button{grid-column:3;grid-row:1}.saved-list h2{grid-column:1 / -1;grid-row:2;margin:0;font-size:16px;line-height:1.6}.saved-list p{grid-column:1 / -1;grid-row:3;margin:0}.saved-list li>.secondary-button{grid-column:1 / -1;grid-row:4;width:100%}}@media(max-width:600px){.player-topline{grid-template-columns:minmax(0,1fr) auto}.play-button{grid-column:1;grid-row:1;justify-self:start}.play-button:only-child{grid-column:1 / -1;justify-self:stretch}.speed-select{grid-column:2;grid-row:1}.player-position{grid-column:1 / -1;grid-row:2}}@media(max-width:430px){.card-heading h2{font-size:17px}.card-heading .text-button{gap:4px;padding-inline:0;font-size:12px}.map-mini-status{flex-basis:100%;text-align:left}.map-card{min-height:320px}.live-map,.diagram-map,.map-unavailable{min-height:260px}.live-map{height:260px}.route-actions>.text-button{font-size:12px}.route-actions>.secondary-button{padding-inline:10px;font-size:13px}.saved-list li{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;padding:12px}.settings-dialog{--dialog-inset: 16px}.connection-list>div{gap:10px}.connection-list dd{max-width:60%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}@media(forced-colors:active){button,a,input,select,.planner-card,.map-card,.preview-card,.route-summary-card,.chapter-card,.saved-list li{border:1px solid CanvasText}.progress-slider{background:CanvasText}.place-dot,.status-dot{forced-color-adjust:none}}.live-roadview img[src$="_1200.jpg"]{width:200%!important;height:200%!important;transform:scale(.5);transform-origin:0 0}
