:root{--ion-color-primary: #0b3d4a;--ion-color-primary-rgb: 11, 61, 74;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #0a3641;--ion-color-primary-tint: #235054;--ion-color-secondary: #3d4f5f;--ion-color-secondary-rgb: 61, 79, 95;--ion-color-secondary-contrast: #ffffff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #364654;--ion-color-secondary-tint: #50616f;--ion-color-success: #1b7f4a;--ion-color-success-rgb: 27, 127, 74;--ion-color-success-contrast: #ffffff;--ion-color-success-contrast-rgb: 255, 255, 255;--ion-color-success-shade: #187041;--ion-color-success-tint: #328c5c;--ion-color-warning: #c47a12;--ion-color-warning-rgb: 196, 122, 18;--ion-color-warning-contrast: #ffffff;--ion-color-warning-contrast-rgb: 255, 255, 255;--ion-color-warning-shade: #ac6b10;--ion-color-warning-tint: #ca872a;--ion-color-danger: #b42318;--ion-color-danger-rgb: 180, 35, 24;--ion-color-danger-contrast: #ffffff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #9e1f15;--ion-color-danger-tint: #bc392f;--ion-background-color: #eef1ef;--ion-background-color-rgb: 238, 241, 239;--ion-text-color: #1a2420;--ion-text-color-rgb: 26, 36, 32;--ion-toolbar-background: #ffffff;--ion-toolbar-color: #1a2420;--ion-item-background: #ffffff;--ion-card-background: #ffffff;--ion-tab-bar-background: #ffffff;--ion-tab-bar-color-selected: var(--ion-color-primary);--df-text-muted: #55655f;--ion-color-medium: #55655f;--ion-color-medium-rgb: 85, 101, 95;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #4b5954;--ion-color-medium-tint: #66746f;--ion-font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--df-font-display: 1.375rem;--df-font-title: 1.125rem;--df-font-body: 1rem;--df-font-meta: .875rem;--df-font-kpi: 1.5rem;--df-line-tight: 1.25;--df-line-body: 1.45;--df-space-1: .25rem;--df-space-2: .5rem;--df-space-3: .75rem;--df-space-4: 1rem;--df-space-5: 1.25rem;--df-space-6: 1.5rem;--df-space-8: 2rem;--df-tap-min: 44px;--df-radius: 8px;--df-radius-sm: 6px;--df-border: 1px solid rgba(26, 36, 32, .1);--df-banner-offline-bg: #f5edd6;--df-banner-offline-fg: #5c4a1a;--df-banner-error-bg: #fdecea;--df-banner-error-fg: #8c1d18;--df-banner-sync-bg: #e8f0ec;--df-banner-sync-fg: #0a6145;--df-banner-info-bg: #eef1f4;--df-banner-info-fg: #33404b;--df-banner-success-bg: #e6f2eb;--df-banner-success-fg: #0a6145;--df-grid-gap: var(--df-space-3);--df-kpi-min-h: 4.5rem;--df-page-pad-x: max(var(--df-space-4), env(safe-area-inset-left, 0px));--df-page-pad-b: max(var(--df-space-4), env(safe-area-inset-bottom, 0px))}:root.ion-palette-dark{--ion-toolbar-color: #ffffff;--df-text-muted: #a9b5b0;--ion-color-medium: #a9b5b0;--ion-color-medium-rgb: 169, 181, 176;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #95a09b;--ion-color-medium-tint: #b2bcb8;--df-border: 1px solid rgba(255, 255, 255, .12);--df-banner-offline-bg: #3a3420;--df-banner-offline-fg: #f5edd6;--df-banner-error-bg: #3a1c19;--df-banner-error-fg: #f2b8b5;--df-banner-sync-bg: #17251f;--df-banner-sync-fg: #7dcea0;--df-banner-info-bg: #1e252b;--df-banner-info-fg: #c9d4dd;--df-banner-success-bg: #17251f;--df-banner-success-fg: #7dcea0}.df-chip{display:inline-flex;align-items:center;min-height:1.5rem;padding:.15rem .5rem;border-radius:999px;font-size:var(--df-font-meta);font-weight:600;line-height:1;letter-spacing:.01em;border:1px solid transparent}button.df-chip,.df-chip[role=button]{cursor:pointer;font:inherit;font-size:var(--df-font-meta);font-weight:600}.df-chip--tap{min-height:var(--df-tap-min);padding:0 var(--df-space-3)}.df-chip--ok{background:rgba(var(--ion-color-success-rgb),.14);color:var(--ion-color-success-shade)}.df-chip--warn{background:rgba(var(--ion-color-warning-rgb),.16);color:var(--ion-color-warning-shade)}.df-chip--bad{background:rgba(var(--ion-color-danger-rgb),.14);color:var(--ion-color-danger-shade)}.df-chip--neutral{background:#3d4f5f1f;color:var(--ion-color-secondary)}.df-chip--active{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast);border-color:var(--ion-color-primary)}:root.ion-palette-dark .df-chip--ok{background:rgba(var(--ion-color-success-rgb),.28);color:var(--ion-color-success-tint)}:root.ion-palette-dark .df-chip--warn{background:rgba(var(--ion-color-warning-rgb),.28);color:var(--ion-color-warning-tint)}:root.ion-palette-dark .df-chip--bad{background:rgba(var(--ion-color-danger-rgb),.28);color:var(--ion-color-danger-tint)}:root.ion-palette-dark .df-chip--neutral{background:#ffffff1a;color:#ffffffd1}.df-section-pad{padding:0 var(--df-space-4) var(--df-space-4)}.df-section-pad-y{padding:var(--df-space-3) var(--df-space-4) var(--df-space-4)}.df-list-title{font-size:var(--df-font-body);font-weight:600;margin:0;line-height:var(--df-line-tight);color:var(--ion-text-color)}.df-list-subtitle{font-size:var(--df-font-meta);margin:var(--df-space-1) 0 0;color:var(--ion-color-medium);line-height:var(--df-line-body)}.df-meta{font-size:var(--df-font-meta);color:var(--ion-color-medium);margin:0}.df-spacer-2{height:var(--df-space-2)}.df-spacer-3{height:var(--df-space-3)}.df-metric-tile{background:var(--ion-card-background);border:var(--df-border);border-radius:var(--df-radius);padding:var(--df-space-3);min-height:var(--df-kpi-min-h)}.df-filter-chip-bar{display:flex;align-items:center;gap:var(--df-space-2);overflow-x:auto;padding:var(--df-space-2) var(--df-space-4);-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none}.df-filter-chip-bar::-webkit-scrollbar{display:none}.df-filter-chip-bar .df-chip{white-space:nowrap;flex-shrink:0;min-height:var(--df-tap-min);padding:0 var(--df-space-3)}.df-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--df-grid-gap);padding:var(--df-space-4)}.df-stat-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:360px){.df-stat-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}.df-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--df-grid-gap);padding:0 var(--df-space-4) var(--df-space-4)}.df-action-row{display:flex;flex-wrap:wrap;gap:var(--df-space-2);margin-top:var(--df-space-2)}.df-chip:focus-visible,.df-banner-dismiss:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}ion-tab-bar{--border: var(--df-border);padding-bottom:env(safe-area-inset-bottom,0)}ion-item{--min-height: var(--df-tap-min)}ion-button{min-height:var(--df-tap-min);--min-height: var(--df-tap-min)}ion-button[size=small]{min-height:36px;--min-height: 36px}.df-photo-slot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--df-space-2);margin-top:var(--df-space-2)}.df-photo-slot__actions{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:var(--df-space-2)}@media(max-width:400px){.df-photo-slot__actions{flex-direction:column;width:100%}.df-photo-slot__actions ion-button{width:100%;margin-inline:0}}.df-photo-thumb{display:block;width:64px;height:64px;padding:0;border:var(--df-border);border-radius:var(--df-radius-sm);overflow:hidden;background:var(--ion-card-background);cursor:pointer}.df-photo-thumb img{display:block;width:100%;height:100%;object-fit:cover}.df-photo-thumb:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.df-photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:var(--df-space-4);background:#000000e0;border:none;cursor:zoom-out}.df-photo-lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--df-radius-sm)}.df-checklist-footer{display:flex;align-items:center;gap:var(--df-space-2);padding:var(--df-space-2) var(--df-space-4) calc(var(--df-space-2) + env(safe-area-inset-bottom,0px));border-top:var(--df-border);background:var(--ion-background-color)}.df-checklist-footer__nav{display:flex;gap:var(--df-space-2);flex:0 0 auto}.df-checklist-footer__nav ion-button{margin-inline:0}.df-checklist-footer__primary{flex:1 1 auto;min-width:0}.df-checklist-footer__primary ion-button{width:100%;margin-inline:0}.df-step--error{--background: rgba(var(--ion-color-danger-rgb), .06);box-shadow:inset 3px 0 0 var(--ion-color-danger)}.df-login-content{--background: var(--ion-background-color)}.df-login{min-height:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:max(var(--df-space-8),env(safe-area-inset-top,0px)) max(var(--df-space-4),env(safe-area-inset-right,0px)) max(var(--df-space-8),env(safe-area-inset-bottom,0px)) max(var(--df-space-4),env(safe-area-inset-left,0px))}.df-login-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--df-space-6)}.df-login-lockup{height:48px;width:auto;max-width:min(280px,100%);display:block}.df-login-caption{margin:var(--df-space-2) 0 0;font-size:var(--df-font-meta);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ion-color-medium)}.df-login-card{background:var(--ion-card-background);border:var(--df-border);border-radius:var(--df-radius);padding:var(--df-space-5) var(--df-space-4) var(--df-space-4);max-width:420px;width:100%;margin:0 auto;box-sizing:border-box}.df-login-subtitle{margin:0;font-size:var(--df-font-title);font-weight:600;line-height:var(--df-line-tight);color:var(--ion-text-color);text-align:center}.df-login-note{margin:var(--df-space-1) 0 var(--df-space-4);text-align:center}.df-login-list{background:transparent;margin:0 0 var(--df-space-4);padding:0;border-radius:var(--df-radius-sm);overflow:hidden}.df-login-list ion-item{--background: var(--ion-item-background)}.df-login-actions{padding-top:var(--df-space-1)}.df-plant-picker-trigger{display:inline-flex;align-items:center;gap:var(--df-space-2);min-height:var(--df-tap-min);max-width:min(220px,55vw);padding:0 var(--df-space-3);border-radius:999px;border:var(--df-border);background:var(--ion-card-background);color:var(--ion-text-color);font:inherit;font-size:var(--df-font-body);font-weight:600;cursor:pointer}.df-plant-picker-trigger:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.df-plant-picker-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.df-plant-picker-clear{display:inline-flex;align-items:center;justify-content:center;min-width:var(--df-tap-min);min-height:var(--df-tap-min);padding:0;border:none;background:transparent;color:var(--ion-color-medium);cursor:pointer}.df-plant-picker-clear:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.df-plant-picker-section{--min-height: 2rem;opacity:.85}.df-plant-picker-selected{--background: rgba(var(--ion-color-primary-rgb), .12);font-weight:600}.df-install-steps{margin:0;padding-left:1.25rem;color:var(--ion-text-color);line-height:var(--df-line-body);font-size:var(--df-font-body)}.df-install-steps li{margin-bottom:var(--df-space-2)}.df-sw-update{position:fixed;z-index:10000;left:50%;bottom:calc(56px + var(--df-space-3) + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;align-items:center;gap:var(--df-space-3);padding:var(--df-space-3) var(--df-space-4);border-radius:var(--df-radius);background:var(--ion-color-primary);color:var(--ion-color-primary-contrast);box-shadow:0 4px 16px #00000040;font-size:var(--df-font-body);font-weight:600;max-width:calc(100vw - 2rem)}.df-sw-update-btn{border:none;border-radius:var(--df-radius-sm);padding:.35rem .75rem;min-height:36px;background:var(--ion-color-primary-contrast);color:var(--ion-color-primary);font:inherit;font-weight:700;cursor:pointer}.df-sw-update-btn--ghost{background:transparent;color:var(--ion-color-primary-contrast);font-weight:600;text-decoration:underline}.df-plant-header__open{flex:1 1 auto;min-width:0;min-height:var(--df-tap-min);margin:0;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.df-plant-header__open ion-label{margin:0}.df-plant-header__toggle{display:flex;align-items:center;min-height:var(--df-tap-min);padding-left:var(--df-space-2)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
