:root{--bg:#f7f8f8;--paper:#fff;--ink:#111820;--muted:#6f7882;--line:#e2e6e9;--blue:#4aa3f2;--blue2:#edf7ff;--red:#df003d;--red2:#fff0f4;--green:#237b5b;--green2:#ecf8f2;--amber:#9b6a00;--amber2:#fff7df;--purple:#6752a4;--purple2:#f2effa;--shadow:0 12px 38px rgba(20,32,42,.06)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.demo-bar{height:30px;background:#101820;color:#fff;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:800;letter-spacing:.05em;position:sticky;top:0;z-index:100}.demo-bar span{opacity:.6;margin-left:6px}
.login-screen{min-height:calc(100vh - 30px);display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,#fff,#f7f9fa)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.login-logo{display:block;width:220px;max-width:78%;margin:0 auto 28px}.login-kicker{text-align:center;font-size:8px;font-weight:900;letter-spacing:.16em;color:var(--muted)}.login-card h1{text-align:center;font-size:25px;margin:6px 0 4px}.login-card>p{text-align:center;font-size:10px;line-height:1.55;color:var(--muted);margin:0 0 24px}.login-form{display:grid;gap:11px}.login-form label{font-size:8px;font-weight:850;color:#59636e}.login-form input{width:100%;margin-top:5px;border:1px solid var(--line);background:#fbfcfc;border-radius:12px;padding:12px;min-height:46px}.login-form button{min-height:46px}.login-error{margin-bottom:10px;background:var(--red2);color:#a83d43;border-radius:11px;padding:9px 11px;font-size:9px;text-align:center}.login-note{margin-top:19px;border-top:1px solid var(--line);padding-top:14px;font-size:8px;color:var(--muted);line-height:1.55}.login-back{margin-top:8px}.login-back button{width:100%}.otp-input{font-size:24px!important;letter-spacing:.16em;text-align:center}
.school-app{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:calc(100vh - 30px)}.sidebar{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:30px;height:calc(100vh - 30px);z-index:50}.side-logo{padding:3px 10px 20px;display:block}.side-logo img{width:165px;max-width:100%;display:block}.side-logo span{display:block;font-size:7px;letter-spacing:.12em;color:#858d95;margin-top:7px;font-weight:850}.side-nav{display:grid;gap:4px}.side-nav a{border-radius:12px;padding:10px 9px;display:grid;grid-template-columns:30px 1fr 10px;gap:7px;align-items:center;color:#5e6872}.side-nav a>b{font-size:13px;text-align:center}.side-nav a>span{font-size:10px;font-weight:800}.side-nav a.active{background:#f0f7fd;color:#152331}.side-nav a.active>b{color:var(--blue)}.nav-separator{font-size:7px;color:#a0a7ad;font-weight:900;letter-spacing:.12em;padding:12px 10px 4px}.status-dot{width:7px;height:7px;border-radius:50%}.status-dot.ok{background:#2a9b6b}.status-dot.warn{background:#d5a126}.side-user{margin-top:auto;border-top:1px solid var(--line);padding:10px 4px 0;display:grid;grid-template-columns:38px 1fr 28px;gap:8px;align-items:center}.user-avatar,.student-avatar,.big-avatar{display:grid;place-items:center;background:#101820;color:#fff;font-weight:900}.user-avatar{width:38px;height:38px;border-radius:12px}.side-user b,.side-user span{display:block}.side-user b{font-size:9px}.side-user span{font-size:7px;color:var(--muted);margin-top:2px}.side-user>a{width:28px;height:28px;border-radius:9px;background:#f5f7f8;display:grid;place-items:center;color:#65717a}
.school-shell{min-width:0}.topbar{height:68px;background:rgba(247,248,248,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px 23px;position:sticky;top:30px;z-index:40}.topbar small{font-size:7px;letter-spacing:.11em;color:#8a929a;font-weight:900}.topbar h1{font-size:20px;margin:2px 0 0}.top-actions{display:flex;gap:6px}.school-main{padding:18px 23px 92px;max-width:1450px;margin:0 auto}.bottom-nav{display:none}
.primary,.secondary,.link-btn{border-radius:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.primary{border:0;background:#111820;color:#fff;padding:10px 13px}.secondary{border:1px solid var(--line);background:#fff;padding:9px 12px}.link-btn{border:0;background:transparent;color:#32698f;padding:7px}.small{font-size:8px;padding:7px 9px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.page-head small{font-size:7px;font-weight:950;letter-spacing:.12em;color:#8a929a}.page-head h2{font-size:27px;margin:4px 0 2px}.page-head p{font-size:9px;color:var(--muted);line-height:1.55;margin:2px 0}.page-actions{display:flex;gap:6px;flex-wrap:wrap}.date-switch{display:flex;align-items:center;gap:5px}.date-switch a{min-width:37px;min-height:37px;border:1px solid var(--line);background:#fff;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:850}.date-switch .today-link{padding:0 12px;min-width:auto}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 2px 10px rgba(21,31,40,.02)}.card-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}.card-head.outside{padding:0 2px}.card-head small{font-size:7px;font-weight:950;letter-spacing:.08em;color:#8a929a}.card-head h3{font-size:15px;margin:2px 0}.grid{display:grid;gap:9px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px}.kpi b,.kpi span{display:block}.kpi b{font-size:22px}.kpi span{font-size:7px;color:var(--muted);margin-top:2px}.kpi.attention{border-color:#f2d793;background:#fffaf0}.section-gap{height:12px}
.home-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:10px}.lesson-list{display:grid;gap:6px}.lesson{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:10px;align-items:center}.lesson.done{opacity:.72}.lesson time{font-size:11px;font-weight:900}.lesson b,.lesson span{display:block}.lesson b{font-size:11px}.lesson span{font-size:8px;color:var(--muted);margin-top:2px}.tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.tag{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:7px!important;font-weight:850;font-style:normal}.tag.blue{background:var(--blue2);color:#2c668f}.tag.amber{background:var(--amber2);color:#866009}.tag.green{background:var(--green2);color:#39745a}.tag.purple{background:var(--purple2);color:#5f4c96}.lesson-action{display:flex;align-items:center;gap:8px}.lesson-action>b{font-size:15px}.status{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:7px;font-weight:900}.status.todo{background:var(--amber2);color:#836009}.status.done{background:var(--green2);color:#3d7559}.empty-state{background:#fff;border:1px dashed #cbd3d8;border-radius:16px;padding:24px;text-align:center;color:var(--muted)}.empty-state b,.empty-state span{display:block}.empty-state b{font-size:12px;color:var(--ink)}.empty-state span{font-size:9px;margin-top:3px}.week-card{margin-bottom:9px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.week-day{border:1px solid var(--line);border-radius:11px;padding:7px 3px;text-align:center;background:#fbfcfc}.week-day small,.week-day b,.week-day span{display:block}.week-day small{font-size:6px;color:#8b949c}.week-day b{font-size:13px;margin:2px 0}.week-day span{font-size:6px;color:var(--muted)}.week-day.active{border-color:#8cc9f7;background:var(--blue2)}.week-day.today b{color:#1976b9}.module-stack{display:grid;gap:5px}.module-stack>.card-head{margin-bottom:2px}.module-stack>a{display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:9px;align-items:center;border-radius:12px;padding:8px;background:#fafbfb}.module-stack>a i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:10px;font-style:normal;font-weight:900}.module-stack>a i.blue{background:var(--blue2);color:#2a6c99}.module-stack>a i.amber{background:var(--amber2);color:#866009}.module-stack>a i.purple{background:var(--purple2);color:#5f4c96}.module-stack>a i.green{background:var(--green2);color:#39745a}.module-stack>a b,.module-stack>a span{display:block}.module-stack>a b{font-size:9px}.module-stack>a span{font-size:7px;color:var(--muted);margin-top:2px}.module-stack>a strong{font-size:11px;color:#7c858d}
.calendar-weekheads{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:5px}.calendar-weekheads span{text-align:center;font-size:8px;font-weight:900;color:#879099}.month-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-day{min-height:132px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px}.cal-day.outside{background:#fafafa;opacity:.55}.cal-day.today{border:2px solid #8dcaf7}.cal-day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cal-day-head b{font-size:12px}.cal-day-head span{font-size:6px;color:#2873a7;background:var(--blue2);border-radius:999px;padding:3px 5px}.cal-events{display:grid;gap:4px}.cal-event{border-radius:8px;background:#f2f7fa;padding:6px;display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:4px}.cal-event.done{background:var(--green2);opacity:.78}.cal-event time{font-size:7px;font-weight:900}.cal-event b{font-size:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-event span{grid-column:2;font-size:6px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attendance-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:10px;align-items:start}.attendance-list{display:grid;gap:7px}.attendance-row{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fbfcfc}.student-ident{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center}.student-avatar{width:42px;height:42px;border-radius:13px}.student-ident b,.student-ident span{display:block}.student-ident b{font-size:11px}.student-ident span{font-size:7px;color:var(--muted);margin-top:2px}.attendance-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}.attendance-buttons button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 5px;font-size:7px;font-weight:850}.attendance-buttons button.active.present{background:var(--green2);border-color:#8dc9af;color:#2e6e51}.attendance-buttons button.active.late{background:var(--amber2);border-color:#eed085;color:#7e5c0a}.attendance-buttons button.active.absent{background:var(--red2);border-color:#edb5c3;color:#a23d55}.billing-toggle{margin-top:7px}.billing-toggle label{display:inline-flex;align-items:center;gap:6px;font-size:7px;color:#5e6972;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 8px}.billing-toggle input{accent-color:#111820}.course-side{position:sticky;top:108px}.form-label{display:grid;gap:5px;font-size:8px;font-weight:850;color:#5b6670;margin-bottom:10px}.form-label input,.form-label select,.form-label textarea{width:100%;border:1px solid var(--line);background:#fbfcfc;border-radius:11px;padding:10px;font-size:9px}.form-label textarea{min-height:84px;resize:vertical}.auto-note{font-size:7px;line-height:1.55;color:var(--muted);background:#f6f8f9;border-radius:11px;padding:9px;margin-bottom:10px}.save-session{width:100%;min-height:44px}
.student-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:9px}.student-list-card{align-self:start}.search{width:100%;border:1px solid var(--line);background:#fbfcfc;border-radius:11px;padding:10px;font-size:9px}.student-list{display:grid;gap:4px;margin-top:7px;max-height:calc(100vh - 220px);overflow:auto}.student-row{border-radius:11px;padding:8px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center}.student-row:hover{background:#f1f7fb}.student-row b,.student-row span,.student-row small{display:block}.student-row b{font-size:9px}.student-row span{font-size:7px;color:var(--muted);margin-top:2px}.student-row small{font-size:6px;color:#68747e;margin-top:3px}.household-list{display:grid;gap:5px}.household-row{border-bottom:1px solid var(--line);padding:9px 2px;display:flex;justify-content:space-between;align-items:center;gap:8px}.household-row:last-child{border-bottom:0}.household-row b,.household-row span{display:block}.household-row b{font-size:10px}.household-row span{font-size:7px;color:var(--muted);margin-top:2px}.identity-head{display:flex;gap:10px;align-items:center}.big-avatar{width:58px;height:58px;border-radius:18px;font-size:17px}.course-sub-card p{font-size:8px;color:var(--muted)}.quota{display:grid;gap:7px;margin:12px 0}.quota b,.quota span{display:block}.quota b{font-size:18px}.quota span{font-size:7px;color:var(--muted)}.progress{height:7px;background:#edf0f2;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--purple);border-radius:999px}.course-sub-card>small{font-size:7px;color:var(--muted)}.price-line b,.price-line span{display:block}.price-line b{font-size:18px}.price-line span{font-size:7px;color:var(--muted)}.quota-list{display:grid}.quota-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}.quota-row:last-child{border-bottom:0}.quota-row b,.quota-row span{display:block}.quota-row b{font-size:9px}.quota-row span{font-size:7px;color:var(--muted);margin:2px 0 6px}.quota-row strong{font-size:10px}
.finance-actions{margin-bottom:10px}.billing-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.billing-card>.card-head>strong{font-size:15px}.billing-line{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.billing-line b,.billing-line span{display:block}.billing-line b{font-size:8px}.billing-line span{font-size:7px;color:var(--muted);margin-top:2px}.billing-line strong{font-size:9px}.notice{border-radius:12px;padding:10px 12px;background:var(--blue2);color:#315c78;font-size:8px;line-height:1.55}.notice.error{background:var(--red2);color:#984257}.fle-launch{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:center;max-width:780px}.big-module{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;font-weight:950;font-size:18px}.big-module.blue{background:var(--blue2);color:#2b668f}.big-module.amber{background:var(--amber2);color:#866009}.fle-launch h3{font-size:18px;margin:0 0 4px}.fle-launch p{font-size:9px;color:var(--muted);line-height:1.55}.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.tool-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:10px;align-items:center}.tool-card>i{width:44px;height:44px;border-radius:13px;background:#f2f5f6;display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:900}.tool-card b,.tool-card span{display:block}.tool-card b{font-size:10px}.tool-card span{font-size:7px;color:var(--muted);margin-top:3px}.tool-card>strong{color:#7c858d}
@media(max-width:1050px){.school-app{grid-template-columns:190px minmax(0,1fr)}.home-layout{grid-template-columns:1fr}.attendance-layout{grid-template-columns:1fr}.course-side{position:static}.grid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.demo-bar{height:26px}.school-app{display:block}.sidebar{display:none}.topbar{top:26px;height:58px;padding:9px 12px}.topbar h1{font-size:17px}.school-main{padding:13px 10px 84px}.top-actions .secondary:first-child{display:none}.page-head{flex-direction:column}.page-head h2{font-size:24px}.page-head p{font-size:10px}.date-switch{width:100%}.date-switch a{flex:1}.grid.two,.grid.three,.grid.four,.student-layout,.billing-list,.tools-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)!important}.lesson{grid-template-columns:58px minmax(0,1fr)}.lesson-action{grid-column:1/-1;justify-content:flex-end}.week-strip{gap:3px}.month-calendar{gap:3px}.calendar-weekheads{gap:3px}.cal-day{min-height:88px;padding:4px;border-radius:10px}.cal-day-head span{display:none}.cal-event{grid-template-columns:1fr;padding:4px}.cal-event time{font-size:6px}.cal-event b{font-size:6px}.cal-event span{display:none}.attendance-buttons{grid-template-columns:repeat(2,1fr)}.student-list{max-height:none}.bottom-nav{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:70;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.bottom-nav a{display:grid;place-items:center;gap:2px;color:#6c757e;font-size:7px;font-weight:800;padding:3px}.bottom-nav a b{font-size:15px}.bottom-nav a.active{color:#1779bd}.fle-launch{grid-template-columns:1fr}.big-module{width:58px;height:58px}.identity-head{align-items:flex-start}.big-avatar{width:50px;height:50px;border-radius:15px}}
