/* Theme tokens and the compact coach workspace, inspired by the supplied reference. */
:root,[data-theme="light"]{
  color-scheme:light;--bg:#f7f8fa;--card:#fff;--ink:#182127;--muted:#647080;--line:#e7ebef;--soft:#f1f3f6;
  --accent:#d9fa62;--accent-ink:#435900;--green:#188542;--red:#c73c50;--accent-soft:#f0fad2;--accent-glow:transparent;
  --shadow:0 3px 15px rgba(26,39,46,.035);--pink:#ffe0e8;--blue:#dceeff;--mint:#ddf6df;--purple:#eddfff;
}
[data-theme="dark"]{
  color-scheme:dark;--bg:#0c1418;--card:#121e24;--ink:#f1f5f6;--muted:#a2b0b9;--line:#243139;--soft:#19262d;
  --accent:#d9fa62;--accent-ink:#d9fa62;--green:#96e5ae;--red:#ff95a3;--accent-soft:#25331d;
  --shadow:0 4px 18px rgba(0,0,0,.10);--pink:#f3c6d4;--blue:#badef6;--mint:#c5eccb;--purple:#dcc8f3;
}
html,body{background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
body{min-height:100dvh;padding-bottom:110px;}
.topbar{background:var(--card);border-color:var(--line);box-shadow:none;min-height:76px;padding:18px 80px 18px 28px;gap:12px;}
.topbar:empty{min-height:68px;}
.topbar .account-bar{display:none;}
.topbar-title{font-size:21px;font-weight:750;letter-spacing:-.035em;white-space:normal;overflow-wrap:anywhere;}
.topbar-sub{white-space:normal;max-width:100%;line-height:1.5;color:var(--muted);}
.wrap{max-width:1100px;padding:26px 28px 30px;}
.group-card,.kid-row,.payment-card,.month-list,.stat-card,.branch-stat-card,.stats-summary-card,.stats-panel,.stats-detail-head,.auth-feature,.auth-form-card,.app-dialog,.modal,.today-branch,.newcomer-card,.empty{
 background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;
}
.group-card{padding:16px;gap:14px;margin-bottom:10px;}
.group-card:hover{border-color:var(--muted);box-shadow:var(--shadow);transform:translateY(-1px);}
.group-name{font-size:15px;font-weight:750;}
.group-meta,.group-count{font-size:12px;line-height:1.5;color:var(--muted);}
.group-emoji{width:50px;height:50px;background:var(--pink);border:0;border-radius:12px;}
.group-card:nth-of-type(3n+2) .group-emoji{background:var(--blue);}
.group-card:nth-of-type(3n) .group-emoji{background:var(--mint);}
.group-card:nth-of-type(4n) .group-emoji{background:var(--purple);}
.group-emoji .ui-icon{color:#253039;width:27px;height:27px;}
.ui-icon{color:currentColor;}
.group-meta .ui-icon,.group-count .ui-icon{width:15px;height:15px;vertical-align:-3px;}
.btn{background:var(--accent);color:#192008;border-radius:10px;box-shadow:none;min-height:46px;padding:12px 17px;font-size:14px;font-weight:750;letter-spacing:0;}
.btn:hover{box-shadow:none;filter:brightness(.98);}
.btn.secondary,.logout-btn,.day-chip,input,select,textarea,.check-row,.stats-month-chip,.stats-student-row,.stats-empty-note,.stats-detail-mini,.stats-fact,.stats-comparison,.branch-mini,.payment-list,.cal-cell,.today-training,.today-newcomer,.today-stat{background:var(--soft);border-color:var(--line);color:var(--ink);box-shadow:none;}
.btn.ghost,.auth-switch,.stats-detail-back{color:var(--muted);}
.btn.danger,.auth-error{color:var(--red);background:color-mix(in srgb,var(--red) 7%,var(--card));border-color:color-mix(in srgb,var(--red) 25%,var(--line));}
.btn.small{min-height:44px;padding:10px 13px;}
input,select,textarea{min-height:46px;border-radius:10px;font:inherit;font-size:14px;max-width:100%;}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1;}
select option{background:var(--card);color:var(--ink);}
label,.muted,.profile-line .muted-label,.stat-label,.branch-stat-meta,.branch-mini .l,.auth-hero p,.auth-feature span,.app-dialog p,.today-date,.today-training-meta,.today-new-meta,.today-stat-l,.newcomer-meta,.upcoming-meta,.upcoming-countdown,.stats-summary-card .l,.stats-summary-card .delta,.stats-panel-sub,.stats-month-chip .m,.stats-group-hero-meta,.stats-sort-row label,.stats-student-meta,.stats-attention-meta,.stats-detail-meta,.stats-detail-caption,.stats-detail-mini .l,.stats-fact .l,.stats-comparison .small,.calendar-weekdays>div,.calendar-legend{color:var(--muted);}
.profile-line,.payment-list-title,.today-new-title{color:var(--ink);}
.stats-summary-card .v.accent,.stats-summary-card .delta.up,.stats-student-percent.good,.stats-kid-percent.good,.stats-detail-percent,.branch-mini .v,.today-training-time,.today-stat-v,.upcoming-time,.auth-kicker{color:var(--accent-ink);}
.stats-summary-card .delta.down,.stats-student-percent.low,.stats-attention-value,.stats-kid-percent.low{color:var(--red);}
.stats-student-percent.mid,.stats-kid-percent.mid{color:var(--muted);}
.stats-summary-card{padding:18px 14px;}
.stats-panel-title,.stats-section-title{font-size:17px;font-weight:750;}
.stats-trend-grid{stroke:var(--line);}.stats-trend-dot{fill:var(--card);stroke:var(--accent-ink);}.stats-trend-line{stroke:var(--accent-ink);}
.stats-trend-label{fill:var(--muted);}.stats-trend-value{fill:var(--ink);}
.stats-progress{background:var(--line);}.stats-progress>span{background:var(--accent-ink);}
.stats-month-strip{grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible;}
.stats-month-chip{padding:8px 2px;}.stats-month-chip .p{font-size:12px;}
.day-chip.active,.cal-cell.selected{background:var(--accent);border-color:var(--accent);color:#192008;box-shadow:none;}
.cal-cell.today .cal-day{color:var(--ink);}.cal-cell.training{background:var(--accent-soft);border-color:var(--line);}
.kid-status.active,.kid-status.new,.payment-status.paid,.today-status.new{background:var(--accent-soft);color:var(--green);border-color:var(--line);}
.kid-status.trial,.today-status.trial{background:var(--blue);color:#214f73;}
.kid-status.paused,.today-status.paused{background:#fff0cb;color:#765712;}
.payment-status.unpaid{color:var(--red);}
.today-training-icon,.today-new-avatar,.newcomer-avatar,.icon-box{background:var(--blue);color:#214f73;border:0;}
.today-title{font-size:22px;font-weight:750;}.today-branch{padding:16px;}.today-stat-v{color:var(--ink);}
.upcoming-card{background:var(--card);border-color:var(--line);box-shadow:var(--shadow);}.upcoming-icon{background:var(--mint);}
.month-row,.ledger-entry,.billing-fields{border-color:var(--line);}
.fixed-cta{background:linear-gradient(to top,var(--bg) 65%,transparent);padding:18px 28px 22px;}
.fixed-cta .btn{max-width:1044px;}
.overlay{background:rgba(12,20,24,.42);}.modal{padding:24px;}.app-dialog-overlay{background:rgba(12,20,24,.52);}
.toast{background:var(--ink);color:var(--card);}
.auth-hero h1{font-size:36px;line-height:1.15;}.auth-feature{min-height:100px;}.auth-screen{max-width:720px;}
.auth-mark{box-shadow:none;border-radius:14px;}.auth-feature .ui-icon{color:var(--accent-ink);}
button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px;}
.theme-toggle{position:fixed;z-index:31;right:24px;top:16px;width:44px;height:44px;display:grid;place-items:center;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:12px;cursor:pointer;}
.theme-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.app-shell{display:none;}.signed-in .app-shell{display:flex;position:fixed;inset:0 auto 0 0;width:222px;background:var(--card);border-right:1px solid var(--line);z-index:30;padding:26px 16px;flex-direction:column;}
.signed-in{padding-left:222px;}.signed-in .fixed-cta{left:222px;}
.shell-brand{display:flex;gap:10px;align-items:center;padding:0 10px 36px;font-size:15px;letter-spacing:-.04em;}.shell-brand span:not(.ui-icon){font-weight:500;}
.shell-caption{font-size:9px;letter-spacing:.1em;color:var(--muted);padding:0 10px 14px;}
.shell-link{display:flex;align-items:center;width:100%;gap:12px;padding:12px;border-radius:9px;border:0;background:none;color:var(--muted);font-size:13px;text-align:left;font-weight:600;cursor:pointer;margin-bottom:5px;min-height:46px;}
.shell-link.selected{background:var(--accent-soft);color:var(--accent-ink);}.shell-link .ui-icon{width:20px;height:20px;}
.shell-profile{margin-top:auto;display:flex;align-items:center;gap:10px;border:0;border-top:1px solid var(--line);padding:20px 0 0;background:none;color:var(--ink);text-align:left;cursor:pointer;}
.profile-initial{display:grid;place-items:center;background:var(--purple);color:#36254b;width:36px;height:36px;border-radius:12px;flex-shrink:0;}
.shell-profile strong{display:block;font-size:12px;overflow-wrap:anywhere;}.shell-profile small{display:block;font-size:10px;color:var(--muted);margin-top:5px;}
.account-menu{display:grid;gap:10px;margin-top:20px;}
@media(min-width:1000px){.today-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.stats-controls{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){
 body.signed-in{padding-left:0;padding-bottom:178px;}.signed-in .app-shell{inset:auto 0 0;width:100%;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);}
 .shell-brand,.shell-caption,.shell-profile{display:none;}.app-shell nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;}
 .shell-link{flex-direction:column;gap:5px;font-size:9px;padding:7px 1px 5px;margin:0;min-height:51px;border-radius:9px;}.shell-link .ui-icon{width:21px;height:21px;}
 .topbar{min-height:70px;padding:16px 66px 16px 16px;}.topbar-title{font-size:19px;}.theme-toggle{right:14px;top:13px;}
 .wrap{padding:18px 14px 22px;}.signed-in .fixed-cta{left:0;bottom:calc(64px + env(safe-area-inset-bottom));padding:16px 14px 12px;}
 .group-card{padding:14px 12px;border-radius:12px;}.group-name{font-size:14px;}.group-meta{font-size:11px;}.group-emoji{width:44px;height:44px;border-radius:10px;}
 .topbar>div{min-width:0;}.topbar-sub{font-size:11px;}.back-btn{width:32px;flex-shrink:0;}
 .kid-name-btn{white-space:normal;overflow-wrap:anywhere;font-size:14px;}.kid-row-main{flex-wrap:wrap;}.kid-row{gap:5px;}
 .stats-panel{padding:12px;}.stats-trend-svg{min-height:120px;}.stats-controls{grid-template-columns:1fr 1fr;}.stats-controls select{font-size:12px;padding-left:8px;}
 .stats-group-hero-name{font-size:20px;}.stats-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .modal{border-radius:18px 18px 0 0;padding:22px 16px calc(22px + env(safe-area-inset-bottom));}
 .toast{bottom:calc(170px + env(safe-area-inset-bottom));}.auth-hero h1{font-size:29px;}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
.search-box input{background:var(--soft);border-color:var(--line);box-shadow:none;border-radius:10px;}
.search-icon{color:var(--muted);}.search-clear{background:var(--line);color:var(--ink);}
.search-result{background:var(--card);border-color:var(--line);box-shadow:var(--shadow);border-radius:12px;}
.search-result-avatar{background:var(--blue);color:#214f73;border:0;}.search-result-meta{color:var(--muted);}
.attendance-mini{background:var(--soft);border-color:var(--line);}.attendance-bar{background:var(--line);}
.today-empty,.stats-empty-note{color:var(--muted);}.stats-detail-percent{font-family:inherit;}
.kid-notes-card{background:var(--soft);border-color:var(--line);color:var(--ink);}.kid-notes-card .muted-label{color:var(--muted);font-size:12px;}
.kid-profile-avatar{width:64px;height:64px;border-radius:18px;background:var(--soft);display:grid;place-items:center;font-size:22px;font-weight:700;margin:0 0 18px;}
.profile-name{font-size:24px;font-weight:700;}.profile-line{line-height:1.6;}
.search-box input{font-size:14px;min-height:48px;padding-top:12px;padding-bottom:12px;}.search-icon{top:14px;width:20px;height:20px;}
.search-box{margin-top:0;}.auth-error:empty{display:none;}
@media(min-width:1000px){.stats-trend-svg{max-height:260px;}}
.day-chips{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;}.day-chip{padding:10px 0;min-width:0;}
