:root{
  --violet-950:#210b4b;
  --violet-900:#321064;
  --violet-800:#4b1b91;
  --violet-700:#6527c7;
  --violet-600:#7c3aed;
  --violet-100:#ede7fb;
  --violet-50:#f6f2ff;
  --yellow:#ffca1a;
  --yellow-soft:#fff2b8;
  --orange:#ff8a2a;
  --green:#22a06b;
  --green-soft:#e5f7ef;
  --red:#e45151;
  --red-soft:#fff0f0;
  --ink:#221a38;
  --muted:#756e82;
  --line:#e9e5ef;
  --surface:#ffffff;
  --canvas:#f7f5fa;
  --shadow:0 16px 44px rgba(45,24,88,.09);
}

*{box-sizing:border-box}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas)}
body{margin:0;min-height:100vh;overflow-x:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
.is-hidden{display:none!important}

/* Login */
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(500px,.9fr) minmax(520px,1.1fr);background:linear-gradient(135deg,#faf8ff 0%,#fffaf0 100%);position:relative;overflow:hidden}
.login-card{width:min(590px,90%);margin:auto;padding:52px 46px;position:relative;z-index:2}
.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:64px}
.brand-logo{width:58px;height:58px;border-radius:18px;background:white;box-shadow:0 10px 24px rgba(77,26,150,.16);overflow:hidden;padding:3px}
.brand-logo img{width:100%;height:100%;object-fit:cover;border-radius:15px}
.login-brand div:last-child{display:flex;flex-direction:column}
.login-brand span{font-size:10px;letter-spacing:.24em;color:var(--violet-700);font-weight:900}
.login-brand strong{font-size:21px;color:var(--violet-950);line-height:1.1}
.eyebrow{display:inline-block;font-size:11px;letter-spacing:.18em;font-weight:900;color:var(--violet-700);margin-bottom:12px}
.login-copy h1{font-size:clamp(38px,4vw,56px);line-height:1.03;letter-spacing:-.045em;margin:0;color:var(--violet-950)}
.login-copy p{font-size:17px;line-height:1.55;color:var(--muted);max-width:500px;margin:18px 0 28px}
.role-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 18px}
.role-picker.single-role{grid-template-columns:1fr}
.role-picker.single-role .role-option{min-height:68px;flex-direction:row;justify-content:center;font-size:13px}
.role-picker.single-role .role-option span{font-size:13px}
.role-loading,.role-access-error{width:100%;min-height:68px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;padding:14px;color:var(--muted);font-size:11px;font-weight:800;text-align:center}
.role-access-error{border-color:#f2b9c5;background:#fff6f8;color:#a32c47}
.role-option{border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 8px 11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:7px;transition:.18s}
.role-option:hover{border-color:#cdbaf5;transform:translateY(-2px)}
.role-option.active{border-color:var(--violet-600);background:var(--violet-50);color:var(--violet-800);box-shadow:0 8px 22px rgba(109,40,217,.12)}
.role-option svg{width:22px;height:22px}
.role-option span{font-size:11px;font-weight:800;white-space:nowrap}
.employee-login-form{margin:0}
.login-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;margin:0 0 14px;border-radius:15px;background:#eee8f8}
.login-mode-switch button{height:42px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-weight:850;font-size:13px}
.login-mode-switch button.active{background:#fff;color:var(--violet-800);box-shadow:0 4px 15px rgba(60,24,105,.1)}
.parent-phone-row{grid-template-columns:1fr}
.parent-phone-row input{font-size:16px;letter-spacing:.02em}
.parent-child-switcher{display:flex;align-items:center;gap:10px;margin:-4px 0 18px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;width:max-content;max-width:100%}
.parent-child-switcher span{font-size:11px;font-weight:850;color:var(--muted)}
.parent-child-switcher select{border:0;background:transparent;color:var(--violet-950);font-weight:850;font-size:12px;outline:none;max-width:230px}
.parent-balance-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}
.parent-balance-row:last-child{border-bottom:0}.parent-balance-row div{display:flex;flex-direction:column;gap:3px}.parent-balance-row strong{font-size:11px}.parent-balance-row span{font-size:9px;color:var(--muted)}.parent-balance-row b{font-size:13px;color:var(--green);white-space:nowrap}.parent-balance-row b.negative{color:var(--red)}
.parent-charge-panel{margin-top:18px}.parent-charge-list .receipt-item{grid-template-columns:auto minmax(0,1fr) auto}.charge-icon{background:#fff0e8!important;color:#d75d30!important}.receipt-item .charge-sum{color:var(--red)!important;font-weight:900;white-space:nowrap}
.teacher-login-select{margin:0 0 16px;padding:18px;border:1px solid #d8c7f4;border-radius:18px;background:linear-gradient(135deg,#fbf8ff,#fffdf7)}
.teacher-login-select label{display:block;margin:0 0 8px;font-size:11px;letter-spacing:.12em;font-weight:900;color:var(--violet-700)}
.teacher-login-select label:not(:first-child){margin-top:14px}
.teacher-login-select select,.login-password-row input{width:100%;height:48px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 13px;color:var(--ink);font-size:14px;font-weight:750;outline:none}
.teacher-login-select select:focus,.login-password-row input:focus{border-color:var(--violet-600);box-shadow:0 0 0 3px rgba(109,40,217,.1)}
.teacher-login-select small{display:block;margin-top:9px;color:var(--muted);font-size:11px;line-height:1.45}
.login-password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.login-password-row input{min-width:0}
.login-password-row button{border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 14px;color:var(--violet-700);font-size:12px;font-weight:850}
.login-password-row button:hover{border-color:#cdbaf5;background:var(--violet-50)}
.primary-btn{border:0;border-radius:16px;background:linear-gradient(135deg,var(--violet-700),var(--violet-900));color:#fff;font-weight:800;box-shadow:0 12px 26px rgba(92,32,180,.2);display:flex;align-items:center;justify-content:center;gap:10px;transition:.18s}
.primary-btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(92,32,180,.28)}
.login-btn{height:56px;width:100%;font-size:15px}
.login-note{text-align:center;color:#aaa3b2;font-size:12px;margin:16px 0 0}
.login-art{background:radial-gradient(circle at 50% 44%,#8b46f4 0,#5c1bb8 32%,#321069 75%,#210843 100%);position:relative;overflow:hidden;display:grid;place-items:center}
.login-art:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.18) 1.3px,transparent 1.3px);background-size:30px 30px;opacity:.3}
.orbit{position:absolute;border:1px solid rgba(255,213,55,.25);border-radius:50%;transform:rotate(-17deg)}
.orbit-one{width:720px;height:360px}.orbit-two{width:500px;height:500px;border-color:rgba(255,255,255,.12)}
.mascot-card{width:min(430px,61%);aspect-ratio:1;border-radius:46% 54% 45% 55%/55% 40% 60% 45%;overflow:hidden;background:#fff;box-shadow:0 35px 90px rgba(18,2,45,.45);position:relative;z-index:2;animation:float 5s ease-in-out infinite}
.mascot-card img{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.floating-pill{position:absolute;z-index:3;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.5);box-shadow:0 15px 35px rgba(28,5,68,.25);border-radius:16px;padding:12px 17px;font-size:13px;font-weight:800;color:var(--violet-950);display:flex;gap:7px;align-items:center;backdrop-filter:blur(10px)}
.floating-pill span{color:var(--violet-700)}
.floating-pill svg{color:var(--green);width:18px}
.pill-one{top:23%;left:11%;animation:float 4.3s ease-in-out infinite .4s}.pill-two{bottom:22%;right:9%;animation:float 5.2s ease-in-out infinite .2s}.pill-three{top:19%;right:15%;background:var(--yellow);animation:float 4.8s ease-in-out infinite .8s}
.login-glow{position:absolute;border-radius:50%;filter:blur(1px);z-index:0}.glow-one{width:280px;height:280px;background:#f0e6ff;left:-140px;top:-80px}.glow-two{width:220px;height:220px;background:#fff0ae;left:37%;bottom:-100px}
@keyframes float{50%{transform:translateY(-12px)}}

/* Main layout */
.app-shell{min-height:100vh;display:flex;background:var(--canvas)}
.sidebar{width:264px;position:fixed;inset:0 auto 0 0;background:linear-gradient(180deg,#321064 0%,#250a4d 100%);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:20;box-shadow:12px 0 36px rgba(38,10,82,.12)}
.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,.1)}
.sidebar-brand img{width:48px;height:48px;border-radius:15px;object-fit:cover;background:#fff;border:2px solid rgba(255,255,255,.15)}
.sidebar-brand div{display:flex;flex-direction:column;min-width:0}.sidebar-brand strong{font-size:16px;white-space:nowrap}.sidebar-brand span{font-size:10px;color:#cdbce8;letter-spacing:.09em;margin-top:2px}
.main-nav{display:flex;flex-direction:column;gap:5px;margin-top:23px;overflow:auto}
.nav-section-label{font-size:9px;letter-spacing:.16em;color:#9e83c7;font-weight:900;padding:12px 13px 6px}
.nav-item{border:0;background:transparent;color:#cfc3df;border-radius:13px;padding:11px 12px;display:flex;align-items:center;gap:12px;text-align:left;font-size:13px;font-weight:700;transition:.18s;width:100%}
.nav-item:hover{color:#fff;background:rgba(255,255,255,.07)}
.nav-item.active{background:linear-gradient(135deg,#7131d8,#5420a4);color:#fff;box-shadow:0 8px 22px rgba(15,2,42,.22)}
.nav-icon{width:31px;height:31px;border-radius:10px;background:rgba(255,255,255,.08);display:grid;place-items:center;flex:0 0 auto}
.nav-icon svg{width:17px;height:17px}.nav-item.active .nav-icon{background:rgba(255,255,255,.14);color:var(--yellow)}
.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.sidebar-help{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);color:#fff;border-radius:15px;padding:10px;display:flex;align-items:center;gap:10px;text-align:left}
.sidebar-help span:last-child{display:flex;flex-direction:column;gap:2px}.sidebar-help strong{font-size:11px}.sidebar-help small{font-size:9px;color:#bba9d6}
.logout-btn{border:0;background:transparent;color:#a995c6;padding:9px 12px;display:flex;align-items:center;gap:10px;font-size:11px}.logout-btn:hover{color:#fff}
.logout-btn svg{width:16px}
.page-shell{margin-left:264px;width:calc(100% - 264px);min-height:100vh}
.topbar{height:84px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:10}
.page-title-wrap{display:flex;flex-direction:column}.page-title-wrap span{font-size:9px;letter-spacing:.16em;color:var(--violet-600);font-weight:900}.page-title-wrap h2{font-size:21px;line-height:1.2;margin:3px 0 0;color:var(--ink)}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.icon-button{width:41px;height:41px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:13px;display:grid;place-items:center;position:relative}
.notification-button i{position:absolute;right:9px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--orange);border:2px solid #fff}
.profile-button{height:52px;border:0;background:#f5f1fb;border-radius:15px;padding:5px 11px 5px 6px;display:flex;align-items:center;gap:9px;color:var(--ink)}
.profile-avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--violet-600),var(--violet-900));color:#fff;font-size:12px;font-weight:900}
.profile-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:150px}.profile-copy strong{font-size:12px}.profile-copy small{font-size:10px;color:var(--muted);margin-top:2px}.profile-button>svg{width:14px;transform:rotate(90deg);color:#9a91a4}
.menu-button{display:none;margin-right:12px}
.main-content{padding:28px 32px 46px;max-width:1600px;margin:0 auto}

/* Content */
.welcome-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px}
.welcome-row h1{font-size:29px;letter-spacing:-.035em;margin:0 0 7px}.welcome-row p{margin:0;color:var(--muted);font-size:13px}.date-chip{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 14px;font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.metric-card,.panel{background:var(--surface);border:1px solid rgba(72,43,108,.08);border-radius:20px;box-shadow:0 6px 24px rgba(50,28,82,.045)}
.metric-card{padding:18px;position:relative;overflow:hidden}
.metric-card:after{content:"";position:absolute;width:74px;height:74px;border-radius:50%;right:-25px;top:-25px;background:var(--metric-soft,#f1ebff)}
.metric-top{display:flex;align-items:center;justify-content:space-between}.metric-icon{width:39px;height:39px;border-radius:13px;background:var(--metric-soft,#f1ebff);color:var(--metric-color,var(--violet-700));display:grid;place-items:center}.metric-icon svg{width:19px}.metric-change{font-size:10px;font-weight:900;color:var(--green);background:var(--green-soft);padding:5px 7px;border-radius:9px}
.metric-card strong.metric-number{display:block;font-size:25px;letter-spacing:-.03em;margin-top:15px}.metric-card span.metric-label{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.lesson-revenue-card{grid-column:span 2}.lesson-revenue-periods{display:flex;gap:5px;margin-top:13px;padding:4px;border-radius:11px;background:#f7f3fb;max-width:470px}.lesson-revenue-periods button{flex:1;border:0;border-radius:8px;background:transparent;color:var(--muted);padding:8px;font-size:12px;font-weight:900}.lesson-revenue-periods button.active{background:#fff;color:var(--violet-700);box-shadow:0 4px 12px rgba(54,18,105,.1)}.lesson-revenue-custom{display:flex;align-items:flex-end;gap:8px;margin-top:10px;max-width:560px}.lesson-revenue-custom label{display:flex;flex-direction:column;gap:4px;min-width:0}.lesson-revenue-custom label span{font-size:12px;font-weight:900;color:var(--muted)}.lesson-revenue-custom input{width:160px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:9px;font:inherit;font-size:14px}.lesson-revenue-custom input:focus{outline:none;border-color:var(--violet-600);box-shadow:0 0 0 3px var(--violet-50)}.lesson-revenue-custom button{border:0;border-radius:9px;background:var(--violet-700);color:#fff;padding:10px 14px;font-size:14px;font-weight:900}.lesson-revenue-custom button:disabled{opacity:.65}
.grid-2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:18px;margin-top:18px}.grid-2.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}
.panel{padding:20px}.panel.flush{padding:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-head h3{font-size:15px;margin:0}.panel-head p{font-size:11px;color:var(--muted);margin:4px 0 0}.text-button{border:0;background:transparent;color:var(--violet-700);font-size:11px;font-weight:800;padding:5px}.small-btn{border:1px solid var(--line);background:#fff;border-radius:11px;padding:8px 10px;font-size:10px;font-weight:800;color:var(--ink);display:flex;gap:6px;align-items:center}.small-btn.primary{border-color:var(--violet-700);background:var(--violet-700);color:#fff}.small-btn svg{width:14px;height:14px}
.chart-wrap{height:230px;position:relative;padding:12px 2px 26px 34px}.chart-grid{position:absolute;inset:12px 0 26px 34px;display:grid;grid-template-rows:repeat(4,1fr)}.chart-grid i{border-top:1px dashed #e8e3ef}.chart-bars{height:100%;display:flex;align-items:flex-end;justify-content:space-around;gap:12px;position:relative;z-index:1}.bar-col{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.bar{width:min(32px,60%);border-radius:9px 9px 3px 3px;background:linear-gradient(180deg,#8b4de5,#5b20af);min-height:12px;position:relative;transition:.3s}.bar:hover{filter:brightness(1.1);transform:translateY(-2px)}.bar.highlight{background:linear-gradient(180deg,#ffd53e,#ff9d23)}.bar-col span{font-size:9px;color:#91899c}.chart-axis{position:absolute;left:0;top:6px;bottom:28px;display:flex;flex-direction:column;justify-content:space-between;font-size:8px;color:#aaa1b3}
.finance-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:18px}.finance-chart-card{min-height:340px}.finance-directions-card{grid-column:1/-1;min-height:auto}.finance-chart-summary{display:flex;align-items:flex-end;justify-content:space-between;margin:2px 0 4px;padding:0 4px}.finance-chart-summary span{font-size:9px;color:var(--muted);font-weight:800}.finance-chart-summary strong{font-size:19px;color:var(--violet-800)}.finance-svg-wrap{height:205px;position:relative;padding-left:34px}.finance-svg-wrap svg{width:100%;height:100%;overflow:visible}.finance-svg-grid line{stroke:#ebe5f2;stroke-width:1;stroke-dasharray:5 7}.finance-area-path{fill:rgba(107,43,210,.1)}.finance-line-path{fill:none;stroke:var(--violet-700);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 6px 7px rgba(107,43,210,.18))}.finance-line-chart circle{fill:#fff;stroke:var(--violet-700);stroke-width:4}.finance-axis-max,.finance-axis-zero{position:absolute;left:0;font-size:8px;color:#aaa1b3;font-weight:700}.finance-axis-max{top:16px}.finance-axis-zero{bottom:23px}.finance-month-labels{display:grid;grid-template-columns:repeat(6,1fr);padding-left:66px;margin-top:-10px}.finance-month-labels span{text-align:center;font-size:9px;color:#91899c;text-transform:capitalize}.finance-zero-note{margin:13px 0 0;padding:9px 12px;border-radius:11px;background:var(--violet-50);color:var(--muted);font-size:8px;text-align:center}.finance-compare-chart{display:flex;flex-direction:column;gap:25px;padding:15px 2px 8px}.finance-compare-row>div:first-child{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:9px}.finance-compare-row span{font-size:9px;color:var(--muted);font-weight:800}.finance-compare-row strong{font-size:15px}.finance-compare-track{height:17px;border-radius:999px;background:var(--bar-soft);overflow:hidden;padding:3px}.finance-compare-track i{display:block;height:100%;border-radius:999px;background:var(--bar-color);transition:.3s}.finance-direction-legend{display:flex;justify-content:flex-end;gap:14px;margin:-5px 0 14px}.finance-direction-legend span{display:flex;align-items:center;gap:6px;font-size:8px;color:var(--muted);font-weight:800}.finance-direction-legend i{width:16px;height:6px;border-radius:999px}.finance-direction-legend i.plan{background:#a882e5}.finance-direction-legend i.paid{background:#20af7d}.finance-direction-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}.finance-direction-row{min-width:0}.finance-direction-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.finance-direction-copy strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.finance-direction-copy span{font-size:8px;color:var(--muted);white-space:nowrap}.finance-direction-track{height:17px;position:relative;border-radius:999px;background:#f4f0f8;overflow:hidden}.finance-direction-track i{position:absolute;left:0;border-radius:999px}.finance-direction-track i.plan{top:2px;height:5px;background:#a882e5}.finance-direction-track i.paid{bottom:2px;height:5px;background:#20af7d}.finance-chart-empty{min-height:180px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.finance-chart-empty .metric-icon{margin-bottom:10px}.finance-chart-empty strong{font-size:12px}.finance-chart-empty p{font-size:9px;color:var(--muted);margin:5px 0 0}
.schedule-list{display:flex;flex-direction:column;gap:10px}.schedule-item{display:grid;grid-template-columns:54px 5px 1fr auto;gap:11px;align-items:center;padding:11px 12px;border-radius:14px;background:#faf8fc}.schedule-time{font-size:11px;font-weight:900;color:var(--ink)}.schedule-line{height:38px;border-radius:3px;background:var(--accent,var(--violet-600))}.schedule-name strong{display:block;font-size:11px}.schedule-name span{display:block;font-size:9px;color:var(--muted);margin-top:3px}.schedule-count{font-size:9px;background:#fff;border:1px solid var(--line);padding:5px 7px;border-radius:8px;color:var(--muted)}
.upcoming-lesson-card{width:100%;display:grid;grid-template-columns:52px 105px minmax(0,1fr) auto;align-items:center;gap:13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fff,#faf7ff);padding:10px 12px;text-align:left;color:var(--ink);transition:.16s}.upcoming-lesson-card:hover{transform:translateY(-1px);border-color:#cbb7f1;box-shadow:0 9px 20px rgba(74,35,126,.08)}.upcoming-date{height:52px;border-radius:13px;background:var(--violet-50);color:var(--violet-800);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;align-items:center;padding:7px 8px}.upcoming-date small{grid-column:1/-1;font-size:7px;font-weight:900;letter-spacing:.08em}.upcoming-date strong{font-size:20px;line-height:1}.upcoming-date em{font-size:8px;font-style:normal;font-weight:800;align-self:end;text-align:right}.upcoming-time strong,.upcoming-time small,.upcoming-copy strong,.upcoming-copy small{display:block}.upcoming-time strong{font-size:10px;white-space:nowrap}.upcoming-time small{font-size:8px;color:var(--muted);margin-top:4px}.upcoming-copy{min-width:0}.upcoming-copy strong{font-size:10px}.upcoming-copy small{font-size:8px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-state{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#fff;padding:6px 8px;font-size:7px;font-weight:900;color:var(--event-color);white-space:nowrap;border:1px solid var(--line)}.upcoming-state i{width:7px;height:7px;border-radius:50%;background:var(--event-color)}
.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid #f0edf3}.activity-item:last-child{border-bottom:0}.activity-dot{width:34px;height:34px;border-radius:11px;background:var(--soft,var(--violet-100));color:var(--color,var(--violet-700));display:grid;place-items:center;flex:0 0 auto}.activity-dot svg{width:16px}.activity-copy{flex:1}.activity-copy strong{font-size:10px;display:block}.activity-copy p{font-size:9px;color:var(--muted);margin:3px 0 0;line-height:1.35}.activity-time{font-size:8px;color:#aaa2b1}
.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-action{min-width:0;border:1px solid var(--line);background:#fff;border-radius:15px;padding:15px 12px;text-align:left;display:flex;flex-direction:column;gap:11px;transition:.18s}.quick-action:hover{border-color:#cbb7f1;transform:translateY(-2px);box-shadow:0 10px 24px rgba(74,35,126,.08)}.quick-action .metric-icon{width:35px;height:35px}.quick-action>span:last-child{display:block;min-width:0}.quick-action strong,.quick-action small{display:block;line-height:1.35}.quick-action strong{font-size:10px}.quick-action small{font-size:9px;color:var(--muted);margin-top:4px}
.teacher-profile-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.72fr);gap:24px;margin:0 0 18px;padding:25px 27px;border-radius:24px;background:radial-gradient(circle at 92% 0,rgba(255,216,69,.2),transparent 28%),linear-gradient(135deg,#331065,#6c27c9);color:#fff;box-shadow:0 18px 45px rgba(72,27,134,.16)}
.teacher-profile-copy>span{font-size:8px;letter-spacing:.17em;font-weight:900;color:#dac6fb}.teacher-profile-copy h2{margin:8px 0 5px;font-size:24px}.teacher-profile-copy p{margin:0 0 15px;color:#dfd1f1;font-size:10px}.teacher-profile-panel .direction-pills{gap:7px}.teacher-profile-panel .direction-pill{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.18);color:#fff}.teacher-no-directions{font-size:9px;color:#dac6fb}
.teacher-profile-actions{display:grid;grid-template-columns:1fr;gap:8px}.teacher-action{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.1);color:#fff;padding:10px 12px;text-align:left;transition:.16s}.teacher-action:hover{background:rgba(255,255,255,.18);transform:translateX(-2px)}.teacher-action>svg{width:18px;height:18px;flex:0 0 auto;color:var(--yellow)}.teacher-action span,.teacher-action strong,.teacher-action small{display:block}.teacher-action strong{font-size:9px}.teacher-action small{margin-top:3px;font-size:7px;color:#dacbf0}
.teacher-student-actions{display:flex;align-items:center;gap:6px}
.group-card{transition:.18s}.group-card:hover{transform:translateY(-3px);border-color:#cbb7f1;box-shadow:0 14px 32px rgba(74,35,126,.1)}
.student-created>p{max-width:470px}.student-id-card{min-height:300px;border-radius:24px;padding:25px;background:radial-gradient(circle at 88% 12%,rgba(255,204,35,.24),transparent 25%),linear-gradient(135deg,#2a0a59,#5d20bb 68%,#7a35dd);color:#fff;position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:18px;box-shadow:0 18px 45px rgba(52,16,104,.22);border:3px solid #ffca1a}.student-id-card:before{content:"";position:absolute;width:230px;height:230px;border:1px solid rgba(255,255,255,.12);border-radius:50%;left:-100px;bottom:-120px;box-shadow:0 0 0 35px rgba(255,255,255,.04)}.student-card-brand{grid-column:1/-1;display:flex;align-items:center;gap:10px;position:relative;z-index:2}.student-card-brand img{width:44px;height:44px;border-radius:13px;object-fit:cover;background:#fff}.student-card-brand div{display:flex;flex-direction:column}.student-card-brand span{font-size:8px;letter-spacing:.18em;color:#ffdf69;font-weight:900}.student-card-brand strong{font-size:14px}.student-card-copy{align-self:center;position:relative;z-index:2}.student-card-copy>span{display:block;font-size:8px;letter-spacing:.14em;color:#cdb7e7;font-weight:800}.student-card-copy h3{font-size:23px;line-height:1.05;margin:10px 0 8px}.student-card-copy>strong{display:block;font-size:21px;color:#ffca1a;letter-spacing:.06em}.student-card-copy small{display:block;color:#dfd1ef;font-size:9px;margin-top:8px}.student-card-qr{background:#fff;border-radius:17px;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;z-index:2}.student-card-qr canvas{width:138px!important;height:138px!important}.student-card-qr span{font-size:7px;color:#4b287a;font-weight:800;margin-top:3px;text-align:center}
.direction-checklist{display:grid;grid-template-columns:1fr;gap:7px;max-height:420px;overflow:auto;border:1px solid var(--line);background:#faf8fc;border-radius:14px;padding:10px}.direction-account-option{display:grid;grid-template-columns:minmax(140px,.72fr) minmax(0,1.5fr);gap:8px;align-items:stretch}.direction-account-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.direction-check{position:relative;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 10px;cursor:pointer;transition:.16s}.direction-check:hover{border-color:#cbb7f1}.direction-check input{width:15px;height:15px;margin:0;accent-color:var(--violet-700)}.direction-check span{font-size:9px;font-weight:700;line-height:1.25}.direction-check:has(input:checked){background:var(--violet-50);border-color:var(--violet-600);color:var(--violet-800)}.direction-amount{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:3px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:5px 7px}.direction-amount span{font-size:6.5px;color:var(--muted);font-weight:900;white-space:nowrap}.direction-amount input,.direction-amount select{width:100%;min-width:0;border:0!important;padding:5px!important;font-size:9px;background:#fff}.direction-amount input{text-align:right;font-weight:900}.direction-amount input:disabled,.direction-amount select:disabled{color:#aaa;background:#f4f1f7}.new-direction-account{display:grid;grid-template-columns:1fr 170px 180px;gap:10px;margin-top:10px}.direction-balance-list{display:flex;flex-direction:column;gap:9px}.balance-account-row{display:grid;grid-template-columns:minmax(130px,1fr) repeat(3,minmax(115px,.72fr));gap:10px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#faf8fc}.balance-account-row strong{display:block;font-size:10px}.balance-account-row small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.balance-account-row label{display:flex;flex-direction:column;align-items:stretch;gap:5px}.balance-account-row label span{font-size:7px;color:var(--muted);font-weight:900;white-space:nowrap}.balance-account-row input,.balance-account-row select{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px;font-size:9px;background:#fff}.balance-account-row input{font-weight:900;text-align:right}.balance-account-row input:focus,.balance-account-row select:focus{outline:none;border-color:var(--violet-600);box-shadow:0 0 0 3px var(--violet-50)}
.attendance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.attendance-toolbar>span{font-size:8px;color:var(--muted)}.attendance-checklist{display:flex;flex-direction:column;gap:8px}.attendance-check-row{display:grid;grid-template-columns:20px 38px minmax(0,1fr) 170px 34px;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#faf8fc;transition:.16s}.attendance-check-row:hover{border-color:#cbb7f1}.attendance-check-row:has(>input:checked){background:var(--green-soft);border-color:#8ed6bd}.attendance-check-row>input{width:17px;height:17px;accent-color:var(--green)}.attendance-check-row label{cursor:pointer}.attendance-student-copy strong{display:block;font-size:10px}.attendance-student-copy small,.attendance-charge small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.attendance-charge{text-align:right;font-size:10px;font-weight:900;color:var(--red)}.attendance-charge-title{display:block;font-size:7px;line-height:1;color:var(--muted);margin-bottom:4px}.attendance-charge-field{display:inline-flex;align-items:center;gap:5px;border:1px solid #d8cde8;border-radius:9px;background:#fff;padding:3px 7px;color:var(--ink)}.attendance-charge-field:focus-within{border-color:var(--violet-600);box-shadow:0 0 0 3px rgba(107,43,210,.1)}.attendance-charge-field input{width:86px;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;text-align:right;padding:1px 0}.attendance-charge-field span{color:var(--muted)}.attendance-checkmark{width:30px;height:30px;border-radius:9px;background:#fff;color:#aaa;display:grid;place-items:center}.attendance-checkmark svg{width:15px}.attendance-check-row:has(>input:checked) .attendance-checkmark{background:var(--green);color:#fff}
.lesson-type-label{display:inline-flex;align-items:center;width:max-content;margin-right:6px;padding:3px 6px;border-radius:999px;font-size:7px;font-weight:900;line-height:1.2}.lesson-type-label.type-group{background:#eee7fb;color:#5d20b5}.lesson-type-label.type-individual{background:#e3f6ee;color:#137a55}.lesson-type-label.type-makeup{background:#fff3c8;color:#9a6500}
.table-empty{padding:46px 20px;text-align:center;display:flex;flex-direction:column;gap:6px}.table-empty strong{font-size:13px;color:var(--ink)}.table-empty span{font-size:10px;color:var(--muted)}.student-back{margin-bottom:16px}.student-profile-hero{display:flex;align-items:center;gap:20px;border-radius:24px;padding:24px 26px;background:radial-gradient(circle at 90% 10%,rgba(255,213,55,.24),transparent 28%),linear-gradient(135deg,#321064,#6b27c8);color:#fff;box-shadow:0 18px 45px rgba(72,27,134,.18)}.student-profile-avatar{width:76px;height:76px;border-radius:23px;background:linear-gradient(135deg,#ffde55,#ffad28);color:var(--violet-950);display:grid;place-items:center;font-size:22px;font-weight:900;flex:0 0 auto;border:4px solid rgba(255,255,255,.16)}.student-profile-copy{flex:1}.student-profile-copy>span{font-size:9px;letter-spacing:.14em;color:#e0cefa;font-weight:900}.student-profile-copy h1{font-size:28px;margin:7px 0 5px;line-height:1.05}.student-profile-copy p{margin:0;color:#dfd2ee;font-size:10px}.student-profile-hero>.status{background:rgba(255,255,255,.92);flex:0 0 auto}.student-metrics{margin-top:18px}.student-detail-grid{margin-top:18px}.student-group-list{display:flex;flex-direction:column;gap:9px}.student-group-chip{display:flex;align-items:center;gap:11px;background:#faf8fc;border:1px solid var(--line);border-radius:15px;padding:11px}.student-group-chip .metric-icon{width:36px;height:36px}.student-group-chip>div{flex:1}.student-group-chip strong{font-size:10px;display:block}.student-group-chip small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.student-group-chip>b{font-size:11px;color:var(--violet-700);white-space:nowrap}.contact-detail{display:grid;grid-template-columns:92px 1fr;gap:13px;padding:7px 0}.contact-detail span{font-size:8px;color:var(--muted);font-weight:900;letter-spacing:.08em}.contact-detail strong{font-size:11px}.history-list{display:flex;flex-direction:column;gap:8px}.history-row{display:flex;align-items:center;gap:10px;padding:11px;background:#faf8fc;border-radius:14px}.history-row-link{width:100%;border:1px solid transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:.16s}.history-row-link:hover{background:#fff;border-color:#cbb7f1;box-shadow:0 8px 18px rgba(74,35,126,.07);transform:translateY(-1px)}.history-open-label{font-size:8px;font-weight:900;color:var(--violet-700);white-space:nowrap}.history-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto}.history-icon svg{width:16px}.history-icon.ok{background:var(--green-soft);color:var(--green)}.history-icon.payment{background:#fff3c8;color:#d68700}.history-row>div{flex:1}.history-row strong{display:block;font-size:9px}.history-row small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.history-row>b{font-size:10px;color:var(--violet-700)}.detail-empty{border:1px dashed #d8cbea;background:#faf8fc;color:var(--muted);padding:24px 18px;border-radius:14px;text-align:center;font-size:9px;line-height:1.5}.detail-loading{min-height:380px;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--violet-800)}
.student-detail-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;flex-wrap:wrap;margin:-52px 0 16px}.student-detail-actions .small-btn,.student-detail-actions .action-button{min-height:38px}.student-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.lesson-action{border-color:#bca4ee!important;background:#f4efff!important;color:var(--violet-800)!important}.lesson-action:hover{background:#eadeff!important}.danger-text{color:#bd2f4d!important;border-color:#f0c6d0!important}.danger-text:hover{background:#fff0f3!important}.detail-empty.compact{padding:11px 13px}.direction-panel{margin-bottom:18px}.direction-pills{display:flex;flex-wrap:wrap;gap:8px}.direction-pill{display:inline-flex;align-items:center;background:var(--violet-50);border:1px solid #dfcff5;color:var(--violet-800);font-size:9px;font-weight:800;padding:7px 10px;border-radius:999px}.empty-panel-wide{grid-column:1/-1}.staff-card-live{display:flex;flex-direction:column;gap:13px}.staff-details{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}.staff-details span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9px;line-height:1.4}.staff-details svg{width:14px;height:14px;color:var(--violet-600);flex:0 0 auto}.staff-card-live .student-detail-actions{margin:0;margin-top:auto}
.student-lessons-panel{margin:18px 0}.student-lessons-panel .panel-head{align-items:center}.student-lessons-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.student-lessons-columns section{min-width:0}.student-lessons-columns h4{margin:0 0 9px;font-size:11px;color:var(--ink)}.student-lessons-list{display:flex;flex-direction:column;gap:8px}.student-lesson-row{width:100%;display:grid;grid-template-columns:72px 62px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid color-mix(in srgb,var(--event-color) 22%,white);border-left:4px solid var(--event-color);border-radius:14px;background:color-mix(in srgb,var(--event-color) 6%,white);padding:10px 12px;color:var(--ink);text-align:left;cursor:pointer;transition:.16s}.student-lesson-row:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(50,21,93,.09)}.student-lesson-date small,.student-lesson-date strong,.student-lesson-time strong,.student-lesson-time small,.student-lesson-copy strong,.student-lesson-copy small{display:block}.student-lesson-date small{font-size:7px;text-transform:uppercase;color:var(--muted);font-weight:900}.student-lesson-date strong{font-size:10px;margin-top:2px}.student-lesson-time strong{font-size:10px;color:var(--event-color)}.student-lesson-time small,.student-lesson-copy small{font-size:7px;color:var(--muted);margin-top:3px}.student-lesson-copy{min-width:0}.student-lesson-copy strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-lesson-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-lesson-state{display:inline-flex;align-items:center;gap:5px;color:var(--event-color);font-size:7px;font-weight:900;white-space:nowrap}.student-lesson-state i{width:7px;height:7px;border-radius:50%;background:var(--event-color)}.regular-lesson-hint{padding:11px 13px;border:1px solid #dfcff5;border-radius:13px;background:linear-gradient(135deg,#f7f1ff,#fff9dc);color:#5c437b;font-size:9px;line-height:1.5}

/* Tables and schedule */
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px}.search-box{height:42px;flex:1;border:1px solid var(--line);background:#fff;border-radius:13px;padding:0 14px;color:var(--ink);outline:none}.filter-select{height:42px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:0 12px;color:var(--ink);font-size:11px}.action-button{height:42px;border:0;border-radius:13px;background:var(--violet-700);color:#fff;padding:0 15px;font-size:11px;font-weight:800;display:flex;align-items:center;gap:7px}.action-button svg{width:15px}
.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:9px;color:#9a92a4;letter-spacing:.06em;padding:11px 13px;background:#faf8fc}.data-table td{font-size:10px;padding:13px;border-top:1px solid #f0edf3}.student-cell{display:flex;align-items:center;gap:9px}.mini-avatar{width:31px;height:31px;border-radius:10px;background:linear-gradient(135deg,#f1e7ff,#d9c2ff);color:var(--violet-800);display:grid;place-items:center;font-size:9px;font-weight:900}.student-cell strong{display:block;font-size:10px}.student-cell span{font-size:8px;color:var(--muted)}.status{display:inline-flex;align-items:center;gap:5px;border-radius:9px;padding:5px 8px;font-size:8px;font-weight:900}.status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status.ok{color:var(--green);background:var(--green-soft)}.status.warn{color:#c78500;background:#fff7d7}.status.danger{color:var(--red);background:var(--red-soft)}
.week-header{display:grid;grid-template-columns:58px repeat(7,1fr);border-bottom:1px solid var(--line)}.week-header div{padding:12px 8px;text-align:center;font-size:9px;font-weight:900;color:var(--muted)}.week-header div.active{color:var(--violet-700);background:var(--violet-50)}.week-body{display:grid;grid-template-columns:58px repeat(7,1fr);min-height:540px}.time-column{border-right:1px solid var(--line);display:grid;grid-template-rows:repeat(9,60px)}.time-column span{font-size:8px;color:#9990a3;padding:6px;text-align:center}.day-column{position:relative;border-right:1px solid #f0edf3;background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#f0edf3 60px)}.day-column:last-child{border-right:0}.lesson{position:absolute;left:5px;right:5px;border-radius:10px;padding:8px;background:var(--soft,#eee7ff);border-left:3px solid var(--accent,var(--violet-600));overflow:hidden}.lesson strong{font-size:8px;display:block}.lesson span{font-size:7px;color:var(--muted);display:block;margin-top:3px}

.calendar-panel{padding:0;overflow:hidden}.calendar-toolbar{display:grid;grid-template-columns:auto minmax(210px,1fr) auto auto;align-items:center;gap:14px;padding:17px 19px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fcfaff)}.calendar-navigation{display:flex;align-items:center;gap:6px}.calendar-nav-button,.calendar-today-button,.calendar-view-switch button{border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:900;cursor:pointer}.calendar-nav-button{width:36px;height:36px;border-radius:11px;font-size:21px;line-height:1}.calendar-today-button{height:36px;border-radius:11px;padding:0 13px;font-size:9px}.calendar-period-title{font-size:17px;margin:0;text-align:center;text-transform:capitalize}.calendar-view-switch{display:flex;padding:3px;border:1px solid var(--line);border-radius:12px;background:#f7f3fb}.calendar-view-switch button{height:30px;border:0;border-radius:9px;background:transparent;padding:0 11px;font-size:8px;color:var(--muted)}.calendar-view-switch button.active{background:#fff;color:var(--violet-700);box-shadow:0 4px 12px rgba(54,18,105,.1)}.calendar-add-button{white-space:nowrap}.calendar-legend{display:flex;align-items:center;justify-content:center;gap:18px;padding:10px 16px;border-bottom:1px solid var(--line);background:#fff}.calendar-legend span{display:flex;align-items:center;gap:7px;font-size:8px;font-weight:900;color:var(--muted)}.calendar-legend span:before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}.calendar-legend .legend-completed{color:#198f68}.calendar-legend .legend-unmarked{color:#d44669}.calendar-legend .legend-not-held{color:#2777c9}.calendar-legend .legend-planned{color:#6b2bd2}.calendar-body{background:#fff}.calendar-scroll{overflow:auto}.calendar-week-view{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));min-width:1085px}.calendar-week-day{min-height:560px;border-right:1px solid var(--line);background:#fff}.calendar-week-day:last-child{border-right:0}.calendar-week-day.today{background:#fdfbff}.calendar-day-heading{width:100%;height:73px;border:0;border-bottom:1px solid var(--line);background:transparent;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.calendar-day-heading span{font-size:9px;text-transform:uppercase;color:var(--muted);font-weight:900}.calendar-day-heading strong{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:15px}.calendar-week-day.today .calendar-day-heading strong{background:var(--violet-700);color:#fff}.calendar-week-events{display:flex;flex-direction:column;gap:8px;padding:10px}.calendar-no-lessons{display:block;text-align:center;padding-top:24px;font-size:8px;color:#b7afbf}.calendar-event{position:relative;display:flex;border:1px solid color-mix(in srgb,var(--event-color) 24%,white);border-left:4px solid var(--event-color);border-radius:12px;background:color-mix(in srgb,var(--event-color) 7%,white);overflow:hidden}.calendar-event-main{min-width:0;flex:1;border:0;background:transparent;text-align:left;padding:10px;cursor:pointer;color:var(--ink)}.calendar-event-main strong,.calendar-event-main span,.calendar-event-main small{display:block}.calendar-event-main strong{font-size:9px;color:var(--event-color)}.calendar-event-main span{margin-top:4px;font-size:9px;font-weight:900;line-height:1.25}.calendar-event-main small{margin-top:5px;font-size:7px;color:var(--muted);line-height:1.35}.calendar-event-status{display:inline-flex;margin-top:7px;border-radius:999px;padding:4px 6px;background:var(--event-color);color:#fff;font-size:6px;font-style:normal;font-weight:900}.calendar-event-delete{width:25px;border:0;background:transparent;color:#c34860;font-size:17px;cursor:pointer}.calendar-event.compact{border:0;border-left:3px solid var(--event-color);border-radius:7px;background:color-mix(in srgb,var(--event-color) 9%,white)}.calendar-event.compact .calendar-event-main{padding:5px 6px}.calendar-event.compact .calendar-event-main strong{font-size:7px}.calendar-event.compact .calendar-event-main span{font-size:7px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day-view{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:520px}.calendar-day-date{padding:34px;text-align:center;border-right:1px solid var(--line);background:linear-gradient(155deg,var(--violet-50),#fff)}.calendar-day-date span,.calendar-day-date small{display:block;color:var(--muted);text-transform:capitalize}.calendar-day-date span{font-size:11px;font-weight:900}.calendar-day-date strong{display:block;font-size:62px;color:var(--violet-800);line-height:1;margin:16px 0}.calendar-day-date small{font-size:9px}.calendar-day-events{display:flex;flex-direction:column;gap:10px;padding:24px;max-width:760px}.calendar-day-events .calendar-event-main{padding:14px}.calendar-day-events .calendar-event-main strong{font-size:11px}.calendar-day-events .calendar-event-main span{font-size:12px}.calendar-day-events .calendar-event-main small{font-size:9px}.calendar-empty{margin:auto;text-align:center;color:var(--muted)}.calendar-empty strong,.calendar-empty span{display:block}.calendar-empty strong{font-size:13px;color:var(--ink)}.calendar-empty span{font-size:9px;margin-top:6px}.calendar-month-view{min-width:850px}.calendar-month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}.calendar-month-weekdays span{padding:10px;text-align:center;font-size:8px;font-weight:900;color:var(--muted);text-transform:uppercase}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-month-day{min-height:126px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;background:#fff}.calendar-month-day:nth-child(7n){border-right:0}.calendar-month-day.outside{background:#faf8fc;opacity:.55}.calendar-month-day.today{box-shadow:inset 0 0 0 2px var(--violet-600)}.calendar-month-date{width:28px;height:28px;border:0;border-radius:9px;background:transparent;font-size:9px;font-weight:900;cursor:pointer;color:var(--ink)}.calendar-month-day.today .calendar-month-date{background:var(--violet-700);color:#fff}.calendar-month-events{display:flex;flex-direction:column;gap:4px;margin-top:3px}.calendar-more{border:0;background:transparent;color:var(--violet-700);text-align:left;font-size:7px;font-weight:900;cursor:pointer;padding:3px 5px}.lesson-status-banner{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:9px 11px;border-radius:11px;background:color-mix(in srgb,var(--event-color) 10%,white);color:var(--event-color)}.lesson-status-banner>span{width:9px;height:9px;border-radius:50%;background:var(--event-color)}.lesson-status-banner strong{font-size:9px}.lesson-status-actions{align-items:center}.lesson-not-held-button{color:#2777c9;border-color:#b9d6f4}.group-lesson-row{border-left:4px solid var(--event-color)}.group-lesson-status{display:inline-flex;margin-left:7px;color:var(--event-color);font-size:7px;font-style:normal;font-weight:900}

/* Child and parent */
.hero-card{border-radius:24px;background:linear-gradient(135deg,#3b126d 0%,#6c28c9 64%,#8c45e9 100%);color:#fff;min-height:210px;padding:27px;position:relative;overflow:hidden;box-shadow:0 18px 45px rgba(72,27,134,.2)}
.hero-card:after{content:"";position:absolute;width:280px;height:280px;border:1px solid rgba(255,215,61,.28);border-radius:50%;right:-40px;top:-100px;box-shadow:0 0 0 38px rgba(255,255,255,.035),0 0 0 76px rgba(255,255,255,.025)}
.hero-card h1{font-size:30px;line-height:1.1;margin:0 0 8px;max-width:560px}.hero-card p{font-size:12px;color:#ddccee;margin:0;max-width:520px}.hero-stats{display:flex;gap:10px;margin-top:24px;position:relative;z-index:2}.hero-stat{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px 13px;backdrop-filter:blur(8px)}.hero-stat strong{display:block;font-size:17px;color:var(--yellow)}.hero-stat span{font-size:8px;color:#e5d7f4}.hero-mascot{position:absolute;right:24px;bottom:-33px;width:190px;height:190px;border-radius:50%;object-fit:cover;border:7px solid rgba(255,255,255,.12);z-index:1}
.progress-card{padding:18px;background:#fff;border-radius:20px;border:1px solid var(--line)}.progress-head{display:flex;justify-content:space-between;align-items:center}.progress-head span{font-size:10px;color:var(--muted)}.progress-head strong{font-size:13px}.progress-track{height:9px;background:#eee9f4;border-radius:99px;margin-top:12px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--violet-600),var(--yellow));width:68%}
.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.achievement{border:1px solid var(--line);border-radius:15px;padding:13px;text-align:center}.achievement-icon{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#fff1a9,#ffbf2e);color:#7c4a00;display:grid;place-items:center;margin:0 auto 9px;box-shadow:0 8px 20px rgba(255,193,39,.2)}.achievement-icon svg{width:24px}.achievement strong{display:block;font-size:9px}.achievement span{display:block;font-size:8px;color:var(--muted);margin-top:3px}.achievement.locked{opacity:.42;filter:grayscale(.5)}
.wallet-card{background:linear-gradient(135deg,#fff2a4,#ffcc35);border-radius:20px;padding:20px;position:relative;overflow:hidden}.wallet-card:after{content:"◈";position:absolute;right:18px;top:4px;font-size:90px;color:rgba(88,46,0,.09)}.wallet-card span{font-size:9px;font-weight:800;color:#805e00}.wallet-card strong{display:block;font-size:33px;color:#4b2900;margin-top:5px}.wallet-card small{font-size:9px;color:#805e00}
.receipt-list{display:flex;flex-direction:column;gap:9px}.receipt-item{display:flex;align-items:center;gap:11px;padding:11px;background:#faf8fc;border-radius:13px}.receipt-icon{width:35px;height:35px;border-radius:11px;background:var(--violet-100);color:var(--violet-700);display:grid;place-items:center}.receipt-icon svg{width:16px}.receipt-item div:nth-child(2){flex:1}.receipt-item strong{display:block;font-size:9px}.receipt-item span{font-size:8px;color:var(--muted)}.receipt-sum{font-size:10px!important;color:var(--ink)!important;font-weight:900}

/* Modals and kiosk */
.modal-backdrop{position:fixed;inset:0;background:rgba(22,10,42,.55);backdrop-filter:blur(5px);z-index:50;display:grid;place-items:center;padding:20px}.modal{background:#fff;border-radius:24px;width:min(560px,100%);max-height:90vh;overflow:auto;padding:28px;position:relative;box-shadow:0 30px 90px rgba(17,4,38,.35)}.modal-close{position:absolute;right:17px;top:17px;border:0;background:#f3eff7;border-radius:11px;width:35px;height:35px;display:grid;place-items:center}.modal-close svg{width:17px}.modal h2{font-size:22px;margin:0 0 7px}.modal>div>p{font-size:11px;color:var(--muted);margin:0 0 20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{font-size:9px;color:var(--muted);font-weight:800}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:11px;outline:none;background:#fff}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--violet-600);box-shadow:0 0 0 3px var(--violet-50)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.secondary-btn{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 15px;font-size:10px;font-weight:800}.modal-actions .primary-btn{padding:11px 18px;border-radius:12px;font-size:10px}.upload-zone{border:1.5px dashed #c9b7e9;background:var(--violet-50);border-radius:16px;padding:25px;text-align:center;color:var(--violet-700)}.upload-zone svg{width:28px;height:28px}.upload-zone strong{display:block;font-size:11px;margin-top:7px}.upload-zone span{display:block;font-size:9px;color:var(--muted);margin-top:4px}
.form-help{font-size:8px;color:var(--muted);margin-top:-2px}.staff-direction-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;padding:9px;border:1px solid var(--line);border-radius:14px;background:#faf8fc}.staff-direction-option{cursor:pointer}.staff-direction-option input{position:absolute;opacity:0;pointer-events:none}.staff-direction-option span{min-height:40px;display:flex;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-size:9px;font-weight:800;line-height:1.3;transition:.16s}.staff-direction-option:hover span{border-color:#cbb7f1}.staff-direction-option input:checked+span{border-color:var(--violet-600);background:var(--violet-50);color:var(--violet-800);box-shadow:inset 4px 0 0 var(--violet-600)}
.weekday-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.weekday-option{cursor:pointer}.weekday-option input{position:absolute;opacity:0;pointer-events:none}.weekday-option span{height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;display:grid;place-items:center;font-size:10px;font-weight:900;color:var(--muted);transition:.16s}.weekday-option:hover span{border-color:#cbb7f1;color:var(--violet-700)}.weekday-option input:checked+span{background:linear-gradient(135deg,var(--violet-700),#8b42e9);border-color:var(--violet-700);color:#fff;box-shadow:0 7px 16px rgba(91,31,186,.2)}
.group-day-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:9px}.group-day-time-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:13px;background:var(--violet-50)}.group-day-time-row span{min-width:24px;font-size:11px;font-weight:900;color:var(--violet-700)}.group-day-time-row input{min-width:0;background:#fff}
.student-picker-list{display:flex;flex-direction:column;gap:8px;max-height:330px;overflow:auto;margin-top:12px;padding-right:3px}.student-picker-option{display:grid;grid-template-columns:18px 38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:14px;background:#faf8fc;cursor:pointer;transition:.16s}.student-picker-option:hover{border-color:#cbb7f1;background:#fff}.student-picker-option:has(input:checked){border-color:var(--violet-600);background:var(--violet-50);box-shadow:0 0 0 3px rgba(107,43,210,.08)}.student-picker-option input{width:16px;height:16px;margin:0;accent-color:var(--violet-700)}.student-picker-copy{min-width:0}.student-picker-copy strong{display:block;font-size:10px}.student-picker-copy small{display:block;margin-top:3px;font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-picker-check{font-size:8px;font-weight:900;color:var(--violet-700)}.split-actions{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center}.split-actions .secondary-btn:first-child{display:flex;align-items:center;gap:7px}.split-actions .secondary-btn svg{width:14px;height:14px}
.group-calendar-panel{margin-top:18px}.group-lesson-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.group-lesson-row{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(110px,.7fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#faf8fc}.group-lesson-number{width:30px;height:30px;border-radius:9px;background:var(--violet-100);color:var(--violet-700);display:grid;place-items:center;font-size:9px;font-weight:900}.group-lesson-row strong{display:block;font-size:9px}.group-lesson-row small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.group-lesson-row>span:nth-child(3){font-size:8px;color:var(--muted)}
.kiosk-screen{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 50% 40%,#873be8 0,#4d179a 45%,#26094d 100%);color:#fff;display:flex;flex-direction:column;align-items:center;overflow:hidden}.kiosk-screen:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.12) 1.2px,transparent 1.2px);background-size:30px 30px}.kiosk-close{position:absolute;right:22px;top:22px;width:46px;height:46px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);color:#fff;border-radius:14px;display:grid;place-items:center;z-index:3}.kiosk-header{display:flex;align-items:center;gap:11px;margin-top:28px;z-index:2;font-size:12px;font-weight:800}.kiosk-header img{width:45px;height:45px;border-radius:13px;object-fit:cover;background:#fff}.kiosk-main{margin:auto;text-align:center;z-index:2;width:min(620px,90%)}.eyebrow.light{color:#e5d6f7}.kiosk-main h2{font-size:clamp(34px,5vw,56px);line-height:1.05;margin:8px 0 26px}.qr-scanner{width:170px;height:170px;border-radius:32px;border:2px solid rgba(255,211,48,.9);margin:0 auto 20px;display:grid;place-items:center;position:relative;background:rgba(255,255,255,.08);box-shadow:0 0 55px rgba(255,210,49,.15)}.qr-scanner:before,.qr-scanner:after,.qr-scanner span:before,.qr-scanner span:after{content:"";position:absolute;width:34px;height:34px;border-color:var(--yellow);border-style:solid}.qr-scanner:before{left:-3px;top:-3px;border-width:5px 0 0 5px;border-radius:10px 0 0 0}.qr-scanner:after{right:-3px;top:-3px;border-width:5px 5px 0 0;border-radius:0 10px 0 0}.qr-scanner span:before{left:-3px;bottom:-3px;border-width:0 0 5px 5px;border-radius:0 0 0 10px}.qr-scanner span:after{right:-3px;bottom:-3px;border-width:0 5px 5px 0;border-radius:0 0 10px 0}.qr-scanner svg{width:80px;height:80px;color:#fff}.kiosk-main>p{font-size:11px;color:#cdb9e9}.kiosk-form{display:flex;gap:8px;width:min(430px,100%);margin:13px auto 0}.kiosk-form input{height:49px;flex:1;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.12);color:#fff;border-radius:14px;padding:0 15px;outline:none}.kiosk-form input::placeholder{color:#c7b2e2}.kiosk-form button{border:0;border-radius:14px;background:var(--yellow);color:var(--violet-950);font-size:10px;font-weight:900;padding:0 17px}.kiosk-success{animation:pop .28s ease-out}.success-avatar{width:130px;height:130px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#ffdc52,#ff9f24);margin:0 auto 22px;color:var(--violet-950);font-size:38px;font-weight:900;border:7px solid rgba(255,255,255,.16)}.kiosk-success h2{margin-bottom:10px}.kiosk-reward{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);padding:12px 18px;border-radius:15px;margin-top:14px;font-size:12px;font-weight:800}.kiosk-reward strong{color:var(--yellow)}
.kiosk-camera-btn{min-height:48px;border:0;border-radius:15px;background:var(--yellow);color:var(--violet-950);padding:0 22px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:11px;font-weight:900;box-shadow:0 12px 30px rgba(255,201,25,.22)}.kiosk-camera-btn svg{width:19px;height:19px}.kiosk-camera-btn:disabled{cursor:default;opacity:.88}.kiosk-camera-help{max-width:420px;margin:10px auto 0!important;line-height:1.55}.camera-dot{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.18)}.camera-dot.active{background:#28d17c}.qr-reader{width:min(360px,100%);min-height:240px;margin:0 auto 16px;border-radius:24px;overflow:hidden;background:#130426;border:2px solid rgba(255,211,48,.8);box-shadow:0 0 48px rgba(255,210,49,.18)}.qr-reader video{width:100%!important;border-radius:20px}.qr-reader img{display:none}.qr-reader>div:first-child{border:0!important}.kiosk-main.camera-active h2{font-size:clamp(27px,4vw,38px);margin-bottom:14px}.kiosk-main.camera-active .eyebrow,.kiosk-main.camera-active .kiosk-camera-help{display:none}.kiosk-main.camera-active .kiosk-divider{margin-top:12px}.kiosk-divider{display:flex;align-items:center;gap:12px;width:min(430px,100%);margin:18px auto 0;color:#cdb9e9;font-size:10px}.kiosk-divider:before,.kiosk-divider:after{content:"";height:1px;flex:1;background:rgba(255,255,255,.16)}.kiosk-student-group{color:#dac8ef!important;font-size:13px!important;line-height:1.5;max-width:520px;margin:0 auto!important}.kiosk-unknown p{color:#dac8ef;font-size:13px;line-height:1.6;max-width:500px;margin:0 auto 22px}.kiosk-unknown .kiosk-camera-btn{margin-top:8px}
.payment-upload-zone{padding:18px}.payment-upload-zone input{display:block;width:100%;margin-top:12px;border:1px solid #d6c8eb;background:#fff}.payment-document-link{display:inline-flex;align-items:center;gap:5px;margin-top:7px;color:var(--violet-700);font-size:8px;font-weight:900;text-decoration:none}.payment-document-link svg{width:13px;height:13px}
.parent-online-payment{margin-bottom:18px;background:linear-gradient(135deg,#fff 0,#faf6ff 100%);border-color:#d9caef}.online-payment-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.online-payment-heading .metric-icon{flex:0 0 auto}.online-payment-heading h3{margin:0;font-size:16px}.online-payment-heading p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.5}.online-payment-fields{display:grid;grid-template-columns:minmax(170px,1.25fr) minmax(140px,.75fr) auto;gap:10px;align-items:end}.online-payment-fields label{display:flex;flex-direction:column;gap:6px}.online-payment-fields label>span{font-size:8px;font-weight:900;color:var(--muted);letter-spacing:.07em}.online-payment-fields select,.online-payment-fields input{width:100%;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px;color:var(--ink);font:inherit;font-size:10px;outline:none}.online-payment-fields select:focus,.online-payment-fields input:focus{border-color:var(--violet-600);box-shadow:0 0 0 3px rgba(107,43,210,.09)}.online-payment-fields .action-button{height:44px;white-space:nowrap}.online-payment-note{display:block;margin-top:11px;color:var(--muted);font-size:8px;line-height:1.5}
.history-row>.payment-row-actions{flex:0 0 auto;display:flex;align-items:flex-end;flex-direction:column;gap:7px}.payment-row-actions>b{font-size:10px;white-space:nowrap}.payment-action-buttons{display:flex;align-items:center;gap:6px}.payment-edit-button,.payment-delete-button{padding:6px 9px;font-size:8px}.payment-edit-button svg{width:12px;height:12px}.payment-delete-button{border-color:#f2b8bd;background:#fff7f7;color:#c63b46}
@keyframes pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.toast{position:fixed;left:50%;bottom:26px;z-index:120;transform:translate(-50%,120px);opacity:0;background:#21153a;color:#fff;border-radius:14px;padding:12px 18px;display:flex;align-items:center;gap:10px;box-shadow:0 18px 40px rgba(20,5,45,.28);transition:.3s;font-size:11px;font-weight:800}.toast.show{transform:translate(-50%,0);opacity:1}.toast svg{color:#73e0ad;width:17px}
.empty-state{text-align:center;padding:50px 20px}.empty-state .metric-icon{margin:0 auto 13px;width:52px;height:52px}.empty-state h3{margin:0;font-size:15px}.empty-state p{font-size:10px;color:var(--muted)}

@media(max-width:1100px){
  .metrics-grid{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}.quick-actions{grid-template-columns:repeat(2,1fr)}
  .calendar-toolbar{grid-template-columns:auto 1fr auto}.calendar-add-button{grid-column:1/-1;justify-self:end}
  .login-screen{grid-template-columns:1fr}.login-art{display:none}.login-card{padding-top:32px}.login-brand{margin-bottom:38px}
}
@media(max-width:820px){
  .sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.page-shell{margin-left:0;width:100%}.menu-button{display:grid}.topbar{padding:0 16px}.main-content{padding:20px 16px 36px}.profile-copy{display:none}.profile-button{padding-right:6px}.profile-button>svg{display:none}.grid-2,.grid-2.equal,.finance-dashboard-grid{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr}.week-header,.week-body{min-width:780px}.panel.schedule-panel{overflow:auto}.hero-mascot{opacity:.35}.hero-card h1,.hero-card p{max-width:75%}
}
@media(max-width:560px){
  .login-card{width:100%;padding:24px 20px}.login-brand{margin-bottom:32px}.login-copy h1{font-size:38px}.login-copy p{font-size:14px}.role-picker{grid-template-columns:repeat(3,1fr)}.metrics-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{padding:14px}.metric-card strong.metric-number{font-size:21px}.lesson-revenue-card{grid-column:1/-1}.lesson-revenue-periods{overflow-x:auto}.lesson-revenue-periods button{min-width:58px}.lesson-revenue-custom{display:grid;grid-template-columns:1fr 1fr}.lesson-revenue-custom input{width:100%}.lesson-revenue-custom button{grid-column:1/-1}.welcome-row{align-items:flex-start;flex-direction:column}.date-chip{display:none}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.hero-card{padding:22px}.hero-card h1{font-size:25px;max-width:100%}.hero-card p{max-width:100%}.hero-mascot{display:none}.hero-stats{flex-wrap:wrap}.achievement-grid{grid-template-columns:repeat(2,1fr)}.toolbar{align-items:stretch;flex-wrap:wrap}.search-box{flex-basis:100%}.data-table{min-width:620px}.panel.table-panel{overflow:auto}.quick-actions{grid-template-columns:1fr 1fr}.calendar-toolbar{grid-template-columns:1fr auto;padding:13px;gap:10px}.calendar-navigation{grid-column:1}.calendar-view-switch{grid-column:2;grid-row:1}.calendar-view-switch button{padding:0 7px}.calendar-period-title{grid-column:1/-1;grid-row:2;text-align:left;font-size:15px}.calendar-add-button{grid-column:1/-1;grid-row:3;width:100%;justify-content:center}.calendar-day-view{grid-template-columns:1fr;min-height:430px}.calendar-day-date{padding:18px;border-right:0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:10px}.calendar-day-date strong{font-size:34px;margin:0}.calendar-day-events{padding:14px}.calendar-month-view{min-width:760px}
}
@media(max-width:760px){.direction-account-option,.new-direction-account,.balance-account-row{grid-template-columns:1fr}.direction-account-fields{grid-template-columns:1fr}.attendance-check-row{grid-template-columns:20px 38px minmax(0,1fr) 28px}.attendance-charge{grid-column:3/5;text-align:left;padding-left:0}.attendance-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:900px){.group-lesson-list{grid-template-columns:1fr}}
@media(max-width:560px){.student-id-card{grid-template-columns:1fr;padding:20px}.student-card-copy{text-align:center}.student-card-qr{width:160px;justify-self:center}.student-card-brand{justify-content:center}.balance-account-row label{justify-content:space-between}.weekday-picker{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.group-lesson-row{grid-template-columns:30px minmax(0,1fr) auto}.group-lesson-row>span:nth-child(3){display:none}.group-lesson-row .small-btn{grid-column:2/4;justify-content:center}}
@media(max-width:560px){.student-picker-option{grid-template-columns:18px 36px minmax(0,1fr)}.student-picker-check{display:none}.split-actions{grid-template-columns:1fr 1fr}.split-actions span{display:none}.split-actions .secondary-btn:first-child,.split-actions .primary-btn{grid-column:1/-1;justify-content:center}.split-actions .secondary-btn:first-child{grid-row:1}.split-actions .primary-btn{grid-row:2}}
@media(max-width:560px){.staff-direction-picker{grid-template-columns:1fr}}
@media(max-width:560px){.student-profile-hero{align-items:flex-start;flex-wrap:wrap;padding:20px}.student-profile-avatar{width:62px;height:62px;border-radius:19px}.student-profile-copy{min-width:calc(100% - 90px)}.student-profile-copy h1{font-size:22px}.student-profile-hero>.status{margin-left:82px}.student-metrics{grid-template-columns:1fr 1fr}.contact-detail{grid-template-columns:1fr}.contact-detail strong{margin-bottom:5px}}
@media(max-width:560px){.history-open-label{display:none}.history-row-link:after{content:'›';font-size:18px;color:var(--violet-700);font-weight:900}.history-row>.payment-row-actions{align-items:flex-end}.payment-action-buttons{flex-direction:column;align-items:stretch}.payment-edit-button{padding:7px}.payment-edit-button svg{margin:0}.payment-edit-button{font-size:0}.payment-delete-button{padding:7px 9px}}
@media(max-width:720px){.online-payment-fields{grid-template-columns:1fr}.online-payment-fields .action-button{width:100%;justify-content:center}}
@media(max-width:640px){.finance-direction-list{grid-template-columns:1fr}.finance-svg-wrap{height:180px;padding-left:24px}.finance-month-labels{padding-left:52px}.finance-chart-summary strong{font-size:16px}.finance-chart-card{min-height:auto}.finance-direction-copy{align-items:flex-start;flex-direction:column;gap:3px}.finance-direction-copy span{white-space:normal}}
@media(max-width:560px){.student-detail-actions{margin:0 0 14px;justify-content:stretch}.student-detail-actions .small-btn,.student-detail-actions .action-button{flex:1;justify-content:center}.direction-pills{gap:6px}}
@media(max-width:1120px){.student-lessons-columns{grid-template-columns:1fr}}
@media(max-width:640px){.student-lesson-row{grid-template-columns:62px 54px minmax(0,1fr)}.student-lesson-state{grid-column:1/-1;justify-self:start}.student-lessons-panel .panel-head{align-items:flex-start;flex-direction:column}.student-lessons-panel .panel-head .small-btn{width:100%;justify-content:center}}
@media(max-width:640px){.upcoming-lesson-card{grid-template-columns:46px minmax(0,1fr) auto;gap:9px;padding:9px}.upcoming-date{width:46px;height:48px;padding:6px}.upcoming-time{grid-column:2}.upcoming-copy{grid-column:2/4}.upcoming-state{grid-column:3;grid-row:1}.upcoming-copy small{white-space:normal;line-height:1.4}}
.student-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.points-count{color:var(--violet-700);white-space:nowrap}.points-action{background:#fff7d7!important;border-color:#f2cf58!important;color:#745000!important}.points-ledger-panel{margin-top:18px}.points-help,.points-modal-hint{margin-top:13px;padding:11px 13px;border-radius:13px;background:#fff8d8;color:#6d5520;font-size:9px;line-height:1.5;border:1px solid #f2dd8c}.points-help strong,.points-modal-hint strong{color:#5a3d00}.history-icon.points-plus{background:#fff3c8;color:#b77500}.history-icon.points-minus{background:var(--red-soft);color:var(--red)}.points-positive{color:#17966a!important}.points-negative{color:var(--red)!important}.points-guide{display:flex;flex-direction:column;gap:10px}.points-guide>div{display:flex;align-items:center;gap:11px;padding:11px;border:1px solid var(--line);border-radius:14px;background:#faf8fc}.points-guide>div>span{width:30px;height:30px;border-radius:10px;background:var(--violet-700);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:900;flex:0 0 auto}.points-guide p{margin:0}.points-guide strong,.points-guide small{display:block}.points-guide strong{font-size:10px}.points-guide small{font-size:8px;color:var(--muted);margin-top:3px}.points-student-list{display:flex;flex-direction:column;gap:8px;max-height:470px;overflow:auto}.points-student-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#faf8fc}.points-student-row strong,.points-student-row small{display:block}.points-student-row strong{font-size:9px}.points-student-row small{font-size:7px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.points-student-row>b{font-size:10px;color:var(--violet-700);white-space:nowrap}.danger-button{background:var(--red)!important;color:#fff!important}.danger-button:hover{background:#b62e4a!important}@media(max-width:1120px){.student-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.points-student-row{grid-template-columns:32px minmax(0,1fr) auto}.points-student-row .small-btn{grid-column:2/4;justify-content:center}}
@media(max-width:1120px){.teacher-profile-panel{grid-template-columns:1fr}.teacher-profile-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.teacher-profile-panel{padding:20px}.teacher-profile-actions{grid-template-columns:1fr}.teacher-student-row{grid-template-columns:32px minmax(0,1fr) auto}.teacher-student-actions{grid-column:2/4;flex-wrap:wrap}.teacher-student-actions .small-btn{grid-column:auto}}
.lesson-status-actions{flex-wrap:wrap}.lesson-delete-button{color:#bd314d;border-color:#efb1bd;background:#fff5f7}.lesson-delete-button:hover{background:#ffe6eb}
.payment-qr-modal{text-align:center}.payment-qr-modal>p{max-width:560px;margin:10px auto 18px;line-height:1.55}.payment-qr-modal>img{display:block;width:min(360px,100%);max-height:64vh;object-fit:contain;margin:0 auto;border-radius:22px;box-shadow:0 16px 40px rgba(45,17,84,.15)}.payment-qr-modal .points-modal-hint{text-align:left}.payment-qr-modal .modal-actions{justify-content:center}
