/* Window-driven composition shared by Web/PWA and the Electron shell. */
.app>.home-overview{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,21rem),1fr));gap:16px;align-items:start}
.home-overview>*{min-width:0;margin-top:0}.home-overview>.hero{height:100%;min-height:220px}
.home-overview>#nowcastSlot:empty,.app>#riverSlot:empty{display:none}
.minis{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}
.mini.moon{display:grid;gap:12px;align-content:start}
.moon-heading{display:flex;align-items:center;gap:10px;min-width:0}
.moon-heading>div:last-child{min-width:0;overflow-wrap:break-word}
.moon-times{display:flex;flex-wrap:wrap;gap:10px 18px}
.moon-times span{display:grid;gap:4px}
.moon-duration{color:var(--text-dim);line-height:1.5}
.app{max-width:none;width:100%;padding-inline:clamp(14px,2vw,32px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,21rem),1fr));gap:16px;align-content:start;align-items:start}
.app>*{min-width:0;margin-top:0}.app>.hdr,.app>.daytabs,.app>.tabbar,.app>#appro,.app>.home-quick,.app>.simple-alerts,.app>.simple-details{grid-column:1/-1}
.app>.hdr{padding-bottom:0}.app>.daytabs{margin-bottom:0}.app>.tabbar{width:100%;max-width:none;left:0;right:0;padding-inline:max(14px,calc((100vw - 800px)/2));justify-content:center}
.app>.hero{height:100%;min-height:220px}.app>.home-quick{grid-template-columns:repeat(3,minmax(0,1fr))}
.app>.appro{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,21rem),1fr));gap:16px}.app>.appro>.sec-h{grid-column:1/-1}
.app>.simple-alerts:empty{display:none}.simple-alerts>div:empty{display:none}
.app>.simple-alerts:not(:has(> :not(:empty))){display:none}
.simple-hero{padding:24px!important}.simple-current{display:flex;gap:16px;align-items:center;justify-content:space-between}.simple-current>div{min-width:0}.simple-current .hero-caption{text-align:start;margin-bottom:14px}.simple-temperature{font-size:clamp(3rem,6vw,5rem);font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.simple-condition{font-size:1.1rem;margin-top:12px}.simple-current .hero-ico{width:clamp(60px,10vw,120px);height:auto;flex-shrink:0}
.simple-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--hairline)}.simple-facts span,.simple-facts b{display:block;overflow-wrap:anywhere}.simple-facts span{color:var(--text-dim);font-size:.82rem;margin-bottom:7px}.simple-facts b{font-size:1.1rem}
.simple-hours .hours{overflow-x:auto;display:flex;padding-block:12px;gap:8px}.simple-hours .hour{flex:1 0 74px;min-width:74px;display:grid;justify-items:center;gap:8px;border:1px solid var(--card-border);border-radius:14px;background:var(--card);color:var(--text);font:inherit;padding:12px 8px}.simple-hours .hour .ht{font-size:1.05rem}.simple-hours .sec-h{flex-wrap:wrap;gap:8px}
.experience-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:10px}.experience-services button,.experience-all{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:14px;border:1px solid var(--card-border);border-radius:14px;background:var(--card-2);color:var(--text);font:inherit;text-align:start;cursor:pointer;overflow-wrap:anywhere}.experience-services svg{width:24px;height:24px;flex-shrink:0;color:var(--cold)}.experience-all{margin-top:12px;color:var(--cold);font-weight:700;justify-content:space-between}
.simple-details{border:1px solid var(--card-border);border-radius:18px;padding:18px;background:var(--card)}.simple-details>summary{cursor:pointer;font-size:1rem;font-weight:650;min-height:44px;padding:10px 0}.simple-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,21rem),1fr));gap:16px;margin-top:16px;align-items:start}.simple-detail-grid>.appro{grid-column:1/-1}.simple-detail-grid .minis{margin:0}
.experience-choice{border:1px solid var(--card-border);border-radius:16px;padding:16px;margin:12px 0}.experience-choice legend{padding:0 8px;font-weight:750}.experience-choice p{color:var(--text-dim);font-size:.9rem;margin-bottom:12px}.experience-choice label{display:flex;align-items:center;gap:12px;padding:14px 8px;min-height:48px;cursor:pointer}.experience-choice input{width:22px;height:22px;flex-shrink:0;accent-color:var(--cold)}.experience-choice b,.experience-choice small{display:block}.experience-choice small{color:var(--text-dim);font-size:.85rem;line-height:1.5;margin-top:5px}
.sw.experience-guide{max-width:1040px}.guide-search{display:grid;gap:8px;font-weight:650;margin:18px 0}.guide-search input{width:100%;min-height:48px;padding:12px;border:1px solid var(--card-border);border-radius:12px;background:var(--card);color:var(--text);font:inherit}.guide-chapters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:12px;align-items:start}.guide-chapter{border:1px solid var(--card-border);border-radius:14px;padding:14px;background:var(--card)}.guide-chapter[hidden]{display:none}.guide-chapter summary{font-size:1rem;font-weight:700;cursor:pointer;min-height:44px;padding:10px 0}.guide-chapter ol{margin:10px 0 12px 22px;line-height:1.65}.guide-chapter li+li{margin-top:12px}.guide-actions{display:flex;flex-wrap:wrap;gap:8px}.guide-actions button{min-height:44px;border:1px solid var(--card-border);border-radius:12px;background:var(--chip);color:var(--cold);font:inherit;padding:10px 14px;cursor:pointer}
.experience-guide :focus-visible,.experience-choice :focus-visible,.simple-details :focus-visible,.experience-services :focus-visible,.experience-all:focus-visible{outline:3px solid var(--cold);outline-offset:3px}
.experience-guide .sh-h{font-size:1.1rem;gap:12px;align-items:flex-start}.guide-title{min-width:0;overflow-wrap:anywhere}.guide-chapter{min-width:0;overflow-wrap:anywhere}.guide-chapter ol{margin-inline-start:22px;margin-inline-end:0}.guide-chapter summary{font:inherit;font-weight:700}
.experience-guide .sh-msg{font-size:.9rem}
.guide-chapter li{hyphens:auto}
.sw .set-row{flex-wrap:wrap;gap:12px}.sw .seg{flex-wrap:wrap}.sw .seg button{min-height:44px}
@media(min-width:900px){.sw{max-width:min(900px,calc(100vw - 48px))}.app[data-experience=simple]{grid-template-columns:repeat(2,minmax(0,1fr))}.app[data-experience=simple]>.simple-hero{grid-column:span 1}.app[data-experience=simple]>.simple-services{grid-column:1/-1}.experience-services{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.app .fade-in{animation:none}}

.app>.experience-launcher{grid-column:1/-1}.experience-launcher{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.experience-launcher button{min-height:44px;border:1px solid var(--card-border);border-radius:999px;padding:10px 16px;background:var(--chip);color:var(--cold);font:inherit;font-size:.85rem;cursor:pointer}.experience-launcher :focus-visible{outline:3px solid var(--cold);outline-offset:3px}

.app>.forecast-cache-notice{grid-column:1/-1}.forecast-cache-notice{display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between;border:1px solid var(--cold);border-radius:16px;padding:16px;background:var(--card);color:var(--text);overflow-wrap:anywhere}.forecast-cache-notice p{margin:8px 0 0;color:var(--text-dim);line-height:1.5}.forecast-cache-notice button{min-height:44px;background:var(--chip);color:var(--cold);border:1px solid var(--card-border);border-radius:12px;padding:10px 16px;font:inherit;cursor:pointer}.forecast-cache-notice :focus-visible{outline:3px solid var(--cold);outline-offset:3px}

/* Cast companion: touch targets and a readable guide on the actual phone/window. */
.cast-controls { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.cast-controls button, .cast-guide button { min-height:44px; padding:10px 14px; border:1px solid var(--card-border); border-radius:12px; color:var(--text); background:var(--card); font:inherit; overflow-wrap:anywhere; }
.cast-status { line-height:1.5; overflow-wrap:anywhere; }
.cast-modes { display:flex; flex-wrap:wrap; gap:14px; border:1px solid var(--card-border); border-radius:14px; margin:16px 0; }
.cast-modes label { display:flex; align-items:center; gap:10px; min-height:44px; }
.cast-modes input { width:22px; height:22px; }
.cast-guide label { display:flex; flex-direction:column; gap:8px; }
.cast-guide input { min-height:44px; max-width:100%; padding:12px; color:var(--text); background:var(--card); border:1px solid var(--card-border); border-radius:12px; font:inherit; }
.cast-guide details { margin:14px 0; border:1px solid var(--card-border); border-radius:12px; padding:12px; }
.cast-guide summary { min-height:44px; cursor:pointer; padding:8px; font-weight:600; }
.cast-guide li { line-height:1.6; margin-bottom:14px; overflow-wrap:anywhere; }
.cast-controls button:focus-visible, .cast-guide button:focus-visible, .cast-guide input:focus-visible, .cast-guide summary:focus-visible { outline:3px solid var(--cold); outline-offset:3px; }
@media (min-width:800px) { .cast-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); } }
