.banner-overlay{left:16px;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:500;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed}.banner-overlay>*{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;animation:.18s ease-out banner-in}@keyframes banner-in{0%{opacity:0;transform:translateY(12px)}}.error-banner{color:#fff;background:#ff3b30e6;border-radius:18px;align-items:flex-start;gap:10px;width:100%;max-width:560px;padding:14px 16px;display:flex;box-shadow:0 6px 12px #0000002e}.error-banner__icon{flex-shrink:0;margin-top:1px}.error-banner__message{overflow-wrap:anywhere;flex:1;min-width:0;font-size:13px;font-weight:600;line-height:1.35}.error-banner__close{opacity:.7;flex-shrink:0;margin-top:2px}.transient-banner{color:#fff;border-radius:999px;align-items:center;gap:10px;max-width:100%;padding:12px 16px;font-size:15px;font-weight:600;display:flex;box-shadow:0 4px 10px #0003}.transient-banner--success{background:#34c759eb}.transient-banner--error{background:#ff3b30eb}.transient-banner--info{background:#007affeb}.offline-banner{bottom:calc(env(safe-area-inset-bottom) + 86px);z-index:90;color:#ffb340;white-space:nowrap;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:offline-in .4s var(--ease-spring);pointer-events:none;background:#ff9f0a2e;border:1px solid #ff9f0a8c;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:600;display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes offline-in{0%{opacity:0;transform:translate(-50%,14px)scale(.94)}}.pull-refresh{flex-direction:column;flex:1;min-height:0;display:flex}.pull-refresh__indicator{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;transition:height .15s ease-out;display:flex;overflow:hidden}.pull-refresh__spin{animation:.7s linear infinite pull-refresh-spin}@keyframes pull-refresh-spin{to{transform:rotate(360deg)}}.tab-bar{background:var(--tab-bar);padding:10px 18px calc(max(12px, env(safe-area-inset-bottom)) + 8px);border-top:1px solid #ffffff0a;flex-shrink:0;display:flex}.tab-bar__item{min-height:52px;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;text-decoration:none;display:flex}.tab-bar__item span{font-size:11px;font-weight:500}.tab-bar__item--active{color:var(--green)}@media (width>=860px){.tab-bar{border-top:none;border-right:1px solid #ffffff0f;flex-direction:column;flex-shrink:0;order:-1;align-items:stretch;gap:4px;width:232px;padding:28px 14px}.tab-bar__item{border-radius:12px;flex-direction:row;flex:none;justify-content:flex-start;gap:12px;min-height:0;padding:11px 14px;transition:background-color .12s}.tab-bar__item:hover{background:#ffffff0d}.tab-bar__item--active{background:#00bf381f}.tab-bar__item span{font-size:15px;font-weight:600}}.skeleton-list{flex-direction:column;gap:10px;padding:4px 0;display:flex}.error-retry{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:10px;padding:28px 16px;display:flex}.error-retry svg{color:var(--orange)}.profile-sheet__backdrop{z-index:100;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.profile-sheet{background:var(--sheet);border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-height:85dvh;animation:.2s ease-out profile-sheet-in;display:flex;overflow:hidden}.profile-sheet__body{overscroll-behavior:contain;min-height:0;padding:0 16px calc(16px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.profile-sheet--tall{height:94dvh;max-height:94dvh}@media (width>=860px){.profile-sheet__backdrop{justify-content:center;align-items:center}.profile-sheet{border-radius:20px;width:520px;max-width:92vw;max-height:82vh}.profile-sheet--tall{height:82vh;max-height:82vh}}.profile-sheet__header{flex-shrink:0;align-items:center;padding:16px 16px 12px;display:flex}@keyframes profile-sheet-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.settings-card{background:var(--card);border:1px solid var(--stroke);border-radius:20px;flex-direction:column;gap:12px;margin-bottom:14px;padding:16px;display:flex}.settings-card__header{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.settings-card__header--sub{border-top:1px solid var(--stroke);color:var(--text-secondary);margin-top:6px;padding-top:12px;font-size:13px}.settings-card__row{justify-content:space-between;align-items:center;display:flex}.settings-field{flex-direction:column;gap:4px;display:flex}.settings-field label{color:var(--text-secondary);font-size:12px}.settings-field input,.settings-field select{background:var(--sheet);color:#fff;border:1px solid #0000;border-radius:12px;padding:10px 12px;font-family:inherit;font-size:14px}.settings-field input:focus,.settings-field select:focus{border-color:var(--green);outline:none}.settings-button-row{gap:10px;display:flex}.settings-button{border:1px solid var(--stroke);color:#fff;background:0 0;border-radius:12px;flex:1;padding:10px;font-size:13px;font-weight:600}.settings-button--primary{background:var(--green);color:#000;border:none}.settings-status{border-radius:10px;padding:8px 10px;font-size:12px}.settings-status--success{color:var(--green);background:#00bf3824}.settings-status--error{color:var(--red);background:#ff444424}.reorder-list{flex-direction:column;gap:6px;display:flex}.reorder-row{background:var(--sheet);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.reorder-row__buttons{gap:4px;margin-left:auto;display:flex}.reorder-row__buttons button{color:var(--text-secondary);background:0 0;border:none;padding:2px}.menu-button{background:var(--card);text-align:left;width:100%;color:var(--text);opacity:1;border:none;border-radius:16px;align-items:center;gap:14px;margin-bottom:14px;padding:16px;display:flex}.menu-button--disabled{opacity:.45}.menu-button__icon{width:38px;height:38px;color:var(--green);background:#00bf381f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.menu-button__text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.menu-button__title{font-size:17px;font-weight:600}.menu-button__subtitle{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;overflow:hidden}.menu-button__chevron{color:var(--text-secondary);flex-shrink:0}.menu-group{margin-bottom:18px}.menu-group__title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);padding:0 6px 8px;font-size:12px;font-weight:700}.menu-group__card{background:var(--card);border-radius:16px;overflow:hidden}.menu-group__card>.menu-button{background:0 0;border-radius:0;gap:12px;margin:0;padding:12px 14px;animation:none}.menu-group__card>.menu-button+.menu-button,.menu-group__card>*+*{border-top:1px solid var(--stroke,#ffffff14)}.menu-group__card .menu-button__icon{width:32px;height:32px}.menu-group__card .menu-button__title{font-size:16px}.menu-group__card .menu-button__subtitle{font-size:13px}.menu-group__card>.settings-card,.menu-group__card>.archive-section,.menu-group__card>.pw-card{background:0 0;border:none;border-radius:0;margin:0}.tl-chip{border:1px solid var(--stroke);background:var(--card);color:#fff;font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.tl-chip--on{background:color-mix(in srgb, var(--green) 22%, var(--card));border-color:var(--green);color:var(--green)}.tl-chip:disabled{opacity:.5;cursor:default}.confirm-dialog__backdrop{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--sheet);border-radius:16px;width:100%;max-width:320px;padding:20px}.confirm-dialog__title{margin-bottom:8px;font-size:16px;font-weight:700}.confirm-dialog__message{color:var(--text-secondary);white-space:pre-line;margin-bottom:16px;font-size:13px;line-height:1.4}.confirm-dialog__actions{justify-content:flex-end;gap:16px;display:flex}.confirm-dialog__button{color:#fff9;background:0 0;border:none;padding:4px;font-size:14px;font-weight:600}.confirm-dialog__button--primary{color:var(--green)}.confirm-dialog__button--destructive{color:var(--red)}.spools-sticky-header{background:color-mix(in srgb, var(--bg) 35%, transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);border-bottom:1px solid var(--stroke);z-index:5;flex-direction:column;gap:10px;margin:-16px -16px 0;padding:16px 16px 12px;display:flex;position:sticky;top:-16px}.spools-stats+.spools-sticky-header{margin-top:0}.filter-chip-row{align-items:center;gap:8px;display:flex}.filter-chip{background:var(--sheet);border:1px solid var(--stroke);border-radius:var(--radius-pill);color:#fff;white-space:nowrap;cursor:pointer;flex-shrink:0;align-items:center;gap:5px;min-height:34px;padding:7px 10px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.filter-chip--active{color:#fff;background:linear-gradient(90deg,#00bf38fa,#00bf38cc);border-color:#0000}.filter-chip--orange.filter-chip--active{background:linear-gradient(90deg,#ff9500fa,#ff9500cc)}.spools-search{background:var(--sheet);border:1px solid var(--stroke);color:var(--text-secondary);border-radius:14px;align-items:center;gap:10px;padding:8px 12px;display:flex}.spools-search__clear{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;display:flex}.spools-search input{color:#fff;background:0 0;border:none;outline:none;flex:1;font-size:15px}.spools-search input::placeholder{color:var(--text-secondary)}.material-chips{scrollbar-width:none;flex:1;gap:8px;min-width:0;padding-bottom:2px;display:flex;overflow-x:auto}.material-chips::-webkit-scrollbar{display:none}.material-section{flex-direction:column;gap:10px;display:flex}.material-section__header{border:none;border-bottom:1px solid var(--divider);color:#fff;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:baseline;gap:10px;padding:6px 0;display:flex}.material-section__title{font-size:22px;font-weight:700}.material-section__count,.material-section__sum{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:13px}.material-section__sum{margin-left:auto}.material-section__chevron{color:var(--text-secondary);flex:none;align-self:center;transition:transform .15s}.material-section--closed .material-section__chevron{transform:rotate(-90deg)}.material-section__grid{grid-template-columns:1fr;gap:10px;display:grid}.material-section__grid--compact{gap:6px}@media (width>=860px){.material-section__grid{grid-template-columns:1fr 1fr;gap:10px 14px}.material-section__grid--compact{gap:6px 14px}}.spools-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width>=640px){.spools-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.spools-stat{background:var(--card);border:1px solid var(--divider);color:#fff;min-width:0;font:inherit;text-align:left;border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;display:flex}.spools-stat--button{cursor:pointer}.spools-stat__label{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;overflow:hidden}.spools-stat__value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.spools-stat__value i{color:var(--text-secondary);font-size:13px;font-style:normal;font-weight:500}.spools-stat--orange .spools-stat__value{color:var(--orange)}.spools-stat--red .spools-stat__value{color:var(--red)}.spools-stat--orange.spools-stat--active{border-color:var(--orange);background:color-mix(in srgb, var(--orange) 14%, var(--card))}.spools-stat--red.spools-stat--active{border-color:var(--red);background:color-mix(in srgb, var(--red) 14%, var(--card))}.spools-search__hint{color:var(--text-secondary);border:1px solid var(--stroke);border-radius:6px;flex:none;padding:1px 6px;font:11px ui-monospace,monospace}@media (hover:none){.spools-search__hint{display:none}}.spools-controls{min-width:0}.spools-sort{border-radius:var(--radius-pill);border:1px solid var(--stroke);background:var(--sheet);color:#fff;max-width:120px;min-height:34px;font:inherit;flex:none;padding:0 8px;font-size:12px;font-weight:600}.spools-view-toggle{padding:7px 9px}.filter-chip__count{color:var(--text-secondary);font-weight:500}.filter-chip--active .filter-chip__count{color:#ffffffbf}@media (width<=480px){.spools-controls .filter-chip svg:not(.lucide-layout-grid):not(.lucide-list){display:none}}.spools-swatches{scrollbar-width:none;gap:10px;padding:4px 2px;display:flex;overflow-x:auto}.spools-swatches::-webkit-scrollbar{display:none}.spools-swatch{border:2px solid var(--bg);width:30px;height:30px;box-shadow:0 0 0 1px var(--stroke);cursor:pointer;border-radius:50%;flex:none;padding:0}.spools-swatch--active{box-shadow:0 0 0 2px #fff}.spool-card{border:1px solid var(--stroke);text-align:left;width:100%;font:inherit;color:#fff;cursor:pointer;border-radius:18px;align-items:center;gap:14px;padding:12px 14px;display:flex;position:relative;overflow:hidden}.spool-card--compact{gap:12px;padding:8px 12px}.spool-card__info{flex-direction:column;flex:1;justify-content:center;gap:4px;min-width:0;display:flex}.spool-card__name-row{align-items:center;gap:6px;display:flex}.spool-card__rfid-icon{color:var(--text-secondary);flex-shrink:0}.spool-card__name{color:#fff;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:15px;font-weight:600;display:-webkit-box;overflow:hidden}.spool-card--compact .spool-card__name{-webkit-line-clamp:1}.spool-card__spacer{flex:1;min-width:8px}.spool-card__meta{color:var(--text-secondary);white-space:nowrap;align-items:center;min-width:0;font-size:13px;display:flex}.spool-card__meta-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.spool-rfid{flex:none}.spool-card__weight{font-variant-numeric:tabular-nums;flex-direction:column;flex:none;align-items:flex-end;min-width:56px;display:flex}.spool-card__weight b{letter-spacing:-.02em;white-space:nowrap;font-size:17px;font-weight:700}.spool-card__weight i{color:var(--text-secondary);font-size:12px;font-style:normal;font-weight:500}.spool-card__weight small{color:var(--text-secondary);font-size:12px}.spool-card__tags{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.spool-tag{border-radius:var(--radius-pill);background:#00000047;padding:2px 9px;font-size:11px;font-weight:600}.spool-tag--installed{color:#5be585;background:#00bf3833}.spool-tag--orange{color:var(--orange);background:#ff950033}.spool-tag--red{color:#ff8080;background:#ff444438}.spool-tag--dashed{border:1px dashed var(--stroke);color:var(--text-secondary);background:0 0}.spool-ring{flex-shrink:0;position:relative}.spool-ring__arc{position:absolute;inset:0}.spool-ring__disc{border-radius:50%;position:absolute;box-shadow:inset 0 0 0 1px #ffffff80}.spool-ring__label{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.spool-ring__low{background:var(--red);color:#fff;border-radius:50%;padding:3px;display:flex;position:absolute}.spool-detail{flex-direction:column;gap:18px;padding-bottom:8px;display:flex}.spool-hero{border:1px solid var(--stroke);border-radius:28px;flex-direction:column;gap:16px;padding:20px;display:flex;box-shadow:0 10px 18px #00000014}.spool-hero__top{align-items:flex-start;gap:12px;display:flex}.spool-hero__titles{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.spool-hero__name{font-size:20px;font-weight:700}.spool-hero__subtitle{color:var(--text-secondary);font-size:15px;font-weight:500}.spool-hero__metrics{gap:10px;display:flex}.spool-hero__metric{background:var(--sheet);border-radius:18px;flex-direction:column;flex:1;gap:6px;min-width:0;padding:12px 14px;display:flex}.spool-hero__metric-title{color:var(--text-secondary);font-size:11px;font-weight:700}.spool-hero__metric-value{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:600;display:-webkit-box;overflow:hidden}.spool-hero__comment{color:var(--text-secondary);font-size:13px}.spool-section{background:var(--card);border:1px solid var(--stroke);border-radius:24px;flex-direction:column;gap:14px;padding:18px;display:flex}.spool-section__header{align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.spool-section__header svg{color:var(--text-secondary)}.spool-meta-button{background:var(--sheet);color:#fff;text-align:left;cursor:pointer;border:none;border-radius:18px;flex-direction:column;gap:10px;width:100%;padding:12px;font-family:inherit;display:flex}.spool-meta-button__row{justify-content:space-between;align-items:center;gap:12px;display:flex}.spool-meta-button__row svg{color:var(--text-secondary)}.spool-meta-button__title{font-size:15px;font-weight:600}.spool-meta-button__subtitle{color:var(--text-secondary);margin-top:4px;font-size:12px;font-weight:500}.spool-meta-chips{gap:8px;display:flex}.spool-meta-chip{background:var(--card);border:1px solid var(--stroke);border-radius:16px;flex:1;min-width:0;padding:10px}.spool-meta-chip__title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.spool-meta-chip__subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;font-weight:500}.spool-printer-picker{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.spool-printer-picker select,.editor-input{background:var(--sheet);border:1px solid var(--stroke);color:#fff;border-radius:18px;padding:12px 16px;font-family:inherit;font-size:15px}.spool-printer-picker select{border-radius:12px;padding:8px 12px}.spool-install{flex-direction:column;gap:18px;display:flex}.spool-install__paired{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.slot-group{flex-direction:column;gap:10px;display:flex}.slot-group__header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.slot-group__title{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.slot-group__count{color:var(--text-secondary);flex-shrink:0;font-size:12px;font-weight:500}.slot-group__grid{gap:10px;display:grid}.slot-tile{text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:1px solid #ffffff8c;border-radius:20px;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:10px;height:100px;padding:14px 12px;font-family:inherit;transition:transform .15s;display:flex;position:relative}.slot-tile--empty{border:1.5px dashed #ffffff73}.slot-tile--active{border:3px solid #00bf38b3}.slot-tile--pending{border:3px solid #ff9500e6;transform:scale(.985)}.slot-tile__title{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:23px;font-weight:700;line-height:1.1;overflow:hidden}.slot-tile__title--feed{font-size:16px}.slot-tile__material{opacity:.84;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;font-weight:600;overflow:hidden}.slot-tile__active-icon{position:absolute;top:12px;left:12px}.slot-tile__badge{border-radius:var(--radius-pill);background:#00000029;padding:4px 8px;font-size:11px;font-weight:700;position:absolute;top:12px;right:12px}.spool-notice{background:var(--sheet);color:var(--text-secondary);border-radius:18px;gap:12px;padding:14px;display:flex}.spool-notice__title{color:#fff;font-size:15px;font-weight:600}.spool-notice__message{margin-top:4px;font-size:13px}.spool-toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:250;border-radius:var(--radius-pill);border:1px solid var(--stroke);white-space:nowrap;pointer-events:none;background:#141414f0;padding:10px 16px;font-size:13px;font-weight:600;position:fixed;transform:translate(-50%)}.spool-editor{flex-direction:column;gap:16px;padding-bottom:8px;display:flex}.editor-header{background:var(--card);border:1px solid var(--stroke);border-radius:24px;flex-direction:column;gap:12px;padding:18px;display:flex}.editor-header__top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.editor-header__swatch{border-radius:50%;flex-shrink:0;width:28px;height:28px}.editor-header .spool-meta-chip{background:var(--sheet)}.editor-section{background:var(--card);border-radius:22px;flex-direction:column;gap:12px;padding:16px;display:flex}.editor-section__title{align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.editor-input{width:100%}textarea.editor-input{resize:vertical}.editor-hint{color:var(--text-secondary);font-size:13px}.editor-color{justify-content:space-between;align-items:center;font-size:15px;display:flex}.editor-color input{cursor:pointer;background:0 0;border:none;border-radius:8px;width:44px;height:32px;padding:0}.weight-actions{gap:12px;display:flex}.weight-action{color:#fff;text-align:left;cursor:pointer;border:1px solid #0000;border-radius:18px;flex-direction:column;flex:1;align-items:flex-start;gap:4px;min-height:100px;padding:14px;font-family:inherit;display:flex}.weight-action svg{margin-bottom:5px}.weight-action--add{background:#1f8547}.weight-action--zero{background:#a8383d}.weight-action--pending{border:3px solid #ff9500e6}.weight-action:disabled{opacity:.6}.weight-action__title{font-size:17px;font-weight:700}.weight-action__subtitle{color:#ffffffd1;font-size:12px;font-weight:500}.editor-save{cursor:pointer;border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;height:52px;font-family:inherit;font-size:16px;font-weight:600;display:flex}.editor-save:disabled{opacity:.6}.spool-install__paired .slot-group__header{flex-direction:column;align-items:flex-start;gap:2px}.spool-install__paired .slot-group__title{white-space:normal}.quick-weight{background:var(--card);border:1px solid var(--stroke);border-radius:16px;flex-direction:column;gap:8px;margin-top:10px;padding:12px 14px;display:flex}.quick-weight__title{align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.quick-weight__row{gap:10px;display:flex}.quick-weight__row input{background:var(--sheet);color:#fff;min-width:0;font:inherit;border:1px solid #0000;border-radius:12px;flex:1;padding:10px 12px;font-size:14px}.quick-weight__row input:focus{border-color:var(--green);outline:none}.quick-weight__row .settings-button{flex:none;padding:10px 16px}.quick-weight__done{color:var(--green);font-size:13px;font-weight:600}.quick-weight__hint{color:var(--text-secondary);font-size:11px;line-height:1.4}.shopping-row__total{font-variant-numeric:tabular-nums;font-weight:700}.shopping-row__total--empty{color:var(--red)}.to-shopping{border:1px solid color-mix(in srgb, var(--orange) 55%, transparent);background:color-mix(in srgb, var(--orange) 18%, transparent);color:var(--orange);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;align-self:flex-start;align-items:center;gap:4px;margin-top:6px;padding:4px 9px;font-size:12px;font-weight:700;display:inline-flex}.to-shopping--listed{border-color:var(--separator,#ffffff26);color:var(--text-secondary,#ffffff8c);cursor:default;background:0 0}.slot-dialog__spool-row>.to-shopping{align-self:center;margin-top:0;margin-left:8px}.spool-rfid{color:var(--text-secondary);letter-spacing:.04em;white-space:nowrap;background:#ffffff14;border-radius:6px;margin-left:8px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:600}.loc-picker{border:1px solid var(--stroke);background:linear-gradient(160deg,#ffffff0f,#ffffff05);border-radius:18px;flex-direction:column;gap:10px;padding:14px;display:flex}.loc-picker__title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.loc-picker__chips{flex-wrap:wrap;gap:8px;display:flex}.loc-chip{border:1px solid var(--stroke);background:var(--sheet);color:#fff;font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:8px 13px;font-size:13px;font-weight:600;transition:background .18s,border-color .18s,transform .12s,opacity .18s;display:inline-flex}.loc-chip:active{transform:scale(.96)}.loc-chip:disabled{opacity:.45;cursor:default}.loc-chip--active{background:color-mix(in srgb, var(--green) 22%, var(--sheet));border-color:var(--green);color:var(--green)}.loc-chip--busy{animation:.9s ease-in-out infinite loc-pulse}@keyframes loc-pulse{50%{opacity:.6}}.spool-section .quick-weight{background:linear-gradient(160deg,#ffffff0f,#ffffff05);border-radius:18px;margin-top:0;padding:14px}.spool-edit-link{border:1px dashed var(--stroke);width:100%;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.spool-edit-link:hover{color:#fff;border-color:#ffffff4d}.loc-picker__group{flex-direction:column;gap:8px;display:flex}.loc-picker__group+.loc-picker__group{border-top:1px solid var(--stroke);padding-top:10px}.loc-picker__title{text-transform:none;color:#fff;letter-spacing:0;font-size:14px}.loc-picker__title svg{color:var(--text-secondary)}.spool-loc-panel{padding-bottom:2px}.spool-hero__metric--button{font:inherit;color:inherit;text-align:left;cursor:pointer;border:none}.spool-hero__metric--button .spool-hero__metric-value{justify-content:space-between;align-items:center;gap:6px;display:flex}.spool-hero__chevron{color:var(--text-secondary);flex:none;transition:transform .25s}.spool-hero__metric--open .spool-hero__chevron{transform:rotate(180deg)}.quick-weight__modes{flex-wrap:wrap;gap:6px;display:flex}.quick-weight__modes .tl-chip{border:1px solid var(--stroke);background:var(--sheet);color:#fff;font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.quick-weight__modes .tl-chip--on{background:color-mix(in srgb, var(--green) 22%, var(--sheet));border-color:var(--green);color:var(--green)}.weigh-item{flex-direction:column;gap:4px;display:flex}.weigh-input{align-items:center;gap:10px;padding:0 4px;display:flex}.weigh-input input{min-width:0;color:var(--text);background:#ffffff0f;border:1px solid #ffffff24;border-radius:12px;flex:1;padding:9px 12px;font-size:15px}.weigh-input__preview{color:var(--text-secondary);white-space:nowrap;font-size:12px}.weigh-input__done{color:var(--green);white-space:nowrap;align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.segmented{grid-template-columns:repeat(var(--n,3), minmax(0, 1fr));box-sizing:border-box;background:var(--card);border:1px solid var(--stroke);border-radius:16px;width:100%;max-width:640px;margin:4px auto 14px;padding:4px;display:grid;position:relative}.segmented__thumb{width:calc((100% - 8px) / var(--n,3));transform:translateX(calc(var(--i,0) * 100%));transition:transform .38s var(--ease-spring,cubic-bezier(.34, 1.45, .64, 1));background:#00bf3833;border-radius:12px;position:absolute;top:4px;bottom:4px;left:4px;box-shadow:inset 0 0 0 1px #00bf3859}.segmented__item{z-index:1;min-width:0;color:var(--text-secondary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:9px 6px;font-size:13.5px;font-weight:600;transition:color .25s,transform .12s;display:inline-flex;position:relative}.segmented__item:hover{color:#fff}.segmented__item:active{transform:scale(.96)}.segmented__item--on,.segmented__item--on:hover{color:var(--green)}.segmented__badge{background:var(--green);color:#000;text-align:center;border-radius:999px;min-width:18px;padding:1px 6px;font-size:11px}.panel-inline{flex-direction:column;gap:10px;display:flex}.hub-shell{flex-direction:column;min-height:100%;display:flex}.hub-title-row{grid-template-columns:40px 1fr 40px;align-items:center;display:grid}.hub-title-row__button{background:var(--card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hub-title-row__button:hover{color:#fff}.hub-shell>.nav-title{text-align:center;padding:2px 0 4px;font-size:17px;font-weight:600}.hub-title-row .nav-title{text-align:center;font-size:17px;font-weight:600}.hub-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin:8px 2px 0;font-size:12px;font-weight:700}.more-page{flex-direction:column;gap:4px;padding-top:6px;display:flex}.more-page .nav-title{text-align:center}.fullscreen-image{z-index:2000;background:#000000f0;justify-content:center;align-items:center;animation:.18s ease-out fullscreen-image-in;display:flex;position:fixed;inset:0}@keyframes fullscreen-image-in{0%{opacity:0}}.fullscreen-image__close{top:max(14px, env(safe-area-inset-top));z-index:2;color:#fff;background:#ffffff29;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute;right:14px}.fullscreen-image__title{top:max(20px, env(safe-area-inset-top));z-index:2;color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;position:absolute;left:18px;right:70px;overflow:hidden}.fullscreen-image__touch{touch-action:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.fullscreen-image__stage{transform-origin:50%;background:#ececf0;border-radius:18px;width:min(92vw,92vh);height:min(92vw,92vh);overflow:hidden}.fullscreen-image__stage img{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%}.hotend-view{flex-shrink:0;width:92px;height:96px;position:relative}.hotend-view--large{width:100%;height:100%;min-height:180px;max-height:210px}.hotend-view__render{object-fit:contain;opacity:.58;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.hotend-view__tube{border:.7px solid #0000;border-radius:999px;width:3.5%;min-width:3px;height:65%;position:absolute;top:26%;transform:translate(-50%,-50%)}.hotend-view__tip{border:.8px solid #0000;border-radius:50%;width:12%;height:12%;position:absolute;top:60%;transform:translate(-50%,-50%)}.printer-header{align-items:flex-start;gap:12px;display:flex}.printer-header__left{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.printer-header__title-row{flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;display:flex}.printer-header__name{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:100%;font-size:24px;font-weight:700;overflow:hidden}.printer-header__status{color:var(--text-secondary);align-items:center;gap:7px;font-size:16px;font-weight:500;display:flex}.printer-header__status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.printer-header__actions{flex-shrink:0;align-items:flex-start;gap:12px;padding-top:4px;display:flex}.header-action{color:#ffffffbf;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:0;font-family:inherit;font-size:12px;font-weight:500;display:flex}.live-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;transition:background .25s ease-out,box-shadow .25s ease-out}.live-dot--down{background:var(--red)}.live-dot--connecting{background:#fc0}.live-dot--up{background:#34c759}.live-dot--flash{background:#73ff59;box-shadow:0 0 5px #73ff59d9}.queue-badge{border-radius:var(--radius-pill);background:0 0;border:1px solid #ffffff26;align-items:center;gap:5px;padding:4px 8px;font-size:12px;font-weight:600;display:flex}.queue-badge--warning{color:var(--red);border-color:#f449}.queue-badge--pending{color:var(--yellow);border-color:#fc09}.queue-badge--idle{color:var(--text-secondary)}.queue-badge__count{color:#000;border-radius:var(--radius-pill);background:var(--text-secondary);padding:1px 5px;font-size:11px;font-weight:700}.queue-badge--warning .queue-badge__count{background:var(--red)}.queue-badge--pending .queue-badge__count{background:var(--yellow)}.power-button{border-radius:var(--radius-pill);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.power-button:disabled{opacity:.5;cursor:default}.hero-pager{border-radius:var(--radius-card);background:#000;flex-shrink:0;height:214px;position:relative;overflow:hidden}.hero-pager__scroller{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;height:100%;display:flex;overflow:auto hidden}.hero-pager__scroller::-webkit-scrollbar{display:none}.hero-pager__page{scroll-snap-align:start;flex:0 0 100%;justify-content:center;align-items:center;display:flex;position:relative}.camera-stream{width:100%;height:100%;position:relative}.camera-stream img{object-fit:cover;width:100%;height:100%}.camera-stream__controls{flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.camera-stream__controls-top{padding:8px;display:flex}.camera-stream__controls-bottom{justify-content:space-between;padding:14px;display:flex}.camera-stream__button{color:#fff;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.camera-stream__button-placeholder{width:40px;height:40px}.camera-fullscreen{z-index:300;background:#000;position:fixed;inset:0}.camera-fullscreen .camera-stream{height:100dvh}.camera-fullscreen .camera-stream img{object-fit:contain}.camera-live-badge{border-radius:var(--radius-pill);letter-spacing:.4px;color:#fff;background:#0000008c;align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:700;display:flex;position:absolute;top:12px;left:12px}.camera-live-dot{background:var(--red);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite camera-live-pulse}@keyframes camera-live-pulse{0%,to{opacity:1}50%{opacity:.35}}.hero-dots{justify-content:center;gap:7px;margin-top:8px;display:flex}.hero-dot{cursor:pointer;background:#ffffff59;border:none;border-radius:50%;width:6px;height:6px;padding:0;position:relative}.hero-dot:after{content:"";position:absolute;inset:-9px -5px}@media (hover:hover){.hero-pager__scroller{cursor:grab}}.hero-dot--active{width:24px;transition:width .3s var(--ease-out), background-color .3s ease;background:var(--green);border-radius:3px;height:6px}.hero-status-page{background:linear-gradient(#ffffff2e,#000000eb);position:absolute;inset:0}.hero-status-page img{object-fit:contain;opacity:.76;width:auto;max-width:60%;height:78%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-pill{border-radius:var(--radius-pill);color:#fff;white-space:nowrap;background:#0000009e;border:1px solid #ffffff1a;align-items:center;gap:6px;padding:8px 12px;font-size:18px;font-weight:700;display:flex;position:absolute}.hero-pill__prefix{color:#ffffffe6;font-size:17px;font-weight:500}.hero-pill__target{color:#ffffff94;font-size:13px;font-weight:500}.hero-pill--tl{top:20px;left:16px}.hero-pill--tr{top:20px;right:16px}.hero-pill--bl{bottom:20px;left:16px}.hero-pill--br{bottom:20px;right:16px}.progress-bar{background:#ffffff1a;border-radius:5px;height:10px;overflow:hidden}.progress-bar__fill{background:var(--green);border-radius:5px;height:100%;transition:width .3s}.progress-bar--thin{background:#ffffff24;border-radius:999px;height:7px}.progress-bar--thin .progress-bar__fill{border-radius:999px}.banner{border-radius:14px;align-items:center;gap:10px;padding:10px;display:flex}.banner--resume{background:#ff95001f}.banner__title{font-size:13px;font-weight:600}.banner__subtitle{color:var(--text-secondary);font-size:11px}.banner__button{background:var(--orange);color:#000;border-radius:var(--radius-pill);border:none;margin-left:auto;padding:8px 14px;font-size:12px;font-weight:600}.plate-clear-button{width:100%;color:var(--yellow);background:#ffcc0014;border:1px solid #fc09;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:15px;font-weight:600;display:flex}.alert-card{border-radius:18px;align-items:flex-start;gap:12px;padding:14px;display:flex}.alert-card__icon{flex-shrink:0;margin-top:1px}.alert-card__text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.alert-card__code{opacity:.8;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;font-weight:700}.alert-card__message{font-size:15px;font-weight:600;line-height:1.3}.job-card{background:var(--card);border-radius:18px;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.job-card__top{align-items:center;gap:12px;padding:12px;display:flex}.job-card__cover{background:#ffffff14;border-radius:6px;flex-shrink:0;width:86px;height:86px;overflow:hidden}.job-card__cover--preview{cursor:zoom-in;background:#ececf0}.job-card__cover img{object-fit:cover;width:100%;height:100%}.job-card__info{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.job-card__status-row{align-items:center;gap:6px;display:flex}.job-card__status{color:var(--text-secondary);font-size:12px;font-weight:600}.job-card__badge{color:var(--blue);border-radius:var(--radius-pill);background:#0a84ff29;padding:3px 8px;font-size:11px;font-weight:600}.job-card__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:17px;font-weight:600;display:-webkit-box;overflow:hidden}.job-card__idle-label{color:var(--text-secondary);font-size:14px;font-weight:500}.job-card__percent-row{align-items:baseline;gap:2px;display:flex}.job-card__percent-number{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.job-card__percent-symbol{font-size:15px;font-weight:500}.job-card__remaining{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:12px;font-weight:600;overflow:hidden}.job-card__layer{color:var(--text-secondary);font-size:12px;font-weight:500}.control-row{border-top:1px solid var(--divider);height:44px;display:flex}.control-row__button{border:none;border-right:1px solid var(--divider);color:#fff;white-space:nowrap;background:0 0;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.control-row__button:last-child{border-right:none}.control-row__button--danger{color:var(--red)}.queue-preview{border-top:1px solid var(--divider);padding:10px 12px 12px}.queue-preview__header{color:#fff;background:0 0;border:none;align-items:center;gap:8px;width:100%;display:flex}.queue-preview__title{text-align:left;flex:1;font-size:13px;font-weight:600}.queue-preview__count{background:var(--yellow);color:#000;border-radius:var(--radius-pill);padding:1px 6px;font-size:11px;font-weight:700}.queue-preview__list{gap:10px;padding-top:10px;display:flex;overflow-x:auto}.queue-thumb{flex-shrink:0;width:64px}.queue-thumb img{object-fit:cover;background:#ececf0;border-radius:10px;width:64px;height:64px}.queue-thumb__name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:10px;overflow:hidden}.quick-stats{gap:10px;display:flex}.quick-stat-card{background:var(--card);text-align:left;color:#fff;cursor:pointer;border:none;border-radius:16px;flex-direction:column;flex:1;gap:10px;min-height:80px;padding:14px;font-family:inherit;display:flex}.quick-stat-card__label{color:var(--text-secondary);font-size:13px;font-weight:500}.quick-stat-card__row{justify-content:space-between;align-items:center;display:flex}.quick-stat-card__value{font-size:17px;font-weight:700}.toggle{background:#ffffff29;border:none;border-radius:13px;width:44px;height:26px;position:relative}.toggle--on{background:var(--green)}.toggle__knob{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle--on .toggle__knob{transform:translate(18px)}.nozzle-card{background:var(--card);border-radius:var(--radius-card);text-align:left;width:100%;color:inherit;cursor:pointer;border:none;flex-direction:column;gap:10px;padding:14px;font-family:inherit;display:flex}.nozzle-card:disabled{color:inherit;cursor:default}.nozzle-card__title{color:var(--text-secondary);font-size:14px;font-weight:500}.nozzle-card__row{justify-content:space-between;display:flex}.nozzle-temp{flex-direction:column;gap:2px;display:flex}.nozzle-temp__row{align-items:center;gap:3px;display:flex}.nozzle-temp__value{font-size:26px;font-weight:700}.nozzle-temp__value--active{color:var(--green);text-decoration:underline}.nozzle-temp__value--heating{color:var(--orange)}.nozzle-temp__value--cooling{color:var(--blue)}.nozzle-temp__target{color:var(--text-secondary);font-size:14px}.filament-panel{background:var(--card);border-radius:var(--radius-card);flex-direction:column;gap:12px;padding:14px;display:flex}.filament-panel__header{justify-content:space-between;align-items:center;display:flex}.filament-panel__title{font-size:16px;font-weight:700}.filament-panel__more{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:500}.feed-mini-row{align-items:flex-start;gap:10px;display:flex}.feed-mini-card{background:#ffffff0f;border:1.5px solid #0000;border-radius:8px;flex-direction:column;flex:1;gap:8px;min-width:0;padding:10px;display:flex}.feed-mini-card--external{flex:none;max-width:140px}.feed-mini-card--selected{border-color:var(--green)}.feed-mini-card__title{font-size:13px;font-weight:500}.feed-chip-row{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.feed-chip-row::-webkit-scrollbar{display:none}.feed-chip{background:#ffffff14;border:1.5px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:34px;padding:0 8px;display:flex;position:relative}.feed-chip--selected{border-color:var(--green)}.feed-chip__drying{color:#ff8a00;background:var(--card);border-radius:50%;padding:2px;position:absolute;top:-5px;right:-5px}.feed-chip__bars{align-items:center;gap:3px;display:flex}.feed-chip__bar{border:.5px solid #ffffff4d;border-radius:4px;width:7px;height:24px}.feed-chip__bar--empty{height:18px}.feed-chip__external{flex-direction:column;align-items:center;gap:2px;display:flex}.feed-chip__external-swatch{border:.5px solid #ffffff40;border-radius:3px;width:14px;height:20px}.feed-chip__external-swatch--empty{background:#ffffff1f;border-color:#ffffff2e}.feed-chip__external-label{color:#ffffffdb;font-size:8px;font-weight:700;line-height:1}.feed-chip__external-label--empty{color:#ffffff73}.external-feed{flex-direction:column;gap:12px;display:flex}.external-feed__title{font-size:14px;font-weight:600}.external-feed__row{align-items:center;gap:12px;display:flex}.external-feed__tile{flex:none;width:88px;display:flex}.external-feed__empty{width:88px;color:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:none;align-items:center;gap:6px;padding:0;font-family:inherit;display:flex}.external-feed__empty-label{color:var(--text-secondary);font-size:11px;font-weight:500}.external-feed__empty-tag{font-size:13px;font-weight:600}.external-feed__dash{border-top:1.5px dashed var(--text-secondary);flex:1;height:0}.external-feed__printer{object-fit:contain;flex:none;width:96px;height:82px}.ams-all-units{flex-direction:column;gap:18px;display:flex}.ams-unit{flex-direction:column;gap:10px;display:flex}.ams-all-units .ams-unit{background:#ffffff06;border:1px solid #ffffff24;border-radius:18px;padding:14px 12px 12px}.ams-unit__header{align-items:center;gap:8px;display:flex}.ams-unit__title{flex:1;font-size:14px;font-weight:600}.ams-unit__humidity{background:var(--card);border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;border:none;align-items:center;gap:4px;padding:4px 8px;font-family:inherit;font-size:11px;display:flex}.ams-unit__humidity:disabled{cursor:default}.ams-unit__humidity--drying{color:#ff8a00;background:#ff8a0029}.ams-drying{background:#ff8a001f;border:1px solid #ff8a0073;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.ams-drying__status{color:#ff8a00;font-size:12px;font-weight:700}.ams-drying__meta{color:var(--text-secondary);font-size:11px}.ams-drying__stop{color:#ff8a00;cursor:pointer;background:0 0;border:1px solid #ff8a0099;border-radius:8px;margin-left:auto;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:600}.ams-slots{align-items:flex-start;gap:8px;display:flex}.spool-tile{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;padding:0;font-family:inherit;display:flex}.spool-tile__material{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;height:14px;font-size:11px;font-weight:500;overflow:hidden}.spool-tile__bar{background:#ffffff1a;border-radius:2px;width:70%;height:4px;overflow:hidden}.spool-tile__bar-fill{border-radius:2px;height:100%}.spool-tile__name{color:#fff;text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;min-height:28px;font-size:12px;font-weight:600;line-height:14px;display:-webkit-box;overflow:hidden}.spool-tile__name--empty{color:var(--text-secondary)}.spool-tile__grams{color:var(--text-secondary);height:12px;font-size:10px}.spool-artwork{width:44px;height:76px;position:relative}.spool-artwork--active:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--spool-glow) 60%, transparent) 0%, transparent 72%);pointer-events:none;border-radius:50%;position:absolute;inset:-22%}.spool-artwork__base{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.spool-artwork__tint,.spool-artwork__hatch{position:absolute;inset:0;-webkit-mask-image:url(/images/spool-mask.png);mask-image:url(/images/spool-mask.png);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.spool-artwork__tint{mix-blend-mode:multiply}.spool-artwork__hatch{background:repeating-linear-gradient(45deg,#00000052 0 2px,#0000 2px 7px)}.spool-artwork__eye{color:#fff;filter:drop-shadow(0 0 1px #000000b3);position:absolute;top:66%;left:33%}.spool-artwork__tube{background:linear-gradient(90deg,#ffffff9e 0%,#ffffff24 18%,#ffffff0a 50%,#ffffff24 82%,#ffffff9e 100%);border:.8px solid #ffffff6b;border-radius:3px;width:11%;min-width:5px;height:20px;position:absolute;bottom:2px;left:42%}.section-empty{color:var(--text-secondary);text-align:center;padding:24px 0;font-size:14px}.slot-dialog{flex-direction:column;gap:8px;display:flex}.slot-dialog__action-row{background:var(--card);border:1px solid var(--stroke);color:#fff;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:600;display:flex}.slot-dialog__action-row:disabled{opacity:.45;cursor:default}.slot-dialog__action-row--danger{color:var(--red)}.slot-dialog__search{margin-top:6px}.slot-dialog__search input{background:var(--card);border:1px solid var(--stroke);color:#fff;border-radius:12px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.slot-dialog__list{flex-direction:column;gap:6px;display:flex}.slot-dialog__spool-row{background:var(--card);text-align:left;border:none;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.slot-dialog__spool-color{border-radius:50%;flex-shrink:0;width:14px;height:14px}.slot-dialog__spool-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.slot-dialog__spool-brand{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.slot-dialog__spool-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.slot-dialog__spool-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:1px;display:flex}.slot-dialog__spool-weight{font-variant-numeric:tabular-nums;color:#fff;font-size:13px;font-weight:700}.slot-dialog__spool-weight--low{color:#ff9f0a}.slot-dialog__spool-material{color:var(--text-secondary);font-size:11px}.drying-sheet{flex-direction:column;gap:16px;display:flex}.drying-sheet__subtitle{color:var(--text-secondary);font-size:13px}.drying-sheet__field{flex-direction:column;gap:6px;display:flex}.drying-sheet__field label{color:var(--text-secondary);font-size:12px;font-weight:600}.drying-sheet__field select{background:var(--card);border:1px solid var(--stroke);color:#fff;border-radius:12px;padding:10px 12px;font-family:inherit;font-size:14px}.drying-sheet__value{font-size:26px;font-weight:700}.drying-sheet__range-labels{color:var(--text-secondary);justify-content:space-between;font-size:11px;display:flex}.drying-sheet__warning{color:#ffb020;font-size:12px}.drying-sheet__toggle-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.drying-sheet__start-button{color:#000;background:#ff8a00;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:14px;font-weight:700;display:flex}.drying-sheet__start-button:disabled{opacity:.5}.control-grid{gap:10px;display:flex}.control-card{background:var(--card);border-radius:var(--radius-card);text-align:left;color:#fff;cursor:pointer;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:8px;min-height:118px;padding:14px;font-family:inherit;display:flex}.control-card__title{margin-top:4px;font-size:14px;font-weight:600}.control-card__subtitle{color:var(--text-secondary);font-size:11px}.fan-dialog{flex-direction:column;gap:4px;display:flex}.fan-dialog__row{border-bottom:1px solid var(--stroke);flex-direction:column;align-items:stretch;gap:10px;padding:12px 4px;display:flex}.fan-dialog__row:last-child{border-bottom:none}.fan-dialog__label{color:#fff;align-items:center;gap:8px;font-size:14px;display:flex}.fan-dialog__percent{color:var(--text-secondary);font-size:12px}.fan-dialog__readonly{color:var(--text-secondary);font-size:11px}.fan-dialog__spin{animation:1.2s linear infinite fan-spin}@keyframes fan-spin{to{transform:rotate(360deg)}}.fan-dialog__slider{appearance:none;cursor:pointer;background:linear-gradient(to right, var(--green) var(--fill,0%), #ffffff24 var(--fill,0%));border-radius:4px;outline:none;width:100%;height:8px}.fan-dialog__slider:disabled{opacity:.6}.fan-dialog__slider::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:50%;width:24px;height:24px;box-shadow:0 1px 4px #00000080}.fan-dialog__slider::-moz-range-thumb{background:#fff;border:none;border-radius:50%;width:24px;height:24px;box-shadow:0 1px 4px #00000080}.plate-detection{flex-direction:column;gap:12px;display:flex}.plate-detection__card{background:var(--card);border-radius:14px;flex-direction:column;gap:8px;padding:14px;display:flex}.plate-detection__status-line{align-items:center;gap:8px;font-size:13px;display:flex}.plate-detection__status-label{color:#fff;flex:1}.plate-detection__status-value{color:var(--text-secondary);font-size:12px}.plate-detection__warning{color:#fc0;align-items:center;gap:6px;font-size:12px;display:flex}.plate-detection__meta{color:var(--text-secondary);font-size:11px}.plate-detection__analysis{border-radius:14px;flex-direction:column;gap:6px;padding:14px;display:flex}.plate-detection__analysis--empty{background:#00bf3824}.plate-detection__analysis--occupied{background:#ff444424}.plate-detection__analysis-title{color:#fff;font-size:14px;font-weight:600}.plate-detection__calibrate-button{background:var(--green);color:#000;border:none;border-radius:12px;padding:12px;font-size:14px;font-weight:700}.plate-detection__calibrate-button:disabled,.plate-detection__check-button:disabled{opacity:.5}.plate-detection__check-button{border:1px solid var(--stroke);color:#fff;background:0 0;border-radius:12px;padding:12px;font-size:14px;font-weight:600}.skip-objects{flex-direction:column;gap:10px;display:flex}.skip-objects__hint{color:var(--text-secondary);font-size:12px}.skip-objects__section{color:#fff;margin-top:4px;font-size:15px;font-weight:700}.skip-map{background:#000000db;border-radius:24px;justify-content:center;align-items:center;height:360px;display:flex;position:relative;overflow:hidden}.skip-map__note{color:var(--text-secondary);text-align:center;padding:0 24px;font-size:13px}.skip-map__stage{pointer-events:none;transform-origin:50%;flex:none;position:relative}.skip-map__left-only{background:#ffffff21;justify-content:center;align-items:center;width:8.1%;display:flex;position:absolute;top:0;bottom:0;left:0}.skip-map__left-only span{writing-mode:vertical-rl;white-space:nowrap;letter-spacing:.02em;color:#ffffff8c;font-size:11px;font-weight:800;transform:rotate(180deg)}.skip-map__pick,.skip-map__overlay{width:100%;height:100%;position:absolute;inset:0}.skip-map__bed{width:100%;height:103.829%;position:absolute;top:0;left:0;overflow:visible}.skip-map__pick{opacity:.16}.skip-map__touch{touch-action:none;cursor:pointer;position:absolute;inset:0}.skip-objects__list{flex-direction:column;gap:6px;display:flex}.skip-objects__row{background:var(--card);text-align:left;border:none;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex}.skip-objects__row:disabled{opacity:.6}.skip-objects__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.skip-objects__info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.skip-objects__name{color:#fff;font-size:13px;font-weight:600}.skip-objects__status{color:var(--text-secondary);font-size:11px}.skip-objects__submit{background:var(--green);color:#000;border:none;border-radius:12px;padding:12px;font-size:14px;font-weight:700}.skip-objects__submit:disabled{opacity:.5}.speed-dialog{flex-direction:column;display:flex}.speed-dialog__option{border:none;border-bottom:1px solid var(--stroke);text-align:left;color:#fff;background:0 0;justify-content:space-between;align-items:center;padding:14px 4px;font-family:inherit;font-size:15px;display:flex}.speed-dialog__option--current{color:var(--green);font-weight:700}.speed-dialog__now{align-items:center;gap:4px;font-size:12px;font-weight:600;display:inline-flex}.speed-dialog__option:last-child{border-bottom:none}.maintenance-carousel{flex-direction:column;gap:8px;display:flex}.maintenance-carousel__scroller{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:12px;display:flex;overflow-x:auto}.maintenance-carousel__scroller::-webkit-scrollbar{display:none}.maintenance-carousel__card{scroll-snap-align:start;background:var(--card);border:1px solid var(--stroke);border-radius:16px;flex-direction:column;flex:0 0 100%;gap:8px;padding:14px;display:flex}.maintenance-carousel__card--overdue{background:#ff44441f;border-color:#ff4444bf}.maintenance-carousel__card--warning{background:#ffcc0014;border-color:#ffcc00bf}.maintenance-carousel__row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.maintenance-carousel__title{color:#fff;font-size:15px;font-weight:700}.maintenance-carousel__badge{border-radius:var(--radius-pill);white-space:nowrap;padding:4px 8px;font-size:11px;font-weight:700}.maintenance-carousel__card--overdue .maintenance-carousel__badge{color:var(--red);background:#ff444429}.maintenance-carousel__card--warning .maintenance-carousel__badge{color:#fc0;background:#ffcc0029}.maintenance-carousel__meta{color:var(--text-secondary);justify-content:space-between;font-size:12px;display:flex}.maintenance-carousel__button{border:1px solid var(--stroke);color:#fff;background:0 0;border-radius:10px;align-self:flex-start;padding:8px 12px;font-size:12px;font-weight:600}.maintenance-carousel__button:disabled{opacity:.5}.maintenance-carousel__dots{justify-content:center;gap:6px;display:flex}.maintenance-carousel__dot{background:#ffffff59;border-radius:50%;width:6px;height:6px}.maintenance-carousel__dot--active{background:var(--green);width:8px;height:8px}.section-header{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.section-header__title{font-size:17px;font-weight:600}.section-header__more{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:14px;font-weight:500}.device-screen{z-index:90;background:linear-gradient(to bottom, var(--hero-surface), var(--bg) 50%);padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:fixed;inset:0}.device-screen__header{align-items:center;padding:8px 10px;display:flex}.device-screen__title{text-align:center;flex:1;font-size:16px;font-weight:600}.device-screen__spacer{width:34px}.device-screen__content{overscroll-behavior:contain;min-height:0;padding:14px 14px calc(40px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:14px;display:flex;overflow-y:auto}@media (width>=860px){.device-screen__content{width:100%;max-width:640px;padding:20px 14px calc(40px + env(safe-area-inset-bottom));margin:0 auto}.device-screen__header{width:100%;max-width:640px;margin:0 auto}.hero-pager,.device-screen__hero,.xyz-screen__camera{aspect-ratio:16/9;height:auto}}.device-screen__hero{background:#000;border-radius:18px;flex-shrink:0;height:260px;position:relative;overflow:hidden}.device-grid{gap:14px;display:flex}.device-card{background:var(--card);text-align:left;color:#fff;cursor:pointer;border:none;border-radius:16px;flex-direction:column;flex:1;align-items:flex-start;gap:10px;min-width:0;min-height:118px;padding:14px;font-family:inherit;display:flex}.device-card__label{color:var(--text-secondary);font-size:14px;font-weight:500}.device-card__value{font-size:22px;font-weight:700}.device-card__temp{font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;font-size:28px;font-weight:700;display:flex}.device-card__temp--heating{color:var(--orange)}.device-card__temp--cooling{color:var(--blue)}.device-card__target{color:var(--text-secondary);font-size:15px;font-weight:500}.temp-editor{flex-direction:column;gap:16px;display:flex}.temp-editor__row{justify-content:space-between;align-items:center;display:flex}.temp-editor__label{color:var(--text-secondary);font-size:14px}.temp-editor__current{font-size:14px;font-weight:600}.temp-editor__value{font-variant-numeric:tabular-nums;margin-top:-8px;font-size:34px;font-weight:700}.temp-editor__presets{gap:8px;display:flex}.temp-editor__preset{color:#fff;font-variant-numeric:tabular-nums;cursor:pointer;background:#ffffff1f;border:none;border-radius:10px;flex:1;height:44px;font-family:inherit;font-size:14px;font-weight:600}.temp-editor__preset--selected{background:var(--green);color:#000}.temp-editor__slider{width:100%;accent-color:var(--green)}.temp-editor__stepper{align-items:center;gap:12px;font-size:14px;font-weight:600;display:flex}.temp-editor__stepper button{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:8px;justify-content:center;align-items:center;width:34px;height:30px;display:flex}.temp-editor__stepper button:disabled{opacity:.35}.temp-editor__apply{background:var(--green);color:#000;cursor:pointer;border:none;border-radius:12px;height:50px;font-family:inherit;font-size:15px;font-weight:600}.temp-editor__apply:disabled{opacity:.6}.segmented{background:#ffffff1a;border-radius:10px;padding:3px;display:flex}.segmented__item{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;flex:1;height:32px;font-family:inherit;font-size:13px;font-weight:600}.segmented__item:focus-visible{outline:2px solid var(--green);outline-offset:-2px}.segmented__item.segmented__item--active{color:var(--green);background:#00bf3829}.nozzle-sheet{flex-direction:column;gap:14px;display:flex}.nozzle-sheet__sides{gap:12px;display:flex}.nozzle-sheet__side{min-width:0;height:44px;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#ffffff12;border:1.5px solid #0000;border-radius:6px;flex:1;padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;overflow:hidden}.nozzle-sheet__side--selected{border-color:var(--green);color:var(--green);background:#00bf381f}.nozzle-sheet__hotend-row{align-items:center;gap:18px;display:flex}.nozzle-sheet__hotend{flex:1;justify-content:center;align-items:center;min-width:0;min-height:180px;max-height:210px;display:flex}.nozzle-sheet__extruder{background:#ffffff14;border-radius:8px;flex-direction:column;flex-shrink:0;align-items:center;gap:14px;width:128px;padding:14px;display:flex}.nozzle-sheet__extruder-title{font-size:14px;font-weight:500}.nozzle-sheet__extruder-button{width:72px;height:72px;color:var(--text-secondary);cursor:pointer;background:#ffffff1f;border:none;border-radius:10px;justify-content:center;align-items:center;display:flex}.nozzle-sheet__extruder-button:active{background:#00bf383d}.nozzle-sheet__extruder-button--down svg{transform:rotate(180deg)}.nozzle-sheet__extruder-button:disabled{opacity:.5}.nozzle-sheet__field{color:#fff;text-align:left;background:#ffffff14;border:none;border-radius:6px;justify-content:space-between;align-items:center;width:100%;min-height:56px;padding:0 16px;font-family:inherit;display:flex}.nozzle-sheet__field--editable{cursor:pointer}.nozzle-sheet__field--editable svg{color:var(--text-secondary)}.nozzle-sheet__field--readonly{color:#fff6;min-height:48px;margin-top:8px;font-size:14px;font-weight:500}.nozzle-sheet__field-label{color:var(--text-secondary);font-size:12px;font-weight:500}.nozzle-sheet__field-value{margin-top:4px;font-size:14px;font-weight:500}.nozzle-sheet__hint{color:var(--text-secondary);font-size:14px;font-weight:500}.xyz-screen{z-index:95;background:var(--sheet);padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:fixed;inset:0}.xyz-screen__header{align-items:center;padding:8px 12px;display:flex}.xyz-screen__title{text-align:center;flex:1;font-size:16px;font-weight:600}.xyz-screen__spacer{width:34px}.xyz-screen__camera{background:#000;border-bottom:1px solid #000;flex-shrink:0;height:240px;position:relative;overflow:hidden}.xyz-screen__error{margin:12px 14px 0}.xyz-screen__controls{align-items:flex-start;gap:14px;padding:16px 14px;display:flex}.xyz-screen__column{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.xyz-screen__column--z{flex:0 0 120px}.xyz-screen__caption{color:var(--text-secondary);font-size:12px;font-weight:500}.xyz-pad{background:#ffffff0d;border-radius:50%;width:190px;height:190px;position:relative}.xyz-pad__inner{background:#ffffff0f;border-radius:50%;position:absolute;inset:22.5%}.xyz-pad__cross{pointer-events:none;background:linear-gradient(45deg,#0000 calc(50% - 4px),#00000047 calc(50% - 4px) calc(50% + 4px),#0000 calc(50% + 4px)),linear-gradient(-45deg,#0000 calc(50% - 4px),#00000047 calc(50% - 4px) calc(50% + 4px),#0000 calc(50% + 4px));position:absolute;inset:25px}.xyz-pad__axis{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:48px;height:48px;font-family:inherit;font-size:17px;font-weight:700;display:flex;position:absolute}.xyz-pad__axis:disabled,.xyz-pad__home:disabled,.z-column__button:disabled{opacity:.5}.xyz-pad__axis--top{top:2px;left:calc(50% - 24px)}.xyz-pad__axis--bottom{bottom:2px;left:calc(50% - 24px)}.xyz-pad__axis--left{top:calc(50% - 24px);left:2px}.xyz-pad__axis--right{top:calc(50% - 24px);right:2px}.xyz-pad__home{background:var(--card);width:52px;height:52px;color:var(--green);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:calc(50% - 26px);left:calc(50% - 26px)}.z-column{border-radius:10px;flex-direction:column;width:100%;display:flex;overflow:hidden}.z-column__button{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-bottom:1px solid #00000059;min-height:80px;font-family:inherit;font-size:15px;font-weight:500}.z-column__button:last-child{border-bottom:none}.printer-picker{flex-direction:column;gap:6px;display:flex}.printer-picker__row{background:var(--card);color:var(--text);text-align:left;cursor:pointer;border:1px solid #0000;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;font-size:16px;font-weight:600;display:flex}.printer-picker__row--selected{border-color:var(--green);background:#00bf381a}.printer-picker__dot{background:var(--text-secondary);border-radius:50%;flex-shrink:0;width:8px;height:8px}.printer-picker__dot--online{background:var(--green)}.printer-picker__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.printer-picker__check{color:var(--green);flex-shrink:0}.printer-header__name-button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:flex}.printer-header__name-button svg{color:var(--text-secondary);flex-shrink:0}.printer-page__grid{flex-direction:column;gap:16px;display:flex}.printer-page__col{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width>=860px){.printer-page__grid{grid-template-columns:1.3fr 1fr;align-items:start;gap:20px;display:grid}}.ams-backup__toggle{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:14px;padding:0;font-family:inherit;display:flex}.ams-backup__toggle:disabled{cursor:default;opacity:.6}.ams-backup__toggle-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.ams-backup__toggle-title{font-size:16px;font-weight:600}.ams-backup__toggle-subtitle{color:var(--text-secondary);font-size:13px;line-height:1.4}.ams-backup__switch{background:#ffffff29;border-radius:14px;flex-shrink:0;width:46px;height:28px;transition:background-color .15s;position:relative}.ams-backup__switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:2px;left:2px}.ams-backup__toggle--on .ams-backup__switch{background:var(--green)}.ams-backup__toggle--on .ams-backup__switch:after{transform:translate(18px)}.ams-backup__pairs-caption{color:var(--text-secondary);margin-top:4px;font-size:13px;font-weight:600}.ams-backup__pairs{flex-direction:column;gap:10px;display:flex}.ams-backup__pair{background:var(--card);border-radius:14px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.ams-backup__pair-header{align-items:center;gap:8px;display:flex}.ams-backup__pair-swatch{border-radius:50%;flex-shrink:0;width:12px;height:12px}.ams-backup__pair-material{font-size:14px;font-weight:600}.ams-backup__pair-slots{flex-wrap:wrap;gap:8px;display:flex}.ams-backup__pair-slot{color:var(--text-secondary);align-items:center;gap:5px;font-size:12px;display:inline-flex}.ams-backup__pair-slot-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.printer-off{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:50vh;padding:32px 16px;display:flex}.printer-off__icon{color:var(--text-secondary)}.printer-off__title{font-size:22px;font-weight:700}.printer-off__button{background:var(--green);color:#000;border:none;border-radius:16px;align-items:center;gap:8px;padding:14px 28px;font-family:inherit;font-size:16px;font-weight:700;display:flex}.printer-off__button:disabled{opacity:.6}.printer-reveal{animation:.28s ease-out printer-reveal}@keyframes printer-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.skeleton{background:linear-gradient(100deg, var(--card) 30%, #ffffff17 50%, var(--card) 70%);background-size:250% 100%;border-radius:20px;animation:1.4s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton-row{gap:12px;display:flex}.skeleton-row>.skeleton{flex:1}.skeleton--hero{aspect-ratio:16/9;margin-bottom:14px}.skeleton--job{height:130px;margin-bottom:20px}.skeleton--title{border-radius:8px;width:55%;height:22px;margin-bottom:12px}.skeleton--tile{height:84px;margin-bottom:12px}.skeleton--nozzle{height:150px}.skeleton--filament{height:280px}@media (prefers-reduced-motion:reduce){.skeleton,.printer-reveal{animation:none}}.page-fallback{flex-direction:column;gap:12px;padding-top:8px;display:flex}.job-card__repeat{color:var(--green);font:inherit;background:#00bf381f;border:1px solid #00bf3873;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-top:10px;padding:7px 14px;font-size:13px;font-weight:700;display:inline-flex}.spool-tile__rfid{letter-spacing:.05em;color:var(--text-secondary);opacity:.85;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:600}.ams-history{flex-direction:column;gap:16px;display:flex}.ams-history__ranges{flex-wrap:wrap;gap:8px;display:flex}.ams-history__block{background:var(--card);border:1px solid var(--stroke);border-radius:16px;flex-direction:column;gap:6px;padding:12px;display:flex}.ams-history__head{flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px;font-weight:600;display:flex}.ams-history__head span:last-child{color:var(--text-secondary);font-size:12px;font-weight:500}.line-chart{width:100%;height:auto;display:block}.line-chart__empty{text-align:center;color:var(--text-secondary);padding:18px;font-size:13px}.ams-unit__tools{align-items:center;gap:6px;display:flex}.ams-unit__tool{background:var(--card);width:26px;height:26px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.ams-unit__tool:hover{color:#fff}.ams-label-sheet{flex-direction:column;gap:12px;display:flex}.ams-label-sheet input{background:var(--card);border:1px solid var(--stroke);color:#fff;font:inherit;border-radius:12px;padding:10px 12px;font-size:15px}.ams-label-sheet__actions{gap:8px;display:flex}.skip3d{flex-direction:column;gap:8px;display:flex}.skip3d__stage{border:1px solid var(--stroke);background:#121316;border-radius:18px;height:min(52vh,420px);position:relative;overflow:hidden}.skip3d__canvas{touch-action:none;cursor:grab;outline:none;width:100%;height:100%;position:absolute;inset:0}.skip3d__note{color:var(--text-secondary);text-align:center;justify-content:center;align-items:center;padding:16px;font-size:14px;display:flex;position:absolute;inset:0}.skip3d__reset{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:absolute;top:10px;right:10px}.skip3d__hint{color:var(--text-secondary);font-size:12px}.attention{flex-direction:column;gap:8px;display:flex}.attention__dryers{flex-wrap:wrap;gap:8px;display:flex}.attention__dryer{border-radius:var(--radius-pill);color:var(--orange);font-variant-numeric:tabular-nums;background:#ff950024;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.attention__dryer b{font-weight:700}.attention__dryer span{color:var(--text)}.attention__dryer .attention__humidity{color:var(--text-secondary);align-items:center;gap:2px;display:inline-flex}.attention__item{text-align:left;width:100%;color:var(--text);background:#ff95001f;border:none;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.attention__item svg{color:var(--orange);flex:none}.login-page{background:linear-gradient(to bottom, var(--top-gradient), var(--bg) 50%);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.login-page__card{background:var(--sheet);border:1px solid var(--stroke);border-radius:24px;flex-direction:column;gap:18px;width:100%;max-width:360px;padding:28px 24px;display:flex}.login-page__title{text-align:center;font-size:26px;font-weight:700}.login-page__subtitle{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.login-page__hint{text-align:center;color:var(--text-secondary);font-size:14px}.login-page__error{color:var(--red);background:#ff44441f;border-radius:10px;padding:10px 12px;font-size:13px}.login-form{flex-direction:column;gap:14px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-field span{color:var(--text-secondary);font-size:12px}.login-field input{background:var(--card);color:var(--text);border:1px solid #0000;border-radius:12px;padding:12px 14px;font-family:inherit;font-size:15px}.login-field input:focus{border-color:var(--green);outline:none}.login-submit{background:var(--green);color:#000;cursor:pointer;border:none;border-radius:999px;margin-top:4px;padding:13px;font-family:inherit;font-size:15px;font-weight:700}.login-submit:disabled{opacity:.5;cursor:default}.app-shell{background:linear-gradient(to bottom, var(--top-gradient), var(--bg) 50%);min-height:0;padding-top:env(safe-area-inset-top);flex-direction:column;flex:1;display:flex}.app-shell__content{-webkit-overflow-scrolling:touch;min-height:0;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:16px;display:flex;overflow-y:auto}.page-header{align-items:center;gap:8px;display:flex}.page-header__title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:24px;font-weight:700;overflow:hidden}.page-header__button{color:#ffffffbf;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.placeholder-card{background:var(--card);border-radius:var(--radius-card);text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:10px;margin-top:40px;padding:32px 20px;display:flex}.placeholder-card__title{color:var(--text);font-size:17px;font-weight:600}@media (width>=860px){.app-shell{flex-direction:row}.app-shell__content{width:100%;max-width:1040px;padding:28px 32px calc(28px + env(safe-area-inset-bottom));margin:0 auto}}:root{--bg:#050505;--card:#181818;--sheet:#212121;--hero-surface:#262b36;--top-gradient:#4d4d4f;--tab-bar:#1a1a1a;--green:#00bf38;--red:#f44;--orange:#ff9500;--blue:#007aff;--yellow:#fc0;--purple:#af52de;--text:#fff;--text-secondary:#ffffff8f;--stroke:#ffffff26;--divider:#ffffff1a;--radius-card:18px;--radius-card-lg:24px;--radius-hero:30px;--radius-pill:999px;--font-sans:-apple-system, "SF Pro Rounded", "SF Pro Text", system-ui, "Segoe UI", Roboto, Inter, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;padding:0;overflow:hidden}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}#root{height:100dvh;height:var(--app-height,100dvh);flex-direction:column;display:flex;position:fixed;top:0;left:0;right:0}button{color:inherit;cursor:pointer;font-family:inherit}a{color:inherit}::-webkit-scrollbar{display:none}:root{--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.45, .64, 1)}.profile-sheet__backdrop,.confirm-dialog__backdrop{animation:.28s ease-out backdrop-in}.profile-sheet__backdrop.is-closing,.confirm-dialog__backdrop.is-closing{pointer-events:none;animation:.2s ease-in forwards backdrop-out}.profile-sheet,.sheet-screen{animation:sheet-in .42s var(--ease-out)}.is-closing>.profile-sheet,.is-closing>.sheet-screen{animation:.2s ease-in forwards sheet-out}.confirm-dialog{animation:dialog-in .32s var(--ease-spring)}.is-closing>.confirm-dialog{animation:.16s ease-in forwards dialog-out}@keyframes backdrop-in{0%{opacity:0}}@keyframes backdrop-out{to{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}@keyframes sheet-out{to{opacity:0;transform:translateY(36px)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.9)}}@keyframes dialog-out{to{opacity:0;transform:scale(.94)}}.page-enter{animation:page-in .34s var(--ease-out)}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.collapse{opacity:0;transition:grid-template-rows .4s var(--ease-out), opacity .28s ease;grid-template-rows:0fr;display:grid}.collapse--open{opacity:1;grid-template-rows:1fr}.collapse__inner{min-height:0;overflow:hidden}.chevron-turn{transition:transform .35s var(--ease-out)}[aria-expanded=true]>.chevron-turn,[aria-expanded=true] .chevron-turn{transform:rotate(180deg)}.queue-preview__header .queue-preview__count{transition:transform .3s var(--ease-spring)}.queue-preview__header[aria-expanded=true] .queue-preview__count{transform:scale(1.08)}.collapse--open .queue-thumb{animation:thumb-in .45s var(--ease-spring) backwards;animation-delay:calc(var(--i,0) * 60ms + 80ms)}@keyframes thumb-in{0%{opacity:0;transform:translateY(14px)scale(.92)}}.spool-card,.archive-card,.plug-card,.queue-card,.settings-card,.ams-unit,.menu-button{animation:rise-in .45s var(--ease-out) backwards}.spool-card:nth-child(2),.archive-card:nth-child(2),.plug-card:nth-child(2),.queue-card:nth-child(2),.settings-card:nth-child(2),.menu-button:nth-child(2){animation-delay:40ms}.spool-card:nth-child(3),.archive-card:nth-child(3),.plug-card:nth-child(3),.queue-card:nth-child(3),.settings-card:nth-child(3),.menu-button:nth-child(3){animation-delay:80ms}.spool-card:nth-child(4),.archive-card:nth-child(4),.plug-card:nth-child(4),.queue-card:nth-child(4),.settings-card:nth-child(4),.menu-button:nth-child(4),.ams-unit:nth-child(n+2){animation-delay:.12s}.spool-card:nth-child(n+5),.archive-card:nth-child(n+5),.plug-card:nth-child(n+5),.queue-card:nth-child(n+5),.settings-card:nth-child(n+5),.menu-button:nth-child(n+5){animation-delay:.16s}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}button{transition:transform .14s var(--ease-out), background-color .22s ease, border-color .22s ease, color .22s ease, opacity .22s ease}button:not(:disabled):active{transform:scale(.97)}.progress-bar__fill{transition:width .8s var(--ease-out)}.nozzle-temp__value,.job-card__percent-number,.job-card__status{transition:color .4s,opacity .3s}.banner,.banner-overlay>*{animation:banner-drop .4s var(--ease-spring)}@keyframes banner-drop{0%{opacity:0;transform:translateY(-16px)scale(.96)}}.slide-swap{overflow-clip-margin:4px;transition:height .34s var(--ease-out);position:relative;overflow:clip}.slide-swap__layer--out{pointer-events:none;position:absolute;top:0;left:0;right:0}.slide-swap__layer--in-right{animation:swap-in-right .34s var(--ease-out) backwards}.slide-swap__layer--in-left{animation:swap-in-left .34s var(--ease-out) backwards}.slide-swap__layer--out-left{animation:swap-out-left .3s var(--ease-out) forwards}.slide-swap__layer--out-right{animation:swap-out-right .3s var(--ease-out) forwards}@keyframes swap-in-right{0%{opacity:0;transform:translate(34px)}}@keyframes swap-in-left{0%{opacity:0;transform:translate(-34px)}}@keyframes swap-out-left{to{opacity:0;transform:translate(-34px)}}@keyframes swap-out-right{to{opacity:0;transform:translate(34px)}}.slide-swap .ams-unit{animation:none}.feed-mini-card,.feed-chip{transition:border-color .3s var(--ease-out), background-color .3s var(--ease-out), box-shadow .3s var(--ease-out)}.feed-chip__bar{transition:height .35s var(--ease-out)}.skip-objects__row,.skip-objects__dot{transition:background-color .25s ease, opacity .25s ease, transform .14s var(--ease-out)}.spool-card__ring circle:last-child{animation:ring-draw .9s var(--ease-out) .15s backwards}@keyframes ring-draw{0%{stroke-dashoffset:var(--ring-circumference,100)}}.spool-tile__bar-fill{transform-origin:0;animation:bar-grow .8s var(--ease-out) .1s backwards}@keyframes bar-grow{0%{transform:scaleX(0)}}.spool-tile__bar-fill,.progress-bar__fill{transition:width .8s var(--ease-out)}.row-leaving{animation:row-leave .3s var(--ease-out) forwards;pointer-events:none;overflow:hidden}@keyframes row-leave{to{opacity:0;max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transform:translate(36px)}}:is(.queue-thumb-button:has(img),.library-row__thumb:has(img),.archive-artwork:has(img)){background:#ececf0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.hub-enter{animation:hub-enter .32s var(--ease-out)}@keyframes hub-enter{0%{opacity:0;transform:translateY(10px)}}.tab-bar__item{transition:color .25s,background-color .2s,transform .12s}.tab-bar__item--active svg{animation:tab-pop .42s var(--ease-spring)}@keyframes tab-pop{0%{transform:scale(.72)translateY(3px)}}.print-segmented__item,.filter-chip,.stats-range-chip,.tl-chip,.queue-tabs__item,.weight-action,.settings-button,.loc-chip,.archive-menu__item{transition:background-color .22s,color .22s,border-color .22s,opacity .22s,transform .12s}.print-segmented__item:not(:disabled):active,.filter-chip:not(:disabled):active,.tl-chip:not(:disabled):active,.loc-chip:not(:disabled):active{transform:scale(.95)}.toggle{transition:background-color .25s}.toggle__knob{transition:transform .28s var(--ease-spring)}details>:not(summary){animation:hub-enter .28s var(--ease-out)}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--fs-caption:12px;--fs-body:14px;--fs-title:17px;--fs-metric:28px;--shadow-card:0 6px 22px #00000059;--shadow-sheet:0 -10px 40px #00000080;--glass-bg:#212121d1;--glass-bg-strong:#1a1a1ae6;--glass-line:#ffffff14;--glass-blur:saturate(160%) blur(18px);--focus-ring:#4da3ff}body{font-variant-numeric:tabular-nums}.settings-card,.banner,.attention__item,.events-row,.stat-card,.archive-section{border-radius:var(--radius-card)}.profile-sheet__backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.profile-sheet{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-sheet);border-top:1px solid var(--glass-line)}.tab-bar{background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.offline-banner,.banner-overlay__item{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.attention__item,.attention__dryer{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}button:not(:disabled):active,[role=button]:active{transform:scale(.975)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}button:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible){outline:none}.page-header__button,.header-action,.queue-icon-button{min-width:44px;min-height:44px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){:root{--text-secondary:#ffffffc7;--stroke:#ffffff4d}}.profile-sheet__grip{touch-action:none;background:#ffffff47;border-radius:3px;flex:none;width:40px;height:5px;margin:8px auto 0;display:none}@media (width<=859px){.profile-sheet__grip{display:block}.profile-sheet__header{touch-action:none}}.empty-state{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:8px;padding:36px 20px;display:flex}.empty-state__icon{background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:4px;display:flex}.empty-state__title{font-size:var(--fs-title);color:var(--text);font-weight:700}.empty-state__hint{font-size:var(--fs-body);max-width:320px}.empty-state .settings-button{margin-top:8px}.action-sheet__list{flex-direction:column;gap:6px;padding-bottom:8px;display:flex}.action-sheet__item{text-align:left;width:100%;color:var(--text);background:#ffffff12;border:none;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;font-size:16px;font-weight:600;display:flex}.action-sheet__item--danger{color:var(--red)}.action-sheet__hint{color:var(--text-secondary);padding:0 4px 8px;font-size:13px}.next-action{border-radius:var(--radius-card);background:var(--card);border:1px solid var(--stroke);box-shadow:var(--shadow-card);flex-direction:column;gap:10px;padding:14px;display:flex}.next-action__title{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-weight:700}.next-action__job{align-items:center;gap:12px;min-width:0;display:flex}.next-action__thumb{object-fit:cover;background:#ffffff12;border-radius:12px;flex:none;width:52px;height:52px}.next-action__name{font-size:var(--fs-title);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.next-action__meta{font-size:var(--fs-caption);color:var(--text-secondary)}.next-action__buttons{gap:10px;display:flex}.next-action__buttons .settings-button{flex:1}.plate-clear-done{border-radius:var(--radius-card);color:var(--green);animation:pop-in .35s var(--ease-spring,ease) both;background:#00bf3824;justify-content:center;align-items:center;gap:8px;padding:12px;font-weight:700;display:flex}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.next-action{margin-top:var(--space-2)}
