:root{--glv-green:#4a7c3f;--glv-green-dk:#2d5a24;--glv-green-lt:#7ab06a;--glv-green-pale:#e8f0e4;--glv-amber:#b87820;--glv-amber-lt:#e8c97a;--glv-danger:#c22b1f;--glv-danger-pale:#fbe6e3;--glv-surface:#fafaf6;--glv-surface2:#eeebe3;--glv-border:#cdc9bc;--glv-text:#1e2218;--glv-muted:#5c6452;--glv-radius:8px;--glv-radius-sm:4px;--glv-shadow:0 2px 12px rgba(0,0,0,0.08);--glv-shadow-lg:0 4px 24px rgba(0,0,0,0.13);--glv-trans:0.2s ease}.glv-app{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--glv-text);background:var(--glv-surface2);border-radius:var(--glv-radius);box-shadow:var(--glv-shadow-lg);overflow:hidden}.glv-layout{display:grid;grid-template-columns:1fr;min-height:500px}@media (min-width:860px){.glv-layout{grid-template-columns:320px 1fr}}@media (min-width:1100px){.glv-layout{grid-template-columns:360px 1fr}}.glv-controls-panel{background:var(--glv-surface);border-right:1px solid var(--glv-border);display:flex;flex-direction:column;overflow-y:auto}.glv-tabs{display:flex;border-bottom:2px solid var(--glv-border);background:var(--glv-surface2)}.glv-tab-btn{flex:1;padding:12px 8px;border:none;background:#fff0;cursor:pointer;font-size:13px;font-weight:600;color:var(--glv-muted);transition:color var(--glv-trans),border-bottom var(--glv-trans);border-bottom:3px solid #fff0;margin-bottom:-2px}.glv-tab-btn:hover{color:var(--glv-green)}.glv-tab-btn.active{color:var(--glv-green);border-bottom-color:var(--glv-green);background:var(--glv-surface)}.glv-tab-panel{display:none;padding:0}.glv-tab-panel.active{display:block}.glv-section{padding:14px 16px;border-bottom:1px solid var(--glv-border)}.glv-section:last-child{border-bottom:none}.glv-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--glv-muted);margin:0 0 12px}.glv-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.glv-control-item{display:flex;flex-direction:column;gap:4px}.glv-control-item--full{grid-column:1 / -1}.glv-control-item label{font-size:12px;font-weight:600;color:var(--glv-text);display:flex;align-items:center;gap:5px}.glv-unit{font-weight:400;color:var(--glv-muted);font-size:11px}.glv-hint{font-size:10px;color:var(--glv-muted);font-style:italic;line-height:1.4}.glv-warning{display:block;font-size:10px;font-weight:600;font-style:normal;color:var(--glv-amber);line-height:1.4;margin-top:2px}.glv-probe-badge--warn{color:var(--glv-amber);background:rgb(184 120 32 / .12)}.glv-intensity-alert{background:var(--glv-danger-pale);border:2px solid var(--glv-danger);border-radius:var(--glv-radius-sm);color:var(--glv-danger);font-weight:700;font-size:13px;line-height:1.5;padding:12px 14px}.glv-intensity-alert strong{font-size:15px}.glv-app .glv-control-item input[type="number"],.glv-app .glv-control-item select{padding:7px 10px;border:1.5px solid var(--glv-border);border-radius:var(--glv-radius-sm);font-size:13px;color:var(--glv-text);background:var(--glv-surface);transition:border-color var(--glv-trans),box-shadow var(--glv-trans);width:100%;box-sizing:border-box}.glv-app .glv-control-item input[type="number"]:focus,.glv-app .glv-control-item select:focus{outline:none;border-color:var(--glv-green);box-shadow:0 0 0 3px rgb(74 124 63 / .15)}.glv-slider-sync-input{width:72px!important;padding:5px 8px!important;margin-top:4px}.glv-input-slider-pair{display:flex;flex-direction:column;gap:6px}.glv-input-slider-pair input[type="number"]{width:80px}.glv-app .glv-controls-panel input[type="range"]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:4px;background:#c8d4bc;border:1px solid #b4c0a4;box-shadow:inset 0 1px 3px rgb(0 0 0 / .12);outline:none;cursor:pointer}.glv-app .glv-controls-panel input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--glv-green);border:2px solid var(--glv-green-dk);box-shadow:0 1px 4px rgb(0 0 0 / .25);transition:background var(--glv-trans);cursor:pointer}.glv-app .glv-controls-panel input[type="range"]::-webkit-slider-thumb:hover{background:var(--glv-green-dk)}.glv-app .glv-controls-panel input[type="range"]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;border:2px solid var(--glv-green-dk);background:var(--glv-green);box-shadow:0 1px 4px rgb(0 0 0 / .25);cursor:pointer}.glv-app .glv-controls-panel input[type="range"]::-moz-range-track{height:8px;border-radius:4px;background:#c8d4bc;border:1px solid #b4c0a4}.glv-badge{display:inline-block;padding:2px 8px;background:var(--glv-green);color:#fff;border-radius:10px;font-size:11px;font-weight:700;margin-left:auto}.glv-toggle-row{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 0}.glv-app input.glv-toggle-cb{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;pointer-events:none!important}.glv-toggle-track{position:relative;width:40px;height:22px;background:#c0c8b8;border-radius:11px;border:1.5px solid #a8b49c;transition:background var(--glv-trans),border-color var(--glv-trans);flex-shrink:0}.glv-toggle-track::after{content:'';position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgb(0 0 0 / .2);transition:transform var(--glv-trans)}.glv-app input.glv-toggle-cb:checked+.glv-toggle-track{background:var(--glv-green);border-color:var(--glv-green-dk)}.glv-app input.glv-toggle-cb:checked+.glv-toggle-track::after{transform:translateX(18px)}.glv-toggle-label{font-size:13px;font-weight:600}.glv-density-picker{display:flex;flex-direction:column;gap:8px}.glv-density-option{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border:1.5px solid var(--glv-border);border-radius:var(--glv-radius-sm);cursor:pointer;transition:border-color var(--glv-trans),background var(--glv-trans)}.glv-density-option:hover{border-color:var(--glv-green-lt);background:var(--glv-green-pale)}.glv-density-option input[type="radio"]{margin-top:2px;accent-color:var(--glv-green);flex-shrink:0}.glv-density-option input[type="radio"]:checked~span{color:var(--glv-green-dk)}.glv-density-option:has(input:checked){border-color:var(--glv-green);background:var(--glv-green-pale)}.glv-density-option span strong{display:block;font-size:13px}.glv-density-option span small{display:block;font-size:11px;color:var(--glv-muted);margin-top:1px}.glv-viz-panel{background:var(--glv-surface2);padding:16px;display:flex;flex-direction:column;gap:14px}.glv-canvas-row{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width:600px){.glv-canvas-row{grid-template-columns:1fr 1fr;align-items:start}}.glv-canvas-wrap{display:flex;flex-direction:column;gap:6px}.glv-canvas-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--glv-muted)}.glv-probe-badge{text-transform:none;letter-spacing:normal;font-weight:600;color:#1f5aaa;background:rgb(30 90 170 / .12);border-radius:3px;padding:1px 6px;font-size:10px}.glv-canvas{width:100%;height:auto;display:block;border-radius:var(--glv-radius-sm);border:1px solid var(--glv-border);background:#fff;aspect-ratio:1 / 1}.glv-canvas-hover-wrap{position:relative}.glv-canvas-hover-wrap .glv-canvas{cursor:crosshair}.glv-hover-tooltip{position:absolute;pointer-events:none;transform:translate(-50%,-100%);margin-top:-8px;background:var(--glv-text);color:#fff;font-size:11px;line-height:1.4;padding:6px 9px;border-radius:var(--glv-radius-sm);white-space:nowrap;box-shadow:var(--glv-shadow);z-index:5}.glv-hover-tooltip strong{font-size:13px}.glv-legend{background:rgb(0 0 0 / .03);border-radius:var(--glv-radius-sm);border:1px solid var(--glv-border);padding:4px 6px 8px}.glv-legend canvas{width:100%;height:32px;display:block}.glv-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}.glv-stat-card{background:var(--glv-surface);border:1px solid var(--glv-border);border-radius:var(--glv-radius-sm);padding:10px 8px;text-align:center;display:flex;flex-direction:column;gap:3px}.glv-app .glv-stat-value{font-size:1.4em;font-weight:700;color:var(--glv-green)!important;line-height:1}.glv-app .glv-stat-label{font-size:10px;color:var(--glv-muted);font-weight:600;line-height:1.3}.glv-app .glv-stat-label small{color:var(--glv-muted)}.glv-plant-results,.glv-target-results{background:var(--glv-green-pale);border:1px solid rgb(74 124 63 / .25);border-radius:var(--glv-radius-sm);padding:14px}.glv-app .glv-plant-results-title{font-size:13px;font-weight:700;color:var(--glv-green-dk)!important;margin:0 0 12px}.glv-plant-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}@media (max-width:500px){.glv-plant-stats{grid-template-columns:repeat(2,1fr)}}.glv-plant-stat{background:rgb(255 255 255 / .75);border-radius:var(--glv-radius-sm);padding:10px 6px;text-align:center;display:flex;flex-direction:column;gap:3px}.glv-plant-stat--avg{border:1px solid rgb(74 124 63 / .3)}.glv-app .glv-plant-stat-value{font-size:1.3em;font-weight:700;color:var(--glv-green)!important;line-height:1}.glv-app .glv-plant-stat-label{font-size:10px;color:var(--glv-muted);font-weight:600;line-height:1.3}.glv-app .glv-plant-stat-label small{color:var(--glv-muted)}.glv-quality-row{display:flex;align-items:center;gap:10px}.glv-quality-label{font-size:12px;color:var(--glv-muted)}.glv-quality-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700}.glv-q--dark{background:#1a2e1a;color:#7ab06a}.glv-q--low{background:#1e3a28;color:#88c890}.glv-q--medium{background:#2d4a1e;color:#a8d888}.glv-q--good{background:#3a5c14;color:#c4e890}.glv-q--high{background:#6b4a00;color:#f0c860}.glv-q--danger{background:#6b1a0a;color:#f08878}.glv-disclaimer{font-size:11px;color:var(--glv-muted);line-height:1.5;border-top:1px solid var(--glv-border);padding-top:10px;margin:0}.glv-disclaimer strong{color:var(--glv-text)}.glv-plant-controls{padding-top:4px}