:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,select{font:inherit}.app-shell{--space-1:8px;--space-2:12px;--space-3:16px;--space-4:24px;--space-5:32px;--border-color:#dbe2ea;--muted-color:#64748b;--primary-color:#2563eb;width:min(1180px,100% - 48px);margin:0 auto;padding:64px 0}.app-header{margin-bottom:var(--space-5)}.app-header h1{margin:0 0 8px;font-size:32px}.app-header p{color:var(--muted-color);margin:0;font-size:17px}.app-content,.trip-form{gap:var(--space-4);display:grid}.page-card,.car-estimate-result,.train-estimate-result,.express-bus-estimate-result,.transport-comparison-summary{min-width:0;padding:var(--space-5);border:1px solid var(--border-color);background:#fff;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.trip-loader{padding:var(--space-4);background:#fbfdff}.section-heading{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.section-heading.compact{margin-bottom:var(--space-3);display:block}.section-heading h2{margin:0;font-size:24px}.section-heading p{margin:var(--space-1) 0 0;color:var(--muted-color);line-height:1.5}.section-heading.compact h2{font-size:18px}.section-heading.compact p{font-size:14px}.section-step{color:#1d4ed8;background:#eff6ff;border-radius:50%;flex:0 0 32px;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.trip-loader-controls{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.trip-loader-controls label{font-weight:600}.trip-loader-controls input,.trip-loader-controls button{width:100%;min-height:42px;font:inherit;border-radius:8px}.trip-loader-controls input{border:1px solid #cbd5e1;min-width:0;padding:0 12px}.trip-loader-controls input:focus{border-color:#2563eb;outline:2px solid #2563eb33}.secondary-button{color:#334155;cursor:pointer;background:#fff;border:1px solid #94a3b8;padding:0 16px;font-weight:700}.secondary-button:hover:not(:disabled){background:#f8fafc;border-color:#475569}.secondary-button:focus-visible,.result-restore-error button:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.secondary-button:disabled{color:#64748b;cursor:not-allowed;background:#f1f5f9;border-color:#cbd5e1}.status-box{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);overflow-wrap:anywhere;border:1px solid #0000;border-radius:8px;font-size:14px;line-height:1.5}.status-info{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.status-box p{margin:0}.status-box p+p{margin-top:4px;font-weight:700}.status-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.status-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.status-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.travel-conditions,.calculation-section,.save-workflow-section{padding:var(--space-5)}.condition-group,.car-selector{min-width:0;padding-top:var(--space-4);border-top:1px solid #e2e8f0}.condition-group+.condition-group,.condition-group+.car-selector,.car-selector+.condition-group{margin-top:var(--space-4)}.condition-group h3,.car-selector h3{margin:0 0 var(--space-3);font-size:18px}.car-estimate-result>h3,.train-estimate-result>h3,.express-bus-estimate-result>h3,.transport-comparison-summary h2,.result-save-panel>h3,.result-selection-panel>h3{margin:0 0 var(--space-4);font-size:22px}.select-grid,.form-grid{gap:var(--space-3);display:grid}.select-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.location-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.trip-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.passenger-field{max-width:260px}.location-search{gap:8px;display:grid}.location-search>label{font-weight:600}.location-search-controls{grid-template-columns:1fr auto;gap:10px;display:grid}.location-search-controls input{color:#0f172a;width:100%;min-width:0;min-height:44px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:0 12px}.location-search-controls input:focus{border-color:#2563eb;outline:2px solid #2563eb33}.location-search-controls button{color:#2563eb;cursor:pointer;background:#fff;border:1px solid #2563eb;border-radius:8px;min-width:72px;min-height:44px;padding:0 16px;font-weight:700}.location-search-controls button:hover:not(:disabled){background:#eff6ff}.location-search-controls button:disabled{color:#94a3b8;cursor:not-allowed;background:#f8fafc;border-color:#cbd5e1}.location-results{gap:8px;margin:4px 0 0;padding:0;list-style:none;display:grid}.location-results button{color:#0f172a;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:8px;gap:4px;width:100%;padding:12px 14px;display:grid}.location-results button:hover,.location-results button:focus-visible{background:#eff6ff;border-color:#2563eb;outline:none}.location-results span,.selected-location span{color:#64748b}.selected-location{background:#f0fdf4;border-radius:8px;gap:4px;margin-top:4px;padding:14px;display:grid}.selected-location h3{color:#166534;margin:0 0 4px;font-size:15px}.selection-complete{background:#dcfce7;border-radius:999px;justify-self:start;margin-bottom:2px;padding:3px 8px;font-size:12px;font-weight:800;color:#166534!important}.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.select-grid label,.form-grid label{gap:8px;font-weight:600;display:grid}.select-grid select,.form-grid input{color:#0f172a;width:100%;min-height:44px;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:0 12px}.select-grid select:focus,.form-grid input:focus{border-color:#2563eb;outline:2px solid #2563eb33}.select-grid select:disabled{color:#94a3b8;cursor:not-allowed;background:#f1f5f9}.status-message,.error-message{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);overflow-wrap:anywhere;border-radius:8px;font-size:14px;line-height:1.5}.status-message{color:#475569;background:#f8fafc}.error-message{color:#b91c1c;background:#fef2f2}.form-message{border-radius:8px;margin:0;padding:16px 18px}.form-message.error-message{background:#fef2f2}.saved-result-workflow{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid #e2e8f0;display:grid}.result-save-panel,.result-selection-panel{min-width:0;padding:var(--space-4);border:1px solid var(--border-color);background:#f8fafc;border-radius:10px}.result-save-description{color:#64748b;margin:-12px 0 20px}.result-save-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.result-save-action{gap:8px;display:grid}.result-save-button{color:#fff;width:100%;min-height:46px;font:inherit;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:8px;padding:10px 18px;font-weight:700;line-height:1.35}.result-save-button:hover:not(:disabled){background:#1d4ed8}.result-save-button:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.result-save-button:disabled{color:#64748b;cursor:not-allowed;background:#f1f5f9;border-color:#cbd5e1}.result-save-hint,.result-save-message{overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.5}.result-save-hint{color:#64748b}.result-save-hint.success{color:#166534;font-weight:700}.result-save-message.success{color:#166534}.result-save-message.error{color:#b91c1c}.result-restore-status{color:#475569;margin:16px 0 0;font-size:14px}.result-restore-error{color:#b91c1c;overflow-wrap:anywhere;background:#fef2f2;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px;font-size:14px;display:flex}.result-restore-error p{margin:0}.result-restore-error button{color:#b91c1c;min-height:36px;font:inherit;cursor:pointer;background:#fff;border:1px solid #b91c1c;border-radius:6px;flex:none;padding:0 12px;font-weight:700}.result-selection-description{color:#64748b;margin:-12px 0 20px}.current-selection{color:#166534;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;margin:0 0 16px;padding:12px 14px;font-weight:700}.selection-empty{color:#475569;background:#fff;border:1px solid #dbe2ea;border-radius:8px;margin:0 0 16px;padding:12px 14px}.result-selection-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.result-selection-action{gap:8px;display:grid}.result-selection-button{color:#2563eb;width:100%;min-height:46px;font:inherit;cursor:pointer;background:#fff;border:1px solid #2563eb;border-radius:8px;padding:10px 18px;font-weight:700;line-height:1.35}.result-selection-button:hover:not(:disabled){background:#eff6ff}.result-selection-button:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.result-selection-button.selected{color:#166534;background:#f0fdf4;border-color:#16a34a}.result-selection-button:disabled:not(.selected){color:#64748b;cursor:not-allowed;background:#f1f5f9;border-color:#cbd5e1}.result-selection-button.selected:disabled{cursor:default}.result-selection-hint,.result-selection-error{overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.5}.result-selection-hint{color:#64748b}.result-selection-error{color:#b91c1c;margin-top:16px}.calculation-actions{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.calculation-guide{margin:0 0 var(--space-3);color:var(--muted-color)}.calculation-option{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-content:start;gap:10px;min-width:0;padding:16px;display:grid}.calculation-option h3,.calculation-option p{margin:0}.calculation-option h3{font-size:17px}.calculation-option>p:not(.calculation-error){color:#64748b;min-height:42px;font-size:14px;line-height:1.5}.calculation-error{color:#b91c1c;overflow-wrap:anywhere;font-size:14px;line-height:1.5}.trip-save-action{justify-items:start;gap:10px;display:grid}.trip-save-action .save-button{width:min(100%,320px)}.trip-save-action .status-message{width:min(100%,640px);margin-top:0}.calculate-button,.save-button{cursor:pointer;border-radius:8px;width:100%;min-height:48px;padding:12px 20px;font-weight:700;line-height:1.35}.calculate-button{color:#fff;background:#2563eb;border:1px solid #2563eb}.calculate-button:hover:not(:disabled){background:#1d4ed8}.save-button{color:#fff;background:#2563eb;border:1px solid #2563eb}.save-button:hover:not(:disabled){background:#1d4ed8}.calculate-button:focus-visible,.save-button:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.calculate-button:disabled,.save-button:disabled{color:#fff;cursor:not-allowed;background:#94a3b8;border-color:#94a3b8}.detail-results-section{gap:var(--space-4);display:grid}.detail-results-section>.section-heading{margin:var(--space-1) 0 0}.detail-result-list{gap:var(--space-4);display:grid}.estimate-car{gap:4px;margin-bottom:24px;display:grid}.estimate-car strong{font-size:20px}.estimate-car span,.core-metrics dt,.cost-breakdown dt{color:#64748b}.cost-breakdown{gap:12px;margin:0;display:grid}.core-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.core-metrics div{background:#f8fafc;border:1px solid #dbeafe;border-radius:10px;min-width:0;padding:18px}.core-metrics .primary-metric{background:#eff6ff;border-color:#93c5fd}.core-metrics dt{margin-bottom:8px;font-size:14px}.core-metrics dd{color:#0f172a;overflow-wrap:anywhere;margin:0;font-size:21px;font-weight:800}.core-metrics .primary-metric dd{color:#1d4ed8}.cost-breakdown div{justify-content:space-between;gap:16px;display:flex}.cost-breakdown dd{text-align:right;margin:0;font-weight:700}.route-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.route-detail{background:#f8fafc;border-radius:8px;padding:16px}.route-detail h4{margin:0 0 10px;font-size:16px}.route-detail p{color:#475569;margin:4px 0 0}.cost-breakdown{border-top:1px solid #e2e8f0;padding-top:20px}.cost-breakdown .total-cost{color:#1d4ed8;background:#eff6ff;border-radius:8px;margin-top:4px;padding:16px;font-size:18px}.cost-breakdown .total-cost dt{color:inherit;font-weight:700}.selected-stations{background:#f8fafc;border-radius:8px;gap:6px;margin-bottom:24px;padding:18px;display:grid}.selected-stations h4,.train-detail h4,.train-breakdown h4{margin:0;font-size:16px}.selected-stations strong{margin:4px 0;font-size:20px}.selected-stations span{color:#64748b;font-size:14px}.train-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.train-detail{border:1px solid #e2e8f0;border-radius:8px;padding:18px}.train-name{color:#1d4ed8;margin-top:10px;display:block}.train-timeline{gap:6px;margin:18px 0;display:grid}.train-timeline div{justify-content:space-between;gap:12px;display:flex}.train-direction{color:#94a3b8}.train-detail-list,.train-summary-grid,.train-breakdown dl{gap:10px;margin:0;display:grid}.train-detail-list div,.train-summary-grid div,.train-breakdown dl div{justify-content:space-between;gap:16px;display:flex}.train-detail-list dt,.train-summary-grid dt,.train-breakdown dt{color:#64748b}.train-detail-list dd,.train-summary-grid dd,.train-breakdown dd{text-align:right;margin:0;font-weight:700}.train-fare-highlight{color:#1d4ed8;background:#eff6ff;border-radius:8px;gap:6px;margin-bottom:24px;padding:20px;display:grid}.train-fare-highlight span{font-weight:700}.train-fare-highlight strong{font-size:26px}.train-fare-highlight small{color:#475569}.train-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}.train-summary-grid div{background:#f8fafc;border-radius:8px;gap:6px;padding:14px;display:grid}.train-summary-grid dd{text-align:left}.train-breakdown{border-top:1px solid #e2e8f0;padding-top:20px}.train-breakdown h4{margin-bottom:14px}.selected-terminals{background:#f8fafc;border-radius:8px;gap:6px;margin-bottom:24px;padding:18px;display:grid}.selected-terminals h4,.express-bus-detail h4,.express-bus-breakdown h4{margin:0;font-size:16px}.selected-terminals strong{margin:4px 0;font-size:20px}.selected-terminals span{color:#64748b;font-size:14px}.express-bus-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.express-bus-detail{border:1px solid #e2e8f0;border-radius:8px;padding:18px}.express-bus-grade{color:#1d4ed8;margin-top:10px;display:block}.express-bus-timeline{gap:6px;margin:18px 0;display:grid}.express-bus-timeline div{justify-content:space-between;gap:12px;display:flex}.express-bus-direction{color:#94a3b8}.express-bus-detail-list,.express-bus-summary-grid,.express-bus-breakdown dl{gap:10px;margin:0;display:grid}.express-bus-detail-list div,.express-bus-summary-grid div,.express-bus-breakdown dl div{justify-content:space-between;gap:16px;display:flex}.express-bus-detail-list dt,.express-bus-summary-grid dt,.express-bus-breakdown dt{color:#64748b}.express-bus-detail-list dd,.express-bus-summary-grid dd,.express-bus-breakdown dd{text-align:right;margin:0;font-weight:700}.express-bus-fare-highlight{color:#1d4ed8;background:#eff6ff;border-radius:8px;gap:6px;margin-bottom:24px;padding:20px;display:grid}.express-bus-fare-highlight span{font-weight:700}.express-bus-fare-highlight strong{font-size:26px}.express-bus-fare-highlight small{color:#475569}.express-bus-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}.express-bus-summary-grid div{background:#f8fafc;border-radius:8px;gap:6px;padding:14px;display:grid}.express-bus-summary-grid dd{text-align:left}.express-bus-breakdown{border-top:1px solid #e2e8f0;padding-top:20px}.express-bus-breakdown h4{margin-bottom:14px}.comparison-heading{margin-bottom:20px}.comparison-heading h2{margin-bottom:8px}.comparison-heading p{color:#64748b;margin:0}.comparison-card-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.comparison-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-content:start;gap:16px;min-width:0;padding:18px;display:grid}.comparison-card h3{color:#1d4ed8;margin:0;font-size:18px}.comparison-card dl{gap:14px;margin:0;display:grid}.comparison-card dl div{gap:4px;display:grid}.comparison-card dt{color:#64748b;font-size:14px}.comparison-card dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:700}.comparison-card .comparison-cost{color:#0f172a;font-size:20px}.comparison-cost-scope{color:#475569;border-top:1px solid #e2e8f0;margin:0;padding-top:14px;font-size:13px;line-height:1.5}.comparison-notice{color:#854d0e;overflow-wrap:anywhere;background:#fefce8;border-radius:8px;margin:18px 0 0;padding:14px 16px;font-size:14px;line-height:1.5}.express-bus-result-heading,.comparison-card-heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.express-bus-result-heading{margin-bottom:20px}.express-bus-result-heading h3,.comparison-card-heading h3{margin:0}.express-bus-result-heading h3{font-size:22px}.data-badge{border-radius:999px;align-items:center;min-height:26px;padding:4px 9px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.data-badge.actual{color:#166534;background:#dcfce7}.data-badge.estimated{color:#92400e;background:#fef3c7}.confidence-label{color:#475569;font-size:13px;font-weight:700}.express-bus-estimate-result.estimated{border-color:#fbbf24}.prediction-warning{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-bottom:20px;padding:16px;line-height:1.55}.prediction-warning p{margin:6px 0 0}.express-bus-fare-highlight.estimated{color:#92400e;background:#fffbeb}.selected-terminals.estimated{background:#fffbeb}.express-bus-prediction-detail{background:#fffdf5;border:1px solid #fde68a;border-radius:8px;padding:18px}.express-bus-prediction-detail h4{margin:0;font-size:17px}.prediction-grade{color:#92400e;margin:8px 0 16px;font-size:14px;font-weight:700}.prediction-detail-list{gap:10px;margin:0;display:grid}.prediction-detail-list div{justify-content:space-between;gap:16px;display:flex}.prediction-detail-list dt{color:#64748b}.prediction-detail-list dd{text-align:right;margin:0;font-weight:700}.prediction-sample-summary{background:#f8fafc;border-radius:8px;margin-bottom:24px;padding:18px}.prediction-sample-summary h4,.prediction-sample-summary p{margin:0}.prediction-sample-summary p{color:#475569;margin-top:8px}.access-toll-note{color:#64748b;margin:14px 0 0;font-size:13px}.comparison-card.estimated{background:#fffbeb;border-color:#fbbf24}.comparison-cost-range{color:#92400e;font-size:13px;font-weight:600}.comparison-notice.estimated-warning{color:#78350f;background:#fffbeb;margin-top:10px}.result-save-hint.prediction-save-blocked{color:#92400e;font-weight:700}.car-detail{border-top:1px solid #e2e8f0;margin-top:28px;padding-top:24px}.car-detail h4{margin:0 0 16px;font-size:18px}.car-detail dl{gap:10px;margin:0;display:grid}.car-detail dl div{grid-template-columns:140px 1fr;gap:16px;display:grid}.car-detail dt{color:#64748b}.car-detail dd{margin:0;font-weight:600}@media (width<=768px){.app-shell{width:min(100% - 24px,1180px);padding:32px 0}.app-header{margin-bottom:24px}.app-header h1{font-size:28px}.app-header p{font-size:15px}.page-card,.car-estimate-result,.train-estimate-result,.express-bus-estimate-result,.transport-comparison-summary{padding:20px}.section-heading{gap:12px}.section-heading h2{font-size:21px}.condition-group,.car-selector{padding-top:20px}.result-save-panel,.result-selection-panel{padding:16px}.location-grid,.trip-detail-grid,.select-grid,.form-grid.two-columns,.calculation-actions,.comparison-card-grid,.result-save-grid,.result-selection-grid,.core-metrics,.route-detail-grid,.train-detail-grid,.train-summary-grid,.express-bus-detail-grid,.express-bus-summary-grid{grid-template-columns:1fr}.passenger-field{max-width:none}.location-search-controls,.trip-loader-controls{grid-template-columns:1fr}.result-restore-error{flex-direction:column;align-items:stretch}.result-restore-error button{width:100%}.train-detail-list div,.train-summary-grid div,.train-breakdown dl div,.express-bus-detail-list div,.express-bus-summary-grid div,.express-bus-breakdown dl div,.prediction-detail-list div{gap:4px;display:grid}.train-detail-list dd,.train-summary-grid dd,.train-breakdown dd,.express-bus-detail-list dd,.express-bus-summary-grid dd,.express-bus-breakdown dd,.prediction-detail-list dd{overflow-wrap:anywhere;text-align:left}.car-detail dl div{grid-template-columns:1fr;gap:2px}}
