:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:#1d1d1f;background:#f5f5f7;color-scheme:light;letter-spacing:0;--page:#f5f5f7;--surface:#fff;--text:#1d1d1f;--muted:#737379;--line:#ddddE2;--blue:#0071e3;--green:#25824c;--pink:#b84969;--shadow:0 12px 40px #00000009}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #0071e3;outline-offset:4px}svg{width:20px;height:20px;stroke-width:1.65;flex-shrink:0}button{color:inherit}h1,h2,p{margin:0}h1,h2{font-weight:600;letter-spacing:0}h1{font-size:38px;line-height:1.16}h2{font-size:20px;line-height:1.35}[hidden]{display:none!important}.eyebrow{font-size:10px;font-weight:600;color:var(--muted);line-height:1.5;letter-spacing:0}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border:0;background:transparent;border-radius:8px;transition:background .18s;color:var(--muted)}.icon-button:hover{background:#80808012;color:var(--text)}.icon-button:active{background:#80808020}.topbar{height:70px;padding:0 max(28px,calc((100% - 1160px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--surface)}.wordmark,.login-brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600}.wordmark svg,.login-brand svg{width:23px;height:23px}.top-actions{display:flex;gap:2px}.workspace{width:100%;max-width:1216px;margin:0 auto;padding:38px 28px 0}.device-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:16px}.device-heading h1{margin-top:6px}.connection{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);white-space:nowrap}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#a4a4ab;flex-shrink:0}.connection.online{color:var(--green)}.connection.online .status-dot,.status-dot.online{background:#30a05b}.connection.stale .status-dot{background:#b77b19}.main-grid{--camera-basis-gap:38px;display:grid;grid-template-columns:min(calc((100% - var(--camera-basis-gap)) * 1.85 / 2.85 * .875),calc((100% - var(--camera-basis-gap) - 260px) * .875)) minmax(0,1fr);gap:36px;align-items:start}.camera-section{min-width:0;--camera-width:100%}.camera-stage{position:relative;width:var(--camera-width);max-width:100%;aspect-ratio:14/9;background:#0c0c0d;border-radius:8px;overflow:hidden;isolation:isolate}.camera-stage img{display:block;width:100%;height:100%;object-fit:contain;color:transparent}.camera-stage img:not([src]){visibility:hidden}.camera-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:#131315;color:#a0a0a7;font-size:13px}.camera-placeholder>svg{width:28px;height:28px;stroke-width:1.3}.camera-caption{display:flex;align-items:center;justify-content:space-between;width:var(--camera-width);max-width:100%;min-height:50px}.live-label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.camera-actions{display:flex;gap:3px;margin-right:-8px}.camera-actions .icon-button{width:40px;height:44px;flex-basis:40px}.print-section{min-width:0}.section-label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-bottom:12px}.section-label svg{width:16px;height:16px}.print-section h2{font-size:26px;line-height:1.25;overflow-wrap:anywhere}.job-name{font-size:13px;line-height:1.6;color:var(--muted);margin-top:9px;min-height:21px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.progress-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:24px;font-variant-numeric:tabular-nums}.progress-heading>div{font-size:36px;font-weight:500}.percent-sign{font-size:18px;color:var(--muted);margin-left:2px}.progress-heading>span{font-size:12px;color:var(--muted);text-align:right}.progress-track{height:4px;border-radius:2px;background:var(--line);overflow:hidden;margin-top:8px}.progress-track>span{display:block;width:0;height:100%;background:var(--blue);transition:width 1s ease}.job-details{display:flex;justify-content:space-between;gap:15px;margin-top:18px}.job-details>div{display:flex;flex-direction:column;gap:7px}.job-details>div:last-child{text-align:right}.job-details span{font-size:11px;color:var(--muted)}.job-details strong{font-weight:500;font-size:14px;font-variant-numeric:tabular-nums}.printer-alert{margin-top:18px;font-size:12px;line-height:1.5;color:#bb4838;border-left:2px solid currentColor;padding-left:10px}.temperature-section{margin-top:26px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-heading h2{font-size:16px;font-weight:600}.section-heading>span{font-size:11px;color:var(--muted);text-align:right}.section-heading>svg{color:var(--muted);width:17px;height:17px}.temperature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.temperature-item{padding:23px 25px;background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0;box-shadow:var(--shadow)}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px}.metric-top>span:first-child{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500}.nozzle .metric-top svg{color:var(--pink)}.bed .metric-top svg{color:var(--blue)}.metric-state{font-size:10px;color:var(--muted);text-align:right}.temperature-reading{display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:12px;min-height:48px}.temperature-reading>div{white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.temperature-reading strong{font-size:40px;line-height:1.15;font-weight:500}.temperature-reading span{font-size:17px;color:var(--muted);margin-left:4px}.temperature-reading canvas{width:120px;height:40px;max-width:35%;flex-shrink:1}.temperature-target{font-size:11px;color:var(--muted);margin-top:9px}.details-section{margin-top:32px}.details-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detail-item{display:flex;align-items:center;gap:13px;padding:22px 0;min-width:0}.detail-item>svg{color:var(--muted);width:20px;height:20px}.detail-item>div{display:flex;flex-direction:column;gap:7px;min-width:0}.detail-item span{font-size:11px;color:var(--muted)}.detail-item strong{font-weight:500;font-size:13px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.filament-section{display:flex;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.subtle-label{font-size:11px;color:var(--muted)}.filaments{display:flex;flex-wrap:wrap;gap:18px}.filament{display:flex;align-items:center;gap:8px;font-size:12px}.filament-swatch{height:16px;width:16px;border-radius:50%;border:1px solid #8884;box-shadow:inset 0 0 0 2px #ffffff66}.footer{display:flex;justify-content:space-between;gap:12px;padding:28px 0 calc(25px + env(safe-area-inset-bottom));font-size:10px;color:var(--muted)}.footer-divider{margin:0 6px;color:#b0b0b7}.footer>span:last-child{display:flex;align-items:center;gap:5px}.footer svg{width:11px;height:11px}.login-screen{min-height:100svh;display:flex;flex-direction:column;padding:max(26px,env(safe-area-inset-top)) max(26px,env(safe-area-inset-left)) max(26px,env(safe-area-inset-bottom));background:var(--page)}.login-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 0 55px;min-width:0}.face-mark{width:88px;height:88px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:36px;box-shadow:var(--shadow)}.face-mark svg{height:42px;width:42px;stroke-width:1.25;color:var(--text)}.login-main h1{font-size:58px;margin-top:12px}.login-model{font-size:15px;color:var(--muted);margin-top:12px}.primary{margin-top:38px;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;min-width:180px;max-width:100%;padding:12px 24px;border:0;border-radius:8px;background:var(--blue);color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px 12px #0071e320}.primary:hover{filter:brightness(1.06)}.primary svg{width:17px;height:17px}.login-error{margin-top:18px;min-height:38px;max-width:300px;color:#b44343;font-size:12px;line-height:1.6}.login-footer{display:flex;justify-content:center;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.login-footer svg{width:13px;height:13px}dialog{border:1px solid var(--line);border-radius:8px;max-width:min(370px,calc(100vw - 32px));width:370px;padding:20px 24px 24px;background:var(--surface);color:var(--text);box-shadow:0 24px 90px #0003}dialog::backdrop{background:#0005;backdrop-filter:blur(8px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.dialog-heading h2{font-size:21px}.dialog-heading button{margin-right:-12px}.account-row{display:flex;align-items:center;gap:14px;margin:8px 0 28px}.account-row>svg{color:var(--blue)}.account-row>div{display:flex;flex-direction:column;gap:7px}.account-row strong{font-size:14px;font-weight:500}.account-row span{font-size:12px;color:var(--muted)}.logout-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--page);font-size:13px}.logout-button svg{width:17px;height:17px}#toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;z-index:1500;background:var(--text);color:var(--surface);padding:12px 18px;border-radius:8px;font-size:12px;box-shadow:0 8px 40px #0002}.camera-stage.immersive,.camera-stage:fullscreen{position:fixed;inset:0;width:100%;height:100dvh;max-height:none;aspect-ratio:auto;z-index:1000;border-radius:0;background:#000;cursor:zoom-out}.camera-stage.immersive> :not(img),.camera-stage:fullscreen> :not(img){display:none!important}body.immersive-open{overflow:hidden}.camera-stage.immersive img,.camera-stage:fullscreen img{object-fit:contain}.no-motion *{transition:none!important}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.printer-alert{overflow-wrap:anywhere}.printer-alert p+p{margin-top:10px}
.login-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px}.login-heading>.icon-button{margin-right:-10px}
.theme-menu{position:fixed;z-index:1200;width:224px;max-width:calc(100% - 24px);padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:0 12px 32px #0000001a}
.theme-menu button{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:5px;background:transparent;text-align:left;font-size:13px;line-height:1.4}.theme-menu button>svg{width:17px;height:17px;color:var(--muted)}.theme-menu button>span{flex:1}.theme-menu button:hover,.theme-menu button[aria-checked=true]{background:#80808010}.theme-menu button>.theme-check{visibility:hidden;color:var(--blue);width:16px;height:16px}.theme-menu button[aria-checked=true]>.theme-check{visibility:visible}.theme-menu button:focus-visible{outline-offset:-3px}
.camera-stage:not(.immersive):not(:fullscreen){background:transparent}
html[data-theme=dark]{color-scheme:dark;--page:#101012;--surface:#1b1b1f;--text:#e3e3e8;--muted:#a0a0aa;--line:#2d2d33;--blue:#7da9e2;--green:#79b894;--pink:#d494aa;--shadow:inset 0 1px 0 #ffffff04;background:var(--page);color:var(--text)}
html[data-theme=dark] .topbar{background:#151517;border-bottom-color:#28282d}
html[data-theme=dark] .temperature-item{background:#19191d;border-color:#2b2b31;box-shadow:inset 0 1px 0 #ffffff04}
html[data-theme=dark] .temperature-reading strong,html[data-theme=dark] .progress-heading>div{color:#dddde4}
html[data-theme=dark] .primary{background:#285c9a;color:#f1f3f8;box-shadow:inset 0 1px 0 #ffffff12}
html[data-theme=dark] .icon-button:hover{background:#ffffff08}html[data-theme=dark] .icon-button:active{background:#ffffff10}
html[data-theme=dark] .connection.online .status-dot,html[data-theme=dark] .status-dot.online{background:var(--green)}
html[data-theme=dark] .progress-track{background:#2a2a30}html[data-theme=dark] .progress-track>span{background:#739cd2}
html[data-theme=dark] .printer-alert,html[data-theme=dark] .login-error{color:#e7998d}html[data-theme=dark] .printer-alert{border-left-color:#a5675e}
html[data-theme=dark] .footer-divider{color:#73737e}html[data-theme=dark] .filament-swatch{box-shadow:inset 0 0 0 2px #ffffff22}
html[data-theme=dark] dialog,html[data-theme=dark] .theme-menu{background:#222226;border-color:#37373e;box-shadow:0 16px 48px #0006}
html[data-theme=dark] dialog::backdrop{background:#0008}
html[data-theme=dark] .theme-menu button:hover,html[data-theme=dark] .theme-menu button[aria-checked=true]{background:#ffffff09}
html[data-theme=dark] #toast{background:#29292e;color:var(--text);border:1px solid #3b3b43}
html[data-theme=dark] button:focus-visible,html[data-theme=dark] a:focus-visible{outline-color:var(--blue)}
@media(min-width:1440px){.workspace{padding-top:48px}.main-grid{--camera-basis-gap:46px}}
@media(max-width:760px){.topbar{height:60px;padding:0 20px;padding-top:env(safe-area-inset-top);height:calc(60px + env(safe-area-inset-top))}.workspace{padding:24px 20px 0}.device-heading{margin-bottom:22px;gap:10px}h1{font-size:32px}.device-heading .eyebrow{font-size:9px}.connection{font-size:10px;gap:5px}.main-grid{grid-template-columns:minmax(0,1fr);gap:16px}.camera-section{--camera-width:87.5vw}.camera-caption{min-height:48px}.print-section{padding-top:4px}.section-label{margin-bottom:12px;font-size:11px}.print-section h2{font-size:24px}.job-name{margin-top:6px;font-size:12px;min-height:19px}.progress-heading{margin-top:18px}.progress-heading>div{font-size:32px}.progress-heading>span{font-size:11px}.progress-track{margin-top:10px}.job-details{margin-top:17px}.job-details strong{font-size:13px}.temperature-section{margin-top:30px}.section-heading{margin-bottom:14px}.section-heading h2{font-size:15px}.section-heading>span{font-size:10px}.temperature-grid{gap:10px}.temperature-item{padding:16px 14px;box-shadow:none}.metric-top{align-items:flex-start;gap:4px}.metric-top>span:first-child{font-size:11px;gap:5px}.metric-top svg{width:15px;height:15px}.metric-state{font-size:9px;line-height:16px}.temperature-reading{position:relative;gap:4px;margin-top:13px;min-height:40px}.temperature-reading strong{font-size:32px}.temperature-reading span{font-size:12px;margin-left:2px}.temperature-reading canvas{position:absolute;right:0;bottom:-23px;width:48px;height:18px;max-width:35%}.temperature-target{font-size:10px;margin-top:8px;padding-right:35px;white-space:nowrap}.details-section{margin-top:28px}.details-grid{grid-template-columns:1fr 1fr}.detail-item{padding:18px 0;gap:10px}.detail-item:nth-child(n+3){border-top:1px solid var(--line)}.detail-item>svg{width:18px;height:18px}.detail-item strong{font-size:12px}.detail-item span{font-size:10px}.footer{font-size:9px;padding-top:25px}.login-main h1{font-size:52px}.camera-stage.immersive{margin:0}.filament-section{gap:16px;align-items:flex-start}.filaments{gap:12px}}
@media(max-width:359px){.workspace{padding-left:16px;padding-right:16px}.temperature-item{padding:14px 11px}.temperature-reading strong{font-size:29px}.metric-state{font-size:8px}.connection{font-size:9px}.camera-stage.immersive{margin:0}}
@media(orientation:landscape) and (max-height:500px){.camera-stage.immersive{height:100dvh}.login-main{padding:20px}.face-mark{margin-bottom:16px;width:54px;height:54px}.face-mark svg{width:28px;height:28px}.login-main h1{font-size:36px}.primary{margin-top:20px}.login-footer{display:none}}
