:root{--ink:#0e0b0a;--ink-2:#16110f;--ink-3:#1f1815;--edge:#2b211d;--edge-2:#3a2c26;--bone:#ede6dc;--ash:#a99f94;--ash-dim:#6f665d;--line-ghost:#6b6157;--ember:#e85d1a;--amber:#f9a828;--coal:#7a1d0e;--run:#f9a828;--pause:#d9a441;--stop:#b8524a;--r-sm:8px;--r-md:14px;--r-lg:22px;--shadow:0 18px 40px -20px #000000e6;--font-display:"Chakra Petch", system-ui, sans-serif;--font-mono:"Azeret Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(120% 60% at 50% -10%, #1a1210 0%, var(--ink) 55%), var(--ink);color:var(--bone);font-family:var(--font-display);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}.app{background:linear-gradient(#f9a82805,#0000 30%);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.hdr{padding:max(16px, env(safe-area-inset-top)) 18px 12px;justify-content:space-between;align-items:center;gap:12px;display:flex}.hdr-profile{flex-direction:column;min-width:0;display:flex}.hdr-eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--ash-dim);font-size:11px;font-weight:600}.hdr-name{letter-spacing:-.01em;align-items:baseline;gap:8px;font-size:22px;font-weight:700;display:flex}.hdr-name .kind{color:var(--ash);letter-spacing:0;font-size:12px;font-weight:500}.hdr-right{flex:none;align-items:center;gap:12px;display:flex}.kiln-picker{min-width:0;position:relative}.kiln-trigger{cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;padding:2px;display:flex}.kiln-name{letter-spacing:-.01em;color:var(--bone);align-items:center;gap:6px;font-size:22px;font-weight:700;line-height:1.1;display:flex}.kiln-name .chev{color:var(--ash-dim);font-size:13px;transform:translateY(1px)}.kiln-sub{letter-spacing:.22em;text-transform:uppercase;color:var(--ash-dim);font-size:11px;font-weight:600}.kiln-sub.on{color:var(--ash)}.kiln-sub.off{color:var(--stop)}.kp-scrim{z-index:30;position:fixed;inset:0}.kp-menu{z-index:31;background:var(--ink-2);border:1px solid var(--edge-2);border-radius:14px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 18px 40px #00000080}.kp-item{width:100%;color:var(--bone);cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:10px;font-size:15px;display:flex}.kp-item:hover,.kp-item.sel{background:var(--ink-3)}.kp-item-name{text-align:left;flex:auto;font-weight:600}.kp-item-state{text-transform:uppercase;letter-spacing:.12em;color:var(--ash-dim);font-size:11px}.kp-dot{background:var(--ash-dim);border-radius:50%;flex:none;width:9px;height:9px}.kp-dot.on{background:var(--run);box-shadow:0 0 8px color-mix(in srgb, var(--run) 60%, transparent)}.kp-dot.off{background:var(--stop)}.profile-picker{flex:none;position:relative}.profile-trigger{text-align:right;flex-direction:column;align-items:flex-end;gap:1px;padding:2px;display:flex}.pp-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--ash-dim);font-size:10px;font-weight:600}.pp-current{color:var(--bone);align-items:center;gap:5px;max-width:46vw;font-size:15px;font-weight:600;display:flex}.pp-current>:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pp-current .chev{color:var(--ash-dim);flex:none;font-size:12px}.pp-menu{z-index:31;background:var(--ink-2);border:1px solid var(--edge-2);border-radius:14px;min-width:268px;max-width:88vw;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 40px #00000080}.pp-menu-head{letter-spacing:.16em;text-transform:uppercase;color:var(--ash-dim);padding:6px 10px 8px;font-size:11px}.pp-item{border-radius:10px;align-items:center;gap:8px;padding:4px 4px 4px 8px;display:flex}.pp-item.sel{background:var(--ink-3)}.pp-select{text-align:left;flex:auto;grid-template-columns:auto 1fr;align-items:center;gap:3px 9px;min-width:0;padding:6px 4px;display:grid}.pp-select:disabled{cursor:default;opacity:.55}.pp-dot{background:var(--ash-dim);border-radius:50%;grid-row:1/span 2;width:9px;height:9px}.pp-dot.on{background:var(--run);box-shadow:0 0 8px color-mix(in srgb, var(--run) 60%, transparent)}.pp-name{min-width:0;color:var(--bone);align-items:center;gap:8px;font-weight:600;display:flex}.pp-name>:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pp-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--amber);border:1px solid #f9a82866;border-radius:999px;flex:none;padding:1px 6px;font-size:9px}.pp-sub{font-family:var(--font-mono);color:var(--ash-dim);grid-column:2;font-size:11px}.pp-actions{flex:none;gap:4px;display:flex}.pp-mini{color:var(--ash);border:1px solid var(--edge-2);background:var(--ink-3);border-radius:8px;padding:7px 9px;font-size:12px;font-weight:600}.pp-mini:disabled{opacity:.4;cursor:default}.pp-mini.ghost{background:0 0;border-color:#0000}.pp-rename{align-items:center;gap:6px;padding:6px 4px 6px 8px;display:flex}.pp-input{min-width:0;color:var(--bone);background:var(--ink);border:1px solid var(--edge-2);border-radius:8px;flex:auto;padding:8px 10px;font-family:inherit;font-size:14px}.pp-input:focus{border-color:var(--amber);outline:none}.icon-btn{border:1px solid var(--edge-2);background:var(--ink-3);width:42px;height:42px;color:var(--ash);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex}.icon-btn.on{color:var(--amber);border-color:#f9a82866}.status-pill{letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--edge-2);background:var(--ink-3);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:8px 14px 8px 11px;font-size:14px;font-weight:600;display:inline-flex}.dot{background:var(--ash-dim);border-radius:50%;width:8px;height:8px}.status-pill.run .dot{background:var(--run);animation:1.6s infinite pulse}.status-pill.pause .dot{background:var(--pause)}.status-pill.cool{color:var(--amber);border-color:#f9a82866}.status-pill.cool .dot{background:var(--amber);animation:2.6s infinite pulse}.status-pill.run{border-color:#f9a82866}@keyframes pulse{0%{box-shadow:0 0 #f9a82899}70%{box-shadow:0 0 0 7px #f9a82800}to{box-shadow:0 0 #f9a82800}}.readout-sub .heater-cell{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-width:7.5em;padding:2px 10px;transition:background .25s,border-color .25s;display:inline-flex}.readout-sub .heater-cell b{color:var(--ash-dim);justify-content:flex-start;align-items:center;gap:7px;min-width:3.2em;display:inline-flex}.readout-sub .heater-cell .dot{transition:background .25s}.readout-sub .heater-cell.on{background:color-mix(in srgb, var(--amber) 15%, transparent);border-color:color-mix(in srgb, var(--amber) 45%, transparent)}.readout-sub .heater-cell.on .lab,.readout-sub .heater-cell.on b{color:var(--amber)}.readout-sub .heater-cell.on .dot{background:var(--amber);box-shadow:0 0 8px var(--amber);animation:1.6s infinite pulse}.readout{text-align:center;padding:6px 18px 2px}.readout-pv{font-family:var(--font-mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(56px,20vw,96px);font-weight:600;line-height:.95;transition:color .4s linear,text-shadow .4s linear}.readout-pv .deg{vertical-align:top;-webkit-text-fill-color:var(--ash);color:var(--ash);margin-left:2px;font-size:.34em}.readout-secondary{font-family:var(--font-mono);justify-content:center;align-items:flex-start;gap:36px;margin-top:8px;display:flex}.readout-sec-cell{flex-direction:column;align-items:center;min-width:5.5em;display:flex}.readout-sec-cell .lab{color:var(--ash-dim);letter-spacing:.14em;text-transform:uppercase;font-size:13px;font-family:var(--font-display);margin-bottom:2px}.readout-sec-val{color:var(--bone);font-variant-numeric:tabular-nums;letter-spacing:-.03em;align-items:flex-start;font-size:clamp(30px,11vw,50px);font-weight:600;line-height:1.05;display:inline-flex}.readout-sec-val .unit{color:var(--ash);letter-spacing:0;margin-top:.1em;margin-left:2px;font-size:.34em;font-weight:600}.readout-sec-sub{color:var(--ash);font-variant-numeric:tabular-nums;margin-top:3px;font-size:15px;font-weight:500}.readout-sub{font-family:var(--font-mono);color:var(--ash-dim);justify-content:center;align-items:center;gap:18px;margin-top:10px;font-size:18px;display:flex}.readout-sub b{color:var(--bone);font-variant-numeric:tabular-nums;font-weight:600}.readout-sub .unit{color:var(--ash);font-weight:500}.readout-sub .lab{color:var(--ash-dim);letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-family:var(--font-display);margin-right:5px}.readout-sub .readout-cell{white-space:nowrap;align-items:center;display:inline-flex}.readout-sub .seg-cell{min-width:5.5em}.readout-sub .left-cell{min-width:6.5em}.chart-wrap{flex:1;min-height:240px;padding:8px 6px 2px;display:flex;position:relative}.chart{flex:1;min-width:0;min-height:0;display:flex}.chart svg{touch-action:none;width:100%;height:100%;display:block}.grid-line{stroke:var(--edge);stroke-width:1px}.grid-label{fill:var(--ash-dim);font-family:var(--font-mono);font-size:26px}.axis-now{stroke:#ede6dc40;stroke-width:1px;stroke-dasharray:2 4}.heater-track{fill:#6f665d2e}.heater-band{fill:var(--amber);opacity:.85}.node{cursor:grab}.node-hit{fill:#0000}.chip-txt{fill:var(--bone);font-family:var(--font-mono);font-size:12px;font-weight:500}.chip-txt.slope{fill:var(--amber)}.chip-bg{fill:var(--ink-3);stroke:var(--edge-2)}.chip-bg.sel{stroke:var(--amber)}.segs{scrollbar-width:none;gap:6px;padding:10px 18px 4px;display:flex;overflow-x:auto}.segs::-webkit-scrollbar{display:none}.seg{border-radius:var(--r-sm);background:var(--ink-2);border:1px solid var(--edge);text-align:left;flex-direction:column;flex:none;gap:2px;min-width:64px;padding:8px 11px;display:flex}.seg.active{border-color:var(--amber);background:#f9a8280f}.seg.done{opacity:.5}.seg-n{letter-spacing:.14em;color:var(--ash-dim);text-transform:uppercase;font-size:9px}.seg-t{font-family:var(--font-mono);font-size:15px;font-weight:600}.seg-d{font-family:var(--font-mono);color:var(--ash);font-size:10px}.controls{padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(180deg, transparent, var(--ink) 34%);gap:10px;display:flex;position:sticky;bottom:0}.btn{border-radius:var(--r-md);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--edge-2);background:var(--ink-3);height:60px;color:var(--bone);flex:1;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:600;transition:transform 80ms,filter .15s;display:flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.primary{color:#1a0f06;background:linear-gradient(#f9a828,#e85d1a);border-color:#0000;flex:1.6;box-shadow:0 10px 30px -10px #e85d1a99}.btn.danger{color:var(--stop);border-color:#b8524a66}.sheet-scrim{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#06040399;animation:.2s fade;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{background:var(--ink-2);border-top:1px solid var(--edge-2);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:480px;padding:14px 18px calc(20px + env(safe-area-inset-bottom));z-index:21;box-shadow:var(--shadow);animation:.24s cubic-bezier(.2,.9,.3,1) rise;position:fixed;bottom:0;left:50%;transform:translate(-50%)}@keyframes rise{0%{transform:translate(-50%,100%)}}.sheet-grab{background:var(--edge-2);border-radius:2px;width:36px;height:4px;margin:0 auto 12px}.sheet h3{margin:0 0 2px;font-size:17px;font-weight:700}.sheet-head{justify-content:space-between;align-items:baseline;display:flex}.link-danger{color:var(--stop);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:600}.seg-ops{align-items:center;gap:16px;display:flex}.seg-ops .link,.seg-ops .link-danger{letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:600}.seg-ops .seg-move{letter-spacing:0;font-size:15px;line-height:1}.seg-ops button:disabled{opacity:.3;pointer-events:none}.text-in{border-radius:var(--r-md);border:1px solid var(--edge-2);background:var(--ink-3);width:100%;height:48px;color:var(--bone);font-family:var(--font-display);padding:0 14px;font-size:17px;font-weight:600}.text-in:focus{border-color:var(--amber);outline:none}.menu-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;display:grid}.menu-grid .btn{height:50px;font-size:13px}.seg.add{border-style:dashed;border-color:var(--edge-2);background:0 0;justify-content:center;align-items:center}.sheet .sub{color:var(--ash);font-size:12px;font-family:var(--font-mono);margin-bottom:14px}.field{margin-bottom:12px}.field-lab{letter-spacing:.14em;text-transform:uppercase;color:var(--ash-dim);justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:11px;display:flex}.field-lab .hint{text-transform:none;letter-spacing:0;font-family:var(--font-mono)}.stepper{border:1px solid var(--edge-2);border-radius:var(--r-md);background:var(--ink-3);align-items:stretch;display:flex;overflow:hidden}.stepper button{width:54px;color:var(--bone);background:#ffffff05;font-size:24px;font-weight:500}.stepper button:active{background:#f9a8281f}.stepper input{text-align:center;min-width:0;color:var(--bone);font-family:var(--font-mono);font-variant-numeric:tabular-nums;background:0 0;border:none;flex:1;font-size:26px;font-weight:600}.stepper input:focus{outline:none}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input[type=number]{appearance:textfield}.stepper .unit{color:var(--ash);font-family:var(--font-mono);align-self:center;padding-right:16px;font-size:14px}.field.locked{opacity:.5}.sheet-actions{gap:10px;margin-top:16px;display:flex}.sheet-actions .btn{height:50px}.picker{scrollbar-width:none;gap:8px;padding:4px 12px 2px;display:flex;overflow-x:auto}.picker::-webkit-scrollbar{display:none}.pick{border:1px solid var(--edge);background:var(--ink-2);color:var(--ash);border-radius:999px;flex:none;padding:8px 14px;font-size:13px;font-weight:500}.pick.on{color:var(--bone);border-color:var(--edge-2);background:var(--ink-3)}.edit-banner{border-radius:var(--r-sm);color:var(--amber);background:#f9a82814;border:1px solid #f9a82840;align-items:center;gap:8px;margin:2px 16px 4px;padding:9px 14px;font-size:12px;display:flex}.edit-banner.warn{color:var(--pause);background:#d9a44114;border-color:#d9a4414d}.edit-banner.alarm{color:var(--stop);background:#b8524a1a;border-color:#b8524a66;animation:1.4s ease-in-out infinite alarmpulse}@keyframes alarmpulse{50%{background:#b8524a33}}.toggle{background:var(--ink-3);border:1px solid var(--edge-2);border-radius:999px;width:46px;height:26px;transition:background .15s;position:relative}.toggle .knob{background:var(--ash);border-radius:50%;width:20px;height:20px;transition:transform .16s,background .16s;position:absolute;top:2px;left:2px}.toggle.on{border-color:var(--amber);background:#f9a82840}.toggle.on .knob{background:var(--amber);transform:translate(20px)}.sheet.tall{flex-direction:column;max-height:86vh;display:flex}.hist-list{flex-direction:column;gap:8px;margin:4px 0;display:flex;overflow-y:auto}.hist-row{border-radius:var(--r-sm);background:var(--ink-3);border:1px solid var(--edge);align-items:center;gap:12px;padding:10px;display:flex}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.fault-stack{flex-direction:column;gap:6px;padding:4px 16px 0;display:flex}.fault{border-radius:var(--r-sm);align-items:center;gap:9px;padding:10px 14px;font-size:13px;font-weight:500;line-height:1.25;display:flex}.fault-ic{font-size:14px}.fault.critical{color:#ffd7cf;background:#b8524a29;border:1px solid #b8524a80;animation:1.4s ease-in-out infinite alarmpulse}.fault.warn{color:var(--pause);background:#d9a4411a;border:1px solid #d9a4414d}.fault.info{color:var(--ash);background:var(--ink-2);border:1px solid var(--edge)}.chart-wrap{position:relative}.chart-fit{background:var(--ink-3);border:1px solid var(--edge-2);color:var(--bone);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;position:absolute;top:12px;right:12px}.edit-banner.warn{border-color:var(--amber);color:var(--amber);background:color-mix(in srgb, var(--amber) 8%, transparent)}.node-label-bg{fill:#0e0b0ad1;stroke:var(--edge-2)}.node-label{fill:var(--bone);font-family:var(--font-mono);font-size:24px;font-weight:600}.callout-bg{fill:var(--ink-3);stroke:var(--amber);stroke-opacity:.5}.callout-title{fill:var(--ash-dim);font-family:var(--font-display);letter-spacing:.16em;font-size:9px}.callout-l1{fill:var(--bone);font-family:var(--font-mono);font-size:12px;font-weight:600}.callout-l2{fill:var(--amber);font-family:var(--font-mono);font-size:11px}.seg-table{flex-direction:column;gap:4px;max-height:34vh;padding:6px 14px;display:flex;overflow-y:auto}.seg-row{border-radius:var(--r-sm);background:var(--ink-2);border:1px solid var(--edge);text-align:left;font-family:var(--font-mono);color:var(--bone);grid-template-columns:24px 52px 1fr 1fr 1fr;align-items:center;gap:8px;padding:11px 12px;font-size:14px;display:grid}.seg-row.sel{border-color:var(--amber);background:#f9a82812}.seg-row-n{color:var(--ash-dim)}.seg-row-kind{color:var(--ash);font-family:var(--font-display);font-size:12px}.seg-row-temp{font-weight:600}.seg-row-rate,.seg-row-dur{color:var(--ash);text-align:right}.edit-actions{padding:4px 16px 0}.edit-actions .btn{height:46px}.chart-wrap.edit{min-height:260px}.tabbar{padding:8px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--edge);gap:8px;display:flex}.tabbar button{border-radius:var(--r-md);background:var(--ink-2);border:1px solid var(--edge);height:48px;color:var(--ash);letter-spacing:.04em;flex:1;font-size:15px;font-weight:600}.tabbar button.on{color:var(--bone);border-color:var(--edge-2);background:var(--ink-3)}.history{flex-direction:column;flex:1;min-height:0;padding:4px 0;display:flex}.hist-list-head,.hist-detail-head{justify-content:space-between;align-items:center;gap:12px;padding:6px 18px 8px;display:flex}.hist-detail-head{justify-content:flex-start}.hist-list-head h2{margin:0;font-size:18px}.link{color:var(--ash);font-size:14px}.empty{color:var(--ash);text-align:center;padding:24px 18px;font-size:13px}.hist-list{flex-direction:column;gap:8px;padding:0 14px;display:flex;overflow-y:auto}.hist-row{border-radius:var(--r-sm);background:var(--ink-3);border:1px solid var(--edge);text-align:left;align-items:center;gap:12px;width:100%;padding:10px;display:flex}.spark{background:var(--ink);border-radius:6px;flex:none}.hist-meta{flex:1;min-width:0}.hist-top{align-items:center;gap:8px;display:flex}.hist-top b{font-size:15px;font-weight:600}.hist-tag{letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--edge-2);color:var(--ash);border-radius:999px;padding:2px 7px;font-size:9px}.hist-tag.completed{color:var(--amber);border-color:#f9a82866}.hist-stats{font-family:var(--font-mono);gap:28px;padding:2px 16px 12px;display:flex}.hist-stats span{flex-direction:column;gap:2px;display:flex}.hist-stats .lab{color:var(--ash-dim);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-family:var(--font-display)}.hist-stats b{color:var(--bone);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.hist-stats em{color:var(--ash);font-size:11px;font-style:normal}.hist-tag.stopped{color:var(--stop);border-color:#b8524a66}.hist-tag.ended_offline{color:var(--ash-dim);border-color:var(--edge-2)}.hist-tag.stale{color:var(--pause);border-color:#d9a44159}.hist-sub{font-family:var(--font-mono);color:var(--ash);margin-top:3px;font-size:11px}.hist-chev{color:var(--ash-dim);font-size:20px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.login-app{justify-content:center;align-items:center;padding:24px 18px}.login-card{border-radius:var(--r-lg);background:var(--ink-2);border:1px solid var(--edge-2);width:100%;max-width:360px;box-shadow:var(--shadow);padding:28px 22px 24px}.login-brand{letter-spacing:-.02em;margin-bottom:6px;font-size:32px;font-weight:700}.login-sub{color:var(--ash);margin:0 0 22px;font-size:14px;line-height:1.4}.login-form .field{margin-bottom:14px;display:block}.login-form .btn{width:100%;margin-top:8px}.login-error{border-radius:var(--r-sm);color:#ffd7cf;background:#b8524a24;border:1px solid #b8524a66;margin:0 0 10px;padding:10px 12px;font-size:13px}
