:root{--bg:#080d1a;--panel:#11192b;--panel2:#172238;--text:#f3f6ff;--muted:#91a0ba;--accent:#ffb15a;--purple:#ff6b24;--line:rgba(255,255,255,.09)}
*{box-sizing:border-box}html,body{min-height:100%;background:radial-gradient(circle at 10% 0,#172849 0,transparent 36%),var(--bg);color:var(--text)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{padding:1.3rem}.eyebrow{font-size:.72rem;letter-spacing:.16em;color:var(--accent);font-weight:800}.clock{padding:.55rem .9rem;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:999px;font-weight:700}.box{background:linear-gradient(145deg,rgba(23,34,56,.96),rgba(13,20,35,.96));border:1px solid var(--line);box-shadow:0 24px 60px rgba(0,0,0,.25);border-radius:22px;color:var(--text)}
.city-tabs ul{border:0;gap:.45rem}.city-tabs li a{border:1px solid var(--line)!important;border-radius:12px!important;background:rgba(255,255,255,.04);color:var(--muted);min-height:46px}.city-tabs li.is-active a{background:linear-gradient(135deg,#ff9f43,#f15a24);color:white;border-color:transparent!important}.weather-card{min-height:520px;padding:1.6rem}.muted,.subtitle{color:var(--muted)!important}.weather-icon{font-size:4.5rem;filter:drop-shadow(0 10px 15px rgba(255,139,61,.24))}.current-grid{display:grid;grid-template-columns:.8fr 1.5fr;gap:1.5rem;align-items:center;margin:1.2rem 0 1.8rem}.temperature{font-size:5.5rem;font-weight:800;line-height:1}.temperature small{font-size:2rem;color:var(--muted);vertical-align:top}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.details-grid div{background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:14px;padding:.75rem}.details-grid span{display:block;color:var(--muted);font-size:.75rem}.details-grid strong{font-size:1rem}.forecast-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem}.forecast-day{appearance:none;background:rgba(255,255,255,.035);border:1px solid var(--line);color:var(--text);border-radius:15px;padding:.8rem .4rem;text-align:center;cursor:pointer;transition:.2s}.forecast-day:hover,.forecast-day.is-selected{background:#203050;border-color:var(--accent);transform:translateY(-2px)}.forecast-day .day-icon{display:block;font-size:1.7rem;margin:.35rem}.forecast-day small{color:var(--muted)}
.bus-card{min-height:520px;padding:1.5rem}.bus-symbol{font-size:2.6rem}.bus-list{display:flex;flex-direction:column;gap:.7rem}.bus-row{display:grid;grid-template-columns:54px 1fr auto;gap:.8rem;align-items:center;padding:1rem;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:15px}.line-badge{display:grid;place-items:center;width:46px;height:38px;border-radius:10px;background:linear-gradient(135deg,#ff9f43,#e84d1c);font-weight:900;font-size:1.1rem}.destination{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.minutes{font-weight:900;font-size:1.35rem;color:var(--accent);white-space:nowrap}.at-stop{font-size:1.5rem}.refresh-button{background:#202d49;color:white;border:1px solid var(--line);border-radius:12px}.refresh-button:hover{color:white;border-color:var(--accent)}.state{display:grid;place-items:center;min-height:180px;color:var(--muted)}.updated,.credits{font-size:.72rem;color:var(--muted);text-align:center;margin-top:.7rem}.error{color:#ff9aa9}
@media(max-width:900px){.app-shell{padding:.8rem}.columns{display:block}.column{width:100%}.current-grid{grid-template-columns:1fr}.temperature{font-size:4.3rem}.weather-card,.bus-card{min-height:auto}.forecast-grid{overflow-x:auto;grid-template-columns:repeat(5,minmax(105px,1fr))}.details-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.city-tabs{overflow-x:auto}.city-tabs ul{min-width:520px}.details-grid{grid-template-columns:repeat(2,1fr)}.header .level-right{display:block}.weather-card{padding:1rem}}

.header-actions{display:flex;align-items:center;gap:.65rem}.icon-button{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;cursor:pointer}.icon-button:hover{border-color:var(--accent);background:rgba(255,255,255,.1)}.icon-button svg,.bus-symbol svg,.weather-icon svg,.day-icon svg,.at-stop svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-button svg{width:21px;height:21px}.bus-symbol{display:grid;place-items:center;color:#fff}.bus-symbol svg{width:42px;height:42px}.weather-icon{width:76px;height:76px;color:#fff}.weather-icon svg{width:100%;height:100%}.forecast-day .day-icon{display:grid;place-items:center;height:34px;color:#fff}.day-icon svg{width:30px;height:30px}.at-stop{display:inline-grid;place-items:center;color:#fff}.at-stop svg{width:27px;height:27px}

/* Contraste renforcé pour tablette */
.muted,
.subtitle,
.details-grid span,
.forecast-day small,
.updated,
.state {
  color: #d8e1f0 !important;
}

.forecast-day strong,
.forecast-day b,
.details-grid strong,
#selectedDate,
#condition {
  color: #ffffff !important;
}

.bus-row{grid-template-columns:54px 1fr}.bus-row .minutes{text-align:right}

/* Mise en page plus compacte pour les départs */
.bus-card{padding:1.15rem}.bus-stop-title{font-size:1.05rem!important}.bus-row{padding:.8rem}.line-badge{width:42px;height:35px}.minutes{font-size:1.2rem}

/* Neutralise les états bleus hérités de Bulma et du navigateur */
.city-tabs li a,
.city-tabs li a:hover,
.city-tabs li a:focus,
.city-tabs li a:focus-visible,
.city-tabs li a:active{
  color:#f5f5f5!important;
  background:rgba(255,255,255,.04)!important;
  border-color:var(--line)!important;
  box-shadow:none!important;
  outline:none!important;
}
.city-tabs li.is-active a,
.city-tabs li.is-active a:hover,
.city-tabs li.is-active a:focus,
.city-tabs li.is-active a:focus-visible,
.city-tabs li.is-active a:active{
  color:#fff!important;
  background:linear-gradient(135deg,#ff9f43,#f15a24)!important;
  border-color:transparent!important;
  box-shadow:0 7px 18px rgba(241,90,36,.24)!important;
}
.forecast-day:hover,.forecast-day:focus,.forecast-day.is-selected{background:#3a241b;border-color:var(--accent);outline:none}


/* V16: détails compacts et graphique horaire */
.current-grid{grid-template-columns:minmax(110px,.42fr) minmax(0,2.2fr)!important}.weather-data-row{width:100%;display:grid;grid-template-columns:minmax(250px,.8fr) minmax(300px,1.2fr);gap:.65rem;align-items:stretch}.details-grid{grid-template-columns:repeat(2,minmax(100px,1fr))!important;width:auto!important;max-width:none!important}.details-grid div{min-width:0}.rain-chart-panel{min-width:0;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:12px;padding:.45rem .55rem}.rain-chart-title{display:flex;justify-content:space-between;gap:.5rem;color:#d8e1f0;font-size:.7rem}.rain-chart-title strong{color:#fff}.rain-chart{height:112px}.rain-chart svg{display:block;width:100%;height:100%;overflow:visible}.rain-chart rect{fill:url(#rainGradient);fill:var(--accent)}.rain-chart line{stroke:rgba(255,255,255,.18);stroke-width:1}.rain-chart text{fill:#d8e1f0;font-size:9px}.weather-middle{justify-items:stretch!important}
@media(max-width:980px) and (min-width:681px){.weather-data-row{grid-template-columns:minmax(210px,.75fr) minmax(240px,1.25fr)}.rain-chart{height:100px}}
@media(max-height:700px) and (min-width:681px){.rain-chart{height:82px}.weather-data-row{gap:.4rem}.rain-chart-panel{padding:.3rem .45rem}}
@media(max-width:680px){.current-grid{grid-template-columns:1fr!important}.weather-data-row{grid-template-columns:1fr}.details-grid{grid-template-columns:repeat(3,1fr)!important}}


/* V17: graphique réellement responsive et heures passées grisées */
.weather-data-row{grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr)!important}.rain-chart-panel{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.rain-chart{flex:1;width:100%;height:auto!important;min-height:105px}.rain-chart svg{width:100%!important;height:100%!important}.rain-chart rect.is-future{fill:var(--accent)}.rain-chart rect.is-past{fill:#697386!important;opacity:.38!important}.rain-chart .chart-axis{stroke:rgba(255,255,255,.2)}.rain-chart .now-line{stroke:#fff;stroke-width:1.5;stroke-dasharray:4 4;opacity:.75}.rain-chart text{font-size:11px}
@media(max-height:700px) and (min-width:681px){.rain-chart{min-height:78px}.weather-data-row{grid-template-columns:minmax(200px,.58fr) minmax(0,1.42fr)!important}}


/* V19: graphique visible, contenu et sans chevauchement */
.weather-data-row{column-gap:1rem!important;min-width:0}.weather-data-row>.details-grid,.weather-data-row>.rain-chart-panel{min-width:0}.rain-chart-panel{overflow:hidden!important;padding:.55rem .65rem!important}.rain-chart-title{position:relative;z-index:2;flex:0 0 auto;margin-bottom:.3rem;line-height:1.2}.rain-chart{position:relative;z-index:1;display:block!important;flex:1 1 auto!important;width:100%!important;height:clamp(90px,15vh,145px)!important;min-height:90px!important;overflow:hidden}.rain-chart svg{display:block!important;width:100%!important;height:100%!important;max-width:100%}.details-grid{align-self:stretch}
@media(max-width:820px) and (min-width:681px){.weather-data-row{column-gap:.65rem!important;grid-template-columns:minmax(190px,.58fr) minmax(0,1.42fr)!important}.rain-chart-panel{padding:.4rem .48rem!important}.rain-chart-title{font-size:.66rem}}


/* V20: libellé restauré, total du graphique retiré, heures lisibles */
.rain-chart-title{justify-content:flex-start!important}.rain-chart{height:clamp(100px,16vh,150px)!important;min-height:100px!important}.rain-chart svg{width:100%!important;height:100%!important;overflow:visible!important}.rain-chart text{font-size:10px!important}.rain-chart-panel{padding-bottom:.7rem!important}
@media(max-width:820px) and (min-width:681px){.rain-chart text{font-size:9px!important}.rain-chart{min-height:92px!important}}


/* V21: en-tête supprimé, heure avec les bus, plein écran flottant */
.app-shell{padding-top:.55rem!important}.bus-clock{display:block;color:#fff;font-size:1.4rem;font-weight:800;line-height:1;margin-top:.35rem}.fullscreen-fab{position:fixed;top:.55rem;right:.55rem;z-index:1000;opacity:.28;transition:opacity .18s,background .18s;box-shadow:0 8px 24px rgba(0,0,0,.3)}.fullscreen-fab:hover,.fullscreen-fab:focus-visible{opacity:1;background:rgba(255,107,36,.92)}body.is-fullscreen .fullscreen-fab{display:none!important}


/* V22: détails sur deux lignes et graphique horaire défilant */
.details-grid{grid-template-columns:repeat(3,minmax(82px,1fr))!important}.weather-data-row{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr)!important}.rain-chart{display:block!important;width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--accent) rgba(255,255,255,.06)}.rain-chart::-webkit-scrollbar{height:6px}.rain-chart::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:4px}.rain-chart::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}.rain-chart svg{display:block!important;width:auto!important;max-width:none!important;height:100%!important;min-width:1056px}.rain-chart text{font-size:10px!important}.rain-chart-panel{min-width:0!important;overflow:hidden!important}
@media(max-width:820px) and (min-width:681px){.details-grid{grid-template-columns:repeat(3,minmax(70px,1fr))!important}.weather-data-row{grid-template-columns:minmax(255px,.75fr) minmax(0,1.25fr)!important}}


/* V23: marges réduites et défilement tactile horizontal */
.app-shell{padding-left:.22rem!important;padding-right:.22rem!important}.app-shell>.container{max-width:none!important;padding-left:0!important;padding-right:0!important}.app-shell>.container>.columns{margin-left:-.18rem!important;margin-right:-.18rem!important}.app-shell>.container>.columns>.column{padding-left:.35rem!important;padding-right:.35rem!important}.rain-chart{-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;cursor:grab}.rain-chart:active{cursor:grabbing}.rain-chart svg{pointer-events:none;user-select:none;-webkit-user-select:none}.bus-symbol{display:none!important}
