:root{color-scheme:light;--bg: #f1f0ec;--panel: #ffffff;--panel-2: #f7f6f2;--panel-3: #ebe9e3;--border: #dcd9d2;--border-soft: #e9e7e1;--text: #1b1a17;--text-soft: #47443e;--muted: #6e6b63;--muted-2: #78746b;--accent: #00615c;--accent-strong: #00443f;--hot: #c2500f;--danger: #a83a2c;--warn: #9a6a12;--ok: #2c7a54;--btn-primary-bg: #1b1a17;--btn-primary-text: #ffffff;--btn-primary-hover: #333029;--ok-panel-bg: #eaf3ed;--ok-panel-border: #cfe3d7;--card-border: color-mix(in srgb, var(--border) 65%, transparent);--shadow: 0 1px 2px rgba(27, 26, 23, .05);--shadow-soft: 0 1px 1px rgba(27, 26, 23, .05);--hover-row: rgba(27, 26, 23, .03);--nav-active-bg: transparent;--badge-warn-bg: #f7edd6;--badge-warn-text: #7a5310;--badge-danger-bg: #fbe4e0;--badge-danger-text: #96311f;--badge-info-bg: #dceceb;--badge-info-text: #00504b;--badge-success-bg: #dceee3;--badge-success-text: #1f5f41;--badge-neutral-bg: #ebe9e3;--badge-neutral-text: #47443e;--font-ui: "Golos Text", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-1: 11px;--fs-2: 12px;--fs-3: 13px;--fs-4: 14px;--fs-5: 15px;--fs-6: 20px;--fs-7: 26px;--fs-8: 40px;--radius: 16px;--radius-sm: 12px;--radius-pill: 999px}[data-theme=dark]{color-scheme:dark;--bg: #131210;--panel: #1c1b18;--panel-2: #232220;--panel-3: #2c2a27;--border: #3a3733;--border-soft: #2e2c28;--text: #f0eee9;--text-soft: #cfccc4;--muted: #9c978d;--muted-2: #a29d93;--accent: #5fbfb4;--accent-strong: #8fd8cf;--hot: #f0803f;--danger: #ef7a68;--warn: #e0a03a;--ok: #4fbe87;--btn-primary-bg: #f0eee9;--btn-primary-text: #1b1a17;--btn-primary-hover: #ffffff;--ok-panel-bg: rgba(44, 122, 84, .16);--ok-panel-border: rgba(79, 190, 135, .26);--card-border: var(--border);--shadow: 0 1px 2px rgba(0, 0, 0, .36), 0 10px 30px -20px rgba(0, 0, 0, .8);--shadow-soft: 0 1px 2px rgba(0, 0, 0, .28);--hover-row: rgba(255, 255, 255, .04);--badge-warn-bg: #40320f;--badge-warn-text: #e8bc63;--badge-danger-bg: #3f1d17;--badge-danger-text: #f0a394;--badge-info-bg: #103432;--badge-info-text: #8fd8cf;--badge-success-bg: #123a28;--badge-success-text: #7fd6a6;--badge-neutral-bg: #2c2a27;--badge-neutral-text: #cfccc4}*{box-sizing:border-box}body{margin:0;font-family:var(--font-ui);font-size:var(--fs-5);line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong)}h1,h2,h3,h4{font-weight:600;letter-spacing:-.01em}h2{font-size:var(--fs-7);line-height:1.18;margin:0 0 6px;color:var(--text)}h3,h4{color:var(--text)}:focus-visible{outline:2px solid var(--hot);outline-offset:2px;border-radius:4px}.icon{flex:0 0 auto;vertical-align:-.14em}.icon.hot{color:var(--hot)}.eyebrow,th,.spec-label,.zone-title,.dryer-presets-label,.dryer-live-metric span,.printer-lifetime-hero span,.printer-lifetime-stat span,table.cards-mobile td:before{font-size:var(--fs-1);font-weight:700;line-height:1.25;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-2)}.mono,.kpi-value,.sd-stats b,.hub-stats b,.zone-metrics b,.zone-file-box,.act-amount,.dryer-live-metric b,.printer-lifetime-hero b,.printer-lifetime-stat b{font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.app-shell{min-height:100vh}.topnav{background:color-mix(in srgb,var(--bg) 84%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:30}.topnav-inner{max-width:1440px;margin:0 auto;padding:18px 32px 16px;display:flex;align-items:center;gap:28px}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:var(--fs-6);letter-spacing:-.025em;white-space:nowrap;color:var(--text)}.topnav-links{display:flex;gap:4px;align-items:center}.topnav-links>a,.nav-more-btn{min-height:36px;display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border-radius:var(--radius-pill);border:1px solid transparent;background:transparent;color:var(--muted);white-space:nowrap;cursor:pointer;font-size:var(--fs-4);font-weight:500;transition:color .15s,background .15s}.nav-more-btn .icon{color:var(--muted-2);transition:transform .15s}.nav-more-btn[aria-expanded=true]{color:var(--text)}.nav-more-btn[aria-expanded=true] .icon{transform:rotate(180deg)}.topnav-links>a:hover,.nav-more-btn:hover{background:transparent;color:var(--text)}.topnav-links>a.active{color:var(--text);background:var(--panel);border-color:transparent;font-weight:600;box-shadow:var(--shadow)}.nav-more{position:relative}.nav-more-menu{position:absolute;left:0;top:100%;margin-top:8px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:6px;min-width:190px;box-shadow:var(--shadow)}.nav-more-menu:before{content:"";position:absolute;left:0;right:0;top:-9px;height:9px}.nav-more-menu a{display:block;padding:9px 12px;border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-4)}.nav-more-menu a:hover{background:var(--hover-row);color:var(--accent)}.nav-more-menu a.active{color:var(--accent)}.topnav-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.app-content{max-width:1440px;margin:0 auto;padding:32px 64px 64px}@media(max-width:760px){.topnav-inner{flex-wrap:wrap;gap:12px;padding:10px 16px}.app-content{padding:16px}}.card{background:var(--panel);border:1px solid var(--card-border);border-radius:var(--radius);padding:24px;margin-bottom:16px;box-shadow:var(--shadow)}.card-title{margin:0;font-size:var(--fs-5);line-height:1.35;font-weight:600;color:var(--text);letter-spacing:-.02em}.card-sub{color:var(--muted);font-size:var(--fs-3);margin:6px 0 16px}table{width:100%;border-collapse:collapse;font-size:var(--fs-4)}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--border-soft);vertical-align:middle}td{font-variant-numeric:tabular-nums}tbody tr{transition:background .12s}tbody tr:hover{background:var(--hover-row)}td a{color:var(--text);font-weight:600}td a:hover{color:var(--accent)}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;min-height:40px;padding:9px 18px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-4);font-weight:600;font-family:var(--font-ui);transition:background .15s,border-color .15s,color .15s}button:hover{background:var(--btn-primary-hover)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--panel);border:1px solid var(--border);color:var(--text-soft);font-weight:500}button.secondary:hover{background:var(--panel);border-color:var(--muted-2);color:var(--text)}button.danger{background:var(--danger)}tr.row-active>td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.loc-tree,.loc-children{list-style:none;margin:0;padding:0}.loc-children{margin-left:12px;padding-left:12px;border-left:1.5px solid var(--border)}.loc-node{min-width:0}.loc-row{display:flex;align-items:flex-start;gap:8px;padding:8px 8px 8px 4px;border-radius:10px;transition:background .12s}.loc-row:hover{background:var(--hover-row)}.loc-row.is-editing,.loc-row.is-editing:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}.loc-twist{flex:none;width:24px;height:24px;margin-top:1px;display:grid;place-items:center;background:transparent;border:0;border-radius:8px;padding:0;color:var(--muted);cursor:pointer}.loc-twist:hover{background:var(--panel-3);color:var(--text)}.loc-twist>svg{transform:rotate(-90deg);transition:transform .15s}.loc-twist.open>svg{transform:rotate(0)}.loc-twist.leaf{cursor:default}.loc-main{flex:1;min-width:0;padding-top:2px}.loc-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.loc-name{font-weight:600;overflow-wrap:anywhere}.loc-count{flex:none;font-size:var(--fs-1);font-weight:600;color:var(--muted-2);background:var(--panel-3);padding:1px 8px;border-radius:var(--radius-pill)}.loc-sub{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-top:3px;font-size:var(--fs-2);color:var(--muted)}.loc-desc{overflow-wrap:anywhere}.loc-actions{flex:none;display:flex;gap:6px;margin-left:auto}.loc-row .icon-btn{min-height:30px;min-width:30px}.loc-row.is-editing{display:block}.loc-edit{width:100%}.loc-edit-actions{display:flex;gap:8px;margin-top:12px}.loc-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:28px 16px;color:var(--text-soft)}.loc-empty>svg{color:var(--muted);margin-bottom:2px}.loc-empty .muted{max-width:42ch;font-size:var(--fs-3)}@media(max-width:640px){.loc-children{margin-left:8px;padding-left:10px}.loc-row{gap:6px}.loc-twist{width:28px;height:28px}}button.danger.secondary{background:var(--panel);font-weight:500;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));color:var(--danger)}button.danger.secondary:hover{background:color-mix(in srgb,var(--danger) 10%,var(--panel));border-color:var(--danger);color:var(--danger)}button.danger:hover{background:color-mix(in srgb,var(--danger) 85%,#000)}input,select,textarea{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:10px 12px;font-size:var(--fs-4);font-family:var(--font-ui);width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.65}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20stroke='%236e6b63'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2.5%204.5%206%208l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 12px}select::-ms-expand{display:none}[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20stroke='%239c978d'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2.5%204.5%206%208l3.5-3.5'/%3E%3C/svg%3E")}label{display:block;font-size:var(--fs-2);font-weight:600;color:var(--muted);margin:10px 0 6px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:160px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--fs-2);font-weight:600;background:var(--badge-neutral-bg);color:var(--badge-neutral-text)}.badge.almost_empty{background:var(--badge-warn-bg);color:var(--badge-warn-text)}.badge.empty{background:var(--badge-danger-bg);color:var(--badge-danger-text)}.badge.in_use{background:var(--badge-info-bg);color:var(--badge-info-text)}.badge.added{background:var(--badge-success-bg);color:var(--badge-success-text)}.badge.used{background:var(--badge-danger-bg);color:var(--badge-danger-text)}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login-card{width:min(380px,100%);padding:28px}.login-card h1{font-size:var(--fs-7);margin:10px 0 14px}.error{color:var(--danger);font-size:var(--fs-3);margin-top:8px}.printer-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:12px;font-size:var(--fs-3);font-weight:500}.printer-hint{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid color-mix(in srgb,var(--border-soft) 70%,transparent);color:var(--muted);font-size:var(--fs-2)}.printer-hint>.icon{flex:0 0 auto}.printer-error-main{display:flex;gap:10px;align-items:baseline;justify-content:space-between}.printer-error-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.printer-error-actions>a{color:var(--danger);white-space:nowrap;text-decoration:underline}.printer-error-reset{background:none;border:1px solid color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--fs-2);padding:2px 8px;white-space:nowrap}.printer-error-reset:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,transparent)}.printer-error-reset:disabled{opacity:.5;cursor:default}.printer-error-close{background:none;border:none;color:var(--danger);cursor:pointer;font-size:var(--fs-6);line-height:1;padding:0 2px;opacity:.6}.printer-error-close:hover{opacity:1}.printer-error-code{font-weight:700}.printer-error-raw{margin-top:4px;font-size:var(--fs-2);font-weight:400;opacity:.75}.muted{color:var(--muted)}.dash-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.dash-kpis .card{padding:14px}.dash-main{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;align-items:stretch;margin-bottom:16px}.dash-main .card{margin-bottom:0;padding:16px}.bar-legend{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:10px;font-size:var(--fs-2);color:var(--text-soft)}.bar-legend-item{display:inline-flex;align-items:center;gap:5px}.bar-legend-item i{width:9px;height:9px;border-radius:3px;flex:none}.dash-quick{display:flex;flex-direction:column}.dash-quick-body{flex:1 1 auto}@media(max-width:1100px){.dash-kpis{grid-template-columns:repeat(2,1fr)}.dash-main{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.dash-main{grid-template-columns:minmax(0,1fr)}}.dash-printers{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin-bottom:24px}.dash-printers>*{min-width:0}.moonraker-card{position:relative;display:flex;flex-direction:column}.kpi{display:flex;flex-direction:column;gap:4px}.kpi-top{display:flex;justify-content:space-between;align-items:flex-start}.kpi-label{color:var(--muted);font-size:var(--fs-3);font-weight:600}.kpi-value{font-size:var(--fs-7);font-weight:600;line-height:1.12;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.kpi-sub{font-size:var(--fs-2);color:var(--muted)}.act-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-pill);font-size:var(--fs-2);font-weight:600}.act-tag.used{background:var(--badge-warn-bg);color:var(--badge-warn-text)}.act-tag.added{background:var(--badge-success-bg);color:var(--badge-success-text)}.act-tag.in_use{background:var(--badge-info-bg);color:var(--badge-info-text)}.act-tag.updated,.act-tag.moved{background:var(--badge-neutral-bg);color:var(--badge-neutral-text)}.lowstock-bar{height:6px;border-radius:6px;background:var(--panel-3);overflow:hidden;margin-top:8px}.lowstock-bar>div{height:100%;background:var(--danger);border-radius:5px}.inv-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;padding:12px;border-radius:var(--radius);background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid color-mix(in srgb,var(--border) 55%,transparent);box-shadow:var(--shadow-soft)}.inv-search{flex:1;min-width:200px}.filter-chip{background:var(--panel);border:1px solid var(--border);color:var(--text-soft);border-radius:var(--radius-sm);padding:9px 12px;font-weight:500;width:auto}.filter-chip:hover{background:var(--panel);border-color:var(--muted-2);color:var(--text)}.inv-thumb{width:42px;height:42px;border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}.mat-pill{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--fs-2);font-weight:600;color:var(--text-soft);background:var(--panel)}.swatch{width:14px;height:14px;border-radius:50%;border:1px solid var(--border);display:inline-block;vertical-align:middle}.seg{display:inline-flex;gap:3px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--border) 35%,transparent);overflow:hidden}.seg button{min-height:30px;background:transparent;border:none;padding:6px 12px;color:var(--muted);border-radius:8px;font-weight:600}.seg button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-soft)}.progress{height:7px;border-radius:7px;background:var(--panel-3);overflow:hidden}.progress>div{height:100%;border-radius:7px;transition:width .6s ease;box-shadow:inset 0 0 0 1px #1b1a1724}.fil-edge{box-shadow:inset 4px 0 0 var(--fil, transparent),inset 5px 0 0 var(--border)}.spool-card{cursor:pointer;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow),inset 0 4px 0 var(--fil, transparent),inset 0 5px 0 var(--border)}.spool-card:hover{border-color:var(--muted-2)}.inline-ico{display:inline-flex;align-items:center;gap:5px}.progress>.progress-indeterminate{width:35%;transition:none;animation:progress-slide 1.6s ease-in-out infinite}@keyframes progress-slide{0%{margin-left:-35%}to{margin-left:100%}}@media(prefers-reduced-motion:reduce){.progress>.progress-indeterminate{animation:none;margin-left:0}}.kebab-wrap{position:relative;display:inline-block}.kebab-menu{position:absolute;right:0;top:100%;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:175px;z-index:10;padding:5px;box-shadow:var(--shadow)}.kebab-menu button{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:8px 10px;border-radius:var(--radius-sm);font-weight:500}.kebab-menu button:hover{background:var(--hover-row);color:var(--accent)}.inv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.inv-row:hover{background:var(--hover-row)}.icon-btn{min-height:32px;min-width:32px;background:transparent;border:1px solid var(--border);color:var(--text-soft);padding:5px 8px;border-radius:10px}.icon-btn:hover{background:var(--panel);border-color:var(--muted-2);color:var(--text)}.icon-btn.danger{background:transparent;border-color:var(--border);color:var(--danger)}.icon-btn.danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:var(--danger);color:var(--danger)}.form-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:16px;align-items:start}@media(max-width:1000px){.form-grid{grid-template-columns:1fr}}.photo-drop{width:130px;height:130px;border:1px dashed var(--border);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--muted);background:var(--panel-2);overflow:hidden}.photo-drop img{width:100%;height:100%;object-fit:cover}.field-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.unit-input{display:flex;align-items:center;gap:6px}.unit-input input{flex:1}.unit{color:var(--muted);font-size:var(--fs-3)}.req{color:var(--danger)}.sd-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.sd-crumbs{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-head-actions{display:flex;gap:8px;flex:0 0 auto}@media(max-width:640px){.sd-head{flex-wrap:wrap}.sd-crumbs{flex:1 1 100%}.sd-head-actions{width:100%}.sd-head-actions>button{flex:1 1 0;min-width:0}}.sd-ident{display:flex;align-items:center;gap:16px;margin:12px 0 16px}.sd-ident-chip{flex:0 0 auto;width:62px;height:62px;border-radius:14px;border:1px solid var(--border);object-fit:cover;display:block}.sd-ident-body{min-width:0}.sd-ident-body h2{margin:0 0 6px}.sd-meta{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:0;color:var(--muted);font-size:var(--fs-3)}.sd-color{display:inline-flex;align-items:baseline;gap:7px;color:var(--text);font-weight:600}.sd-color b{color:var(--muted);font-weight:500;font-size:var(--fs-2)}@media(max-width:640px){.sd-ident{gap:12px}.sd-ident-chip{width:48px;height:48px;border-radius:11px}}.sd-hero{display:flex;gap:28px;align-items:center;flex-wrap:wrap}.spool-gauge{flex:0 0 auto}.spool-gauge-pct{font-family:var(--font-mono);font-size:24px;font-weight:700;fill:var(--text);letter-spacing:-.03em}.sd-hero-body{flex:1 1 380px;min-width:0}.sd-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 20px}.sd-stats>div{display:flex;flex-direction:column;gap:2px;min-width:0}.sd-stats b{font-size:var(--fs-8);line-height:1;font-weight:800;letter-spacing:-.03em}.sd-stats em{color:var(--muted);font-size:var(--fs-2);font-style:normal;font-weight:600}.sd-update{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 20px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-soft)}.sd-update label{margin:0}.sd-update .unit-input{margin-top:5px}.sd-profile{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap}.sd-profile>.eyebrow{flex:0 0 auto}.sd-profile-items{flex:1 1 auto;display:flex;gap:10px 22px;flex-wrap:wrap;align-items:baseline;color:var(--muted);font-size:var(--fs-3)}.sd-profile-items>span{display:inline-flex;align-items:baseline;gap:6px}.sd-profile-items b{color:var(--text);font-size:var(--fs-5);font-weight:700}.sd-profile>button{flex:0 0 auto;margin-left:auto}.sd-utility{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;align-items:stretch;margin-bottom:16px}.sd-utility>.card{margin-bottom:0}.sd-specs{columns:4 260px;column-gap:32px;margin-top:12px}.sd-specs>div{break-inside:avoid;margin-bottom:18px}.sd-specs-group{font-weight:600;font-size:var(--fs-4);margin-bottom:4px}.sd-specs .row-item{gap:16px}.sd-specs .row-item .k{flex:0 1 auto}.sd-bottom{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}.sd-bottom>.card{margin-bottom:0}@media(max-width:900px){.sd-bottom{grid-template-columns:minmax(0,1fr)}}.spec-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}@media(max-width:800px){.spec-form-grid{grid-template-columns:repeat(2,1fr)}}.row-item{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-soft);font-size:var(--fs-4)}.row-item .k{color:var(--muted)}.chip-select{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:32px;background:var(--panel);border:1px solid var(--border);color:var(--text-soft);border-radius:var(--radius-pill);padding:6px 12px;font-size:var(--fs-3);font-weight:600;cursor:pointer}.chip:hover{background:var(--panel);border-color:var(--muted-2);color:var(--text)}.chip-on{background:color-mix(in srgb,var(--accent) 10%,var(--panel));border-color:var(--accent);color:var(--accent)}.lang-switch{display:inline-flex;gap:3px;padding:4px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--border) 35%,transparent);border-radius:10px;overflow:hidden}.lang-btn{min-height:24px;background:transparent;border:none;color:var(--muted);padding:2px 8px;font-size:var(--fs-2);font-weight:600;cursor:pointer;border-radius:6px}.lang-btn.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-soft)}.lang-btn:not(.active):hover{background:transparent;color:var(--text)}.theme-btn{min-height:32px;padding:4px 9px;font-size:var(--fs-4);line-height:1.4;border-radius:10px}.hub-gates{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.gate-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;background:var(--panel);box-shadow:var(--shadow-soft)}.gate-card.gate-warn{border-color:var(--danger)}.gate-verdict{font-weight:700;font-size:var(--fs-3)}.gate-verdict.ok{color:var(--ok)}.gate-verdict.warn{color:var(--danger)}.gate-verdict.hint{color:var(--accent)}.gate-verdict.dim{color:var(--muted)}.gate-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:16px;padding:3px 9px;font-size:var(--fs-2);background:var(--panel-2)}.gate-chip.gate-warn{border-color:var(--danger)}.hub-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.hub-stats>div{display:flex;flex-direction:column;gap:2px}.hub-stats b{font-size:var(--fs-6);font-weight:600;letter-spacing:-.02em}.hub-stats .muted{font-size:var(--fs-2)}@media(max-width:640px){.topnav-inner{flex-wrap:wrap;gap:8px;padding:10px 12px}.brand{order:0}.topnav-actions{order:1;margin-left:auto;gap:8px}.topnav-actions .muted{display:none}.topnav-links{order:2;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.topnav-links::-webkit-scrollbar{display:none}.app-content{padding:16px 12px 40px}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}th,td{white-space:nowrap}input,select,textarea{font-size:16px}.dash-kpis{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.kpi-value{font-size:var(--fs-6)}.kpi{gap:3px}.kpi-label,.kpi-sub{font-size:var(--fs-2)}.field-2{grid-template-columns:1fr}.spec-form-grid,.hub-gates,.hub-stats{grid-template-columns:1fr 1fr}.card{padding:13px 14px;margin-bottom:10px}h2{font-size:var(--fs-6);margin-bottom:4px}.dash-printers{gap:14px;margin-bottom:16px}.inv-toolbar{padding:10px;gap:8px;margin-bottom:12px}.card-sub{margin:4px 0 12px}.dash-quick{order:-1}.inv-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inv-grid .card{padding:11px;margin-bottom:0}.inv-search{min-width:100%}.inv-toolbar .filter-chip{flex:1 1 90px;min-width:90px}}@media(max-width:359px){.dash-kpis{grid-template-columns:1fr}}.dash-main>*,.form-grid>*{min-width:0}@media(max-width:1000px){.form-grid{grid-template-columns:minmax(0,1fr)}}.printer-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:24px;align-items:stretch;min-width:0}@media(max-width:900px){.printer-grid{grid-template-columns:1fr}}.printer-zone{display:flex;flex-direction:column;padding:2px 0;min-width:0}.printer-grid>.printer-zone+.printer-zone{border-left:1px solid var(--border-soft);padding-left:24px}@media(max-width:900px){.printer-grid>.printer-zone+.printer-zone{border-left:none;padding-left:0;border-top:1px solid var(--border-soft);padding-top:16px}}.zone-file-box{background:var(--panel-2);border:1px solid color-mix(in srgb,var(--border-soft) 70%,transparent);border-radius:var(--radius);padding:10px 14px;font-weight:500;font-size:var(--fs-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zone-file-row{display:flex;align-items:center;gap:12px;min-width:0}.zone-file-row>.zone-file-box{flex:1;min-width:0}.zone-thumb{flex:0 0 auto;height:88px;width:auto;max-width:190px;object-fit:contain;background:color-mix(in srgb,var(--muted-2) 14%,var(--panel-2));border:1px solid color-mix(in srgb,var(--border-soft) 70%,transparent);border-radius:var(--radius)}.dryer-control{display:flex;flex-direction:column;gap:12px}.dryer-row{padding:14px 20px;margin-top:-12px}.dryer-row-control{flex-direction:row;align-items:center;flex-wrap:wrap;gap:14px 28px}.dryer-row-control .dryer-head{flex:0 0 auto;justify-content:flex-start;gap:16px}.dryer-row-control .dryer-live-panel{flex:1 1 300px}.dryer-row-control .dryer-fields{flex:0 0 auto;margin-left:auto;width:min(240px,100%)}@media(max-width:700px){.dryer-row-control .dryer-fields{margin-left:0}}.dryer-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.dryer-title{font-weight:700;color:var(--text)}.dryer-state{display:inline-flex;align-items:center;gap:7px;margin-top:5px;color:var(--muted);font-size:var(--fs-2);font-weight:600}.dryer-state>span{width:7px;height:7px;border-radius:50%;background:var(--muted-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--muted-2) 14%,transparent)}.dryer-state.on{color:var(--text-soft)}.dryer-state.on>span{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent)}.dryer-state.pending{color:var(--text-soft)}.dryer-state.pending>span{background:var(--hot);box-shadow:0 0 0 3px color-mix(in srgb,var(--hot) 20%,transparent);animation:dryer-pulse 1.1s ease-in-out infinite}.dryer-state.error{color:var(--danger)}.dryer-state.error>span{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 16%,transparent)}.dryer-live-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;overflow:hidden;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--border-soft);box-shadow:inset 0 1px #ffffff59}.dryer-live-metric{min-width:0;display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:color-mix(in srgb,var(--panel-2) 88%,var(--panel))}.dryer-live-metric b{color:var(--text);font-size:var(--fs-6);line-height:1.05;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere}.dryer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dryer-fields label{margin-top:0}.dryer-presets{margin-top:12px;padding:10px;border-radius:var(--radius);background:color-mix(in srgb,var(--panel-2) 82%,var(--panel));border:1px solid var(--border-soft)}.dryer-presets-label{margin:0 2px 10px}.dryer-presets-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dryer-preset{min-height:70px;width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:9px;padding:11px 12px;border-radius:var(--radius-sm);background:var(--panel);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);color:var(--text);box-shadow:var(--shadow-soft);text-align:left}.dryer-preset:hover{background:color-mix(in srgb,var(--panel) 88%,var(--accent));border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.dryer-preset:disabled{opacity:.55;background:var(--panel);border-color:var(--border-soft)}.dryer-preset-material{font-size:var(--fs-5);line-height:1;font-weight:800;letter-spacing:0}.dryer-preset-values{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:var(--fs-3);font-weight:700}.dryer-preset-values span{display:inline-flex;min-height:24px;align-items:center;padding:3px 8px;border-radius:var(--radius-pill);background:var(--panel-3);color:var(--text-soft)}.apple-switch{width:52px;min-width:52px;height:32px;min-height:32px;padding:2px;border:none;border-radius:var(--radius-pill);background:var(--panel-3);display:inline-flex;align-items:center;justify-content:flex-start;box-shadow:inset 0 0 0 1px #0000000a}.apple-switch:hover{background:color-mix(in srgb,var(--panel-3) 80%,var(--text))}.apple-switch span{display:block;width:28px;height:28px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000002e,0 2px 6px #00000024;transition:transform .18s ease}.apple-switch.on{background:var(--ok)}.apple-switch.on:hover{background:var(--accent-strong)}.apple-switch.on span{transform:translate(20px)}.apple-switch.pending,.apple-switch.pending:hover{background:var(--hot);cursor:progress}.apple-switch.pending span{animation:dryer-pulse 1.1s ease-in-out infinite}@keyframes dryer-pulse{50%{opacity:.4}}@media(min-width:641px){.moonraker-card{padding:18px}}.moonraker-card:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;background:var(--brand, var(--accent));border-radius:0 4px 4px 0;opacity:.85}.printer-head{display:flex;align-items:center;gap:14px;margin-bottom:10px}.printer-head .printer-head-main{flex:1 1 auto;min-width:0}.printer-head-main h3{margin:0;font-size:var(--fs-5)}.printer-head-sub{color:var(--muted);font-size:var(--fs-3);margin-top:1px}.printer-head-status{display:flex;gap:6px;align-items:center;flex:0 0 auto}.light-switch{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--panel);color:var(--muted);font-size:var(--fs-2)}.light-switch .icon{color:var(--muted-2);flex:none}.light-switch.on .icon{color:var(--warn)}.light-switch-label{font-weight:600;margin-right:2px}.light-switch button{min-height:24px;padding:2px 10px;border:none;background:transparent;color:var(--muted);font-size:var(--fs-2);font-weight:600;border-radius:var(--radius-pill)}.light-switch button:hover:not(:disabled){background:var(--hover-row);color:var(--text)}.light-switch button.active{background:var(--panel-3);color:var(--text)}.light-switch.on button.active{background:var(--badge-warn-bg);color:var(--badge-warn-text)}@media(max-width:640px){.light-switch-label{display:none}}.cap-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.cap-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-2);color:var(--text-soft);background:var(--panel-3);border:1px solid var(--border-soft);padding:2px 8px;border-radius:var(--radius-pill)}.preset-preview{display:flex;align-items:center;gap:14px;margin:2px 0 12px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--border-soft);border-left:4px solid var(--brand, var(--accent));border-radius:var(--radius-sm)}.cat-brand{border-bottom:1px solid var(--border-soft)}.cat-brand:last-child{border-bottom:none}.cat-brand-head{display:flex;align-items:center;gap:10px;width:100%;background:transparent;color:var(--text);border:none;padding:12px 16px;font-size:var(--fs-5);font-weight:600;cursor:pointer;border-radius:0;min-height:0}.cat-brand-head:hover{background:var(--hover-row)}.cat-brand-head .cat-chevron{color:var(--muted-2);width:14px;font-size:var(--fs-2)}.cat-brand-head .muted{margin-left:auto;font-weight:400}.cat-brand table{border-top:1px solid var(--border-soft)}.cat-brand td{border-bottom:1px solid var(--border-soft)}.seg-toggle{display:flex;gap:3px;padding:3px;background:var(--panel-3);border:1px solid var(--border);border-radius:var(--radius-pill);width:100%;max-width:440px}.seg-item{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;font-size:var(--fs-4);padding:8px 10px;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.seg-item:hover:not(.active):not(:disabled){color:var(--text-soft)}.seg-item.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-soft)}.seg-item:disabled{cursor:not-allowed;opacity:.55}.seg-hint{margin-top:12px;font-size:var(--fs-3);line-height:1.5;color:var(--muted);min-height:34px}.seg-hint b{color:var(--text-soft);font-weight:600}.zone-title{margin-bottom:12px}.zone-file{font-weight:600;font-size:var(--fs-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zone-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,auto));gap:8px 46px;margin-top:12px;justify-content:start;min-width:0}.zone-metrics>div{display:flex;flex-direction:column;gap:2px}.zone-metrics .muted{font-size:var(--fs-1)}.zone-metrics b{font-size:var(--fs-5);font-weight:600}.zone-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:var(--fs-4)}.printer-lifetime{position:relative;overflow:hidden;margin:0 0 16px;padding:14px;border-radius:var(--radius);background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 96%,var(--accent)) 0%,var(--panel) 52%,var(--panel-2) 100%);border:1px solid color-mix(in srgb,var(--border) 72%,transparent);box-shadow:var(--shadow)}.printer-lifetime:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.36),transparent 42%)}.printer-lifetime-head,.printer-lifetime-body{position:relative;z-index:1}.printer-lifetime-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.printer-lifetime-title{color:var(--text);font-size:var(--fs-6);line-height:1.2;font-weight:800;letter-spacing:0}.printer-lifetime-subtitle{margin-top:2px;color:var(--muted);font-size:var(--fs-2);font-weight:600}.printer-lifetime-body{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(0,1.4fr);gap:10px}.printer-lifetime-hero,.printer-lifetime-stat{min-width:0;border:1px solid color-mix(in srgb,var(--border-soft) 80%,transparent);background:color-mix(in srgb,var(--panel) 82%,transparent);box-shadow:var(--shadow-soft)}.printer-lifetime-hero{display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-height:92px;padding:13px;border-radius:var(--radius)}.printer-lifetime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.printer-lifetime-stat{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:92px;padding:13px;border-radius:var(--radius-sm)}.printer-lifetime-hero b,.printer-lifetime-stat b{color:var(--text);line-height:.95;font-weight:800}.printer-lifetime-hero b{font-size:clamp(26px,5vw,40px);letter-spacing:-.03em}.printer-lifetime-stat b{font-size:var(--fs-7);letter-spacing:-.02em}.printer-lifetime-hero em,.printer-lifetime-stat em{color:var(--muted);font-size:var(--fs-2);line-height:1.25;font-style:normal;font-weight:600}.printer-actions>button{min-width:0}.gate-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:10px;min-width:0}.gate-tile{border:1px solid var(--border-soft);border-radius:var(--radius);padding:9px 6px 7px;text-align:center;position:relative;background:var(--panel-2);min-height:86px}.gate-tile.gate-warn{border-color:var(--danger)}.gate-tile-swatch{width:52px;height:50px;border-radius:10px;margin:0 auto 6px;border:1px solid var(--border)}.gate-tile-cap{font-size:var(--fs-1);font-weight:600;white-space:nowrap}.gate-tile .gate-verdict{position:absolute;top:4px;right:6px;font-size:var(--fs-1)}.feed-mode{margin:12px 0 16px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border-soft);background:var(--panel-2)}.feed-mode label{display:block;font-weight:600;font-size:var(--fs-2);margin-bottom:6px}.feed-mode select{max-width:340px}.feed-mode-note{font-size:var(--fs-1);margin-top:8px}tr.slot-off>td{opacity:.55}.feed-change{margin-bottom:12px;padding:12px 14px;border-radius:var(--radius);color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent)}.feed-change-head{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-3)}.feed-change-sub{font-size:var(--fs-1);margin-top:3px}.feed-change-slots{display:grid;gap:8px;margin:12px 0 10px}.feed-change-slot{display:grid;grid-template-columns:minmax(90px,130px) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:var(--fs-2)}.feed-change-clear{padding:4px 9px;line-height:1}.feed-change-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:560px){.feed-change-slot{grid-template-columns:minmax(0,1fr) auto}.feed-change-slot>span{grid-column:1 / -1}}.spool-picker{position:relative;min-width:0}.spool-picker-btn{display:flex;align-items:center;gap:8px;width:100%;min-width:220px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-weight:500;text-align:left;padding:9px 12px}.spool-picker-btn:hover:not(:disabled){background:var(--panel-2);border-color:var(--muted-2)}.spool-picker-btn>.icon{margin-left:auto;color:var(--muted)}.spool-picker-btn[aria-expanded=true]>.icon{transform:rotate(180deg)}.sp-btn-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-btn-g{font-size:var(--fs-2)}.spool-picker-menu{position:absolute;z-index:30;left:0;top:100%;margin-top:6px;width:max(370px,100%);max-width:min(460px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.spool-picker-menu.up{top:auto;bottom:100%;margin:0 0 6px}.sp-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border-soft)}.sp-search>.icon{color:var(--muted);flex:none}.sp-search input{border:none;background:transparent;padding:2px 0}.sp-search input:focus{box-shadow:none}.sp-list{max-height:min(320px,45vh);overflow-y:auto;padding:6px}.sp-opt{display:flex;align-items:center;gap:10px;width:100%;min-height:0;background:transparent;border:none;color:var(--text);padding:7px 8px;border-radius:var(--radius-sm);text-align:left;font-weight:500}.sp-opt.active,.sp-opt:hover{background:var(--hover-row)}.sp-opt.chosen{background:color-mix(in srgb,var(--accent) 10%,transparent)}.sp-dot{width:14px;height:14px;border-radius:50%;flex:none;border:1px solid var(--border)}.sp-opt-main{flex:1;min-width:0}.sp-opt-title,.slot-spool-title{display:block;font-size:var(--fs-3);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-opt-sub{display:block;font-size:var(--fs-1);color:var(--muted);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-opt-right{flex:none;width:96px;text-align:right}.sp-opt-g{display:block;font-size:var(--fs-2);color:var(--text-soft)}.sp-opt-g.low{color:var(--danger)}.sp-bar{display:block;height:4px;border-radius:4px;background:var(--panel-3);margin-top:4px;overflow:hidden}.sp-bar>i{display:block;height:100%}.sp-opt-slot{display:block;font-size:var(--fs-1);color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-empty{padding:14px 10px;font-size:var(--fs-3);text-align:center}.slot-spool{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;font-size:var(--fs-3)}.slot-spool-head{display:inline-flex;align-items:center;gap:8px;min-width:0}.slot-spool .muted,.slot-spool .sp-opt-g{font-size:var(--fs-2)}.slot-spool .sp-opt-g{display:inline}@media(max-width:640px){.spool-picker-btn{min-width:0}.spool-picker-menu{width:min(92vw,360px);left:auto;right:0}}.direct-feed{display:flex;align-items:center;gap:12px;min-width:0;cursor:pointer;border:1px solid var(--border-soft);border-radius:var(--radius);padding:10px 12px;background:var(--panel-2);color:inherit}.direct-feed:hover{border-color:var(--border)}.direct-feed--empty{border-style:dashed}.direct-feed-swatch{width:42px;height:42px;border-radius:10px;flex:0 0 auto;border:1px solid var(--border)}.direct-feed-body{min-width:0;flex:1}.direct-feed-title{font-size:var(--fs-2);font-weight:600}.direct-feed-sub{font-size:var(--fs-1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ok-panel{background:var(--ok-panel-bg);border:1px solid var(--ok-panel-border);border-radius:var(--radius-sm);padding:16px 18px;margin-top:18px}.ok-panel-title{color:var(--ok);font-weight:600;font-size:var(--fs-4)}.ok-panel .muted{font-size:var(--fs-3);margin-top:2px}.ok-panel a{text-decoration:underline;font-size:var(--fs-3)}.act-list{margin-top:6px}.act-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--border-soft)}.act-item:last-child{border-bottom:none}.act-name{font-weight:600;font-size:var(--fs-4)}.act-sub{color:var(--muted);font-size:var(--fs-2);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:520px}.act-right{text-align:right;flex-shrink:0}.act-amount{font-weight:600;font-size:var(--fs-4);font-variant-numeric:tabular-nums}.act-amount.neg{color:var(--danger)}.act-amount.pos{color:var(--ok)}.act-time{color:var(--muted);font-size:var(--fs-2);margin-top:1px}@media(max-width:640px){.printer-grid{gap:16px}.printer-head{flex-wrap:wrap}.printer-head .printer-head-main{flex-basis:55%}.printer-head-status{flex-wrap:wrap;justify-content:flex-start}.zone-metrics{grid-template-columns:1fr;gap:6px}.zone-metrics>div{flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px}.zone-file-box{white-space:normal;overflow-wrap:anywhere}.zone-thumb{height:72px;max-width:150px}.printer-actions{flex-direction:column}.printer-actions>button{width:100%}.gate-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.gate-tile-swatch{width:min(52px,70%)}.dryer-head{align-items:flex-start}.dryer-live-panel,.dryer-fields{grid-template-columns:1fr}.dryer-presets{padding:10px}.dryer-presets-label{margin-bottom:8px}.dryer-presets-list{grid-template-columns:repeat(3,1fr);gap:8px}.dryer-preset{min-height:0;padding:9px 8px;gap:6px}.dryer-preset-material{font-size:var(--fs-5)}.dryer-preset-values{flex-direction:column;align-items:flex-start;gap:4px}.printer-lifetime{padding:12px}.printer-lifetime-head{margin-bottom:8px}.printer-lifetime-body{grid-template-columns:1fr;gap:8px}.printer-lifetime-grid{grid-template-columns:1fr 1fr;gap:8px}.printer-lifetime-hero,.printer-lifetime-stat{min-height:0;padding:11px 12px;gap:4px}.printer-lifetime-hero b{font-size:var(--fs-7)}.printer-lifetime-stat b{font-size:var(--fs-6)}}.mobile-topbar,.bottom-nav{display:none}@media(max-width:760px){.topnav{display:none}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 85%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 14px;padding-top:max(8px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.mobile-topbar .brand{font-size:var(--fs-5)}.mobile-topbar-actions{display:flex;align-items:center;gap:8px}.mobile-more-btn{min-height:38px;min-width:42px;font-size:var(--fs-5);line-height:1;display:inline-flex;align-items:center;justify-content:center}.app-content{overflow-x:clip;padding-top:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:calc(74px + env(safe-area-inset-bottom))}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:color-mix(in srgb,var(--panel) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);padding:4px;padding-bottom:calc(4px + env(safe-area-inset-bottom))}.bn-item{flex:1 1 0;min-width:0;min-height:0;background:transparent;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;border-radius:10px;cursor:pointer;color:var(--muted);font-size:var(--fs-1);font-weight:600;text-align:center;white-space:nowrap;transition:color .15s}.bn-item:hover{background:transparent}.bn-ico{display:flex;line-height:1}.bn-item.active{color:var(--accent)}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0000006b;display:flex;align-items:flex-end;animation:sheet-fade .16s ease}.sheet{width:100%;background:var(--panel);border-radius:22px 22px 0 0;padding:8px 16px;padding-bottom:calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 44px #00000047;animation:sheet-up .24s cubic-bezier(.16,1,.3,1)}.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:6px auto 14px}.sheet-links{display:flex;flex-direction:column;gap:2px}.sheet-links a{display:flex;align-items:center;gap:10px;padding:14px 12px;border-radius:12px;color:var(--text);font-size:var(--fs-5);font-weight:500}.sheet-links a:hover,.sheet-links a.active{background:var(--hover-row);color:var(--accent)}.sheet-footer{margin-top:12px;padding-top:14px;border-top:1px solid var(--border-soft)}.sheet-footer-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-footer-row button{min-height:38px}.sheet-email{font-size:var(--fs-2);margin-top:12px;text-align:center}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@media(max-width:640px){table.cards-mobile{display:block;overflow:visible}table.cards-mobile thead{display:none}table.cards-mobile tbody{display:block}table.cards-mobile tr{display:block;margin-bottom:8px;padding:2px 4px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel)}table.cards-mobile tr:hover{background:var(--panel)}table.cards-mobile td{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 10px;border-bottom:1px solid var(--border-soft);white-space:normal;text-align:right}table.cards-mobile td:last-child{border-bottom:none}table.cards-mobile td:before{content:attr(data-label);flex:0 0 auto;text-align:left}table.cards-mobile td[data-label=""]{justify-content:stretch;gap:8px;padding-top:9px}table.cards-mobile td[data-label=""] button,table.cards-mobile td[data-label=""]>div>button{min-height:36px}table.cards-mobile td[data-label=""]:before{display:none}table.cards-mobile td[data-label=""]>button,table.cards-mobile td[data-label=""]>a{width:100%}table.cards-mobile td[data-label=""]{flex-wrap:wrap}table.cards-mobile td[data-label=""]>div{width:100%;flex-wrap:wrap}}.settings-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:40px;align-items:start;margin-top:20px}.settings-rail{position:sticky;top:88px;display:flex;flex-direction:column;gap:22px}.rail-group{display:flex;flex-direction:column;gap:1px}.rail-group-title{margin:0 0 7px 10px}.settings-rail .rail-item{display:flex;gap:9px;align-items:baseline;justify-content:flex-start;text-align:left;width:100%;min-height:0;white-space:normal;padding:7px 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-soft);font-size:var(--fs-4);font-weight:500;cursor:pointer;transition:background .15s,color .15s}.settings-rail .rail-item:hover{background:var(--hover-row);color:var(--text)}.settings-rail .rail-item.active{background:var(--panel);color:var(--text);font-weight:600;box-shadow:var(--shadow)}.rail-text{display:flex;flex-direction:column;gap:1px;min-width:0}.rail-name{line-height:1.3}.rail-state{color:var(--muted);font-size:var(--fs-2);font-weight:500}.settings-rail .rail-item.active .rail-state{color:var(--muted)}.rail-dot{flex:0 0 auto;width:7px;height:7px;margin-top:6px;border-radius:50%;border:1.5px solid var(--muted-2);background:transparent}.rail-dot.on{background:var(--accent);border-color:var(--accent)}.settings-sections{min-width:0}.settings-group+.settings-group{margin-top:36px}.settings-group-title{margin:0 0 12px;font-size:var(--fs-6);font-weight:700;letter-spacing:-.02em}.settings-section{scroll-margin-top:96px}.card-title-lg{margin:0 0 6px;font-size:var(--fs-5)}.settings-section>p.muted{margin-top:0}.settings-version{font-size:var(--fs-2);margin-top:36px}.settings-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 16px;align-items:start;max-width:720px;margin-top:12px}.settings-fields>:not(label){grid-column:1 / -1}.settings-fields label{margin:0}.settings-fields label>input,.settings-fields label>select{margin-top:5px}.settings-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 16px;max-width:760px}.settings-checks label{display:flex;gap:8px;align-items:center;margin:0;padding:4px 0;font-size:var(--fs-4);font-weight:500;color:var(--text-soft)}.sensor-card{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--panel-2);margin-bottom:8px;overflow:hidden}.sensor-head{display:flex;align-items:baseline;gap:10px;width:100%;justify-content:flex-start;text-align:left;white-space:normal;min-height:0;padding:10px 12px;border:none;border-radius:0;background:transparent;color:var(--text);font-size:var(--fs-4);font-weight:600}.sensor-head:hover{background:var(--hover-row)}.sensor-head .icon{align-self:center;color:var(--muted-2);transition:transform .15s}.sensor-head[aria-expanded=true] .icon{transform:rotate(180deg)}.sensor-where{margin-left:auto;font-size:var(--fs-2);font-weight:500;text-align:right}.sensor-body{margin-top:0;padding:12px;border-top:1px solid var(--border-soft)}@media(max-width:900px){.settings-layout{grid-template-columns:minmax(0,1fr);gap:22px}.settings-rail{position:static;gap:14px}.rail-group{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rail-group-title{grid-column:1 / -1;margin:0 0 2px 2px}.settings-rail .rail-item{align-items:flex-start;border-color:var(--border);background:var(--panel);box-shadow:var(--shadow-soft)}.settings-rail .rail-item.active{border-color:var(--text);box-shadow:none}.rail-dot{margin-top:7px}.settings-fields,.settings-checks{grid-template-columns:minmax(0,1fr)}.sensor-head{flex-wrap:wrap}.sensor-where{flex-basis:100%;margin-left:24px;text-align:left}}.demo-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 16px;font-size:var(--fs-3);color:var(--text);background:var(--panel-3);border-bottom:2px solid var(--hot)}.demo-banner-dot{color:var(--hot);font-size:var(--fs-1);margin-right:6px;animation:demo-pulse 2s ease-in-out infinite}@keyframes demo-pulse{0%,to{opacity:1}50%{opacity:.35}}.demo-banner-text{flex:1 1 auto;min-width:200px}.demo-banner-text b{font-weight:700}.demo-banner-link{color:var(--muted);text-decoration:underline;font-size:var(--fs-2);white-space:nowrap}.demo-banner-link:hover{color:var(--text)}.demo-banner-reset{padding:4px 12px;font-size:var(--fs-2);border-radius:var(--radius-pill);cursor:pointer;color:var(--text);background:var(--panel);border:1px solid var(--border);min-height:0;font-weight:600}.demo-banner-reset:hover{background:var(--panel);border-color:var(--muted-2)}.zone-env{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:12px}.zone-env--bare{margin-top:0;padding-top:0;border-top:0}.env-sensor-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.env-sensor{min-width:0;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border-soft);background:color-mix(in srgb,var(--panel-2) 88%,var(--panel))}.env-sensor.wet{border-color:color-mix(in srgb,var(--warn) 42%,var(--border));background:color-mix(in srgb,var(--badge-warn-bg) 45%,var(--panel-2))}.env-sensor-name{font-weight:700;margin-bottom:8px;overflow-wrap:anywhere}.env-sensor--inline{padding:0;border:0;border-radius:0;background:transparent}.env-sensor--inline.wet{background:transparent}.env-sensor--spread{padding:0;border:0;border-radius:0;background:transparent}.env-sensor--spread.wet{background:transparent}.env-spread-row{display:flex;align-items:center;justify-content:space-between;gap:10px 24px;flex-wrap:wrap}.env-sensor--spread .env-humidity{min-width:0}.env-sensor--spread>.env-gauge{height:6px;margin-top:14px}.env-sensor--spread.wet>.env-gauge .env-gauge-fill{background:var(--warn)}.env-sensor--spread .env-sensor-foot{margin:0}.env-conditions{padding:18px 20px}.env-conditions-head{display:flex;align-items:baseline;gap:4px 10px;flex-wrap:wrap;margin-bottom:14px}.env-conditions-note{color:var(--muted);font-size:var(--fs-2)}.env-conditions-list{display:flex;flex-direction:column}.env-conditions-list>.env-sensor--row+.env-sensor--row{border-top:1px solid var(--border-soft);margin-top:12px;padding-top:12px}.env-sensor--row{display:flex;align-items:center;justify-content:space-between;gap:6px 18px;flex-wrap:wrap;padding:0;border:0;border-radius:0;background:transparent}.env-sensor--row.wet{background:transparent}.env-row-name{font-weight:700;font-size:var(--fs-4);overflow-wrap:anywhere}.env-row-metrics{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap}.env-sensor--row .env-humidity{min-width:0}.env-sensor--row .env-gauge{width:56px;height:5px;margin-top:0;flex:none}.env-sensor--row.wet .env-gauge .env-gauge-fill{background:var(--warn)}.env-sensor--row .env-sensor-foot{margin:0}.env-readout{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.env-humidity{min-width:92px}.env-humidity-head{display:flex;align-items:center;gap:6px}.env-humidity-head>svg{color:var(--accent);flex:none}.env-humidity.is-wet .env-humidity-head>svg{color:var(--warn)}.env-humidity-val{font-size:var(--fs-6);line-height:1;font-weight:700;letter-spacing:-.02em;color:var(--text)}.env-humidity.is-wet .env-humidity-val{color:var(--badge-warn-text)}.env-unit{font-size:var(--fs-3);font-weight:600;margin-left:1px;color:var(--muted)}.env-flag{margin-left:2px;padding-top:1px;font-size:var(--fs-1);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--badge-warn-text)}.env-gauge{position:relative;height:5px;margin-top:7px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text) 9%,transparent)}.env-gauge-fill{position:absolute;left:0;top:0;height:100%;min-width:3px;border-radius:var(--radius-pill);background:var(--accent);transition:width .5s ease}.env-humidity.is-wet .env-gauge-fill{background:var(--warn)}.env-gauge-mark{position:absolute;top:-2px;bottom:-2px;width:2px;transform:translate(-1px);border-radius:1px;background:color-mix(in srgb,var(--text) 42%,transparent)}.env-temp{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-4);color:var(--muted)}.env-temp>svg{color:var(--muted);flex:none}.env-temp .mono{color:var(--text-soft);font-weight:600}.env-sensor-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:var(--fs-2)}.env-sensor--inline .env-sensor-foot{margin-top:6px}.env-sensor-error{color:var(--muted);font-size:var(--fs-3)}.low-presets{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 12px}.low-preset{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;text-align:left;cursor:pointer;background:var(--panel-2);color:inherit;border:1px solid var(--border-soft);border-radius:var(--radius)}.low-preset:hover:not(:disabled){border-color:var(--accent)}.low-preset.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.low-preset>span{font-size:var(--fs-1)}.low-explain{padding:10px 14px;border-radius:var(--radius);background:var(--panel-2);border:1px solid var(--border-soft);font-size:var(--fs-2)}.low-advanced{margin-top:14px}.low-advanced>summary{cursor:pointer;font-size:var(--fs-2);color:var(--muted);padding:4px 0;-webkit-user-select:none;user-select:none}.low-advanced>summary:hover{color:var(--accent)}.low-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.low-preview>div{display:flex;gap:6px;align-items:baseline;padding:6px 10px;border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--border-soft);font-size:var(--fs-2)}.hint{position:relative;display:inline-flex;align-items:center;height:1em;vertical-align:middle;margin-left:4px}.hint-btn{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--muted);cursor:help;line-height:0}.hint-btn:hover,.hint-btn.active{background:var(--panel-2);color:var(--accent)}.hint-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hint-pop{position:absolute;top:calc(100% + 6px);left:-4px;z-index:40;width:max-content;max-width:min(280px,calc(100vw - 32px));padding:9px 12px;border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text-soft);font-size:var(--fs-2);font-weight:400;line-height:1.45;text-transform:none;letter-spacing:0;white-space:normal}
