:root,[data-theme=light]{--primary: #1B4AEF;--primary-hover: #1539C0;--primary-soft: #EEF2FF;--success: #00C853;--success-soft: #E8F5E9;--success-ring: rgba(0,200,83,.45);--danger: #F44336;--danger-soft: #FFEBEE;--warning: #FF9800;--warning-soft: #FFF3E0;--warning-text: #9A6700;--bg: #F7F8FA;--card-bg: #FFFFFF;--text: #191F28;--text-secondary: #8B95A1;--border: #E5E8EB;--radius: 16px;--radius-sm: 12px;--radius-xs: 8px;--bottom-bar-height: 0px;--chrome-bg: rgba(252,252,253,.72);--sheet-bg: rgba(255,255,255,.94);--popover-bg: rgba(255,255,255,.88);--scrim: rgba(20,24,31,.32);--hairline: rgba(255,255,255,.65);--chrome-edge-top: linear-gradient(to bottom, rgba(247,248,250,.92), rgba(247,248,250,0));--chrome-edge-bottom: linear-gradient(to top, rgba(247,248,250,.92), rgba(247,248,250,0));--blur-sm: 12px;--blur-md: 20px;--blur-lg: 30px;--shadow-xs: 0 1px 2px rgba(16,24,40,.04);--shadow: 0 1px 3px rgba(16,24,40,.05), 0 1px 2px rgba(16,24,40,.03);--shadow-md: 0 4px 12px rgba(16,24,40,.08), 0 1px 3px rgba(16,24,40,.04);--shadow-lg: 0 12px 32px rgba(16,24,40,.12), 0 2px 6px rgba(16,24,40,.05);--shadow-xl: 0 24px 64px rgba(16,24,40,.18), 0 4px 12px rgba(16,24,40,.07);--tracking-display: -.03em;--tracking-title: -.022em;--tracking-heading: -.014em;--tracking-body: -.004em;--tracking-caption: .004em;--tracking-micro: .02em;--leading-display: 1.06;--leading-title: 1.18;--leading-heading: 1.32;--leading-body: 1.6;--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-in: cubic-bezier(1, 0, .68, .28);--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-release: cubic-bezier(.22, 1.28, .5, 1);--dur-press: 70ms;--dur-fast: .14s;--dur-base: .24s;--dur-slow: .32s}[data-theme=dark]{--primary: #4D7AFF;--primary-hover: #6B93FF;--primary-soft: #1E2A4A;--success: #4ADE80;--success-soft: #0D2818;--success-ring: rgba(74,222,128,.4);--danger: #FF6B6B;--danger-soft: #2D1215;--warning: #FFB74D;--warning-soft: #2D1F0D;--warning-text: #FFB74D;--bg: #0D1117;--card-bg: #161B22;--text: #E6EDF3;--text-secondary: #7D8590;--border: #30363D;--chrome-bg: rgba(22,27,34,.72);--sheet-bg: rgba(28,33,41,.95);--popover-bg: rgba(32,38,46,.9);--scrim: rgba(0,0,0,.52);--hairline: rgba(255,255,255,.09);--chrome-edge-top: linear-gradient(to bottom, rgba(13,17,23,.92), rgba(13,17,23,0));--chrome-edge-bottom: linear-gradient(to top, rgba(13,17,23,.92), rgba(13,17,23,0));--shadow-xs: 0 1px 2px rgba(0,0,0,.4);--shadow: 0 1px 3px rgba(0,0,0,.45);--shadow-md: 0 4px 12px rgba(0,0,0,.5);--shadow-lg: 0 12px 32px rgba(0,0,0,.55);--shadow-xl: 0 24px 64px rgba(0,0,0,.65)}*{margin:0;padding:0;box-sizing:border-box}img,svg,video,canvas{max-width:100%}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button,a,label,select,input[type=checkbox],input[type=radio],[role=button]{touch-action:manipulation}body{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:var(--leading-body);font-size:15px;letter-spacing:var(--tracking-body);font-optical-sizing:auto;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:900px;margin:0 auto;padding:32px 20px;padding-bottom:calc(32px + var(--bottom-bar-height));animation:pageIn var(--dur-slow) var(--ease-out)}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:16px;box-shadow:var(--shadow);transition:box-shadow var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;letter-spacing:var(--tracking-caption);cursor:pointer;transition:transform var(--dur-base) var(--ease-release),background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),opacity var(--dur-fast) var(--ease-standard);min-height:44px;white-space:nowrap;text-decoration:none;color:inherit}.btn:active{transform:scale(.96);transition-duration:var(--dur-press)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px #1b4aef40}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-live-on{background:var(--success-soft);color:var(--success);border:1.5px solid var(--success);display:inline-flex;align-items:center;gap:6px;font-weight:600}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}@media(hover:hover)and (pointer:fine){.btn:hover{transform:translateY(-1px)}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 12px #1b4aef4d}.btn-success:hover,.btn-danger:hover{opacity:.9}.btn-outline:hover{background:var(--bg);border-color:var(--text-secondary)}.btn-live-on:hover{opacity:.85}}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.live-pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--success);flex-shrink:0;animation:livePulse 1.8s var(--ease-standard) infinite}@keyframes livePulse{0%{box-shadow:0 0 0 0 var(--success-ring);transform:scale(1)}60%{box-shadow:0 0 0 6px transparent;transform:scale(.86)}to{box-shadow:0 0 0 0 transparent;transform:scale(1)}}.live-countdown-bar{height:3px;border-radius:2px;background:var(--border);overflow:hidden}.live-countdown-fill{height:100%;background:var(--success);border-radius:2px;transition:width 1s linear}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--text-secondary);letter-spacing:var(--tracking-caption);line-height:1.4}.form-group input,.form-group select{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:15px;letter-spacing:var(--tracking-body);outline:none;transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard);background:var(--card-bg);color:var(--text);min-height:48px}.form-group select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238B95A1' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;text-overflow:ellipsis}.form-group input[type=date],.form-group input[type=time],.form-group input[type=datetime-local]{appearance:none;-webkit-appearance:none;min-width:0;max-width:100%}.form-group input[type=date]::-webkit-date-and-time-value,.form-group input[type=time]::-webkit-date-and-time-value{text-align:left}.form-group input[type=date]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}[data-theme=dark] .form-group input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}.form-group select option{background:var(--card-bg);color:var(--text)}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.form-group input::placeholder{color:var(--text-secondary);opacity:.6}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1;min-width:0}.form-row .form-group-date{flex:3}.form-row .form-group-time{flex:2}@media(min-width:769px){.form-row .form-group-date{max-width:220px}.form-row .form-group-time{max-width:150px}}.form-row-inline{align-items:flex-end;gap:8px}.passenger-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:end}.passenger-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.passenger-label{font-size:12px;letter-spacing:var(--tracking-micro);color:var(--text-secondary)}.passenger-stepper{display:flex;align-items:center;gap:4px}.passenger-stepper button{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--card-bg);color:var(--text);font-size:16px;line-height:1;cursor:pointer;transition:transform var(--dur-base) var(--ease-release),background-color var(--dur-fast) var(--ease-standard),opacity var(--dur-fast) var(--ease-standard)}.passenger-stepper button:disabled{opacity:.35;cursor:not-allowed}.passenger-stepper button:not(:disabled):active{background:var(--bg);transform:scale(.9);transition-duration:var(--dur-press)}.passenger-value{min-width:20px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.checkbox-group{display:flex;align-items:center;gap:10px;margin-bottom:8px;min-height:44px;border-radius:var(--radius-xs);transition:background-color var(--dur-fast) var(--ease-standard)}.checkbox-group:active{background:var(--bg)}.checkbox-group input[type=checkbox]{width:22px;height:22px;cursor:pointer;flex-shrink:0;accent-color:var(--primary);border-radius:4px}.checkbox-group label{flex:1;min-width:0;display:flex;align-items:center;padding:11px 0;font-size:15px;letter-spacing:var(--tracking-body);color:var(--text);margin-bottom:0;cursor:pointer}.error-msg{color:var(--danger);font-size:14px;margin:8px 0;letter-spacing:var(--tracking-caption)}.success-msg{color:var(--success);font-size:14px;margin:8px 0;letter-spacing:var(--tracking-caption)}.toast{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:1000;padding:14px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;letter-spacing:var(--tracking-caption);display:flex;align-items:center;gap:12px;max-width:480px;width:calc(100% - 32px);cursor:pointer;animation:toastIn var(--dur-base) var(--ease-out);box-shadow:var(--shadow-lg)}.toast.is-leaving{animation:toastOut var(--dur-fast) var(--ease-in) forwards;pointer-events:none}.toast:active{transform:translate(-50%) scale(.985)}.toast-error{background:var(--danger);color:#fff}.toast-success{background:var(--success);color:#fff}.toast-warning{background:var(--warning);color:#422006}.toast-close{background:none;border:none;color:inherit;font-size:20px;cursor:pointer;opacity:.7;line-height:1;transition:opacity var(--dur-fast) var(--ease-standard);display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-11px -10px -11px auto}.toast-close:hover,.toast-close:active{opacity:1}.spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:64px 16px;color:var(--text-secondary);font-size:14px;letter-spacing:var(--tracking-caption)}.spinner:before{content:"";width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.alert{padding:14px 16px;border-radius:var(--radius-sm);font-size:14px;letter-spacing:var(--tracking-caption);margin-bottom:16px;display:flex;align-items:center;gap:8px}.alert-warning{background:var(--warning-soft);color:var(--warning-text);border:1px solid var(--warning)}.alert-info{background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:var(--tracking-micro);border:1px solid transparent}.badge-running{background:var(--success-soft);color:var(--success);border-color:transparent}.badge-pulse{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;animation:livePulse 1.8s var(--ease-standard) infinite}.badge-stopped{background:var(--bg);color:var(--text-secondary);border-color:var(--border)}.badge-reserved{background:var(--primary-soft);color:var(--primary);border-color:var(--primary);font-weight:700}.badge-expired{background:var(--warning-soft);color:var(--warning-text);border-color:var(--warning)}.station-select__input{font-size:16px!important}.station-select__control{width:100%}.station-select__value-container{min-width:0}.station-select__single-value,.station-select__placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.station-select__menu{transform-origin:top center;animation:menuIn var(--dur-fast) var(--ease-out)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:14px;letter-spacing:var(--tracking-caption);white-space:nowrap}th{font-weight:600;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.nav{background:var(--chrome-bg);backdrop-filter:blur(var(--blur-lg)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%);padding:0 20px;position:sticky;top:0;z-index:10}.nav:after{content:"";position:absolute;top:100%;left:0;right:0;height:18px;pointer-events:none;background:var(--chrome-edge-top)}.nav-inner{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:64px}.nav-brand{font-weight:800;font-size:20px;color:var(--primary);text-decoration:none;letter-spacing:-.032em;display:inline-flex;align-items:center;min-height:44px;transition:opacity var(--dur-fast) var(--ease-standard)}.nav-brand:active{opacity:.6}.nav-links{display:flex;gap:2px;align-items:center}.nav-links a{padding:8px 14px;border-radius:var(--radius-xs);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:var(--tracking-caption);color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-standard),background-color var(--dur-fast) var(--ease-standard);cursor:pointer}.nav-links a:hover,.nav-links a:active{color:var(--text);background:var(--bg)}.nav-links a.active{color:var(--primary);background:var(--primary-soft);font-weight:600}.nav-user{font-size:13px;letter-spacing:var(--tracking-caption);color:var(--text-secondary);padding:0 8px;white-space:nowrap}.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-8px;background:none;border:none;cursor:pointer;color:var(--text);border-radius:var(--radius-xs);transition:transform var(--dur-base) var(--ease-release),background-color var(--dur-fast) var(--ease-standard)}.mobile-menu-btn:active{background:var(--bg);transform:scale(.92);transition-duration:var(--dur-press)}.mobile-menu-overlay{display:none;position:fixed;inset:64px 0 0;background:var(--scrim);z-index:50;animation:fadeIn var(--dur-fast) var(--ease-out)}.mobile-menu-overlay.is-closing{animation:fadeOut var(--dur-fast) var(--ease-in) forwards;pointer-events:none}.mobile-menu{background:var(--sheet-bg);backdrop-filter:blur(var(--blur-lg)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%);box-shadow:var(--shadow-lg);transform-origin:top center;animation:slideDown var(--dur-base) var(--ease-out)}.mobile-menu-overlay.is-closing .mobile-menu{animation:slideUpOut var(--dur-fast) var(--ease-in) forwards}.mobile-menu-user{display:block;padding:14px 20px;font-size:13px;letter-spacing:var(--tracking-caption);color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--bg);word-break:break-all}.mobile-menu{max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-menu-item{display:flex;align-items:center;gap:6px;min-height:52px;padding:14px 20px;text-decoration:none;color:var(--text);font-size:15px;font-weight:500;letter-spacing:var(--tracking-body);border-bottom:1px solid var(--border);background:transparent;transition:background-color var(--dur-fast) var(--ease-standard)}.mobile-menu-item:active{background:var(--bg)}.mobile-menu-item.active{color:var(--primary);font-weight:600;background:var(--primary-soft)}.mobile-menu-logout{color:var(--danger);cursor:pointer}.bottom-tab-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--chrome-bg);backdrop-filter:blur(var(--blur-lg)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%);box-shadow:inset 0 1px 0 var(--hairline);z-index:10;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-tab-bar:before{content:"";position:absolute;bottom:100%;left:0;right:0;height:18px;pointer-events:none;background:var(--chrome-edge-bottom)}.bottom-tab{flex:1;min-width:0;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px 8px;text-decoration:none;color:var(--text-secondary);font-size:11px;font-weight:500;letter-spacing:var(--tracking-micro);transition:color var(--dur-fast) var(--ease-standard),transform var(--dur-base) var(--ease-release);position:relative}.bottom-tab:active{transform:scale(.9);transition-duration:var(--dur-press)}.bottom-tab.active{color:var(--primary)}.bottom-tab.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:20px;height:2px;background:var(--primary);border-radius:1px}.bottom-tab svg{flex-shrink:0}.modal-overlay{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(var(--blur-md)) saturate(140%);-webkit-backdrop-filter:blur(var(--blur-md)) saturate(140%);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:scrimIn var(--dur-base) var(--ease-out)}.modal-overlay.is-closing{animation:scrimOut var(--dur-base) var(--ease-in) forwards;pointer-events:none}.modal{background:var(--sheet-bg);border-radius:var(--radius);padding:28px;width:100%;max-width:480px;max-height:90vh;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform-origin:var(--modal-origin, 50% 50%);animation:sheetIn var(--dur-base) var(--ease-out);box-shadow:var(--shadow-xl);border:1px solid var(--hairline)}.modal-overlay.is-closing .modal{animation:sheetOut var(--dur-base) var(--ease-in) forwards}.modal h3{margin-bottom:20px;font-size:19px;font-weight:700;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px}.login-wrapper{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px calc(16px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));background:var(--bg)}.login-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:40px 32px;width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.login-card .btn{width:100%;justify-content:center;padding:14px 16px;font-size:15px;letter-spacing:var(--tracking-body);height:52px}.login-card .login-footer{text-align:center;margin-top:20px;font-size:14px;letter-spacing:var(--tracking-caption);color:var(--text-secondary)}.login-card .login-footer a{color:var(--primary);text-decoration:none;font-weight:600}.login-card .login-footer a:hover{text-decoration:underline}.login-expired{text-align:center;color:var(--warning-text);font-size:14px;letter-spacing:var(--tracking-caption);margin-bottom:16px;padding:10px 14px;background:var(--warning-soft);border-radius:var(--radius-xs);font-weight:500}.empty-state{text-align:center;padding:64px 16px;color:var(--text-secondary);font-size:15px;letter-spacing:var(--tracking-body)}.empty-state a{color:var(--primary);text-decoration:none;font-weight:600}.empty-state a:hover{text-decoration:underline}.section-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px}.section-header h2{font-size:25px;font-weight:800;line-height:var(--leading-title);letter-spacing:var(--tracking-title);min-width:0}.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.dashboard-stat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;box-shadow:var(--shadow)}.dashboard-stat-value{font-size:28px;font-weight:700;letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:var(--leading-display)}.dashboard-stat-value.stat-running{color:var(--success)}.dashboard-stat-value.stat-reserved{color:var(--primary)}.dashboard-stat-label{font-size:13px;letter-spacing:var(--tracking-caption);color:var(--text-secondary);margin-top:6px;font-weight:500;line-height:1.4}.dashboard-card{display:flex;flex-direction:column;gap:16px}.dashboard-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.dashboard-card-info{min-width:0;flex:1}.dashboard-card-info h3{font-size:17px;font-weight:700;line-height:var(--leading-heading);margin-bottom:4px;word-break:break-word;letter-spacing:var(--tracking-heading)}.dashboard-card-info p{font-size:14px;line-height:1.5;letter-spacing:var(--tracking-caption);color:var(--text-secondary);word-break:break-word}.dashboard-card-info .stats{margin-top:12px;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-caption);color:var(--text-secondary);border-radius:var(--radius-xs);padding:4px 8px;margin-left:-8px;transition:background-color var(--dur-slow) var(--ease-standard),color var(--dur-slow) var(--ease-standard)}.dashboard-card-info .stats.stats-flash{animation:statsFlash .6s var(--ease-out)}.dashboard-card-actions{display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.dashboard-card-actions .btn{flex:1}.dashboard-card-warning{font-size:12px;letter-spacing:var(--tracking-micro);line-height:1.5;color:var(--warning-text);margin-top:6px}.card.card-running{border-left:3px solid var(--success)}.card.card-reserved{border-left:3px solid var(--primary)}.settings-section{margin-bottom:12px}.settings-section h3{font-size:16px;font-weight:700;line-height:var(--leading-heading);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);letter-spacing:var(--tracking-heading)}.availability-available{color:var(--success);font-weight:600}.availability-soldout{color:var(--danger);font-weight:500}.route-card-list{display:none}.route-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:12px;box-shadow:var(--shadow)}.route-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.route-card-header h4{font-size:16px;font-weight:600;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}.route-card-body{font-size:14px;letter-spacing:var(--tracking-caption);color:var(--text-secondary);line-height:1.8}.route-card-body span{display:inline-block;margin-right:12px}.route-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.route-card-tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;letter-spacing:var(--tracking-micro);background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.route-card-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.route-card-actions .btn{flex:1}.search-table-desktop tbody tr{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-standard)}.search-table-desktop tbody tr:active{background:var(--primary-soft)}@media(hover:hover)and (pointer:fine){.search-table-desktop tbody tr:hover{background:var(--bg)}}.search-card-list{display:none}.search-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:10px;box-shadow:var(--shadow);transition:transform var(--dur-base) var(--ease-release),border-color var(--dur-fast) var(--ease-standard),background-color var(--dur-fast) var(--ease-standard)}.search-card:active{transform:scale(.985);transition-duration:var(--dur-press)}.search-card.selected{border-color:var(--primary);background:var(--primary-soft)}.search-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.search-card-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--bg);font-size:12px;font-weight:600;letter-spacing:var(--tracking-micro);color:var(--text-secondary);flex-shrink:0}.search-card-name{font-weight:600;font-size:14px;letter-spacing:var(--tracking-caption)}.search-card-time{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);margin-bottom:10px;font-variant-numeric:tabular-nums}.search-card-arrow{color:var(--text-secondary);font-size:14px}.search-card-seats{display:flex;gap:16px}.search-card-seat{display:flex;align-items:center;gap:6px;font-size:13px;letter-spacing:var(--tracking-caption)}.search-card-seat-label{color:var(--text-secondary)}.btn-copy{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:36px;padding:6px 14px;font-size:12px;letter-spacing:var(--tracking-micro);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);cursor:pointer;color:var(--text-secondary);transition:transform var(--dur-base) var(--ease-release),background-color var(--dur-fast) var(--ease-standard);font-weight:500}.btn-copy:hover{background:var(--border)}.btn-copy:active{background:var(--border);transform:scale(.94);transition-duration:var(--dur-press)}.btn-theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--card-bg);cursor:pointer;color:var(--text-secondary);transition:transform var(--dur-base) var(--ease-release),background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.btn-theme-toggle:hover{background:var(--bg);color:var(--text)}.btn-theme-toggle:active{background:var(--bg);transform:scale(.9);transition-duration:var(--dur-press)}.theme-menu{position:absolute;top:100%;right:0;margin-top:6px;background:var(--popover-bg);backdrop-filter:blur(var(--blur-sm)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-sm)) saturate(180%);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;min-width:140px;overflow:hidden;transform-origin:top right;animation:menuIn var(--dur-fast) var(--ease-out)}.theme-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:none;color:var(--text);font-size:14px;letter-spacing:var(--tracking-caption);cursor:pointer;text-align:left;transition:background-color var(--dur-fast) var(--ease-standard)}.theme-menu button:hover{background:var(--bg)}.theme-menu button:active{background:var(--border)}.theme-menu button.active{color:var(--primary);font-weight:600}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px) scaleY(.98)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes slideUpOut{0%{opacity:1;transform:translateY(0) scaleY(1)}to{opacity:0;transform:translateY(-10px) scaleY(.98)}}@keyframes menuIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes sheetIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes sheetOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes scrimIn{0%{opacity:0;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%)}}@keyframes scrimOut{0%{opacity:1;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%)}to{opacity:0;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-16px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-16px) scale(.96)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes statsFlash{0%{background:var(--success);color:#fff}to{background:transparent;color:var(--text-secondary)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideDownOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}@keyframes reducedFadeIn{0%{opacity:0}to{opacity:1}}@keyframes reducedFadeOut{0%{opacity:1}to{opacity:0}}@keyframes reducedPulse{0%,to{opacity:1}50%{opacity:.4}}@media(hover:none)and (pointer:coarse){.form-group input,.form-group select,.form-group textarea{font-size:16px}}@media(max-width:768px){:root{--bottom-bar-height: 72px}.desktop-nav{display:none}.mobile-menu-btn{display:flex}.mobile-menu-overlay{display:block}.bottom-tab-bar{display:flex}.container{padding:20px 16px;padding-bottom:calc(20px + var(--bottom-bar-height) + env(safe-area-inset-bottom,0px))}.card{padding:20px}.section-header h2{font-size:23px}.dashboard-stats{gap:8px}.dashboard-stat-card{padding:16px 12px}.dashboard-stat-value{font-size:24px;letter-spacing:var(--tracking-title)}.dashboard-card-actions{flex-wrap:wrap}.form-group input,.form-group select{font-size:16px}.form-row{flex-direction:column;gap:0}.form-row-inline{align-items:stretch;gap:0}.search-form-card .form-row,.modal .form-row{flex-direction:row;gap:10px}.btn-row .btn{flex:1 1 auto}.modal-overlay{padding:0;align-items:flex-end}.modal{max-width:100%;max-height:92vh;max-height:90dvh;border-radius:20px 20px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));transform-origin:50% 100%;animation:slideUp var(--dur-slow) var(--ease-out);border-bottom:none}.modal-overlay.is-closing .modal{animation:slideDownOut var(--dur-base) var(--ease-in) forwards}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.route-table-desktop{display:none}.route-card-list{display:block}.search-table-desktop{display:none}.search-card-list{display:block}th,td{padding:10px 8px;font-size:13px}.settings-section{margin-bottom:8px}.login-card{padding:28px 24px}.toast{top:72px;max-width:100%;width:calc(100% - 24px)}}@media(max-width:420px){.search-form-card .form-row,.modal .form-row{flex-direction:column;gap:0}.form-row .form-group-date,.form-row .form-group-time{flex:1 1 auto}.passenger-grid{grid-template-columns:repeat(2,1fr);gap:12px 8px}.passenger-stepper button{width:44px;height:44px}.passenger-value{min-width:24px;font-size:16px}.btn-copy{min-height:44px}}@media(max-width:380px){.bottom-tab span{font-size:10px}.dashboard-stat-value{font-size:20px;letter-spacing:var(--tracking-title)}.dashboard-stat-label{font-size:12px;letter-spacing:var(--tracking-micro)}th,td{padding:8px 6px;font-size:12px}.container{padding-left:12px;padding-right:12px}.card{padding:16px}.modal{padding-left:16px;padding-right:16px}.section-header h2{font-size:21px;letter-spacing:var(--tracking-title)}}.favorite-chips{display:flex;flex-wrap:wrap;gap:8px}.favorite-chip{display:inline-flex;align-items:stretch;border:1.5px solid var(--border);border-radius:999px;overflow:hidden;background:var(--card-bg)}.favorite-chip-apply,.favorite-chip-del{background:none;border:none;color:var(--text);cursor:pointer;font-size:14px;letter-spacing:var(--tracking-caption);min-height:44px;padding:0 14px;transition:transform var(--dur-base) var(--ease-release),background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.favorite-chip-apply:active,.favorite-chip-del:active{background:var(--primary-soft);color:var(--primary);transform:scale(.94);transition-duration:var(--dur-press)}.favorite-chip-apply{font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-chip-del{color:var(--text-secondary);border-left:1px solid var(--border);padding:0 12px;min-width:44px;font-size:18px;line-height:1}@media(hover:hover)and (pointer:fine){.favorite-chip-apply:hover{background:var(--primary-soft);color:var(--primary)}.favorite-chip-del:hover{background:var(--primary-soft)}}.login-type-group{display:flex;gap:8px}.login-type-btn{flex:1;min-height:44px;padding:0 12px;border:1.5px solid var(--border);border-radius:12px;background:var(--card-bg);color:var(--text-secondary);font-size:15px;font-weight:600;letter-spacing:var(--tracking-body);cursor:pointer;transition:transform var(--dur-base) var(--ease-release),border-color var(--dur-fast) var(--ease-standard),background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.login-type-btn:active{transform:scale(.96);transition-duration:var(--dur-press)}.login-type-btn.is-active{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}@media(hover:hover)and (pointer:fine){.login-type-btn:hover{border-color:var(--primary)}}.field-hint{margin:6px 0 0;font-size:13px;letter-spacing:var(--tracking-caption);line-height:1.5;color:var(--text-secondary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.16s!important;animation-iteration-count:1!important;transition-duration:.12s!important;scroll-behavior:auto!important}.container,.modal,.mobile-menu,.theme-menu,.station-select__menu,.toast{animation-name:reducedFadeIn!important;transform:none!important}.toast{transform:translate(-50%)!important}.modal-overlay.is-closing .modal,.mobile-menu-overlay.is-closing .mobile-menu{animation-name:reducedFadeOut!important}.modal-overlay{animation-name:reducedFadeIn!important}.modal-overlay.is-closing,.toast.is-leaving{animation-name:reducedFadeOut!important}.btn:active,.btn-copy:active,.bottom-tab:active,.search-card:active,.login-type-btn:active,.btn-theme-toggle:active,.mobile-menu-btn:active,.passenger-stepper button:not(:disabled):active,.favorite-chip-apply:active,.favorite-chip-del:active{transform:none;opacity:.65}.toast:active{transform:translate(-50%)!important;opacity:.8}@media(hover:hover)and (pointer:fine){.btn:hover{transform:none}}.spinner:before{animation:reducedPulse 1.4s ease-in-out infinite!important;border-top-color:var(--primary)}.live-pulse-dot,.badge-pulse{animation:reducedPulse 2s ease-in-out infinite!important;box-shadow:none}}@media(prefers-reduced-transparency:reduce){.nav,.bottom-tab-bar,.mobile-menu,.theme-menu{background:var(--card-bg);backdrop-filter:none;-webkit-backdrop-filter:none}.nav{border-bottom:1px solid var(--border);box-shadow:none}.bottom-tab-bar{border-top:1px solid var(--border);box-shadow:none}.nav:after,.bottom-tab-bar:before{display:none}.modal{background:var(--card-bg)}.modal-overlay{background:#0009;backdrop-filter:none;-webkit-backdrop-filter:none;animation-name:fadeIn}.modal-overlay.is-closing{animation-name:fadeOut}.mobile-menu-overlay{background:#0009}}@media(prefers-contrast:more){:root,[data-theme=light]{--text-secondary: #4A5560;--border: #9AA3AD;--chrome-bg: rgba(255,255,255,.97);--sheet-bg: #FFFFFF;--popover-bg: #FFFFFF;--scrim: rgba(10,13,18,.6);--hairline: rgba(0,0,0,.35);--warning-text: #7A4E00}[data-theme=dark]{--text-secondary: #B9C1CB;--border: #74808C;--chrome-bg: rgba(22,27,34,.97);--sheet-bg: #1C2129;--popover-bg: #1C2129;--scrim: rgba(0,0,0,.72);--hairline: rgba(255,255,255,.28)}.badge{border-color:currentColor}.btn-outline{border-width:1.5px}.nav{border-bottom:1px solid var(--border)}.bottom-tab-bar{border-top:1px solid var(--border)}.modal{border:1.5px solid var(--border)}.theme-menu{border-width:1.5px}.card,.route-card,.search-card,.dashboard-stat-card,.login-card{border-color:var(--border)}}.payment-test-plan{margin-top:12px;padding:14px;border:1.5px solid var(--border);border-radius:12px;background:var(--card-bg)}.payment-test-row{display:flex;justify-content:space-between;gap:12px;margin:0 0 6px;font-size:14px}.payment-test-row span{color:var(--text-secondary);flex-shrink:0}.payment-test-row strong{text-align:right}.guide-toggle{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;font:inherit;color:inherit;text-align:left;background:none;border:none;padding:0;cursor:pointer;min-height:44px;touch-action:manipulation}.guide-toggle-hint{font-size:14px;font-weight:400;color:var(--text-secondary);flex-shrink:0}.guide-toggle:active .guide-toggle-hint{opacity:.6}@media(hover:hover)and (pointer:fine){.guide-toggle:hover .guide-toggle-hint{color:var(--primary)}}
