/* UI unification (owner, 6 Oct 2026): the older dialogs use the token geometry — 1 px edges, --hx-radius-card corners, --hx-target-icon header buttons — so every screen has one button look. Colours already come from the theme map in tokens.css. */
/* Shared Inspection Hub palette. Loaded after platform styles by build hooks. */
@font-face{font-family:'Horus Avenir';src:url('./assets/fonts/AvenirNext-Regular.ttf');font-weight:400}
@font-face{font-family:'Horus Avenir';src:url('./assets/fonts/AvenirNext-Medium.ttf');font-weight:500}
@font-face{font-family:'Horus Avenir';src:url('./assets/fonts/AvenirNext-DemiBold.ttf');font-weight:600}
@font-face{font-family:'Horus Avenir';src:url('./assets/fonts/AvenirNext-Bold.ttf');font-weight:700}
:root{--horus-text-scale:.88;--ui-cream:#eee8da;--ui-card:#fffdf6;--ui-sage:#e0e5ce;--ui-action-bg:#e0e5ce;--ui-action-ink:#183d39;--ui-action-border:#62765a;--ui-button:#e0e5ce;--ui-soft:#eeeadd;--ui-ink:#243832;--ui-space:12px;--ui-button-label-size:calc(18px * var(--horus-text-scale,1))}
:root{--ui-header-icon-size:44px;--ui-header-icon-radius:10px;--ui-header-icon-border:#ffffff80;--ui-header-icon-fill:#ffffff1f;--ui-header-icon-active:#ffffff33}
body{background:var(--ui-cream);font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif;font-weight:500}
/* All app-owned action text uses DemiBold; keep informational text at Medium. */
html body :is(button,[role="button"],input[type="button"],input[type="submit"],input[type="reset"],a.secondary,a.bookmark-inline-action,a.service-map-link,a.google-maps-link):not(:where([data-hx], [data-hx] *)){font-weight:600!important}
html body :is(button,[role="button"],a.secondary,a.bookmark-inline-action,a.service-map-link,a.google-maps-link) *:not(:where([data-hx], [data-hx] *)){font-weight:600!important}
html body :is(dialog[id],.team-overlay,.sidebar,#empty-card,header) :is(button,[role="button"],a.secondary,a.bookmark-inline-action,a.service-map-link,a.google-maps-link) *:not(:where([data-hx], [data-hx] *)){font-weight:600!important}

/* Search results are information rows: stronger IDs, medium supporting copy. */
html body .sidebar .row-title:not(:where([data-hx], [data-hx] *)){font-weight:600!important}
html body .sidebar #turbines#turbines .row-title:not(:where([data-hx], [data-hx] *)){font-weight:600!important}
html body .sidebar :is(.row-sub,#result-count,#search):not(:where([data-hx], [data-hx] *)){font-weight:500!important}
html body .team-ui.team-embedded :is(.team-worker-search,.team-note,.team-badge){font-weight:500!important}
:where(dialog[id],.team-overlay,#empty-card,.sidebar,.tool-body,.weather-content,.team-card,.service-result-list):not(:where([data-hx], [data-hx] *)){background-color:var(--ui-card)!important;color:var(--ui-ink)}
:is(.team-worker-search,.search input,#search,.tool-body input,.tool-body select):not(:where([data-hx], [data-hx] *)){background-color:var(--lg-b-eeeadd,#eeeadd)!important;color:var(--lg-t-243832,#243832)}
/* Ordinary commands only: preserve selection,SOS,map symbols and header semantics. */
:where(dialog[id],.team-overlay,.sidebar,#empty-card) :is(button,a.secondary):not(:is(.sos-handle,.sos-call,.sos-confirm,[aria-pressed="true"],[aria-selected="true"],.active,.selected,.contact-avatar,.team-avatar,.team-name,.team-contact,.team-worker-name,.team-expand,.icon-btn,[aria-label^="Close"],.weather-refresh,.weather-change-location)):not(:where([data-hx], [data-hx] *)){background-color:var(--ui-sage)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;box-shadow:none}


:is(dialog[id],.team-overlay,.sidebar) button:disabled:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-eef0ec,#eef0ec)!important;color:var(--lg-t-596962,#596962)!important;border-color:var(--lg-l-c8d6c3,#c8d6c3)!important;opacity:1}
:is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading):not(:where([data-hx], [data-hx] *)){box-sizing:border-box;min-height:60px!important;padding:var(--hx-space-3) var(--hx-space-4)!important;align-items:center!important;background:var(--lg-b-234f40,#234f40)!important;color:var(--lg-t-ffffff,#fff)!important}
:is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading) :is(h1,h2,h3):not(:where([data-hx], [data-hx] *)){margin:0!important;color:var(--lg-t-ffffff,white)!important}
:is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading) button:not(:where([data-hx], [data-hx] *)){min-height:var(--hx-target-icon)!important;min-width:var(--hx-target-icon)!important;background:var(--hx-card)!important;border:1px solid var(--hx-hairline)!important;color:var(--lg-t-ffffff,white)!important}
:is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading) button svg:not(:where([data-hx], [data-hx] *)){color:var(--lg-t-ffffff,white)!important;stroke:currentColor!important}
:is(.team-actions,.tool-actions,.route-buttons,.account-actions):not(:where([data-hx], [data-hx] *)){gap:12px!important}
:is(.team-worker-panel,.weather-content):not(:where([data-hx], [data-hx] *)){padding:12px!important}
:is(.team-worker-panel,.weather-content)>p{margin:0 0 12px}
:is(#empty-card){padding:12px!important;gap:12px!important}
:is(#empty-card)>p{margin:0!important}
:is(.team-cards,.weather-workspace):not(:where([data-hx], [data-hx] *)){gap:12px!important}
.team-ui.team-embedded .ui-facts>div{min-height:40px;padding:4px 0}
/* Named semantic states always win over ordinary commands. */
:is(dialog[id],.team-overlay,.sidebar) :is(button[aria-pressed="true"],button[aria-selected="true"],button.active):not(:where([data-hx], [data-hx] *)){background:var(--lg-pb-234f40,#234f40)!important;color:var(--lg-pt-ffffff,white)!important;border-color:var(--lg-pb-234f40,#234f40)!important}
:is(.sos-call,.sos-confirm){background:var(--lg-b-b92218,#b92218)!important;color:var(--lg-t-ffffff,white)!important}
@media(max-width:760px){
 body{font-weight:500}
 :where(dialog[id],.team-overlay,.sidebar,#empty-card) :is(p,small,label,input,select,textarea,.team-note,.team-badge):not(:where([data-hx], [data-hx] *)){font-weight:500!important}
 :where(dialog[id],.team-overlay,.sidebar,#empty-card) :is(button,.team-name,.team-worker-name):not(:where([data-hx], [data-hx] *)){font-weight:600!important}
 :where(dialog[id],.team-overlay,.sidebar,#empty-card) :is(h1,h2,h3):not(:where([data-hx], [data-hx] *)){font-weight:700!important}
 .team-ui.team-embedded .team-worker-head{min-height:64px!important;padding:12px 0!important;gap:8px!important}
 .team-ui.team-embedded .team-overlay.is-workers>.team-section-head{margin-bottom:12px!important}
 .team-ui.team-embedded .team-cards>.team-card+.team-card{margin-top:12px!important;padding-top:0!important}
 .turbine-bubble{font-weight:700!important;padding:3px 6px!important}
}

/* Preserve header and emergency states on hover, and keyboard focus. */
:is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading) button:is(:hover,:active){background:var(--hx-track)!important;color:var(--lg-t-ffffff,white)!important}
:is(.sos-call,.sos-confirm):is(:hover,:active){background:var(--lg-b-941b14,#941b14)!important;color:var(--lg-t-ffffff,white)!important}
:is(dialog,.team-overlay,.sidebar) :is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--lg-l-2475e8,#2475e8);outline-offset:3px}
:is(dialog,.team-overlay,.sidebar) :is(button,a,input,select,textarea){box-sizing:border-box}
.tool-body{padding:12px!important;gap:12px!important}
:is(.team-card,.service-result-list article){box-sizing:border-box;min-width:0;width:100%}
@media(max-width:760px){:where(dialog[id],.team-overlay,.sidebar) strong:not(:where([data-hx], [data-hx] *)){font-weight:700!important}}

/* Name + description form one message; separate actions retain a 12px gap. */
:is(.bookmark-description,.place-description){margin-top:4px!important;margin-bottom:0!important;line-height:var(--hx-leading-head)}
:is(.tool-body,.team-card)>:is(h3,h4,.name)+p{margin-top:4px!important;line-height:var(--hx-leading-head)}
/* Match dialog scope so ordinary-button rules cannot recolour header actions. */
:is(dialog[id],.team-overlay,.sidebar) :is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading) button:not(:where([data-hx], [data-hx] *)){background:var(--hx-card)!important;border:1px solid var(--hx-hairline)!important;color:var(--lg-t-ffffff,white)!important}
:is(dialog[id],.team-overlay,.sidebar) :is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading) button:is(:hover,:active){background:var(--hx-track)!important;color:var(--lg-t-ffffff,white)!important}
@media(max-width:760px){
.team-ui.team-embedded .team-cards>.team-card .team-worker-head{min-height:64px!important;padding:12px 0!important}
.team-ui.team-embedded .team-cards>.team-card+.team-card{margin-top:12px!important;padding-top:0!important}
}
.team-ui.team-embedded .team-overlay.is-workers>.team-section-head button{background:var(--lg-b-e8ebe8,#e8ebe8)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;color:var(--lg-t-183d39,#183d39)!important}
.team-ui.team-embedded .team-overlay.is-workers>.team-section-head button:is(:hover,:active){background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important}
/* The Team host covers the map; only its visible panels receive a card fill. */
.team-ui.team-embedded>.tool-body{background:transparent!important;padding:0!important}
body .team-ui.team-embedded .team-overlay.is-workers>.team-section-head .team-panel-close{background:var(--hx-card)!important;border:1px solid var(--hx-hairline)!important;color:var(--lg-t-ffffff,#fff)!important}
/* Shared search field: same inset before typed text and placeholder. */
html body input[type="search"]:not(:where([data-hx], [data-hx] *)),html body input.search,html body input.team-worker-search,html body #place-filter:not(:where([data-hx], [data-hx] *)),html body .sidebar #mobile-search-panel input#search:not(:where([data-hx], [data-hx] *)),html body .sidebar input#search:not(:where([data-hx], [data-hx] *)){
 box-sizing:border-box!important;width:100%;min-width:0;min-height:52px!important;height:auto!important;
 padding:8px!important;margin:0!important;border:0!important;border-bottom:1px solid var(--lg-l-788477,#788477)!important;border-radius:0!important;
 background:var(--lg-b-eeeadd,#eeeadd)!important;color:var(--lg-t-243832,#243832)!important;font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif;line-height:var(--hx-leading-body)!important;
}
html body input[type="search"]:not(:where([data-hx], [data-hx] *))::placeholder,html body input.search::placeholder,html body input.team-worker-search::placeholder,html body #place-filter:not(:where([data-hx], [data-hx] *))::placeholder,html body .sidebar #search:not(:where([data-hx], [data-hx] *))::placeholder{color:var(--lg-t-596962,#596962)!important;opacity:1!important}
html body .sidebar #mobile-search-panel label.search:not(:where([data-hx], [data-hx] *)),html body label.bookmark-search:not(:where([data-hx], [data-hx] *)){padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}
body .team-ui.team-embedded .team-worker-controls{padding:0 12px 12px!important}
body .team-ui.team-embedded .team-overlay.is-workers>.team-section-head{margin-bottom:12px!important}
/* Worker rows own their spacing: no added grid gap or sibling margin. */
body .team-ui.team-embedded .team-cards{gap:0!important;padding:0 12px 12px!important}
body .team-ui.team-embedded .team-cards>.team-card,
body .team-ui.team-embedded .team-cards>.team-card+.team-card{margin:0!important;padding:0!important}
body .team-ui.team-embedded .team-cards>.team-card .team-worker-head{box-sizing:border-box;min-height:68px!important;padding:12px 0!important}
/* Right-side map bars: square left edge, retain the original right curves. Map home (body.mh) uses separate slate buttons instead: hx-map-home.css. */
html body:not(.driving):not(.mh) .map-actions{border-radius:0 12px 12px 0!important}
html body:not(.mh) .team-map-menu{border-radius:12px 12px 0 12px!important}
html body:not(.mh) .team-map-menu .team-campaign-trigger{border-radius:11px 0 0 11px!important}
html body:not(.mh) .team-map-menu>button{border-radius:0 11px 0 0!important}
html body:not(.driving):not(.mh) .map-area:has(.team-map-menu) .map-actions{border-top:0!important;border-radius:0 0 12px 12px!important}
html body:not(.driving):not(.mh) .map-area:has(.team-map-menu) .map-actions>button:first-child{border-top-right-radius:0!important}
html body:not(.driving):not(.mh) .map-actions>button{border-top-left-radius:0!important;border-bottom-left-radius:0!important}
html body:not(.driving):not(.mh) .map-actions>button:first-child{border-top-right-radius:11px!important}
html body:not(.driving):not(.mh) .map-actions>button:last-child{border-bottom-right-radius:11px!important}
/* Search and submit form one square-ended field with a continuous baseline. */
html body .sidebar #mobile-search-panel label.search:not(:where([data-hx], [data-hx] *)){
 display:flex!important;align-items:stretch!important;gap:0!important;
 background:var(--lg-b-eeeadd,#eeeadd)!important;border-bottom:1px solid var(--lg-l-788477,#788477)!important;min-height:52px!important;
}
html body .sidebar #mobile-search-panel label.search input#search:not(:where([data-hx], [data-hx] *)){
 flex:1 1 0!important;min-width:0!important;min-height:51px!important;border-bottom:0!important;
}
html body .sidebar #mobile-search-panel label.search button#search-submit:not(:where([data-hx], [data-hx] *)){
 flex:0 0 52px!important;width:52px!important;min-width:52px!important;min-height:51px!important;height:auto!important;align-self:stretch!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 margin:0!important;padding:0!important;border:0!important;border-left:1px solid var(--lg-l-788477,#788477)!important;border-radius:0!important;
 background:var(--lg-b-e0e5ce,#e0e5ce)!important;color:var(--lg-t-183d39,#183d39)!important;box-shadow:none!important;line-height:1!important;
}
html body .sidebar #mobile-search-panel label.search button#search-submit:hover{background:var(--lg-b-d2dcc0,#d2dcc0)!important}
html body .sidebar #mobile-search-panel label.search button#search-submit:active{background:var(--lg-b-c4d0af,#c4d0af)!important}
html body .sidebar #mobile-search-panel label.search:focus-within{outline:3px solid var(--hx-field-focus,var(--lg-l-2475e8,#2475e8))!important;outline-offset:2px!important}
/* Legacy dialog shells must share the same flush header geometry. */
html body dialog[id]:has(>:is(.ui-dialog-heading,.menu-heading,.picker-heading)):not(:where([data-hx], [data-hx] *)){
 box-sizing:border-box;padding:12px!important;border:1px solid var(--lg-l-688377,#688377)!important;border-radius:12px!important;
 clip-path:none!important;overflow-x:clip;
}
html body dialog[id]>:is(.ui-dialog-heading,.menu-heading,.picker-heading):not(:where([data-hx], [data-hx] *)){
 display:flex!important;box-sizing:border-box;align-items:center!important;justify-content:space-between;
 min-height:60px!important;height:auto!important;padding:8px 12px!important;margin:-12px -12px 12px!important;
 width:auto!important;max-width:none!important;border:0!important;border-radius:11px 11px 0 0!important;
 background:var(--lg-b-234f40,#234f40)!important;color:var(--lg-t-ffffff,#fff)!important;gap:12px;
}
html body dialog[id]>:is(.ui-dialog-heading,.menu-heading,.picker-heading) :is(h1,h2,h3):not(:where([data-hx], [data-hx] *)){
 padding:0!important;margin:0!important;border:0!important;background:transparent!important;
 font-size:var(--hx-text-title)!important;font-weight:700!important;line-height:var(--hx-leading-tight)!important;color:var(--lg-t-ffffff,#fff)!important;letter-spacing:normal!important;
}
@media(max-width:760px){html body dialog[id]>:is(.ui-dialog-heading,.menu-heading,.picker-heading) :is(h1,h2,h3):not(:where([data-hx], [data-hx] *)){font-weight:700!important}}

/* Standalone map/editor toolbars share the same shell as the main map. */
html body:not(.driving):not(.mh) .map-actions{border:1px solid var(--lg-l-688377,#688377)!important;box-shadow:none!important;background:var(--lg-b-fffdf6,#fffdf6)!important;overflow:hidden}
html body:not(.driving):not(.mh) .map-actions>button{box-sizing:border-box;border:0!important;box-shadow:none!important}
html body:not(.driving):not(.mh) .map-actions>button+button{border-top:1px solid var(--lg-l-688377,#688377)!important}
/* All standard header variants, including contact, service and editor panels. */
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading,.search-panel-heading):not(:where([data-hx], [data-hx] *)){
 box-sizing:border-box;display:flex;align-items:center!important;justify-content:space-between;gap:12px;
 min-height:60px!important;height:auto!important;padding:var(--hx-space-3) var(--hx-space-4)!important;background:var(--lg-b-234f40,#234f40)!important;color:var(--lg-t-ffffff,#fff)!important;
}
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading,.search-panel-heading) :is(h1,h2,h3,.eyebrow):not(:where([data-hx], [data-hx] *)){margin:0!important;padding:0!important;font-size:var(--hx-text-display)!important;line-height:var(--hx-leading-tight)!important;font-weight:700!important;color:var(--lg-t-ffffff,#fff)!important;letter-spacing:normal!important}
html:root body :is(.tool-heading,.dialog-header,.service-page-head,.map-edit-heading)>button:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;min-height:var(--hx-target-icon)!important;height:var(--hx-target-icon)!important;margin:0!important;padding:8px!important;color:var(--lg-t-ffffff,#fff)!important;background:var(--hx-card)!important;border:1px solid var(--hx-hairline)!important}
html:root body dialog:is(#places-dialog,#weather-panel,#guide,#account-dialog,#compass-help,#gps-status-dialog,#app-update-review):has(>:is(.ui-dialog-heading,.menu-heading,.picker-heading)):not(:where([data-hx], [data-hx] *)){padding:12px!important;border-radius:12px!important;clip-path:none!important}

























/* Full-size text actions share one label size in tool and permission dialogs. */
html:root body dialog.horus-tool-dialog .tool-body > button,
html:root body dialog.horus-tool-dialog .startup-permission-row > button{font-size:var(--ui-button-label-size)!important;font-weight:600!important;line-height:var(--hx-leading-tight)!important;min-height:52px!important}
html:root body #places-dialog.service-page:not(:where([data-hx], [data-hx] *)){padding:0!important}
html:root body #places-dialog .service-page-head:not(:where([data-hx], [data-hx] *)){margin:0 0 12px!important;padding:8px 12px!important;min-height:60px!important;border-radius:0!important}
html:root body #weather-panel .weather-location-step:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;min-width:0;max-width:100%;padding:12px!important}
html:root body #weather-panel .weather-content:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-fffdf6,#fffdf6)!important}
html:root body .sidebar :is(.sidebar-top,#turbines,.turbine-row):not(:where([data-hx], [data-hx] *)){background-color:var(--lg-b-fffdf6,#fffdf6)!important}
html:root body .account-actions>a{background:var(--lg-b-e0e5ce,#e0e5ce)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;color:var(--lg-t-183d39,#183d39)!important;border-radius:var(--hx-radius-card)}
html:root body .map-edit-panel{padding:12px;border-radius:12px;background:var(--lg-b-fffdf6,#fffdf6)}
html:root body .map-edit-panel>.map-edit-heading{margin:-12px -12px 12px;border-radius:11px 11px 0 0}
@media(max-width:760px){html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading,.search-panel-heading) :is(h1,h2,h3,.eyebrow):not(:where([data-hx], [data-hx] *)){font-weight:700!important}}
/* Tool dialogs may have no id; style their commands without recolouring map pins. */
html:root body dialog.horus-tool-dialog .tool-body button:not(:is(.ui-action--primary,.ui-action--quiet,.ui-action--standard,[aria-pressed="true"],[aria-selected="true"],.active,.selected,.team-name,.team-avatar,.team-expand,.team-pin,.maplibregl-marker,.maplibregl-ctrl button)),html:root body dialog .dialog-body button:not(:is(.contact-photo,.contact-avatar,[aria-pressed="true"])):not(:where([data-hx], [data-hx] *)),html:root body .map-edit-panel .map-edit-tools button:not([aria-pressed="true"]){background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card);min-height:52px}
html:root body dialog.horus-tool-dialog .tool-body button[aria-pressed="true"]{background:var(--hx-segment-on)!important;color:var(--hx-segment-ink)!important;border:1px solid var(--hx-segment-ink)!important;box-shadow:inset 0 0 0 1px var(--hx-segment-ink)}
html:root body dialog.horus-tool-dialog .tool-body input[type=search],html:root body dialog.horus-tool-dialog .tool-body input[placeholder^="Search"]{padding:8px!important;border:0!important;border-bottom:1px solid var(--lg-l-788477,#788477)!important;border-radius:0!important;background:var(--lg-b-eeeadd,#eeeadd)!important;min-height:52px!important}
html:root body dialog .dialog-body:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-fffdf6,#fffdf6)!important;padding:12px!important}
html:root body dialog .dialog-header:not(:where([data-hx], [data-hx] *)){border-radius:11px 11px 0 0!important}
/* Explicit ids outrank the legacy per-feature padding rules. */
html:root body dialog:is(#places-dialog,#weather-panel,#guide,#account-dialog,#compass-help,#gps-status-dialog,#app-update-review)>:is(.ui-dialog-heading,.menu-heading,.picker-heading):not(:where([data-hx], [data-hx] *)){margin:-12px -12px 12px!important;padding:8px 12px!important;min-height:60px!important}
html:root body dialog#places-dialog.service-page:has(>.ui-dialog-heading):not(:where([data-hx], [data-hx] *)){padding:0!important}
html:root body #places-dialog.service-page .service-results:not(:where([data-hx], [data-hx] *)){padding:12px!important}
html:root body #places-dialog.service-page .service-page-head:not(:where([data-hx], [data-hx] *)){margin:-12px -12px 12px!important;border-radius:11px 11px 0 0!important}
html:root body #weather-panel:has(.weather-location-step):not(:where([data-hx], [data-hx] *)){width:min(560px,calc(100% - 24px))!important;max-width:560px!important}


@media(max-width:700px){}
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.tool-heading,.dialog-header,.service-page-head,.map-edit-heading):not(:where([data-hx], [data-hx] *)){flex-wrap:nowrap!important}
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.tool-heading,.dialog-header,.service-page-head,.map-edit-heading)>:is(h1,h2,h3):not(:where([data-hx], [data-hx] *)){flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
html:root body dialog:is(#places-dialog,#weather-panel,#guide,#account-dialog,#compass-help,#gps-status-dialog,#app-update-review)>:is(.ui-dialog-heading,.menu-heading,.picker-heading):not(:where([data-hx], [data-hx] *)){position:sticky!important;top:-12px!important;z-index:2}
html:root body .map-edit-panel>.map-edit-heading{top:-12px!important}

/* Keep disabled commands distinct after feature-specific overrides. */
html:root body dialog.horus-tool-dialog .tool-body button:disabled,html:root body dialog .dialog-body button:disabled:not(:where([data-hx], [data-hx] *)),html:root body .map-edit-panel .map-edit-tools button:disabled{background:var(--lg-b-eef0ec,#eef0ec)!important;color:var(--lg-t-596962,#596962)!important;border-color:var(--lg-l-c8d6c3,#c8d6c3)!important;opacity:1;cursor:default}
html:root body #weather-panel .weather-location-step:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-fffdf6,#fffdf6)!important}
/* Shared icon control for app-owned panel, card and dialog headers. */
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading) button:is([aria-label],:has(svg)):not(:where([data-hx], [data-hx] *)){
 box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
 flex:0 0 var(--hx-target-icon)!important;width:var(--hx-target-icon)!important;min-width:var(--hx-target-icon)!important;max-width:var(--hx-target-icon)!important;
 height:var(--hx-target-icon)!important;min-height:var(--hx-target-icon)!important;max-height:var(--hx-target-icon)!important;
 margin:0!important;padding:0!important;border:1px solid var(--hx-hairline)!important;border-radius:var(--hx-radius-card)!important;
 background:var(--hx-card)!important;color:var(--lg-t-ffffff,#fff)!important;box-shadow:none!important;line-height:1!important;
}
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading) button:is([aria-label],:has(svg)) svg:not(:where([data-hx], [data-hx] *)){
 display:block!important;flex:0 0 24px!important;width:24px!important;height:24px!important;
 color:inherit!important;stroke:currentColor!important;stroke-linecap:round;stroke-linejoin:round;
}
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading) button:is([aria-label],:has(svg)):is(:hover,:active):not(:where([data-hx], [data-hx] *)){background:var(--hx-track)!important}
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading) button:is([aria-label],:has(svg))[aria-pressed="true"]:not(:where([data-hx], [data-hx] *)){background:var(--hx-track)!important;border-color:var(--lg-l-ffffff,#fff)!important}
html:root body :is(.ui-dialog-heading,.menu-heading,.picker-heading,.team-section-head,.search-panel-heading,.tool-heading,.service-page-head,.dialog-header,.map-edit-heading) button:is([aria-label],:has(svg)):focus-visible:not(:where([data-hx], [data-hx] *)){outline:3px solid var(--lg-l-78b7ff,#78b7ff)!important;outline-offset:2px!important}
/* The production Menu has an older id-specific bare-icon rule. */


/* Weather places its header actions in a nested wrapper with a legacy bare-icon rule. */
html:root body #weather-panel .weather-heading-actions>button:not(:where([data-hx], [data-hx] *)){
 box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
 flex:0 0 var(--hx-target-icon)!important;width:var(--hx-target-icon)!important;min-width:var(--hx-target-icon)!important;max-width:var(--hx-target-icon)!important;
 height:var(--hx-target-icon)!important;min-height:var(--hx-target-icon)!important;max-height:var(--hx-target-icon)!important;margin:0!important;padding:0!important;
 border:1px solid var(--hx-hairline)!important;border-radius:var(--hx-radius-card)!important;background:var(--hx-card)!important;color:var(--lg-t-ffffff,#fff)!important;box-shadow:none!important;
}
html:root body #weather-panel .weather-heading-actions>button svg{display:block!important;width:24px!important;height:24px!important;flex:0 0 24px!important;color:inherit!important;stroke:currentColor!important}
html:root body #weather-panel .weather-heading-actions>button:is(:hover,:active,[aria-pressed="true"]){background:var(--hx-track)!important}
html:root body #weather-panel .weather-heading-actions>button:focus-visible{outline:3px solid var(--lg-l-78b7ff,#78b7ff)!important;outline-offset:2px!important}
/* Website Search has an id-specific borderless rule. */
html:root body .sidebar .search-panel-heading #close-map-search:not(:where([data-hx], [data-hx] *)){border:1px solid var(--hx-hairline)!important;background:var(--hx-card)!important;border-radius:var(--hx-radius-card)!important;padding:0!important}
html:root body .sidebar .search-panel-heading #close-map-search:is(:hover,:active){background:var(--hx-track)!important}
html:root body .sidebar .search-panel-heading #close-map-search:focus-visible{outline:3px solid var(--lg-l-78b7ff,#78b7ff)!important;outline-offset:2px!important}
/* New panel header actions use this class; legacy selectors above keep older screens aligned. */
html:root body button.ui-header-icon:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 var(--ui-header-icon-size)!important;width:var(--ui-header-icon-size)!important;min-width:var(--ui-header-icon-size)!important;max-width:var(--ui-header-icon-size)!important;height:var(--ui-header-icon-size)!important;min-height:var(--ui-header-icon-size)!important;max-height:var(--ui-header-icon-size)!important;margin:0!important;padding:0!important;border:1px solid var(--ui-header-icon-border)!important;border-radius:var(--ui-header-icon-radius)!important;background:var(--ui-header-icon-fill)!important;color:var(--lg-t-ffffff,#fff)!important;box-shadow:none!important}
html:root body button.ui-header-icon svg:not(:where([data-hx], [data-hx] *)){display:block!important;flex:0 0 24px!important;width:24px!important;height:24px!important;color:inherit!important;stroke:currentColor!important}
html:root body button.ui-header-icon:is(:hover,:active,[aria-pressed="true"]){background:var(--ui-header-icon-active)!important}
html:root body button.ui-header-icon[aria-pressed="true"]{border-color:var(--lg-l-ffffff,#fff)!important}
html:root body button.ui-header-icon:focus-visible:not(:where([data-hx], [data-hx] *)){outline:3px solid var(--lg-l-78b7ff,#78b7ff)!important;outline-offset:2px!important}

/* Text-size choices also compact artwork while leaving safe tap areas intact. */
html:root body button.ui-header-icon svg:not(:where([data-hx], [data-hx] *)){width:clamp(20px,calc(24px * var(--horus-text-scale,1)),24px)!important;height:clamp(20px,calc(24px * var(--horus-text-scale,1)),24px)!important;flex-basis:clamp(20px,calc(24px * var(--horus-text-scale,1)),24px)!important}
html:root body :is(dialog[id],.sidebar,#hx-keep-specificity) .ui-header-icon svg:not(:where([data-hx], [data-hx] *)){width:clamp(20px,calc(24px * var(--horus-text-scale,1)),24px)!important;height:clamp(20px,calc(24px * var(--horus-text-scale,1)),24px)!important;flex-basis:clamp(20px,calc(24px * var(--horus-text-scale,1)),24px)!important}


/* Weather Watch: one content edge, compact hour rows, equal radar frames. */
html:root body #weather-panel .weather-host:not(:where([data-hx], [data-hx] *)){display:block!important;grid-template-columns:none!important;padding:0!important;border:0!important;background:transparent!important}
html:root body #weather-panel .weather-host>h3{margin:0 0 4px;font-size:var(--hx-text-body);line-height:var(--hx-leading-head)}
html:root body #weather-panel .weather-radar-intro:not(:where([data-hx], [data-hx] *)){margin:0 0 10px;color:var(--lg-t-52675c,#52675c);font-size:var(--hx-text-body);line-height:var(--hx-leading-head)}
html:root body #weather-panel .weather-radar-grid:not(:where([data-hx], [data-hx] *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
html:root body #weather-panel .weather-radar-source:not(:where([data-hx], [data-hx] *)){min-width:0;overflow:hidden;border:1px solid var(--lg-l-c8d6c3,#c8d6c3);border-radius:8px;background:var(--lg-b-f5f7f2,#f5f7f2)}
html:root body #weather-panel .weather-radar-source h4:not(:where([data-hx], [data-hx] *)){margin:0;padding:8px 9px;font-size:var(--hx-text-body);line-height:var(--hx-leading-head);font-weight:700}
html:root body #weather-panel .weather-radar-source .weather-host-art:not(:where([data-hx], [data-hx] *)){position:relative;width:100%!important;height:auto!important;aspect-ratio:20/13!important;overflow:hidden;border-radius:0;background:var(--lg-b-e5ebe8,#e5ebe8)}
html:root body #weather-panel .weather-radar-source .weather-host-art img:not(:where([data-hx], [data-hx] *)){position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:cover}
html:root body #weather-panel .weather-radar-source .weather-host-art iframe:not(:where([data-hx], [data-hx] *)){z-index:1;display:block}
html:root body #weather-panel .weather-radar-source .weather-host-art [hidden]{display:none!important}
html:root body #weather-panel .weather-radar-source p:not(:where([data-hx], [data-hx] *)){margin:0;padding:7px 9px;color:var(--lg-t-52675c,#52675c);font-size:var(--hx-text-label);line-height:var(--hx-leading-head)}
html:root body #weather-panel .weather-xweather-state:not(:where([data-hx], [data-hx] *)){position:absolute;left:6px;bottom:6px;z-index:3;max-width:calc(100% - 12px);padding:3px 5px;border-radius:4px;background:#102a25dd;color:var(--lg-t-ffffff,white);font-size:var(--hx-text-label);line-height:var(--hx-leading-head)}
html:root body #weather-panel .weather-xweather-state:empty:not(:where([data-hx], [data-hx] *)){display:none}
html:root body #weather-panel .weather-xweather-load:not(:where([data-hx], [data-hx] *)){display:block;min-height:52px;width:calc(100% - 18px);margin:8px 9px 0;padding:8px;border:1px solid var(--lg-l-62765a,#62765a);border-radius:8px;background:var(--lg-b-e0e5ce,#e0e5ce);color:var(--lg-t-183d39,#183d39);font:600 var(--ui-button-label-size,18px) 'Horus Avenir',Avenir Next,Segoe UI,sans-serif}
html:root body #weather-panel .weather-host-caption:not(:where([data-hx], [data-hx] *)){display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:8px;padding:0;border:0;font-size:var(--hx-text-label)}
html:root body #weather-panel .weather-host-caption .weather-radar-note:not(:where([data-hx], [data-hx] *)){font-size:var(--hx-text-label)}
html:root body #weather-panel .weather-radar-tmd-link:not(:where([data-hx], [data-hx] *)){color:var(--lg-t-234f40,#234f40);font-size:var(--hx-text-body);font-weight:600}
html:root body #weather-panel .weather-host>button.weather-radar-open{width:100%;margin:10px 0 0}
html:root body #weather-panel .weather-checkpoints:not(:where([data-hx], [data-hx] *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
html:root body #weather-panel .weather-hour-tile{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;min-width:0;padding:10px 12px;border:1px solid var(--lg-l-d6dfd5,#d6dfd5);border-radius:var(--hx-radius-card);background:var(--lg-b-f5f7f2,#f5f7f2);color:var(--lg-t-183d39,#183d39);text-align:center}
html:root body #weather-panel .weather-hour-time{font-size:var(--hx-text-body);line-height:var(--hx-leading-head);font-weight:700}
html:root body #weather-panel .weather-hour-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:4px 0 2px;color:var(--lg-t-234f40,#234f40)}
html:root body #weather-panel .weather-hour-icon svg{width:32px;height:32px}
html:root body #weather-panel .weather-hour-condition{font-size:var(--hx-text-body);line-height:var(--hx-leading-head);font-weight:600}
html:root body #weather-panel .weather-hour-rain{margin-top:2px;font-size:var(--hx-text-body);line-height:var(--hx-leading-head);font-weight:500}
html:root body #weather-panel .weather-hour-speeds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;box-sizing:border-box;margin-top:8px;padding-top:7px;border-top:1px solid var(--lg-l-cbd9cc,#cbd9cc);font-size:var(--hx-text-label);line-height:var(--hx-leading-head);font-weight:500}
html:root body #weather-panel .weather-hour-speeds span{min-width:0;overflow-wrap:normal}
html:root body #weather-panel .weather-hour-speeds b{font-weight:600;white-space:nowrap}
@media(max-width:600px){html:root body #weather-panel .weather-radar-grid:not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr}html:root body #weather-panel .weather-workspace:not(:where([data-hx], [data-hx] *)){padding:4px!important}html:root body #weather-panel .weather-workspace>.weather-overview:not(:where([data-hx], [data-hx] *)){margin:0!important;padding:8px!important;border:0!important;border-radius:0!important;background:transparent!important}html:root body #weather-panel .weather-workspace>.weather-more{margin:8px 8px 0!important}}
html:root body .wtg-marker:not(.wtg-dot){min-height:max(20px,calc(25px * var(--horus-text-scale,1)))}
html:root body .wtg-marker:not(.wtg-dot){font-size:max(10px,calc(11px * var(--horus-text-scale,1)))!important}
html:root body .wtg-marker.wtg-dot{width:max(10px,calc(10px * var(--horus-text-scale,1)))!important;height:max(10px,calc(10px * var(--horus-text-scale,1)))!important;min-height:max(10px,calc(10px * var(--horus-text-scale,1)))!important}
html:root body .wtg-marker::after{content:"";position:absolute;inset:-18px}
html:root body .gps-marker,html:root body .gps-marker .gps-arrow{width:calc(32px * var(--horus-text-scale,1))!important;height:calc(40px * var(--horus-text-scale,1))!important}
/* Without a heading, the location dot must stay square at every text size. */
html:root body .gps-marker.heading-unknown{width:calc(32px * var(--horus-text-scale,1))!important;height:calc(32px * var(--horus-text-scale,1))!important;display:grid;place-items:center}
html:root body .gps-marker.heading-unknown .gps-arrow{width:calc(28px * var(--horus-text-scale,1))!important;height:calc(28px * var(--horus-text-scale,1))!important}
html:root body .maplibregl-marker:not(.wtg-marker):not(.gps-marker)>svg{transform:scale(var(--horus-text-scale,1));transform-origin:center bottom}
/* Equal peer-choice rows use the approved button-label tier at every text setting. */
html:root body :is(.operations-tabs,#channel-settings .channel-settings-tabs,#places-dialog .service-tabs){--ui-button-label-size:calc(18px * var(--horus-text-scale,1))}
html:root body :is(.operations-tabs,#channel-settings .channel-settings-tabs,#places-dialog .service-tabs)>button:not(:where([data-hx], [data-hx] *)){font-size:var(--ui-button-label-size)!important;font-weight:600!important;line-height:var(--hx-leading-tight)!important;min-height:52px!important}
html:root body .team-ui .team-name{font-weight:600!important}
/* Weather Watch follows the compact Menu and Workers title tier. */
html:root body dialog#weather-panel > .menu-heading h2:not(:where([data-hx], [data-hx] *)){font-size:var(--hx-text-body)!important}
/* Hourly source data gets one tile per actual forecast period, not repeated 15-minute claims. */
@media(max-width:520px){html:root body #weather-panel .weather-checkpoints:not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr!important}}
/* Keep the mobile Weather Watch header flush and avoid stacking shell/content insets. */
@media(max-width:760px){html:root body dialog#weather-panel:has(>.menu-heading):not(:where([data-hx], [data-hx] *)){padding:0!important}html:root body dialog#weather-panel>.menu-heading:not(:where([data-hx], [data-hx] *)){margin:0!important;top:0!important}}
/* Radar sources are peer choices even when one is an external link. */
html:root body .weather-radar-choice .radar-source-choice:not(:disabled){background:var(--lg-b-e0e5ce,#e0e5ce)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;box-shadow:none!important}
html:root body .weather-radar-choice .radar-source-choice:disabled{background:var(--lg-b-eef0ec,#eef0ec)!important;color:var(--lg-t-596962,#596962)!important;border:2px solid var(--lg-l-c8d6c3,#c8d6c3)!important}
html:root body .weather-radar-choice .weather-radar-cancel{background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-688377,#688377)!important;min-height:52px!important}
html:root body dialog#navigation-error#navigation-error .navigation-error-body button.ui-action--primary:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-e0e5ce,#e0e5ce)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important}
html:root body dialog#navigation-error#navigation-error .navigation-error-body button.ui-action--quiet:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-688377,#688377)!important}
html:root body.driving dialog.drive-report-photo-dialog{padding:0!important;border:1px solid var(--lg-l-688377,#688377)!important;overflow:hidden!important}
html:root body.driving dialog.drive-report-photo-dialog>.ui-dialog-heading{margin:0!important;top:0!important}
html:root body.driving dialog.drive-report-photo-dialog>.drive-report-photo-body{padding:12px!important;overflow:auto!important}
html:root body dialog#guide#guide:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0!important;overflow:hidden!important;background:var(--lg-b-fffdf6,#fffdf6)!important;border:1px solid var(--lg-l-688377,#688377)!important}
html:root body dialog#guide#guide[open]:not(:where([data-hx], [data-hx] *)){display:flex;flex-direction:column}
html:root body dialog#guide#guide>.ui-dialog-heading:not(:where([data-hx], [data-hx] *)){flex:none;margin:0!important;top:0!important}
html:root body dialog#guide#guide>.guide-body:not(:where([data-hx], [data-hx] *)){min-height:0;overflow-y:auto;padding:12px 16px 16px;font-size:var(--hx-text-body);line-height:var(--hx-leading-body);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
html:root body dialog#guide#guide>.guide-body h3:not(:where([data-hx], [data-hx] *)){font-size:1em;line-height:var(--hx-leading-head);margin:16px 0 8px}
html:root body dialog#guide#guide>.guide-body h3:first-child:not(:where([data-hx], [data-hx] *)){margin-top:0}
html:root body dialog#guide#guide>.guide-body :is(p,li):not(:where([data-hx], [data-hx] *)){font-size:inherit;line-height:var(--hx-leading-body)}

/* Weather Watch reading order: current summary, peer radars, forecast, actions, stop check, lightning, longer outlook. */
html:root body #weather-panel .weather-near-term>.weather-now-next:not(:where([data-hx], [data-hx] *)){margin-bottom:16px}
html:root body #weather-panel .weather-host>h3{margin:0 0 10px}
html:root body #weather-panel .weather-radar-grid:not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr}
html:root body #weather-panel .weather-radar-source h4:not(:where([data-hx], [data-hx] *)){font-size:var(--hx-text-body)}
html:root body #weather-panel .weather-radar-source+.weather-radar-source:not(:where([data-hx], [data-hx] *)){margin-top:2px}
html:root body #weather-panel .weather-xweather-load[hidden]{display:none!important}
html:root body #weather-panel .weather-other-radar:not(:where([data-hx], [data-hx] *)){margin:10px 0 0;border:1px solid var(--lg-l-c8d6c3,#c8d6c3);border-radius:var(--hx-radius-card);background:var(--lg-b-f5f7f2,#f5f7f2)}
html:root body #weather-panel .weather-other-radar>summary:not(:where([data-hx], [data-hx] *)){display:flex;align-items:center;min-height:52px;padding:8px 12px;color:var(--lg-t-183d39,#183d39);font:600 var(--ui-button-label-size,18px) 'Horus Avenir',Avenir Next,Segoe UI,sans-serif;cursor:pointer}
html:root body #weather-panel .weather-other-radar>summary:after{content:'⌄';margin-left:auto;font-size:var(--hx-text-title)}
html:root body #weather-panel .weather-other-radar[open]>summary:after{transform:rotate(180deg)}
html:root body #weather-panel .weather-other-radar>a:not(:where([data-hx], [data-hx] *)){display:flex;align-items:center;min-height:52px;margin:0 10px 8px;padding:8px 12px;border:1px solid var(--lg-l-62765a,#62765a);border-radius:8px;background:var(--lg-b-e0e5ce,#e0e5ce);text-decoration:none;font:600 var(--ui-button-label-size,18px) 'Horus Avenir',Avenir Next,Segoe UI,sans-serif}
html:root body #weather-panel .weather-other-radar>p:not(:where([data-hx], [data-hx] *)){margin:0 10px 10px;padding:0;color:var(--lg-t-52675c,#52675c);font-size:var(--hx-text-label)}
html:root body #weather-panel .weather-later-checkpoints,html:root body #weather-panel .weather-12hour-grid:not(:where([data-hx], [data-hx] *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
html:root body #weather-panel .weather-next-later-heading{margin:16px 0 8px}
html:root body #weather-panel #weather-forecast-view:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;width:100%;margin:16px 0 0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}
html:root body #weather-panel #weather-forecast-view :is(.weather-12hour-details,.weather-outlook)>summary:not(:where([data-hx], [data-hx] *)){display:flex;align-items:center;justify-content:space-between;min-height:44px;margin:0;padding:0;color:var(--lg-t-183d39,#183d39);font-size:var(--hx-text-body);font-weight:700;line-height:var(--hx-leading-head);cursor:pointer;list-style:none}
html:root body #weather-panel #weather-forecast-view :is(.weather-12hour-details,.weather-outlook)>summary:not(:where([data-hx], [data-hx] *))::-webkit-details-marker{display:none}
html:root body #weather-panel #weather-forecast-view :is(.weather-12hour-details,.weather-outlook)>summary:not(:where([data-hx], [data-hx] *))::after{content:'⌄';font-size:var(--hx-text-title);font-weight:500;line-height:1;transition:transform .15s ease}
html:root body #weather-panel #weather-forecast-view :is(.weather-12hour-details,.weather-outlook)[open]>summary:not(:where([data-hx], [data-hx] *))::after{transform:rotate(180deg)}
html:root body #weather-panel .weather-12hour-note{margin:0 0 10px;color:var(--lg-t-52675c,#52675c);font-size:var(--hx-text-label);line-height:var(--hx-leading-head)}
html:root body #weather-panel .weather-12hour-grid .weather-hour-rain{font-size:var(--hx-text-label)}
@media(max-width:520px){html:root body #weather-panel .weather-later-checkpoints,html:root body #weather-panel .weather-12hour-grid:not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr}}

html:root body #weather-panel .weather-lightning-action{margin:10px 0 0}
html:root body #weather-panel .weather-lightning-action .weather-check-lightning{margin:0}

/* The sticky title stays above radar badges and embedded maps while the panel scrolls. */
html:root body dialog#weather-panel>.menu-heading:not(:where([data-hx], [data-hx] *)){z-index:10!important}

/* The forecast disclosure is body content, not a forest card header. */
html:root body #weather-panel #weather-forecast-view :is(.weather-12hour-details,.weather-outlook)>summary:not(:where([data-hx], [data-hx] *)){background:transparent!important;color:var(--lg-t-183d39,#183d39)!important;padding:0!important;border:0!important}
/* Keep the Now icon beside its reading when wind and gust wrap at large text size. */
html:root body #weather-panel .weather-summary-table td{position:relative;padding-left:46px}
html:root body #weather-panel .weather-summary-table td>.weather-reading-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);margin:0}
html:root body #weather-panel .weather-summary-table .weather-summary-speeds{display:inline-flex;flex-wrap:wrap;gap:2px 10px;vertical-align:middle}

/* Keep the icon, condition, separator and temperature together on forecast tiles. */
html:root body #weather-panel .weather-hour-condition-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 6px;min-width:0;margin-top:4px}
html:root body #weather-panel .weather-hour-temp{font-size:var(--hx-text-body);line-height:var(--hx-leading-head);font-weight:600;white-space:nowrap}
html:root body #weather-panel .weather-hour-condition-row .weather-hour-icon{flex:none;margin:0;width:28px;height:28px}
html:root body #weather-panel .weather-hour-condition-row .weather-hour-icon svg{width:28px;height:28px}

/* The Now icon sits next to its condition, without the wind row's icon gutter. */
html:root body #weather-panel .weather-summary-table td.weather-current-condition{padding:8px 12px}
html:root body #weather-panel .weather-summary-condition{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;min-width:0}
html:root body #weather-panel .weather-summary-temperature{font-weight:500!important;white-space:nowrap}
html:root body #weather-panel .weather-summary-condition>.weather-reading-icon{position:static;transform:none;margin:0;flex:none;width:24px;height:24px}
html:root body #weather-panel .weather-summary-condition>.weather-reading-icon svg{width:24px;height:24px}
html:root body #weather-panel .weather-summary-temperature::before,html:root body #weather-panel .weather-hour-temp::before{content:'•';display:inline-block;margin-right:6px;font-weight:500}

/* Preserve the existing low/caution/high wind colours on every forecast value. */
html:root body #weather-panel :is(.weather-summary-speeds,.weather-hour-speeds) .wind-badge{display:inline-block;min-width:0;padding:2px 5px;border-radius:6px;line-height:var(--hx-leading-tight);white-space:nowrap;font-weight:600}

/* Only the extra readings stay behind a compact disclosure. */
html:root body #weather-panel .weather-details:not(:where([data-hx], [data-hx] *)){margin:10px 0;padding:0 12px;border:1px solid var(--lg-l-c8d6c3,#c8d6c3);border-radius:12px;background:var(--lg-b-f7f9f4,#f7f9f4)}
html:root body #weather-panel .weather-details>summary:not(:where([data-hx], [data-hx] *)){display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0!important;background:transparent!important;border:0!important;color:var(--lg-t-183d39,#183d39)!important;font-size:var(--hx-text-body);font-weight:600;cursor:pointer;list-style:none}
html:root body #weather-panel .weather-details>summary:not(:where([data-hx], [data-hx] *))::-webkit-details-marker{display:none}
html:root body #weather-panel .weather-details>summary:not(:where([data-hx], [data-hx] *))::after{content:'⌄';font-size:var(--hx-text-title);font-weight:500;line-height:1}
html:root body #weather-panel .weather-details[open]>summary:not(:where([data-hx], [data-hx] *))::after{transform:rotate(180deg)}
html:root body #weather-panel .weather-details .weather-content:not(:where([data-hx], [data-hx] *)){padding:0 0 8px!important;background:transparent!important}
html:root body #weather-panel .weather-detail-values{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0;font-size:var(--hx-text-label);font-weight:500;line-height:var(--hx-leading-body)}
html:root body #weather-panel .weather-detail-item{white-space:nowrap}
html:root body #weather-panel .weather-detail-item strong{font-weight:600}
html:root body #weather-panel .weather-details .weather-footnote:not(:where([data-hx], [data-hx] *)){margin:0 0 10px}
html:root body #weather-panel #weather-lightning-view[hidden]{display:none!important}
html:root body #weather-panel .weather-check-lightning[hidden]{display:none!important}
html:root body #weather-panel .weather-details .wind-key .wind-low:not(:where([data-hx], [data-hx] *))::before{background:var(--lg-b-237342,#237342)!important}

/* Each comparison image is a full-size, keyboard-accessible enlarge target. */
html:root body #weather-panel .weather-host-art:not(:where([data-hx], [data-hx] *)){cursor:zoom-in}
html:root body #weather-panel .weather-host-art .weather-radar-enlarge:not(:where([data-hx], [data-hx] *)){position:absolute;top:8px;right:8px;bottom:auto;left:auto;z-index:6;display:flex;align-items:center;justify-content:center;width:auto;min-width:72px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:6px;background:#183d39e8!important;box-shadow:none!important;cursor:zoom-in}
html:root body #weather-panel .weather-host-art .weather-radar-enlarge span:not(:where([data-hx], [data-hx] *)){display:block;padding:5px 8px;color:var(--lg-t-ffffff,#fff);font-size:var(--hx-text-label);font-weight:600;line-height:var(--hx-leading-tight)}
html:root body #weather-panel .weather-host-art .weather-radar-enlarge:focus-visible{outline:3px solid var(--lg-l-c98b20,#c98b20);outline-offset:-3px}
/* Windy's own radar time and timeline remain visible inside the compact map. */
html:root body #weather-panel .weather-radar-source .weather-host-art .weather-radar-embed:not(:where([data-hx], [data-hx] *)){top:0!important;height:100%!important}
html:root body #weather-panel .weather-radar-source:first-child .weather-radar-target-label:not(:where([data-hx], [data-hx] *)){top:calc(50% - 46px)}

/* The enlarged radar shares the flush Weather Watch shell and gives the map the remaining space. */
html:root body dialog.weather-radar-dialog:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;width:min(960px,calc(100% - 8px));max-width:calc(100% - 8px);margin:auto!important;height:calc(100dvh - 8px);max-height:calc(100dvh - 8px);padding:0!important;overflow:hidden!important;border:1px solid var(--lg-l-688377,#688377);border-radius:12px}
html:root body dialog.weather-radar-dialog[open]:not(:where([data-hx], [data-hx] *)){display:flex;flex-direction:column}
html:root body dialog.weather-radar-dialog>.weather-radar-heading:not(:where([data-hx], [data-hx] *)){position:relative;top:0;flex:none;box-sizing:border-box;width:100%;min-height:60px;margin:0!important;padding:8px 12px;border:0;border-radius:11px 11px 0 0;background:var(--lg-b-234f40,#234f40)!important;color:var(--lg-t-ffffff,#fff)!important}
html:root body dialog.weather-radar-dialog>.weather-radar-heading h2:not(:where([data-hx], [data-hx] *)){margin:0!important;color:var(--lg-t-ffffff,#fff)!important;font-size:var(--hx-text-body)!important;font-weight:700!important;line-height:var(--hx-leading-tight)!important}
html:root body dialog.weather-radar-dialog>.weather-radar-body:not(:where([data-hx], [data-hx] *)){display:flex;flex:1;min-height:0;flex-direction:column;padding:0!important;overflow:hidden}
html:root body dialog.weather-radar-dialog .weather-radar-location:not(:where([data-hx], [data-hx] *)){flex:none;box-sizing:border-box;min-height:44px;margin:0!important;padding:10px 12px;background:var(--lg-b-fffdf6,#fffdf6);color:var(--lg-t-183d39,#183d39);font-size:var(--hx-text-body);font-weight:600;line-height:var(--hx-leading-head)}
html:root body dialog.weather-radar-dialog .weather-radar-large:not(:where([data-hx], [data-hx] *)){position:relative;flex:1;min-height:0;width:100%;margin:0!important;border-radius:0 0 11px 11px;background:var(--lg-b-e5ebe8,#e5ebe8)}
html:root body dialog.weather-radar-dialog .weather-radar-large :is(iframe,img):not(:where([data-hx], [data-hx] *)){position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
html:root body dialog.weather-radar-dialog.is-windy .weather-radar-large :is(.weather-radar-target,.weather-radar-target-label,.weather-radar-source){display:none!important}
html:root body dialog.weather-radar-dialog .weather-radar-source:not(:where([data-hx], [data-hx] *)){position:absolute;top:8px;left:8px;z-index:6;padding:4px 7px;border-radius:6px;background:#fffdf6e8;color:var(--lg-t-183d39,#183d39);font-size:var(--hx-text-meta);font-weight:600;line-height:var(--hx-leading-tight)}
/* Weather Watch owns one content inset; shared dialog padding must not add a second shell. */
html:root body dialog#weather-panel:has(>.menu-heading):not(:where([data-hx], [data-hx] *)){padding:0!important}
html:root body dialog#weather-panel>.menu-heading:not(:where([data-hx], [data-hx] *)){margin:0!important;top:0!important;border-radius:0!important}
@media(max-width:600px){html:root body dialog#weather-panel:has(.weather-location-step):not(:where([data-hx], [data-hx] *)){width:calc(100% - 8px)!important;max-width:calc(100% - 8px)!important}}
html:root body #weather-panel .weather-update-row:not(:where([data-hx], [data-hx] *)){background:transparent!important;color:var(--lg-t-183d39,#183d39)!important;margin:0 0 10px!important;border-radius:0;padding:0!important}
html:root body #weather-panel .weather-update-row .weather-location{color:var(--lg-t-183d39,#183d39)!important}
html:root body #weather-panel .weather-update-row [role=status]{color:var(--lg-t-52675c,#52675c)!important}
/* Current-source weather dialogs share the flush compact shell and action roles. */
html:root body dialog:is(.weather-report-dialog,.weather-warning-detail):not(:where([data-hx], [data-hx] *)){padding:0!important}
html:root body dialog:is(.weather-report-dialog,.weather-warning-detail)>.weather-dialog-heading{margin:0!important;top:0!important;min-height:60px;box-sizing:border-box}
html:root body .weather-report-dialog form p:empty{display:none}
html:root body #weather-report#weather-report button[type=submit]{background:var(--lg-pb-234f40,#234f40)!important;color:var(--lg-pt-ffffff,#fff)!important;border-color:var(--lg-pb-234f40,#234f40)!important}
html:root body #weather-report#weather-report .weather-report-cancel:not(:where([data-hx], [data-hx] *)){background:transparent!important;color:var(--lg-t-183d39,#183d39)!important;border-color:var(--lg-l-688377,#688377)!important}
/* The WTG picker must fit its long list inside a short phone viewport. */
html:root body #weather-wtg-picker#weather-wtg-picker:not(:where([data-hx], [data-hx] *)){padding:0!important;max-height:calc(100dvh - 24px);overflow:hidden!important}
html:root body #weather-wtg-picker[open]:not(:where([data-hx], [data-hx] *)){display:flex;flex-direction:column}
html:root body #weather-wtg-picker>.picker-heading:not(:where([data-hx], [data-hx] *)){flex:none;min-height:60px;box-sizing:border-box;margin:0!important;padding:8px 12px!important}
html:root body #weather-wtg-picker h3:not(:where([data-hx], [data-hx] *)){font-size:var(--hx-text-body)!important;font-weight:700;line-height:var(--hx-leading-tight)}
html:root body #weather-wtg-picker>label:not(:where([data-hx], [data-hx] *)){margin:12px 12px 0;flex:none}
html:root body #weather-wtg-picker>:is(select,input):not(:where([data-hx], [data-hx] *)){flex:none;width:calc(100% - 24px);margin-inline:12px}
html:root body #weather-wtg-picker .picker-list:not(:where([data-hx], [data-hx] *)){flex:1;min-height:0;max-height:none;overflow:auto;align-content:start;margin:0 12px 12px}
html:root body #weather-wtg-picker .picker-list button:not(:where([data-hx], [data-hx] *)){min-height:52px}
/* Enlarge overlays retain a readable dark fill after shared button rules. */
html:root body #weather-panel#weather-panel .weather-host-art button.weather-radar-enlarge:not(:where([data-hx], [data-hx] *)){background:#183d39e8!important;color:var(--lg-t-ffffff,#fff)!important;border:0!important}
/* Shared Weather overview: one scroll region and the compact Menu/Workers title tier. */
html:root body #weather-overview-panel#weather-overview-panel:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;width:min(760px,calc(100vw - 8px))!important;max-width:calc(100vw - 8px)!important;max-height:calc(100dvh - 24px)!important;padding:0!important;overflow:hidden!important;border:1px solid var(--lg-l-688377,#688377);border-radius:12px;background:var(--lg-b-fffdf6,#fffdf6);color:var(--lg-t-183d39,#183d39)}
html:root body #weather-overview-panel[open]:not(:where([data-hx], [data-hx] *)){display:flex;flex-direction:column}
#weather-overview-panel>.weather-overview-heading:not(:where([data-hx], [data-hx] *)){margin:0!important;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;box-sizing:border-box;padding:8px 12px;background:var(--lg-b-234f40,#234f40);color:var(--lg-t-ffffff,#fff)}
html:root body #weather-overview-panel#weather-overview-panel h2:not(:where([data-hx], [data-hx] *)){margin:0!important;font-size:var(--hx-text-body)!important;font-weight:700;line-height:var(--hx-leading-tight);color:var(--lg-t-ffffff,#fff)}
#weather-overview-panel .weather-overview-heading>div:not(:where([data-hx], [data-hx] *)){display:flex;gap:12px}
html:root body #weather-overview-panel#weather-overview-panel .weather-overview-heading button:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;flex:0 0 var(--hx-target-icon);width:var(--hx-target-icon);height:var(--hx-target-icon);min-height:var(--hx-target-icon);padding:0;margin:0;background:var(--hx-card)!important;border:1px solid var(--hx-hairline)!important;border-radius:var(--hx-radius-card);color:var(--lg-t-ffffff,#fff)!important;display:flex;align-items:center;justify-content:center}
#weather-overview-panel .weather-overview-heading svg{width:24px;height:24px;display:block}
#weather-overview-panel .weather-overview-body:not(:where([data-hx], [data-hx] *)){min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px}
#weather-overview-panel .weather-overview-body>p:not(:where([data-hx], [data-hx] *)){margin:0 0 12px;font-size:var(--hx-text-body);font-weight:500;line-height:var(--hx-leading-head)}
#weather-overview-panel .farm-weather-grid:not(:where([data-hx], [data-hx] *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#weather-overview-panel .farm-weather-card:not(:where([data-hx], [data-hx] *)){min-width:0;border:1px solid var(--lg-l-c8d6c3,#c8d6c3);border-radius:var(--hx-radius-card);background:var(--lg-b-f4f7f0,#f4f7f0);overflow:hidden}
html:root body #weather-overview-panel .farm-weather-card h3:not(:where([data-hx], [data-hx] *)){margin:0;padding:10px 12px;font-size:var(--hx-text-body);font-weight:700;background:var(--lg-b-e0e5ce,#e0e5ce);line-height:var(--hx-leading-head)}
#weather-overview-panel .farm-weather-content:not(:where([data-hx], [data-hx] *)){padding:12px;font-size:var(--hx-text-body);font-weight:500;line-height:var(--hx-leading-head)}
#weather-overview-panel .farm-weather-content p:not(:where([data-hx], [data-hx] *)){margin:0 0 4px;font-size:inherit;overflow-wrap:anywhere}
#weather-overview-panel .farm-weather-now{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:600}
#weather-overview-panel .farm-weather-now svg{width:24px;height:24px;display:block}
#weather-overview-panel .farm-weather-content h4{margin:12px 0 4px;font-size:inherit;font-weight:700}
#weather-overview-panel .farm-weather-content .farm-weather-age:not(:where([data-hx], [data-hx] *)){margin-top:8px;font-size:var(--hx-text-label);color:var(--lg-t-52675c,#52675c)}
#weather-overview-panel .farm-weather-content .farm-weather-warning:not(:where([data-hx], [data-hx] *)){margin-top:12px;padding-top:8px;border-top:1px solid var(--lg-l-c8d6c3,#c8d6c3);font-weight:600}
#weather-overview-panel .farm-weather-warning[data-severity=stop]{color:var(--lg-t-9d302b,#9d302b)}
#weather-overview-panel .farm-weather-warning[data-severity=prepare]{color:var(--lg-t-8c4b13,#8c4b13)}
#weather-overview-panel .farm-weather-actions:not(:where([data-hx], [data-hx] *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
#weather-overview-panel .farm-weather-actions:has(>button:only-child):not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr}
html:root body #weather-overview-panel#weather-overview-panel .farm-weather-actions button:not(:where([data-hx], [data-hx] *)){min-width:0;min-height:52px;font-size:var(--ui-button-label-size,calc(18px * var(--horus-text-scale,.94)))!important;font-weight:600;line-height:var(--hx-leading-body);white-space:normal;padding:8px}
html:root body #weather-panel .weather-all-farms:not(:where([data-hx], [data-hx] *)){display:block;width:calc(100% - 24px);margin:12px;min-height:52px}
html:root body .weather-warning-detail .weather-detail-retry[hidden]{display:none!important}
@media(max-width:600px){#weather-overview-panel .farm-weather-grid:not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr}}
@media(max-width:350px){#weather-overview-panel .farm-weather-actions:not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr}}

#weather-overview-panel .farm-weather-content .farm-weather-next{display:flex;flex-direction:column;gap:2px;margin:0;padding:8px 0;border-bottom:1px solid var(--lg-l-dce4d8,#dce4d8)}

/* Shared outdoor status/fact grouping. Opt-in: preserve existing compact cards. */
.ui-status-card{display:grid;gap:16px;font-size:var(--hx-text-body);line-height:var(--hx-leading-body)}
.ui-status-card[hidden]{display:none!important}
.ui-status-panel,.ui-fact-panel{box-sizing:border-box;padding:16px;border:1px solid var(--lg-l-d8ded9,#d8ded9);border-radius:var(--hx-radius-card)}
.ui-status-panel{display:flex;align-items:center;gap:12px}
.ui-status-panel--amber{background:var(--lg-b-fff0d4,#fff0d4);color:var(--lg-t-674719,#674719);border-color:var(--lg-l-d4bd91,#d4bd91);border-left:5px solid var(--lg-l-a66b16,#a66b16)}
.ui-status-icon{width:28px;height:28px;flex:none}
.ui-fact-panel{display:grid;gap:8px;background:var(--lg-b-eef2ea,#eef2ea);color:var(--lg-t-183d39,#183d39)}
.ui-status-card .ui-status-panel>strong{margin:0;font-size:var(--hx-text-title);font-weight:700;line-height:var(--hx-leading-body)}
.ui-status-card .ui-fact-panel>p{margin:0;font-size:inherit;font-weight:500;line-height:inherit}
.ui-status-card .ui-fact-panel>.ui-fact-title{font-weight:600}
.ui-status-card .ui-fact-panel>.ui-reference{font-size:var(--hx-text-body);color:var(--lg-t-52675c,#52675c);font-weight:500}
html:root body .weather-warning-detail[data-expired="true"] .weather-dialog-body{padding:16px}
html:root body .weather-warning-detail[data-expired="true"] .weather-dialog-body>[hidden]{display:none!important}
html:root body .weather-warning-detail[data-expired="true"] .weather-warning-detail-actions{margin:16px 0 0;display:flex}
html:root body #weather-warning-detail#weather-warning-detail[data-expired="true"] .weather-detail-open{width:100%;background:var(--lg-b-e0e5ce,#e0e5ce)!important;color:var(--lg-t-183d39,#183d39)!important;border-color:var(--lg-l-62765a,#62765a)!important}
/* Related state/recovery surfaces opt into the same grouping without changing their actions. */
html:root body p.ui-feedback:not(:where([data-hx], [data-hx] *)),html:root body div.ui-feedback{padding:16px;border:1px solid var(--lg-l-d8ded9,#d8ded9);border-radius:var(--hx-radius-card);background:var(--lg-b-eef2ea,#eef2ea);color:var(--lg-t-183d39,#183d39);font-size:var(--hx-text-body);line-height:var(--hx-leading-body);font-weight:500;overflow-wrap:anywhere}
html:root body .ui-feedback.ui-feedback--warning{background:var(--lg-b-fff0d4,#fff0d4);color:var(--lg-t-674719,#674719);border-color:var(--lg-l-d4bd91,#d4bd91);border-left:5px solid var(--lg-l-a66b16,#a66b16)}
html:root body .ui-feedback:empty,html:root body .ui-feedback[hidden]{display:none!important}
html:root body .weather-warning-detail .weather-dialog-body:not(:where([data-hx], [data-hx] *)){display:flex;flex-direction:column;gap:16px;padding:16px}
html:root body .weather-warning-detail .weather-dialog-body [hidden]{display:none!important}
html:root body .weather-warning-detail .weather-current-status{flex-direction:column;align-items:flex-start;gap:8px}
html:root body .weather-warning-detail .weather-current-status[data-severity=stop]{background:var(--lg-b-fff0ed,#fff0ed);color:var(--lg-t-8b2518,#8b2518);border-color:var(--lg-l-9d302b,#9d302b);border-left-color:var(--lg-l-9d302b,#9d302b)}
html:root body .weather-warning-detail .weather-current-status[data-severity=inactive]{background:var(--lg-b-eef2ea,#eef2ea);color:var(--lg-t-183d39,#183d39);border-color:var(--lg-l-d8ded9,#d8ded9);border-left-color:var(--lg-l-688377,#688377)}
html:root body .weather-warning-detail .weather-current-status :is(strong,p){margin:0;line-height:var(--hx-leading-body);font-size:var(--hx-text-body)}
html:root body .weather-warning-detail .weather-current-status strong{font-weight:700}
html:root body .weather-warning-detail .weather-current-facts p{margin:0;font-size:var(--hx-text-body);line-height:var(--hx-leading-body);color:var(--lg-t-183d39,#183d39)}
html:root body .weather-warning-detail .weather-current-facts:not(:has(p:not(:empty))){display:none}
html:root body .weather-warning-detail .weather-warning-detail-actions:not(:where([data-hx], [data-hx] *)){margin:0}
html:root body .weather-warning-detail[data-expired=true] .weather-warning-detail-actions{margin:0}
html:root body #navigation-error .navigation-error-body:not(:where([data-hx], [data-hx] *)){display:flex;flex-direction:column;gap:16px;padding:16px}
html:root body #navigation-error .navigation-error-body :is(strong,p){margin:0;font-size:var(--hx-text-body);line-height:var(--hx-leading-body)}
html:root body #handover .handover-intro p{margin:0;font-size:var(--hx-text-body);line-height:var(--hx-leading-body)}
html:root body #handover .handover-intro{margin-bottom:16px}
html:root body #weather-overview-panel .farm-weather-content .ui-feedback{margin:0 0 12px}

html:root body .weather-warning-detail .weather-current-facts p:empty{display:none}
html:root body .navigation-recovery .ui-status-panel p,html:root body .navigation-recovery .ui-fact-panel p{margin:0;line-height:var(--hx-leading-body)}

/* Shared peer typography: one scale for the reviewed card headers and warning leads. */
html:root body :is(#weather-warning-detail,#weather-report,#weather-overview-panel,#navigation-error,#handover,.navigation-recovery,.campaign-dialog,#places-dialog) :is(.ui-dialog-heading,.weather-dialog-heading,.tool-heading) :is(h1,h2,h3):not(:where([data-hx], [data-hx] *)){font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif!important;font-size:var(--hx-text-display)!important;font-weight:700!important;line-height:var(--hx-leading-tight)!important;letter-spacing:normal!important;text-transform:none!important}
html:root body .ui-status-card .ui-status-panel>strong{font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif;font-size:var(--hx-text-body);font-weight:700;line-height:var(--hx-leading-body)}
html:root body .ui-status-panel>p,html:root body .ui-feedback.ui-feedback--warning{font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif;font-size:var(--hx-text-body);font-weight:700;line-height:var(--hx-leading-body)}
html body #places-dialog #place-editor #place-save-status.ui-feedback--warning:not([hidden]){font-weight:700}

/* Reviewed card footers share roles and geometry, irrespective of element type. */
html:root body :is(.weather-warning-detail-actions,#weather-report .actions,.navigation-recovery-actions,.campaign-actions:not(.campaign-management):not(.campaign-picker-bulk),.place-editor-actions):not(:where([data-hx], [data-hx] *)){display:flex!important;flex-direction:column!important;gap:12px!important;align-items:stretch!important;grid-template-columns:none!important}
html:root body :is(.weather-warning-detail-actions,#weather-report .actions,.navigation-recovery-actions,.campaign-actions,.place-editor-actions,#navigation-error .navigation-error-body)>:is(button,a):not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;width:100%!important;min-height:52px!important;flex:none!important;padding:12px 16px!important;border-radius:var(--hx-radius-card)!important;font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif!important;font-size:var(--hx-text-body)!important;font-weight:600!important;line-height:var(--hx-leading-body)!important;text-align:center!important;white-space:normal!important}
html:root body :is(#weather-warning-detail,#weather-report,#navigation-error,.navigation-recovery,.campaign-dialog,#places-dialog) .ui-action--primary:not(:where([data-hx], [data-hx] *)){order:0!important;background:var(--lg-b-e0e5ce,#e0e5ce)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important}
html:root body :is(#weather-report,#navigation-error,.navigation-recovery,.campaign-dialog,#places-dialog) .ui-action--quiet:not(:where([data-hx], [data-hx] *)){order:2!important;background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:2px solid var(--lg-l-c8d6c3,#c8d6c3)!important}
html:root body .navigation-recovery .ui-action--standard{order:1!important;background:var(--lg-b-e0e5ce,#e0e5ce)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important}
html:root body #weather-warning-detail#weather-warning-detail .weather-detail-open:not(:where([data-hx], [data-hx] *)),html:root body #weather-report#weather-report .actions .ui-action--primary,html:root body #places-dialog#places-dialog #place-editor .ui-action--primary:not(:where([data-hx], [data-hx] *)),html:root body .campaign-dialog.campaign-dialog .campaign-actions .ui-action--primary{background:var(--lg-b-e0e5ce,#e0e5ce)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important}
html:root body #places-dialog#places-dialog #place-cancel:not(:where([data-hx], [data-hx] *)),html:root body #weather-report#weather-report .weather-report-cancel:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:2px solid var(--lg-l-c8d6c3,#c8d6c3)!important}
html:root body .campaign-dialog.campaign-dialog .campaign-actions .ui-action--quiet{background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:2px solid var(--lg-l-c8d6c3,#c8d6c3)!important}
html:root body #handover .handover-body>.ui-action--quiet{width:100%;min-height:52px;border-radius:var(--hx-radius-card);background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:2px solid var(--lg-l-c8d6c3,#c8d6c3)!important;font-size:var(--hx-text-body)!important;font-weight:600!important}
.ui-action--primary{--ui-action-bg:#e0e5ce;--ui-action-ink:#183d39;--ui-action-border:#62765a;--ui-action-border-width:1px}
.ui-action--quiet{--ui-action-bg:#fffdf6;--ui-action-ink:#183d39;--ui-action-border:#c8d6c3;--ui-action-border-width:1px}
.ui-action--standard{--ui-action-bg:#e0e5ce;--ui-action-ink:#183d39;--ui-action-border:#62765a;--ui-action-border-width:1px}
.navigation-recovery-actions{--ui-button-label-size:calc(18px * var(--horus-text-scale,.94))}
/* Separate facts inside a content group without splitting wrapped text. */
html:root body .ui-fact-panel>p:not(:empty):not([hidden])~p:not(:empty):not([hidden]){border-top:1px solid var(--lg-l-d8ded9,#d8ded9);padding-top:8px!important}
/* The last hourly row already separates the warning section. */
#weather-overview-panel .farm-weather-content .farm-weather-next+.farm-weather-warning{border-top:0;margin-top:0;padding-top:8px}
/* Inner frames: equal padding; severity accent must not change content geometry. */
html:root body .ui-status-panel,html:root body .ui-fact-panel,html:root body p.ui-feedback:not(:where([data-hx], [data-hx] *)),html:root body div.ui-feedback{padding:16px!important;border-width:1px!important;border-radius:var(--hx-radius-card);box-sizing:border-box}
html:root body .ui-status-panel--amber,html:root body .ui-feedback--warning{border-left-width:1px!important;box-shadow:inset 4px 0 var(--lg-l-a66b16,#a66b16)}
html:root body .weather-current-status[data-severity=stop]{box-shadow:inset 4px 0 var(--lg-l-9d302b,#9d302b)}
html:root body .weather-current-status[data-severity=inactive]{box-shadow:inset 4px 0 var(--lg-l-688377,#688377)}
html:root body #places-dialog #place-editor #place-save-status.ui-feedback--warning:not([hidden]){border-left-width:1px!important;box-shadow:inset 4px 0 var(--lg-l-a66b16,#a66b16)}
/* One outer content inset; remove legacy shell + body double padding. */
html:root body :is(#navigation-error,#handover):not(:where([data-hx], [data-hx] *)){padding:0!important}
html:root body :is(#navigation-error,#handover)>.ui-dialog-heading{margin:0!important;width:auto!important}
html:root body #navigation-error .navigation-error-body:not(:where([data-hx], [data-hx] *)),html:root body #handover .handover-body{padding:16px!important}
html:root body dialog.campaign-dialog>.tool-body.campaign-content{padding:16px!important}
html:root body #places-dialog #place-editor:not(:where([data-hx], [data-hx] *)){padding-left:4px!important;padding-right:4px!important;box-sizing:border-box}
/* Geometry remains fixed when the legacy text-size helper scales shorthand padding. */
html:root body :is(.ui-status-panel,.ui-fact-panel,p.ui-feedback,div.ui-feedback):not(:where([data-hx], [data-hx] *)){padding:calc(16px + 0px)!important}
html:root body dialog.campaign-dialog>.tool-body.campaign-content{padding:calc(16px + 0px)!important}
html:root body dialog.navigation-recovery>.tool-body{padding:calc(16px + 0px)!important}
/* Latest action hierarchy: secondary and equal-choice actions are outlined. */
html:root body .ui-action--standard:not(:where([data-hx], [data-hx] *)),html:root body .ui-action--choice{--ui-action-bg:#fffdf6;--ui-action-ink:#183d39;--ui-action-border:#62765a;--ui-action-border-width:1px;background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important}
html:root body .navigation-recovery .ui-action--standard{background:var(--lg-b-fffdf6,#fffdf6)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important}
/* Location recovery uses the same measured footer gap as peer cards. */
html:root body #navigation-error .navigation-error-body:not(:where([data-hx], [data-hx] *)){gap:calc(12px)!important}
html:root body #navigation-error .navigation-error-body>button{margin:0!important}
html:root body #navigation-error .navigation-error-body>.ui-fact-panel{margin-top:4px!important}

/* Preserve the approved measured action gap under text scaling. */
html:root body :is(.weather-warning-detail-actions,#weather-report .actions,.navigation-recovery-actions,.campaign-actions:not(.campaign-management):not(.campaign-picker-bulk),.place-editor-actions):not(:where([data-hx], [data-hx] *)){gap:calc(12px + 0px)!important}
/* Peer warning leads share typography regardless of their feature wrapper. */
html:root body .ui-status-panel>strong,html:root body .ui-status-panel>p,html:root body .ui-feedback.ui-feedback--warning,html:root body #weather-overview-panel .farm-weather-content .ui-feedback.ui-feedback--warning{font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif!important;font-size:var(--hx-text-body)!important;font-weight:700!important;line-height:var(--hx-leading-body)!important;letter-spacing:normal!important}

/* Weather report footer: DOM order follows send, retry, cancel. */
html:root body .weather-report-dialog form>.actions{display:flex!important;flex-direction:column!important;gap:calc(12px + 0px)!important;margin:0!important;width:100%}
html:root body .weather-report-dialog form>.actions>button{width:100%!important;margin:0!important;min-height:52px!important}
html:root body .weather-report-dialog form>.actions>button[hidden]{display:none!important}

/* Farm tiles share geometry even when one name wraps. */



/* Latest decision: all text-entry fields have a complete outline and action-matched corners. */
html:root body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=color]):not([type=image]),textarea):not(:where([data-hx], [data-hx] *)){background:var(--lg-b-eeeadd,#eeeadd)!important;color:var(--lg-t-243832,#243832)!important;box-sizing:border-box!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important;min-height:52px!important;padding:calc(12px + 0px) calc(8px + 0px)!important}
html:root body textarea:not(:where([data-hx], [data-hx] *)){min-height:104px!important}

/* SOS slide track: outlined shell with the same10px corner contract. */
html:root body .sos-track:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important;height:60px!important}
/* Remove the superseded joined-search bottom-line shell. */
html:root body .sidebar #mobile-search-panel label.search:not(:where([data-hx], [data-hx] *)){border:0!important;border-radius:0!important;background:transparent!important;gap:12px!important;min-height:52px!important;height:auto!important;overflow:visible!important}
html:root body .sidebar #mobile-search-panel label.search input#search:not(:where([data-hx], [data-hx] *)){min-height:52px!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important;padding:calc(12px + 0px) calc(8px + 0px)!important}
html:root body .sidebar #mobile-search-panel label.search button:not(:where([data-hx], [data-hx] *)){min-height:52px!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important}

/* Redesigned warning banner: stable header, grouped forecast and separate actions. */
:is(.warning,.sample-warning,.weather-warning):not(:where([data-hx], [data-hx] *)){padding:0!important;overflow:hidden!important;background:var(--lg-b-fffdf6,#fffdf6)!important;border:1px solid var(--lg-l-ad7541,#ad7541)!important;border-radius:12px!important}
.weather-banner-heading{display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:60px;box-sizing:border-box;padding:8px 16px!important;background:var(--lg-b-234f40,#234f40);color:var(--lg-t-ffffff,#fff);border-bottom:1px solid var(--lg-l-234f40,#234f40)}
.weather-banner-heading h2{color:var(--lg-t-ffffff,#fff)!important;margin:0!important;font:700 calc(18px * var(--horus-text-scale,.94))/1.2 'Horus Avenir','Avenir Next',sans-serif!important;display:flex;align-items:center;gap:8px}
.weather-banner-heading svg{width:22px;height:22px;flex:none;stroke:var(--lg-t-8d5b2b,#8d5b2b)}
:is(.warning,.sample-warning,.weather-warning)>.weather-banner-heading>button{min-height:var(--hx-target-icon)!important;min-width:64px;padding:8px 12px!important}
:is(.warning-copy,.sample-warning-copy,.weather-warning-heading):not(:where([data-hx], [data-hx] *)){margin:16px!important;padding:16px!important;background:linear-gradient(115deg,var(--lg-b-faf1e2,#faf1e2),var(--lg-b-f6ead6,#f6ead6));border:1px solid var(--lg-l-dfcdb4,#dfcdb4);border-radius:var(--hx-radius-card)}
:is(.warning-copy,.sample-warning-copy,.weather-warning-heading) h2:not(:where([data-hx], [data-hx] *)){margin:0!important;font:700 calc(18px * var(--horus-text-scale,.94))/1.4 'Horus Avenir','Avenir Next',sans-serif!important}
:is(.warning-copy,.sample-warning-copy,.weather-warning-heading) :is(.warning-location,.weather-warning-location):not(:where([data-hx], [data-hx] *)){margin:12px 0 0!important;padding-top:12px;border-top:1px solid var(--lg-l-dfcdb4,#dfcdb4);font-weight:500!important;line-height:var(--hx-leading-body)!important}
:is(.warning-actions,.sample-warning-actions,.weather-warning-actions):not(:where([data-hx], [data-hx] *)){display:grid!important;grid-template-columns:1fr!important;gap:12px!important;margin:0 16px 16px!important;padding:16px 0 0!important;border-top:1px solid var(--lg-l-d8ded9,#d8ded9)}
:is(.warning-actions,.sample-warning-actions,.weather-warning-actions)>:not([hidden]):not(:where([data-hx], [data-hx] *)){width:100%!important;min-height:52px!important;box-sizing:border-box}

html:root body .team-overlay>div>button:has(+h3){margin-bottom:12px!important}

/* Active navigation is an approved semantic exception to ordinary grey actions. */
html:root body #driving-panel .drive-summary-toggle{background:transparent!important;border:0!important;color:var(--lg-t-ffffff,#fff)!important;border-radius:0!important;text-align:left!important}
html:root body #driving-panel .drive-summary-toggle :is(span,strong,svg){color:inherit!important}
html:root body #driving-panel #drive-exit{background:var(--lg-b-ab4e43,#ab4e43)!important;color:var(--lg-t-ffffff,#fff)!important;border:1px solid var(--lg-l-d78b81,#d78b81)!important}
/* Review-only idle destination strip: compact summary left, Close right. */
html:root body:not(.driving) #driving-panel .drive-route-panel{padding:12px!important;box-sizing:border-box!important}
html:root body:not(.driving) #driving-panel .drive-compact{display:flex!important;align-items:center!important;gap:12px!important}
html:root body:not(.driving) #driving-panel .drive-summary-toggle{order:0;flex:1!important;min-width:0!important;min-height:52px!important;display:flex!important;align-items:center!important;gap:8px!important;padding:8px 12px!important;background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important}
html:root body:not(.driving) #driving-panel #drive-exit{order:1;flex:0 0 44px!important;width:44px!important;min-height:44px!important;height:44px!important;display:grid!important;place-items:center!important;padding:0!important;background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important}
html:root body:not(.driving) #driving-panel .drive-target{flex:1;min-width:0;white-space:normal!important}
html:root body:not(.driving) #driving-panel .drive-duration{display:none!important}
html:root body:not(.driving) #driving-panel .drive-summary-toggle svg{width:20px!important;height:20px!important;flex:none}

/* Isolated idle destination reference, distinct from the running navigation bar. */
html:root body.drive-destination-preview #driving-panel .drive-route-panel{padding:12px!important;box-sizing:border-box!important}
html:root body.drive-destination-preview #driving-panel .drive-compact{display:flex!important;align-items:center!important;gap:12px!important}
html:root body.drive-destination-preview #driving-panel .drive-summary-toggle{order:0;flex:1!important;min-width:0!important;min-height:52px!important;display:flex!important;align-items:center!important;gap:8px!important;padding:8px 12px!important;background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important}
html:root body.drive-destination-preview #driving-panel #drive-exit{order:1;flex:0 0 44px!important;width:44px!important;min-height:44px!important;height:44px!important;display:grid!important;place-items:center!important;padding:0!important;background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important}
html:root body.drive-destination-preview #driving-panel .drive-target{flex:1;min-width:0;white-space:normal!important;color:var(--lg-t-183d39,#183d39)!important;font-size:var(--hx-text-body)!important;line-height:var(--hx-leading-body)!important}
html:root body.drive-destination-preview #driving-panel .drive-duration{display:none!important}
html:root body.drive-destination-preview #driving-panel .drive-summary-toggle svg{width:20px!important;height:20px!important;flex:none;color:var(--lg-t-183d39,#183d39)!important}
/* Boundary between content and grouped decisions. */
html:root body :is(.weather-report-dialog form>.actions,.navigation-recovery-actions,.weather-warning-detail-actions,.route-delete-dialog .tool-actions):not(:where([data-hx], [data-hx] *)){border-top:1px solid var(--lg-l-d8ded9,#d8ded9)!important;margin-top:16px!important;padding-top:16px!important;gap:12px!important}

html:root body.drive-destination-preview #driving-panel .drive-route-panel{min-height:0!important;height:auto!important}
html:root body.drive-destination-preview #driving-panel .drive-road-status:empty{display:none!important}

html:root body select:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-eeeadd,#eeeadd)!important;color:var(--lg-t-243832,#243832)!important}

/* Dropdowns share text-field geometry; reserve a clear, centred arrow zone. */
html:root body select:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;background-color:var(--lg-b-eeeadd,#eeeadd)!important;color:var(--lg-t-243832,#243832)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important;min-height:52px!important;padding:calc(12px + 0px) calc(8px + 0px)!important}
html:root body select:not([multiple]):is(:not([size]),[size="1"]):not(:where([data-hx], [data-hx] *)){appearance:none!important;-webkit-appearance:none!important;padding-right:44px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23243832%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27m6 9 6 6 6-6%27/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-size:16px 16px!important;background-position:right 14px center!important}
@media(forced-colors:active){html:root body select:not([multiple]):is(:not([size]),[size="1"]):not(:where([data-hx], [data-hx] *)){appearance:auto!important;background-image:none!important}}

/* Selection is an explicit high-contrast exception to the grey action palette.
   The turbine card tabs are a segmented control styled in turbine-card.css. */
html:root body :is(button,a[role="button"]):is([aria-pressed="true"],[aria-selected="true"],[data-selected="true"],.selected,.is-selected,.ui-action--selected):not(:where(.campaign-tabs>*)):not(:where([data-hx], [data-hx] *)){--ui-action-bg:var(--hx-segment-on);--ui-action-ink:var(--hx-segment-ink);background:var(--hx-segment-on)!important;color:var(--hx-segment-ink)!important;border:1px solid var(--hx-segment-ink)!important;box-shadow:inset 0 0 0 1px var(--hx-segment-ink)}   /* pressed / selected = the segment tile; the primary colour means "the main action" only (UI audit, 6 Oct 2026) */
html:root body :is(button,a[role="button"]):is([aria-pressed="true"],[aria-selected="true"],[data-selected="true"],.selected,.is-selected,.ui-action--selected):not(:where(.campaign-tabs>*)) :is(span,strong,small,svg):not(:where([data-hx], [data-hx] *)){color:inherit!important}
/* Campaign decision boundary: same16px clearance above and below the line. */


/* A single controlled parent gap plus footer margin produces16px before the line. */

/* Keep the period label compact so readings receive the remaining width. */
html:root body #weather-panel .weather-summary-table th{box-sizing:border-box!important;width:64px!important;padding:8px!important;overflow-wrap:normal!important}

html:root body :is(dialog[id],.team-overlay,.sidebar,.tool-panel) select:not(:where([data-hx], [data-hx] *)){padding:calc(12px + 0px) calc(8px + 0px)!important}
html:root body :is(dialog[id],.team-overlay,.sidebar,.tool-panel) select:not([multiple]):is(:not([size]),[size="1"]):not(:where([data-hx], [data-hx] *)){padding:calc(12px + 0px) calc(44px + 0px) calc(12px + 0px) calc(8px + 0px)!important}

/* Weather actions: latest shared grey palette, including header icons and links.
   Keep forecast/warning data symbols and wind severity badges unchanged. */
html:root body :is(#weather-panel#weather-panel,#weather-report#weather-report,#weather-warning-detail#weather-warning-detail,#weather-wtg-picker#weather-wtg-picker,#weather-overview-panel#weather-overview-panel,.weather-warning.weather-warning,.weather-radar-dialog.weather-radar-dialog) :is(button,a.weather-radar-tmd-link):not([aria-pressed=true]):not([aria-selected=true]):not(:where([data-hx], [data-hx] *)){background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important;text-align:center!important}
html:root body :is(#weather-panel#weather-panel,#weather-report#weather-report,#weather-warning-detail#weather-warning-detail,#weather-wtg-picker#weather-wtg-picker,#weather-overview-panel#weather-overview-panel,.weather-warning.weather-warning,.weather-radar-dialog.weather-radar-dialog) :is(button,a.weather-radar-tmd-link) :is(span,strong,small,svg):not(:where([data-hx], [data-hx] *)){color:inherit!important}
html:root body :is(#weather-panel,#weather-report,#weather-warning-detail,#weather-wtg-picker,#weather-overview-panel,.weather-warning,.weather-radar-dialog) :is(button,a.weather-radar-tmd-link) svg{stroke:currentColor}

html:root body #weather-report#weather-report textarea:not(:where([data-hx], [data-hx] *)){min-height:104px!important}
html:root body #weather-panel#weather-panel .weather-radar-enlarge:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;padding:8px 12px!important;min-width:80px!important;height:44px!important}

html:root body .weather-warning.weather-warning button:not(:where([data-hx], [data-hx] *)){font-family:'Horus Avenir','Avenir Next',sans-serif!important;line-height:var(--hx-leading-body)!important}
html:root body .weather-warning.weather-warning .weather-hide:not(:where([data-hx], [data-hx] *)){padding:8px 12px!important;min-height:44px!important;box-sizing:border-box!important}
html:root body .weather-warning .weather-warning-title:not(:where([data-hx], [data-hx] *)){font:700 calc(18px * var(--horus-text-scale,.94))/1.4 'Horus Avenir','Avenir Next',sans-serif!important;letter-spacing:normal!important}

html:root body #weather-panel#weather-panel .weather-location-step button:not(:where([data-hx], [data-hx] *)){min-height:52px!important}

#weather-panel .weather-compare-hour{padding:12px 0;border-bottom:1px solid var(--lg-l-d8ded9,#d8ded9)}#weather-panel .weather-compare-hour p{margin:0 0 4px}#weather-panel .weather-compare-hour:last-child{border-bottom:0}

html:root body #weather-panel#weather-panel :is(.weather-compare-toggle,.lightning-check):not(:where([data-hx], [data-hx] *)){min-height:52px!important}

/* Account and GPS Close controls follow the shared ordinary header action palette. */
html:root body :is(#account-dialog#account-dialog,#gps-status-dialog#gps-status-dialog)>.ui-dialog-heading>button:not(:where([data-hx], [data-hx] *)){
 background:var(--lg-b-e8ebe8,#e8ebe8)!important;color:var(--lg-t-183d39,#183d39)!important;border:1px solid var(--lg-l-62765a,#62765a)!important;border-radius:var(--hx-radius-card)!important;
 box-sizing:border-box;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:8px!important;
}
html:root body :is(#account-dialog#account-dialog,#gps-status-dialog#gps-status-dialog)>.ui-dialog-heading>button svg{color:inherit!important;stroke:currentColor!important}

/* Keep status icon beside wrapped text, including stale and missing readings. */
html:root body #weather-panel .weather-summary-condition--status{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:6px}

/* Location recovery footer: 16px / separator / 16px; 12px action peers. */
html:root body #navigation-error .navigation-error-actions:not(:where([data-hx], [data-hx] *)){display:grid;gap:calc(12px);margin-top:calc(4px);padding-top:calc(16px);padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--lg-l-d8ded9,#d8ded9)}
html:root body #navigation-error .navigation-error-actions>button:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;width:100%!important;min-height:52px!important;margin:0!important;padding:12px 16px!important;border-radius:var(--hx-radius-card)!important;font-family:'Horus Avenir','Avenir Next','Segoe UI',Arial,sans-serif!important;font-size:var(--ui-button-label-size,18px)!important;font-weight:600!important;line-height:var(--hx-leading-body)!important;text-align:center!important;white-space:normal!important}
/* One distance explanation for the whole Search list. */
html:root body .sidebar .sidebar-top #search-distance-hint:not(:where([data-hx], [data-hx] *)){grid-column:1/-1;margin:0!important;padding:0!important;text-align:left;color:var(--lg-t-62766e,#62766e);font:500 calc(14px * var(--horus-text-scale,.94))/1.4 'Horus Avenir','Avenir Next',sans-serif}
html:root body .sidebar .sidebar-top .list-heading:has(#search-distance-hint):not(:where([data-hx], [data-hx] *)){display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;padding:0!important}
html:root body .sidebar .sidebar-top .list-heading:has(#search-distance-hint) #result-count:not(:where([data-hx], [data-hx] *)){min-height:0!important;height:auto!important}
html:root body .sidebar .sidebar-top #search-distance-hint:not(:where([data-hx], [data-hx] *)){position:static!important;float:none!important;transform:none!important;align-self:flex-start!important;width:auto!important;max-width:100%!important}

/* Unified current/hourly reading cards in Weather Watch and All wind farms. */
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card{display:flex;flex-direction:column;align-items:center;min-width:0;padding:10px 12px;border:1px solid var(--lg-l-d6dfd5,#d6dfd5);border-radius:var(--hx-radius-card);background:var(--lg-b-f5f7f2,#f5f7f2);color:var(--lg-t-183d39,#183d39);text-align:center}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-time{font:700 calc(17px * var(--horus-text-scale,.94))/1.25 'Horus Avenir',sans-serif}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-condition-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px 6px;min-width:0;margin-top:6px}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-icon{display:flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;margin:0;color:var(--lg-t-234f40,#234f40)}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-icon svg{width:24px;height:24px}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-condition{font-size:var(--hx-text-body);font-weight:600;line-height:var(--hx-leading-head)}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-temp{font-size:var(--hx-text-body);font-weight:600;line-height:var(--hx-leading-head);white-space:nowrap}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-temp::before{content:'•';margin-right:6px}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-rain{margin-top:4px;font-size:var(--hx-text-body);font-weight:500;line-height:var(--hx-leading-head)}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-speeds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;margin-top:8px;padding-top:8px;border-top:1px solid var(--lg-l-cbd9cc,#cbd9cc);font-size:var(--hx-text-label);line-height:var(--hx-leading-head);font-weight:500}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .wind-badge{display:inline-block;padding:2px 5px;border-radius:6px;white-space:nowrap;font-weight:600}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-status{margin:8px 0 0;padding-top:8px;border-top:1px solid var(--lg-l-cbd9cc,#cbd9cc);font-size:var(--hx-text-body);font-weight:500;line-height:var(--hx-leading-body)}
#weather-overview-panel .farm-weather-periods:not(:where([data-hx], [data-hx] *)){display:grid;gap:8px}
html:root body #weather-overview-panel .farm-weather-card>h3:not(:where([data-hx], [data-hx] *)){background:var(--lg-b-234f40,#234f40);color:var(--lg-t-ffffff,#fff)}

/* Weather search controls share one edge and explicit field/list clearance. */
html:root body #weather-wtg-picker#weather-wtg-picker>select:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;width:calc(100% - 24px)!important;margin:6px 12px 0!important}
html:root body #weather-wtg-picker#weather-wtg-picker>input:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;width:calc(100% - 24px)!important;margin:16px 12px 12px!important}
html:root body #weather-panel#weather-panel .weather-manual-choice>label:not(:where([data-hx], [data-hx] *)){display:block;margin:12px 0 0!important;padding:0!important}
html:root body #weather-panel#weather-panel .weather-compare-search:not(:where([data-hx], [data-hx] *)){box-sizing:border-box!important;width:100%!important;margin:6px 0 12px!important}
html:root body #weather-panel#weather-panel .weather-compare-list:not(:where([data-hx], [data-hx] *)){margin:0!important;gap:8px!important}

html:root body #weather-panel .weather-now-next:has(.weather-reading-card){padding:0;border:0;background:transparent;white-space:normal}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card--status .weather-hour-condition-row{display:grid;grid-template-columns:24px minmax(0,1fr);text-align:left;align-items:start;width:100%}

@media(max-width:600px){html:root body #weather-panel .weather-compare-slots{grid-template-columns:1fr;gap:8px}}

/* Modal focus: each native top-layer dialog dims everything beneath it. */
html:root body dialog:not(#startup-screen):not(:where([data-hx], [data-hx] *))::backdrop{background:rgba(16,34,28,.55)!important;backdrop-filter:none!important}

/* Farm forecasts stay collapsed until requested; keep a reachable disclosure. */
#weather-overview-panel .farm-weather-forecast:not(:where([data-hx], [data-hx] *)){margin-top:8px}
#weather-overview-panel .farm-weather-forecast>summary:not(:where([data-hx], [data-hx] *)){box-sizing:border-box;min-height:44px;padding:10px 0;font-weight:600;cursor:pointer}
#weather-overview-panel .farm-weather-forecast[open] .farm-weather-periods:not(:where([data-hx], [data-hx] *)){margin:0 0 8px}

/* Daily outlook shares the Weather reading-card structure and type scale. */
#weather-panel .weather-outlook .daily-cards:not(:where([data-hx], [data-hx] *)){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#weather-panel .weather-day-range{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin:8px 0;font-size:var(--hx-text-body);font-weight:500}
@media(max-width:600px){#weather-panel .weather-outlook .daily-cards:not(:where([data-hx], [data-hx] *)){grid-template-columns:1fr}}
html:root body #weather-panel .weather-location-step .weather-all-farms:not(:where([data-hx], [data-hx] *)){width:100%;margin:12px 0}

/* Field view: current reading and actions first; supporting sections collapse. */
#weather-panel .weather-primary-actions:not(:where([data-hx], [data-hx] *)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
#weather-panel .weather-primary-actions>button:not(:where([data-hx], [data-hx] *)){width:100%;margin:0;min-width:0}
#weather-panel .weather-primary-actions .weather-report-launch:not(:where([data-hx], [data-hx] *)){order:1}
#weather-panel .weather-primary-actions .weather-check-lightning:not(:where([data-hx], [data-hx] *)){order:2}
#weather-panel .weather-primary-actions .weather-open-nearby:not(:where([data-hx], [data-hx] *)){order:3}
#weather-panel .weather-primary-actions .weather-farms-quick:not(:where([data-hx], [data-hx] *)){order:4}
#weather-panel .weather-lightning-action:empty{display:none}
#weather-panel :is(.weather-rain-maps,.weather-safety-guide)>summary:not(:where([data-hx], [data-hx] *)){min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:12px 0;font-size:var(--hx-text-body);font-weight:700;cursor:pointer;border-top:1px solid var(--lg-l-dce4d8,#dce4d8)}
#weather-panel :is(.weather-rain-maps,.weather-safety-guide)>summary:not(:where([data-hx], [data-hx] *))::after{content:'⌄'}
#weather-panel :is(.weather-rain-maps,.weather-safety-guide)[open]>summary:not(:where([data-hx], [data-hx] *))::after{content:'⌃'}









@media(max-width:360px){}



/* Equal-height field actions, including rows that wrap at larger text sizes. */
#weather-panel .weather-primary-actions:not(:where([data-hx], [data-hx] *)){grid-auto-rows:1fr;align-items:stretch}
html:root body #weather-panel .weather-primary-actions>button:not(:where([data-hx], [data-hx] *)){height:100%;min-height:52px;align-self:stretch}

/* One clear selected-place label for all readings in Weather Watch. */
html:root body #weather-panel .weather-heading-text .weather-location{font-size:var(--hx-text-title)!important;font-weight:700!important}

/* Section headings must not outrank the selected WTG context. */
html:root body #weather-panel .weather-near-term>h3{font-size:var(--hx-text-body)!important;font-weight:700!important;line-height:var(--hx-leading-body);margin:0 0 8px;padding:0;border:0}





/* Keep the satellite shortcut in the disclosure heading (turbine card: now turbine-card.css). */






/* One divider owns equal spacing on both sides; no stacked heading margins. */
#weather-panel .weather-primary-actions:not(:where([data-hx], [data-hx] *)){margin-bottom:0}
html:root body #weather-panel .weather-section-divider{height:0;margin:16px 0;border:0;border-top:1px solid var(--lg-l-dce4d8,#dce4d8);padding:0}



#weather-panel .weather-rain-maps:not(:where([data-hx], [data-hx] *)){margin-top:16px}
/* Keep each wind label/value together; wrap complete readings when needed. */
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-speeds{display:flex;flex-wrap:wrap;gap:6px}
html:root body :is(#weather-panel,#weather-overview-panel) .weather-reading-card .weather-hour-speeds>span{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:1 0 auto;white-space:nowrap;min-width:max-content}

#weather-panel .weather-reading-card .weather-now-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin-top:8px;font-size:var(--hx-text-label);font-weight:500;line-height:var(--hx-leading-body)}
#weather-panel .weather-reading-card .weather-now-facts>span{white-space:nowrap}






