@font-face{font-family:Instrument Serif;src:url('../vendor/fonts/InstrumentSerif-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:IBM Plex Sans;src:url('../vendor/fonts/IBMPlexSans-Variable.ttf') format('truetype');font-weight:100 700;font-display:swap}
:root{--bg:#0b0b0a;--fg:#ece8e1;--muted:#8a847a;--line:rgba(236,232,225,.12);--clay:#c4a090;font:13px/1.4 'IBM Plex Sans',system-ui,sans-serif;color:var(--fg);background:var(--bg);color-scheme:dark}
*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden}button,input,select{font:inherit;color:inherit}button,input,select,summary{outline-offset:3px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:1px solid var(--fg)}button{cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:6px;min-height:30px;padding:4px 10px;white-space:nowrap}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{color:var(--muted);cursor:default}button.primary,button[aria-pressed=true]{background:var(--fg);border-color:var(--fg);color:var(--bg)}button.quiet{border-color:transparent}input,select{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:5px 7px;min-height:30px;min-width:0;width:100%}input[type=checkbox]{width:16px;min-height:16px;accent-color:var(--fg)}input[type=number]{font-variant-numeric:tabular-nums}h1{font:30px/1 'Instrument Serif',Georgia,serif;margin:0 10px 0 0}h2{font-size:13px;font-weight:500;margin:0}p{margin:0}small,.muted{color:var(--muted);font-size:12px}.app{height:100%;display:grid;grid-template-rows:50px minmax(0,1fr) 30px}.topbar{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);padding:0 12px}.project-name{width:clamp(100px,20vw,240px);border-color:transparent}.grow{flex:1}.divider{height:20px;border-left:1px solid var(--line);margin:0 5px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;min-height:0;position:relative}.workspace.focus{grid-template-columns:minmax(0,1fr)}.workspace.focus .panel{display:none}.view{position:relative;min-width:0;min-height:0}.view canvas{display:block;width:100%;height:100%;touch-action:none}.view-tools{position:absolute;top:12px;left:12px;display:flex;gap:4px;z-index:1}.view-tools button{background:var(--bg)}.view-caption{position:absolute;left:16px;bottom:12px;pointer-events:none;color:var(--muted);font-size:12px}.panel{border-left:1px solid var(--line);min-height:0;display:flex;flex-direction:column}.tabs{display:flex;border-bottom:1px solid var(--line);padding:6px;gap:4px}.tabs button{flex:1}.panel-body{padding:12px;overflow:auto;min-height:0}.panel-section{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.actions{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.actions>*{flex:1}.tree{max-height:34vh;overflow:auto;margin:0 -4px}.tree details{margin-left:10px}.tree summary{cursor:pointer;display:flex;align-items:center;gap:4px;list-style:none}.tree summary:before{content:'›';width:12px;color:var(--muted)}.tree details[open]>summary:before{content:'⌄'}.tree button{border:0;width:100%;text-align:left;white-space:normal;min-height:28px;padding:4px 7px;font-size:12px}.tree button.selected{background:rgba(236,232,225,.09);color:var(--fg)}.tree button span{display:block;color:var(--muted);font-size:11px}.tree .leaf{padding-left:16px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.field>span,.group-label{font-size:12px;color:var(--muted)}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:5px 0 10px}.fields label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}.fields input{font-size:12px;padding:4px;width:100%;color:var(--fg)}.measurements{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;font-size:12px;margin:10px 0}.measurements dt{color:var(--muted)}.measurements dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.checkline{display:flex;align-items:flex-start;gap:8px;margin:10px 0;font-size:12px}.findings{padding:0;list-style:none;font-size:12px}.findings li{border-top:1px solid var(--line);padding:8px 0}.findings li.error{color:var(--clay)}.state{font-size:13px;line-height:1.5}.state.error{color:var(--clay)}.footer{display:flex;gap:12px;align-items:center;padding:4px 12px;border-top:1px solid var(--line);font-size:12px;min-width:0}.footer #status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.footer #status.error{color:var(--clay)}.footer #stats{color:var(--muted);white-space:nowrap}.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;pointer-events:none}.empty>*{pointer-events:auto}.empty h2{font:34px 'Instrument Serif',Georgia,serif}.empty p{color:var(--muted);max-width:32ch;text-align:center}.menu{position:absolute;top:45px;left:110px;z-index:5;display:grid;grid-template-columns:1fr 1fr;gap:5px;border:1px solid var(--line);background:var(--bg);padding:8px;min-width:230px}.menu[hidden],[hidden]{display:none!important}details.help{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}details.help summary{cursor:pointer;color:var(--muted)}details.help p,details.help pre{margin-top:8px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}details.help pre{font-family:inherit}.wide{width:100%;margin:4px 0}.file{display:none}.connection{font-size:12px}.notice{font-size:12px;color:var(--muted);margin-top:8px}.slice-controls{margin-top:10px}.slice-controls input{padding:0}.busy{opacity:.7;pointer-events:none}a{color:var(--fg);text-decoration-color:var(--line)}
@media(max-width:760px){.topbar{height:auto;gap:4px;padding:0 8px}.topbar .desktop{display:none}.project-name{width:120px}.app{grid-template-rows:50px minmax(0,1fr) 30px}.workspace{grid-template-columns:minmax(0,1fr)}.panel{position:absolute;right:0;top:0;bottom:0;width:min(280px,85vw);background:var(--bg);z-index:3}.workspace.focus .panel{display:none}.menu{left:60px}.view-tools{gap:3px}.view-tools button{font-size:12px;padding:4px 7px}.footer #stats{display:none}.empty{padding:40px 10px}.empty h2{font-size:28px}}
@media(pointer:coarse){button,input,select{min-height:44px}.tree button{min-height:44px}.fields input{min-height:40px}.app{grid-template-rows:58px minmax(0,1fr) 34px}.menu{top:55px}.topbar h1{font-size:28px}.topbar .project-name{width:90px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.monitor-remaining{font-size:36px;line-height:1.15;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-1px;margin-top:14px}.job-monitor[data-telemetry=fresh] .monitor-remaining,.job-monitor[data-telemetry=fresh]>summary span{color:#8cca9c}.job-monitor[data-telemetry=fresh] .print-progress span{background:#8cca9c}.job-monitor[data-telemetry=stale] .monitor-remaining{color:var(--muted)}.job-monitor[data-telemetry=stale] .live-metrics{opacity:.65}.live-metrics{border-bottom:1px solid var(--line);padding-bottom:10px}#monitor-name{overflow-wrap:anywhere;color:var(--muted);font-size:11px}#monitor-source{margin-top:10px}#monitor-connection{margin:4px 0 8px;font-size:11px}#monitor-profile{display:none}#monitor-observation:empty{display:none}

.compact-details{font-size:12px;margin:8px 0}.compact-details>summary{cursor:pointer;color:var(--muted);padding:4px 0}.compact-details[open]>summary{margin-bottom:6px}.compact-details .findings{margin:4px 0}.compact-details .findings li{padding:6px 0}.panel-section .state{font-size:12px}

@media(max-width:480px){.topbar{min-width:0}.topbar #undo{display:none}.topbar .project-name{flex:1;width:60px;min-width:35px}.topbar button{padding:4px 7px}.topbar h1{margin-right:2px}.topbar .grow{display:none}.app{min-width:0}}
.mobile-action{display:none}@media(max-width:760px){.mobile-action{display:block}}
.connection-indicators{display:flex;gap:8px;align-items:center;flex-shrink:0}.connection-indicators button{display:flex;align-items:center;gap:6px;border:0;min-height:24px;font-size:11px;padding:2px 3px;color:var(--muted)}.connection-indicators button span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-indicators i{display:block;width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#77716a}.connection-indicators [data-tone=good] i{background:#8cca9c;box-shadow:0 0 0 3px #8cca9c12}.connection-indicators [data-tone=good]{color:var(--fg)}.connection-indicators [data-tone=waiting] i{background:#d5b67f}.monitor-device{font-weight:500}.remote-controls button{opacity:.55}.footer #stats{margin-left:auto}@media(max-width:1000px){.footer #stats{display:none}.connection-indicators button span{max-width:180px}}@media(max-width:600px){.footer #status{display:none}.connection-indicators{width:100%;justify-content:space-between;gap:6px}.connection-indicators button span{max-width:160px}}@media(pointer:coarse){.connection-indicators button{min-height:30px}}
.job-monitor{position:absolute;right:12px;bottom:40px;width:min(326px,calc(100% - 24px));max-height:calc(100% - 100px);overflow:auto;z-index:2;background:var(--bg);border:1px solid var(--line);border-radius:8px;font-size:12px;box-shadow:0 6px 24px #0004}.job-monitor>summary{padding:10px 12px;cursor:pointer}.job-monitor>summary strong{font-weight:500}.job-monitor>summary span{display:block;color:var(--clay);margin-top:3px}.monitor-body{padding:0 12px 10px}.monitor-body>p{margin:5px 0;overflow-wrap:anywhere}.monitor-metrics{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 10px;margin:10px 0;font-variant-numeric:tabular-nums}.monitor-metrics dt{color:var(--muted)}.monitor-metrics dd{margin:0;text-align:right}.print-progress{height:7px;border-radius:4px;background:var(--line);overflow:hidden;margin:7px 0}.print-progress span{display:block;height:100%;background:var(--clay)}.print-progress.unknown span{background:repeating-linear-gradient(120deg,transparent,transparent 5px,var(--muted) 5px,var(--muted) 7px);opacity:.35}.upload-status{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.upload-status progress{width:64px;height:4px;accent-color:var(--muted)}.job-monitor .actions{margin:10px 0 6px}.job-monitor button{font-size:12px;padding:4px 6px}@media(max-width:760px){.workspace:not(.focus) .job-monitor{right:auto;left:8px;width:calc(100% - min(280px,85vw) - 16px);min-width:0}.workspace:not(.focus) .job-monitor .monitor-body{display:none}.workspace:not(.focus) .job-monitor summary{padding:6px;font-size:10px;overflow-wrap:anywhere}}

.path-legend{display:flex;flex-wrap:wrap;gap:6px;font-size:11px}.path-legend label{display:flex;align-items:center;gap:4px}.path-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.path-model{background:#ece8e1}.path-support{background:#61b4ff}.path-bridge{background:#d6a3ff}.path-brim{background:#f1b653}.path-unknown{background:#e48d79}#monitor-latest{border-left:2px solid #d5b67f;padding:6px 8px}#monitor-job-id{font-size:10px;overflow-wrap:anywhere}#job-history{font-size:11px}#layer-features{margin:8px 0}
