@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/roboto-latin-300-normal-CCzlftfr.woff2)format("woff2"),url(/assets/roboto-latin-300-normal-Dqn3NW0Y.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-latin-400-normal-BqEyEoaF.woff2)format("woff2"),url(/assets/roboto-latin-400-normal-D27F5sTu.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-latin-500-normal-7RbcRiD8.woff2)format("woff2"),url(/assets/roboto-latin-500-normal-fsTFPL3E.woff)format("woff")}:root{font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f3ee;--surface:#fefdf9;--variant:#eae8e0;--ink:#172c28;--muted:#64726b;--primary:#234c43;--on-primary:#fff;--primary-container:#dce9df;--outline:#7c8880;--outline-variant:#dddcd2;--copper:#ca8a60;--error:#9b4234;--shadow:0 12px 50px #172c2820;background:var(--bg);color:var(--ink);font-family:Roboto,Arial,sans-serif;font-size:16px;line-height:1.5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121b19;--surface:#1b2824;--variant:#2a3831;--ink:#e7ebe3;--muted:#b0bbb2;--primary:#a9cabc;--on-primary:#123229;--primary-container:#304f41;--outline:#788b7f;--outline-variant:#3f4b42;--copper:#e0a579;--error:#ffb4a4;--shadow:0 12px 50px #0008}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.44}input:disabled,select:disabled{opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--primary);outline-offset:3px}input:focus-visible,select:focus-visible{outline-offset:-2px}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;font-size:2rem;font-weight:500;line-height:1.3}h2{letter-spacing:-.6px;font-size:1.56rem;font-weight:500;line-height:1.3}h3{font-size:1.25rem;font-weight:500;line-height:1.4}small{font-size:.75rem;line-height:1.4}a{color:var(--primary)}.muted{color:var(--muted);font-size:.875rem}.error-text{color:var(--error)}.stack{flex-direction:column;gap:14px;display:flex}.small-gap{gap:8px}.space-top{margin-top:16px}.full{width:100%}.row{align-items:center;gap:12px;display:flex}.grow{flex:1;min-width:0}.end{justify-content:flex-end}.wrap{flex-wrap:wrap}.hidden,[hidden]{display:none!important}.screen{flex-direction:column;gap:20px;padding:22px 22px 32px;display:flex}.app{max-width:560px;min-height:100dvh;padding-bottom:calc(90px + env(safe-area-inset-bottom));margin:0 auto}.home{padding-top:max(22px,env(safe-area-inset-top));gap:16px}.header{align-items:center;gap:12px;padding:12px 0 10px;display:flex}.header .grow{min-width:0}.tagline{margin-top:5px}.connection{background:var(--variant);text-align:left;border:0;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;max-width:160px;min-height:48px;padding:12px 13px;font-size:.75rem;display:flex}.dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:6px;height:6px}.dot.connected{background:var(--primary)}.badge{background:var(--primary-container);color:var(--primary);border-radius:999px;align-self:flex-start;padding:8px 14px;font-size:.75rem;font-weight:500}.hero{grid-template-columns:42% 58%;align-items:center;min-height:160px;display:grid}.measured{letter-spacing:-3px;margin:7px 0;font-size:4rem;font-weight:300;line-height:1.1}.state-title{overflow-wrap:anywhere;font-size:1rem;font-weight:500;line-height:1.5}.model{place-items:center;min-width:0;height:160px;display:grid;position:relative}.model-disc{aspect-ratio:1;background:var(--variant);opacity:.45;border-radius:50%;width:min(175px,100%)}.model-fallback,.model-canvas{object-fit:contain;border-radius:24px;width:100%;height:100%;position:absolute;inset:0}.model-canvas canvas{width:100%;height:100%;display:block}.panel{background:var(--surface);border:0;border-radius:30px;flex-direction:column;gap:14px;min-width:0;padding:22px;display:flex}.target{letter-spacing:-1px;font-size:2rem;font-weight:500;line-height:1.3}.temperature-row .grow{min-width:0}.circle-button{border:1px solid var(--outline);background:0 0;border-radius:50%;flex:0 0 48px;place-items:center;width:48px;height:48px;padding:0;font-size:1.45rem;display:grid}.range{width:100%;min-height:48px;accent-color:var(--primary);cursor:pointer;margin:0}.button{text-align:center;background:var(--primary);min-height:48px;color:var(--on-primary);border:1px solid #0000;border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.875rem;font-weight:500;line-height:1.5;display:inline-flex}.button.primary.large{min-height:56px}.button.outlined{border-color:var(--outline);color:var(--primary);background:0 0}.button.tonal{background:var(--primary-container);color:var(--primary)}.button.text{color:var(--primary);background:0 0;align-self:flex-start;padding:10px 12px}.button.danger{color:var(--error)}.field-group{flex-direction:column;gap:5px;min-width:0;display:flex}.field{border:1px solid var(--outline);background:0 0;border-radius:16px;align-items:center;min-width:0;min-height:58px;margin-top:9px;padding:14px 16px 10px;display:flex;position:relative}.field:focus-within{border:2px solid var(--primary);padding:13px 15px 9px}.field-label{background:var(--surface);color:var(--muted);max-width:calc(100% - 28px);padding:0 5px;font-size:.75rem;line-height:1.4;position:absolute;top:-10px;left:13px}.field.invalid{border-color:var(--error)}.field-line{align-items:center;gap:8px;width:100%;display:flex}.field-line input{background:0 0;border:0;width:100%;min-width:0;padding:0;font-size:1rem;line-height:1.5}.field-line input:focus{outline:0}.field-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;display:grid}.select-field{padding:14px 10px 10px}.select-field select{cursor:pointer;background:0 0;border:0;width:100%;min-height:32px;padding-right:20px;font-size:1rem}.select-field option{background:var(--surface);color:var(--ink)}.chips{scrollbar-width:thin;align-items:stretch;gap:8px;padding:3px 0;display:flex;overflow-x:auto}.chip{border:1px solid var(--outline);background:0 0;border-radius:12px;flex-shrink:0;min-height:48px;padding:8px 14px;font-size:.875rem}.chip[aria-pressed=true]{background:var(--primary-container);color:var(--primary);border-color:#0000;font-weight:500}.nav{width:min(100%,560px);padding:8px 20px calc(8px + env(safe-area-inset-bottom));background:var(--bg);z-index:5;justify-content:space-around;gap:0;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav button{min-width:0;color:var(--muted);overflow-wrap:anywhere;background:0 0;border:0;border-radius:18px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;min-height:64px;padding:10px 3px;font-size:.75rem;line-height:1.35;display:flex}.nav button[aria-selected=true]{color:var(--primary)}.nav button:hover,.button.text:hover,.circle-button:hover:not(:disabled){background:var(--variant)}.favorite{width:48px;height:48px;color:var(--primary);background:0 0;border:0;border-radius:50%;flex-shrink:0;font-size:1.5rem}.recipe-temperature{font-size:1.56rem;font-weight:500;line-height:1.3}.toggle{cursor:pointer;align-items:center;gap:12px;min-height:52px;font-size:.875rem;display:flex}.toggle>span:first-child{flex:1;min-width:0}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.switch{border:2px solid var(--outline);background:var(--variant);border-radius:999px;flex-shrink:0;width:52px;height:32px;display:block;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:18px;height:18px;transition:transform .15s,width .15s;position:absolute;top:5px;left:5px}.toggle input:checked+.switch{background:var(--primary);border-color:var(--primary)}.toggle input:checked+.switch:after{background:var(--on-primary);width:24px;height:24px;top:2px;left:2px;transform:translate(20px)}.toggle input:focus-visible+.switch{outline:3px solid var(--primary);outline-offset:3px}.toggle.disabled{opacity:.44;cursor:default}.section-action{flex-direction:column;gap:4px;display:flex}.history-item{text-align:left;cursor:pointer;color:inherit;border:0;width:100%}.history-meta{align-items:center;gap:9px;display:flex}.outcome-dot{background:var(--muted);border-radius:50%;flex:none;width:7px;height:7px}.outcome-dot.done{background:var(--primary)}.outcome-dot.error{background:var(--error)}.chart{width:100%;height:180px;display:block;overflow:visible}.chart-labels{color:var(--muted);justify-content:space-between;gap:12px;font-size:.75rem;display:flex}.timeline-row{grid-template-columns:auto 1fr;align-items:start;gap:12px;display:grid}.timer-value{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:500}.snackbar{bottom:calc(94px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);box-shadow:var(--shadow);z-index:30;border:0;border-radius:14px;align-items:center;gap:16px;width:max-content;max-width:calc(100% - 32px);padding:16px 18px;font-size:.875rem;display:flex;position:fixed;left:50%;transform:translate(-50%)}.snackbar button{color:inherit;background:0 0;border:0;min-width:32px;min-height:32px;font-size:1.2rem}.skip-link{z-index:100;background:var(--surface);padding:12px;position:fixed;top:-100px;left:10px}.skip-link:focus{top:10px}dialog{color:var(--ink);background:0 0;border:0;width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);padding:0;overflow:visible}dialog.wide{width:560px}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006}.modal-shell{background:var(--surface);box-shadow:var(--shadow);border-radius:28px;flex-direction:column;gap:20px;max-height:calc(100dvh - 48px);padding:24px;display:flex}.modal-shell h2{font-size:1.5rem}.modal-body{flex-direction:column;gap:14px;min-height:0;padding:3px 1px;display:flex;overflow-y:auto}.modal-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.modal-actions .button{align-self:auto}.device-card{border:1px solid var(--outline-variant);border-radius:22px;flex-direction:column;gap:10px;padding:18px;display:flex}.device-card .field-label{background:var(--surface)}.browser-hint{background:var(--variant);border-radius:18px;padding:14px;font-size:.875rem}.file-input{clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.subtle{color:var(--muted);font-size:.75rem}.loading{background:var(--primary-container);height:3px;overflow:hidden}.loading:after{content:"";background:var(--primary);width:30%;height:100%;animation:1.3s infinite alternate loading;display:block}.date-line{font-variant-numeric:tabular-nums}.app-status{padding:12px 22px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes loading{to{transform:translate(230%)}}@media (width<=380px){.header{flex-direction:column;align-items:flex-start}.connection{max-width:100%}.hero{grid-template-columns:60% 40%;min-height:210px}.measured{font-size:2.75rem}.model{height:210px}.target{font-size:1.25rem}.nav{padding-left:8px;padding-right:8px}.screen{padding-left:18px;padding-right:18px}.panel{padding:18px}.snackbar{width:calc(100% - 24px)}.field-label{max-width:none;padding:0;font-size:.75rem;line-height:1.5;display:block;position:static;background:0 0!important}.field{flex-direction:column;align-items:stretch;gap:5px;display:flex}.select-field select{white-space:normal}.modal-shell{padding:20px}.button{padding-inline:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root[data-motion=false] *{transition:none!important;animation:none!important}.select-field{min-height:64px;padding:18px 16px 12px;display:block}.select-field:focus-within{padding:17px 15px 11px}.select-field select{z-index:2;opacity:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.select-value{overflow-wrap:anywhere;pointer-events:none;padding-right:24px;font-size:1rem;line-height:1.5;display:block}.select-field:after{content:"";border-bottom:2px solid var(--muted);border-right:2px solid var(--muted);pointer-events:none;width:8px;height:8px;position:absolute;top:50%;right:18px;transform:translateY(-65%)rotate(45deg)}.select-field .field-label{pointer-events:none}
