:root{--bg:#1a1a2e;--bg-surface:#16213e;--bg-card:#1e2a47;--bg-card-hover:#253353;--border:#2a3a5c;--text:#e0e0e0;--text-dim:#8892a4;--accent:#4a9eff;--accent-hover:#3a8eef;--success:#4ade80;--warning:#fbbf24;--error:#f87171;--sidebar-width:220px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.sidebar-header{border-bottom:1px solid var(--border);padding:1.5rem 1rem}.sidebar-header h1{color:var(--accent);font-size:1.25rem;font-weight:600}.nav-list{padding:.5rem 0;list-style:none}.nav-link{color:var(--text-dim);padding:.75rem 1rem;text-decoration:none;transition:all .15s;display:block}.nav-link:hover{color:var(--text);background:var(--bg-card)}.nav-link.active{color:var(--accent);background:var(--bg-card);border-left:3px solid var(--accent)}.content{flex:1;padding:2rem;overflow-y:auto}.topbar,.sidebar-backdrop{display:none}@media (width<=800px){.app{flex-direction:column}.topbar{z-index:30;height:calc(3rem + env(safe-area-inset-top));padding:env(safe-area-inset-top) .5rem 0 calc(.5rem + env(safe-area-inset-left));background:var(--bg-surface);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.topbar-menu{width:2.75rem;height:2.75rem;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:relative}.topbar-menu .feedback-count{margin:0;position:absolute;top:.1rem;right:0}.topbar-title{color:var(--accent);font-size:1.1rem;font-weight:600}.sidebar{z-index:50;width:min(18rem,85vw);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain;visibility:hidden;transition:transform .2s,visibility 0s .2s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}.menu-open .sidebar{visibility:visible;transition:transform .2s;transform:none}.sidebar-header{padding:1rem}.sidebar-backdrop{z-index:40;background:#00000080;position:fixed;inset:0}.menu-open .sidebar-backdrop{display:block}body:has(.menu-open){overflow:hidden}.content{padding:1rem calc(1rem + env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left));min-width:0;overflow-y:visible}}@media (width<=800px),(pointer:coarse){input:not([type=checkbox],[type=radio],[type=range],[type=color]),select,textarea{font-size:max(16px,1em)!important}.btn-sm{min-height:2.25rem;padding:.4rem .85rem;font-size:.875rem}input[type=checkbox],input[type=radio]{width:1.15rem;height:1.15rem}}.page h2{margin-bottom:1.5rem;font-weight:600}.page-actions{margin-bottom:1rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.card{background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:1.25rem;text-decoration:none;transition:all .15s}.card:hover{background:var(--bg-card-hover);border-color:var(--accent)}.card h3{margin-bottom:.5rem;font-size:1.1rem}.card p{color:var(--text-dim);font-size:.9rem}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:.75rem 1.5rem;font-size:1rem;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;margin-right:.25rem;padding:.3rem .75rem;font-size:.8rem}.btn-sm:hover{color:var(--text);border-color:var(--text-dim)}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.data-table th{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:500}@media (width<=800px){.data-table:not(.cards) th,.data-table:not(.cards) td{padding:.5rem .4rem}.data-table:not(.cards) td input:not([type=checkbox],[type=radio]){width:100%;min-width:4.5rem}}.table-scroll{max-width:100%;overflow-x:auto}@media (width<=800px){.data-table.cards,.data-table.cards tbody,.data-table.cards tr,.data-table.cards td{display:block}.data-table.cards thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.data-table.cards tr{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem;position:relative}.data-table.cards td{overflow-wrap:anywhere;border:none;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;padding:.3rem 0;display:flex}.data-table.cards td[data-label]{padding-left:7rem}.data-table.cards td:before{content:attr(data-label);color:var(--text-dim);flex:0 0 6.5rem;margin-left:-7rem;font-size:.8rem}.data-table.cards td:not([data-label]):before{display:none}.data-table.cards td>.progress-bar,.data-table.cards td>select{flex:8rem}.data-table.cards td.cell-title{padding:0 2.5rem .4rem 0;font-size:1.05rem;font-weight:600}.data-table.cards td.cell-select{padding:0;position:absolute;top:.6rem;right:.6rem}.data-table.cards td.cell-select input{width:1.4rem;height:1.4rem}.data-table.cards td.cell-actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.4rem;padding-top:.6rem;display:flex}.data-table.cards td.cell-actions:empty{display:none}.data-table.cards td.cell-actions details{flex-basis:100%}}.status-badge{border-radius:4px;padding:.2rem .6rem;font-size:.8rem;font-weight:500}.status-queued{color:var(--text-dim);background:#2a2a3e}.status-slicing{color:var(--accent);background:#1e3a5f}.status-done{color:var(--success);background:#1e3a2e}.status-failed{color:var(--error);background:#3a1e1e}.status-dot{background:var(--text-dim);border-radius:50%;width:10px;height:10px;display:inline-block}.status-dot.status-idle{background:var(--success)}.status-dot.status-printing{background:var(--accent)}.status-dot.status-error{background:var(--error)}.status-dot.status-offline{background:var(--text-dim)}.progress-bar{background:var(--border);border-radius:3px;min-width:100px;height:6px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .3s}.model-viewer{background:#0d1117;border:2px solid #0000;border-radius:8px;width:100%;height:100%;min-height:400px;transition:border-color .15s;position:relative;overflow:hidden}.model-viewer.drag-over{border-color:var(--accent)}.drop-prompt{z-index:1;cursor:pointer;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drop-prompt p{margin:.25rem}.viewer-top{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-start;gap:.3rem;display:flex;position:absolute;top:.5rem;left:.5rem;right:.5rem}.viewer-top>*{pointer-events:auto}.viewer-toolbar{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:2px;padding:2px;display:flex}.viewer-toolbar button{color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:.35rem .7rem;font-size:.8rem}.viewer-toolbar button:hover{color:var(--text);background:var(--bg-card)}.viewer-toolbar button.active{color:var(--accent);background:var(--bg-card)}.toolbar-sep{background:var(--border);width:1px;height:1.2rem;margin:0 2px}.viewer-toolbar kbd{font:inherit;border:1px solid var(--border);opacity:.8;border-radius:3px;margin-left:.2rem;padding:0 .3rem;font-size:.7rem}.plate-tabs .plate-count{background:var(--bg-card);border-radius:8px;margin-left:.35rem;padding:0 .35rem;font-size:.7rem}.plate-tabs button.plate-bad{color:var(--error)}.plate-tabs .plate-move{width:auto;margin:0 2px;padding:.25rem .4rem;font-size:.8rem}.viewer-hint{color:var(--text-dim);background:#0d1117bf;border-radius:4px;padding:.15rem .5rem;font-size:.75rem}.viewer-fit-warning{border:1px solid var(--error);max-width:100%;color:var(--error);background:#3c0e0eeb;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.45rem .75rem;font-size:.85rem;display:flex}.viewer-fit-warning button{padding:.2rem .6rem;font-size:.8rem}.viewer-hint-error{color:var(--error)}.viewer-toolbar button:disabled{opacity:.4;cursor:default;background:0 0}.viewer-notice{z-index:3;border:1px solid var(--accent);max-width:40%;color:var(--text);pointer-events:none;background:#0d1117eb;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;position:absolute;top:.5rem;right:.5rem}.viewer-notice.bad{border-color:var(--warning);color:var(--warning)}.placement-panel{z-index:2;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:.3rem;padding:.45rem .6rem;font-size:.8rem;display:flex;position:absolute;bottom:.5rem;left:.5rem}.placement-row{align-items:center;gap:.4rem;display:flex}.placement-label{width:4.2rem;color:var(--text-dim)}.placement-field{align-items:center;gap:.2rem;margin:0;display:flex}.placement-field span{color:var(--text-dim);font-weight:600}.placement-field input{width:4.6rem;margin:0;padding:.15rem .3rem;font-size:.8rem}.placement-unit,.placement-size{color:var(--text-dim)}@media (width<=800px){.placement-panel{right:.5rem}.placement-label{flex-shrink:0;width:3.6rem}.placement-field{flex:1 1 0;min-width:0}.placement-field input{width:100%;min-width:0}.viewer-toolbar{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.toolbar-sep{flex-shrink:0}}@media (hover:none){.viewer-toolbar kbd{display:none}.viewer-toolbar button{padding:.55rem .75rem}}.gizmo-readout{pointer-events:none;white-space:nowrap;color:#ffd23f;font-variant-numeric:tabular-nums;background:#0d1117d9;border-radius:4px;padding:.1rem .4rem;font-size:.8rem}.slice-layout{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 300px;gap:1.5rem;height:calc(100vh - 8rem);min-height:480px;display:grid}.viewer-panel{flex-direction:column;gap:.4rem;min-height:0;display:flex}.view-tabs{gap:2px;display:flex}.view-tabs button{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px 6px 0 0;padding:.3rem .9rem;font-size:.85rem}.view-tabs button.active{color:var(--accent);background:var(--bg-card)}.view-tabs button:disabled{opacity:.45;cursor:default}.view-pane{flex:1;min-height:0}.view-pane[hidden]{display:none}.slice-result{flex-direction:column;gap:.5rem;height:100%;min-height:0;display:flex}.slice-result-waiting{background:#0d1117;border-radius:8px;justify-content:center;align-items:center}.slice-result-waiting .progress-bar{width:min(320px,80%)}.slice-result-bar{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.slice-result-stats{font-variant-numeric:tabular-nums}.slice-result-actions{align-items:center;gap:.4rem;margin-left:auto;display:flex}.btn-primary.btn-inline{width:auto;padding:.35rem .9rem}.slice-result-warning{border:1px solid var(--border);border-radius:6px;padding:.45rem .7rem;font-size:.85rem}.slice-result-warning.bad{border-color:var(--error);color:var(--error);background:#3c0e0e99}.slice-result-preview{flex:1;min-height:0}.settings-panel{flex-direction:column;gap:1rem;min-height:0;padding-right:.25rem;display:flex;overflow-y:auto}.settings-panel>*{flex-shrink:0}@media (width<=1000px){.slice-layout{grid-template-rows:minmax(400px,65vh) auto;grid-template-columns:minmax(0,1fr);height:auto;min-height:0}.settings-panel{overflow-y:visible}.slice-layout:has(.slice-result-preview){grid-template-rows:auto auto}.slice-result{height:auto}.slice-result-preview{flex:none}}@media (width<=800px){.slice-layout{grid-template-rows:minmax(360px,75svh) auto}}.settings-panel h3{margin-bottom:.25rem}.settings-panel label{color:var(--text-dim);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.settings-panel select{background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.5rem;font-size:.9rem}.share-bar{background:var(--border);border-radius:3px;width:120px;height:6px;margin-bottom:.2rem;overflow:hidden}.share-fill{background:var(--accent);height:100%}.defaults-report td{vertical-align:top}.supports-panel{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;flex-direction:column;gap:.6rem;padding:.6rem .75rem .75rem;display:flex}.supports-title{color:var(--text);font-size:.85rem;font-weight:600}.supports-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;display:grid}.supports-row select{width:100%}.support-check.bad{color:var(--error)}.hint.warn{color:var(--warning)}.nozzle-plan{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;flex-direction:column;gap:.35rem;padding:.6rem .75rem .75rem;font-size:.85rem;display:flex}.nozzle-plan-title{color:var(--text);font-weight:600}.nozzle-plan-row{grid-template-columns:3.2rem minmax(0,1fr);align-items:baseline;gap:.5rem;display:grid}.nozzle-side{font-weight:600}.reslice-note{border-left:3px solid var(--accent);background:var(--bg-card);border-radius:4px;padding:.5rem .65rem}.reslice-note.bad{border-left-color:var(--error);color:var(--error)}.settings-panel label.check-row{color:var(--text);flex-direction:row;align-items:center;gap:.5rem}.settings-panel label.check-row input{width:auto}.settings-panel .machine-row{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;display:grid}.settings-panel .machine-row select{width:100%}.model-info{background:var(--bg-card);border-radius:6px;padding:.75rem}.hint{color:var(--text-dim);font-size:.85rem}.empty-state{color:var(--text-dim);text-align:center;padding:3rem}.form-input,.settings-panel input,.card input{background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:4px;width:100%;padding:.5rem;font-size:.9rem}.card label{color:var(--text-dim);flex-direction:column;gap:.35rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.card select{background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.5rem;font-size:.9rem}.printer-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.printer-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.status-dot.status-paused{background:var(--warning)}.printer-card{flex-direction:column;gap:.5rem;display:flex}.printer-card .printer-header{margin-bottom:0}.printer-picture{object-fit:contain;background:var(--bg-surface);border-radius:6px;width:100%;max-height:160px}.printer-state{color:var(--text-dim);align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.printer-error{color:var(--error);overflow-wrap:anywhere;font-size:.85rem}.printer-error a{color:inherit}.printer-error-code{opacity:.75;white-space:nowrap;font-size:.75rem}.printer-job{flex-direction:column;gap:.35rem;display:flex}.printer-job-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.printer-temps{flex-wrap:wrap;gap:.25rem .9rem;display:flex}.printer-trays{flex-wrap:wrap;gap:.5rem;display:flex}.ams-unit{border:1px solid var(--border);border-radius:6px;gap:.25rem;padding:.25rem;display:flex}.tray{border:1px solid #0000;border-radius:4px;flex-direction:column;align-items:center;gap:.15rem;min-width:2.6rem;padding:.2rem;display:flex}.tray-active{border-color:var(--accent)}.tray-color{border:1px solid var(--border);background:repeating-linear-gradient(45deg, transparent 0 3px, var(--border) 3px 4px);border-radius:50%;width:1.1rem;height:1.1rem}.tray-material{color:var(--text-dim);font-size:.7rem}.tray-empty .tray-material{opacity:.6}.printer-actions{gap:.5rem;margin-top:auto;padding-top:.25rem;display:flex}.job-name{align-items:center;gap:.6rem;display:flex}.job-thumb{object-fit:contain;background:var(--bg-surface);border-radius:4px;flex-shrink:0;width:40px;height:40px}.upload-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.upload-row>button{flex-shrink:0}.upload-row .hint{flex:16rem}.source-upload{color:var(--warning);background:#2a2a1e}.print-uploading,.print-starting{color:var(--text-dim);background:#2a2a3e}.print-printing{color:var(--accent);background:#1e3a5f}.print-paused{color:var(--warning);background:#3a331e}.print-finished{color:var(--success);background:#1e3a2e}.print-failed{color:var(--error);background:#3a1e1e}.print-cancelled{color:var(--text-dim);background:#2a2a3e}.print-pending_approval{color:var(--warning);background:#3a331e}.print-rejected{color:var(--text-dim);background:#2a2a3e}.prices-editor{flex-direction:column;gap:.6rem;display:flex}.prices-editor td input{width:8rem}.rules-editor,.rules-setting{flex-direction:column;gap:.6rem;display:flex}.print-controls{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}.logo-setting{color:var(--text-dim);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.logo-row{align-items:center;gap:.75rem;display:flex}.logo-preview{object-fit:contain;background:repeating-conic-gradient(var(--bg-card) 0 25%, var(--bg-surface) 0 50%) 0 0 / 12px 12px;border-radius:6px;width:64px;height:64px}.logo-actions{gap:.5rem;margin-top:.35rem;display:inline-flex}.file-button{cursor:pointer;display:inline-block}.printer-area{margin-bottom:1.5rem}.printer-area>h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.75rem;font-size:.95rem}.preheat select,.speed-select,.report-form textarea{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.3rem;font-size:.85rem}.report-form{flex-direction:column;gap:.4rem;display:flex}.report-form textarea{resize:vertical;width:100%;font-family:inherit}.printer-actions{flex-wrap:wrap}.reports-panel{border-color:var(--warning);flex-direction:column;gap:.6rem;margin-bottom:1.5rem;display:flex}.report-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.modal.camera-modal{width:min(1100px,100%)}.camera-view{aspect-ratio:16/9;background:#000;border-radius:6px;position:relative;overflow:hidden}.camera-view canvas,.camera-view img{object-fit:contain;width:100%;height:100%;display:block}.camera-status{color:var(--text-dim);text-align:center;background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:absolute;inset:0}.guide{max-width:760px;line-height:1.55}.guide section{margin-bottom:1.5rem}.guide h3{margin-bottom:.5rem}.guide h4{color:var(--text-dim);margin:.75rem 0 .25rem}.guide ol,.guide ul{padding-left:1.4rem}.guide li{margin:.2rem 0}.guide a{color:var(--accent)}.guide-notes p+p{margin-top:.6rem}.settings-form textarea{background:var(--bg-card);color:var(--text);border:1px solid var(--border);resize:vertical;border-radius:4px;padding:.5rem;font-family:inherit}.modal-backdrop{z-index:100;overscroll-behavior:contain;background:#0000008c;justify-content:center;align-items:flex-start;padding:4vh 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.75rem;width:min(640px,100%);padding:1.25rem 1.5rem;display:flex}@media (width<=800px){.modal-backdrop{padding:calc(.75rem + env(safe-area-inset-top)) .5rem calc(.75rem + env(safe-area-inset-bottom))}.modal{padding:1rem}}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal h4{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-top:.5rem;font-size:.85rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.send-plate{align-items:center;gap:1rem;display:flex}.plate-thumb{object-fit:contain;background:var(--bg-card);border-radius:6px;width:96px;height:96px}.target-list{flex-direction:column;gap:.4rem;display:flex}.target{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:6px;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.target-disabled{opacity:.55;cursor:not-allowed}.target-main{flex-direction:column;flex:1;min-width:0;display:flex}.mapping-table td{vertical-align:middle;padding:.25rem .4rem}.filament-list{margin:0;padding:0;list-style:none}.filament-list li{align-items:center;gap:.5rem;padding:.2rem 0;display:flex}.mapping-table select{background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:4px;max-width:100%;padding:.35rem}.send-options{flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.9rem;display:flex}.send-approval{border:1px solid var(--warning);color:var(--warning);border-radius:6px;padding:.6rem .75rem;font-size:.9rem}.send-problems{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.printer-form{flex-direction:column;gap:.75rem;display:flex}.printer-form label{color:var(--text-dim);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.printer-form input,.printer-form select{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;width:100%;padding:.5rem;font-size:.9rem}.search-select{position:relative}.search-select input{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;width:100%;padding:.5rem;font-size:.9rem}.search-select-dropdown{background:var(--bg-surface);border:1px solid var(--border);z-index:10;border-top:none;border-radius:0 0 4px 4px;max-height:240px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.search-select-group{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;padding:.4rem .5rem .2rem;font-size:.75rem;font-weight:600}.search-select-option{cursor:pointer;padding:.4rem .5rem;font-size:.9rem}.search-select-option.highlighted{background:var(--bg-card-hover)}.search-select-option.selected{color:var(--accent)}.search-select-empty{color:var(--text-dim);padding:.5rem;font-size:.85rem}.discovered-section{margin-bottom:1.5rem}.discovered-section h3{color:var(--text-dim);margin-bottom:.75rem;font-size:.95rem}.discovered-card{border-style:dashed;border-color:var(--accent)}@media (width<=800px){.page:has(>.printer-area){flex-direction:column;display:flex}.page:has(>.printer-area)>.discovered-section{order:1;margin:0}}.discovered-card .printer-header h3{font-size:1rem}.pulse-dot{background:var(--success);border-radius:50%;width:10px;height:10px;animation:2s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.login-page{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:100dvh;padding:1rem;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:12px;width:100%;max-width:360px;padding:2.5rem}@media (width<=800px){.login-card{padding:1.75rem 1.25rem}}.login-card h1{color:var(--accent);margin-bottom:1.5rem;font-size:1.5rem}.login-card form{flex-direction:column;gap:1rem;display:flex}.login-card label{color:var(--text-dim);text-align:left;flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.login-card input{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:6px;width:100%;padding:.65rem;font-size:1rem}.login-error{color:var(--error);margin:0;font-size:.85rem}.btn-danger{color:var(--error);border-color:var(--error)}.btn-danger:hover{color:var(--error);border-color:var(--error);background:#f871711a}.overrides-panel{border:1px solid var(--border);border-radius:6px;overflow:hidden}.overrides-toggle{background:var(--bg-card);width:100%;color:var(--text-dim);cursor:pointer;text-align:left;border:none;align-items:center;gap:.5rem;padding:.6rem .75rem;font-size:.85rem;display:flex}.overrides-toggle:hover{color:var(--text);background:var(--bg-card-hover)}.override-badge{background:var(--accent);color:#fff;border-radius:10px;padding:.1rem .4rem;font-size:.7rem;font-weight:600}.chevron{margin-left:auto;font-size:.7rem;transition:transform .15s}.chevron.open{transform:rotate(180deg)}.overrides-body{border-top:1px solid var(--border);background:var(--bg-surface);padding:.5rem .75rem .75rem}.overrides-category{margin-bottom:.5rem}.overrides-category-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;padding:.4rem 0 .2rem;font-size:.7rem;font-weight:600}.setting-row{justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.85rem;display:flex}.setting-row.setting-modified{color:var(--accent)}.setting-label{flex:1;align-items:baseline;gap:.3rem;min-width:0;display:flex}.setting-unit{color:var(--text-dim);font-size:.7rem}.setting-control{align-items:center;gap:.3rem;display:flex}.setting-control input[type=number]{background:var(--bg-card);width:70px;color:var(--text);border:1px solid var(--border);text-align:right;border-radius:4px;padding:.25rem .4rem;font-size:.85rem}.setting-control select{background:var(--bg-card);max-width:120px;color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem .3rem;font-size:.8rem}.setting-toggle{cursor:pointer;color:var(--text);flex-direction:row;align-items:center;gap:.3rem;font-size:.85rem;display:flex}.setting-toggle input[type=checkbox]{width:auto}.btn-reset{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 .2rem;font-size:1rem;line-height:1}.btn-reset:hover{color:var(--error)}.overrides-actions{gap:.5rem;margin-top:.5rem;display:flex}.save-profile-form{border:1px solid var(--border);background:var(--bg-card);border-radius:4px;flex-direction:column;gap:.4rem;margin-top:.5rem;padding:.5rem;display:flex}.save-profile-form input,.save-profile-form select{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.35rem .5rem;font-size:.85rem}.profile-card .printer-header{justify-content:space-between;align-items:center;display:flex}.profile-type-badge{text-transform:uppercase;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-dim);border-radius:10px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.profile-type-badge[data-type=process]{border-color:var(--accent);color:var(--accent)}.profile-type-badge[data-type=filament]{border-color:var(--success);color:var(--success)}.json-editor{background:var(--bg-surface);width:100%;color:var(--text);border:1px solid var(--border);resize:vertical;border-radius:4px;padding:.5rem;font-family:Consolas,Monaco,monospace;font-size:.85rem}.profile-tabs{border-bottom:2px solid var(--border);gap:0;margin-bottom:1.5rem;display:flex}.profile-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4rem;margin-bottom:-2px;padding:.6rem 1.2rem;font-size:.9rem;display:flex}.profile-tab:hover{color:var(--text)}.profile-tab.active{color:var(--accent);border-bottom-color:var(--accent)}@media (width<=800px){.profile-tabs{scrollbar-width:none;box-shadow:inset 0 -2px var(--border);border-bottom:none;overflow-x:auto}.profile-tab{white-space:nowrap;flex-shrink:0;margin-bottom:0;padding:.6rem .9rem}}.browse-filters{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.browse-filters label{min-width:180px;max-width:280px;color:var(--text-dim);flex-direction:column;flex:1;gap:.35rem;font-size:.85rem;display:flex}.browse-filters input,.browse-filters select{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;width:100%;padding:.5rem;font-size:.9rem}.profile-list{flex-direction:column;gap:2px;display:flex}.profile-list-item{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.profile-list-item:hover{background:var(--bg-card-hover)}.profile-list-item.active{border-color:var(--accent)}.profile-list-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;overflow:hidden}.profile-editor{border:1px solid var(--border);border-radius:6px;overflow:hidden}.editor-tabs{border-bottom:1px solid var(--border);display:flex}.editor-tab{background:var(--bg-surface);color:var(--text-dim);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.editor-tab:not(:last-child){border-right:1px solid var(--border)}.editor-tab:hover{color:var(--text);background:var(--bg-card)}.editor-tab.active{color:var(--accent);background:var(--bg-card);border-bottom:2px solid var(--accent)}.editor-settings{background:var(--bg-surface);padding:.75rem}.editor-search{background:var(--bg-card);width:100%;color:var(--text);border:1px solid var(--border);border-radius:4px;margin-bottom:.5rem;padding:.4rem .6rem;font-size:.85rem}.editor-categories{flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem;display:flex}.editor-cat-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.75rem;display:flex}.editor-cat-btn:hover{color:var(--text);border-color:var(--text-dim)}.editor-cat-btn.active{color:var(--accent);border-color:var(--accent);background:var(--bg-card-hover)}.editor-settings-list{max-height:400px;padding-right:.25rem;overflow-y:auto}.editor-json{background:var(--bg-surface);padding:.75rem}.editor-diff{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.5rem}.diff-row{align-items:center;gap:.5rem;padding:.2rem 0;font-size:.8rem;display:flex}.diff-key{color:var(--accent);flex:1}.diff-val{color:var(--text);font-family:Consolas,Monaco,monospace;font-size:.8rem}.compute-status{margin-top:-.25rem;line-height:1.4}.slice-progress{margin:.5rem 0}.slice-progress .progress-bar{margin-bottom:.25rem}.source-badge{border:1px solid var(--border,#444);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.source-browser{color:var(--accent,#4a9eff);border-color:var(--accent,#4a9eff)}.source-local{color:var(--warning);border-color:var(--warning);margin-left:.3rem}.job-selection{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.data-table tr.selected td{background:var(--bg-card-hover)}.sidebar-user{border-top:1px solid var(--border,#2a2f45);flex-direction:column;gap:.5rem;margin-top:auto;padding:.75rem 1rem;display:flex}.sidebar-user .nav-link{padding:.25rem 0}.api-key-reveal{margin:.5rem 0 1rem}.api-key-value{word-break:break-all;-webkit-user-select:all;user-select:all;background:#0000004d;border-radius:4px;padding:.5rem;display:block}.link-button{color:var(--accent,#4a9eff);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.login-card .btn-primary+form,.login-card .btn-primary+p{margin-top:1rem}.page h3{margin:1.75rem 0 .75rem;font-weight:600}.page .card>h3,.page .printer-header h3{margin:0}.page h4{margin:1.25rem 0 .5rem;font-weight:500}.breadcrumb{margin-bottom:.5rem}.breadcrumb a,.data-table a:not(.btn-sm),.join-list a{color:var(--accent);text-decoration:none}.breadcrumb a:hover,.data-table a:not(.btn-sm):hover,.join-list a:hover{text-decoration:underline}.group-page h2{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.role-badge{color:var(--accent);background:#2a2a4e}.group-description{margin-bottom:.25rem}.group-page .profile-tabs{margin-top:1rem}a.btn-sm{text-decoration:none;display:inline-block}.inline-form{flex-flow:wrap;align-items:flex-end;max-width:900px}.inline-form label{flex:180px}.inline-form .btn-primary{width:auto}.settings-form{max-width:640px}.settings-form h3{margin-bottom:0}.settings-form .btn-primary{align-self:flex-start;width:auto}.printer-form .checkbox-label{color:var(--text);flex-direction:row;align-items:center;gap:.5rem}.printer-form .checkbox-label input{width:auto}.row-disabled td{opacity:.5}.link-url{word-break:break-all;font-size:.8rem}.quota-editor{flex-direction:column;gap:.4rem;margin:.25rem 0 .75rem;display:flex}.quota-rule{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.quota-rule select,.quota-rule input{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.35rem;font-size:.85rem}.quota-rule input{width:6rem}.quota-editor>.btn-sm{align-self:flex-start}.quota-sections{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem 2rem;margin-bottom:1rem;display:grid}.quota-sections h4{margin-top:0}.usage-bar-cell{width:30%}.progress-fill.progress-full{background:var(--error)}.past-season{border:1px solid var(--border);border-radius:6px;margin-top:1rem;padding:.5rem .75rem}.past-season summary{cursor:pointer;color:var(--text-dim)}.season-library>.hint:last-child{margin-top:1rem}.join-list{flex-direction:column;gap:.4rem;margin-bottom:1rem;list-style:none;display:flex}.join-card{text-align:left;max-width:440px}.join-card h1{text-align:center}.join-title{margin-bottom:.25rem;font-size:1.15rem}.join-path{color:var(--text-dim);margin:.75rem 0}.join-step,.join-finish{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.join-options{flex-direction:column;gap:.4rem;display:flex}.join-option{text-align:left;color:var(--text);margin:0;padding:.6rem .75rem;font-size:.9rem}.join-guest{padding:.6rem;font-size:.9rem}.login-join{border-top:1px solid var(--border);flex-direction:column;gap:.4rem;margin-top:1.5rem;padding-top:1rem;display:flex}.btn-primary.btn-inline{width:auto}.data-table select{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.25rem;font-size:.85rem}.join-option,.join-guest{font:inherit}.login-card a,.hint a{color:var(--accent)}.gcode-chip{white-space:nowrap;border:1px solid;border-radius:999px;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.gcode-ok{color:var(--success)}.gcode-review{color:var(--warning)}.gcode-block{color:var(--error)}.gcode-unchecked{color:var(--text-dim)}.gcode-check summary{cursor:pointer;font-size:.9rem}.gcode-findings{overflow-wrap:anywhere;margin:.4rem 0;padding-left:1.2rem;font-size:.85rem}.gcode-finding-block{color:var(--error)}.gcode-finding-review{color:var(--warning)}.send-blocked{border:1px solid var(--error);color:var(--error);border-radius:6px;padding:.6rem .75rem;font-size:.9rem}.send-review{border:1px solid var(--warning);border-radius:6px;flex-direction:column;gap:.35rem;padding:.6rem .75rem;font-size:.9rem;display:flex}.send-review ul{color:var(--warning);margin:0;padding-left:1.2rem}.feedback-count{background:var(--warning);color:#1a1a2e;text-align:center;border-radius:999px;min-width:1.3rem;margin-left:.4rem;padding:0 .35rem;font-size:.75rem;font-weight:600;line-height:1.3rem;display:inline-block}.sidebar-feedback{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.5rem;display:flex}.sidebar-feedback .btn-sm{margin-right:0}.sidebar-feedback .link-button{padding:0;text-decoration:none}.feedback-form{flex-direction:column;gap:.75rem;display:flex}.feedback-kinds{flex-wrap:wrap;gap:.4rem;display:flex}.feedback-kind{background:var(--bg-card);color:var(--text-dim);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:999px;padding:.35rem .8rem;font-size:.85rem}.feedback-kind:hover{color:var(--text);border-color:var(--text-dim)}.feedback-kind.active{color:var(--accent);border-color:var(--accent);background:#4a9eff1f}.feedback-refs{flex-wrap:wrap;gap:.75rem;display:flex}.feedback-refs label,.feedback-message,.feedback-triage label{color:var(--text-dim);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.feedback-refs label{flex:1;min-width:200px}.feedback-refs select,.feedback-message textarea,.feedback-triage select,.feedback-triage textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;padding:.45rem .6rem;font-size:.9rem}.feedback-message textarea,.feedback-triage textarea{resize:vertical;width:100%}.feedback-dialog .checkbox-label{color:var(--text);align-items:flex-start;gap:.5rem;font-size:.85rem;display:flex}.feedback-dialog .checkbox-label input{margin-top:.15rem}.feedback-preview summary,.feedback-block summary{cursor:pointer;color:var(--text-dim);font-size:.85rem}.feedback-preview pre,.feedback-block pre,.error-fallback-detail{white-space:pre-wrap;overflow-wrap:anywhere;background:#0000004d;border-radius:6px;max-height:16rem;margin-top:.4rem;padding:.6rem;font-size:.75rem;overflow:auto}.feedback-dialog .modal-actions{align-items:center}.feedback-mine{margin-right:auto;text-decoration:none}.feedback-sent{flex-direction:column;gap:.5rem;display:flex}.feedback-intro{max-width:60rem;margin:-.75rem 0 1.25rem}.feedback-filters select{background:var(--bg-surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:4px;margin-top:.3rem;padding:.4rem}.feedback-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.feedback-item{background:var(--bg-card);border:1px solid var(--border);border-radius:8px}.feedback-item.open{border-color:var(--accent)}.feedback-summary{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:.35rem;padding:.75rem 1rem;display:flex}.feedback-summary:hover{background:var(--bg-card-hover);border-radius:8px}.feedback-badges{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.feedback-kind-badge,.feedback-source{color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem;font-size:.75rem}.feedback-source{color:var(--warning);border-color:#fbbf2466}.feedback-status-new{color:var(--warning);background:#3a331e}.feedback-status-acknowledged{color:var(--accent);background:#1e3a5f}.feedback-status-resolved{color:var(--success);background:#1e3a2e}.feedback-status-wont_fix{color:var(--text-dim);background:#2a2a3e}.feedback-message-line{-webkit-line-clamp:3;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.feedback-page .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.feedback-meta{font-size:.8rem}.feedback-reply{color:var(--text);border-left:3px solid var(--accent);white-space:pre-wrap;padding:.25rem .6rem;font-size:.85rem}.feedback-reply p{margin-top:.25rem}.feedback-detail{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;padding:.25rem 1rem 1rem;display:flex}.feedback-full-message{white-space:pre-wrap;overflow-wrap:anywhere;padding-top:.75rem}.feedback-facts{grid-template-columns:max-content 1fr;gap:.25rem 1rem;font-size:.85rem;display:grid}.feedback-facts dt{color:var(--text-dim)}.feedback-facts dd{overflow-wrap:anywhere}.feedback-occurrences{margin-top:.4rem;font-size:.8rem}.feedback-occurrences th,.feedback-occurrences td{padding:.4rem .6rem}.feedback-triage{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding-top:.75rem;display:flex}.feedback-triage .feedback-note{flex:1;min-width:260px}.feedback-triage>.hint,.feedback-triage>.printer-error{flex-basis:100%}.feedback-triage-actions{align-items:center;gap:.5rem;display:flex}.error-fallback{background:var(--bg-card);border:1px solid var(--error);border-radius:8px;flex-direction:column;gap:.75rem;max-width:640px;margin:2rem auto;padding:1.5rem;display:flex}.error-fallback-actions{align-items:center;gap:.75rem;display:flex}.gcode-preview{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 270px;gap:1rem;height:100%;min-height:480px;display:grid}.gp-viewport{background:#0d1117;border-radius:8px;outline:none;min-height:0;position:relative;overflow:hidden}.gp-viewport:focus-visible{box-shadow:0 0 0 2px var(--accent)}.gp-status{grid-column:1/-1;justify-content:center;align-items:center;display:flex}.gp-loading{text-align:center;flex-direction:column;gap:.5rem;width:min(360px,80%);display:flex}.gp-readout{font-variant-numeric:tabular-nums;pointer-events:none;background:#0d1117cc;border-radius:6px;flex-wrap:wrap;gap:.25rem .75rem;max-width:calc(100% - 7rem);padding:.3rem .6rem;font-size:.85rem;display:flex;position:absolute;top:.5rem;left:.5rem}.gp-notice,.gp-stats{max-width:calc(100% - 7rem);color:var(--warning);pointer-events:none;background:#0d1117cc;border-radius:6px;padding:.2rem .6rem;font-size:.8rem;position:absolute;top:2.6rem;left:.5rem}.gp-stats{color:var(--text-dim);font-variant-numeric:tabular-nums;top:auto;bottom:3.2rem}.gp-layer-slider{touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;justify-content:flex-end;width:5.5rem;display:flex;position:absolute;top:1rem;bottom:3.5rem;right:.75rem}.gp-layer-track{background:var(--border);border-radius:3px;width:6px;margin:.6rem .9rem .6rem 0;position:relative}.gp-layer-fill{background:var(--accent);border-radius:3px;position:absolute;left:0;right:0}.gp-layer-handle{background:var(--text);border:3px solid var(--accent);border-radius:50%;outline:none;width:18px;height:18px;margin:0 0 -9px -9px;position:absolute;left:50%}.gp-layer-handle:focus-visible{box-shadow:0 0 0 3px #4a9eff80}.gp-layer-label{white-space:nowrap;font-variant-numeric:tabular-nums;background:#0d1117d9;border-radius:4px;flex-direction:column;align-items:flex-end;padding:.1rem .35rem;font-size:.8rem;font-weight:600;line-height:1.15;display:flex;position:absolute;top:50%;right:22px;transform:translateY(-50%)}.gp-layer-label small{color:var(--text-dim);font-size:.7rem;font-weight:400}.gp-layer-bottom .gp-layer-label{transform:translateY(10%)}.gp-layer-top .gp-layer-label{transform:translateY(-90%)}.gp-scrub{background:#0d1117cc;border-radius:6px;flex-direction:column;gap:.2rem;padding:.35rem .6rem;display:flex;position:absolute;bottom:.6rem;left:.75rem;right:7rem}.gp-scrub input[type=range]{width:100%;accent-color:var(--accent)}.gp-scrub-label{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.gp-side{flex-direction:column;gap:1rem;min-height:0;font-size:.85rem;display:flex;overflow-y:auto}.gp-side>section{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;flex-shrink:0;padding:.75rem}.gp-color-mode{color:var(--text-dim);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.gp-color-mode select{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;flex:1;padding:.3rem;font-size:.85rem}.gp-legend-list{flex-direction:column;gap:1px;list-style:none;display:flex}.gp-legend-item{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;grid-template-columns:.9rem minmax(0,1fr) auto 2.5rem;align-items:center;gap:.45rem;padding:.2rem .3rem;display:grid}.gp-legend-item:hover{background:var(--bg-card-hover)}.gp-legend-item.static{cursor:default;grid-template-columns:.9rem minmax(0,1fr)}.gp-legend-item.off{color:var(--text-dim)}.gp-legend-item.off .gp-swatch{opacity:.25}.gp-legend-item.off .gp-legend-name{text-decoration:line-through}.gp-swatch{vertical-align:-.1rem;border:1px solid #fff3;border-radius:3px;width:.9rem;height:.9rem;display:inline-block}.gp-legend-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gp-legend-time,.gp-legend-pct{color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right}.gp-gradient-bar{border-radius:3px;height:.7rem}.gp-gradient-labels{color:var(--text-dim);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:.2rem;display:flex}.gp-options{flex-direction:column;gap:.35rem;display:flex}.gp-options label{cursor:pointer;align-items:center;gap:.4rem;display:flex}.gp-summary h4{margin:0 0 .5rem;font-weight:500}.gp-summary dl{grid-template-columns:auto minmax(0,1fr);gap:.3rem .75rem;margin-bottom:.5rem;display:grid}.gp-summary dt{color:var(--text-dim);white-space:nowrap}.gp-summary dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}@media (width<=1000px){.gcode-preview{grid-template-rows:minmax(420px,70vh) auto;grid-template-columns:minmax(0,1fr);height:auto}}.slice-history{border:1px solid var(--border);border-radius:6px;flex-shrink:0;padding:.4rem .7rem;font-size:.85rem}.slice-result-waiting .slice-history{width:min(640px,92%)}.slice-history summary{cursor:pointer}.slice-history ul{max-height:9.5rem;margin:.4rem 0 0;padding:0;list-style:none;overflow-y:auto}.slice-history-row{border-radius:4px;align-items:center;gap:.4rem;display:flex}.slice-history-row.current{background:#4a9eff1f}.slice-history-row.compared{background:#3d8bfd14;box-shadow:inset 3px 0 #3d8bfd}.slice-history-pick{min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:baseline;gap:.75rem;padding:.25rem .4rem;display:flex}.slice-history-pick:disabled{cursor:default}.slice-history-pick:not(:disabled):hover{color:var(--accent)}.slice-history-when{min-width:5.5rem;color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0}.slice-history-what{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.slice-history-stats{color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0}.slice-history-actions{flex-shrink:0;display:flex}.slice-history-actions .btn-sm{padding:.15rem .5rem}.btn-sm.active{color:var(--text);border-color:var(--accent);background:#4a9eff26}.slice-history-limits{margin-top:.4rem}.slice-history-limits input{width:4.5em;padding:.1rem .3rem}.slice-again{margin-top:.4rem}.cmp-a{color:#f0a030}.cmp-b{color:#3d8bfd}.cmp-side-by-side{grid-template-columns:1fr 1fr;gap:2px;height:100%;padding-right:6rem;display:grid}.cmp-pane{background:#0d1117;min-width:0;min-height:0;position:relative}.cmp-pane-label{pointer-events:none;background:#0d1117cc;border-radius:4px;padding:.15rem .5rem;font-size:.8rem;position:absolute;bottom:.5rem;left:.5rem}.cmp-controls{flex-direction:column;gap:.5rem;display:flex}.cmp-sides{align-items:center;gap:.4rem;display:flex}.cmp-sides>span{overflow-wrap:anywhere;flex:1;min-width:0}.cmp-sides>.cmp-b{text-align:right}.cmp-buttons{flex-wrap:wrap;gap:.25rem;display:flex}.cmp-numbers h4,.cmp-settings h4{margin:0 0 .4rem}.cmp-numbers table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.cmp-numbers th,.cmp-numbers td{text-align:right;white-space:nowrap;padding:.15rem .25rem}.cmp-numbers th[scope=row]{text-align:left;white-space:normal;font-weight:400}.cmp-numbers tr.cmp-sub th[scope=row]{color:var(--text-dim);padding-left:.75rem}.cmp-numbers .cmp-more{color:var(--warning)}.cmp-numbers .cmp-less{color:var(--success)}.cmp-settings ul{margin:0;padding:0;list-style:none}.cmp-settings li{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;gap:0 .4rem;padding:.2rem 0;display:grid}.cmp-settings li .cmp-setting{grid-column:1/-1}.cmp-settings li .cmp-a,.cmp-settings li .cmp-b{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.cmp-settings li [aria-hidden]{display:none}.cmp-settings details{margin-top:.4rem}@media (width<=800px){.slice-history-when{min-width:0}.slice-history-stats{display:none}.cmp-side-by-side{grid-template-rows:1fr 1fr;grid-template-columns:1fr}}.job-header{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.job-page .job-header h2{overflow-wrap:anywhere;margin-bottom:0}.job-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.job-actions .btn-primary{width:auto;padding:.5rem 1.25rem}.job-actions a.btn-sm{text-decoration:none}.job-facts{flex-wrap:wrap;gap:.5rem 1.75rem;margin-bottom:1rem;font-size:.85rem;display:flex}.job-facts dt{color:var(--text-dim);font-size:.75rem}.job-facts dd{overflow-wrap:anywhere}.job-alert{border:1px solid var(--warning);background:#fbbf2414;border-radius:8px;margin-bottom:1rem;padding:.65rem .9rem;font-size:.9rem}.job-alert ul{margin:.35rem 0;padding-left:1.2rem}.job-alert-support{border-color:var(--error);background:#f871711a}.job-alert-support strong{color:var(--error)}.job-progress{flex-direction:column;gap:.35rem;max-width:420px;margin-bottom:1rem;display:flex}.job-plates{gap:2px;margin-bottom:.5rem;display:flex}.job-plates button{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:.35rem .8rem}.job-plates button.active{color:var(--accent);border-color:var(--accent);background:var(--bg-card)}.job-preview{height:calc(100vh - 16rem);min-height:520px;margin-bottom:1rem}@media (width<=1000px){.job-preview{height:auto;min-height:0}}.job-technical{margin-top:1rem}.job-technical ul{overflow-wrap:anywhere;padding-left:1.2rem}.outcome-badge{white-space:nowrap;border-radius:4px;padding:.15rem .5rem;font-size:.8rem}.outcome-good{color:var(--success);background:#1e3a2e}.outcome-partial{color:var(--warning);background:#3a331e}.outcome-failed{color:var(--error);background:#3a1e1e}.outcome-unchecked{border:1px dashed var(--warning);color:var(--warning)}.outcome-none{color:var(--text-dim)}.page>.checkbox-label{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.page>.checkbox-label input{width:auto}.outcome-quick{gap:.5rem;display:flex}.outcome-lines input[type=number]{width:5rem}.outcome-dialog textarea{width:100%}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.page-header h2,.page-header h4{margin:0}.filters{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.filters input[type=search]{flex:1;min-width:12rem}.project-bar{background:var(--bg);border:1px solid var(--border);border-radius:3px;min-width:8rem;height:.6rem;margin-bottom:.2rem;display:flex;overflow:hidden}.project-bar-good{background:var(--success)}.project-bar-unchecked{background:repeating-linear-gradient(45deg, var(--warning) 0 4px, transparent 4px 8px)}.project-bar-printing{background:var(--accent)}.project-bar-queued{background:var(--text-dim);opacity:.6}.project-progress-cell{min-width:12rem}.project-open{color:var(--accent);background:#1e3a5f}.project-printed{color:var(--success);background:#1e3a2e}.project-ready{color:var(--success);background:#2a3a1e}.project-shipped{color:var(--text-dim);background:#2a2a3e}.project-on_hold{color:var(--warning);background:#3a331e}.project-cancelled{color:var(--text-dim);background:#2a2a3e;text-decoration:line-through}.project-form{max-width:36rem;margin-bottom:1rem}.project-notes{white-space:pre-wrap}.project-job{border:1px solid var(--border);border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem}.project-plates{flex-direction:column;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.project-plates li{align-items:center;gap:.75rem;display:flex}.item-done td.cell-title{color:var(--success)}.item-reprint{color:var(--warning);font-size:.85rem}.item-quantity{width:5rem}.add-item{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.add-item input[type=number]{width:5rem}.job-projects ul{margin:.25rem 0 .5rem;padding-left:1.25rem}.queue-printers{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.75rem;margin:.75rem 0 1rem;display:grid}.queue-printer{border:1px solid var(--border);border-left:4px solid var(--success);background:var(--bg-card);border-radius:8px;flex-direction:column;gap:.3rem;padding:.6rem .75rem;display:flex}.queue-printer.busy{border-left-color:var(--accent)}.queue-printer-name{font-weight:600}.queue-printer-next{font-size:.9rem}.queue-printer button{align-self:flex-start}.send-mode-yolo{color:var(--error);letter-spacing:.05em;background:#3a1e1e;border-radius:3px;margin-left:.4rem;padding:.05rem .35rem;font-size:.7rem;font-weight:700}.queue-unchecked{border:1px dashed var(--warning);border-radius:8px;margin-bottom:1rem;padding:.5rem 1rem}.queue-unchecked h3{margin:.25rem 0;font-size:1rem}.queue-unchecked ul{margin:0;padding-left:1.25rem}.queue-unchecked li{margin:.3rem 0}.queue-priority{align-items:center;gap:.35rem;display:inline-flex}.queue-priority input{width:4.5rem}.queue-queued{color:var(--text-dim);background:#2a2a3e}.queue-sent{color:var(--accent);background:#1e3a5f}.queue-printed{color:var(--success);background:#1e3a2e}.queue-failed{color:var(--error);background:#3a1e1e}.queue-cancelled{color:var(--text-dim);background:#2a2a3e}.inline-label{align-items:center;gap:.25rem;display:inline-flex}.inline-label input{width:4.5rem}.project-plate-text{flex:1}.data-table input,.filters select,.filters input,.add-item input,.add-item select,.outcome-dialog textarea,.project-form textarea,.job-projects select,.job-projects input{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.3rem .45rem;font-family:inherit;font-size:.85rem}.project-form textarea{width:100%}@media (width<=800px),(pointer:coarse){.data-table input,.filters select,.filters input,.add-item input,.add-item select,.outcome-dialog textarea{font-size:16px}}.project-job h4 a,.page>p.hint a{color:var(--accent)}.pools-editor{flex-direction:column;gap:.5rem;display:flex}.pools-editor>button{align-self:flex-start}.pool-row{border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.pool-form{border:1px solid var(--accent);border-radius:6px;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.pool-form fieldset{border:1px solid var(--border);border-radius:4px;flex-wrap:wrap;gap:.25rem 1rem;display:flex}.pool-form legend{color:var(--text-dim);font-size:.85rem}.integration-form{border:1px solid var(--border);border-radius:8px;max-width:36rem;margin:.75rem 0 1rem;padding:.75rem 1rem}.integration-form fieldset{border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:.25rem;display:flex}.integration-form legend{color:var(--text-dim);font-size:.85rem}.integration-form>button{align-self:flex-start}.secret-once{background:var(--bg);border:1px solid var(--border);-webkit-user-select:all;user-select:all;border-radius:4px;padding:.5rem;overflow-x:auto}.webhook-row{flex-wrap:wrap;align-items:flex-start;margin-bottom:.5rem}.webhook-main{word-break:break-all;flex:1;min-width:16rem}.deliveries{margin-top:.5rem;font-size:.85rem}.filters input[type=date]{min-width:9.5rem}.send-mode-confirm{color:var(--accent);background:#1e3a5f;border-radius:3px;margin-left:.4rem;padding:.05rem .35rem;font-size:.7rem;font-weight:600}.send-mode-select{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.2rem .3rem;font-size:.8rem}.queue-bed{color:var(--warning);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.outcome-dialog .checkbox-label{align-items:center;gap:.5rem;display:flex}.outcome-dialog .checkbox-label input{width:auto}.update-banner{z-index:50;border:1px solid var(--accent);background:var(--bg-surface);border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.6rem 1rem;font-size:.9rem;display:flex;position:sticky;top:0}.update-banner .btn-sm{flex-shrink:0;margin-right:0}.sidebar-whats-new{align-items:center;gap:.4rem;padding-bottom:.5rem;display:flex}.sidebar-whats-new .link-button{text-decoration:none}.sidebar-install{margin-top:-.5rem;padding-bottom:.5rem}.sidebar-install .link-button{text-decoration:none}.sidebar-install .hint{margin-top:.25rem;font-size:.8rem}.whats-new-dot{background:var(--warning);border-radius:50%;width:.5rem;height:.5rem}.whats-new-entries{flex-direction:column;gap:1rem;display:flex}.modal .whats-new-entry h4{color:var(--text);text-transform:none;letter-spacing:normal;margin:0 0 .4rem;font-size:1rem}.whats-new-entry ul{flex-direction:column;gap:.3rem;margin:0;padding-left:1.25rem;display:flex}.whats-new-fixes{color:var(--text-dim);margin:.4rem 0 0}.whats-new-build{margin:0}.whats-new-dialog .modal-actions{align-items:center}.whats-new-dialog .modal-actions .link-button{white-space:nowrap;margin-right:auto}.whats-new-dialog .modal-actions .btn-primary{width:auto}@media (width<=800px){.update-banner{flex-direction:column;align-items:stretch}}.notify-device{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.5rem 0;display:flex}.notify-device .btn-primary{width:auto}.notify-prefs{max-width:36rem;margin:.75rem 0 1rem}.notify-prefs fieldset{border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:.25rem;margin:0 0 .5rem;padding:.4rem .75rem .6rem;display:flex}.notify-prefs legend{color:var(--text-dim);font-size:.85rem}.source-footer{text-align:center;margin:0}.sidebar-source{gap:.75rem;display:flex}.sidebar-source .link-button{text-decoration:none}
