.avatar{overflow:hidden}.avatar img{display:block;width:100%;height:100%;object-fit:cover}.avatar-large{width:88px;height:88px;font-size:26px}.photo-editor{display:flex;align-items:center;gap:24px;margin:20px 0}.photo-editor>div{min-width:0}.photo-editor input{max-width:100%}.photo-editor small{display:block;color:var(--muted)}.photo-editor button{margin-top:12px}.stack{margin-top:24px}.stack form button{margin-top:16px}.stack form{max-width:640px}.coach-picker{display:flex;gap:16px;align-items:center}.coach-picker>div{flex:1;min-width:0}.coach-picker select{width:100%}.gym-tag{display:inline-block!important;background:#38251f;color:#ffd6c3!important;border:1px solid #674436;border-radius:5px;padding:2px 5px;font-weight:bold;align-self:flex-start}.workspace-switch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;border-top:1px solid var(--border);padding-top:10px}.workspace-switch label{font-size:12px;margin:0}.workspace-switch select{width:auto;max-width:260px;margin:0}.workspace-switch #demoPersonWrap{display:flex;gap:10px;align-items:center}.workspace-switch #demoPersonWrap[hidden]{display:none}.workspace-switch #saveStatus{margin-left:auto;font-size:12px;color:var(--muted)}.workspace-switch #saveStatus.error{color:#ffb6a7}header{height:auto;flex-wrap:wrap;gap:12px}.panel>.row>div{flex:1;min-width:0}.panel>.row p{overflow-wrap:anywhere}.panel input[type=checkbox]{width:auto}#main select{max-width:100%}#assignmentSummary{margin-top:20px}@media(max-width:760px){.photo-editor{align-items:flex-start;gap:12px}.avatar-large{width:64px;height:64px}.workspace-switch select{max-width:100%;width:100%}.workspace-switch #demoPersonWrap{width:100%;flex-wrap:wrap}.row{flex-wrap:wrap}.coach-picker{align-items:flex-start}.coach-picker select{font-size:14px}.stack h2{font-size:20px}}
.login-shell{max-width:500px;margin:8vh auto;padding:20px}.login-shell button{margin-top:24px}.login-shell .dairby-logo{margin-bottom:24px}.message-layout{display:grid;grid-template-columns:260px 1fr;gap:20px}.conversation-list button{display:block;width:100%;text-align:left;margin-bottom:8px}.message-history{height:340px;overflow:auto;padding:12px;border:1px solid var(--border);border-radius:8px}.message{padding:10px 14px;margin:8px 0;background:#262e25;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere}.message.mine{background:#304023;margin-left:24px}.message small{display:block;color:var(--muted);font-size:11px}.message-compose textarea{width:100%;margin:12px 0}.recipient-list{max-height:190px;overflow:auto}.recipient-list label{display:flex;align-items:center;gap:10px}.recipient-list input{width:auto}.notes-list textarea{width:100%;margin:10px 0}.notes-list small{display:block;color:var(--muted)}@media(max-width:760px){.message-layout{grid-template-columns:1fr}.message-history{height:270px}.conversation-list{max-height:180px;overflow:auto}}

#nav a[data-client-page]{display:block;padding:12px 16px;color:inherit;text-decoration:none;border-radius:8px;margin:3px 0}#nav a[aria-current="page"]{background:var(--accent,#c8f56c);color:#121613;font-weight:600}

.client-calendar-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.client-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:20px 0}.client-calendar-grid>span{text-align:center}.client-day{min-height:86px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.client-day small{font-size:11px;white-space:normal}.client-day.other-trainer{border:2px solid #e2ab69;background:#382a1c}.client-day[aria-pressed="true"]{outline:2px solid #c8f56c;outline-offset:1px}.client-other-bookings{border-left:3px solid #e2ab69;padding:12px;background:#382a1c}#clientDayDetails{margin-top:20px}@media(max-width:600px){.client-day{min-height:80px;padding:6px 1px}.client-day small{font-size:9px}.client-calendar-grid{gap:3px}}

.trainer-card{border-top:1px solid var(--border);padding:24px 0}.client-account{position:relative}.client-account summary{cursor:pointer}.client-account>div{position:absolute;z-index:20;min-width:210px;background:#222a22;padding:12px;border:1px solid var(--border);border-radius:8px}.client-account button{display:block;margin:6px 0}.unread-badge{background:#c8f56c;color:#121613;border-radius:12px;padding:2px 7px;font-weight:bold}

#clientWorkouts .client-day small{overflow-wrap:anywhere}#clientWorkouts .client-day{justify-content:flex-start}

#nav>a{display:block;padding:12px 16px;color:inherit;text-decoration:none;border-radius:8px}.admin-filter{display:flex;flex-wrap:wrap;gap:16px;align-items:end}.admin-filter>label{flex:1;min-width:180px}.admin-pages{display:flex;gap:16px;margin-top:20px}.admin-directory small,.admin-directory .pagehead p{overflow-wrap:anywhere}.admin-directory input[type=checkbox]{width:auto}@media(max-width:760px){.admin-directory.app{display:block}.admin-directory #sidebar{position:static;transform:none;width:auto;display:block;height:auto;padding:16px}.admin-directory #nav{display:flex;flex-wrap:wrap}.admin-directory .brand{max-width:220px}.admin-directory #main{padding:16px}}

.coach-dropdown{position:relative;max-width:420px;margin:16px 0}.coach-dropdown summary{display:flex;align-items:center;gap:10px;cursor:pointer;padding:10px;border:1px solid var(--border);border-radius:8px}.coach-dropdown>div{position:absolute;z-index:15;background:#222a22;box-shadow:0 8px 20px #0008;border-radius:8px;width:100%;padding:8px}.coach-dropdown button{display:flex;gap:12px;align-items:center;width:100%;text-align:left;margin:4px 0}.coach-dropdown small{display:block}.coach-dropdown .avatar{width:32px;height:32px;flex-shrink:0}.booking-pending{border-left:4px solid #f0b64c!important;background:#382e18!important}.booking-approved{border-left:4px solid #a1d969!important;background:#24351d!important}.booking-full{opacity:.75;border-left:4px solid #858585!important}.booking-free{border-left:4px solid #69bdd9!important}.trainer-card fieldset{border:0;padding:0}.recipient-list .avatar{flex-shrink:0}

.former-relation{border-left:4px solid #8f8f8f;padding-left:12px;opacity:.85}
/* Client navigation and trainer detail panels reuse existing tokens and calendar. */
.coach-dropdown{width:max-content;max-width:100%;margin-bottom:16px}.coach-dropdown summary{min-height:42px;padding:6px 10px;gap:8px}.coach-dropdown .avatar{width:30px;height:30px;flex:0 0 30px}.coach-dropdown>div{max-height:260px;overflow:auto}.trainer-card{padding:0;overflow:hidden}.trainer-card>summary{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;font-weight:650}.trainer-card>summary:after{content:'⌄';margin-left:auto}.trainer-detail{padding:16px;border-top:1px solid var(--border,#ddd)}.trainer-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.trainer-info-grid section{padding:16px;background:var(--bg,#f8f8fa);border-radius:12px}.booking-late{border-left:5px solid #b45309!important;background:#fff0d5!important;color:#713f12!important}.late-label{display:block;color:#92400e;font-size:12px}.trainer-card form{margin-top:16px} @media(max-width:600px){.trainer-info-grid{grid-template-columns:1fr}.coach-dropdown{width:100%}.coach-dropdown>div{width:100%}}
/* Client overview uses the same stats/panel/pagehead components as trainer overview. */
#clientOverviewStats .stat-name{font-size:1.25rem;overflow-wrap:anywhere}
#clientOverviewStats small{line-height:1.6;overflow-wrap:anywhere}
#clientOverviewStats .stat{min-width:0}
#accountStatusPanel{border-color:#78483e}
#clientCompactPass{margin-bottom:24px}
/* Identical calendar columns/cards in both portals, including the explicit day view. */
.shared-calendar{width:100%;min-width:0;margin-top:24px}
.shared-calendar .calendar.daily{grid-template-columns:minmax(0,1fr)}
.shared-calendar .calendar.daily .event{display:block;min-height:150px;padding:16px;max-width:100%;white-space:normal}
.shared-calendar .calendar.daily .event small{margin:7px 0 0}
.shared-calendar .event .slot-status{display:block;margin-top:12px;font-weight:600}
.shared-calendar .event{overflow-wrap:anywhere}
.shared-calendar .legend span::before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.key-free::before{background:#86a9b9}.key-full::before{background:#788078}.key-pending::before{background:#e9c46a}.key-approved::before{background:#a0cf5a}.key-late::before{background:#e79b7b}
