.sync-status{color:#3c443d;background:#f4f6f4;border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .7rem;font-size:.78rem;line-height:1;display:inline-flex}.sync-status-dot{background:#b6bfb6;border-radius:50%;flex:none;width:.5rem;height:.5rem}.sync-status-idle{border-color:#dde4dd}.sync-status-idle .sync-status-dot{background:#43a047}.sync-status-active{border-color:#cfe0f4}.sync-status-active .sync-status-dot{background:#1e88e5}.sync-status-offline .sync-status-dot{background:#90a4ae}.sync-status-auth .sync-status-dot{background:#8d6e63}.sync-status-failed{border-color:#f3d3d0}.sync-status-failed .sync-status-dot{background:#e53935}.sync-status-conflict{border-color:#f2d9a8}.sync-status-conflict .sync-status-dot{background:#f57c00}.sync-status-label{white-space:nowrap}.sync-status-retry{color:#2f6f43;cursor:pointer;background:#fff;border:1px solid #c3ccc4;border-radius:6px;padding:.2rem .5rem;font-size:.72rem}.sync-status-retry:hover{background:#eef5ec}.sync-center{color:#2b312c;background:#fff;border:1px solid #dde4dd;border-radius:10px;min-width:18rem;max-width:26rem;font-size:.85rem;box-shadow:0 4px 18px #141e1614}.sync-center-header{border-bottom:1px solid #e6ebe6;justify-content:space-between;align-items:center;padding:.6rem .9rem;display:flex}.sync-center-header h2{margin:0;font-size:.95rem}.sync-center-close{color:#66706a;cursor:pointer;background:0 0;border:0;font-size:1.1rem;line-height:1}.sync-center-close:hover{color:#222}.sync-center-status{flex-wrap:wrap;gap:.35rem .7rem;padding:.7rem .9rem;display:flex}.sync-center-online{font-weight:600}.sync-center-last-sync{color:#66706a;font-size:.78rem}.sync-center-retry{color:#2f6f43;cursor:pointer;background:#fff;border:1px solid #c3ccc4;border-radius:6px;margin:0 .9rem .7rem;padding:.35rem .8rem}.sync-center-retry:hover:not(:disabled){background:#eef5ec}.sync-center-retry:disabled{opacity:.5;cursor:default}.sync-center-items{flex-direction:column;gap:.4rem;margin:0;padding:0 .9rem .8rem;list-style:none;display:flex}.sync-center-empty{color:#66706a;padding:.2rem 0;font-size:.78rem}.sync-center-item{border:1px solid #eceeec;border-left-width:3px;border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .55rem;display:flex}.sync-center-item-main{flex-direction:column;gap:.15rem;min-width:0;display:flex}.sync-center-item-label{font-size:.8rem;font-weight:600}.sync-center-item-error{color:#66706a;overflow-wrap:anywhere;font-size:.72rem}.sync-center-item.item-conflict{border-left-color:#f57c00}.sync-center-item.item-failed{border-left-color:#e53935}.sync-center-item.item-auth{border-left-color:#8d6e63}.sync-center-item-remove{color:#5a625c;cursor:pointer;background:#fafbfa;border:1px solid #e0e3e0;border-radius:5px;flex:none;padding:.2rem .45rem;font-size:.7rem}.sync-center-item-remove:hover{background:#f2f2f2}.sync-center-offline .sync-center-status,.sync-center-failed .sync-center-status,.sync-center-conflict .sync-center-status,.sync-center-auth .sync-center-status{color:inherit}.sync-header-wrap{align-items:center;display:inline-flex;position:relative}.sync-header-toggle{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;padding:0;display:inline-flex}.sync-header-toggle:focus-visible{outline-offset:2px;outline:2px solid #2f6f43}.sync-popover{z-index:60;position:absolute;top:calc(100% + .5rem);right:0}.weather-section{margin-top:2rem}.weather-section-title{color:var(--ink);margin-bottom:1rem;font-size:1.1rem;font-weight:600}.weather-card{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0;margin-bottom:1rem;padding:1rem}.weather-card-header{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.75rem;display:flex}.weather-location-name{font-size:1rem;font-weight:600}.weather-current-temp{color:var(--leaf);font-size:1.5rem;font-weight:700}.weather-updated{color:var(--ink-60);margin-left:auto;font-size:.75rem}.weather-daily-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-bottom:.75rem;display:grid}.weather-day-item{color:#fff;border-radius:var(--radius-md);background:linear-gradient(145deg,#3f6f72,#73969a);flex-direction:column;min-width:0;min-height:142px;padding:.8rem;font-size:.8rem;display:flex;position:relative;overflow:hidden}.weather-day-item:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#04162333);position:absolute;inset:0}.weather-day-item>*{z-index:1;position:relative}.weather-theme-clear{background:radial-gradient(circle at 82% 19%,#fffbd0 0 8px,#ffd95b 9px 18px,#0000 19px),linear-gradient(145deg,#319dd3,#78c8e5 58%,#f0c768)}.weather-theme-partly-cloudy{background:radial-gradient(at 78% 28%,#ffffffe6 0 20px,#0000 21px),radial-gradient(circle at 88% 15%,#ffe36e 0 13px,#0000 14px),linear-gradient(145deg,#3e97c5,#93cbdc)}.weather-theme-overcast{background:linear-gradient(145deg,#536673,#89969d 55%,#677b84)}.weather-theme-fog{background:repeating-linear-gradient(165deg,#70858b 0 13px,#91a3a5 14px 25px)}.weather-theme-drizzle{background:linear-gradient(155deg,#466f87,#6e99aa 52%,#325c76)}.weather-theme-rain{background:repeating-linear-gradient(112deg,#0000 0 15px,#bce1f53d 16px 18px,#0000 19px 30px),linear-gradient(145deg,#273f58,#52778d)}.weather-theme-snow{background:radial-gradient(circle at 78% 20%,#ffffffe0 0 3px,#0000 4px),radial-gradient(circle at 88% 38%,#ffffffb8 0 2px,#0000 3px),linear-gradient(145deg,#668ba6,#aac6d7)}.weather-theme-storm{background:linear-gradient(145deg,#282b4c,#54446b 58%,#7b644f)}.weather-theme-unknown{background:linear-gradient(145deg,#486b67,#75918a)}.weather-day-label{align-items:center;gap:.35rem;margin-bottom:.25rem;font-weight:600;display:flex}.weather-day-icon{color:#ffe56b;flex-shrink:0}.weather-current{--weather-field-image:url(/images/field-types/other.svg);background-color:#234d35;background-image:linear-gradient(90deg, #071e16db 0%, #0c2d1f9e 42%, #0d251c57 72%, #071a1499 100%), var(--weather-field-image);border-radius:var(--radius-md);color:#fff;background-position:50%;background-size:cover;border:0;grid-template-columns:minmax(0,1fr) auto minmax(150px,auto);align-items:center;gap:1rem;min-height:180px;margin-bottom:.75rem;padding:1.25rem 1.5rem;display:grid}.weather-current[data-field-type=CROP_FIELD]{--weather-field-image:url(/images/field-types/crop-field.svg)}.weather-current[data-field-type=OPEN_FIELD_VEGETABLE]{--weather-field-image:url(/images/field-types/open-field-vegetable.svg)}.weather-current[data-field-type=ORCHARD]{--weather-field-image:url(/images/field-types/orchard.svg)}.weather-current[data-field-type=VINEYARD]{--weather-field-image:url(/images/field-types/vineyard.svg)}.weather-current[data-field-type=GREENHOUSE]{--weather-field-image:url(/images/field-types/greenhouse.svg)}.weather-current[data-field-type=FOREST]{--weather-field-image:url(/images/field-types/forest.svg)}.weather-current[data-field-type=PASTURE]{--weather-field-image:url(/images/field-types/pasture.svg)}.weather-current[data-field-type=LAKE]{--weather-field-image:url(/images/field-types/lake.svg)}.weather-current[data-field-type=NURSERY]{--weather-field-image:url(/images/field-types/nursery.svg)}.weather-current[data-field-type=OTHER]{--weather-field-image:url(/images/field-types/other.svg)}.weather-current-copy{flex-direction:column;gap:.2rem;min-width:0;display:flex}.weather-current-date{color:#ffffffe6;font-size:1rem;font-weight:600}.weather-current-icon{color:#ffe56b;filter:drop-shadow(0 2px 5px #0003);flex-shrink:0}.weather-current-temp-large{color:#fff;letter-spacing:-.04em;font-size:clamp(2.5rem,7vw,4rem);font-weight:300;line-height:1}.weather-current-condition{color:#ffffffc7;order:2;font-size:.95rem}.weather-current-chips{flex-direction:column;gap:.45rem;min-width:0;display:flex}.weather-chip{color:#ffffffe0;background:0 0;border:0;border-radius:999px;align-items:center;gap:.3rem;padding:.25rem 0;font-size:.75rem;display:inline-flex}.weather-chip-label{color:#ffffffb3;text-transform:uppercase;letter-spacing:.03em;font-size:.65rem}.weather-chip-value{color:#fff;font-weight:600}.weather-day-condition{color:#ffffffb8;margin-bottom:.25rem;font-size:.75rem}.weather-day-temps{align-items:baseline;gap:.5rem;margin-top:auto;margin-bottom:.125rem;display:flex}.weather-temp-high{color:#fff;font-size:1.2rem;font-weight:600}.weather-temp-low{color:#ffffffa8}.weather-day-precip{color:#ffffffc7;flex-wrap:wrap;gap:.35rem .6rem;font-size:.75rem;display:flex}.weather-day-precip span{align-items:center;gap:.2rem;display:inline-flex}.weather-tabs{background:var(--cream);border:1px solid var(--ink-10);border-radius:var(--radius-md);gap:.25rem;margin-bottom:.75rem;padding:.2rem;display:inline-flex}.weather-tab{appearance:none;color:var(--ink-60);border-radius:var(--radius-sm,6px);cursor:pointer;background:0 0;border:none;padding:.3rem .75rem;font-family:inherit;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.weather-tab:hover{color:var(--ink)}.weather-tab.active{background:var(--white);color:var(--ink);box-shadow:var(--shadow-sm)}.weather-history{min-width:0}.weather-history-controls{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.75rem;display:flex}.weather-history-field{color:var(--ink-60);gap:.2rem;font-size:.72rem;display:grid}.weather-history-field input{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);color:var(--ink);padding:.3rem .4rem;font-family:inherit;font-size:.85rem}.weather-history-status{color:var(--ink-60);margin:.5rem 0;font-size:.82rem}.weather-history-status.error{color:var(--red)}.weather-history-chart,.weather-hourly-chart{width:100%;min-width:0;overflow:hidden}.weather-chart-svg{cursor:crosshair;border-radius:var(--radius-md);touch-action:none;outline:none;width:100%;height:auto;display:block}.weather-chart-svg.zoomed{cursor:grab}.weather-chart-svg.zoomed:active{cursor:grabbing}.weather-chart-reset{border:1px solid var(--leaf,#355f40);border-radius:var(--radius-md);background:var(--cream);color:var(--ink);cursor:pointer;align-items:center;gap:.25rem;margin-left:auto;padding:.25rem .5rem;font-family:inherit;font-size:.72rem;transition:background .15s,border-color .15s;display:inline-flex}.weather-chart-reset:hover{background:var(--white);border-color:var(--ink-40)}.weather-chart-svg:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}.weather-chart-controls{flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem;display:flex}.weather-chart-hint{color:var(--ink-60);overflow-wrap:anywhere;margin:0 0 .35rem;font-size:.72rem;line-height:1.35}.weather-chart-toggle{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);color:var(--ink-60);cursor:pointer;white-space:normal;align-items:center;gap:.25rem;min-width:0;max-width:100%;padding:.25rem .5rem;font-family:inherit;font-size:.75rem;transition:background .15s,border-color .15s;display:inline-flex}.weather-chart-toggle:hover{background:var(--cream);border-color:var(--ink-40)}.weather-chart-toggle[aria-pressed=true]{background:var(--cream);border-color:var(--leaf);color:var(--ink)}.weather-chart-swatch{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.weather-chart-label{overflow-wrap:anywhere;line-height:1.2}.weather-tooltip{background:var(--cream);border:1px solid var(--ink-10);border-radius:var(--radius-md);min-width:0;max-width:100%;margin-top:.5rem;padding:.5rem .625rem;font-size:.8rem;overflow:hidden}.weather-tooltip-time{margin-bottom:.25rem;font-size:.85rem;font-weight:600}.weather-tooltip-grid{flex-wrap:wrap;gap:.375rem .75rem;min-width:0;display:flex}.weather-tooltip-row{white-space:normal;align-items:center;gap:.25rem;min-width:0;max-width:100%;display:inline-flex}.weather-tooltip-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.weather-tooltip-label{color:var(--ink-60);font-size:.75rem}.weather-tooltip-value{color:var(--ink);font-weight:600}@media (width<=640px){.weather-current{grid-template-columns:minmax(0,1fr) auto;min-height:160px;padding:1rem}.weather-current-icon{grid-area:1/2;width:58px;height:58px}.weather-current-chips{grid-area:2/1/auto/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;display:grid}.weather-chip{text-align:center;flex-wrap:wrap;justify-content:center}.weather-daily-summary{grid-template-columns:repeat(3,minmax(112px,1fr));padding-bottom:.25rem;overflow-x:auto}.weather-day-item{min-width:112px}}.field-measurement-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-sm);margin-top:.9rem;overflow:hidden}.field-measurement-header{border-bottom:1px solid var(--ink-10);justify-content:space-between;align-items:end;gap:1rem;padding:.9rem 1rem;display:flex}.field-measurement-header h5{margin-top:.15rem}.field-measurement-kicker{color:var(--leaf-strong);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.35rem;font-weight:750;display:flex}.field-measurement-select{min-width:min(290px,100%);color:var(--ink-60);font-size:var(--text-xs);gap:.2rem;font-weight:650;display:grid}.field-measurement-select select{height:38px;color:var(--ink);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);font:inherit;font-size:var(--text-sm);padding:0 2.2rem 0 .65rem}.field-measurement-fullscreen{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.field-measurement-figure{background:#eef2ed;margin:0}.field-measurement-figure svg{width:100%;min-height:260px;max-height:420px;display:block}.field-measurement-google{width:100%;height:370px}.field-google-value-label{white-space:nowrap;background:#fffffff0;border:1px solid #12392147;border-radius:999px;padding:2px 6px;box-shadow:0 1px 3px #12392133}.field-measurement-bg{fill:#e9efe9}.field-measurement-grid-line{fill:none;stroke:#12392114;stroke-width:1px}.field-measurement-boundary-fill{fill:#98d62814}.field-measurement-boundary{fill:none;stroke:var(--pine);stroke-width:2.5px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.field-heat-layer{opacity:var(--heat-opacity,.7);mix-blend-mode:multiply}.field-measurement-marker>circle{fill:var(--pine);stroke:#fff;stroke-width:3px;vector-effect:non-scaling-stroke}.field-measurement-marker>path{stroke:var(--pine);stroke-width:1.5px;vector-effect:non-scaling-stroke}.field-measurement-marker>rect{fill:#fffffff0;stroke:#12392147;stroke-width:1px;vector-effect:non-scaling-stroke}.field-measurement-marker>text{fill:var(--pine);font-size:11px;font-weight:750}.field-measurement-marker.missing{opacity:.62}.field-measurement-figure figcaption{color:var(--ink-60);background:var(--white);border-top:1px solid var(--ink-10);font-size:var(--text-xs);justify-content:space-between;gap:1rem;padding:.65rem 1rem;display:flex}.field-heat-legend{align-items:center;gap:.4rem;display:flex}.field-heat-legend i,.field-heat-legend b{border-radius:var(--radius-pill);width:34px;height:7px;display:inline-block}.field-heat-legend i{background:#2085e9}.field-heat-legend b{background:#e95220;margin-left:.35rem}.field-heat-opacity{align-items:center;gap:.45rem;margin-left:auto;display:flex}.field-heat-opacity input{width:120px;accent-color:var(--leaf-strong)}.field-heat-opacity output{min-width:2.6rem;color:var(--ink);font-variant-numeric:tabular-nums}.field-measurement-empty{min-height:180px;color:var(--ink-60);text-align:center;justify-content:center;align-items:center;gap:.45rem;padding:1rem;display:flex}.field-measurement-timeline{color:var(--ink-60);background:var(--white);border-top:1px solid var(--ink-10);font-size:var(--text-xs);grid-template-columns:auto minmax(150px,1fr) minmax(90px,auto);align-items:center;gap:.7rem;padding:.65rem 1rem .8rem;display:grid}.field-measurement-timeline input{width:100%;accent-color:var(--leaf-strong)}.field-measurement-timeline output{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;font-weight:650}.field-measurement-card.fullscreen{z-index:1000;border:0;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;inset:0}.field-measurement-card.fullscreen .field-measurement-figure{flex-direction:column;flex:auto;min-height:0;display:flex}.field-measurement-card.fullscreen .field-measurement-google,.field-measurement-card.fullscreen .field-measurement-figure>svg{flex:auto;height:100%;min-height:0;max-height:none}@media (width<=640px){.field-measurement-header{flex-direction:column;align-items:stretch}.field-measurement-select{width:100%}.field-measurement-figure svg{min-height:220px}.field-measurement-figure figcaption{flex-direction:column;align-items:flex-start}.field-heat-opacity{width:100%;margin-left:0}.field-heat-opacity input{flex:auto}.field-measurement-timeline{grid-template-columns:auto 1fr}.field-measurement-timeline input{grid-area:2/1/auto/-1}}.remote-sensing-fields{gap:.85rem;margin:0 0 1rem;display:grid}.remote-sensing-card{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.remote-sensing-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem;display:flex}.remote-sensing-card-toggle{border-radius:var(--radius-md);min-width:0;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;flex:260px;justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem .4rem;display:flex}.remote-sensing-card-toggle:hover{background:var(--cream)}.remote-sensing-card-toggle>span{flex-direction:column;gap:.1rem;min-width:0;display:flex}.remote-sensing-card-toggle strong{overflow-wrap:anywhere;font-size:.95rem}.remote-sensing-card-toggle>svg{color:var(--ink-60);flex:none}.remote-sensing-kicker{color:var(--ink-60);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.3rem;font-size:.68rem;font-weight:700;display:flex}.remote-sensing-tabs{background:var(--cream);border:1px solid var(--ink-10);border-radius:999px;max-width:100%;padding:.2rem;display:inline-flex;overflow-x:auto}.remote-sensing-tabs button{color:var(--ink-60);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;padding:.3rem .65rem;font-size:.75rem;font-weight:600}.remote-sensing-tabs button.active{background:var(--ink);color:var(--white);box-shadow:var(--shadow-sm)}.remote-sensing-controls{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.remote-sensing-status{min-height:210px;color:var(--ink-60);text-align:center;background:#e7e3d6;justify-content:center;align-items:center;gap:.45rem;padding:1rem;font-size:.8rem;display:flex}.remote-sensing-status.error{color:var(--red)}.remote-sensing-stats{background:var(--cream);border-bottom:1px solid var(--ink-10);align-items:stretch;gap:.75rem;padding:.6rem .75rem;display:flex}.remote-sensing-stat{flex-direction:column;gap:.1rem;min-width:0;display:flex}.remote-sensing-stat-kicker{color:var(--ink-60);letter-spacing:.04em;text-transform:uppercase;font-size:.62rem;font-weight:700}.remote-sensing-stat strong{font-size:1.15rem;line-height:1.1}.remote-sensing-stat-sub{color:var(--ink-60);font-size:.64rem}.remote-sensing-trend{flex:140px;align-items:flex-end;gap:3px;min-width:90px;height:42px;padding:0 .1rem;display:flex}.remote-sensing-trend i{background:var(--leaf-dark);opacity:.85;border-radius:2px 2px 0 0;flex:1 1 0}.remote-sensing-figure{margin:0}.remote-sensing-image-wrap{aspect-ratio:8/5;background:#d9d4c5;position:relative;overflow:hidden}.remote-sensing-image-wrap>.remote-sensing-google-map-wrap{aspect-ratio:auto;height:100%}.remote-sensing-map-fallback{position:absolute;inset:0}.remote-sensing-map-fallback>img{object-fit:fill;width:100%;height:100%;display:block}.remote-sensing-map-fallback>svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.remote-sensing-map-fallback polygon{fill:#ffffff14;stroke:#fff;stroke-width:2.5px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px #000000d9)}.remote-sensing-tooltip{z-index:2;border-radius:var(--radius-md);min-width:190px;max-width:min(260px,80%);color:var(--white);pointer-events:none;box-shadow:var(--shadow-md);background:#231f1beb;border:1px solid #ffffff4d;flex-direction:column;gap:.12rem;padding:.55rem .65rem;font-size:.7rem;line-height:1.35;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.remote-sensing-tooltip span{color:#ffffffd1}.remote-sensing-tooltip small{color:#ffffff9e;margin-top:.15rem;font-size:.62rem}.remote-sensing-tooltip .remote-sensing-tooltip-value{color:#9fe3a8;font-size:.85rem}.remote-sensing-raster{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.remote-sensing-figure figcaption{border-top:1px solid var(--ink-10);color:var(--ink-60);flex-wrap:wrap;align-items:center;gap:.35rem .75rem;padding:.55rem .75rem;font-size:.68rem;display:flex}.remote-sensing-section{margin-bottom:1rem}.remote-sensing-section .remote-sensing-fields{margin-bottom:0}.remote-sensing-google-map-wrap{aspect-ratio:8/5;background:#d9d4c5;position:relative;overflow:hidden}.remote-sensing-google-map{width:100%;height:100%}.remote-sensing-map-overlay{color:var(--ink-60);text-align:center;background:#e7e3d6;justify-content:center;align-items:center;padding:1rem;font-size:.8rem;display:flex;position:absolute;inset:0}.remote-sensing-map-overlay.error{color:var(--red)}.remote-sensing-measure-toggle{border:1px solid var(--ink-10);background:var(--cream);color:var(--ink-60);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .65rem;font-size:.75rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.remote-sensing-measure-toggle:hover{color:var(--ink)}.remote-sensing-measure-toggle.active{color:#fff;background:#20b85a;border-color:#20b85a}.remote-sensing-measure-select select{border:1px solid var(--ink-10);background:var(--cream);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:.3rem .5rem;font-size:.75rem;font-weight:600}.remote-sensing-opacity{color:var(--ink);align-items:center;gap:.4rem;margin-left:auto;font-weight:600;display:inline-flex}.remote-sensing-opacity input{width:110px}.remote-sensing-opacity output{min-width:2.5rem;color:var(--ink-60);font-variant-numeric:tabular-nums;text-align:right}.remote-sensing-history-nav{border-top:1px solid var(--ink-10);background:var(--cream);align-items:center;gap:.5rem;padding:.55rem .75rem;display:flex}.remote-sensing-history-nav button{border:1px solid var(--ink-10);border-radius:var(--radius-md);background:var(--white);color:var(--ink);cursor:pointer;justify-content:center;align-items:center;padding:.25rem;display:inline-flex}.remote-sensing-history-nav button:disabled{opacity:.4;cursor:default}.remote-sensing-history-nav input[type=range]{flex:1}.remote-sensing-history-count{color:var(--ink-60);font-variant-numeric:tabular-nums;flex:none;font-size:.72rem}.remote-sensing-history-nav .remote-sensing-history-retry{color:var(--red);padding:.2rem .45rem;font-size:.68rem}@media (width<=560px){.remote-sensing-header{align-items:stretch}.remote-sensing-controls{justify-content:stretch;width:100%}.remote-sensing-tabs{width:100%}.remote-sensing-opacity{width:100%;margin-left:0}.remote-sensing-opacity input{flex:1}.remote-sensing-history-nav{gap:.35rem}}.field-map-section{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-sm);margin-bottom:1rem;overflow:hidden}.field-map-section-header{border-bottom:1px solid var(--ink-10);background:linear-gradient(115deg, var(--cream), var(--white));justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.field-map-section-header h5{margin-top:.12rem}.field-map-section-kicker{color:var(--leaf-strong);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.35rem;font-weight:750;display:flex}.field-map-view-tabs{border:1px solid var(--ink-10);background:var(--white);border-radius:999px;max-width:100%;padding:.2rem;display:inline-flex;overflow-x:auto}.field-map-view-tabs button{color:var(--ink-60);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;padding:.38rem .75rem;font-weight:700}.field-map-view-tabs button.active{background:var(--ink);color:var(--white);box-shadow:var(--shadow-sm)}.field-map-section-content>.remote-sensing-card,.field-map-section-content>.field-measurement-card{box-shadow:none;border:0;border-radius:0;margin:0}@media (width<=600px){.field-map-section-header{flex-direction:column;align-items:stretch}.field-map-view-tabs{width:100%}.field-map-view-tabs button{flex:1 1 0}}.cultivation-calendar{--calendar-task:#b76a2b;--calendar-milestone:#85621c;--calendar-planting:#39744a;--calendar-event:#4e7555;--calendar-phenology:#98802f;--calendar-projection:#778078;--calendar-observation:#326c82;--calendar-spray:#73578c;background:#fff;border:1px solid #d6ded1;border-radius:16px;overflow:hidden;box-shadow:0 8px 26px #1f352612}.cultivation-calendar-header{background:linear-gradient(120deg,#f4f8ef,#fffdf6);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex}.cultivation-calendar-header>div:first-child{min-width:0}.cultivation-calendar-header span:first-child{color:#477753;letter-spacing:.09em;text-transform:uppercase;font-size:.68rem;font-weight:800}.cultivation-calendar-header h3{margin:.2rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.25rem}.cultivation-calendar-header p{color:var(--ink-60);margin:.2rem 0 0;font-size:.78rem}.cultivation-calendar-nav{grid-template-columns:34px minmax(130px,auto) 34px auto;align-items:center;gap:.3rem;display:grid}.cultivation-calendar-nav button{color:#315f3d;cursor:pointer;background:#fff;border:1px solid #d0dacb;border-radius:8px;place-items:center;min-width:34px;height:34px;display:grid}.cultivation-calendar-nav button:hover{background:#f1f6ed;border-color:#719174}.cultivation-calendar-nav svg{width:16px}.cultivation-calendar-nav strong{text-align:center;text-transform:capitalize;font-family:Georgia,Times New Roman,serif;font-size:.94rem}.cultivation-calendar-nav .calendar-today{width:auto;font:inherit;padding:0 .65rem;font-size:.72rem;font-weight:750}.cultivation-calendar-warning{color:#775516;background:#fff7e4;border-block:1px solid #edddb8;margin:0;padding:.45rem 1rem;font-size:.75rem}.cultivation-calendar-weekdays{background:#f8faf6;border-top:1px solid #e1e6de;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cultivation-calendar-weekdays span{color:var(--ink-50);letter-spacing:.06em;text-align:center;text-transform:uppercase;padding:.5rem;font-size:.65rem;font-weight:800}.cultivation-calendar-grid{border-top:1px solid #e1e6de;border-left:1px solid #e1e6de;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cultivation-calendar-grid>button{min-width:0;min-height:88px;color:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #e1e6de;border-top:0;border-left:0;align-content:start;gap:.35rem;padding:.4rem;display:grid}.cultivation-calendar-grid>button:hover{background:#f8faf5}.cultivation-calendar-grid>button.outside{color:var(--ink-40);background:#fafbf9}.cultivation-calendar-grid>button.selected{background:#eff6eb;box-shadow:inset 0 0 0 2px #6d936f}.cultivation-calendar-day-number{border-radius:50%;place-items:center;width:24px;height:24px;font-size:.72rem;font-weight:800;display:grid}.cultivation-calendar-grid>button.today .cultivation-calendar-day-number{color:#fff;background:#315f3d}.cultivation-calendar-day-items{gap:.22rem;min-width:0;display:grid}.calendar-item{color:#294e33;background:#edf5ea;border-radius:5px;align-items:center;gap:.28rem;min-width:0;padding:.2rem .3rem;font-size:.62rem;display:flex}.calendar-item i,.calendar-agenda-item>i{background:var(--calendar-event);border-radius:50%;flex:none;width:6px;height:6px}.calendar-item b{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.calendar-item-task{color:#754213;background:#fff0df}.calendar-item-task i,.calendar-agenda-item.calendar-item-task>i{background:var(--calendar-task)}.calendar-item-milestone{color:#705611;background:#fff6d8}.calendar-item-milestone i,.calendar-agenda-item.calendar-item-milestone>i{background:var(--calendar-milestone)}.calendar-item-planting i,.calendar-agenda-item.calendar-item-planting>i{background:var(--calendar-planting)}.calendar-item-phenology{color:#75631c;background:#fff8d9}.calendar-item-phenology i,.calendar-agenda-item.calendar-item-phenology>i{background:var(--calendar-phenology)}.calendar-item-projection{color:#59615b;background:#f2f4f2;border:1px dashed #9ba29c}.calendar-item-projection i,.calendar-agenda-item.calendar-item-projection>i{background:var(--calendar-projection)}.calendar-agenda-item.calendar-item-projection{background:#f7f8f7;border-style:dashed}.calendar-item-observation{color:#285d70;background:#eaf5f8}.calendar-item-observation i,.calendar-agenda-item.calendar-item-observation>i{background:var(--calendar-observation)}.calendar-item-spray{color:#604875;background:#f2ecf7}.calendar-item-spray i,.calendar-agenda-item.calendar-item-spray>i{background:var(--calendar-spray)}.cultivation-calendar-day-items small{color:var(--ink-50);padding-left:.3rem;font-size:.62rem;font-weight:800}.cultivation-calendar-state{min-height:260px;color:var(--ink-50);place-items:center;display:grid}.cultivation-calendar-agenda{gap:.45rem;padding:.85rem 1rem 1rem;display:grid}.cultivation-calendar-agenda-heading{color:#315f3d;align-items:center;gap:.45rem;margin-bottom:.15rem;display:flex}.cultivation-calendar-agenda-heading svg{width:17px}.cultivation-calendar-agenda-heading strong{font-family:Georgia,Times New Roman,serif;font-size:.95rem}.calendar-agenda-item{border:1px solid #e0e5dc;border-radius:9px;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.55rem .65rem;display:grid;position:relative}.calendar-agenda-item p{color:var(--ink-60);margin:.12rem 0 0;font-size:.72rem}.calendar-agenda-item time{color:var(--ink-50);align-items:center;gap:.25rem;font-size:.7rem;display:flex}.calendar-agenda-item time svg{width:13px}.cultivation-calendar-empty{color:var(--ink-50);text-align:center;margin:0;padding:.7rem;font-size:.78rem}.calendar-toolbar{border-top:1px solid #e1e6de;flex-wrap:wrap;align-items:start;gap:.7rem;padding:.7rem 1rem;display:flex}.calendar-toolbar button,.calendar-toolbar summary{color:#315f3d;cursor:pointer;background:#fff;border:1px solid #d0dacb;border-radius:7px;padding:.4rem .7rem;font-size:.8rem}.calendar-toolbar button[aria-pressed=true]{color:#fff;background:#315f3d}.calendar-toolbar details{position:relative}.calendar-toolbar details[open]{z-index:5}.calendar-toolbar details label{background:#fff;gap:.4rem;padding:.3rem;display:flex}.calendar-toolbar details[open]{padding-bottom:.4rem}.calendar-week-grid{border-block:1px solid #e1e6de;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-week-grid button{border:0;cursor:pointer;background:#fff;border-right:1px solid #e1e6de;gap:.3rem;min-width:0;padding:.75rem .4rem;display:grid}.calendar-week-grid button.selected{background:#eff6eb}.calendar-week-grid span{font-size:.7rem}.calendar-agenda-item>button{cursor:pointer;grid-column:2/-1;justify-self:end}.calendar-editor-backdrop{z-index:80;background:#14251b99;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.calendar-editor{background:#fff;border-radius:14px;gap:.8rem;width:min(520px,100%);max-height:90vh;padding:1.25rem;display:grid;overflow:auto}.calendar-editor h2{margin:0}.calendar-editor label{gap:.25rem;display:grid}.calendar-editor fieldset{border:1px solid #d6ded1;gap:.3rem;max-height:140px;display:grid;overflow:auto}.calendar-editor fieldset label{align-items:center;display:flex}.calendar-editor-actions{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=720px){.calendar-week-grid span{font-size:.6rem}.calendar-week-grid button{padding:.5rem .15rem}.cultivation-calendar-header{flex-direction:column;align-items:stretch}.cultivation-calendar-nav{grid-template-columns:40px minmax(0,1fr) 40px}.cultivation-calendar-nav button{min-height:40px}.cultivation-calendar-nav .calendar-today{grid-column:1/-1}.cultivation-calendar-grid>button{min-height:58px;padding:.25rem}.cultivation-calendar-day-number{width:22px;height:22px}.calendar-item{background:0 0;gap:2px;padding:.12rem}.calendar-item i{width:7px;height:7px}.calendar-item b{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.cultivation-calendar-day-items{flex-wrap:wrap;gap:2px;padding-left:.1rem;display:flex}.cultivation-calendar-day-items small{padding:0;font-size:.55rem}.calendar-agenda-item{grid-template-columns:8px minmax(0,1fr)}.calendar-agenda-item time{grid-column:2}}.setup-page{--setup-night:#20352a;--setup-mint:#dce9df;max-width:1060px;margin:0 auto}.setup-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.setup-heading h2{margin-top:.15rem;font-size:clamp(1.6rem,4vw,2.25rem);line-height:1.15}.setup-heading p{color:var(--ink-60);max-width:42rem;margin-top:.35rem}.setup-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.setup-eyebrow,.setup-kicker{color:var(--leaf);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.setup-serial{border:1px solid var(--ink-10);background:var(--white);color:var(--ink-60);border-radius:999px;flex-shrink:0;padding:.45rem .75rem;font-size:.8rem}.setup-serial strong{color:var(--ink);font-family:ui-monospace,monospace}.setup-progress{counter-reset:setup-step;grid-template-columns:repeat(4,1fr);margin:0 0 1rem;padding:0;list-style:none;display:grid}.setup-progress-three{grid-template-columns:repeat(3,1fr)}.setup-progress li{color:var(--ink-40);align-items:center;gap:.55rem;font-size:.78rem;font-weight:600;display:flex;position:relative}.setup-progress li:not(:last-child):after{content:"";z-index:-1;background:var(--ink-10);height:1px;position:absolute;top:50%;left:2rem;right:.5rem}.setup-progress li.active{color:var(--ink)}.setup-progress li.complete{color:var(--leaf)}.setup-progress li.complete:after{background:var(--leaf-light)}.setup-step-number{border:1px solid var(--ink-20);background:var(--cream);border-radius:50%;flex:0 0 1.75rem;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.75rem;display:inline-flex}.setup-step-number svg{width:.85rem}.setup-progress li.active .setup-step-number{border-color:var(--leaf);background:var(--leaf);color:var(--white)}.setup-progress li.complete .setup-step-number{border-color:var(--leaf);background:var(--setup-mint)}.setup-stage{border:1px solid var(--ink-10);background:radial-gradient(circle at 90% 10%, #6b9e7a24, transparent 33%), var(--white);min-height:510px;box-shadow:var(--shadow-md);border-radius:18px;overflow:hidden}.setup-identify,.setup-status-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:510px;padding:clamp(2rem,7vw,5rem);display:flex}.setup-identify h3,.setup-status-state h3,.setup-connect-copy h3,.setup-aim-panel h3{margin:.45rem 0 .65rem;font-size:clamp(1.4rem,3vw,2rem);line-height:1.2}.setup-identify>p,.setup-status-state>p,.setup-connect-copy>p,.setup-aim-panel>p{max-width:35rem;color:var(--ink-60)}.setup-icon-orbit{background:var(--setup-mint);width:4.5rem;height:4.5rem;color:var(--leaf-dark);border:1px solid #4a7c5940;border-radius:50%;place-items:center;margin-bottom:1.25rem;display:grid;box-shadow:0 0 0 10px #dce9df73}.setup-icon-orbit svg{width:2rem;height:2rem}.setup-icon-orbit.error{color:var(--red);background:#f7e6e4;border-color:#b4433c40;box-shadow:0 0 0 10px #f7e6e473}.setup-icon-orbit.success{color:var(--leaf-dark)}.setup-icon-orbit.searching svg{animation:1.4s linear infinite setup-spin}@keyframes setup-spin{to{transform:rotate(360deg)}}.setup-serial-form{text-align:left;width:min(100%,31rem);margin-top:1.5rem}.setup-serial-form label{margin-bottom:.4rem;font-size:.8rem;font-weight:600;display:block}.setup-serial-form>div{gap:.5rem;display:flex}.setup-serial-form .input{text-transform:uppercase;flex:1;min-width:0;font-family:ui-monospace,monospace}.setup-scan-hint{align-items:center;gap:.4rem;margin-top:1.25rem;font-size:.78rem;display:flex;color:var(--ink-40)!important}.setup-base-form{gap:.5rem;display:grid}.setup-base-form label:not(:first-child){margin-top:.65rem}.setup-base-form .setup-primary-action{justify-self:start}.setup-product-page{padding-top:clamp(1rem,3vw,2rem)}.setup-product-page .setup-heading{max-width:48rem;margin-bottom:2rem}.setup-product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.setup-product-card{border:1px solid var(--ink-10);background:var(--white);min-height:330px;color:var(--ink);text-align:left;box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:column;align-items:flex-start;padding:1.5rem;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.setup-product-card:after{content:"";background:#6b9e7a1f;border-radius:50%;width:9rem;height:9rem;position:absolute;bottom:-4rem;right:-3rem}.setup-product-card:nth-child(2):after{background:#b17a4221}.setup-product-card:nth-child(3){background:var(--setup-night);color:var(--white)}.setup-product-card:nth-child(3):after{background:#9dccaa21}.setup-product-card:hover{border-color:var(--leaf);box-shadow:var(--shadow-md);transform:translateY(-3px)}.setup-product-card:focus-visible{outline-offset:3px;outline:3px solid #4a7c5947}.setup-product-icon{background:var(--setup-mint);width:3.25rem;height:3.25rem;color:var(--leaf-dark);border-radius:14px;place-items:center;margin-bottom:2.5rem;display:grid}.setup-product-card:nth-child(2) .setup-product-icon{color:#87582f;background:#f3e6d8}.setup-product-card:nth-child(3) .setup-product-icon{color:#b8ddc2;background:#9dccaa29}.setup-product-icon svg{width:1.6rem;height:1.6rem}.setup-product-eyebrow{color:var(--leaf);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.45rem;font-size:.68rem;font-weight:800}.setup-product-card:nth-child(3) .setup-product-eyebrow{color:#9dccaa}.setup-product-card>strong{font-size:1.35rem}.setup-product-copy{color:var(--ink-60);margin-top:.65rem;font-size:.85rem;line-height:1.55}.setup-product-card:nth-child(3) .setup-product-copy{color:#ffffffad}.setup-product-meta{color:var(--ink-40);margin-top:auto;padding-top:1.5rem;font-size:.72rem;font-weight:700}.setup-product-card:nth-child(3) .setup-product-meta{color:#ffffff7a}.setup-future-note{color:var(--ink-40);text-align:center;margin-top:1rem;font-size:.75rem}.setup-connect-layout,.setup-preview-layout{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);min-height:510px;display:grid}.setup-connect-copy,.setup-aim-panel{flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(2rem,5vw,4rem);display:flex}.setup-network{border:1px solid var(--ink-10);border-radius:var(--radius-lg);background:var(--cream);align-items:center;gap:.75rem;width:100%;margin-top:1.5rem;padding:.9rem 1rem;display:flex}.setup-network>svg{color:var(--leaf)}.setup-network div{flex-direction:column;flex:1;min-width:0;display:flex}.setup-network small{color:var(--ink-60);font-size:.68rem}.setup-network strong{overflow-wrap:anywhere;font-family:ui-monospace,monospace}.setup-network>span{color:var(--ink-40);font-size:.7rem}.setup-warning{border-radius:var(--radius-md);color:#765719;background:#fbf4e5;align-items:flex-start;gap:.55rem;margin-top:1rem;padding:.75rem;font-size:.78rem;display:flex}.setup-warning svg{flex:0 0 1rem;width:1rem;height:1rem;margin-top:.1rem}.setup-warning.danger{color:#8c332e;background:#f8e9e7}.setup-primary-action{min-height:44px;margin-top:1.5rem}.setup-phone-guide{background:var(--setup-night);color:var(--white);flex-direction:column;justify-content:center;padding:clamp(2rem,5vw,4rem);display:flex}.setup-phone-guide>svg{color:#9dccaa;width:2rem;height:2rem;margin-bottom:1rem}.setup-phone-guide h4{margin-bottom:1.25rem;font-size:1.05rem}.setup-phone-guide div{border-bottom:1px solid #ffffff1f;flex-direction:column;margin-bottom:.8rem;padding-bottom:.8rem;display:flex}.setup-phone-guide div span{color:#ffffffad;margin-top:.15rem;font-size:.78rem}.setup-phone-guide small{color:#ffffff80}.setup-base-network-guide p{color:#ffffffad;margin-bottom:1.5rem;font-size:.85rem;line-height:1.55}.setup-poll-dots{gap:.35rem;margin-top:1.5rem;display:flex}.setup-poll-dots span{background:var(--leaf);border-radius:50%;width:.45rem;height:.45rem;animation:1s ease-in-out infinite alternate setup-pulse}.setup-poll-dots span:nth-child(2){animation-delay:.2s}.setup-poll-dots span:nth-child(3){animation-delay:.4s}@keyframes setup-pulse{to{opacity:.25;transform:translateY(-3px)}}.setup-state-actions{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:1.5rem;display:flex}.setup-preview-column{background:#18231d;flex-direction:column;min-width:0;padding:1.25rem;display:flex}.setup-preview-header{color:#ffffffa6;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;font-size:.75rem;display:flex}.setup-preview-header div{align-items:center;gap:.45rem;display:flex}.setup-preview-header strong{color:var(--white)}.setup-live-dot{background:#7fd094;border-radius:50%;width:.5rem;height:.5rem;display:inline-block;box-shadow:0 0 0 4px #7fd0941f}.setup-live-dot.offline{background:var(--red);box-shadow:0 0 0 4px #b4433c26}.setup-preview{border-radius:var(--radius-lg);background:#0c120f;flex:1;place-items:center;min-height:390px;display:grid;position:relative;overflow:hidden}.setup-preview img{object-fit:contain;opacity:0;width:100%;height:100%;position:absolute}.setup-preview.loaded img{opacity:1}.setup-preview-placeholder{color:#ffffff73;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.setup-preview-placeholder svg{width:1.25rem}.setup-live-label{z-index:1;color:var(--white);letter-spacing:.12em;background:#b4433ce0;border-radius:4px;padding:.2rem .45rem;font-size:.62rem;font-weight:800;position:absolute;top:.75rem;left:.75rem}.setup-aim-panel{background:var(--white)}.setup-checklist{color:var(--ink-60);gap:.65rem;margin-top:1.25rem;padding:0;font-size:.82rem;list-style:none;display:grid}.setup-checklist li{align-items:flex-start;gap:.5rem;display:flex}.setup-checklist svg{width:1rem;height:1rem;color:var(--leaf);flex:0 0 1rem;margin-top:.15rem}.setup-start-over{color:var(--ink-40);background:0 0;border:none;margin-top:.75rem;font-size:.75rem}.setup-start-over:hover{color:var(--ink);text-decoration:underline}.setup-countdown{color:var(--ink-60);align-items:baseline;gap:.4rem;margin:1.25rem 0;display:flex}.setup-countdown strong{color:var(--leaf-dark);font-size:2.5rem;line-height:1}.setup-countdown span{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}@media (width<=768px){.setup-heading{flex-direction:column;align-items:flex-start}.setup-heading-actions{justify-content:flex-start}.setup-product-grid{grid-template-columns:1fr}.setup-product-card{min-height:250px}.setup-product-icon{margin-bottom:1.5rem}.setup-progress li{justify-content:center}.setup-progress li>span:last-child{display:none}.setup-progress li:not(:last-child):after{left:calc(50% + 1rem);right:calc(1rem - 50%)}.setup-stage,.setup-identify,.setup-status-state,.setup-connect-layout,.setup-preview-layout{min-height:0}.setup-connect-layout,.setup-preview-layout{grid-template-columns:1fr}.setup-phone-guide{padding:1.5rem}.setup-preview-column{min-height:400px}.setup-preview{min-height:330px}.setup-connect-copy,.setup-aim-panel,.setup-identify,.setup-status-state{padding:2rem 1.25rem}}@media (width<=420px){.setup-serial-form>div{flex-direction:column}.setup-base-form .setup-primary-action{justify-content:center;width:100%}.setup-network>span{display:none}.setup-preview-column{min-height:320px;padding:.75rem}.setup-preview{min-height:260px}}@media (prefers-reduced-motion:reduce){.setup-icon-orbit.searching svg,.setup-poll-dots span{animation:none}}.field-reviews{gap:1rem;display:grid}.field-review-hero{min-height:180px;color:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:linear-gradient(125deg,#244d35 0%,#4a7c59 62%,#7e9b62 100%);justify-content:space-between;align-items:flex-end;gap:2rem;padding:2rem;display:flex;position:relative;overflow:hidden}.field-review-hero:after{content:"";border:1px solid #ffffff38;border-radius:50%;width:250px;height:250px;position:absolute;top:-145px;right:12%;box-shadow:0 0 0 42px #ffffff0d,0 0 0 84px #ffffff0a}.field-review-hero>*{z-index:1;position:relative}.field-review-hero h1{margin:.2rem 0 .5rem;font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.1}.field-review-hero p:last-child{color:#ffffffd1;max-width:620px}.field-review-hero .btn{background:var(--white);color:var(--leaf-dark);flex-shrink:0}.field-review-hero .btn:hover{background:var(--cream)}.field-review-kicker{letter-spacing:.12em;text-transform:uppercase;opacity:.75;font-size:.72rem;font-weight:700}.field-review-form{border-top:4px solid var(--leaf);padding:1.25rem}.field-review-form-heading,.field-review-entry-head,.field-review-actions{justify-content:space-between;gap:1rem;display:flex}.field-review-form-heading{align-items:flex-start;margin-bottom:1.25rem}.field-review-form-heading h2{font-size:1.25rem}.field-review-form-grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.field-review-form textarea,.field-review-toolbar input,.field-review-toolbar select{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);width:100%;color:var(--ink);font:inherit}.field-review-form textarea{resize:vertical;padding:.625rem .75rem}.field-review-form textarea:focus,.field-review-toolbar input:focus,.field-review-toolbar select:focus{outline:2px solid var(--leaf);outline-offset:1px}.field-review-capture-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.field-review-capture{text-align:center;border:1px dashed var(--ink-20);border-radius:var(--radius-lg);background:var(--cream);cursor:pointer;align-content:center;place-items:center;gap:.25rem;min-height:130px;padding:1rem;display:grid}.field-review-capture:hover{border-color:var(--leaf)}.field-review-capture>svg{color:var(--leaf)}.field-review-capture span{color:var(--ink-60);font-size:.8rem}.field-review-capture input{opacity:0;block-size:1px;inline-size:1px;position:absolute}.field-review-capture.recording{border-color:var(--red);background:#fff4f2}.field-review-capture.recording>svg{color:var(--red)}.field-review-audio-actions{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.field-review-audio-actions input{opacity:0;block-size:1px;inline-size:1px;position:absolute}.field-review-actions{justify-content:flex-end;margin-top:1.25rem}.field-review-toolbar{justify-content:space-between;align-items:flex-end;gap:1rem;padding:1rem;display:flex}.field-review-filters{flex:1;grid-template-columns:minmax(150px,1.4fr) minmax(150px,1.4fr) minmax(130px,1fr) minmax(130px,1fr);gap:.75rem;display:grid}.field-review-filters label{color:var(--ink-60);gap:.25rem;font-size:.75rem;font-weight:600;display:grid}.field-review-toolbar input,.field-review-toolbar select{min-height:38px;padding:.4rem .55rem}.field-review-toolbar .btn{white-space:nowrap;min-height:38px}.field-review-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.field-review-entry{padding:1.25rem}.field-review-entry-head{border-bottom:1px solid var(--ink-10);align-items:flex-start;padding-bottom:.85rem}.field-review-entry-head h2{font-size:1.15rem}.field-review-entry-head time{color:var(--ink-60);flex-shrink:0;font-size:.78rem}.field-review-location{color:var(--leaf);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:700}.field-review-note{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:1rem}.field-review-media{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem;display:grid}.field-review-media img{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-md);width:100%}.field-review-media audio{grid-column:1/-1;width:100%;height:38px}.field-review-author{color:var(--ink-40);margin-top:1rem;font-size:.75rem}.field-review-state{text-align:center;color:var(--ink-60);padding:3rem}.field-review-empty{text-align:center;color:var(--ink-60);padding:3rem 1rem}.field-review-empty svg{color:var(--leaf);margin:0 auto .75rem}.field-review-empty h2{color:var(--ink);font-size:1.15rem}.field-review-error{color:var(--red);border-radius:var(--radius-md);background:#fff4f2;border:1px solid #e8bbb7;padding:.75rem 1rem}@media (width<=900px){.field-review-form-grid{grid-template-columns:1fr 1fr}.field-review-toolbar{flex-direction:column;align-items:stretch}.field-review-toolbar .btn{align-self:flex-end}}@media (width<=700px){.field-review-hero{flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:1rem;min-height:210px;padding:1.25rem}.field-review-form-grid,.field-review-capture-grid,.field-review-filters,.field-review-list{grid-template-columns:1fr}.field-review-form{padding:1rem}.field-review-toolbar .btn{align-self:stretch}.field-review-entry-head{flex-direction:column;gap:.35rem}}.device-locator-gallery{gap:.25rem;width:fit-content;margin-top:.45rem;display:grid}.device-locator-thumbs{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.device-locator-thumb,.device-locator-add{cursor:pointer;border-radius:7px;flex:0 0 40px;width:40px;height:40px;padding:0;overflow:hidden}.device-locator-thumb{background:#ffffff1f;border:1px solid #ffffff7a}.device-locator-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .12s;display:block}.device-locator-thumb:hover img{transform:scale(1.08)}.device-locator-add{color:#fff;background:#ffffff1a;border:1px dashed #ffffff94;place-items:center;display:grid}.device-locator-add:hover{background:#ffffff2e}.device-locator-add:disabled{cursor:wait;opacity:.65}.device-locator-gallery.light .device-locator-thumb{border-color:var(--ink-20);background:var(--cream)}.device-locator-gallery.light .device-locator-add{color:var(--leaf-dark);background:var(--cream);border-color:var(--ink-20)}.device-locator-gallery.light .device-locator-add:hover{background:#edf3e8}.device-locator-error{color:#ffd7d3;max-width:250px;font-size:.68rem;line-height:1.3}.device-locator-gallery.light .device-locator-error{color:var(--red)}.device-locator-modal{z-index:10000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c120dd1;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.device-locator-dialog{background:#111a13;border:1px solid #ffffff38;border-radius:14px;max-width:min(920px,96vw);max-height:94vh;display:grid;overflow:hidden;box-shadow:0 24px 70px #0000007a}.device-locator-dialog>img{object-fit:contain;max-width:100%;max-height:calc(94vh - 64px);margin:auto;display:block}.device-locator-dialog-bar{color:#fff;background:#18231b;border-top:1px solid #ffffff24;align-items:center;gap:.55rem;padding:.65rem;display:flex}.device-locator-dialog-bar>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.76rem;overflow:hidden}.device-locator-dialog-bar .btn-danger{color:#fff;background:#a83f45;border-color:#a83f45}.device-locator-dialog-bar .btn-danger:hover{background:#8f3137;border-color:#8f3137}@media (width<=520px){.device-locator-dialog-bar{flex-wrap:wrap}.device-locator-dialog-bar>span{flex-basis:100%;width:100%}}.sensor-detail-page{gap:1rem;display:grid}.sensor-detail-back{justify-self:start;padding-left:0}.sensor-device-rows{gap:.4rem;display:grid}.detail-value-firmware{align-items:center;gap:.4rem;display:inline-flex}.sensor-detail-header{color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:linear-gradient(125deg,#294f32 0%,#4e7c49 58%,#738d50 100%);flex-wrap:wrap;align-items:flex-start;gap:1rem 1.5rem;padding:1.3rem 1.5rem;display:flex}.sensor-detail-headline{flex:220px;min-width:0}.sensor-detail-header h2{color:#fff;align-items:center;gap:.4rem;margin:.15rem 0 .3rem;display:inline-flex}.sensor-detail-header .text-muted{color:#ffffffb8}.sensor-detail-name{flex-direction:column;display:flex}.sensor-detail-rename{color:#fffc}.sensor-detail-rename:hover{color:#fff;background:#ffffff24}.sensor-detail-name-edit{align-items:center;gap:.35rem;margin:.15rem 0 .3rem;display:inline-flex}.sensor-detail-name-edit input{color:#fff;background:#ffffff26;border:1px solid #ffffff8c;border-radius:8px;min-width:220px;max-width:100%;padding:.15rem .5rem;font-size:1.5rem;font-weight:700}.sensor-detail-name-edit .btn-icon{color:#fff}.sensor-detail-name-error{color:#ffd7d3;margin:0 0 .3rem;font-size:.8rem}.sensor-detail-versions{color:#ffffffd1;flex-direction:column;align-items:flex-start;gap:.15rem;margin-top:.35rem;font-size:.85rem;display:flex}.sensor-detail-firmware{align-items:center;gap:.35rem;display:inline-flex}.sensor-detail-versions .btn-icon{color:#fff}.sensor-detail-eyebrow{color:#ffffffc2;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.73rem;font-weight:700}.sensor-detail-status{border-radius:var(--radius-md);background:#ffffff1c;border:1px solid #ffffff2e;gap:.55rem;min-width:220px;padding:.75rem .9rem;font-size:.8rem;display:grid}.sensor-detail-status>span{align-items:center;gap:.45rem;display:flex}.sensor-detail-status .status-dot{outline:2px solid #ffffff47}.sensor-map{border-radius:var(--radius-md);background:#ffffff1c;border:1px solid #ffffff2e;flex:0 0 300px;height:168px;position:relative;overflow:hidden}.sensor-map-canvas{width:100%;height:100%}.sensor-map.svg>svg{width:100%;height:100%;display:block}.sensor-map-bg{fill:#ffffff0f}.sensor-map-field{fill:#ffd16633;stroke:#ffd166;stroke-width:2px;vector-effect:non-scaling-stroke}.sensor-map-device circle:first-of-type{fill:#b9e6c4;stroke:#fff;stroke-width:2.5px}.sensor-map-device-core{fill:#294f32;stroke:none}.sensor-map.empty{color:#ffffffbf;text-align:center;align-content:center;place-items:center;gap:.35rem;font-size:.74rem;display:grid}.sensor-map-veil{opacity:0;pointer-events:none;background:#294f32;transition:opacity .18s;position:absolute;inset:0}.sensor-map.fading .sensor-map-veil{opacity:1}.sensor-map-toggle{z-index:2;background:#ffffffeb;border-radius:999px;display:flex;position:absolute;top:.45rem;left:.45rem;overflow:hidden;box-shadow:0 1px 4px #23231e52}.sensor-map-toggle button{color:var(--ink-60);font:inherit;cursor:pointer;background:0 0;border:0;padding:.2rem .6rem;font-size:.68rem;font-weight:650}.sensor-map-toggle button.active{color:#fff;background:var(--leaf)}.sensor-map-toggle button:disabled{cursor:not-allowed;opacity:.55}@media (prefers-reduced-motion:reduce){.sensor-map-veil{transition:none}}.sensor-last-header{align-items:center}.sensor-last-header h3{margin:0}.sensor-last-header-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem .9rem;display:flex}.sensor-last-header-right .toggle-btn{align-items:center;gap:.3rem;display:inline-flex}.sensor-profile{min-width:0}.sensor-profile svg{width:100%;height:auto;display:block}.sensor-profile-ground{stroke:#8a7b5f;stroke-width:2px}.sensor-profile-ground-label{fill:#7d6f55;letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.sensor-profile-mast{fill:#b6bcc4}.sensor-profile-probe{fill:#8f8674}.sensor-profile-device rect{fill:#34523a;stroke:#24381f;stroke-width:1.5px}.sensor-profile-device text{fill:var(--ink);font-size:12px;font-weight:700}.sensor-profile-dot{stroke:#fff;stroke-width:2.5px}.sensor-profile-leader{fill:none;stroke:#23231e52;stroke-width:1.2px;stroke-dasharray:3 2}.sensor-profile-name{fill:var(--ink-60);font-size:11px;font-weight:650}.sensor-profile-value{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.sensor-profile-unit{fill:var(--ink-60);font-size:11px;font-weight:600}.sensor-profile-height{fill:var(--ink-40);font-variant-numeric:tabular-nums;font-size:10.5px}.sensor-profile-missing{color:var(--ink-40);margin:.5rem 0 0;font-size:.74rem;line-height:1.5}.sensor-last-time{color:var(--ink-60);font-variant-numeric:tabular-nums;align-items:center;gap:.4rem;font-size:.76rem;display:inline-flex}.sensor-last-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.sensor-last-metric{border:1px solid var(--ink-10);border-radius:var(--radius-md);background:linear-gradient(135deg,#fafbf7,#f0f4eb);align-items:center;gap:.75rem;min-width:0;padding:.85rem .85rem .7rem;transition:border-color .12s;display:flex;position:relative}.sensor-last-metric.selected{border-color:var(--leaf);box-shadow:inset 0 0 0 1px #4e8b5759}.sensor-last-check{cursor:pointer;margin:0;position:absolute;top:.55rem;right:.55rem}.sensor-last-check:disabled{cursor:not-allowed;opacity:.45}.sensor-height-field{align-items:center;gap:.3rem;margin-top:.3rem;display:inline-flex}.sensor-height-field input{width:68px;min-height:26px;color:var(--ink);border:1px solid var(--ink-20);border-radius:var(--radius-sm);font:inherit;font-variant-numeric:tabular-nums;background:#fff;padding:.15rem .35rem;font-size:.72rem}.sensor-height-field input::placeholder{color:var(--ink-40)}.sensor-height-field small{color:var(--ink-40);font-size:.68rem}.sensor-last-icon{background:#fff;border:1px solid;border-radius:14px;flex:0 0 46px;place-items:center;width:46px;height:46px;display:grid;box-shadow:0 3px 10px #23231e12}.sensor-last-icon svg{stroke-width:1.8px;width:27px;height:27px}.sensor-last-copy{gap:.18rem;min-width:0;display:grid}.sensor-last-name{color:var(--ink-60);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:650;overflow:hidden}.sensor-last-value{font-variant-numeric:tabular-nums;align-items:baseline;gap:.3rem;display:flex}.sensor-last-value strong{color:var(--ink);letter-spacing:-.025em;font-size:1.35rem;font-weight:650;line-height:1.1}.sensor-last-value span{color:var(--ink-60);white-space:nowrap;font-size:.72rem}.sensor-detail-controls .card-body{gap:1.2rem;display:grid}.sensor-date-controls{grid-template-columns:minmax(150px,220px) minmax(150px,220px) auto;align-items:end;gap:.75rem;display:grid}.sensor-date-controls label{color:var(--ink-60);gap:.35rem;font-size:.76rem;font-weight:700;display:grid}.sensor-date-controls input{min-height:var(--select-height);color:var(--ink);border:.8px solid var(--control-border);border-radius:var(--control-radius);font:inherit;background:#fff;padding:0 .6rem}.sensor-date-controls .btn{min-height:var(--select-height)}.sensor-selector{border:0;min-width:0;margin:0;padding:0}.sensor-selector legend{margin-bottom:.2rem;font-size:.83rem;font-weight:700}.sensor-selector .text-muted{margin:0 0 .55rem}.sensor-selector-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;display:grid}.sensor-selector-grid label{background:var(--cream);border:1px solid var(--ink-10);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:.45rem;min-width:0;padding:.65rem .7rem;transition:border-color .12s,background .12s;display:grid}.sensor-selector-grid label.selected{border-color:var(--leaf);background:#eef6ea}.sensor-selector-grid label:has(input:disabled){cursor:not-allowed;opacity:.55}.sensor-selector-grid span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;font-weight:600;overflow:hidden}.sensor-selector-grid small{color:var(--ink-40);font-size:.68rem}.sensor-align-option{cursor:pointer;align-items:flex-start;gap:.55rem;width:fit-content;display:flex}.sensor-align-option input{margin-top:.2rem}.sensor-align-option span{gap:.15rem;font-size:.8rem;display:grid}.sensor-align-option small{max-width:760px;color:var(--ink-60);line-height:1.45}.sensor-detail-loading,.sensor-detail-empty{min-height:150px;color:var(--ink-40);justify-content:center;align-items:center;gap:.55rem;display:flex}.sensor-detail-error{color:var(--red);border-radius:var(--radius-sm);background:#fff2ef;border:1px solid #efc0b8;margin:0;padding:.7rem .85rem;font-size:.8rem}.sensor-detail-graph-card .card-body{padding:.65rem 1rem 1rem}.sensor-detail-chart{min-width:0}.sensor-echart{width:100%;height:420px}.sensor-detail-chart>p{margin:.45rem .2rem 0;line-height:1.5}.sensor-overview-card .card-body{gap:.6rem;display:grid}.sensor-overview-hint{margin:0;line-height:1.5}.sensor-detail-data-card>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;list-style:none;display:flex}.sensor-detail-data-card>summary::-webkit-details-marker{display:none}.sensor-detail-data-card>summary:after{content:"+";color:var(--ink-40);font-size:1rem;line-height:1}.sensor-detail-data-card[open]>summary:after{content:"−"}.sensor-detail-data-card>summary>span:first-child{font-weight:650}.sensor-detail-data-actions{padding-bottom:.75rem}.sensor-export-actions{gap:.45rem;display:flex}.sensor-data-table-wrap{border-top:1px solid var(--ink-10);max-height:540px;overflow:auto}.sensor-data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.76rem}.sensor-data-table th,.sensor-data-table td{text-align:right;border-bottom:1px solid var(--ink-10);white-space:nowrap;padding:.55rem .7rem}.sensor-data-table th{z-index:1;color:var(--ink-60);text-transform:uppercase;background:#f5f4ec;font-size:.7rem;position:sticky;top:0}.sensor-data-table th:first-child,.sensor-data-table td:first-child{text-align:left}.sensor-data-table tbody tr:nth-child(2n){background:#f5f4ec73}@media (width<=760px){.sensor-detail-header{gap:1rem;padding:1.1rem;display:grid}.sensor-detail-status{min-width:0}.sensor-map{flex:auto;width:100%;height:190px}.sensor-last-grid,.sensor-date-controls{grid-template-columns:1fr 1fr}.sensor-date-controls .btn{grid-column:1/-1}.sensor-selector-grid{grid-template-columns:1fr 1fr}.sensor-echart{height:340px}.sensor-detail-data-header{align-items:flex-start;gap:.7rem}}@media (width<=460px){.sensor-last-header{align-items:flex-start;gap:.35rem}.sensor-last-grid,.sensor-date-controls,.sensor-selector-grid{grid-template-columns:1fr}.sensor-export-actions{width:100%}.sensor-export-actions .btn{flex:1}}.fields-overview-map{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.25rem;overflow:hidden}.fields-overview-map-bar{border-bottom:1px solid var(--ink-10);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .8rem;display:flex}.fields-overview-map-title{color:var(--ink);margin:0;font-size:1rem;font-weight:600}.fields-overview-map-body{width:100%;position:relative}.fields-overview-map-canvas{width:100%;height:340px}.fields-overview-map-svg{background:#f4f1e6;width:100%;height:340px;display:block}.fields-overview-map-svg-bg{fill:#eef2e6}.fields-overview-map-svg-field{fill:#e74c3c47;stroke:#c0392b;stroke-width:2px}.fields-overview-map-empty{min-height:220px;color:var(--ink-40);text-align:center;align-content:center;place-items:center;gap:.4rem;padding:1rem;font-size:.82rem;display:grid}.fields-overview-map-legend{border-top:1px solid var(--ink-10);color:var(--ink-60);flex-wrap:wrap;gap:.9rem;padding:.55rem .8rem;font-size:.72rem;display:flex}.fields-overview-map-legend span{align-items:center;gap:.35rem;display:inline-flex}.fields-overview-map-legend i{width:10px;height:10px;box-shadow:0 0 0 1px var(--ink-10);border:1.5px solid #fff;border-radius:50%}.farm-map-info{color:#1c1c1c;font-size:.8rem;line-height:1.35}.farm-map-info strong{display:block}.fields-overview-map.fullscreen{z-index:1000;background:var(--white);border:none;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;inset:0}.fields-overview-map.fullscreen .fields-overview-map-body{flex:auto;min-height:0}.fields-overview-map.fullscreen .fields-overview-map-canvas,.fields-overview-map.fullscreen .fields-overview-map-svg{height:100%}.firmware-admin-page{gap:1.25rem;display:grid}.firmware-title-row{justify-content:space-between;align-items:end;gap:1rem;display:flex}.firmware-title-row h2{margin:.3rem 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:500;line-height:1.05}.firmware-title-row p{color:var(--ink-60);max-width:680px}.firmware-safety{border-radius:var(--radius-lg);border:1px solid;gap:.8rem;padding:1rem;display:flex}.firmware-safety.ready{color:var(--leaf-dark);background:#edf6ed;border-color:#b7d4bb}.firmware-safety.blocked{color:#745719;background:#fff7e5;border-color:#dfc68f}.firmware-safety>svg{flex:none}.firmware-safety>div{gap:.1rem;display:grid}.firmware-safety span,.firmware-safety code{font-size:.78rem}.firmware-release-note{color:var(--ink-60);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.firmware-tabs{border-bottom:1px solid var(--ink-10);display:flex}.firmware-tabs button{color:var(--ink-60);background:0 0;border:0;border-bottom:3px solid #0000;padding:.65rem 1rem}.firmware-tabs button.active{border-bottom-color:var(--leaf);color:var(--leaf-dark);font-weight:600}.firmware-layout{grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr);align-items:start;gap:1rem;display:grid}.firmware-upload-card{top:calc(var(--header-height) + 1rem);position:sticky}.firmware-upload-card .card-header,.firmware-admin-page .card-header{align-items:center;gap:.5rem;display:flex}.firmware-form{gap:.8rem;display:grid}.firmware-form>label:not(.firmware-check),.firmware-form-grid label{color:var(--ink-60);gap:.25rem;font-size:.76rem;display:grid}.firmware-form input,.firmware-form textarea,.firmware-form select{width:100%;height:var(--control-height);border:.8px solid var(--control-border);border-radius:var(--control-radius);padding:0 var(--space-lg);color:var(--ink);background:var(--control-bg);font:inherit;font-size:var(--text-body)}.firmware-form textarea{resize:vertical;height:auto;padding:.5rem .65rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.firmware-form-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.firmware-check{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.firmware-check input{width:auto}.firmware-build-list,.firmware-assignment-list{gap:.75rem;display:grid}.firmware-build{padding:1rem}.firmware-build-head{align-items:center;gap:.7rem;margin-bottom:.8rem;display:flex}.firmware-build-head>svg{color:var(--leaf)}.firmware-build-head h3{font-size:1.05rem}.firmware-build-head code{color:var(--ink-60);font-size:.72rem}.firmware-state{background:var(--ink-10);color:var(--ink-60);text-transform:uppercase;border-radius:999px;padding:.2rem .55rem;font-size:.66rem;font-weight:700;display:inline-block}.firmware-build-head .firmware-state{margin-left:auto}.firmware-state.state-published,.firmware-state.state-installed,.firmware-state.state-ready{color:var(--leaf-dark);background:#dcecdc}.firmware-state.state-revoked,.firmware-state.state-failed,.firmware-state.state-rejected{color:var(--red);background:#f3dedd}.firmware-state.state-downloading,.firmware-state.state-verifying{color:#315b75;background:#e1eaf2}.firmware-build dl{grid-template-columns:1fr 1fr;gap:.55rem 1rem;display:grid}.firmware-build dl>div{min-width:0}.firmware-build dt{color:var(--ink-40);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem}.firmware-build dd{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.firmware-actions{justify-content:flex-end;margin-top:.9rem;display:flex}.firmware-device-picker{border:1px solid var(--ink-10);border-radius:var(--radius-md);max-height:280px;padding:.5rem;overflow:auto}.firmware-device-picker legend{color:var(--ink-60);padding:0 .35rem;font-size:.76rem}.firmware-device-picker label{border-radius:6px;align-items:center;gap:.6rem;padding:.45rem;display:flex}.firmware-device-picker label:hover{background:var(--cream)}.firmware-device-picker input{width:auto}.firmware-device-picker span{display:grid}.firmware-device-picker small{color:var(--ink-60)}.firmware-assignment{grid-template-columns:1fr auto;gap:.25rem 1rem;padding:1rem;display:grid}.firmware-assignment>div{display:grid}.firmware-assignment p,.firmware-assignment small{color:var(--ink-60);grid-column:1}.firmware-assignment button{grid-area:1/2/span 3}.firmware-assignment.inactive{opacity:.55}.firmware-empty{text-align:center;color:var(--ink-60);border:1px dashed var(--ink-20);border-radius:var(--radius-lg);padding:3rem 1rem}.firmware-fleet{gap:1rem;display:grid}.firmware-fleet-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.7rem;display:grid}.firmware-fleet-stats article{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-lg);grid-template-columns:auto 1fr;align-items:center;gap:.1rem .55rem;padding:.85rem;display:grid}.firmware-fleet-stats article svg{color:var(--leaf);grid-row:1/span 2}.firmware-fleet-stats article strong{font-size:1.35rem;line-height:1}.firmware-fleet-stats article span{color:var(--ink-60);text-transform:capitalize;font-size:.72rem}.firmware-fleet-stats article.warning svg{color:var(--amber)}.firmware-failures .card-body{flex-wrap:wrap;gap:.5rem;display:flex}.firmware-failures span{background:#fff0ee;border-radius:999px;gap:.6rem;padding:.3rem .6rem;display:flex}.firmware-device-table-wrap{border:.8px solid var(--border);border-radius:var(--radius-lg);background:var(--white);overflow-x:auto}.firmware-device-table{border-collapse:collapse;width:100%;font-size:.875rem}.firmware-device-table th,.firmware-device-table td{text-align:left;padding:.5rem var(--space-lg);border-bottom:.8px solid var(--table-border);vertical-align:top}.firmware-device-table th{color:var(--table-head-text);background:var(--table-head-bg);white-space:nowrap;height:48px;font-weight:400}.firmware-device-table td{color:var(--ink)}.firmware-device-table td>code{text-overflow:ellipsis;max-width:150px;display:block;overflow:hidden}.firmware-device-table details summary{cursor:pointer;min-width:180px;display:grid}.firmware-device-table details summary small{color:var(--ink-60)}.firmware-device-table progress{width:100px;accent-color:var(--leaf)}.firmware-device-table td>small{display:block}.firmware-history{gap:.25rem;min-width:360px;margin-top:.6rem;display:grid}.firmware-history>div{background:var(--cream);grid-template-columns:1.5fr .8fr .8fr;gap:.5rem;padding:.3rem;display:grid}@media (width<=800px){.firmware-layout{grid-template-columns:1fr}.firmware-upload-card{position:static}.firmware-title-row{flex-direction:column;align-items:flex-start}}@media (width<=520px){.firmware-build dl,.firmware-form-grid{grid-template-columns:1fr}.firmware-tabs button{flex:1;padding-inline:.3rem}}.firmware-hint{color:var(--ink-60);margin-top:.2rem;font-size:.7rem;font-weight:400;display:block}.firmware-manifest-loaded{color:var(--leaf);border-radius:var(--radius-sm);background:#e8f5e9;margin:0;padding:.5rem .65rem;font-size:.78rem}.firmware-binary-issue{color:var(--red);border-radius:var(--radius-sm);background:#fdecea;margin:0;padding:.5rem .65rem;font-size:.78rem}.journal-page{--journal-ink:#183226;--journal-paper:#fbfaf4;--journal-rule:#234f3524;color:var(--journal-ink);gap:1.1rem;display:grid}.journal-hero{background:linear-gradient(90deg, transparent 0 52px, #b5593729 52px 53px, transparent 53px), repeating-linear-gradient(0deg, var(--journal-paper) 0 31px, #dfe7da 31px 32px);border:1px solid #d9dfd1;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.1rem;padding:1.35rem 1.5rem;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 30px #1c372614}.journal-hero:after{content:"";border:1.6rem solid #3d704812;border-radius:50%;width:12rem;height:12rem;position:absolute;bottom:-5rem;right:-3rem}.journal-hero-mark{z-index:1;color:#fff;background:#315f3d;border-radius:14px;place-items:center;width:54px;height:54px;display:grid;position:relative;box-shadow:4px 4px #b6c9ad}.journal-hero-mark svg{width:27px;height:27px}.journal-hero h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1}.journal-hero p{max-width:720px;color:var(--ink-60);margin:.35rem 0 0}.journal-kicker{letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:800;color:#467651!important}.journal-context{z-index:1;align-items:end;gap:.65rem;display:flex;position:relative}.journal-context label,.journal-toolbar label{color:var(--ink-60);gap:.3rem;font-size:.72rem;font-weight:700;display:grid}.journal-context .input{width:92px}.journal-context .select{min-width:180px}.company-cultivation-calendar{min-width:0}.journal-field-tabs{scroll-snap-type:x proximity;gap:.55rem;margin:.15rem 0 .35rem;padding:.25rem 0 .45rem;display:flex;overflow-x:auto}.journal-field-tabs>button{background:var(--white);color:var(--ink);font:inherit;text-align:left;scroll-snap-align:start;cursor:pointer;border:1px solid #d9dfd1;border-radius:12px;flex:0 0 min(250px,78vw);gap:.12rem;padding:.7rem .85rem;display:grid;box-shadow:0 2px 8px #1f35260d}.journal-field-tabs>button:hover{background:#f6f8f2;border-color:#477753}.journal-field-tabs>button.active{background:linear-gradient(135deg, #f1f8ef, var(--white));border-color:#477753;box-shadow:inset 0 -3px #477753}.journal-field-tabs>button>span{color:var(--ink-60);font-size:.72rem}.journal-field-tabs>button>strong{overflow-wrap:anywhere;font-size:.96rem}.journal-field-tabs>button>small{color:var(--ink-60);font-size:.7rem;line-height:1.35}.journal-field-tabs .journal-empty{width:100%}.journal-readonly,.journal-message{border-radius:10px;align-items:center;gap:.55rem;padding:.75rem .9rem;font-size:.88rem;display:flex}.journal-readonly{color:#755620;background:#fff8df;border:1px solid #eadba3}.journal-message svg,.journal-readonly svg{flex:none;width:18px}.journal-message.error{color:#8f3027;background:#fff1ef;border:1px solid #efc5bf}.journal-message.success{color:#295f38;background:#eef8ed;border:1px solid #c5dfc1}.journal-loading{color:var(--ink-60);text-align:center;padding:2rem}.journal-season-section{background:linear-gradient(180deg, var(--journal-paper), var(--white));border:1px solid #d9dfd1;border-radius:16px;gap:.9rem;min-width:0;padding:1rem;display:grid;box-shadow:0 6px 22px #1f35260f}.journal-season-detail,.season-graphs{gap:1rem;min-width:0;display:grid}.season-delete{color:#9a332e;width:fit-content}.timeline-insertion{border-left:1px solid #dce4d8;align-items:center;min-width:0;min-height:38px;margin-left:1rem;padding:.12rem 0 .12rem 1rem;display:flex;position:relative}.timeline-insertion:has(.timeline-insert-menu){z-index:5}.timeline-insert-button{color:#315f3d;cursor:pointer;background:#f5faf3;border:1px solid #abc8a9;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.timeline-insert-button[aria-expanded=true]{color:#fff;background:#397448;border-color:#397448}.timeline-insert-menu{z-index:2;pointer-events:none;width:230px;height:220px;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.timeline-radial-action{color:#315f3d;cursor:pointer;pointer-events:auto;background:#fff;border:1px solid #aacaa8;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid;position:absolute;box-shadow:0 3px 12px #1f35262e}.timeline-radial-action svg{width:21px;height:21px}.timeline-radial-action:hover,.timeline-radial-action[aria-expanded=true]{color:#fff;background:#397448;border-color:#397448}.timeline-radial-action:focus-visible,.timeline-scouting-choices button:focus-visible,.timeline-insert-button:focus-visible{outline-offset:2px;outline:3px solid #e6a334}.radial-operation{top:3px;left:73px}.radial-spray{top:26px;left:136px}.radial-phenology{top:88px;left:158px}.radial-scouting{top:150px;left:136px}.radial-task{top:173px;left:73px}.radial-planting{top:88px;left:72px}.timeline-scouting-choices{pointer-events:auto;background:#f5f7f2;border:1px solid #d9dfd1;border-radius:10px;gap:.3rem;width:177px;padding:.4rem;display:grid;position:absolute;top:226px;left:40px;box-shadow:0 4px 14px #1f352626}.timeline-scouting-choices button{color:#315f3d;min-height:38px;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #d4decf;border-radius:7px;padding:.35rem .55rem;font-size:.78rem}.timeline-tools{flex-wrap:wrap;gap:.2rem;display:flex}.spray-panel,.observation-panel{border:1px solid var(--border);background:var(--white);border-radius:16px;box-shadow:0 6px 22px #1f35260f}.journal-section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.6rem;padding:.85rem 1rem;display:flex}.journal-section-heading>div{align-items:baseline;gap:.45rem;display:flex}.journal-section-heading span{color:var(--ink-60);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:800}.journal-section-heading strong{color:#315f3d;background:#edf5e9;border-radius:50%;place-items:center;min-width:24px;height:24px;font-size:.75rem;display:grid}.season-strip{scroll-snap-type:x proximity;gap:.5rem;padding:.1rem 0 .35rem;display:flex;overflow-x:auto}.season-strip .season-card{scroll-snap-align:start;min-height:100%;color:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #d9dfd1;border-radius:11px;flex:0 0 min(230px,72vw);gap:.38rem;padding:.85rem;display:grid}.season-card:hover{background:#f6f8f2}.season-card.selected{background:#f0f6ec;border-color:#b8cdb4;box-shadow:inset 3px 0 #477753}.season-strip .season-card.selected{box-shadow:inset 0 -3px #477753}.season-card strong{font-family:Georgia,Times New Roman,serif;font-size:1.03rem}.season-card>span:not(.journal-status){color:var(--ink-60);align-items:center;gap:.3rem;font-size:.78rem;display:flex}.season-card small{color:#477753;font-weight:700}.journal-locked-field{color:var(--ink-70);background:#f0f5ed;border:1px solid #ccd9c7;border-radius:9px;padding:.6rem .7rem;font-weight:700;display:block}.record-type-selector{background:#f5f7f2;border:1px solid #d9dfd1;border-radius:12px;flex-wrap:wrap;gap:.35rem;padding:.4rem;display:flex}.record-type-selector>button{min-height:44px;color:var(--ink-60);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.8rem;font-weight:750;display:inline-flex}.record-type-selector>button.active{color:#fff;background:#315f3d;box-shadow:0 3px 9px #315f3d33}.record-type-selector svg{width:15px}.journal-status{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;width:fit-content;padding:.18rem .46rem;font-size:.66rem;font-weight:800}.journal-status.active,.journal-status.validated{color:#28613a;background:#e5f3e3}.journal-status.draft{color:#875c12;background:#fff2cf}.journal-status.closed,.journal-status.void{color:#616b65;background:#edf0ed}.journal-status.exported{color:#315879;background:#e4f0f9}.season-detail-header{isolation:isolate;color:#fff;background:#315f3d;border:1px solid #ffffff40;border-radius:14px;justify-content:space-between;align-items:end;gap:1rem;min-height:190px;padding:1.25rem 1.35rem;display:flex;position:relative;overflow:hidden;box-shadow:0 9px 24px #1b37242e}.season-detail-header:after{z-index:-1;content:"";background:linear-gradient(90deg,#0c1f16e0 0%,#102d1db3 43%,#10261b5c 72%,#091b1394 100%);position:absolute;inset:0}.season-detail-background{z-index:-2;object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.season-detail-header>div{z-index:1;position:relative}.season-detail-header>div>span{color:#d9efcf;letter-spacing:.09em;text-transform:uppercase;font-size:.72rem;font-weight:800}.season-detail-header h2{color:#fff;margin:.25rem 0;font-family:Georgia,Times New Roman,serif;font-size:1.7rem}.season-detail-header small{color:#ffffffd1;font-weight:700}.season-detail-header p{color:#ffffffd1;align-items:center;gap:.35rem;margin:.35rem 0 0;display:flex}.season-stats{gap:.5rem;display:flex}.season-stats div{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);text-align:center;background:#0f2a1d6b;border:1px solid #ffffff70;border-radius:10px;min-width:72px;padding:.55rem;display:grid}.season-stats strong{font-size:1.15rem}.season-stats span{color:#fffc;font-size:.68rem}.season-actions{flex-wrap:wrap;gap:.45rem;padding:.9rem 0;display:flex}.season-actions .btn{align-items:center;gap:.3rem;display:inline-flex}.season-workspace{gap:1rem;display:grid}.season-workspace-nav{border:1px solid var(--border);background:#f5f7f2;border-radius:12px;grid-template-columns:repeat(6,minmax(0,1fr));gap:.3rem;padding:.3rem;display:grid}.season-workspace-nav button{min-width:0;min-height:44px;color:var(--ink-60);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:.4rem;padding:.45rem;font-size:.76rem;font-weight:750;display:flex}.season-workspace-nav button.active{color:#fff;background:#315f3d}.season-workspace-nav svg{width:16px}.season-cockpit{gap:1rem;display:grid}.season-cockpit-header{color:#fff;background:linear-gradient(125deg,#244b31,#477753);border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex;box-shadow:0 8px 22px #244b3133}.season-cockpit-header>div>span,.scouting-setup>div>span,.scouting-runner header>div>span{letter-spacing:.08em;text-transform:uppercase;opacity:.8;font-size:.7rem;font-weight:800}.season-cockpit-header h2,.scouting-setup h2,.scouting-runner h2{margin:.2rem 0;font-family:Georgia,Times New Roman,serif}.season-cockpit-header p{opacity:.82;align-items:center;gap:.35rem;margin:0;display:flex}.season-cockpit-header .btn{color:#244b31;background:#fff;flex:none;align-items:center;gap:.4rem;display:inline-flex}.season-cockpit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;display:grid}.season-cockpit-grid>*{border:1px solid var(--border);min-height:112px;color:inherit;text-align:left;background:#fff;border-radius:12px;align-content:start;gap:.35rem;padding:.8rem;display:grid;position:relative}.season-cockpit-grid button{font:inherit;cursor:pointer}.season-cockpit-grid svg{color:#477753;width:20px}.season-cockpit-grid svg:last-child{width:16px;color:var(--ink-40);position:absolute;top:.75rem;right:.65rem}.season-cockpit-grid span{color:var(--ink-60);font-size:.72rem}.season-cockpit-grid strong{overflow-wrap:anywhere;margin-top:auto;font-size:1.25rem}.season-next-work,.season-task-panel,.season-scouting-panel{gap:.7rem;display:grid}.season-next-work .journal-section-heading,.season-task-panel>.journal-section-heading,.season-scouting-panel>.journal-section-heading{padding-inline:0}.season-timeline-next-task{background:linear-gradient(115deg,#f2f7ed,#fffdf7);border:1px solid #d8e1d2;border-radius:13px;gap:.55rem;padding:.85rem;display:grid}.season-timeline-next-task .journal-section-heading{padding:0 0 .55rem}.season-projection-note{color:#525b54;background:#f5f6f5;border:1px dashed #9da49e;border-radius:11px;gap:.25rem;padding:.75rem .85rem;display:grid}.season-projection-note p{margin:0;font-size:.76rem;line-height:1.45}.season-projection-note a{color:#477753;width:fit-content;font-size:.74rem;font-weight:700}.season-projection-sources{flex-wrap:wrap;gap:.35rem .8rem;display:flex}.season-task-list{gap:.6rem;display:grid}.season-task-card{border:1px solid var(--border);background:#fff;border-left:4px solid #749078;border-radius:10px;padding:.8rem .9rem}.season-task-card.priority-high{border-left-color:#c47c28}.season-task-card.priority-urgent{border-left-color:#b94035}.task-card-main{justify-content:space-between;align-items:start;gap:1rem;display:flex}.task-card-main>div>span{color:#477753;text-transform:uppercase;font-size:.67rem;font-weight:800}.task-card-main h3{margin:.18rem 0;font-family:Georgia,Times New Roman,serif;font-size:1rem}.season-task-card time{color:var(--ink-60);align-items:center;gap:.3rem;margin-top:.35rem;font-size:.74rem;display:flex}.task-card-actions{flex-wrap:wrap;gap:.35rem;margin-top:.65rem;display:flex}.task-card-actions .btn,.season-create summary,.scouting-session-list .btn{align-items:center;gap:.3rem;display:inline-flex}.task-card-actions summary,.season-create summary,.runner-skip summary{cursor:pointer;list-style:none}.task-card-actions details form{gap:.35rem;margin-top:.4rem;display:flex}.season-create>summary{width:fit-content}.season-create>form{margin-top:.6rem}.scouting-setup{background:linear-gradient(120deg,#f5f8f0,#fffdf4);grid-template-columns:minmax(220px,1fr) minmax(170px,.7fr) 130px auto;align-items:end;gap:.75rem;display:grid}.scouting-setup>div p{max-width:460px;color:var(--ink-60);margin:.2rem 0;font-size:.8rem}.scouting-setup label{margin:0}.scouting-setup .btn{justify-content:center;align-items:center;gap:.35rem;display:inline-flex}.scouting-session-list{gap:.55rem;display:grid}.scouting-session-list article{border:1px solid var(--border);border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:.8rem;display:grid}.scouting-session-list article>div:first-child{gap:.25rem;display:grid}.scouting-session-list article small{color:var(--ink-50)}.session-progress,.runner-progress{text-align:center;display:grid}.session-progress span,.runner-progress span{color:var(--ink-50);font-size:.65rem}.journal-status.planned,.journal-status.open{color:#755620;background:#fff2cf}.journal-status.in_progress{color:#315879;background:#e4f0f9}.journal-status.completed{color:#28613a;background:#e5f3e3}.journal-status.skipped,.journal-status.cancelled{color:#616b65;background:#edf0ed}.scouting-runner{gap:.8rem;display:grid}.scouting-runner>header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;display:grid}.runner-progress-bar{background:#e6ebe3;border-radius:999px;height:8px;overflow:hidden}.runner-progress-bar span{border-radius:inherit;background:#477753;height:100%;transition:width .18s;display:block}.runner-layout{grid-template-columns:minmax(170px,.42fr) minmax(0,1fr);align-items:start;gap:.8rem;display:grid}.runner-point-list{gap:.35rem;display:grid}.runner-point-list>div{border:1px solid var(--border);border-radius:9px;grid-template-columns:30px 1fr;gap:.1rem .45rem;padding:.55rem;display:grid}.runner-point-list>div.current{background:#f0f6ec;border-color:#789976;box-shadow:inset 3px 0 #477753}.runner-point-list>div>span{color:#315f3d;background:#e4efe0;border-radius:50%;grid-row:span 2;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.runner-point-list small{color:var(--ink-50)}.runner-capture{gap:.5rem;display:grid}.runner-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .7rem;display:grid}.runner-form>label:last-of-type,.runner-primary{grid-column:1/-1}.runner-primary{justify-content:center;align-items:center;gap:.4rem;min-height:48px;display:inline-flex}.runner-skip form{gap:.4rem;margin-top:.5rem;display:flex}.journal-form{background:#f8faf5;border:1px solid #ccd9c7;border-radius:12px;padding:1rem}.journal-form.compact{margin:.55rem}.journal-form h2,.journal-form h3{margin:0 0 .8rem;font-family:Georgia,Times New Roman,serif}.journal-form label{color:var(--ink-70);gap:.3rem;margin-bottom:.7rem;font-size:.76rem;font-weight:700;display:grid}.journal-form-row,.journal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .7rem;display:grid}.journal-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.journal-form-grid .wide{grid-column:span 2}.journal-form-actions{align-items:center;gap:.45rem;margin-top:.4rem;display:flex}.journal-textarea{resize:vertical;min-height:64px;height:auto!important}.check-label{flex-direction:row;align-self:center;align-items:center;padding-top:1rem;display:flex!important}.inline-form{border-left:4px solid #739371;margin:.2rem 0 1rem}.season-timeline{margin-top:.6rem}.season-timeline .journal-section-heading{padding-inline:0}.season-timeline-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:180px;max-height:min(70vh,680px);overflow-y:auto}.season-timeline-scroll:focus-visible{outline-offset:2px;outline:2px solid #315f3d}.timeline-today{color:#20452a;background:#e7f3df;border:1px solid #7ba777;border-left:4px solid #315f3d;border-radius:9px;align-items:center;gap:.6rem;padding:.65rem .85rem;font-size:.83rem;display:flex}.timeline-today time{margin-left:auto}.timeline-history-undated{border:1px dashed #c9d8c4;border-radius:8px;margin:.7rem 0;padding:.55rem .3rem}.timeline-history-undated h4{margin:0 0 .4rem;font-size:.78rem}.timeline-stage-uncertain{color:var(--ink-50);margin-top:.2rem;font-size:.72rem;display:block}.timeline-view-toggle{border:1px solid var(--border);background:#f5f7f2;border-radius:9px;padding:.2rem;align-items:center!important;gap:.25rem!important;display:inline-flex!important}.timeline-view-toggle button{min-height:34px;color:var(--ink-60);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:.3rem;padding:.3rem .55rem;font-size:.72rem;font-weight:750;display:inline-flex}.timeline-view-toggle button.active{color:#fff;background:#315f3d}.timeline-view-toggle svg{width:14px}.season-timeline>.cultivation-calendar{margin-top:.8rem}.timeline-entry{grid-template-columns:34px 1fr;gap:.65rem;padding:.8rem 0;display:grid;position:relative}.timeline-entry:not(:last-child):before{content:"";background:#dce4d8;width:1px;position:absolute;top:39px;bottom:-8px;left:16px}.timeline-entry.stage .timeline-icon{background:#e9f3e8;border-color:#9bbb9a}.timeline-entry.stage strong{color:#244b31}.timeline-entry.stage.past{background:#f0f1f0}.timeline-entry.stage.past .timeline-icon{color:#647069;background:#e8ebe9;border-color:#b5bfba}.timeline-entry.stage.current{background:#e8f4e6;border-radius:8px;box-shadow:inset 3px 0 #315f3d}.timeline-entry.historical .timeline-icon{color:#8a641f;background:#fff6da;border-style:dashed;border-color:#8a641f}.timeline-entry.branch{background:#f9fbf7;border-radius:8px;grid-template-columns:33px minmax(0,1fr);margin-left:44px;padding:.55rem .35rem}.timeline-entry.branch:not(:last-child):before{left:-28px}.timeline-entry.branch:after{content:"";background:#bdccbb;width:28px;height:1px;position:absolute;top:22px;left:-28px}.timeline-stage-branches{gap:.22rem;min-width:0;display:grid;position:relative}.timeline-stage-branches:before{content:"";background:#dce4d8;width:1px;position:absolute;top:0;bottom:0;left:16px}.timeline-stage-branches .timeline-entry.branch:before{display:none}.timeline-stage-branches .timeline-entry.risk{border:1px solid var(--risk-rule);border-left:3px solid var(--risk-color);background:var(--risk-bg)}.timeline-stage-branches .timeline-entry.risk.past{border-color:#d0d3d4;border-left-color:var(--risk-color);background:#edeff0}.timeline-icon{z-index:1;color:#477753;background:#f2f7ef;border:1px solid #c9d8c4;border-radius:50%;place-items:center;width:33px;height:33px;display:grid}.timeline-entry.phenology .timeline-icon{color:#8a641f;background:#fff6da;border-color:#ead99f}.timeline-entry.projection .timeline-icon{color:#69716b;background:#f2f4f2;border-style:dashed;border-color:#8f9790}.timeline-entry.projection strong,.timeline-entry.projection p{color:#626a64}.timeline-entry time{color:var(--ink-50);font-size:.7rem;display:block}.timeline-entry strong{margin-top:.15rem;display:block}.timeline-entry p{color:var(--ink-60);margin:.18rem 0 0;font-size:.82rem}@media (width<=540px){.timeline-entry.branch{margin-left:28px}.timeline-entry.branch:not(:last-child):before,.timeline-entry.branch:after{left:-12px}.timeline-entry.branch:after{width:12px}}.journal-empty{color:var(--ink-50);text-align:center;justify-items:center;gap:.4rem;padding:1.4rem;display:grid}.journal-empty.large{place-content:center;min-height:230px}.journal-empty svg{color:#86a180;width:28px;height:28px}.journal-empty span{max-width:360px;font-size:.82rem}.spray-panel{padding:1rem}.journal-toolbar{border-bottom:1px solid var(--border);align-items:end;gap:.7rem;padding-bottom:1rem;display:flex}.journal-toolbar label{min-width:180px}.journal-toolbar .btn{margin-left:auto}.journal-result-count{color:var(--ink-50);align-self:center;font-size:.8rem}.journal-result-cap{color:#7a5515;background:#fff4e0;border:1px solid #eed9b0;border-radius:8px;margin:.5rem 0 0;padding:.45rem .6rem;font-size:.76rem}.spray-form{background:var(--journal-paper);margin:1rem 0}.journal-form-title,.spray-title{justify-content:space-between;align-items:start;gap:1rem;display:flex}.journal-form-title span,.spray-title>div>span{color:#477753;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:800}.spray-list{gap:.65rem;padding-top:1rem;display:grid}.spray-card{border:1px solid var(--border);background:#fff;border-radius:12px;grid-template-columns:76px minmax(0,1fr);display:grid;overflow:hidden}.spray-date{color:#fff;background:#3d6747;align-content:center;justify-items:center;padding:.8rem;display:grid}.spray-date strong{font-family:Georgia,Times New Roman,serif;font-size:1rem}.spray-date span{opacity:.75;font-size:.7rem}.spray-content{padding:.8rem .95rem}.spray-title h2{margin:.15rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.15rem}.spray-meta{color:var(--ink-60);flex-wrap:wrap;gap:.45rem 1rem;margin-top:.55rem;font-size:.78rem;display:flex}.spray-meta span{align-items:center;gap:.25rem;display:flex}.validation-note{color:#875c12;background:#fff6dc;border-radius:8px;align-items:center;gap:.4rem;margin-top:.6rem;padding:.45rem .55rem;font-size:.76rem;display:flex}.spray-actions{align-items:start;gap:.4rem;margin-top:.7rem;display:flex}.spray-actions .btn,.spray-actions summary{align-items:center;gap:.3rem;display:inline-flex}.spray-actions summary{cursor:pointer;list-style:none}.spray-actions details form{border:1px solid var(--border);background:#fafbf9;border-radius:9px;align-items:end;gap:.4rem;margin-top:.45rem;padding:.55rem;display:flex}.spray-actions details label{gap:.2rem;font-size:.72rem;display:grid}.observation-panel{padding:1rem}.observation-form{background:var(--journal-paper);margin:1rem 0}.observation-text-label{grid-column:1/-1!important}.observation-range-inputs{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.observation-capture-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.observation-capture{text-align:center;cursor:pointer;background:#f3f7ef;border:1px dashed #a9bcaa;border-radius:12px;align-content:center;place-items:center;gap:.25rem;min-height:132px;padding:1rem;display:grid;position:relative;overflow:hidden}.observation-capture:hover{border-color:#477753}.observation-capture>svg{color:#477753}.observation-capture>span{color:var(--ink-60);font-size:.78rem}.observation-capture>input,.observation-audio-actions input{opacity:0;width:1px;height:1px;position:absolute}.observation-capture.recording{border-color:var(--red);background:#fff4f2}.observation-capture.recording>svg{color:var(--red)}.observation-audio-actions{flex-wrap:wrap;justify-content:center;gap:.35rem;display:flex}.observation-preview{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;margin-top:.8rem;display:grid}.observation-preview>img{aspect-ratio:4/3;object-fit:cover;border-radius:9px;width:100%}.observation-audio-preview{grid-column:1/-1;align-items:center;gap:.5rem;display:flex}.observation-audio-preview audio{width:min(100%,460px);height:38px}.observation-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding-top:1rem;display:grid}.observation-card{border:1px solid var(--border);background:#fff;border-radius:12px;min-width:0;padding:1rem}.observation-card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;gap:1rem;padding-bottom:.75rem;display:flex}.observation-card-head h2{margin:.28rem 0 .08rem;font-family:Georgia,Times New Roman,serif;font-size:1.1rem}.observation-card-head p,.observation-card-head time{color:var(--ink-60);margin:0;font-size:.74rem}.observation-card-head time{flex:none}.observation-category{color:#315f3d;letter-spacing:.04em;text-transform:uppercase;background:#e8f2e5;border-radius:999px;padding:.2rem .45rem;font-size:.66rem;font-weight:800;display:inline-flex}.observation-category.disease,.observation-category.damage{color:#8f3027;background:#fff0ed}.observation-category.insect{color:#805a17;background:#fff4d7}.observation-structured-summary{flex-wrap:wrap;gap:.35rem;margin-top:.75rem;display:flex}.observation-structured-summary>*{color:#315f3d;background:#f0f5ed;border-radius:6px;padding:.22rem .45rem;font-size:.74rem}.observation-note{white-space:pre-wrap;overflow-wrap:anywhere;margin:.8rem 0 0}.observation-media{grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.8rem;display:grid}.observation-media img{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%}.observation-media audio{grid-column:1/-1;width:100%;height:38px}.observation-author{color:var(--ink-50);margin:.75rem 0 0;font-size:.72rem}@media (width<=960px){.journal-hero{grid-template-columns:auto 1fr}.journal-context{grid-column:1/-1;padding-left:66px}.journal-form-grid,.season-cockpit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.season-workspace-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.scouting-setup{grid-template-columns:1fr 1fr}.scouting-setup>div{grid-column:1/-1}}@media (width<=720px){.journal-page{gap:.8rem}.journal-hero{background:repeating-linear-gradient(0deg, var(--journal-paper) 0 31px, #dfe7da 31px 32px);grid-template-columns:1fr;padding:1rem}.journal-hero-mark{width:44px;height:44px}.journal-context{flex-wrap:wrap;grid-column:auto;padding-left:0}.journal-context label{flex:1}.journal-context .select,.journal-context .input{width:100%;min-width:0}.journal-field-tabs>button{flex:0 0 min(220px,74vw)}.journal-season-section{padding:.85rem}.record-type-selector>button{flex:auto;justify-content:center}.journal-form-row,.journal-form-grid{grid-template-columns:1fr}.journal-form-grid .wide{grid-column:auto}.season-detail-header{display:grid}.season-stats{width:100%}.season-stats div{flex:1}.season-actions{grid-template-columns:1fr 1fr;display:grid}.season-actions .btn{justify-content:center;min-height:44px}.spray-panel,.observation-panel{padding:.75rem}.journal-toolbar{grid-template-columns:1fr 1fr;display:grid}.journal-toolbar label{min-width:0}.journal-toolbar .btn{grid-column:1/-1;justify-content:center;width:100%;margin-left:0}.spray-card{grid-template-columns:58px minmax(0,1fr)}.spray-date{padding:.45rem}.spray-actions{flex-wrap:wrap}.spray-actions details{width:100%}.spray-actions details form{display:grid}.observation-capture-grid,.observation-list{grid-template-columns:1fr}.observation-card-head{flex-direction:column;gap:.35rem}.season-workspace-nav{grid-template-columns:repeat(2,1fr)}.season-cockpit-header{flex-direction:column;align-items:stretch}.season-cockpit-header .btn{justify-content:center}.season-cockpit-grid{grid-template-columns:1fr 1fr}.scouting-setup,.runner-layout,.runner-form{grid-template-columns:1fr}.scouting-setup>div,.runner-form>*{grid-column:auto}.scouting-session-list article{grid-template-columns:minmax(0,1fr) auto}.scouting-session-list article .btn{grid-column:1/-1;justify-content:center;min-height:44px}.scouting-runner>header{grid-template-columns:1fr auto}.scouting-runner>header>.btn{grid-column:1/-1;width:fit-content}.task-card-actions .btn,.task-card-actions summary{min-height:44px}.season-timeline .journal-section-heading{flex-direction:column;align-items:stretch}.timeline-view-toggle{width:100%}.timeline-view-toggle button{flex:1;justify-content:center;min-height:40px}}.season-package-card{background:#fbfcfb;border:1px solid #dde4dd;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.7rem .9rem;display:flex}.season-package-card.downloaded{background:#eef5ec;border-color:#cfe0cf}.season-package-info{color:#2f6f43;align-items:flex-start;gap:.55rem;display:flex}.season-package-info>div{flex-direction:column;gap:.15rem;display:flex}.season-package-info strong{color:#2b312c;font-size:.85rem}.season-package-info small{color:#66706a;font-size:.75rem}.season-package-actions{flex-wrap:wrap;gap:.45rem;display:flex}.season-offline-banner{color:#6b5317;background:#fdf6e9;border:1px solid #d7c39a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.8rem;padding:.55rem .85rem;font-size:.82rem;display:flex}.season-offline-banner small{opacity:.85}.scouting-media{border:1px dashed #c3ccc4;border-radius:8px;flex-direction:column;gap:.5rem;padding:.6rem .7rem;display:flex}.scouting-media legend{color:#66706a;padding:0 .3rem;font-size:.78rem}.scouting-media-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.scouting-media-chip{color:#3c443d;background:#fff;border:1px solid #dde4dd;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.75rem;display:inline-flex}.scouting-media-chip button{color:#66706a;cursor:pointer;background:0 0;border:0;padding:0;font-size:1rem;line-height:1}.weather-water-panel,.risk-panel{gap:.9rem;display:grid}.insight-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.insight-toolbar small{color:var(--ink-50);font-size:.72rem}.insight-toolbar .btn{align-items:center;gap:.35rem;height:auto;min-height:44px;display:inline-flex}.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.insight-card{background:#fff;border:1px solid #d9dfd1;border-radius:14px;align-content:start;gap:.55rem;padding:1rem;display:grid;box-shadow:0 4px 16px #1f35260d}.insight-card h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1rem}.insight-card.water-unavailable{background:#fdfbf4;border-left:4px solid #b9811f}.insight-hero-value{color:#244b31;font-size:1.7rem;font-weight:800;line-height:1.1}.water-unavailable .insight-hero-value,.water-unavailable .journal-status{align-self:start}.insight-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.45rem;margin:0;display:grid}.insight-stats>div{background:#f5f8f2;border-radius:9px;gap:.1rem;padding:.5rem .6rem;display:grid}.insight-stats dt{color:var(--ink-60);letter-spacing:.05em;text-transform:uppercase;font-size:.68rem;font-weight:800}.insight-stats dd{overflow-wrap:anywhere;margin:0;font-size:.9rem;font-weight:700}.insight-hint{color:var(--ink-60);margin:0;font-size:.8rem;line-height:1.45}.insight-note{color:var(--ink-50);font-size:.74rem;display:block}.risk-no-treatment{color:#8f3027}.risk-level-unknown{--risk-color:#66716d;--risk-bg:#f2f4f3;--risk-rule:#cad2cf}.risk-level-none{--risk-color:#70632a;--risk-bg:#fffdf0;--risk-rule:#e7dfb0}.risk-level-low{--risk-color:#806215;--risk-bg:#fff7cc;--risk-rule:#e3c855}.risk-level-medium{--risk-color:#895006;--risk-bg:#ffe3a0;--risk-rule:#dfa533}.risk-level-high{--risk-color:#a23c13;--risk-bg:#ffc7a0;--risk-rule:#db733d}.risk-level-very-high{--risk-color:#981b24;--risk-bg:#ffa9af;--risk-rule:#cf3442}.timeline-risk-toggle{white-space:normal;min-height:38px;margin-top:.45rem}.timeline-risk-details{min-width:0;margin:.25rem 0 .7rem 44px}.timeline-risk-details .risk-entry{padding:.7rem}.timeline-risk-details input,.timeline-risk-details select{min-width:0;max-width:100%}.risk-satellite-review{gap:.4rem;min-width:0;display:grid}.risk-satellite-review>.btn{white-space:normal;justify-self:start;align-items:center;gap:.35rem;display:inline-flex}.risk-satellite-review>section{background:#fff;border:1px solid #d5ded0;border-radius:9px;gap:.5rem;min-width:0;padding:.6rem;display:grid}.risk-satellite-review>section>strong{font-size:.78rem}.risk-satellite-review>section>p{margin:0;font-size:.78rem}.risk-satellite-gallery{grid-template-columns:repeat(auto-fill,minmax(min(155px,100%),1fr));gap:.55rem;display:grid}.risk-satellite-gallery>a{min-width:0;color:inherit;background:#f8faf6;border:1px solid #dce4d8;border-radius:7px;gap:.2rem;padding:.35rem;text-decoration:none;display:grid}.risk-satellite-gallery img{aspect-ratio:1.2;object-fit:contain;background:#eef1ec;border-radius:5px;width:100%}.risk-satellite-gallery span,.risk-satellite-gallery small{overflow-wrap:anywhere;font-size:.7rem}.season-projection-info-toggle{color:#315f3d;cursor:pointer;background:#f4f8f2;border:1px solid #a5b8a6;border-radius:50%;place-items:center;width:36px;height:36px;font:700 20px Georgia,serif;list-style:none;display:grid}.season-projection-info-toggle::-webkit-details-marker{display:none}.season-projection-info-toggle:focus-visible{outline-offset:2px;outline:3px solid #e6a334}.season-projection-info[open] .season-projection-info-toggle{background:#e2edde;margin-bottom:.5rem}@media (width<=540px){.timeline-risk-details{margin-left:28px}}.risk-list{gap:.65rem;min-width:0;display:grid}.risk-list-heading{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.risk-list-heading h3,.risk-timeline-rail h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.04rem}.risk-list-heading span{color:var(--ink-60);font-size:.8rem}.risk-entry{border:1px solid var(--risk-rule);border-left:4px solid var(--risk-color);background:var(--risk-bg);border-radius:11px;gap:.35rem;min-width:0;padding:.85rem 1rem;display:grid}.risk-entry.past{background:#edeff0;border-color:#d0d3d4 #d0d3d4 #d0d3d4 #8c9599}.risk-entry-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.risk-entry-heading small{color:var(--ink-60);font-size:.73rem}.risk-entry-heading h4{margin:.15rem 0 0;font-size:.98rem}.risk-level-badge{border:1px solid var(--risk-rule);min-height:28px;color:var(--risk-color);background:#fff;border-radius:99px;align-items:center;padding:.22rem .6rem;font-size:.77rem;font-weight:800;display:inline-flex}.risk-entry-meta{color:var(--ink-60);flex-wrap:wrap;gap:.4rem .9rem;font-size:.75rem;display:flex}.risk-entry p{margin:0;font-size:.82rem}.risk-entry>small{color:var(--ink-50);font-size:.72rem}.risk-entry-actions,.risk-create-links{flex-wrap:wrap;align-items:start;gap:.4rem;display:flex}.risk-entry-actions details{position:relative}.risk-entry-actions summary{cursor:pointer;list-style:none}.risk-entry-actions summary::-webkit-details-marker{display:none}.risk-entry-actions details[open]{z-index:2;flex:240px}.risk-entry-actions details form{border:1px solid var(--risk-rule);background:#fff;border-radius:9px;gap:.5rem;min-width:min(240px,100%);margin-top:.4rem;padding:.7rem;display:grid}.risk-entry-actions details form label{gap:.2rem;min-width:0;font-size:.76rem;display:grid}.risk-entry-actions .btn{white-space:normal;height:auto;min-height:38px}.risk-create-links{margin-top:.35rem}.risk-timeline-rail{gap:.5rem;min-width:0;margin:.8rem 0;display:grid}.risk-timeline-track{scroll-snap-type:x proximity;gap:.4rem;max-width:100%;padding:.15rem 0 .7rem;display:flex;overflow-x:auto}.risk-timeline-marker{border:1px solid var(--risk-rule);border-top:4px solid var(--risk-color);min-height:94px;color:var(--journal-ink);background:var(--risk-bg);font:inherit;text-align:left;cursor:pointer;scroll-snap-align:start;border-radius:9px;flex:0 0 150px;align-content:start;gap:.25rem;padding:.65rem;display:grid}.risk-timeline-marker.past{border-color:#d0d3d4;border-top-color:var(--risk-color);background:#edeff0}.risk-timeline-marker span{font-size:.78rem;font-weight:750;line-height:1.2}.risk-timeline-marker small{color:var(--ink-60);font-size:.69rem}.risk-timeline-marker strong{color:var(--risk-color);font-size:.72rem}.timeline-entry.risk .timeline-icon{color:var(--risk-color);border-color:var(--risk-rule);background:var(--risk-bg)}.timeline-entry.risk strong{color:var(--risk-color)}.insight-empty{color:var(--ink-50);text-align:center;justify-items:center;gap:.4rem;padding:1.2rem;font-size:.82rem;display:grid}.insight-empty svg{color:#86a180;width:24px;height:24px}.insight-missing{background:#fff4e0;border:1px solid #eed9b0;border-radius:10px;gap:.4rem;padding:.7rem .8rem;display:grid}.insight-missing strong{color:#7a5515;text-transform:uppercase;letter-spacing:.05em;font-size:.74rem}.insight-missing ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.insight-missing li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;font-size:.82rem;display:flex}.insight-missing li .btn{align-items:center;gap:.3rem;height:auto;min-height:44px;display:inline-flex}.journal-status.provenance-persisted{color:#28613a;background:#e5f3e3}.journal-status.provenance-live{color:#315879;background:#e4f0f9}.journal-status.provenance-none{color:#616b65;background:#edf0ed}.precip-bars{grid-template-columns:repeat(auto-fit,minmax(30px,1fr));align-items:end;gap:.25rem;height:96px;display:grid}.precip-bar{grid-template-rows:auto 1fr auto;justify-items:center;gap:.2rem;height:100%;display:grid}.precip-bar-value{color:var(--ink-60);font-size:.68rem;font-weight:700}.precip-bar-track{background:#eef2ec;border-radius:5px;align-items:flex-end;width:100%;max-width:34px;height:56px;display:flex;overflow:hidden}.precip-bar-track span{border-radius:inherit;background:linear-gradient(#5c86b8,#2f5f97);width:100%;display:block}.precip-bar time{color:var(--ink-50);font-size:.66rem}.insight-table-scroll{overflow-x:auto}.insight-table{border-collapse:collapse;width:100%;font-size:.8rem}.insight-table caption{color:var(--ink-60);text-align:left;padding:.4rem 0;font-size:.74rem;font-weight:700}.insight-table th,.insight-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:.42rem .5rem}.insight-table thead th{color:var(--ink-60);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem}.insight-table tbody th{font-weight:700}.configured-model-list{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.configured-model-list li{color:#315f3d;background:#e8f2e5;border-radius:999px;padding:.22rem .5rem;font-size:.74rem;font-weight:700}.insight-evidence-summary{width:fit-content;height:auto;min-height:44px}.insight-start-scouting{height:auto;min-height:44px}.evidence-list{gap:.6rem;margin:.7rem 0 0;padding:0;list-style:none;display:grid}.evidence-list li{border:1px solid var(--border);background:#fafbf9;border-radius:10px;gap:.15rem;padding:.7rem .8rem;display:grid}.evidence-list strong{font-size:.86rem}.evidence-list small{color:var(--ink-60);font-size:.74rem}@media (width<=960px){.insight-grid{grid-template-columns:1fr}}@media (width<=720px){.insight-stats{grid-template-columns:1fr 1fr}.insight-toolbar{flex-direction:column;align-items:stretch}.insight-toolbar .btn{justify-content:center}.insight-missing li{flex-direction:column;align-items:stretch}.insight-missing li .btn{justify-content:center}}.graphs-page{gap:24px;display:grid}.graphs-page-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 0 4px;display:flex}.graphs-page-header h1{letter-spacing:-.04em;margin:4px 0 8px;font-size:clamp(1.85rem,4vw,2.7rem)}.graphs-page-header p{max-width:680px;color:var(--ink-60);margin:0;line-height:1.55}.graphs-page-actions,.graphs-empty-actions{flex-wrap:wrap;gap:9px;display:flex}.graphs-eyebrow{color:var(--leaf-strong);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:800}.graphs-page-error,.graphs-error{color:var(--red);margin:0;font-size:.88rem}.graphs-page-status,.graphs-status{min-height:180px;color:var(--ink-60);justify-content:center;align-items:center;gap:10px;display:flex}.graphs-empty{border:1px dashed var(--border);text-align:center;background:linear-gradient(145deg, color-mix(in srgb, var(--leaf) 6%, transparent), transparent 52%);border-radius:22px;flex-direction:column;justify-content:center;align-items:center;min-height:420px;padding:40px 24px;display:flex}.graphs-empty-icon{background:color-mix(in srgb, var(--leaf) 12%, var(--white));width:68px;height:68px;color:var(--leaf-strong);border-radius:22px;place-items:center;margin-bottom:18px;display:grid}.graphs-empty-icon svg{width:34px;height:34px}.graphs-empty>span{color:var(--leaf-strong);letter-spacing:.13em;text-transform:uppercase;font-size:.7rem;font-weight:800}.graphs-empty h2{margin:7px 0}.graphs-empty p{max-width:520px;color:var(--ink-60);margin:0 0 22px}.graphs-list{gap:24px;display:grid}.saved-graph{overflow:hidden}.saved-graph-header{justify-content:space-between;align-items:center;gap:20px;padding:20px 22px 14px;display:flex}.saved-graph-title span{color:var(--ink-60);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.saved-graph-title h2{margin:3px 0 0;font-size:1.25rem}.heat-sum-graph .saved-graph-title h2{align-items:center;gap:8px;display:flex}.heat-sum-graph .saved-graph-title h2 svg{color:#c56a2d}.saved-graph-actions{gap:5px;display:flex}.saved-graph-actions button,.graphs-icon-btn{border:1px solid var(--border);background:var(--white);width:38px;height:38px;color:var(--ink-60);cursor:pointer;border-radius:10px;place-items:center;display:grid}.saved-graph-actions button:hover:not(:disabled),.graphs-icon-btn:hover{color:var(--leaf-strong);border-color:var(--leaf-strong)}.saved-graph-actions button.danger:hover{color:var(--red);border-color:var(--red)}.saved-graph-actions button:disabled{opacity:.3;cursor:default}.saved-graph-actions svg,.graphs-icon-btn svg{width:17px;height:17px}.saved-graph-toolbar{justify-content:flex-end;padding:0 22px 10px;display:flex}.graphs-range{color:var(--ink-60);align-items:center;gap:8px;font-size:.78rem;font-weight:700;display:flex;position:relative}.graphs-range select{appearance:none;border:1px solid var(--border);background:var(--white);min-width:130px;color:var(--ink);font:inherit;border-radius:9px;padding:8px 30px 8px 10px}.graphs-range svg{pointer-events:none;position:absolute;right:9px}.saved-graph-body{min-height:390px;padding:0 12px 16px}.saved-graph-body .sensor-echart{width:100%;height:390px}.graphs-editor{padding:24px}.graphs-editor-heading,.graphs-picker-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.graphs-editor-heading h2{margin:4px 0 20px}.graphs-editor-fields{grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:16px;display:grid}.graphs-editor-fields+.graphs-editor-fields{margin-top:16px}.graphs-editor-fields label,.graphs-editor-fields label>span{gap:7px;display:grid}.graphs-editor-fields label>span,.graphs-picker-heading h3{font-size:.82rem;font-weight:750}.graphs-editor input,.graphs-editor select{border:1px solid var(--border);background:var(--white);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:11px 12px}.graphs-editor input:focus,.graphs-editor select:focus{outline:2px solid color-mix(in srgb, var(--leaf) 28%, transparent);border-color:var(--leaf-strong)}.graphs-picker-heading{align-items:flex-end;margin:26px 0 12px}.graphs-picker-heading h3{margin:0 0 3px}.graphs-picker-heading p{color:var(--ink-60);margin:0;font-size:.78rem}.graphs-search{min-width:min(300px,100%);position:relative}.graphs-search svg{color:var(--ink-60);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.graphs-search input{padding-left:36px}.graphs-device-list{gap:8px;max-height:480px;padding-right:4px;display:grid;overflow:auto}.graphs-device-list details{border:1px solid var(--border);background:color-mix(in srgb, var(--white) 88%, var(--cream));border-radius:12px}.graphs-device-list summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;list-style:none;display:flex}.graphs-device-list summary::-webkit-details-marker{display:none}.graphs-device-list summary span:first-child{gap:2px;display:grid}.graphs-device-list summary small,.graphs-measurement small{color:var(--ink-60);font-weight:500}.graphs-device-count{background:color-mix(in srgb, var(--leaf) 10%, transparent);min-width:28px;color:var(--leaf-strong);text-align:center;border-radius:999px;padding:3px 7px;font-size:.72rem}.graphs-measurement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 12px 12px;display:grid}.graphs-measurement{background:var(--white);cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:10px;min-width:0;padding:10px;display:flex}.graphs-measurement.selected{border-color:color-mix(in srgb, var(--leaf-strong) 55%, var(--border));background:color-mix(in srgb, var(--leaf) 7%, var(--white))}.graphs-measurement input{width:17px;height:17px;accent-color:var(--leaf-strong)}.graphs-measurement span{min-width:0;display:grid}.graphs-measurement strong,.graphs-measurement small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.graphs-measurement strong{font-size:.8rem}.graphs-picker-empty{color:var(--ink-60);text-align:center;padding:24px}.graphs-selected{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.graphs-selected button{background:color-mix(in srgb, var(--leaf) 11%, var(--white));max-width:100%;color:var(--ink);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;display:flex}.graphs-selected button span{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.graphs-editor-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.heat-model-panel{border:1px solid color-mix(in srgb, #c56a2d 24%, var(--border));background:color-mix(in srgb, #f3b45d 7%, var(--white));border-radius:14px;margin-top:16px;padding:16px}.heat-model-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.heat-model-grid label,.heat-model-grid label>span{gap:7px;display:grid}.heat-model-grid label>span{font-size:.78rem;font-weight:750}.heat-model-grid .wide{grid-column:1/-1}.heat-preset-note{border-top:1px solid var(--border);margin-top:13px;padding-top:12px}.heat-preset-note p{color:var(--ink-60);margin:0 0 6px;font-size:.78rem;line-height:1.5}.heat-preset-note a,.heat-sum-meta a{color:var(--leaf-strong);font-size:.75rem;font-weight:700}.heat-sum-meta{flex-wrap:wrap;align-items:center;gap:8px;padding:0 22px 12px;display:flex}.heat-sum-meta>span{background:color-mix(in srgb, #f3b45d 13%, var(--white));color:var(--ink-60);border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:700}.heat-sum-totals{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;padding:0 22px 14px;display:grid}.heat-sum-totals>div{border:1px solid var(--border);background:color-mix(in srgb, var(--cream) 45%, var(--white));border-radius:11px;gap:4px;min-width:0;padding:11px 12px;display:grid}.heat-sum-totals>div>span{color:var(--ink-60);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.heat-sum-totals strong{font-size:1.08rem}.heat-sum-totals strong small,.heat-sum-totals>div>small{color:var(--ink-60);font-size:.68rem;font-weight:600}.heat-target{background:color-mix(in srgb, var(--ink) 10%, transparent);border-radius:999px;height:5px;margin:3px 0 16px;position:relative}.heat-target>span{border-radius:inherit;background:#c56a2d;height:100%;display:block}.heat-target>small{color:var(--ink-60);white-space:nowrap;font-size:.65rem;position:absolute;top:8px;left:0}.heat-stage-guide{border:1px solid color-mix(in srgb, #c56a2d 22%, var(--border));background:linear-gradient(145deg, color-mix(in srgb, #f3b45d 8%, var(--white)), var(--white) 62%);border-radius:16px;margin:0 22px 22px;padding:18px}.heat-stage-heading{gap:5px;margin-bottom:14px;display:grid}.heat-stage-heading h3{margin:0;font-size:1.02rem}.heat-stage-heading p{max-width:820px;color:var(--ink-60);margin:0;font-size:.76rem;line-height:1.5}.heat-stage-list{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:8px;display:grid}.heat-stage-list article{background:color-mix(in srgb, var(--cream) 50%, var(--white));border-left:3px solid #c56a2d;border-radius:4px 10px 10px 4px;min-width:0;padding:11px 12px}.heat-stage-list article>div{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.heat-stage-list article strong{color:#a44e18;font-size:.82rem}.heat-stage-list article span{color:var(--ink-60);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.68rem}.heat-stage-list h4{margin:5px 0 3px;font-size:.8rem}.heat-stage-list p{color:var(--ink-60);margin:0;font-size:.7rem;line-height:1.45}@media (width<=700px){.graphs-page{gap:16px}.graphs-page-header{flex-direction:column;align-items:flex-start}.graphs-page-actions,.graphs-empty-actions{width:100%}.graphs-page-header .btn,.graphs-page-actions .btn,.graphs-empty-actions .btn{flex:1;justify-content:center}.graphs-editor{padding:18px 14px}.graphs-editor-fields,.graphs-measurement-grid,.heat-model-grid{grid-template-columns:1fr}.heat-model-grid .wide{grid-column:auto}.graphs-picker-heading{flex-direction:column;align-items:stretch}.graphs-search{width:100%}.saved-graph-header{align-items:flex-start;padding:17px 14px 12px}.saved-graph-actions{grid-template-columns:repeat(2,38px);display:grid}.saved-graph-toolbar{justify-content:stretch;padding:0 14px 10px}.graphs-range{justify-content:space-between;width:100%}.graphs-range select{flex:1}.saved-graph-body{min-height:330px;padding-inline:0}.saved-graph-body .sensor-echart{height:330px}.heat-sum-meta,.heat-sum-totals{padding-inline:14px}.heat-stage-guide{margin:0 14px 16px;padding:14px}.heat-stage-list{grid-template-columns:1fr}.graphs-editor-actions .btn{flex:1;justify-content:center}}.environment-graph-note{color:var(--ink-60);margin:0;padding:.8rem 1rem;font-size:.82rem;line-height:1.5}.environment-graph-sources{color:var(--ink-60);flex-wrap:wrap;gap:.4rem .8rem;padding:0 1rem .7rem;font-size:.75rem;display:flex}.environment-graph-gaps{color:#76582b;background:#fff9ec;border:1px solid #e8d7bd;border-radius:9px;margin:.2rem 1rem .8rem;padding:.6rem .8rem;font-size:.8rem}.environment-graph-gaps summary{cursor:pointer;font-weight:700}.environment-graph-gaps ul{max-height:11rem;margin:.5rem 0 0;padding-left:1.3rem;overflow-y:auto}.environment-backfill{flex-wrap:wrap;align-items:center;gap:.5rem .8rem;padding:0 1rem .75rem;display:flex}.environment-backfill small{color:var(--ink-60);font-size:.75rem;line-height:1.45}.public-homepage{color:#20372b;background:#f5f8f2;min-height:100vh;line-height:1.6}.public-homepage a{color:#27633b}.public-homepage .btn{text-align:center;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.public-homepage-header,.public-homepage-main,.public-homepage-footer{width:min(1100px,100% - 2rem);margin-inline:auto}.public-homepage-header{justify-content:space-between;align-items:center;gap:1rem;padding-block:1.1rem;display:flex}.public-homepage-header img{object-fit:contain;max-width:160px;max-height:46px}.public-homepage-actions{align-items:center;gap:1rem;display:flex}.public-homepage-hero{max-width:790px;padding:clamp(2rem,8vw,6rem) 0}.public-homepage-eyebrow{color:#34724a;font-weight:700}.public-homepage h1{color:#193e27;font-size:clamp(2rem,5vw,3.4rem);line-height:1.16}.public-homepage h2{color:#193e27;font-size:clamp(1.4rem,3vw,2rem)}.public-homepage h3{color:#193e27;font-size:1.1rem}.public-homepage-hero>p:not(.public-homepage-eyebrow){margin-bottom:1.8rem;font-size:1.15rem}.public-homepage-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.public-homepage-card{background:#fff;border:1px solid #dce5d9;border-radius:14px;padding:1.5rem}.public-homepage-card h3{margin-top:0}.public-homepage-footer{border-top:1px solid #dce5d9;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.5rem 0 2rem;display:flex}@media (width<=700px){.public-homepage-header{flex-wrap:wrap}.public-homepage-features{grid-template-columns:1fr}}:root{--leaf:#98d628;--leaf-strong:#6a951c;--leaf-light:#c7eb7f;--leaf-dark:#123921;--leaf-tint:#98d62833;--pine:#123921;--pine-tint:#12392133;--red:#ff4d4f;--red-tint:#ff4d4f33;--success:#1ac44d;--success-tint:#1ac44d33;--amber:#faad14;--amber-tint:#faad1433;--orange:#f8a33f;--info:#3c8dff;--info-tint:#3c8dff33;--ink:#2c312e;--ink-60:#75817a;--ink-40:#9daaa2;--ink-20:#c6cec9;--ink-10:#e2e6e4;--ink-05:#f0f2f1;--border:#d4dad6;--heading:#1a202c;--heading-muted:#4a5568;--table-head-bg:#fafafa;--table-head-text:#4a5568;--table-border:#edf2f7;--control-bg:#fff;--control-border:#d4dad6;--control-placeholder:#2c312e80;--control-height:48px;--select-height:40px;--control-radius:6px;--button-height:40px;--cream:#f0f2f1;--cream-80:#e2e6e4;--cream-60:#d4dad6;--white:#fff;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--text-h1:clamp(1.75rem, 3vw, 2.1875rem);--text-h2:1.8125rem;--text-h3:1.625rem;--text-h4:1.375rem;--text-h5:1.125rem;--text-body:1rem;--text-sm:.875rem;--text-xs:.75rem;--leading-body:1.5;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--header-height:56px;--bottom-nav-height:60px;--content-max:1200px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);color:var(--ink);background:var(--cream);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{color:var(--heading)}h1{font-size:var(--text-h1);font-weight:700;line-height:1.2}h2{font-size:var(--text-h2);font-weight:700;line-height:1.2}h3{font-size:var(--text-h3);font-weight:700;line-height:1.25}h4{font-size:var(--text-h4);font-weight:700;line-height:1.3}h5{font-size:var(--text-h5);font-weight:600;line-height:1.35}h6{font-size:var(--text-body);font-weight:600;line-height:1.4}p{font-size:var(--text-body);line-height:var(--leading-body)}small,.text-xs{font-size:var(--text-xs)}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}a{color:var(--leaf-strong);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}.app-shell{min-height:100dvh;padding-top:var(--header-height)}.header{height:var(--header-height);background:var(--white);border-bottom:1px solid var(--ink-10);z-index:100;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header-inner{max-width:var(--content-max);align-items:center;gap:1.5rem;width:100%;margin:0 auto;padding:0 1.25rem;display:flex}.header-logo{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.header-logo img{width:28px;height:28px}.header-logo span{color:var(--ink);font-size:1rem;font-weight:600}.header-nav{gap:.25rem;display:flex}.header-nav-item{font-size:var(--text-body);color:var(--leaf-strong);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;border:none;padding:.375rem .75rem;transition:background .15s,color .15s}.header-nav-item:hover{background:var(--ink-10);color:var(--ink)}.header-nav-item.active{background:var(--leaf);color:var(--ink);font-weight:700}.header-install{color:var(--ink-40);border-radius:var(--radius-md);background:0 0;border:none;align-items:center;gap:.375rem;padding:.25rem .5rem;font-size:.75rem;transition:background .15s,color .15s;display:flex}.header-install:hover{background:var(--ink-10);color:var(--ink)}.header-right{align-items:center;gap:.75rem;display:flex}.header-language{flex-shrink:0;align-items:center;margin-left:auto;display:flex}.online-dot{background:var(--leaf);border-radius:50%;flex-shrink:0;width:8px;height:8px}.online-dot.offline{background:var(--amber)}.online-label{color:var(--ink-60);font-size:.75rem}.header-sign-out{border:1px solid var(--ink-20);color:var(--ink-60);border-radius:var(--radius-md);background:0 0;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.8rem;transition:background .15s,color .15s;display:inline-flex}.header-sign-out:hover{background:var(--ink-10);color:var(--ink)}.main-content{max-width:var(--content-max);padding:1.5rem;padding-bottom:calc(1.5rem + var(--bottom-nav-height));margin:0 auto}.bottom-nav{height:var(--bottom-nav-height);background:var(--white);border-top:1px solid var(--ink-10);z-index:100;padding-bottom:env(safe-area-inset-bottom,0);justify-content:space-around;align-items:center;display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{min-width:0;color:var(--ink-40);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:.375rem .125rem;font-size:.65rem;transition:color .15s;display:flex}.bottom-nav-item span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav-item:hover{color:var(--ink)}.bottom-nav-item.active{color:var(--leaf-strong)}.bottom-nav-item svg{width:1.25rem;height:1.25rem}.update-banner{background:var(--leaf-light);color:var(--white);top:var(--header-height);z-index:200;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.85rem;display:flex;position:fixed;left:0;right:0}.btn{height:var(--button-height);padding:0 var(--space-lg);font-size:var(--text-body);border-radius:var(--radius-sm);background:var(--leaf);color:var(--ink);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;font-weight:700;line-height:1.2;transition:background .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--leaf-light)}.btn:active{background:var(--leaf-strong);color:var(--white)}.btn:disabled{cursor:not-allowed;background:var(--cream);color:#2c312e80;border-color:var(--cream-60);box-shadow:none}.btn-sm{height:32px;padding:0 .75rem;font-size:.875rem;font-weight:600}.btn-lg{height:48px;padding:0 1.25rem}.btn-ghost{color:var(--ink-60);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--ink-10);color:var(--ink)}.btn-outline{color:var(--leaf-strong);border:1px solid var(--border);background:0 0}.btn-outline:hover{background:var(--cream)}.btn-outline.active{background:var(--leaf);color:var(--ink);border-color:var(--leaf-strong)}.btn-icon{min-width:auto;padding:.125rem .25rem}.card{background:var(--white);border:.8px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s;overflow:hidden}.card-header{padding:var(--space-lg) var(--space-xl);border-bottom:.8px solid var(--border);font-weight:700;font-size:var(--text-h5);color:var(--heading)}.card-body{padding:var(--space-lg)}.top-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.top-bar h2{font-size:var(--text-h3);min-width:120px;color:var(--heading);flex:1;font-weight:700}.greeting{color:var(--ink-60);font-size:.9rem;font-weight:400}.overview-greeting{color:var(--heading);margin:0 0 .85rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.4rem,3vw,2rem);font-weight:500}.overview-today-events{border:1px solid var(--ink-10);background:var(--white);border-radius:12px;gap:.5rem;margin:.8rem 0 1rem;padding:.85rem 1rem;display:grid}.overview-today-events h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.1rem}.overview-today-events>p{color:var(--ink-60);margin:0;font-size:.82rem}.field-shape-import{gap:.4rem;margin:.7rem 0;display:grid}.field-shape-import label{gap:.3rem;font-size:.8rem;font-weight:700;display:grid}.field-shape-import small{color:var(--ink-60)}.select{height:var(--select-height);padding:0 var(--space-xl) 1px var(--space-lg);font-size:var(--text-body);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);color:var(--ink);cursor:pointer;font-family:inherit;line-height:1.4}.select:focus{border-color:var(--leaf-strong);outline:none}.select-sm{height:32px;padding:0 .75rem 0 .625rem;font-size:.875rem}.toggle-group{border:.8px solid var(--control-border);border-radius:var(--control-radius);display:inline-flex;overflow:hidden}.toggle-btn{background:var(--white);color:var(--ink-60);border:none;padding:.375rem .75rem;font-size:.8rem;transition:background .15s,color .15s}.toggle-btn:hover{background:var(--cream)}.toggle-btn.active{background:var(--leaf);color:var(--ink)}.toggle-btn+.toggle-btn{border-left:.8px solid var(--control-border)}.alert-summary{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.alert-chip{border:1px solid;border-radius:999px;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8rem;display:inline-flex}.alert-chip.critical{background:var(--red-tint);border-color:var(--red);color:var(--red)}.alert-chip.warning{background:var(--amber-tint);border-color:var(--amber);color:#8a5300}.alert-chip.info{background:var(--info-tint);border-color:var(--info);color:var(--info)}.alert-summary-item{border-radius:var(--radius-md);text-align:left;border:1px solid;align-items:center;gap:.5rem;padding:.45rem .55rem .45rem .75rem;display:inline-flex}.alert-summary-item:hover{filter:brightness(.97);transform:translateY(-1px)}.alert-summary-item.critical{background:var(--red-tint);border-color:var(--red);color:var(--red)}.alert-summary-item.warning{background:var(--amber-tint);border-color:var(--amber);color:#8a5300}.alert-summary-main{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:.1rem;padding:0;display:grid}.alert-summary-item strong{font-size:.78rem}.alert-summary-item small{color:inherit;opacity:.85;font-size:.68rem}.alert-summary-accept{border-radius:var(--radius-sm);color:inherit;cursor:pointer;background:#ffffff8c;border:1px solid;align-items:center;gap:.25rem;margin-left:.25rem;padding:.3rem .45rem;font-size:.7rem;font-weight:700;display:inline-flex}.alert-summary-accepted{white-space:nowrap;align-items:center;gap:.25rem;margin-left:.25rem;font-size:.68rem;font-weight:700;display:inline-flex}.camera-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.camera-card{cursor:pointer;border-radius:var(--radius-lg);transition:box-shadow .2s,transform .15s;position:relative;overflow:hidden}.camera-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.camera-card-image{background:var(--ink-10);width:100%;height:100px;display:block;position:relative;overflow:hidden}.camera-card-image img{object-fit:cover;width:100%;height:100%;display:block}.camera-card-placeholder{background:var(--ink-10);width:100%;height:100px;color:var(--ink-40);justify-content:center;align-items:center;display:flex}.camera-card-info{padding:.75rem 1rem 1rem}.camera-card-header-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.camera-card-title{font-size:.95rem;font-weight:600}.camera-type-icon{z-index:2;background:#fffffff0;border:1px solid #23231e29;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:.55rem;right:.55rem;box-shadow:0 2px 7px #23231e33}.camera-type-icon img{object-fit:contain;width:18px;height:18px}.camera-type-icon i{background:var(--leaf);border-radius:50%;width:13px;height:13px;display:block}.camera-card-meta{color:var(--ink-60);flex-wrap:wrap;gap:.75rem;font-size:.8rem;display:flex}.meta-item{align-items:center;gap:.25rem;display:inline-flex}.meta-item svg{width:.875rem;height:.875rem}.camera-card-location{color:var(--ink-60);margin-bottom:.375rem;font-size:.8rem}.sensor-device-card{cursor:pointer}.sensor-chart-wrap{border-bottom:1px solid var(--ink-10);background:linear-gradient(#f7faf5,#edf4ea);min-width:0;padding:.55rem .65rem .4rem}.sensor-chart-wrap svg{width:100%;height:112px;display:block;overflow:visible}.sensor-chart-grid{stroke:#23231e1a;stroke-width:1px}.sensor-chart-axis line{stroke:#23231e61;stroke-width:.8px}.sensor-chart-axis text{fill:var(--ink-60);font-variant-numeric:tabular-nums;font-size:7px}.sensor-chart-legend{min-height:30px;color:var(--ink-60);flex-wrap:wrap;gap:.3rem .7rem;padding:.25rem .2rem 0;font-size:.68rem;display:flex}.sensor-chart-legend span{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.25rem;max-width:100%;display:inline-flex;overflow:hidden}.sensor-chart-legend i{border-radius:50%;flex:0 0 7px;width:7px;height:7px}.sensor-chart-empty{height:156px;color:var(--ink-40);background:var(--cream);border-bottom:1px solid var(--ink-10);justify-content:center;align-items:center;gap:.45rem;font-size:.8rem;display:flex}.location-device-subgroup{margin-top:1rem}.location-device-subgroup-title{color:var(--ink-60);letter-spacing:.05em;text-transform:uppercase;margin:0 0 .55rem;font-size:.78rem;font-weight:700}.field-group{background:var(--white);border:.8px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:1rem;padding:1rem}.field-group:first-of-type{margin-top:1.25rem}.field-group-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.field-group-name{font-size:var(--text-h5);color:var(--heading);margin:0;font-weight:700}.field-group .location-device-subgroup{margin-top:0}.field-group>.camera-grid,.field-group>.camera-grid+.camera-grid{margin-top:.75rem}.overview-field-tabs{scroll-snap-type:x proximity;gap:.55rem;margin:.15rem 0 .85rem;padding:.25rem 0 .45rem;display:flex;overflow-x:auto}.overview-field-tabs>button{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);color:var(--ink);font:inherit;text-align:left;scroll-snap-align:start;cursor:pointer;box-shadow:var(--shadow-sm);flex:0 0 min(250px,78vw);gap:.12rem;padding:.7rem .85rem;display:grid}.overview-field-tabs>button:hover{border-color:var(--leaf);background:var(--cream)}.overview-field-tabs>button.active{border-color:var(--leaf-dark);background:linear-gradient(135deg, #f1f8ef, var(--white));box-shadow:inset 0 -3px 0 var(--leaf)}.overview-field-tabs>button>span{color:var(--ink-60);font-size:var(--text-xs)}.overview-field-tabs>button>strong{overflow-wrap:anywhere;font-size:.96rem}.overview-field-tabs>button>small{color:var(--ink-60);font-size:.7rem;line-height:1.35}.overview-field-panel{margin-top:0}.overview-field-heading{gap:.08rem;margin-right:auto;display:grid}.overview-field-heading>span{color:var(--ink-60);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.overview-field-panel>.weather-section{margin-top:0}.overview-device-section{margin-top:1rem}.overview-device-section>h4{color:var(--ink-60);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;margin:0 0 .55rem;font-weight:750}.virtual-weather-device-section{border-top:1px solid var(--ink-10);padding-top:.9rem}.status-dot-label{white-space:nowrap;align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.healthy{background:var(--leaf)}.status-dot.warning{background:var(--amber)}.status-dot.critical,.status-dot.offline{background:var(--red)}.status-badge{border-radius:999px;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-badge.healthy{background:var(--leaf-tint);color:var(--leaf-strong)}.status-badge.warning{background:var(--amber-tint);color:#8a5300}.status-badge.critical{background:var(--red-tint);color:var(--red)}.schedule-overdue{text-transform:uppercase;letter-spacing:.04em;color:var(--red);vertical-align:middle;background:#fce4ec;border-radius:999px;align-items:center;margin-left:.375rem;padding:.05rem .4rem;font-size:.65rem;font-weight:600;display:inline-flex}.map-container{background:var(--cream-80);border-radius:var(--radius-lg);border:1px solid var(--ink-10);aspect-ratio:16/9;min-height:300px;position:relative;overflow:hidden}.map-container svg{width:100%;height:100%;display:block}.detail-header{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.detail-header h2{font-size:var(--text-h3);color:var(--heading);font-weight:700}.moth-panel{color:var(--ink);border:1px solid var(--ink-10);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#f6f5f1;margin-bottom:1rem;padding:1.25rem}.moth-panel-heading,.moth-panel-heading h3,.moth-chart-legend{align-items:center;display:flex}.moth-panel-heading{justify-content:space-between;gap:1rem;margin-bottom:1rem}.moth-panel-heading h3{gap:.5rem;font-size:1.15rem}.moth-kicker{color:#8b6732;letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:700;display:block}.moth-type-badge{color:#2d251f;background:#e2b866;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:700}.moth-controls{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-md);grid-template-columns:minmax(150px,1.4fr) repeat(4,minmax(125px,1fr)) auto;align-items:end;gap:.75rem;padding:.85rem;display:grid}.moth-deployment-controls{grid-template-columns:minmax(260px,1.3fr) minmax(240px,1fr)}.moth-deployment-summary{gap:.25rem;padding:.25rem 0;display:grid}.moth-deployment-summary span{color:var(--ink-60);font-size:.72rem;font-weight:600}.moth-deployment-summary strong{font-size:.9rem}.moth-panel-empty{color:var(--ink-60);margin:0}.moth-controls label{color:var(--ink-60);gap:.25rem;font-size:.72rem;font-weight:600;display:grid}.moth-controls .select,.moth-controls .input{width:100%;height:36px;color:var(--ink);background:var(--white);border:1px solid var(--ink-20)}.moth-controls .input{border-radius:var(--radius-md);padding:.375rem .55rem;font-family:inherit}.moth-save{color:#2d251f;white-space:nowrap;background:#e2b866;height:36px}.moth-save:hover{background:#edc87f}.moth-stats{grid-template-columns:repeat(4,1fr);gap:.75rem;margin:.85rem 0;display:grid}.moth-model-stats{grid-template-columns:repeat(3,1fr)}.moth-stats>div{background:#ffffff0e;border-left:2px solid #d8af67;border-radius:4px;grid-template-columns:auto 1fr;gap:.1rem .55rem;padding:.75rem;display:grid}.moth-stats svg{color:#d8af67;grid-row:1/3;align-self:center;width:18px}.moth-stats span{color:#b9aea5;font-size:.7rem}.moth-stats strong{font-size:1.2rem;line-height:1.1}.moth-stats strong small{color:#b9aea5;margin-left:.35rem;font-size:.65rem;font-weight:500}.moth-stats .moth-date-value{font-size:.9rem}.moth-chart-card{border-radius:var(--radius-md);background:#f8f3eb;padding:.75rem}.moth-chart-legend{color:#5e554e;flex-wrap:wrap;justify-content:flex-end;gap:1rem;font-size:.72rem}.moth-chart-legend span:before{content:"";vertical-align:middle;background:#b57836;width:12px;height:3px;margin-right:.35rem;display:inline-block}.moth-chart-legend .heat:before{background:#4a7c59}.moth-chart-legend .forecast:before{background:#f8f3eb;border:2px dashed #4a7c59;border-radius:50%;width:7px;height:7px}.moth-chart-legend .biofix:before{background:#b4433c}.moth-chart-scroll{overflow-x:auto}.moth-chart-scroll svg{min-width:100%;height:280px;display:block}.moth-grid-line{stroke:#ddd3c7;stroke-width:1px}.moth-capture-bar{fill:#b57836;opacity:.88}.moth-capture-line{fill:none;stroke:#b57836;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.moth-chart-point.clickable{cursor:pointer}.moth-chart-point.clickable:focus{outline:none}.moth-chart-point.clickable:focus .moth-capture-point{stroke-width:4px}.moth-capture-point{fill:#f8f3eb;stroke:#b57836;stroke-width:3px}.moth-capture-point.biofix{fill:#b4433c;stroke:#7e2925}.moth-heat-line{fill:none;stroke:#4a7c59;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.moth-heat-point{fill:#4a7c59;stroke:#f8f3eb;stroke-width:1.5px}.moth-heat-point.forecast{fill:#f8f3eb;stroke:#4a7c59;stroke-width:2px;stroke-dasharray:2 1}.moth-heat-warning{fill:#d2564c1f}.moth-heat-limit{stroke:#cf766e;stroke-width:1.5px}.moth-heat-limit-label{fill:#a4423b;font-size:10px;font-weight:700}.moth-now-line{stroke:#8b8b86;stroke-width:1.5px}.moth-now-label{fill:#777772;text-transform:uppercase;font-size:10px;font-weight:700}.moth-biofix-line{stroke:#b4433c;stroke-width:2px;stroke-dasharray:5 4}.moth-axis-label{fill:#766b63;font-size:10px}.moth-empty-note{color:#70635c;margin-top:.5rem;font-size:.78rem}.moth-method-note{color:var(--ink-60);margin-top:.65rem;font-size:.7rem}.moth-overwinter{border-radius:var(--radius-md);background:#4a7c5914;border:1px solid #4a7c5959;margin-top:.85rem;padding:.65rem .75rem}.moth-overwinter-kicker{color:#3f6b4c;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem;font-size:.68rem;font-weight:700;display:block}.moth-overwinter p{color:var(--ink-70);margin:.2rem 0 0;font-size:.74rem;line-height:1.45}.moth-biofix-list{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.moth-biofix-list>span{color:var(--ink);background:#b4433c1a;border:1px solid #b4433c4d;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .5rem;font-size:.72rem;display:inline-flex}.moth-biofix-list button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.moth-error{color:var(--red);margin-top:.6rem;font-size:.78rem}.moth-detection-box{pointer-events:none;border:2px solid #e2b866;border-radius:3px;position:absolute;box-shadow:0 0 0 1px #140f0a8c}button.moth-detection-box.reviewable{appearance:none;pointer-events:auto;cursor:pointer;background:0 0;padding:0}.moth-detection-box.reviewed{border-color:#65b785}.moth-detection-box.reviewed>span{background:#8bd0a4}.moth-detection-box.draft{pointer-events:none;border-style:dashed}.moth-detection-box.unknown{border-color:#75a8d1}.moth-detection-box>span{transform-origin:0 100%;color:#211e1c;white-space:nowrap;background:#e2b866;border-radius:3px 3px 0 0;padding:1px 4px;font-size:9px;font-weight:700;line-height:1.4;position:absolute;bottom:100%;left:-2px}.moth-detection-box.unknown>span{background:#9fc8e8}.moth-image-status{color:var(--ink-60);margin-left:auto;font-size:.75rem}.detection-review-body{gap:.75rem;display:grid}.detection-review>summary{cursor:pointer;white-space:nowrap;list-style-position:inside}.detection-review>summary>span:first-child{flex:1}.detection-review-toolbar{justify-content:flex-end;display:flex}.detection-draw-hint{color:var(--leaf-dark);border-radius:var(--radius-md);background:#e4f0e7;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;display:flex}.detection-editor{background:var(--cream);border:1px solid var(--ink-10);border-radius:var(--radius-md);grid-template-columns:minmax(240px,2fr) repeat(4,minmax(90px,.6fr));align-items:end;gap:.65rem;padding:.75rem;display:grid}.detection-editor label{color:var(--ink-60);gap:.25rem;font-size:.75rem;display:grid}.detection-editor-actions{grid-column:1/-1;gap:.4rem;display:flex}.detection-review-list{gap:.35rem;display:grid}.detection-review-item{border-bottom:1px solid var(--ink-10);justify-content:space-between;align-items:center;gap:.75rem;min-height:38px;padding:.35rem .55rem;font-size:.8rem;display:flex}.detection-review-item>span:last-child{flex-shrink:0;display:flex}.detection-review-error{color:var(--red);font-size:.8rem}@media (width<=850px){.detection-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.detection-editor label:first-child{grid-column:1/-1}}.hero-image{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.hero-image-frame{border-radius:var(--radius-lg);background:var(--ink-20);touch-action:auto;width:100%;margin-bottom:1.25rem;position:relative;overflow:hidden}.hero-transform-layer{transform-origin:50%;will-change:transform;position:absolute;top:50%;left:50%}.camera-image-viewer{margin:0 0 1.25rem}.camera-image-viewer .hero-image-frame{margin-bottom:0}.image-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.zoom-level{color:var(--ink-60);text-align:center;min-width:3rem;font-size:.8rem;font-weight:600}.camera-image-viewer.fullscreen{z-index:300;background:#000000f2;flex-direction:column;justify-content:center;align-items:center;max-width:100%;max-height:100vh;margin:0;padding:1rem;display:flex;position:fixed;inset:0}.camera-image-viewer.fullscreen .image-toolbar{z-index:301;display:flex;position:absolute;top:1rem;right:1rem}.camera-image-viewer.fullscreen .image-toolbar .btn{color:#fff;background:#ffffff26;border-color:#ffffff4d}.camera-image-viewer.fullscreen .hero-image-frame{touch-action:none;background:0 0;border-radius:0;margin-bottom:0}.image-note-marker{background:var(--amber);width:22px;height:22px;color:var(--white);transform-origin:50%;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex;position:absolute;box-shadow:0 0 0 2px #ffffffb3,0 1px 3px #00000080}.notes-panel-title{color:var(--ink-60);align-items:center;gap:.375rem;margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:flex}.image-notes-panel{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-md);margin-bottom:1.25rem;padding:.75rem}.image-note-row{align-items:center;gap:.5rem;padding:.375rem 0;display:flex}.image-note-row+.image-note-row{border-top:1px solid var(--ink-10)}.note-text{cursor:pointer;color:var(--ink-80);flex:1;font-size:.85rem}.note-text:hover{color:var(--ink)}.timeline{flex-direction:column;gap:0;display:flex}.timeline-item{gap:.75rem;padding:.5rem 0;display:flex}.timeline-item+.timeline-item{border-top:1px solid var(--ink-10)}.timeline-dot{background:var(--leaf);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:.35rem}.timeline-content{flex-direction:column;gap:.125rem;min-width:0;display:flex}.timeline-label{font-size:.85rem;font-weight:500}.timeline-time{color:var(--ink-60);font-size:.75rem}.timeline-detail{color:var(--ink-40);font-size:.8rem}.input{height:var(--control-height);padding:0 var(--space-lg);font-size:var(--text-body);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);color:var(--ink);width:100%;font-family:inherit;line-height:1.4}.input::placeholder{color:var(--control-placeholder)}.input:focus{border-color:var(--leaf-strong);outline:none}.input-sm{height:32px;padding:0 .625rem;font-size:.875rem}.camera-image-viewer figcaption{color:var(--ink-60);justify-content:space-between;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.8rem;display:flex}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.detail-section{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-lg);padding:1rem}.detail-section h3{color:var(--ink-60);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.detail-compact{align-self:start;padding:0;overflow:hidden}.detail-compact summary{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;min-height:44px;padding:.65rem .85rem;list-style:none;display:grid}.detail-compact summary::-webkit-details-marker{display:none}.detail-compact summary:after{content:"+";color:var(--ink-40);font-size:1.1rem;line-height:1}.detail-compact[open] summary:after{content:"−"}.detail-compact summary>span{color:var(--ink-60);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:700}.detail-compact summary>strong{text-overflow:ellipsis;white-space:nowrap;justify-self:end;align-items:center;gap:.3rem;min-width:0;font-size:.875rem;display:inline-flex;overflow:hidden}.detail-compact-content{border-top:1px solid var(--ink-10);padding:.6rem .85rem .8rem}.detail-row{justify-content:space-between;padding:.25rem 0;font-size:.875rem;display:flex}.detail-label{color:var(--ink-60)}.detail-value{font-weight:500}.chart-container{aspect-ratio:2;width:100%}.chart-container svg{width:100%;height:100%}.filmstrip{gap:.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.filmstrip-item{cursor:pointer;border-radius:var(--radius-md);background:var(--white);width:100px;color:inherit;font:inherit;border:2px solid #0000;flex-shrink:0;padding:0;transition:border-color .15s;overflow:hidden}.filmstrip-item:hover,.filmstrip-item.active{border-color:var(--leaf-strong)}.filmstrip-thumb-frame{background:var(--ink);width:100%;height:70px;overflow:hidden}.filmstrip-thumb-frame img{object-fit:cover;width:100%;height:100%}.filmstrip-label{color:var(--ink-60);text-align:center;padding:.125rem 0;font-size:.65rem}.camera-roll-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.camera-roll-actions{align-items:center;gap:.75rem;display:inline-flex}.timelapse-controls{flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.timelapse-field{color:var(--ink-60);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.timelapse-field input{width:auto}.timelapse-viewer{aspect-ratio:1;background:var(--ink-20);border-radius:var(--radius-md);justify-content:center;align-items:center;width:100%;max-height:min(70vh,600px);margin:0 auto;display:flex;overflow:hidden}.timelapse-viewer img{object-fit:contain;width:100%;height:100%}.timelapse-playbar{align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.timelapse-slider{min-width:0;accent-color:var(--leaf-strong);flex:1}.timelapse-counter{text-align:right;min-width:3.5rem}.timelapse-date{text-align:center;margin-top:.5rem}.timelapse-export{border-top:1px solid var(--ink-10);flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.timelapse-progress{background:var(--ink-10);border-radius:999px;width:100%;height:6px;overflow:hidden}.timelapse-progress-bar{background:var(--leaf);height:100%;transition:width .2s}.deployment-status{border-radius:var(--radius-md);background:var(--cream-60);color:var(--ink);align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.625rem .75rem;font-size:.875rem;font-weight:500;display:flex}.deployment-status.field{color:var(--leaf-dark);background:#e8f2ea}.deployment-status.storage{background:var(--ink-10);color:var(--ink-80)}.deployment-form{border:1px solid var(--ink-10);border-radius:var(--radius-md);background:var(--cream);flex-direction:column;gap:.625rem;margin-bottom:.875rem;padding:.875rem;display:flex}.deployment-form-row{flex-wrap:wrap;gap:.75rem;display:flex}.deployment-form-row .timelapse-field{flex:1;min-width:160px}.deployment-form-row .timelapse-field input,.deployment-form-row .timelapse-field select{width:100%}.deployment-checkbox{color:var(--ink-60);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.deployment-form-actions{gap:.5rem;display:flex}.deployment-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.deployment-item{align-items:flex-start;gap:.75rem;padding:.75rem 0;display:flex}.deployment-item+.deployment-item{border-top:1px solid var(--ink-10)}.deployment-icon{background:var(--ink-10);width:28px;height:28px;color:var(--ink-60);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.deployment-item.field .deployment-icon{color:var(--leaf-dark);background:#e8f2ea}.deployment-body{flex:1;min-width:0}.deployment-title{font-size:.9rem;font-weight:600}.deployment-crop{color:var(--ink-60);font-weight:400}.deployment-live{text-transform:uppercase;letter-spacing:.04em;color:var(--leaf-dark);vertical-align:middle;background:#dcebdf;border-radius:999px;margin-left:.5rem;padding:.05rem .4rem;font-size:.65rem;font-weight:600;display:inline-block}.deployment-dates{color:var(--ink-80);margin-top:.15rem;font-size:.8rem}.deployment-note{color:var(--ink-60);margin-top:.15rem;font-size:.8rem;font-style:italic}.deployment-actions{flex-shrink:0;gap:.125rem;display:flex}.orientation-control{align-items:center;gap:.25rem;display:inline-flex}.orientation-value{text-align:center;min-width:2.5rem;font-size:.85rem;font-weight:600}.phenology-timeline{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.pheno-item{align-items:center;gap:.625rem;font-size:.8rem;display:flex}.pheno-dot{background:var(--leaf);border-radius:50%;flex-shrink:0;width:8px;height:8px}.pheno-date{color:var(--ink-60);min-width:80px}.alert-card{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-lg);margin-bottom:.75rem;padding:1rem}.alert-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.alert-title{align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;display:flex}.alert-detail{color:var(--ink-60);margin-bottom:.5rem;font-size:.85rem}.alert-actions{gap:.5rem;margin-top:.75rem;display:flex}.movement-map{background:var(--cream-80);border-radius:var(--radius-md);width:100%;height:120px;margin:.5rem 0}.permission-table{border-collapse:collapse;width:100%;font-size:.875rem}.permission-table th{text-align:left;padding:.5rem var(--space-lg);background:var(--table-head-bg);border-bottom:.8px solid var(--table-border);color:var(--table-head-text);font-weight:400;font-size:var(--text-body);white-space:nowrap;height:48px}.permission-table td{padding:.5rem var(--space-lg);border-bottom:.8px solid var(--table-border);color:var(--ink);font-size:.875rem}.dialog-overlay{z-index:300;background:#2c242066;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog{background:var(--white);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:1.5rem}.dialog h3{font-size:var(--text-h4);color:var(--heading);margin-bottom:1rem;font-weight:700}.form-group{margin-bottom:var(--space-lg)}.form-group label{font-size:var(--text-body);color:var(--heading);margin-bottom:.375rem;font-weight:700;display:block}.form-group input,.form-group select{width:100%;height:var(--control-height);padding:0 var(--space-lg);font-size:var(--text-body);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);font-family:inherit;transition:border-color .15s,box-shadow .15s}.form-group input::placeholder,.form-group select::placeholder{color:var(--control-placeholder)}.form-group input:focus,.form-group select:focus{border-color:var(--leaf-strong);outline:none;box-shadow:0 0 0 3px #6a951c26}.dialog-actions{margin-top:var(--space-xl);justify-content:flex-end;gap:.5rem;display:flex}.dialog.dialog-sm{max-width:420px}.dialog.dialog-lg{max-width:900px}.field-boundary-dialog{flex-direction:column;gap:.6rem;width:100%;max-height:calc(100vh - 2rem);display:flex;overflow:hidden}.field-boundary-address{flex:none;align-items:flex-end;gap:.5rem;display:flex}.field-boundary-address-input{color:var(--ink-60);flex:1;gap:.2rem;font-size:.78rem;display:grid}.field-boundary-address-input input{border:1px solid var(--ink-10);border-radius:var(--control-radius);background:var(--white);font:inherit;color:var(--ink);padding:.45rem .6rem}.field-boundary-hint{flex:none;margin:0}.field-boundary-map{border:1px solid var(--ink-10);border-radius:var(--radius-md);flex:auto;min-height:240px;position:relative;overflow:hidden}.field-boundary-map .google-map-canvas{width:auto;height:auto;position:absolute;inset:0}.field-boundary-actions{flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.field-boundary-tools{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.field-boundary-count{font-variant-numeric:tabular-nums;font-size:.72rem}.field-boundary-area{color:var(--leaf-dark);font-variant-numeric:tabular-nums;padding-left:.35rem;font-size:.78rem}.field-boundary-actions .dialog-actions{margin-top:0}.hierarchy-location-head{align-items:center;gap:.5rem;display:flex}.hierarchy-location-head h3{flex:1;min-width:0}.editable-name{align-items:center;gap:.25rem;min-width:0;display:inline-flex}.editable-name .editable-name-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.editable-name-edit{color:var(--ink-60);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:.12rem;transition:opacity .12s,color .12s,background .12s;display:inline-flex}.editable-name:hover .editable-name-edit,.editable-name-edit:focus-visible{opacity:1}.editable-name-edit:hover{color:var(--leaf-dark);background:#3c693c1f}.editable-name-input{border:1px solid var(--leaf);min-width:6rem;max-width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:6px;padding:.1rem .35rem}.editable-name-save,.editable-name-cancel{cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:.14rem;display:inline-flex}.editable-name-save{color:var(--leaf-dark)}.editable-name-save:hover{background:#3c693c24}.editable-name-cancel{color:var(--red)}.editable-name-cancel:hover{background:#a33f451f}.editable-name-save:disabled,.editable-name-cancel:disabled{opacity:.5;cursor:default}.sector-chips .editable-name-input{min-width:4.5rem;padding:0 .25rem;font-size:.72rem}.hierarchy-location-area{color:var(--ink-60);font-variant-numeric:tabular-nums;font-size:.78rem}.hierarchy-field-address{color:var(--ink-60);margin:.15rem 0;font-size:.78rem}.hierarchy-field-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.workspace-delete-button{color:var(--red)}.firmware-update-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.firmware-update-list li{border:.8px solid var(--border);border-radius:var(--radius-md);background:var(--white);justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.firmware-update-list li>div{gap:.15rem;min-width:0;display:grid}.firmware-update-list li>div>span{justify-self:start}.firmware-update-list small{color:var(--ink-60);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.device-config-settings{background:var(--ink-05);border-radius:var(--radius-md);gap:.25rem;margin:.75rem 0;padding:.6rem .75rem;display:grid}.device-config-settings .detail-row{padding:.2rem 0;font-size:.875rem}.device-config-section-title{border-top:1px solid var(--border);color:var(--ink);margin:.35rem 0 .1rem;padding-top:.55rem;font-size:.8rem}.device-config-section-title:first-child{border-top:0;margin-top:0;padding-top:0}.service-config-value{align-items:center;gap:.4rem;min-width:0;display:inline-flex}.device-config-history{gap:.6rem;max-height:320px;margin-top:.5rem;display:grid;overflow:auto}.device-config-history-row{border:.8px solid var(--border);border-radius:var(--radius-md);background:var(--white);gap:.25rem;padding:.6rem .75rem;display:grid}.device-config-history-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.device-config-history-head span{color:var(--ink-60);font-size:.75rem}.device-config-history-row .device-config-settings{margin:.35rem 0 .1rem;padding:.4rem .55rem}.device-config-history-row small{color:var(--ink-60);font-size:.7rem}.classification-select{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.classification-select button{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--cream);color:var(--ink);padding:.25rem .625rem;font-size:.8rem}.classification-select button.active{background:var(--leaf);color:var(--ink);border-color:var(--leaf-strong)}.compare-panel{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.compare-image{aspect-ratio:4/3;background:var(--ink-10);border-radius:var(--radius-lg);overflow:hidden}.compare-image img{object-fit:cover;width:100%;height:100%}.compare-meta{color:var(--ink-60);margin-top:.5rem;font-size:.8rem}.filter-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.filter-bar .select{min-width:140px}.language-select{appearance:none;border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--cream);color:var(--ink-60);cursor:pointer;flex-shrink:0;min-width:0;max-width:5rem;padding:.125rem .5rem;font-family:inherit;font-size:.72rem;font-weight:500;line-height:1.4}.language-select:focus{border-color:var(--leaf-strong);outline:none}.language-select:hover{background:var(--cream-80)}.login-page{background:var(--cream);justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex}.login-card{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-md);text-align:center;padding:2rem}.login-card h1{font-size:var(--text-h3);color:var(--heading);margin-top:.75rem;margin-bottom:.25rem;font-weight:700}.login-card .form-group{text-align:left}.login-card .btn{margin-top:.5rem}.login-error{color:var(--red);margin-bottom:.5rem;font-size:.85rem}.login-card-wide{text-align:left;max-width:430px}.login-card-wide h1,.login-card-wide>p{text-align:center}.login-brand-row{justify-content:space-between;align-items:center;display:flex}.login-provider-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.25rem;display:grid}.login-provider-grid .btn{margin:0}.login-divider{color:var(--ink-40);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:.75rem;margin:1.25rem 0;font-size:.75rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--ink-10);flex:1;height:1px}.login-switch{color:var(--leaf-strong);background:0 0;border:0;margin:.9rem auto 0;font-size:.85rem;display:block}.registration-agreement{text-align:left;max-width:640px;max-height:calc(100dvh - 2rem);overflow-y:auto}.registration-agreement-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.registration-agreement-header h2{color:var(--heading);margin:.4rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,3vw,1.8rem);font-weight:500}.registration-agreement-intro{color:var(--ink-60);font-size:var(--text-sm);margin:1rem 0;line-height:1.5}.registration-agreement-points{background:var(--leaf-tint);border-left:3px solid var(--leaf-strong);border-radius:var(--radius-sm);gap:.65rem;margin:0 0 1rem;padding:.85rem 1rem;display:grid}.registration-agreement-points p{color:var(--ink);font-size:var(--text-sm);margin:0;line-height:1.5}.registration-consent-option{color:var(--ink);font-size:var(--text-sm);cursor:pointer;align-items:flex-start;gap:.6rem;margin-top:.75rem;line-height:1.45;display:flex}.registration-consent-option input{width:1rem;height:1rem;accent-color:var(--leaf-strong);flex:none;margin:.15rem 0 0}.legacy-login{border-top:1px solid var(--ink-10);margin-top:1.35rem;padding-top:1rem}.legacy-login summary{cursor:pointer;color:var(--ink-60);font-size:.85rem}.legacy-login>p{color:var(--ink-60);margin:.75rem 0;font-size:.78rem}.workspace-page{background:linear-gradient(180deg, #e8eee5 0, var(--cream) 18rem);min-height:100dvh}.workspace-page-embedded{background:0 0;min-height:0}.workspace-header{justify-content:space-between;align-items:center;max-width:1320px;height:64px;margin:0 auto;padding:0 1.5rem;display:flex}.workspace-header .header-logo img{width:32px;height:32px}.workspace-account{color:var(--ink-60);align-items:center;gap:.8rem;font-size:.85rem;display:flex}.workspace-main{max-width:1260px;margin:0 auto;padding:2rem 1.5rem 4rem}.workspace-page-embedded .workspace-main{padding:0 0 2.5rem}.workspace-hero{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2rem;display:flex}.workspace-hero h1{margin:.45rem 0 .75rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:500;line-height:1}.workspace-hero p{max-width:680px;color:var(--ink-60)}.workspace-hero-actions{flex-wrap:wrap;gap:.6rem;display:flex}.workspace-error{color:var(--red);border-radius:var(--radius-md);background:#fff1ef;border:1px solid #d9aaa6;margin-bottom:1rem;padding:.75rem 1rem}.workspace-onboarding{text-align:center;max-width:620px;margin:4rem auto;padding:2.5rem}.workspace-onboarding>svg{background:var(--leaf-tint);width:46px;height:46px;color:var(--leaf-strong);border-radius:50%;margin:0 auto 1rem;padding:10px}.workspace-onboarding h2{font-size:1.4rem}.workspace-onboarding p{color:var(--ink-60);max-width:460px;margin:.5rem auto 1.25rem}.workspace-toolbar{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.workspace-toolbar>label{color:var(--ink-60);gap:.3rem;font-size:.75rem;display:grid}.workspace-toolbar .select{min-width:240px}.workspace-company-name{color:var(--ink);font-size:1rem}.workspace-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start;gap:1.25rem;display:grid}.settings-tabs{border:1px solid var(--ink-10);border-radius:var(--radius-lg);background:#ffffffc2;gap:.35rem;width:fit-content;max-width:100%;margin:0 0 1rem;padding:.3rem;display:flex}.settings-tabs button{border-radius:var(--radius-md);min-width:110px;color:var(--ink-60);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:.4rem;padding:.55rem .9rem;font-size:.85rem;font-weight:650;display:inline-flex}.settings-tabs button:hover{color:var(--ink);background:var(--ink-05)}.settings-tabs button.active{color:var(--leaf-dark);background:var(--leaf-tint);box-shadow:inset 0 0 0 1px #48703933}.settings-tab-content{grid-template-columns:minmax(0,1fr)}.company-settings-panel,.company-users-page{width:100%}.company-settings-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1.25rem;display:grid}.company-settings-form label{color:var(--ink-60);gap:.35rem;font-size:.76rem;display:grid}.company-settings-form input,.company-settings-form .select{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);width:100%;color:var(--ink);font:inherit;padding:.55rem .65rem;font-size:.85rem}.company-settings-form input:disabled,.company-settings-form .select:disabled{background:var(--ink-05);color:var(--ink-60)}.company-settings-save{grid-column:1/-1;justify-self:start}.company-save-message{border-radius:var(--radius-md);background:var(--leaf-tint);color:var(--leaf-dark);margin:1rem 1.25rem 0;padding:.65rem .8rem;font-size:.82rem}.workspace-panel{border:1px solid var(--ink-10);box-shadow:var(--shadow-sm);background:#ffffffeb;border-radius:16px;overflow:hidden}.workspace-panel-title{border-bottom:1px solid var(--ink-10);align-items:center;gap:.8rem;padding:1.25rem;display:flex}.workspace-panel-title>svg{color:var(--leaf-strong)}.workspace-panel-title h2{font-size:1.1rem}.workspace-panel-title p{color:var(--ink-60);font-size:.8rem}.workspace-alerts{grid-column:1/-1}.alert-notification-enable{border-bottom:1px solid var(--ink-10);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.alert-notification-enable p{color:var(--ink-60);margin-top:.2rem;font-size:.8rem}.alert-rule-form{grid-template-columns:minmax(160px,1.4fr) minmax(210px,1.8fr) auto minmax(110px,1fr) minmax(110px,1fr) minmax(145px,1fr) minmax(145px,1fr) auto}.alert-rule-form label{color:var(--ink-60);gap:.3rem;font-size:.75rem;display:grid}.alert-rule-form .select,.alert-rule-form input{width:100%}.alert-direction{border:0;gap:.25rem;margin:0;padding:0;display:flex}.alert-direction legend{color:var(--ink-60);padding:0 0 .3rem;font-size:.75rem}.alert-direction button{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);min-width:2rem;color:var(--ink-60);justify-content:center;align-items:center;display:inline-flex}.alert-direction button.active{border-color:var(--leaf);background:var(--leaf-tint);color:var(--leaf-dark)}.alert-threshold{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.alert-threshold input{border:0!important;border-radius:0!important}.alert-threshold small{color:var(--ink-60);white-space:nowrap;padding:0 .6rem}.alert-recipient{align-items:center;gap:.8rem;display:flex}.alert-recipient label{align-items:center;gap:.35rem;display:inline-flex}.alert-table-wrap{padding:1rem 1.25rem;overflow-x:auto}.alert-table{border-collapse:collapse;width:100%;min-width:980px;font-size:.78rem}.alert-table th{text-align:left;color:var(--ink-60);white-space:nowrap;border-bottom:1px solid var(--ink-20);padding:.55rem .6rem;font-size:.68rem;font-weight:700}.alert-table td{vertical-align:middle;border-bottom:1px solid var(--ink-10);padding:.7rem .6rem}.alert-table td small{color:var(--ink-60);margin-top:.18rem;font-size:.68rem;display:block}.alert-table td:nth-child(4){color:var(--leaf-dark);align-items:center;gap:.3rem;display:flex}.alert-menu-button{color:var(--ink-60);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:.35rem;display:inline-flex}.alert-menu-button:hover{background:var(--ink-05);color:var(--ink)}.alert-switch{background:var(--ink-20);cursor:pointer;border:0;border-radius:999px;width:2.3rem;height:1.3rem;padding:.15rem}.alert-switch span{background:var(--white);border-radius:50%;width:1rem;height:1rem;transition:transform .15s;display:block}.alert-switch.on{background:var(--leaf)}.alert-switch.on span{transform:translate(1rem)}.alert-edit-panel{border-bottom:1px solid var(--ink-10);background:var(--cream);padding:1rem 1.25rem}.alert-add-button{margin:1rem 1.25rem 0}.alert-history{border-top:1px solid var(--ink-10)}.alert-history-header{justify-content:space-between;gap:1rem;padding:1rem 1.25rem 0;font-size:.82rem;display:flex}.alert-history-header span{color:var(--ink-60);font-size:.72rem}.alert-history-severity{text-transform:capitalize;font-weight:700}.alert-history-severity.alert{color:var(--red)}.alert-history-severity.warning{color:#8a5300}.alert-history-severity.normal{color:var(--leaf-dark)}.alert-edit-header,.alert-edit-actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.alert-edit-grid{grid-template-columns:minmax(150px,1.4fr) minmax(210px,1.8fr) auto repeat(4,minmax(110px,1fr));align-items:end;gap:.65rem;margin:.85rem 0;display:grid}.alert-edit-grid label{color:var(--ink-60);gap:.3rem;font-size:.73rem;display:grid}.alert-edit-grid input,.alert-edit-grid .select{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);width:100%;min-width:0;font:inherit;padding:.48rem .55rem}.alert-edit-enabled{white-space:nowrap;align-items:center;gap:.4rem;display:flex!important}.alert-edit-subscriptions{flex-wrap:wrap;align-items:center;gap:.7rem 1rem;margin-bottom:.85rem;font-size:.75rem;display:flex}.alert-row-actions{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.alert-edit-subscriptions>strong{margin-right:.3rem}.alert-rule-list{padding:1rem 1.25rem}.alert-rule-list .owned-device-card p{color:var(--ink-60);font-size:.8rem}.type-normal{background:var(--ink-10);color:var(--ink-60)}.type-warning{color:#765500;background:#fff0bc}.type-alert{color:#a02b19;background:#ffe0dc}.stack-create-form{background:var(--cream);border-bottom:1px solid var(--ink-10);grid-template-columns:1fr 1fr auto;align-items:end;gap:.6rem;padding:1rem 1.25rem;display:grid}.stack-create-form strong{grid-column:1/-1;font-size:.82rem}.stack-create-form input,.inline-create-form input{border:1px solid var(--ink-20);border-radius:var(--radius-md);background:var(--white);min-width:0;color:var(--ink);font:inherit;padding:.52rem .65rem;font-size:.85rem}.inline-create-form{justify-content:center;gap:.6rem;display:flex}.inline-create-form.compact{justify-content:flex-start}.hierarchy-list,.device-list{gap:.8rem;padding:1rem;display:grid}.hierarchy-location{border:1px solid var(--ink-10);border-radius:var(--radius-lg);padding:1rem}.hierarchy-location>h3{align-items:center;gap:.5rem;font-size:1rem;display:flex}.hierarchy-location>p{color:var(--ink-60);margin:.2rem 0 .8rem 1.55rem;font-size:.78rem}.hierarchy-location>form{margin:.75rem 0}.field-create-form{flex-wrap:wrap;align-items:center;width:100%}.field-create-form .field-create-name{flex:11rem}.field-create-form .field-create-type{flex:14rem;min-width:12rem}.field-create-form .field-create-address{flex:2 24rem;max-width:none}.field-create-form>button{flex:none}.hierarchy-field{border-left:2px solid #b8cab5;margin:.85rem 0 0 .45rem;padding:.45rem 0 .2rem 1rem}.hierarchy-field>div:first-child{align-items:center;gap:.45rem;display:flex}.hierarchy-field .hierarchy-field-type{color:var(--leaf-dark);background:#edf1e9;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.hierarchy-field-type-select{min-width:9rem;max-width:min(18rem,42vw);color:var(--leaf-dark);font:inherit;background-color:#f5f8f2;border:1px solid #cbd9c7;border-radius:999px;padding:.22rem 1.65rem .22rem .5rem;font-size:.7rem;font-weight:700}.hierarchy-field-type-select:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}.hierarchy-field-type-select:disabled{cursor:progress;opacity:.65}.hierarchy-field .hierarchy-field-area{color:var(--ink-60);margin-left:auto;font-size:.75rem}.sector-chips{flex-wrap:wrap;gap:.35rem;margin:.55rem 0;display:flex}.sector-chips span{color:var(--leaf-dark);background:#edf1e9;border-radius:999px;align-items:center;gap:.25rem;padding:.18rem .35rem .18rem .55rem;font-size:.72rem;display:inline-flex}.sector-chips small{color:var(--ink-60);font-variant-numeric:tabular-nums;font-size:.68rem}.sector-chips button{color:var(--red);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:.1rem;display:inline-flex}.sector-chips .sector-map-button{color:var(--leaf-dark)}.sector-chips button:hover{background:#a33f451f}.owned-device-card{border:1px solid var(--ink-10);border-radius:var(--radius-lg);grid-template-columns:1fr;gap:.75rem;padding:1rem;display:grid}.owned-device-card>div:first-child{grid-template-columns:auto 1fr;align-items:center;gap:.15rem .65rem;display:grid}.owned-device-card h3{font-size:1rem}.owned-device-card code{color:var(--ink-60);grid-column:2;font-size:.72rem}.owned-device-card label{color:var(--ink-60);gap:.25rem;font-size:.72rem;display:grid}.owned-device-location{grid-template-columns:1fr 1fr;align-items:end;gap:.5rem .6rem;display:grid}.owned-device-location input{border:1px solid var(--control-border);border-radius:var(--control-radius);width:100%;font:inherit;padding:.35rem .45rem;font-size:.8rem}.owned-device-location button{grid-column:1/-1;justify-self:start}.owned-device-remove{color:var(--danger,#b3261e);justify-self:start}.device-type{color:var(--white);background:var(--leaf);letter-spacing:.05em;border-radius:6px;grid-row:1/span 2;padding:.35rem .45rem;font-size:.64rem;font-weight:700}.device-type.type-trap{background:var(--amber)}.device-type.type-sensor{background:#47768a}.workspace-empty{color:var(--ink-60);text-align:center;padding:1.5rem 1rem;font-size:.85rem}.local-setup-shell{min-height:100dvh;padding-top:64px}.local-setup-bar{background:var(--white);border-bottom:1px solid var(--ink-10);z-index:100;justify-content:space-between;align-items:center;height:64px;padding:0 1.25rem;display:flex;position:fixed;inset:0 0 auto}.setup-claim-state{color:var(--ink-60);font-size:.75rem}.setup-claim-state.success{color:var(--leaf-dark)}.setup-claim-state.error{color:var(--red)}@media (width<=820px){.workspace-grid{grid-template-columns:1fr}.workspace-hero{flex-direction:column;align-items:flex-start}.workspace-toolbar{flex-direction:column;align-items:stretch}.workspace-toolbar .select{width:100%;min-width:0}.workspace-account>span{display:none}}@media (width<=560px){.workspace-header,.workspace-main{padding-left:1rem;padding-right:1rem}.workspace-header .header-logo span{display:none}.stack-create-form,.alert-rule-form,.alert-edit-grid,.company-settings-form{grid-template-columns:1fr}.settings-tabs{width:100%}.settings-tabs button{flex:1;min-width:0;padding-inline:.45rem}.inline-create-form{flex-wrap:wrap}.inline-create-form input{flex:120px}.field-create-form .field-create-name,.field-create-form .field-create-type,.field-create-form .field-create-address{flex-basis:100%;width:100%}.hierarchy-field>div:first-child{flex-wrap:wrap}.hierarchy-field .hierarchy-field-area{margin-left:0}.hierarchy-field-type-select{max-width:100%}.login-provider-grid{grid-template-columns:1fr}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.placeholder-image{background:var(--ink-10);color:var(--ink-40);border-radius:var(--radius-lg);aspect-ratio:16/9;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;margin-bottom:1.25rem;display:flex}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-xs{gap:.375rem}.gap-sm{gap:.625rem}.gap-md{gap:1rem}.mt-sm{margin-top:.5rem}.mt-md{margin-top:1rem}.mb-md{margin-bottom:1rem}.mb-sm{margin-bottom:.5rem}.text-sm{font-size:.85rem}.text-xs{font-size:.75rem}.text-muted{color:var(--ink-60)}.text-warning{color:#9a6b00}.full-width{width:100%}.grant-badge{border-radius:999px;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.grant-badge.full{background:var(--leaf-tint);color:var(--leaf-strong)}.grant-badge.view{color:#1565c0;background:#e3f2fd}.company-users-page{max-width:1180px;margin:0 auto}.compact-hero{min-height:0;margin-bottom:1rem}.users-layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:start;gap:1rem;display:grid}.users-card .card-header{align-items:center;gap:.5rem;display:flex}.system-users-card{grid-column:1/-1}.compact-select{min-width:150px}.invite-user-form{gap:.75rem;display:grid}.invite-user-form label{color:var(--ink-60);gap:.3rem;font-size:.78rem;display:grid}.invitation-delivery{background:var(--leaf-tint);color:var(--leaf-strong);border-radius:var(--radius-sm);margin:1rem 0 0;padding:.6rem .75rem;font-size:.82rem}.invitation-link{background:var(--ink-05);border-radius:var(--radius-sm);gap:.5rem;margin-top:.6rem;padding:.75rem;display:flex}.invitation-link input{flex:1;min-width:0}.pending-heading{margin:1.25rem 0 .5rem;font-size:.9rem}.pending-invite{border-top:1px solid var(--ink-10);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.pending-invite div{min-width:0}.pending-invite strong,.pending-invite span{overflow-wrap:anywhere;display:block}.pending-invite span{color:var(--ink-60);margin-top:.15rem;font-size:.72rem}.service-page{max-width:1320px;margin:0 auto}.service-console-menu{background:var(--ink-05);border:.8px solid var(--border);border-radius:var(--control-radius);gap:.25rem;margin:0 0 1rem;padding:.25rem;display:inline-flex}.service-console-menu button{border-radius:var(--control-radius);color:var(--ink-60);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:.5rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.service-console-menu button:hover{color:var(--ink)}.service-console-menu button.active{background:var(--white);color:var(--ink);box-shadow:var(--shadow-sm)}.customer-activity-page{max-width:1320px}.customer-activity-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.customer-activity-heading h2{margin:.25rem 0}.customer-activity-heading p{color:var(--ink-60);font-size:var(--text-sm);margin:0}.customer-activity-heading .setup-eyebrow{align-items:center;gap:.35rem;display:inline-flex}.customer-activity-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.customer-activity-stat{padding:.75rem var(--space-lg);background:var(--white);border:.8px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:auto 1fr;align-items:center;gap:.15rem .45rem;display:grid}.customer-activity-stat svg{color:var(--leaf-strong);grid-row:span 2}.customer-activity-stat span{color:var(--ink-60);font-size:.72rem}.customer-activity-stat strong{font-size:1.25rem;line-height:1.1}.customer-activity-table-wrap{overflow:hidden}.customer-activity-table-wrap .card-body{overflow-x:auto}.customer-activity-table{min-width:760px}.customer-activity-table td{vertical-align:top}.customer-active-badge{color:var(--leaf-strong);align-items:center;gap:.3rem;margin:.2rem 0;font-size:.72rem;font-weight:600;display:inline-flex}.customer-active-badge span{background:var(--leaf-strong);border-radius:50%;width:6px;height:6px}.service-page .workspace-hero h1,.service-detail-page .workspace-hero h1{font-family:var(--font-sans);font-size:var(--text-h1);color:var(--heading);margin:.45rem 0 .75rem;font-weight:700;line-height:1.2}.service-page .workspace-hero p,.service-detail-page .workspace-hero p{color:var(--ink-60);font-size:var(--text-sm)}.service-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.service-stat{border:.8px solid var(--border);border-radius:var(--radius-sm);padding:.75rem var(--space-lg);background:#fff;gap:.2rem;display:grid}.service-stat span{color:var(--ink-60);font-size:.72rem}.service-stat strong{font-size:1.35rem;line-height:1.1}.service-filters{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:1rem;display:flex}.service-filters label{color:var(--ink-60);gap:.25rem;font-size:.74rem;display:grid}.service-search{flex:260px}.service-search input{width:100%;height:var(--control-height);padding:0 var(--space-lg);font-size:var(--text-body);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);color:var(--ink);font-family:inherit}.service-search input::placeholder{color:var(--control-placeholder)}.service-search input:focus{border-color:var(--leaf-strong);outline:none}.service-table code{font-size:.72rem}.service-sort-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.15rem;padding:0;display:inline-flex}.service-sort-button:hover{color:var(--leaf-strong)}.service-sort-button:focus-visible{outline:2px solid var(--leaf-strong);outline-offset:3px;border-radius:2px}.service-status{font-size:.72rem;font-weight:600}.service-status.status-online{color:var(--leaf-strong)}.service-status.status-warning{color:#b26a00}.service-status.status-offline{color:var(--red)}.service-status.status-never{color:var(--ink-60)}.service-row-menu{position:relative}.service-menu{z-index:20;border:.8px solid var(--border);border-radius:var(--radius-sm);background:#fff;gap:.15rem;min-width:180px;padding:.25rem;display:grid;position:absolute;bottom:calc(100% + .25rem);right:0;box-shadow:0 8px 20px #0000001f}.service-menu button{border-radius:var(--radius-sm);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.45rem;padding:.5rem .6rem;font-size:.82rem;display:flex}.service-menu button:hover{background:var(--ink-05)}.vital-low{color:var(--red);font-weight:600}.service-detail-page{max-width:1100px;margin:0 auto}.service-camera-images-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.service-camera-viewer{margin:0 0 1rem}.service-camera-image-frame{border-radius:var(--radius-lg);background:var(--ink-20);place-items:center;min-height:260px;max-height:68vh;display:grid;overflow:hidden}.service-camera-image-frame img{object-fit:contain;width:100%;max-height:68vh;display:block}.service-camera-viewer figcaption{color:var(--ink-60);justify-content:space-between;gap:1rem;margin-top:.5rem;font-size:.8rem;display:flex}.service-camera-viewer figcaption strong{color:var(--ink)}.service-camera-images .filmstrip-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=640px){.service-console-menu{width:100%;display:flex}.service-console-menu button{flex:1;justify-content:center}.customer-activity-heading{flex-direction:column;align-items:stretch}.customer-activity-heading .btn{align-self:flex-start}.service-camera-image-frame{min-height:180px}.service-camera-viewer figcaption{flex-direction:column;align-items:flex-start;gap:.125rem}}.service-status-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;display:grid}.service-status-grid>div{gap:.2rem;display:grid}.service-status-grid span{color:var(--ink-60);align-items:center;gap:.3rem;font-size:.72rem;display:flex}.service-status-grid .service-device-locator-images{align-content:start;min-width:230px}.service-latest-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;display:grid}.service-select-hint{margin:0 0 .7rem}.service-latest{background:var(--ink-05);border-radius:var(--control-radius);cursor:pointer;border:.8px solid #0000;gap:.15rem;padding:.65rem .75rem;display:grid}.service-latest.selected{border-color:var(--leaf-strong);background:var(--leaf-tint)}.service-latest input{margin:0}.service-latest-head{align-items:center;gap:.35rem;display:flex}.service-latest span{color:var(--ink-60);text-transform:capitalize;font-size:.72rem}.service-latest strong{font-size:1.05rem}.service-latest small{color:var(--ink-60);font-size:.68rem}.device-measurement-selection-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.device-measurement-selection-header>span{align-items:center;gap:.4rem;display:inline-flex}.device-measurement-selection>summary{cursor:pointer;list-style:none}.device-measurement-selection>summary::-webkit-details-marker{display:none}.device-measurement-selection>summary:after{content:"+";color:var(--ink-60);font-size:1.1rem;font-weight:400}.device-measurement-selection[open]>summary:after{content:"−"}.device-measurement-selection-enable{justify-content:space-between;align-items:center;gap:1rem;display:flex}.device-measurement-selection-hint{margin:0 0 .9rem}.device-measurement-groups{gap:.65rem;display:grid}.device-measurement-groups details{border:1px solid var(--ink-10);border-radius:var(--radius-md);overflow:hidden}.device-measurement-groups summary{cursor:pointer;justify-content:space-between;align-items:center;padding:.65rem .8rem;font-weight:700;display:flex}.device-measurement-groups summary small{color:var(--ink-60);font-weight:400}.device-measurement-options{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.45rem;padding:0 .65rem .65rem;display:grid}.device-measurement-option{border:1px solid var(--ink-10);border-radius:var(--control-radius);background:var(--ink-05);cursor:pointer;align-items:center;gap:.45rem;min-width:0;padding:.5rem .6rem;display:flex}.device-measurement-option.selected{border-color:var(--leaf-strong);background:var(--leaf-tint)}.device-measurement-option input{flex:none;margin:0}.device-measurement-option>span{flex:1;min-width:0;display:grid}.device-measurement-option strong{text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;overflow:hidden}.device-measurement-option small{color:var(--ink-60);font-size:.68rem}.device-measurement-pulse{border:1px solid var(--ink-10);border-radius:var(--control-radius);background:var(--ink-05);cursor:pointer;align-items:flex-start;gap:.5rem;min-width:0;margin:0 0 .85rem;padding:.6rem .7rem;display:flex}.device-measurement-pulse.selected{border-color:var(--leaf-strong);background:var(--leaf-tint)}.device-measurement-pulse input{flex:none;margin:.15rem 0 0}.device-measurement-pulse>span{flex:1;gap:.15rem;min-width:0;display:grid}.device-measurement-pulse small{color:var(--ink-60);font-size:.68rem;line-height:1.35}.device-measurement-pulse>svg{color:var(--leaf-strong);flex:none;margin-top:.15rem}.device-measurement-selection-footer{justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;display:flex}@media (width<=640px){.device-measurement-selection-enable,.device-measurement-selection-footer{flex-direction:column;align-items:stretch}}.virtual-measurements-header{cursor:pointer;justify-content:space-between;align-items:baseline;gap:1rem;list-style:none;display:flex}.virtual-measurements-header::-webkit-details-marker{display:none}.virtual-measurements-header:after{content:"+";color:var(--ink-60);margin-left:auto;font-size:1.1rem;font-weight:400}.virtual-measurements-section[open] .virtual-measurements-header:after{content:"−"}.virtual-measurements-section .card-header small{max-width:620px;font-size:.72rem;font-weight:400}.virtual-measurement-add,.virtual-measurement-row{grid-template-columns:minmax(150px,1fr) minmax(170px,1fr) minmax(190px,1fr) auto;align-items:end;gap:.6rem;display:grid}.virtual-measurement-add{border-bottom:1px solid var(--ink-10);padding-bottom:1rem}.virtual-measurement-add label,.virtual-measurement-row label{color:var(--ink-60);gap:.25rem;font-size:.72rem;display:grid}.virtual-measurement-add input,.virtual-measurement-row input,.virtual-measurement-add select,.virtual-measurement-row select{height:var(--select-height);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);min-width:0;color:var(--ink);font:inherit;padding:0 .65rem;font-size:.82rem}.virtual-measurement-list{gap:.75rem;padding-top:1rem;display:grid}.virtual-measurement-row{border:1px solid var(--ink-10);border-radius:var(--radius-md);background:var(--ink-05);grid-template-columns:minmax(150px,1fr) minmax(170px,1fr) minmax(190px,1fr) auto;padding:.75rem}.virtual-measurement-row.disabled{opacity:.65}.virtual-measurement-enabled{white-space:nowrap;align-items:center;gap:.35rem;display:flex!important}.virtual-measurement-enabled input{width:auto;height:auto;padding:0}.virtual-measurement-value{gap:.2rem;min-width:120px;display:grid}.virtual-measurement-value strong{font-size:1rem}.virtual-measurement-value small{color:var(--ink-60);font-size:.68rem}.virtual-measurement-actions{flex-wrap:wrap;gap:.35rem;display:flex}.service-range-form{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:.9rem;display:flex}.service-range-form label{color:var(--ink-60);gap:.2rem;font-size:.72rem;display:grid}.service-range-form input{height:var(--select-height);padding:0 var(--space-md);font-size:var(--text-sm);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);color:var(--ink);font-family:inherit}.service-range-form input:focus{border-color:var(--leaf-strong);outline:none}.service-config-form{background:var(--ink-05);border-radius:var(--control-radius);gap:.4rem;min-width:210px;margin-top:.6rem;padding:.6rem;display:grid}.service-config-form label{color:var(--ink-60);gap:.2rem;font-size:.72rem;display:grid}.service-config-form small{max-width:260px;line-height:1.35}.service-config-form select,.service-config-form input[type=number],.service-config-form input[type=text]{height:var(--select-height);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);color:var(--ink);font:inherit;padding:0 .75rem;font-size:.85rem}.service-config-endpoints{border:1px solid var(--ink-10);border-radius:var(--control-radius);gap:.45rem;margin:.25rem 0;padding:.6rem;display:grid}.service-config-endpoints legend{color:var(--ink);padding:0 .25rem;font-size:.78rem;font-weight:600}@media (width<=760px){.virtual-measurement-add,.virtual-measurement-row{grid-template-columns:1fr 1fr}.virtual-measurement-add>button,.virtual-measurement-actions{grid-column:1/-1}}@media (width<=700px){.service-filters{flex-direction:column;align-items:stretch}}.invitation-result{text-align:center}.invitation-result img{margin:0 auto}@media (width<=800px){.users-layout{grid-template-columns:1fr}.system-users-card{grid-column:auto}.invitation-link{flex-direction:column;align-items:stretch}}.scope-breadcrumb{color:var(--ink-60);flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.8rem;display:flex}.scope-breadcrumb span+span:before{content:"›";color:var(--ink-40);margin-right:.25rem}.deployment-map-wrapper{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-md);width:100%;position:relative;overflow:hidden}.deployment-map-wrapper svg{width:100%;height:auto;min-height:200px;display:block}.deployment-map-empty{background:var(--cream);border:1px dashed var(--ink-20);border-radius:var(--radius-md);color:var(--ink-40);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.deployment-map-feedback{color:var(--red);background:var(--white);border:1px solid var(--red);white-space:nowrap;box-shadow:var(--shadow-sm);z-index:5;border-radius:999px;align-items:center;gap:.375rem;padding:.25rem .75rem;font-size:.8rem;display:inline-flex;position:absolute;bottom:.5rem;left:50%;transform:translate(-50%)}.deployment-map-legend{border-top:1px solid var(--ink-10);background:var(--cream);flex-wrap:wrap;gap:.75rem;padding:.375rem .75rem;display:flex}.deployment-map-legend-item{color:var(--ink-60);align-items:center;gap:.25rem;font-size:.7rem;display:inline-flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.deployment-form-map{margin:.5rem 0}.google-deployment-map{background:var(--white);border:1px solid var(--ink-10);border-radius:var(--radius-md);width:100%;position:relative;overflow:hidden}.google-map-canvas{width:100%;min-width:0;height:440px;overflow:hidden}.google-deployment-map-overlay{background:var(--cream-80);color:var(--ink-60);pointer-events:none;justify-content:center;align-items:center;font-size:.85rem;display:flex;position:absolute;inset:0}.google-deployment-map-overlay[role=alert]{color:var(--red)}@media (width<=768px){.google-map-canvas,.google-deployment-map-overlay{height:320px}}.status-notice-text{color:var(--orange);max-width:260px;font-size:.8rem;line-height:1.3}.camera-card-reporting-line{color:var(--orange);border-top:1px solid var(--ink-10);align-items:center;gap:.25rem;margin-top:.375rem;padding-top:.375rem;font-size:.75rem;display:flex}.deployment-coords{color:var(--ink-40);white-space:nowrap;margin-left:auto;font-size:.7rem}.deployment-coords-sm{color:var(--ink-40);font-size:.7rem}.deployment-form .timelapse-field select option{font-size:.8rem}.deployment-form .timelapse-field optgroup{color:var(--ink);font-weight:600}.location-camera-group{margin-bottom:1.5rem}.location-group-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.location-group-name{color:var(--ink);font-size:1.05rem;font-weight:600}.location-group-chip{padding:.125rem .5rem;font-size:.75rem}.location-device-map{border:1px solid var(--ink-10);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm);background:#f7f5ed;margin-bottom:1rem;overflow:hidden}.location-device-map svg{width:100%;height:240px;color:var(--ink-40);display:block}.location-device-google-map{width:100%;height:280px}.location-device-map.empty{min-height:210px;color:var(--ink-40);text-align:center;align-content:center;place-items:center;gap:.4rem;padding:1rem;font-size:.78rem;display:grid}.location-map-background{fill:#f4f1e6}.location-map-field{fill:#d8666d38;stroke:#a33f45;stroke-width:2px}.location-map-device circle:first-of-type{stroke:#fff;stroke-width:3px}.location-map-device.plant-camera circle:first-of-type{fill:#20b85a}.location-map-device.moth-trap circle:first-of-type{fill:#f4c430}.location-map-device-core{fill:#fff;stroke:none}.location-map-device text{fill:var(--ink);paint-order:stroke;stroke:#f4f1e6;stroke-width:3px;stroke-linejoin:round;font-size:9px;font-weight:700}.location-map-legend{border-top:1px solid var(--ink-10);color:var(--ink-60);background:#fff;flex-wrap:wrap;gap:.75rem;padding:.55rem .7rem;font-size:.7rem;display:flex}.location-map-legend span{align-items:center;gap:.3rem;display:inline-flex}.location-map-legend i{border-radius:50%;width:9px;height:9px}.location-map-legend i.plant-camera{background:#20b85a}.location-map-legend i.moth-trap{background:#f4c430}.image-nav-arrow{z-index:10;width:44px;height:44px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#f5f0e8e6;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,opacity .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 6px #2c242026}.image-nav-arrow:hover,.image-nav-arrow:focus-visible{background:var(--cream)}.image-nav-arrow:disabled{opacity:.3;cursor:default}.image-nav-arrow.prev{left:.5rem}.image-nav-arrow.next{right:.5rem}.voltage-chart-toggle{color:var(--leaf-strong);border-radius:var(--radius-md);cursor:pointer;vertical-align:middle;background:0 0;border:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;margin-left:.35rem;padding:0;transition:background .15s;display:inline-flex}.voltage-chart-toggle:hover,.voltage-chart-toggle:focus-visible{background:var(--ink-10)}@media (width<=768px){.moth-panel{padding:.9rem}.moth-controls{grid-template-columns:1fr 1fr}.moth-controls label:first-child{grid-column:1/-1}.moth-save{width:100%}.moth-stats{grid-template-columns:1fr 1fr}.deployment-map-wrapper svg{min-height:300px}.header-nav,.header-right{display:none}.bottom-nav{display:flex}.main-content{padding:1rem;padding-bottom:calc(var(--bottom-nav-height) + .75rem)}.detail-grid,.compare-panel,.camera-grid{grid-template-columns:1fr}.top-bar{flex-direction:column;align-items:stretch}.header-inner{gap:.5rem}.language-select{padding:.125rem .375rem;font-size:.68rem}}@media (width<=480px){.moth-controls,.moth-stats{grid-template-columns:1fr}.moth-controls label:first-child{grid-column:auto}.moth-panel-heading{align-items:flex-start}}.detail-row{gap:.5rem}.detail-value{overflow-wrap:break-word;word-break:break-word;min-width:0}.camera-roll-header,.camera-roll-actions{flex-wrap:wrap}.camera-roll-actions .btn{white-space:nowrap}.deployment-form-actions{flex-wrap:wrap}.timelapse-controls label{min-width:0}.timelapse-field input[type=number]{max-width:7rem}.deployment-form-row{min-width:0}.deployment-form-row .timelapse-field{min-width:120px}.alert-chip{white-space:normal;overflow-wrap:break-word;max-width:100%}.card-header.camera-roll-header,.location-group-header,.weather-card-header{overflow-wrap:break-word}@media (width<=768px){.language-select{display:inline-block}.header-logo{min-width:0;overflow:hidden}.header-logo span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@media (width>=769px){.main-content{padding-bottom:1.5rem}}@media (width<=480px){.camera-card-meta{flex-direction:column;gap:.25rem}.alert-summary{flex-direction:column}.camera-grid{gap:.75rem}}@media (width<=320px){.camera-card-meta{flex-direction:column;gap:.25rem}.alert-summary{flex-direction:column}}.insect-deployment-settings{gap:.75rem;display:grid}.insect-selector{flex:2 28rem}.insect-profile{border:1px solid var(--ink-10);border-radius:var(--radius-md);background:var(--cream);grid-template-columns:minmax(120px,190px) 1fr;gap:1rem;padding:.75rem;display:grid}.insect-profile img{object-fit:cover;border-radius:6px;width:100%;height:120px}.insect-profile div{align-content:start;gap:.25rem;display:grid}.insect-profile p{margin:.25rem 0}@media (width<=600px){.insect-profile{grid-template-columns:1fr}}.gsm-bars{cursor:help;align-items:flex-end;gap:2px;height:14px;display:inline-flex}.gsm-bars i{background:var(--ink-10);border-radius:1px;width:3px;display:block}.gsm-bars i:first-child{height:5px}.gsm-bars i:nth-child(2){height:8px}.gsm-bars i:nth-child(3){height:11px}.gsm-bars i:nth-child(4){height:14px}.gsm-bars i.on{background:var(--leaf)}.gsm-bars.quality-poor i.on{background:var(--red)}.gsm-bars.quality-fair i.on{background:#b26a00}.device-fix{gap:.5rem;display:grid}.device-fix-map{border-radius:var(--radius-sm);width:100%;height:220px;overflow:hidden}.device-fix-fallback{background:var(--ink-05);border-radius:var(--radius-sm);align-items:center;gap:.5rem;padding:1rem;display:flex}.device-fix-meta{color:var(--ink-60);flex-wrap:wrap;gap:.6rem;margin:0;font-size:.74rem;display:flex}.service-config-toggle{align-items:center;gap:.4rem;display:flex}.provision-form{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end;gap:.7rem;display:grid}.provision-form label{color:var(--ink-60);gap:.25rem;font-size:.74rem;display:grid}.provision-form input{height:var(--control-height);padding:0 var(--space-lg);font-size:var(--text-body);border:.8px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-bg);color:var(--ink);font-family:inherit}.provision-form input::placeholder{color:var(--control-placeholder)}.provision-form input:focus{border-color:var(--leaf-strong);outline:none}.provision-actions{flex-wrap:wrap;gap:.5rem;display:flex}.provision-result{border:1px solid var(--leaf)}.provision-warning{color:#8a5300;border-radius:var(--radius-sm);background:#fff4e5;margin:0 0 .8rem;padding:.6rem .7rem;font-size:.8rem}.provision-summary{gap:.5rem;margin:0 0 1rem;display:grid}.provision-summary div{gap:.15rem;display:grid}.provision-summary dt{color:var(--ink-60);font-size:.72rem}.provision-summary dd{margin:0}.provision-secret{background:var(--ink-05);border-radius:var(--radius-sm);word-break:break-all;padding:.5rem .6rem;font-size:.8rem;display:block}.brand-logo{object-fit:contain;background:var(--pine);border-radius:var(--radius-md);box-sizing:content-box;width:auto;height:28px;padding:6px 12px;display:block}.login-card .brand-logo,.invitation-result .brand-logo{height:40px;margin:0 auto}.header-logo .brand-logo{height:24px;padding:5px 10px}.account-menu{position:relative}.account-panel{z-index:40;color:#24412e;background:#fff;border:1px solid #d6ded1;border-radius:12px;gap:.75rem;width:min(340px,90vw);max-height:calc(100dvh - 5rem);padding:1rem;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 12px 32px #19362230}.account-panel-heading{z-index:1;background:#fff;border-bottom:1px solid #e1e6de;justify-content:space-between;align-items:center;gap:.5rem;margin:-1rem -1rem 0;padding:1rem;display:flex;position:sticky;top:0}.account-panel .account-panel-close{color:#24412e;background:#edf2eb;border:0;border-radius:7px;font-size:.75rem}.account-panel label{gap:.3rem;font-size:.8rem;display:grid}.account-panel button{cursor:pointer;justify-content:center;align-items:center;gap:.35rem;padding:.5rem;display:inline-flex}.account-google{border-top:1px solid #e1e6de;flex-wrap:wrap;gap:.5rem;padding-top:.7rem;display:flex}.account-google strong,.account-google p,.account-google small{flex-basis:100%;margin:0}
