.profileSectionHidden{display:none!important}

.profileCardsLanding{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 18px}
.profileTypeCard{display:flex;align-items:center;gap:16px;padding:22px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(150deg,var(--surface-raised),var(--panel));cursor:pointer;text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.profileTypeCard:hover,.profileTypeCard:focus-visible{transform:translateY(-4px) scale(1.015);border-color:color-mix(in srgb,var(--accent) 60%,var(--line));box-shadow:0 18px 40px color-mix(in srgb,var(--accent) 18%,rgba(0,0,0,.2));outline:none}
.profileTypeCard:active{transform:translateY(-1px) scale(1.005)}
.profileTypeCardIcon{display:grid;place-items:center;flex:0 0 60px;width:60px;height:60px;border-radius:16px;background:color-mix(in srgb,var(--accent) 14%,var(--surface-input));border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent2);transition:transform .18s ease}
.profileTypeCard:hover .profileTypeCardIcon{transform:scale(1.08) rotate(-3deg)}
.profileTypeCardIcon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.profileTypeCardBody{flex:1;min-width:0;display:grid;gap:2px}
.profileTypeCardBody b{font-size:1.08rem;color:var(--text)}
.profileTypeCardBody small{color:var(--accent2);font-size:.78rem;font-weight:650}
.profileTypeCardBody em{color:var(--muted);font-style:normal;font-size:.82rem;line-height:1.4}
.profileTypeCardArrow{flex:0 0 auto;color:var(--accent);font-size:1.3rem;transition:transform .18s ease}
.profileTypeCard:hover .profileTypeCardArrow{transform:translateX(5px)}
@media(max-width:700px){.profileCardsLanding{grid-template-columns:1fr}}

.profileSectionToggle{display:flex;gap:8px;margin:0 0 18px;padding:6px;border:1px solid var(--line);border-radius:16px;background:var(--surface-sub,var(--surface-input))}
.profileSectionBackBtn{flex:0 0 auto;width:44px;padding:11px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-size:1.1rem;cursor:pointer}
.profileSectionBackBtn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text)}
.profileSectionToggleBtn{flex:1;padding:11px 14px;border:0;border-radius:11px;background:transparent;color:var(--muted);font:650 .88rem var(--app-font,system-ui);cursor:pointer;transition:background .15s ease,color .15s ease}
.profileSectionToggleBtn.active{background:var(--accent);color:var(--button-text,#07101c);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 30%,transparent)}
.profileSectionToggleBtn:not(.active):hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text)}

.printerProfilesCard .titleIcon.icon-layers{color:var(--accent2)}
.printerProfilesToolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 16px}
.printerProfilesToolbar input[type="search"]{flex:1;min-width:180px;min-height:44px;padding:9px 13px;border:1px solid var(--edge-strong,var(--line));border-radius:12px;background:var(--surface-input);color:var(--text);font:500 .86rem var(--app-font,system-ui)}
.printerProfilesToolbar select{min-height:44px;padding:9px 12px;border:1px solid var(--edge-strong,var(--line));border-radius:12px;background:var(--surface-input);color:var(--text);font:500 .84rem var(--app-font,system-ui)}
.printerProfilesToolbar .catalogResultCount{color:var(--accent2);font-size:.8rem;font-weight:750;white-space:nowrap}
.printerProfilesToolbar #printerAddBtn{margin-left:auto}

.printerProfilesTableWrap{border:1px solid var(--line);border-radius:16px;background:var(--surface-sub,var(--surface-input));overflow:auto}
.printerProfilesTable{width:100%;min-width:920px;border-collapse:separate;border-spacing:0}
.printerProfilesTable thead th{position:sticky;top:0;z-index:1;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--surface-raised);color:var(--accent2);font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;text-align:left}
.printerProfilesTable td{padding:13px 14px;border-bottom:1px solid var(--line);color:var(--text);font-size:.86rem;vertical-align:middle}
.printerProfilesTable tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.printerProfilesTable tbody tr:last-child td{border-bottom:0}
.printerProfilesTable small{display:block;color:var(--muted);font-size:.68rem}
.printerNameCell b{font-weight:700}
.printerHourlyRate{color:var(--accent);font-weight:800}
.printerNotesCell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.printerRowActions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.printerRowActions .smallbtn{min-height:34px;padding:6px 11px;font-size:.76rem}
.printerLinkBtn{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:9px;color:var(--accent2);text-decoration:none;font-size:.9rem}
.printerLinkBtn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.printerLockedRow td{padding:14px;color:var(--muted);background:color-mix(in srgb,var(--accent) 5%,transparent)}
.printerLockedRow small{color:var(--warn,#ffc400)}
.printerProfilesEmptyState{padding:34px 20px;text-align:center;color:var(--muted)}

.printerModal{width:min(620px,100%)!important}
.printerModalBody{padding:20px 22px}
.printerModalGrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.printerModalGrid .full{grid-column:1/-1}
.printerModalGrid label{display:block;margin:0 0 6px;color:var(--text);font:650 .8rem var(--app-font,system-ui)}
.printerModalGrid input,.printerModalGrid textarea{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--edge-strong,var(--line));border-radius:11px;background:var(--surface-input);color:var(--text);font:500 .88rem var(--app-font,system-ui)}
.printerModalGrid textarea{min-height:64px;resize:vertical}
.printerModalGrid input:focus,.printerModalGrid textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.printerModalRatePreview{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--accent) 9%,var(--surface-raised))}
.printerModalRatePreview span{color:var(--muted);font-size:.8rem;font-weight:650}
.printerModalRatePreview b{color:var(--accent);font-size:1.15rem}

/* ---------- Printer list: grid + list views ---------- */
.printerProfilesList[data-view="grid"]{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:14px}
.printerProfilesList[data-view="list"]{display:flex;flex-direction:column;gap:10px}
.printerCard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--surface-sub,var(--surface-input));overflow:hidden;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.printerCard:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 14%,rgba(0,0,0,.25))}
.printerCardMedia{position:relative;aspect-ratio:16/10;background:color-mix(in srgb,var(--accent) 7%,var(--panel2));display:grid;place-items:center;overflow:hidden}
.printerCardMedia img{width:100%;height:100%;object-fit:cover;display:block}
.printerMediaPlaceholder{display:grid;place-items:center;color:color-mix(in srgb,var(--accent2) 62%,var(--muted))}
.printerMediaPlaceholder svg{width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.printerCardBody{display:flex;flex-direction:column;gap:9px;padding:13px 14px}
.printerCardHead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.printerCardHead b{font-size:.98rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.printerCardRate{flex:0 0 auto;color:var(--accent);font-weight:800;font-size:.92rem}
.printerCardRate small,.printerListRate small{color:var(--muted);font-weight:600;font-size:.68rem}
.printerCardSpecs{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;font-size:.78rem;color:var(--text)}
.printerCardSpecs span{display:flex;justify-content:space-between;gap:8px;min-width:0}
.printerCardSpecs i{color:var(--muted);font-style:normal}
.printerCardSpecs small{color:var(--muted);font-size:.66rem}
.printerCardNotes{margin:0;color:var(--muted);font-size:.76rem;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.printerCardActions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:2px}
.printerCardActions .smallbtn{min-height:34px;padding:6px 11px;font-size:.76rem}
.printerListRow{display:grid;grid-template-columns:64px minmax(0,1.3fr) minmax(0,1.5fr) auto auto;align-items:center;gap:14px;padding:9px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-sub,var(--surface-input))}
.printerListRow:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.printerListMedia{width:64px;height:48px;border-radius:9px;overflow:hidden;background:color-mix(in srgb,var(--accent) 7%,var(--panel2));display:grid;place-items:center}
.printerListMedia img{width:100%;height:100%;object-fit:cover}
.printerListMedia .printerMediaPlaceholder svg{width:26px;height:26px}
.printerListName{min-width:0}
.printerListName b{display:block;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.printerListName small{display:block;color:var(--muted);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.printerListSpecs{color:var(--muted);font-size:.78rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.printerListRate{color:var(--accent);font-weight:800;font-size:.9rem;white-space:nowrap}
.printerListActions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.printerListActions .smallbtn{min-height:32px;padding:5px 10px;font-size:.74rem}
.printerCardLocked{opacity:.7}
.printerCardLocked small{color:var(--warn,#ffc400)}
.printerViewSwitcher{flex:0 0 auto;width:max-content;align-self:center}

/* ---------- Printer photo field (modal) ---------- */
.printerImageField .printerImageRow{display:flex;gap:14px;align-items:flex-start}
.printerImagePreview{flex:0 0 120px;width:120px;height:90px;border:1px solid var(--edge-strong,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface-input));display:grid;place-items:center;overflow:hidden}
.printerImagePreview img{width:100%;height:100%;object-fit:cover;display:block}
.printerImageEmpty{color:var(--muted);font-size:.72rem}
.printerImageControls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1;min-width:0}
.printerImageControls .btn{min-height:38px;padding:8px 12px;font-size:.8rem}
.printerImageStatus{flex-basis:100%;color:var(--muted);font-size:.72rem;min-height:1em}

@media(max-width:700px){
  .printerModalGrid{grid-template-columns:1fr}
  .printerProfilesToolbar #printerAddBtn{margin-left:0;width:100%}
  .printerProfilesToolbar input[type="search"]{width:100%}
  .printerProfilesList[data-view="grid"]{grid-template-columns:1fr}
  .printerListRow{grid-template-columns:52px minmax(0,1fr) auto;gap:10px}
  .printerListSpecs{display:none}
}

/* Printer edit modal: live-connection row (integration type + device ref) */
.printerIntegrationRow{display:flex;gap:8px;flex-wrap:wrap}
.printerIntegrationRow select,.printerIntegrationRow input{flex:1 1 160px;min-width:0}
