/* Pulvix appearance. Semantic wind and nozzle colours retain their original meaning. */
.theme-setting{width:100%;text-align:left;background:transparent;color:inherit;border:0;border-top:1px solid var(--line,#dfe5d9);border-radius:0;grid-template-columns:26px minmax(0,1fr) 42px}.theme-setting .theme-switch{width:42px;height:25px;border-radius:20px;background:#c7d0c5;position:relative;transition:background .15s}.theme-switch:after{content:'';position:absolute;width:19px;height:19px;background:#fff;left:3px;top:3px;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .15s}.theme-setting[aria-checked=true] .theme-switch{background:#438a5b}.theme-setting[aria-checked=true] .theme-switch:after{transform:translateX(17px)}
html[data-theme=dark]{color-scheme:dark;--green:#91d1a6;--lime:#c6e38e;--ink:#e3eae3;--muted:#a2b0a6;--line:#34463b;--bg:#121b17;--surface:#1b2821;--surface-raised:#24362a;--button:#306847}
html[data-theme=dark] body{background:var(--bg);color:var(--ink)}
html[data-theme=dark] :is(.app-header,.bottom-nav,aside,.card,.stat,dialog,.product-picker,.directory-dialog,.load-remaining-dialog,.location-dialog,.nozzle-picker,.weather-dashboard,.account-dialog,.install-banner,.update-banner){background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme=dark] :is(input,select,textarea,.ghost,.cal-nozzle-select,.nozzle-option,.crop-options,.crop-options button,.load-plan-tabs button,.recipe-filter-fields select){background:#17221c;color:var(--ink);border-color:var(--line)}
html[data-theme=dark] :is(input,textarea)::placeholder{color:#91a096;opacity:1}
html[data-theme=dark] :is(button,.button,.load-plan-trigger,.load-plan-next){background-color:var(--button);color:#f1f7ef}
html[data-theme=dark] :is(.ghost,.remove,.account-menu-row,.account-close,.account-refresh,.account-directory-link,.directory-close,.theme-setting,.cal-measured-link,.recipe-filter-footer button){background:transparent;color:var(--ink)}
html[data-theme=dark] :is(.account-menu-row,.account-footer,.account-data,.recipe,.directory-client,td,th,header,.cal-adjustments,.directory-lots .directory-row){border-color:var(--line)}
html[data-theme=dark] :is(.summary,.step,.online,.badge,.account-avatar,.account-plan,.account-sync,.plan-status,.account-icon,.directory-origin,.recipe-filter-panel,.tank-result,.tank-metrics>div,.recipe-cost,.load-plan-card,.load-plan-count,.load-step-number,.load-remaining-button,.load-remaining-empty,.cal-tabs,.tag,.success){background:var(--surface-raised);color:var(--ink);border-color:var(--line)}
html[data-theme=dark] :is(.hero){background:#214b34;color:#f1f7ef}
html[data-theme=dark] :is(.hero p){color:#d5e5d7}
html[data-theme=dark] :is(a,.logo,.brand,.amount,.stat strong,.summary strong,.recipe-cost strong,.account-wordmark,.account-menu-row>svg:first-child,.load-plan-top h2,.load-water strong,.load-step-number,.load-plan-count){color:var(--green)}
html[data-theme=dark] :is(.muted,small,.notice,.account-sync-copy small,.account-session a,.directory-row small,.directory-empty,.directory-snapshot,.directory-editor-tools small,.recipe-filter-fields label,.load-plan-top p,.load-steps small,.cal-tabs button,.load-tab-gap){color:var(--muted)}
html[data-theme=dark] :is(nav button,.bottom-nav button,.cal-tabs button){background:transparent;color:var(--muted)}
html[data-theme=dark] :is(nav button.active,.bottom-nav button.active,.cal-tabs button[aria-selected=true],.load-plan-tabs button[aria-selected=true],.crop-options button:hover,.crop-options button:focus){background:#344e39;color:#d4efce}
html[data-theme=dark] :is(.recipe-applied,.status-applied){background:#213e2c;color:#a4dfb6}
html[data-theme=dark] :is(.status-pending,.mark-pending,.load-plan-reminder,.demo){background:#45391d;color:#f1d58c;border-color:#74612d}
html[data-theme=dark] :is(.remove,.cancel,.directory-error,.cal-reference-warning){color:#f2a68d!important}
html[data-theme=dark] .toast{background:#dce9dd;color:#16231b}
html[data-theme=dark] dialog::backdrop{background:#050d0acc}
html[data-theme=dark] .theme-switch{background:#506355}
html[data-theme=dark] .weather-model,html[data-theme=dark] .weather-selected,html[data-theme=dark] .weather-hour-quality{background:#223328;border-color:var(--line);color:var(--muted)}
html[data-theme=dark] :is(.weather-model>span,.weather-selected b,.weather-time-label){color:var(--green)}
html[data-theme=dark] :is(.weather-model small,.weather-selected>[data-selected-weather]>span,.weather-selected-metrics small,.weather-time-label span,.weather-timeline-ends,.weather-table-help,.weather-wind-legend){color:var(--muted)}
html[data-theme=dark] .weather-model button{background:#1b2821;color:var(--green);border-color:var(--line)}
html[data-theme=dark] .weather-days button{background:#24362a;color:#aebbae}
html[data-theme=dark] .weather-days button[aria-pressed=true]{background:#376345;color:#fff}
html[data-theme=dark] .weather-hour-grid :is(th,td){color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .weather-hour-grid :is(thead th,tr>:first-child,.weather-pad,.weather-symbol-row td,.weather-direction-row td){background:#223328;color:var(--muted)}
html[data-theme=dark] .weather-hour-grid th.wx-selected{background:#3c5d40;color:#f1f7ef}
html[data-theme=dark] .weather-hour-grid button{background:transparent;color:inherit}
html[data-theme=dark] .weather-hour-grid td.weather-wind-cell{color:#183023;background-color:var(--wind-cell)}
html[data-theme=dark] .weather-hour-grid td>small{color:var(--muted)}
html[data-theme=dark] .weather-fixed-cursor{border-color:#b8ddb0;background:#c6e38e12}
html[data-theme=dark] .weather-fixed-cursor>span{background:#b8ddb0;box-shadow:0 0 0 2px #1b2821}
html[data-theme=dark] :is(.weather-timeline input[type=range],.cal-slider input[type=range]){background:transparent}
html[data-theme=dark] .weather-map-top button{background:#1b2821ed;color:#e3eae3;border-color:var(--line)}
html[data-theme=dark] .leaflet-control-attribution{background:#17221ce8!important;color:#d1dbd1}
html[data-theme=dark] .leaflet-control-attribution a{color:#a5d5ac}
html[data-theme=dark] .button,html[data-theme=dark] a.button{color:#fff}
@media(prefers-reduced-motion:reduce){.theme-switch,.theme-switch:after{transition:none}}
html[data-theme=dark] :is(.tank-load,.product-choice,.selected-dose,.dose-reference,.order-number,.is-dragging,.incoming-recipe,.application-options>summary,.application-notes,.app-update,.round-products[aria-pressed=true],#sync-account [data-sync-detail]){background:var(--surface-raised);color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .product-choice.chosen{background:#344e39;color:#d4efce}
html[data-theme=dark] .edit-item{background:transparent;color:var(--green)}
html[data-theme=dark] .delete-recipe-dialog [data-confirm-delete]{background:#a63e38;color:#fff}
html[data-theme=dark] :is(.cal-error){background:#462e23;color:#f2bc9e}
html[data-theme=dark] .cal-result{background:var(--cal-result-bg,#245238);color:var(--cal-result-ink,#fff)}
html[data-theme=dark] :is(.recipe-filters button.selected,.tank-detail-heading button[aria-pressed=true]){background:#376345;color:#f1f7ef;border-color:#709d77}
html[data-theme=dark] .theme-setting[aria-checked=true] .theme-switch{background:#438a5b}

/* Semantic status and forecast contrast take precedence over generic surfaces. */
html[data-theme=dark] .recipe.recipe-pending{border-left-color:#e6a04b;background:#28271e}
html[data-theme=dark] .recipe .recipe-status.status-pending,html[data-theme=dark] .recipe-status.status-pending,html[data-theme=dark] button.mark-pending{background:#533719;color:#ffd096;border-color:#ad7431}
html[data-theme=dark] .recipe .recipe-status.status-applied,html[data-theme=dark] .recipe-status.status-applied{background:#254d36;color:#b2edc5}
html[data-theme=dark] .cal-result>small,html[data-theme=dark] .cal-result .cal-rate span,html[data-theme=dark] .cal-result p{color:var(--cal-result-ink,#fff)}
.cal-result>small{color:var(--cal-result-ink,#dce9ce);font-weight:650}
html[data-theme=dark] .weather-hour-grid tbody td[data-hour-cell]:not(.weather-wind-cell){background:#1b2821;color:#edf6ee}
html[data-theme=dark] .weather-hour-grid tbody td[data-hour-cell]:not(.weather-wind-cell).wx-selected{background:#304635;color:#fff}
html[data-theme=dark] .weather-hour-grid tbody td[data-hour-cell]>small{color:#c0cfc3}
