:root{color-scheme:light;--color-page: #f4f7fb;--color-surface: #ffffff;--color-surface-soft: #f8fafc;--color-border: #d8e1ea;--color-text: #162033;--color-text-muted: #65758b;--color-primary: #0f766e;--color-primary-strong: #115e59;--color-primary-soft: #d9f4ef;--color-success: #15803d;--color-success-soft: #dcfce7;--color-info: #2563eb;--color-info-soft: #dbeafe;--color-warning: #b45309;--color-warning-soft: #fef3c7;--color-sidebar: #ffffff;--color-sidebar-soft: #eef6f7;--color-sidebar-text: #162033;--shadow-panel: 0 14px 40px rgba(15, 23, 42, .08);--radius-sm: 6px;--radius-md: 8px;--sidebar-width: 238px;--topbar-height: 66px;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{min-width:320px;background:var(--color-page)}body{margin:0;color:var(--color-text);background:var(--color-page);font-family:var(--font-sans)}button,input,textarea,select{font:inherit}button{cursor:pointer}.appShell{display:flex;min-height:100vh}.appMain{display:flex;flex:1;min-width:0;flex-direction:column;padding-left:var(--sidebar-width)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:var(--sidebar-width);padding:16px;color:var(--color-sidebar-text);background:var(--color-sidebar);border-right:1px solid var(--color-border);box-shadow:10px 0 30px #0f172a0f}.brandBlock{display:flex;min-height:66px;align-items:center;justify-content:space-between;gap:10px;padding:2px 0 10px}.userBadge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.appLogo{display:block;max-width:100%;object-fit:contain}.appLogoFrame{display:block;overflow:hidden}.appLogoFrame-sidebar{width:196px;height:58px;overflow:hidden}.appLogo-sidebar{width:224px;height:auto;max-width:none;transform:translate(-14px,-12px)}.appLogo-auth{width:min(260px,100%);height:auto;margin:0 auto 12px}.sideNav{display:grid;gap:6px;margin-top:28px}.sideNavLink{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border-radius:var(--radius-sm);color:#475569;text-decoration:none}.sideNavLink:hover,.sideNavLink.router-link-active{color:var(--color-primary);background:var(--color-sidebar-soft)}.sideNavGroup{display:grid;gap:3px}.sideNavGroupLabel{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;color:#64748b;font-size:.78rem;font-weight:800;text-transform:uppercase}.sideNavChildLink{min-height:36px;margin-left:20px;padding:0 10px;color:#475569;font-size:.94rem}.sideNavChildLink svg{color:#64748b}.sideNavChildLink:hover svg,.sideNavChildLink.router-link-active svg{color:var(--color-primary)}.topbar{position:sticky;top:0;z-index:20;display:flex;min-height:var(--topbar-height);align-items:center;gap:16px;padding:12px 28px;border-bottom:1px solid var(--color-border);background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.searchBox{display:flex;width:min(520px,100%);min-height:42px;align-items:center;gap:10px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);background:var(--color-surface-soft)}.searchBox input{width:100%;min-width:0;border:0;outline:0;color:var(--color-text);background:transparent}.topbarActions{display:flex;align-items:center;gap:10px;margin-left:auto}.workspaceSwitcher{display:inline-flex;align-items:center;gap:8px;min-height:38px;max-width:min(460px,42vw);padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-surface)}.workspaceSwitcher select{min-width:10ch;max-width:min(390px,34vw);border:0;outline:0;color:var(--color-text);background:transparent;font-size:.9rem;font-weight:700}.iconButton,.primaryButton,.secondaryButton{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.iconButton,.primaryButton{border:0}.iconButton{width:40px;height:40px;color:var(--color-text);background:transparent}.iconButton:hover{background:var(--color-surface-soft)}.actionIconButton{border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface)}.actionIconButton:hover{color:var(--color-primary);border-color:var(--color-primary-soft);background:var(--color-primary-soft)}.dangerIconButton:hover{color:#b91c1c;border-color:#fecaca;background:#fee2e2}.visuallyHidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;border:0;clip:rect(0,0,0,0);white-space:nowrap}.primaryButton{min-height:40px;gap:8px;padding:0 14px;color:#fff;background:var(--color-primary);box-shadow:0 10px 22px #0f766e38}.primaryButton:hover{background:var(--color-primary-strong)}.primaryButton:disabled{cursor:not-allowed;opacity:.72}.secondaryButton{min-height:36px;padding:0 12px;border:1px solid var(--color-border);color:var(--color-text);background:var(--color-surface)}.secondaryButton:hover{background:var(--color-surface-soft)}.dangerButton{min-height:36px;padding:0 12px;border:1px solid #fecaca;border-radius:var(--radius-sm);color:#fff;background:#dc2626}.dangerButton:hover{background:#b91c1c}.dangerButton:disabled,.secondaryButton:disabled{cursor:not-allowed;opacity:.62}.userBadge{width:38px;height:38px;border-radius:var(--radius-sm);color:#fff;background:#334155;font-size:.82rem;font-weight:700}.userMenu{position:relative}.userMenuButton{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 6px 0 0;border:0;border-radius:var(--radius-sm);color:var(--color-text);background:transparent}.userMenuButton:hover{background:var(--color-surface-soft)}.userDropdown{position:absolute;top:calc(100% + 10px);right:0;z-index:40;display:grid;gap:4px;width:240px;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-panel)}.userDropdownHeader{display:grid;gap:3px;padding:10px;border-bottom:1px solid var(--color-border)}.userDropdownHeader span{overflow:hidden;color:var(--color-text-muted);font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.userDropdown button{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 10px;border:0;border-radius:var(--radius-sm);color:var(--color-text);background:transparent;text-align:left}.userDropdown button:hover{color:var(--color-primary);background:var(--color-primary-soft)}.pageCanvas{width:100%;padding:28px}.pageStack{display:grid;gap:22px;width:min(1280px,100%);margin:0 auto}.pageHeader{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0;padding:22px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-panel)}.pageHeader h1{margin:4px 0 0;font-size:clamp(1.7rem,2vw,2.25rem);line-height:1.1;letter-spacing:0}.pageHeader p{max-width:720px;margin:8px 0 0;color:var(--color-text-muted);line-height:1.55}.pageHeaderActions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;flex-wrap:wrap}.sectionHeaderRow{display:flex;align-items:center;justify-content:space-between;gap:18px}.sectionHeaderRow h2{margin:4px 0 0;font-size:1.25rem;letter-spacing:0}.eyebrow{color:var(--color-primary);font-size:.75rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.statGrid,.contentGrid{display:grid;gap:16px}.statGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.contentGrid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.statCard,.panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-panel)}.statCard{display:grid;gap:10px;min-height:112px;padding:18px;border-left:4px solid var(--color-primary)}.statCard span{color:var(--color-text-muted);font-size:.88rem}.statCard strong{font-size:1.9rem;line-height:1}.tone-success{border-left-color:var(--color-success)}.tone-info{border-left-color:var(--color-info)}.tone-warning{border-left-color:var(--color-warning)}.panel{min-width:0;padding:18px}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a7a}.modalCard{width:min(760px,100%);max-height:min(720px,calc(100vh - 48px));padding:18px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 28px 80px #0f172a47}.deleteConfirmModal{width:min(520px,100%)}.modalHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.modalHeader h2{margin:4px 0 0;font-size:1.08rem;letter-spacing:0}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.panelHeader h2{margin:0;font-size:1rem;letter-spacing:0}.compactPanelHeader{align-items:flex-start;justify-content:flex-end}.compactPanelHeader .emptyStateText{margin:0}.statusBadge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:.78rem;font-weight:700}.statusBadge.muted{color:var(--color-text-muted);background:var(--color-surface-soft)}.statusBadge.success{color:var(--color-success);background:var(--color-success-soft)}.statusBadge.info{color:var(--color-info);background:var(--color-info-soft)}.statusBadge.warning{color:var(--color-warning);background:var(--color-warning-soft)}.migrationList{display:grid;gap:10px;margin-top:18px}.migrationItem{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.migrationItem strong,.migrationItem small{display:block}.migrationItem strong{margin-top:3px;font-size:.95rem}.migrationItem small,.migrationOrder{color:var(--color-text-muted)}.migrationOrder{font-size:.8rem;font-weight:700}.migrationBadges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.workspaceDashboardPanel{display:grid;gap:18px}.workspaceDashboardGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.workspaceDashboardCard{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;min-height:78px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none;background:var(--color-surface-soft)}.workspaceDashboardCard:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.workspaceDashboardIcon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface)}.workspaceDashboardCard strong{font-size:.98rem}.panelActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.primaryButton,.secondaryButton{text-decoration:none}.emptyText{margin:18px 0 0;color:var(--color-text-muted);line-height:1.55}.desktopHidden,.mobileOnly,.sidebarBackdrop{display:none}.authShell{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(15,118,110,.12),transparent 42%),var(--color-page)}.authPanel{display:grid;gap:24px;width:min(440px,100%);padding:28px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-panel)}.authPanel-wide{width:min(760px,100%)}.authIntro h1{margin:6px 0 0;font-size:2rem;line-height:1.1;letter-spacing:0;text-align:center}.authIntro p{margin:10px 0 0;color:var(--color-text-muted);line-height:1.55;text-align:center}.authForm{display:grid;gap:16px}.settingsForm{display:grid;gap:16px;margin-top:18px}.setupStepper{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:0;margin:0;list-style:none}.setupStepper li{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-surface-soft)}.setupStepper span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 auto;border-radius:999px;color:var(--color-text-muted);background:var(--color-surface);font-size:.82rem;font-weight:800}.setupStepper strong{overflow:hidden;font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.setupStepper li.active{border-color:#0f766e6b;color:var(--color-primary);background:var(--color-primary-soft)}.setupStepper li.active span,.setupStepper li.done span{color:#fff;background:var(--color-primary)}.setupStepper li.done{color:var(--color-primary)}.setupSection{display:grid;gap:14px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft)}.setupSection h2{margin:4px 0 0;font-size:1.05rem}.setupSection p{margin:6px 0 0;color:var(--color-text-muted);font-size:.92rem;line-height:1.45}.formGrid{display:grid;gap:12px}.formGrid.twoColumns{grid-template-columns:minmax(0,1fr) 120px}.formGrid.equalColumns{grid-template-columns:repeat(2,minmax(0,1fr))}.formField{display:grid;gap:7px}.formField span{color:var(--color-text);font-size:.88rem;font-weight:700}.formField input,.formField select,.formField textarea{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);outline:0}.formField textarea{min-height:92px;padding:10px 12px;resize:vertical}.colorInputGroup{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}.colorInputGroup .colorPickerInput{min-width:0;padding:4px}.formField input:focus,.formField select:focus,.formField textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0f766e1f}.checkboxField{display:flex;min-height:42px;align-items:center;gap:10px;align-self:end;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft);font-size:.9rem;font-weight:700}.checkboxField input{width:16px;height:16px;accent-color:var(--color-primary)}.logoUpload{display:grid;gap:10px}.logoUploadLabel{color:var(--color-text);font-size:.88rem;font-weight:700}.logoDropzone{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:104px;padding:14px;border:1px dashed #9fb3c8;border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface-soft);text-align:left}.logoDropzone:hover,.logoDropzone.isDragging{border-color:var(--color-primary);background:var(--color-primary-soft)}.logoPreviewFrame,.logoPlaceholder{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.logoPreviewFrame img{width:100%;height:100%;object-fit:contain}.logoPlaceholder{color:var(--color-primary)}.logoUploadCopy{display:grid;gap:4px;min-width:0}.logoUploadCopy strong{font-size:.95rem}.logoUploadCopy span{overflow:hidden;color:var(--color-text-muted);font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.logoUploadActions{display:flex;flex-wrap:wrap;gap:8px}.inputWithAction{display:flex;gap:8px}.inputWithAction input{min-width:0}.calibrationFieldsPanel,.embeddedChoicePanel{display:grid;gap:14px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft)}.embeddedChoiceHeader,.panelSubHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.embeddedChoiceHeader h3,.panelSubHeader h3{margin:2px 0 0;font-size:1rem}.choiceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choiceTile{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer}.choiceTile input{margin-top:2px}.choiceTile span{display:grid;gap:3px;min-width:0}.choiceTile strong{color:var(--color-text);font-size:.9rem}.choiceTile small{color:var(--color-text-muted);font-size:.8rem}.printerAdminGrid{display:grid;grid-template-columns:1fr;gap:16px}.printerAdminColumn{display:grid;align-content:start;gap:12px;min-width:0}.printerCardGrid{display:grid;grid-template-columns:minmax(0,1fr);justify-content:start;gap:16px}.printerImageFrame{display:grid;margin-inline:auto;place-items:center;width:140px;aspect-ratio:1 / 1;overflow:hidden;border:0;border-radius:0;background:var(--color-surface)}.printerImageFrame img{width:100%;height:100%;object-fit:cover}.printerImagePlaceholder{display:grid;gap:4px;color:var(--color-text-muted);text-align:center}.printerImagePlaceholder strong{color:var(--color-text);font-size:.82rem}.printerImagePlaceholder span{font-size:.74rem}.nozzleThumb{display:grid;flex:0 0 auto;place-items:center;width:42px;height:42px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface-soft);font-size:.76rem;font-weight:900}.nozzleThumb img{width:100%;height:100%;object-fit:contain}.printerMetaGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.printerMetaGrid div{display:grid;gap:2px;min-width:0;padding:8px 9px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.printerMetaGrid span{color:var(--color-text-muted);font-size:.7rem;font-weight:800}.printerMetaGrid strong{color:var(--color-text);font-size:.8rem;overflow-wrap:anywhere}.printerDetailModal{width:min(980px,100%)}.printerDetailLayout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;margin-top:16px}.printerDetailMedia{display:grid;place-items:center;width:220px;aspect-ratio:1 / 1;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.printerDetailMedia img{width:100%;height:100%;object-fit:cover}.printerDetailContent{display:grid;align-content:start;gap:14px;min-width:0}.detailSection{display:grid;gap:8px}.detailSection h3{margin:0;color:var(--color-text);font-size:.92rem}.detailGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.detailGrid div{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.detailGrid span{color:var(--color-text-muted);font-size:.72rem;font-weight:800}.detailGrid strong{color:var(--color-text);font-size:.84rem;overflow-wrap:anywhere}.compactNozzleList .nozzleItem{padding:8px 9px}.calibrationFieldsHeader,.calibrationFieldCardHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.calibrationFieldsHeader h3{margin:2px 0 0;font-size:1rem}.calibrationFieldsGrid{display:grid;grid-template-columns:1fr;gap:12px}.calibrationFieldCard{display:grid;gap:12px;min-width:0;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.calibrationFieldCardHeader strong{color:var(--color-text);font-size:.92rem}.calibrationFieldCardHeader span{color:var(--color-text-muted);font-size:.78rem;text-align:right}.calibrationPreviewGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calibrationPreviewField{display:grid;gap:5px;min-width:0}.calibrationPreviewField span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--color-text-muted);font-size:.76rem;font-weight:800;overflow-wrap:anywhere}.calibrationPreviewField small{color:var(--color-primary);font-size:.72rem;font-weight:800}.calibrationPreviewField input{min-width:0;min-height:34px;padding:0 10px;border:1px solid color-mix(in srgb,var(--color-primary) 18%,var(--color-border));border-radius:var(--radius-sm);color:var(--color-text);background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface));font-size:.8rem;font-weight:700;opacity:1;text-overflow:ellipsis}.wizardActions{display:flex;justify-content:flex-end;gap:10px}.setupSummary{display:grid;gap:10px}.setupSummary div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.setupSummary span{color:var(--color-text-muted);font-size:.88rem}.setupSummary strong{min-width:0;overflow-wrap:anywhere;text-align:right}.profileSummary{display:grid;gap:10px;margin-top:18px}.profileSummary div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.profileSummary span{color:var(--color-text-muted);font-size:.88rem}.profileSummary strong{overflow-wrap:anywhere;text-align:right}.accountOverviewGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.accountOverviewGrid>.panel{height:100%}.accountOverviewGrid .panelHeader h2{font-size:.96rem}.accountOverviewGrid .settingsForm{gap:12px}.accountOverviewGrid .profileSummary{gap:8px}.accountOverviewGrid .profileSummary div{min-height:42px;padding:9px 10px}.accountOverviewGrid .profileSummary span,.accountOverviewGrid .formField span{font-size:.82rem}.accountOverviewGrid .profileSummary strong{font-size:.92rem}.accountOverviewGrid .formField input{min-height:40px;font-size:.92rem}.permissionGrid{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.permissionGrid.compact{margin-top:12px}.permissionBadge{display:inline-flex;align-items:center;min-height:32px;max-width:100%;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface-soft);font-size:.86rem;font-weight:700;overflow-wrap:anywhere}.badgeStack{display:flex;flex-wrap:wrap;gap:6px}.compactBadge{min-height:28px;font-size:.8rem}.roleList{display:grid;gap:12px;margin-top:18px}.roleWorkspaceLimit{display:grid;grid-template-columns:minmax(180px,280px) auto;align-items:end;gap:10px;margin-top:14px}.roleEditForm{display:grid;gap:14px;margin-top:16px}.panelHeaderActions{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.roleModal{width:min(920px,100%)}.roleDataGrid{margin-top:18px}.roleDetailRow td{background:var(--color-surface-soft)}.expandedRow td{background:var(--color-primary-soft)}.roleDetailAction,.roleSaveAction{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 13px;border-radius:var(--radius-sm);font-weight:800;white-space:nowrap}.roleDetailAction{border:1px solid var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.roleDetailAction:hover{color:#fff;background:var(--color-primary)}.roleSaveAction{border:1px solid var(--color-primary);color:#fff;background:var(--color-primary);box-shadow:0 10px 18px #0f766e2e}.roleSaveAction:hover{background:var(--color-primary-strong)}.roleSaveAction:disabled{cursor:not-allowed;opacity:.68}.rolePermissionEditor{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.rolePermissionEditor.compact{max-height:280px;overflow:auto}.permissionGroup{display:grid;align-content:start;gap:8px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.permissionGroup h3{margin:0;color:var(--color-text-muted);font-size:.78rem;text-transform:uppercase}.permissionToggle{display:grid;grid-template-columns:18px 1fr;align-items:start;gap:8px;color:var(--color-text);font-size:.86rem;line-height:1.35}.permissionToggle input{width:16px;height:16px;margin-top:1px}.compactForm{display:grid;grid-template-columns:minmax(220px,420px) auto;align-items:end;gap:12px}.workspaceList{display:grid;gap:10px;margin-top:18px}.workspaceCard{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.workspaceCardIcon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-primary-soft)}.workspaceCard strong,.workspaceCard span{display:block}.workspaceCard span:not(.statusBadge){margin-top:2px;color:var(--color-text-muted);font-size:.86rem}.workspaceCardActions{display:inline-flex;align-items:center;gap:8px}.printerList{display:grid;gap:14px;margin-top:18px}.printerCard{display:grid;grid-template-columns:140px minmax(0,1fr);align-content:start;gap:12px 14px;width:100%;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.printerCard>:not(.printerMediaColumn){grid-column:2}.printerMediaColumn{display:grid;grid-column:1;grid-row:1 / span 3;align-self:center;align-content:start;justify-self:center;justify-items:center;gap:10px;width:140px}.printerImageActions{display:flex;justify-content:center;gap:8px;margin-inline:auto;width:140px}.printerImageActions .iconButton{flex:0 0 40px}.printerCardHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.printerCardHeader>div:first-child{display:grid;gap:4px}.printerCardHeader span:not(.statusBadge){color:var(--color-text-muted);font-size:.86rem}.printerActions,.nozzleList{display:flex;flex-wrap:wrap;gap:8px}.nozzleList{display:grid}.nozzleItem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.nozzleItem div{display:grid;gap:3px}.nozzleItem span{color:var(--color-text-muted);font-size:.84rem}.printerNozzleList{gap:6px}.printerNozzleItem{min-height:34px;padding:7px 9px}.printerNozzleItem strong{font-size:.82rem}.printerNozzleItem .statusBadge{min-height:26px;padding:0 9px;font-size:.76rem}.dataTableWrap{width:100%;margin-top:18px;overflow-x:auto}.dataTable{width:100%;min-width:760px;border-collapse:collapse;font-size:.9rem}.dataTable th,.dataTable td{padding:12px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.dataTable th{color:var(--color-text-muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.tableIdentity{display:grid;gap:4px}.tableIdentity span{color:var(--color-text-muted);font-size:.84rem}.manufacturerIdentity{display:flex;align-items:center;gap:12px}.filamentIdentity{display:flex;align-items:center;gap:10px}.colorSwatch{width:28px;height:28px;flex:0 0 auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:inset 0 0 0 2px #ffffff80}.manufacturerLogoThumb{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 auto;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface-soft);font-size:.76rem;font-weight:800}.manufacturerLogoThumb img{width:100%;height:100%;object-fit:contain}.tableBadges{display:flex;flex-wrap:wrap;gap:6px}.emptyStateText{margin:14px 0 0;color:var(--color-text-muted);font-size:.94rem;line-height:1.5}.modelCardGrid{display:grid;gap:14px;margin-top:18px}.modelCard{display:grid;grid-template-columns:128px minmax(0,1fr);gap:16px;min-width:0;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-soft)}.modelPreviewFrame{display:flex;align-items:center;justify-content:center;width:128px;height:128px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface);font-weight:900;letter-spacing:.08em}.modelCardBody{display:grid;align-content:start;gap:12px;min-width:0}.modelCardHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modelCardHeader strong,.modelCardHeader span{display:block}.modelCardHeader strong{font-size:1rem}.modelCardHeader div>span{margin-top:3px;color:var(--color-text-muted);font-size:.84rem;word-break:break-word}.modelMetaGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.modelMetaGrid div{min-width:0;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.modelMetaGrid span,.modelHistoryHint{color:var(--color-text-muted);font-size:.78rem;font-weight:700}.modelMetaGrid strong{display:block;margin-top:4px;font-size:.92rem}.modelActions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.modelActionButton{gap:8px;min-width:108px;min-height:36px;padding:0 12px;box-shadow:none}.modelDetailButton{border-color:#93c5fd;color:var(--color-info);background:var(--color-info-soft);font-weight:800}.modelDetailButton:hover{border-color:#60a5fa;color:#1d4ed8;background:#bfdbfe}.modelHistoryHint{display:inline-flex;align-items:center;gap:6px;min-height:38px}.modelEmptyState{display:grid;justify-items:center;gap:10px;margin-top:18px;padding:34px 18px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);text-align:center;background:var(--color-surface-soft)}.modelEmptyState strong{color:var(--color-text)}.modelDropzone{display:grid;justify-items:center;gap:8px;width:100%;min-height:156px;padding:18px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-surface-soft);cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease}.modelDropzone strong{color:var(--color-text);font-size:.98rem}.modelDropzone.isDragging,.modelDropzone:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.formError{margin:0;padding:10px 12px;border-radius:var(--radius-sm);color:#991b1b;background:#fee2e2;font-size:.9rem;line-height:1.45}.formNotice{margin:0;padding:10px 12px;border-radius:var(--radius-sm);color:var(--color-info);background:var(--color-info-soft);font-size:.9rem;line-height:1.45}.formWarning{margin:0;padding:10px 12px;border-radius:var(--radius-sm);color:#92400e;background:#fef3c7;font-size:.9rem;line-height:1.45}.formSuccess{margin:0;padding:10px 12px;border-radius:var(--radius-sm);color:var(--color-success);background:var(--color-success-soft);font-size:.9rem;line-height:1.45}.toastStack{position:fixed;top:18px;right:18px;z-index:100;display:grid;gap:10px;width:min(420px,calc(100vw - 36px));pointer-events:none}.toastItem{display:grid;grid-template-columns:22px minmax(0,1fr) 28px;align-items:start;gap:10px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-panel);pointer-events:auto}.toastItem strong,.toastItem span{display:block}.toastItem strong{margin-bottom:3px;font-size:.9rem}.toastItem span{color:var(--color-text-muted);font-size:.88rem;line-height:1.4}.toastItem button{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);color:var(--color-text-muted);background:transparent}.toastItem button:hover{color:var(--color-text);background:var(--color-surface-soft)}.toastItem-success{border-color:#bbf7d0}.toastItem-success>svg{color:var(--color-success)}.toastItem-error{border-color:#fecaca}.toastItem-error>svg{color:#dc2626}.toastItem-warning{border-color:#fde68a}.toastItem-warning>svg{color:#d97706}.toastItem-info>svg{color:var(--color-info)}.toastConfirmOverlay{z-index:95}.toastConfirmCard{width:min(520px,100%)}.formActions{display:flex;justify-content:flex-end}.splitActions{justify-content:space-between;gap:10px}@media(max-width:1100px){.statGrid,.contentGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.accountOverviewGrid{grid-template-columns:1fr}.appMain{padding-left:0}.sidebar{transform:translate(-100%);transition:transform .18s ease}.sidebar.isOpen{transform:translate(0)}.sidebarBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;display:block;border:0;background:#0f172a6b}.desktopHidden,.mobileOnly{display:inline-flex}.brandBlock .mobileOnly{margin-left:auto;color:var(--color-sidebar-text)}.topbar{padding:12px 16px}.workspaceSwitcher{max-width:min(240px,46vw)}.workspaceSwitcher select{max-width:min(180px,36vw)}.pageCanvas{padding:22px 16px}.pageHeader{align-items:flex-start;flex-direction:column;padding:18px}.sectionHeaderRow{align-items:flex-start;flex-direction:column}.calibrationFieldsGrid,.calibrationPreviewGrid,.printerAdminGrid,.printerCardGrid,.choiceGrid,.printerMetaGrid,.roleWorkspaceLimit,.compactForm,.modelCard,.printerDetailLayout{grid-template-columns:1fr}.modelPreviewFrame{width:100%;height:120px}.detailGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.printerDetailMedia{width:min(220px,100%)}.printerCard{max-width:none}.workspaceCard{grid-template-columns:44px minmax(0,1fr)}.workspaceCardActions{grid-column:1 / -1;justify-content:flex-start}}@media(max-width:620px){.searchBox{display:none}.statGrid,.contentGrid{grid-template-columns:1fr}.primaryButton,.secondaryButton{width:100%}.setupStepper{grid-template-columns:1fr}.setupStepper strong{white-space:normal}.pageHeaderActions{width:100%;justify-content:stretch}.pageHeaderActions>*{flex:1 1 auto}.sectionHeaderRow .primaryButton{width:100%}.modalOverlay{align-items:flex-end;padding:12px}.modalCard{max-height:calc(100vh - 24px)}.migrationItem{align-items:flex-start;flex-direction:column}.migrationBadges{justify-content:flex-start}.inputWithAction,.calibrationFieldsHeader,.calibrationFieldCardHeader{flex-direction:column}.calibrationFieldCardHeader span{text-align:left}.detailGrid{grid-template-columns:1fr}.logoDropzone{grid-template-columns:auto minmax(0,1fr)}.logoDropzone>svg{display:none}.printerCardHeader,.modelCardHeader,.nozzleItem{align-items:flex-start;flex-direction:column}.modelMetaGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.printerCard{grid-template-columns:1fr;grid-template-rows:auto}.printerCard>:not(.printerMediaColumn),.printerMediaColumn{grid-column:1;grid-row:auto}.printerMediaColumn,.printerImageActions{width:100%}.formGrid.twoColumns,.formGrid.equalColumns{grid-template-columns:1fr}.wizardActions{flex-direction:column-reverse}.setupSummary div{align-items:flex-start;flex-direction:column}.setupSummary strong,.profileSummary strong{text-align:left}.profileSummary div{align-items:flex-start;flex-direction:column}}
