/* Internal workspace refinements. Every selector is bounded to the active OS. */
.workspace-page[data-workspace] { --ws-canvas:#f7f5ef; --ws-sidebar:#142d25; }
.workspace-page[data-workspace] :is(.data-card,.panel,.review-summary-card,.os-filter-bar,.wm-card) { min-width:0; border-radius:20px; }
.workspace-page[data-workspace] .workspace-table-scroll { max-width:100%; overflow:auto; scrollbar-width:thin; }
.workspace-page[data-workspace] .wm-table-scroll { position:relative; }
.workspace-page[data-workspace] .file-drop,
body:has(.workspace-page[data-workspace]) #modal-root .file-drop { position:relative; overflow:hidden; }
.workspace-page[data-workspace] .file-drop input,
body:has(.workspace-page[data-workspace]) #modal-root .file-drop input { inset:0; width:100%; max-width:100%; min-width:0; }
.workspace-page[data-workspace] .workspace-reservation-list { overflow:hidden; }
.workspace-page[data-workspace] .workspace-reservation-list .data-table { min-width:840px; }
.workspace-page[data-workspace] .workspace-reservation-list .data-table tr { height:70px; }
.workspace-page[data-workspace] .workspace-activity-filter .os-filter-field { flex:0 1 340px; }
.workspace-page[data-workspace] .workspace-activity .data-table { min-width:810px; }
.workspace-page[data-workspace] .workspace-activity .data-table tr { height:75px; }
.workspace-page[data-workspace] .workspace-audit-action { display:inline-block; padding:6px 10px; border-radius:9px; background:#edf4ef; color:#215640; font-size:12px; overflow-wrap:anywhere; }
.workspace-page[data-workspace] .workspace-promotions-table { min-width:960px; }
.workspace-page[data-workspace] .workspace-promotions .data-table td { padding-block:15px; }
.workspace-page[data-workspace] .workspace-promotion-thumb { width:150px; height:105px; object-fit:cover; border-radius:12px; display:block; }
.workspace-page[data-workspace] .workspace-promotion-placeholder { display:grid; place-items:center; width:150px; height:105px; background:#f0f2eb; border-radius:12px; }
.workspace-page[data-workspace] .workspace-promotion-actions { max-width:280px; }
.workspace-page[data-workspace] .table-actions .workspace-move-promo { min-width:34px; width:34px; padding-inline:0; }
.workspace-page[data-workspace] .workspace-archived-promotions { margin-top:22px; }
.workspace-page[data-workspace] .workspace-archived-promotions .data-table { min-width:600px; }
.workspace-page[data-workspace] .wm-menu-tools { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.workspace-page[data-workspace] .wm-menu-tools > *, .workspace-page[data-workspace] .wm-team-columns > * { min-width:0; }
.workspace-page[data-workspace] .wm-roles-page .wm-protection-note { min-width:0; white-space:normal; }
.workspace-page[data-workspace] .wm-roles-page .wm-protection-note > * { min-width:0; overflow-wrap:anywhere; }
.workspace-page[data-workspace] .wm-roles-page .wm-card-head { flex-wrap:wrap; }
.workspace-page[data-workspace] .wm-roles-page .wm-card-head > div { min-width:0; }
.workspace-page[data-workspace] .wm-category-row { flex-wrap:wrap; }
/* Tenant list and detail use actual tenant data; list DTOs have no photo. */
.workspace-page[data-workspace="admin"] .workspace-tenant-list .data-table { min-width:1180px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-identity { display:flex; align-items:center; gap:12px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-identity > div { min-width:0; }
.workspace-page[data-workspace="admin"] .workspace-tenant-monogram { display:grid; place-items:center; flex:none; width:44px; height:44px; border-radius:12px; color:#25513b; background:#edf1e5; font-weight:600; font-size:16px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-list .data-table td { padding:18px 15px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-list .is-selected td { background:#eff4ec; }
.workspace-page[data-workspace="admin"] .workspace-tenant-pending { display:grid; gap:4px; font-size:11px; color:#627568; }
.workspace-page[data-workspace="admin"] .workspace-tenant-row-actions { width:170px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-row-actions .btn { flex:1; padding-inline:9px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail { display:grid; gap:20px; margin-top:24px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail .panel { padding:24px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:25px; padding-bottom:22px; border-bottom:1px solid var(--ws-line); }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail-head .workspace-tenant-monogram { width:72px; height:72px; font-size:25px; border-radius:18px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail-head h2 { font-size:26px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail-head .meta { display:flex; align-items:center; gap:7px; margin:6px 0 0; font-size:12px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail-head .meta .workspace-icon { width:15px; height:15px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-detail-actions { max-width:620px; margin:0; justify-content:flex-end; gap:9px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-section-head { margin:22px 0 18px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-section-head h3 { font-size:19px; margin:0 0 6px; font-weight:600; }
.workspace-page[data-workspace="admin"] .workspace-tenant-section-head p { margin:0; font-size:13px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-info-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-info { display:flex; align-items:flex-start; gap:14px; padding:20px 17px; border:1px solid var(--ws-line); border-radius:14px; background:#fcfcf9; }
.workspace-page[data-workspace="admin"] .workspace-tenant-info > div { display:grid; gap:10px; min-width:0; }
.workspace-page[data-workspace="admin"] .workspace-tenant-info > .workspace-icon { color:#708476; width:23px; height:23px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-info span { color:#627166; font-size:12px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-info small { font-size:11px; color:#738173; }
.workspace-page[data-workspace="admin"] .workspace-tenant-location { display:grid; grid-template-columns:2fr 1fr 1fr; gap:20px; padding:22px; border:1px solid var(--ws-line); border-radius:14px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-location > div { display:flex; gap:13px; min-width:0; }
.workspace-page[data-workspace="admin"] .workspace-tenant-location span { display:block; color:#627166; font-size:12px; margin-bottom:8px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-location strong { font-size:13px; font-weight:500; overflow-wrap:anywhere; }
.workspace-page[data-workspace="admin"] .workspace-tenant-user-form { display:flex; align-items:flex-end; gap:15px; border:1px solid var(--ws-line); border-radius:14px; padding:20px; margin-bottom:20px; }
.workspace-page[data-workspace="admin"] .workspace-tenant-user-form .form-grid { flex:1; grid-template-columns:1fr 1.2fr 1fr; }
.workspace-page[data-workspace="admin"] .workspace-tenant-user-form > .btn { flex:none; }
.workspace-page[data-workspace="admin"] .workspace-tenant-empty { display:flex; align-items:center; justify-content:center; gap:14px; padding:45px 18px; border:1px solid var(--ws-line); border-radius:14px; color:#7b867f; }
.workspace-page[data-workspace="admin"] .workspace-tenant-empty p { margin:0; }
.workspace-page[data-workspace="admin"] .workspace-tenant-proposals .data-table { min-width:650px; }
.workspace-page[data-workspace="restaurant"] .admin-os-banner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; margin:0 24px 18px; padding:18px 24px; border:1px solid #debd7f; border-radius:15px; background:#fbf2dd; color:#6d511a; }
.workspace-page[data-workspace="restaurant"] .admin-os-banner p { max-width:800px; margin:5px 0 0; font-size:12px; line-height:1.6; }
/* Shared dialogs are styled only with a workspace behind them. */
body:has(.workspace-page[data-workspace]) #modal-root .modal { border-radius:22px; background:#fdfdfb; }
body:has(.workspace-page[data-workspace]) #modal-root .modal .btn { border-radius:999px; }
body:has(.workspace-page[data-workspace]) #modal-root .modal .control { min-width:0; max-width:100%; border-radius:10px; }
body:has(.workspace-page[data-workspace]) #modal-root .modal :is(.field,.form-grid,.staff-section) { min-width:0; }
body:has(.workspace-page[data-workspace]) #modal-root .modal .field small { font-size:11px; line-height:1.6; color:#748078; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-form-intro,
body:has(.workspace-page[data-workspace]) #modal-root .workspace-tenant-form-intro { color:#64716f; font-size:13px; line-height:1.6; margin:0 0 22px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-form-actions,
body:has(.workspace-page[data-workspace]) #modal-root .workspace-tenant-form-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; padding-top:22px; margin-top:22px; border-top:1px solid #e7ebe4; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-form-actions > .btn:first-child { margin-right:auto; }
body:has(.workspace-page[data-workspace]) #modal-root .file-drop { background:#fafbf7; border:1px dashed #cfd7cf; border-radius:12px; min-height:150px; }
body:has(.workspace-page[data-workspace]) #modal-root .file-drop svg { width:28px; height:28px; }
body:has(.workspace-page[data-workspace]) #modal-root .file-drop .workspace-icon { display:inline-flex; width:28px; height:28px; }
body:has(.workspace-page[data-workspace]) #modal-root .file-drop small { line-height:1.6; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-promo-current { width:100%; max-height:180px; object-fit:cover; border-radius:12px; margin-bottom:10px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-menu-current { width:100%; aspect-ratio:1.25; object-fit:cover; border-radius:12px; margin-bottom:12px; }
body:has(.workspace-page[data-workspace]) #modal-root .modal:has(.workspace-promotion-form) { width:min(650px,100%); }
body:has(.workspace-page[data-workspace]) #modal-root .modal:has(.workspace-tenant-form) { width:min(710px,100%); }
body:has(.workspace-page[data-workspace]) #modal-root .modal:has(.staff-booking-form) { width:min(840px,100%); }
body:has(.workspace-page[data-workspace]) #modal-root .staff-booking-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:15px; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-booking-layout .full { grid-column:1/-1; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-section { border:1px solid #e5e9e1; border-radius:14px; padding:18px; background:#fff; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-section h3 { display:flex; align-items:center; gap:12px; margin:0 0 17px; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-section h3 .workspace-icon { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:7px; border-radius:9px; background:#f1f2df; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-icon > svg { width:100%; height:100%; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-section > .field + .field { margin-top:12px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-booking-moment { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-content:start; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-booking-moment h3 { grid-column:1/-1; margin-bottom:5px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-booking-moment > .field { margin:0; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-field-help { color:#657469; font-size:12px; margin:-8px 0 15px; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-floor-picker { max-height:none; border-radius:12px; overflow:hidden; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-pick { display:grid; gap:0; grid-template-columns:minmax(0,1fr); max-height:420px; overflow:auto; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item { display:flex; gap:14px; align-items:center; border:0; border-bottom:1px solid #e9ece5; border-radius:0; padding:12px 0; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item:last-child { border-bottom:0; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item > img { width:66px; height:54px; object-fit:cover; border-radius:8px; flex:none; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item > span { flex:1; min-width:0; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item > span strong { display:block; font-size:13px; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item > span small { display:block; font-size:11px; line-height:1.5; margin-top:4px; color:#6b7b70; }
body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item > input { width:76px; flex:none; text-align:center; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-facts { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:13px 27px; padding:22px 0; margin:0; border-bottom:1px solid #e4e9e1; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-facts > div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:12px; font-size:13px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-facts dt { color:#677b71; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-facts dd { margin:0; overflow-wrap:anywhere; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-detail .detail-section { margin-top:22px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-detail .detail-menu-item { border-radius:12px; border:1px solid #e3e9de; padding:16px; background:#fff; margin-top:10px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-detail .detail-menu-main small { line-height:1.6; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-detail .menu-cancel-row { margin-top:13px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-internal-note { display:grid; gap:7px; background:#f2f4ed; padding:15px; border-radius:11px; font-size:13px; }
body:has(.workspace-page[data-workspace]) #modal-root .modal:has(#role-editor-form) { width:min(740px,100%); }
body:has(.workspace-page[data-workspace]) #modal-root .permission-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
body:has(.workspace-page[data-workspace]) #modal-root .permission-group { min-width:0; margin:0; padding:14px; border:1px solid #e0e7dc; border-radius:12px; background:#fff; }
body:has(.workspace-page[data-workspace]) #modal-root .permission-group legend { font-size:13px; font-weight:600; padding:0 6px; }
body:has(.workspace-page[data-workspace]) #modal-root .permission-checks { display:grid; grid-template-columns:1fr; gap:10px; }
body:has(.workspace-page[data-workspace]) #modal-root .permission-check { display:flex; align-items:center; gap:9px; font-size:12px; }
body:has(.workspace-page[data-workspace]) #modal-root .permission-check > span { overflow-wrap:anywhere; min-width:0; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-tenant-confirm { text-align:center; padding:5px 4px 15px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-tenant-confirm > .workspace-icon { display:inline-flex; padding:18px; width:76px; height:76px; border-radius:50%; background:#edf2e8; color:#33583c; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-tenant-confirm p { font-size:14px; line-height:1.7; color:#53665a; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-trial-current { display:flex; align-items:center; gap:16px; background:#f3f5ed; border:1px solid #e2e8db; padding:20px; border-radius:12px; margin:18px 0 22px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-trial-current .workspace-icon { display:inline-flex; width:24px; height:24px; flex:none; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-trial-current span { display:block; color:#778477; font-size:12px; margin-bottom:7px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-trial-current strong { font-size:14px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-trial-or { display:flex; justify-content:center; margin:18px 0; font-size:12px; color:#778477; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-tenant-password input { background:#f0f5ea; font-family:ui-monospace,monospace; font-size:20px; text-align:center; }
#modal-root .modal:has(.workspace-account-menu,.workspace-updates-modal) { width:min(440px,100%); }
#modal-root .workspace-account-person { display:grid; justify-items:center; gap:8px; margin:10px 0 24px; }
#modal-root .workspace-account-person > span { display:grid; place-items:center; width:80px; height:80px; border-radius:50%; background:#eef1e1; font-size:26px; font-weight:600; margin-bottom:3px; }
#modal-root .workspace-account-person small { font-size:12px; color:#65716a; overflow-wrap:anywhere; }
#modal-root .workspace-account-choice { display:flex; align-items:center; width:100%; gap:15px; padding:16px; margin-top:10px; border:1px solid #e2e7dd; border-radius:13px; background:#fff; color:#14392c; text-align:left; cursor:pointer; }
#modal-root .workspace-account-choice > .workspace-icon { width:36px; height:36px; display:inline-flex; background:#f3f5e8; border-radius:9px; padding:7px; flex:none; }
#modal-root .workspace-account-choice > span:nth-child(2) { display:grid; gap:5px; flex:1; min-width:0; }
#modal-root .workspace-account-choice strong { font-size:14px; font-weight:500; }
#modal-root .workspace-account-choice small { font-size:11px; color:#748176; }
#modal-root .workspace-account-choice > .workspace-icon > svg { display:block; width:22px; height:22px; max-width:100%; max-height:100%; flex:none; }
#modal-root .workspace-account-menu { color:#173f35; min-width:0; }
#modal-root .workspace-account-person strong { max-width:100%; text-align:center; overflow-wrap:anywhere; }
#modal-root .workspace-account-choice { font:inherit; min-height:76px; }
#modal-root .workspace-account-choice:hover { background:#f5f7ed; border-color:#bccdb2; }
#modal-root .workspace-account-choice:focus-visible { outline:2px solid #567248; outline-offset:3px; }
#modal-root .workspace-account-choice strong, #modal-root .workspace-account-choice small { overflow-wrap:anywhere; }
#modal-root .workspace-account-choice[data-action="logout"] { margin-top:23px; color:#b2402d; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-updates-modal { text-align:center; padding:20px 15px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-updates-modal > .workspace-icon { display:inline-flex; width:88px; height:88px; padding:24px; border-radius:50%; background:#eef1e0; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-updates-modal p { margin:22px 0; font-size:14px; color:#617467; line-height:1.7; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-proposal-summary { padding:18px; border:1px solid #e2e8db; border-radius:13px; background:#f7f8f3; margin-bottom:20px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-proposal-summary dl { margin:14px 0 0; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-proposal-summary dl > div { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-proposal-summary dt { grid-column:1/-1; font-weight:500; font-size:13px; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-proposal-summary dd { margin:0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
body:has(.workspace-page[data-workspace]) #modal-root .workspace-proposal-summary dd > span { display:block; color:#778779; font-size:11px; margin-bottom:5px; }
@media(max-width:1150px){
 .workspace-page[data-workspace="admin"] .workspace-tenant-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .workspace-page[data-workspace="admin"] .workspace-tenant-user-form { flex-wrap:wrap; }
 .workspace-page[data-workspace="admin"] .workspace-tenant-user-form .form-grid { flex-basis:100%; }
 .workspace-page[data-workspace] .wm-menu-tools { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:760px){
 .workspace-page[data-workspace="admin"] .workspace-tenant-location { grid-template-columns:1fr; }
 .workspace-page[data-workspace="admin"] .workspace-tenant-detail .panel { padding:18px; }
 .workspace-page[data-workspace="admin"] .workspace-tenant-detail-actions { justify-content:flex-start; }
 .workspace-page[data-workspace="admin"] .workspace-tenant-user-form .form-grid { grid-template-columns:1fr; }
 .workspace-page[data-workspace="restaurant"] .admin-os-banner { margin-inline:14px; padding:16px; }
 body:has(.workspace-page[data-workspace]) #modal-root .workspace-reservation-facts { grid-template-columns:1fr; }
 body:has(.workspace-page[data-workspace]) #modal-root .staff-booking-layout { grid-template-columns:minmax(0,1fr); }
 body:has(.workspace-page[data-workspace]) #modal-root .staff-section { padding:14px; }
 body:has(.workspace-page[data-workspace]) #modal-root .workspace-form-actions .btn { flex:1 1 auto; }
}
@media(max-width:520px){
 .workspace-page[data-workspace="admin"] .workspace-tenant-info-grid { grid-template-columns:1fr; }
 body:has(.workspace-page[data-workspace]) #modal-root .permission-groups { grid-template-columns:1fr; }
 body:has(.workspace-page[data-workspace]) #modal-root .modal .form-grid { grid-template-columns:minmax(0,1fr); }
 body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item > img { width:46px; height:46px; }
 body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item > input { width:62px; }
 body:has(.workspace-page[data-workspace]) #modal-root .staff-menu-item { gap:10px; }
}
