:root{color-scheme:dark;--bg: #07140f;--bg-raise: #0d1f17;--panel: rgba(14, 32, 24, .92);--line: rgba(187, 247, 208, .14);--text: #f4faf6;--muted: #8eaa98;--accent: #22c55e;--accent-deep: #15803d;--gold: #eab308;--alarm: #f87171;--warn: #f59e0b;--font: "Noto Sans SC", "Fira Sans", "PingFang SC", "Microsoft YaHei", sans-serif;--num: "Fira Code", "Fira Sans", "DIN Alternate", sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:radial-gradient(900px 480px at 8% -10%,rgba(34,197,94,.16),transparent 58%),radial-gradient(720px 420px at 100% 0%,rgba(234,179,8,.08),transparent 46%),var(--bg)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:#22c55e59}.app{height:100%;display:flex;flex-direction:column;position:relative}.app:before{content:"";pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(187,247,208,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(187,247,208,.035) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(#000,transparent 72%);mask-image:linear-gradient(#000,transparent 72%)}.booting,.placeholder{min-height:100%;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted)}.boot-mark{width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 #22c55e8c;animation:pulse 2s infinite}.login-screen{min-height:100%;display:grid;grid-template-columns:minmax(320px,1.15fr) minmax(340px,460px);align-items:center}.login-copy,.login-card{position:relative;z-index:1}.login-copy{padding:64px 72px}.login-copy h1{margin:10px 0 14px;font-size:52px;line-height:1.15;letter-spacing:-.03em}.lead{max-width:540px;color:#d7efe2;font-size:17px;line-height:1.75}.eyebrow{margin:0;color:var(--accent);letter-spacing:.14em;font-size:12px;font-weight:600}.feature-list{margin:32px 0 0;padding:0;list-style:none;display:grid;gap:12px;max-width:460px}.feature-list li{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#0d1f17b8}.feature-list strong{display:block;margin-bottom:4px}.feature-list span{color:var(--muted);font-size:13px;line-height:1.5}.login-card{margin:40px 48px 40px 0;padding:32px;background:var(--panel);border:1px solid var(--line);border-radius:22px;display:grid;gap:14px;align-content:start;box-shadow:0 24px 70px #00000052}.login-card h2{margin:0 0 6px;font-size:22px}.login-card label{display:grid;gap:6px;color:var(--muted);font-size:13px}input,textarea,select{width:100%;background:#09160f;border:1px solid rgba(187,247,208,.16);border-radius:10px;padding:11px 12px;transition:border-color .2s ease}input:hover,textarea:hover,select:hover{border-color:#22c55e73}textarea{min-height:72px;resize:vertical}.hint,.form-error{margin:0;font-size:13px}.hint{color:var(--muted);line-height:1.5}.form-error{color:#fecaca}.btn{border:1px solid rgba(187,247,208,.16);background:#163326;border-radius:10px;padding:9px 14px;transition:background .2s ease,border-color .2s ease,color .2s ease}.btn:hover:not(:disabled){border-color:#22c55e80;background:#1b3d2d}.btn.primary{background:var(--accent-deep);border-color:transparent;color:#f0fdf4;font-weight:600}.btn.primary:hover:not(:disabled){background:#166534}.btn.ghost{background:transparent}.btn:disabled{opacity:.55;cursor:not-allowed}.topbar,.demo-banner,.kpi-row,.layout{position:relative;z-index:1}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);background:#07140fd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand,.top-actions,.counts,.meta-line,.relays,.tabs,.trend-tools,.editor-actions{display:flex;align-items:center;gap:10px}.brand{gap:12px}.brand strong{display:block;font-size:18px;letter-spacing:.02em}.brand small,.side-head p,.trend-head p,.bar-head p{color:var(--muted)}.logo{display:grid;line-height:0}.top-actions{flex-wrap:wrap;justify-content:flex-end}.pill,.status-pill,.tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 10px;font-size:12px}.pill{background:#10241a;color:#d1fae5;border:1px solid var(--line)}.pill i,.status-dot,.relays i{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.status-dot{background:var(--accent)}.pill.ok i{background:var(--accent);animation:pulse 2s infinite}.pill.bad i,.device-row.alarming .status-dot{background:var(--alarm)}.pill.wait i,.device-row.preAlarming .status-dot{background:var(--warn)}.device-row.offline .status-dot{background:#667980}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 20px 0}.kpi-row article{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#0d1f17c7}.kpi-row span{display:block;color:var(--muted);font-size:12px}.kpi-row strong{display:block;margin-top:4px;font-family:var(--num);font-size:26px;font-weight:600;letter-spacing:-.04em}.kpi-row .ok strong{color:#86efac}.kpi-row .bad strong{color:#fecaca}.kpi-row .off strong{color:#cbd5e1}.demo-banner{margin:12px 20px 0;padding:10px 14px;border-radius:12px;background:#eab3081f;color:#fde68a;font-size:13px}.demo-banner.warn{background:#f871711f;color:#fecaca}.layout{flex:1;min-height:0;display:flex;padding-top:12px}.scene-mode{overflow:hidden}.scene-mode .topbar,.scene-mode .view-switch{display:none}.scene-mode .topbar{position:fixed;z-index:50;inset:0 0 auto;background:linear-gradient(180deg,rgba(3,24,25,.72),transparent);border:0}.scene-mode .brand-copy small,.scene-mode .brand-copy{color:transparent}.scene-mode .brand-copy strong{display:none}.scene-top-title{position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:60;display:grid;justify-items:center;gap:3px;pointer-events:none;white-space:nowrap;text-shadow:0 2px 9px rgba(0,0,0,.8)}.scene-top-title strong{color:#f7ffff;font-size:clamp(18px,2vw,28px);letter-spacing:.08em}.scene-top-title span{color:#ffe04b;font:600 13px var(--num)}.scene-mode .kpi-row,.scene-mode>.demo-banner{display:none}.scene-mode .layout{position:fixed;top:0;right:0;bottom:0;left:0;padding:0;display:block}.scene-workspace{position:relative;flex:1;min-width:0;min-height:520px;margin:0 12px 58px;border:1px solid rgba(179,238,239,.22);border-radius:18px;overflow:hidden;background:#9bc8c6;box-shadow:0 18px 50px #00000047}.scene-dashboard{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;min-width:0;min-height:0;overflow:hidden;padding:0}.scene-dashboard .scene-workspace{position:absolute;top:0;right:0;bottom:0;left:0;height:auto;min-height:0;margin:0;border:0;border-radius:0}.reference-board-shell,.reference-board-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.greenhouse-tags{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;overflow:hidden}.greenhouse-tag{position:absolute;left:0;top:0;padding:2px 8px;border:1px solid rgba(74,226,255,.75);border-radius:999px;background:#044868e6;color:#f4feff;font-size:12px;line-height:1.4;white-space:nowrap;box-shadow:0 0 10px #1ccbf447}.greenhouse-sensor{position:absolute;left:0;top:0;display:grid;gap:4px;min-width:118px;padding:6px 8px;border:1px solid rgba(83,225,255,.7);border-radius:8px;background:linear-gradient(145deg,#086485eb,#03264fe6);color:#e8fbff;font:600 11px/1.35 var(--num);white-space:nowrap;box-shadow:0 0 12px #11bceb47}.greenhouse-sensor div{display:grid;gap:1px}.greenhouse-sensor div+div{padding-top:3px;border-top:1px solid rgba(120,220,255,.28)}.greenhouse-sensor strong{color:#9aecff;font-size:10px;font-weight:600}.reference-board-canvas canvas{display:block;width:100%;height:100%;cursor:grab}.reference-board-canvas canvas:active{cursor:grabbing}.reference-board-hint{display:none}.layer-badge{position:absolute;z-index:22;left:50%;top:14px;transform:translate(-50%);padding:6px 13px;border:1px solid rgba(68,225,255,.5);border-radius:999px;background:#01203eb8;color:#b9f6ff;font-size:11px;letter-spacing:.08em;box-shadow:0 0 18px #17bff233;pointer-events:none}.layer-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#55edff;box-shadow:0 0 9px #55edff}.greenhouse-control-panel{position:absolute;z-index:24;right:18px;bottom:18px;width:236px;padding:11px 12px 10px;border:1px solid rgba(67,224,255,.55);border-radius:12px;background:linear-gradient(145deg,#023052e6,#021533db);color:#dcfbff;box-shadow:0 0 24px #0099db33,inset 0 1px #abf6ff26;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.greenhouse-control-panel header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:7px;border-bottom:1px solid rgba(80,225,255,.22)}.greenhouse-control-panel header strong{font-size:14px;letter-spacing:.06em}.greenhouse-control-panel header small{color:#8edce9;font-size:9px}.greenhouse-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:8px 0 6px}.greenhouse-selector button,.rotation-reset{border:1px solid rgba(80,225,255,.3);border-radius:6px;background:#065c8252;color:#9bdde8;cursor:pointer;font-size:10px}.greenhouse-selector button{padding:5px 3px}.greenhouse-selector button.active{border-color:#5ff1ff;background:#08aada80;color:#fff;box-shadow:0 0 10px #26d6ff47}.axis-row{display:grid;grid-template-columns:18px 1fr 35px;align-items:center;gap:7px;min-height:25px;color:#8ee9f2;font-size:10px}.axis-row b{display:grid;place-items:center;width:17px;height:17px;border-radius:4px;font-size:9px}.axis-x{background:#ff5b70b3}.axis-y{background:#4adc8ea6}.axis-z{background:#5499ffb8}.axis-row input{width:100%;accent-color:#41dfff}.axis-row output{color:#d4fbff;font:600 10px var(--num);text-align:right}.rotation-reset{width:100%;margin-top:5px;padding:6px;color:#c3f8ff}.rotation-reset:hover,.greenhouse-selector button:hover{border-color:#79f6ff}.house-label{position:absolute;z-index:2;transform:translate(-50%,-100%);display:grid;gap:3px;min-width:122px;max-width:220px;padding:6px 9px;border:1px solid rgba(101,240,231,.68);border-radius:8px;background:#023a4bd6;color:#e7ffff;box-shadow:0 4px 13px #03263152;cursor:pointer;pointer-events:auto}.house-label:after{content:"";position:absolute;left:50%;bottom:-6px;width:9px;height:9px;transform:translate(-50%) rotate(45deg);border-right:1px solid rgba(101,240,231,.68);border-bottom:1px solid rgba(101,240,231,.68);background:#064054}.house-label strong{color:#fff;font-size:11px;line-height:1.15;white-space:nowrap}.house-label small{overflow:hidden;color:#94dbe0;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.house-label span{display:block;color:#67e7df;font:500 9px/1.4 var(--num);overflow-wrap:anywhere}.house-label .house-code-value{color:#ffe84a;font-size:14px;font-weight:700;letter-spacing:.08em}.house-label.selected{border-color:#ffe36c;box-shadow:0 0 0 2px #ffe36c47,0 4px 18px #03263161}.sales-board,.metric-trends{position:fixed;z-index:8;margin:0;padding:15px;border:1px solid rgba(190,241,226,.25);border-radius:16px;background:#071f1da3;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 42px #0003}.scene-mode .sales-board{left:18px;top:155px;width:280px;padding:12px;border:1px solid rgba(190,241,226,.25);background:#071f1d94;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 42px #0003}.scene-mode .metric-trends{position:absolute;left:50%;right:18px;bottom:16px;z-index:80;transform:translate(-50%);width:min(1180px,calc(100% - 370px));padding:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;box-shadow:none;pointer-events:none}.scene-mode .metric-trends .metric-square{pointer-events:auto}.sales-board header,.metric-trend-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.sales-board h2,.metric-trend-head h2{margin:4px 0 0;font-size:19px}.sales-board header>small{color:#f2cf79;font-size:11px}.fruit-sales{display:grid;gap:5px;margin-top:0}.fruit-sales article{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:7px;min-height:20px;padding:0;border:0;background:transparent}.fruit-sales article>span{color:#effff4;font-size:12px;text-align:right;white-space:nowrap;text-shadow:0 1px 5px rgba(0,0,0,.65)}.fruit-sales article>small{display:none}.sales-bar{position:relative;display:flex;align-items:center;width:100%;height:12px;overflow:hidden;border-radius:99px;background:#7edbbd1f}.sales-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#30d49a,#f1d76b);box-shadow:0 0 12px #30d49a59}.sales-bar b{position:absolute;right:6px;color:#f3fff5;font:600 10px var(--num)}.flip-digits{display:flex;gap:3px}.flip-digits b{position:relative;min-width:22px;padding:5px 3px;overflow:hidden;border:1px solid rgba(61,223,202,.25);border-radius:4px;background:linear-gradient(#102a29 0,#102a29 48%,#153d38 49%,#153d38 52%,#0d2424 53%);color:#66f2db;text-align:center;font:700 18px/1.1 var(--num);text-shadow:0 0 9px rgba(64,255,224,.45);box-shadow:0 2px 5px #00000040}.flip-digits b{animation:digit-flip .72s cubic-bezier(.2,.8,.25,1) both;transform-origin:50% 0}.flip-digits b:nth-child(2){animation-delay:.06s}.flip-digits b:nth-child(3){animation-delay:.12s}.flip-digits b:nth-child(4){animation-delay:.18s}.flip-digits b:nth-child(5){animation-delay:.24s}.metric-trends{position:fixed;min-height:0}.metric-trend-head{margin-bottom:10px}.metric-tags{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.metric-tags span{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid rgba(157,224,204,.14);border-radius:99px;color:#cceadd;font-size:10px}.metric-tags span.empty{color:#83958d}.metric-tags i{width:7px;height:7px;border-radius:50%}.metric-tags small{color:#829a8e}.metric-chart{width:100%;height:390px}.legacy-chart{display:none}.metric-squares{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;width:100%;overflow:hidden}.metric-square{position:relative;min-height:109px;aspect-ratio:1.18;width:100%;padding:8px;overflow:hidden;border:1px solid color-mix(in srgb,var(--metric-color) 48%,transparent);border-radius:12px;background:#052d238c;-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);box-shadow:inset 0 1px #bdffe014,0 8px 20px #00191229}.metric-square:after{content:"";position:absolute;inset:auto -25% -45% -25%;height:70%;background:var(--metric-color);opacity:.06;filter:blur(20px)}.metric-square header{position:relative;z-index:1;display:flex;justify-content:space-between;gap:4px;color:#dff8e8;font-size:11px}.metric-square header small{color:#86a89b;font-size:9px}.metric-square svg{position:absolute;top:34px;right:8px;bottom:25px;left:8px;width:calc(100% - 16px);height:calc(100% - 59px)}.metric-square strong{position:absolute;z-index:1;left:10px;bottom:7px;color:var(--metric-color);font:600 16px var(--num)}.metric-square strong small{color:#8eaaa0;font:10px var(--font)}.metric-mask{display:none!important}.park-shell,.park-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.park-canvas canvas{display:block;width:100%;height:100%;cursor:grab}.park-canvas canvas:active{cursor:grabbing}.park-title,.park-weather,.park-stats,.park-legend,.park-controls,.sensor-tooltip,.scene-device-strip{position:absolute;z-index:2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.park-title{top:12px;left:50%;z-index:40!important;transform:translate(-50%);padding:4px 18px;border:0;border-radius:0;background:transparent;box-shadow:none;text-align:center;pointer-events:none}.scene-mode .park-title{display:none}.park-title .eyebrow{color:#75f1e5;font-size:10px;letter-spacing:.16em}.park-title h1{margin:0;color:#f4ffff;font-size:clamp(18px,2.2vw,30px);letter-spacing:.04em;text-shadow:0 2px 10px #064357}.park-title p{margin:3px 0 0;color:#ffe04b;font:600 13px var(--num);text-shadow:0 1px 6px rgba(0,0,0,.65)}.park-weather{top:20px;right:20px;display:grid;gap:8px;min-width:190px;padding:14px 16px;border:1px solid rgba(128,242,238,.45);border-radius:12px;background:#043b4cd6;color:#d7fbfb}.park-weather span{color:#68e9e0;font-size:13px;font-weight:700}.park-weather strong{font-size:17px}.park-weather small{color:#acd3da;font-size:11px}.park-weather div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:6px;border-top:1px solid rgba(147,223,222,.16)}.park-weather div small{color:#a5d7dc}.park-weather div b{color:#f4ffff;font:600 13px var(--num);text-align:right}.park-stats{left:20px;top:146px;display:grid;gap:8px;width:160px;padding:12px;border:1px solid rgba(170,235,231,.32);border-radius:12px;background:#032f3dcc;color:#d9f5f1;font-size:12px}.park-stats div{display:flex;align-items:center;gap:8px}.park-stats b{margin-left:auto;color:#fff;font:600 16px var(--num)}.park-stats i,.park-legend i,.sensor-status{width:8px;height:8px;border-radius:50%;background:#36e5c5;box-shadow:0 0 10px currentColor}.park-stats i.alarm,.park-legend i.alarm{background:#ff7169}.park-stats i.off,.park-legend i.off{background:#93a9b2}.park-stats button{margin-top:4px;padding:7px;color:#b5fbf3;border:1px solid rgba(119,233,224,.35);border-radius:8px;background:#2cb6ad26;font-size:11px}.park-legend{right:20px;bottom:20px;display:flex;gap:14px;padding:10px 13px;border:1px solid rgba(177,235,234,.35);border-radius:10px;background:#04313ec7;color:#e0f7f6;font-size:11px}.park-legend span{display:flex;align-items:center;gap:6px}.park-legend i{width:7px;height:7px}.park-controls{left:50%;bottom:20px;transform:translate(-50%);color:#154a52;font-size:11px;text-shadow:0 1px 1px rgba(255,255,255,.6);white-space:nowrap}.park-controls b{margin:0 5px;color:#00a79f}.sensor-tooltip{top:50%;left:50%;transform:translate(-50%,-50%);display:grid;gap:5px;min-width:190px;padding:12px 14px;border:1px solid rgba(111,247,234,.55);border-radius:12px;background:#033241ed;color:#edffff;text-align:left;box-shadow:0 8px 26px #0003}.sensor-tooltip strong{font-size:14px}.sensor-tooltip small{color:#a8d9df;font-size:11px}.sensor-status{position:absolute;top:15px;right:14px}.sensor-status.alarming,.sensor-status.preAlarming{background:#ff7169}.sensor-status.offline{background:#93a9b2}.sensor-values{display:flex;flex-wrap:wrap;gap:6px;padding-top:6px}.sensor-values span{padding:4px 6px;border-radius:6px;background:#24d0c41f;color:#79ede1;font-size:10px}.scene-device-strip{left:50%;bottom:16px;transform:translate(-50%);width:min(590px,calc(100% - 370px));display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:center;padding:11px 14px;border:1px solid rgba(142,239,228,.35);border-radius:12px;background:#04303edb;color:#fff}.scene-device-strip .eyebrow{grid-column:1 / -1;color:#63ddd2;font-size:9px}.scene-device-strip strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.scene-device-strip>small{color:#add7d9;font-size:10px}.scene-factor-row{grid-column:1 / -1;display:flex;gap:8px;overflow:hidden}.scene-factor-row span{display:grid;min-width:70px;gap:2px}.scene-factor-row small{color:#91c9cd;font-size:9px}.scene-factor-row b{color:#e5ffff;font:600 11px var(--num);white-space:nowrap}.view-switch{position:fixed;z-index:5;left:50%;bottom:14px;transform:translate(-50%);display:flex;gap:4px;padding:4px;border:1px solid rgba(162,230,212,.22);border-radius:999px;background:#061812e8;box-shadow:0 8px 25px #00000047}.view-switch button{padding:8px 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:12px}.view-switch button.on{background:#147e65;color:#effffc}.web-mode .topbar,.web-mode .kpi-row,.web-mode>.demo-banner,.web-mode .view-switch{display:none}.web-mode .layout{position:fixed;top:0;right:0;bottom:0;left:0;padding:0;display:block;overflow:auto}.web-dashboard{height:auto;min-height:100%}.web-board{position:relative;--hud-line: rgba(47, 157, 255, .72);--hud-glow: rgba(47, 157, 255, .28);height:auto;min-height:100%;overflow:visible;display:grid;grid-template-columns:minmax(248px,300px) minmax(0,1fr) minmax(220px,280px);grid-template-rows:84px auto 320px;gap:10px;padding:12px;color:#f8fafc;background:radial-gradient(640px 280px at 8% 0%,rgba(47,157,255,.16),transparent 62%),radial-gradient(520px 260px at 96% 6%,rgba(47,157,255,.12),transparent 64%),radial-gradient(880px 360px at 50% -8%,rgba(47,157,255,.22),transparent 58%),linear-gradient(rgba(47,157,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(47,157,255,.08) 1px,transparent 1px),#020817;background-size:auto,auto,auto,42px 42px,42px 42px,auto}.windmill-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.windmill-backdrop canvas{display:block;width:100%;height:100%}.web-head,.web-side,.web-panel,.web-center,.web-trend{position:relative;z-index:1}.windmill-opacity{display:flex;align-items:center;gap:6px;color:#7cc4ff;font-size:12px;letter-spacing:.04em;white-space:nowrap}.windmill-opacity input{width:72px;accent-color:#2f9dff;cursor:pointer}.windmill-opacity b{min-width:2.4em;font-family:var(--num);font-weight:600;color:#e0f2fe}.web-head,.web-panel,.web-center,.web-trend{position:relative;border:1px solid var(--hud-line);background:linear-gradient(180deg,#2f9dff52,#08348c75);box-shadow:inset 0 1px #2f9dff47,0 0 22px var(--hud-glow)}.web-head{grid-column:1 / -1;display:grid;grid-template-columns:minmax(140px,1fr) auto minmax(220px,1fr);align-items:center;gap:12px;padding:0 16px;border:0;background:transparent;box-shadow:none}.web-brand{position:relative;grid-column:2;display:flex;flex-direction:column;align-items:center;gap:4px}.web-brand .dash-icon{width:22px;height:22px;color:#2f9dff}.web-head strong{position:relative;z-index:1;display:block;font-size:30px;letter-spacing:.12em;text-align:center;white-space:nowrap;color:#ffe14a;text-shadow:0 0 14px rgba(255,225,74,.55)}.data-flank{display:grid;gap:6px;width:min(220px,100%);pointer-events:none}.data-flank.left{justify-self:end}.head-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-width:0}.head-actions .data-flank{flex:0 1 220px;max-width:220px}.flank-codes{display:flex;gap:8px;color:#5cb6ff;font:600 11px/1 var(--num);letter-spacing:.08em}.data-flank.left .flank-codes{justify-content:flex-end}.flank-codes b{min-width:1.6em;opacity:.45;animation:bit-live 1.4s ease-in-out infinite}.flank-codes b:nth-child(2){animation-delay:.2s}.flank-codes b:nth-child(3){animation-delay:.4s}.flank-codes b:nth-child(4){animation-delay:.6s}.flank-rail{position:relative;display:flex;align-items:center;gap:14px;height:10px}.flank-rail:before{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(47,157,255,.9),transparent)}.flank-dot{position:relative;width:6px;height:6px;border-radius:50%;background:#2f9dff;box-shadow:0 0 8px #2f9dff;animation:dot-live 1.6s ease-in-out infinite}.flank-dot:nth-child(2){animation-delay:.25s}.flank-dot:nth-child(3){animation-delay:.5s}.data-flank.right .flank-dot:nth-child(2){animation-delay:.5s}.data-flank.right .flank-dot:nth-child(3){animation-delay:.25s}.data-flank.right .flank-dot:nth-child(4){animation-delay:0s}.flank-beam{position:absolute;top:3px;width:36px;height:4px;border-radius:99px;background:linear-gradient(90deg,transparent,#e0f2fe,#2F9DFF);filter:drop-shadow(0 0 6px #2F9DFF);animation:beam-to-title 2.4s ease-in-out infinite}.data-flank.right .flank-beam{background:linear-gradient(90deg,#2F9DFF,#e0f2fe,transparent);animation-name:beam-to-title-left}.title-scan{position:absolute;left:8%;right:8%;top:16px;height:18px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,225,74,0) 35%,rgba(255,225,74,.7),rgba(255,225,74,0) 65%,transparent);transform:translate(-70%);animation:title-scan 3.2s ease-in-out infinite}@keyframes bit-live{0%,to{opacity:.35;color:#5cb6ff}50%{opacity:1;color:#f0f9ff}}@keyframes dot-live{0%,to{transform:scale(.7);opacity:.4}50%{transform:scale(1.25);opacity:1}}@keyframes beam-to-title{0%{left:0;opacity:0}20%{opacity:1}80%{opacity:1}to{left:calc(100% - 36px);opacity:0}}@keyframes beam-to-title-left{0%{left:calc(100% - 36px);opacity:0}20%{opacity:1}80%{opacity:1}to{left:0;opacity:0}}@keyframes title-scan{0%{transform:translate(-70%)}to{transform:translate(70%)}}.web-head .web-brand span{color:#2f9dff;font:500 11px/1.4 var(--num);letter-spacing:.16em}.web-head time{color:#ffe14a;font:500 15.4px/1 var(--num);text-align:center;text-shadow:0 0 10px rgba(255,225,74,.45)}.web-head button{flex:none;padding:7px 14px;border:1px solid rgba(47,157,255,.85);border-radius:999px;color:#eaf5ff;background:#2f9dff47;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.web-head button:hover{background:#2f9dff8c;box-shadow:0 0 16px #2f9dff59}.web-side{min-height:min-content;display:flex;flex-direction:column;gap:10px;overflow:visible}.web-side .web-panel{flex-shrink:0}.web-side.left .web-panel.web-metrics{margin-top:auto}.web-side.left .web-panel:first-child{flex:0 0 auto;min-height:min-content;display:flex;flex-direction:column;overflow:visible}.web-side.right .web-panel:last-child{flex:0 0 auto}.web-panel{min-height:0;padding:10px 12px 12px}.web-panel header,.web-center header strong,.web-trend header{display:flex;align-items:center;gap:6px;color:#2f9dff;font-size:13px;letter-spacing:.08em}.web-panel header .dash-icon,.web-center header .dash-icon,.web-trend header .dash-icon{width:16px;height:16px;color:#2f9dff}.web-status-list,.web-rank{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.web-rank li{position:relative;overflow:hidden;display:grid;grid-template-columns:26px 72px minmax(0,1fr) auto;gap:10px;align-items:center;margin:0;padding:2px;border-radius:8px;font-size:16px;transition:background .2s ease;animation:row-live 5.5s ease-in-out infinite}.web-rank li:hover{background:#2f9dff29}.web-rank span{color:#2f9dff;font-family:var(--num);font-size:18px}.web-rank strong{font-size:16px}.web-rank em{font-size:14px}.web-rank i{display:block;height:12px;overflow:hidden;border-radius:99px;background:#2f9dff2e}.web-rank i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1a6fe0,#1a6fe0 36%,#f0f9ff,#2f9dff 64%,#1a6fe0);background-size:220% 100%;transform-origin:left center;animation:rank-grow .42s ease-out both,bar-flow 2.2s ease-in-out infinite}.web-rank li:nth-child(2) i b{animation-delay:.08s}.web-rank li:nth-child(3) i b{animation-delay:.16s}.web-rank li:nth-child(4) i b{animation-delay:.24s}.web-rank li:nth-child(5) i b{animation-delay:.32s}.web-rank li:hover i b{filter:brightness(1.2)}@keyframes rank-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes bar-flow{0%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes value-live{0%,to{color:#7cc4ff;text-shadow:0 0 0 transparent}50%{color:#f0f9ff;text-shadow:0 0 10px rgba(47,157,255,.95)}}@keyframes row-live{0%,16%,to{box-shadow:inset 0 0 0 transparent}7%{box-shadow:inset 0 0 18px #7dc4ff8c}}@keyframes row-sheen{0%{transform:translate(0);opacity:0}6%{opacity:1}18%,to{transform:translate(460%);opacity:0}}@keyframes chart-sweep{0%{transform:translate(-30%)}to{transform:translate(620%)}}.web-status-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.web-status-list li,.web-metrics dl div{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(47,157,255,.28);border-radius:8px;background:#083a8c6b;transition:background .2s ease,border-color .2s ease}.web-rank li:after,.web-metrics .weather-list div:after,.web-metrics .soil-list div:after{content:"";position:absolute;top:0;bottom:0;left:-35%;width:28%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(224,242,254,.55),transparent);animation:row-sheen 5.5s ease-in-out infinite}.web-metrics .weather-list div,.web-metrics .soil-list div{animation:row-live 5.5s ease-in-out infinite}.web-rank li:nth-child(2),.web-rank li:nth-child(2):after,.web-metrics dl div:nth-child(2),.web-metrics dl div:nth-child(2):after{animation-delay:.7s}.web-rank li:nth-child(3),.web-rank li:nth-child(3):after,.web-metrics dl div:nth-child(3),.web-metrics dl div:nth-child(3):after{animation-delay:1.4s}.web-rank li:nth-child(4),.web-rank li:nth-child(4):after,.web-metrics dl div:nth-child(4),.web-metrics dl div:nth-child(4):after{animation-delay:2.1s}.web-rank li:nth-child(5),.web-rank li:nth-child(5):after,.web-metrics dl div:nth-child(5),.web-metrics dl div:nth-child(5):after{animation-delay:2.8s}.web-metrics dl div:nth-child(6),.web-metrics dl div:nth-child(6):after{animation-delay:3.5s}.web-metrics dl div:nth-child(7),.web-metrics dl div:nth-child(7):after{animation-delay:4.2s}.web-side.left .web-panel:first-child header:after,.web-side.left .web-metrics header:after,.web-side.right .web-metrics header:after{content:"";width:7px;height:7px;margin-left:auto;border-radius:50%;background:#2f9dff;box-shadow:0 0 8px #2f9dff;animation:dot-live 1.6s ease-in-out infinite}.web-rank li:nth-child(odd){background:#083a8c61}.web-rank li:nth-child(2n){background:#2f9dff24}.web-rank li:hover{background:#2f9dff4d}.web-status-list li:nth-child(2n),.web-metrics dl div:nth-child(2n){background:#2f9dff29}.web-status-list b,.web-metrics dd{animation:value-live 2.6s ease-in-out infinite}.web-status-list li:nth-child(2) b,.web-metrics dl div:nth-child(2) dd{animation-delay:.25s}.web-status-list li:nth-child(3) b,.web-metrics dl div:nth-child(3) dd{animation-delay:.5s}.web-status-list li:nth-child(4) b,.web-metrics dl div:nth-child(4) dd{animation-delay:.75s}.web-metrics dl div:nth-child(5) dd{animation-delay:1s}.web-metrics dl div:nth-child(6) dd{animation-delay:1.25s}.web-metrics dl div:nth-child(7) dd{animation-delay:1.5s}.web-status-list li:nth-child(3) b{color:#fca5a5}.web-status-list li:nth-child(4) b{color:#fde68a}.web-status-list span,.web-metrics dt,.web-rank em{color:#7cc4ff;font-style:normal}.web-status-list b,.web-metrics dd,.orchard-table td{font-family:var(--num)}.web-metrics dd{margin:0;color:#7cc4ff;text-shadow:0 0 8px rgba(47,157,255,.35)}.web-center,.web-trend{min-height:0;padding:10px 12px}.web-center{display:flex;flex-direction:column;background:transparent;border-color:transparent;box-shadow:none}.web-center header,.web-trend header{display:flex;justify-content:space-between;align-items:center}.web-center header span{padding:3px 8px;border:1px solid rgba(47,157,255,.45);border-radius:999px;color:#7dd3ff;font:500 11px/1.4 var(--num)}.web-center header .orchard-title{color:#2f9dff;text-shadow:0 0 12px rgba(47,157,255,.55)}.web-center header .orchard-title .dash-icon{color:#2f9dff}.orchard-table-wrap{flex:1;min-height:0;margin-top:8px;overflow:auto;transform-origin:center top;transition:transform .24s ease,opacity .24s ease}.orchard-table-wrap.flipping{transform:rotateX(72deg);opacity:.28}.orchard-table{width:100%;border-collapse:collapse;font-size:13px}.orchard-table th,.orchard-table td{height:43.56px;padding:8px 10px;line-height:1.4;text-align:right;white-space:nowrap;border-bottom:1px solid rgba(47,157,255,.22)}.orchard-table thead th{color:#2f9dff;font-size:12px;font-weight:600;letter-spacing:.06em;background:transparent}.orchard-table thead th:first-child,.orchard-table tbody th{text-align:left;color:#d6ebff}.orchard-table thead th:first-child{color:#2f9dff;font-weight:600}.orchard-table tbody th{font-weight:600}.orchard-table tbody tr{transition:background .2s ease}.orchard-table tbody tr:nth-child(odd) th,.orchard-table tbody tr:nth-child(odd) td{background:#083a8c9e}.orchard-table tbody tr:nth-child(2n) th,.orchard-table tbody tr:nth-child(2n) td{background:#2f9dff47}.orchard-table tbody tr:hover th,.orchard-table tbody tr:hover td{background:#2f9dff6b}.web-metrics dl{display:grid;gap:4px;margin:0}.web-metrics .weather-list div{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:8px}.weather-glyph,.soil-glyph{width:40px;height:40px;display:block}.web-metrics .weather-list div,.web-metrics .soil-list div{height:54px}.web-metrics .soil-list div{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:8px}.web-side.right .web-panel.web-metrics{display:flex;flex-direction:column;height:auto}.web-side.right .web-metrics dl{flex:none;margin-top:8px}.web-trend{grid-column:1 / -1;display:flex;flex-direction:column;margin-top:40px}.web-chart{position:relative;flex:1;min-height:0;overflow:hidden}.web-chart:after{content:"";position:absolute;top:8px;bottom:8px;left:0;width:16%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(47,157,255,.28),transparent);animation:chart-sweep 4.6s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.orchard-table-wrap,.web-head button,.orchard-table tbody tr,.web-rank li{transition:none}.orchard-table-wrap.flipping{transform:none;opacity:1}.web-rank li,.web-rank li:after,.web-rank i b,.web-metrics .weather-list div,.web-metrics .weather-list div:after,.web-metrics .soil-list div,.web-metrics .soil-list div:after,.web-side.left .web-panel:first-child header:after,.web-side.left .web-metrics header:after,.web-side.right .web-metrics header:after,.web-status-list b,.web-metrics dd,.web-chart:after,.flank-codes b,.flank-dot,.flank-beam,.title-scan{animation:none}}@media (max-width: 1100px){.web-board{grid-template-columns:1fr;grid-template-rows:auto;height:auto;overflow:auto}.web-head{grid-template-columns:1fr}.web-brand,.head-actions{grid-column:auto}.data-flank{display:none}.web-chart{height:220px}}.sidebar{width:340px;flex:none;display:flex;flex-direction:column;min-height:0;overflow:hidden;margin:0 0 12px 12px;border:1px solid var(--line);border-radius:18px;background:#081610e0}.side-head,.filters{padding:14px 14px 0}.side-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.side-head h2,.group-block h3,.trend-head h3,.bar-head h3{margin:0}.counts{color:var(--muted);font-size:12px;flex-wrap:wrap;justify-content:flex-end}.counts .warn{color:#fecaca}.filters{display:grid;gap:8px}.status-filter{display:flex;gap:6px}.status-filter button,.tabs button,.subtabs button,.chip,.text-btn{background:transparent;border:1px solid transparent;border-radius:999px;color:var(--muted);padding:5px 11px;transition:color .2s ease,background .2s ease,border-color .2s ease}.status-filter button:hover,.tabs button:hover,.subtabs button:hover,.chip:hover,.text-btn:hover{color:var(--text);border-color:#22c55e47}.status-filter button.on,.tabs button.on,.subtabs button.on,.chip.on{color:#f0fdf4;background:#22c55e29;border-color:#22c55e73}.device-scroll{flex:1;min-height:0;overflow:auto;padding:8px 10px 16px}.group-block h3{margin:14px 6px 6px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.06em}.device-row{border-radius:14px;margin-bottom:6px;border:1px solid transparent;transition:background .2s ease,border-color .2s ease}.device-row:hover{background:#22c55e0f}.device-row.active{background:#22c55e1a;border-color:#22c55e47}.device-main{width:100%;display:flex;gap:10px;text-align:left;background:transparent;border:0;padding:10px 10px 2px}.device-text{display:grid;gap:3px;min-width:0}.device-text strong{font-size:14px}.device-text .meta,.remark,.remark-line{color:var(--muted)}.remark,.remark-line{font-size:12px;line-height:1.5}.tag{color:#f8fafc;font-style:normal;font-size:11px}.text-btn{margin:0 8px 8px}.editor{display:grid;gap:8px;padding:0 10px 10px}.editor-actions{justify-content:flex-end}.empty-inline{color:var(--muted);padding:12px}main{flex:1;min-width:0;overflow:auto;padding:0 16px 24px}.panel{margin-top:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#0a1a13c7}.panel.realtime{margin-top:0}.device-head,.trend-head,.bar-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.device-head h2{margin:4px 0;display:flex;gap:8px;align-items:center;font-size:28px;letter-spacing:-.03em}.meta-line{flex-wrap:wrap;color:var(--muted);font-size:13px}.status-pill.normal{background:#22c55e29;color:#86efac}.status-pill.alarming{background:#f8717129;color:#fecaca}.status-pill.preAlarming{background:#f59e0b29;color:#fde68a}.status-pill.offline,.status-pill.unknown{background:#ffffff0f;color:var(--muted)}.relay-box{max-width:460px}.relay-box p{margin:0 0 8px;color:var(--muted);font-size:12px}.relays{flex-wrap:wrap;gap:6px}.relays span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 8px;color:var(--muted);font-size:12px}.relays span.closed{color:#bbf7d0;border-color:#22c55e66}.relays span.closed i{background:var(--accent)}.factor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:16px}.factor-card{text-align:left;min-height:118px;padding:14px;background:#10281c;border:1px solid rgba(187,247,208,.1);border-radius:16px;transition:border-color .2s ease,background .2s ease}.factor-card:hover{border-color:#22c55e73;background:#143224}.factor-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.factor-top em{font-style:normal;font-size:11px;color:#86efac}.factor-top em.alarm{color:#fecaca}.factor-top em.warn{color:#fde68a}.factor-card strong{display:flex;align-items:baseline;gap:6px;margin:10px 0 6px;font-family:var(--num);font-size:30px;font-weight:600;letter-spacing:-.04em}.factor-card strong small,.factor-card>small{color:var(--muted);font-size:12px;font-weight:500;font-family:var(--font)}.factor-card.on{border-color:#22c55eb3;box-shadow:inset 3px 0 0 var(--accent)}.factor-card.alarm{box-shadow:inset 3px 0 0 var(--alarm)}.factor-card.alarm strong{color:#fecaca}.factor-card.warn{box-shadow:inset 3px 0 0 var(--warn)}.factor-card.warn strong{color:#fde68a}.trend-head h3,.bar-head h3{font-size:18px}.trend-tools{flex-wrap:wrap;margin:14px 0}.chips{display:flex;flex-wrap:wrap;gap:6px}.check{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.check input{width:auto}.check.disabled{opacity:.5}.warning-line{color:#fde68a;font-size:13px}.chart-wrap{position:relative}.chart{height:max(340px,calc(100vh - 620px))}.bar-chart{height:220px}.chart-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);background:#07140f9e;border:1px dashed var(--line);border-radius:12px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:8px 0 18px}.stat{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#10281cb3}.stat strong{display:block;font-family:var(--num);font-size:22px}.stat em,.stat li{color:var(--muted);font-style:normal;font-size:12px}.stat ul{display:flex;flex-wrap:wrap;gap:8px 12px;margin:6px 0 0;padding:0;list-style:none}.bar-head{margin-top:8px}@keyframes pulse{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 7px #22c55e00}to{box-shadow:0 0 #22c55e00}}@keyframes digit-flip{0%{transform:perspective(120px) rotateX(-85deg);opacity:.2}to{transform:perspective(120px) rotateX(0);opacity:1}}@media (max-width: 1100px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 960px){.login-screen,.layout{display:block}.login-copy{padding:32px 20px 0}.login-copy h1{font-size:34px}.login-card{margin:20px}.app{height:auto;min-height:100%}.sidebar{width:auto;height:48vh;max-height:48vh;margin:12px 12px 0}.topbar{align-items:flex-start;flex-direction:column}main{padding-bottom:32px}.scene-workspace{min-height:68vh;margin:0 10px 64px}.scene-dashboard .scene-workspace{height:70vh;min-height:540px}.scene-device-strip{width:min(450px,calc(100% - 30px));bottom:58px}.park-stats{top:auto;bottom:74px}.scene-mode .park-stats{top:300px;bottom:auto}}@media (max-width: 640px){.kpi-row{grid-template-columns:1fr 1fr;padding:12px 12px 0}.device-head h2{font-size:22px}.factor-card strong{font-size:26px}.scene-workspace{min-height:72vh}.scene-dashboard .scene-workspace{height:74vh;min-height:560px;margin:0 8px 12px}.house-label{min-width:80px;max-width:130px;padding:4px 6px}.house-label strong{font-size:9px}.house-label small,.house-label span{font-size:7px}.fruit-sales{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-trends,.sales-board{margin:10px 8px;padding:13px}.metric-trend-head{align-items:flex-start;flex-direction:column}.metric-chart{height:340px}.metric-squares{grid-template-columns:repeat(7,minmax(130px,1fr));overflow-x:auto}.park-title{top:10px;left:50%;transform:translate(-50%);padding:10px 12px}.park-title h1{font-size:17px}.park-title p,.park-title .eyebrow{font-size:9px}.park-weather{top:auto;right:10px;bottom:160px;min-width:0;padding:9px 11px}.park-weather>small{display:none}.park-weather strong{font-size:13px}.park-stats{left:10px;bottom:160px;width:115px;padding:9px;font-size:10px}.scene-mode .park-stats{top:285px;bottom:auto}.park-stats b{font-size:13px}.park-legend{right:8px;bottom:9px;gap:8px;padding:8px;font-size:9px}.park-controls{display:none}.scene-device-strip{bottom:48px;grid-template-columns:1fr auto}.scene-device-strip>small{grid-column:1 / -1}.scene-device-strip .btn{padding:6px 8px;font-size:10px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.scene-mode{--dash-cyan: #43e7ff;--dash-blue: #0787c4;--dash-panel: rgba(3, 41, 76, .78);--dash-line: rgba(70, 224, 255, .52);background:#031326}.scene-mode .topbar{background:linear-gradient(180deg,rgba(1,25,53,.94),rgba(1,25,53,.24) 78%,transparent)}.scene-mode .top-actions{opacity:.84}.scene-mode .top-actions .pill{background:#033e62c7;border-color:#4dddff5c;color:#bff5ff}.scene-mode .top-actions .btn{border-color:#4cd2f752;background:#032b498f}.scene-mode .scene-top-title strong{font-size:clamp(19px,2.25vw,32px);letter-spacing:.13em;text-shadow:0 0 18px rgba(52,217,255,.5),0 2px 9px #001d38}.scene-mode .scene-top-title span{color:#ffe061;text-shadow:0 0 9px rgba(255,222,90,.35)}.scene-mode .scene-dashboard{background:radial-gradient(ellipse at 50% 18%,rgba(10,116,171,.26),transparent 56%),#031326}.scene-mode .scene-dashboard:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(3,33,69,.18),transparent 27%,rgba(1,16,40,.16) 100%),repeating-linear-gradient(0deg,rgba(110,236,255,.035) 0 1px,transparent 1px 5px);mix-blend-mode:screen}.scene-mode .scene-workspace{z-index:0;border:0;box-shadow:none}.scene-mode .scene-workspace:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,transparent 32%,rgba(0,11,29,.28) 100%),linear-gradient(180deg,#01132b14,#0112291f);z-index:3}.scene-mode .park-canvas canvas{filter:saturate(1.14) contrast(1.04) brightness(.98)}.scene-mode .house-label{z-index:15;min-width:146px;max-width:190px;padding:7px 10px;border:1px solid var(--dash-line);border-radius:8px;background:linear-gradient(135deg,#044766f0,#032246d6);box-shadow:0 0 0 1px #29d2ff1f,0 0 18px #0aaaed40}.scene-mode .house-label{display:none!important}.scene-mode .house-label:before{content:"◌";position:absolute;left:7px;top:5px;color:#79f7ff;font-size:12px}.scene-mode .house-label strong{padding-left:14px;font-size:11px}.scene-mode .house-label span{color:#82f3ff;font-size:9px}.scene-mode .house-label .house-code-value{color:#ffe34d}.scene-mode .park-weather{top:104px;right:50%;transform:translate(50%);min-width:245px;padding:9px 13px;border-color:#49e2ff85;border-radius:10px;background:#02314ecc;box-shadow:0 0 20px #19b4e62e}.scene-mode .park-weather strong{font-size:15px}.scene-mode .park-legend{right:330px;bottom:90px;z-index:26;border-color:#4bdcff6b;background:#022445b8;color:#c8f6ff}.scene-mode .park-controls{display:none}.dashboard-sensor-card{position:absolute;z-index:28;display:grid;gap:2px;width:160px;min-height:86px;padding:8px 10px;border:1px solid rgba(83,225,255,.7);border-radius:9px;color:#ddfbff;background:linear-gradient(145deg,#086485e6,#03264fe0);box-shadow:inset 0 1px #b4faff33,0 0 16px #11bceb47;text-align:left;cursor:pointer}.dashboard-sensor-card:after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;transform:translate(-50%) rotate(45deg);border-right:1px solid rgba(83,225,255,.7);border-bottom:1px solid rgba(83,225,255,.7);background:#08466b}.dashboard-sensor-card strong{display:flex;align-items:center;gap:5px;overflow:hidden;color:#efffff;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.dashboard-sensor-card strong .sensor-temp{color:#ff8f72;font-style:normal;font-size:13px}.dashboard-sensor-card span{display:block;overflow:hidden;color:#75e7f2;font:600 9px/1.25 var(--num);text-overflow:ellipsis;white-space:nowrap}.dashboard-sensor-card.sensor-card-0{left:31%;top:18%}.dashboard-sensor-card.sensor-card-1{left:47%;top:16%}.dashboard-sensor-card.sensor-card-2{left:58%;top:19%}.dashboard-sensor-card.sensor-card-3{left:30%;top:40%}.dashboard-sensor-card.sensor-card-4{left:44%;top:39%}.dashboard-sensor-card.sensor-card-5{left:57%;top:41%}.utility-label{position:absolute;z-index:29;left:58%;top:63%;display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid rgba(74,226,255,.7);border-radius:999px;color:#e9ffff;background:#04597cd6;box-shadow:0 0 17px #1ccbf459;font-size:12px}.utility-label:after{content:"";position:absolute;left:50%;bottom:-13px;width:1px;height:13px;background:#4cddffb3}.utility-label b{color:#7bffb7;font:600 10px var(--num)}.dashboard-panel,.scene-mode .sales-board{position:absolute;z-index:32;border:1px solid var(--dash-line);border-radius:12px;background:linear-gradient(145deg,#043f62db,#03193bc7);box-shadow:inset 0 1px #a1f1ff1f,0 0 24px #0090d52e;-webkit-backdrop-filter:blur(13px) saturate(125%);backdrop-filter:blur(13px) saturate(125%);color:#e9fbff;overflow:hidden}.dashboard-panel:before,.scene-mode .sales-board:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(135deg,rgba(73,225,255,.1),transparent 32%),repeating-linear-gradient(90deg,transparent 0 24px,rgba(72,215,255,.025) 25px 26px)}.dashboard-panel header,.scene-mode .sales-board>header{position:relative;display:flex;align-items:center;gap:8px;padding:11px 14px 9px;border-bottom:1px solid rgba(77,221,255,.22);color:#f2ffff}.dashboard-panel header strong,.scene-mode .sales-board>header strong{font-size:16px;letter-spacing:.04em}.dashboard-panel header i{flex:1;height:1px;background:linear-gradient(90deg,rgba(63,222,255,.42),transparent)}.panel-icon{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;color:#c6fbff;background:#3fd6ff2e;box-shadow:0 0 9px #2fd1ff40}.dashboard-overview{left:18px;top:74px;width:288px}.overview-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;padding:7px 13px 1px}.overview-grid div{display:grid;gap:4px;padding:8px 4px;border-bottom:1px solid rgba(101,225,249,.15)}.overview-grid small,.overview-growth small{color:#a8d5e2;font-size:11px}.overview-grid b{color:#f9fcff;font:700 21px var(--num)}.overview-grid div:nth-child(2n){padding-left:18px;border-left:1px solid rgba(101,225,249,.15)}.overview-growth{position:relative;display:flex;align-items:center;gap:10px;padding:10px 13px 13px}.growth-ring{display:grid;place-items:center;width:54px;height:54px;border:7px solid #2ee2bb;border-right-color:#1c7095;border-radius:50%;color:#8effda;box-shadow:0 0 13px #1ee0c252}.growth-ring i{font:700 12px var(--num);font-style:normal}.overview-growth strong{display:block;margin-top:3px;color:#b9fff2;font-size:13px}.overview-growth svg{position:absolute;right:8px;bottom:11px;width:118px;height:44px;opacity:.85}.overview-growth path{fill:none;stroke:#35d9e9;stroke-width:2;filter:drop-shadow(0 0 3px #1bd5e4)}.dashboard-environment{left:18px;top:335px;width:288px}.dashboard-environment .panel-icon.leaf{color:#79ffb6;background:#1ec87e2e}.dashboard-equipment{left:18px;bottom:83px;width:288px}.equipment-ok{position:relative;display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(77,221,255,.18)}.equipment-ok span{display:grid;place-items:center;width:40px;height:40px;border:5px solid #45ee8c;border-radius:50%;color:#eafff4;font-size:22px;box-shadow:0 0 14px #45ee8c80}.equipment-ok strong{color:#baffd8;font-size:13px}.equipment-ok small{display:block;margin-top:2px;color:#ffd98a;font-size:11px}.equipment-ok.warn span{border-color:#ffd15c;color:#fff4c8;box-shadow:0 0 14px #ffd15c73}.equipment-ok.bad span{border-color:#ff8d7a;color:#ffe4de;box-shadow:0 0 14px #ff786473}.dashboard-equipment ul{position:relative;display:grid;gap:7px;margin:0;padding:10px 14px;list-style:none}.dashboard-equipment li{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;color:#d9f7ff;font-size:11px}.equipment-icon{display:grid;place-items:center;color:#7ceeff;font-size:16px}.dashboard-equipment li em{color:#38e79a;font-style:normal;font-size:10px}.environment-row{position:relative;display:grid;grid-template-columns:34px 1fr 92px;align-items:center;gap:7px;min-height:57px;padding:7px 13px;border-bottom:1px solid rgba(101,225,249,.13)}.environment-row:last-child{border-bottom:0}.env-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#ffc66d;font-size:19px;background:#ff994e1f}.environment-row.blue .env-icon{color:#58d9ff;background:#2ab9ff24}.environment-row.mint .env-icon{color:#66ffca;background:#3ce9ad21}.environment-row.lime .env-icon{color:#a5f179;background:#80e54921}.environment-row small{display:block;color:#9bcfe0;font-size:10px}.environment-row b{display:block;margin-top:2px;color:#efffff;font:700 17px var(--num);white-space:nowrap}.environment-row svg{width:94px;height:30px;opacity:.76}.environment-row path{fill:none;stroke:#ffad54;stroke-width:1.8}.environment-row.blue path{stroke:#42cfff}.environment-row.mint path{stroke:#4de4aa}.environment-row.lime path{stroke:#9be66e}.scene-mode .sales-board{right:18px;top:74px;left:auto;width:300px;padding:0;border-color:var(--dash-line);background:linear-gradient(145deg,#043f62e0,#03193bd1)}.scene-mode .sales-board>header{justify-content:space-between}.scene-mode .sales-board>header>div:first-child{display:flex;align-items:center;gap:7px}.sales-tabs{display:flex;align-items:center;gap:3px;padding:2px;border-radius:6px;background:#00143085;font-size:10px}.sales-tabs span,.sales-tabs b{padding:4px 6px;border-radius:4px;font-weight:500}.sales-tabs b{color:#eaffff;background:#13aee6;box-shadow:0 0 9px #13aee680}.sales-total{position:relative;display:flex;justify-content:space-between;align-items:center;padding:10px 14px 8px;border-bottom:1px solid rgba(86,224,255,.2)}.sales-total small{display:block;color:#b4d8e3;font-size:11px}.sales-total strong{display:block;margin-top:3px;color:#ffe56d;font:700 29px var(--num)}.sales-total em{color:#d6ebf0;font:500 11px var(--font);font-style:normal}.sales-growth{display:grid;grid-template-columns:auto auto;gap:0 5px;align-items:center;color:#b9ff8d;text-align:right}.sales-growth span{grid-row:1 / span 2;color:#49e989;font-size:33px;line-height:1}.sales-growth b{font:700 20px var(--num)}.sales-growth small{color:#b9d8c9}.scene-mode .fruit-sales{gap:0;margin:0;padding:8px 13px 12px;list-style:none}.scene-mode .fruit-sales li{display:grid;grid-template-columns:22px 52px 1fr;align-items:center;gap:7px;min-height:36px}.rank-no{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;background:#0e9ed46b;color:#f4feff;font:700 11px var(--num)}.fruit-name{display:inline-flex;align-items:center;gap:5px;color:azure!important;font-size:11px!important}.fruit-dot{width:20px;height:20px;display:inline-block;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe291,#ff812e 48%,#ad3b1d);box-shadow:inset 0 0 3px #fff,0 0 6px #ffa7474d}.fruit-dot.fruit-蓝莓{background:radial-gradient(circle at 35% 30%,#b8d7ff,#3b71d1 45%,#182f73)}.fruit-dot.fruit-无花果{background:radial-gradient(circle at 35% 30%,#f4b1cd,#a23e84 48%,#482552)}.fruit-dot.fruit-马家柚{background:radial-gradient(circle at 35% 30%,#fff2a2,#ffc22e 46%,#b46b12)}.fruit-dot.fruit-桃子{background:radial-gradient(circle at 35% 30%,#fff1d0,#ff9a86 48%,#ad493f)}.scene-mode .sales-bar{height:13px;background:#75cee729}.scene-mode .sales-bar i{background:linear-gradient(90deg,#ffbd78,#ffc36f);box-shadow:0 0 9px #ffb46a59}.scene-mode .fruit-sales li:nth-child(2) .sales-bar i{background:linear-gradient(90deg,#21b9f5,#47dcff)}.scene-mode .fruit-sales li:nth-child(3) .sales-bar i{background:linear-gradient(90deg,#8f6cff,#b78fff)}.scene-mode .fruit-sales li:nth-child(4) .sales-bar i{background:linear-gradient(90deg,#47d6a7,#76efc0)}.scene-mode .fruit-sales li:nth-child(5) .sales-bar i{background:linear-gradient(90deg,#e99ed5,#efb2e5)}.scene-mode .sales-bar b{right:7px;font-size:10px}.variety-board{right:18px;bottom:83px;width:300px}.variety-content{display:grid;grid-template-columns:105px 1fr;align-items:center;gap:12px;padding:13px}.donut{position:relative;display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:conic-gradient(#20c8b6 0,#20c8b6 18%,#238dea 18%,#238dea 33%,#4cdbab 33%,#4cdbab 45%,#13547b 45%,#13547b);box-shadow:0 0 18px #24b8f133}.donut:after{content:"";position:absolute;width:54px;height:54px;border-radius:50%;background:#06315b}.donut span{position:relative;z-index:1;color:#dff;font:700 16px var(--num);text-align:center}.donut small{color:#8dbecd;font:10px var(--font)}.variety-content ul{display:grid;gap:8px;margin:0;padding:0;list-style:none;color:#c8eff5;font-size:11px}.variety-content li{display:flex;align-items:center;gap:6px}.variety-content li i{width:9px;height:9px;border-radius:3px;background:#20c8b6}.variety-content li i.c2{background:#238dea}.variety-content li i.c3{background:#4cdbab}.variety-content li i.c4{background:#13547b}.variety-content li b{margin-left:auto;color:#9fceda;font:600 11px var(--num)}.dashboard-nav{position:absolute;z-index:34;left:50%;bottom:13px;transform:translate(-50%);display:flex;gap:4px;padding:5px 8px;border:1px solid rgba(49,215,255,.45);border-radius:16px;background:linear-gradient(180deg,#024570e0,#02234bed);box-shadow:0 0 24px #0099db38}.dashboard-nav button{display:grid;justify-items:center;min-width:91px;gap:3px;padding:6px 11px 5px;border:0;border-radius:9px;color:#9bc6d4;background:transparent;font-size:11px}.dashboard-nav button span{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(83,218,255,.35);border-radius:8px;color:#8eeaff;font-size:17px}.dashboard-nav button.on{color:#ecffff;background:linear-gradient(180deg,#10baed52,#024c8038);box-shadow:inset 0 0 11px #48e2ff24}.dashboard-nav button.on span{color:#fff;background:#0ba4dd;box-shadow:0 0 12px #24dbffb3}.scene-mode .metric-trends{display:none}.scene-mode .scene-dashboard .scene-workspace,.scene-mode .scene-dashboard .reference-board-shell,.scene-mode .scene-dashboard .reference-board-canvas{height:100vh;min-height:0;margin:0}.scene-mode .scene-dashboard:before,.scene-mode .scene-workspace:after{display:none}@media (max-width: 760px){.greenhouse-control-panel{right:8px;bottom:8px;width:204px}.layer-badge{top:8px;font-size:9px}}@media (max-width: 1100px){.dashboard-overview,.dashboard-environment{left:12px;width:242px}.scene-mode .sales-board,.variety-board{right:12px;width:258px}.dashboard-nav button{min-width:72px;padding-left:7px;padding-right:7px}.dashboard-equipment{left:12px;width:242px}}@media (max-width: 760px){.dashboard-overview{left:8px;top:66px;width:200px}.dashboard-environment{left:8px;top:300px;width:200px}.dashboard-equipment{left:8px;bottom:72px;width:200px}.scene-mode .sales-board{right:8px;top:66px;width:210px}.variety-board{right:8px;bottom:72px;width:210px}.environment-row{grid-template-columns:28px 1fr;min-height:48px;padding:5px 8px}.environment-row svg{display:none}.overview-grid b{font-size:16px}.sales-total strong{font-size:21px}.dashboard-nav{left:50%;bottom:8px;max-width:calc(100% - 16px);overflow-x:auto}.dashboard-nav button{min-width:66px;font-size:9px}.dashboard-nav button span{width:23px;height:23px;font-size:14px}.dashboard-equipment{display:none}.scene-mode .fruit-sales article:nth-child(n+8){display:none}.scene-mode .fruit-sales{max-height:235px;overflow:hidden}.scene-mode .house-label{min-width:92px;max-width:118px;padding:4px 6px}.scene-mode .house-label strong{font-size:8px}.scene-mode .house-label span{font-size:7px}.dashboard-sensor-card{display:none}.utility-label{left:50%;top:58%;transform:translate(-50%);font-size:10px}}.farm-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.farm-dashboard button,.farm-dashboard .dashboard-panel,.farm-dashboard .sales-board,.farm-dashboard .dashboard-nav,.farm-dashboard .dash-tools,.farm-dashboard .dash-focus,.farm-dashboard .scene-rotation{pointer-events:auto}.farm-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,rgba(2,16,36,.72) 0%,rgba(2,16,36,.28) 18%,transparent 30%,transparent 70%,rgba(2,16,36,.28) 82%,rgba(2,16,36,.72) 100%),linear-gradient(180deg,rgba(1,18,40,.78),transparent 18%,transparent 78%,rgba(1,12,28,.62))}.dash-frame{position:absolute;top:0;left:0;right:0;height:72px;pointer-events:none}.dash-title{position:absolute;left:50%;top:0;transform:translate(-50%);width:min(520px,46vw);height:64px;display:grid;align-content:center;justify-items:center;gap:2px;color:#f4feff;background:linear-gradient(180deg,#0874b0eb,#033060c7);clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);box-shadow:inset 0 -2px #49e4ff,0 10px 24px #008cd240}.dash-title strong{font-size:clamp(18px,2vw,28px);letter-spacing:.14em;text-shadow:0 0 16px rgba(80,220,255,.45)}.dash-title span{color:#ffe56a;font:600 12px var(--num);letter-spacing:.04em}.dash-wing{position:absolute;top:18px;width:18vw;height:10px;background:linear-gradient(90deg,transparent,rgba(72,220,255,.85))}.dash-wing.left{left:8vw}.dash-wing.right{right:8vw;transform:scaleX(-1)}.dash-wing:after{content:"";position:absolute;right:0;top:8px;width:70%;height:1px;background:#78e6ff73}.dash-tools{position:absolute;top:14px;right:16px;display:flex;align-items:center;gap:6px;pointer-events:auto}.dash-tools em{color:#9be7ff;font-style:normal;font-size:11px}.dash-tools button{border:1px solid rgba(90,220,255,.4);border-radius:8px;background:#032848b8;color:#dff8ff;padding:5px 8px;font-size:12px}.sales-tabs button{border:0;background:transparent;padding:0;color:inherit}.dashboard-panel.hot,.sales-board.hot{box-shadow:0 0 0 1px #8dfff0,0 0 26px #5affd659}.scene-mode .dashboard-overview{top:76px}.scene-mode .dashboard-environment{top:280px}.scene-mode .dashboard-environment header,.scene-mode .dashboard-equipment header{padding:8px 12px 6px}.scene-mode .environment-row{min-height:34px;padding:2px 12px}.scene-mode .environment-row b{font-size:15px}.scene-mode .environment-row svg{height:22px}.scene-mode .dashboard-equipment{bottom:86px}.scene-mode .equipment-ok{padding:8px 12px}.scene-mode .dashboard-equipment ul{gap:4px;padding:8px 12px}.variety-board{bottom:86px}.scene-mode .fruit-sales{max-height:calc(100vh - 530px);overflow:auto}.scene-mode .dash-focus{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.scene-mode .dash-focus .metric-trends{display:block;position:absolute;left:318px;right:328px;bottom:84px;z-index:30;width:auto;transform:none;margin:0;padding:10px;border:1px solid rgba(70,224,255,.45);border-radius:12px;background:#032040d6;pointer-events:auto}.scene-mode .dash-focus .metric-squares{grid-template-columns:repeat(4,minmax(0,1fr))}.scene-mode .dash-focus .metric-square{min-height:86px}.alert-sheet,.focus-note{left:50%;top:48%;width:min(380px,calc(100vw - 660px));transform:translate(-50%,-50%)}.alert-sheet ul{position:relative;display:grid;gap:8px;margin:0;padding:12px 14px;list-style:none}.alert-sheet li{display:flex;justify-content:space-between;gap:12px;color:#e7f8ff;font-size:13px}.alert-sheet em{font-style:normal;font-size:12px}.alert-sheet em.ok{color:#49e989}.alert-sheet em.bad{color:#ff8d7a}.alert-sheet em.off{color:#9eb4c0}.alert-sheet p,.focus-note p{position:relative;margin:0;padding:0 14px 14px;color:#c5e7f2;font-size:13px;line-height:1.65}.dash-icon{width:16px;height:16px;display:block}.scene-mode .farm-dashboard{display:grid;grid-template-columns:minmax(248px,300px) minmax(0,1fr) minmax(260px,320px);grid-template-rows:64px minmax(0,1fr) 72px;gap:10px 14px;padding:10px 16px 12px;z-index:6}.scene-mode .farm-vignette{z-index:1}.scene-mode .dash-frame{position:relative;top:auto;left:auto;right:auto;grid-column:1 / -1;grid-row:1;height:64px;z-index:30}.scene-mode .dash-col{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0;z-index:20;pointer-events:none}.scene-mode .dash-col.left{grid-column:1;grid-row:2}.scene-mode .dash-col.right{grid-column:3;grid-row:2}.scene-mode .dash-stage{position:relative;grid-column:2;grid-row:2;min-width:0;min-height:0;z-index:10}.scene-mode .farm-dashboard .dashboard-panel,.scene-mode .farm-dashboard .sales-board{position:relative;top:auto;right:auto;bottom:auto;left:auto;width:auto;flex:0 0 auto;transition:border-color .2s ease,box-shadow .2s ease}.scene-mode .dash-col.left .dashboard-environment,.scene-mode .dash-col.right .sales-board{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.scene-mode .dash-col.left .dashboard-environment{overflow:auto}.scene-mode .dash-col.right .sales-board{flex:0 0 auto}.scene-mode .dash-col.right .variety-board{flex:1 1 auto;min-height:0}.scene-mode .farm-dashboard .fruit-sales{max-height:none;flex:1 1 auto;min-height:0;overflow:auto}.scene-mode .farm-dashboard .dashboard-nav{position:relative;left:auto;bottom:auto;transform:none;grid-column:2;grid-row:3;justify-self:center;align-self:end;z-index:30;max-width:100%}.scene-mode .dash-stage .dashboard-sensor-card{transition:border-color .2s ease,box-shadow .2s ease}.scene-mode .dash-stage .sensor-card-0{left:2%;top:4%}.scene-mode .dash-stage .sensor-card-1{left:36%;top:2%}.scene-mode .dash-stage .sensor-card-2{left:76%;top:2%}.scene-mode .dash-stage .sensor-card-3{left:4%;top:38%}.scene-mode .dash-stage .sensor-card-4{left:28%;top:46%}.scene-mode .dash-stage .sensor-card-5{left:8%;top:62%}.scene-mode .dash-stage .utility-label{left:66%;top:38%}.scene-rotation{position:absolute;left:50%;bottom:10px;z-index:34;width:max-content;max-width:calc(100% - 16px);transform:translate(-50%);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 10px;margin:0;padding:8px 10px;border:1px solid rgba(74,226,255,.55);border-radius:10px;background:#032444e0;box-shadow:0 0 18px #0aaaed38;color:#d7f7ff;font-size:12px}.scene-rotation span{letter-spacing:.08em;white-space:nowrap}.scene-rotation label{display:flex;align-items:center;gap:6px;color:#9be7ff;font:600 11px var(--num)}.scene-rotation input[type=range]{width:72px;accent-color:#3ecfff;cursor:pointer}.scene-rotation-num{width:52px;padding:3px 4px;border:1px solid rgba(80,225,255,.35);border-radius:6px;background:#041c34cc;color:#f4feff;font:600 12px var(--num)}.scene-rotation button{padding:5px 10px;border:1px solid rgba(80,225,255,.4);border-radius:6px;background:#086ea0b8;color:#f4feff;cursor:pointer;transition:border-color .2s ease,background .2s ease}.scene-rotation button:hover:not(:disabled){border-color:#8ef6ff;background:#0e96cee0}.scene-rotation button:disabled{cursor:default;opacity:.72}.scene-rotation button:focus-visible,.scene-rotation input:focus-visible{outline:2px solid #8ef6ff;outline-offset:2px}.scene-mode .dash-stage .dashboard-sensor-card:hover,.scene-mode .dash-tools button:hover,.scene-mode .dashboard-nav button:hover,.scene-mode .sales-tabs button:hover{border-color:#8ef6ff}.scene-mode .dash-stage .dashboard-sensor-card:hover{box-shadow:0 0 0 1px #8ef6ff59,0 0 18px #28beeb47}.scene-mode .dashboard-nav button{transition:background .2s ease,color .2s ease}.scene-mode .dashboard-nav button:hover{color:#f3ffff;background:#0e96ce38}.scene-mode .dash-tools button{transition:background .2s ease,border-color .2s ease}.scene-mode .dash-tools button:hover{background:#085c92e0}.scene-mode .sales-tabs button{padding:4px 8px;border-radius:4px;transition:background .2s ease,color .2s ease}.scene-mode .sales-tabs button.on{color:#f4ffff;background:#129ed4;box-shadow:0 0 10px #129ed473}.scene-mode .sales-tabs button:hover:not(.on){background:#129ed438;color:#f4ffff}.scene-mode .farm-dashboard button:focus-visible{outline:2px solid #8ef6ff;outline-offset:2px}.scene-mode .sales-growth{grid-template-columns:22px auto}.scene-mode .sales-growth .dash-icon{grid-row:1 / span 2;width:18px;height:18px;color:#49e989}.scene-mode .equipment-ok span .dash-icon{width:18px;height:18px}.scene-mode .panel-icon .dash-icon,.scene-mode .env-icon .dash-icon,.scene-mode .equipment-icon .dash-icon,.scene-mode .dashboard-nav button span .dash-icon{width:15px;height:15px}.scene-mode .dash-stage .dash-focus{position:absolute;inset:auto 0 0;pointer-events:none}.scene-mode .dash-stage .dash-focus .metric-trends{position:relative;left:auto;right:auto;bottom:auto;width:auto}.scene-mode .dash-stage .alert-sheet,.scene-mode .dash-stage .focus-note{position:absolute;left:50%;top:42%;width:min(360px,92%);transform:translate(-50%,-50%)}.alert-sheet li button{width:100%;display:flex;justify-content:space-between;gap:12px;padding:0;border:0;background:transparent;color:inherit;text-align:left}.alert-sheet li button:hover:not(:disabled){color:#fff}.alert-sheet li button:disabled{cursor:default}@media (max-width: 1100px){.scene-mode .farm-dashboard{grid-template-columns:minmax(200px,230px) minmax(0,1fr) minmax(210px,240px);gap:8px;padding:8px}.scene-mode .farm-dashboard .dashboard-panel,.scene-mode .farm-dashboard .sales-board{width:auto}}@media (max-width: 760px){.scene-mode .farm-dashboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:56px minmax(0,1fr) 62px}.scene-mode .dash-col.left{grid-column:1;grid-row:2}.scene-mode .dash-col.right{grid-column:2;grid-row:2}.scene-mode .dash-stage{display:none}.scene-mode .farm-dashboard .dashboard-nav{grid-column:1 / -1}.scene-mode .farm-dashboard .dashboard-equipment{display:flex}.scene-mode .dash-title{width:min(280px,70vw)}.scene-mode .dash-title strong{letter-spacing:.06em;font-size:16px}}
