:root{--green:#219456;--ink:#182d27;--muted:#80918a;--border:#e6ece8}*{box-sizing:border-box}body{margin:0;background:#f5f8f6;color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}aside{position:fixed;width:236px;height:100vh;background:white;border-right:1px solid var(--border);padding:30px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;font-weight:800;font-size:18px;gap:10px;margin-bottom:42px}.brand>span{font-size:42px;color:var(--green)}small{font-size:12px;color:var(--muted)}.brand small{display:block;font-size:9px;letter-spacing:1.7px;margin-top:6px}nav button{width:100%;text-align:left;display:flex;gap:14px;padding:14px;margin-bottom:6px;color:#6d8077;background:none;border:0;font-size:14px;cursor:pointer;border-radius:9px}nav button.active{background:#e7f5eb;color:#16894a;font-weight:700}nav button span{font-size:18px;width:22px}.sidecard{margin-top:auto;padding:18px;border:1px solid var(--border);border-radius:12px}.sidecard h3{font-size:14px}.sidecard p{font-size:12px;color:var(--muted)}.sidecard b{font-size:22px}.progress{background:#eaf1eb;height:5px;margin:14px 0;border-radius:5px}.progress i{display:block;background:#6cb780;width:80%;height:100%}.sidefoot{font-size:11px;color:var(--muted);margin-top:22px}main{margin-left:236px;padding:30px 32px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}h1{font-size:25px;margin:8px 0}h2{font-size:16px;margin:0}h3{font-size:14px}button,input,select{font:inherit}button,input,select{border:1px solid var(--border);border-radius:7px;padding:10px 13px;background:white;color:var(--ink)}button{cursor:pointer}button:hover{border-color:#67b486;background:#f2faf4}.headtools{display:flex;align-items:center;gap:12px}.demo{font-size:12px;color:var(--green);background:#eaf5ee;padding:8px 12px;border-radius:20px}.notice{font-size:12px;background:#edf3ee;border:1px solid #e2eae4;padding:10px 14px;border-radius:8px;margin-bottom:22px;color:#718278}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.card{background:white;border:1px solid var(--border);border-radius:13px;padding:22px;box-shadow:0 3px 10px #263d2c02}.kpi{display:flex;align-items:center;gap:18px}.icon{border-radius:13px;padding:16px;font-size:27px;background:#eaf7ec;color:var(--green)}.kpi:nth-child(2) .icon{background:#eaf4ff;color:#318aed}.kpi:nth-child(3) .icon{background:#f2edfc;color:#9469e1}.kpi:nth-child(4) .icon{background:#fff5e4;color:#e6a42e}.kpi b{display:block;font-size:30px;letter-spacing:-1px;margin:5px 0}.kpi b em{font-size:14px;font-style:normal;letter-spacing:0}.up{font-size:11px;color:var(--green)}.grid{display:grid;grid-template-columns:1.15fr 1fr;gap:20px;margin-bottom:20px}.panelhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panelhead a{color:var(--green);cursor:pointer;font-size:12px}.env{display:grid;grid-template-columns:repeat(4,1fr)}.env>div{padding:0 14px;border-right:1px solid var(--border)}.env>div:first-child{padding-left:0}.env>div:last-child{border:0;padding-right:0}.env b{display:block;font-size:27px;margin:14px 0 2px}.env b small{font-size:12px;color:inherit}.spark{width:100%;height:48px}.env p{font-size:10px;color:var(--muted);line-height:1.8}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;background:#f6f8f6;color:#7e8d85;font-weight:500}td,th{padding:12px 9px;border-bottom:1px solid #eef2ef}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px}.tag{padding:4px 7px;font-size:10px;background:#eaf6ec;border-radius:4px;color:#279056}.growth th{text-align:center}.growth td{text-align:center}.growth td:first-child{text-align:left}.plant{width:100%;max-width:104px;height:66px;border-radius:7px;cursor:pointer;background:#e4ede0}.ring{display:inline-grid;place-items:center;width:52px;height:52px;background:conic-gradient(#35ad63 calc(var(--v)*1%),#e9efeb 0);border-radius:50%;font-weight:700;position:relative}.ring:before{content:'';position:absolute;inset:6px;background:white;border-radius:50%}.ring span{z-index:1}.predict{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.predict>div{border:1px solid var(--border);border-radius:9px;padding:13px;text-align:center}.predict b{display:block;font-size:29px;margin:18px 0;color:var(--green)}.predict small{font-size:10px}.recommend{padding:14px 0;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border)}.recommend>span{font-size:23px}.recommend p{font-size:12px;line-height:1.7;flex:1;margin:0}.recommend button{font-size:11px;color:var(--green);background:#eff8f1;padding:8px}.legend{display:flex;gap:18px;font-size:11px;margin:16px 0}.chart{width:100%;height:185px}.alerts p{padding:13px 0;border-bottom:1px solid var(--border);margin:0;font-size:12px}.alerts time{color:var(--muted);margin-right:15px}footer{font-size:11px;color:#98a59f;text-align:center;padding:16px}.toolbar{display:flex;gap:12px;margin-bottom:20px}.full{margin-bottom:20px}.upload{border:2px dashed #c7dfcf;padding:44px;text-align:center;border-radius:12px;background:#f7fbf8}.upload input{max-width:100%}.preview{max-width:100%;max-height:330px;border-radius:10px;margin:18px 0}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.controls label{display:block;margin:14px 0}.controls input{width:100%}#toast{position:fixed;bottom:30px;right:30px;padding:15px 22px;background:#183f2c;color:white;border-radius:10px;display:none;z-index:10}dialog{border:0;border-radius:15px;padding:30px;width:min(620px,90vw);color:var(--ink)}dialog::backdrop{background:#102f2455}#close{float:right;font-size:20px}dialog p{line-height:1.9}.empty{padding:25px;background:#f7faf8;border-radius:9px;line-height:1.8}@media(min-width:1550px){main{max-width:1700px}}@media(max-width:1100px){aside{width:195px;padding:24px 14px}main{margin-left:195px;padding:22px}.grid{grid-template-columns:1fr}.kpis{gap:10px}.kpi{gap:8px;padding:15px}.icon{padding:10px}.kpi b{font-size:24px}.headtools{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:700px){aside{position:relative;width:100%;height:auto;padding:16px}.brand{margin-bottom:14px}nav{display:flex;overflow:auto}nav button{width:auto;white-space:nowrap;padding:10px}.sidecard,.sidefoot{display:none}main{margin:0;padding:16px}header{align-items:flex-start;gap:12px;flex-direction:column}.headtools{gap:8px}.kpis{grid-template-columns:1fr 1fr}.kpi{padding:13px}.icon{font-size:20px}.env b{font-size:21px}.env>div{padding:0 8px}.card{padding:16px}.growth{font-size:10px}.growth td,.growth th{padding:8px 3px}.plant{height:48px}.ring{width:40px;height:40px}.controls{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.predict{gap:6px}.predict>div{padding:8px}}
.plot{height:280px;width:100%}.photobtn{padding:0;border:0;background:none}.photobtn .plant{object-fit:cover;display:block}.empty a,a{color:#219456}select{max-width:240px}@media print{aside,.headtools,.toolbar,footer{display:none}main{margin:0;padding:0}.card{break-inside:avoid}.grid{display:block}.card{margin:10px 0}.plot{height:240px}} 
nav button svg{width:20px;height:20px;flex:none;color:#7c8b9b}nav button.active svg{color:#22a74b}aside{overflow-y:auto}nav button{align-items:center;padding:12px 13px;margin-bottom:5px}nav button.active{background:#e2f4e5;color:#179b36}aside .brand{margin-bottom:24px}.sidecard{margin-top:20px}.controls input{margin-top:10px} @media(max-width:700px){nav button{padding:10px}}
.ai-summary{margin-bottom:24px}.ai-results{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ai-results article{border:1px solid #e5ebf2;border-radius:10px;padding:18px;text-align:center;background:linear-gradient(135deg,#fff,#fafcff)}.ai-results h3{margin:0 0 18px;color:#44566d;font-size:13px}.ai-results p{font-size:12px;color:#5b7086}.ai-ring{width:100px;height:100px;margin:0 auto;position:relative;border-radius:50%;background:conic-gradient(#8ccb2f calc(var(--rate)*1%),#e0e4e8 0);display:grid;place-items:center}.ai-ring:before{content:'';position:absolute;inset:10px;border-radius:50%;background:white}.ai-ring span{position:relative;font-size:25px;font-weight:700}.ai-ring.pending{background:#e0e4e8}.ai-number{display:block;font-size:42px;height:100px;padding-top:24px}.ai-actions{border:1px solid #e5ebf2;margin-top:16px;padding:16px;border-radius:10px}.ai-actions>h3{margin-top:0}.ai-actions .recommend>span{width:38px;text-align:center;font-size:30px}.water{color:#53b5ef}.sun{color:#f0af04}.heat{color:#ff4963}.ai-actions button:disabled{cursor:default;opacity:.65;min-width:95px;color:white;background:#4984f5;border:0}.ai-actions .recommend:nth-of-type(2) button{background:#27b96d}.ai-actions .recommend:nth-of-type(3) button{background:#9365eb}@media(max-width:700px){.ai-results{grid-template-columns:1fr}.ai-summary .panelhead{align-items:flex-start;gap:10px;flex-direction:column}.ai-actions .recommend{flex-wrap:wrap}.ai-actions .recommend p{min-width:180px}}
header{height:76px;position:sticky;top:0;z-index:10;background:white;display:flex;align-items:center;padding:0 22px;gap:22px;border-bottom:1px solid #e5eaf0;margin:0}.brand{display:flex;align-items:center;gap:9px;font-size:17px;margin:0;flex:none}.brand small{font-size:10px;letter-spacing:0}.head-status{margin-left:auto;display:flex;gap:14px;font-size:10px;align-items:center}header>strong{color:#27ad4a;font-size:13px}aside{top:76px;height:calc(100vh - 76px);width:200px;padding:15px 13px;overflow:auto}main{margin-left:200px;padding:20px 24px}.sidecard{margin-top:16px;padding:12px}.sidecard strong{display:block;font-size:19px;margin:14px 0}.sidecard small{display:block;font-size:10px}.pagebar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}h1{font-size:21px}.filters{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:10px;background:white;border:1px solid #e5eaf0;border-radius:8px}.filters label{font-size:11px;display:flex;align-items:center;gap:5px}.filters input{font-size:11px;padding:6px}.filters select{padding:6px}.notice{margin:10px 0 16px;font-size:10px}.row{display:grid;grid-template-columns:1.12fr 1fr;gap:16px;margin-bottom:16px}.card{padding:16px;border-color:#e5eaf0}.cardhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px}.cardhead h2{font-size:14px}.cardhead h2:before{content:'♧';color:#27ad4a;margin-right:8px;font-size:20px}.textbutton{border:0;padding:0;color:#328ce6;font-size:10px}.scroll{overflow:auto}td,th{padding:10px 7px;font-size:11px}.kpis{gap:14px;margin-bottom:16px}.kpi{padding:16px;gap:14px}.kpi b{font-size:28px}.kpi .delta{font-size:10px;color:#2c9e48}.env>div{padding:0 10px}.env b{font-size:25px}.env b i{font-size:10px;font-style:normal}.env p{font-size:10px}.photos td,.photos th{text-align:center}.thumb{border:0;padding:0}.thumb img{display:block;width:82px;height:55px;object-fit:cover;border-radius:6px}.ring{--v:0;background:conic-gradient(#80c82c calc(var(--v)*1%),#e5e9ed 0);width:62px;height:62px;margin:8px auto}.ring.empty{background:#e5e9ed}.predict{gap:8px}.predict article{border:1px solid #e5eaf0;border-radius:8px;text-align:center;padding:9px 5px}.predict h3{font-size:10px;margin:0 0 7px}.predict p{font-size:9px;color:#7d899a}.predict .count{font-size:29px;display:block;height:78px;padding-top:18px}.recommend{display:block;border:1px solid #e5eaf0;padding:10px;border-radius:8px;margin-top:10px}.recommend h3{margin:0 0 8px;font-size:12px}.action{display:flex;gap:9px;align-items:center;padding:8px 0;border-top:1px solid #edf0f3}.action .symbol{font-size:24px;width:26px;color:#4eb7ec}.action:nth-of-type(2) .symbol{color:#f0b11a}.action:nth-of-type(3) .symbol{color:#f55b82}.action p{font-size:10px;flex:1;margin:0;line-height:1.7}.action button{font-size:10px;background:#4685ec;color:white;border:0;padding:7px 9px}.action:nth-of-type(2) button{background:#25b56a}.action:nth-of-type(3) button{background:#9463e8}button:disabled{opacity:.5;cursor:not-allowed}.plot{height:245px}.alert-item{padding:11px 0;border-bottom:1px solid #edf0f3;font-size:11px;line-height:1.8}.alert-item time{font-size:10px;color:#8996a3;margin-right:10px}.tag{font-size:10px;padding:3px 6px;border-radius:4px;background:#eaf6ed;color:#239d45}.emptybox{padding:25px;text-align:center;color:#8995a3;border:1px dashed #dce3e9;border-radius:8px;background:#fafbfd;line-height:1.9}.subtabs,.metric-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.subtabs .active{background:#e6f6e9;color:#239d45}.stack{display:grid;gap:16px}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.formgrid label{display:flex;flex-direction:column;gap:7px;font-size:12px}.help{font-size:11px;color:#8390a0;line-height:1.9}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gallery img{width:100%;height:145px;object-fit:cover;border-radius:7px}.gallery figure{margin:0}.gallery figcaption{font-size:10px;line-height:1.7}.fullphoto{display:block;max-width:100%;max-height:65vh;margin:15px auto}#close{float:right}.tools{display:flex;gap:8px}.link{color:#318ee1}@media(max-width:1150px){.row{grid-template-columns:1fr}.head-status{gap:8px}.head-status>span:nth-child(2){display:none}.brand{font-size:14px}.gallery{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){header{height:auto;flex-wrap:wrap;gap:8px;padding:12px}.head-status{width:100%;justify-content:space-between;margin:0}.head-status>span:nth-child(3){display:none}aside{top:auto;height:auto;width:100%;position:relative;padding:8px}nav{display:flex;overflow:auto}nav button{width:auto;white-space:nowrap}.sidecard{display:none}main{margin:0;padding:14px}.filters label{flex-wrap:wrap}.pagebar{align-items:flex-start}.tools{flex-direction:column}.formgrid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.thumb img{width:65px}.kpi{gap:8px}.kpi b{font-size:24px}.action{flex-wrap:wrap}.action p{min-width:140px}}@media print{header,aside,.filters,.notice,.tools,.subtabs,button{display:none!important}main{margin:0;padding:0}.row{display:block}.card{break-inside:avoid;margin:10px 0}}
.sidebar-sensors{margin-top:10px}.sidebar-sensors .sensor-mini{padding:9px 10px;margin-top:8px;border-left:3px solid var(--sensor-color);border-radius:9px}.sidebar-sensors .sensor-mini b{font-size:10px}.sidebar-sensors .sensor-mini strong{font-size:18px;color:var(--sensor-color);margin:3px 0}.sidebar-sensors .sensor-mini .spark{height:27px;display:block}.sidebar-sensors .sensor-mini small{font-size:9px}.sidebar-sensors #lightSummary{font-size:13px}@media(max-width:700px){.sidebar-sensors{display:none}}
.stream-legend{display:flex;align-items:center;gap:12px;margin:-3px 0 8px;font-size:10px}.stream-legend span{display:flex;align-items:center;gap:4px}.stream-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.stream-legend small{margin-left:auto;font-size:9px}.treatment-spark{height:116px;display:block}.treatment-values{display:flex;flex-wrap:wrap;gap:3px 7px;font-size:9px;margin-top:3px}.treatment-env>div b{margin-top:8px}.treatment-env>div:nth-child(1) b{color:#29ae58}.treatment-env>div:nth-child(2) b{color:#ee6a7b}.treatment-env>div:nth-child(3) b{color:#318de3}.treatment-env>div:nth-child(4) b{color:#d5a025}@media(max-width:700px){.stream-legend{flex-wrap:wrap}.stream-legend small{margin-left:0}.treatment-env{grid-template-columns:1fr 1fr;gap:10px}.treatment-env>div{border:0;padding:0 7px!important}}

#environmentPlot{height:620px}
.dashboard-environment-table{margin-top:20px}
/* Keep the environment summary table vertically centered below its heading. */
.card:has(> .dashboard-environment-table){display:flex;flex-direction:column;min-height:320px}.dashboard-environment-table{margin-top:0;flex:1;display:flex;align-items:center;padding:12px 0}.dashboard-environment-table>.scroll{width:100%}@media(max-width:700px){.card:has(> .dashboard-environment-table){min-height:260px}}
.dashboard-environment-table>.environment-summary-content{width:100%;min-width:0}.environment-delta{display:block;margin-top:4px;font-size:9px;white-space:nowrap;font-weight:400}.environment-delta.increase{color:#d38b27}.environment-delta.decrease{color:#3188d1}.environment-delta.neutral{color:#8c98a5}.environment-delta-note{margin:10px 0 0;font-size:9px}.dashboard-environment-table td{vertical-align:middle}
.metric-link{cursor:pointer;transition:border-color .15s,box-shadow .15s}.metric-link:hover,.metric-link:focus-visible{border-color:#72bb8e;box-shadow:0 4px 16px #26874a18;outline:2px solid #a3d5b3;outline-offset:1px}.metric-link-arrow{color:#299e4b;font-size:18px;padding-left:6px}.metric-value-target{scroll-margin-top:95px;margin-bottom:16px}.metric-cell-date{display:block;margin-top:4px;font-size:9px}
.daily-monitoring-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;flex-wrap:wrap}.daily-monitoring-toolbar button{font-size:9px;padding:4px 7px}.daily-monitoring-table .thumb img{width:60px;height:46px}.daily-monitoring-table td,.daily-monitoring-table th{padding:8px 4px}.daily-monitoring-table th small{font-size:8px}.daily-monitoring-table .ring{width:47px;height:47px}.daily-monitoring-table .ring span{font-size:13px}
#settingsForm.control-settings .formgrid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){#settingsForm.control-settings .formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){#settingsForm.control-settings .formgrid{grid-template-columns:1fr}}

.image-metric-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.image-metric-charts>section{min-width:0}.image-metric-charts h3{font-size:14px;margin:8px 0}@media(max-width:800px){.image-metric-charts{grid-template-columns:1fr}}

.analysis-metric-picker{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0}.analysis-metric-picker label{font-weight:700;color:#246b42}.analysis-metric-picker select{min-width:240px;max-width:100%}
.paired-image-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.paired-image-set{border:1px solid #e4eae6;border-radius:10px;padding:12px;min-width:0}.paired-image-set h3{margin:0 0 10px;font-size:14px}.paired-camera-views{display:grid;grid-template-columns:1fr 1fr;gap:10px}.paired-camera-views figure{margin:0;min-width:0}.paired-camera-views .thumb{width:100%;padding:0}.paired-camera-views img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:6px}.paired-camera-views figcaption{text-align:center;font-size:12px;padding-top:6px}.camera-view-pending{aspect-ratio:4/3;display:grid;place-items:center;background:#f4f7f5;font-size:12px;color:#6c7d73}@media(max-width:1100px){.paired-image-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.paired-image-gallery{grid-template-columns:1fr}}
/* Paired camera photos must override compact dashboard thumbnail dimensions. */
.paired-camera-views .thumb img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#f4f6f4}.paired-camera-views .thumb{display:block;line-height:0}.paired-camera-views figure{overflow:hidden}
.graph-reading{margin-top:16px;border-top:1px solid #e4ece6;padding-top:16px}.diagnosis-narratives article{padding:12px;margin:10px 0;border:1px solid #e2ebe5;border-radius:9px;background:#f8fbf8}.diagnosis-narratives h3{font-size:13px;margin:0 0 8px}.diagnosis-narratives p,.forecast-summary p,.forecast-summary li{font-size:13px;line-height:1.85;margin:6px 0}.forecast-summary ol{padding-left:22px}.forecast-summary li{padding:4px 0}
.live-alert-detail p{font-size:13px;line-height:1.85;margin:8px 0 4px;white-space:normal;overflow:visible;text-overflow:clip}.live-alert-detail{padding-top:14px;padding-bottom:14px}
