:root{color:#19382e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--accent:#176b52;--muted:#5e6c65;--border:#d7dfd7;background:#f7f8f4;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,sans-serif}*{box-sizing:border-box}body{margin:0}button,select,input,textarea{font:inherit}button,select{min-height:44px}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}:focus-visible{outline-offset:4px;outline:3px solid #287db0}.app-shell{max-width:760px;margin:0 auto;padding:0 24px}.site-header{justify-content:space-between;align-items:center;gap:16px;padding:28px 0;display:flex}.brand{letter-spacing:-.25px;align-items:center;gap:10px;font-size:15px;font-weight:750;line-height:1.15;display:flex}.brand-icon{flex-shrink:0}.language-picker select{border:1px solid var(--border);color:#19382e;background:#fff;border-radius:12px;max-width:140px;padding:8px 30px 8px 12px;font-size:16px}.home-content{padding:20px 0 0}.intro-labels{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.airport-label{color:var(--accent);letter-spacing:.8px;text-transform:uppercase;font-size:13px;font-weight:750}.preview-label{border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:4px 8px;font-size:12px}.introduction h1{letter-spacing:-1.5px;white-space:pre-line;overflow-wrap:anywhere;margin:24px 0 18px;font-size:clamp(34px,5.8vw,48px);font-weight:750;line-height:1.18}.introduction>p{max-width:480px;color:var(--muted);margin:0;font-size:17px;line-height:1.65}.journey-line{align-items:center;gap:8px;width:100px;margin:30px 0 34px;display:flex}.journey-line span{border:2px solid var(--accent);border-radius:50%;width:10px;height:10px}.journey-line span:last-child{background:var(--accent)}.journey-line i{border-top:2px dashed #9ab6a7;flex:1}.terminal-picker{border:0;min-width:0;margin:0;padding:0}.terminal-picker legend{letter-spacing:-.5px;padding:0;font-size:22px;font-weight:700}.terminal-help{max-width:510px;color:var(--muted);margin:12px 0 20px;font-size:14px;line-height:1.6}.terminal-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.terminal-option{cursor:pointer;position:relative}.terminal-option input{opacity:0;width:1px;height:1px;position:absolute}.terminal-card{border:2px solid var(--border);background:#fff;border-radius:18px;flex-direction:column;gap:10px;height:100%;padding:22px 18px;display:flex;position:relative}.terminal-code{letter-spacing:-1px;font-size:32px;font-weight:750}.terminal-name{color:var(--muted);overflow-wrap:anywhere;font-size:14px;line-height:1.5}.terminal-check{border:1px solid var(--border);color:#0000;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:20px;right:16px}.terminal-option input:checked+.terminal-card{border-color:var(--accent);background:#edf6ef}.terminal-option input:checked+.terminal-card .terminal-check{border-color:var(--accent);background:var(--accent);color:#fff}.terminal-option input:focus-visible+.terminal-card{outline-offset:4px;outline:3px solid #287db0}.terminal-status{min-height:24px;color:var(--accent);margin:14px 0 0;font-size:13px;line-height:1.6}.dataset-card{border:1px solid var(--border);background:#fff;border-radius:16px;margin-top:30px;padding:20px}.dataset-card h2{margin:0 0 10px;font-size:17px;line-height:1.5}.dataset-card>p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.dataset-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0;display:grid}.dataset-counts>div{text-align:center;background:#edf6ef;border-radius:10px;min-width:0;padding:12px 5px}.dataset-counts dt{color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.5}.dataset-counts dd{color:var(--accent);margin:6px 0 0;font-size:25px;font-weight:700}.dataset-dates{margin:0;font-size:12px;line-height:1.6}.dataset-dates>div{flex-wrap:wrap;justify-content:space-between;gap:6px 12px;margin-top:6px;display:flex}.dataset-dates dt{color:var(--muted)}.dataset-dates dd{margin:0}.dataset-card>.freshness-warning{color:#765418;background:#fff3d8;border-radius:9px;margin-top:16px;padding:12px}.dataset-sources{color:var(--muted);margin-top:16px;font-size:13px;line-height:1.6}.dataset-sources summary{cursor:pointer;min-height:44px;padding:12px 0;display:list-item}.dataset-sources ul{margin:8px 0 0;padding-left:18px}.dataset-sources li{overflow-wrap:anywhere;margin-top:12px}.dataset-sources li span{font-size:12px;display:block}.dataset-sources a{color:var(--accent)}.retry-button{border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:10px;margin-top:14px;padding:10px 16px}.dataset-recovery{border:1px solid var(--border);overflow-wrap:anywhere;background:#fff;border-radius:14px;margin:0 0 28px;padding:16px;font-size:13px;line-height:1.65}.dataset-recovery h2{margin:0 0 8px;font-size:16px}.dataset-recovery p{margin:6px 0 0}.dataset-recovery .recovery-warning{color:#765418;background:#fff3d8;border-radius:8px;padding:8px 10px}.dataset-recovery .offline-help,.offline-shell-status{color:var(--muted)}.destination-card{border:1px solid var(--border);background:#fff;border-radius:18px;margin-top:30px;padding:20px}.destination-card h2{letter-spacing:-.5px;margin:0 0 18px;font-size:22px;line-height:1.4}.destination-methods{background:#f1f3ed;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:22px;padding:4px;display:grid}.destination-methods button{min-width:0;color:var(--muted);overflow-wrap:anywhere;background:0 0;border:1px solid #0000;border-radius:9px;padding:10px 8px;font-size:13px;line-height:1.5}.destination-methods button[aria-pressed=true]{color:var(--accent);background:#fff;border-color:#b7cbbd;font-weight:700}.destination-card label{margin-bottom:10px;font-size:14px;font-weight:650;display:block}.destination-card input,.destination-card textarea{color:#19382e;background:#fff;border:1px solid #b7cbbd;border-radius:10px;width:100%;min-height:48px;padding:12px;font-size:16px;line-height:1.5}.destination-card textarea{resize:vertical;overflow-wrap:anywhere;display:block}.field-help{color:var(--muted);overflow-wrap:anywhere;margin:10px 0 0;font-size:13px;line-height:1.7}.results-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;margin:22px 0 12px;display:flex}.results-heading h3{margin:0;font-size:15px}.results-heading span{color:var(--muted);font-size:12px}.destination-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.destination-option{border:1px solid var(--border);color:#19382e;text-align:left;overflow-wrap:anywhere;background:#fff;border-radius:11px;flex-direction:column;align-items:flex-start;gap:5px;width:100%;height:100%;padding:14px;line-height:1.5;display:flex}.destination-option:hover{background:#f4f8f3;border-color:#95b5a3}.destination-option strong{font-size:15px;font-weight:650}.option-type{color:var(--accent);font-size:11px;font-weight:650}.option-korean,.option-code{color:var(--muted);font-size:12px}.destination-notice{color:#665332;overflow-wrap:anywhere;background:#fff8e9;border:1px solid #e2d8be;border-radius:11px;margin:14px 0 0;padding:14px;font-size:13px;line-height:1.7}.destination-notice p{margin:0 0 10px}.destination-notice .link-name-hint{color:var(--muted)}.destination-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.primary-button,.secondary-button{border:1px solid var(--accent);overflow-wrap:anywhere;border-radius:10px;max-width:100%;min-height:44px;padding:12px 16px;font-size:14px;font-weight:650;line-height:1.5}.primary-button{background:var(--accent);color:#fff}.secondary-button{color:var(--accent);background:#fff}.destination-summary{background:#f4f8f3;border:1px solid #b7cbbd;border-radius:13px;margin-top:22px;padding:18px}.destination-summary h3{color:var(--accent);margin:0 0 14px;font-size:14px}.destination-name{overflow-wrap:anywhere;margin:0;font-size:23px;font-weight:700;line-height:1.4}.destination-korean{margin:8px 0 0;font-size:15px}.destination-coordinates{overflow-wrap:anywhere;margin:12px 0 0;font-size:14px}.location-link{width:fit-content;max-width:100%;min-height:44px;color:var(--accent);overflow-wrap:anywhere;margin-top:12px;padding:10px 0;font-size:13px;line-height:1.7;display:block}.confirm-destination{width:100%;margin-top:14px}.text-button{color:var(--accent);background:0 0;border:0;padding:10px 0;font-size:13px;text-decoration:underline;display:block}.destination-confirmed{overflow-wrap:anywhere;background:#e4f0e7;border-radius:10px;margin-top:14px;padding:14px;font-size:14px;line-height:1.6}.destination-confirmed p{color:var(--muted);margin:8px 0 0;font-size:13px}.bus-results{margin-top:30px;scroll-margin-top:20px}.bus-results>h2{letter-spacing:-.5px;margin:0 0 18px;scroll-margin-top:20px;font-size:24px;line-height:1.4}.bus-results>h2:focus{outline:none}.bus-journey-card{border:2px solid var(--accent);background:#fff;border-radius:20px;padding:24px}.bus-choice-label{color:var(--accent);background:#e4f0e7;border-radius:7px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-block}.bus-core{grid-template-columns:minmax(120px,.65fr) minmax(0,1.35fr);gap:24px;margin-top:20px;display:grid}.journey-step{color:var(--muted);margin:0 0 10px;font-size:13px;line-height:1.6}.bus-number{color:var(--accent);letter-spacing:-2px;overflow-wrap:anywhere;margin:0;font-size:58px;font-weight:800;line-height:1.1}.drop-off-core h3{letter-spacing:-.5px;overflow-wrap:anywhere;margin:0;font-size:26px;line-height:1.35}.bus-stop-korean{overflow-wrap:anywhere;margin:10px 0 0;font-size:16px;line-height:1.6}.journey-mode{overflow-wrap:anywhere;margin:22px 0 0;font-size:14px;font-weight:650;line-height:1.6}.journey-facts{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;margin:22px 0 0;padding-top:20px;display:grid}.journey-facts>div{min-width:0}.journey-facts dt{color:var(--muted);font-size:12px;line-height:1.6}.journey-facts dd{overflow-wrap:anywhere;margin:6px 0 0;font-size:17px;font-weight:700;line-height:1.5}.journey-facts .departure-fact{background:#edf6ef;border-radius:10px;grid-column:1/-1;padding:14px}.departure-fact dd{color:var(--accent);font-size:24px}.journey-warning{color:#765418;overflow-wrap:anywhere;background:#fff3d8;border-radius:10px;margin-top:16px;padding:12px;font-size:13px;line-height:1.7}.journey-warning p{margin:0}.journey-warning p+p{margin-top:6px}.journey-source{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:18px;font-size:12px;line-height:1.6;display:flex}.journey-source a{min-height:44px;color:var(--accent);padding:12px 0}.bus-alternatives{margin-top:24px}.bus-alternatives h3{margin:0;font-size:17px}.bus-stop-group{border:1px solid var(--border);background:#f1f3ed;border-radius:14px;margin-top:18px;padding:16px}.candidate-stop-name{overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:650;line-height:1.6}.bus-candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.bus-candidate{border:2px solid var(--border);color:#19382e;text-align:left;overflow-wrap:anywhere;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;width:100%;height:100%;padding:14px;font-size:13px;line-height:1.6;display:flex}.bus-candidate strong{color:var(--accent);font-size:19px}.bus-candidate[aria-pressed=true]{border-color:var(--accent);background:#edf6ef}.candidate-chosen{color:var(--accent);font-weight:700}.bus-route-details{margin-top:24px}.bus-route-details>h3{margin:0 0 14px;font-size:17px}.bus-detail-panel{border:1px solid var(--border);background:#fff;border-radius:14px;margin-top:10px}.bus-detail-panel>summary{min-height:48px;color:var(--accent);overflow-wrap:anywhere;cursor:pointer;padding:16px;font-size:15px;font-weight:700;line-height:1.6}.bus-detail-panel[open]>summary{border-bottom:1px solid var(--border)}.bus-detail-content{padding:16px}.detail-context{overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:700;line-height:1.7}.bus-ticket-route{background:#fff;border-radius:14px;margin-top:24px;padding:16px}.bus-ticket-route>h4{color:var(--accent);margin:0;font-size:18px;line-height:1.5}.ticket-bus-number{color:#19382e;overflow-wrap:anywhere;margin:12px 0 4px;font-size:clamp(28px,7vw,38px);font-weight:800;line-height:1.2}.ticket-route-content>.detail-context{color:var(--muted);font-size:14px;font-weight:500}.ticket-drop-off{overflow-wrap:anywhere;background:#edf8ec;border-radius:10px;margin:18px 0;padding:12px}.ticket-drop-off>h5{color:var(--accent);margin:0;font-size:16px;line-height:1.5}.ticket-destination{color:#19382e;align-items:baseline;gap:10px;margin:4px 0 0;font-size:23px;font-weight:750;line-height:1.4;display:flex}.ticket-destination>span{color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:30px}.ticket-checklist{align-items:flex-start;gap:10px;margin-top:0;padding:12px;display:flex}.ticket-notice-icon{flex-shrink:0}.ticket-checklist>div{min-width:0}.ticket-checklist h5{color:#19382e;margin:0;font-size:16px;line-height:1.5}.ticket-checklist p{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.6}.service-day-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.service-day-options button{border:1px solid var(--border);min-width:0;color:var(--muted);overflow-wrap:anywhere;background:#fff;border-radius:9px;padding:10px 8px;font-size:13px;line-height:1.6}.service-day-options button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#edf6ef;font-weight:700}.bus-timetable{border-collapse:collapse;table-layout:fixed;text-align:left;width:100%;margin-top:16px;font-size:14px}.bus-timetable th:first-child{width:48px}.bus-timetable th,.bus-timetable td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 6px}.bus-timetable thead th{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.bus-timetable tbody th{color:var(--accent);font-variant-numeric:tabular-nums}.timetable-minutes{flex-wrap:wrap;gap:6px;display:flex}.timetable-minutes time{font-variant-numeric:tabular-nums;text-align:center;background:#edf6ef;border-radius:6px;min-width:32px;padding:6px;display:inline-block}.saved-ticketing,.ticket-steps li,.kiosk-observation{overflow-wrap:anywhere}.ticket-steps{margin:12px 0 0;padding-left:24px}.ticket-steps li{margin-top:16px;padding-left:4px}.ticket-steps li::marker{color:var(--accent);font-weight:700}.ticket-checklist>h4{margin:0;font-size:16px;line-height:1.6}.ticket-steps h5,.kiosk-observation h5{margin:0;font-size:14px;line-height:1.6}.ticket-steps p,.kiosk-observation p{margin:8px 0 0;font-size:14px;line-height:1.7}.ticket-steps .ticket-value,.kiosk-observation .ticket-value{font-size:20px;font-weight:700}.kiosk-observation{border:1px solid var(--border);background:#f4f8f3;border-radius:10px;margin-top:18px;padding:14px}.route-stop-list{margin:0;padding:0;list-style:none}.route-stop{border-top:1px solid var(--border);overflow-wrap:anywhere;grid-template-columns:38px minmax(0,1fr);gap:12px;margin:0;padding:12px 6px;display:grid}.route-stop-ordinal{color:#19382e;font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal;font-size:26px;font-weight:750;line-height:1.4}.route-stop-names{min-width:0;position:relative}.route-stop h5{color:#19382e;margin:0;font-size:15px;font-weight:700;line-height:1.5}.route-stop-secondary,.route-stop-hint{color:var(--muted);margin:3px 0 0;font-size:14px;line-height:1.5}.route-stop-name-link{min-height:44px;color:inherit;text-decoration:none;display:block}.route-stop-name-link:hover h5{text-decoration:underline}.selected-drop-off{background:#edf8ec;border-top-color:#0000;border-radius:10px;grid-template-columns:48px minmax(0,1fr);padding:14px 6px}.selected-drop-off .route-stop-ordinal{color:var(--accent);align-self:center;font-size:36px}.selected-drop-off .location-link{margin:4px 0 0;padding:10px 0;font-size:14px}.selected-stop-identity{flex-wrap:wrap;align-items:center;gap:0 8px;display:flex}.selected-stop-text{flex:140px;min-width:0}.selected-stop-identity .location-link{flex-shrink:0}.route-stop-list[data-locale=ko] .selected-stop-text{flex-basis:98px}.route-stop-list[data-locale=ko] .selected-stop-text h5{font-size:14px}.route-stop-list[data-locale=ko] .route-stop-names:has(.boarding-stop-label) h5{padding-right:70px}.route-stop-list[data-locale=ko] .boarding-stop-label{margin:0;position:absolute;top:0;right:0}.drop-off-label,.boarding-stop-label{border-radius:14px;width:fit-content;margin:0 0 6px;padding:3px 8px;font-size:12px;font-weight:700;line-height:1.5;display:inline-block}.drop-off-label{color:#fff;background:var(--accent)}.boarding-stop-label{color:var(--accent);background:#edf8ec;margin:6px 0 0}@media (width<=560px){.bus-core{grid-template-columns:1fr;gap:24px}.bus-journey-card{padding:18px}.bus-number{font-size:64px}.bus-candidates{grid-template-columns:1fr}}.location-map{border:1px solid var(--border);background:#fff;border-radius:18px;min-width:0;margin:22px 0;padding:18px}.location-map-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.location-map-heading h3{margin:0;font-size:19px}.location-map-heading button{flex-shrink:0;margin:0}.location-map-counts{color:var(--muted);margin:12px 0;font-size:13px}.location-map-display{border:1px solid var(--border);border-radius:12px;position:relative;overflow:hidden}.location-map-display[hidden]{display:none}.location-map-canvas{width:100%;height:360px}.location-map-zoom{gap:3px;display:grid;position:absolute;top:10px;right:10px}.location-map-zoom button{width:44px;height:44px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #b7cbbd;border-radius:7px;padding:0;font-size:24px}.location-map-legend{flex-wrap:wrap;gap:8px 15px;margin:14px 0 8px;padding:0;font-size:12px;list-style:none;display:flex}.location-map-legend li{align-items:center;gap:6px;display:flex}.location-map-legend i{border-radius:50%;flex-shrink:0;width:10px;height:10px}.map-stop-dot{background:#397bad}.map-place-dot{background:#b47120}.map-dropoff-dot{background:#176b52}.map-destination-dot{background:#8652a1}.location-map-actions{flex-wrap:wrap;gap:8px;margin:12px 0 16px;display:flex}.location-map-actions button{flex:130px;margin:0}.location-map-select-label{margin:12px 0 6px;font-size:14px;font-weight:650;display:block}.location-map select{width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;background:#fff;border:1px solid #b7cbbd;border-radius:9px;padding:10px;font-size:16px;display:block}.location-map-inspected{overflow-wrap:anywhere;background:#f1f5ee;border-radius:10px;margin-top:12px;padding:13px}.location-map-inspected p{margin:5px 0 0;font-size:13px;line-height:1.6}.location-popup{color:#19382e;overflow-wrap:anywhere;font:13px/1.5 system-ui,sans-serif}.location-popup strong{margin-right:32px;font-size:14px;display:block}.location-popup p{margin:4px 0 0}.location-map .maplibregl-popup-content{border-radius:9px;padding:12px}.location-map .maplibregl-popup-close-button{width:44px;height:44px;font-size:20px}.location-map .maplibregl-ctrl-attrib{overflow-wrap:anywhere;border-radius:4px;max-width:calc(100% - 10px);margin:0 5px 5px 0;padding:2px 5px;font-size:10px;line-height:1.5}.location-map .maplibregl-ctrl-bottom-right{max-width:100%}@media (width<=400px){.location-map{padding:14px}.location-map-canvas{height:320px}}.preparation-card{border:1px solid var(--border);background:#f1f3ed;border-radius:16px;align-items:flex-start;gap:14px;margin-top:30px;padding:20px;display:flex}.preparation-mark{width:30px;height:30px;color:var(--accent);border:1px solid #b7cbbd;border-radius:9px;flex-shrink:0;place-items:center;font-size:22px;display:grid}.preparation-card h2{margin:2px 0 8px;font-size:16px;line-height:1.5}.preparation-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.site-footer{color:var(--muted);text-align:center;padding:30px 0 34px;font-size:12px}.error-page{max-width:520px;margin:15vh auto;padding:24px}.error-page h1{font-size:28px}.error-page p{color:var(--muted);line-height:1.6}.error-page button{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:10px 18px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=380px){.app-shell{padding:0 18px}.site-header{gap:10px}.brand{font-size:14px}.terminal-card{padding:20px 14px}.terminal-check{right:12px}.destination-card{padding:16px}.destination-options{grid-template-columns:1fr}}@media (width>=640px){.app-shell{padding:0 40px}.site-header{padding-top:40px}.home-content{padding-top:32px}.terminal-card{padding:24px}}
