:root{color-scheme:dark;--bg:#071521;--panel:#102334;--panel2:#162d40;--line:#33536b;--text:#edf7ff;--muted:#aec4d4;--cyan:#4edbe5;--amber:#ffc45d;--red:#ff7d76;--green:#79e29b;--r:16px;font:15px/1.4 Inter,system-ui,sans-serif}html[data-theme=light]{color-scheme:light;--bg:#eaf3f7;--panel:#fff;--panel2:#f0f7fa;--line:#aac4d0;--text:#173346;--muted:#526f80;--cyan:#007d89;--amber:#a05d00;--red:#b72d36;--green:#087a46}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100dvh}.top{display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 16px 10px;position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.top a{color:var(--muted);text-decoration:none}.top h1{font-size:clamp(16px,2vw,23px);margin:0;flex:1}.top button,.tabs button,button,select,input{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);padding:8px 12px;font:inherit}.top button{white-space:nowrap}.tabs{display:flex;gap:8px;padding:10px 16px;overflow:auto}.tabs button[aria-pressed=true]{border-color:var(--cyan);box-shadow:inset 0 -3px var(--cyan);color:var(--cyan)}.sticky{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 10px}.pill{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 12px}.pill strong{color:var(--cyan)}.layout{display:grid;grid-template-columns:minmax(240px,280px) minmax(420px,1fr) minmax(280px,360px);gap:12px;padding:0 16px 16px}.panel,.scene,.evidence{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;min-width:0}.panel h2,.evidence h2{font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.field{display:grid;grid-template-columns:1fr minmax(88px,120px);align-items:center;gap:8px;margin:9px 0}.field input,.field select{width:100%}.row{display:flex;gap:8px;flex-wrap:wrap}.row>*{flex:1}.primary{background:var(--cyan);color:#04232a;border-color:transparent;font-weight:800}.danger{color:var(--red)}.success{color:var(--green)}button[disabled]{opacity:.45}.system-label{border:1px dashed var(--amber);color:var(--amber);padding:10px;border-radius:10px;font-weight:700}.formula{font-size:clamp(24px,4vw,42px);text-align:center;margin:10px}.readout{display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.readout strong{color:var(--cyan);font-variant-numeric:tabular-nums}.chart{width:100%;height:170px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;touch-action:none}.chart text{fill:var(--muted);font-size:10px}.chart .grid{fill:none;stroke:var(--line);stroke-width:1}.task{background:color-mix(in srgb,var(--cyan) 12%,var(--panel));border-left:4px solid var(--cyan);padding:10px;border-radius:8px;margin-bottom:12px}.status{min-height:42px;padding:9px;border-radius:9px;background:var(--panel2);color:var(--muted)}.apparatus{min-height:230px;display:flex;align-items:end;justify-content:center;gap:24px;padding:20px;overflow:hidden}.vessel{width:min(30%,150px);height:170px;border:5px solid var(--line);border-top:0;border-radius:0 0 22px 22px;position:relative;background:linear-gradient(to top,color-mix(in srgb,var(--cyan) 35%,transparent) 62%,transparent 62%)}.vessel .label{position:absolute;inset:auto 4px 12px;text-align:center;font-weight:800}.thermo{position:absolute;right:9px;top:-25px;width:13px;height:120px;border:2px solid var(--muted);border-radius:9px;overflow:hidden}.thermo span{position:absolute;left:1px;right:1px;bottom:1px;background:var(--red);border-radius:5px;transition:height .15s}.energy-dot{width:11px;height:11px;border-radius:50%;background:var(--amber);animation:rise 1.2s linear infinite}@keyframes rise{from{transform:translateY(30px);opacity:0}50%{opacity:1}to{transform:translateY(-80px);opacity:0}}.muted{color:var(--muted)}.hidden{display:none!important}.footer-actions{display:flex;gap:8px;justify-content:center;position:fixed;z-index:9;left:50%;transform:translateX(-50%);bottom:max(8px,env(safe-area-inset-bottom));padding:7px;background:color-mix(in srgb,var(--bg) 92%,transparent);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px #0006}.layout{height:calc(100dvh - 184px);padding-bottom:76px}.layout>:is(.panel,.scene,.evidence){overflow:auto}.ir-sensor{align-self:center;position:relative;width:95px;padding:9px;border:2px solid var(--amber);border-radius:12px;font-size:11px;font-weight:800;transform:rotate(-10deg)}.ir-sensor i{position:absolute;left:86px;top:23px;width:100px;height:55px;background:linear-gradient(90deg,color-mix(in srgb,var(--amber) 32%,transparent),transparent);clip-path:polygon(0 45%,100% 0,100% 100%)}.ir-sensor.active{box-shadow:0 0 18px color-mix(in srgb,var(--amber) 65%,transparent)}.cards{display:flex;gap:10px;min-width:0}.sample{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}.sample .temp{font-size:24px;color:var(--cyan);font-weight:800}.fairness{display:flex;gap:5px;flex-wrap:wrap}.fairness span{font-size:12px;border:1px solid var(--line);padding:5px;border-radius:99px}.fairness .ok{color:var(--green)}.fairness .bad{color:var(--red)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;max-width:min(700px,94vw)}@media(max-width:1000px){.layout{grid-template-columns:1fr 1fr}.panel{grid-row:2}.evidence{grid-column:2}.scene{grid-column:1/-1}.footer-actions{grid-column:1/-1}}@media(max-width:640px){.top{padding-inline:8px}.top h1{font-size:15px}.top a{font-size:0}.top a:before{content:'←';font-size:20px}.tabs,.sticky{padding-inline:8px}.layout{display:flex;flex-direction:column;height:auto;padding:0 8px 90px}.sticky{position:sticky;top:65px;z-index:4;background:var(--bg);display:grid;grid-template-columns:1fr 1fr;overflow:visible}.pill{white-space:nowrap;min-width:0;font-size:12px}.panel{order:2}.scene{order:1}.evidence{order:3}.apparatus{min-height:160px;padding-inline:5px;gap:8px}.chart{height:140px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;overflow:visible}.sample{min-width:0;padding:5px;font-size:11px}.sample .temp{font-size:16px}.sample select{padding:3px;max-width:100%}.footer-actions{position:fixed;left:0;right:0;bottom:0;transform:none;z-index:7;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));background:var(--bg)}button{min-height:46px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
