.app-header{background:var(--bg-panel);border-bottom:1px solid var(--border-subtle);height:60px;box-shadow:var(--shadow-sm);z-index:1000;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.header-logos{align-items:center;gap:12px;display:flex}.header-logo{object-fit:contain;height:40px}.header-title h1{color:var(--agorah-teal);white-space:nowrap;margin:0;font-size:1.1rem;font-weight:600}.header-subtitle{color:var(--text-muted);font-weight:400}.header-kpis{align-items:center;gap:20px;display:flex}.kpi-item{flex-direction:column;align-items:center;gap:1px;display:flex}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.65rem}.kpi-value{color:var(--text-primary);font-size:.95rem;font-weight:600}.kpi-stale .kpi-value{color:var(--idrm-orange);animation:2s infinite pulse}.btn-refresh{border:1px solid var(--border-subtle);background:var(--bg-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:1.3rem;transition:all .2s;display:flex}.btn-refresh:hover{background:var(--agorah-teal-bg);border-color:var(--agorah-teal-border);color:var(--agorah-teal)}.btn-refresh.refreshing{color:var(--agorah-teal-light);animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.theme-toggle{border:1px solid var(--border-subtle);background:var(--bg-card);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative;overflow:hidden}.theme-toggle:hover{background:var(--agorah-teal-bg);border-color:var(--agorah-teal-border);color:var(--agorah-teal)}.theme-icon{transition:all .3s cubic-bezier(.34,1.56,.64,1);position:absolute}.theme-icon-active{opacity:1;transform:scale(1)translateY(0)}.theme-icon-hidden{opacity:0;transform:scale(.5)translateY(8px)}.skeleton{background:linear-gradient(90deg,#0000000f 25%,#0000001a 37%,#0000000f 63%) 0 0/200% 100%;animation:1.5s ease-in-out infinite skeletonShimmer}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{background:var(--bg-card,#f8fafc);border:1px solid var(--border-card,#0000000f);border-radius:10px;padding:12px 14px}.skeleton-chart{flex-direction:column;padding:8px 0;display:flex}.skeleton-chart-bars{flex:1;align-items:flex-end;gap:4px;padding-top:8px;display:flex}.skeleton-bar{flex:1}.skeleton-panel{padding:16px 18px;animation:.3s ease-out skeletonFadeIn}@keyframes skeletonFadeIn{0%{opacity:0}to{opacity:1}}.skeleton-list-item{border-bottom:1px solid #00000008;align-items:center;gap:10px;padding:10px 14px;display:flex}.left-panel{background:var(--bg-panel);border-right:1px solid var(--border-subtle);flex-direction:column;width:340px;min-width:340px;height:100%;display:flex;overflow:hidden;box-shadow:2px 0 8px #0000000a}.lp-header{justify-content:space-between;align-items:center;padding:14px 16px 6px;display:flex}.lp-title{color:var(--agorah-teal);margin:0;font-size:.9rem;font-style:italic;font-weight:700}.lp-subheader{padding:0 16px 6px}.lp-subtitle{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;font-weight:700}.lp-result-count{color:var(--text-muted);padding:4px 14px 6px;font-size:.65rem}.lp-search{padding:6px 12px}.lp-search input{background:var(--bg-card);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;padding:8px 12px;font-size:.78rem;transition:border-color .2s,box-shadow .2s}.lp-search input:focus{border-color:var(--agorah-teal-border);box-shadow:0 0 0 3px var(--agorah-teal-bg)}.lp-search input::placeholder{color:var(--text-muted)}.lp-toggles{gap:6px;padding:4px 12px 6px;display:flex}.lp-toggle-btn{border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;border-radius:6px;flex:1;padding:6px;font-size:.7rem;font-weight:500;transition:all .2s}.lp-toggle-btn:hover{border-color:var(--agorah-teal-border)}.lp-toggle-btn.active{background:var(--agorah-teal);border-color:var(--agorah-teal);color:#fff}.lp-filters{flex-direction:column;gap:4px;padding:0 12px 8px;display:flex}.lp-select{background:var(--bg-card);border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:8px;outline:none;padding:7px 28px 7px 10px;font-size:.75rem;transition:border-color .2s}.lp-select:focus{border-color:var(--agorah-teal-border)}.lp-list{flex:1;padding:0;overflow-y:auto}.lp-list::-webkit-scrollbar{width:4px}.lp-list::-webkit-scrollbar-track{background:0 0}.lp-list::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.lp-group{margin-bottom:4px}.lp-group-header{background:var(--bg-panel);z-index:1;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:8px 14px 4px;display:flex;position:sticky;top:0}.lp-group-label{color:var(--agorah-teal);text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;font-weight:700}.lp-group-count{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:1px 6px;font-size:.6rem}.lp-item{cursor:pointer;border-bottom:1px solid #00000008;align-items:center;gap:10px;padding:10px 14px;transition:background .15s;display:flex}.lp-item:hover{background:var(--bg-card)}.lp-item.selected{background:var(--agorah-teal-bg);border-left:3px solid var(--agorah-teal);padding-left:11px}.lp-item-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 4px #0000001a}.lp-item-info{flex:1;min-width:0}.lp-item-name{color:var(--text-primary);font-size:.78rem;font-weight:500;line-height:1.3;display:block}.lp-item-speed{color:var(--text-muted);margin-top:1px;font-size:.65rem;display:block}.lp-item-badge{background:var(--bg-panel);border:1.5px solid;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;padding:3px 10px;display:flex}.lp-item-time{color:var(--text-primary);white-space:nowrap;font-size:.7rem;font-weight:600}.lp-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:.8rem}.ap-content{min-width:170px;padding:2px 0}.ap-header{margin-bottom:4px}.ap-type{font-size:.85rem;font-weight:700}.ap-subtype{color:var(--text-secondary,#475569);font-size:.78rem}.ap-route{align-items:center;gap:6px;margin-bottom:2px;display:flex}.ap-route-id{color:var(--agorah-teal,#1b4b5c);background:var(--agorah-teal-bg,#4a8ba314);border-radius:6px;padding:1px 6px;font-size:.68rem;font-weight:700}.ap-route-name{color:var(--text-secondary,#475569);font-size:.78rem}.ap-divider{background:var(--border-subtle,#00000014);height:1px;margin:6px 0}.ap-meta{color:var(--text-muted,#94a3b8);justify-content:space-between;font-size:.72rem;display:flex}html.dark .ap-subtype{color:#94a3b8}html.dark .ap-route-id{color:#5da8c4;background:#4a8ba333}html.dark .ap-route-name{color:#94a3b8}html.dark .ap-meta{color:#64748b}.map-container{flex:1;min-height:0;position:relative}.leaflet-map{background:#f5f7fa;width:100%;height:100%;transition:filter .4s}.map-has-selection .leaflet-tile-pane{filter:brightness(.85)saturate(.7);transition:filter .4s}.map-has-selection .leaflet-overlay-pane{filter:none}.leaflet-control-layers{background:var(--bg-panel,#fff)!important;border:1px solid var(--border-subtle,#00000014)!important;box-shadow:var(--shadow-md,0 4px 12px #00000014)!important;border-radius:8px!important}.leaflet-control-zoom a{background:var(--bg-panel,#fff)!important;color:var(--text-primary,#1e293b)!important;border-color:var(--border-subtle,#00000014)!important}.leaflet-control-zoom a:hover{background:var(--bg-card,#f8fafc)!important}.leaflet-tooltip.troncon-tooltip{overflow:hidden;background:var(--bg-card)!important;border:1px solid var(--border-subtle)!important;color:var(--text-primary)!important;border-radius:10px!important;padding:0!important;box-shadow:0 4px 20px #0000001f!important}.leaflet-tooltip.troncon-tooltip:before{display:none!important}.tt-content{min-width:200px;padding:10px 14px}.tt-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px;display:flex}.tt-id{color:var(--agorah-teal,#1b4b5c);font-size:.78rem;font-weight:700}.tt-badge{color:#fff;border-radius:10px;padding:2px 8px;font-size:.6rem;font-weight:700}.tt-badges{align-items:center;gap:4px;display:flex}.tt-dir{border-radius:8px;padding:1px 6px;font-size:.55rem;font-weight:600}.tt-dir-aller{color:#1b4b5c;background:#4a8ba31f;border:1px solid #4a8ba340}.tt-dir-retour{color:#ea580c;background:#f973161a;border:1px solid #f9731633}.tt-desc{color:var(--text-secondary);margin-bottom:6px;font-size:.72rem}.tt-divider{background:var(--border-subtle);height:1px;margin:6px 0}.tt-row{justify-content:space-between;align-items:center;padding:2px 0;display:flex}.tt-label{color:var(--text-muted);font-size:.68rem}.tt-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600}.leaflet-popup-content-wrapper{background:var(--bg-card)!important;color:var(--text-primary)!important;border-radius:10px!important;box-shadow:0 4px 20px #0000001f!important}.leaflet-popup-tip{background:var(--bg-card)!important}.leaflet-popup-close-button{color:var(--text-muted)!important}.alert-marker{background:0 0!important;border:none!important}.map-legend{z-index:800;background:var(--bg-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);border-radius:10px;padding:8px 10px;position:absolute;bottom:28px;left:12px}.map-legend-title{color:var(--agorah-teal,#1b4b5c);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.6rem;font-weight:700}.map-legend-row{align-items:center;gap:6px;padding:1.5px 0;display:flex}.map-legend-bar{border-radius:2px;flex-shrink:0;width:18px;height:4px}.map-legend-label{color:var(--text-primary,#1e293b);flex:1;font-size:.6rem;font-weight:500}.map-legend-range{color:var(--text-muted,#94a3b8);font-variant-numeric:tabular-nums;font-size:.52rem}.map-legend-hint{border-top:1px solid var(--border-subtle);color:var(--text-muted);margin-top:4px;padding-top:4px;font-size:.52rem;font-style:italic}.leaflet-control-attribution{background:var(--bg-card)!important;color:var(--text-muted)!important;font-size:.6rem!important}html.dark .leaflet-tooltip.troncon-tooltip{color:#e2e8f0!important;background:#0f172af7!important;border-color:#ffffff1a!important}html.dark .leaflet-popup-content-wrapper{color:#e2e8f0!important;background:#0f172af7!important}html.dark .leaflet-popup-tip{background:#0f172af7!important}html.dark .map-legend{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172aeb}html.dark .leaflet-control-layers,html.dark .leaflet-control-zoom a{color:#e2e8f0!important;background:#0f172aeb!important}@media (width<=768px){.tt-content{min-width:160px;max-width:85vw;padding:8px 10px}.tt-id{font-size:.72rem}.tt-desc{font-size:.68rem}.tt-label{font-size:.64rem}.tt-value{font-size:.7rem}.map-legend{padding:6px 8px;bottom:16px;left:8px}.map-legend-title,.map-legend-label{font-size:.55rem}.map-legend-range{font-size:.48rem}.leaflet-control-zoom{margin-top:8px!important;margin-right:8px!important}}@media (width<=480px){.tt-content{max-width:90vw;padding:6px 8px}.map-legend{border-radius:8px;bottom:12px;left:6px}.map-legend-bar{width:14px}}.loading-screen{z-index:9999;background:linear-gradient(#0f1219 0%,#0a0e18 50%,#060a14 100%);align-items:stretch;transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;inset:0;overflow:hidden}.loading-screen.exit{opacity:0;pointer-events:none;transform:scale(1.05)}.loading-bg-canvas{z-index:0;width:100%;height:100%;position:absolute;inset:0}.loading-screen:before{content:"";z-index:1;background-image:linear-gradient(#38bdf805 1px,#0000 1px),linear-gradient(90deg,#38bdf805 1px,#0000 1px);background-size:50px 50px;animation:8s ease-in-out infinite gridPulse;position:absolute;inset:0}@keyframes gridPulse{0%,to{opacity:.3}50%{opacity:.8}}.loading-particles{z-index:2;pointer-events:none;position:absolute;inset:0}.particle{background:#38bdf8;border-radius:50%;animation:6s ease-in-out infinite particleFloat;position:absolute}.particle:nth-child(3n){background:#a78bfa}.particle:nth-child(5n){background:#22c55e}.particle:nth-child(7n){background:#f97316}@keyframes particleFloat{0%,to{transform:translateY(0)translate(0)scale(1)}25%{transform:translateY(-30px)translate(10px)scale(1.2)}50%{transform:translateY(-15px)translate(-15px)scale(.8)}75%{transform:translateY(-40px)translate(5px)scale(1.1)}}.loading-content{z-index:10;opacity:0;grid-template-columns:1fr 2fr;width:100%;height:100%;animation:1.2s cubic-bezier(.4,0,.2,1) forwards contentFadeIn;display:grid;position:relative}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-left{text-align:center;background:#fff;border-right:1px solid #00000014;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:48px 40px;display:flex}.loading-right{justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.loading-logos{opacity:0;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;align-items:center;gap:20px;padding:16px 28px;animation:.8s ease-out .5s forwards logosAppear;display:flex;box-shadow:0 1px 6px #0000000f}@keyframes logosAppear{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.loading-logo{object-fit:contain;height:44px;transition:transform .3s}.loading-logo:hover{transform:scale(1.05)}.logo-divider{background:linear-gradient(#0000,#1b4b5c40,#0000);width:1px;height:28px}.loading-divider{opacity:0;background:linear-gradient(90deg,#0000,#1b4b5c 40%,#f97316 60%,#0000);border-radius:2px;width:36px;height:2px;animation:.6s ease-out .65s forwards dividerAppear}@keyframes dividerAppear{0%{opacity:0;width:0}to{opacity:1;width:36px}}.loading-badge{color:#1b4b5c;letter-spacing:1px;text-transform:uppercase;opacity:0;background:#f0f7fa;border:1px solid #c8dde8;border-radius:100px;align-items:center;gap:7px;padding:5px 14px;font-size:.65rem;font-weight:700;animation:.6s ease-out .75s forwards badgeAppear;display:inline-flex}.loading-badge:before{content:"";background:#f97316;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite badgeDot}@keyframes badgeDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}@keyframes badgeAppear{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.loading-text-block{opacity:0;flex-direction:column;align-items:center;gap:8px;animation:.8s ease-out .85s forwards textAppear;display:flex}@keyframes textAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.loading-title{text-align:center;margin:0}.title-line{color:#1b4b5c;letter-spacing:-.5px;font-size:1.9rem;font-weight:800;line-height:1.2;display:block}.title-accent{background:linear-gradient(135deg,#38bdf8,#4a8ba3,#22c55e) 0 0/200% 200%;-webkit-text-fill-color:transparent;letter-spacing:.5px;-webkit-background-clip:text;background-clip:text;margin-top:4px;font-size:1.05rem;font-weight:600;animation:4s infinite gradientShift;display:block}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.loading-separator{background:#e2e8f0;width:24px;height:1px;margin:4px 0}.loading-partners{color:#94a3b8;letter-spacing:1px;text-transform:uppercase;margin:0;font-size:.65rem;font-weight:600}.loading-tagline{color:#64748b;letter-spacing:.3px;margin:0;font-size:.8rem;font-style:italic;line-height:1.6}.loading-progress-container{opacity:0;width:100%;max-width:320px;animation:.6s ease-out 1.2s forwards progressAppear}@keyframes progressAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.loading-progress-track{background:#00000014;border-radius:3px;height:3px;position:relative;overflow:visible}.loading-progress-bar{background:linear-gradient(90deg,#22c55e,#38bdf8,#a78bfa) 0 0/200% 100%;border-radius:3px;height:100%;transition:width .3s cubic-bezier(.4,0,.2,1);animation:3s infinite progressGradient}@keyframes progressGradient{0%,to{background-position:0%}50%{background-position:100%}}.loading-progress-glow{z-index:2;background:#38bdf8;border-radius:50%;width:8px;height:8px;transition:left .3s cubic-bezier(.4,0,.2,1);position:absolute;top:-4px;transform:translate(-50%);box-shadow:0 0 12px #38bdf8,0 0 24px #38bdf866}.loading-progress-info{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.loading-step{color:#64748b;min-height:1em;font-size:.72rem;transition:opacity .3s}.loading-percent{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600}.island-container{width:min(520px,80%);height:min(500px,85vh);animation:6s ease-in-out infinite islandFloat,1s ease-out .3s both islandAppear;position:relative}@keyframes islandFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes islandAppear{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.island-svg{filter:drop-shadow(0 0 60px #38bdf81f);width:100%;height:100%}.island-fill{opacity:0;animation:1.5s ease-out .8s forwards fillAppear}@keyframes fillAppear{0%{opacity:0}to{opacity:1}}.island-path{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:3s cubic-bezier(.4,0,.2,1) .3s forwards drawCoast}.island-path-inner{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:3s cubic-bezier(.4,0,.2,1) .6s forwards drawCoast}@keyframes drawCoast{to{stroke-dashoffset:0}}.road-line{animation:2s cubic-bezier(.4,0,.2,1) forwards drawRoad}@keyframes drawRoad{to{stroke-dashoffset:0}}.pulse-ring{opacity:0;animation:2.5s ease-out infinite pulseRingExpand}@keyframes pulseRingExpand{0%{r:0;opacity:0;stroke-width:1px}20%{opacity:.6}to{r:8;opacity:0;stroke-width:.2px}}.road-dot{opacity:0;animation:.5s ease-out forwards dotAppear,2.5s ease-in-out infinite dotPulse}@keyframes dotAppear{0%{opacity:0;r:0}to{opacity:1;r:1.2}}@keyframes dotPulse{0%,to{r:1.2;opacity:.7}50%{r:2;opacity:1}}.city-group{opacity:0;animation:.6s ease-out forwards cityAppear}@keyframes cityAppear{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.city-glow{opacity:0;animation:3s ease-in-out infinite cityGlowPulse}@keyframes cityGlowPulse{0%,to{opacity:.3;r:4}50%{opacity:.7;r:6}}.city-dot{opacity:0;animation:.4s ease-out forwards cityDotIn}@keyframes cityDotIn{0%{opacity:0;r:0}to{opacity:1;r:2}}.city-label{fill:#94a3b8d9;opacity:0;font-family:Inter,system-ui,sans-serif;font-size:5px;font-weight:500;animation:.5s ease-out forwards labelFade}@keyframes labelFade{0%{opacity:0}to{opacity:1}}.orbit-ring{border:1px solid #38bdf840;border-color:#38bdf840 #a855f71f #0000 #0000;border-radius:50%;width:560px;height:560px;margin-top:-280px;margin-left:-280px;animation:5s linear infinite orbit;position:absolute;top:50%;left:50%}.orbit-ring:after{content:"";background:#38bdf8;border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;left:50%;box-shadow:0 0 12px #38bdf8,0 0 24px #38bdf880}.orbit-ring-2{border-top-color:#a855f726;border-right-color:#22c55e14;width:620px;height:620px;margin-top:-310px;margin-left:-310px;animation:7s linear infinite orbitReverse}.orbit-ring-2:after{background:#a78bfa;width:4px;height:4px;box-shadow:0 0 10px #a78bfa,0 0 20px #a855f780}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orbitReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}.loading-bottom-fade{z-index:1;pointer-events:none;background:linear-gradient(#0000,#38bdf805 40%,#38bdf80a);height:200px;position:absolute;bottom:0;left:0;right:0}@media (width<=1024px){.loading-left{gap:22px;padding:36px 32px 36px 40px}.title-line{font-size:1.5rem}.title-accent{font-size:1rem}.island-container{width:min(420px,75%);height:min(400px,80vh)}.orbit-ring{width:450px;height:450px;margin-top:-225px;margin-left:-225px}.orbit-ring-2{width:500px;height:500px;margin-top:-250px;margin-left:-250px}}@media (width<=768px){.loading-screen{align-items:center}.loading-content{grid-template-rows:auto auto;grid-template-columns:1fr;align-items:center;gap:16px;padding:20px}.loading-left{background:#fff;border-top:1px solid #00000014;border-right:none;order:2;gap:14px;padding:20px}.loading-right{order:1}.title-line{font-size:1.3rem}.title-accent{font-size:.95rem}.island-container{width:260px;height:250px;animation:6s ease-in-out infinite islandFloat}.orbit-ring{width:280px;height:280px;margin-top:-140px;margin-left:-140px}.orbit-ring-2{width:320px;height:320px;margin-top:-160px;margin-left:-160px}.loading-logo{height:36px}.loading-progress-container{max-width:280px}}@media (width<=480px){.island-container{width:200px;height:190px}.orbit-ring{width:220px;height:220px;margin-top:-110px;margin-left:-110px}.orbit-ring-2{width:255px;height:255px;margin-top:-127px;margin-left:-127px}.title-line{font-size:1.1rem}.loading-logo{height:28px}.loading-progress-container{max-width:220px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#f5f7fa;--bg-panel:#fff;--bg-card:#f8fafc;--border-subtle:#00000014;--border-card:#0000000f;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--accent:#1b4b5c;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--agorah-teal:#1b4b5c;--agorah-teal-light:#4a8ba3;--agorah-teal-bg:#4a8ba314;--agorah-teal-border:#4a8ba333;--idrm-orange:#f97316;--idrm-orange-bg:#f9731614;--idrm-orange-border:#f9731633;--idrm-navy:#003d66;--idrm-navy-bg:#003d660f;--idrm-navy-border:#003d6626;--color-scolaire:#f97316;--color-vacances:#22c55e;--color-weekend:#4a8ba3;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.4;transition:background-color .3s,color .3s}html.dark .recharts-tooltip-wrapper .recharts-default-tooltip{color:#e2e8f0!important;background:#0f172af2!important;border-color:#ffffff1a!important}html.dark{--bg-primary:#0b1120;--bg-panel:#0f172af2;--bg-card:#1e293b99;--border-subtle:#ffffff14;--border-card:#ffffff0f;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#64748b;--accent:#38bdf8;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--agorah-teal-bg:#4a8ba326;--agorah-teal-border:#4a8ba34d;--agorah-teal-light:#5da8c4;--idrm-orange-bg:#f9731626;--idrm-orange-border:#f973164d;--idrm-navy-bg:#003d6633;--idrm-navy-border:#003d6659}html.dark .lp-item-badge{color:#e2e8f0;background:#1e293bcc}html.dark .lp-toggle-btn.active{background:var(--agorah-teal-light)}html.dark .rp-card{background:#1e293b80;border-color:#ffffff14}html.dark .hc-main-card{background:linear-gradient(135deg,#1e293b99 0%,#0f172acc 100%)}html.dark .hc-max-card{background:#1e293b80;border-color:#ffffff14}html.dark .rp-card--orange{background:#f973161a}html.dark .rp-card--navy{background:#003d6626}html.dark .jam-detail{background:#1e293b99;border-color:#ffffff14}html.dark .rl-banner{background:linear-gradient(135deg,#1e293b99 0%,#0f172acc 100%)}html.dark .rl-insight-row{background:#1e293b80;border-color:#ffffff0f}html.dark .rl-gauge-track{opacity:.35;background:linear-gradient(90deg,#22c55e,#84cc16,#eab308,#f97316,#ef4444)}html.dark .rp-live-summary{background:#1e293b80;border-color:#ffffff0f}html.dark .rp-period-insight,html.dark .rp-delay-kpi{background:#f973161a;border-color:#f9731633}html.dark .evo-summary{background:#1e293b80;border-color:#ffffff0f}html.dark .glossary-example{background:#4a8ba31a;border-color:#4a8ba333}html.dark .hm-tooltip{color:#e2e8f0;background:#0f172af2;border-color:#ffffff1a}html.dark .dash-kpi{border-right-color:#ffffff0f}html.dark .dash-card{background:#1e293b80;border-color:#ffffff0f}html.dark .lp-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}html,body,#root{width:100%;height:100%;overflow:hidden}.app{background:var(--bg-primary);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-body{flex:1;min-height:0;display:flex;overflow:hidden}.app-center{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.alerts-toggle{z-index:800;border:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:20px;padding:6px 14px;font-size:.72rem;font-weight:500;transition:all .2s;position:absolute;top:12px;left:12px}.alerts-toggle.active{background:var(--idrm-orange-bg);border-color:var(--idrm-orange-border);color:var(--idrm-orange)}.alerts-toggle:hover{box-shadow:var(--shadow-md)}.error-banner{color:#dc2626;background:#ef44440f;border-bottom:1px solid #ef44441f;flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:6px 16px;font-size:.78rem;display:flex}.error-banner button{color:#dc2626;cursor:pointer;background:#ef444414;border:1px solid #ef444433;border-radius:6px;padding:3px 12px;font-size:.72rem}.stale-banner{color:#ea580c;background:#f973160f;border-bottom:1px solid #f973161f;flex-shrink:0;justify-content:center;align-items:center;padding:4px 16px;font-size:.72rem;display:flex}.mobile-backdrop,.header-menu-btn{display:none}.left-panel-wrapper,.right-panel-wrapper{display:contents}@media (width<=1024px){.left-panel-wrapper .left-panel{width:280px;min-width:280px}.right-panel-wrapper .right-panel{width:360px;min-width:360px}}@media (width<=768px){.header-menu-btn{border:1px solid var(--border-subtle);background:var(--bg-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.header-kpis .kpi-item,.header-title{display:none}.app-header{height:48px;padding:0 12px}.header-logo{height:28px}.left-panel-wrapper{z-index:1500;transition:transform .3s;display:block;position:fixed;top:48px;bottom:0;left:0;transform:translate(-100%)}.left-panel-wrapper.mobile-open{transform:translate(0)}.left-panel-wrapper .left-panel{width:300px;min-width:300px;height:100%;box-shadow:4px 0 20px #00000026}.right-panel-wrapper{z-index:1500;display:block;position:fixed;inset:48px 0 0;overflow-y:auto}.right-panel-wrapper .right-panel{width:100%;min-width:100%;height:auto;min-height:100%}.mobile-backdrop{z-index:1400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000004d;display:block;position:fixed;inset:0}.alerts-toggle{padding:5px 10px;font-size:.65rem;top:8px;left:8px}.error-banner,.stale-banner{padding:4px 12px;font-size:.68rem}.dash-trigger-btn{padding:8px 12px;font-size:.72rem}}@media (width<=480px){.header-logos{gap:8px}.header-logo{height:24px}.left-panel-wrapper .left-panel{width:85vw;min-width:85vw}.dash-trigger-pills{display:none}}
