/* V PERFORMANCE · cohesive dark interface, using native platform typography. */
:root{color-scheme:dark;--bg:#0d0d0f;--panel:#1c1c1e;--card:#1c1c1e;--text:#f5f5f7;--muted:#a1a1a6;--line:#ffffff17;--accent:#0a84ff;--primary:#0a84ff;--danger:#ff6961;--green:#30d158;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}
body,button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}body,main,#staffFrame{background:var(--bg);color:var(--text)}body{font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{letter-spacing:-.035em;font-weight:650}h1{font-size:30px}h2{font-size:23px}small,.muted{color:var(--muted)}
aside{background:#161618;border-right:1px solid var(--line)}.app>main>header,body>header{background:#141416e8;border-bottom:1px solid var(--line);backdrop-filter:blur(24px)}.navbtn,#settingsBtn{border-radius:10px;min-height:42px}.navbtn.active,.navbtn[aria-current=page]{background:#ffffff12;color:#fff;box-shadow:inset 0 0 0 1px #ffffff08}.nav-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.nav-window-row{align-items:center}
.panel,.card,.auth-card,.settings-data-tools,.cloud-sync-card,.staffSwapCard,.mobile-leave-card,.leaveCard,.approval-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 24px #00000014}.panel,.card{padding:22px}.panelhead,.toolbar,.listheading{gap:14px;align-items:center}.summary>div,.cards>div{border-radius:16px}.auth-card,.cloud-login-gate{background:#141416}.modalbox,.submodal,dialog{background:#242426;color:var(--text);border:1px solid #ffffff21;border-radius:22px;box-shadow:0 28px 90px #0008}.modal,.submodal-overlay{backdrop-filter:blur(12px);background:#0007}dialog::backdrop{background:#0008;backdrop-filter:blur(8px)}
button,.btn,button.secondary{border-radius:10px;border:1px solid #ffffff13;background:#ffffff0d;color:var(--text);font-weight:550;transition:background .15s ease,box-shadow .15s ease;min-height:34px}.btn.primary,button.primary,#saveShiftSwap,#saveAssignment,.savebar>button{background:var(--accent);border-color:transparent;color:#fff}.btn:hover,button:hover{background:#ffffff19}.btn.primary:hover,button.primary:hover,#saveShiftSwap:hover,#saveAssignment:hover{background:#339cff}button:disabled{opacity:.45;cursor:not-allowed}.btn.danger,button.danger{color:#ff827c;background:#ff453a13}.field,input,select,textarea{background:#ffffff07;color:var(--text);border:1px solid #ffffff1a;border-radius:9px;box-shadow:inset 0 1px 2px #0001}input,select,textarea{padding:9px 11px;max-width:100%}input[type=checkbox],input[type=radio]{accent-color:var(--accent);padding:0}:focus-visible{outline:3px solid #b7ff3299;outline-offset:3px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}
table{border-collapse:separate;border-spacing:0}th{font-size:11px;letter-spacing:.045em;color:var(--muted);font-weight:650;background:#ffffff03}td,th{border-bottom:1px solid var(--line);padding:11px 12px}tbody tr:hover{background:#ffffff03}.tabs,.clean-tabs,.segmented{border-color:var(--line);gap:6px}.tabs button[aria-selected=true],.clean-tabs .active{background:#ffffff14;color:#fff;border-radius:9px}.mode-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto}.mode-tabs button{flex:0 0 auto;white-space:nowrap}.schedule-client-chip{background:#1e2c3a;border-left-color:#0a84ff}.trainer-on-shift{background:#30d15817!important;border-color:#30d15855!important}.trainer-on-shift .trainer-shift-label,.roster-state.on{color:#63e58d}.roster-state.on{background:#30d15817}.toast{background:#303033ed;color:#f5f5f7;border:1px solid #ffffff21;border-radius:14px;box-shadow:0 8px 30px #0005;backdrop-filter:blur(24px)}
.billing-popup,.approval-notice{background:#303033ee;color:#f5f5f7;border:1px solid #ffffff22;border-radius:18px;box-shadow:0 14px 42px #0005;backdrop-filter:blur(28px)}.billing-notification-button,.approval-toolbar-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.approval-count{border-radius:20px;min-width:20px;padding:1px 6px;background:#0a84ff;color:#fff;font-size:11px}.swap-notice-stack{position:fixed;right:22px;bottom:22px;z-index:1500;display:grid;gap:10px;width:min(390px,calc(100vw - 32px));pointer-events:none}.approval-notice{display:flex;align-items:flex-start;gap:12px;padding:16px;pointer-events:auto;animation:notice-in .2s ease-out}.approval-notice strong{display:block;font-size:14px;line-height:1.4;margin:4px 0}.approval-notice small{font-size:9px;letter-spacing:.07em}.approval-notice p{font-size:12px;color:var(--muted);margin:4px 0 10px}.notice-symbol{background:#0a84ff;border-radius:11px;width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;font-size:20px}.notice-close{border:0;background:transparent;min-width:26px;padding:0;font-size:20px}.approval-dialog{width:min(780px,calc(100vw - 32px));max-height:88dvh;padding:24px;overflow:auto}.approval-dialog-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.approval-dialog-header h2{margin:5px 0}.approval-dialog-header p{color:var(--muted);font-size:13px}.approval-filters,.approval-actions{display:flex;gap:8px;justify-content:flex-end}.approval-filters{justify-content:space-between;margin:12px 0}.approval-card{padding:20px;margin:12px 0}.approval-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.approval-card-head h3{font-size:17px;margin:0}.approval-legs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.approval-legs p{background:#ffffff05;border-radius:12px;padding:12px;margin:0}.approval-legs small,.approval-legs b{display:block}.approval-legs b{margin-top:4px;font-size:13px}.request-status{display:inline-block;border-radius:20px;font-size:11px;padding:4px 9px;text-transform:capitalize;background:#ffffff0c;color:var(--muted)}.request-status.pending{background:#ff9f0a18;color:#ffbc52}.request-status.approved{background:#30d15818;color:#63e58d}.request-status.rejected{background:#ff453a18;color:#ff8d86}.approval-note-label{display:block;margin:14px 0;font-size:12px;color:var(--muted)}.approval-note-label textarea{display:block;width:100%;margin-top:6px;box-sizing:border-box;resize:vertical}.approval-empty{text-align:center;padding:40px 16px;color:var(--muted)}#approvalError{color:#ffbc52;white-space:pre-wrap}.approval-actions{margin-top:12px}.billing-popup-stack{z-index:1490}
@keyframes notice-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:650px){.panel,.card{padding:16px;border-radius:16px}.approval-legs{grid-template-columns:1fr}.approval-dialog{padding:18px}.approval-card-head{align-items:flex-start;flex-direction:column}.approval-toolbar-button{font-size:12px}.app>main>header{gap:10px}.swap-notice-stack{right:16px;bottom:16px}.approval-dialog-header{gap:10px}}[hidden]{display:none!important}
/* v6.23.10 · explicit foreground/background pairs, including native menus. */
:root{--bg:#0d0d0f;--panel:#1c1c1e;--panel2:#252528;--card:#1c1c1e;--border:#414146;--line:#414146;--text:#f5f5f7;--muted:#b5b5bd;--accent:#79b8ff;--primary:#006bd6;color-scheme:dark}
select,select.field{color-scheme:dark;background-color:#252528;color:#f5f5f7;border-color:#505056}
select option,select optgroup,select.field option{background-color:#252528;color:#f5f5f7}
select option:checked{background-color:#005fbf;color:#fff}
select option:disabled{color:#b5b5bd;background-color:#252528}
input::placeholder,textarea::placeholder{color:#a9a9b2;opacity:1}
input,textarea,.field{background-color:#202023;color:#f5f5f7;border-color:#505056}
input:disabled,select:disabled,textarea:disabled,button:disabled,.btn:disabled{opacity:1;color:#a9a9b2;background-color:#242427;border-color:#414146;cursor:not-allowed}
input[readonly],textarea[readonly]{color:#dcdce2;background-color:#202023}
button,.btn,button.secondary,button.ghost,.actionButton{background-color:#303034;color:#f5f5f7;border-color:#505056}
button:hover,.btn:hover,button.secondary:hover,button.ghost:hover,.actionButton:hover{background-color:#3b3b40;color:#fff;border-color:#696970}
.btn.primary,button.primary,.primaryAction,button.primaryAction,.auth-card .cloud-main-signin,.savebar button,#saveShiftSwap,#saveAssignment,.massage-mobile .btn.primary,.massage-dialog .btn.primary{background:#006bd6;color:#fff;border-color:#3389df}
.btn.primary:hover,button.primary:hover,.primaryAction:hover,button.primaryAction:hover,.auth-card .cloud-main-signin:hover,.savebar button:hover,#saveShiftSwap:hover,#saveAssignment:hover{background:#005fbf;color:#fff;border-color:#4c97e3}
.primaryAction b,.primaryAction small,.primaryAction span,.btn.primary small,.btn.primary b,.actionButton.primary small{color:#fff;opacity:1}
.actionButton small,.actionButton b{color:#e0e0e6;opacity:1}
button.danger,.btn.danger{background:#442529;color:#ffc0bd;border-color:#96535a}
button.danger:hover,.btn.danger:hover{background:#583036;color:#fff}
.nav-window-row.active,.nav-window-row.active .navbtn,.navbtn.active,.navbtn[aria-current=page]{background:#27384e;color:#f5f5f7;border-color:#4b6585}
.nav-window-row.active .new-window-btn{color:#d8e9ff}.navbtn,.nav-label,.nav-icon{color:inherit}
.dayGroup,.dayEntry,.quickHoursCard,.quickEmployeeRow,.employeeCheck,.monthControl,.toolsDropdown,.payrollLockCard,.staffSwapCard,.rosterWeekCard{background:#1c1c1e;border-color:#414146;color:#f5f5f7}
.dayGroup summary,.dayGroup summary:hover,.dayGroup[open] summary{background:#252528;color:#f5f5f7}
.dayGroup summary:hover{background:#303034}
.dayGroup summary>div:first-child b:before{background:#79b8ff}
.dayGroup summary>div:first-child span,.daySummary span:not(.chevron),.daySummary .chevron,.pill{background:#303034;color:#e0e0e6;border-color:#505056}
.dayGroup summary .specialBadge,.dayGroup summary .sundayBadge{background:#463711;color:#ffe19a}
.monthControl span,.staffModuleStatus,.toolbar p,.card p,.dayEntry label,label{color:#b5b5bd}
.toolsDropdown button{color:#f5f5f7;background:#252528}.toolsDropdown button:hover{background:#3b3b40;color:#fff}
.rosterGrid .rosterName,.rosterGrid .rosterDayHead,.rosterGrid .rosterShiftHead,.payrollTable th:first-child{background:#252528;color:#e0e0e6;border-color:#414146}
.rosterShift.on,.attendancePresent.active{background:#193d2a;color:#a1f3bc;border-color:#42845a}
.rosterShift.off{background:#252528;color:#c6c6ce;border-color:#505056}
.rosterShift.on:hover{background:#235038;color:#c6ffda}.rosterShift.off:hover{background:#36363b;color:#fff}
.segmented .modeBtn.active,.swapFilters button.selected{background:#005fbf!important;border-color:#4c97e3!important;color:#fff!important}
.clean-tabs button.active,.tabs button[aria-selected=true],.client-slot-buttons button[aria-pressed=true]{background:#27384e;color:#e5f1ff;border-color:#6e9fd3}
.client:has(input:checked),.avatar,.reply-count,.selected-count-btn b{background:#27384e;color:#d8e9ff;border-color:#4b6585}
.grandRow td,.grandRow th{background:#253449!important;color:#e5f1ff!important}.calc,.calcRow{color:#b0d4ff}.calcRow td,.calcRow th{background:#253449;color:#e5f1ff}
th{background:#252528;color:#c6c6ce}td{color:#f5f5f7}.tableWrap th,.tableWrap td{border-color:#414146}
.slot-add-hint{opacity:1;color:#b0d4ff}.day-slot:hover .slot-add-hint{color:#fff}
.billing-popup-icon,.notice-symbol{background:#005fbf;color:#fff}.approval-count{background:#005fbf;color:#fff}
/* v6.23.11 · green is an action accent; attendance states use their own labels/colors. */
:root{--accent:#b7ff32;--accent2:#7bd500;--primary:#b7ff32}
.btn.primary,button.primary,.primaryAction,button.primaryAction,.auth-card .cloud-main-signin,.savebar button,#saveShiftSwap,#saveAssignment,.massage-mobile .btn.primary,.massage-dialog .btn.primary{background:#b7ff32;color:#11190b;border-color:#a1e32b}
.btn.primary:hover,button.primary:hover,.primaryAction:hover,button.primaryAction:hover,.auth-card .cloud-main-signin:hover,.savebar button:hover,#saveShiftSwap:hover,#saveAssignment:hover{background:#caff70;color:#11190b;border-color:#caff70}
.primaryAction b,.primaryAction small,.primaryAction span,.btn.primary small,.btn.primary b,.actionButton.primary small{color:#11190b;opacity:1}
.nav-window-row.active,.nav-window-row.active .navbtn,.navbtn.active,.navbtn[aria-current=page]{background:#263127;color:#f5f5f7;border-color:#52664b}.nav-window-row.active{box-shadow:inset 3px 0 #b7ff32}.nav-window-row.active .new-window-btn{color:#d6dfd3}
select option:checked{background:#3b4935;color:#fff}.segmented .modeBtn.active,.swapFilters button.selected{background:#3b4935!important;color:#fff!important;border-color:#7d936e!important}
.clean-tabs button.active,.tabs button[aria-selected=true],.client-slot-buttons button[aria-pressed=true]{background:#34442c;color:#e4f8d7;border-color:#869d71}
.client:has(input:checked){background:#22321f;border-color:#7d936e}.avatar,.reply-count,.selected-count-btn b{background:#303034;color:#e0e0e6;border-color:#505056}
.dayGroup summary>div:first-child b:before{background:#8b8b93}.calc,.calcRow,.month-title,.nextweek-banner span,.nextweek-mini b,.profile-card.highlight b,.summary>div:first-child span{color:#e0e0e6}.calcRow td,.calcRow th,.grandRow td,.grandRow th{background:#303034!important;color:#f5f5f7!important}.slot-add-hint,.day-slot:hover .slot-add-hint{color:#e0e0e6}.billing-popup-icon,.notice-symbol{background:#b7ff32;color:#11190b}.approval-count{background:#44444b;color:#fff}
.schedule-client-chip,.schedule-client-chip.pending,.schedule-client-chip.planned{background:#292b2a!important;color:#e0e4e1!important;border-left-color:#767f78!important}
.schedule-client-chip.attended{background:#193820!important;color:#b6f0be!important;border-left-color:#72c982!important}
.schedule-client-chip.noshow{background:#431f20!important;color:#ffb7b4!important;border-left-color:#ed8581!important}
.schedule-client-chip.cancelled,.schedule-client-chip.canceled{background:#3b301c!important;color:#f5d18a!important;border-left-color:#d2a24c!important}
.schedule-client-chip.rescheduled,.schedule-client-chip.absent{background:#303034!important;color:#cacad2!important;border-left-color:#8b8b96!important}
.attendance-status{display:inline-block;padding:3px 7px;margin:3px 0;border:0;border-radius:5px;font-size:11px;font-weight:500;white-space:normal;background:#303034;color:#d4d4db;cursor:default}
.status-attended{background:#193820;color:#b6f0be}.status-noshow,.status-absent{background:#431f20;color:#ffb7b4}.status-cancelled,.status-canceled{background:#3b301c;color:#f5d18a}.status-rescheduled,.status-notattending{background:#303034;color:#cacad2}.client-booking-status{margin-top:4px}.request-status{cursor:default}.intro{margin:16px 0}.intro h1{font-size:26px}#vpPageIntro[hidden]{display:none!important}
.client-nickname{color:#e0e0e6!important}.trainerTotal b,.teamclient .names,.eyebrow,.vp-eyebrow,.snapshot-actions .eyebrow{color:#b5b5bd}.billing-popup-icon,.notice-symbol{background:#44444b;color:#f5f5f7}.hours-total{color:#e0e0e6}
/* v6.23.12 · consistent action spacing and a bounded calendar with pinned dates. */
button,.btn{box-sizing:border-box;padding:8px 14px;line-height:1.35;min-height:38px;vertical-align:middle}
.btn.small{padding:7px 12px;min-height:34px}
button.icon-close,.slot-remove,.notice-close{padding:5px;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center}
.toolbar,.schedule-actions,.modalactions,.actions,.booking-assigned,.weeknav,.weekpick{gap:10px;align-items:center}
.panelhead,.profile-head{gap:16px;flex-wrap:wrap}.modalactions,.actions{flex-wrap:wrap;margin-top:18px}
.panelhead+.toolbar,.toolbar+.tablewrap,.toolbar+.formgrid{margin-top:12px}.toolbar{row-gap:10px}
label>.field,label>input,label>select{margin-top:5px}.formgrid{gap:16px}
.schedule-scroll{max-height:calc(100dvh - 285px);min-height:220px;overflow:auto;scrollbar-gutter:stable}
.interactive-schedule>.head{position:sticky;top:0;z-index:3;background:#242426!important;box-shadow:0 1px 0 #505056;padding:12px 10px;min-height:58px}
.week-drop-target{outline:3px solid var(--accent);background:#34411e!important}
#monthlyRankings.dashboard-rankings{grid-template-columns:repeat(4,minmax(235px,1fr));overflow-x:auto;gap:16px;padding-bottom:12px}
#monthlyRankings .muted{height:auto;min-height:24px;margin-bottom:12px}#monthlyRankings h2{height:auto;min-height:48px}
#monthlyRankings .ranking-scroll{max-height:340px;overflow:auto}
#bookingDates{flex-wrap:wrap}#dateBookingError{color:#ffb7b4}
@media(pointer:coarse){button,.btn,.btn.small{min-height:44px;padding:10px 14px}.slot-remove,.icon-close{min-width:44px;min-height:44px}.mode-tabs{gap:8px;padding-bottom:8px}.mode-tabs button{padding:10px 16px}.actions,.toolbar{gap:12px}}
@media(max-width:650px){.formgrid{grid-template-columns:1fr}.formgrid .full{grid-column:1}.panelhead{align-items:flex-start}.slot-row{gap:12px}.slot-button{padding:12px 16px}.weeknav{gap:8px}#weekDays button{padding:8px 4px;min-width:0}.schedule-scroll{max-height:65dvh}}
.compact-training-table .ghost,.compact-training-table button[data-trainer]{display:inline-flex;align-items:center;padding:8px 14px;min-height:38px;margin:2px 0;border:1px solid var(--line);border-radius:9px}
.compact-training-table .btn{padding:7px 12px;min-height:34px}.compact-training-table .toolbar{gap:8px}
