/* Shared SalonIQ foundations and interaction states for every authenticated module. */
:root{--app-bg:#F7F6F3;--surface:#FFF;--surface-soft:#FBFAF8;--sidebar-bg:#101D18;--sidebar-bg-secondary:#16251E;--sidebar-text:#E8EEE9;--sidebar-muted:#A7B4AB;--sidebar-hover:#1D3429;--sidebar-active:#218B59;--primary:#168451;--primary-hover:#106C40;--primary-soft:#E5F5EC;--accent-gold:#D6B477;--accent-gold-hover:#BF9851;--accent-gold-soft:#F8EEDB;--text-primary:#171B27;--text-secondary:#687084;--text-muted:#9096A3;--border:#EAE8E3;--border-strong:#DDDAD3;--success:#168451;--success-soft:#DDF5E8;--warning:#D97706;--warning-soft:#FFF0D8;--danger:#DC3545;--danger-soft:#FDE7E9;--info:#2878D4;--info-soft:#E4F0FF;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-card:0 2px 8px #19231d0b;--shadow-dropdown:0 10px 35px #19231d1f;--topbar-height:72px}
.workspace-body,.auth-studio{--bs-primary-rgb:22,132,81;--bs-success-rgb:22,132,81;--bs-body-color:var(--text-primary);--bs-body-bg:var(--app-bg);--bs-border-color:var(--border);color:var(--text-primary);font-family:Inter,"Segoe UI",system-ui,sans-serif}
.workspace-body .workspace-content{background:var(--app-bg)}
.workspace-body .workspace-content>.container-fluid.py-4,.workspace-body .workspace-content>.container-fluid.py-3{padding:0!important}
.workspace-body .workspace-content h1{font:750 clamp(24px,2vw,32px)/1.25 Inter,"Segoe UI",system-ui,sans-serif;letter-spacing:-.8px;color:var(--text-primary)}
.workspace-body .workspace-content h1+p,.workspace-body .workspace-content h1~.text-muted{font-size:13px;line-height:1.6;color:var(--text-secondary)}
.workspace-body .workspace-content .card,.workspace-body .workspace-content .overview-panel{border-color:var(--border)!important;box-shadow:var(--shadow-card)!important;border-radius:var(--radius-lg);background:var(--surface)!important}
.workspace-body .workspace-content .card-header{padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--border);font-size:14px;color:var(--text-primary);font-weight:650}
.workspace-body .workspace-content .card-header h2,.workspace-body .workspace-content .card-header h3,.workspace-body .workspace-content .card-header h5{font-size:14px;line-height:1.4;margin:0;font-weight:650;letter-spacing:-.2px}
.workspace-body .workspace-content .card-body{padding:20px}
.workspace-body .workspace-content .card-footer{background:var(--surface-soft);border-color:var(--border);padding:14px 20px;font-size:12px}
.workspace-body .workspace-content .btn,.auth-studio .btn{border-radius:var(--radius-sm);font-weight:600;font-size:12px;line-height:1.5;min-height:40px;padding:10px 15px;box-shadow:none;transition:background-color .15s,border-color .15s}
.workspace-body .workspace-content .btn-sm{font-size:11px;min-height:34px;padding:7px 11px}
.workspace-body .workspace-content .btn-primary,.auth-studio .btn-primary{background:var(--primary)!important;border-color:var(--primary)!important;color:white!important}
.workspace-body .workspace-content .btn-primary:hover,.workspace-body .workspace-content .btn-primary:active,.auth-studio .btn-primary:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:white!important}
.workspace-body .workspace-content .btn-outline-primary{background:var(--surface);border-color:#b6cfc1;color:#176444}
.workspace-body .workspace-content .btn-outline-primary:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-hover)}
.workspace-body .workspace-content .btn-outline-secondary,.workspace-body .workspace-content .btn-light{background:var(--surface);border-color:var(--border-strong);color:var(--text-secondary)}
.workspace-body .workspace-content .btn-outline-secondary:hover{background:var(--surface-soft);color:var(--text-primary)}
.workspace-body .workspace-content .btn-warning{background:var(--accent-gold);border-color:var(--accent-gold);color:var(--text-primary)}
.workspace-body .workspace-content .btn-danger{background:var(--danger);border-color:var(--danger);color:white}
.workspace-body .workspace-content .btn:disabled{opacity:.55;cursor:not-allowed}
.workspace-body .workspace-content .form-control,.workspace-body .workspace-content .form-select,.auth-studio .form-control,.auth-studio .form-select{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:13px;line-height:1.5;color:var(--text-primary);min-height:43px;padding:10px 12px;box-shadow:none}
.workspace-body .workspace-content textarea.form-control{min-height:105px;resize:vertical}
.workspace-body .workspace-content .form-control:focus,.workspace-body .workspace-content .form-select:focus,.auth-studio .form-control:focus,.auth-studio .form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #16845118}
.workspace-body .workspace-content .form-control:disabled,.workspace-body .workspace-content .form-select:disabled,.workspace-body .workspace-content .form-control[readonly]{background-color:#f4f5f1;color:var(--text-secondary)}
.workspace-body .workspace-content .form-label{font-size:12px;font-weight:600;color:var(--text-primary);margin-bottom:7px;line-height:1.5}
.workspace-body .workspace-content .form-text,.workspace-body .workspace-content .invalid-feedback{font-size:11px;line-height:1.6}
.workspace-body .workspace-content .form-control.is-invalid,.workspace-body .workspace-content .form-select.is-invalid{border-color:var(--danger)}
.workspace-body .workspace-content .input-group-text{background:var(--surface-soft);border-color:var(--border-strong);font-size:12px;color:var(--text-secondary)}
.workspace-body .form-check-input:checked,.auth-studio .form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}
.workspace-body .workspace-content .table{--bs-table-bg:var(--surface);--bs-table-color:var(--text-primary);--bs-table-border-color:var(--border);font-size:12px;margin-bottom:0}
.workspace-body .workspace-content .table thead th{padding:12px 15px;background:#f7f7f9;color:var(--text-secondary);border-bottom:1px solid var(--border);font-size:10px;font-weight:600;letter-spacing:.2px;vertical-align:middle}
.workspace-body .workspace-content .table tbody td{padding:13px 15px;border-bottom-color:#eeefeb;vertical-align:middle;overflow-wrap:anywhere}
.workspace-body .workspace-content .table tbody tr:last-child td{border-bottom:0}
.workspace-body .workspace-content .table-hover tbody tr:hover>*{--bs-table-accent-bg:#f7fbf8;background:#f7fbf8}
.workspace-body .workspace-content .table small{font-size:10px;color:var(--text-secondary)}
.workspace-body .workspace-content .table a:not(.btn){color:#176444}
.workspace-body .workspace-content .table-responsive{border-radius:inherit;scrollbar-width:thin;overscroll-behavior-x:contain}
.workspace-body .workspace-content .badge,.workspace-body .workspace-content .status-chip{font-size:10px;font-weight:550;line-height:1.4;border-radius:8px;padding:5px 9px;white-space:normal;text-transform:none}
.workspace-body .workspace-content .badge.bg-success,.workspace-body .workspace-content .status-paid,.workspace-body .workspace-content .status-confirmed,.workspace-body .workspace-content .status-completed,.workspace-body .workspace-content .status-active{background:var(--success-soft)!important;color:#137348!important}
.workspace-body .workspace-content .badge.bg-warning,.workspace-body .workspace-content .status-pending,.workspace-body .workspace-content .status-unpaid,.workspace-body .workspace-content .status-partial,.workspace-body .workspace-content .status-trial{background:var(--warning-soft)!important;color:#a45d10!important}
.workspace-body .workspace-content .badge.bg-danger,.workspace-body .workspace-content .status-cancelled,.workspace-body .workspace-content .status-failed,.workspace-body .workspace-content .status-overdue{background:var(--danger-soft)!important;color:#b52f42!important}
.workspace-body .workspace-content .badge.bg-info,.workspace-body .workspace-content .status-in_progress,.workspace-body .workspace-content .status-scheduled{background:var(--info-soft)!important;color:#236cb7!important}
.workspace-body .workspace-content .status-draft,.workspace-body .workspace-content .status-voided,.workspace-body .workspace-content .status-inactive{background:#eef0f2;color:var(--text-secondary)}
.workspace-body .alert{border-radius:var(--radius-md);font-size:12px;padding:14px 17px;line-height:1.65;border:1px solid transparent;box-shadow:none}
.workspace-body .alert-success{background:var(--success-soft);border-color:#c5e8d3;color:#176444}
.workspace-body .alert-warning{background:var(--warning-soft);border-color:#f1d9b6;color:#955a16}
.workspace-body .alert-danger{background:var(--danger-soft);border-color:#efcbd1;color:#ae2c3e}
.workspace-body .alert-info{background:var(--info-soft);border-color:#cddff5;color:#28639b}
.workspace-body .modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);color:var(--text-primary)}
.workspace-body .modal-header,.workspace-body .modal-footer{border-color:var(--border);padding:17px 22px}
.workspace-body .modal-title{font-size:17px;font-weight:700}.workspace-body .modal-body{padding:22px;overflow-wrap:anywhere}
.workspace-body .dropdown-menu{border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);padding:6px;min-width:175px;font-size:12px;z-index:1080}
.workspace-body .dropdown-item{padding:9px 12px;border-radius:6px;min-height:35px;white-space:normal}
.workspace-body .dropdown-item:hover,.workspace-body .dropdown-item:focus{background:var(--primary-soft);color:var(--primary-hover)}
.workspace-body .dropdown-item.active{background:var(--primary);color:white}
.workspace-body .page-link{color:var(--primary);border-color:var(--border);font-size:12px;padding:8px 12px}
.workspace-body .page-item.active .page-link{background:var(--primary);border-color:var(--primary);color:white}
.workspace-body .overview-empty{padding:32px 22px;text-align:center;min-height:170px;color:var(--text-secondary)}
.workspace-body .overview-empty>i{font-size:29px;color:#98b6a3;display:block;margin-bottom:11px}
.workspace-body .overview-empty h3{font-size:16px;font-weight:650;color:var(--text-primary)}
.workspace-body .overview-empty p{font-size:12px;max-width:440px;margin-inline:auto}
.workspace-body :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.workspace-body .service-studio .service-card,.workspace-body .optional-details{border-color:var(--border);background:var(--surface-soft);border-radius:var(--radius-md)}
.workspace-body .profile-facts dt{font-size:11px;color:var(--text-secondary)}.workspace-body .profile-facts dd{font-size:13px;color:var(--text-primary)}
.workspace-body .quick-payment-form .btn{font-size:11px}.workspace-body .quick-payment-form small{font-size:9px;color:inherit;opacity:.9}
.workspace-body .summary-detail-value{font-size:21px;font-weight:650;line-height:1.4;color:var(--text-primary);overflow-wrap:anywhere}.workspace-body .summary-card-note{font-size:10px;line-height:1.6;color:var(--text-secondary)}
.workspace-body .collection-summary{margin-bottom:22px}.workspace-body .collection-count-2 .overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-body .collection-count-3 .overview-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.portal-drawer-close{display:none}.portal-nav-backdrop{display:none}
.portal-brand-copy{display:flex;flex-direction:column;gap:4px;font-weight:750}.portal-brand-copy small{font-size:8px;letter-spacing:1.6px;font-weight:400;color:var(--sidebar-muted)}
.workspace-body .workspace-brand .portal-brand-copy{font-weight:750}
.workspace-body .workspace-sidebar{background:var(--sidebar-bg)!important}.workspace-body .workspace-sidebar .workspace-link.is-active{background:var(--sidebar-active)!important}
.workspace-body .workspace-sidebar .workspace-link:not(.is-active):hover{background:var(--sidebar-hover)}
.workspace-body .workspace-account small{color:var(--sidebar-muted)}
.workspace-body .dashboard-export{background:var(--accent-gold)!important;border-color:var(--accent-gold)!important}
.workspace-body .workspace-content .btn-primary,.workspace-body .overview-actions .btn-primary{background:var(--primary)!important;border-color:var(--primary)!important}
@media(max-width:991.98px){
 .workspace-body .workspace-sidebar{position:fixed!important;inset:0 auto 0 0;width:min(310px,88vw)!important;height:100dvh!important;max-height:100dvh!important;z-index:1060;overflow:hidden;flex-direction:column;border-radius:0 18px 18px 0;padding-top:12px;box-shadow:var(--shadow-dropdown)}
 .workspace-body .workspace-sidebar.show{display:flex!important}.workspace-body .workspace-sidebar.collapsing{display:flex;transition:none!important}
 .workspace-body .workspace-sidebar .workspace-brand{height:64px;padding-right:42px}
 .workspace-body .workspace-sidebar .workspace-navigation{flex:1;min-height:0;overflow-y:auto;padding-bottom:15px}
 .workspace-body .workspace-sidebar .workspace-account{position:static;flex-shrink:0;margin:12px;padding:13px;border-radius:10px}
 .workspace-body .workspace-sidebar .workspace-context{display:none}
 .portal-drawer-close{display:grid;place-items:center;position:absolute;right:12px;top:24px;width:35px;height:35px;border:1px solid #ffffff25;border-radius:8px;background:transparent;color:white;font-size:23px;z-index:1}
 .portal-nav-backdrop.is-visible{display:block;position:fixed;inset:0;z-index:1050;background:#081c1380;backdrop-filter:blur(2px)}
 body.portal-drawer-open{overflow:hidden}
 .workspace-body .workspace-content .btn,.workspace-body .workspace-content .form-control,.workspace-body .workspace-content .form-select{min-height:44px}
 .workspace-body .workspace-topbar{height:auto}
}
@media(max-width:700px){
 .workspace-body .workspace-content .overview-heading,.workspace-body .page-heading{flex-direction:column;align-items:stretch;gap:13px}
 .workspace-body .workspace-content .card-body{padding:16px}.workspace-body .workspace-content .card-header{padding:15px 16px}
 .workspace-body .workspace-content .mobile-card-table td{padding:9px 11px;border-bottom-color:var(--border);font-size:12px}
 .workspace-body .workspace-content .mobile-card-table td:before{font-size:10px;color:var(--text-secondary)}
 .workspace-body .modal-dialog{margin:12px;max-width:calc(100% - 24px)}.workspace-body .modal-body{padding:18px}
 .workspace-body .workspace-content .form-control,.workspace-body .workspace-content .form-select,.auth-studio .form-control,.auth-studio .form-select{font-size:16px}
 .workspace-body .workspace-content .input-group>.form-control{min-width:0}
 .workspace-body .overview-actions{flex-wrap:wrap;gap:8px}.workspace-body .overview-period{align-self:flex-start}
 .workspace-body .collection-summary .overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .workspace-body .workspace-footer{font-size:9px;flex-wrap:wrap;gap:8px;line-height:1.6}
}
@media(prefers-reduced-motion:reduce){.workspace-body *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Recording review: keep complete amounts readable at laptop widths. */
.workspace-body .workspace-content .metric-value .metric-currency{font-size:.52em;font-weight:600;letter-spacing:.2px;color:var(--text-secondary);white-space:nowrap}
.workspace-body .workspace-content .metric-value .metric-amount{white-space:nowrap;overflow-wrap:normal;word-break:normal}
.workspace-body .workspace-content .metric-without-chart .metric-ornament{display:none}
.workspace-body .metric-without-chart .metric-footer{grid-template-columns:1fr}
.workspace-body .workspace-content .metric-without-chart .metric-bottom{justify-content:space-between;text-align:left;font-size:10px}
.workspace-body .report-metrics .overview-metrics{margin-bottom:0}
@media screen and (min-width:992px) and (max-width:1439.98px){
 .workspace-body .workspace-content .overview-metric .metric-top{min-height:39px;margin-left:48px;padding-right:22px;font-size:11px}
 .workspace-body .workspace-content .overview-metric .metric-primary-icon{width:36px;height:36px;font-size:20px}
 .workspace-body .workspace-content .overview-metric .metric-value{margin:10px 0 12px;font-size:23px!important;min-height:29px}
 .workspace-body .workspace-content .overview-metric{min-height:158px!important}
 .workspace-body .workspace-content .metric-footer .metric-bottom{font-size:10px}
 .workspace-body .metric-footer .metric-chart>span{font-size:9px}
}
/* Real navigation remains native; this is feedback, with no prefetch or replay. */
.portal-navigation-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--primary);z-index:2000;pointer-events:none;opacity:0;transform:scaleX(0);transform-origin:left}
body.portal-is-navigating .portal-navigation-progress{opacity:1;transform:scaleX(.85);transition:transform 8s cubic-bezier(.1,.8,.2,1)}
@media(prefers-reduced-motion:reduce){body.portal-is-navigating .portal-navigation-progress{transform:scaleX(1);transition:none}}
@media print{.portal-navigation-progress,.portal-nav-backdrop,.portal-drawer-close,.quick-payment-form,.portal-brand-copy small{display:none!important}.workspace-body .workspace-content .card{box-shadow:none!important;border-color:#ccc!important}.workspace-body .workspace-content .table td,.workspace-body .workspace-content .table th{font-size:10px;padding:7px}}
