/* Farm dashboard (shared). Was injected dash styles in maingh1.js */
.gh-dash{display:flex;flex-direction:column;gap:10px;container-type:inline-size}#ghStats.gh-coll,#ghStats .gh-coll-b{overflow:visible}.gh-coll{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius,12px);padding:0;box-shadow:0 2px 14px var(--shadow),inset 0 1px 0 var(--inset-hi);overflow:hidden;transition:border-color .15s,box-shadow .15s}.gh-coll:not(.collapsed){border-color:var(--coll-open-border);box-shadow:0 2px 18px var(--shadow),0 0 0 1px var(--glow)}.gh-coll.collapsed{background:var(--panel)}.gh-coll-h{display:flex;align-items:center;gap:8px;user-select:none;margin:0;font-size:11px;text-transform:uppercase;color:var(--mut);letter-spacing:.05em;cursor:pointer;padding:10px 12px;min-height:40px;border-radius:var(--radius,10px)}.gh-coll-h:hover{background:#ffffff06}.gh-coll-b{padding:0 12px 12px;overflow:visible}.gh-coll.collapsed .gh-coll-b{display:none}.gh-coll.collapsed .gh-coll-h{margin-bottom:0;color:var(--tx)}.gh-drag{cursor:grab;color:var(--mut);font-size:10px;letter-spacing:-2px;opacity:.65;flex:0 0 auto}.gh-coll-t{flex:1;font-weight:600}.gh-coll-act{display:flex;align-items:center;gap:2px;flex:0 0 auto}.gh-mv{border:0;background:transparent;color:var(--mut);cursor:pointer;font-size:12px;padding:6px 8px;line-height:1;border-radius:6px;min-width:var(--touch,40px);min-height:var(--touch,40px)}.gh-mv:hover{color:var(--tx);background:var(--panel2)}.gh-coll-ico{font-size:9px;width:12px;text-align:center;font-weight:400;color:var(--acc)}.gh-coll.gh-dragging{opacity:.55}.gh-coll.gh-drop-above{box-shadow:inset 0 2px 0 var(--acc)}.gh-coll.gh-drop-below{box-shadow:inset 0 -2px 0 var(--acc)}.gh-dev-h{display:none}.gh-safety{display:flex;flex-wrap:nowrap;justify-content:space-between;gap:8px;padding:10px 8px;margin-bottom:8px;background:linear-gradient(180deg,var(--panel2) 0%,var(--safety-grad-to) 100%);border:1px solid var(--line);border-radius:10px;overflow-x:auto}.gh-safety-dot{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1 1 0;min-width:58px}.gh-safety-gauge{width:52px;height:52px;flex:0 0 auto;display:block}.gh-safety-track{stroke:var(--line);opacity:.55}.gh-safety-arc{stroke-linecap:round;transition:stroke-dasharray .25s ease,stroke .25s ease}.gh-safety-arc-ok{stroke:var(--ok)}.gh-safety-arc-warn{stroke:var(--warn)}.gh-safety-arc-alarm{stroke:var(--alarm)}.gh-safety-arc-unk{stroke:var(--mut);opacity:.45}.gh-safety-icon{font-size:18px;font-weight:800;font-family:system-ui,sans-serif;dominant-baseline:central;text-anchor:middle}.gh-safety-icon-ok{fill:var(--ok)}.gh-safety-icon-alarm{fill:var(--alarm)}.gh-safety-lbl{font-size:10px;color:var(--mut);text-align:center;line-height:1.15}.gh-safety-dot-alarm .gh-safety-lbl{color:var(--alarm);font-weight:600}.gh-safety-foot{flex:1 1 100%;padding:4px 8px 0;font-size:10px;color:var(--warn);text-align:center;line-height:1.35}.gh-dev{margin:0;padding:0;border:0}.gh-stats-head{margin-bottom:10px}.gh-confirm-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;border:2px solid var(--warn);background:var(--warn-soft);cursor:pointer;user-select:none}.gh-confirm-bar input{width:18px;height:18px;margin:0;flex:0 0 auto;accent-color:var(--acc)}.gh-confirm-bar b{font-size:13px;color:var(--tx)}.gh-confirm-bar.on{border-color:var(--acc);background:var(--ok-soft)}.gh-stat-confirm{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);font-size:12px;color:var(--mut);cursor:pointer}.gh-stat-confirm input{width:16px;height:16px;accent-color:var(--acc)}.gh-stats-wrap{position:relative;width:100%;margin-top:2px}.gh-stats{display:flex;flex-wrap:wrap;gap:6px;width:100%;overflow:visible;align-items:stretch}.gh-stats>.gh-stat{flex:1 1 88px;min-width:88px;max-width:100%}.gh-style-pick{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px;padding:6px 8px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;font-size:11px;color:var(--mut)}.gh-style-pick button{padding:4px 10px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--mut);cursor:pointer;font-size:11px;font-weight:600}.gh-style-pick button.on{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}.gh-stat{background:linear-gradient(180deg,var(--panel2) 0%,var(--stat-grad-to) 100%);border:1px solid var(--line);border-radius:10px;padding:8px 10px;position:relative;flex:1 1 0;min-width:0;max-width:none;transition:border-color .12s,box-shadow .12s;display:flex;flex-direction:column;gap:0;box-shadow:inset 0 1px 0 var(--inset-hi);min-height:86px}.gh-stat:hover{border-color:var(--line)}.gh-stat-l{font-size:10px;color:var(--mut);margin-bottom:0;line-height:1.25}.gh-stat-v{font-size:20px;font-weight:700;color:var(--acc);font-variant-numeric:tabular-nums;line-height:1.1}.gh-stat-foot{display:flex;justify-content:flex-end;margin-top:4px}.gh-stat-tog{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:1;padding:6px 10px;min-height:32px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--mut);cursor:pointer;transition:border-color .12s,background .12s,color .12s}.gh-stat-tog-ico-only{padding:6px 8px;min-width:32px;justify-content:center}.gh-stat-tog:hover{color:var(--tx);border-color:var(--acc);background:#ffffff08}.gh-stat-tog.open{color:var(--acc);border-color:var(--acc);background:var(--acc-soft)}.gh-stat-tog-ico{font-size:14px;line-height:1}.gh-stat-tog-tx{font-weight:600;font-size:11px;letter-spacing:.02em}.gh-stat-tog-chev{font-size:10px;opacity:.75;transition:transform .15s}.gh-stat-tog.open .gh-stat-tog-chev{transform:rotate(180deg)}.gh-stat-b .gh-stat-v{font-size:22px;text-align:right;flex:1}.gh-stat-b .gh-stat-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%}.gh-stat-b .gh-stat-foot{border-top:1px solid var(--line);padding-top:6px;margin-top:4px;width:100%}.gh-stat-c{flex-direction:column;align-items:stretch;gap:0;padding:8px 10px;text-align:left;justify-content:flex-start}.gh-stat-c .gh-stat-l{font-size:11px;font-weight:600;color:var(--mut);line-height:1.25;letter-spacing:.01em;min-height:2.5em;max-height:2.5em;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:4px}.gh-stat-c .gh-stat-mid{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-height:34px}.gh-stat-c .gh-stat-v{flex:1;font-size:21px;font-weight:800;line-height:1;min-width:0}.gh-stat-c .gh-stat-tog{margin:0;flex:0 0 auto;align-self:center}.gh-stat-c.gh-stat-open{z-index:32;min-width:300px;flex:1.5 1 300px;align-self:stretch}.gh-stat-ok{border-color:var(--ok-border);background:var(--ok-soft)}.gh-stat-ok .gh-stat-v{color:var(--ok)}.gh-stat-warn{border-color:var(--warn);background:var(--warn-soft)}.gh-stat-warn .gh-stat-v{color:var(--warn)}.gh-stat-alarm{border-color:var(--alarm);background:var(--alarm-soft)}.gh-stat-alarm .gh-stat-v{color:var(--alarm)}.gh-stat-exp{display:none;position:relative;z-index:auto;margin:8px 0 0;padding:10px 12px;border:1px solid var(--acc);border-radius:10px;background:var(--panel);overflow:visible;width:100%;min-width:0;max-width:none;box-sizing:border-box;box-shadow:inset 0 1px 0 var(--inset-hi);pointer-events:auto}.gh-stat-exp.open{display:block}.gh-stat-exp input,.gh-stat-exp button{pointer-events:auto;touch-action:manipulation;position:relative;z-index:1}.gh-stat-exp input.gh-ctl-inp{cursor:text;background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--tx)}.gh-stat-exp input.gh-ctl-inp:focus{border-color:var(--acc);outline:2px solid var(--glow);outline-offset:0}.gh-stat-ok-bar{display:flex;align-items:center;gap:8px;margin:8px 0 4px;font-size:12px;color:var(--mut)}.gh-stat-ok-bar input{width:16px;height:16px;accent-color:var(--acc)}.gh-stat-exp-h{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;color:var(--tx);margin:0 0 8px}.gh-stat-exp-x{border:0;background:transparent;color:var(--mut);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;border-radius:6px}.gh-stat-exp-x:hover{color:var(--tx);background:var(--panel2)}.gh-stat-exp-grid{display:flex;flex-direction:column;gap:6px;width:100%}.gh-alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.gh-alerts li{padding:7px 9px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--line);font-size:12px;line-height:1.4;text-align:center}.gh-alerts li.warn{border-left-color:var(--warn)}.gh-alerts li.alarm{border-left-color:var(--alarm)}.gh-alerts li b{color:var(--tx)}.gh-ctl-row{display:grid;grid-template-columns:minmax(88px,1fr) minmax(72px,88px) 36px;gap:8px;align-items:center;width:100%}.gh-ctl-sep{grid-column:1/-1;font-size:11px;font-weight:700;color:var(--acc);margin:4px 0 2px;padding-top:4px;border-top:1px solid var(--line)}.gh-ctl-hint{grid-column:1/-1;font-size:10px;color:var(--mut);margin:-2px 0 4px;line-height:1.35}.gh-ctl-sync{font-size:10px;padding:3px 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--mut);cursor:pointer;justify-self:start;grid-column:1/-1;margin-bottom:2px}.gh-ctl-sync:hover{color:var(--tx);border-color:var(--acc)}.gh-ctl-l{font-size:12px;font-weight:600;color:var(--tx);min-width:108px;white-space:nowrap}.gh-ctl-row input{width:100%;min-width:72px;padding:6px 8px;font-size:13px}.gh-sw{padding:4px 10px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--mut);cursor:pointer;font-size:11px;flex:0 0 auto;min-height:28px}.gh-sw:hover{color:var(--tx);border-color:var(--acc)}.gh-cams{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gh-cam-tabs{display:flex;gap:4px;margin-bottom:6px}.gh-cam-tab{padding:4px 10px;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--mut);cursor:pointer;font-size:11px;font-weight:600;min-height:28px}.gh-cam-tab.on{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}.gh-cam-wrap{display:flex;flex-direction:column;gap:2px}.gh-cam-l{font-size:10px;color:var(--mut)}.gh-cam{background:#000;border:1px solid var(--line);border-radius:6px;overflow:hidden;aspect-ratio:16/10;position:relative}.gh-cam img{width:100%;height:100%;object-fit:contain;transform:scaleX(-1);background:#000;cursor:zoom-in;display:block}.gh-cam-idle{opacity:.35;filter:grayscale(.4)}.gh-cam .gh-cam-idle-overlay{display:none;position:absolute;inset:0;align-items:center;justify-content:center;font-size:22px;color:#fff9;pointer-events:none}.gh-cam:has(.gh-cam-idle) .gh-cam-idle-overlay{display:flex;content:"▶"}.gh-cam-lb{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.88);align-items:center;justify-content:center;padding:16px}.gh-cam-lb.open{display:flex}.gh-cam-lb-in{position:relative;max-width:96vw;max-height:96vh;display:flex;flex-direction:column;align-items:center;gap:8px}.gh-cam-lb-in img{max-width:96vw;max-height:88vh;object-fit:contain;transform:scaleX(-1);border-radius:8px}.gh-cam-lb-x{position:absolute;top:-34px;right:0;color:#fff;font-size:26px;cursor:pointer;line-height:1;padding:2px 8px;border:0;background:transparent}.gh-cam-lb-l{color:#aab;font-size:12px}.gh-ops-wrap{margin-top:0;width:100%;max-width:720px}.gh-ops-wrap .gh-ok{margin:0 0 8px}.gh-ops-wrap .gh-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;align-items:stretch;margin-bottom:6px}.gh-ops-wrap .gh-op-stat{min-width:0;max-width:none;display:flex;flex-direction:column;height:100%}.gh-ops-wrap .gh-ctl-row{width:100%;grid-template-columns:minmax(52px,auto) minmax(56px,1fr) 36px;gap:6px}.gh-op-stat .gh-stat-exp-grid{display:flex;flex-direction:column;gap:6px;margin-top:4px;width:100%;flex:1}.gh-op-stat .gh-stat-l{min-height:auto;margin-bottom:4px}.gh-op-stat .gh-op-send-row{margin-top:auto;padding-top:4px}.gh-op-stat .gh-op-send-row .gh-btn{width:36px;min-width:36px;padding:6px 0;justify-self:end}.gh-op-stat .gh-op-ph{min-height:28px;display:flex;align-items:center;color:var(--mut);font-size:11px}.gh-op-stat select.gh-op-dev{width:100%;min-width:0;padding:6px 8px;font-size:12px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--tx)}.gh-reg{font-size:12px}.gh-reg-intro{font-size:11px;color:var(--mut);margin-bottom:10px;line-height:1.4;padding:8px 10px;background:var(--panel2);border:1px solid var(--line);border-radius:8px}.gh-reg-grid{display:flex;flex-direction:column;gap:8px}.gh-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px;width:100%}.gh-cell-wide{align-items:stretch;flex-direction:column;gap:8px}.gh-cell-head{font-size:12px;font-weight:700;color:var(--tx)}.gh-cell-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;width:100%}.gh-inp-l{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--mut);flex:1;min-width:72px}.gh-inp-l input{width:100%;padding:6px 8px;font-size:13px}.gh-cell-l{font-size:11px;color:var(--mut);min-width:36px;flex:0 0 auto}.gh-cell input{width:72px;min-width:72px;padding:6px 8px;font-size:13px}.gh-btn{padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--acc);color:var(--on-acc);cursor:pointer;font-weight:600;font-size:12px;white-space:nowrap}.gh-btn-send{min-height:38px;padding:8px 16px;font-size:13px}.gh-btn:disabled{opacity:.4;cursor:not-allowed}.gh-warn{background:var(--warn);color:#2a2000}.gh-ok{display:flex;align-items:center;gap:6px;font-size:12px;margin:8px 0;color:var(--mut);cursor:pointer}.gh-reg-res{font-family:ui-monospace,monospace;font-size:10px;margin-top:4px;word-break:break-all}.gh-ro{opacity:.85}.gh-gf iframe{width:100%;height:200px;border:0;display:block;background:#000;border-radius:6px}.gh-charts{min-height:48px}.gh-charts .charts-wrap{margin-top:0}@media(max-width:700px){.gh-cams{grid-template-columns:1fr}.gh-stat-c.gh-stat-open{min-width:0;flex:none;grid-column:1/-1;width:100%;max-width:none;z-index:auto}.gh-reg-grid{grid-template-columns:1fr}.gh-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gh-stats>.gh-stat{flex:none;min-width:0;max-width:none;width:auto}.gh-stat-c .gh-stat-l{min-height:0;max-height:none;overflow:visible}.gh-stat-exp{margin-top:8px}.gh-ctl-l{min-width:0;white-space:normal}.gh-ctl-row{grid-template-columns:minmax(0,1fr) minmax(64px,88px) 36px}}
@container (max-width:420px){.gh-stats>.gh-stat{flex:none;min-width:0}.gh-ops-wrap .gh-stats{grid-template-columns:1fr}}
#ghInsightTiles{display:grid;grid-template-columns:1fr;gap:6px;margin-top:2px}
#ghInsightTiles .tile{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;padding:8px 10px}
#ghInsightTiles .tile.ok{border-left-color:var(--ok)}#ghInsightTiles .tile.warn{border-left-color:var(--warn)}#ghInsightTiles .tile.alarm{border-left-color:var(--alarm)}
#ghInsightTiles .tile .h{display:flex;justify-content:space-between;gap:8px;font-weight:600;font-size:12px;margin-bottom:2px}
#ghInsightTiles .tile .r{font-size:12px;color:var(--mut);line-height:1.35}
#ghInsightTiles .insight-farm{cursor:pointer}
#ghInsightTiles .insight-farm .r{font-size:14px;color:var(--tx);font-weight:600}
#ghInsightTiles .insight-farm-go{margin-top:8px}
#ghInsightTiles .insight-go-today{min-height:36px}
#ghInsightTiles .insight-ok-summary{padding:8px 10px;border-radius:8px;background:var(--panel2);font-size:12px;color:var(--mut);cursor:pointer}