.stat-link { display:flex; flex-direction:column; align-items:flex-start; text-align:left; color:var(--text); font:inherit; cursor:pointer; min-width:0; }
.stat-link:hover { border-color:var(--accent); background:var(--surface-2); }
.stat-link:focus-visible, .lesson-detail-link:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.lesson-detail-link { display:inline; padding:0; border:0; background:none; color:var(--accent-dark); font:inherit; font-weight:700; text-align:left; text-decoration:underline; text-underline-offset:3px; cursor:pointer; overflow-wrap:anywhere; }
.reservation-filter-toolbar, .slot-filter-toolbar { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; margin-bottom:12px; }
.reservation-filter-toolbar > .form-field, .slot-filter-toolbar > .form-field { flex:1 1 200px; min-width:0; }
.reservation-filter-toolbar select, .reservation-filter-toolbar input, .slot-filter-toolbar select { width:100%; max-width:100%; }
.csv-period-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.csv-period-fields input { width:100%; min-width:0; }
.reservation-participant-details { grid-column:1 / -1; display:grid; gap:10px; }
.reservation-participant { border-top:1px solid var(--line); padding-top:10px; min-width:0; }
.reservation-participant h3 { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 8px; font-size:.9rem; overflow-wrap:anywhere; }
.reservation-participant dl, .reservation-shared-answers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 16px; margin:0; }
.reservation-participant dl > div, .reservation-shared-answers > div { min-width:0; }
.reservation-participant dt, .reservation-shared-answers dt { font-size:.74rem; color:var(--muted); }
.reservation-participant dd, .reservation-shared-answers dd { margin:3px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:.83rem; }
.reservation-admin-row strong, .reservation-admin-row small { overflow-wrap:anywhere; }
@media (max-width:680px) {
  .csv-period-fields, .reservation-participant dl, .reservation-shared-answers { grid-template-columns:minmax(0,1fr); }
}
.slot-filter-toolbar > .check-field { padding:10px 0; }
.deadline-field { min-width:0; margin:0; padding:0; border:0; }
.deadline-field legend { margin-bottom:7px; color:var(--text); font-size:.85rem; font-weight:700; }
.deadline-inputs { display:grid; grid-template-columns:minmax(0,1fr) minmax(90px,.8fr); gap:8px; }
.deadline-inputs input, .deadline-inputs select { width:100%; min-width:0; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--text); padding:11px; font:inherit; }
.lesson-question-summary { padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); color:var(--text); }
.lesson-question-summary p, .lesson-question-summary ul { margin:6px 0 0; font-size:.84rem; line-height:1.7; }
.lesson-question-summary ul:empty { display:none; }
#slotManagementPanel { scroll-margin-top:90px; }
@media (max-width:420px) {
  .reservation-filter-toolbar, .slot-filter-toolbar { align-items:stretch; flex-direction:column; }
  .reservation-filter-toolbar > .form-field, .slot-filter-toolbar > .form-field { flex-basis:auto; width:100%; }
  .reservation-filter-toolbar > .btn, .slot-filter-toolbar > .btn { width:100%; }
}
.member-section-title { flex-wrap:wrap; align-items:flex-start; }
.member-section-title > div { flex:1 1 auto; min-width:0; }
.member-section-title > .btn { flex:0 0 auto; }
.tag-form-preview { margin:16px 0; overflow-wrap:anywhere; }
@media (max-width:600px) { .member-section-title > .btn { width:100%; } }
.talk-room-main.is-unselected { display:block; }
.talk-room-main.is-unselected .talk-room-thread { min-height:400px; padding:0; }
@media (max-width:760px) { .talk-room-main.is-unselected .talk-room-thread { min-height:160px; } }

.tag-manager-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border,#e8e1dc)}
.tag-manager-row>div:first-child{min-width:0;overflow-wrap:anywhere}.tag-manager-row small{display:block;margin-top:.3rem}.tag-manager-row .form-actions{margin:0;flex-shrink:0}
@media(max-width:480px){.tag-manager-row{align-items:flex-start;flex-wrap:wrap}.tag-manager-row .form-actions{width:100%;justify-content:flex-end}.member-section-title>.form-actions{flex-wrap:wrap}}

#lessonSettingsPanel{scroll-margin-top:90px}
.lesson-setting-row{grid-template-columns:minmax(0,1fr) auto;align-items:start}
.lesson-setting-row>div:first-child{min-width:0;overflow-wrap:anywhere}
.lesson-setting-row>.management-row-actions{grid-column:2;grid-row:auto;align-self:start}
.lesson-setting-row .mini-tag{display:inline-block;margin:0 8px 6px 0}
.lesson-setting-row strong{display:block}
.lesson-setting-row .lesson-setting-help{margin-top:8px;line-height:1.7}
.lesson-type-row>div:first-child{overflow-wrap:anywhere}
@media(max-width:760px){
  .lesson-setting-row,.lesson-type-row{grid-template-columns:minmax(0,1fr)}
  .lesson-setting-row>.management-row-actions,.lesson-type-row>div:nth-child(2),.lesson-type-row>.management-row-actions{grid-column:1;grid-row:auto}
  .lesson-setting-row>.management-row-actions,.lesson-type-row>.management-row-actions{width:100%;justify-content:flex-start}
  .lesson-setting-row .status-chip{white-space:normal;overflow-wrap:anywhere;max-width:100%}
}

#lessonModal{align-items:start;padding:20px 18px;overflow:hidden}
#lessonModal .modal{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px)}
#lessonModal .modal-head{flex:0 0 auto}
#lessonModal .modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media(max-width:360px){#lessonForm>.form-actions{flex-direction:column;align-items:stretch}#lessonForm>.form-actions>.btn{width:100%;white-space:nowrap}}
.lesson-mode-choice {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 16px;padding:10px;border:1px solid var(--line,#ddd);border-radius:10px;}
.lesson-mode-choice label {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;padding:8px 4px;border:1px solid var(--line,#ddd);border-radius:8px;text-align:center;cursor:pointer;}
.lesson-mode-choice input {width:auto;}
.lesson-mode-choice input:checked+span{color:var(--accent-dark);font-weight:800}
.lesson-advanced {margin:12px 0;padding:12px;border:1px solid var(--line,#ddd);border-radius:10px;}
.lesson-advanced summary {cursor:pointer;margin-bottom:12px;}
@media(max-width:420px){#lessonModal{padding:10px}#lessonModal .modal{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}#lessonModal .modal-head{padding:15px}#lessonModal .modal-body{padding:15px}.lesson-mode-choice label{font-size:.88rem}}
/* Date exclusions and dedicated booking links use normal form flow at every width. */
.date-exclusion-input{display:flex;gap:10px;align-items:stretch;margin:12px 0;flex-wrap:wrap}
.date-exclusion-input input{min-width:0;flex:1 1 180px;border:1px solid var(--line);border-radius:10px;padding:11px;background:var(--input);color:var(--text);font:inherit}
.date-exclusion-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;min-width:0}
.date-exclusion-chip{display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;min-width:0}
.date-exclusion-chip .btn{min-height:36px;padding:5px 8px;font-size:.8rem}
.booking-link-result{margin:14px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);overflow-wrap:anywhere}
.booking-link-result>strong,.booking-link-summary{overflow-wrap:anywhere}
.booking-link-result p{line-height:1.7;margin:8px 0 12px}
.dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}
#dashboardView .admin-grid{grid-template-columns:minmax(0,1fr)}
#dashboardView .schedule-row{grid-template-columns:80px minmax(0,1fr) 140px auto}
#paymentReviewPanel{margin-bottom:20px;scroll-margin-top:90px}
.payment-review-reference{overflow-wrap:anywhere}
.policy-fixed-time{display:block;padding:11px 0;font-weight:600}
.reminder-hours-field{min-width:0}
.email-setting-row .reminder-hours-field .deadline-inputs{display:grid;grid-template-columns:minmax(60px,1fr) minmax(90px,.8fr);gap:8px}
@media(max-width:760px){#dashboardView .schedule-row{grid-template-columns:65px minmax(0,1fr)}#dashboardView .schedule-row>.capacity{grid-column:2;display:block}#dashboardView .schedule-row>.btn{grid-column:2;justify-self:start}.email-setting-row .reminder-hours-field{grid-column:1/-1}}
@media(max-width:420px){.dashboard-actions{grid-template-columns:minmax(0,1fr);gap:10px}.reminder-hours-field{width:100%}.reminder-hours-field .deadline-inputs{grid-template-columns:minmax(0,1fr) 100px}.policy-row:has(.deadline-inputs){grid-template-columns:minmax(0,1fr)}}
.booking-link-result .booking-link-url{width:100%;min-width:0;font-size:.8rem}
.booking-link-result .form-help{margin-bottom:0}
.booking-link-row{grid-template-columns:minmax(0,1fr) auto}
.booking-link-row>div:first-child{min-width:0;overflow-wrap:anywhere}
.manual-paypay-confirm{display:grid;gap:8px;min-width:0;max-width:330px}
.manual-paypay-confirm .form-field{min-width:0}
.manual-paypay-confirm .btn{white-space:normal;text-align:left;line-height:1.5}
.paypay-payment-dialog{box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #e3c9d3;border-radius:20px;padding:24px;background:#fffafb;color:#382833;font-size:18px;line-height:1.6}
.paypay-payment-dialog::backdrop{background:rgba(45,31,40,.5)}
.paypay-payment-dialog h2{font-size:24px;margin:0 0 12px}
.paypay-payment-dialog p{margin:0 0 18px}
.paypay-payment-dialog dl{margin:0}
.paypay-payment-dialog dl>div{margin-block:14px}
.paypay-payment-dialog dt{font-weight:700}
.paypay-payment-dialog dd{margin:4px 0 0;overflow-wrap:anywhere}
.paypay-payment-dialog ul{list-style:none;margin:0;padding:0}
.paypay-payment-dialog li+li{margin-top:10px}
.paypay-payment-dialog .paypay-confirm-amount{font-size:24px;font-weight:700}
.paypay-payment-dialog .form-actions{flex-wrap:wrap}
.paypay-payment-dialog .btn{font-size:18px;white-space:normal;line-height:1.5}
@media(max-width:480px){.paypay-payment-dialog{padding:20px}.paypay-payment-dialog .form-actions{display:grid;grid-template-columns:minmax(0,1fr)}.paypay-payment-dialog .btn{width:100%}}
#bookingLinkModal,#scheduleExclusionsModal{align-items:start;padding:20px 18px;overflow:hidden}
#bookingLinkModal .modal,#scheduleExclusionsModal .modal{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px)}
#bookingLinkModal .modal-head,#scheduleExclusionsModal .modal-head{flex:0 0 auto}
#bookingLinkModal .modal-body,#scheduleExclusionsModal .modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:600px){.booking-link-row{grid-template-columns:minmax(0,1fr)}.booking-link-row .management-row-actions{grid-column:1}.manual-paypay-confirm{max-width:none;width:100%}}
@media(max-width:420px){.date-exclusion-input{flex-direction:column}.date-exclusion-input input{flex-basis:auto;width:100%}.date-exclusion-input .btn{width:100%}#bookingLinkModal,#scheduleExclusionsModal{padding:10px}#bookingLinkModal .modal,#scheduleExclusionsModal .modal{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}}

/* Daily administration and mobile chat navigation. */
.talk-room-back { display:none; }
.payment-review-card { display:block; }
.payment-review-card > h3 { margin:0 0 12px; font-size:1rem; overflow-wrap:anywhere; }
.payment-review-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 20px; margin:0 0 14px; }
.payment-review-facts dt { color:var(--muted); font-size:.78rem; }
.payment-review-facts dd { margin:4px 0 0; overflow-wrap:anywhere; }
.payment-review-reason { margin:10px 0; overflow-wrap:anywhere; }
.payment-review-card .management-row-actions { justify-content:flex-start; flex-wrap:wrap; }
.payment-review-details { margin-top:12px; font-size:.8rem; overflow-wrap:anywhere; }
.payment-review-details summary { cursor:pointer; color:var(--muted); }
@media (max-width:980px) {
  #sidebar { height:100vh; height:100dvh; max-height:100dvh; bottom:auto; overflow-y:auto; overflow-x:hidden; overscroll-behavior-y:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y; padding-top:max(24px,env(safe-area-inset-top)); padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  #sidebar .nav-list, #sidebar .sidebar-footer, #sidebar .sidebar-brand { flex-shrink:0; }
}
@media (max-width:700px) {
  #messagesView .talk-room-shell { display:block; min-height:0; }
  #messagesView .talk-room-list { display:block; padding:0; max-height:none; overflow:visible; }
  #messagesView .talk-room-item { min-width:0; width:100%; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:14px 12px; }
  #messagesView .talk-room-item.active { box-shadow:inset 3px 0 var(--accent); }
  #messagesView .talk-room-main { display:none; }
  #messagesView .is-chat-detail .talk-room-sidebar { display:none; }
  #messagesView .is-chat-detail .talk-room-main { display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; }
  #messagesView .talk-room-back { display:flex; align-items:center; gap:8px; justify-self:start; margin:12px 14px; }
  #messagesView .talk-room-thread { min-height:240px; max-height:48vh; max-height:48dvh; }
  #messagesView .talk-room-composer { padding-bottom:max(15px,env(safe-area-inset-bottom)); }
  .payment-review-facts { grid-template-columns:minmax(0,1fr); gap:10px; }
}

/* Allow desktop chat identity and controls to wrap without squeezing the name. */
@media (min-width:701px) {
  #messagesView .talk-room-header { flex-wrap:wrap; }
  #messagesView .talk-room-header .talk-room-avatar { flex:0 0 42px; }
  #messagesView .talk-room-identity { flex:1 1 180px; min-width:min(180px,100%); overflow-wrap:anywhere; }
  #messagesView .talk-room-flag-control, #messagesView .legacy-chat-link { flex:0 0 auto; }
}

/* Native date controls must not set the CSV card's intrinsic minimum width. */
#dataView .management-stack > .panel:first-child { min-width:0; }
#dataView .csv-period-fields > .form-field { min-width:0; grid-template-columns:minmax(0,1fr); }
#dataView .csv-period-fields input { max-width:100%; }

/* Constrain the shared data grid and wrap long audit identifiers within it. */
#dataView .management-stack, #dataView .audit-list { grid-template-columns:minmax(0,1fr); }
#dataView .management-stack > .panel, #dataView .audit-row, #dataView .audit-row > * { min-width:0; }
#dataView .audit-row > * { overflow-wrap:anywhere; }

/* Keep the staff editor visible below the fixed page header. */
#staffForm { scroll-margin-top:90px; }

.payment-review-heading {display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between;}
.payment-review-card {color:#382632;}
.payment-review-heading h3 {font-size:22px;margin:0;min-width:0;overflow-wrap:anywhere;}
.payment-review-amount {font-size:24px;white-space:nowrap;}
.payment-review-card :is(p,dt,dd,summary,.btn) {font-size:18px;line-height:1.6;}
.payment-review-card .payment-review-date {font-size:16px;color:#55404e;}
.payment-review-card .payment-review-status {font-weight:700;}
.payment-review-card .payment-review-details {padding-top:14px;border-top:1px solid #ead8e1;margin-top:18px;}
.payment-review-details summary {cursor:pointer;font-weight:600;}
.payment-review-facts dd {overflow-wrap:anywhere;}
@media(max-width:420px){.payment-review-card .payment-review-facts{grid-template-columns:minmax(0,1fr);} .payment-review-card .management-row-actions .btn{width:100%;white-space:normal;}}

.admin-action-error{padding:16px;margin-block:12px;border:1px solid #a51f3b;border-radius:12px;background:#fff5f6;color:#771b2e;font-size:18px;overflow-wrap:anywhere}.admin-action-error p{margin:0 0 12px}.broadcast-confirm-body{white-space:pre-wrap}.audit-row details{font-size:16px}.audit-row p{margin:6px 0;overflow-wrap:anywhere}

.admin-layout{font-size:18px}.admin-layout small,.admin-layout .form-help,.admin-layout .hint-text,.admin-layout .muted{font-size:16px}.admin-layout input,.admin-layout select,.admin-layout textarea,.admin-layout button{font-size:16px}.admin-action-error .btn{white-space:normal}.audit-row>div{min-width:0}.audit-row dd{overflow-wrap:anywhere}
.admin-action-error{scroll-margin-top:90px}

.sidebar-footer .profile-mini>div:last-child{min-width:0}.sidebar-footer .profile-mini small{display:block}.payment-refund-details{margin-block:12px}.payment-refund-details>summary,.email-sender-details>summary{font-size:16px;font-weight:700;cursor:pointer;padding-block:10px}

.admin-layout{--muted:#5c4653}
.admin-layout :is(.section-title p,.data-action span,.audit-row,.recipient-preview,.status-chip,.mini-tag,.member-row .desc,.lesson-meta,.reservation-participant dt,.reservation-participant dd,.reservation-shared-answers dt,.reservation-shared-answers dd){font-size:16px}
.admin-layout .duplicate-launcher p{font-size:16px;color:#5c4653}
#memberDuplicatesDialog :is(p,small,td,th,dt,dd,summary,label){font-size:16px}
.member-search-panel{padding:24px;margin-bottom:18px;min-width:0}
.member-search-panel .filter-toolbar{margin-bottom:0}
.reservation-filters{min-width:0;margin-bottom:12px}
.reservation-filters>summary{font-size:18px;font-weight:700;cursor:pointer;padding-block:12px;color:#382632}
.csv-export-details{margin-top:14px;font-size:16px;color:#5c4653}
.csv-export-details>summary{cursor:pointer;font-weight:600}
.csv-export-details p{font-size:16px;line-height:1.7}
@media(min-width:701px){.reservation-filters>summary{display:none}}
@media(max-width:700px){.reservation-filters{border-bottom:1px solid var(--line);padding-bottom:4px}.reservation-filters[open]>summary{margin-bottom:10px}.member-search-panel{padding:18px}}

#noticesView{min-width:0;grid-template-columns:minmax(0,1fr)}
#noticesView .panel,#noticesView .management-row,#noticesView .management-row>*{min-width:0}
#noticesView :is(.management-stack,.management-list,.management-row){grid-template-columns:minmax(0,1fr)}
#noticesView :is(p,small,strong,dd,.management-row-actions){overflow-wrap:anywhere}

#emailTransportStatus{white-space:normal;overflow-wrap:anywhere;max-width:100%}
