@import"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap";.map-canvas.svelte-1l59rm1{position:relative;z-index:0;width:100%;height:100%;min-height:320px}.naver-map-surface.svelte-1l59rm1{position:absolute;inset:0;width:100%;height:100%;isolation:isolate}.crossing-draw-overlay.svelte-1l59rm1{position:absolute;inset:0;z-index:6;touch-action:none;cursor:crosshair}.map-zoom.svelte-1l59rm1{position:absolute;right:12px;bottom:48px;z-index:7;background:#fff;border:1px solid #d9e2d9;border-radius:7px;box-shadow:0 2px 8px #203e3420;overflow:hidden;color:#203e34}.map-zoom.svelte-1l59rm1 button:where(.svelte-1l59rm1){display:block;width:36px;height:36px;font-size:22px}.map-zoom.svelte-1l59rm1 button:where(.svelte-1l59rm1)+button:where(.svelte-1l59rm1){border-top:1px solid #e3e8e1}.map-loading.svelte-1l59rm1{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;background:var(--map-loading-bg,#f5f6f2);font-size:13px;text-align:center;color:#203e34}.map-loading.svelte-1l59rm1 button:where(.svelte-1l59rm1){padding:9px 16px;background:#164b3c;color:#fff;border-radius:8px}.timing-editor.svelte-jua1d0{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.timing-state.svelte-jua1d0{font-size:11px;line-height:1.8;padding:10px;background:color-mix(in srgb,var(--green) 8%,transparent);border-radius:8px;margin:10px 0}.timing-card.svelte-jua1d0{padding:14px;border:1px solid var(--line);border-radius:12px;margin:12px 0}.measure-buttons.svelte-jua1d0{margin-top:10px}.recorded-at.svelte-jua1d0{display:block;margin-top:8px;font-size:9px;color:#7a8b7c}.reference-value.svelte-jua1d0{font-size:11px;line-height:1.8;margin-bottom:12px}.measurement-status.svelte-jua1d0{margin:12px 0;overflow-wrap:anywhere}.timing-editor.svelte-jua1d0 details:where(.svelte-jua1d0){font-size:11px;line-height:1.8;margin-top:14px}.timing-editor.svelte-jua1d0 summary:where(.svelte-jua1d0){cursor:pointer}.align-row.svelte-jua1d0{margin-top:12px;flex-wrap:wrap}.color-toggle.svelte-jua1d0{display:flex;gap:4px;padding:4px;background:color-mix(in srgb,var(--green) 8%,transparent);border-radius:10px;margin-bottom:14px}.color-toggle.svelte-jua1d0 button:where(.svelte-jua1d0){flex:1;min-height:44px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:700}.color-toggle.svelte-jua1d0 button.chosen:where(.svelte-jua1d0){background:color-mix(in srgb,var(--green) 12%,transparent);border-color:var(--green)}.color-toggle.svelte-jua1d0 i:where(.svelte-jua1d0){display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.color-toggle.svelte-jua1d0 i.green:where(.svelte-jua1d0){background:#39a76e}.color-toggle.svelte-jua1d0 i.red:where(.svelte-jua1d0){background:#de725e}.color-toggle.svelte-jua1d0 small:where(.svelte-jua1d0){font-size:10px;font-weight:400;margin-left:6px}.start-record.svelte-jua1d0{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.start-record.svelte-jua1d0 .reference-value:where(.svelte-jua1d0){flex:1;min-width:100px;margin:0;font-size:10px}.manual-reference.svelte-jua1d0 label:where(.svelte-jua1d0){margin-top:12px}.measurement-status.svelte-jua1d0{font-size:12px}:root{font-family:Noto Sans KR,sans-serif;color:#203e34;background:#f5f6f2;font-synthesis:none;--green:#164b3c;--line:#e3e8e1}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;background:transparent;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #81c6a2;outline-offset:3px}input,select{width:100%;border:1px solid #d9e2d9;border-radius:9px;padding:10px 11px;background:#fff;color:#203e34}label{display:block;font-size:12px;font-weight:600;margin-bottom:14px}label input{margin-top:7px}label input[type=checkbox]{width:auto;margin:0 6px 0 0;accent-color:#164b3c}h1,h2,h3,p{margin:0}h2{font-size:16px}h3{font-size:13px}.topbar{height:76px;padding:0 32px;display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--green);text-decoration:none;font-weight:800;font-size:24px;letter-spacing:-1px}.brand img{width:34px;height:34px}.brand span{font-size:11px;color:#819188;font-weight:400;letter-spacing:0;margin-left:12px}.header-tools{display:flex;align-items:center;gap:24px}.local-badge{font-size:11px;color:#638070}.icon-button{font-size:23px}.workspace{display:grid;grid-template-columns:420px 1fr;height:calc(100dvh - 76px);min-height:600px}.panel{display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);min-height:0}.intro{padding:25px 28px 22px}.eyebrow{color:#7e988a;font-size:9px;letter-spacing:2px;font-weight:700}h1{font-size:27px;line-height:1.45;letter-spacing:-1.3px;margin:10px 0}.intro p{font-size:11px;color:#8a958d}.tabs{display:flex;margin:0 26px;border-bottom:1px solid var(--line)}.tabs button{flex:1;padding:12px 0;color:#8a958e;font-size:12px}.tabs .active{border-bottom:2px solid var(--green);color:var(--green);font-weight:700}.tabs span{font-size:10px;background:#ecf2ec;border-radius:20px;padding:1px 5px}.panel-body{padding:22px 26px;overflow:auto;flex:1}.panel-footer{padding:15px 26px;font-size:10px;border-top:1px solid var(--line);color:#426353}.panel-footer span{float:right;color:#a0aaa1}.primary,.secondary{border-radius:9px;padding:12px 15px;font-weight:600;font-size:12px}.primary{background:var(--green);color:#fff}.primary:hover{background:#21684f}.secondary{background:#f0f4ee;border:1px solid #e0e8df}.full{width:100%}.small{font-size:10px;padding:7px 10px}.journey{border:1px solid var(--line);padding:14px;border-radius:13px}.endpoint-row{display:flex;align-items:center;gap:10px;min-height:42px}.endpoint-row>button:first-of-type{flex:1;text-align:left;font-size:11px;min-width:0}.endpoint-row .choosing{color:#2b8b5c;font-weight:700}.endpoint-dot{width:8px;height:8px;border:2px solid #3c8c6b;border-radius:50%;flex-shrink:0}.endpoint-dot.finish{background:#3c8c6b}.journey>.primary{margin-top:13px}.departure{display:flex;align-items:center;justify-content:space-between;margin:18px 0;font-size:10px;color:#7b8d7f;gap:8px}.departure label{margin:0;white-space:nowrap}.departure input[type=datetime-local]{width:170px;font-size:10px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:6px 0 15px;gap:8px}.section-heading h2 span{color:#7e9a88;font-size:12px}.section-heading small{font-size:9px;color:#89958b}.route-card{width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:11px;background:#fff}.route-card.selected{border-color:#3f8663;background:#f5f9f2;box-shadow:inset 0 0 0 1px #3f8663}.route-top{display:flex;justify-content:space-between;align-items:center;gap:5px}.route-name{font-weight:600;font-size:12px}.best-badge{font-size:8px;background:#d8ebcd;color:#497139;border-radius:4px;padding:4px 6px}.route-time{font-weight:800;font-size:25px;letter-spacing:-1px;margin-top:9px}.route-time span{font-size:11px;font-weight:400;letter-spacing:0;margin-left:10px;color:#8a9688}.route-breakdown{font-size:10px;color:#6a806e;margin:4px 0 13px}.route-breakdown span{margin:0 6px;color:#bbc5b8}.route-footer{border-top:1px solid #e2e9de;padding-top:10px;display:flex;justify-content:space-between;font-size:10px}.route-footer small{font-size:8px;color:#8b9789;margin-left:4px}.empty-state{text-align:center;padding:34px 5px}.empty-icon{font-size:35px;border-radius:20px;background:#eef3e9;display:inline-block;padding:9px 22px;color:#89a381;margin-bottom:20px}.empty-state h2{font-size:16px}.empty-state p{font-size:11px;color:#8a988e;line-height:1.9;margin:12px 0 24px}.message{position:relative;background:#eff4ea;border:1px solid #dbe6d5;border-radius:9px;padding:12px 27px 12px 12px;font-size:11px;line-height:1.7;margin-bottom:14px}.message>button{position:absolute;right:6px;top:6px}.message.error{background:#fff2ed;border-color:#edcfc2;color:#9c4b36}.sample-label{font-size:10px;background:#fff3dc;color:#987747;border-radius:6px;padding:9px;margin-bottom:15px}.sample-label button{float:right;text-decoration:underline}.help,.footnote{font-size:10px;color:#889689;line-height:1.9;margin:8px 0 15px}.footnote{margin-top:15px}.crossings{margin-top:23px}.crossings>p{font-size:10px;color:#89978c;line-height:1.8;margin:8px 0}.crossing-row{padding:12px 0;border-bottom:1px solid var(--line)}.crossing-row b{font-size:11px}.crossing-row small{display:block;font-size:9px;color:#8c998e;margin:3px 0 8px}.crossing-row select{font-size:10px;padding:7px}.signal-row{display:flex;align-items:center;gap:12px;width:100%;padding:13px 10px;border-bottom:1px solid var(--line);text-align:left;border-radius:8px}.signal-row.selected{background:#eff5ea}.signal-row>span:nth-child(2){flex:1}.signal-row b{font-size:11px}.signal-row small{display:block;font-size:9px;color:#8b9a8e;margin-top:4px}.signal-row strong{font-size:20px}.signal-row strong small{display:inline;font-size:9px;margin-left:3px}.color-dot,.map-legend i{background:#aab2aa;width:10px;height:10px;border-radius:50%;display:inline-block}.color-dot.green,.map-legend i.green{background:#37aa70}.color-dot.red,.map-legend i.red{background:#e36c56}.editor{border-top:1px solid var(--line);padding-top:22px;margin-top:18px}.input-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.phase-pill{font-size:9px;background:#fce8e0;border-radius:15px;padding:6px 9px;color:#ae614e}.phase-pill.green{background:#deefda;color:#4b8255}.sub-heading{margin:25px 0 12px}.observe-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.observe-steps button{background:#f1f5ed;padding:14px 0;border:1px solid #dfe7da;border-radius:8px;font-size:10px}.observe-steps b{display:block;font-size:14px;margin-bottom:5px}.observe-steps .done{background:#dfeeda}.button-pair{display:flex;gap:8px;align-items:center}.button-pair>*{flex:1;text-align:center}.align-row{display:flex;align-items:center;gap:6px;margin:12px 0;font-size:9px}.align-row input{width:65px}.align-row select{width:110px}.align-row span{white-space:nowrap}.measurement-status{font-size:9px;color:#54865d;margin-top:9px;line-height:1.8}.measurement-status button{margin-left:10px;text-decoration:underline}.last-updated{display:block;font-size:9px;color:#8a998d}.text-button{padding:10px 0;font-size:10px}.danger{color:#ae5a43}.delete-confirm{font-size:10px;margin-top:12px;display:flex;gap:10px}.file-label{position:relative;margin:0;cursor:pointer}.file-label input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}.principle-card{background:#f4f6ef;border-radius:12px;padding:16px;margin-top:25px}.principle-card p{font-size:10px;color:#7a8b7c;line-height:1.8;margin-top:9px}.map-area{position:relative;min-width:0;background:#e9eee3}.map-title{position:absolute;top:24px;left:24px;background:#fff;border:1px solid #e6eade;border-radius:11px;padding:14px 19px;font-size:12px;font-weight:600;box-shadow:0 3px 18px #203e3410;pointer-events:none}.map-title small{display:block;font-size:9px;color:#899789;font-weight:400;margin:5px 0 0 16px}.pulse{display:inline-block;background:#578269;width:6px;height:6px;border-radius:50%;margin-right:10px}.map-prompt{position:absolute;top:110px;left:24px;background:#164b3c;color:#fff;border-radius:9px;padding:13px;font-size:11px;max-width:calc(100% - 48px)}.map-prompt button{text-decoration:underline;margin-left:10px}.map-legend{position:absolute;bottom:26px;left:24px;display:flex;gap:14px;background:#fff;border-radius:9px;padding:12px 16px;font-size:9px;box-shadow:0 3px 12px #203e3410}.map-legend i{width:7px;height:7px;margin-right:6px}.map-add{position:absolute;right:25px;top:24px;background:#164b3c;color:#fff;border-radius:9px;padding:14px 18px;font-size:11px;box-shadow:0 4px 18px #164b3c25}.signal-marker{display:flex;align-items:center;gap:6px;background:#fff;border:2px solid #aab2aa;border-radius:22px;padding:6px 10px;box-shadow:0 4px 12px #203e3425;min-width:55px;justify-content:center}.signal-marker .signal-dot{width:9px;height:9px;border-radius:50%;background:#aab2aa}.signal-marker .signal-time{font-weight:800;font-size:12px;color:#758173}.signal-marker[data-color=green]{border-color:#40a56f}.signal-marker[data-color=green] .signal-dot{background:#3dae72}.signal-marker[data-color=green] .signal-time{color:#378d59}.signal-marker[data-color=red]{border-color:#dd7660}.signal-marker[data-color=red] .signal-dot{background:#dc735e}.signal-marker[data-color=red] .signal-time{color:#c5624e}.signal-marker.selected{outline:4px solid #ffffff99;z-index:3}.endpoint-marker{padding:6px 10px;background:#164b3c;border:2px solid white;color:#fff;border-radius:20px;font-size:10px;box-shadow:0 3px 9px #164b3c30}@media(min-width:1600px){.workspace{grid-template-columns:460px 1fr}.panel-body{padding:24px 32px}.intro{padding:30px 32px}.tabs{margin:0 32px}}@media(max-width:760px){.topbar{height:60px;padding:0 16px}.brand{font-size:21px}.brand span{display:none}.local-badge{font-size:9px}.header-tools{gap:13px}.workspace{display:flex;flex-direction:column-reverse;height:auto;min-height:calc(100dvh - 60px)}.map-area{height:42dvh;min-height:290px}.map-title{top:12px;left:12px;padding:10px 12px;font-size:10px}.map-title small{font-size:8px}.map-add{top:12px;right:12px;padding:11px 12px;font-size:10px}.map-legend{bottom:25px;left:12px;padding:9px 11px;font-size:8px;gap:9px}.map-prompt{top:83px;left:12px}.panel{border-right:0}.intro{padding:20px 22px 15px}.intro h1{font-size:23px;line-height:1.4}.intro h1 br{display:none}.eyebrow{font-size:8px}.panel-body{overflow:visible;padding:20px 22px}.tabs{margin:0 22px}.panel-footer{padding:15px 22px}.route-time{font-size:24px}}html[data-theme=dark]{color-scheme:dark;--green:#9dddbb;--line:#34463c;background:#101a16;color:#e2ebe4}html[data-theme=dark] .topbar,html[data-theme=dark] .panel{background:#15241f}html[data-theme=dark] .brand,html[data-theme=dark] .tabs .active{color:#a5dfbe}html[data-theme=dark] .brand span,html[data-theme=dark] .intro p,html[data-theme=dark] .tabs button,html[data-theme=dark] .help,html[data-theme=dark] .footnote,html[data-theme=dark] .last-updated,html[data-theme=dark] .panel-footer span{color:#a6b8ab}html[data-theme=dark] .eyebrow,html[data-theme=dark] .local-badge,html[data-theme=dark] .panel-footer,html[data-theme=dark] .departure,html[data-theme=dark] .section-heading small,html[data-theme=dark] .section-heading h2 span{color:#b1c6b6}html[data-theme=dark] input,html[data-theme=dark] select{background:#1b3027;color:#e1ebe3;border-color:#435b4c}html[data-theme=dark] input::placeholder{color:#a0b2a6}html[data-theme=dark] .primary{background:#8ed3ad;color:#10281b}html[data-theme=dark] .primary:hover{background:#ade8c5}html[data-theme=dark] .secondary,html[data-theme=dark] .tabs span,html[data-theme=dark] .empty-icon{background:#253c30;border-color:#3f5947;color:#d3e6d6}html[data-theme=dark] .endpoint-dot{border-color:#a1dabb}html[data-theme=dark] .endpoint-dot.finish{background:#a1dabb}html[data-theme=dark] .endpoint-row .choosing{color:#a7e0bd}html[data-theme=dark] .route-card{background:#1a2c23}html[data-theme=dark] .route-card.selected{background:#254032;border-color:#8dd4a5;box-shadow:inset 0 0 0 1px #8dd4a5}html[data-theme=dark] .route-time span,html[data-theme=dark] .route-breakdown,html[data-theme=dark] .route-footer small,html[data-theme=dark] .crossings>p,html[data-theme=dark] .crossing-row small,html[data-theme=dark] .signal-row small,html[data-theme=dark] .empty-state p{color:#aec3b2}html[data-theme=dark] .route-footer{border-color:#415949}html[data-theme=dark] .best-badge{background:#355b3a;color:#d0edc7}html[data-theme=dark] .signal-row.selected,html[data-theme=dark] .principle-card{background:#253b2e}html[data-theme=dark] .principle-card p{color:#bed1c1}html[data-theme=dark] .observe-steps button{background:#263b2e;border-color:#456049;color:#e0ebdf}html[data-theme=dark] .observe-steps .done{background:#385b3c}html[data-theme=dark] .measurement-status{color:#b8ddae}html[data-theme=dark] .phase-pill{background:#5d3028;color:#ffd1c2}html[data-theme=dark] .phase-pill.green{background:#31593d;color:#c5f0ca}html[data-theme=dark] .message{background:#283b29;border-color:#496348;color:#dcebd8}html[data-theme=dark] .message.error{background:#452a24;border-color:#865044;color:#ffd4c7}html[data-theme=dark] .danger{color:#ffa991}html[data-theme=dark] .sample-label{background:#443822;color:#f0d9a6}html[data-theme=dark] .map-area{background:#15201b}html[data-theme=dark] .map-canvas canvas{filter:invert(.92) hue-rotate(180deg) saturate(.7) brightness(.85)}html[data-theme=dark] .map-title,html[data-theme=dark] .map-legend{background:#1b3027;border-color:#455b4a;color:#dfede3}html[data-theme=dark] .map-title small{color:#b8c9bb}html[data-theme=dark] .map-add,html[data-theme=dark] .map-prompt,html[data-theme=dark] .endpoint-marker{background:#294d39;color:#e3f1e8}html[data-theme=dark] .signal-marker{background:#1b3027}html[data-theme=dark] .signal-marker .signal-time{color:#d0ddd2}html[data-theme=dark] .signal-marker[data-color=green]{border-color:#66d69b}html[data-theme=dark] .signal-marker[data-color=green] .signal-time{color:#a6ecc7}html[data-theme=dark] .signal-marker[data-color=red]{border-color:#f4977f}html[data-theme=dark] .signal-marker[data-color=red] .signal-time{color:#ffc1b0}html[data-theme=dark] .signal-marker.selected{outline-color:#94c7ac70}html[data-theme=dark] .maplibregl-ctrl-group,html[data-theme=dark] .maplibregl-ctrl-attrib{background:#203b2d;color:#dcebe0}html[data-theme=dark] .maplibregl-ctrl-attrib a{color:#dcebe0}html[data-theme=dark] .maplibregl-ctrl-icon{filter:invert(1)}.signal-marker{display:flex;flex-direction:column;gap:2px;width:68px;min-width:68px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.signal-marker-body{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 8px;background:#fff;border:2px solid #84958c;border-radius:12px;box-shadow:0 3px 9px #162b2540;min-width:66px}.traffic-light-icon{width:17px;height:29px;flex-shrink:0}.light-red,.light-green{fill:#64736b}.signal-marker .signal-time{font-size:16px;line-height:1;font-weight:800;color:#52635a}.signal-unit{font-size:9px;color:#63776a}.crosswalk-frame{display:flex;align-items:center;justify-content:center;width:26px;height:12px}.crosswalk-icon{width:50px;height:25px;transform-origin:center;filter:drop-shadow(0 2px 2px #162b2540)}.crosswalk-road{fill:#354c41;stroke:#fff;stroke-width:2}.signal-marker[data-show-time=false] .signal-time,.signal-marker[data-show-time=false] .signal-unit{display:none}.map-times-toggle{position:absolute;right:25px;top:76px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:11px;box-shadow:0 3px 12px #203e3410}.map-times-toggle[aria-pressed=false]{color:#7c887f}.display-options{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:10px}.display-options label{margin-bottom:8px}.display-options .help{margin:8px 0}.direction-row{display:flex;align-items:center;gap:10px}.direction-row input{flex:1;min-width:0;padding:0;accent-color:#164b3c}.direction-row output{min-width:36px;text-align:right;font-size:12px}.direction-status{font-size:11px;line-height:1.6;color:#6d8375;margin-top:8px}html[data-theme=dark] .map-times-toggle{background:#1b3027;color:#d5e6da}html[data-theme=dark] .direction-status{color:#a9bfaf}@media(max-width:760px){.map-times-toggle{right:12px;top:58px;padding:9px 10px;font-size:10px}}.signal-location-tip{height:7px;width:7px;border-radius:50%;background:#254f3a;outline:2px solid white;box-shadow:0 1px 6px #12352460}.signal-location-label{display:none;white-space:nowrap;border-radius:5px;padding:4px 7px;background:#164b3c;color:#fff;font-size:10px;max-width:210px;overflow:hidden;text-overflow:ellipsis}.signal-marker.selected{outline:0;z-index:5}.signal-marker.selected .signal-location-label{display:block}.signal-marker.selected .crosswalk-road{stroke:#66d497;stroke-width:3}.signal-marker.selected .signal-location-tip{outline:5px solid #4eae7970}.signal-marker[data-color=green],.signal-marker[data-color=red]{border:0}.signal-marker[data-color=green] .signal-marker-body{border-color:#36a574}.signal-marker[data-color=red] .signal-marker-body{border-color:#e07b64}.signal-marker[data-color=green] .light-green{fill:#4de29d}.signal-marker[data-color=red] .light-red{fill:#ff796d}.signal-marker[data-preview=true] .signal-marker-body{border-style:dashed}.signal-marker[data-preview=true] .signal-location-label{display:block;background:#3868a2}.signal-marker[data-preview=true] .crosswalk-road{stroke:#91c8ff}.signal-marker[data-preview=true] .signal-location-tip{background:#428bd2;outline:5px solid #68a9ee70}html[data-theme=dark] .signal-marker{background:transparent;outline:0}html[data-theme=dark] .signal-marker-body{background:#1b3027;border-color:#99b29f}html[data-theme=dark] .signal-marker .signal-time,html[data-theme=dark] .signal-unit{color:#d5e6da}html[data-theme=dark] .signal-location-label{background:#294d39;color:#e3f1e8}html[data-theme=dark] .signal-marker[data-preview=true] .signal-location-label{background:#315a88;color:#e5f2ff}html[data-theme=dark] .signal-marker[data-color=green] .signal-marker-body{border-color:#66d69b}html[data-theme=dark] .signal-marker[data-color=red] .signal-marker-body{border-color:#f4977f}.sheet-controls{display:none}@media(max-width:760px){html,body{height:100%;overflow:hidden}.app-shell{height:100dvh;overflow:hidden;position:relative}.workspace{display:block;height:100%;min-height:0;position:relative}.topbar{position:absolute;top:10px;left:12px;right:12px;z-index:21;height:54px;padding:0 14px;border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 18px #203e3420}.local-badge{display:none}.map-area{position:absolute;inset:0;height:100%;min-height:0}.mobile-sheet{position:absolute;bottom:var(--keyboard-offset,0px);left:0;right:0;z-index:20;height:var(--panel-height);border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;box-shadow:0 -4px 24px #203e341c;padding-bottom:env(safe-area-inset-bottom);transition:height .18s ease;overflow:hidden}.mobile-sheet.dragging{transition:none}.sheet-controls{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:44px;padding:0 12px}.sheet-controls button{height:44px;min-width:44px;font-size:25px}.sheet-drag-handle{flex:1;touch-action:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center}.sheet-drag-handle span{width:40px;height:5px;background:#9aa89f;border-radius:4px;pointer-events:none}.mobile-sheet .intro,.mobile-sheet .panel-footer{display:none}.mobile-sheet .tabs{flex-shrink:0;margin:0 18px;min-height:48px}.mobile-sheet .tabs button{padding:12px 0}.mobile-sheet .panel-body{overflow:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:18px 20px 32px;scroll-padding:16px}.mobile-sheet[data-sheet-level="0"] .panel-body,.map-title{display:none}.map-add{top:78px;right:12px;min-height:44px;padding:12px 14px;font-size:12px}.map-times-toggle{top:78px;left:12px;right:auto;min-height:44px;font-size:11px}.map-prompt{top:130px;left:12px;max-width:calc(100% - 24px);z-index:9}.map-legend{bottom:calc(var(--sheet-height) + 16px);left:12px;padding:8px;font-size:8px;pointer-events:none}.map-area .map-zoom{bottom:calc(var(--sheet-height) + 16px)}}@media(prefers-reduced-motion:reduce){.mobile-sheet{transition:none}}@media(max-width:760px){.workspace:has(.mobile-sheet[data-sheet-level="2"]) .map-legend,.workspace:has(.mobile-sheet[data-sheet-level="2"]) .map-zoom{display:none}}.workspace{position:relative}.active-journey{position:absolute;z-index:22;top:135px;right:25px;padding:10px;background:#fff;color:#164b3c;border-radius:12px;box-shadow:0 2px 12px #203e3420;font-size:11px;display:flex;gap:16px;align-items:center}.active-journey button{font-weight:700;min-height:36px}.managed-signal{padding:12px 0;border-bottom:1px solid var(--line)}@media(max-width:760px){.active-journey{top:78px;left:126px;right:auto;max-width:calc(100% - 238px);min-height:44px;padding:0 9px;z-index:19}.active-journey span{display:none}.timing-editor{margin-top:0!important;border-top:0!important;padding-top:0!important}}html[data-theme=dark] .active-journey{background:#1b3027;color:#d5e6da}
