:root{color-scheme:dark;font:14px/1.5 system-ui,sans-serif;color:#dcebe5;background:#0a1516}*{box-sizing:border-box}body{margin:0}a{color:#9cdbc3;text-decoration:none}button,select,input{font:inherit}button,select,input[type=number]{border:1px solid #34504b;background:#142a28;color:#dcebe5;border-radius:7px;padding:8px 11px}button{cursor:pointer}button:hover,button[aria-pressed=true]{background:#244b40;border-color:#85e4bc}button:disabled{opacity:.45;cursor:wait}:focus-visible{outline:2px solid #a8f5d5;outline-offset:3px}.shell{max-width:1500px;margin:auto;padding:22px 28px}nav{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #233b36;padding-bottom:20px}nav span,.muted{color:#91aaa3}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 0}h1{font-size:clamp(30px,4vw,48px);font-weight:500;letter-spacing:-1.4px;margin:0}.eyebrow{color:#8ebba8;font-size:10px;letter-spacing:2px;margin:0 0 5px}#forest-status{max-width:250px;color:#91aaa3;font-size:12px}main{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:20px;align-items:start}.viewer,.panel{background:#102021;border:1px solid #29423c;border-radius:12px;overflow:hidden}.stage{position:relative;height:620px}canvas{width:100%;height:100%;display:block;touch-action:none}.stage-label{position:absolute;left:18px;top:17px;font-size:12px;color:#dcebe5;pointer-events:none}.stage-label{padding:8px 10px;background:#0a1516b3;border:1px solid #ffffff20;border-radius:6px}.stage-label span{color:#bdd1c4;font-size:10px}.camera{position:absolute;right:12px;bottom:14px;display:flex;gap:5px}.transport{padding:15px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.transport output{font:12px ui-monospace,monospace;color:#a8c8bc}.transport input{flex-basis:100%;margin:0}.legend,#forest-selected,#forest-power{padding:0 18px;font-size:12px}.legend{color:#91aaa3}.panel{padding:18px;margin-bottom:17px}h2{font-size:15px;font-weight:500;margin:0 0 14px}label{display:block;font-size:12px;margin:10px 0 3px;color:#afc8be}label output{float:right;color:#85e4bc}input[type=range]{width:100%;accent-color:#85e4bc}select,input[type=number]{width:100%;min-width:0}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.muted{font-size:11px}#forest-sky{display:block;width:100%;max-height:330px;font-family:ui-monospace,monospace}#forest-sky g{cursor:pointer}.table-wrap{max-height:280px;overflow:auto}table{border-collapse:collapse;width:100%;font:11px ui-monospace,monospace}td,th{padding:6px 3px;text-align:left;border-bottom:1px solid #29423c;white-space:nowrap}th{color:#91aaa3;font-weight:400}td button{font-size:11px;padding:3px 6px}.notes{margin-top:20px;color:#91aaa3;font-size:12px;max-width:1000px}.notes summary{cursor:pointer;color:#b7d6c7}.notes p{max-width:95ch}[data-state=error] #forest-status{color:#ffa8a8}@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 320px}.stage{height:540px}.shell{padding:17px}}@media(max-width:720px){main{grid-template-columns:1fr}header{align-items:start;padding:22px 0}header #forest-status{max-width:130px;font-size:10px}.stage{height:430px}.shell{padding:12px}nav{font-size:12px}nav span{display:none}.transport{padding:12px}.panel{padding:16px}.notes{margin-bottom:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.route-plots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}.route-plots svg{width:100%;height:auto;background:#0c1919;border:1px solid #29423c;border-radius:8px}@media(max-width:720px){.route-plots{grid-template-columns:1fr}}

#forest-rays{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.camera{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 24px)}.camera,.stage-label{z-index:2}

#forest-rays [data-signal-select]{cursor:pointer}#forest-rays [data-signal-select]:focus-visible{outline:none;stroke:#fff;stroke-width:3}

[data-state=error] #forest-rays{visibility:hidden}

#forest-live-history{margin:18px;border-top:1px solid #29423c;padding-top:17px}.live-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.live-heading h2{margin:0 0 12px}.live-heading>span{font:9px ui-monospace,monospace;color:#91aaa3;letter-spacing:.7px}.live-metrics,.live-plots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.live-metrics{margin-bottom:12px}.live-metrics>div{padding:12px;background:#0b1c1d;border:1px solid #29423c;border-radius:8px}.live-metrics span,.live-metrics small{display:block;color:#91aaa3;font-size:10px}.live-metrics strong{display:block;font:20px ui-monospace,monospace;color:#91f8da;margin:5px 0}.live-metrics>div+div strong{color:#ffcf68}.live-plots svg{width:100%;height:auto;background:#0b1c1d;border:1px solid #29423c;border-radius:8px}[data-history-events]{padding-left:18px;margin:8px 0;color:#ffcf68;font:11px ui-monospace,monospace}[data-history-events]:empty{display:none}@media(max-width:500px){.live-plots{grid-template-columns:1fr}.live-metrics strong{font-size:16px}#forest-live-history{margin:14px}}

#forest-tree-causes{margin:18px;border-top:1px solid #29423c;padding-top:17px}#forest-tree-causes [data-tree-total]{font:11px ui-monospace,monospace;color:#ffcf68}#forest-tree-causes .table-wrap{max-height:220px}#forest-tree-causes td button[aria-pressed=true]{color:#b4dcff;border-color:#8ecfff}#forest-tree-causes table{font-size:12px}@media(max-width:500px){#forest-tree-causes{margin:14px}#forest-tree-causes table{font-size:10px}}

.season-study{margin-top:20px}.season-study summary{cursor:pointer;font-size:15px;color:#c9e6da}.season-selected{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:15px 0}.season-selected svg{width:100%;max-width:480px;height:auto;display:block;background:#0b1c1d;border:1px solid #29423c;border-radius:8px}.season-study tr[data-selected=true]{color:#91f8da}.season-study [data-blocked=true]{color:#ec9ca4}#season-study-stale{padding:10px;border-left:3px solid #ffcf68;color:#ffcf68;font-size:12px}.season-study .table-wrap{max-height:260px}.season-study [data-season-change]{font:12px ui-monospace,monospace;color:#ffcf68}@media(max-width:600px){.season-selected{grid-template-columns:1fr;gap:16px}}
