:root{--bg:#fff8fb;--surface:#fff;--pink:#ef7fa6;--pink2:#ffe4ee;--ink:#302a2e;--muted:#796d74;--line:#eee0e6;--dark:#302a2e;--green:#4c8f70;--shadow:0 18px 55px rgba(94,63,76,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink)}.brand{font-weight:900;letter-spacing:.06em}.brand b{color:#e77ea3}.brand.light{color:#fff}.eyebrow{display:inline-block;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#c4577c}.muted{color:var(--muted)}.auth-bg{min-height:100vh;background:linear-gradient(135deg,#fff7fb,#fff 45%,#ffeaf2);display:grid;place-items:center;padding:24px}.login-shell{width:min(960px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}.login-copy{padding:56px;background:linear-gradient(145deg,#ffdce8,#fff3f7)}.login-copy .brand{margin-bottom:58px}.login-copy h1{font-size:48px;line-height:1.04;margin:15px 0}.login-copy p{color:#6e5d65;line-height:1.7}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}.chips span{padding:8px 10px;background:#fff;border:1px solid #f0dbe3;border-radius:999px;font-size:11px;font-weight:700}.login-card{padding:56px}.login-card h2{font-size:28px;margin:0 0 7px}.login-card form{display:grid;gap:8px;margin:26px 0 18px}.login-card label{font-size:11px;font-weight:800;margin-top:8px}.login-card input{width:100%;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fffafd;outline:none}.login-card input:focus{border-color:#e88aac;box-shadow:0 0 0 3px #fde8f0}.btn{border:0;border-radius:12px;padding:14px 18px;font-weight:800;margin-top:10px}.primary{background:linear-gradient(135deg,#ef6f9d,#f48cb0);color:#fff}.alert{padding:11px 13px;border-radius:12px;background:#fff0f2;color:#a84b5b;font-size:12px}.app-bg{background:linear-gradient(135deg,#fff7fb,#fff 45%,#fff0f6);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(180deg,#2e292d,#392d34);padding:26px 18px;color:#fff}.sidebar .role{color:#cdbfc6;font-size:11px;margin:8px 0 24px}.sidebar nav{display:grid;gap:5px}.sidebar a,.logout{display:block;width:100%;border:0;background:transparent;color:#eadfe5;text-align:left;padding:12px 13px;border-radius:12px;font-size:13px;text-decoration:none}.sidebar a.active{background:linear-gradient(135deg,#f49ab8,#ee7fa6);color:#30272c;font-weight:900}.logout{position:absolute;left:18px;right:18px;bottom:18px;width:calc(100% - 36px)}.main{margin-left:260px}.top{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px}.top span{font-size:12px;color:var(--muted)}.content{padding:28px;max-width:1450px}.hero-mini{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px}.hero-mini h1{font-size:32px;margin:8px 0 5px}.hero-mini p{margin:0;color:var(--muted)}.role-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px 16px;min-width:180px}.role-card span{display:block;font-size:10px;color:var(--muted)}.role-card strong{display:block;margin-top:4px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 10px 28px rgba(82,47,65,.05)}.span2{grid-column:1/-1}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.panel h2{font-size:17px;margin:0}.panel-head span{font-size:11px;color:var(--muted)}.row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #f2e9ed}.row:last-child{border-bottom:0}.row strong{font-size:13px}.row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.row b{font-size:10px;color:#8b5268}.compact{padding:9px 0}@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-copy{display:none}.login-card{padding:34px 24px}.sidebar{display:none}.main{margin-left:0}.content{padding:18px 14px}.grid{grid-template-columns:1fr}.span2{grid-column:auto}.hero-mini{align-items:flex-start;flex-direction:column}.top{padding:0 16px}}

/* ===== production admin workspace ===== */
a{color:inherit}.brand small{display:block;margin-top:5px;font-size:8px;letter-spacing:.14em;color:#bfaeb7;font-weight:700;text-transform:uppercase}.admin-sidebar{width:276px;padding:25px 18px}.admin-sidebar .role{padding:0 13px;margin:10px 0 22px}.admin-sidebar nav a{display:flex;align-items:center;gap:10px}.admin-sidebar nav a span{width:22px;text-align:center}.admin-sidebar nav a em{font-style:normal;font-size:8px;margin-left:auto;opacity:.55}.admin-sidebar nav a.disabled{opacity:.52;cursor:not-allowed}.sidebar-bottom{position:absolute;left:18px;right:18px;bottom:17px}.sidebar-bottom .logout{position:static;width:100%;margin-top:4px}.site-return{display:block!important;font-size:10px!important;color:#bfaeb7!important}.main:has(+ *){min-width:0}.admin-sidebar~.main{margin-left:276px}.admin-top>div:first-child{display:grid}.admin-top small{font-size:8px;letter-spacing:.12em;color:#a3919b;margin-top:2px}.top-account{display:flex;align-items:center;gap:12px}.top-account b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#ffe8f0;color:#a14468}.admin-content{max-width:1540px;padding:28px 30px 60px}.admin-welcome{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:18px}.admin-welcome h1,.page-heading h1{font-size:34px;letter-spacing:-.035em;margin:8px 0 6px}.admin-welcome p,.page-heading p{margin:0;color:var(--muted);max-width:760px;line-height:1.55}.date-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:13px 16px;min-width:145px}.date-card span,.date-card small{display:block;font-size:9px;color:var(--muted)}.date-card strong{display:block;font-size:17px;margin:3px 0}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stat-card{background:linear-gradient(155deg,#fff,#fff6fa);border:1px solid var(--line);border-radius:18px;padding:17px;text-decoration:none;transition:.15s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(82,47,65,.07)}.stat-card span{font-size:10px;color:var(--muted)}.stat-card strong{display:block;font-size:29px;margin:5px 0;color:#563447}.stat-card small{font-size:9px;color:#8b7a83}.admin-grid-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr);gap:16px}.admin-grid-main.second-row{grid-template-columns:1fr 1fr;margin-top:16px}.panel-head>div p{margin:4px 0 0;font-size:9px;color:var(--muted)}.panel-head>a{font-size:10px;color:#a14d6b;text-decoration:none}.admin-list-row,.person-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #f2e9ed}.admin-list-row:last-child,.person-row:last-child{border-bottom:0}.time-block{width:54px;flex:0 0 54px}.time-block b{display:block;font-size:14px}.time-block small{display:block;font-size:9px;color:var(--muted)}.grow{min-width:0;flex:1}.grow strong,.person-row strong{font-size:12px}.grow small,.person-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.status-pill{padding:6px 8px;border-radius:999px;font-size:8px;font-weight:800}.status-pill.neutral{background:#f4eff2;color:#755f6b}.quick-action{display:grid;grid-template-columns:38px 1fr 18px;gap:10px;align-items:center;text-decoration:none;padding:11px;border:1px solid var(--line);border-radius:14px;margin-top:8px;transition:.15s}.quick-action:hover{border-color:#e9a2bb;background:#fff7fa}.quick-action>span{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#ffe9f1;color:#a14c6c}.quick-action strong{font-size:11px}.quick-action small{display:block;font-size:8px;color:var(--muted);margin-top:2px}.quick-action>b{font-size:14px;color:#b56582}.money-summary{margin-top:12px;padding:14px;border-radius:15px;background:#fff7e7;border:1px solid #f1dfb7}.money-summary span,.money-summary small{display:block;font-size:9px;color:#7d6842}.money-summary strong{font-size:22px;display:block;margin:4px 0}.person-avatar{width:38px;height:38px;border-radius:12px;background:#ffe2ed;color:#a34c6d;display:grid;place-items:center;font-weight:900;flex:0 0 38px}.person-avatar.student{background:#eaf4ff;color:#557ca5}.person-avatar.parent{background:#eee7fb;color:#735a9a}.person-row>b{font-size:10px;color:#8a6272}.empty-state{padding:18px;border-radius:14px;background:#faf7f8;color:var(--muted);font-size:10px;line-height:1.5}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.directory-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:16px;align-items:start}.directory-list{min-height:330px}.directory-card{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #f2e9ed}.directory-card:last-child{border:0}.directory-card h3{font-size:14px;margin:0}.directory-card p{font-size:10px;color:var(--muted);margin:3px 0 8px}.meta-chips{display:flex;gap:6px;flex-wrap:wrap}.meta-chips span{font-size:8px;padding:5px 7px;border-radius:999px;background:#faf3f6;color:#80636f}.create-panel{position:sticky;top:90px}.ohana-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-wrap{display:grid;align-content:start;gap:6px}.field-wrap>span{font-size:9px;font-weight:850;color:#6b5b64;text-transform:uppercase;letter-spacing:.04em}.field-wrap input,.field-wrap select,.field-wrap textarea{width:100%;border:1px solid var(--line);background:#fffafd;border-radius:11px;padding:11px 12px;outline:none;color:var(--ink)}.field-wrap textarea{resize:vertical}.field-wrap input:focus,.field-wrap select:focus,.field-wrap textarea:focus{border-color:#e58cab;box-shadow:0 0 0 3px #fde8f0}.field-wrap small{font-size:8px;line-height:1.4;color:var(--muted)}.field-wrap em{font-size:8px;font-style:normal;color:#b14b5c}.privacy-form-note{grid-column:1/-1;background:#f3f7ff;border:1px solid #e0e8f4;border-radius:12px;padding:9px 11px;font-size:8px;color:#687389;line-height:1.45}.btn.full{grid-column:1/-1;width:100%}.flash-stack{display:grid;gap:8px;margin-bottom:14px}.flash{padding:11px 13px;border-radius:12px;font-size:10px;background:#e9f7ef;color:#46765e;border:1px solid #d4ecdf}.flash.error{background:#fff0f2;color:#a84b5b;border-color:#f2d2d8}.mobile-nav-button{display:none}

/* login polish */
.login-copy{display:flex;flex-direction:column;min-height:650px}.login-copy-center{margin:auto 0}.login-copy h1{font-size:46px;letter-spacing:-.045em}.back-site{font-size:10px;color:#8d6574;text-decoration:none}.login-card{display:flex;flex-direction:column;justify-content:center}.login-mark{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#f08caf,#f4b0c7);color:#fff;font-family:Georgia,serif;font-size:25px;font-weight:900;margin-bottom:22px;box-shadow:0 10px 25px rgba(226,116,155,.22)}.login-card h2{font-size:31px;letter-spacing:-.03em;margin:7px 0}.login-help{padding:12px;border-radius:13px;background:#fff6f9;border:1px solid #f2dbe4;margin:4px 0 16px}.login-help strong,.login-help span{display:block;font-size:9px}.login-help span{color:var(--muted);line-height:1.45;margin-top:3px}.login-security{font-size:8px;color:#9b8992}

@media(max-width:1100px){.admin-stats{grid-template-columns:1fr 1fr}.admin-grid-main,.directory-grid{grid-template-columns:1fr}.create-panel{position:static}.admin-grid-main.second-row{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.mobile-nav-button{display:grid;place-items:center;position:fixed;z-index:90;left:12px;top:14px;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#6b4b59}.admin-sidebar{display:block;transform:translateX(-105%);transition:.18s;z-index:100}.nav-open .admin-sidebar{transform:none}.admin-sidebar~.main{margin-left:0}.admin-top{padding-left:64px}.admin-content{padding:18px 14px 40px}.admin-welcome,.page-heading{align-items:flex-start;flex-direction:column}.admin-stats{grid-template-columns:1fr 1fr}.admin-grid-main,.admin-grid-main.second-row,.directory-grid{grid-template-columns:1fr}.ohana-form{grid-template-columns:1fr}.privacy-form-note,.btn.full{grid-column:auto}.date-card{width:100%}.page-heading .btn{width:100%}.top-account span{display:none}}
@media(max-width:480px){.admin-stats{grid-template-columns:1fr}.admin-welcome h1,.page-heading h1{font-size:29px}.login-copy{display:none}.login-card{padding:32px 22px}}

/* v3 — enrollments + school schedule */
.card-actions{margin-top:9px}.card-actions a{display:inline-flex;font-size:9px;font-weight:800;color:#a64f70;text-decoration:none;padding:6px 8px;border-radius:9px;background:#fff1f6;border:1px solid #f2d7e2}.card-actions a:hover{background:#ffe7f0}
.form-errors{grid-column:1/-1;padding:10px 12px;border-radius:12px;background:#fff0f2;color:#a84b5b;border:1px solid #f2d2d8;font-size:9px}.form-errors ul{margin:0;padding-left:18px}
.enrollment-card{align-items:flex-start}.week-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:12px}.week-toolbar a{text-decoration:none;color:#a14d6b;font-size:10px;font-weight:800}.week-toolbar strong{font-size:12px;color:#553746}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:8px;overflow:auto;padding-bottom:6px;margin-bottom:16px}.week-day{min-width:145px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.week-day.today{border-color:#e88eae;box-shadow:0 0 0 2px #fde7ef}.week-day>header{display:flex;align-items:center;justify-content:space-between;padding:10px 11px;background:#fff5f8;border-bottom:1px solid var(--line)}.week-day>header b{font-size:11px}.week-day>header span{font-size:9px;color:var(--muted)}.week-day-body{padding:7px;display:grid;gap:7px;min-height:190px;align-content:start}.lesson-chip{padding:9px;border-radius:11px;background:linear-gradient(145deg,#ffe6ef,#fff4f8);border:1px solid #f5cfdd;display:grid;gap:2px}.lesson-chip>b{font-size:12px;color:#a44267}.lesson-chip strong{font-size:10px}.lesson-chip span{font-size:9px;color:#5d4b54}.lesson-chip small{font-size:7.5px;line-height:1.35;color:var(--muted)}.day-empty{font-size:9px;color:#aaa0a5;text-align:center;padding:26px 5px}.schedule-create{max-width:860px}.schedule-form{grid-template-columns:1fr 1fr 1fr}.schedule-form .field-wrap:nth-of-type(1){grid-column:1/-1}.schedule-form .field-wrap:nth-of-type(5),.schedule-form .field-wrap:nth-of-type(6){grid-column:span 1}.schedule-form textarea{min-height:78px}
@media(max-width:900px){.schedule-form{grid-template-columns:1fr 1fr}.schedule-form .field-wrap:nth-of-type(1){grid-column:1/-1}.week-grid{grid-template-columns:repeat(7,155px)}}
@media(max-width:600px){.week-toolbar{align-items:stretch;flex-wrap:wrap}.week-toolbar strong{order:-1;width:100%;text-align:center}.schedule-form{grid-template-columns:1fr}.schedule-form .field-wrap:nth-of-type(1){grid-column:auto}.week-grid{grid-template-columns:repeat(7,150px)}}


/* v4 — central student card */
.title-link{text-decoration:none;color:inherit}.title-link:hover{color:#a64f70}.student-directory-card .person-avatar{text-decoration:none}.card-actions{display:flex;gap:6px;flex-wrap:wrap}.card-actions .card-open{background:#332b30;color:#fff;border-color:#332b30}.row-link{text-decoration:none;color:inherit}.row-link:hover{background:#fff7fa;border-radius:12px;padding-left:7px;padding-right:7px}.breadcrumbs{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted);margin-bottom:14px}.breadcrumbs a{color:#a34d6d;text-decoration:none}.student-profile-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;margin-bottom:14px;background:linear-gradient(135deg,#fff,#fff0f6 70%,#f5efff);border:1px solid #efdce5;border-radius:24px;box-shadow:0 12px 35px rgba(86,49,67,.055)}.student-profile-main{display:flex;align-items:center;gap:18px;min-width:0}.student-profile-avatar{width:72px;height:72px;flex:0 0 72px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#dceeff,#edf7ff);color:#557ca5;font-size:27px;font-weight:900;box-shadow:0 10px 24px rgba(70,105,140,.12)}.student-profile-hero h1{font-size:30px;letter-spacing:-.035em;margin:4px 0}.student-profile-hero p{margin:0;color:var(--muted);font-size:11px}.student-contact-line{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.student-contact-line span{font-size:8px;padding:6px 8px;border-radius:999px;background:#fff;border:1px solid var(--line);color:#715e68}.student-profile-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.btn.secondary{background:#fff;color:#944460;border:1px solid #edcbd8;box-shadow:none;text-decoration:none}.btn.secondary:hover{background:#fff1f6}.student-profile-actions .btn{margin:0;padding:11px 13px;font-size:9px;text-decoration:none}.student-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.student-kpi{padding:14px 15px;border-radius:17px;background:#fff;border:1px solid var(--line)}.student-kpi.warn{background:#fff9ec;border-color:#f0dfb9}.student-kpi span,.student-kpi small{display:block;font-size:8px;color:var(--muted)}.student-kpi strong{display:block;font-size:23px;color:#553746;margin:4px 0}.student-detail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);gap:14px;align-items:start}.student-detail-main,.student-detail-side{display:grid;gap:14px}.student-section{padding:18px}.sticky-card{position:sticky;top:88px;z-index:2}.subject-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.subject-card{border:1px solid #eedee5;border-radius:16px;padding:14px;background:linear-gradient(155deg,#fff,#fff8fb)}.subject-card header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.subject-card h3{font-size:13px;margin:5px 0 0}.subject-card header>b{font-size:12px;color:#a24768;white-space:nowrap}.subject-label{display:inline-flex;padding:5px 7px;border-radius:999px;background:#ffe8f0;color:#9d4567;font-size:8px;font-weight:850}.subject-card>p{font-size:9px;color:var(--muted);min-height:28px}.subject-card-meta{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.subject-card-meta span{font-size:7.5px;padding:5px 6px;border-radius:8px;background:#f7f2f4;color:#705e67}.subject-card-actions{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid #f1e5ea;padding-top:9px}.subject-card-actions a{font-size:8px;font-weight:800;color:#9f4869;text-decoration:none}.student-lesson-row{display:grid;grid-template-columns:55px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #f2e9ed}.student-lesson-row:last-child{border-bottom:0}.student-lesson-time b{display:block;font-size:14px}.student-lesson-time span{display:block;font-size:8px;color:var(--muted)}.student-lesson-row strong,.student-work-row strong,.student-parent-row strong,.student-payment-row strong,.student-history-row strong{font-size:10px}.student-lesson-row small,.student-work-row small,.student-parent-row small,.student-payment-row small,.student-history-row small{display:block;font-size:7.5px;color:var(--muted);margin-top:3px}.lesson-money{text-align:right}.lesson-money>b{display:block;font-size:10px}.mini-status{display:inline-flex;margin-top:4px;padding:4px 6px;border-radius:999px;font-size:7px;font-weight:850;white-space:nowrap}.mini-status.paid,.mini-status.accepted{background:#e7f6ee;color:#438065}.mini-status.pending,.mini-status.assigned{background:#fff4df;color:#8e6a30}.mini-status.failed,.mini-status.revision{background:#fff0f2;color:#a9515f}.mini-status.submitted{background:#edf3ff;color:#5677a5}.mini-status.refunded{background:#f1eef7;color:#71658a}.student-work-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #f2e9ed}.student-work-row:last-child{border-bottom:0}.work-status{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f6f0f3;color:#8d7882;font-size:12px;font-weight:900}.work-status.accepted{background:#e8f6ef;color:#438065}.work-status.revision{background:#fff0f2;color:#a9515f}.work-status.submitted{background:#edf3ff;color:#5677a5}.progress-row{display:grid;grid-template-columns:68px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #f2e9ed}.progress-row:last-child{border-bottom:0}.progress-score{width:64px;height:64px;border-radius:18px;background:linear-gradient(145deg,#ffe1ec,#fff1f6);display:grid;place-items:center;align-content:center}.progress-score b{font-size:17px;color:#a04367}.progress-score span{font-size:6.5px;color:var(--muted)}.progress-row strong{font-size:10px}.progress-row p{font-size:8px;color:#695a61;line-height:1.5;margin:5px 0}.progress-row small{font-size:7px;color:var(--muted)}.ohana-form.one-column{grid-template-columns:1fr}.ohana-form.one-column .btn.full{grid-column:auto}.student-parent-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #f2e9ed}.student-parent-row:last-child{border-bottom:0}.student-payment-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #f2e9ed}.student-payment-row:last-child{border-bottom:0}.student-history-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid #f2e9ed}.student-history-row:last-child{border-bottom:0}.student-history-row>span{font-size:8px;color:var(--muted)}.student-history-row>b{font-size:7.5px;color:#866b77}
@media(max-width:1180px){.student-kpi-grid{grid-template-columns:repeat(3,1fr)}.student-detail-layout{grid-template-columns:1fr}.student-detail-side{grid-template-columns:1fr 1fr}.sticky-card{position:static}.subject-card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.student-profile-hero{align-items:flex-start;flex-direction:column}.student-profile-actions{width:100%;justify-content:flex-start}.student-profile-actions .btn{flex:1}.student-kpi-grid{grid-template-columns:1fr 1fr}.student-detail-side{grid-template-columns:1fr}.subject-card-grid{grid-template-columns:1fr}.student-lesson-row{grid-template-columns:48px minmax(0,1fr)}.lesson-money{grid-column:2;text-align:left}.student-profile-avatar{width:58px;height:58px;flex-basis:58px;border-radius:18px;font-size:22px}.student-profile-hero h1{font-size:25px}}
@media(max-width:480px){.student-profile-main{align-items:flex-start}.student-kpi-grid{grid-template-columns:1fr}.student-profile-actions{display:grid;grid-template-columns:1fr}.student-work-row{grid-template-columns:30px minmax(0,1fr)}.student-work-row>.mini-status{grid-column:2;width:max-content}.progress-row{grid-template-columns:54px minmax(0,1fr)}.progress-score{width:50px;height:50px;border-radius:14px}.progress-score b{font-size:14px}}

/* v5 — homework workflow + role workspaces */
.workspace-sidebar .brand{text-decoration:none}.workspace-sidebar nav a{display:flex;align-items:center;gap:10px}.workspace-sidebar nav a span{width:22px;text-align:center}.workspace-sidebar nav a em{font-style:normal;font-size:8px;margin-left:auto;opacity:.55}.workspace-sidebar nav a.disabled{opacity:.48;cursor:not-allowed}.workspace-sidebar .role{padding:0 13px;margin:10px 0 22px}.panel-link{font-size:9px!important;color:#a14d6b!important;text-decoration:none}.flash.warning{background:#fff7e7;color:#856936;border-color:#f0dfb8}.full-row{grid-column:1/-1}
.homework-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px;padding:21px 23px;border:1px solid #eedce4;border-radius:22px;background:linear-gradient(135deg,#fff,#fff2f7 72%,#f2edff)}.homework-hero h1{font-size:32px;letter-spacing:-.035em;margin:6px 0}.homework-hero p{font-size:10px;color:var(--muted);margin:0;max-width:720px;line-height:1.55}.homework-alert{min-width:100px;padding:12px 15px;border-radius:16px;background:#fff0f2;border:1px solid #f2cdd4;text-align:center}.homework-alert b{display:block;font-size:23px;color:#b64f60}.homework-alert span{font-size:8px;color:#8f626a}.homework-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:14px}.homework-kpi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:15px;background:#fff;border:1px solid var(--line);text-decoration:none;transition:.14s}.homework-kpi:hover,.homework-kpi.active{border-color:#e797b3;background:#fff3f7;transform:translateY(-1px)}.homework-kpi span{font-size:9px;color:#74626b}.homework-kpi strong{font-size:18px;color:#573848}.homework-create-panel{margin-bottom:14px}.homework-create-form{grid-template-columns:1.2fr 1fr 1fr}.homework-create-form .field-wrap.wide{grid-column:1/-1}.homework-create-form .btn{grid-column:1/-1;justify-self:start;margin-top:2px}.homework-list-panel{padding:18px 20px}.homework-list{display:grid}.homework-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;text-decoration:none;padding:12px 4px;border-bottom:1px solid #f1e7eb;transition:.14s}.homework-row:last-child{border-bottom:0}.homework-row:hover{background:#fff8fa;padding-left:9px;padding-right:9px;border-radius:13px}.homework-row.overdue{background:linear-gradient(90deg,#fff9f2,#fff)}.homework-row-status{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:14px;font-weight:900;background:#f6f0f3;color:#88747e}.homework-row-status.accepted{background:#e8f6ef;color:#438065}.homework-row-status.submitted{background:#edf3ff;color:#5677a5}.homework-row-status.revision{background:#fff0f2;color:#a9515f}.homework-row-status.assigned{background:#fff5e5;color:#8d6b34}.homework-row-main{min-width:0}.homework-row-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.homework-row-main strong{font-size:11px}.homework-row-main p{font-size:8.5px;color:#684f5b;margin:3px 0}.homework-row-main small{font-size:7.5px;color:var(--muted)}.homework-open{font-size:8px;font-weight:850;color:#9e4969}.mini-status.overdue{background:#3f3338;color:#fff}
.homework-detail-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px;padding:22px 24px;border-radius:23px;border:1px solid #eddae3;background:linear-gradient(135deg,#fff,#fff1f6 70%,#eee8fb)}.homework-detail-hero h1{font-size:30px;letter-spacing:-.035em;margin:7px 0 4px}.homework-detail-hero p{margin:0;font-size:10px;color:var(--muted)}.homework-detail-state{display:flex;align-items:flex-end;flex-direction:column;gap:5px}.homework-detail-state small{font-size:8px;color:var(--muted)}.homework-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);gap:14px;align-items:start}.homework-detail-main,.homework-detail-side{display:grid;gap:14px}.homework-block,.homework-meta-card,.homework-action-card,.parent-readonly-note,.accepted-note{padding:18px}.homework-copy{font-size:10px;line-height:1.7;color:#55484f;padding:13px 14px;border-radius:13px;background:#fbf8f9;border:1px solid #f0e5e9}.homework-copy.answer{background:#f4f8ff;border-color:#e1eaf5}.homework-copy.feedback{background:#f8f2ff;border-color:#eadcf5}.homework-resources{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.resource-button{display:inline-flex;align-items:center;padding:9px 11px;border-radius:10px;background:#fff0f6;border:1px solid #efcedb;color:#954261;text-decoration:none;font-size:8px;font-weight:850}.resource-button.student{background:#eef5ff;border-color:#dce8f6;color:#4f7198}.feedback-block{border-color:#e6d9f1;background:linear-gradient(155deg,#fff,#fbf7ff)}.homework-meta-card h2{font-size:15px;margin:0 0 10px}.meta-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #f1e8ec;font-size:8px}.meta-line span{color:var(--muted)}.meta-line strong{text-align:right;font-size:8.5px}.homework-student-link{margin-top:12px!important;text-align:center}.homework-action-card{border-color:#efd7e1}.revision-note{display:grid;gap:4px;margin-bottom:12px;padding:10px 11px;border-radius:11px;background:#fff0f2;color:#8e4a57;font-size:8px;line-height:1.5}.review-form ul{list-style:none;margin:2px 0 8px;padding:0;display:grid;gap:6px}.review-form li label{display:flex;align-items:center;gap:7px;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:#fffafd;font-size:8.5px}.review-form input[type=radio]{accent-color:#e66f99}.parent-readonly-note{background:#f3f7ff;border-color:#dde7f5}.parent-readonly-note b{font-size:10px;color:#56708d}.parent-readonly-note p,.accepted-note p{font-size:8px;line-height:1.5;color:var(--muted);margin:5px 0 0}.accepted-note{background:#edf8f2;border-color:#d4ecdf}.accepted-note b{font-size:10px;color:#3e7d60}
@media(max-width:1080px){.homework-kpis{grid-template-columns:repeat(3,1fr)}.homework-detail-grid{grid-template-columns:1fr}.homework-detail-side{grid-template-columns:1fr 1fr}.homework-create-form{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.workspace-sidebar{display:block!important;transform:translateX(-105%);transition:.18s;z-index:100}.nav-open .workspace-sidebar{transform:none}.workspace-sidebar~.main{margin-left:0}.homework-hero,.homework-detail-hero{align-items:flex-start;flex-direction:column}.homework-detail-state{align-items:flex-start}.homework-kpis{grid-template-columns:1fr 1fr}.homework-create-form{grid-template-columns:1fr}.homework-create-form .field-wrap.wide,.homework-create-form .btn{grid-column:auto}.homework-detail-side{grid-template-columns:1fr}.homework-row{grid-template-columns:34px minmax(0,1fr)}.homework-open{grid-column:2}.homework-hero h1,.homework-detail-hero h1{font-size:26px}}
@media(max-width:460px){.homework-kpis{grid-template-columns:1fr}.homework-alert{width:100%}.homework-row-top{align-items:flex-start;flex-direction:column}.homework-detail-hero{padding:18px}.homework-detail-hero h1{font-size:23px}}

/* v6 — teacher workspace */
.secondary-btn{background:#fff!important;color:#954463!important;border:1px solid #edcbd8!important;box-shadow:none!important;text-decoration:none!important;margin:0!important}.secondary-btn:hover{background:#fff1f6!important}.teacher-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:14px;padding:22px 24px;border:1px solid #eedce4;border-radius:23px;background:linear-gradient(135deg,#fff,#fff2f7 70%,#efe9fb)}.teacher-hero h1{font-size:32px;letter-spacing:-.035em;margin:7px 0 5px}.teacher-hero p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.teacher-date-card{min-width:150px;padding:13px 15px;border-radius:16px;background:#fff;border:1px solid #eadce2}.teacher-date-card span,.teacher-date-card small{display:block;font-size:8px;color:var(--muted)}.teacher-date-card strong{display:block;font-size:18px;margin:3px 0}.teacher-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.teacher-kpi{display:block;padding:15px 16px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(155deg,#fff,#fff8fb);text-decoration:none;transition:.15s}.teacher-kpi:hover{transform:translateY(-1px);border-color:#e8a1ba}.teacher-kpi.money{background:#fff9ec;border-color:#f0dfb9}.teacher-kpi span,.teacher-kpi small{display:block;font-size:8px;color:var(--muted)}.teacher-kpi strong{display:block;font-size:25px;color:#563447;margin:4px 0}.teacher-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);gap:14px}.teacher-main-panel{min-width:0}.teacher-lesson-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #f2e9ed}.teacher-lesson-row:last-child{border-bottom:0}.teacher-time b{display:block;font-size:14px}.teacher-time span{display:block;font-size:8px;color:var(--muted)}.teacher-review-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;text-decoration:none;padding:10px 0;border-bottom:1px solid #f1e8ec}.teacher-review-row:last-child{border-bottom:0}.teacher-review-row>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#edf3ff;color:#5677a5;font-weight:900}.teacher-review-row b{font-size:8px;color:#9b4b68}.teacher-student-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.teacher-student-mini{display:flex;gap:9px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;text-decoration:none;background:#fffafd}.teacher-student-mini>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#ffe8f0;color:#a34b6d;font-weight:900}.teacher-student-mini strong{font-size:10px}.teacher-student-mini small{display:block;font-size:7.5px;color:var(--muted);margin-top:3px}.mini-status.planned{background:#eef4ff;color:#54759b}.mini-status.done{background:#e8f6ef;color:#438065}.mini-status.cancelled{background:#f2eef1;color:#887982}.mini-status.moved{background:#f2edff;color:#735e9b}.teacher-page-heading .btn{font-size:9px;padding:11px 13px}.teacher-week-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:11px}.teacher-week-nav a{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;text-decoration:none}.teacher-week-nav strong{min-width:200px;text-align:center;font-size:11px}.teacher-calendar{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));gap:8px;overflow:auto;padding-bottom:6px}.teacher-day{min-width:135px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.teacher-day.today{border-color:#e98baa;box-shadow:0 0 0 1px #e98baa inset}.teacher-day>header{display:flex;justify-content:space-between;padding:10px 11px;background:#fff2f7;border-bottom:1px solid var(--line)}.teacher-day>header b{font-size:10px}.teacher-day>header span{font-size:8px;color:var(--muted)}.teacher-day-body{padding:8px;display:grid;gap:7px;min-height:300px;align-content:start}.teacher-calendar-event{padding:9px;border-radius:12px;background:linear-gradient(145deg,#ffe6ef,#fff4f8);border:1px solid #f0cad8}.teacher-calendar-event.done{background:#eaf7f0;border-color:#d3eadf}.teacher-calendar-event.cancelled{opacity:.58;background:#f3f0f2;border-color:#e4dde1}.teacher-calendar-time{font-size:13px;font-weight:900;color:#8f3d60}.teacher-calendar-event strong{display:block;font-size:9px;margin-top:4px}.teacher-calendar-event small{display:block;font-size:7px;color:var(--muted);margin-top:2px}.teacher-calendar-event>a{display:inline-block;margin-top:7px;font-size:7.5px;font-weight:850;color:#944460;text-decoration:none}.lesson-status-form{margin-top:7px}.lesson-status-form button{border:1px solid #e9ced8;background:#fff;border-radius:8px;padding:6px 7px;font-size:7px;font-weight:800;color:#875063;cursor:pointer}.teacher-no-lessons{font-size:8px;color:#b0a3aa;text-align:center;padding:20px 0}.teacher-scope-note{margin-top:12px;padding:10px 12px;border:1px solid #e1e8f0;border-radius:12px;background:#f4f7fb;color:#647080;font-size:8px;line-height:1.5}.teacher-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.teacher-student-card{display:block;padding:17px;border:1px solid var(--line);border-radius:19px;background:linear-gradient(155deg,#fff,#fff8fb);text-decoration:none;transition:.15s}.teacher-student-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(82,47,65,.07);border-color:#e8a1ba}.teacher-student-card-head{display:flex;align-items:center;gap:11px}.teacher-student-card-head>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eaf4ff;color:#557ca5;font-weight:900}.teacher-student-card h2{font-size:14px;margin:0}.teacher-student-card p{font-size:8px;color:var(--muted);margin:3px 0 0}.teacher-card-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.teacher-card-metrics div{padding:8px;border-radius:10px;background:#faf6f8}.teacher-card-metrics span{display:block;font-size:6.5px;color:var(--muted)}.teacher-card-metrics strong{display:block;font-size:10px;margin-top:3px}.teacher-card-open{margin-top:12px;padding-top:10px;border-top:1px solid #f0e4e9;font-size:8px;font-weight:850;color:#9c4968}.teacher-student-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 23px;margin-bottom:13px;border:1px solid #efdce5;border-radius:22px;background:linear-gradient(135deg,#fff,#fff0f6 70%,#f3efff)}.teacher-student-identity{display:flex;align-items:center;gap:14px}.teacher-student-avatar{width:62px;height:62px;border-radius:19px;display:grid;place-items:center;background:#eaf4ff;color:#557ca5;font-size:22px;font-weight:900}.teacher-student-hero h1{font-size:28px;margin:4px 0}.teacher-student-hero p{font-size:9px;color:var(--muted);margin:0}.teacher-student-actions{display:flex;gap:7px;flex-wrap:wrap}.teacher-student-actions .btn{padding:11px 13px;font-size:8px;text-decoration:none;margin:0}.teacher-detail-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:13px}.teacher-detail-kpis>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.teacher-detail-kpis span{display:block;font-size:7px;color:var(--muted)}.teacher-detail-kpis strong{display:block;font-size:16px;margin-top:4px}.teacher-detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:13px;align-items:start}.teacher-detail-main,.teacher-detail-side{display:grid;gap:13px}.teacher-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.teacher-subject-card{padding:13px;border-radius:14px;background:#fff7fa;border:1px solid #efdde5}.teacher-subject-card>span{font-size:9px;font-weight:850;color:#a14869}.teacher-subject-card>strong{float:right;font-size:10px}.teacher-subject-card small{display:block;clear:both;font-size:7px;color:var(--muted);margin-top:6px}.teacher-subject-card a{display:inline-block;font-size:7px;font-weight:850;color:#9b4666;text-decoration:none;margin-top:8px}.teacher-progress-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid #f1e8ec}.teacher-progress-row:last-child{border-bottom:0}.teacher-progress-row>div:first-child{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;align-content:center;background:#fff0f6}.teacher-progress-row>div:first-child b{font-size:15px;color:#a14668}.teacher-progress-row>div:first-child span{font-size:6px;color:var(--muted)}.teacher-progress-row strong{font-size:9px}.teacher-progress-row p{font-size:7.5px;color:#66565e;line-height:1.5;margin:4px 0}.teacher-progress-row small{font-size:6.5px;color:var(--muted)}
@media(max-width:1120px){.teacher-kpis{grid-template-columns:1fr 1fr}.teacher-dashboard-grid{grid-template-columns:1fr}.teacher-student-strip{grid-template-columns:1fr 1fr}.teacher-calendar{grid-template-columns:repeat(7,minmax(155px,1fr))}.teacher-detail-kpis{grid-template-columns:repeat(3,1fr)}.teacher-detail-layout{grid-template-columns:1fr}.teacher-detail-side{grid-template-columns:1fr 1fr}.teacher-student-grid{grid-template-columns:1fr}}
@media(max-width:760px){.teacher-hero,.teacher-student-hero{align-items:flex-start;flex-direction:column}.teacher-date-card{width:100%}.teacher-kpis{grid-template-columns:1fr 1fr}.teacher-student-strip{grid-template-columns:1fr}.teacher-card-metrics{grid-template-columns:1fr 1fr}.teacher-detail-kpis{grid-template-columns:1fr 1fr}.teacher-detail-side{grid-template-columns:1fr}.teacher-subject-grid{grid-template-columns:1fr}.teacher-student-actions{width:100%}.teacher-student-actions .btn{flex:1}.teacher-lesson-row{grid-template-columns:48px minmax(0,1fr)}.teacher-lesson-row>.mini-status{grid-column:2;width:max-content}}
@media(max-width:460px){.teacher-kpis,.teacher-detail-kpis{grid-template-columns:1fr}.teacher-student-identity{align-items:flex-start}.teacher-student-avatar{width:52px;height:52px;flex:0 0 52px}.teacher-student-actions{display:grid;grid-template-columns:1fr}.teacher-card-metrics{grid-template-columns:1fr}.teacher-review-row{grid-template-columns:32px minmax(0,1fr)}.teacher-review-row>b{grid-column:2}}

/* ===== v7: student workspace ===== */
.student-hero{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;margin-bottom:14px;padding:24px 25px;border:1px solid #eedce5;border-radius:24px;background:linear-gradient(135deg,#fff,#fff0f6 68%,#eee9fb)}
.student-hero h1{font-size:34px;letter-spacing:-.04em;margin:8px 0 6px}.student-hero p{margin:0;color:var(--muted);font-size:10px}.student-hero-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.student-hero-chips span{padding:6px 9px;border-radius:999px;background:#fff;border:1px solid #eadce2;font-size:7.5px;color:#745f69;font-weight:800}.student-date-card{min-width:155px;padding:14px 16px;border-radius:17px;background:#fff;border:1px solid #eadce2}.student-date-card span,.student-date-card small{display:block;font-size:8px;color:var(--muted)}.student-date-card strong{display:block;font-size:24px;color:#65354a;margin:2px 0}.student-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.student-kpi{display:block;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(155deg,#fff,#fff8fb);text-decoration:none;transition:.15s}.student-kpi:hover{transform:translateY(-1px);border-color:#e7a0b8}.student-kpi.money{background:#fff9e9;border-color:#efdeb9}.student-kpi span,.student-kpi small{display:block;font-size:8px;color:var(--muted)}.student-kpi strong{display:block;font-size:25px;color:#59364a;margin:4px 0}.student-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.72fr);gap:14px}.student-main-stack,.student-side-stack{display:grid;gap:14px;align-content:start}.student-lesson-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #f1e8ed}.student-lesson-row:last-child{border-bottom:0}.student-lesson-time b{display:block;font-size:15px}.student-lesson-time span{display:block;font-size:8px;color:var(--muted)}.student-lesson-row strong{font-size:10px}.student-lesson-row small{display:block;font-size:7.5px;color:var(--muted);margin-top:3px}.student-lesson-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.student-lesson-actions>a{padding:7px 9px;border-radius:9px;background:#f9dce7;color:#91435f;font-size:7px;font-weight:850;text-decoration:none}.student-homework-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f1e8ed;text-decoration:none}.student-homework-row:last-child{border-bottom:0}.student-homework-row>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#eef4ff;color:#5579a4;font-weight:900}.student-homework-row strong{font-size:9px}.student-homework-row small{display:block;font-size:7px;color:var(--muted);margin-top:3px}.student-homework-row>b{font-size:7px;color:#974662}.student-subject-mini{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f1e8ed}.student-subject-mini:last-child{border-bottom:0}.student-subject-mini strong{font-size:9px}.student-subject-mini small{display:block;font-size:7px;color:var(--muted);margin-top:2px}.student-subject-mini>span{font-size:9px;font-weight:900;color:#8d3d5e;white-space:nowrap}.student-report-mini{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f1e8ed}.student-report-mini:last-child{border-bottom:0}.student-report-score{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eaf7f0;color:#408064;font-size:11px;font-weight:900}.student-report-mini strong{font-size:9px}.student-report-mini small{display:block;font-size:7px;color:var(--muted);margin-top:2px}
.student-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px}.student-page-head h1{font-size:31px;margin:7px 0 5px;letter-spacing:-.035em}.student-page-head p{margin:0;color:var(--muted);font-size:9px}.student-timezone-chip{padding:10px 12px;border:1px solid #dbe8f3;border-radius:13px;background:#eef7ff;color:#4f6e84;font-size:9px;font-weight:850}.student-timezone-chip small{display:block;margin-top:3px;font-size:6.5px;font-weight:500}.student-week-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:11px}.student-week-nav a{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;text-decoration:none}.student-week-nav strong{min-width:210px;text-align:center;font-size:11px}.student-calendar-wrap{overflow:auto;padding-bottom:6px}.student-calendar{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:8px;min-width:1060px}.student-day{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.student-day.today{border-color:#e98baa;box-shadow:0 0 0 1px #e98baa inset}.student-day>header{display:flex;justify-content:space-between;padding:10px 11px;background:#fff2f7;border-bottom:1px solid var(--line)}.student-day>header b{font-size:10px}.student-day>header span{font-size:8px;color:var(--muted)}.student-day-body{padding:8px;display:grid;gap:7px;min-height:310px;align-content:start}.student-calendar-event{padding:9px;border-radius:12px;background:linear-gradient(145deg,#ffe6ef,#fff5f8);border:1px solid #f0cad8}.student-calendar-event.done{background:#eaf7f0;border-color:#d2eade}.student-calendar-event.cancelled{opacity:.58;background:#f3f0f2;border-color:#e4dde1}.student-calendar-event.moved{background:#f2edff;border-color:#ddd2f2}.student-calendar-time{font-size:14px;font-weight:900;color:#8f3d60}.student-calendar-event strong{display:block;font-size:9px;margin-top:4px}.student-calendar-event small{display:block;font-size:7px;color:var(--muted);margin-top:2px}.student-calendar-event>a{display:inline-block;margin-top:7px;font-size:7px;font-weight:850;color:#944460;text-decoration:none}.student-calendar-event>.mini-status{display:inline-flex;margin-top:7px}.student-no-lessons{font-size:8px;color:#b0a3aa;text-align:center;padding:20px 0}.student-scope-note{margin-top:12px;padding:10px 12px;border:1px solid #dfe7ef;border-radius:12px;background:#f5f8fb;color:#637080;font-size:8px;line-height:1.55}
.student-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.student-result-card{padding:18px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(155deg,#fff,#fff9fb)}.student-result-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.student-result-head>div:first-child>span{font-size:8px;font-weight:900;color:#a34769}.student-result-head h2{font-size:15px;margin:4px 0}.student-result-head small{font-size:7px;color:var(--muted)}.student-big-score{width:64px;height:64px;flex:0 0 64px;border-radius:18px;display:grid;place-items:center;align-content:center;background:#e9f7f0;color:#3e7d61}.student-big-score b{font-size:18px}.student-big-score span{font-size:6px}.student-result-metrics{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:13px 0}.student-result-metrics div{padding:10px;border-radius:11px;background:#faf6f8}.student-result-metrics span{display:block;font-size:6.5px;color:var(--muted)}.student-result-metrics strong{display:block;font-size:12px;margin-top:3px}.student-report-text{padding:11px;border-radius:12px;background:#fff}.student-report-text strong{font-size:8px}.student-report-text p{font-size:7.5px;line-height:1.55;color:#62545c;margin:6px 0 0}.student-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.student-tags .label{font-size:7px;color:var(--muted);align-self:center}.student-tags em{font-style:normal;padding:5px 7px;border-radius:999px;background:#eaf7f0;color:#477b64;font-size:6.5px;font-weight:800}.student-tags.focus em{background:#fff2e3;color:#8a673e}.student-report-date{display:block;margin-top:10px;font-size:6.5px;color:var(--muted)}
.student-board-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.student-board-card{display:flex;flex-direction:column;min-height:240px;padding:18px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(155deg,#fff,#fff5f9)}.student-board-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:#ffe6ef;color:#a14668;font-size:16px;font-weight:900}.student-board-card>span{margin-top:14px;font-size:8px;font-weight:900;color:#a34769}.student-board-card h2{font-size:14px;margin:4px 0}.student-board-card p{font-size:8px;color:var(--muted);line-height:1.55;margin-bottom:16px}.student-board-card .btn{margin-top:auto;align-self:flex-start;text-decoration:none;font-size:8px;padding:10px 13px}.btn-muted{background:#eee8eb!important;color:#8e8087!important;box-shadow:none!important;cursor:not-allowed!important}.student-payment-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:10px;margin-bottom:14px}.student-payment-kpis>div{padding:15px 16px;border:1px solid var(--line);border-radius:17px;background:#fff}.student-payment-kpis>div.warn{background:#fff8e8;border-color:#efddb7}.student-payment-kpis span,.student-payment-kpis small{display:block;font-size:8px;color:var(--muted)}.student-payment-kpis strong{display:block;font-size:24px;margin:4px 0;color:#573548}.student-payment-table-wrap{overflow:auto}.student-payment-table{width:100%;min-width:760px;border-collapse:collapse}.student-payment-table th,.student-payment-table td{text-align:left;padding:11px 9px;border-bottom:1px solid #f0e7eb;font-size:8px}.student-payment-table th{font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.payment-state{display:inline-flex;padding:6px 8px;border-radius:999px;font-size:7px;font-weight:850}.payment-state.paid{background:#e6f5ed;color:#438065}.payment-state.pending{background:#fff4dc;color:#8b6b36}.payment-state.failed{background:#fff0f2;color:#ad5663}.payment-state.refunded{background:#eef2fa;color:#61759a}
@media(max-width:1120px){.student-kpis{grid-template-columns:1fr 1fr}.student-dashboard-grid{grid-template-columns:1fr}.student-results-grid{grid-template-columns:1fr}.student-board-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.student-hero,.student-page-head{align-items:flex-start;flex-direction:column}.student-date-card,.student-timezone-chip{width:100%}.student-kpis{grid-template-columns:1fr 1fr}.student-board-grid{grid-template-columns:1fr}.student-payment-kpis{grid-template-columns:1fr}.student-lesson-row{grid-template-columns:48px minmax(0,1fr)}.student-lesson-actions{grid-column:2;justify-content:flex-start}.student-homework-row{grid-template-columns:32px minmax(0,1fr)}.student-homework-row>b{grid-column:2}.student-result-head{align-items:center}}
@media(max-width:460px){.student-kpis{grid-template-columns:1fr}.student-hero h1{font-size:29px}.student-result-metrics{grid-template-columns:1fr}.student-payment-kpis{grid-template-columns:1fr}.student-week-nav strong{min-width:160px}}

/* ===== v8 parent workspace ===== */
.parent-child-switch{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 14px;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:15px;width:max-content;max-width:100%}.parent-child-switch>span{font-size:7px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}.parent-child-switch a,.parent-child-switch b{padding:7px 10px;border-radius:10px;font-size:8px;text-decoration:none}.parent-child-switch a{border:1px solid transparent;color:#6e5964;font-weight:800}.parent-child-switch a:hover{background:#fff1f6}.parent-child-switch a.active{background:#f08bad;color:#fff}.parent-child-switch.single b{background:#fff1f6;color:#8d4561}.parent-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:21px 23px;margin-bottom:13px;border:1px solid #efdbe4;border-radius:22px;background:linear-gradient(135deg,#fff,#fff1f6 58%,#f5efff)}.parent-hero h1{font-size:32px;margin:7px 0 5px;letter-spacing:-.035em}.parent-hero p{margin:0;max-width:720px;color:var(--muted);font-size:9px;line-height:1.6}.parent-hero-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.parent-hero-chips span{padding:6px 8px;border-radius:999px;background:#fff;border:1px solid #ecdde4;font-size:7px;color:#735d67}.parent-progress-card{min-width:170px;padding:15px 16px;border-radius:17px;background:#fff;border:1px solid #ecdde4;text-align:center}.parent-progress-card span,.parent-progress-card small{display:block;font-size:7px;color:var(--muted)}.parent-progress-card strong{display:block;font-size:29px;margin:3px 0;color:#8d3f60}.parent-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.parent-kpis>a{display:block;padding:15px;border-radius:17px;border:1px solid var(--line);background:linear-gradient(155deg,#fff,#fff8fb);text-decoration:none;transition:.15s}.parent-kpis>a:hover{transform:translateY(-1px);border-color:#e6a0b8}.parent-kpis>a.money{background:#fff9e9;border-color:#efddb7}.parent-kpis span,.parent-kpis small{display:block;font-size:7px;color:var(--muted)}.parent-kpis strong{display:block;font-size:22px;margin:4px 0;color:#563649}.parent-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.72fr);gap:14px}.parent-main-stack,.parent-side-stack{display:grid;gap:14px;align-content:start}.parent-lesson-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f1e8ed}.parent-lesson-row:last-child{border-bottom:0}.parent-lesson-time b{display:block;font-size:14px}.parent-lesson-time span{display:block;font-size:7px;color:var(--muted)}.parent-lesson-row strong{font-size:9px}.parent-lesson-row small{display:block;font-size:7px;color:var(--muted);margin-top:3px}.parent-homework-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #f1e8ed;text-decoration:none}.parent-homework-row:last-child{border-bottom:0}.parent-homework-row strong{font-size:9px}.parent-homework-row small{display:block;font-size:7px;color:var(--muted);margin-top:3px}.parent-subject-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #f1e8ed}.parent-subject-row:last-child{border-bottom:0}.parent-subject-row strong{font-size:9px}.parent-subject-row small{display:block;font-size:7px;color:var(--muted);margin-top:2px}.parent-subject-row>span{font-size:8px;font-weight:850;color:#94425f;white-space:nowrap}.parent-report-mini{padding:11px 0;border-bottom:1px solid #f1e8ed}.parent-report-mini:last-child{border-bottom:0}.parent-report-mini>div{display:flex;align-items:baseline;gap:7px}.parent-report-mini strong{font-size:16px;color:#467e65}.parent-report-mini span{font-size:8px;font-weight:850}.parent-report-mini small{display:block;font-size:6.5px;color:var(--muted);margin-top:2px}.parent-report-mini p{font-size:7.3px;line-height:1.5;color:#685961;margin:7px 0 0}.parent-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.parent-page-head h1{font-size:30px;margin:7px 0 5px;letter-spacing:-.035em}.parent-page-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.parent-week-toolbar{display:flex;align-items:center;justify-content:center;gap:13px;margin-bottom:11px}.parent-week-toolbar a{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;border-radius:10px;text-decoration:none}.parent-week-toolbar strong{min-width:210px;text-align:center;font-size:11px}.parent-week-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));gap:8px;min-width:1030px}.parent-week-grid .parent-day{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.parent-week-grid .parent-day.today{border-color:#eb8eac;box-shadow:inset 0 0 0 1px #eb8eac}.parent-day>header{display:flex;justify-content:space-between;padding:10px 11px;background:#fff2f7;border-bottom:1px solid var(--line)}.parent-day>header b{font-size:9px}.parent-day>header span{font-size:7px;color:var(--muted)}.parent-day>div{padding:8px;min-height:300px;display:grid;gap:7px;align-content:start}.parent-cal-event{padding:9px;border-radius:11px;background:#fff0f5;border:1px solid #efceda}.parent-cal-event.done{background:#eaf7f0;border-color:#d0e8dc}.parent-cal-event.cancelled{opacity:.55;background:#f2eff1}.parent-cal-event.moved{background:#f1edff;border-color:#ddd3f1}.parent-cal-event>b{font-size:12px;color:#8f3e60}.parent-cal-event strong{display:block;font-size:8px;margin-top:3px}.parent-cal-event span,.parent-cal-event small{display:block;font-size:6.5px;color:var(--muted);margin-top:2px}.parent-no-lessons{font-size:7px;color:#afa2a9;text-align:center;padding:18px 0}.parent-scope-note{margin-top:12px;padding:10px 12px;border:1px solid #e2e8ef;border-radius:12px;background:#f6f8fb;color:#647080;font-size:7.5px;line-height:1.5}.parent-readiness{padding:13px 15px;min-width:170px;border:1px solid #d6e9df;border-radius:16px;background:#eef9f3}.parent-readiness span{display:block;font-size:7px;color:#648071}.parent-readiness strong{font-size:25px;color:#437d62}.parent-subject-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.parent-subject-report{padding:18px;border:1px solid var(--line);border-radius:19px;background:linear-gradient(155deg,#fff,#fff9fb)}.parent-subject-report .head{display:flex;justify-content:space-between;gap:12px}.parent-subject-report h2{font-size:14px;margin:0}.parent-subject-report .head p{font-size:7px;color:var(--muted);margin:4px 0}.parent-subject-report .head>strong{font-size:22px;color:#447e64}.parent-subject-report .stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}.parent-subject-report .stats span{padding:9px;border-radius:10px;background:#faf6f8;font-size:7px;color:var(--muted)}.parent-subject-report .stats b{display:block;font-size:11px;color:#4f3c46;margin-bottom:2px}.parent-subject-report .latest{padding:11px;border-radius:12px;background:#fff}.parent-subject-report .latest>span{font-size:6.5px;color:var(--muted)}.parent-subject-report .latest p{font-size:7.5px;line-height:1.55;color:#61525a}.parent-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.parent-tags span{padding:5px 7px;border-radius:999px;background:#e9f7f0;color:#487b65;font-size:6.5px}.parent-tags.focus span{background:#fff1e3;color:#8a653c}.parent-report-history article{padding:12px 0;border-bottom:1px solid #f1e8ed}.parent-report-history article:last-child{border-bottom:0}.parent-report-history strong{font-size:9px}.parent-report-history small{display:block;font-size:6.5px;color:var(--muted);margin-top:2px}.parent-report-history p{font-size:7.5px;line-height:1.55;color:#65565e;margin:7px 0 0}.parent-payment-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,270px));gap:10px;margin-bottom:14px}.parent-payment-kpis>div{padding:15px 16px;border:1px solid var(--line);border-radius:17px;background:#fff}.parent-payment-kpis>div.warn{background:#fff8e8;border-color:#efddb7}.parent-payment-kpis span,.parent-payment-kpis small{display:block;font-size:7.5px;color:var(--muted)}.parent-payment-kpis strong{display:block;font-size:23px;margin:4px 0;color:#573548}.parent-empty{max-width:760px}.parent-empty>span{font-size:8px;color:#a44a6b;font-weight:900}.parent-empty h1{font-size:28px;margin:7px 0}.parent-empty p{color:var(--muted);font-size:9px;line-height:1.6}
@media(max-width:1120px){.parent-kpis{grid-template-columns:1fr 1fr}.parent-dashboard-grid{grid-template-columns:1fr}.parent-subject-report-grid{grid-template-columns:1fr}.parent-week-grid{overflow:auto}}
@media(max-width:760px){.parent-hero,.parent-page-head{align-items:flex-start;flex-direction:column}.parent-progress-card,.parent-readiness{width:100%}.parent-kpis{grid-template-columns:1fr 1fr}.parent-week-toolbar strong{min-width:150px}.parent-payment-kpis{grid-template-columns:1fr}.parent-lesson-row{grid-template-columns:46px minmax(0,1fr)}.parent-lesson-row>.mini-status{grid-column:2;justify-self:start}.parent-week-grid{display:grid;overflow:visible;min-width:980px}.parent-page-head+ .parent-week-toolbar+ .parent-week-grid{overflow:visible}.parent-subject-report .stats{grid-template-columns:1fr}}
@media(max-width:460px){.parent-kpis{grid-template-columns:1fr}.parent-hero h1{font-size:28px}.parent-child-switch{width:100%}.parent-payment-kpis{grid-template-columns:1fr}}

.parent-week-scroll{overflow:auto;padding-bottom:6px}

/* v9 — preparation plans, file library and parent consents */
.heading-actions{display:flex;gap:10px;flex-wrap:wrap}.plan-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.plan-kpis>div{background:#fff;border:1px solid var(--line,#efdde5);border-radius:18px;padding:16px}.plan-kpis span,.plan-kpis small{display:block;color:#7c6b74;font-size:11px}.plan-kpis strong{display:block;font-size:26px;margin:4px 0}.plan-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.plan-assign-form{display:grid;grid-template-columns:1.3fr .8fr 1.4fr auto;gap:10px;align-items:end}.plan-progress{height:8px;border-radius:99px;background:#f3e7ec;overflow:hidden;margin:12px 0 18px}.plan-progress i{display:block;height:100%;background:linear-gradient(90deg,#d85f91,#ee9fbd);border-radius:99px}.plan-topic-list{display:grid;gap:8px}.plan-topic-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto auto;gap:10px;align-items:center;border:1px solid #efe2e8;border-radius:14px;padding:11px 12px;background:#fff}.plan-topic-row.done{background:#f3fbf7}.plan-topic-row.skipped{opacity:.62}.plan-topic-num{width:32px;height:32px;border-radius:10px;background:#fff0f5;display:grid;place-items:center;font-weight:900;color:#9a4c6c}.plan-topic-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plan-topic-title strong{font-size:13px}.plan-kind{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:850;background:#fff0f5;color:#9c4e6d;text-transform:uppercase;letter-spacing:.04em}.plan-kind.mock{background:#eee8ff;color:#675090}.plan-kind.test{background:#fff3d7;color:#8a682d}.plan-kind.review{background:#eaf6ff;color:#517a96}.plan-linked-lessons{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.plan-linked-lessons span{font-size:9px;background:#f6f3f5;border-radius:999px;padding:4px 7px}.inline-plan-actions select{border:1px solid #e8dce1;border-radius:9px;padding:6px 7px;background:#fff;font-size:9px}.tiny-danger{border:0;width:28px;height:28px;border-radius:9px;background:#fff0f2;color:#b14e61;font-size:16px;cursor:pointer}.plan-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.plan-directory-card{display:flex;flex-direction:column;gap:14px}.plan-directory-card h2{margin:5px 0}.plan-directory-card p{margin:0;color:#776a72}.plan-card-progress strong{font-size:24px}.plan-card-progress span{display:block;font-size:10px;color:#887681}.lesson-plan-label{display:block;font-style:normal;font-size:9px;font-weight:800;color:#8a5870;background:#fff1f6;border-radius:8px;padding:5px 7px;margin-top:6px;width:max-content;max-width:100%}.material-upload-panel{margin-bottom:16px}.material-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.material-filter-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.material-filter-row a{padding:8px 11px;border-radius:999px;background:#fff;border:1px solid #eadce2;font-size:10px;font-weight:800}.material-filter-row a.active{background:#342d31;color:#fff}.material-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.material-library-card{display:flex;flex-direction:column;gap:14px}.material-library-card h2{font-size:18px;margin:7px 0}.material-library-card p{color:#776a72;font-size:11px}.material-type{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#a45272}.material-meta{display:flex;gap:6px;flex-wrap:wrap}.material-meta span{font-size:9px;background:#f8f4f6;border-radius:999px;padding:5px 7px}.material-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.consent-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.consent-doc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #f0e5ea}.consent-doc-row span,.consent-doc-row small{display:block;font-size:9px;color:#826f79}.consent-doc-row strong{display:block;font-size:12px;margin:3px 0}.consent-warning,.consent-dashboard-banner{display:block;margin-bottom:14px;padding:13px 15px;border-radius:14px;background:#fff6df;border:1px solid #f0ddb2;color:#785f30}.consent-warning.ok{background:#eef8f3;border-color:#d5ecdf;color:#527563}.consent-dashboard-banner strong,.consent-dashboard-banner span{display:block}.consent-dashboard-banner span{font-size:10px;margin-top:3px}.consent-parent-list{display:grid;gap:14px}.consent-parent-card header{display:flex;justify-content:space-between;gap:16px}.consent-parent-card header span{font-size:9px;color:#8a7680}.consent-parent-card h2{margin:5px 0 12px}.consent-text{max-height:300px;overflow:auto;padding:14px;background:#faf7f8;border-radius:12px;font-size:11px;line-height:1.65}.consent-check{display:flex;gap:9px;align-items:flex-start;margin:14px 0;font-size:11px}.consent-check input{margin-top:3px}.consent-accepted{display:inline-flex;height:max-content;background:#e9f7f0;color:#4d8068;border-radius:999px;padding:7px 9px;font-size:9px}.plan-text-link{display:block;font-size:9px;color:#a44d6e;margin-top:4px}
@media(max-width:1100px){.plan-kpis{grid-template-columns:1fr 1fr}.plan-directory,.material-library-grid{grid-template-columns:1fr 1fr}.plan-assign-form{grid-template-columns:1fr 1fr}.plan-assign-form .btn{grid-column:1/-1}.consent-admin-grid{grid-template-columns:1fr}}
@media(max-width:720px){.plan-tools-grid,.plan-directory,.material-library-grid,.material-form{grid-template-columns:1fr}.plan-kpis{grid-template-columns:1fr 1fr}.plan-topic-row{grid-template-columns:32px minmax(0,1fr) auto}.plan-topic-row>.mini-status{grid-column:2}.inline-plan-actions{grid-column:2}.tiny-danger{grid-column:3;grid-row:2}.plan-assign-form{grid-template-columns:1fr}.plan-assign-form .btn{grid-column:auto}}
.plan-topic-edit{grid-column:2/-1;margin-top:2px}.plan-topic-edit summary{cursor:pointer;font-size:9px;color:#9b5270;font-weight:800}.topic-edit-form{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:8px;margin-top:10px;padding:10px;background:#faf7f8;border-radius:12px}.topic-edit-form label{display:grid;gap:4px;font-size:9px;color:#75656e}.topic-edit-form input,.topic-edit-form select,.topic-edit-form textarea{border:1px solid #e7dce1;border-radius:9px;padding:8px;background:#fff;font:inherit}.topic-edit-form .wide{grid-column:1/-1}@media(max-width:720px){.topic-edit-form{grid-template-columns:1fr}.topic-edit-form .wide{grid-column:auto}}


/* v10 — recurring schedule + finance workspace */
.lesson-chip-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.series-badge{font-size:7px;padding:3px 5px;border-radius:999px;background:#eee8ff;color:#675090;font-weight:850;text-transform:uppercase}.lesson-manage-link{display:block!important;margin-top:7px!important;font-size:8px!important;color:#9d4e6e!important;font-weight:850!important}.lesson-manage-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.lesson-manage-kpis>div{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}.lesson-manage-kpis span{display:block;font-size:9px;color:var(--muted)}.lesson-manage-kpis strong{display:block;margin-top:5px;font-size:20px}.manage-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.danger-panel{border-color:#f0cbd2!important;background:#fffafb!important}.danger-btn{background:#fff0f2!important;color:#b34f61!important;border:1px solid #efc7cf!important}.btn:disabled{opacity:.45;cursor:not-allowed}.finance-mini-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #f1e8ed}.finance-mini-row:last-child{border-bottom:0}.finance-month-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 0 15px}.finance-month-nav a{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:#fff;text-decoration:none;color:var(--ink)}.finance-month-nav strong{min-width:160px;text-align:center;text-transform:capitalize}.finance-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:15px}.finance-kpis>div,.teacher-finance-kpis>div{padding:15px 16px;border:1px solid var(--line);border-radius:17px;background:#fff}.finance-kpis>div.ok,.teacher-finance-kpis>div.ok{background:#eef9f3;border-color:#d8ecdf}.finance-kpis>div.warn{background:#fff8e8;border-color:#efddb7}.finance-kpis span,.finance-kpis small,.teacher-finance-kpis span,.teacher-finance-kpis small{display:block;font-size:8px;color:var(--muted)}.finance-kpis strong,.teacher-finance-kpis strong{display:block;font-size:22px;margin:4px 0}.finance-filters{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin-bottom:15px;padding:14px}.finance-filters label{display:grid;gap:5px;min-width:170px}.finance-filters label span{font-size:8px;font-weight:800;color:#776873}.finance-filters select{border:1px solid #e7dce1;border-radius:10px;background:#fff;padding:9px}.finance-filters .btn{margin:0;padding:10px 13px}.finance-table-panel{padding:0!important;overflow:hidden}.finance-table-panel .panel-head{padding:18px 18px 0}.finance-table-scroll{overflow:auto}.finance-table{width:100%;border-collapse:collapse;min-width:840px}.finance-table th,.finance-table td{text-align:left;padding:11px 12px;border-bottom:1px solid #f0e7eb;vertical-align:top;font-size:10px}.finance-table th{font-size:7px;text-transform:uppercase;letter-spacing:.06em;color:#8b7982;background:#fff9fb}.finance-table td strong{display:block;font-size:10px}.finance-table td small{display:block;font-size:7px;color:var(--muted);margin-top:3px}.finance-table a{color:#9b4e6d;font-weight:800;text-decoration:none}.payment-state,.lesson-state{display:inline-flex;padding:5px 7px;border-radius:999px;font-size:7px;font-weight:850}.payment-state.paid,.lesson-state.done{background:#e7f7ef;color:#3e7c5e}.payment-state.pending,.lesson-state.planned{background:#fff4df;color:#87662f}.payment-state.refunded{background:#eef3fb;color:#5c7194}.payment-state.failed{background:#fff0f2;color:#ab5060}.payment-state.void,.lesson-state.cancelled,.lesson-state.moved{background:#f1eff0;color:#766b70}.payment-edit summary{cursor:pointer;color:#9b4e6d;font-size:8px;font-weight:850}.payment-edit form{display:grid;gap:6px;margin-top:8px;min-width:170px}.payment-edit select,.payment-edit textarea{border:1px solid #e5d9df;border-radius:8px;padding:7px;background:#fff;font:inherit;font-size:8px}.tiny-action{border:0;border-radius:8px;background:#342d31;color:#fff;padding:7px;font-size:8px;font-weight:850}.teacher-finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:15px}.scope-banner.warn{background:#fff3e9;border-color:#f0d7bf;color:#805e42}
@media(max-width:1050px){.finance-kpis{grid-template-columns:1fr 1fr}.teacher-finance-kpis,.lesson-manage-kpis{grid-template-columns:1fr 1fr}.manage-two-col{grid-template-columns:1fr}}
@media(max-width:650px){.finance-kpis,.teacher-finance-kpis,.lesson-manage-kpis{grid-template-columns:1fr}.finance-filters{display:grid}.finance-filters label{min-width:0}}

/* === v11: internal chats + notification center === */
.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#f08bad;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900}
.top-notify{position:relative;width:38px;height:38px;border:1px solid var(--line,#efdde5);border-radius:12px;display:grid;place-items:center;background:#fff;color:#8c3558;font-size:18px;text-decoration:none}.top-notify em{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d95383;color:#fff;font-size:9px;font-style:normal;display:grid;place-items:center;font-weight:900}
.ohana-chat-shell{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:16px;align-items:stretch}.ohana-chat-list,.ohana-chat-main{padding:0;overflow:hidden}.ohana-chat-list .panel-head,.chat-main-head{padding:18px 20px;border-bottom:1px solid var(--line,#efdde5)}.chat-start-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px;border-bottom:1px solid var(--line,#efdde5);background:#fffafd}.chat-start-form select{min-width:0;border:1px solid var(--line,#efdde5);background:#fff;border-radius:12px;padding:10px 11px}.btn-compact{padding:10px 12px!important}.chat-thread-list{max-height:650px;overflow:auto}.chat-thread{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid #f3eaee;text-decoration:none;color:inherit}.chat-thread:hover,.chat-thread.active{background:#fff1f6}.chat-avatar{width:42px;height:42px;border-radius:14px;background:#fde4ee;display:grid;place-items:center;color:#8c3558;font-weight:900}.chat-thread-copy{min-width:0}.chat-thread-copy strong,.chat-thread-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-thread-copy strong{font-size:12px}.chat-thread-copy small{font-size:9px;color:#8b7c84;margin-top:3px}.unread-badge{min-width:22px;height:22px;border-radius:999px;padding:0 6px;background:#d95383;color:#fff;display:grid;place-items:center;font-size:10px}.ohana-chat-main{display:flex;flex-direction:column;min-height:650px}.chat-message-stream{flex:1;min-height:420px;max-height:650px;overflow:auto;padding:18px;background:linear-gradient(180deg,#fff,#fffbfd)}.chat-message{max-width:min(680px,78%);margin:9px 0;padding:12px 14px;border-radius:17px;background:#f5f0f3;border:1px solid #eee4e9}.chat-message.mine{margin-left:auto;background:#fde5ee;border-color:#f5c9d8}.chat-message-meta{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:6px}.chat-message-meta strong{font-size:10px}.chat-message-meta span{font-size:8px;color:#8b7c84}.chat-message-body{font-size:12px;line-height:1.55;overflow-wrap:anywhere}.chat-file{display:inline-flex;margin-top:8px;padding:7px 9px;border-radius:9px;background:#fff;color:#9d4266;font-size:10px;font-weight:800}.chat-compose{padding:14px;border-top:1px solid var(--line,#efdde5);background:#fff}.chat-compose textarea{width:100%;resize:vertical;border:1px solid var(--line,#efdde5);border-radius:13px;padding:11px 12px;outline:none}.chat-compose textarea:focus{border-color:#dd85a6;box-shadow:0 0 0 3px #fde8f0}.chat-compose-actions{display:flex;align-items:center;gap:9px;margin-top:9px}.chat-compose-actions .btn{margin-left:auto}.file-button{cursor:pointer;border:1px solid var(--line,#efdde5);border-radius:10px;padding:8px 10px;background:#fff8fb;font-size:10px;font-weight:800;color:#8f4563}.chat-empty-large{flex:1;display:grid;place-items:center;align-content:center;text-align:center;padding:40px;color:#81717a}.chat-empty-large>div{font-size:44px}.chat-empty-large h2{margin:8px 0 4px}.chat-empty-large p{margin:0}.empty-state.compact{padding:25px 15px;text-align:center}
.notification-list{display:grid;gap:10px}.notification-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:13px;align-items:center;background:#fff;border:1px solid var(--line,#efdde5);border-radius:17px;padding:14px 16px}.notification-card.unread{border-color:#eda9c1;background:#fff8fb;box-shadow:0 8px 24px rgba(124,61,89,.06)}.notification-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff0f5;color:#9d4167;font-weight:900;font-size:17px}.notification-copy strong{font-size:12px}.notification-copy p{margin:4px 0;font-size:11px;color:#63565d}.notification-copy small{font-size:9px;color:#94868d}.icon-action{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line,#efdde5);border-radius:12px;padding:9px 12px;background:#fff;color:#8c3558;font-size:11px;font-weight:800}.icon-action b{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#d95383;color:#fff;font-size:9px}
@media(max-width:900px){.ohana-chat-shell{grid-template-columns:1fr}.chat-thread-list{max-height:260px}.ohana-chat-main{min-height:560px}.chat-message{max-width:90%}}
@media(max-width:600px){.chat-start-form{grid-template-columns:1fr}.notification-card{grid-template-columns:40px minmax(0,1fr)}.notification-card form{grid-column:2}.chat-message{max-width:94%}.chat-message-meta{align-items:flex-start;flex-direction:column;gap:2px}}

/* ===== v12 — lesson reports + connected progress ===== */
.teacher-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.teacher-kpi.report-kpi{background:#f5f1ff;border-color:#e3d8f2}.teacher-lesson-actions{display:grid;gap:6px;margin-top:7px}.lesson-report-link{display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;padding:6px 7px;border-radius:8px;background:#fff0f6;color:#974663!important;border:1px solid #e9c8d5;font-size:7px!important;font-weight:850!important;text-decoration:none}.lesson-report-link.draft{background:#fff8e9;color:#876832!important;border-color:#ead7a9}.lesson-report-link.published{background:#e9f6ef;color:#447a62!important;border-color:#cfe7db}
.report-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}.report-kpis>div{padding:15px 16px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(155deg,#fff,#fff8fb)}.report-kpis span{display:block;font-size:8px;color:var(--muted)}.report-kpis strong{display:block;font-size:24px;margin-top:4px;color:#573447}.report-lesson-list{display:grid}.report-lesson-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #f1e8ec}.report-lesson-row:last-child{border-bottom:0}.report-date{width:48px;height:48px;border-radius:13px;background:#fff0f6;display:grid;place-items:center;align-content:center}.report-date b{font-size:12px}.report-date span{font-size:7px;color:var(--muted)}.report-lesson-row strong{font-size:10px}.report-lesson-row small{display:block;font-size:7px;color:var(--muted);margin-top:3px}.report-state{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:6px 8px;border-radius:999px;font-size:7px;font-weight:850}.report-state.published{background:#e7f5ed;color:#438063}.report-state.draft{background:#fff5dd;color:#8a6c31}.report-state.missing{background:#fff0f2;color:#b25161}.btn.compact{padding:8px 10px!important;font-size:7px!important;margin:0!important;text-decoration:none!important}.report-edit-heading{align-items:flex-end}.report-edit-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr);gap:14px;align-items:start}.report-side-stack{display:grid;gap:12px}.report-form{grid-template-columns:1fr 1fr}.report-form .field-wrap.wide{grid-column:1/-1}.report-form textarea{resize:vertical}.report-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:13px;border-top:1px solid var(--line)}.report-context-card>span{display:block;font-size:8px;color:var(--muted)}.report-context-card>strong{display:block;font-size:27px;color:#6e3450;margin:5px 0}.report-context-card .small-strong{font-size:13px;line-height:1.35}.report-context-card small{display:block;font-size:7px;color:var(--muted);margin-top:7px}.report-context-card a{display:inline-block;margin-top:10px;font-size:8px;font-weight:850;color:#9d4667;text-decoration:none}.report-context-card p{font-size:7.5px;line-height:1.55}.admin-report-kpis{max-width:760px}.report-attention{border-color:#f0d1d6;background:#fffafb}.admin-report-list{display:grid}.admin-report-row{display:grid;grid-template-columns:minmax(180px,1fr) 80px auto minmax(220px,1.35fr);gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #f1e8ec}.admin-report-row:last-child{border-bottom:0}.admin-report-row strong{font-size:9px}.admin-report-row small{display:block;font-size:7px;color:var(--muted);margin-top:3px}.admin-report-row>div:nth-child(2) b{font-size:15px}.admin-report-row p{font-size:7.5px;line-height:1.5;color:#66565e;margin:0}.result-plan-bar{height:7px;border-radius:99px;background:#f0eaed;overflow:hidden;margin:8px 0 12px}.result-plan-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#e6759c,#ef9fba)}.student-result-metrics{grid-template-columns:repeat(3,1fr)}.student-result-metrics small{display:block;font-size:6px;color:var(--muted);margin-top:2px}.student-report-block{padding:10px 11px;border-radius:12px;background:#fff7fa;margin-top:8px}.student-report-block.next{background:#f3f7ff}.student-report-block strong,.parent-subject-report h4{font-size:8px}.student-report-block p,.parent-subject-report h4+p,.parent-next-step p{font-size:7.5px;line-height:1.55;color:#62545c;margin:5px 0 0}.assessment-result{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-radius:11px;background:#fff5dd;margin:8px 0}.assessment-result span{font-size:7px;color:#806636}.assessment-result strong{font-size:10px;color:#6d5424}.parent-subject-report .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-next-step{margin-top:10px;padding:10px;border-radius:11px;background:#f3f7ff}
@media(max-width:1120px){.teacher-kpis{grid-template-columns:repeat(3,1fr)}.report-edit-grid{grid-template-columns:1fr}.report-side-stack{grid-template-columns:repeat(3,1fr)}.admin-report-row{grid-template-columns:minmax(170px,1fr) 70px auto}.admin-report-row p{grid-column:1/-1}.report-lesson-row{grid-template-columns:50px minmax(0,1fr) auto}.report-lesson-row .btn{grid-column:2/-1;width:max-content}}
@media(max-width:760px){.teacher-kpis{grid-template-columns:1fr 1fr}.report-kpis{grid-template-columns:1fr 1fr}.report-form{grid-template-columns:1fr}.report-form .field-wrap.wide,.report-actions{grid-column:auto}.report-actions{display:grid}.report-side-stack{grid-template-columns:1fr}.admin-report-row{grid-template-columns:1fr auto}.admin-report-row>div:nth-child(2),.admin-report-row .report-state{grid-column:auto}.report-lesson-row{grid-template-columns:45px minmax(0,1fr)}.report-lesson-row>.report-state,.report-lesson-row>.btn{grid-column:2}.parent-subject-report .stats{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.teacher-kpis,.report-kpis{grid-template-columns:1fr}.student-result-metrics,.parent-subject-report .stats{grid-template-columns:1fr}.report-actions .btn{width:100%}}

/* ===== v13 — groups, school settings, Excel import, bulk admin ===== */
.group-avatar{background:#f0e8ff!important;color:#6e4f96!important}.group-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.group-kpis>div{background:#fff;border:1px solid var(--line);border-radius:17px;padding:15px 16px}.group-kpis span{display:block;font-size:8px;color:var(--muted)}.group-kpis strong{display:block;margin-top:5px;font-size:20px;color:#5f3850}.group-manage-grid{align-items:start}.group-lesson-list{display:grid}.group-lesson-row{display:grid;grid-template-columns:minmax(160px,1fr) 90px 90px auto;gap:12px;align-items:center;padding:12px 2px;border-bottom:1px solid #f1e8ec;text-decoration:none;color:inherit}.group-lesson-row:last-child{border-bottom:0}.group-lesson-row strong{font-size:10px}.group-lesson-row span{font-size:8px;color:var(--muted)}.group-lesson-row b{font-size:8px;color:#9b4668}.group-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.group-card{min-width:0}.status-pill{padding:6px 8px;border-radius:999px;font-size:7px;font-weight:850;background:#f1ecef;color:#71656b}.status-pill.ok{background:#e7f5ed;color:#438063}.group-member-list{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.group-member-list span{padding:7px 9px;border-radius:999px;background:#fff2f7;border:1px solid #f1d9e3;font-size:8px}.group-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.group-card-stats>div{padding:10px;border-radius:12px;background:#faf7f9}.group-card-stats span{display:block;font-size:7px;color:var(--muted)}.group-card-stats strong{display:block;margin-top:3px}.group-upcoming{margin-top:12px;border-top:1px solid var(--line);padding-top:11px}.group-upcoming>strong{font-size:9px}.group-upcoming>div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px dashed #eee2e7}.group-upcoming span{font-size:8px;font-weight:800}.group-upcoming small{font-size:7px;color:var(--muted)}
.settings-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.settings-action{display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:center;padding:16px;background:#fff;border:1px solid var(--line);border-radius:18px;text-decoration:none;color:inherit;box-shadow:0 9px 25px rgba(84,47,66,.04)}.settings-action>b{grid-row:1/3;width:44px;height:44px;border-radius:13px;background:#fff0f6;color:#9a4264;display:grid;place-items:center}.settings-action strong{font-size:10px}.settings-action span{font-size:7px;color:var(--muted)}.settings-form-panel{max-width:900px}.settings-form{grid-template-columns:1fr 1fr}.settings-form .btn{grid-column:1/-1;width:max-content}.import-help ol{padding-left:20px;margin:10px 0 18px}.import-help li{font-size:10px;line-height:1.6;margin:6px 0}.broadcast-panel{max-width:900px}.broadcast-form{grid-template-columns:1fr 1fr}.broadcast-form .wide,.broadcast-form .scope-banner,.broadcast-form .btn{grid-column:1/-1}.broadcast-form select[multiple],.ohana-form select[multiple]{min-height:180px;padding:8px}.directory-card .title-link{color:inherit;text-decoration:none}
@media(max-width:1000px){.group-kpis{grid-template-columns:1fr 1fr}.group-card-grid,.settings-action-grid{grid-template-columns:1fr 1fr}.group-lesson-row{grid-template-columns:minmax(140px,1fr) 70px auto}.group-lesson-row span:nth-of-type(2){display:none}}
@media(max-width:700px){.group-kpis,.group-card-grid,.settings-action-grid,.settings-form,.broadcast-form{grid-template-columns:1fr}.settings-form .btn,.broadcast-form .wide,.broadcast-form .scope-banner,.broadcast-form .btn{grid-column:auto}.group-lesson-row{grid-template-columns:1fr auto}.group-lesson-row span{display:none!important}.group-lesson-row b{grid-column:2}}

/* ===== v14 — self booking + payment policy + messengers ===== */
.v14-two-col{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:16px;align-items:start}.v14-slot-list{display:grid;gap:8px}.v14-slot-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fff}.v14-slot-row>div{min-width:0}.v14-slot-row b,.v14-slot-row span,.v14-slot-row small{display:block}.v14-slot-row b{font-size:10px}.v14-slot-row span{font-size:8px;color:var(--muted);margin-top:3px}.v14-slot-row small{font-size:7px;color:#8f7c86;margin-top:4px}.v14-slot-row.booked{background:#eef8f2;border-color:#cfe7da}.v14-slot-row.cancelled{opacity:.6}.v14-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v14-public-slot{display:grid;grid-template-columns:86px minmax(0,1fr);gap:14px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 10px 28px rgba(88,50,69,.05)}.v14-slot-time{border-radius:16px;background:#fff0f6;display:grid;place-items:center;align-content:center;min-height:100px}.v14-slot-time b{font-size:11px;color:#8d536a}.v14-slot-time strong{font-size:23px;color:#7a3452}.v14-slot-main h3{margin:7px 0 4px;font-size:16px}.v14-slot-main p{font-size:9px;color:var(--muted);margin:4px 0 10px}.v14-book-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.v14-book-form select{min-width:180px;border:1px solid var(--line);border-radius:10px;padding:8px}.v14-subject{font-size:9px;font-weight:800;color:#764159}.v14-policy-banner{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:13px 15px;border-radius:15px;background:#f3f7ff;border:1px solid #dce7f5}.v14-policy-banner.warn{background:#fff5df;border-color:#edd9a9}.v14-policy-banner b{font-size:9px;white-space:nowrap}.v14-policy-banner span{font-size:8px;line-height:1.55;color:#675c62}.v14-lesson-hold{opacity:.52!important;filter:grayscale(.22)}.v14-lesson-hold strong,.v14-lesson-hold b,.v14-lesson-hold small,.v14-lesson-hold span{text-decoration:line-through}.v14-payment-hold-row{background:#fff8e9}.payment-state.hold{background:#fff0cf;color:#8d6929}.v14-connect-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px;margin-bottom:14px}.v14-connect-code strong{display:block;font-size:24px;letter-spacing:.08em;color:#7c3156;margin:9px 0}.v14-connect-code>span,.v14-connect-code p{font-size:9px;color:var(--muted)}.v14-connect-code code{background:#f6edf2;padding:2px 5px;border-radius:5px}.v14-provider-buttons{display:grid;gap:8px}.v14-provider-muted{display:block;padding:11px 13px;border-radius:12px;background:#faf7f9;color:#8b7d84;font-size:9px}.form-stack p{display:grid;gap:5px}.form-stack label{font-size:8px;font-weight:800;color:#645860}.form-stack input,.form-stack select,.form-stack textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:10px;background:#fff}.form-stack .helptext{font-size:7px;color:var(--muted)}
@media(max-width:900px){.v14-two-col,.v14-connect-layout{grid-template-columns:1fr}.v14-slot-grid{grid-template-columns:1fr}}@media(max-width:520px){.v14-public-slot{grid-template-columns:68px minmax(0,1fr)}.v14-slot-time{min-height:88px}.v14-policy-banner{display:grid}.v14-policy-banner b{white-space:normal}}
.v14-teacher-hold{display:inline-flex!important;margin-top:5px!important;width:max-content;padding:5px 7px;border-radius:8px;background:#fff0cf;color:#8d6929!important;font-size:7px!important;font-weight:850!important}

/* v14 — one-click family payment */
.v14-pay-all{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin:0 0 16px;border:1px solid #f1c9d9;border-radius:20px;background:linear-gradient(135deg,#fff4f8,#fff);box-shadow:0 10px 28px rgba(108,55,80,.06)}
.v14-pay-all>div{display:grid;gap:3px}.v14-pay-all b{font-size:13px}.v14-pay-all span{font-size:11px;color:var(--muted)}.v14-pay-all .btn{white-space:nowrap}.v14-inline-pay{display:inline;margin:0}.v14-inline-pay button{font:inherit}
@media(max-width:720px){.v14-pay-all{align-items:stretch;flex-direction:column}.v14-pay-all .btn{width:100%}}

/* v14.2 — manual payment confirmation */
.v15-manual-payment-banner{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:0 0 14px;padding:15px 17px;border-radius:17px;background:#eef8f2;border:1px solid #cfe7da}.v15-manual-payment-banner b,.v15-manual-payment-banner span,.v15-manual-payment-banner strong{display:block}.v15-manual-payment-banner b{font-size:10px;margin-bottom:5px}.v15-manual-payment-banner span{font-size:8px;line-height:1.6;color:#5f6d65}.v15-manual-payment-banner strong{font-size:8px;color:#3f7659;max-width:250px}.v15-payment-claim{margin-top:14px}.v15-payment-claim .form-stack{display:grid;grid-template-columns:1.25fr .7fr .7fr;gap:11px;align-items:start}.v15-payment-claim .form-stack>label:first-child{grid-row:span 3}.v15-payment-claim .form-stack>label:nth-child(4){grid-column:2/-1}.v15-payment-claim .form-stack>label:nth-child(5){grid-column:2/-1}.v15-payment-claim .form-stack>button{grid-column:2/-1;justify-self:start}.v15-payment-claim ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.v15-payment-claim li label{display:flex;gap:7px;align-items:flex-start;font-size:8px;font-weight:700}.v15-payment-claim input[type=checkbox]{width:auto}.v15-review-badge{display:block!important;width:max-content;margin-top:4px;padding:3px 6px;border-radius:999px;background:#eef3ff;color:#586d9b;font-size:7px!important;font-weight:850}.v15-claim-history{display:grid;gap:8px}.v15-claim-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.v15-claim-row strong,.v15-claim-row span,.v15-claim-row small{display:block}.v15-claim-row strong{font-size:10px}.v15-claim-row span,.v15-claim-row small{font-size:8px;color:var(--muted);margin-top:3px}.v15-claim-row a{display:block;margin-top:5px;font-size:8px;color:#954b6b;font-weight:800}.v15-claim-status{padding:5px 8px;border-radius:999px;font-size:7px!important;font-weight:850;text-align:center}.v15-claim-status.pending{background:#fff4df;color:#87662f}.v15-claim-status.approved{background:#e7f7ef;color:#3e7c5e}.v15-claim-status.rejected{background:#fff0f2;color:#ab5060}.v15-admin-claims{margin-bottom:15px}.v15-admin-claim-list{display:grid;gap:10px}.v15-admin-claim{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:18px;padding:15px;border:1px solid #eadde4;border-radius:16px;background:#fffafc}.v15-admin-claim h3{margin:4px 0;font-size:15px}.v15-admin-claim p,.v15-admin-claim blockquote{font-size:8px;color:var(--muted);line-height:1.55}.v15-admin-claim blockquote{margin:8px 0;padding:8px 10px;border-left:3px solid #e4bdcd;background:#fff}.v15-claim-lessons{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.v15-claim-lessons span{padding:5px 7px;border-radius:8px;background:#f6eef2;font-size:7px}.v15-proof-link{display:inline-block!important;text-decoration:none}.v15-claim-review{display:grid;gap:8px}.v15-claim-review label{display:grid;gap:5px}.v15-claim-review label span{font-size:8px;font-weight:800}.v15-claim-review select,.v15-claim-review textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px;background:#fff;font:inherit;font-size:8px}@media(max-width:900px){.v15-payment-claim .form-stack{grid-template-columns:1fr}.v15-payment-claim .form-stack>*{grid-column:auto!important;grid-row:auto!important}.v15-admin-claim{grid-template-columns:1fr}.v15-manual-payment-banner{display:grid}}
