.sidebar .brand { display:block; text-decoration:none; }
.brand-full { display:block; width:160px; max-width:100%; height:auto; }
.login-card>.brand { margin-bottom:0; }
.login-card .brand-full { width:190px; margin:0 auto 22px; }
.mobile-header .brand-mark { display:block; width:48px; height:auto; }
.freeze-panel { border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin:14px 0; background:#101812; }
.freeze-panel>p:first-child { margin-top:0; }
.freeze-panel>p:last-child { margin-bottom:0; }
.freeze-choices{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.freeze-choices legend{font-size:13px;margin-bottom:8px}.freeze-choice{display:grid;gap:4px;border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer}.freeze-choice input{width:auto!important;min-height:auto!important;margin:0!important;accent-color:var(--accent)}.freeze-choice small{line-height:1.3}.freeze-choice:has(input:checked){border-color:var(--accent);background:#252c16}.freeze-choice.unavailable{border-style:dashed;color:var(--red);cursor:not-allowed}.freeze-choice.unavailable small{color:var(--red)}
button[data-freeze-submit]:disabled{background:#333b30;border-color:#4b5447;color:#b6bdae;cursor:not-allowed;filter:none}
@media(max-width:760px) { .freeze-panel { padding:13px; } .mobile-header .brand { flex:0 0 auto; } }
.now-card { max-width:920px; background:#1f2a16; color:#b9db7e; border-color:#394b2b; }
.now-card--debt { background:#2e1515; color:#edefe6; border-color:#63302e; }
.now-card--ended { background:#381e1e; color:#edefe6; border-color:#70413c; }
.now-card--waiting { background:#2e2236; color:#edefe6; border-color:#594566; }
.now-card--neutral { background:#202923; color:#edefe6; border-color:#405046; }
.now-card .eyebrow { color:inherit; opacity:.72; }
.now-card h2 { font-size:21px; }
.now-card .primary { background:var(--accent); border-color:var(--accent); color:#0b100d; margin-top:7px; }
.player-header-actions { display:flex; align-items:center; gap:9px; }
.current-purchase { max-width:920px; }
.current-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:16px; }
.current-stats>div { padding:12px; background:#0f1411; border-radius:12px; }
.current-stats strong { display:block; font-size:15px; }
.player-secondary { max-width:920px; }
.player-more { position:relative; }
.player-more>summary { list-style:none; }
.player-more>summary::-webkit-details-marker { display:none; }
.player-more-content { position:absolute; right:0; top:52px; width:min(360px,calc(100vw - 30px)); z-index:5; border:1px solid var(--line); border-radius:15px; padding:8px; background:#1a241d; box-shadow:0 15px 45px #0009; }
.player-more-item,.player-more-item>summary { display:grid; gap:2px; width:100%; padding:11px 12px; color:var(--text); border-radius:9px; cursor:pointer; list-style:none; }
.player-more-content details.player-more-item { padding:0; }
.player-more-item>summary::-webkit-details-marker { display:none; }
.player-more-item:hover,.player-more-item>summary:hover { background:#263128; text-decoration:none; }
.player-more-item strong { font-size:13px; font-weight:650; }
.player-more-item small { font-size:11px; font-weight:400; }
.player-more-content .stack { margin-top:12px; }
.player-more-content .player-more-item form { padding:0 12px 12px; }
.purchase-card { padding:0; overflow:hidden; }
.purchase-details>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 18px; cursor:pointer; list-style:none; }
.purchase-details>summary::-webkit-details-marker { display:none; }
.purchase-summary-title { display:grid; gap:3px; min-width:0; }
.purchase-summary-title strong { font-size:15px; }
.purchase-summary-title small { font-weight:400; }
.purchase-expanded { padding:0 18px 18px; border-top:1px solid var(--line); }
.purchase-expanded .stat-grid { margin-top:18px; }
@media(max-width:760px) { .current-stats { gap:5px; } .current-stats>div { padding:9px; } .current-stats strong { font-size:12px; } .player-secondary { margin-top:18px; } .player-header-actions { width:100%; } .player-header-actions>button { flex:1; } .purchase-details>summary { padding:13px; } }
.status-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 16px; }
.status-tabs a { display:inline-flex; gap:7px; padding:9px 12px; border-radius:11px; border:1px solid var(--line); color:var(--text); font-size:13px; }
.status-tabs a[aria-current] { border-color:var(--accent); color:var(--accent); background:#1b2312; }
.status-tabs span { color:var(--muted); }
.client-group-heading { margin:17px 0 2px; padding-top:12px; border-top:1px solid var(--line); }
.client-group-heading:first-child { border:0; margin-top:0; padding-top:0; }
.client-balance { text-align:right; margin-left:auto; white-space:nowrap; }
@media(max-width:760px) { .client-balance strong { font-size:12px; } .client-row { gap:7px; } }

.schedule-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }
.schedule-tile { display:block; color:var(--text); margin:0; min-height:160px; }
.schedule-tile.optional { border-style:dashed; }
.schedule-tile h2 { margin-top:20px; }
.schedule-tile p { font-weight:700; margin-top:15px; }
.capacity-bar { height:7px; border-radius:8px; background:#28332a; overflow:hidden; }
.capacity-bar span { display:block; height:100%; background:var(--accent); }
.past-sessions { margin-top:24px; }
.past-sessions>summary { cursor:pointer; }
@media(max-width:760px) { .schedule-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .schedule-tile { padding:12px; min-height:150px; } .schedule-tile h2 { font-size:14px; } }

.payment-note { margin:-9px 0 15px; }
@media(max-width:760px) { .payment-totals { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:10px; } .payment-totals .panel { padding:11px; } .payment-totals h2 { font-size:12px; color:var(--muted); } .payment-totals .big-number { font-size:18px; line-height:1.2; margin:3px 0; } }
.player-more-content>button.player-more-item { border:0; background:transparent; text-align:left; min-height:auto; justify-content:initial; }
.schedule-week-scroll { overflow-x:auto; padding-bottom:7px; }
.schedule-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; min-width:840px; }
.schedule-day { min-width:0; border:1px solid var(--line); border-radius:14px; background:#101712; padding:7px; }
.schedule-day-heading { display:flex; justify-content:space-between; align-items:baseline; min-height:35px; padding:3px 5px 8px; }
.schedule-day-heading strong { font-size:13px; }
.schedule-day .schedule-tile { padding:10px; min-height:150px; margin:0 0 7px; }
.schedule-day .schedule-tile:last-child { margin-bottom:0; }
.schedule-day .schedule-tile h2 { font-size:13px; margin-top:12px; overflow-wrap:anywhere; }
.schedule-day .schedule-tile p { font-size:12px; margin-top:12px; }
@media(max-width:760px) { .schedule-week { min-width:840px; } .schedule-day .schedule-tile { padding:9px; } }
.player-header-actions .secondary { background:#1a241d; border-color:var(--line); color:var(--text); }
.date-shortcuts { display:flex; gap:7px; flex-wrap:wrap; }
.date-shortcuts button { min-height:36px; padding:6px 10px; font-size:12px; }
.date-preview { min-height:19px; margin:0; }
button[data-dates-submit]:disabled { background:#333b30; border-color:#4b5447; color:#b6bdae; cursor:not-allowed; filter:none; }
.schedule-next-week { margin:0 0 20px; }
.schedule-next-week h3 { font-size:14px; color:var(--muted); margin:0 0 10px; }
.schedule-tile.cancelled { color:#a0a9a1; background:#211a19; border:1px dashed #b7635d; opacity:.8; }
.schedule-tile.cancelled h2 { color:#c6b7b4; }
.schedule-tile.cancelled .cancelled-reason { color:#ee9a92; font-weight:650; overflow-wrap:anywhere; }
.schedule-tile.cancelled:hover { opacity:1; }
.payment-link-step form { margin-top:18px; }
.payment-link-step button { width:100%; }
.payment-message textarea { width:100%; margin:8px 0 14px; }
.payment-copy { width:100%; }
.payment-message-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.payment-message-actions > * { width:100%; text-align:center; }
.payment-message-actions button:disabled { opacity:.48; cursor:not-allowed; }
.late-payment-alert { border:2px solid #ee8e70; background:#352019; color:#fff2e9; margin-bottom:16px; }
.late-payment-alert strong { color:#ffb99c; }
@media (max-width:520px) { .payment-message-actions { grid-template-columns:1fr; } }
.payment-link-details { border-top:1px solid var(--line); margin-top:22px; padding-top:20px; }
.payment-link-details .action-row { margin-top:12px; }

.badge.completed { background:#333a34; border-color:#4a534b; color:#bac3b9; }
.client-money-note { color:#e9c1a8; font-weight:650; }
.cancelled-journal { background:#241d1c; border:1px dashed #9d6963; color:#cbbeba; }
.cancelled-journal h2 { color:#e5b2a8; }
button, .button-link, .status-tabs a, .bottom-nav a, .journal-row > .compact { min-height:44px; }
@media (max-width:760px) { main { padding-bottom:max(145px, calc(115px + env(safe-area-inset-bottom))); } }

.player-more-form { margin:0; }
.player-more-form .player-more-item { text-align:left; background:transparent; border:0; }

.now-money-note { font-weight:650; color:#f1d0b2; }

.clients-filter-bar { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
.clients-filter-bar .status-tabs { flex:1; margin:0; }
.client-filter-control { display:flex; align-items:center; gap:4px; flex:none; }
.client-group-filter { position:relative; }
.client-group-filter[open] { z-index:40; }
.client-group-filter>summary { list-style:none; white-space:nowrap; }
.client-group-filter.has-selection>summary { border-color:var(--accent); }
.client-group-filter>summary::-webkit-details-marker { display:none; }
.client-group-filter:not([open]) .client-filter-backdrop,
.client-group-filter:not([open]) .client-filter-panel { display:none; }
.client-filter-backdrop { position:fixed; inset:0; z-index:1; background:#0008; }
.client-filter-panel { position:absolute; z-index:2; top:calc(100% + 8px); right:0; width:340px; max-width:calc(100vw - 32px); max-height:min(75vh,700px); overflow:auto; padding:16px; border:1px solid #263029; border-radius:18px; background:#0f1411; box-shadow:0 18px 50px #0009; }
.client-filter-panel form { display:grid; gap:0; }
.client-filter-panel fieldset { min-width:0; padding:0; margin:0; border:0; }
.client-filter-panel fieldset[hidden] { display:none; }
.client-filter-panel legend { margin:0 2px 8px; font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
.client-filter-segments { display:flex; gap:4px; padding:4px; margin-bottom:16px; background:#0b100d; border:1px solid #1e2621; border-radius:13px; }
.client-filter-option { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:4px; white-space:nowrap; cursor:pointer; font-size:12px; font-weight:700; color:var(--text); }
.client-filter-option input { position:absolute; width:1px; height:1px; opacity:0; }
.client-filter-option:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.client-filter-segments .client-filter-option { flex:1; min-width:0; height:40px; border-radius:9px; }
.client-filter-segments .client-filter-option:has(input:checked) { background:#263225; }
.client-filter-chips { display:flex; flex-wrap:wrap; gap:6px; }
.client-filter-chips .client-filter-option { height:36px; padding:0 9px; border:1px solid #2a342e; border-radius:10px; }
.client-filter-chips .client-filter-option.is-empty { border-style:dashed; color:#7d8980; }
.client-filter-chips .client-filter-option:has(input:checked) { background:var(--accent); border-color:var(--accent); color:#0b100d; }
.client-filter-option .client-filter-count { color:var(--muted); font-size:11px; font-weight:600; }
.client-filter-chips .client-filter-option:has(input:checked) .client-filter-count { color:#485034; }
.client-filter-hint,.client-filter-no-days { margin:8px 2px 0; font-size:12px; color:#738176; line-height:1.4; }
.client-filter-no-days { margin:0 2px; font-size:13px; }
.client-filter-no-days[hidden] { display:none; }
.client-filter-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid #1a221d; }
.client-filter-clear { display:inline-flex; align-items:center; min-height:44px; color:var(--muted); font-size:13px; font-weight:700; }
.client-filter-done { min-height:44px; padding:0 14px; border:1px solid #2a342e; border-radius:10px; background:transparent; color:var(--text); font-size:13px; font-weight:700; }
.client-filter-submit { display:none; }
.client-filter-handle { display:none; }
.client-filter-reset { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; color:var(--muted); border-radius:10px; }
.client-filter-reset[hidden] { display:none; }
.client-filter-reset:hover { background:#263225; text-decoration:none; }
@media(max-width:760px) {
  .clients-filter-bar { align-items:flex-start; flex-wrap:wrap; }
  .clients-filter-bar .status-tabs { flex-basis:100%; }
  .client-filter-control { margin-left:auto; }
  .client-filter-panel { position:fixed; left:0; right:0; top:auto; bottom:0; width:100%; max-width:none; max-height:calc(100vh - 24px); padding:10px 16px max(22px,env(safe-area-inset-bottom)); border-radius:26px 26px 0 0; }
  .client-filter-handle { display:block; width:40px; height:4px; margin:0 auto 14px; border-radius:2px; background:#2a342e; }
  .client-filter-done { display:none; }
  .client-filter-submit { display:inline-flex; align-items:center; justify-content:center; flex:1; min-height:50px; padding:0 12px; }
  .client-filter-actions { margin-top:18px; padding-top:0; border:0; }
  .client-filter-clear { min-height:50px; padding:0 16px; border:1px solid #2a342e; border-radius:14px; }
}

/* Manual attendance, design decision 35. */
.manual-menu-action{background:#1b2015!important}
.manual-writeoff-dialog{background:#0f1411;max-width:calc(100vw - 28px)}
.manual-writeoff-dialog .stack{gap:12px}
.manual-writeoff-dialog select{max-width:100%;min-width:0}
.manual-writeoff-dialog [hidden],.writeoff-toast[hidden]{display:none!important}
.manual-writeoff-dialog .dialog-top h2{font-size:20px}
.writeoff-preview{display:flex;justify-content:center;align-items:center;gap:24px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel);text-align:center}
.writeoff-preview strong{display:block;font-size:28px;line-height:1.4}.writeoff-preview [data-writeoff-after]{color:var(--accent)}
.writeoff-reasons{display:grid;gap:6px;border:0;padding:0;margin:0;min-width:0}
.writeoff-reasons legend{font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}
.writeoff-reasons label{position:relative;display:flex;align-items:center;gap:10px;min-height:44px;border:1px solid #2a342e;border-radius:12px;padding:10px 14px;cursor:pointer;color:var(--text);font-weight:650}
.writeoff-reasons input[type=radio]{position:absolute;opacity:0;width:1px;min-height:1px;margin:0;padding:0}
.writeoff-reasons label:has(input:checked){border-color:var(--accent);background:#1b2015}
.writeoff-reasons label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.manual-writeoff-dialog [data-writeoff-submit]{min-height:52px;margin-top:4px}
.manual-writeoff-dialog button:disabled{opacity:.5;cursor:not-allowed}
.manual-history{max-width:920px;overflow-wrap:anywhere}
.manual-history-row{padding:14px 0;border-top:1px solid var(--line)}
.manual-history-row p{margin:5px 0}.manual-history-row form{margin:0}
.manual-history-row .text-button{font-size:13px;text-decoration:underline;min-height:44px;padding:4px 0}
.manual-tag{display:inline-block;vertical-align:middle;font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;background:#2a2a12;color:var(--accent)}
.writeoff-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;width:max-content;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:14px;background:var(--text);color:var(--bg);font-size:14px;font-weight:700;box-shadow:0 10px 30px #0005}
.writeoff-toast form{margin:0;flex-shrink:0}.writeoff-toast button{padding:4px;min-height:44px;background:transparent;border:0;color:var(--bg);font-weight:800}
@media(max-width:760px){.manual-writeoff-dialog{width:100%;max-width:100%;padding:16px 16px max(22px,env(safe-area-inset-bottom));border-radius:26px 26px 0 0}.manual-writeoff-dialog::before{content:"";display:block;width:40px;height:4px;background:#2a342e;border-radius:2px;margin:0 auto 14px}.writeoff-toast{bottom:calc(86px + env(safe-area-inset-bottom));width:calc(100vw - 32px);font-size:13px}.writeoff-reasons label{font-size:14px}}
