/* Surfaces inherit the reference blank/table template design tokens. */
.page-workspace .blank-shell{max-width:1440px;margin-inline:auto}
.page-workspace .blank-hero{margin-bottom:1.5rem}
.page-workspace .blank-hero h1{overflow-wrap:anywhere}
.page-workspace .card{margin-bottom:1.5rem}
.page-workspace h2{font-size:1.25rem;margin-bottom:1rem}
.page-workspace h3{font-size:1.1rem}
.page-workspace .table-responsive{border-radius:12px;margin-bottom:1.5rem}
.page-workspace .table td,.page-workspace .table th{vertical-align:middle}
.page-workspace textarea{min-height:100px}
.page-workspace .permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.page-workspace .permission-grid label{display:flex;gap:.65rem;align-items:flex-start}
.page-workspace .template-body{white-space:pre-wrap;overflow-wrap:anywhere}
.page-workspace .access-form{display:flex;flex-wrap:wrap;gap:.5rem;min-width:220px}
.page-workspace .access-form .form-select{width:auto;max-width:180px}
.page-workspace .datatable-wrapper{padding:1rem;background:var(--bg-card,var(--bs-body-bg));border-radius:12px}
.sidebar-logo-mark img,.header-logo-mark img,.footer-brand-mark img{max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:767px){.page-workspace .blank-hero{padding:1.25rem}.page-workspace .card.p-4{padding:1rem!important}.page-workspace .datatable-top{display:flex;flex-direction:column;gap:.75rem}}

/* Portal forms keep template cards and action rows visually separated. */
.page-users-edit form.user-edit-shell>.users-hero-actions{margin-top:var(--spacing-md);margin-bottom:var(--spacing-xl)}
.page-users-edit form.user-edit-shell{margin-bottom:var(--spacing-xl)}

/* Business portal profile photo editor; the purchased template remains unchanged. */
.portal-avatar-editor{display:flex;align-items:center;gap:1.25rem;padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--bs-border-color)}
.portal-avatar-preview{width:112px;height:112px;flex:0 0 112px;border-radius:50%;overflow:hidden;background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--bs-primary) 10%,transparent)}
.portal-avatar-preview img{display:block;width:100%;height:100%;object-fit:cover}
.portal-avatar-controls{min-width:0}
.portal-avatar-controls .form-text{margin:.35rem 0 .8rem}
.portal-avatar-status:empty{display:none}
.portal-avatar-crop-modal .modal-dialog{max-width:500px}
.portal-avatar-crop-stage{position:relative;width:min(100%,360px);aspect-ratio:1;margin-inline:auto;border-radius:50%;overflow:hidden;background:#111827;box-shadow:0 0 0 1px var(--bs-border-color),0 12px 35px rgba(15,23,42,.2);touch-action:none;user-select:none}
.portal-avatar-crop-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.portal-avatar-crop-stage canvas:active{cursor:grabbing}
.portal-avatar-crop-ring{position:absolute;inset:0;border:3px solid rgba(255,255,255,.92);border-radius:50%;box-shadow:inset 0 0 0 1px rgba(15,23,42,.22);pointer-events:none}
.portal-avatar-crop-modal .form-range{min-width:0}
@media(max-width:575px){.portal-avatar-editor{align-items:flex-start}.portal-avatar-preview{width:88px;height:88px;flex-basis:88px}.portal-avatar-crop-modal .modal-dialog{margin:.75rem}}

/* Business registration uses the reference wizard and upload surfaces. */
#addBusinessModal .modal-dialog{height:calc(100vh - 2rem)}
#addBusinessModal .modal-content{max-height:100%;overflow:hidden}
#addBusinessModal .modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}
#addBusinessModal .wizard-content{padding-bottom:.25rem}
#addBusinessModal .wizard-actions{position:sticky;bottom:-1rem;z-index:2;margin:2rem -1rem -1rem;padding:1rem;background:var(--bg-card,var(--bs-body-bg));border-top:1px solid var(--bs-border-color)}
#addBusinessModal .upload-dropzone{min-height:190px}
#addBusinessModal textarea.form-control{min-height:96px}
@media(max-width:575px){#addBusinessModal .modal-dialog{height:calc(100vh - 1rem);margin:.5rem}#addBusinessModal .wizard-steps{gap:.5rem}#addBusinessModal .wizard-step-label{font-size:.75rem}}

/* Keep the template hover surface while fixing Bootstrap's light-theme text fallback. */
:root[data-theme="dark"] .table-hover{--bs-table-hover-color:#f8fafc;--bs-table-hover-bg:var(--table-hover-bg,#202a3a)}
:root[data-theme="dark"] .table-hover>tbody>tr:is(:hover,:focus-within)>*{--bs-table-color-state:#f8fafc;color:#f8fafc;background-color:var(--table-hover-bg,#202a3a)}
