/* Climate change (environmental-science/assets/tools/climate-change.js). OWNED BY THIS TOOL ONLY (builder T4).
   Roles, the same in every scene and in the drills: infrared vermillion,
   ultraviolet purple, sunlight yellow, ozone blue, CO2 grey with red
   oxygen, chlorine green, thermal expansion orange, land ice light blue
   (Okabe-Ito based; lighter in dark mode). Every value is also written. */
.cc-svg,.cc-qfig{--cc-ir:#D55E00;--cc-ir-ink:#A84A00;--cc-uv:#8E3BB0;--cc-uv-ink:#6E2A8C;--cc-vis:#E0A800;--cc-o3:#0072B2;--cc-o3-ink:#005A8C;
  --cc-cl:#009E73;--cc-cl-ink:#00704F;--cc-c:#3A4744;--cc-o:#D55E00;--cc-good:#1F6E3E;
  --cc-space:#1B2A4A;--cc-strat:#C9DDF0;--cc-trop:#E4F1F8;--cc-ground:#7FA35A;--cc-land:#B79568;--cc-sea:#5BA3D0;--cc-sky:#E6F2F8;--cc-ice:#F4FAFD;--cc-ice-edge:#8FB8D0;
  --cc-th:#E69F00;--cc-li:#56B4E9;--cc-panel:var(--white);}
:root[data-theme="dark"] .cc-svg,:root[data-theme="dark"] .cc-qfig{--cc-ir:#FF9A5C;--cc-ir-ink:#FFB385;--cc-uv:#C890E6;--cc-uv-ink:#D9AEEF;--cc-vis:#F3C04F;--cc-o3:#6CB8EC;--cc-o3-ink:#8FCBF2;
  --cc-cl:#4FD1AA;--cc-cl-ink:#7BE0C1;--cc-c:#C9D3D1;--cc-o:#FF9A5C;--cc-good:#6FD094;
  --cc-space:#0A1222;--cc-strat:#1E3550;--cc-trop:#1A2C38;--cc-ground:#40623A;--cc-land:#5E4A33;--cc-sea:#24577A;--cc-sky:#17262E;--cc-ice:#D8E6EE;--cc-ice-edge:#6F95AA;
  --cc-th:#F3C04F;--cc-li:#8FCBF2;}
.cc-card{display:grid;gap:14px;}
.cc-fig{position:relative;min-height:400px;height:min(76vh,680px);}
.ls-root .cc-fig{flex:1 1 auto;height:auto;min-height:340px;}
.cc-svg{display:block;width:100%;height:100%;font-family:var(--font-ui);user-select:none;-webkit-user-select:none;}
.cc-fig .cc-svg{position:absolute;inset:0;}
.cc-qfig .cc-svg{height:auto;}
/* atmosphere */
.cc-space{fill:var(--cc-space);}
.cc-strat{fill:var(--cc-strat);}
.cc-trop{fill:var(--cc-trop);}
.cc-ozband{fill:var(--cc-o3);}
.cc-tropo{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 5;}
.cc-ground{fill:var(--cc-ground);}
.cc-tree rect{fill:#6B4F2E;} .cc-tree circle{fill:#3F7D3A;}
.cc-house rect{fill:#E8E1D2;stroke:#6B5E4A;stroke-width:1.2;} .cc-house path{fill:#A3533A;}
.cc-house.is-wet rect{fill:#9CC3DB;}
.cc-sun{fill:#F3C04F;stroke:#E0A800;stroke-width:3;}
.cc-o3 circle{fill:var(--cc-o3);stroke:var(--white);stroke-width:.8;}
.cc-co2 .c{fill:var(--cc-c);} .cc-co2 .o{fill:var(--cc-o);} .cc-co2 circle{stroke:var(--white);stroke-width:.8;}
.cc-cl{fill:var(--cc-cl);stroke:var(--white);stroke-width:1;}
.cc-ray{fill:none;stroke-linecap:round;stroke-linejoin:round;}
.cc-ray.cc-uv,.cc-head.cc-uv{stroke:var(--cc-uv);} .cc-head.cc-uv{fill:var(--cc-uv);}
.cc-ray.cc-ir,.cc-head.cc-ir,.cc-head.cc-h-ir{stroke:var(--cc-ir);} .cc-head.cc-ir,.cc-head.cc-h-ir{fill:var(--cc-ir);}
.cc-vis{stroke:var(--cc-vis);stroke-width:3;stroke-linecap:round;}
.cc-head.cc-h-vis{fill:var(--cc-vis);stroke:var(--cc-vis);}
.cc-stop{fill:none;stroke:var(--cc-uv);stroke-width:2;stroke-dasharray:2 2;}
.cc-hit{fill:none;stroke:var(--cc-ir);stroke-width:2;}
.cc-back{fill:none;stroke:var(--cc-ir);stroke-width:2.2;stroke-dasharray:4 3;}
.cc-layer{font-weight:900;font-size:13px;fill:var(--ink);paint-order:stroke;stroke:var(--white);stroke-width:4px;stroke-linejoin:round;}
.cc-call{font-weight:900;font-size:12.5px;paint-order:stroke;stroke:var(--white);stroke-width:3.5px;stroke-linejoin:round;}
.cc-c-uv{fill:var(--cc-uv-ink);} .cc-c-ir{fill:var(--cc-ir-ink);} .cc-c-cl{fill:var(--cc-cl-ink);} .cc-c-good{fill:var(--cc-good);} .cc-c-b{fill:var(--cc-o3);stroke:var(--cc-o3);} .cc-c-co2{stroke:var(--cc-c);}
.cc-c-th{fill:#8A5A00;} .cc-c-li{fill:#2A7AA8;}
:root[data-theme="dark"] .cc-c-th{fill:#F3C04F;} :root[data-theme="dark"] .cc-c-li{fill:#8FCBF2;}
.cc-key rect{fill:var(--white);opacity:.92;stroke:var(--line);}
.cc-key .cc-ray{stroke-width:2.2;}
.cc-keyt{fill:var(--ink);font-weight:700;font-size:11.5px;}
.cc-thermo rect{fill:var(--white);stroke:var(--muted);} .cc-thermo .cc-merc,.cc-thermo circle{fill:var(--cc-ir);stroke:none;}
/* panels and mini graphs */
.cc-panel{fill:var(--cc-panel);stroke:var(--line);stroke-width:1.5;}
.cc-mh{font-weight:900;font-size:13px;fill:var(--ink);}
.cc-axis{stroke:var(--ink);stroke-width:1.4;}
.cc-grid{stroke:var(--line);stroke-width:1;}
.cc-mcurve{fill:none;stroke-width:3;stroke-linejoin:round;}
.cc-mcurve.cc-c-ir{stroke:var(--cc-ir);} .cc-mcurve.cc-c-uv{stroke:var(--cc-uv);} .cc-mcurve.cc-c-co2{stroke:var(--cc-c);}
.cc-mpt{stroke:var(--white);stroke-width:2.5;}
.cc-mpt.cc-c-ir{fill:var(--cc-ir);} .cc-mpt.cc-c-uv{fill:var(--cc-uv);}
.cc-mread{font-weight:900;font-size:13px;fill:var(--ink);paint-order:stroke;stroke:var(--white);stroke-width:3.5px;stroke-linejoin:round;font-variant-numeric:tabular-nums;}
.cc-tk{fill:var(--muted);font-weight:700;font-size:11.5px;font-variant-numeric:tabular-nums;}
.cc-axl{fill:var(--ink);font-weight:800;font-size:12.5px;}
.cc-name{fill:var(--ink);font-weight:800;font-size:12.5px;}
.cc-lab{font-weight:800;font-size:12.5px;fill:var(--ink);paint-order:stroke;stroke:var(--white);stroke-width:3px;stroke-linejoin:round;}
.cc-tag{font-weight:900;font-size:14px;fill:var(--cc-ir-ink);paint-order:stroke;stroke:var(--white);stroke-width:3.5px;stroke-linejoin:round;}
.cc-kpt{fill:var(--cc-c);stroke:var(--white);stroke-width:1.5;} .cc-kpt.is-sel{fill:var(--cc-ir);}
.cc-gbar{fill:var(--cc-c);opacity:.45;} .cc-gbar.is-sel{fill:var(--cc-ir);opacity:1;}
/* ocean */
.cc-sky{fill:var(--cc-sky);}
.cc-sea{fill:var(--cc-sea);}
.cc-wave{fill:none;stroke:var(--white);stroke-width:2;opacity:.7;}
.cc-diss{fill:none;stroke:var(--cc-c);stroke-width:2;stroke-dasharray:3 3;}
.cc-eq{fill:#FFFFFF;font-weight:900;font-size:14.5px;}
.cc-eqn{fill:#E6F2F8;font-weight:700;font-size:12.5px;}
.cc-on{fill:#FFFFFF;stroke:none;}
.cc-tk.cc-on{fill:#E6F2F8;}
.cc-read{font-weight:900;font-size:14px;}
.cc-ph0{stop-color:#E69F00;} .cc-ph1{stop-color:#0072B2;}
.cc-phmark{stroke:#FFFFFF;stroke-width:2;stroke-dasharray:2 2;}
.cc-phnow{fill:#FFFFFF;stroke:#1B2A26;stroke-width:1.2;}
.cc-carb{fill:#F6E7B8;font-weight:800;font-size:11px;}
.cc-shell path{fill:#F2E6D0;stroke:#8A7350;stroke-width:2.4;}
.cc-ribs line{stroke:#B89E74;stroke-width:1.6;}
.cc-hole{fill:var(--cc-sea);stroke:#8A7350;stroke-width:1;}
.cc-hinge{fill:#C9B08A;}
/* sea level */
.cc-land{fill:var(--cc-land);}
.cc-icesheet{fill:var(--cc-ice);stroke:var(--cc-ice-edge);stroke-width:2;}
.cc-melt{fill:none;stroke:var(--cc-li);stroke-width:2.5;stroke-linecap:round;}
.cc-seaice{fill:var(--cc-ice);stroke:var(--cc-ice-edge);stroke-width:2;}
.cc-oldlvl{stroke:var(--ink);stroke-width:1.4;stroke-dasharray:6 4;}
.cc-warm{fill:color-mix(in srgb, var(--cc-th) 70%, var(--cc-sea));}
.cc-track{fill:var(--track);}
.cc-b-th{fill:var(--cc-th);} .cc-b-li{fill:var(--cc-li);}
.cc-glassw{fill:var(--cc-sea);opacity:.6;} .cc-glasso{fill:none;stroke:var(--muted);stroke-width:2;}
.cc-dim{stroke:#FFFFFF;stroke-width:1.5;}
.cc-rise{fill:none;stroke:var(--cc-ir);stroke-width:2.5;}
/* dock */
.cc-ctl{display:flex;flex-direction:column;gap:10px;}
.cc-views{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
.cc-views button{min-height:44px;}
.cc-grp{display:flex;flex-direction:column;gap:10px;}
.cc-grp[hidden],.cc-pl[hidden],.cc-cfcs[hidden]{display:none !important;}
.cc-meltbtn[aria-pressed="true"]{border-color:var(--cink);background:var(--ctint);}
.cc-years,.cc-cfcs{display:flex;flex-wrap:wrap;gap:8px;}
.cc-years .tchip,.cc-cfcs .tchip{min-height:44px;padding:6px 12px;border-radius:999px;border:2px solid var(--line);background:var(--paper);color:var(--ink);font:800 13px var(--font-ui);cursor:pointer;}
.cc-pl{margin:6px 0 0;font:800 13px var(--font-ui);color:var(--muted);}
.ls-tbl tr.hl{background:var(--ctint);}
body.ls-on .env-crumb{display:none;}
.cc-phnow.cc-c-b{fill:var(--cc-o3);stroke:var(--white);} .cc-phnow.cc-c-ir{fill:var(--cc-ir);stroke:var(--white);}
/* Dark mode: the shared pill and setup-row labels (muted #8CA39B) reach only
   4.2 to 4.4:1 on the olive tints; a lighter muted here gives 5.6:1 or more
   (shared fix reported to the lead for tool-studio.css). */
:root[data-theme="dark"] .ls-root .ls-pill-k,:root[data-theme="dark"] .ls-root .ls-k{color:#B4C6C0;}
/* A soft background behind each scene label, so it reads over rays and art. */
.cc-lbg{fill:var(--white);fill-opacity:.82;}
:root[data-theme="dark"] .cc-lbg{fill:#0F1917;fill-opacity:.78;}
.cc-call,.cc-layer{stroke-width:0;}
/* Room for the first-run tip while it shows (hintSlot). */
.env-tipslot{height:58px;flex:none;}
