/* Dashboard presentation only. Original public pages keep styles.css. */
body.dashboard-ui {
  --chalk:#f6f7f6; --surface:#fff; --surface-2:#f3f5f3;
  --ink:#202822; --text:#202822; --text-muted:#67716a;
  --turf:#326d42; --turf-deep:#2c613b; --turf-soft:#eaf2eb;
  --amber:#92631c; --amber-soft:#f8efdf;
  --border:#e1e6e1; --border-strong:#cbd3cc; --shadow:none;
  font-family:'Source Sans 3',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:15px; line-height:1.55; letter-spacing:0;
}
.dashboard-ui :is(h1,h2,h3,h4,legend,.brand-name,.stat-num,.mono,.eyebrow) {font-family:inherit;}
.dashboard-ui :is(h1,h2) {font-weight:600;letter-spacing:-.04em;line-height:1.2;}
.dashboard-ui h1 {font-size:34px;}
.dashboard-ui :is(h3,h4) {font-weight:600;letter-spacing:-.022em;}
.dashboard-ui .mono {font-variant-numeric:tabular-nums;}
.dashboard-ui header.appbar {padding:16px 30px;gap:22px;min-height:76px;}
.club-brand-mark {object-fit:contain;flex-shrink:0;}
.dashboard-ui .brand {gap:12px;min-width:0;}
.dashboard-ui .brand-name {font-size:16px;letter-spacing:-.025em;font-weight:600;}
.dashboard-ui .nav-link {font-size:13px;border-radius:5px;padding:8px 11px;font-weight:500;}
.dashboard-ui .nav-link.is-active {background:var(--turf-soft);color:var(--turf-deep);}
.dashboard-ui .nav-link.is-active:hover {background:var(--surface-2);color:var(--text);}
.dashboard-ui .who-name {font-size:12px;}
.dashboard-ui .who-role {font-size:10px;letter-spacing:.06em;}
.dashboard-ui .avatar {width:32px;height:32px;font-size:12px;}
.dashboard-ui .who-row {gap:18px;padding-left:20px;border-left:1px solid var(--border);}
.dashboard-ui :is(.theme-toggle,.logout-btn) {font-size:12px;font-weight:500;border-radius:5px;border-color:var(--border);min-height:34px;}
.dashboard-ui .lang-theme {gap:7px;}
.dashboard-ui main {padding:42px 32px 72px;max-width:1240px;}
.dashboard-ui main.admin-main {max-width:1480px;padding:0 32px 0 0;}
.admin-layout {display:grid;grid-template-columns:214px minmax(0,1fr);gap:42px;min-height:calc(100vh - 150px);}
.dashboard-ui .admin-nav {display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:38px 16px;border:0;border-right:1px solid var(--border);margin:0;background:var(--surface);}
.dashboard-ui .tab-btn {font-size:13px;}
.dashboard-ui .admin-nav .tab-btn {text-align:left;border:0;margin:0;min-height:42px;padding:10px 14px;border-radius:5px;font-weight:500;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dashboard-ui .admin-nav .tab-btn.is-active {background:var(--turf-soft);color:var(--turf-deep);font-weight:600;box-shadow:inset 2px 0 var(--turf);}
.dashboard-ui .admin-nav .tab-btn:hover {background:var(--surface-2);}
.admin-content {padding:38px 0 60px;min-width:0;}
.dashboard-ui .section-head {margin-bottom:30px;}
.dashboard-ui .eyebrow {font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted);display:block;margin-bottom:9px;}
.dashboard-ui .section-head h2 {font-size:32px !important;margin-top:0 !important;}
.dashboard-ui .card {border-radius:8px;padding:24px;box-shadow:none;min-width:0;}
.dashboard-ui .grid {gap:20px;}
.dashboard-ui .dashboard-stats {grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden;}
.dashboard-ui .dashboard-stats .stat {border:0;border-right:1px solid var(--border);border-radius:0;padding:24px;display:flex;flex-direction:column-reverse;gap:18px;align-items:flex-start;}
.dashboard-ui .dashboard-stats .stat:last-child {border-right:0;}
.dashboard-ui .stat-clickable:hover {background:var(--surface-2);}
.dashboard-ui .stat-num {font-size:34px;font-weight:500;letter-spacing:-.055em;line-height:1.1;}
.dashboard-ui .stat-label {font-size:12px;margin:0;line-height:1.5;color:var(--text-muted);}
.dashboard-ui .approval-notice {background:var(--surface);border-left:3px solid #b58c43;padding:18px 22px;}
.dashboard-ui .approval-notice h3 {font-size:14px !important;}
.dashboard-ui .approval-notice p {color:var(--text-muted);max-width:65ch;font-size:12px !important;}
.dashboard-ui .approval-notice .btn {background:var(--surface);color:var(--text);border:1px solid var(--border-strong);}
.dashboard-ui .approval-notice .btn:hover {background:var(--surface-2);}
.dashboard-ui .btn {border-radius:5px;font-size:13px;font-weight:550;padding:11px 15px;min-height:38px;line-height:1.2;}
.dashboard-ui .btn-sm {font-size:12px;padding:9px 12px;min-height:34px;}
.dashboard-ui .btn-secondary {background:var(--surface);}
.dashboard-ui .pill {font-size:11px;font-weight:500;letter-spacing:0;border-radius:4px;padding:3px 7px;gap:5px;}
.dashboard-ui .pill::before {width:4px;height:4px;}
.dashboard-ui .table-wrap {border-radius:0;border:0;border-top:1px solid var(--border);}
.dashboard-ui table {font-size:13px;}
.dashboard-ui thead th {font-size:11px;text-transform:none;letter-spacing:0;font-weight:500;background:var(--surface-2);padding:11px 13px;white-space:nowrap;}
.dashboard-ui tbody td {padding:17px 13px;}
.dashboard-ui .link-btn {font-weight:500;}
.dashboard-ui .roster-card {padding:26px;}
.dashboard-ui .roster-card .stat {padding:0;border:0;background:none;}
.dashboard-ui .roster-card .stat-num {font-size:25px;}
.dashboard-ui .headcount {padding:15px 0;margin:20px 0 0;border-top:1px solid var(--border);gap:24px;}
.dashboard-ui .headcount .item {font-size:12px;}
.dashboard-ui .swatch {width:6px;height:6px;border-radius:50%;}
.dashboard-ui .parent-grid {grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;}
.dashboard-ui .lesson-card {border-top:3px solid var(--turf);}
.dashboard-ui .lesson-card > .row:first-child {padding-bottom:18px;border-bottom:1px solid var(--border);}
.dashboard-ui .divider {margin:22px 0;}
.dashboard-ui input,.dashboard-ui select,.dashboard-ui textarea {border-radius:5px;}
.dashboard-ui .checkline {font-size:13px;}
.dashboard-ui .site-footer {font-size:11px;padding:20px 32px;max-width:1480px;}
.dashboard-ui .empty {border-radius:6px;font-size:13px;}
.dashboard-ui .row > div {min-width:0;}
.dashboard-ui .card :is(p,a) {overflow-wrap:anywhere;}
:root[data-theme=dark] body.dashboard-ui {--chalk:#151a17;--surface:#1c221e;--surface-2:#242c26;--ink:#e8eee9;--text:#e8eee9;--text-muted:#a7b3aa;--border:#323d35;--border-strong:#4a594e;--turf:#3d7b48;--turf-deep:#9dcca4;--turf-soft:#253d2b;--amber:#e1ba78;--amber-soft:#3b3020;}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) body.dashboard-ui {--chalk:#151a17;--surface:#1c221e;--surface-2:#242c26;--ink:#e8eee9;--text:#e8eee9;--text-muted:#a7b3aa;--border:#323d35;--border-strong:#4a594e;--turf:#3d7b48;--turf-deep:#9dcca4;--turf-soft:#253d2b;--amber:#e1ba78;--amber-soft:#3b3020;}}
@media(max-width:1100px){.admin-layout{grid-template-columns:180px minmax(0,1fr);gap:26px;}.dashboard-ui .dashboard-stats .stat{padding:18px;}.dashboard-ui header.appbar{gap:12px;padding:14px 20px;}.dashboard-ui .who-role{display:none;}}
@media(max-width:800px){
 .dashboard-ui main.admin-main{padding:0 20px;}.admin-layout{display:block;}.dashboard-ui .admin-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;background:none;padding:16px 0;border-bottom:1px solid var(--border);gap:6px;}.dashboard-ui .admin-nav .tab-btn{flex-shrink:0;white-space:nowrap;}.dashboard-ui .admin-nav .tab-btn.is-active{box-shadow:none;}.admin-content{padding-top:28px;}.dashboard-ui .parent-grid{grid-template-columns:1fr;}.dashboard-ui .who-row{border:0;padding:0;}.dashboard-ui .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.dashboard-ui .dashboard-stats .stat:nth-child(2){border-right:0;}.dashboard-ui .dashboard-stats .stat:nth-child(-n+2){border-bottom:1px solid var(--border);}
}
@media(max-width:640px){
 .dashboard-ui header.appbar{position:relative;padding:14px 16px;gap:12px;}.dashboard-ui .brand-name{font-size:14px;}.club-brand-mark{width:26px;height:26px;}.dashboard-ui .brand{gap:8px;}.dashboard-ui .who-row{justify-content:space-between;}.dashboard-ui main{padding:28px 16px 48px;}.dashboard-ui main.admin-main{padding:0 16px;}.dashboard-ui h1,.dashboard-ui .section-head h2{font-size:28px !important;}.dashboard-ui .card,.dashboard-ui .roster-card{padding:18px;}.dashboard-ui .grid.cols-2{grid-template-columns:minmax(0,1fr);}.dashboard-ui .stat-num{font-size:30px;}.dashboard-ui .headcount{gap:12px;}.dashboard-ui .table-wrap{max-width:100%;}.dashboard-ui .btn{min-height:42px;}.dashboard-ui .theme-toggle,.dashboard-ui .logout-btn{min-height:38px;}.dashboard-ui .site-footer{padding:20px 16px;}
}
/* Keep roster cells in the table formatting context so row dividers align. */
.dashboard-ui td.row {display:table-cell;white-space:nowrap;}
.dashboard-ui td.row .avatar {display:inline-flex;vertical-align:middle;margin-right:10px;}
.dashboard-ui tbody td {white-space:nowrap;}
@media(max-width:640px){.dashboard-ui .roster-card .stat{text-align:left !important;}}

/* Calm, readable typography for daily operations. */
.dashboard-ui :is(h1,h2,h3,h4,legend,.brand-name,.stat-num) {font-family:inherit;}
.dashboard-ui h1,.dashboard-ui .section-head h2 {
  font-size:34px !important;line-height:1.18;font-weight:700;
  letter-spacing:-.025em;text-transform:none;
}
.dashboard-ui :is(h3,h4,legend) {font-weight:600;letter-spacing:-.01em;}
.dashboard-ui .brand-name {font-size:17px;font-weight:600;letter-spacing:-.015em;}
.dashboard-ui .stat-num {font-size:38px;font-weight:700;line-height:1.1;letter-spacing:-.025em;font-variant-numeric:tabular-nums;}
.dashboard-ui .roster-card .stat-num {font-size:28px;}
.dashboard-ui :is(.nav-link,.tab-btn),.dashboard-ui .admin-nav .tab-btn {font-size:14px;}
.dashboard-ui table {font-size:14px;}
.dashboard-ui thead th {font-size:12px;font-weight:600;}
.dashboard-ui .stat-label {font-size:13px;font-weight:400;}
.dashboard-ui .eyebrow {font-size:11px;font-weight:500;letter-spacing:.07em;margin-bottom:9px;}
.dashboard-ui .pill {font-size:12px;}
.dashboard-ui .section-head {margin-bottom:30px;}
@media(max-width:640px){
  .dashboard-ui h1,.dashboard-ui .section-head h2 {font-size:29px !important;}
  .dashboard-ui .brand-name {font-size:15px;}
  .dashboard-ui .stat-num {font-size:34px;}
  .dashboard-ui .roster-card .stat-num {font-size:28px;}
}
/* Pending approvals need attention without reading as an error. */
.dashboard-ui .approval-notice {
  background:var(--amber-soft);
  border-color:var(--amber);
  border-left-width:4px;
}
.dashboard-ui .approval-notice h3 {color:var(--amber);font-weight:700;}
.dashboard-ui .approval-notice p {color:var(--text);}
.dashboard-ui .approval-notice .btn {
  background:var(--surface);border-color:var(--amber);color:var(--text);
}
.dashboard-ui .approval-notice .btn:hover {background:var(--surface-2);}
/* Consistent page structure and practical, quiet controls. */
.dashboard-ui .primary-nav:empty {display:none;}
.dashboard-ui .who-role {display:none;}
.dashboard-ui .who-row {gap:12px;padding-left:14px;}
.dashboard-ui .who-name {font-size:13px;}
.dashboard-ui .admin-page-head {display:flex;align-items:flex-start;justify-content:space-between;gap:20px;}
.dashboard-ui .admin-page-head > div {min-width:0;}
.dashboard-ui .admin-page-head > .btn {flex-shrink:0;margin-top:3px;}
.dashboard-ui .page-description {font-size:14px;color:var(--text-muted);line-height:1.5;margin-top:9px;max-width:65ch;}
.dashboard-ui .admin-table-panel {background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;}
.dashboard-ui .table-toolbar {padding:15px 18px;border-bottom:1px solid var(--border);}
.dashboard-ui .admin-table-panel .table-wrap {border-top:0;border-radius:0 0 8px 8px;}
.dashboard-ui .admin-table-panel .filter-bar {max-width:440px;}
.dashboard-ui .admin-table-panel td {padding:14px 16px;}
.dashboard-ui .admin-table-panel th {padding:12px 16px;}
.dashboard-ui .admin-empty {background:var(--surface);border:1px solid var(--border);padding:54px 24px;text-align:center;}
.dashboard-ui .admin-empty h3 {font-size:20px;font-weight:600;}
.dashboard-ui .admin-empty p {font-size:14px;max-width:45ch;margin:8px auto 20px;color:var(--text-muted);}
.dashboard-ui .drill-library-card {padding:20px;display:flex;flex-direction:column;}
.dashboard-ui .drill-library-card > .row:last-child {margin-top:auto !important;padding-top:20px;}
.dashboard-ui .drill-library-card > .row:first-child strong {font-size:17px !important;line-height:1.35;font-weight:600;}
.dashboard-ui .drill-library-card > p {font-size:14px !important;line-height:1.55;margin-bottom:6px;}
.dashboard-ui .drill-library-card > div:not(.row) {font-size:12px !important;}
.dashboard-ui .btn-danger {border-color:transparent;}
.dashboard-ui .admin-content .grid.cols-3 {grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));}
/* Metric strip retains its intentional four-column layout. */
.dashboard-ui .admin-content .dashboard-stats {grid-template-columns:repeat(4,minmax(0,1fr));}
@media(max-width:800px){.dashboard-ui .admin-content .dashboard-stats {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){
 .dashboard-ui .admin-page-head {flex-wrap:wrap;gap:16px;}
 .dashboard-ui .admin-page-head > .btn {margin-top:0;}
 .dashboard-ui .table-toolbar {padding:12px;}
 .dashboard-ui .admin-empty {padding:36px 20px;}
 .dashboard-ui .who-row {padding-left:0;}
}
/* Phone controls: comfortable touch targets and readable form text. */
@media(max-width:640px){
 .dashboard-ui :is(.btn,.btn-sm,.theme-toggle,.logout-btn,.nav-link,.tab-btn,.col-btn){min-height:44px;}
 .dashboard-ui .admin-nav .tab-btn{min-height:44px;}
 .dashboard-ui .nav-link{display:inline-flex;align-items:center;}
 .dashboard-ui :is(input[type=text],input[type=email],input[type=tel],input[type=date],input[type=number],input[type=password],input[type=search],select,textarea){font-size:16px;min-height:44px;}
 .dashboard-ui .table-wrap{overscroll-behavior-x:contain;}
 .dashboard-ui .table-toolbar .filter-bar{width:100%;max-width:100%;}
 .dashboard-ui .table-toolbar input{min-width:0;}
}
