[data-journey-weather] { width:min(100%,420px);max-width:100%; }
.journey-weather-panel { box-sizing:border-box;border:1px solid var(--elb-gold-line,#d1b779);border-radius:12px;background:#fff;padding:12px 15px;text-align:start;overflow-wrap:anywhere;font-size:.82rem; }
.journey-weather-panel p { margin:3px 0;line-height:1.4; }
.journey-weather-top { display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center; }
.journey-weather-top button { min-height:44px;border:1px solid var(--elb-gold,#b38a39);border-radius:9px;background:#fff;padding:7px 10px;font:inherit;cursor:pointer; }
.journey-weather-top button:disabled { cursor:wait; }
.journey-weather-top button:focus-visible,.journey-weather-source summary:focus-visible { outline:2px solid var(--elb-gold-ink,#765513);outline-offset:3px; }
.journey-weather-place { font-size:.82rem; }
.journey-weather-result { margin-top:5px; }
.journey-weather-condition { display:flex;gap:12px;align-items:center;flex-wrap:wrap; }
.journey-weather-condition > div { display:flex;flex-direction:column; }
.journey-weather-temperature { display:inline-block;font-size:1.6rem;line-height:1.3;font-variant-numeric:tabular-nums; }
.journey-weather-times { margin:8px 0; }
.journey-weather-times div { display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap; }
.journey-weather-times dd { margin:0; }
.journey-weather-warning { border-inline-start:2px solid var(--elb-gold,#b38a39);padding-inline-start:9px; }
.journey-weather-source { margin-top:7px; }
.journey-weather-source summary { cursor:pointer;min-height:24px;display:list-item; }
.journey-weather-source[open] { border-top:1px solid var(--elb-gold-line,#d1b779);padding-top:7px; }
.journey-weather-source[open] p { margin:8px 0; }
.journey-weather-source a { overflow-wrap:anywhere;text-underline-offset:3px; }
.journey-weather-consent { font-size:.8rem; }
.journey-weather-panel { position:relative;isolation:isolate;overflow:hidden; }
.journey-weather-animation,.journey-weather-symbol { flex:0 0 auto;pointer-events:none;color:var(--elb-gold,#b38a39);fill:#fff;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }
.journey-weather-animation { width:112px;height:72px;max-width:36%; }
.journey-weather-symbol { width:70px;height:45px; }
:is(.journey-weather-animation,.journey-weather-symbol) > * { display:none; }
:is(.journey-weather-animation,.journey-weather-symbol)[data-weather-visual="sun"] .weather-sun,
:is(.journey-weather-animation,.journey-weather-symbol)[data-weather-visual="moon"] .weather-moon,
:is(.journey-weather-animation,.journey-weather-symbol):is([data-weather-visual="clouds"],[data-weather-visual="rain"],[data-weather-visual="snow"],[data-weather-visual="storm"]) .weather-clouds,
:is(.journey-weather-animation,.journey-weather-symbol):is([data-weather-visual="rain"],[data-weather-visual="storm"]) .weather-rain,
:is(.journey-weather-animation,.journey-weather-symbol)[data-weather-visual="snow"] .weather-snow,
:is(.journey-weather-animation,.journey-weather-symbol)[data-weather-visual="storm"] .weather-thunder,
:is(.journey-weather-animation,.journey-weather-symbol)[data-weather-wind="true"] .weather-wind { display:block; }
/* Colour is information only: provider-described cloud/rain intensity, never a
   vigilance level. Text and card backgrounds retain the white/gold identity. */
.weather-clouds { fill:#d6dbe1;stroke:#959faa; }
[data-cloud-tone="dark"] > .weather-clouds { fill:#697581;stroke:#4c5968; }
.weather-rain { fill:none;stroke:#287cc0;stroke-width:3; }
[data-rain-tone="light"] > .weather-rain { stroke:#75bfed; }
[data-rain-tone="dark"] > .weather-rain { stroke:#195296;stroke-width:4; }
.weather-thunder { fill:#ffdc49;stroke:#bc9200; }
.weather-sun { fill:#fff6c4;stroke:#d5ac34; }
.weather-wind { fill:none; }
.weather-wind-outline { stroke:var(--elb-gold,#b38a39);stroke-width:5; }
.weather-wind-white { stroke:#fff;stroke-width:3; }
.journey-weather-animation .weather-sun { animation:weather-sun-light 4s ease-in-out infinite;transform-origin:102px 34px; }
.journey-weather-animation .weather-moon { animation:weather-moon-light 5s ease-in-out infinite; }
.journey-weather-animation .weather-clouds { animation:weather-cloud-drift 6s ease-in-out infinite alternate; }
.journey-weather-animation .weather-rain path { animation:weather-rain-fall 1.3s linear infinite; }
.journey-weather-animation .weather-rain path + path { animation-delay:-.65s; }
.journey-weather-animation .weather-snow { animation:weather-snow-fall 4s ease-in-out infinite; }
.journey-weather-animation .weather-thunder { animation:weather-thunder-glow 5s ease-in-out infinite; }
.journey-weather-animation .weather-wind { animation:weather-wind-flow 3s ease-in-out infinite; }
.journey-weather-rain-announcement { margin-block:10px;padding:9px 11px;border:1px solid #75bfed;border-radius:10px;background:#fff; }
.journey-weather-rain-announcement small { display:block;margin-top:5px;font-size:.74rem;line-height:1.4; }
.journey-weather-outlook { margin-top:12px;max-width:100%; }
.journey-weather-outlook h4 { margin:0;font-size:.85rem; }
.journey-weather-outlook-caption { font-size:.72rem; }
.journey-weather-outlook-scroll { max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:var(--elb-gold,#b38a39) #fff;padding-block:5px; }
.journey-weather-outlook-scroll:focus-visible { outline:2px solid var(--elb-gold,#b38a39);outline-offset:2px; }
.journey-weather-outlook ul { display:flex;gap:8px;margin:0;padding:0;list-style:none; }
.journey-weather-outlook li { flex:0 0 108px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 5px;border:1px solid var(--elb-gold-line,#d1b779);border-radius:9px;background:#fff;text-align:center; }
.journey-weather-outlook li > time { font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums; }
.journey-weather-outlook li > span,.journey-weather-outlook li > small { font-size:.71rem;line-height:1.3; }
.journey-weather-day { min-height:1.8em; }
.journey-weather-outlook-missing { font-size:.74rem; }
.journey-weather-motion-label { font-size:.72rem; }
.journey-weather-auto { margin-top:10px;border-top:1px solid var(--elb-gold-line,#d1b779);padding-top:8px; }
.journey-weather-auto label { display:flex;align-items:center;gap:9px;min-height:44px;cursor:pointer; }
.journey-weather-auto input { flex:0 0 auto;width:20px;height:20px;accent-color:var(--elb-gold,#b38a39); }
.journey-weather-auto input:focus-visible { outline:2px solid var(--elb-gold-ink,#765513);outline-offset:3px; }
.journey-weather-auto p { font-size:.73rem; }
@keyframes weather-sun-light { 0%,100% { transform:scale(.94);opacity:.7; } 50% { transform:scale(1.05);opacity:1; } }
@keyframes weather-moon-light { 0%,100% { opacity:.65; } 50% { opacity:1; } }
@keyframes weather-cloud-drift { from { transform:translateX(-5px); } to { transform:translateX(5px); } }
@keyframes weather-rain-fall { from { transform:translateY(-4px);opacity:0; } 20% { opacity:1; } to { transform:translateY(9px);opacity:0; } }
@keyframes weather-snow-fall { from { transform:translate(-2px,-4px);opacity:0; } 20% { opacity:1; } to { transform:translate(3px,6px);opacity:0; } }
@keyframes weather-thunder-glow { 0%,100% { opacity:.6; } 50% { opacity:1; } }
@keyframes weather-wind-flow { 0% { transform:translateX(-8px);opacity:.35; } 50% { opacity:1; } 100% { transform:translateX(9px);opacity:.35; } }
@media(prefers-reduced-motion:reduce) { .journey-weather-animation * { animation:none!important;transform:none!important; } }
@media(max-width:480px) { .journey-weather-panel { padding:13px; }.journey-weather-top { gap:8px; }.journey-weather-times div { display:block; } }
.journey-weather-panel,.journey-weather-top,.journey-weather-top>div{min-width:0;max-width:100%}
.journey-weather-panel{overflow-wrap:break-word}
.journey-weather-place{word-break:normal;overflow-wrap:break-word}
.journey-weather-top>div{flex:1 1 140px}
.journey-weather-top>button{flex:0 1 auto;white-space:normal}
.journey-weather-outlook-scroll{width:100%;box-sizing:border-box}
