.leaflet-control-zoom,.leaflet-control-layers,.leaflet-control-scale{display:none!important}.leaflet-control-attribution{font-size:9px;background:#ffffffb3!important;padding:2px 8px!important;border-radius:4px 0 0;color:#666}.map-floating-controls{display:flex;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 2px 10px #0000001f,0 1px 4px #00000014}.leaflet-bottom.leaflet-right .map-floating-controls{margin-bottom:20px;margin-right:14px}.map-btn-locate{display:flex;align-items:center;justify-content:center;width:46px;height:46px;padding:0;margin:0;border:none;background:transparent;cursor:pointer;transition:all .15s ease}.map-btn-locate:active{background:#22c55e26;transform:scale(.96)}.map-btn-locate svg{width:22px;height:22px;color:#22c55e;transition:all .15s ease}.map-btn-locate.is-loading{pointer-events:none}.map-btn-locate.is-loading svg{animation:locate-pulse 1s ease-in-out infinite}@keyframes locate-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}.map-btn-locate.has-error{background:#ef44441a}.map-btn-locate.has-error svg{color:#ef4444;animation:locate-shake .4s ease}@keyframes locate-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}@media (max-width: 768px){.leaflet-bottom.leaflet-right .map-floating-controls{margin-bottom:calc(var(--bottom-nav-height) + 8px + env(safe-area-inset-bottom));margin-right:12px}.map-floating-controls{border-radius:12px}.map-btn-locate{width:44px;height:44px}.leaflet-bottom.leaflet-right .map-floating-controls{display:none!important}.map-btn-locate svg{width:20px;height:20px}}@media (max-width: 380px){.leaflet-bottom.leaflet-right .map-floating-controls{margin-right:8px}.map-btn-locate,.map-btn-zoom-in,.map-btn-zoom-out,.map-control-btn{width:40px;height:40px}}#map{flex:1;min-height:0;z-index:1}#top-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;background:transparent;pointer-events:none}#top-bar>*{pointer-events:auto}#btn-back-to-dashboard-from-map{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a;border:none;cursor:pointer;color:#1a1a2e}#btn-back-to-dashboard-from-map svg{color:#22c55e;width:14px;height:14px}#clock{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a}#clock svg{width:14px;height:14px;color:#64748b}#current-time{color:#1a1a2e;font-weight:700}.map-floating-controls{position:absolute;right:16px;bottom:24px;display:flex;flex-direction:column;gap:0;z-index:1000;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 24px #0000001f,0 2px 8px #00000014,inset 0 1px #fffc}body.dark-theme .map-floating-controls{background:#1e2330;box-shadow:0 4px 24px #0006,0 2px 8px #0000004d,inset 0 1px #ffffff0d}.map-btn-locate{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;transition:all .2s ease;color:#64748b}.map-btn-locate:hover{background:#22c55e14}.map-btn-locate svg{width:22px;height:22px;color:#22c55e;transition:all .2s ease}.map-btn-locate:hover svg{color:#16a34a;transform:scale(1.1)}.map-btn-locate.has-error{background:#ef444414}.map-btn-locate.has-error svg{color:#ef4444}body.dark-theme .map-btn-locate:hover{background:#22c55e1f}body.dark-theme .map-btn-locate svg{color:#4ade80}body.dark-theme .map-btn-locate:hover svg{color:#22c55e}body.dark-theme .map-btn-locate.has-error{background:#ef444426}.bus-icon-rect div{transition:all .2s ease;border:2px solid white;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}body.dark-theme .leaflet-control-attribution{background:#0f141eb3!important;color:#ffffff80}body.dark-theme .leaflet-control-attribution a{color:#fff9!important}@media (max-width: 768px){#map-view #top-bar{background:transparent;border:none;padding:0;display:block;position:absolute;top:0;left:0;right:0;pointer-events:none}#route-filter-panel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:80vh;border-left:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(0);padding-bottom:env(safe-area-inset-bottom)}#route-filter-panel.hidden{transform:translateY(100%)}.panel-handle{display:block;width:40px;height:4px;background:var(--border);border-radius:var(--radius-full);margin:8px auto}.leaflet-top.leaflet-right{right:10px;top:auto;bottom:80px}}#map-container{display:flex;flex-direction:column;flex:1 0 auto;min-height:0;height:100%;background:var(--bg-light);position:relative}body:not(.view-map-locked) #map-container{min-height:100vh;margin-top:0;padding-top:0}#map-view{display:flex;flex-direction:column;flex:1;min-height:0;position:relative}#map{flex:1;min-height:0;position:relative;z-index:1;background:#f0f0f0;touch-action:pan-x pan-y;-ms-touch-action:pan-x pan-y}#top-bar{background:transparent;padding:0;display:flex;align-items:center;gap:10px;flex-wrap:nowrap;z-index:10}#status-info{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-sm)}#status-info #bus-count{display:inline-flex;align-items:center;gap:6px;font-weight:700}#status-info #bus-count svg{width:14px;height:14px}body.dark-theme #status-info{background:#18181be6;color:var(--text-primary)}#btn-toggle-filter{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:var(--radius-full);background:var(--primary);color:#fff;border:none;font-weight:700;box-shadow:var(--shadow-md);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}#map-container #btn-toggle-filter svg{width:20px;height:20px}body.dark-theme #map-container #btn-toggle-filter{background:#0ea54f;color:#fff}body.dark-theme #map-container #btn-toggle-filter svg{color:#fff}#map-container #btn-toggle-filter:hover,.map-fab-button:hover{transform:scale(1.02);box-shadow:0 6px 16px #00000059}#map-container #btn-toggle-filter:active,.map-fab-button:active{transform:scale(.97)}@media (min-width: 769px){#map-container #btn-toggle-filter{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;padding:0;z-index:1200;font-size:0;font-weight:600}#map-container #btn-toggle-filter span{display:none}}@media (max-width: 768px){#map-container #btn-toggle-filter,.map-fab-button{position:fixed!important;bottom:calc(var(--bottom-nav-height) + 12px + env(safe-area-inset-bottom));right:calc(12px + env(safe-area-inset-right))!important;left:auto!important;width:48px;height:48px;border-radius:50%;background:var(--primary)!important;color:#fff!important;border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 10px #0000001f,0 1px 4px #00000014;z-index:1200;display:flex;justify-content:center;align-items:center;padding:0;transition:transform .15s ease,box-shadow .15s ease}#map-container #btn-toggle-filter span,#map-container #btn-toggle-filter.collapsed span,.map-fab-button.collapsed span{display:none}#map-container #btn-toggle-filter svg{width:20px;height:20px}}@media (max-width: 768px){body:not(.view-map-locked) #map-container{transform:translateY(-8px);will-change:transform}}@media (max-width: 768px){#site-footer{display:block}}#map-container #btn-back-to-dashboard-from-map{padding-left:.75rem;padding-right:1.25rem}#map-container #btn-back-to-dashboard-from-map svg{margin-right:.25rem}#top-right-controls{display:inline-flex;align-items:center;gap:10px;margin-left:auto}.map-theme-toggle{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;background:#fffffff2;border:none;border-radius:20px;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a;font-weight:700;color:#1a1a2e;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;pointer-events:auto}.map-theme-toggle .theme-toggle-icon{font-size:16px;line-height:1}.map-theme-toggle .theme-toggle-label{font-size:13px}.map-theme-toggle:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001f,0 0 0 1px #0000000d}.map-theme-toggle:active{transform:translateY(0)}body.dark-theme .map-theme-toggle{background:#141926f2;color:#e2e8f0;box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff0f}body.dark-theme .map-theme-toggle:hover{box-shadow:0 4px 12px #00000059,0 0 0 1px #ffffff14}.topbar-pill{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;font-size:13px;font-weight:600;color:#1a1a2e;white-space:nowrap;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a;transition:all .2s ease}.topbar-pill svg{width:16px;height:16px;flex-shrink:0}#btn-back-to-dashboard-from-map{background:#fffffff2!important;border:none!important;color:#1a1a2e!important;cursor:pointer}#btn-back-to-dashboard-from-map:hover{background:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px #0000001f,0 0 0 1px #0000000d}#btn-back-to-dashboard-from-map svg{color:#22c55e}#clock{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;font-size:13px;font-weight:600;color:#1a1a2e;white-space:nowrap;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a;font-variant-numeric:tabular-nums}#clock svg{width:15px;height:15px;opacity:.6;color:#64748b}#current-time{color:#1a1a2e}#date-indicator{color:#64748b;font-weight:500;padding-left:8px;border-left:1px solid rgba(0,0,0,.1)}#status-info{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a;margin-left:auto}#route-filter-panel{position:fixed;top:0;right:0;bottom:0;width:340px;max-height:100vh;background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-left:1px solid var(--border);box-shadow:var(--elevation-4);z-index:var(--z-fixed);display:flex;flex-direction:column;transition:transform var(--transition-smooth);transform:translate(0)}#route-filter-panel.hidden{transform:translate(100%)}.panel-handle{display:none;cursor:pointer}@media (min-width: 769px){body.view-map-locked #top-bar{position:relative;z-index:var(--z-sticky);flex-shrink:0}#map-view #top-bar{position:absolute;top:0;left:0;right:0;padding:14px 16px;display:flex;align-items:center;gap:10px;pointer-events:none}#map-view #top-bar>*{pointer-events:auto}}@media (max-width: 768px) and (hover: none) and (pointer: coarse){.main-nav-buttons-condensed{grid-template-columns:1fr;gap:1rem;padding-bottom:80px}.content-cards,.bottom-grid{grid-template-columns:1fr}#dashboard-content-view.view-is-active{padding-top:0;padding-bottom:90px}#btn-back-to-hall{margin-bottom:1rem}.content-cards{gap:1rem}#info-trafic .tab-content{max-height:none;overflow-y:visible}#alert-banner{padding:.5rem .75rem;font-size:.8rem}#alert-banner-content{gap:.4rem}#alert-banner-content svg{width:16px;height:16px}#alert-banner-close{padding:.2rem .4rem;font-size:1.1rem}#map-view #top-bar{background:transparent;border:none;padding:0;display:block;position:absolute;top:0;left:0;right:0;pointer-events:none}#map-container #map-view #top-bar>#btn-back-to-dashboard-from-map,#map-container #map-view #top-bar>#clock,#map-container #map-view #top-bar>#status-info{position:fixed!important;z-index:var(--z-sticky);height:36px;padding:0 var(--spacing-3);background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:18px;font-size:var(--font-size-xs);font-weight:600;box-shadow:0 2px 8px #0000001a,0 0 0 1px #0000000a;pointer-events:auto;border:none}#map-container #map-view #top-bar>#btn-back-to-dashboard-from-map{top:calc(12px + env(safe-area-inset-top));left:12px;display:inline-flex!important;align-items:center;gap:4px;color:#1a1a2e!important}#map-container #map-view #top-bar>#btn-back-to-dashboard-from-map span{display:inline}#map-container #map-view #top-bar>#btn-back-to-dashboard-from-map svg{margin-right:0;color:#22c55e;width:14px;height:14px}#map-container #map-view #top-bar>#clock{display:inline-flex!important;align-items:center;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);gap:6px;color:#1a1a2e}#map-container #map-view #top-bar>#clock svg{width:14px;height:14px;opacity:.5}#map-container #map-view #top-bar>#clock #date-indicator{display:none}#map-container #map-view #top-bar>#status-info{display:inline-flex!important;align-items:center;top:calc(12px + env(safe-area-inset-top));right:12px;left:auto;margin-left:0;gap:6px}#map-container #map-view #top-bar>#status-info #bus-count{color:#22c55e}#map-container #map-view #top-bar>#status-info #data-status{display:none}#top-right-controls{position:fixed;top:calc(12px + env(safe-area-inset-top));right:var(--spacing-3);display:inline-flex;align-items:center;gap:var(--spacing-2);pointer-events:auto;z-index:var(--z-sticky)}#top-right-controls #status-info{position:relative;top:0;right:0;height:36px;padding:0 12px;margin-left:0;gap:6px}#top-right-controls #status-info #data-status{display:none}#top-right-controls .map-theme-toggle{width:38px;height:38px;padding:0;border-radius:50%;justify-content:center;box-shadow:0 2px 8px #0000002e,0 0 0 1px #0000000a}#top-right-controls .map-theme-toggle .theme-toggle-label{display:none}body.dark-theme #map-container #map-view #top-bar>#btn-back-to-dashboard-from-map,body.dark-theme #map-container #map-view #top-bar>#clock,body.dark-theme #map-container #map-view #top-bar>#status-info{background:#141926f2!important;box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff0f!important;color:#e2e8f0}body.dark-theme #map-container #map-view #top-bar>#btn-back-to-dashboard-from-map{color:#e2e8f0!important}body.dark-theme #map-container #map-view #top-bar>#status-info #bus-count{color:#4ade80!important}#route-filter-panel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:80vh;border-left:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(0);padding-bottom:env(safe-area-inset-bottom)}#route-filter-panel.hidden{transform:translateY(100%)}.panel-handle{display:block;width:40px;height:4px;background:var(--border);border-radius:var(--radius-full);margin:8px auto}#main-header{position:fixed;top:0;left:0;right:0;z-index:1200;height:56px;padding:0;background:#fffffff2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center}.header-content{display:flex;justify-content:flex-start;align-items:center;height:100%;width:100%;max-width:1300px;margin:0 auto;padding:0 1rem;gap:.75rem}.logo{position:static;display:flex;align-items:center;gap:.5rem;order:1;font-size:1rem;font-weight:800}.header-logo-img{height:38px;width:auto;object-fit:contain}.header-title-group{display:flex;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.1;order:2}.header-nav{order:3;margin-left:auto}.brand-name{font-size:1.15rem;margin:0;display:block;font-weight:800}.brand-sub{font-size:.75rem;margin-top:1px;display:block;color:var(--text-secondary);font-weight:600}.results-list-wrapper{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.results-list{padding-bottom:2rem}.load-more-wrapper{display:flex;justify-content:center;padding:1rem 0 1.5rem}.load-more-wrapper .btn{min-width:160px}}.load-more-departures{margin-top:.5rem;padding:.75rem 1rem 1.5rem}.load-more-departures .btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.85rem;border:2px solid var(--primary);color:var(--primary);background:transparent;border-radius:var(--radius-full);font-weight:600;transition:all .2s ease}.load-more-departures .btn:hover:not(:disabled){background:var(--primary);color:#fff}.load-more-departures .btn:disabled{opacity:.6;cursor:not-allowed}.load-more-departures .btn svg{width:16px;height:16px}.spinner-small{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.btn-load-more{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:1rem 1.5rem;background:transparent;border:2px dashed rgba(34,197,94,.3);border-radius:16px;color:var(--text-secondary);font-weight:600;font-size:.9375rem;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);margin-top:.75rem;box-shadow:none!important}.btn-load-more:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#22c55e14;transform:translateY(-2px)}.btn-load-more:disabled{opacity:.5;cursor:wait}.btn-load-more svg{width:20px;height:20px;flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.btn-load-more:hover svg{transform:rotate(90deg)}:root{--pm-green: #22c55e;--pm-green-hover: #16a34a;--pm-green-light: rgba(34, 197, 94, .1);--pm-green-glow: rgba(34, 197, 94, .3);--pm-cyan: #00c8ff;--pm-cyan-hover: #0ea5e9;--pm-cyan-light: rgba(0, 200, 255, .1);--pm-gradient: linear-gradient(135deg, #22c55e 0%, #00c8ff 100%);--pm-gradient-text: linear-gradient(135deg, #22c55e, #00c8ff);--color-blue: #007bff;--color-purple: #6f42c1;--color-orange: #fd7e14;--color-green: var(--pm-green);--color-red: #ef4444;--color-yellow: #eab308;--color-green-check: var(--pm-green);--color-tab-active: var(--pm-green);--color-nav-condensed-bg: #0f172a;--color-nav-condensed-hover: #1e293b;--primary: var(--pm-green);--primary-dark: var(--pm-green-hover);--secondary: #475569;--bg-light: #f8fafc;--bg-main: #ffffff;--bg-secondary: #f1f5f9;--bg-tertiary: #e2e8f0;--bg-page: #ffffff;--bg-card: #f1f5f9;--bg-elevated: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--border: #e2e8f0;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-glow: 0 0 20px var(--pm-green-glow);--elevation-0: none;--elevation-1: 0 1px 2px rgba(0, 0, 0, .05);--elevation-2: 0 2px 4px rgba(0, 0, 0, .08);--elevation-3: 0 4px 8px rgba(0, 0, 0, .1);--elevation-4: 0 8px 16px rgba(0, 0, 0, .12);--elevation-5: 0 12px 24px rgba(0, 0, 0, .15);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-overlay: 400;--z-modal: 500;--z-popover: 600;--z-toast: 700;--transition-quick: .15s ease-out;--transition-normal: .25s ease-out;--transition-smooth: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--breakpoint-mobile: 640px;--breakpoint-tablet: 1024px;--breakpoint-desktop: 1025px;--container-sm: 640px;--container-md: 800px;--container-lg: 1100px;--container-xl: 1200px;--container-hero: 1100px;--container-content: 1100px;--bottom-nav-height: 66px}.pm-hero,.horaires-hero,.trafic-hero,.ligne-hero{width:100%;max-width:var(--container-hero);margin:0 auto;padding:1.5rem 1rem 1rem;text-align:center;border-radius:var(--radius-lg)}.pm-hero-title,.horaires-hero h1,.trafic-hero h1,.ligne-hero h1{margin:0 0 .75rem;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:900;letter-spacing:-.03em;line-height:1.2;background:var(--pm-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pm-hero-subtitle,.horaires-hero p,.trafic-hero p,.ligne-hero p{color:var(--text-secondary);font-size:1rem;line-height:1.5;max-width:600px;margin:0 auto}.pm-hero-actions,.horaires-actions{margin-top:1rem;display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.pm-page,.horaires-page,.trafic-page,.ligne-page{max-width:var(--container-content);margin:0 auto;padding:0 1rem 2rem}.pm-grid,.horaires-grid,.trafic-grid,.ligne-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}@media (max-width: 767px){body.itinerary-view-active,.pm-hero,.horaires-hero,.trafic-hero{background:#111b2b!important}.ligne-hero{padding:1rem .75rem .75rem}.pm-hero-title,.horaires-hero h1,.trafic-hero h1,.ligne-hero h1{font-size:clamp(1.4rem,5vw,1.8rem)}.pm-hero-subtitle,.horaires-hero p,.trafic-hero p,.ligne-hero p{font-size:.9rem}}.card,.btn,.nav-dropdown-menu,.bottom-sheet,.modal{will-change:transform,opacity;transform:translateZ(0)}#map-view,#itinerary-view,#detail-panel,.tarifs-container{content-visibility:auto;contain-intrinsic-size:0 500px}#main-header{contain:layout style}.results-list,.bottom-sheet-content,.tarifs-card-body{contain:content;overflow-anchor:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid var(--pm-green);outline-offset:2px;border-radius:var(--radius-sm)}body.dark-theme button:focus-visible,body.dark-theme a:focus-visible,body.dark-theme input:focus-visible{outline-color:var(--pm-cyan)}.btn-icon-round,.btn-geolocate,.btn-swap-direction,button.btn-close,button.tab{min-width:44px;min-height:44px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body.dark-theme{--bg-page: #0b1220;--bg-card: #0f1724;--bg-elevated: #151d2b;--bg-main: #0b1220;--bg-secondary: #0f1724;--bg-tertiary: #1a2332;--bg-light: #0b1220;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border: rgba(255,255,255,.08);--primary: var(--pm-green);--primary-dark: var(--pm-green-hover);--color-tab-active: var(--pm-green);--color-nav-condensed-bg: rgba(11, 18, 32, .95)}html.dark-theme,body.dark-theme{background-color:#0b1220}body.dark-theme #main-header{background:var(--bg-page);border-bottom-color:#ffffff0f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}body.dark-theme .card,body.dark-theme .instruction-content{background:#0f172ae6;border-color:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}body.dark-theme .nav-button-condensed{color:#fff}body.dark-theme #map{background:#06131b}.offline-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;font-size:13px;font-weight:500;text-align:center;border-bottom:1px solid rgba(146,64,14,.2);animation:slideDown .3s ease;z-index:1000}.offline-banner svg{flex-shrink:0;opacity:.8}.offline-banner.hiding{animation:slideUp .3s ease forwards}body.dark-theme .offline-banner{background:linear-gradient(135deg,#422006,#451a03);color:#fde68a;border-color:#fde68a33}.offline-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--bg-main, #fff);border-radius:12px;box-shadow:0 4px 20px #00000026;font-size:14px;font-weight:500;z-index:10001;animation:fadeInUp .3s ease}.offline-toast-success{border:2px solid var(--pm-green, #22c55e);color:var(--pm-green-hover, #16a34a)}.offline-toast.hiding{animation:fadeOutDown .3s ease forwards}body.dark-theme .offline-toast{background:#1e293b;color:#e2e8f0}body.dark-theme .offline-toast-success{color:#4ade80}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,20px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes ripple{to{transform:scale(4);opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out forwards}.animate-fade-in-up{animation:fadeInUp var(--transition-normal) ease-out forwards}.animate-fade-in-down{animation:fadeInDown var(--transition-normal) ease-out forwards}.animate-slide-in-left{animation:slideInLeft var(--transition-normal) ease-out forwards}.animate-slide-in-right{animation:slideInRight var(--transition-normal) ease-out forwards}.animate-scale-in{animation:scaleIn var(--transition-normal) ease-out forwards}.animate-bounce-in{animation:bounceIn var(--transition-bounce) ease-out forwards}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.notification-badge{animation:pulse 2s ease-in-out infinite}@keyframes notificationPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.page-transition-enter{opacity:0;transform:translateY(10px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity var(--transition-normal),transform var(--transition-normal)}.page-transition-exit{opacity:1}.page-transition-exit-active{opacity:0;transition:opacity var(--transition-fast)}.pm-ripple-host{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.pm-ripple{position:absolute;border-radius:999px;pointer-events:none;background:#0206171a;transform:scale(0);opacity:.9;animation:pm-ripple .48s ease-out forwards}body.dark-theme .pm-ripple{background:#ffffff24}@keyframes pm-ripple{to{transform:scale(1);opacity:0}}:where(.btn,.btn-icon-round,.quick-action-card,.nav-dropdown-item,.mobile-menu-item,.bottom-nav-item,.route-option){transition:transform .12s ease,box-shadow .16s ease,background-color .16s ease}:where(.btn,.btn-icon-round,.quick-action-card,.nav-dropdown-item,.mobile-menu-item,.bottom-nav-item,.route-option).pm-is-pressed{transform:translateZ(0) scale(.985)}:root{--bottom-nav-height: 66px}.bottom-nav{display:none}@media (max-width: 768px){#app-view-root{padding-bottom:var(--bottom-nav-height)}body.itinerary-view-active #app-view-root{padding-bottom:0!important;background:#111b2b!important}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;height:var(--bottom-nav-height);padding:0;padding-bottom:env(safe-area-inset-bottom);border-radius:0;background:#fffffffa;border-top:1px solid rgba(15,23,42,.12);box-shadow:0 -2px 10px #00000014;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:15000;overflow:hidden;gap:0;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;touch-action:none;overscroll-behavior:none}body.dark-theme .bottom-nav{background:#0f172af2;border-top-color:#ffffff1a;box-shadow:0 -4px 20px #0006}.bottom-nav-item{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:transparent;color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 6px;margin:0;cursor:pointer;min-width:0;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.bottom-nav-icon{width:20px;height:20px}.bottom-nav-label{font-size:10px;letter-spacing:.02em;font-weight:700;text-transform:uppercase;opacity:.9;white-space:nowrap}.bottom-nav-item.is-active{color:var(--primary);background:#22c55e1a}.bottom-nav-item--primary{color:#0f172a}body.dark-theme .bottom-nav-item--primary{color:#e2e8f0}.bottom-nav-item--primary.is-active{background:linear-gradient(135deg,#22c55e38,#00c8ff1f)}body.detail-view-open .bottom-nav{transform:translate3d(0,120%,0);transition:transform .22s ease}}body.dark-theme #results-map,body.dark-theme #detail-map{background:#050c15}body.dark-theme #top-bar{background:transparent}body.dark-theme #btn-back-to-dashboard-from-map,body.dark-theme #clock,body.dark-theme #status-info{background:#141926f2!important;box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff0f!important}body.dark-theme #btn-back-to-dashboard-from-map{color:#e2e8f0!important}body.dark-theme #btn-back-to-dashboard-from-map:hover{background:#1e2637fa!important}body.dark-theme #clock{color:#e2e8f0}body.dark-theme #clock svg{color:#64748b}body.dark-theme #current-time{color:#f1f5f9}body.dark-theme #date-indicator{color:#94a3b8;border-left-color:#ffffff1a}body.dark-theme #status-info{color:#e2e8f0}body.dark-theme #map-container #map-view #top-bar>#btn-toggle-filter{background:#0f172af2!important;border-color:#ffffff1a!important;color:#f1f5f9!important}body.dark-theme #route-filter-panel{background:#040a12f2;border-left:1px solid rgba(255,255,255,.08);box-shadow:0 20px 30px #000000a6}body.dark-theme .leaflet-control-locate{background-color:#ffffff08;border-color:#ffffff0a}body,.card,.planner-block,#main-header,#map,.btn,.btn-icon-round{transition:background-color .18s ease,color .18s ease,border-color .18s ease}.btn,.btn-icon-round{pointer-events:auto}.btn-icon-round{display:inline-flex;align-items:center;justify-content:center}.leaflet-bar{border:none!important;box-shadow:none!important;background:transparent!important}.leaflet-control-attribution{background:#ffffffb3!important;color:#666!important;border:none!important;border-radius:4px!important;padding:2px 6px!important;font-size:10px!important;line-height:1.2!important;box-shadow:none!important;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:.7;transition:opacity .2s}.leaflet-control-attribution:hover{opacity:1}.leaflet-control-attribution a{color:#444!important;text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}body.dark-theme .leaflet-control-attribution,#map.dark-theme .leaflet-control-attribution,#detail-map.dark-theme .leaflet-control-attribution,#results-map.dark-theme .leaflet-control-attribution{background:#00000080!important;color:#ffffff80!important}body.dark-theme .leaflet-control-attribution a,#map.dark-theme .leaflet-control-attribution a,#detail-map.dark-theme .leaflet-control-attribution a,#results-map.dark-theme .leaflet-control-attribution a{color:#fff9!important}#map{z-index:1}.leaflet-top.leaflet-right{right:12px;top:12px}@media (max-width: 768px){.leaflet-top.leaflet-right{right:10px;top:auto;bottom:80px}}*{margin:0;padding:0;box-sizing:border-box}html{margin:0;padding:0;height:auto;min-height:100%;width:100%;overflow-x:hidden;overflow-y:auto!important;background-color:#f8fafc;background-color:var(--bg-page, #f8fafc);overscroll-behavior:none;overscroll-behavior-x:none;overscroll-behavior-y:none}html,body{-webkit-font-smoothing:antialiased;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text-primary);background-color:var(--bg-page, #f8fafc);overscroll-behavior:none;overscroll-behavior-y:none;overscroll-behavior-x:none;overflow-anchor:none}body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;overflow-y:visible!important;-webkit-overflow-scrolling:touch;overscroll-behavior:auto;touch-action:pan-y}#app-view-root{flex:1 0 auto;display:flex;flex-direction:column;min-height:100vh;overflow-y:visible}#legal-strip{background:#ffffffeb;border-top:1px solid var(--border);padding:.75rem 1.25rem;font-size:.78rem;color:var(--text-secondary);box-shadow:0 -6px 12px #0f172a0d;width:100%;margin-top:auto}.legal-strip-content{max-width:1300px;margin:0 auto;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:space-between}.legal-strip-content a{color:var(--primary);font-weight:600}.legal-strip-content code{font-family:Manrope,monospace;font-size:.72rem;background:#2563eb14;padding:.1rem .35rem;border-radius:var(--radius-sm)}.legal-about-btn{margin-left:auto;background:var(--primary);color:#fff!important;padding:.4rem 1rem;border-radius:var(--radius-full);font-weight:700;text-decoration:none;box-shadow:var(--elevation-1);transition:transform var(--transition-quick),box-shadow var(--transition-quick)}.legal-about-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}body.dark-theme #legal-strip{background:#060c14e6;border-top-color:#ffffff14;box-shadow:0 -10px 24px #0006}body.dark-theme .legal-strip-content code{background:#4aa3ff26}body.dark-theme .legal-about-btn{background:var(--primary)}@media (max-width: 768px){.legal-strip-content{flex-direction:column;align-items:flex-start;gap:.5rem}.legal-about-btn{margin-left:0;width:100%;text-align:center}}body.about-page{display:flex;min-height:100vh;flex-direction:column;background:var(--bg-light);padding-top:0}#main-header.about-header{position:sticky;top:0;margin:0;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:10;padding:0 1.5rem}.about-header-content{gap:1rem}.about-back-row{width:100%;display:flex;justify-content:flex-start;margin-bottom:.75rem}.about-page .about-back-btn{display:inline-flex;align-items:center;gap:.4rem}.about-card,.about-tile{width:100%;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:2rem;line-height:1.6}.about-card{line-height:1.7;opacity:0;transform:translateY(20px);animation:fadeSlideUp .8s ease forwards}.about-tile{min-height:360px;display:flex;flex-direction:column;justify-content:space-between;gap:1.25rem;opacity:0;transform:translateY(32px);transition:transform .7s ease,opacity .7s ease}.about-tile.is-visible{opacity:1;transform:translateY(0)}.hero-card{background-image:linear-gradient(135deg,#2563eb1f,#6366f114);border:1px solid rgba(37,99,235,.25)}.tile-primary{background-image:linear-gradient(135deg,#2563eb14,#6366f10d);border:1px solid rgba(37,99,235,.18)}.tile-secondary{background:var(--bg-main)}.about-page #main-header{padding:0 1.5rem}.about-page .about-header-content{align-items:center;min-height:64px}.about-page .about-back-btn{padding:.55rem .9rem;border-radius:var(--radius-full);font-weight:600;border:1px solid var(--border);color:var(--text-primary);background:#ffffffbf;box-shadow:var(--shadow-sm)}.about-page .about-back-btn svg{flex-shrink:0}.about-page .header-nav .btn-icon-round{width:44px;height:44px}.about-page .install-btn{width:100%;justify-content:center}.about-page .hero-link{display:inline-flex;gap:.3rem;text-decoration:none}.hero-badge{display:inline-flex;align-items:center;gap:.35rem;background:#fff6;padding:.25rem .8rem;border-radius:var(--radius-full);font-weight:600;color:var(--primary)}.hero-lede{font-size:1.1rem;margin-top:.5rem;color:var(--text-primary)}.hero-link{display:inline-flex;align-items:center;font-weight:700;margin-top:1rem;color:var(--primary)}.about-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1.25rem 0}.about-meta-grid h3{font-size:.95rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.about-meta-grid p{margin-top:.35rem}.about-card h1{font-size:2rem;margin-bottom:1rem}.about-card ul{margin:1.5rem 0;padding-left:1.2rem}.about-card li{margin-bottom:.5rem}.about-card a{color:var(--primary);font-weight:600}.info-card{background:var(--bg-main)}.info-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.tile-points{list-style:none;padding:0;display:flex;flex-direction:column;gap:.85rem}.tile-points li span{display:block;font-weight:700}.tile-points small{color:var(--text-secondary);font-size:.9rem}.install-blurb{font-size:1rem;font-weight:600;color:var(--text-primary)}.install-helper{margin:.75rem 0 .25rem;color:var(--text-secondary);font-size:.9rem}.install-btn{margin-top:1rem;border:none;background:var(--primary);color:#fff;font-weight:700;padding:.85rem 1.5rem;border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-md)}.install-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.about-page #legal-strip{margin-top:auto}body.dark-theme .about-card,body.dark-theme .about-tile{background:#060c14d9;border-color:#ffffff14;box-shadow:0 15px 35px #0000008c}body.dark-theme .hero-card{background-image:linear-gradient(135deg,#4aa3ff2e,#2563eb14)}body.dark-theme .install-helper{color:var(--text-secondary)}@media (max-width: 768px){.about-main{padding-top:1.5rem}.about-card,.about-tile{padding:1.5rem}}@media (max-width: 640px){.about-page #main-header{padding:0 1rem}.about-back-row{padding:.75rem 1rem 0}.about-page .about-main{padding:1.5rem 1rem 2.25rem;gap:1.1rem}.about-page .tile-layout{gap:1rem}.about-page .about-tile{min-height:auto;gap:.95rem}.about-page .hero-link{width:100%;justify-content:center}}@media (max-width: 900px){.about-page #main-header{padding:0 1rem}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}.fade-in:nth-of-type(2){animation-delay:.1s}.fade-in:nth-of-type(3){animation-delay:.2s}body.view-is-locked{position:relative;inset:auto;width:100%;overflow-x:hidden;overflow-y:visible}body.detail-view-open{position:relative!important;inset:auto!important;width:100%!important;overflow-x:hidden!important;overflow-y:visible!important;touch-action:pan-y}body.detail-view-open #site-footer,body.detail-view-open #legal-strip{display:none!important}@media (max-width: 768px){body{position:relative;overflow-x:hidden;overflow-y:visible;min-height:100vh;height:auto}#app-view-root{overflow-y:visible;-webkit-overflow-scrolling:touch;min-height:100vh;height:auto}body.view-is-locked{position:relative;inset:auto;height:auto;min-height:100vh;overflow-y:visible;overflow-x:hidden}body.view-is-locked #app-view-root{min-height:100vh}body.detail-view-open{position:relative!important;inset:auto!important;overflow-x:hidden!important;overflow-y:visible!important;touch-action:pan-y!important}}#dashboard-container{flex:1 0 auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior:none;touch-action:pan-y;padding-bottom:0;will-change:scroll-position;-webkit-backface-visibility:hidden;backface-visibility:hidden;min-height:100vh}#map-container{flex:1 0 auto;display:flex;overflow:hidden;overscroll-behavior:none;touch-action:pan-x pan-y}#itinerary-results-container{flex:1 0 auto;display:flex;flex-direction:row;height:calc(100vh - 64px);min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}body.view-map-locked{overflow-x:hidden!important;overflow-y:visible!important;position:relative!important;width:100%!important;height:auto!important;min-height:100vh!important;top:auto!important;left:auto!important;background-color:var(--bg-page, #f8fafc)!important}body.dark-theme.view-map-locked{background-color:#0b1220!important}body.itinerary-view-active{overflow-x:hidden!important;overflow-y:visible!important;position:relative!important;width:100%!important;min-height:100vh!important;top:auto!important;left:auto!important;background-color:var(--bg-page, #f8fafc)!important;overscroll-behavior:auto!important;overscroll-behavior-x:auto!important;overscroll-behavior-y:auto!important}body.dark-theme.itinerary-view-active{background-color:#0b1220!important}body.view-map-locked #map-container{position:fixed!important;top:64px!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:calc(100svh - 64px)!important;height:calc(100vh - 64px)!important;z-index:2000}body.view-map-locked #main-header{position:fixed;top:0;left:0;right:0;z-index:2500}#main-header{background:var(--bg-page);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:0 1.5rem;position:sticky;top:0;z-index:1050;flex-shrink:0;touch-action:manipulation;overscroll-behavior:contain}@media (max-width: 900px){#main-header{position:fixed;top:0;left:0;right:0;width:100vw;z-index:2000;background:var(--bg-page, #fff);box-shadow:0 2px 8px #0000000a;border-bottom:1px solid var(--border, #e5e7eb);padding-top:env(safe-area-inset-top,0px)}}@supports not (backdrop-filter: blur(10px)){.hero-section .planner-block,.instruction-content,#main-header{background:var(--bg-page)}}body.view-is-locked #main-header,body.view-is-locked #legal-strip{display:none}body.view-map-locked #site-footer,body.view-map-locked #legal-strip,body.itinerary-view-active #site-footer,body.itinerary-view-active #legal-strip{display:none!important}.header-content{display:flex;justify-content:space-between;align-items:center;height:64px;max-width:1300px;margin:0 auto}.logo{display:flex;align-items:center;gap:1rem;font-weight:800;color:var(--text-primary)}.header-logo-img{height:40px;max-width:140px;width:auto;object-fit:contain;display:block}body:not(.dark-theme) .header-logo-img{filter:brightness(0) saturate(100%)}.header-title-group{display:flex;flex-direction:column;line-height:1.05}.brand-name{font-size:1.4rem;font-weight:800;letter-spacing:-.03em;background:linear-gradient(120deg,var(--primary),#14b8a6);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-sub{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.header-logo-icon{color:var(--primary)}.header-nav{display:flex;align-items:center;gap:1rem}.news-banner{display:flex;align-items:center;gap:.75rem;margin-top:12px;padding:.875rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000f;position:relative;z-index:1}.news-banner-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#2a9d8f1a;border-radius:10px;color:#2a9d8f;flex-shrink:0}.news-banner-content{flex:1;min-width:0}.news-banner-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#2a9d8f;margin-bottom:.125rem}.news-banner-text{display:block;font-size:.85rem;color:#1e3a5f;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.news-banner-text.marquee-text{text-overflow:clip}.news-banner-text .marquee-inner{display:inline-block;white-space:nowrap;padding-left:0}.news-banner-text.marquee-active .marquee-inner{animation:marquee-scroll 15s linear infinite;padding-left:100%}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}.news-banner:hover .marquee-inner{animation-play-state:paused}.news-banner.severity-perturbation{background:linear-gradient(135deg,#f973161a,#ea580c26);border-color:#f973164d}.news-banner.severity-perturbation .news-banner-icon{background:#f9731633;color:#ea580c}.news-banner.severity-perturbation .news-banner-label{color:#ea580c}.news-banner.severity-retard{background:linear-gradient(135deg,#eab3081a,#ca8a0426);border-color:#eab3084d}.news-banner.severity-retard .news-banner-icon{background:#eab30833;color:#ca8a04}.news-banner.severity-retard .news-banner-label{color:#ca8a04}.news-banner.severity-annulation{background:linear-gradient(135deg,#ef44441a,#dc262626);border-color:#ef44444d}.news-banner.severity-annulation .news-banner-icon{background:#ef444433;color:#dc2626}.news-banner.severity-annulation .news-banner-label{color:#dc2626}.news-banner.has-perturbations{cursor:pointer;transition:all .2s ease}.news-banner.has-perturbations:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.news-banner-link{padding:.375rem .875rem;background:#2a9d8f;color:#fff;font-size:.75rem;font-weight:600;text-decoration:none;border-radius:20px;flex-shrink:0;transition:all .2s ease}.news-banner-link:hover{background:#238b7e}body.dark-theme .news-banner-text{color:#e2e8f0}body.dark-theme .stats-section .stat-number{color:#a3b83c}body.dark-theme .stats-section .stat-label{color:#fff9}.hero-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:linear-gradient(135deg,#1e3a5f,#2d5a7b,#4a90a4 60%,#87ceeb);z-index:0;pointer-events:none;contain:strict;content-visibility:auto}.hero-backdrop:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/icons/perigueux-hero-CUB1yHQM.webp) center top / cover no-repeat;opacity:0;animation:heroImageFadeIn .6s ease-out .3s forwards;will-change:opacity}@keyframes heroImageFadeIn{to{opacity:1}}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#1e3a5f4d,#1e3a5f59,#ffffffbf 60%,#ffffffe6,#fffffffa);pointer-events:none}#dashboard-hall{position:relative;z-index:1;min-height:100%}.planner-section{padding:0;position:relative;z-index:100;padding-top:var(--spacing-12);padding-bottom:0}.planner-block{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--elevation-4);border:2px solid rgba(34,197,94,.2);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);position:relative;z-index:100;margin-bottom:0}.planner-block:hover{border-color:#22c55e66;box-shadow:var(--elevation-5)}.planner-title{font-size:1rem;font-weight:700;color:#1e3a5f;margin:0 0 1.25rem;text-align:center}.planner-search-btn:hover,#planner-submit-btn:hover{background:#238b7e!important;box-shadow:0 6px 20px #2a9d8f66!important;transform:translateY(-2px)}.planner-search-btn:active,#planner-submit-btn:active{transform:translateY(0) scale(.98)}.popover-tabs{display:flex;border-bottom:1px solid #e5e7eb;margin-bottom:1rem}.popover-tab{flex:1;padding:.75rem;background:none;border:none;font-size:.9rem;font-weight:500;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease}.popover-tab.active{color:#1e3a5f;border-bottom-color:#1e3a5f}.popover-time-inputs{display:flex;align-items:flex-end;gap:.5rem}.time-separator{font-size:1.25rem;font-weight:600;color:#64748b;padding-bottom:.75rem}body.dark-theme .hero-backdrop{opacity:.5}body.dark-theme .hero-overlay{background:linear-gradient(to bottom,#0f172a66,#0f172a99,#0f172ad9 60%,#0f172af2,#0f172a)}body.dark-theme .planner-block{background:#0f172af2;border-color:#22c55e4d}body.dark-theme .planner-block:hover{border-color:#22c55e80}body.dark-theme .planner-title{color:#e2e8f0}body.dark-theme .planner-block .form-group input[type=text]{background:#1e293bcc;border:1px solid #374151;color:#e2e8f0}body.dark-theme .search-priority-section{border-bottom-color:#ffffff1a}body.dark-theme .search-prominent input{background:var(--bg-secondary);border-color:#ffffff1a;color:var(--text-primary)}body.dark-theme .search-prominent input:focus{border-color:var(--pm-green);box-shadow:0 0 0 3px #22c55e33}body.dark-theme .empty-state .check-icon{color:var(--pm-cyan)}body.dark-theme .empty-state h4{color:var(--text-primary)}body.dark-theme .planner-block .form-group input[type=text]::placeholder{color:#ffffff80}body.dark-theme .planner-block .form-group input[type=text]:focus{background:#1e293bf2;border-color:#2a9d8f;box-shadow:0 0 0 3px #2a9d8f33}body.dark-theme .btn-when{background:#ffffff0d;border-color:#ffffff1a;color:#e2e8f0}body.dark-theme .swap-line{background:#374151}body.dark-theme .btn-swap-direction{background:#1e293bf2;border-color:#374151;color:#ffffffb3;box-shadow:0 2px 8px #0000004d}body.dark-theme .btn-swap-direction:hover{background:#2a9d8f33;border-color:#2a9d8f;color:#2a9d8f}body.dark-theme .input-with-icon .input-icon{color:#ffffff80}body.dark-theme .btn-geolocate{color:#fff9;background:transparent}body.dark-theme .btn-geolocate:hover:not(:disabled){background:#2a9d8f33;color:#e2e8f0}.network-delays-widget{margin-top:1.5rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:var(--radius-md);padding:1rem}.network-delays-header{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#92400e;margin-bottom:.75rem}.hall-line-shortcuts{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:12px;padding:10px 12px;background:#ffffffeb;border:1px solid #e5e7eb;border-radius:var(--radius-lg);box-shadow:0 2px 10px #0000000f;position:relative;z-index:10;pointer-events:auto;width:100%}body.dark-theme .hall-line-shortcuts{background:#0f172ae0;border-color:#ffffff14;box-shadow:0 10px 28px #00000059}.hall-line-btn{width:40px;height:40px;border-radius:9999px;display:grid;place-items:center;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800;font-size:.95rem;text-decoration:none;border:1px solid rgba(0,0,0,.08);transition:transform .15s ease,box-shadow .15s ease}.hall-line-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0000001f}.hall-line-btn:active{transform:translateY(0);box-shadow:none}.hall-line-btn.line-a{background:#fdd003;color:#000}.hall-express{margin-top:12px;padding:12px;background:#ffffffeb;border:1px solid #e5e7eb;border-radius:var(--radius-lg);box-shadow:0 2px 10px #0000000f;position:relative;z-index:10;pointer-events:auto;width:100%}@media (min-width: 1024px){.planner-section{padding-bottom:0}.planner-block{margin-bottom:0}.quick-actions-section,.news-banner,.hall-line-shortcuts,.hall-express{margin-top:16px}}body.dark-theme .hall-express{background:#0f172ae0;border-color:#ffffff14}.hall-express-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.hall-express-title{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800;font-size:.9rem;color:#1e3a5f}body.dark-theme .hall-express-title{color:#e2e8f0}.hall-express-all{font-size:.8rem;font-weight:700;color:#2a9d8f;text-decoration:none}.hall-express-all:hover{text-decoration:underline}.hall-express-chips{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.hall-express-chips::-webkit-scrollbar{display:none}.express-chip{flex:0 0 auto;padding:10px 12px;border-radius:9999px;background:#2a9d8f1a;border:1px solid rgba(42,157,143,.25);color:#1e3a5f;font-weight:800;font-size:.85rem;text-decoration:none;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.dark-theme .express-chip{background:#2a9d8f2e;border-color:#2a9d8f47;color:#e2e8f0}.express-chip:hover{transform:translateY(-1px)}.express-chip.personalized{background:linear-gradient(135deg,#22c55e1f,#00c8ff1f);border-color:#22c55e59;box-shadow:0 0 0 1px #22c55e1a}body.dark-theme .express-chip.personalized{background:linear-gradient(135deg,#22c55e2e,#00c8ff26);border-color:#22c55e66}.hall-express-chips[data-personalized=true]:before{content:"⭐";display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;font-size:14px;opacity:.7}@media (min-width: 1024px){.hall-line-shortcuts,.hall-express{max-width:640px;margin-left:auto;margin-right:auto}}.main-nav-buttons-condensed{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem;max-width:900px;margin-left:auto;margin-right:auto;position:relative;z-index:1}.bottom-content-wrapper{position:relative;z-index:1}.bottom-content-wrapper{margin-top:2.5rem;margin-bottom:2rem;max-width:900px;margin-left:auto;margin-right:auto}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.bottom-grid .card{display:flex;flex-direction:column}.bottom-grid .card h4{font-size:1.125rem;font-weight:700;margin-bottom:.75rem}.bottom-grid .card p{font-size:.875rem;color:var(--text-secondary);line-height:1.6;flex:1 0 auto}.key-figures-card p{margin-bottom:1.5rem}.key-figures-grid{display:flex;justify-content:space-around;text-align:center;gap:1rem}.key-figure-item{display:flex;flex-direction:column;align-items:center}.key-figure-number{font-size:2.25rem;font-weight:800;color:var(--primary);line-height:1.1}.key-figure-label{font-size:.875rem;color:var(--text-secondary);font-weight:500;margin-top:.25rem}#dashboard-hall{visibility:visible;overflow-y:visible;overscroll-behavior:none;-webkit-overflow-scrolling:touch;opacity:1;transition:opacity .15s ease-out}#dashboard-hall.view-is-active{animation:pm-view-enter .24s ease-out both;will-change:opacity,transform}#dashboard-hall:not(.view-is-active){display:none;pointer-events:none;max-height:0;overflow:hidden;padding-top:0!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important;opacity:0}#dashboard-content-view{display:none;pointer-events:none;max-height:0;overflow:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch;opacity:0;transition:opacity .15s ease-out}#dashboard-content-view.view-is-active{display:block;pointer-events:auto;max-height:none;overflow:visible;opacity:1;padding-top:.75rem;animation:pm-view-enter .24s ease-out both;will-change:opacity,transform}#dashboard-content-view #btn-back-to-hall{margin:0 1rem 1rem}#btn-back-to-hall:not(.app-back-btn){margin-bottom:1.5rem;background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary);font-weight:600;padding-left:.75rem}#dashboard-hall .planner-section{pointer-events:auto;z-index:100}#dashboard-content-view .planner-section{display:none;pointer-events:none;z-index:0}#btn-back-to-hall:not(.app-back-btn) svg{margin-right:.5rem;color:var(--text-secondary)}@keyframes pm-view-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pm-card-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.content-cards{display:grid;grid-template-columns:1fr;max-width:900px;margin:0 auto;gap:1.5rem}.card{background:#ffffffd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--elevation-1);transition:box-shadow var(--transition-normal),transform var(--transition-normal)}.card:hover{box-shadow:var(--elevation-3)}#dashboard-hall .card{max-height:2000px;padding:1.5rem}#dashboard-content-view .card{max-height:0;overflow:hidden;padding:0 1.5rem;display:none;opacity:0;transition:opacity .15s ease-out}#dashboard-content-view .card.view-active{display:block;max-height:none;overflow:visible;padding:1.5rem;opacity:1;animation:pm-card-enter .22s ease-out both;will-change:opacity,transform;max-width:var(--container-hero);margin-left:auto;margin-right:auto}#horaires.view-active,#info-trafic.view-active{max-width:var(--container-hero);margin-left:auto;margin-right:auto;overscroll-behavior:none;overscroll-behavior-y:none;overscroll-behavior-x:none;-webkit-overflow-scrolling:touch;touch-action:pan-y;background-color:var(--bg-page, #f8fafc)}body.dark-theme #horaires.view-active,body.dark-theme #info-trafic.view-active{background-color:#0b1220}#horaires.view-active{width:100%;box-sizing:border-box;margin-left:0;margin-right:0;padding:1.5rem}@media (prefers-reduced-motion: reduce),(prefers-reduced-data: reduce),(update: slow){#dashboard-hall,#dashboard-content-view,#dashboard-content-view .card{transition:none}#dashboard-hall.view-is-active,#dashboard-content-view.view-is-active,#dashboard-content-view .card.view-active{animation:none;transform:none}}#fiche-horaire-container{margin-bottom:3rem}.quick-actions-section{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:16px;position:relative;z-index:1}.quick-actions-section.desktop-only{display:grid}@media (max-width: 768px){.quick-actions-section.desktop-only{display:none}}.quick-action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem .75rem;background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius-lg);cursor:pointer;text-decoration:none;color:#1e3a5f;transition:all .2s ease;box-shadow:0 4px 12px #00000014}.quick-action-card:hover{border-color:#2a9d8f;box-shadow:0 8px 24px #2a9d8f2e;transform:translateY(-3px)}.quick-action-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#2a9d8f1a;border-radius:12px;color:#2a9d8f}.quick-action-icon svg{stroke-width:2.5}.quick-action-card span{font-size:.85rem;font-weight:600;text-align:center;color:#1e3a5f}body.dark-theme .quick-action-card{background:#1e293be6;border:1px solid #374151;color:#e2e8f0;box-shadow:0 4px 12px #0000004d}body.dark-theme .quick-action-card:hover{border-color:#2a9d8f;background:#2a9d8f1a;box-shadow:0 8px 24px #2a9d8f33}body.dark-theme .quick-action-icon{background:#2a9d8f33;color:#2a9d8f}body.dark-theme .quick-action-card span{color:#e2e8f0}#fiche-horaire-container{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-main);margin-bottom:3rem}.accordion-group summary:active{transform:scale(.985)}.accordion-group details[open] summary{background:var(--bg-main)}.search-priority-section{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:2px solid var(--border)}.search-priority-section h3{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-4)}.schedule-sheets-section{margin-top:var(--spacing-6)}.schedule-sheets-section h3{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-4)}.hall-line-shortcuts{margin-top:12px;padding:12px;background:#ffffffeb;border:1px solid #e5e7eb;border-radius:var(--radius-lg);box-shadow:0 2px 10px #0000000f}body.dark-theme .hall-line-shortcuts{background:#0f172ae0;border-color:#ffffff14}.hall-line-shortcuts-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.hall-line-shortcuts-title{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800;font-size:.9rem;color:#1e3a5f}body.dark-theme .hall-line-shortcuts-title{color:#e2e8f0}.hall-line-shortcuts-all{font-size:.8rem;font-weight:700;color:#2a9d8f;text-decoration:none}.hall-line-shortcuts-all:hover{text-decoration:underline}.hall-line-btns{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.hall-line-btns::-webkit-scrollbar{display:none}#horaires-search-results{position:absolute;top:calc(100% + 5px);left:0;width:100%;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--elevation-3);max-height:300px;overflow-y:auto;z-index:var(--z-dropdown);-webkit-overflow-scrolling:touch;overscroll-behavior:auto}.fiche-horaire-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:2rem 0 1rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}#fiche-horaire-container{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-main);max-width:var(--container-hero);margin-left:auto;margin-right:auto}.accordion-group details{border-bottom:1px solid var(--border)}.accordion-group details:last-child{border-bottom:none}.accordion-group summary{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;font-size:1rem;font-weight:600;background:var(--bg-secondary);box-shadow:var(--elevation-0);list-style:none;transition:background .2s ease,box-shadow var(--transition-normal),transform var(--transition-quick)}.accordion-group summary:hover{background:#f1f5f9}.accordion-group summary::-webkit-details-marker{display:none}.accordion-group summary:after{content:"+";font-size:1.5rem;font-weight:300;color:var(--text-secondary);transition:transform .3s ease-in-out}.accordion-group details[open] summary{background:var(--bg-main);box-shadow:var(--elevation-1)}.accordion-group details[open] summary:after{transform:rotate(45deg)}.accordion-content{background:var(--bg-main);padding:0 var(--spacing-5);overflow:hidden;max-height:0;opacity:0;transform:translateY(-6px);transition:max-height var(--transition-smooth),opacity var(--transition-normal),transform var(--transition-normal);overscroll-behavior:auto;-webkit-overflow-scrolling:touch}details[open] .accordion-content{max-height:1000px;opacity:1;transform:translateY(0)}.accordion-content-inner{padding:1rem 0}.accordion-content-inner a{display:block;padding:.75rem 0;color:var(--primary);text-decoration:none;font-weight:500;border-bottom:1px solid var(--border)}.accordion-content-inner a:last-child{border-bottom:none}.accordion-content-inner a:hover{text-decoration:underline}@media (prefers-reduced-motion: reduce),(prefers-reduced-data: reduce),(update: slow){.accordion-group summary,.accordion-group summary:after,.accordion-content{transition:none!important}.accordion-group summary:active,details[open] .accordion-content{transform:none!important}.accordion-content{opacity:1}}#horaires-search-shortcut{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center}#horaires-search-shortcut p{font-size:.9rem;color:var(--text-secondary);margin-bottom:1rem}#btn-horaires-search-focus{font-weight:600;padding-left:1.25rem;padding-right:1.25rem}#alert-banner{position:relative;z-index:10;background:linear-gradient(135deg,var(--color-yellow) 0%,#fbbf24 100%);color:#1a1a1a;padding:.65rem 1rem;display:flex;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:500;margin:0;border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px #00000014}#alert-banner.type-perturbation{background:linear-gradient(135deg,var(--color-orange) 0%,#ea580c 100%);color:#fff;border-bottom-color:#fff3}#alert-banner.type-annulation{background:linear-gradient(135deg,var(--color-red) 0%,#dc2626 100%);color:#fff;border-bottom-color:#fff3}#alert-banner.type-retard{background:linear-gradient(135deg,var(--color-yellow) 0%,#fbbf24 100%);color:#1a1a1a}#alert-banner-content{display:flex;align-items:center;gap:.5rem;flex:1;overflow:hidden}#alert-banner-content svg{flex-shrink:0;width:18px;height:18px}#alert-banner-content strong{font-weight:600}#alert-banner-close{background:#0000001a;border:none;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer;opacity:.8;padding:.25rem .5rem;border-radius:var(--radius-sm);margin-left:.5rem;flex-shrink:0;transition:all var(--transition-fast)}#alert-banner-close:hover{opacity:1;background:#0003}#alert-banner.type-perturbation #alert-banner-close,#alert-banner.type-annulation #alert-banner-close{background:#ffffff26}#alert-banner.type-perturbation #alert-banner-close:hover,#alert-banner.type-annulation #alert-banner-close:hover{background:#ffffff40}@media (max-width: 768px){#alert-banner{padding:.5rem .75rem;font-size:.8rem}#alert-banner-content{gap:.4rem}#alert-banner-content svg{width:16px;height:16px}#alert-banner-close{padding:.2rem .4rem;font-size:1.1rem}#info-trafic .tab-content{max-height:none;overflow-y:visible}}.tabs{display:flex;border:1px solid var(--color-tab-active);border-radius:var(--radius-md);margin-bottom:1.5rem;overflow:hidden;background:var(--bg-main)}.tab{flex:1;padding:.6rem 1rem;border:none;background:transparent;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--color-tab-active);transition:all var(--transition-normal);text-transform:capitalize;position:relative}.tab:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--color-tab-active);transition:width var(--transition-fast),left var(--transition-fast)}.tab:not(.active):hover:after{width:100%;left:0}.tab.active{background:var(--color-tab-active);color:#fff}.tab:not(.active):hover{background:#0080801a}.tab:first-child{border-right:1px solid var(--color-tab-active)}.tab-content{max-height:450px;overflow-y:auto;overscroll-behavior:auto;-webkit-overflow-scrolling:touch}.trafic-group{margin-bottom:1.5rem}.trafic-group h4{font-size:1.1rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.trafic-badge-list{display:flex;flex-wrap:wrap;gap:1rem .75rem}.trafic-badge-item{display:flex;flex-direction:column;align-items:center;cursor:pointer;min-width:45px;position:relative;transition:transform var(--transition-quick)}.trafic-badge-item:active{transform:translateY(1px) scale(.97)}.trafic-badge-item:active .line-badge{transform:translateY(0) scale(.96);box-shadow:var(--elevation-2)}@media (prefers-reduced-motion: reduce),(prefers-reduced-data: reduce),(update: slow){.trafic-badge-item,.line-badge,.tab,.tab:after{transition:none!important}.trafic-badge-item:active,.trafic-badge-item:active .line-badge{transform:none!important}}.tarifs-page{max-width:900px;margin:0 auto;padding:2rem 1.5rem}.tarifs-header{text-align:center;margin-bottom:2rem}.tarifs-header h1{font-size:2rem;font-weight:800;color:var(--text-primary);margin:0 0 .5rem}.tarifs-header p{color:var(--text-secondary);font-size:1.1rem}.tarifs-card{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md);margin-bottom:1.5rem}.tarifs-card-warning{border-left:4px solid #dc3545}.tarifs-section-title{display:flex;align-items:center;gap:.75rem;font-size:1.35rem;font-weight:700;color:var(--text-primary);margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:2px solid var(--primary)}.tarifs-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--primary)}.tarifs-subtitle{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:1.5rem 0 .75rem}.tarifs-content p{color:var(--text-secondary);line-height:1.7;margin-bottom:1rem}.tarifs-content ul{list-style:none;padding:0;margin:1rem 0}.tarifs-content li{padding:.5rem 0 .5rem 1.5rem;position:relative;color:var(--text-secondary);line-height:1.6}.tarifs-content li:before{content:"•";color:var(--primary);font-weight:700;position:absolute;left:0}.tarifs-info-box{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1.25rem;margin:1.25rem 0}.tarifs-info-item{display:flex;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.tarifs-info-item:last-child{border-bottom:none;padding-bottom:0}.tarifs-info-item:first-child{padding-top:0}.tarifs-bullet{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--primary)}.tarifs-info-item p{margin:0}.tarifs-download-btn{display:inline-flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;padding:1rem 1.5rem;border-radius:var(--radius-md);text-decoration:none;font-weight:600;margin-top:1rem;transition:transform .2s,box-shadow .2s;box-shadow:var(--shadow-md)}.tarifs-download-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);color:#fff}.tarifs-download-warning{background:linear-gradient(135deg,#dc3545,#c82333)}.tarifs-buy-options{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.tarifs-buy-item{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border);transition:border-color .2s}.tarifs-buy-item:hover{border-color:var(--primary)}.tarifs-buy-icon{flex-shrink:0;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--primary)}.tarifs-buy-text{flex:1}.tarifs-buy-text strong{display:block;color:var(--text-primary);margin-bottom:.25rem}.tarifs-buy-text p{margin:0;font-size:.9rem;color:var(--text-secondary)}.tarifs-buy-text a{color:var(--primary);text-decoration:none}.tarifs-buy-text a:hover{text-decoration:underline}.tarifs-features{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.25rem}.tarifs-feature{display:flex;gap:1rem;padding:1.25rem;background:linear-gradient(135deg,#2563eb0d,#2563eb05);border-radius:var(--radius-md);border:1px solid rgba(37,99,235,.1)}.tarifs-feature-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;color:var(--primary)}.tarifs-feature-content{flex:1}.tarifs-feature-content strong{display:block;font-size:1.1rem;color:var(--text-primary);margin-bottom:.5rem}.tarifs-feature-content p{margin:0 0 .5rem}.tarifs-link{color:var(--primary);font-weight:500;text-decoration:none}.tarifs-link:hover{text-decoration:underline}.tarifs-small{font-size:.85rem!important;color:var(--text-secondary)!important;opacity:.8}.tarifs-amende-options{background:#fff3cd;border:1px solid #ffc107;border-radius:var(--radius-md);padding:1.25rem;margin:1rem 0}body.dark-theme .tarifs-amende-options{background:#ffc1071a;border-color:#ffc1074d}.tarifs-mediation{background:linear-gradient(135deg,#28a74514,#28a74508);border:1px solid rgba(40,167,69,.2);border-radius:var(--radius-md);padding:1.25rem;margin-top:1.5rem}.tarifs-price{font-weight:700;color:var(--primary);font-size:1.1rem}.tarifs-note{background:var(--bg-secondary);border-left:4px solid var(--primary);padding:1rem 1.25rem;border-radius:0 var(--radius-md) var(--radius-md) 0;margin:1.5rem 0}.tarifs-note p{margin:0;font-size:.9rem}body.dark-theme .tarifs-card{background:#ffffff08;border-color:#ffffff14}body.dark-theme .tarifs-buy-item,body.dark-theme .tarifs-info-box{background:#ffffff08}body.dark-theme .tarifs-buy-icon{background:#ffffff14}body.dark-theme .tarifs-feature{background:#4aa3ff0d;border-color:#4aa3ff1a}body.dark-theme .tarifs-mediation{background:#28a74514}.tarifs-intro{font-size:1.1rem;color:var(--text-secondary);margin-bottom:1.5rem}.tarifs-cta-section{background:linear-gradient(135deg,#2563eb0d,#2563eb05);border:1px solid rgba(37,99,235,.15);border-radius:var(--radius-md);padding:1.5rem;margin-top:1.5rem;text-align:center}.tarifs-cta-text{margin-bottom:1rem!important;font-weight:500}.tarifs-nav-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:2rem}.tarifs-nav-card{display:flex;align-items:center;gap:1rem;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem 1.25rem;text-decoration:none;transition:all .2s;box-shadow:var(--shadow-sm)}.tarifs-nav-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tarifs-nav-icon{display:flex;align-items:center;justify-content:center;color:var(--primary)}.tarifs-nav-title{flex:1;font-weight:600;color:var(--text-primary)}.tarifs-nav-arrow{color:var(--primary);font-weight:700;font-size:1.25rem}.tarifs-list-compact{list-style:none!important;padding:0!important;margin:.5rem 0 0!important}.tarifs-list-compact li{padding:.25rem 0 .25rem 1rem!important;position:relative;font-size:.9rem}.tarifs-list-compact li:before{content:"•";color:var(--primary);position:absolute;left:0}.tarifs-link-btn{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary);font-weight:600;text-decoration:none;padding:.5rem 0;transition:gap .2s}.tarifs-link-btn:hover{gap:.75rem;text-decoration:none}.tarifs-buy-item--highlight{border-color:var(--primary);background:linear-gradient(135deg,rgba(37,99,235,.05),transparent)}.tarifs-app-links{display:flex;gap:.75rem;margin-top:.75rem}.tarifs-app-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;text-decoration:none;transition:transform .2s}.tarifs-app-btn:hover{transform:scale(1.05)}.tarifs-app-btn--android{background:#3ddc84;color:#000}.tarifs-app-btn--ios{background:#000;color:#fff}.tarifs-feature--primary{background:linear-gradient(135deg,#2563eb1a,#2563eb08);border:2px solid rgba(37,99,235,.2)}.tarifs-feature-benefits{display:flex;gap:1rem;margin:.75rem 0}.tarifs-benefit{display:inline-flex;align-items:center;gap:.35rem;background:#28a7451a;color:#28a745;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600}.tarifs-benefit svg{flex-shrink:0}.tarifs-list-locations{list-style:none!important;padding:0!important;margin:1rem 0!important}.tarifs-list-locations li{display:flex;flex-direction:column;padding:.75rem!important;background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:.5rem}.tarifs-list-locations li:before{display:none}.tarifs-location-city{font-weight:700;color:var(--text-primary)}.tarifs-location-stops{font-size:.85rem;color:var(--text-secondary)}.tarifs-distributeur-features{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1rem;margin-top:1rem}.tarifs-distributeur-features h4{margin:0 0 .75rem;font-size:.95rem;color:var(--text-primary)}.tarifs-distributeur-features ul{margin:0}.tarifs-card--info{border-left:4px solid var(--primary)}.tarifs-card--warning{border-left:4px solid #ffc107}.tarifs-card--success{border-left:4px solid #28a745}.tarifs-alert{padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem}.tarifs-alert--important{background:linear-gradient(135deg,#2563eb1a,#2563eb08);border:1px solid rgba(37,99,235,.2)}.tarifs-alert--warning{background:#fff3cd;border:1px solid #ffc107}body.dark-theme .tarifs-alert--warning{background:#ffc1071a}.tarifs-alert p{margin:0 0 .5rem}.tarifs-alert p:last-child{margin-bottom:0}.tarifs-payment-options{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.tarifs-payment-option{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-md);align-items:flex-start}.tarifs-payment-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;color:var(--primary)}.tarifs-payment-text strong{display:block;color:var(--text-primary);margin-bottom:.25rem}.tarifs-payment-text p{margin:0;font-size:.9rem}.tarifs-address{font-style:italic;color:var(--text-secondary);margin-top:.5rem!important}.tarifs-mediation-box{background:linear-gradient(135deg,#28a7451a,#28a74508);border:2px solid rgba(40,167,69,.2);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.tarifs-mediation-question{font-size:1.1rem;text-align:center;margin-bottom:1.25rem!important}.tarifs-price-highlight{color:#dc3545;font-size:1.3rem}.tarifs-mediation-choices{display:flex;flex-direction:column;gap:.75rem}.tarifs-choice{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:var(--radius-md);background:var(--bg-main);border:1px solid var(--border)}.tarifs-choice-icon{display:flex;align-items:center;justify-content:center;color:var(--primary)}.tarifs-choice--pass{border-color:#28a745;background:#28a7450d}.tarifs-pass-details{display:block;font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.tarifs-choice-separator{text-align:center;font-weight:700;color:var(--text-secondary);padding:.25rem 0}.tarifs-mediation-conditions{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1.25rem}.tarifs-mediation-conditions h4{margin:0 0 .75rem;color:var(--text-primary)}.tarifs-mediation-docs{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}body.dark-theme .tarifs-nav-card{background:#ffffff08}body.dark-theme .tarifs-cta-section{background:#4aa3ff0d;border-color:#4aa3ff26}body.dark-theme .tarifs-list-locations li,body.dark-theme .tarifs-payment-option,body.dark-theme .tarifs-mediation-conditions,body.dark-theme .tarifs-distributeur-features{background:#ffffff08}body.dark-theme .tarifs-mediation-box{background:#28a74514}body.dark-theme .tarifs-choice{background:#ffffff08}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.modal.active{opacity:1;visibility:visible}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-content{position:relative;width:90%;max-width:480px;max-height:80vh;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #0006;overflow:hidden;transform:scale(.95) translateY(20px);transition:transform .25s ease;display:flex;flex-direction:column}.modal.active .modal-content{transform:scale(1) translateY(0)}.line-detail-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.line-detail-modal.active{opacity:1;visibility:visible}.line-detail-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.line-detail-content{position:relative;width:90%;max-width:420px;max-height:85vh;background:var(--bg-primary);border:2px solid var(--border);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #0009,0 0 0 1px #ffffff1a;overflow:hidden;transform:scale(.95) translateY(20px);transition:transform .25s ease}.line-detail-modal.active .line-detail-content{transform:scale(1) translateY(0)}.line-detail-close{position:absolute;top:12px;right:12px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;cursor:pointer;color:var(--text-secondary);transition:all .2s ease;z-index:10}.line-detail-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.line-detail-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.line-detail-badge{display:inline-flex;align-items:center;justify-content:center;min-width:56px;height:40px;padding:0 1rem;font-weight:800;font-size:1.25rem;border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.line-detail-name{font-size:1rem;font-weight:600;color:var(--text-primary);flex:1}.line-detail-body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto;max-height:calc(85vh - 120px)}.line-detail-status{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;margin-bottom:1.25rem}.line-detail-status.status-normal{background:#22c55e26;color:#16a34a}.line-detail-status.status-perturbation{background:#f9731626;color:#ea580c}.line-detail-status.status-retard{background:#eab30826;color:#ca8a04}.line-detail-status.status-annulation{background:#ef444426;color:#dc2626}.line-detail-status.status-travaux{background:#f9731626;color:#ea580c}.line-detail-status .status-badge-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:.75rem;font-weight:700}.line-detail-status.status-normal .status-badge-icon{background:#16a34a;color:#fff}.line-detail-status.status-perturbation .status-badge-icon{background:#ea580c;color:#fff}.line-detail-status.status-retard .status-badge-icon{background:#ca8a04;color:#1a1a1a}.line-detail-status.status-annulation .status-badge-icon{background:#dc2626;color:#fff}.line-detail-status.status-travaux .status-badge-icon{background:#ea580c;color:#fff}.line-detail-section{margin-bottom:1.25rem}.line-detail-section:last-child{margin-bottom:0}.line-detail-section h4{font-size:.8125rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.line-detail-section p{font-size:.9375rem;line-height:1.6;color:var(--text-primary);margin:0}@media (max-width: 480px){.line-detail-content{width:95%;max-height:80vh}.line-detail-header{padding:1.25rem}.line-detail-badge{min-width:48px;height:36px;font-size:1.125rem}.line-detail-body{padding:1rem 1.25rem 1.25rem}}.banner-detail-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.banner-detail-modal.active{opacity:1;visibility:visible}.banner-detail-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.banner-detail-content{position:relative;width:90%;max-width:480px;max-height:80vh;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #0006;overflow:hidden;transform:scale(.95) translateY(20px);transition:transform .25s ease;display:flex;flex-direction:column}.banner-detail-modal.active .banner-detail-content{transform:scale(1) translateY(0)}.banner-detail-close{position:absolute;top:12px;right:12px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;cursor:pointer;color:var(--text-secondary);transition:all .2s ease;z-index:10}.banner-detail-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.banner-detail-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#f973161a,#ea580c26);border-bottom:1px solid var(--border)}.banner-detail-header svg{color:#ea580c;flex-shrink:0}.banner-detail-header h3{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.banner-detail-body{flex:1;overflow-y:auto;padding:1rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.banner-perturbation-item{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:1rem;border:1px solid var(--border)}.banner-perturbation-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.banner-line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:28px;padding:0 .75rem;font-weight:800;font-size:.9rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.banner-status-tag{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.banner-status-tag.status-perturbation{background:#f9731626;color:#ea580c}.banner-status-tag.status-retard{background:#eab30826;color:#ca8a04}.banner-status-tag.status-annulation{background:#ef444426;color:#dc2626}.banner-status-tag.status-travaux{background:#f9731626;color:#ea580c}.banner-perturbation-message{font-size:.875rem;line-height:1.5;color:var(--text-primary);margin:0}.banner-detail-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);text-align:center}.banner-detail-link{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:600;text-decoration:none;border-radius:var(--radius-full);transition:all .2s ease}.banner-detail-link:hover{background:var(--color-primary-dark);transform:translateY(-1px)}@media (max-width: 480px){.banner-detail-content{width:95%;max-height:75vh}.banner-detail-header{padding:1rem 1.25rem}.banner-detail-body{padding:.875rem 1.25rem}.banner-perturbation-item{padding:.875rem}}.btn{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-main);color:var(--text-primary);cursor:pointer;font-size:.875rem;font-weight:500;transition:all var(--transition-fast),transform .1s ease;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.btn:active:after{width:300px;height:300px}.btn:hover{background:var(--bg-secondary);border-color:var(--secondary);transform:translateY(-1px)}.btn:active{transform:scale(.97) translateY(0)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:0 4px 12px #2563eb4d}.btn-primary:after{background:#fff3}.btn-primary svg{margin-right:.25rem}.planner-block .btn-primary.planner-search-btn,#planner-submit-btn.btn-primary{background:#2a9d8f!important;border-color:#2a9d8f!important}.planner-block .btn-primary.planner-search-btn:hover,#planner-submit-btn.btn-primary:hover{background:#238b7e!important;border-color:#238b7e!important;box-shadow:0 6px 20px #2a9d8f66!important}.btn-secondary{background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary);font-weight:600}.btn-secondary:hover{background:var(--border);border-color:var(--secondary)}.btn-icon-round{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);border-radius:50%;background:var(--bg-main);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast),transform .15s ease;flex-shrink:0;position:relative;overflow:hidden}.btn-icon-round:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,rgba(37,99,235,.1) 0%,transparent 70%);opacity:0;transition:opacity var(--transition-fast)}.btn-icon-round:hover{background:var(--bg-secondary);border-color:var(--primary);transform:scale(1.05)}.btn-icon-round:hover:before{opacity:1}.btn-icon-round:active{transform:scale(.95)}.filter-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-secondary)}.filter-header h3{margin:0;font-size:1.125rem;font-weight:600}.btn-close{background:var(--bg-secondary);border:none;color:var(--text-secondary);cursor:pointer;width:32px;height:32px;line-height:1;transition:all .15s ease;display:flex;align-items:center;justify-content:center;border-radius:50%}.btn-close:hover{background:var(--border);color:var(--text-primary)}.filter-actions{padding:1rem 1.5rem;display:flex;gap:.5rem;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-secondary)}.btn-small{padding:.375rem .875rem;border:1px solid var(--border);background:var(--bg-main);color:var(--text-primary);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all .15s ease;border-radius:var(--radius-full)}.btn-small:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.route-list{overflow-y:auto;flex:1;background:transparent;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.category-header{padding:.75rem 1.25rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0}.category-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.category-title strong{color:var(--text-primary)}.category-count{color:var(--text-secondary);font-size:.75rem;font-weight:400}.category-actions{display:flex;gap:.375rem}.btn-category-action{padding:.25rem .625rem;border:1px solid var(--border);background:var(--bg-main);color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-weight:500;transition:all .15s ease;border-radius:var(--radius-md)}.btn-category-action:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.category-routes{background:transparent}.route-checkbox-item{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.25rem;cursor:pointer;transition:all .15s ease;border-bottom:1px solid var(--border)}.route-checkbox-item:last-child{border-bottom:none}.route-checkbox-item:hover{background:#0000000d}.route-checkbox-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);flex-shrink:0}.route-name{flex:1;font-size:.875rem;line-height:1.4}.instruction-content{background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:500px;width:100%}.instruction-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.instruction-header svg{color:var(--primary)}.instruction-header h3{margin:0;font-size:1.125rem}#instructions ol{margin-left:1.5rem;line-height:1.8}#instructions code{background:var(--bg-secondary);padding:.2rem .5rem;font-family:Courier New,monospace;color:var(--primary);font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-sm)}#close-instructions{margin-top:1.5rem;width:100%;padding:.75rem 1.25rem;background:var(--primary);color:#fff;border:none;cursor:pointer;font-weight:500;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-md)}#close-instructions:hover{background:var(--primary-dark)}#install-tip{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172abf;display:flex;align-items:center;justify-content:center;z-index:999;padding:1.5rem}body.install-tip-open{overflow:hidden}.install-tip.hidden{display:none}.install-tip-card{width:min(560px,100%);background:#fff;border-radius:24px;box-shadow:var(--shadow-2xl);padding:2rem;display:flex;flex-direction:column;gap:1.5rem}body.dark-theme .install-tip-card{background:#0f172af2;color:var(--text-primary)}.install-tip-header{display:flex;align-items:center;gap:1rem}.install-tip-badge{margin:0;font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-weight:600}.install-tip-header h3{margin:0;font-size:1.5rem}.install-tip-lede{margin:0;font-size:1rem;line-height:1.6;color:var(--text-secondary)}.install-tip-steps{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.install-tip-steps section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:1rem 1.25rem;border:1px solid var(--border)}body.dark-theme .install-tip-steps section{background:#ffffff0a}.install-tip-steps h4{margin:0 0 .75rem;font-size:1rem}.install-tip-steps ol{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;font-size:.9375rem;line-height:1.5}.install-tip-steps strong{font-weight:600}#install-tip-close{align-self:flex-end;min-width:180px}@media (max-width: 640px){.install-tip-steps{grid-template-columns:1fr}#install-tip{padding:1rem}}.hero-section{position:relative;z-index:20}.bottom-content-wrapper{position:relative;z-index:10}.hero-section,.planner-block-wrapper,.planner-block,.planner-form{overflow:visible!important}.bus-icon-rect{background:transparent!important;border:none!important;width:32px!important;height:32px!important;pointer-events:auto!important;cursor:pointer!important;z-index:1000!important}.bus-icon-rect div{transition:all .2s ease;border:2px solid white;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;display:flex;align-items:center;justify-content:center;border-radius:50%!important;font-weight:700;font-size:11px;box-shadow:0 2px 4px #0000004d;box-sizing:border-box;pointer-events:auto!important;cursor:pointer!important}body.dark-theme .bus-icon-rect div{border-color:#020617d9;box-shadow:0 10px 18px #00000059}.bus-icon-rect:hover div{transform:scale(1.15)}.bus-icon-waiting div{opacity:.6;box-shadow:0 1px 3px #0003!important}.bus-status-perturbation div{border:3px solid var(--color-orange)!important}.bus-status-retard div{border:3px solid var(--color-yellow)!important}.bus-status-annulation div{opacity:.3!important;border:3px solid var(--color-red)!important}.marker-cluster-small{background-color:#b5e28c99}.marker-cluster-small div{background-color:#6ecc3999}.marker-cluster-medium{background-color:#f1d35799}.marker-cluster-medium div{background-color:#f0c20c99}.marker-cluster-large{background-color:#fd9c7399}.marker-cluster-large div{background-color:#f1801799}.marker-cluster{background-clip:padding-box;border-radius:50%}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:50%;font:12px Helvetica Neue,Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}.stop-marker-icon{background:var(--secondary);border:2px solid white;border-radius:50%;box-shadow:var(--shadow-md);transition:all .2s ease;cursor:pointer}.leaflet-zoom-animated .stop-marker-icon{transition:opacity .3s,transform .3s}.stop-marker-icon:hover{background:var(--primary);transform:scale(1.3)}.stop-search-marker div{background:var(--primary);border:2px solid white;border-radius:50%;box-shadow:var(--shadow-md);width:100%;height:100%}.itinerary-stop-marker{border-radius:50%!important;display:flex;align-items:center;justify-content:center;pointer-events:none;background:transparent!important;border:none!important}.itinerary-stop-marker span{display:block;border-radius:50%!important;box-shadow:0 1px 4px #0000004d}.itinerary-stop-marker.boarding span{width:22px!important;height:22px!important;background:#4caf50;border:3px solid #fff}.itinerary-stop-marker.alighting span{width:22px!important;height:22px!important;background:#f44336;border:3px solid #fff}.itinerary-stop-marker.transfer span{width:16px!important;height:16px!important;background:#ffc107;border:3px solid #fff}.itinerary-stop-marker.intermediate span{width:12px!important;height:12px!important;background:#fff;border:2px solid #9e9e9e}.itinerary-stop-marker.destination{background:transparent!important}.itinerary-stop-marker.destination .walk-icon{display:flex;align-items:center;justify-content:center;width:26px!important;height:26px!important;background:#2196f3;border:3px solid #fff;border-radius:50%;font-size:14px;line-height:1;box-shadow:0 2px 6px #00000059}.user-location-marker{background-color:#4a8cf7;border:2px solid white;border-radius:50%;width:16px;height:16px;box-shadow:0 0 5px #00000080}.user-location-marker:after{content:"";position:absolute;top:50%;left:50%;width:40px;height:40px;border-radius:50%;background-color:#4a8cf7;margin-top:-20px;margin-left:-20px;opacity:.3;animation:pulse 2s infinite;pointer-events:none}@keyframes pulse{0%{transform:scale(.5);opacity:.4}to{transform:scale(1.5);opacity:0}}.leaflet-control-locate{background-color:#fff;width:34px;height:34px;border:1px solid var(--border);border-radius:50%;box-shadow:var(--shadow-md);cursor:pointer;display:flex;align-items:center;justify-content:center}.leaflet-control-locate:hover{background-color:var(--bg-secondary)}.leaflet-control-locate svg{width:18px;height:18px;color:var(--text-primary)}.leaflet-control-locate.following svg{color:var(--primary)}.bus-icon-rect svg{width:18px;height:18px;display:block}.bus-popup-modern{width:280px;max-width:280px;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);overflow:hidden}.bus-popup-header{display:flex;align-items:center;gap:12px;padding:14px 40px 14px 16px;background:linear-gradient(135deg,#3b82f614,#8b5cf60d);border-bottom:1px solid var(--border)}.bus-popup-line-badge{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;box-shadow:0 2px 8px #00000026;flex-shrink:0}.bus-popup-line-badge .line-number{font-weight:800}.bus-popup-title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.bus-popup-title .route-name{font-weight:700;font-size:15px;color:var(--text-primary)}.bus-popup-title .route-destination{font-size:13px;color:var(--text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bus-popup-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px;background:var(--bg-primary)}.bus-popup-info-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-secondary);border-radius:8px}.bus-popup-info-row:active{background:var(--bg-tertiary)}.bus-popup-icon{font-size:18px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.bus-popup-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.bus-popup-info .info-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.bus-popup-info .info-value{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bus-popup-info .eta-highlight{font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}.bus-popup-info .eta-highlight.realtime{color:#10b981}.bus-popup-info .eta-highlight.theoretical{color:var(--text-primary)}.bus-popup-footer{padding:10px 14px;background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;justify-content:center}.realtime-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:5px 12px;border-radius:16px;font-weight:600;letter-spacing:.2px}.realtime-badge.theoretical{background:#fbbf241f;color:#fbbf24}.realtime-badge.realtime{background:#10b9811f;color:#10b981}.realtime-badge .badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.info-popup-content{width:100%;max-height:250px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.info-popup-header{background:var(--bg-secondary);padding:.875rem 1.25rem;font-size:1rem;font-weight:600;border-bottom:1px solid var(--border);position:sticky;top:0}.info-popup-body{padding:.5rem}.info-popup-body.bus-details{padding:0 .875rem .625rem}.info-popup-body p{margin:.5rem 0;font-size:.875rem}.info-popup-body p strong{font-weight:600}.info-popup-body .realtime-notice{margin:.625rem 0 0;font-size:.75rem;color:var(--text-secondary)}.departure-item{display:flex;justify-content:space-between;align-items:center;padding:.625rem .75rem;border-bottom:1px solid var(--border);transition:background var(--transition-fast),transform var(--transition-fast)}.departure-item:hover{background:var(--bg-secondary)}.departure-item:last-child{border-bottom:none}.departure-item.empty{color:var(--text-secondary);font-style:italic;font-size:.875rem;justify-content:center;flex-direction:column;gap:.5rem;padding:1rem}.departure-info{display:flex;align-items:center;gap:.625rem;overflow:hidden;flex:1}.departure-badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:.25rem .5rem;font-weight:700;font-size:.8125rem;color:#fff;border-radius:var(--radius-sm);flex-shrink:0;box-shadow:0 1px 3px #0000004d}.departure-dest{font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.departure-time{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:.5rem}.departure-time strong{font-size:.95rem;font-weight:600}.wait-time{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.wait-time.imminent{color:#059669;font-weight:600}.leaflet-marker-pane>*,.leaflet-popup-pane>*{transition:none!important}.leaflet-popup{touch-action:none;zoom:1!important}.leaflet-popup-pane{pointer-events:none;zoom:1!important}.leaflet-popup-content-wrapper{pointer-events:auto;touch-action:pan-y;width:280px!important;max-width:280px!important;min-width:280px!important;border-radius:14px!important;box-shadow:0 4px 20px #0003!important;border:1px solid var(--border)!important;background:var(--bg-main, #ffffff)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;padding:0!important;overflow:hidden!important}.leaflet-popup-content{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0!important;padding:0!important;width:280px!important;max-width:280px!important;background:transparent}.leaflet-popup-tip-container{pointer-events:none;width:20px!important;height:10px!important;margin-left:-10px!important}.leaflet-popup-tip{background:var(--bg-main, #ffffff)!important;pointer-events:none;width:14px!important;height:14px!important;margin:-7px auto 0!important;box-shadow:none!important}.leaflet-popup-close-button{pointer-events:auto!important;z-index:10;width:28px!important;height:28px!important;font-size:18px!important;line-height:28px!important;right:6px!important;top:6px!important;color:var(--text-secondary)!important;background:var(--bg-secondary)!important;border-radius:50%!important;text-align:center}.leaflet-popup-close-button:hover{color:var(--text-primary)!important;background:var(--bg-tertiary)!important}.bus-popup-header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.bus-popup-line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:6px 10px;font-weight:800;font-size:14px;border-radius:8px;color:#fff;box-shadow:0 2px 4px #00000026}.bus-popup-direction{flex:1;font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.3}.bus-popup-body{padding:12px 14px}.bus-popup-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.bus-popup-row:last-child{margin-bottom:0}.bus-popup-row svg{flex-shrink:0;width:16px;height:16px;color:var(--text-secondary)}.bus-popup-label{font-size:12px;color:var(--text-secondary);font-weight:500;min-width:70px}.bus-popup-value{font-size:13px;font-weight:600;color:var(--text-primary)}.bus-popup-value.delay-positive{color:#dc2626}.bus-popup-value.delay-negative,.bus-popup-value.on-time{color:#16a34a}.stop-schedule-popup .leaflet-popup-content-wrapper{width:320px!important;max-width:320px!important;min-width:320px!important}.stop-schedule-popup .leaflet-popup-content{width:320px!important;max-width:320px!important}.stop-popup-header{padding:14px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.stop-popup-name{font-size:15px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.stop-popup-lines{display:flex;flex-wrap:wrap;gap:6px}.stop-popup-line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 8px;font-weight:800;font-size:11px;border-radius:6px;color:#fff}.stop-popup-body{padding:12px 16px;max-height:200px;overflow-y:auto}.stop-popup-departure{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.stop-popup-departure:last-child{border-bottom:none}.stop-popup-departure-badge{min-width:32px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;font-weight:800;font-size:11px;border-radius:5px;color:#fff}.stop-popup-departure-info{flex:1;min-width:0}.stop-popup-departure-direction{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop-popup-departure-time{font-size:14px;font-weight:700;color:var(--pm-green)}.stop-popup-departure-realtime{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--pm-green);font-weight:600}.stop-popup-departure-realtime svg{width:10px;height:10px}body.dark-theme .leaflet-popup-content-wrapper{background:#0f172a!important;border-color:#ffffff1a!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important}body.dark-theme .leaflet-popup-tip,body.dark-theme .stop-schedule-popup .leaflet-popup-content-wrapper,body.dark-theme .stop-schedule-popup .leaflet-popup-tip{background:#0f172a!important}.time-popover{position:fixed;z-index:17000;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elevation-4);min-width:280px;max-width:320px;animation:fadeInUp .2s ease}.time-popover-header{padding:1rem;border-bottom:1px solid var(--border)}.time-popover-tabs{display:flex;gap:.5rem}.time-popover-tab{flex:1;padding:.5rem 1rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.time-popover-tab.active{background:var(--pm-green);border-color:var(--pm-green);color:#fff}.time-popover-body{padding:1rem}.time-popover-input-group{display:flex;gap:.5rem;align-items:center}.time-popover-input{flex:1;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:1rem;text-align:center}.time-popover-footer{padding:1rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem}.autocomplete-popup{position:absolute;top:100%;left:0;right:0;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--elevation-3);max-height:300px;overflow-y:auto;z-index:var(--z-dropdown)}.autocomplete-item{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s ease}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.highlighted{background:var(--bg-secondary)}.autocomplete-item-name{font-weight:600;color:var(--text-primary)}.autocomplete-item-detail{font-size:.8125rem;color:var(--text-secondary)}body.dark-theme .autocomplete-popup{background:var(--bg-elevated);border-color:#ffffff1a}.stop-schedule-popup .leaflet-popup-content-wrapper{background:#fff!important;border-radius:var(--radius-lg)!important;box-shadow:0 8px 32px #00000040!important;border:1px solid var(--border)!important;overflow:hidden}.stop-schedule-popup .leaflet-popup-tip{background:#fff!important;border:1px solid var(--border)!important;border-top:none!important;border-left:none!important}.stop-schedule-popup .leaflet-popup-content{margin:0;min-width:280px;max-width:380px;max-height:400px;overflow-y:auto}.stop-schedule-popup .leaflet-popup-close-button{color:var(--text-secondary)!important;font-size:20px!important;top:8px!important;right:10px!important;z-index:10}.stop-schedule-popup .leaflet-popup-close-button:hover{color:var(--text-primary)!important}.stop-schedule-popup .leaflet-popup-content::-webkit-scrollbar{width:6px}.stop-schedule-popup .leaflet-popup-content::-webkit-scrollbar-track{background:transparent}.stop-schedule-popup .leaflet-popup-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.stop-schedule-popup .leaflet-popup-content::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.stop-popup-v105{color:var(--text-primary)}.stop-popup-v105 .popup-notice{padding:.75rem 1rem;background:#6366f11a;color:var(--primary-color);font-size:.75rem;line-height:1.4;border-bottom:1px solid var(--border)}.stop-popup-v105 .popup-line-block{border-bottom:1px solid var(--border)}.stop-popup-v105 .popup-line-block:last-child{border-bottom:none}.stop-popup-v105 .popup-line-header{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.stop-popup-v105 .popup-badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:22px;padding:0 .5rem;font-size:.8125rem;font-weight:700;border-radius:var(--radius-sm);flex-shrink:0}.stop-popup-v105 .popup-stop-name{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.stop-popup-v105 .popup-dest-row{padding:.75rem 1rem;border-bottom:1px solid var(--border-light, rgba(128,128,128,.1))}.stop-popup-v105 .popup-dest-row:last-child{border-bottom:none}.stop-popup-v105 .popup-dest-name{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.stop-popup-v105 .dest-label{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-right:var(--spacing-2)}.stop-popup-v105 .popup-times{display:flex;flex-wrap:wrap;gap:.375rem}.stop-popup-v105 .popup-time{display:inline-block;padding:.25rem .5rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.stop-popup-v105 .popup-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2.5rem 1.5rem;color:var(--text-secondary);font-size:.875rem}.stop-popup-v105 .popup-empty-icon{font-size:2rem}.stop-popup-v105 .popup-dest-clickable{cursor:pointer;transition:background-color .15s ease,transform .1s ease;border-radius:6px;padding:.25rem .5rem;margin:-.25rem -.5rem}.stop-popup-v105 .popup-dest-clickable:hover{background:var(--bg-tertiary, rgba(0,0,0,.05))}.stop-popup-v105 .popup-dest-clickable:active{transform:scale(.98)}.stop-popup-v105 .popup-dest-clickable .dest-arrow{font-size:.75rem;opacity:0;transition:opacity .15s ease,transform .15s ease;color:var(--primary, #10b981);margin-left:.5rem}.stop-popup-v105 .popup-dest-clickable:hover .dest-arrow{opacity:1;transform:translate(2px)}.stop-popup-v105 .popup-time{display:inline-flex;align-items:center;gap:.375rem}.stop-popup-v105 .popup-time.realtime{background:#22c55e1f;border-color:#22c55e4d;color:#16a34a}body.dark-theme .stop-popup-v105 .popup-time.realtime{background:#22c55e26;border-color:#22c55e59;color:#4ade80}.realtime-icon{display:inline-flex;align-items:center;width:14px;height:12px;flex-shrink:0}.realtime-icon svg{width:100%;height:100%;fill:currentColor}.form-group{margin-bottom:1rem;position:relative}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-group input[type=text]{width:100%;box-sizing:border-box;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.9rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform .15s ease;background:var(--bg-main)}.form-group.has-geolocate input[type=text]{padding-right:3.25rem}.form-group input[type=text]:focus{border-color:var(--primary);box-shadow:0 0 0 4px #2563eb26,0 2px 8px #2563eb1a;outline:none;transform:scale(1.01)}.planner-block .form-group input[type=text]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1rem 1rem 2.75rem;font-size:16px;color:#1e3a5f;width:100%;transition:all .2s ease;min-height:52px;box-sizing:border-box}.planner-block .form-group input[type=text]::placeholder{color:#94a3b8}.planner-block .form-group input[type=text]:focus{background:#fff;border-color:#1e3a5f;box-shadow:0 0 0 3px #1e3a5f1a;outline:none}.input-with-action{position:relative;width:100%}.input-with-icon .input-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:#94a3b8;z-index:1;pointer-events:none}.input-with-icon input[type=text]{padding-left:2.75rem}.search-prominent{position:relative;margin-bottom:var(--spacing-4)}.search-prominent input{font-size:var(--font-size-lg);padding:var(--spacing-4) var(--spacing-4) var(--spacing-4) var(--spacing-12);border:2px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition-normal)}.search-prominent input:focus{border-color:var(--pm-green);box-shadow:var(--elevation-2)}.search-prominent svg{position:absolute;left:var(--spacing-4);top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}#horaires-search-container{position:relative;display:flex;align-items:center;width:100%}#horaires-search-container svg{position:absolute;left:14px;color:var(--text-secondary);opacity:.6;z-index:1}#horaires-search-bar{width:100%;padding:.75rem 1rem .75rem 2.5rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.9rem}#horaires-search-bar:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb33;outline:none}#horaires-search-results{position:absolute;top:calc(100% + 5px);left:0;width:100%;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--elevation-3);max-height:300px;overflow-y:auto;z-index:var(--z-dropdown);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.search-result-item{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-sm);cursor:pointer;border-bottom:1px solid var(--border);transition:background var(--transition-quick)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--bg-secondary)}.search-result-item strong{color:var(--primary)}body.dark-theme input[type=text],body.dark-theme input[type=search],body.dark-theme .real-select,body.dark-theme textarea{color:#f5f7fb;background-color:#ffffff0d;border-color:#ffffff26}body.dark-theme input[type=text]::placeholder,body.dark-theme input[type=search]::placeholder,body.dark-theme textarea::placeholder{color:#f5f7fb99}.planner-form{display:flex;flex-direction:column;gap:1rem;width:100%}.planner-inputs-vertical{display:flex;flex-direction:column;gap:.5rem}.planner-inputs-vertical .form-group{margin-bottom:0}.swap-button-row{display:flex;align-items:center;justify-content:center;padding:.25rem 0;position:relative;z-index:5}.swap-line{flex:1;height:1px;background:#e2e8f0}.planner-options{position:relative;z-index:16000}.planner-inputs{--swap-col-width: 64px;display:grid;grid-template-columns:minmax(0,1fr) var(--swap-col-width) minmax(0,1fr);flex:1;gap:1rem;align-items:stretch;padding-left:0;padding-right:0;position:relative}.planner-inputs .form-group{flex:1;margin-bottom:0;min-width:0;display:flex;flex-direction:column;justify-content:flex-start}.planner-inputs .form-group .input-with-action{flex:1}.planner-inputs .swap-button-slot{width:var(--swap-col-width);display:flex;align-items:center;justify-content:center;height:100%}.planner-inputs .swap-button-slot .btn-swap-direction{justify-self:center;align-self:center}.planner-block .form-group label,.itinerary-edit-form .form-group label{font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;margin-bottom:.375rem}.input-with-icon{position:relative}.input-with-icon .input-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#9ca3af;z-index:1;pointer-events:none}.input-with-icon input[type=text]{padding-left:3rem}.planner-block .form-group input[type=text]{background:#f3f4f6;border:1px solid #e5e7eb;color:#1f2937;font-size:.95rem}.planner-block .form-group input[type=text]::placeholder{color:#9ca3af}.planner-block .form-group input[type=text]:focus{background:#fff;border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.form-group.has-geolocate{position:relative}.btn-geolocate{position:absolute;top:50%;right:.75rem;transform:translateY(-50%);width:32px;height:32px;border-radius:8px;background:#fff;color:#10b981;border:1px solid #e5e7eb;box-shadow:0 1px 3px #00000014;z-index:5;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:all var(--transition-fast)}.btn-geolocate:hover:not(:disabled){background:#ecfdf5;color:#059669;border-color:#10b981}.btn-geolocate:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn-geolocate svg{width:16px;height:16px}@media (min-width: 901px){#itinerary-results-container .form-group.has-geolocate .btn-geolocate{transform:translateY(-50%)!important}}.btn-geolocate .spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.btn-swap-direction{background:#fff;border:1px solid #e5e7eb;border-radius:50%;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;flex-shrink:0;margin:0;align-self:center;position:relative;z-index:10;box-shadow:0 1px 3px #00000014;transition:all .25s ease}.btn-swap-direction:hover{background:#ecfdf5;color:#10b981;border-color:#10b981;transform:rotate(180deg)}.form-group-when{position:relative;flex-shrink:0;margin-bottom:0;z-index:50}.btn-when{display:flex;align-items:center;gap:.5rem;width:auto;padding:.75rem 1rem;border:1px solid #e5e7eb;border-radius:var(--radius-md);font-size:.9rem;font-family:inherit;background:#f3f4f6;cursor:pointer;text-align:left;color:#1f2937}.btn-when>svg:first-child{color:#10b981;flex-shrink:0}.btn-when:hover{border-color:#10b981;background:#fff}.btn-when>svg:last-child{color:#9ca3af;transition:transform .2s ease;flex-shrink:0}.btn-when.popover-active>svg:last-child{transform:rotate(180deg)}.btn-when-inline{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .875rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.85rem;font-family:inherit;background:var(--bg-main);cursor:pointer;text-align:left;color:var(--text-primary)}.btn-when-inline:hover{border-color:var(--primary)}.btn-when-inline svg{color:var(--text-secondary);transition:transform .2s ease}.btn-when-inline.popover-active svg{transform:rotate(180deg)}#planner-options-popover,#results-planner-options-popover{position:absolute;top:calc(100% + 8px);left:0;right:0;width:100%;max-width:360px;background:var(--bg-main);border-radius:16px;border:1px solid var(--border);box-shadow:0 12px 40px #00000040;z-index:99999;overflow:visible;transition:opacity .25s ease,transform .25s ease;margin-bottom:200px;padding:0}#planner-options-popover.hidden,#results-planner-options-popover.hidden{opacity:0;transform:translateY(-8px);pointer-events:none;visibility:hidden}.popover-tabs{display:flex;background:var(--bg-secondary);border-radius:14px 14px 0 0;overflow:hidden}.popover-tab{flex:1;padding:.875rem 1rem;border:none;background:transparent;font-size:.9rem;font-weight:600;color:var(--text-secondary);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s ease}.popover-tab:hover{color:var(--text-primary)}.popover-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.popover-content{padding:1.25rem;overflow:visible;border-radius:0 0 14px 14px}#planner-options-popover>.popover-content,#results-planner-options-popover>.popover-content{overflow:visible;border-radius:0 0 14px 14px}.popover-time-inputs{display:flex;gap:1rem;align-items:stretch;overflow:visible;position:relative;z-index:1}.popover-time-inputs .form-group{flex:1;min-width:0;overflow:visible;position:relative}.popover-time-inputs .form-group label{font-size:.8rem;font-weight:600;margin-bottom:.35rem;color:var(--text-secondary)}.popover-time-inputs .real-select{text-align:center;font-weight:600;letter-spacing:.03em;font-variant-numeric:tabular-nums;padding-left:1.5rem;padding-right:2.75rem;background-position:calc(100% - .75rem) center}.real-select{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:1px solid var(--border);border-radius:12px;font-size:.9rem;font-family:inherit;transition:all .15s ease;color:var(--text-primary);background-color:var(--bg-secondary);-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%23666" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>');background-repeat:no-repeat;background-position:right 1rem center;background-size:12px;cursor:pointer}.real-select option{color:var(--text-primary);background-color:var(--bg-main)}body.dark-theme .real-select option{background-color:#0f1724;color:var(--text-primary)}.real-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb33;outline:none}.time-select-wrapper{position:relative;width:100%;overflow:visible}.time-select-native{position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0;opacity:0;pointer-events:none}.time-select-display{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.95rem;font-weight:600;background:var(--bg-main);color:var(--text-primary);cursor:pointer;text-align:center;transition:border-color .12s ease,box-shadow .12s ease;position:relative}.time-select-display:after{content:"";position:absolute;right:1rem;top:50%;width:.65rem;height:.35rem;border-left:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);transform:translateY(-60%) rotate(-45deg);transition:transform .2s ease}.time-select-wrapper.is-open .time-select-display{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb26}.time-select-wrapper.is-open .time-select-display:after{transform:translateY(-40%) rotate(135deg)}.time-select-menu{position:absolute;left:0;right:auto;bottom:calc(100% + 8px);top:auto;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--elevation-3);padding:var(--spacing-2) 0;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity var(--transition-quick),transform var(--transition-quick);z-index:100000;display:flex;flex-direction:column;width:100px;max-height:min(320px,50vh);overflow-y:auto;scrollbar-width:thin}.time-select-wrapper-minute .time-select-menu,.time-select-wrapper-hour .time-select-menu{border-radius:12px}.time-select-menu::-webkit-scrollbar{width:6px}.time-select-menu::-webkit-scrollbar-thumb{background:#00000040;border-radius:999px}.time-select-wrapper.is-open .time-select-menu{opacity:1;pointer-events:auto;transform:translateY(0)}.time-select-option{width:100%;padding:10px 16px;background:transparent;border:none;color:var(--text-primary);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .1s ease;text-align:center;border-radius:0}.time-select-option:hover,.time-select-option:focus{background:var(--bg-secondary);color:var(--primary)}.time-select-option.is-active{background:#22c55e26;color:#22c55e;font-weight:700}.time-select-option[disabled]{opacity:.45;cursor:not-allowed}@media (max-width: 640px){.time-select-menu{width:90px;max-height:min(280px,45vh);padding:6px 0;border-radius:10px}.time-select-option{padding:10px 12px;font-size:14px}}.btn-popover-submit{width:100%;margin-top:1rem;padding:.75rem;justify-content:center}.autocomplete-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-main)!important;opacity:1!important;pointer-events:auto!important;border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--elevation-2);z-index:20000!important;max-height:250px;overflow-y:auto;display:none;animation:fadeInDown var(--transition-normal)}.suggestion-item{padding:.75rem 1rem;font-size:.9rem;cursor:pointer;border-bottom:1px solid var(--border);transition:all var(--transition-fast);position:relative}.suggestion-item:last-child{border-bottom:none;border-radius:0 0 var(--radius-md) var(--radius-md)}.suggestion-item:hover{background:var(--bg-secondary);padding-left:1.25rem}.suggestion-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary);transform:scaleY(0);transition:transform var(--transition-fast)}.suggestion-item:hover:before{transform:scaleY(1)}.suggestion-item strong{font-weight:700;color:var(--text-primary)}@media (max-width: 900px){.planner-form{flex-direction:column;align-items:stretch;isolation:isolate}.planner-inputs{display:flex;flex-direction:column;gap:1rem;align-items:stretch;width:100%}.planner-inputs .form-group,.form-group-when{width:100%}.planner-inputs .swap-button-slot,.results-planner-inputs .swap-button-slot{order:2;width:100%;display:flex;justify-content:center}.planner-inputs .swap-button-slot .btn-swap-direction,.results-planner-inputs .swap-button-slot .btn-swap-direction{display:inline-flex;margin:0 auto;width:44px;height:44px}.btn-when{width:100%}.form-group-when{position:relative;margin-bottom:0;z-index:500}#planner-options-popover{position:absolute!important;top:calc(100% + 8px)!important;left:0!important;right:0!important;transform:none!important;width:100%!important;max-width:none!important;overflow:visible;background:var(--bg-main);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 40px #00000040;z-index:99999!important;pointer-events:auto}#planner-options-popover.hidden{opacity:0;transform:translateY(-8px)!important;pointer-events:none;visibility:hidden}.planner-search-btn{position:relative;z-index:1;margin-top:0}#planner-options-popover:before,#planner-options-popover:not(.hidden):before{display:none!important;content:none!important}.results-planner-inputs{display:flex;flex-direction:column;gap:1rem}.results-planner-inputs .btn-swap-direction{order:0;margin:0 auto}}@media (max-width: 900px){#itinerary-results-container{padding-top:calc(64px + env(safe-area-inset-top,0px))}}#itinerary-results-container.hidden{display:none!important;position:fixed;z-index:-1;pointer-events:none;visibility:hidden}#results-side-panel{width:400px;flex-shrink:0;display:flex;flex-direction:column;height:100%;background:var(--bg-main);border-right:1px solid var(--border);z-index:10;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.itinerary-top-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-main);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.itinerary-top-bar .app-back-btn{height:36px;padding:0 14px;border-radius:20px;font-size:13px}.results-planner-header{padding:1rem;background:var(--bg-main);border-bottom:1px solid var(--border)}.results-planner-row{display:flex;gap:.75rem;align-items:center}.results-planner-inputs{flex:1;display:flex;flex-direction:column;gap:.5rem}.results-input-field{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:var(--radius-md);min-height:40px}.results-input-field svg{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.results-input-field input{flex:1;border:none;background:transparent;font-size:.875rem;color:var(--text-primary);outline:none}.results-list-wrapper{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.results-list{padding:0}.route-option{display:flex;gap:1rem;padding:1rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s ease}.route-option:hover{background:var(--bg-secondary)}.route-option.selected{background:#22c55e14;border-left:3px solid var(--pm-green)}.route-time{display:flex;flex-direction:column;align-items:center;min-width:60px}.route-time-departure{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.route-time-arrival{font-size:.875rem;color:var(--text-secondary)}.route-duration{font-size:.75rem;color:var(--pm-green);font-weight:600;margin-top:4px}.route-details{flex:1}.route-legs{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.route-leg{display:inline-flex;align-items:center;gap:.25rem}.route-leg-badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:24px;padding:0 8px;font-weight:700;font-size:.75rem;border-radius:6px;color:#fff}.route-leg-walk{width:20px;height:20px;color:var(--text-secondary)}.route-leg-arrow{width:12px;height:12px;color:var(--text-muted)}#results-map-container{flex:1;position:relative;min-width:0}#results-map{width:100%;height:100%}body.dark-theme #results-map{background:#050c15}#detail-map-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;background:var(--bg-light)}#detail-map-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--bg-main);border-bottom:1px solid var(--border)}#detail-map{flex:1;min-height:0}body.dark-theme #detail-map{background:#050c15}#detail-map-summary{position:absolute;bottom:0;left:0;right:0;background:var(--bg-main);border-top:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -4px 20px #0000001a;max-height:60vh;overflow-y:auto;z-index:10}body.dark-theme #detail-map-summary{background:#060c14e6;color:var(--text-primary);box-shadow:0 12px 30px #0000008c}body.dark-theme #detail-map-header #btn-back-to-results{background:#0f172af2!important;color:#f1f5f9!important;box-shadow:0 4px 12px #0006}@media (max-width: 768px){body.itinerary-view-active #itinerary-results-container{top:auto;min-height:calc(100vh - 56px);height:auto}#itinerary-results-container{flex-direction:column}#results-side-panel{width:100%;height:auto;max-height:50vh;border-right:none;border-bottom:1px solid var(--border)}#results-map-container{flex:1}.results-list-wrapper{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.results-list{padding-bottom:2rem}.load-more-wrapper{display:flex;justify-content:center;padding:1rem 0 1.5rem}.load-more-wrapper .btn{min-width:160px}}#itinerary-results-container{display:flex;flex-direction:row;background:var(--bg-light);position:relative;top:auto;left:0;right:0;bottom:auto;width:100%;min-height:calc(100vh - 64px);height:auto;z-index:100}body.itinerary-view-active #itinerary-results-container{top:auto;min-height:calc(100vh - 64px);height:auto}@media (max-width: 768px){body.itinerary-view-active #itinerary-results-container{top:auto;min-height:calc(100vh - 56px);height:auto}#results-side-panel{overflow-x:visible!important;overflow-y:auto}#results-planner-options-popover{overflow:visible!important}#results-planner-options-popover>.popover-content{overflow:visible!important}}#results-side-panel{width:380px;flex-shrink:0;display:flex;flex-direction:column;height:100%;background:var(--bg-light);border-right:1px solid var(--border);z-index:10;min-height:0;overflow-y:auto;overflow-x:visible;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.itinerary-top-bar{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--bg-main);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.itinerary-top-bar .app-back-btn{height:36px;padding:0 14px;border-radius:10px;font-size:.875rem;background:transparent;border:none;color:var(--primary);font-weight:600;transition:all .2s ease}.itinerary-top-bar .app-back-btn:hover{background:#22c55e1a;transform:translate(-2px)}.itinerary-top-bar .app-back-btn svg{width:16px;height:16px}.itinerary-top-bar h2{font-size:1.125rem;font-weight:700;margin:0;color:var(--text-primary);letter-spacing:-.02em}#itinerary-edit-panel{background:var(--bg-main);border-bottom:1px solid var(--border);flex-shrink:0;padding:1.25rem;position:relative;z-index:200;overflow:visible}.route-input-container{display:flex;align-items:stretch;gap:.625rem;position:relative}.route-visual-indicators{display:flex;flex-direction:column;align-items:center;padding:.625rem 0;flex-shrink:0;width:18px}.indicator-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.indicator-dot.origin{background:var(--primary);border:2px solid var(--bg-main);box-shadow:0 0 0 1px var(--primary)}.indicator-dot.destination{background:#ef4444;border:2px solid var(--bg-main);box-shadow:0 0 0 1px #ef4444}.indicator-line{flex:1;width:2px;background:linear-gradient(to bottom,var(--primary),#ef4444);margin:3px 0;border-radius:1px;min-height:16px}.route-inputs-stack{flex:1;display:flex;flex-direction:column;gap:.375rem;min-width:0}.route-input-wrapper{position:relative}.route-input{width:100%;padding:.875rem 3rem .875rem 1rem;background:var(--bg-secondary);border:2px solid transparent;border-radius:12px;font-size:.9375rem;color:var(--text-primary);min-height:50px;box-sizing:border-box;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:500}.route-input::placeholder{color:var(--text-tertiary);font-weight:400}.route-input:hover{background:var(--bg-light);border-color:#22c55e33}.route-input:focus{background:var(--bg-main);border-color:var(--primary);box-shadow:0 0 0 4px #22c55e1a,0 4px 12px #22c55e26;outline:none;transform:translateY(-1px)}.btn-geolocate-minimal{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:10px;background:transparent;color:var(--primary);border:none;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.btn-geolocate-minimal:hover:not(:disabled){background:var(--primary);color:#fff;transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #22c55e4d}.btn-geolocate-minimal:disabled{opacity:.3;cursor:not-allowed}.btn-swap-minimal{align-self:center;width:40px;height:40px;border-radius:12px;background:var(--primary);border:none;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0;box-shadow:0 2px 8px #22c55e40}.btn-swap-minimal:hover{background:#16a34a;transform:rotate(180deg) scale(1.05);box-shadow:0 4px 16px #22c55e66}.route-actions{display:flex;gap:.5rem;margin-top:.625rem;position:relative;z-index:10;overflow:visible}.btn-time-picker{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--bg-secondary);border:2px solid transparent;border-radius:10px;font-size:.875rem;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap;position:relative;z-index:5;pointer-events:auto}.btn-time-picker svg{color:var(--primary);flex-shrink:0;width:16px;height:16px}.btn-time-picker .chevron{color:var(--text-tertiary);margin-left:.125rem;width:14px;height:14px}.btn-time-picker:hover{border-color:var(--primary);background:#22c55e14;transform:translateY(-1px);box-shadow:0 2px 8px #22c55e26}.btn-search-route{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:700;border-radius:12px;min-height:50px;background:linear-gradient(135deg,var(--primary) 0%,#16a34a 100%);border:none;color:#fff;box-shadow:0 4px 16px #22c55e4d;transition:all .25s cubic-bezier(.4,0,.2,1);letter-spacing:.02em}.btn-search-route:hover{transform:translateY(-2px);box-shadow:0 6px 24px #22c55e66}.btn-search-route:active{transform:translateY(0)}body.dark-theme .route-input{background:#ffffff0f}body.dark-theme .route-input:hover{background:#ffffff14;border-color:#ffffff1f}body.dark-theme .route-input:focus{background:#ffffff1a;border-color:var(--primary)}body.dark-theme .btn-swap-minimal,body.dark-theme .btn-time-picker{background:#ffffff14}body.dark-theme .btn-swap-minimal:hover{background:var(--primary)}body.dark-theme .btn-time-picker:hover{background:#ffffff1a;border-color:#ffffff26}body.dark-theme .indicator-dot.origin,body.dark-theme .indicator-dot.destination{border-color:var(--bg-main)}@media (max-width: 768px){body.itinerary-view-active #itinerary-results-container{position:static;top:auto;bottom:auto;height:auto;min-height:auto}#itinerary-results-container{background:radial-gradient(circle at 20% 20%,rgba(34,197,94,.12),transparent 28%),radial-gradient(circle at 80% 0%,rgba(0,200,255,.16),transparent 30%),var(--pm-navy);color:#e8f3ff;min-height:auto;height:auto;position:static;top:auto;left:auto;right:auto;bottom:auto;width:100%;z-index:auto;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:calc(64px + env(safe-area-inset-top,0px))}#results-side-panel{background:#111b2b;border:1px solid rgba(255,255,255,.08);box-shadow:0 22px 60px #00000059;border-radius:18px 18px 0 0;margin:0 auto;max-width:520px;width:100%;height:auto;min-height:auto;flex:0 1 auto;-webkit-backdrop-filter:none;backdrop-filter:none;padding-bottom:8px;overflow-y:visible}.itinerary-top-bar{background:transparent;border:none;padding:.75rem 1rem .5rem;top:calc(64px + env(safe-area-inset-top,0px))}.itinerary-top-bar h2{color:#f8fbff;font-weight:800;letter-spacing:-.01em}.itinerary-top-bar .app-back-btn{background:#ffffff0f;color:#dfffea;border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px #00000040}#itinerary-edit-panel{background:#111b2b;border:1px solid rgba(255,255,255,.08);border-radius:16px;margin:0 .75rem .5rem;padding:.9rem;box-shadow:none}.route-input-container{align-items:center}.route-visual-indicators .indicator-dot.origin{box-shadow:0 0 0 2px #22c55e59}.route-visual-indicators .indicator-dot.destination{box-shadow:0 0 0 2px #ef444459}.route-input{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:#f8fbff;box-shadow:inset 0 1px #ffffff08}.route-input::placeholder{color:#f8fbffb3}.route-input:hover{background:#ffffff17;border-color:#ffffff1f}.route-input:focus{background:#ffffff1f;border-color:var(--pm-cyan);box-shadow:0 0 0 4px #00c8ff29,0 14px 30px #00000040}.btn-geolocate-minimal{color:#dfffea;background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.btn-geolocate-minimal:hover:not(:disabled){background:var(--pm-gradient);color:#fff;box-shadow:0 10px 24px #00c8ff52}.btn-swap-minimal{background:var(--pm-gradient);box-shadow:0 10px 30px #22c55e61;border:1px solid rgba(255,255,255,.08)}.btn-swap-minimal:hover{transform:rotate(180deg) scale(1.08)}.route-actions{flex-direction:column}.btn-time-picker{width:100%;background:#ffffff0f;color:#e8f3ff;border:1px solid rgba(255,255,255,.08);justify-content:space-between;padding:.85rem 1rem}.btn-time-picker:hover{background:#ffffff1a;border-color:#ffffff24;box-shadow:0 10px 24px #00000040}.btn-search-route{width:100%;background:var(--pm-gradient);box-shadow:0 18px 36px #22c55e59;letter-spacing:.03em}.results-list-wrapper{background:transparent;padding:.75rem .75rem 1rem;flex:0 1 auto;display:flex;flex-direction:column;gap:.875rem}.results-list{background:transparent;border:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;padding:0;display:flex;flex-direction:column;gap:.875rem}.recent-journeys-section{background:transparent;border:none;border-radius:0;padding:0;margin-top:var(--spacing-6);flex:0 1 auto;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--spacing-4)}.recent-journeys-section h3{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-4) 0}#recent-journeys-container{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-4);box-sizing:border-box;width:100%}.recent-journeys-empty{padding:.5rem 0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.9rem;text-align:center}.recent-journey-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1rem;box-shadow:var(--elevation-0)}#itinerary-results-container{background:transparent;border-radius:0;border:none;padding:0;box-shadow:none;max-width:480px;margin:0 auto}#itinerary-edit-panel{background:#0d1527d9;border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:1rem;box-shadow:inset 0 1px #ffffff0d}}.itinerary-edit-header{display:none}.itinerary-edit-form{padding:0;position:relative}.itinerary-edit-form .form-group{margin-bottom:.4rem}.itinerary-edit-form .form-group:last-of-type{margin-bottom:.5rem}#results-planner-from,#results-planner-to{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.6rem .875rem;font-size:.875rem;color:var(--text-primary);width:100%;transition:all .15s ease;min-height:42px;box-sizing:border-box}#results-planner-from:focus,#results-planner-to:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #22c55e1f;outline:none}body.dark-theme #results-planner-from,body.dark-theme #results-planner-to{background:#ffffff0d;border-color:#ffffff1a;color:var(--text-primary)}body.dark-theme #results-planner-from:focus,body.dark-theme #results-planner-to:focus{background:#ffffff14;border-color:var(--primary)}.results-planner-inputs{--swap-col-width: 56px;margin-bottom:1rem}.results-planner-inputs .form-group{margin-bottom:0}.btn-full-width{width:100%;justify-content:center;padding:.5rem;font-size:.9rem;font-weight:600;border-radius:var(--radius-md)}.mode-tab.hidden{display:none}.mode-tab-duration.empty{color:var(--text-tertiary);font-weight:400}.results-list-wrapper{flex:0 1 auto;overflow-y:auto;overflow-x:hidden;background:var(--bg-light);padding:.75rem 0 0;display:flex;flex-direction:column;min-height:0;max-height:100%;scrollbar-width:thin;scrollbar-color:var(--border) transparent;overscroll-behavior:none;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;touch-action:pan-y}.results-list-wrapper::-webkit-scrollbar{width:5px}.results-list-wrapper::-webkit-scrollbar-track{background:transparent}.results-list-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.results-list-wrapper::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.results-list{padding:0;flex:0 1 auto;display:flex;flex-direction:column;gap:.625rem}.results-list .btn-load-more{width:100%;margin-top:.75rem;border-radius:14px;box-sizing:border-box;justify-content:center}#results-map{flex:1;min-width:0;height:100%;background:#e5e5e5;touch-action:pan-x pan-y;position:relative;z-index:1}.results-message{padding:2rem 1rem;text-align:center;color:var(--text-secondary);font-style:italic}.results-message.error{color:var(--color-red);font-style:normal;font-weight:600}.recent-journeys-section{display:flex!important;padding:0;margin-top:var(--spacing-6);flex:0 1 auto;flex-direction:column;gap:var(--spacing-4);width:100%;box-sizing:border-box}.recent-journeys-section h3{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-4) 0}#recent-journeys-container{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-4);width:100%;box-sizing:border-box}.recent-journeys-empty{padding:.5rem 0;display:flex;text-align:center;color:var(--text-secondary);align-items:center;justify-content:center}.recent-journeys-empty p{font-size:.9rem;margin:0}#recent-journeys-list{display:flex;flex-direction:column;gap:.875rem}.recent-journey-card{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border);cursor:pointer;transition:all .15s ease;box-shadow:var(--elevation-0)}.recent-journey-card:hover{border-color:var(--primary);box-shadow:0 12px 32px #00000047,0 4px 14px #22c55e26;transform:translateY(-3px)}.recent-journey-card:active{transform:scale(.98)}.recent-journey-lines{display:flex;align-items:center;gap:4px;flex-shrink:0}.recent-journey-lines .route-line-badge{font-size:.6875rem;padding:.2rem .4rem;min-width:26px;text-align:center}.recent-journey-lines .route-summary-dot{font-size:8px;color:var(--text-secondary)}.recent-journey-lines .route-summary-walk-icon{width:14px;height:14px;color:var(--text-secondary)}.recent-journey-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.recent-journey-route{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-journey-meta{font-size:.6875rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.recent-journey-duration{font-weight:600;color:var(--text-primary)}.recent-journey-delete{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:50%;transition:all .15s ease;flex-shrink:0;opacity:0}.recent-journey-card:hover .recent-journey-delete{opacity:1}.recent-journey-delete:hover{background:#ef44441a;color:#ef4444}body.dark-theme .recent-journey-card{background:#1e293b99;border-color:#ffffff1a}body.dark-theme .recent-journey-card:hover{border-color:var(--pm-green);background:#1e293bcc}.route-option-wrapper{margin-bottom:.375rem}.route-option-title{font-size:.6875rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;padding-left:.375rem;display:flex;align-items:center;gap:.5rem}.route-option{display:flex;flex-direction:column;background:linear-gradient(180deg,#ffffff05,#0f1a2a);border-radius:14px;padding:1.15rem 1.2rem;border:1px solid rgba(255,255,255,.12);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);gap:.9rem;position:relative;overflow:hidden;box-shadow:0 10px 28px #00000042}.route-option:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 12px 32px #00000047,0 4px 14px #22c55e26}.route-option.is-active{border-color:var(--primary);background:linear-gradient(180deg,#22c55e14,#0f1a2af2);box-shadow:0 0 0 3px #22c55e2e,0 6px 18px #22c55e38}.route-summary-line{display:flex;align-items:center;column-gap:.375rem;row-gap:.375rem;flex-wrap:wrap}.route-summary-walk-icon,.route-summary-walk-only-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);width:28px;height:28px;border-radius:8px;background:var(--bg-secondary);transition:all .2s ease}.route-option:hover .route-summary-walk-icon{color:var(--text-secondary)}.route-line-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.9375rem;border-radius:8px;min-width:42px;height:32px;padding:0 12px;text-align:center;box-shadow:0 2px 8px #0003,0 1px 3px #00000026;letter-spacing:.02em;transition:all .2s ease}.route-option:hover .route-line-badge{transform:scale(1.05);box-shadow:0 4px 12px #00000040,0 2px 6px #0003}body.dark-theme .route-next-departures{border-top-color:#ffffff14}.route-details{padding:1rem;background:var(--bg-main);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);margin-top:-.5rem;animation:fadeIn .3s ease}.route-details.hidden{display:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.route-details .step-detail{display:flex;position:relative;padding-left:3.5rem;margin-bottom:1.5rem}.route-details .step-detail:last-child{margin-bottom:0}.route-details .step-detail:before{content:"";position:absolute;left:19px;top:24px;bottom:-1.5rem;width:4px;background:var(--line-color, var(--border))}.route-details .step-detail:last-child:before{bottom:12px}.route-details .step-detail.walk:before,.route-details .step-detail.bicycle:before{background:repeating-linear-gradient(var(--text-secondary) 0,var(--text-secondary) 4px,transparent 4px,transparent 8px)}.route-details .step-detail:after{content:"";position:absolute;left:14px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--bg-main);border:2px solid var(--line-color, var(--border));z-index:1}.route-details .step-detail.walk:after,.route-details .step-detail.bicycle:after{border-color:var(--text-secondary)}.route-details .step-icon{position:absolute;left:0;top:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:transparent;position:relative;z-index:2;margin-right:.5rem}.route-details .step-detail.walk .step-icon,.route-details .step-detail.bicycle .step-icon{background:transparent;color:var(--text-secondary)}.route-details .step-icon svg{width:20px;height:20px}.route-details .step-detail.walk .step-icon svg,.route-details .step-detail.bicycle .step-icon svg{color:inherit}.route-details .step-icon .route-line-badge{font-size:.9rem;width:32px;min-width:32px;height:32px;padding:0;border-radius:9999px;box-shadow:0 1px 3px #0003}.route-details .step-info{display:flex;flex-direction:column;padding-top:4px}.route-details .step-instruction{font-size:.9rem;font-weight:600;color:var(--text-primary)}.route-details .step-duration-inline{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-left:.25rem}.route-details .wait-info .wait-time{font-size:.95rem;font-weight:600;color:var(--text-secondary)}.route-details .wait-info .wait-duration{font-size:.9rem;color:var(--text-secondary)}.route-details .step-sub-instruction{font-size:.875rem;color:var(--text-secondary);margin-top:.25rem}.route-details .step-stop-point{margin-top:.5rem;padding-left:1rem;position:relative;font-size:.875rem;color:var(--text-primary)}.route-details .step-stop-point:before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;background:var(--border)}.route-details .step-stop-point .step-time-detail{font-size:.8125rem;color:var(--text-secondary);margin-left:.25rem}.route-details .step-stop-point strong{font-weight:700}.route-details .intermediate-stops{margin:.5rem 0 .5rem 1rem}.route-details .intermediate-stops summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--primary);list-style:none;padding:.25rem 0}.route-details .intermediate-stops summary::-webkit-details-marker{display:none}.route-details .intermediate-stops summary .chevron{color:var(--text-secondary);transition:transform .2s ease}.route-details .intermediate-stops[open] summary .chevron{transform:rotate(180deg)}.route-details .intermediate-stops-list{margin:.5rem 0 0 .5rem;padding-left:1rem;border-left:2px solid var(--line-color, var(--border));list-style-type:none;font-size:.8125rem;color:var(--text-secondary)}.route-details .intermediate-stops-list li{position:relative;padding:.25rem 0 .25rem .75rem}.route-details .intermediate-stops-list li:before{content:"";position:absolute;left:-1rem;top:.7em;width:4px;height:4px;border-radius:50%;background:var(--line-color, var(--border))}.route-details .intermediate-stops-list.walk-steps{border-left-color:transparent;padding-left:0;margin-left:0;font-weight:500}.route-details .intermediate-stops-list.walk-steps li{padding-left:0;display:flex;gap:.5rem;align-items:flex-start}.route-details .intermediate-stops-list.walk-steps li:before{display:none}.route-details .intermediate-stops-list.walk-steps svg{width:16px;height:16px;flex-shrink:0;color:var(--text-secondary);margin-top:.2em}.route-details .intermediate-stops-list .walk-step-info{display:flex;flex-direction:column}.route-details .intermediate-stops-list .walk-step-meta{font-size:.9em;color:var(--text-secondary);font-weight:400}#itinerary-detail-container,#itinerary-detail-backdrop{display:none}@media (min-width: 769px){#detail-map-header{display:none}#itinerary-detail-container.is-active #detail-map-header{display:flex;position:absolute;top:var(--spacing-4);left:var(--spacing-4);z-index:var(--z-overlay);gap:var(--spacing-4);align-items:center;background:none}#itinerary-detail-container.is-active #detail-map-header #btn-back-to-results{background:#fffffff2;color:#1e293b;box-shadow:var(--shadow-md);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;transition:transform .2s ease,box-shadow .2s ease}body.dark-theme #itinerary-detail-container.is-active #detail-map-header #btn-back-to-results{background:#0f172af2;color:#f1f5f9}#itinerary-detail-container.is-active #detail-map-header #btn-back-to-results:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}}@media (max-width: 768px){body.itinerary-view-active{overflow-y:visible!important;position:relative!important;width:100%!important;height:auto!important;top:auto!important;left:auto!important}.wait-time,.departure-time strong,.step-time-detail{font-size:.875rem}#itinerary-results-container{flex-direction:column;height:auto!important;min-height:0!important;overflow-y:auto;-webkit-overflow-scrolling:touch}#itinerary-results-container #results-map{display:none!important;height:0!important;min-height:0!important;max-height:0!important;overflow:hidden!important;visibility:hidden!important}#results-side-panel{width:100%;flex:0 1 auto;border-right:none;height:auto!important;min-height:0!important;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column;min-height:0}.results-list-wrapper{flex:none;display:block;overflow:visible;width:100%;padding:.75rem 1rem 1.25rem!important}.results-list{flex:none;overflow:visible;max-height:none;width:100%;max-width:none;margin:0;padding:0}.recent-journeys-section{display:flex!important;flex-direction:column;gap:var(--spacing-4);flex:0 1 auto!important;padding:0!important;margin-top:var(--spacing-6)}.recent-journeys-empty{padding:.5rem 0!important}body.itinerary-view-active .results-list{padding:0}body.itinerary-view-active .recent-journeys-section{display:flex!important;flex-direction:column;gap:var(--spacing-4);flex:0 1 auto!important;padding:0!important;margin-top:var(--spacing-6);background:transparent;border:none;border-radius:0}body.itinerary-view-active .recent-journeys-empty{padding:.5rem 0}body.itinerary-view-active .results-list-wrapper,body.itinerary-view-active #itinerary-results-container{padding-bottom:0}.itinerary-top-bar{padding:.5rem .75rem}.itinerary-top-bar h2{font-size:.9375rem}#itinerary-edit-panel{padding:.75rem}.route-input-container{gap:.5rem}.route-visual-indicators{width:16px;padding:.625rem 0}.indicator-dot{width:10px;height:10px}.route-input{min-height:48px;font-size:.9375rem;padding:.75rem 2.75rem .75rem .9rem;border-radius:12px}.btn-geolocate-minimal{width:34px;height:34px}.btn-geolocate-minimal svg{width:18px;height:18px}.btn-swap-minimal{width:40px;height:40px}.btn-swap-minimal svg{width:18px;height:18px}.route-actions{margin-top:.5rem;gap:.75rem}.btn-time-picker{padding:.625rem .875rem;font-size:.875rem;border-radius:10px}.btn-time-picker svg:first-child{width:16px;height:16px}.btn-search-route{padding:.75rem 1.25rem;font-size:.9375rem;min-height:48px;border-radius:12px}.route-details{display:none!important}#itinerary-detail-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#080f1c;z-index:1080;opacity:0;pointer-events:none;transition:opacity .35s cubic-bezier(.4,0,.2,1)}#itinerary-detail-backdrop.is-active{opacity:1;pointer-events:auto}#itinerary-detail-backdrop.hidden{display:none!important}#itinerary-detail-container{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1110;pointer-events:none;overflow:hidden!important;overflow-x:hidden!important;overflow-y:hidden!important;overscroll-behavior:none;touch-action:none;scrollbar-width:none;-ms-overflow-style:none}#itinerary-detail-container::-webkit-scrollbar{display:none;width:0;height:0}#itinerary-detail-container.is-active{pointer-events:auto}#itinerary-detail-container.hidden{display:none!important}#detail-map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:#e5e5e5;z-index:0;touch-action:manipulation;overflow:hidden!important;-webkit-overflow-scrolling:auto;scrollbar-width:none;-ms-overflow-style:none}#detail-map::-webkit-scrollbar{display:none;width:0;height:0}#detail-map *{scrollbar-width:none;-ms-overflow-style:none}#detail-map *::-webkit-scrollbar{display:none;width:0;height:0}#detail-bottom-sheet{position:absolute;left:0;right:0;bottom:0;background:var(--bg-main);border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #0000001f;height:100%;max-height:90vh;padding-top:10px;padding-bottom:calc(env(safe-area-inset-bottom) + 12px);transform:translate3d(0,100%,0);transition:transform .4s cubic-bezier(.32,.72,0,1);overflow:hidden;pointer-events:auto;display:flex;flex-direction:column;z-index:1200;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}#itinerary-detail-container:not(.is-active) #detail-bottom-sheet{transform:translate3d(0,100%,0)!important}#itinerary-detail-container.is-active #detail-bottom-sheet.sheet-level-0{transform:translate3d(0,80%,0)}#itinerary-detail-container.is-active #detail-bottom-sheet.sheet-level-1{transform:translate3d(0,50%,0)}#itinerary-detail-container.is-active #detail-bottom-sheet.sheet-level-2{transform:translate3d(0,10%,0)}#detail-bottom-sheet:before{content:"";position:absolute;top:6px;left:50%;transform:translate(-50%);width:32px;height:4px;background:var(--border);border-radius:2px;z-index:10}#detail-bottom-sheet:after{content:"";position:absolute;bottom:-100vh;left:0;right:0;height:100vh;background:var(--bg-main);z-index:-1;pointer-events:none}#detail-bottom-sheet.is-dragging{transition:none!important;touch-action:none;user-select:none;-webkit-user-select:none}#detail-bottom-sheet.sheet-height-no-transition{transition:none!important}#detail-bottom-sheet .panel-handle{display:none}#detail-map-header{position:absolute;top:calc(env(safe-area-inset-top) + 12px);left:0;right:0;z-index:1100;padding:0 .75rem;display:flex;align-items:center;justify-content:flex-start;gap:.75rem;background:none;border-bottom:none;pointer-events:none}#detail-map-header #btn-back-to-results{background:var(--bg-main);color:var(--text-primary);box-shadow:0 2px 6px #00000014;pointer-events:auto;width:40px;height:40px;min-width:40px;min-height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative;transform:none;transition:all .15s ease}#detail-map-header #btn-back-to-results span{display:none}#detail-map-header #btn-back-to-results svg{color:var(--text-primary);width:18px;height:18px}#detail-map-header #btn-back-to-results:active{background:var(--bg-secondary)}body.dark-theme #detail-map-header #btn-back-to-results{background:#060c14e6!important;color:var(--text-primary)!important;box-shadow:0 2px 6px #00000038}#detail-map-header #detail-map-summary{position:static;inset:auto;margin:0;display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%;text-align:left}#detail-map-summary{background:var(--bg-main);border:1px solid var(--border);padding:.5rem .75rem;border-radius:12px;box-shadow:0 2px 6px #00000014;font-weight:500;font-size:.8125rem;pointer-events:none}#detail-map-summary .route-time{margin-right:.5rem;font-weight:600}#detail-map-summary .route-duration{color:var(--text-secondary)}#detail-panel-wrapper{flex:1 1 auto;width:100%;min-height:0;overflow:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:none;padding-top:0;position:relative;box-sizing:border-box}#detail-bottom-sheet.is-expanded #detail-panel-wrapper{overflow-y:auto;overflow-x:hidden;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:var(--border) transparent}#detail-bottom-sheet.is-expanded #detail-panel-wrapper::-webkit-scrollbar{width:5px}#detail-bottom-sheet.is-expanded #detail-panel-wrapper::-webkit-scrollbar-track{background:transparent}#detail-bottom-sheet.is-expanded #detail-panel-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}#detail-bottom-sheet.is-expanded #detail-panel-wrapper::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}#detail-bottom-sheet:not(.is-expanded) #detail-panel-wrapper{overflow:hidden!important;touch-action:none!important;scrollbar-width:none}#detail-bottom-sheet:not(.is-expanded) #detail-panel-wrapper::-webkit-scrollbar{display:none;width:0}#detail-panel-content{padding:.5rem .875rem 3rem;box-sizing:border-box;background:var(--bg-main)}#detail-panel-content .step-detail{display:flex;position:relative;padding-left:2.25rem;padding-bottom:1rem;min-height:36px}#detail-panel-content .step-detail:last-child{padding-bottom:0}#detail-panel-content .step-detail:before{content:"";position:absolute;left:14px;top:0;bottom:-1rem;width:3px;background:var(--line-color, var(--border));border-radius:2px}#detail-panel-content .step-detail:last-child:before{bottom:.5rem}#detail-panel-content .step-detail:after{content:"";position:absolute;left:10px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--bg-main);border:2px solid var(--line-color, var(--border));z-index:1}#detail-panel-content .step-detail.walk:before,#detail-panel-content .step-detail.bicycle:before{background:repeating-linear-gradient(var(--line-color, var(--text-secondary)) 0,var(--line-color, var(--text-secondary)) 3px,transparent 3px,transparent 6px)}#detail-panel-content .step-detail.walk:after,#detail-panel-content .step-detail.bicycle:after{border-color:var(--line-color, var(--text-secondary))}#detail-panel-content .step-icon{position:absolute;left:0;top:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-main);z-index:2}#detail-panel-content .step-detail.walk .step-icon,#detail-panel-content .step-detail.bicycle .step-icon{background:var(--bg-main);color:var(--text-secondary)}#detail-panel-content .step-detail.walk .step-icon svg{width:20px;height:20px}#detail-panel-content .step-detail.bicycle .step-icon svg{width:20px;height:20px}#detail-panel-content .step-info{display:flex;flex-direction:column;padding-top:4px;min-width:0;word-wrap:break-word;overflow-wrap:break-word}#detail-panel-content .step-instruction{font-size:1rem;font-weight:600;color:var(--text-primary);line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}#detail-panel-content .step-detail.wait .wait-info{display:flex;flex-direction:column;gap:.1rem}#detail-panel-content .wait-info .wait-time{font-size:.95rem;font-weight:600;color:var(--text-secondary)}#detail-panel-content .wait-info .wait-duration{font-size:.9rem;color:var(--text-secondary)}#detail-panel-content .step-duration-inline{font-size:.9rem;font-weight:500;color:var(--text-secondary);margin-left:.25rem}#detail-panel-content .step-sub-instruction{font-size:.9rem;color:var(--text-secondary);margin-top:.25rem}#detail-panel-content .step-stop-point{margin-top:.75rem;padding-left:0;position:relative;font-size:.9rem;color:var(--text-primary);font-weight:600}#detail-panel-content .step-stop-point:before{display:none}#detail-panel-content .step-stop-point .step-time-detail{font-size:.875rem;color:var(--text-secondary);margin-left:.5rem;font-weight:500}#detail-panel-content .stop-context{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:baseline}#detail-panel-content .stop-context .stop-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);opacity:.8;white-space:nowrap}#detail-panel-content .stop-context .step-time{font-size:.95rem;font-weight:600;color:var(--text-primary)}#detail-panel-content .stop-context.is-terminus .stop-label{color:var(--primary);opacity:1;font-weight:800}#detail-panel-content .stop-context.is-terminus .step-time{color:var(--primary)}#detail-panel-content .intermediate-stops{margin:.75rem 0;padding-left:0}#detail-panel-content .intermediate-stops summary{font-size:.875rem;font-weight:600;color:var(--primary);padding:.25rem 0}#detail-panel-content .intermediate-stops-list{margin:.5rem 0 0;padding-left:.5rem;list-style-type:none;font-size:.875rem;color:var(--text-secondary);border-left:4px solid var(--line-color, var(--border))}#detail-panel-content .intermediate-stops-list li{position:relative;padding:.3rem 0 .3rem .75rem}#detail-panel-content .intermediate-stops-list li:before{content:"";position:absolute;left:-.7rem;top:.65em;width:8px;height:2px;background:var(--line-color, var(--border))}#detail-panel-content .intermediate-stops-list.walk-steps{border-left-color:transparent;padding-left:0;margin-top:.75rem}#detail-panel-content .intermediate-stops-list.walk-steps li{padding-left:0;display:flex;gap:.75rem;align-items:flex-start;padding-bottom:.5rem}#detail-panel-content .intermediate-stops-list.walk-steps li:before{display:none}#detail-panel-content .intermediate-stops-list.walk-steps svg{width:16px;height:16px;flex-shrink:0;color:var(--text-secondary);margin-top:.2em}#detail-panel-content .intermediate-stops-list .walk-step-info{display:flex;flex-direction:column;line-height:1.5}#detail-panel-content .intermediate-stops-list .walk-step-meta{font-size:.9em;color:var(--text-secondary);font-weight:400}@keyframes slideUpFade{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero-section,.main-nav-buttons-condensed{animation:slideUpFade .8s cubic-bezier(.2,.8,.2,1) forwards;opacity:0}.main-nav-buttons-condensed{animation-delay:.1s}.bottom-content-wrapper{opacity:1}.hero-section{padding:1.25rem 1rem;margin-bottom:1rem}.main-nav-buttons-condensed{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:var(--spacing-3);margin-top:var(--spacing-6)}.nav-button-condensed[data-view=itineraire]{grid-column:1 / -1;padding:var(--spacing-5);font-size:var(--font-size-lg);aspect-ratio:auto;border-radius:var(--radius-lg);box-shadow:var(--elevation-3)}.nav-button-condensed[data-view=horaires],.nav-button-condensed[data-view=info-trafic]{padding:var(--spacing-4);font-size:var(--font-size-sm);flex-direction:column;text-align:center;justify-content:center;aspect-ratio:1.2 / 1;border-radius:var(--radius-md)}.nav-button-condensed svg{width:24px;height:24px;margin-bottom:var(--spacing-2)}.nav-button-condensed[data-view=itineraire] svg{width:28px;height:28px}.key-figures-grid{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.5rem 0;position:relative;z-index:10!important}.key-figure-item{flex:1;margin-bottom:0}.key-figure-number{font-size:1.5rem}.key-figure-label{font-size:.7rem}.hero-section .planner-block .planner-title-bar h3{font-size:1.2rem}#detail-panel-content .step-icon .route-line-badge{font-size:.9rem;padding:.4rem .6rem;min-width:32px;height:32px;border-radius:50%;box-shadow:var(--shadow-sm);border:2px solid white}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}#update-banner{font-family:inherit}#update-banner .update-banner-content{display:flex;align-items:center;gap:12px;font-size:.9rem;font-weight:500}#update-banner .btn-sm{padding:6px 14px;font-size:.85rem;border-radius:8px}#update-banner #update-dismiss{width:28px;height:28px;font-size:1.2rem;border:none;background:transparent;cursor:pointer;color:var(--text-secondary)}#update-banner #update-dismiss:hover{color:var(--text-primary)}@media (max-width: 480px){#update-banner{left:10px;right:10px;transform:none;bottom:10px}#update-banner .update-banner-content{flex-wrap:wrap;justify-content:center}}#top-info-bar{background:linear-gradient(135deg,#1e3a5f,#0d2137);padding:.5rem 1.5rem;font-size:.8rem;color:#ffffffe6}.top-info-content{max-width:1300px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem}.top-info-left{display:flex;gap:1.5rem}.top-info-link{display:inline-flex;align-items:center;gap:.4rem;color:#ffffffd9;text-decoration:none;transition:color .2s ease}.top-info-link:hover{color:#fff}.top-info-link svg{opacity:.7}.top-info-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .75rem;background:#22c55e33;border:1px solid rgba(34,197,94,.4);border-radius:var(--radius-full);color:#4ade80;font-weight:600}body.view-is-locked #top-info-bar{display:none}body.dark-theme #top-info-bar{background:linear-gradient(135deg,#0a1929,#071018)}@media (max-width: 768px){#top-info-bar{padding:.4rem 1rem}.top-info-left{gap:.75rem}.top-info-link span,.top-info-badge span{display:none}}.header-nav-link{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;color:var(--text-secondary);text-decoration:none;font-weight:600;font-size:.875rem;border-radius:var(--radius-full);transition:all .2s ease}.header-nav-link:hover{background:var(--bg-secondary);color:var(--primary)}.header-nav-link svg{opacity:.7}@media (max-width: 768px){.header-nav-link span{display:none}.header-nav-link{padding:.5rem}}.hero-headline{text-align:center;margin-bottom:2rem;padding-top:1rem}.hero-headline h1{font-size:2.25rem;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5),0 4px 20px rgba(0,0,0,.3);margin:0 0 .75rem;line-height:1.2}.hero-headline h1 .highlight{background:linear-gradient(135deg,#4ade80,#22d3ee);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.hero-subtitle{font-size:1.125rem;color:#fffffff2;font-weight:500;margin:0;text-shadow:0 1px 6px rgba(0,0,0,.4)}@media (max-width: 768px){.hero-headline{margin-bottom:1.25rem;padding-top:.5rem}.hero-headline h1{font-size:1.5rem}.hero-subtitle{font-size:.9rem}}.services-section{max-width:900px;margin:2.5rem auto 0;padding:0 1rem}.section-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 1.25rem;display:flex;align-items:center;gap:.5rem}.section-title:before{content:"";width:4px;height:1.25rem;background:var(--primary);border-radius:2px}.services-grid{display:flex;flex-direction:column;gap:1rem}.service-card{display:flex;align-items:center;gap:1rem;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;cursor:pointer;transition:all var(--transition-normal),transform .2s cubic-bezier(.34,1.56,.64,1);text-align:left;position:relative;box-shadow:var(--shadow-sm)}.service-card:hover{border-color:var(--primary);box-shadow:0 8px 24px #2563eb26;transform:translateY(-3px) scale(1.01)}.service-card:active{transform:translateY(-1px) scale(.99);transition:transform .1s ease}.service-card-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.service-card:hover .service-card-icon{transform:scale(1.1) rotate(3deg);box-shadow:0 4px 12px #0000001a}.service-card-icon--green{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#16a34a}.service-card-icon--orange{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#ea580c}.service-card-icon--blue{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb}.service-card-content{flex:1;min-width:0}.service-card-content h3{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0 0 .35rem}.service-card-content p{font-size:.875rem;color:var(--text-secondary);margin:0;line-height:1.5}.service-card-arrow{color:var(--text-secondary);opacity:.5;transition:all .2s ease;flex-shrink:0}.service-card:hover .service-card-arrow{opacity:1;color:var(--primary);transform:translate(4px)}.service-card .notification-badge{position:absolute;top:1rem;right:3rem}body.dark-theme .service-card{background:#ffffff08;border-color:#ffffff14}body.dark-theme .service-card-icon--green{background:#22c55e26}body.dark-theme .service-card-icon--orange{background:#f9731626}body.dark-theme .service-card-icon--blue{background:#3b82f626}@media (max-width: 768px){.services-section{margin-top:1.5rem}.service-card{padding:1rem}.service-card-icon{width:48px;height:48px}.service-card-icon svg{width:24px;height:24px}.service-card-content h3{font-size:1rem}.service-card-content p{font-size:.8rem}}.promo-banner{max-width:900px;margin:2rem auto 0;padding:0 1rem}.promo-banner-content{display:flex;align-items:center;gap:1.25rem;background:linear-gradient(135deg,#0ea5e9,#0284c7);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;color:#fff;box-shadow:0 4px 20px #0ea5e94d}.promo-banner-icon{width:48px;height:48px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.promo-banner-text{flex:1;min-width:0}.promo-banner-text strong{display:block;font-size:1rem;font-weight:700;margin-bottom:.25rem}.promo-banner-text span{font-size:.875rem;opacity:.9}.promo-banner-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;background:#fff;color:#0284c7;border-radius:var(--radius-full);font-weight:700;font-size:.9rem;text-decoration:none;transition:all .2s ease;flex-shrink:0}.promo-banner-btn:hover{transform:scale(1.05);box-shadow:0 4px 15px #0003}@media (max-width: 768px){.promo-banner-content{flex-direction:column;text-align:center;padding:1.25rem 1rem}.promo-banner-icon{display:none}.promo-banner-btn{width:100%;justify-content:center}}.stats-section{max-width:900px;margin:2rem auto 0;padding:0 1rem 2rem}.stats-card{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.stats-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.stats-header svg{color:var(--primary)}.stats-header h3{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.stat-item{text-align:center;padding:.75rem;background:var(--bg-secondary);border-radius:var(--radius-md)}.stat-number{display:block;font-size:1.75rem;font-weight:800;color:var(--primary);line-height:1.2}.stat-label{display:block;font-size:.8rem;color:var(--text-secondary);font-weight:500;margin-top:.25rem}body.dark-theme .stats-card{background:#ffffff08;border-color:#ffffff14}body.dark-theme .stat-item{background:#ffffff0d}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-number{font-size:1.5rem}}#site-footer{background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;margin-top:auto;padding:0;position:relative;z-index:10}@media (max-width: 768px){#site-footer{display:none!important}}body.view-is-locked #site-footer{display:none}@media (min-width: 769px){body.view-map-locked #site-footer{display:none}}.footer-content{max-width:1300px;margin:0 auto;padding:2.5rem 1.5rem 1.5rem}@media (max-width: 768px){.footer-content{padding-bottom:1.5rem}}.footer-main{display:grid;grid-template-columns:1fr 2fr;gap:3rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.1)}.footer-brand{display:flex;align-items:flex-start;gap:1rem}.footer-logo{width:48px;height:48px;object-fit:contain}.footer-brand-text{display:flex;flex-direction:column}.footer-brand-name{font-size:1.25rem;font-weight:800;color:#fff;background:linear-gradient(120deg,#60a5fa,#34d399);-webkit-background-clip:text;background-clip:text;color:transparent}.footer-brand-tagline{font-size:.875rem;color:#94a3b8;margin-top:.25rem}.footer-links{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;align-items:start}.footer-links-column h4{font-size:.85rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem}.footer-links-column a{display:block;color:#94a3b8;text-decoration:none;font-size:.9rem;padding:.35rem 0;transition:color var(--transition-fast),transform var(--transition-fast);position:relative}.footer-links-column a:hover{color:#60a5fa;transform:translate(4px)}.footer-links-column a:before{content:"→";position:absolute;left:-15px;opacity:0;transition:opacity var(--transition-fast),left var(--transition-fast)}.footer-links-column a:hover:before{opacity:1;left:-12px}.footer-data-info{display:flex;align-items:center;gap:.4rem;color:#94a3b8;font-size:.85rem;margin:0}.footer-data-info svg{opacity:.6}.footer-license{font-size:.8rem;color:#64748b;margin:.25rem 0 0}.footer-bottom{padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-independent{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#64748b;margin:0;padding:.35rem .75rem;background:#ffffff0d;border-radius:var(--radius-full)}.footer-independent svg{opacity:.6}.footer-copyright{font-size:.8rem;color:#64748b;margin:0}.footer-social-column{min-width:100px}.footer-social-column h4{margin-bottom:.75rem!important}.footer-social-links{display:flex;gap:.5rem;margin-top:0;align-items:center}.footer-social-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#ffffff14;color:#94a3b8;transition:all .25s ease;border:1px solid rgba(255,255,255,.1)}.footer-social-btn svg{width:20px;height:20px}.footer-social-btn:hover{transform:translateY(-3px);box-shadow:0 4px 15px #0000004d}.footer-social-btn[aria-label*=Instagram]:hover{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff;border-color:transparent}.footer-social-btn[aria-label*=Facebook]:hover{background:#1877f2;color:#fff;border-color:transparent}.footer-bottom-right{display:flex;align-items:center;gap:1rem}.footer-social-mobile{display:none}.footer-social-btn-sm{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#ffffff14;color:#94a3b8;transition:all .2s ease}.footer-social-btn-sm svg{width:16px;height:16px}.footer-social-btn-sm:hover{transform:scale(1.1)}.footer-social-btn-sm[aria-label*=Instagram]:hover{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff}.footer-social-btn-sm[aria-label*=Facebook]:hover{background:#1877f2;color:#fff}@media (max-width: 768px){.footer-main{grid-template-columns:1fr;gap:2rem}.footer-brand{justify-content:center;text-align:center}.footer-links{grid-template-columns:1fr;gap:1.5rem;text-align:center}.footer-links-column h4{margin-bottom:.75rem}.footer-social-links{justify-content:center}.footer-social-column{order:-1}.footer-data-info{justify-content:center}.footer-bottom{flex-direction:column;text-align:center;gap:.75rem}.footer-bottom-right{flex-direction:column;gap:.75rem}.footer-social-mobile{display:flex;gap:.5rem}}.services-section,.promo-banner,.stats-section{animation:slideUpFade .8s cubic-bezier(.2,.8,.2,1) forwards}.services-section{animation-delay:.15s}.promo-banner{animation-delay:.25s}.stats-section{animation-delay:.35s}.network-delays-widget{max-width:900px;margin:1.5rem auto 0;padding:0 1rem}.network-delays-widget .network-delays-header{background:#fef3c7;border:1px solid #fcd34d;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem;font-weight:600;color:#92400e}.network-delays-widget .network-delays-list{background:var(--bg-main);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:.5rem}body:not(.view-is-locked){padding-top:0}@media (min-width: 769px){body:not(.view-is-locked) #main-header{top:0}#main-header{position:sticky;top:0}}#results-side-panel{background:#f8fafc}body.dark-theme #results-side-panel{background:#0c1220}.itinerary-edit-header{padding:1rem 1.25rem .75rem;border-bottom:none}.itinerary-edit-header h2{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}#itinerary-edit-panel{background:transparent;padding:0 1.25rem 1rem;border-bottom:1px solid #e5e7eb}body.dark-theme #itinerary-edit-panel{border-bottom-color:#ffffff0f}.itinerary-edit-form .form-group input[type=text],#results-planner-from,#results-planner-to{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem 1rem;font-size:.9rem;min-height:44px;box-shadow:none}body.dark-theme .itinerary-edit-form .form-group input[type=text],body.dark-theme #results-planner-from,body.dark-theme #results-planner-to{background:#ffffff0a;border-color:#ffffff14}.itinerary-edit-form .form-group input[type=text]:focus,#results-planner-from:focus,#results-planner-to:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.itinerary-edit-form .form-group label{font-size:.65rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em}#results-mode-tabs{display:flex;justify-content:center;gap:.75rem;background:var(--bg-main);padding:1.25rem;flex-shrink:0;border-bottom:1px solid var(--border)}body.dark-theme #results-mode-tabs{border-bottom-color:var(--border)}.mode-tab{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.25rem;border:none;background:var(--bg-secondary);border-radius:14px;cursor:pointer;flex:1;max-width:110px;border:2px solid transparent;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.mode-tab svg{width:26px;height:26px;color:var(--text-tertiary);transition:all .3s ease}.mode-tab:hover svg{color:var(--primary);transform:scale(1.1)}.mode-tab.active svg{color:var(--primary);filter:drop-shadow(0 2px 4px rgba(34,197,94,.3))}.mode-tab-duration{font-size:.875rem;font-weight:700;color:var(--text-secondary);letter-spacing:-.01em}.mode-tab.active .mode-tab-duration{color:var(--primary);font-weight:800}.mode-tab-duration.empty{color:#94a3b8;font-weight:500}.results-list{padding:.75rem;background:transparent}.route-option-title{font-size:.7rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin:1rem .5rem .5rem;padding:0}body.dark-theme .route-option-title{color:#94a3b8}.route-option{display:flex;flex-direction:column;background:var(--bg-main);border-radius:16px;padding:1.25rem 1.375rem;border:2px solid var(--border);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);gap:1rem;position:relative;overflow:hidden}.route-option:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(34,197,94,.03) 0%,transparent 100%);opacity:0;transition:opacity .3s ease;pointer-events:none}.route-option:hover:before{opacity:1}.route-summary-walk-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.route-summary-walk-icon svg{width:18px;height:18px}.route-summary-dot{color:#cbd5e1;font-size:.5rem;margin:0 .125rem}body.dark-theme .route-summary-dot{color:#fff3}.route-line-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;border-radius:8px;min-width:32px;height:24px;padding:0 6px;box-shadow:none;letter-spacing:.02em}.route-footer{display:flex;justify-content:space-between;align-items:center;margin-top:.25rem}.route-time{font-size:.95rem;font-weight:700;color:#1e293b;letter-spacing:-.01em}body.dark-theme .route-time{color:#f1f5f9}.route-duration{font-size:.9rem;font-weight:600;color:#64748b}body.dark-theme .route-duration{color:#94a3b8}.route-duration-eco{display:inline-flex;align-items:center;gap:.25rem;color:#059669;font-weight:700}.route-duration-eco svg{width:14px;height:14px}.route-next-departures{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;padding-top:.625rem;margin-top:.625rem;border-top:1px solid #f1f5f9;font-size:.75rem}body.dark-theme .route-next-departures{border-top-color:#ffffff0a}.next-departures-label{font-weight:500;color:#94a3b8}.next-departures-time{display:inline-flex;align-items:center;padding:.2rem .5rem;background:#f1f5f9;border-radius:4px;font-weight:600;color:#475569}body.dark-theme .next-departures-time{background:#ffffff0f;color:#94a3b8}.next-departures-more{color:#94a3b8;font-weight:500}.btn-full-width{background:#2563eb;color:#fff;border:none;border-radius:8px;padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s ease}.btn-full-width:hover{background:#1d4ed8}.load-more-wrapper{padding:.75rem}.load-more-wrapper .btn,.load-more-departures .btn{background:transparent;border:1px solid #e5e7eb;color:#475569;border-radius:8px;padding:.625rem 1rem;font-size:.85rem;font-weight:500;width:100%;justify-content:center}.load-more-wrapper .btn:hover,.load-more-departures .btn:hover{background:#f8fafc;border-color:#cbd5e1}body.dark-theme .load-more-wrapper .btn,body.dark-theme .load-more-departures .btn{background:transparent;border-color:#ffffff1a;color:#94a3b8}body.dark-theme .load-more-wrapper .btn:hover,body.dark-theme .load-more-departures .btn:hover{background:#ffffff0a}.btn-when,.btn-when-inline{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.625rem 1rem;font-size:.875rem;color:#1e293b;display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;transition:all .15s ease}.btn-when:hover,.btn-when-inline:hover{border-color:#cbd5e1;background:#fafafa}.btn-when svg,.btn-when-inline svg{color:#94a3b8;width:18px;height:18px}@media (max-width: 768px){#results-side-panel{background:var(--bg-main)}body.dark-theme #results-side-panel{background:#0a0f18}.itinerary-edit-header{padding:.875rem 1rem .5rem}.itinerary-edit-header h2{font-size:1.125rem}#itinerary-edit-panel{padding:0 1rem .875rem}#results-mode-tabs{padding:1rem;gap:.5rem}.mode-tab{padding:.875rem 1rem;max-width:none;border-radius:12px}.mode-tab svg{width:24px;height:24px}.mode-tab-duration{font-size:.85rem}.results-list{padding:.5rem}.route-option{padding:1.05rem 1.15rem;margin-bottom:.75rem;border-radius:14px;border-width:2px}.route-line-badge{min-width:36px;height:26px;font-size:.8125rem;border-radius:6px}.route-time{font-size:1rem}.route-duration{font-size:.9rem}}#results-mode-tabs{display:flex;justify-content:center;gap:.75rem;background:var(--bg-main);padding:1.25rem;flex-shrink:0;border-bottom:1px solid var(--border);margin:0;border-radius:0;box-shadow:none}body.dark-theme #results-mode-tabs{background:var(--bg-main);box-shadow:none}.mode-tab{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.25rem;background:var(--bg-secondary);border-radius:14px;border:2px solid transparent;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.mode-tab:hover{background:var(--bg-light);border-color:#22c55e4d;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.mode-tab.active{background:linear-gradient(135deg,#22c55e1f,#22c55e14);border-color:var(--primary);box-shadow:0 2px 12px #22c55e33}.mode-tab svg{width:26px;height:26px;color:var(--text-tertiary)}.mode-tab.active svg{color:var(--primary)}.mode-tab-duration{font-size:.875rem;font-weight:700;color:var(--text-secondary)}.mode-tab.active .mode-tab-duration{color:var(--primary)}.route-option{display:flex;flex-direction:column;background:var(--bg-main);border-radius:16px;padding:1.25rem 1.375rem;border:2px solid var(--border);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);gap:1rem;position:relative;overflow:hidden;box-shadow:none}.route-option:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 8px 24px #0000001f,0 2px 8px #22c55e26}.route-option.is-active{border-color:var(--primary);background:#22c55e0d;box-shadow:0 0 0 4px #22c55e26,0 4px 16px #22c55e33}body.dark-theme .route-option{background:#ffffff08;border-color:#ffffff0f}body.dark-theme .route-option:hover{background:#22c55e14;border-color:var(--primary)}body.dark-theme .route-option.is-active{background:#22c55e1f;border-color:var(--primary)}.route-summary-line{display:flex;align-items:center;column-gap:.5rem;row-gap:.5rem;flex-wrap:wrap}.route-summary-bus-icon,.route-summary-bike-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--bg-secondary);border:2px solid var(--border);color:var(--text-secondary);transition:all .3s cubic-bezier(.4,0,.2,1)}.route-summary-bus-icon svg,.route-summary-bike-icon svg{width:24px;height:24px}.route-option:hover .route-summary-bus-icon,.route-option:hover .route-summary-bike-icon{background:#22c55e1f;border-color:var(--primary);color:var(--primary);transform:scale(1.05);box-shadow:0 2px 8px #22c55e33}.route-summary-walk-icon,.route-summary-walk-only-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.route-summary-walk-icon svg,.route-summary-walk-only-icon svg{width:18px;height:18px}.route-summary-dot{color:var(--text-tertiary);font-weight:600;font-size:.5rem;opacity:.6}.route-line-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.9375rem;border-radius:8px;min-width:42px;height:32px;padding:0 12px;box-shadow:0 2px 8px #0003,0 1px 3px #00000026;letter-spacing:.02em}.route-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--border)}.route-time{font-size:1.125rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.route-duration{font-size:1rem;font-weight:600;color:var(--text-secondary)}.route-duration-eco{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary);background:#22c55e1f;padding:.5rem 1rem;border-radius:20px;font-weight:700;font-size:.9375rem;box-shadow:0 2px 8px #22c55e26}.route-duration-eco svg{width:18px;height:18px}.route-next-departures{display:flex;align-items:center;gap:.375rem;padding-top:.5rem;margin-top:.5rem;border-top:1px dashed var(--border);font-size:.8125rem;color:var(--text-secondary);flex-wrap:wrap}.next-departures-label{font-weight:500;color:var(--primary)}.next-departures-more{color:var(--text-tertiary);font-style:italic}.route-option-title{font-size:.6875rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;margin:1rem .5rem .5rem;padding:0;display:flex;align-items:center;gap:.5rem}.route-option-title:before{content:"";width:3px;height:14px;background:var(--primary);border-radius:2px}.btn-when,.btn-when-inline{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:.75rem 1rem;font-size:.875rem;font-weight:500;color:#1e293b;display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000a}.btn-when:hover,.btn-when-inline:hover{background:#f8fafc;border-color:#0000001f}body.dark-theme .btn-when,body.dark-theme .btn-when-inline{background:#ffffff0a;border-color:#ffffff14;color:#e2e8f0}body.dark-theme .btn-when:hover,body.dark-theme .btn-when-inline:hover{background:#ffffff0f}.btn-when svg,.btn-when-inline svg{color:#94a3b8;width:18px;height:18px;transition:transform .2s ease}.btn-when:hover svg,.btn-when-inline:hover svg{transform:translateY(1px)}.load-more-wrapper{padding:.5rem}.load-more-wrapper .btn,.load-more-departures .btn{background:transparent;border:1px dashed rgba(0,0,0,.12);color:#64748b;border-radius:12px;padding:.75rem 1rem;font-size:.8rem;font-weight:600;width:100%;justify-content:center;transition:all .15s ease}.load-more-wrapper .btn:hover,.load-more-departures .btn:hover{background:#2563eb0a;border-color:#2563eb;border-style:solid;color:#2563eb}body.dark-theme .load-more-wrapper .btn,body.dark-theme .load-more-departures .btn{border-color:#ffffff1a;color:#94a3b8}body.dark-theme .load-more-wrapper .btn:hover,body.dark-theme .load-more-departures .btn:hover{background:#3b82f61a;border-color:#3b82f6;color:#60a5fa}.results-list{padding:.5rem .75rem 1rem;background:transparent}#results-side-panel{background:linear-gradient(180deg,#f8fafc,#f1f5f9)}body.dark-theme #results-side-panel{background:linear-gradient(180deg,#0c1220,#0a0f18)}.itinerary-edit-form .form-group input[type=text],#results-planner-from,#results-planner-to{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:.875rem 1rem;font-size:.9rem;font-weight:500;min-height:48px;box-shadow:0 1px 2px #0000000a;transition:all .15s ease}.itinerary-edit-form .form-group input[type=text]:focus,#results-planner-from:focus,#results-planner-to:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a,0 1px 2px #0000000a;outline:none}body.dark-theme .itinerary-edit-form .form-group input[type=text],body.dark-theme #results-planner-from,body.dark-theme #results-planner-to{background:#ffffff0a;border-color:#ffffff14;color:#f1f5f9}body.dark-theme .itinerary-edit-form .form-group input[type=text]:focus,body.dark-theme #results-planner-from:focus,body.dark-theme #results-planner-to:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}#planner-submit-btn,#results-planner-submit-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:12px;padding:.875rem 1.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #2563eb4d}#planner-submit-btn:hover,#results-planner-submit-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 4px 12px #2563eb66;transform:translateY(-1px)}#planner-submit-btn:active,#results-planner-submit-btn:active{transform:translateY(0);box-shadow:0 2px 4px #2563eb4d}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.route-option-wrapper{animation:fadeInUp .25s ease-out}.route-option-wrapper:nth-child(2){animation-delay:.03s}.route-option-wrapper:nth-child(3){animation-delay:.06s}.route-option-wrapper:nth-child(4){animation-delay:.09s}.route-option-wrapper:nth-child(5){animation-delay:.12s}@media (max-width: 768px){#results-mode-tabs{margin:0 .5rem;padding:.375rem;border-radius:12px}.mode-tab{padding:.375rem .25rem;border-radius:8px}.mode-tab svg{width:18px;height:18px}.mode-tab-duration{font-size:.65rem}.results-list{padding:.375rem .5rem 1rem}.route-option{padding:.875rem 1rem;margin-bottom:.375rem;border-radius:14px}.route-summary-bus-icon{width:26px;height:26px;border-radius:7px}.route-summary-bus-icon svg{width:14px;height:14px}.route-line-badge{width:26px;min-width:26px;height:26px;padding:0;font-size:.7rem;border-radius:9999px}.route-time{font-size:.95rem}.route-duration{font-size:.8rem}.route-next-departures{gap:.25rem}.next-departures-time{padding:.2rem .375rem;font-size:.65rem}.btn-when,.btn-when-inline{border-radius:10px;padding:.625rem .875rem}}@media (max-width: 768px){#results-mode-tabs{margin-left:1rem;margin-right:1rem}.results-list-wrapper{padding:.75rem 1rem 1.25rem;box-sizing:border-box}.results-list{padding:0}.route-option-wrapper,.route-option{width:100%;box-sizing:border-box}.route-option{margin-bottom:.75rem}.results-list .btn-load-more{display:flex}}.header-nav-main{display:flex;align-items:center;gap:.25rem;margin-left:2rem}.nav-dropdown{position:relative}.nav-dropdown-trigger{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:transparent;border:none;color:var(--text-primary);font-size:.95rem;font-weight:600;cursor:pointer;border-radius:var(--radius-md);transition:all .2s ease;font-family:inherit}.nav-dropdown-trigger:hover{background:var(--bg-secondary);color:var(--primary)}.nav-dropdown-trigger svg{transition:transform .2s ease;opacity:.6}.nav-dropdown:hover .nav-dropdown-trigger svg,.nav-dropdown.is-open .nav-dropdown-trigger svg{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:calc(100% + .5rem);left:0;min-width:220px;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 10px 40px #00000026;padding:.5rem;opacity:0;visibility:hidden;transform:translateY(-10px) scale(.95);transform-origin:top left;transition:all var(--transition-normal);z-index:1200}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.is-open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.nav-dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--text-primary);text-decoration:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;transition:all var(--transition-fast);position:relative;overflow:hidden}.nav-dropdown-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--primary);border-radius:0 2px 2px 0;transition:height var(--transition-fast)}.nav-dropdown-item:hover{background:var(--bg-secondary);color:var(--primary);padding-left:1.25rem}.nav-dropdown-item:hover:before{height:60%}.nav-dropdown-item svg{color:var(--text-secondary);flex-shrink:0}.nav-dropdown-item:hover svg{color:var(--primary)}.nav-dropdown-item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.nav-badge{display:inline-flex;padding:.15rem .5rem;background:var(--primary);color:#fff;font-size:.7rem;font-weight:700;border-radius:var(--radius-full);margin-left:auto}.header-nav-right{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-left:auto;height:100%}.header-nav-right .btn-icon-round{margin:0}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;background:transparent;border:none;cursor:pointer;border-radius:var(--radius-md);order:-1}.mobile-menu-toggle span{display:block;width:100%;height:2px;background:var(--text-primary);border-radius:2px;transition:all .3s ease}.mobile-menu-toggle.is-active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.mobile-menu-toggle.is-active span:nth-child(2){opacity:0}.mobile-menu-toggle.is-active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.mobile-menu{position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 76px);background:var(--bg-main, #ffffff);border-top:1px solid var(--border, #e2e8f0);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:0 10px 40px #00000026;padding:.75rem;overflow-y:auto;animation:slideInDown .25s cubic-bezier(.4,0,.2,1) forwards;transform-origin:top center;z-index:1100}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.mobile-menu.hidden{display:none}.mobile-menu-section{margin-bottom:.25rem;background:transparent;border-radius:var(--radius-md);padding:0}.mobile-menu-section:last-child{margin-bottom:0}.mobile-menu-section h4{font-size:.75rem;font-weight:700;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;padding-left:.5rem}.mobile-menu-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem .6rem 1.25rem;margin:.15rem .5rem .15rem .75rem;color:var(--text-primary, #0f172a)!important;text-decoration:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:450;letter-spacing:.01em;text-transform:none;transition:all .2s ease;position:relative;background:transparent}.mobile-menu-item:before{content:"";display:inline-block;width:5px;height:5px;min-width:5px;background:var(--pm-green, #22c55e);opacity:.8;border-radius:50%;transition:all .2s ease}.mobile-menu-item:hover{background:#00c8ff1a;color:var(--pm-cyan, #00c8ff)!important;padding-left:1.5rem}.mobile-menu-item:hover:before{background:var(--pm-cyan, #00c8ff);opacity:1;transform:scale(1.3)}.mobile-menu-item:active{transform:scale(.98)}.mobile-menu-item--disabled{opacity:.5;cursor:not-allowed}.mobile-menu-category{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.9rem 1rem;margin-bottom:.35rem;background:transparent!important;border:none;border-left:3px solid var(--pm-green, #22c55e);outline:none!important;box-shadow:none!important;font-size:.75rem;font-weight:700;color:var(--text-primary, #0f172a)!important;opacity:1!important;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-md)}.mobile-menu-category *,.mobile-menu-category span,.mobile-menu-category svg{color:var(--text-primary, #0f172a)!important;stroke:var(--text-primary, #0f172a)!important;opacity:1!important;fill:none}.mobile-menu-category:focus,.mobile-menu-category:focus-visible,.mobile-menu-category:focus-within,button.mobile-menu-category:focus{outline:none!important;outline-width:0!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important}.mobile-menu-category:hover{background:#22c55e0f!important;border-left-color:var(--pm-green, #22c55e)!important;color:var(--text-primary, #0f172a)!important}.mobile-menu-category:hover span,.mobile-menu-category:hover svg{color:var(--text-primary, #0f172a)!important;stroke:var(--text-primary, #0f172a)}.mobile-menu-category[aria-expanded=true]{background:#22c55e14!important;border-left-color:var(--pm-cyan, #00c8ff)!important}.mobile-menu-category:active{transform:scale(.98)}.mobile-menu-chevron{transition:transform .25s ease;flex-shrink:0;color:var(--text-primary, #0f172a)}.mobile-menu-category[aria-expanded=true] .mobile-menu-chevron{transform:rotate(180deg)}.mobile-menu-items{max-height:0;overflow:hidden;transition:max-height .3s ease-out,opacity .2s ease;opacity:0;margin-left:.5rem;padding-left:.5rem;border-left:1px solid rgba(34,197,94,.2)}.mobile-menu-items.is-expanded{max-height:500px;opacity:1;padding-top:.25rem;padding-bottom:.25rem;transition:max-height .3s ease-in,opacity .2s ease}body.mobile-menu-open{overflow:hidden!important;position:fixed;width:100%;height:100%}body.dark-theme .nav-dropdown-menu{background:#0f172afa;border-color:#ffffff1a;box-shadow:0 10px 40px #00000080}body.dark-theme .mobile-menu{background:#0f172a;border-color:#ffffff1a}body.dark-theme .mobile-menu-category{color:#fff!important;border-left-color:var(--pm-green, #22c55e)}body.dark-theme .mobile-menu-category *,body.dark-theme .mobile-menu-category span,body.dark-theme .mobile-menu-category svg{color:#fff!important;stroke:#fff!important}body.dark-theme .mobile-menu-chevron{color:#fff}body.dark-theme .mobile-menu-section h4{color:#ffffffb3}body.dark-theme .mobile-menu-category:hover{color:#fff!important;background:#22c55e14!important}body.dark-theme .mobile-menu-category[aria-expanded=true]{background:#22c55e1a!important;border-left-color:var(--pm-cyan, #00c8ff)!important}body.dark-theme .mobile-menu-item{color:#ffffffe6}body.dark-theme .mobile-menu-item:before{background:var(--pm-green, #22c55e);opacity:.6}body.dark-theme .mobile-menu-item:hover{background:#00c8ff1a;color:#fff}body.dark-theme .mobile-menu-item:hover:before{background:var(--pm-cyan, #00c8ff);opacity:1}body.dark-theme .mobile-menu-items{border-left-color:#22c55e40}@media (max-width: 900px) and (hover: none) and (pointer: coarse){.header-nav-main{display:none}.mobile-menu-toggle{display:flex;order:-1}.header-content{justify-content:flex-start;gap:.5rem}.logo{flex:1}.header-nav-right{margin-left:auto;order:10;display:flex;align-items:center;justify-content:center;height:56px}.header-nav-right .btn-icon-round{width:36px;height:36px;font-size:.9rem;margin:auto 0}}@media (min-width: 901px){.mobile-menu{display:none!important}}body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;overflow-y:visible;-webkit-overflow-scrolling:touch}#app-view-root{flex:1 0 auto;display:flex;flex-direction:column;min-height:0;overflow-y:visible}#dashboard-main{max-width:600px;margin:0 auto;padding:1.5rem 1rem;position:relative;z-index:1;overflow-x:visible}.about-main{flex:1;width:100%;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem;padding:2.5rem 1.5rem 3rem}.tile-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.tile-layout>.about-tile:first-child{margin-top:.25rem}.cards-grid{display:grid;gap:var(--spacing-4)}.cards-grid-2{grid-template-columns:repeat(2,1fr)}.cards-grid-3{grid-template-columns:repeat(3,1fr)}.cards-grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.cards-grid-2,.cards-grid-3,.cards-grid-4{grid-template-columns:1fr}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#map-container{flex:1 0 auto;display:flex;flex-direction:column;min-height:0;position:relative;z-index:2000}#map-view{flex:1;display:flex;flex-direction:column;position:relative;min-height:0}body.view-map-locked #map-view{height:100%!important;min-height:100vh;min-height:100svh}body.view-map-locked #map{height:100%!important;min-height:0}#map-container,#map-view,#map{scrollbar-width:none;-ms-overflow-style:none}#map-container::-webkit-scrollbar,#map-view::-webkit-scrollbar,#map::-webkit-scrollbar{display:none}@media (max-width: 480px){#dashboard-main{padding:1rem .75rem}}@media (min-width: 769px){#dashboard-main{padding:2rem 1.5rem}}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}.text-gradient,.pm-gradient-text{background:var(--pm-gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:var(--pm-green)}.text-error{color:var(--color-red)}.text-warning{color:var(--color-yellow)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:var(--spacing-2) var(--spacing-3);font-weight:700;font-size:var(--font-size-sm);color:#fff;border-radius:var(--radius-md);flex-shrink:0;box-shadow:var(--elevation-1);transition:all var(--transition-quick)}.line-badge:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.route-badge{display:inline-flex;align-items:center;justify-content:center;min-width:45px;padding:.375rem .625rem;font-weight:600;font-size:.875rem;color:#fff;border-radius:var(--radius-md);flex-shrink:0}.trafic-badge-item{display:flex;flex-direction:column;align-items:center;cursor:pointer;min-width:45px;position:relative;transition:transform .15s ease}.trafic-badge-item:active{transform:scale(.95)}.trafic-badge-item:hover .line-badge{transform:translateY(-2px);box-shadow:var(--shadow-md)}.trafic-badge-item .status-icon{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;box-shadow:0 1px 3px #0000004d;z-index:1}.trafic-badge-item.status-retard .status-icon{background:var(--color-yellow);color:#1a1a1a}.trafic-badge-item.status-retard .status-icon:before{content:"⏱";font-size:10px}.trafic-badge-item.status-perturbation .status-icon{background:var(--color-orange)}.trafic-badge-item.status-perturbation .status-icon:before{content:"!";font-weight:900}.trafic-badge-item.status-annulation .status-icon{background:var(--color-red)}.trafic-badge-item.status-annulation .status-icon:before{content:"✕";font-size:10px}.trafic-badge-item.status-travaux .status-icon{background:var(--color-orange)}.trafic-badge-item.status-travaux .status-icon:before{content:"⚠";font-size:10px}.trafic-badge-item.status-normal .status-icon{display:none}.notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--color-red);color:#fff;font-size:11px;font-weight:700;border-radius:9px;animation:pulse 2s ease-in-out infinite}.realtime-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#22c55e1f;border:1px solid rgba(34,197,94,.25);border-radius:999px;font-size:12px;font-weight:600;color:#16a34a}.realtime-badge svg{width:12px;height:12px}.realtime-badge--loading{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#22c55e1a;border:1px solid rgba(34,197,94,.18)}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-badge--success{background:#22c55e1f;color:#16a34a}.status-badge--warning{background:#eab3081f;color:#ca8a04}.status-badge--error{background:#ef44441f;color:#dc2626}.status-badge--info{background:#3b82f61f;color:#2563eb}.delay-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.delay-badge--late{background:#ef44441f;color:#dc2626}.delay-badge--early,.delay-badge--on-time{background:#22c55e1f;color:#16a34a}.legal-pill{padding:.2rem .65rem;border-radius:var(--radius-full);background:#6366f11f;color:var(--text-primary);font-weight:600}body.dark-theme .legal-pill{background:#4aa3ff2e;color:var(--text-primary)}#bus-count{display:inline-flex;align-items:center;gap:6px;color:#22c55e;font-weight:700;padding:0;background:none;border:none;border-radius:0}#bus-count svg{width:8px;height:8px}#data-status{color:#64748b;font-weight:500;padding-left:8px;border-left:1px solid rgba(0,0,0,.1)}#data-status.loaded{color:#22c55e}#data-status.error{color:#ef4444}body.dark-theme #bus-count{color:#4ade80!important}body.dark-theme #data-status{color:#94a3b8;border-left-color:#ffffff1a}body.dark-theme #data-status.loaded{color:#4ade80}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;font-family:inherit;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:all var(--transition-normal);white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--pm-green);color:#fff;border-color:var(--pm-green)}.btn-primary:hover:not(:disabled){background:var(--pm-green-hover);border-color:var(--pm-green-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--secondary)}.btn-ghost{background:transparent;color:var(--text-primary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:#0000000d}body.dark-theme .btn-ghost:hover:not(:disabled){background:#ffffff1a}.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary)}.btn-outline:hover:not(:disabled){background:var(--primary);color:#fff}.btn-icon-round{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;transition:all var(--transition-normal)}.btn-icon-round:hover{background:var(--bg-tertiary);box-shadow:var(--shadow-md)}.btn-icon-round:focus,.btn-icon-round:focus-visible{outline:none;box-shadow:0 0 0 2px #2563eb26,var(--shadow-md)}body.dark-theme .btn,body.dark-theme .btn-icon-round{background:#ffffff05;color:var(--text-primary);border-color:#ffffff0a}.planner-search-btn,#planner-submit-btn{padding:.875rem 2rem!important;font-size:.9rem!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.05em!important;border-radius:12px!important;background:#2a9d8f!important;border:none!important;color:#fff!important;cursor:pointer;transition:all .2s ease;margin-top:.75rem;width:100%;line-height:1;display:flex;align-items:center;justify-content:center;min-height:48px}.planner-search-btn:hover,#planner-submit-btn:hover{background:#238b7e!important;transform:translateY(-2px);box-shadow:0 8px 20px #2a9d8f4d}.planner-search-btn:active,#planner-submit-btn:active{transform:translateY(0)}.app-back-btn{cursor:pointer;border:none!important;background:#fffffff2!important;color:#1a1a2e!important;display:inline-flex!important;align-items:center;gap:6px;height:36px!important;padding:0 14px!important;border-radius:20px!important;font-size:13px!important;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.app-back-btn svg{color:#22c55e;width:16px!important;height:16px!important;flex-shrink:0}.app-back-btn span{font-size:13px;font-weight:600}.app-back-btn:hover{background:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px #0000001f,0 0 0 1px #0000000d}.app-back-btn:active{transform:translateY(0)}body.dark-theme .app-back-btn{background:#141926f2!important;color:#e2e8f0!important;box-shadow:0 2px 8px #0000004d,0 0 0 1px #ffffff0f!important}body.dark-theme .app-back-btn svg{color:#4ade80}#btn-back-to-hall,#btn-back-to-dashboard-from-map,#btn-back-to-dashboard-from-results,#btn-back-to-hall-tarifs,#btn-back-to-results{pointer-events:auto!important;position:relative;z-index:3000!important}.btn-swap-direction{background:#fff;border:1px solid #e2e8f0;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;border-radius:50%;transition:all .2s ease;box-shadow:0 2px 8px #00000014;margin:0 .75rem;flex-shrink:0}.btn-swap-direction:hover{background:#f8fafc;border-color:#2a9d8f;color:#2a9d8f;box-shadow:0 4px 12px #2a9d8f33}.btn-geolocate{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);width:32px;height:32px;border-radius:6px;background:transparent;color:#64748b;border:none;z-index:5;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:all .2s ease}.btn-geolocate:hover:not(:disabled){background:#f1f5f9;color:#1e3a5f}.btn-geolocate:disabled{opacity:.4;cursor:not-allowed}.btn-when{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-family:inherit;background:#f8fafc;cursor:pointer;text-align:left;color:#1e3a5f;transition:all .2s ease}.btn-when>svg:first-child{color:#1e3a5f;flex-shrink:0}.btn-when>span{flex:1}.btn-when>.chevron{color:#94a3b8;transition:transform .2s ease;flex-shrink:0}.btn-when:hover{border-color:#1e3a5f;background:#fff}.btn-when.popover-active>.chevron{transform:rotate(180deg)}.nav-button-condensed{background:#005a9cbf;border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-md);padding:var(--spacing-6);font-size:var(--font-size-lg);font-weight:700;color:#fff;text-decoration:none;box-shadow:var(--elevation-1);transition:all var(--transition-normal),transform var(--transition-bounce);position:relative;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;overflow:hidden}.nav-button-condensed:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.nav-button-condensed:hover{background:#004a80e6;border-color:#ffffff4d;transform:translateY(-5px) scale(1.02);box-shadow:0 15px 30px -5px #005a9c66}.nav-button-condensed:hover:before{opacity:1}.nav-button-condensed:active{transform:translateY(-2px) scale(.98);transition:transform .1s ease}.nav-button-condensed svg{width:28px;height:28px;transition:transform var(--transition-normal)}.nav-button-condensed:hover svg{transform:scale(1.15)}.nav-button-condensed .notification-badge{position:absolute;top:.75rem;right:.75rem}.nav-button-condensed[data-view=horaires]{background:#28a745bf}.nav-button-condensed[data-view=horaires]:hover{background:#238b3ae6;box-shadow:0 15px 30px -5px #28a74580}.nav-button-condensed[data-view=info-trafic]{background:#fd7e14bf}.nav-button-condensed[data-view=info-trafic]:hover{background:#e47112e6;box-shadow:0 15px 30px -5px #fd7e1480}.btn-block-link{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:1.5rem;padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;border-radius:var(--radius-md)}.btn-block-link svg{transition:transform .2s ease}.btn-block-link:hover svg{transform:translateY(3px)}.hall-line-btn{flex:0 0 auto;min-width:40px;height:40px;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.hall-line-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.hall-line-btn.line-a{background:#fbd12e;color:#000}.hall-line-btn.line-b{background:#1e91ff;color:#000}.hall-line-btn.line-c{background:#dd1b75;color:#fff}.hall-line-btn.line-d{background:#41ae18;color:#fff}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-light) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-text{height:1rem;border-radius:var(--radius-sm)}.skeleton-text--sm{height:.75rem}.skeleton-text--lg{height:1.25rem}.skeleton-circle{border-radius:50%}.skeleton-rect{border-radius:var(--radius-md)}.pm-skeleton-stack{display:grid;gap:10px}.pm-skeleton-card{padding:12px;border-radius:14px;background:var(--bg-secondary);border:1px solid rgba(15,23,42,.06)}body.dark-theme .pm-skeleton-card{border-color:#ffffff0f}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.spinner--sm{width:14px;height:14px;border-width:1.5px}.spinner--lg{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}body.dark-theme .loading-overlay{background:#0f172acc}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.loading-text{font-size:.875rem;color:var(--text-secondary);font-weight:500}.loading-dots{display:inline-flex;gap:4px}.loading-dot{width:6px;height:6px;background:var(--primary);border-radius:50%;animation:loadingPulse 1.4s ease-in-out infinite}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes loadingPulse{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.empty-state{text-align:center;padding:var(--spacing-10) var(--spacing-6);color:var(--text-secondary)}.empty-state .check-icon{color:var(--pm-green);margin:0 auto var(--spacing-4);display:block}.empty-state h4{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-2)}.empty-state p{font-size:var(--font-size-base);color:var(--text-secondary);max-width:400px;margin:0 auto}.progress-bar{width:100%;height:4px;background:var(--bg-secondary);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--pm-green);border-radius:2px;transition:width .3s ease}.progress-bar--indeterminate .progress-bar-fill{width:30%;animation:progressIndeterminate 1.5s ease-in-out infinite}@keyframes progressIndeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}@keyframes pm-bus-pop{0%{transform:scale(.88);opacity:0;filter:saturate(.9)}to{transform:scale(1);opacity:1;filter:none}}.bus-icon-rect.bus-appear div{animation:pm-bus-pop .26s cubic-bezier(.2,.9,.2,1) 1}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none!important}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.self-start{align-self:flex-start}.self-center{align-self:center}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.flex-1{flex:1}.flex-auto{flex:auto}.flex-initial{flex:initial}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.gap-0{gap:0}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.static{position:static}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.min-w-0{min-width:0}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-grab{cursor:grab}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.m-0{margin:0}.m-1{margin:var(--spacing-1)}.m-2{margin:var(--spacing-2)}.m-3{margin:var(--spacing-3)}.m-4{margin:var(--spacing-4)}.m-5{margin:var(--spacing-5)}.m-6{margin:var(--spacing-6)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-5{margin-top:var(--spacing-5)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mt-10{margin-top:var(--spacing-10)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing-1)}.ml-2{margin-left:var(--spacing-2)}.ml-3{margin-left:var(--spacing-3)}.ml-4{margin-left:var(--spacing-4)}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mr-3{margin-right:var(--spacing-3)}.mr-4{margin-right:var(--spacing-4)}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.mx-1{margin-left:var(--spacing-1);margin-right:var(--spacing-1)}.mx-2{margin-left:var(--spacing-2);margin-right:var(--spacing-2)}.mx-3{margin-left:var(--spacing-3);margin-right:var(--spacing-3)}.mx-4{margin-left:var(--spacing-4);margin-right:var(--spacing-4)}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:var(--spacing-1);margin-bottom:var(--spacing-1)}.my-2{margin-top:var(--spacing-2);margin-bottom:var(--spacing-2)}.my-3{margin-top:var(--spacing-3);margin-bottom:var(--spacing-3)}.my-4{margin-top:var(--spacing-4);margin-bottom:var(--spacing-4)}.p-0{padding:0}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-5{padding:var(--spacing-5)}.p-6{padding:var(--spacing-6)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing-1)}.pt-2{padding-top:var(--spacing-2)}.pt-3{padding-top:var(--spacing-3)}.pt-4{padding-top:var(--spacing-4)}.pt-5{padding-top:var(--spacing-5)}.pt-6{padding-top:var(--spacing-6)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing-1)}.pb-2{padding-bottom:var(--spacing-2)}.pb-3{padding-bottom:var(--spacing-3)}.pb-4{padding-bottom:var(--spacing-4)}.pb-5{padding-bottom:var(--spacing-5)}.pb-6{padding-bottom:var(--spacing-6)}.pl-0{padding-left:0}.pl-1{padding-left:var(--spacing-1)}.pl-2{padding-left:var(--spacing-2)}.pl-3{padding-left:var(--spacing-3)}.pl-4{padding-left:var(--spacing-4)}.pr-0{padding-right:0}.pr-1{padding-right:var(--spacing-1)}.pr-2{padding-right:var(--spacing-2)}.pr-3{padding-right:var(--spacing-3)}.pr-4{padding-right:var(--spacing-4)}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:var(--spacing-1);padding-right:var(--spacing-1)}.px-2{padding-left:var(--spacing-2);padding-right:var(--spacing-2)}.px-3{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}.px-4{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:var(--spacing-1);padding-bottom:var(--spacing-1)}.py-2{padding-top:var(--spacing-2);padding-bottom:var(--spacing-2)}.py-3{padding-top:var(--spacing-3);padding-bottom:var(--spacing-3)}.py-4{padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}@media (max-width: 768px){#main-header{padding:.5rem .75rem}.header-logo-link{font-size:1.1rem}.header-logo{width:28px;height:28px}.header-nav{gap:.25rem}.nav-dropdown-toggle{padding:.5rem .6rem;font-size:.8rem}.nav-dropdown-toggle svg{display:none}.nav-dropdown-menu{min-width:180px;right:0;left:auto}.hero-section{min-height:180px;padding:1.5rem 1rem 3rem}.hero-headline{font-size:1.4rem;margin-bottom:1.5rem}.hero-headline .hero-subtitle{margin-top:.75rem}.hero-subtext{font-size:.9rem}.planner-block{padding:1rem;margin:-1rem 0 1rem}.planner-block-wrapper{margin-top:1rem}.itinerary-inputs{gap:.5rem}.input-group{padding:.6rem .75rem}.input-group input{font-size:.95rem}.services-section{padding:1rem .75rem}.services-grid{grid-template-columns:1fr;gap:.75rem}.service-card{padding:1rem}.service-icon{width:40px;height:40px;font-size:1.25rem}.service-title{font-size:.95rem}.stats-section{padding:1.5rem .75rem}.stats-container{gap:1rem}.stat-item{min-width:80px}.stat-number{font-size:1.5rem}.promo-banner{margin:1rem .75rem;padding:1rem;flex-direction:column;text-align:center}.promo-content h3{font-size:1rem}#site-footer{padding:0}.footer-content{padding:1rem .75rem}.footer-main{display:none}.footer-bottom{flex-direction:column;gap:.5rem;padding:0;text-align:center}.footer-independent{background:none;padding:0;font-size:.7rem}.footer-copyright{font-size:.7rem}.tarifs-page{padding:1rem .75rem}.tarifs-header h1{font-size:1.5rem}.tarifs-card{padding:1.25rem}.tarifs-section-title{font-size:1.15rem}.tarifs-buy-item{flex-direction:column;align-items:flex-start;gap:.75rem}.tarifs-feature{flex-direction:column}.tarifs-download-btn{width:100%;justify-content:center;text-align:center}.tarifs-info-item{flex-direction:column;gap:.5rem}.tarifs-nav-grid{grid-template-columns:1fr}.tarifs-app-links{flex-direction:column}.tarifs-app-btn{justify-content:center}.tarifs-payment-option{flex-direction:column;text-align:center}.tarifs-feature-benefits{flex-wrap:wrap;justify-content:center}#map-container{height:calc(100vh - 60px)}.bottom-sheet{max-height:70vh}#dashboard-container{padding-bottom:0}.card{padding:1rem;margin:.5rem .75rem}}@media (max-width: 480px){.hero-headline{font-size:1.2rem}.nav-dropdown-toggle{padding:.4rem .5rem;font-size:.75rem}.header-logo-link span{display:none}.planner-block{margin:-1.5rem 0 .75rem}.services-section,.stats-section{padding:.75rem .5rem}.tarifs-card{padding:1rem}.tarifs-section-title{font-size:1.05rem;flex-wrap:wrap}}@media (max-width: 480px){.stop-schedule-popup .leaflet-popup-content{min-width:260px;max-width:300px;max-height:280px}.stop-popup-v105 .popup-line-header{padding:.625rem .875rem}.stop-popup-v105 .popup-badge{min-width:28px;height:20px;font-size:.75rem}.stop-popup-v105 .popup-stop-name{font-size:.8125rem}.stop-popup-v105 .popup-dest-row{padding:.5rem .875rem}.stop-popup-v105 .popup-dest-name{font-size:.8125rem;margin-bottom:.375rem}.stop-popup-v105 .popup-time{padding:.1875rem .375rem;font-size:.75rem}.line-departures-group{padding:.625rem}.line-header .departure-badge{min-width:28px;padding:.15rem .35rem;font-size:.7rem}.line-header .departure-dest{font-size:.75rem}.departure-times-list{gap:.25rem}.departure-time-chip{padding:.25rem .4rem;font-size:.75rem;min-width:44px}.departure-time-chip small{font-size:.6rem}}.btn-geolocate{width:36px;height:36px;min-width:36px;min-height:36px;right:.5rem;top:50%;transform:translateY(-50%)}.btn-geolocate svg{width:18px;height:18px}.accordion-group summary{min-height:52px;padding:1rem 1.25rem;-webkit-tap-highlight-color:transparent}.accordion-group summary:active{background:var(--bg-tertiary);transform:scale(.995)}.quick-action-card{min-height:80px;-webkit-tap-highlight-color:transparent}.quick-action-card:active{transform:scale(.97);box-shadow:0 2px 8px #0000001f}.btn:active{transform:scale(.96);transition:transform .1s ease}.btn-geolocate,.btn-geolocate:hover,.btn-geolocate:active,.btn-geolocate:focus{transform:translateY(-50%)!important}.tab{min-height:44px;padding:.75rem 1.25rem}.tab:active{background:var(--bg-tertiary)}.news-banner-link{min-height:36px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}@media (max-width: 768px){.route-input-wrapper{position:relative!important;z-index:100}.autocomplete-suggestions,#horaires-search-results,#from-suggestions,#to-suggestions,#results-from-suggestions,#results-to-suggestions{max-height:45vh;border-radius:var(--radius-lg);box-shadow:0 2px 12px #00000026}#results-from-suggestions,#results-to-suggestions{position:absolute!important;left:0!important;right:0!important;top:100%!important;bottom:auto!important;width:100%!important;max-width:none;transform:none;z-index:30000!important;background:var(--bg-surface, #1a2536);border:1px solid rgba(255,255,255,.1);border-radius:8px;margin-top:4px;overflow-y:auto}body.dark-theme #results-from-suggestions,body.dark-theme #results-to-suggestions{background:#1a2536;border-color:#ffffff1a}.autocomplete-item,.search-result-item{min-height:52px;padding:.875rem 1rem;display:flex;align-items:center}.autocomplete-item:active,.search-result-item:active{background:var(--primary);color:#fff}}@media (max-width: 480px){.news-banner{flex-wrap:nowrap;gap:.5rem;padding:.75rem}.news-banner-icon{width:32px;height:32px;flex-shrink:0}.news-banner-icon svg{width:16px;height:16px}.news-banner-content{flex:1;min-width:0;overflow:hidden}.news-banner-label{font-size:.65rem}.news-banner-link{padding:.3rem .6rem;font-size:.7rem;flex-shrink:0}.news-banner-text{font-size:.8rem;white-space:nowrap;overflow:hidden}.news-banner-text.marquee-active .marquee-inner{animation-duration:12s}}#itinerary-detail-backdrop{background:#000;backdrop-filter:none;-webkit-backdrop-filter:none;transition:opacity .35s cubic-bezier(.32,.72,0,1)}@media (max-width: 768px){#detail-bottom-sheet{border-radius:16px 16px 0 0;box-shadow:0 -8px 32px #0000001f,0 -2px 8px #00000014,inset 0 1px #ffffff1a;transition:transform .4s cubic-bezier(.32,.72,0,1),height .35s cubic-bezier(.32,.72,0,1);will-change:transform,height;-webkit-overflow-scrolling:touch}#detail-bottom-sheet .panel-handle{display:none}#detail-bottom-sheet.is-dragging{transition:none!important;will-change:transform}#detail-bottom-sheet.is-expanded{border-radius:12px 12px 0 0}#detail-bottom-sheet.is-expanded .panel-handle{background:#0000001f;background-clip:content-box}#detail-bottom-sheet:not(.is-expanded):after{display:none}#detail-panel-wrapper{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overscroll-behavior-y:contain}#itinerary-detail-container.is-scrolled #detail-bottom-sheet:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--border);opacity:.5}}@keyframes bottomSheetSlideUp{0%{transform:translateY(100%);opacity:.8}to{transform:translateY(0);opacity:1}}body.dark-theme #itinerary-detail-backdrop{background:#000}body.dark-theme #detail-bottom-sheet{background:#0f172a;box-shadow:0 -8px 32px #00000080}body.dark-theme #detail-bottom-sheet:before{background:#ffffff40}body.dark-theme #detail-bottom-sheet:after{background:#0f172a}body.dark-theme #detail-panel-content{background:#0f172a}body.dark-theme .accordion-group summary{background:var(--bg-secondary)}body.dark-theme .accordion-group summary:hover,body.dark-theme .accordion-group summary:active{background:var(--bg-tertiary)}body.dark-theme .accordion-group details[open] summary{background:var(--bg-main)}body.dark-theme .accordion-content{background:var(--bg-main)}body.dark-theme .news-banner{background:#0f172af2;border-color:#ffffff14}body.dark-theme .news-banner-icon{background:#2a9d8f26}body.dark-theme .news-banner-text{color:var(--text-primary)}body.dark-theme .autocomplete-suggestions,body.dark-theme #horaires-search-results{background:#0f172a;border-color:#ffffff1a;box-shadow:0 8px 32px #00000080}body.dark-theme .autocomplete-item:hover,body.dark-theme .search-result-item:hover{background:#ffffff0d}body.dark-theme .autocomplete-item:active,body.dark-theme .search-result-item:active{background:var(--primary)}body.dark-theme .planner-block{background:#0f172af2;border-color:#ffffff14}body.dark-theme .planner-block input[type=text]{background:#ffffff0d;border-color:#ffffff1a;color:var(--text-primary)}body.dark-theme .planner-block input[type=text]:focus{background:#ffffff14;border-color:var(--primary)}body.dark-theme .planner-title{color:var(--text-primary)}body.dark-theme .btn-swap-direction{background:#ffffff0d;border-color:#ffffff1a;color:var(--text-secondary)}body.dark-theme .btn-swap-direction:hover{background:#2a9d8f26;border-color:#2a9d8f;color:#2a9d8f}body.dark-theme .swap-line{background:#ffffff1a}body.dark-theme .btn-when{background:#ffffff0d;border-color:#ffffff1a;color:var(--text-primary)}body.dark-theme .btn-when:hover{background:#ffffff14;border-color:#ffffff26}body.dark-theme #planner-options-popover,body.dark-theme #results-planner-options-popover{background:#0f172a;border-color:#ffffff1a;box-shadow:0 8px 32px #00000080}body.dark-theme .popover-tab{color:var(--text-secondary)}body.dark-theme .popover-tab.active{color:var(--primary);border-color:var(--primary)}body.dark-theme .real-select{background:#ffffff0d;border-color:#ffffff1a;color:var(--text-primary)}body.dark-theme .step-detail{border-color:#ffffff0f}body.dark-theme .step-icon{background:#ffffff0d}body.dark-theme .step-walk-icon,body.dark-theme .step-destination-icon{background:#ffffff14;color:var(--text-secondary)}body.dark-theme .route-card{background:#ffffff08;border-color:#ffffff0f}body.dark-theme .route-card:hover{background:#ffffff0d;border-color:#ffffff1a}body.dark-theme .route-card.is-selected{background:#2563eb1a;border-color:var(--primary)}@media (max-width: 768px){body.dark-theme #route-filter-panel{background:#0a0f18;border-top:1px solid rgba(255,255,255,.08)}}body.dark-theme #results-side-panel{background:#0f172a}body.dark-theme .itinerary-edit-header{border-color:#ffffff0f}body.dark-theme .itinerary-edit-header h2{color:var(--text-primary)}body.dark-theme .mode-tab{background:#ffffff08;border-color:#ffffff14;color:var(--text-secondary)}body.dark-theme .mode-tab:hover{background:#ffffff0f}body.dark-theme .mode-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}@media (max-width: 768px){.planner-block{margin:0 0 1rem;border-radius:var(--radius-lg)}.planner-block .form-group input[type=text]{min-height:52px;font-size:1rem}#planner-submit-btn,#results-planner-submit-btn{min-height:52px;font-size:1rem;font-weight:600}}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:#0000004d}body.dark-theme *{scrollbar-color:rgba(255,255,255,.15) transparent}body.dark-theme *::-webkit-scrollbar-thumb{background:#ffffff26}body.dark-theme *::-webkit-scrollbar-thumb:hover{background:#ffffff40}@supports (padding: env(safe-area-inset-bottom)){@media (max-width: 768px){#detail-bottom-sheet{padding-bottom:calc(12px + env(safe-area-inset-bottom))}#route-filter-panel{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.results-list{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}.autocomplete-suggestions{max-height:calc(45vh - env(safe-area-inset-bottom))}}}@media (max-width: 768px){body.itinerary-view-active{overflow:hidden!important;height:100vh!important;height:100svh!important;position:fixed!important;width:100%!important;top:0!important;left:0!important}}@media (max-width: 768px){body.itinerary-view-active{background:#111b2b!important}body.itinerary-view-active #app-view-root{background:#111b2b!important;padding-bottom:0!important}body.itinerary-view-active #itinerary-results-container{position:fixed!important;top:56px!important;left:0!important;right:0!important;bottom:66px!important;width:100%!important;height:calc(100vh - 122px)!important;min-height:auto!important;display:flex!important;flex-direction:column!important;overflow-y:auto!important;background:#111b2b!important;z-index:100!important}body.itinerary-view-active #results-side-panel{width:100%!important;max-width:520px!important;margin:0 auto!important;flex:1 1 auto!important;display:flex!important;flex-direction:column!important;overflow:visible!important;background:#111b2b!important;border:none!important;border-radius:0!important;box-shadow:none!important;padding-bottom:0!important}body.itinerary-view-active #results-mode-tabs,body.itinerary-view-active #results-map{display:none!important}body.itinerary-view-active .results-list-wrapper{flex:1 1 auto!important;display:flex!important;flex-direction:column!important;overflow:visible!important;padding:.75rem .75rem calc(1.25rem + env(safe-area-inset-bottom))!important;box-sizing:border-box!important;background:transparent!important}body.itinerary-view-active .results-list{padding:0!important;background:transparent!important}body.itinerary-view-active .recent-journeys-section{display:flex!important;flex-direction:column;gap:.5rem;flex:0 1 auto!important;padding:0!important}body.itinerary-view-active .recent-journeys-empty{flex:0 1 auto!important;padding:.75rem!important;display:flex!important;align-items:center!important;justify-content:center!important}body.itinerary-view-active .itinerary-top-bar{background:transparent!important;border:none!important;padding:.75rem 1rem .5rem!important}body.itinerary-view-active #itinerary-edit-panel{background:#111b2b!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:16px!important;margin:0 .75rem 1rem!important;padding:.9rem!important}body.itinerary-view-active #recent-journeys-container{background:#111b2b!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:16px!important;padding:.5rem!important}}@media (max-width: 768px){body.horaires-view-active{background:#111b2b!important}.horaires-hero,#horaires-container,.horaire-card,.horaire-item,.departure-item{background:#111b2b!important;border-color:#ffffff14!important}body.trafic-view-active{background:#111b2b!important}.trafic-hero,#trafic-container,.trafic-card,.alert-item,.disruption-card{background:#111b2b!important;border-color:#ffffff14!important}#map-container,#map,.leaflet-container{background:#111b2b!important}.route-option,.result-item,.list-item{background:#111b2b!important;border-color:#ffffff14!important}}
