/* System font stack: no dependency on Google Fonts (reachable from Russia without VPN). */
:root{--ink:#25283d;--muted:#8b91a7;--violet:#8278dc;--violet-dark:#6a60ca;--violet-pale:#f1efff;--light:#f8f9fd;--white:#fff;--border:#edf0f6;--shadow:0 12px 40px rgba(65,73,118,.045)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--light);color:var(--ink);font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-weight:800;font-size:clamp(27px,3vw,37px);letter-spacing:-1.5px;line-height:1.2;margin-bottom:11px}h2{font-size:19px;font-weight:800;letter-spacing:-.55px;margin-bottom:4px}h3{font-size:15px;margin-bottom:8px}p{line-height:1.7}a,button,input,select,textarea{transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #bbb3fb;outline-offset:2px} .muted{color:var(--muted)}.smaller{font-size:12px}.margin-top{margin-top:22px}.margin-bottom{margin-bottom:16px}
.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;background:var(--white);border-right:1px solid var(--border);padding:30px 18px 24px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand,.auth-brand{display:flex;align-items:center;font-weight:800;letter-spacing:-.8px;font-size:22px;line-height:1.1}.brand{margin:5px 11px 63px}.brand-icon{width:35px;height:35px;flex:none;background:#efecff;border-radius:11px;display:inline-grid;place-items:center;color:#8d83ec;font-size:26px;margin-right:10px}.brand-accent{color:#9c8ef0}.brand small{display:block;letter-spacing:0;color:#a7aabc;font-size:9px;font-weight:600;margin-top:8px}.nav-title{color:#b5b6c7;letter-spacing:1.35px;font-size:9px;font-weight:800;padding:0 16px 13px}.nav{display:grid;gap:6px}.nav-link{display:flex;align-items:center;width:100%;border:0;border-radius:12px;padding:13px 14px;font-weight:700;font-size:12px;color:#777e97;background:transparent;text-align:left}.nav-link:hover,.nav-link.selected{background:#f2efff;color:#7469d4}.nav-symbol{width:24px;display:inline-block;font-size:19px;font-weight:600;line-height:1}.sidebar-bottom{margin-top:auto}.soft-note{border-radius:15px;background:linear-gradient(135deg,#f4f1ff,#fcf5ff);padding:17px 15px;color:#8274d4;font-size:12px;font-weight:800;margin:0 4px 15px}.soft-note span{font-size:18px;margin-right:5px}.soft-note small{display:block;font-size:10px;line-height:1.5;font-weight:500;margin-top:7px;color:#a19ab6}.signout{color:#979cb0}.main-column{min-width:0;flex:1}.topbar{height:88px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 5.3%;border-bottom:1px solid var(--border)}.topbar-left{display:flex;align-items:center;color:#a0a5b8;font-size:12px;font-weight:600}.status-dot{height:7px;width:7px;display:inline-block;border-radius:50%;background:#98d9bc;margin-right:9px}.profile{display:flex;align-items:center;gap:11px}.avatar{width:37px;height:37px;flex-shrink:0;display:inline-grid;place-items:center;border-radius:13px;background:#ece8fe;color:#8171d4;font-size:17px;font-weight:800}.avatar.compact{width:34px;height:34px;border-radius:11px;font-size:14px}.avatar.giant{width:77px;height:77px;border-radius:24px;font-size:30px}.profile-label{display:grid;font-size:12px;line-height:1.45}.profile-label b{font-weight:800}.profile-label small{color:var(--muted);font-size:10px}.content{max-width:1440px;margin:0 auto;padding:36px 5.3% 80px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:29px}.page-heading p{margin-bottom:0}.eyebrow{font-size:10px;font-weight:800;color:#a69be0;letter-spacing:1.3px;display:block;margin-bottom:12px}.wave{color:#ffc579}.btn{display:inline-flex;gap:10px;align-items:center;justify-content:center;padding:12px 21px;border-radius:12px;border:1px solid transparent;font-size:12px;font-weight:800;white-space:nowrap;min-height:43px}.btn:hover{transform:translateY(-1px)}.btn.primary{color:white;background:#8679dc;box-shadow:0 8px 17px rgba(131,117,218,.2)}.btn.primary:hover{background:#7366cf}.btn.secondary{background:var(--violet-pale);color:#7669c9}.btn.secondary:hover{background:#e8e3ff}.btn.ghost{background:#fff;border-color:#e9e9f4;color:#7b7d91}.btn.small{padding:9px 15px;min-height:36px}.btn.full{width:100%}.text-link{color:#8074d8;font-size:12px;font-weight:800}.text-link:hover{text-decoration:underline}.hero-banner{min-height:208px;background:linear-gradient(110deg,#e9e6ff 0%,#efedff 52%,#f2e9ff 100%);display:flex;align-items:center;justify-content:space-between;padding:33px 39px;border-radius:21px;overflow:hidden;position:relative;margin-bottom:25px}.hero-banner>div:first-child{max-width:490px;position:relative;z-index:1}.hero-caption{font-size:9px;letter-spacing:1.4px;font-weight:800;color:#9284d6}.hero-banner h2{font-size:25px;line-height:1.3;letter-spacing:-.7px;color:#514e83;margin:9px 0}.hero-banner p{font-size:11px;color:#9894b9;margin-bottom:0}.hero-art{width:190px;height:132px;flex-shrink:0;position:relative;margin:0 30px}.hero-card-a,.hero-card-b{position:absolute;display:grid;place-items:center;box-shadow:0 14px 26px #7d6abb24}.hero-card-a{width:118px;height:111px;border-radius:20px;background:#fff;transform:rotate(-11deg);top:8px;left:17px;font-size:42px;color:#8d7de6;font-weight:800}.hero-card-a span{font-size:22px;color:#efb467}.hero-card-b{width:75px;height:85px;border-radius:18px;background:#cfcbff;transform:rotate(14deg);top:26px;right:6px;font-size:44px;color:white}.hero-spark{position:absolute;top:-4px;right:20px;font-size:28px;color:#f2b8c7}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:43px}.stat-card{display:flex;align-items:center;gap:16px;min-height:115px;padding:23px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.stat-ico{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;font-size:25px}.lavender{background:#f0edff;color:#8f82df}.mint{background:#e8f8f1;color:#6ec6a2}.peach{background:#fff0e5;color:#e9ae81}.stat-number{display:block;font-size:26px;font-weight:800;line-height:1.1}.stat-label{display:block;margin-top:4px;font-size:10px;color:var(--muted)}.section{margin-top:35px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-heading p{font-size:11px;margin:4px 0 0}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.course-card{display:block;background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px;min-height:215px;box-shadow:var(--shadow)}.course-card:hover{transform:translateY(-3px);border-color:#d9d1fa;box-shadow:0 15px 35px #6464b011}.course-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px}.subject-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;font-size:24px}.subject-icon.purple{background:#efebff}.subject-icon.green{background:#e9f8ef}.subject-icon.orange{background:#fff0e5}.pill{border-radius:30px;padding:6px 9px;color:#9296aa;background:#f6f7fb;font-size:10px;font-weight:700}.course-card h3{font-weight:800;font-size:15px;margin-bottom:6px}.course-card p{color:#a1a4b4;font-size:11px;min-height:35px;margin-bottom:19px}.course-meta{display:flex;align-items:center;gap:12px;font-size:10px;color:#9b9fb1}.course-arrow{margin-left:auto;font-size:18px;color:#8e80dc}.empty-state{border:1px dashed #dddaf7;background:white;text-align:center;border-radius:20px;padding:45px 20px}.empty-visual{font-size:48px;color:#c3c0ee}.empty-visual span{font-size:28px;color:#f0c57d}.empty-state h3{font-size:18px}.empty-state p{color:var(--muted);font-size:12px}.panel{background:#fff;border:1px solid var(--border);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}.panel-pad{padding:25px}.pad-lg{padding:20px}.pad-xl{padding:31px}.panel h2{font-size:18px}.list-row{display:flex;align-items:center;gap:15px;padding:16px 20px;border-bottom:1px solid #f2f3f8;min-height:79px}.list-row:last-child{border-bottom:none}.list-row:hover{background:#fbfaff}.list-icon{display:grid;place-items:center;width:43px;height:43px;flex:none;border-radius:12px;background:#f0edff;color:#8075d8;font-size:20px}.list-main{min-width:0;display:block;flex:1}.list-main b,.member-row b{display:block;font-size:12px;font-weight:800;line-height:1.5}.list-main small,.member-row small{display:block;margin-top:5px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.right-arrow{color:#a2a4be;font-size:18px}.tag{display:inline-flex;align-items:center;border-radius:20px;font-size:10px;font-weight:800;padding:6px 10px;white-space:nowrap}.tag.done{color:#569f7f;background:#ebf8f0}.tag.pending{color:#c39b51;background:#fff5df}.empty-inline{text-align:center;font-size:30px}.empty-inline h3{font-size:16px;margin-top:4px}.back-link{display:inline-block;color:#8e8fa9;font-size:12px;font-weight:700;margin:0 0 25px}.back-link:hover{color:#7469d4}.class-banner{border-radius:20px;background:linear-gradient(105deg,#eae8fe,#f3edfc);padding:36px 37px;display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.class-banner h1{margin-bottom:9px}.class-banner p{color:#9893b4;font-size:12px;max-width:650px;margin-bottom:0}.class-banner-ico{font-size:60px;margin:0 35px}.split-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,1fr);gap:23px;align-items:start}.member-row{display:flex;align-items:center;gap:12px;padding:9px 0}.member-row>span:nth-child(2){min-width:0;flex:1}.member-arrow{margin-left:auto;color:var(--violet);font-size:18px}.divider{height:1px;background:#eff0f6;margin:20px 0}.small-heading{font-size:12px}.hint{background:#f3f0ff;border:1px solid #ebe7ff;border-radius:14px;padding:18px 20px;margin-top:18px;color:#7468c6;font-size:12px}.hint b{font-weight:800}.hint p{color:#a19ac7;font-size:11px;line-height:1.6;margin:7px 0 0}.form-panel{max-width:720px}.stack,.stack-lg{display:grid;gap:12px}.stack-lg{gap:21px}label{display:block;font-weight:800;color:#5e627b;font-size:11px;margin-bottom:8px}.required{color:#d6939b}input:not([type=hidden]),select,textarea{display:block;width:100%;border:1px solid #e5e8f2;background:#fff;border-radius:12px;padding:13px 14px;font-size:12px;color:#3b4056;outline:0;min-height:45px}input:focus,select:focus,textarea:focus{border-color:#ada4f4;box-shadow:0 0 0 4px #f3efff}input::placeholder,textarea::placeholder{color:#b3b7c9}textarea{resize:vertical;min-height:95px;line-height:1.7}.form-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:12px}.alert{color:#ae5666;background:#fff0f2;border-radius:12px;padding:12px 15px;font-size:12px;margin-bottom:16px}.soft-alert{background:#f8f5ff;color:#8072be}.success-icon{background:#e9f7ef;color:#57a97f;border-radius:50%;display:grid;place-items:center;font-size:24px;width:57px;height:57px;margin-bottom:19px}.credentials{border:1px solid #ececf5;border-radius:14px;margin:22px 0;overflow:hidden}.credentials>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #f1f1f7;padding:14px 18px;font-size:11px}.credentials>div:last-child{border:0}.credentials span{color:var(--muted)}.credentials strong{overflow-wrap:anywhere}.secret-text{font-family:ui-monospace,Consolas,monospace}.table-head,.student-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 35px;align-items:center;padding:0 23px}.table-head{background:#fafaff;color:#afb0c1;font-size:9px;letter-spacing:1px;font-weight:800;height:49px}.student-row{min-height:77px;border-top:1px solid #f2f3f8;font-size:12px}.student-row:hover{background:#fbfaff}.student-row>span:nth-child(2){color:#898ca4}.profile-page-heading{display:flex;gap:20px;align-items:center;margin-bottom:39px}.profile-page-heading h1{margin-bottom:5px}.profile-page-heading p{margin-bottom:0}.assignment-description,.submitted-answer{white-space:pre-wrap;overflow-wrap:anywhere;color:#656980;line-height:1.9;font-size:13px}.submitted-answer{border-radius:12px;background:#fafaff;padding:16px;margin:13px 0 20px}.feedback-note{margin-top:20px;padding:17px;background:#eff9f4;border-radius:12px;color:#44896b;font-size:12px}.feedback-note p{margin-bottom:0;margin-top:7px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:35px 18px;position:relative;overflow:hidden;background:linear-gradient(125deg,#f8f8ff,#f3f1ff 50%,#f9f7fc)}.auth-decor{position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none}.decor-one{width:380px;height:380px;top:-220px;left:-80px;background:#e7e4ff}.decor-two{width:440px;height:440px;bottom:-280px;right:-120px;background:#f0eaff}.auth-box{position:relative;z-index:1;background:#fff;border:1px solid #eeedf8;border-radius:24px;width:min(100%,440px);padding:32px 42px;box-shadow:0 20px 70px #6659b414}.auth-brand{justify-content:center;margin-bottom:18px}.auth-illustration{height:112px;width:145px;position:relative;margin:auto auto 11px}.books-icon{position:absolute;top:15px;left:28px;width:84px;height:82px;border-radius:25px;background:#ece9ff;color:#8273d8;font-size:60px;display:grid;place-items:center;transform:rotate(-8deg)}.mini-star{position:absolute;font-size:30px;color:#f9c77e;right:0;top:0}.mini-circle{height:13px;width:13px;border-radius:50%;background:#f0b9d6;position:absolute;bottom:13px;left:5px}.auth-box h1{text-align:center;font-size:26px;letter-spacing:-.85px;margin-bottom:8px}.auth-subtitle{text-align:center;font-size:11px;margin:0 0 25px}.auth-box form label{font-size:11px}.auth-footer{text-align:center;color:#c3c2d0;font-size:10px;margin:25px 0 0}
@media(max-width:1100px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{margin-right:0}.sidebar{width:214px}.stats-grid{gap:12px}.stat-card{padding:17px}.content{padding-left:4%;padding-right:4%}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;display:block;padding:11px 15px;border-right:0;border-bottom:1px solid var(--border)}.sidebar .brand{display:inline-flex;margin:2px 3px 13px;font-size:18px}.sidebar .brand small,.nav-title,.sidebar-bottom,.topbar-left{display:none}.sidebar .nav{display:flex;gap:5px}.nav-link{padding:10px 11px;font-size:11px}.nav-symbol{width:21px;font-size:16px}.topbar{height:57px;padding:0 18px;justify-content:flex-end}.profile-label small{display:none}.content{padding:24px 18px 55px}.page-heading{align-items:flex-start}.page-heading h1{font-size:27px}.desktop-action{font-size:0;padding:10px}.desktop-action span{font-size:19px}.hero-banner{padding:23px;min-height:175px}.hero-banner h2{font-size:20px}.hero-art{width:100px;transform:scale(.73);transform-origin:center right;margin-left:-5px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:25px}.stat-card{display:block;padding:14px 11px;min-height:123px}.stat-ico{width:37px;height:37px;font-size:20px;margin-bottom:10px}.stat-number{font-size:21px}.stat-label{font-size:9px}.split-grid{grid-template-columns:1fr}.course-grid{grid-template-columns:1fr 1fr;gap:11px}.course-card{padding:16px}.class-banner{padding:25px}.class-banner-ico{margin-right:0;font-size:37px}.auth-box{padding:28px 23px}.pad-xl{padding:23px}}
@media(max-width:530px){.course-grid{grid-template-columns:1fr}.course-card{min-height:0}.hero-art{display:none}.hero-banner h2{font-size:22px}.stats-grid{gap:8px}.stat-card{min-height:120px}.stat-ico{width:33px;height:33px}.section-heading{align-items:flex-start}.page-heading .btn{font-size:11px}.page-heading .btn.desktop-action{font-size:0}.table-head,.student-row{grid-template-columns:minmax(0,1fr) 50px 20px;padding:0 14px}.member-row b{font-size:11px}.class-banner-ico{display:none}.credentials>div{display:block}.credentials strong{display:block;margin-top:4px}}

/* Student portal — lightweight, no JS framework */
.student-overview-grid,.subject-grid,.tariff-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0 28px}
.overview-panel,.subject-tile,.weekly-preview{display:block;border-radius:22px;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.overview-panel:hover,.subject-tile:hover,.weekly-preview:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(52,42,100,.10)}
.overview-panel{padding:25px;min-height:220px;border:1px solid #ede8fa}
.tariff-panel{background:linear-gradient(125deg,#f5f0ff,#edf1ff)}
.schedule-panel{background:linear-gradient(125deg,#e9faf6,#f4fafc);border-color:#e0f2ec}
.overview-kicker{font-size:11px;letter-spacing:1px;font-weight:800;color:#7463a5;display:block}
.overview-panel h2,.weekly-preview h2{font-size:23px;margin:10px 0 16px;line-height:1.24}
.overview-numbers{display:flex;gap:22px;flex-wrap:wrap}
.overview-numbers div{display:flex;flex-direction:column;gap:5px}
.overview-numbers strong{font-size:28px;font-weight:800;color:#473970}
.overview-numbers span,.overview-more{font-size:12px;color:#716b82}
.overview-more{display:block;font-weight:750;color:#6551b2;margin-top:19px}
.discount-chip{display:inline-flex;background:#fff3cc;color:#76510d;border-radius:99px;font-size:12px;font-weight:800;padding:8px 12px;margin-top:15px}
.schedule-mini{display:flex;flex-direction:column;gap:4px;padding:7px 0;border-bottom:1px solid rgba(60,80,80,.08);font-size:13px}
.schedule-mini b{font-size:14px}.schedule-mini span{color:#667e79}
.subject-tile{padding:26px;background:#fff;border:1px solid #ececf6}
.subject-tile.russian{background:linear-gradient(150deg,#f7f3ff,#fff)}
.subject-tile.math{background:linear-gradient(150deg,#f0faf7,#fff)}
.subject-tile-ico{font-size:30px;display:block;margin-bottom:10px}
.subject-tile h3{font-size:22px;margin:6px 0}.subject-tile p{color:#77758b;margin:6px 0 18px}.subject-tile>span:last-child{color:#6652aa;font-weight:750;font-size:13px}
.weekly-preview{background:#f3f1ff;border:1px solid #e7e0ff;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0}
.weekly-preview h2{margin:9px 0}.weekly-preview p{font-size:13px;color:#777087}.weekly-action{font-weight:800;color:#6551b2;white-space:nowrap}
.tariff-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.mini-stat{background:white;border:1px solid #ecebf4;border-radius:17px;padding:24px 18px;display:flex;flex-direction:column;gap:10px}
.mini-stat span{font-size:12px;color:#74738a}.mini-stat strong{font-size:24px;color:#514182}
.form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.form-two label{display:block}.form-two input{width:100%;margin-top:7px}
.check-inline{display:flex;gap:8px;align-items:center;cursor:pointer}.check-inline input{width:auto!important}
.weekly-bars{display:flex;align-items:flex-end;gap:24px;min-height:290px;overflow-x:auto;padding:20px 12px 5px}
.week-item{flex:0 0 83px;display:flex;flex-direction:column;align-items:center;gap:9px;justify-content:flex-end}
.week-score{font-weight:800;color:#55468d;font-size:13px}.week-track{width:54px;height:205px;background:#f1eff9;border-radius:14px;display:flex;align-items:flex-end;overflow:hidden}
.week-bar{width:100%;background:linear-gradient(#9e90f1,#7062c4);border-radius:14px 14px 0 0;min-height:2px}
.week-label{font-size:11px;color:#726d87;text-align:center}.lesson-summary{white-space:pre-wrap;line-height:1.8;margin-top:16px}
@media(max-width:760px){.student-overview-grid,.subject-grid,.form-two{grid-template-columns:1fr}.tariff-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-preview{flex-direction:column;align-items:flex-start}.overview-numbers strong{font-size:23px}}
@media(max-width:420px){.tariff-stats{grid-template-columns:1fr}.overview-panel,.subject-tile{padding:19px}}

summary.discount-chip{cursor:pointer;list-style:none}summary.discount-chip::-webkit-details-marker{display:none}

/* Adjustments: clean pupil homepage, unified lessons and highlighted month test */
.zoom-preview{display:flex;gap:18px;align-items:center;justify-content:space-between;border:1px dashed #dcd4ef;border-radius:19px;padding:24px 27px;background:#fff;max-width:900px;margin-top:24px}
.zoom-preview h2{margin:7px 0 5px;font-size:21px}.zoom-preview p{margin:0;font-size:12px}
.zoom-soon{border-radius:30px;background:#f2efff;color:#8073cc;font-size:12px;font-weight:800;padding:8px 16px}
.teacher-overview{max-width:580px}.teacher-overview .btn{margin-left:auto}
.lesson-entry-card{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(125deg,#f6f2ff,#fff);border:1px solid #e9e2fa;border-radius:18px;padding:25px;max-width:680px}
.lesson-entry-card:hover{border-color:#aea2e9}.lesson-entry-card h3{font-size:18px;margin:0 0 6px}.lesson-entry-card p{font-size:12px;color:#86829c;margin:0}.lesson-entry-card>span{font-size:24px;color:#7767d8}
.results-section{margin:0 0 24px}.results-section .weekly-bars{justify-content:space-around;gap:10px;min-height:260px}
.week-item.month-item{background:#fff7eb;border:1px solid #ffe3b6;border-radius:18px;padding:10px 8px 14px;margin-top:-10px;flex-basis:103px}
.month-item .week-track{background:#fff0d6}.month-item .week-bar{background:linear-gradient(#f9cf7c,#eea858)}
.month-item .week-score{color:#a56d2e}.month-item .week-label{color:#99622a;font-weight:800}
.line-section{margin-top:18px;background:#faf9ff;border-radius:17px;padding:17px 20px 15px}
.line-section h3{font-size:15px;margin:0}.line-section p{margin:2px 0 8px}
.progress-line{width:100%;height:130px;display:block;max-width:650px;margin:auto}
.line-labels{display:grid;grid-template-columns:repeat(4,1fr);max-width:650px;margin:auto;text-align:center;color:#8a85a4;font-size:10px;font-weight:700}
.score-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
@media(max-width:760px){.score-forms{grid-template-columns:1fr}.results-section .weekly-bars{gap:4px}.week-item{flex-basis:60px}.week-item.month-item{flex-basis:75px}.week-label{font-size:10px}.weekly-bars{padding-left:0;padding-right:0}.week-track{width:43px}.zoom-preview{padding:19px;flex-wrap:wrap}}
@media(max-width:760px){.sidebar .nav{overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}.sidebar .nav .nav-link{flex-shrink:0}}

/* Teacher student list no longer displays obsolete classes */
.table-head.student-list-compact,.student-row.student-list-compact{grid-template-columns:minmax(0,1fr) 35px}
@media(max-width:530px){.table-head.student-list-compact,.student-row.student-list-compact{grid-template-columns:minmax(0,1fr) 20px}}

/* Teacher list: cumulative published lessons across Russian and Mathematics */
.table-head.teacher-lesson-grid,.student-row.teacher-lesson-grid{grid-template-columns:minmax(0,1fr) 188px 30px;gap:12px}
.teacher-lesson-grid .teacher-lessons-head{text-align:center}
.teacher-lesson-grid .teacher-count{justify-self:center;display:flex;align-items:baseline;gap:6px;color:#6b5fa7}
.teacher-count strong{font-weight:850;font-size:20px;color:#7768d7}
.teacher-count span{font-size:11px;font-weight:700}
.teacher-footnote{font-size:11px;margin:13px 7px 0}
@media(max-width:760px){.table-head.teacher-lesson-grid,.student-row.teacher-lesson-grid{grid-template-columns:minmax(0,1fr) 88px 20px;gap:5px;padding:0 12px}.teacher-lesson-grid .teacher-lessons-head{font-size:8px;letter-spacing:0}.teacher-count strong{font-size:17px}.teacher-count span{display:none}}

/* Cross-student test chart: scrollable SVG, independent coloured lines. */
.tests-overview{padding:25px 27px;margin-bottom:28px}
.tests-overview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.tests-overview-header h2{font-size:19px;margin:8px 0}
.tests-overview-header .muted{font-size:12px;max-width:680px}
.test-key{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 9px}
.test-key-item{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #eae7f4;border-radius:30px;background:#faf9ff;color:#5c5477;font-weight:750;font-size:12px}
.test-key-dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex-shrink:0}
.tests-chart-scroll{overflow-x:auto;scrollbar-width:thin;border:1px solid #edeaf6;border-radius:17px;background:linear-gradient(180deg,#fff 50%,#fbfaff);margin-top:12px}
.tests-chart{display:block;height:362px;max-width:none}
.tests-chart-label{font:12px system-ui,sans-serif;fill:#69617f}
.tests-chart-tick{font:11px system-ui,sans-serif;fill:#9b93b2}
.teacher-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.teacher-stat-card{padding:23px}
.teacher-stat-title{display:flex;justify-content:space-between;gap:12px;align-items:center}
.teacher-stat-title h3{font-size:18px;margin:0}
.teacher-stat-subtitle{font-size:11px;color:#8b86a3;margin:5px 0 0}
.teacher-stat-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0}
.teacher-stat-value{border-radius:13px;padding:11px 9px;background:#f8f7fe}
.teacher-stat-value strong{display:block;color:#473b86;font-weight:850;font-size:18px}
.teacher-stat-value small{display:block;font-size:10px;color:#77708d;margin-top:5px;line-height:1.3}
.teacher-spark{width:100%;height:87px;display:block;background:#faf9ff;border-radius:12px}
.teacher-scores{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.teacher-score-tag{display:flex;align-items:center;gap:6px;font-size:10px;border-radius:9px;padding:7px 9px;background:#f4f2fc;color:#60597b;white-space:nowrap}
.teacher-score-tag strong{font-size:11px}
.teacher-score-tag.month{background:#fff3df;color:#8b6335}
.teacher-score-tag.missing{opacity:.63}
.teacher-stat-link{display:inline-block;font-size:12px;font-weight:800;color:#6e5aca;text-decoration:none;margin-top:14px}
.teacher-stat-link:hover{text-decoration:underline}
.tests-empty{padding:25px;color:#8d86a7;text-align:center}
@media(max-width:960px){.teacher-stats-grid{grid-template-columns:1fr}}
@media(max-width:760px){.tests-overview{padding:18px}.teacher-stat-card{padding:19px}.tests-chart{height:325px}.teacher-stat-summary{gap:5px}.teacher-stat-value{padding:10px 7px}}

/* Per-teacher one-off Zoom calendar (no clickable links). */
.meeting-preview{align-items:flex-start;max-width:1000px}
.meeting-content{flex:1;min-width:0}
.meeting-next-date{font-size:14px;font-weight:800;color:#4e4779;margin:12px 0 3px}
.meeting-teacher{font-size:14px;color:#5c547b;margin:3px 0 12px}
.meeting-teacher strong{color:#332959}
.meeting-link-text,.meeting-link-placeholder{padding:14px 17px;border:1px solid #e6e1f8;background:#f6f3ff;border-radius:12px;font-size:13px;color:#554485;max-width:750px;overflow-wrap:anywhere;user-select:text}
.meeting-link-text{font-weight:650;user-select:all}
.meeting-link-placeholder{color:#8a829e;background:#f8f7fd;border-style:dashed}
.meeting-preview .muted.smaller{font-size:11px;margin-top:10px}
.teacher-instructor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;margin:15px 0}
.teacher-new-instructor{max-width:600px}
.calendar-row{flex-wrap:wrap}
.calendar-row .list-main{min-width:150px;flex:1}
.calendar-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.calendar-form-grid label{min-width:0}
@media(max-width:760px){.meeting-preview{flex-direction:column}.calendar-form-grid{grid-template-columns:1fr}.meeting-link-text,.meeting-link-placeholder{font-size:12px}}


/* Unified October calendar — pastel cards consistent with My Class */
.teacher-calendar-panel{margin-top:14px}
.month-navigation{display:flex;align-items:center;justify-content:center;gap:20px;text-align:center;margin-bottom:24px}
.month-navigation h2{margin:5px 0 0;font-size:26px;color:#534477}
.calendar-container{overflow-x:auto;border:1px solid #eee8fa;border-radius:18px}
.month-days-head,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));min-width:784px}
.month-days-head{background:#f7f5ff;border-bottom:1px solid #ebe7f8;text-align:center;padding:11px 0;color:#766b9a;font-size:12px;font-weight:800}
.month-day{min-height:116px;background:#fff;border-right:1px solid #f1eef8;border-bottom:1px solid #f1eef8;padding:11px 8px;min-width:0}
.month-day:nth-child(7n){border-right:0}
.month-day.outside{background:#faf9fe;color:#c3bfd1}
.month-day.current{background:#faf7ff;box-shadow:inset 0 0 0 2px #cec1fa}
.month-day-number{font-size:13px;font-weight:850;color:#726485;margin-bottom:11px}
.month-event{display:block;text-decoration:none;border:1px solid #e9e2ff;border-radius:10px;background:#f4f0ff;padding:9px 8px;margin-bottom:6px;color:#62519a;box-shadow:0 3px 10px #eeebfa}
.month-event:hover{background:#e9e1ff}
.month-event strong{display:block;font-size:11px;line-height:1.3;overflow-wrap:anywhere}
.month-event span{display:block;font-size:10px;margin-top:4px;color:#8980ab}
.calendar-count{font-size:13px;font-weight:800;color:#7461aa;border:1px solid #eae4fb;background:#f7f3ff;border-radius:40px;padding:9px 14px}
.teacher-calendar-events{display:grid;gap:13px}
.event-edit-card{display:flex;align-items:center;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:19px 20px;scroll-margin:22px}
.event-edit-card:target{outline:2px solid #b9a6ff}
.event-card-main{display:flex;align-items:center;gap:14px;flex:1 1 240px}
.event-day-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;width:57px;height:60px;background:linear-gradient(160deg,#eee8ff,#f6f3ff);color:#6b51b2;border-radius:15px;flex-shrink:0}
.event-day-icon strong{font-size:23px;line-height:1.1}.event-day-icon span{font-size:11px;font-weight:750}
.event-card-details strong{display:block;font-size:15px;color:#4e3f76}
.event-card-details span{display:block;margin-top:5px;color:#716b82;font-size:12px}
.event-card-details small{display:block;color:#9a90ab;font-size:11px;margin-top:5px}
.event-move-form{display:flex;flex-wrap:wrap;align-items:end;gap:9px;flex:2 1 450px}
.event-move-form label{font-size:10px;font-weight:800;color:#8279a0;flex:1 1 110px}
.event-move-form input,.event-move-form select{font-size:12px;min-height:41px;margin-top:5px;padding:8px}
.event-move-form button{min-height:42px;white-space:nowrap}
.student-schedule-grid{display:grid;gap:13px}
.student-schedule-card{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #ebe6f8;border-radius:19px;padding:19px 22px;box-shadow:0 5px 24px #f2effb}
.student-schedule-card.is-live{border-color:#82d3c2;background:#f7fffc}
.schedule-dateblock{width:77px;height:83px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:linear-gradient(145deg,#f0eaff,#e8e1ff);border-radius:15px;color:#7152af}
.schedule-dateblock span{font-size:27px;font-weight:850}.schedule-dateblock small{font-size:11px;font-weight:750}
.student-schedule-details{flex:1 1 240px}.student-schedule-details h2{margin:6px 0;font-size:23px}.student-schedule-details p{font-size:13px;color:#625a7a;margin:5px 0 10px}
.student-schedule-form{max-width:900px}
@media(max-width:640px){.event-edit-card{padding:15px}.event-move-form{flex-basis:100%}.event-move-form button{width:100%}}

/* Teacher analytics — soft, structured, not document-like */
.teacher-analytics-hero{border-radius:23px;padding:26px 30px;background:linear-gradient(110deg,#eae5ff 0%,#f3f0ff 48%,#edf9f5 100%);border:1px solid #e5def9;margin-bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.teacher-analytics-copy{max-width:370px}.teacher-analytics-copy h2{font-size:25px;line-height:1.2;margin:9px 0}.teacher-analytics-copy p{font-size:12px;color:#776f90;line-height:1.6}
.teacher-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(95px,1fr));gap:10px;flex:1 1 360px}
.teacher-kpi{background:#ffffffd9;border:1px solid #ffffff;border-radius:17px;padding:17px 13px;box-shadow:0 4px 25px #aca2d215;display:flex;flex-direction:column;gap:7px}
.teacher-kpi span{font-size:11px;color:#8c82a2;font-weight:750}.teacher-kpi strong{font-size:28px;color:#59458f;font-weight:850;line-height:1}.teacher-kpi small{font-size:10px;color:#89809b}
.teacher-student-report{padding:0;overflow:hidden;border-radius:22px;border-color:#eae5f8}
.report-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 23px;border-bottom:1px solid #f3f0fa}
.report-person{display:flex;align-items:center;gap:12px}
.report-avatar{display:grid;place-items:center;color:var(--person-color);background:#f3efff;border-radius:17px;width:50px;height:50px;font-size:22px;font-weight:850}
.report-person h3{margin:0;font-size:17px;color:#4e3c7e}.report-person p{margin:5px 0 0;color:#958aab;font-size:11px}
.report-view{display:grid;place-items:center;text-decoration:none;color:#6e5ab4;border:1px solid #e7dff6;background:#f9f7ff;border-radius:13px;width:38px;height:38px;font-size:20px}
.report-metrics{padding:20px 23px;display:flex;align-items:stretch;gap:12px}
.report-main-score{flex:1;min-width:105px;background:linear-gradient(145deg,#f4f0ff,#fcfbff);border-radius:17px;padding:16px}
.report-main-score span{font-size:10px;color:#867ba4;font-weight:800}
.report-main-score strong{display:block;margin:9px 0 11px;color:#5d4a98;font-weight:900;font-size:33px}
.report-progress-track{height:7px;background:#e5def3;overflow:hidden;border-radius:6px}
.report-progress-fill{height:100%;border-radius:6px}
.report-secondary-scores{flex:1;display:grid;gap:8px}
.report-secondary-scores>div{border:1px solid #eeebf6;border-radius:13px;padding:13px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.report-secondary-scores span{font-size:10px;color:#938ba6}.report-secondary-scores strong{font-size:17px;color:#6c5a9d;white-space:nowrap}
.report-timeline{padding:0 23px 9px}.report-timeline-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.report-timeline-heading strong{font-size:12px;color:#6f628e}.report-timeline-heading small{font-size:10px;color:#aba2ba}
.report-results{padding:4px 23px 15px;display:grid;gap:6px}
.report-result-row{display:flex;align-items:center;gap:10px;border:1px solid #f3eff9;border-radius:12px;padding:10px;background:#fdfcff}
.report-result-row.report-month{background:#fff9ef;border-color:#ffedcd}
.report-result-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#eeeaff;color:#7360b4;font-size:15px;font-weight:850}
.report-month .report-result-icon{background:#fff0d3;color:#aa7b2c}
.report-result-row>div:nth-child(2){flex:1}.report-result-row>div:nth-child(2) strong{display:block;font-size:12px;color:#595079}.report-result-row>div:nth-child(2) span{display:block;font-size:10px;color:#a19ab0;margin-top:4px}
.report-result-score{font-size:18px;font-weight:850;color:#6d5baf}.report-result-score small{font-size:11px;color:#aea5c0}
.report-bottom-link{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8f6fd;border-top:1px solid #f1edf7;color:#6e58af;text-decoration:none;font-size:12px;font-weight:850;padding:18px 23px}
.report-bottom-link:hover{background:#f0eafa}
.report-bottom-link span{font-size:18px}
@media(max-width:700px){.teacher-analytics-hero{padding:19px}.teacher-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-kpi{padding:13px 9px}.teacher-kpi strong{font-size:23px}.report-metrics{padding:15px}.report-results{padding:4px 15px 14px}.report-timeline{padding:0 15px 9px}.report-topline{padding:15px}}


/* Teacher schedule v2 — day-by-day clarity; consistent with lavender My Class UI */
.teacher-agenda-head{background:linear-gradient(116deg,#efeaff 0%,#f9f7ff 60%,#f0f9f8 100%);border:1px solid #e6def9;border-radius:23px;padding:22px 26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-bottom:18px}
.teacher-agenda-month{display:flex;align-items:center;gap:16px}
.teacher-agenda-month h2{font-size:26px;line-height:1.2;margin:5px 0 0;color:#4b3c79}
.teacher-agenda-month small{letter-spacing:1.1px;font-size:10px;font-weight:850;color:#9183b5}
.teacher-month-arrow{display:grid;place-items:center;width:39px;height:39px;background:#fff;border:1px solid #e0d8f3;border-radius:13px;color:#6855a6;font-size:22px;font-weight:700;text-decoration:none}
.teacher-month-arrow:hover{background:#ede6ff;border-color:#b9a8e8}
.teacher-agenda-facts{display:flex;gap:10px}
.teacher-agenda-facts>div{min-width:115px;padding:13px 17px;background:#ffffffc9;border:1px solid #fff;border-radius:16px;display:flex;flex-direction:column;gap:4px}
.teacher-agenda-facts strong{font-size:26px;line-height:1;font-weight:850;color:#6553a0}
.teacher-agenda-facts span{font-size:11px;font-weight:750;color:#9088a7}
.teacher-agenda-filters{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 29px;align-items:center}
.teacher-agenda-filter{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border-radius:999px;font-weight:800;font-size:12px;color:#71698b;border:1px solid #e9e4f1;background:#fff;text-decoration:none;transition:background .15s,border-color .15s}
.teacher-agenda-filter.active{background:#7765c9;color:#fff;border-color:#7765c9;box-shadow:0 5px 15px #8c77dc26}
.teacher-agenda-filter:hover:not(.active){background:#f5f1ff;border-color:#c9bcf0}
.teacher-agenda-filter i,.teacher-lesson-tutor i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#fff;flex-shrink:0}
.teacher-agenda-filter:not(.active) i{background:var(--instructor-color,#a092cb)}
.teacher-agenda-content{display:grid;gap:22px}
.teacher-agenda-title{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.teacher-agenda-title h2{font-size:19px;color:#41365e;margin:0}
.teacher-agenda-title .muted{font-size:11px}
.teacher-day{border:1px solid #ece7f8;border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 5px 24px #50407e08}
.teacher-day-header{display:flex;gap:13px;align-items:center;background:#f8f6fe;border-bottom:1px solid #efebf6;padding:12px 18px}
.teacher-day-header.today{background:#eefaf6}
.teacher-day-number{height:47px;width:47px;display:grid;place-items:center;font-weight:850;font-size:22px;border-radius:13px;color:#6b56b0;background:#eae4fc;flex-shrink:0}
.teacher-day-header.today .teacher-day-number{background:#d8f4ea;color:#25826d}
.teacher-day-heading{display:flex;flex-direction:column;gap:3px;min-width:0}
.teacher-day-heading strong{font-size:15px;font-weight:850;color:#493973}
.teacher-day-heading span{font-size:11px;font-weight:700;color:#9289a7}
.teacher-day-count{margin-left:auto;background:#fff;padding:7px 12px;border:1px solid #eee9f9;border-radius:18px;color:#81759f;font-size:11px;font-weight:750;white-space:nowrap}
.teacher-day-lessons{padding:0 19px}
.teacher-lesson{scroll-margin:25px;padding:17px 0;border-bottom:1px solid #f0edf7}
.teacher-lesson:last-child{border-bottom:0}
.teacher-lesson:target{outline:2px solid #bdaaf2;outline-offset:-2px;border-radius:10px}
.teacher-lesson-topline{display:flex;align-items:center;flex-wrap:wrap;gap:15px}
.teacher-lesson-time{min-width:88px;flex:0 0 94px;display:flex;flex-direction:column;gap:4px}
.teacher-lesson-time strong{font-size:23px;line-height:1.1;font-weight:850;color:#514083;font-variant-numeric:tabular-nums}
.teacher-lesson-time span{font-size:11px;color:#a49bb5}
.teacher-lesson-student{flex:1 1 150px;display:flex;align-items:center;gap:11px;min-width:0}
.teacher-lesson-avatar{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border-radius:13px;color:#fff;background:var(--lesson-color,#7764c9);font-size:18px;font-weight:850}
.teacher-lesson-student>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.teacher-lesson-student strong{font-size:15px;font-weight:850;color:#493e6a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.teacher-lesson-student span:last-child{font-size:11px;color:#968ca8}
.teacher-lesson-instructor{flex:1 1 150px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.teacher-lesson-tutor{display:inline-flex;align-items:center;gap:9px;background:#f4f1ff;border:1px solid #e8e1f8;border-radius:20px;padding:7px 12px;font-size:12px;font-weight:850;color:#68599a}
.teacher-lesson-tutor i{background:var(--lesson-color)}
.teacher-lesson-instructor small{font-size:10px;color:#a19ab0;margin-left:5px}
.teacher-lesson-edit{flex:0 0 auto;margin-left:auto;min-width:100px}
.teacher-lesson-edit>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid #ded6f2;background:#fff;border-radius:12px;padding:10px 13px;min-height:38px;font-size:12px;font-weight:850;color:#7765ae;user-select:none}
.teacher-lesson-edit>summary::-webkit-details-marker{display:none}
.teacher-lesson-edit>summary:hover{background:#f7f3ff}
.teacher-lesson-edit[open]{flex-basis:100%;margin:1px 0 0}
.teacher-lesson-edit[open]>summary{margin-left:auto}
.teacher-lesson-edit-panel{margin-top:13px;padding:18px;border:1px solid #eae4f9;background:#f9f7ff;border-radius:16px}
.teacher-lesson-edit-panel form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.teacher-lesson-edit-fields{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:11px;flex:1 1 430px}
.teacher-lesson-edit-fields label{font-size:11px;font-weight:800;color:#7e729d}
.teacher-lesson-edit-fields input,.teacher-lesson-edit-fields select{width:100%;font-size:12px;min-height:42px;padding:9px;margin-top:7px}
.teacher-lesson-edit-panel button{min-height:42px}
.teacher-agenda-empty{text-align:center;padding:43px 20px;background:#fff;border:1px dashed #ded5f3;border-radius:20px}
.teacher-agenda-empty-icon{font-size:33px;line-height:1.1}
.teacher-agenda-empty h3{font-size:17px;margin:13px 0 6px;color:#5e5084}
.teacher-agenda-empty p{color:#9c94af;font-size:12px}
.teacher-agenda-tools{margin-top:26px;display:grid;gap:11px}
.teacher-tools-accordion{background:#fff;border:1px solid #e9e4f4;border-radius:16px;overflow:hidden}
.teacher-tools-accordion>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;padding:17px 21px;color:#5e4b8c}
.teacher-tools-accordion>summary::-webkit-details-marker{display:none}
.teacher-tools-accordion>summary:hover{background:#f9f7ff}
.teacher-tools-accordion>summary strong{font-size:14px;font-weight:850}
.teacher-tools-symbol{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#f1ecff;font-size:21px;color:#7662c2;flex-shrink:0}
.teacher-tools-hint{font-size:11px;color:#a199b1}
.teacher-tools-chevron{margin-left:auto;font-size:17px}
.teacher-tools-accordion[open] .teacher-tools-chevron{transform:rotate(180deg)}
.teacher-add-form{border-top:1px solid #f1edf8;padding:21px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px}
.teacher-add-form label{font-size:11px;font-weight:800;color:#7a7092}
.teacher-add-form input,.teacher-add-form select{min-height:42px;font-size:12px;margin-top:7px;width:100%}
.teacher-add-form button{min-height:42px}
.teacher-month-overview .calendar-container{margin:0 15px 17px}
.teacher-agenda-test-note{font-size:10px;margin:16px 0}
@media(max-width:830px){
 .teacher-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}
 .teacher-lesson-edit-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .teacher-agenda-head{padding:18px}
 .teacher-agenda-title .muted{display:none}
}
@media(max-width:540px){
 .teacher-agenda-month{gap:9px}.teacher-month-arrow{width:35px;height:35px}
 .teacher-agenda-month h2{font-size:21px}
 .teacher-agenda-facts>div{min-width:100px;padding:12px}
 .teacher-day-lessons{padding:0 13px}
 .teacher-lesson-topline{gap:12px}
 .teacher-lesson-time{flex:0 0 77px;min-width:77px}
 .teacher-lesson-time strong{font-size:21px}
 .teacher-lesson-student{flex:1 1 145px}
 .teacher-lesson-instructor{flex:1 1 150px}
 .teacher-lesson-edit{margin-left:auto}
 .teacher-lesson-edit-fields{grid-template-columns:1fr}
 .teacher-lesson-edit-panel form>button{width:100%}
 .teacher-add-form{grid-template-columns:1fr}
 .teacher-tools-hint{display:none}
 .teacher-day-header{padding:11px 13px}
}


/* Weekly lesson setup: comfortable multi-day selection on desktop and mobile. */
.student-setup-section{border-top:1px solid #efebf6;padding-top:23px;display:grid;gap:14px}
.student-setup-section h2{font-size:18px;margin:0;color:#4e466a}
.student-setup-section>p{margin:0}
.student-setup-section .form-two{margin-top:0}
.weekday-fieldset{border:0;padding:0;margin:0;min-width:0}
.weekday-fieldset legend{font-size:13px;font-weight:800;color:#6e6386;margin-bottom:12px}
.weekday-picker{display:flex;gap:9px;flex-wrap:wrap}
.weekday-option{display:inline-flex;position:relative;cursor:pointer;padding:0!important;margin:0!important}
.weekday-option input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.weekday-option span{display:inline-grid;place-items:center;min-width:49px;min-height:46px;padding:10px 12px;border:1px solid #ddd6ee;border-radius:12px;background:#faf8fe;color:#695c8e;font-size:13px;font-weight:800;transition:background .15s,border-color .15s,color .15s}
.weekday-option:hover span{background:#f2eeff}
.weekday-option input:checked+span{background:#7164cb;color:white;border-color:#7164cb;box-shadow:0 4px 13px rgba(113,100,203,.18)}
.weekday-option input:focus-visible+span{outline:3px solid #c5baf8;outline-offset:3px}
.weekly-pattern-list{background:#fff;border:1px solid #eee8f7;border-radius:18px;overflow:hidden}
.weekly-pattern-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid #f1edf8}
.weekly-pattern-row:last-child{border-bottom:0}
.weekly-pattern-row strong{color:#51456d}
.weekly-pattern-row p{margin:3px 0 0}
@media(max-width:560px){.weekday-picker{gap:6px}.weekday-option span{min-width:39px;min-height:43px;padding:9px 8px;font-size:12px}.weekly-pattern-row{padding:14px;align-items:start}.student-setup-section .form-two{display:grid;grid-template-columns:1fr}}


/* Tutor income and payroll: readable monthly accounting. */
.finance-month-picker{justify-content:center;margin-bottom:18px;background:#fff;padding:14px 16px;border:1px solid #eeebfa;border-radius:16px}
.finance-month-picker h2{font-size:22px;margin:0 17px}
.finance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.finance-number{background:#fff;border:1px solid #ede7f8;border-radius:18px;padding:20px;display:grid;gap:8px;min-width:0}
.finance-number small{font-size:10px;letter-spacing:.7px;color:#827c96;font-weight:800}
.finance-number strong{font-size:clamp(20px,2.5vw,30px);font-weight:850;color:#514783}
.finance-number span{font-size:11px;color:#9792a5}
.finance-instructor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.finance-instructor h3{font-size:20px}
.finance-instructor .muted{margin:12px 0 0}
.finance-line{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid #f1edf8;font-size:12px}
.finance-line:last-child{border-bottom:0}
.finance-line strong{text-align:right}
.finance-line-focus{color:#6550a5;background:#f6f2ff;padding:12px;border-radius:12px;margin:7px 0;border:0;font-size:13px;font-weight:800}
.finance-table-wrap{background:#fff;border:1px solid #eee9f8;border-radius:17px;overflow:auto}
.finance-table{border-collapse:collapse;width:100%;min-width:970px;font-size:12px}
.finance-table th{text-align:left;padding:15px 12px;background:#f9f6ff;color:#78708c;font-size:10px;letter-spacing:.4px;white-space:nowrap}
.finance-table td{padding:12px;border-bottom:1px solid #f0ebf6;vertical-align:middle}
.finance-table td small{display:block;color:#a397ba;font-size:10px}
.finance-table tr:hover td{background:#fcfaff}
.finance-unset{color:#ba5b4d;font-weight:700}
.finance-status{display:inline-block;padding:5px 9px;border-radius:9px;font-size:10px;font-weight:800;white-space:nowrap}
.finance-status.held{background:#e7f8ee;color:#13784b}
.finance-status.planned{background:#f1edff;color:#6650a9}
.finance-status.cancelled{background:#fff0ee;color:#b45345}
.finance-actions{display:flex;gap:6px;flex-wrap:wrap}
.finance-small-action{border:1px solid #c9bee9;border-radius:8px;background:#f6f1ff;color:#6555a0;padding:7px 9px;white-space:nowrap;font-size:10px;font-weight:800}
.finance-small-action:hover{background:#ede4ff}
.finance-small-action.secondary{background:#fff;color:#8e829e}
.finance-small-action:disabled{opacity:.48;cursor:not-allowed}
.finance-settings{display:grid;gap:12px}
.finance-settings-body{padding:17px 20px;border-top:1px solid #f1ebfa}
.finance-settings-body>p{font-size:12px;margin-bottom:14px}
.finance-line-items{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.finance-line-items span{border-radius:11px;background:#f7f3ff;padding:10px;color:#5c4e80;font-size:12px}
.finance-setting-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end;margin-top:15px}
.finance-setting-form label{font-size:11px;color:#6f6480;font-weight:800;display:grid;gap:5px}
.finance-setting-form input,.finance-setting-form select{width:100%;min-height:42px;margin:0;font-size:12px;padding:9px}
.finance-setting-form .btn{min-height:42px}
.finance-rule{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px;border-bottom:1px solid #f2edf8}
.finance-rule p{margin:3px 0 0}
@media(max-width:970px){.finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:510px){.finance-summary{grid-template-columns:1fr}.finance-settings-body{padding:15px}.finance-setting-form{grid-template-columns:1fr}}
