:root{--ink:#172923;--ink-soft:#30423a;--muted:#7c8981;--line:#e5e9e4;--paper:#f6f7f3;--white:#ffffff;--green:#286b55;--green-deep:#1d5140;--green-soft:#e7f1eb;--mint:#dcece2;--amber:#c18445;--amber-soft:#fbf0df;--red:#b94f51;--red-soft:#fff0ef;--shadow:0 16px 44px rgba(27,48,37,.055);--shadow-strong:0 24px 70px rgba(16,34,25,.18)}*{box-sizing:border-box}html{min-height:100%}body,html{background:var(--paper)}body{margin:0;color:var(--ink);font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}button:disabled{opacity:.6;cursor:wait}a{color:var(--green)}.brand{display:flex;align-items:center;gap:11px;font-size:18px;letter-spacing:-.65px;color:inherit}.logo{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:24px;line-height:1;background:linear-gradient(145deg,#367b61,#1e5945);box-shadow:0 7px 16px rgba(37,101,77,.22)}.eyebrow{margin:0 0 7px;color:#7d9385;font-size:10px;font-weight:850;letter-spacing:1.7px;text-transform:uppercase}.muted{color:var(--muted);font-size:13px;margin:0 0 25px}.hintText,.mutedSmall{color:var(--muted);font-size:12px}.appShell{width:100%;min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;min-height:620px;padding:28px 18px 20px;display:flex;flex-direction:column;gap:9px;color:#dce9e0;background:#17372c;border-right:1px solid rgba(255,255,255,.05)}.sidebar .brand{color:#fff;padding:0 9px;margin-bottom:34px}.sidebar .logo{background:#d5e9db;color:#1d5842;box-shadow:none}.navLabel{padding:0 12px;margin:0 0 5px;color:#8da99a;font-size:10px;font-weight:800;letter-spacing:1.5px}.navActive,.navItem,.navLink{display:flex;align-items:center;gap:12px;width:100%;min-height:45px;padding:12px 13px;border-radius:11px;text-decoration:none;font-size:13px;font-weight:600;color:#afc6b8}.navLink:hover{background:rgba(255,255,255,.08);color:#fff}.navActive{background:#dcece2;color:#1e5a43;font-weight:800;box-shadow:0 5px 18px rgba(8,28,18,.12)}.navItem{justify-content:space-between}.soon{color:#7f9d8b;font-size:9px}.sidebarBottom{margin-top:auto;padding:17px 16px;border:1px solid rgba(255,255,255,.09);border-radius:15px;color:#aac0b2;background:rgba(255,255,255,.055);font-size:12px}.sidebarBottom b{color:#fff;font-size:12px}.sidebarBottom p{margin:6px 0 0;line-height:1.5;color:#9eb7a7}.mainArea{min-width:0;padding:38px clamp(22px,4vw,58px) 40px;max-width:1600px;width:100%;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:30px}.topbar h1{margin:0;color:var(--ink);font-size:clamp(25px,2.2vw,32px);line-height:1.2;letter-spacing:-1.1px;font-weight:760}.userArea{display:flex;align-items:center;gap:13px;color:var(--muted);font-size:12px}.userArea>span{max-width:250px;overflow-wrap:anywhere}.danger,.iconButton,.primary,.secondary{min-height:39px;padding:10px 15px;border:1px solid transparent;border-radius:10px;font-size:12px;line-height:1.25;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 4px 10px rgba(40,107,85,.13)}.primary:hover:not(:disabled){background:var(--green-deep);border-color:var(--green-deep);box-shadow:0 7px 16px rgba(40,107,85,.2);transform:translateY(-1px)}.secondary{background:#fff;border-color:#dfe5df;color:#43554b}.secondary:hover:not(:disabled){border-color:#b9cec0;background:#f9fcf9;color:var(--green-deep)}.danger{color:var(--red);background:#fff;border-color:#f0d6d5}.danger:hover{background:var(--red-soft)}.iconButton{width:36px;height:36px;min-height:36px;padding:0;border:1px solid var(--line);background:#fff;color:#6c7b71;font-size:23px;font-weight:400;border-radius:10px}.iconButton:hover{color:var(--green);background:var(--green-soft);border-color:#d0e1d5}.textButton{border:0;background:transparent;color:var(--green);font-weight:800;font-size:12px;padding:15px 0 0}.textButton:hover{color:var(--green-deep);text-decoration:underline}.textDanger{background:none;color:var(--red);font-size:11px;font-weight:750;padding:5px 7px}.textDanger:hover{background:var(--red-soft)}.compact{min-height:30px;padding:6px 9px;font-size:10px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:23px}.panel,.stats article{background:var(--white);border:1px solid #e7ebe6;border-radius:17px;box-shadow:var(--shadow)}.stats article{position:relative;min-height:118px;padding:20px 22px;display:flex;flex-direction:column;justify-content:center;gap:7px;overflow:hidden}.stats article:after{content:"";position:absolute;right:-19px;top:-26px;width:84px;height:84px;border-radius:50%;background:var(--green-soft);opacity:.8}.stats article:nth-child(2):after{background:#f9eddc}.stats article:nth-child(3):after{background:#e8e9f8}.stats span{font-size:12px;font-weight:600;color:var(--muted)}.stats span,.stats strong{position:relative;z-index:1}.stats strong{font-size:31px;line-height:1.1;letter-spacing:-1.2px;color:var(--ink)}.panel{overflow:hidden}.panelHeader{min-height:70px;padding:17px 22px;border-bottom:1px solid #edf0ec;display:flex;justify-content:space-between;align-items:center;gap:12px}.panelHeader h2{margin:0;font-size:15px;letter-spacing:-.25px}.monthNav{display:flex;align-items:center;gap:12px}.monthNav h2{font-size:15px;min-width:165px;text-align:center;margin:0}.lessonList{padding:0 22px}.lessonRow{display:flex;align-items:center;gap:15px;width:100%;text-align:left;border:0;border-bottom:1px solid #edf0ec;background:#fff;padding:17px 0}.lessonRow:last-child{border-bottom:0}.lessonRow:hover{background:linear-gradient(90deg,#f8fbf8,#fff)}.dateBadge{width:48px;min-width:48px;height:52px;border-radius:13px;background:var(--green-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green)}.dateBadge b{font-size:19px;line-height:1;letter-spacing:-.6px}.dateBadge span{font-size:10px;text-transform:uppercase;margin-top:4px;font-weight:750;letter-spacing:.6px}.lessonSummary{min-width:0;flex:1 1;display:flex;flex-direction:column;gap:3px}.lessonSummary b{font-size:13px;font-weight:800;color:#24382e}.lessonSummary small,.lessonSummary span{font-size:11px;color:var(--muted);white-space:normal}.lessonSummary small{color:#5c7163;max-width:720px;margin-top:2px}.status{flex:0 0 auto;font-size:10px;font-weight:800;padding:6px 9px;border-radius:8px;background:#e9f2eb;color:#326b50;text-transform:capitalize}.status.completed{background:#e2f3e9;color:#28754f}.status.cancelled{background:var(--amber-soft);color:#a96a2e}.chevron{color:#9aaa9f;font-size:23px;line-height:1;padding-left:3px}.empty,.emptyState{text-align:center;padding:58px 22px;color:var(--muted)}.emptyState>span,.familyIcon{width:54px;height:54px;border-radius:17px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;margin:0 auto 14px;font-size:27px}.emptyState h3{color:var(--ink);margin:0 0 6px;font-size:17px;letter-spacing:-.35px}.emptyState p{margin:0 0 19px;font-size:12px}.footerNote{font-size:11px;color:#8d9a91;margin:20px 2px 0}.loginShell{min-height:100vh;display:grid;place-items:center;padding:26px;background:radial-gradient(ellipse at 13% 8%,#dcece2 0,transparent 36%),radial-gradient(ellipse at 91% 93%,#f5e9d8 0,transparent 32%),#f6f7f3}.loginCard{width:min(450px,100%);padding:38px;background:rgba(255,255,255,.94);border:1px solid rgba(224,232,224,.95);box-shadow:0 25px 75px rgba(26,52,36,.1);border-radius:24px}.loginCard .logo{margin-bottom:25px;width:48px;height:48px;font-size:27px}.loginCard h1{font-size:29px;line-height:1.17;letter-spacing:-1.1px;margin:7px 0 10px}.form,.lessonForm{display:flex;flex-direction:column;gap:15px}.form label,.lessonForm label,.studentForm label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:800;color:#506157}.form input,.lessonForm input,.lessonForm select,.lessonForm textarea,.studentForm input,.studentForm select{width:100%;min-width:0;border:1px solid #dce4dc;border-radius:10px;padding:11px 12px;color:var(--ink);background:#fff;outline:none;font-weight:450;transition:border-color .18s ease,box-shadow .18s ease}.form input,.lessonForm input,.lessonForm select,.studentForm input,.studentForm select{min-height:42px}.form input:focus,.lessonForm input:focus,.lessonForm select:focus,.lessonForm textarea:focus,.studentForm input:focus,.studentForm select:focus{border-color:#6eaa8b;box-shadow:0 0 0 3px rgba(61,131,94,.12)}.form .primary{width:100%;min-height:44px;margin-top:2px}.fineprint{font-size:11px;color:#8b988e;margin:18px 0 0}.fineprint a{color:#47755e;text-decoration:none}.fineprint a:hover{text-decoration:underline}.message{color:#456451;background:#edf5ee;padding:12px 13px;border:1px solid #dcecdf;border-radius:10px}.error,.message{font-size:12px;overflow-wrap:anywhere}.error{padding:12px 14px;background:var(--red-soft);color:#a13c43;border:1px solid #f4d6d5;border-radius:10px}.successMessage{padding:12px 14px;background:#e8f5eb;color:#28724e;border:1px solid #cde7d4;border-radius:10px;font-size:12px}.modalBackdrop{position:fixed;inset:0;background:rgba(17,37,27,.55);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:18px;z-index:10}.modal{background:#fff;border:1px solid rgba(255,255,255,.7);border-radius:20px;width:min(600px,100%);max-height:94vh;overflow:auto;box-shadow:var(--shadow-strong)}.modalHeader{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:18px 23px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modalHeader h2{font-size:18px;letter-spacing:-.45px;margin:0}.lessonForm{padding:22px 23px 24px}.lessonForm textarea{min-height:88px;resize:vertical}.formRow{display:grid;grid-template-columns:1fr 1fr;grid-gap:13px;gap:13px}.modalActions{display:flex;align-items:center;gap:9px;margin-top:5px}.modalActions span{flex:1 1}.attachmentEditor{padding:17px;border:1px solid #e1eae2;border-radius:13px;background:#f8fbf8;display:flex;flex-direction:column;gap:11px}.attachmentEditor h3{margin:0 0 3px;font-size:13px;letter-spacing:-.2px}.attachmentEditor p{margin:0}.attachmentEditor>div:first-child p{font-size:11px;color:var(--muted)}.uploadLabel{display:inline-flex!important;align-items:center;align-self:flex-start;flex-direction:row!important;gap:8px!important;border:1px dashed #a9c9b2;border-radius:9px;background:#fff;color:var(--green)!important;padding:10px 12px;cursor:pointer}.uploadLabel input{display:none}.attachmentList{display:flex;flex-direction:column;gap:7px}.attachmentRow{display:flex;align-items:center;gap:10px;border:1px solid #e4ebe4;border-radius:10px;background:#fff;padding:9px 10px}.attachmentFileIcon{display:grid;place-items:center;width:37px;min-width:37px;height:40px;border-radius:9px;background:#e8f1ea;color:#2e6c4e;font-size:9px;font-weight:900}.attachmentFileInfo{min-width:0;flex:1 1;display:flex;flex-direction:column;gap:2px}.attachmentFileInfo b{font-size:11px;overflow-wrap:anywhere}.attachmentFileInfo span{font-size:10px;color:var(--muted)}.studentColumns{display:grid;grid-template-columns:1fr 1fr;grid-gap:17px;gap:17px;margin-bottom:19px}.studentForm{padding:22px;display:flex;flex-direction:column;gap:15px}.studentForm .primary{align-self:flex-start}.studentPanel{margin-top:0}.studentList{padding:0 22px}.studentCard{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);grid-gap:22px;gap:22px;padding:19px 0;border-bottom:1px solid #edf0ec}.studentCard:last-child{border-bottom:0}.studentIdentity{display:flex;gap:13px;align-items:flex-start}.studentIdentity .dateBadge{font-size:13px;font-weight:800}.studentIdentity>div:last-child{display:flex;flex-direction:column;gap:4px;padding-top:4px}.studentIdentity b{font-size:13px}.studentIdentity span{font-size:11px;color:var(--muted)}.parentAccessList{display:flex;flex-direction:column;gap:9px}.parentAccessList>b{font-size:11px;color:#42584a}.accessRow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px;color:#626f65}.accessRow>span{overflow-wrap:anywhere;flex:1 1}.studentActions{display:flex;flex-wrap:wrap;gap:6px}.familyShell{width:min(1120px,100%);margin:auto;padding:27px 28px 46px}.familyTop{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid #e5ebe4}.familyTop .brand{text-decoration:none;color:var(--ink);margin:0}.familyTop .userArea{gap:13px}.familyHero{position:relative;overflow:hidden;margin:28px 0;padding:35px 38px;border:1px solid #dce9de;border-radius:22px;background:linear-gradient(118deg,#e6f1e8,#f1f5ed 57%,#f8eee0)}.familyHero:after{content:"♫";position:absolute;right:35px;bottom:-34px;font-size:170px;line-height:1;color:rgba(40,107,85,.075);transform:rotate(-8deg)}.familyHero h1{position:relative;z-index:1;font-size:clamp(27px,3vw,36px);letter-spacing:-1.35px;line-height:1.15;margin:8px 0 10px}.familyHero>p:last-child{position:relative;z-index:1;max-width:540px;color:#617368;margin:0;font-size:13px}.familyPicker{display:flex;align-items:center;gap:12px;margin-bottom:20px}.familyPicker label{font-size:12px;font-weight:800;color:#506157}.familyPicker select{min-width:190px;padding:10px 12px;border:1px solid #dce4dc;border-radius:10px;background:#fff;color:var(--ink)}.familyHeading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}.familyHeading h2{margin:0;font-size:22px;letter-spacing:-.6px}.familyHeading p{margin:3px 0 0;color:var(--muted);font-size:12px}.secureLabel{background:#e3f2e8;color:#2d7650;border:1px solid #cfe7d7;border-radius:8px;padding:7px 10px;font-size:10px;font-weight:800;white-space:nowrap}.familyLessonGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:17px;gap:17px;align-items:start}.familyLesson{min-width:0;background:white;border:1px solid #e4eae3;border-radius:17px;padding:21px;box-shadow:var(--shadow)}.familyLessonTop{display:flex;justify-content:space-between;align-items:center;gap:8px}.familyDuration{font-size:10px;color:var(--muted);font-weight:700}.familyLesson h3{font-size:16px;letter-spacing:-.3px;margin:17px 0 3px}.familyTime{margin:0 0 18px;color:var(--muted);font-size:12px}.familyNote,.practiceNote{margin-top:13px;padding:14px;border-radius:11px;background:#f6f9f5;border:1px solid #e9eee7}.familyNote b,.practiceNote b{font-size:11px;color:#42594a}.familyNote p,.practiceNote p{font-size:12px;color:#5f6f63;margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.familyNote.pending{background:#faf9f4;border-color:#efebdf}.familyNote.pending p{margin:0}.practiceNote{background:#edf5ee;border-color:#dcecdf}.familyAttachments{margin-top:17px;padding-top:16px;border-top:1px solid #edf0ec;display:flex;flex-direction:column;gap:10px}.familyAttachments>b{font-size:12px}.familyAttachment{min-width:0;padding:10px;border:1px solid #e4eae3;border-radius:11px;background:#fbfcfa}.musicPreviewLink{display:block;border-radius:7px;overflow:hidden;background:#eef2ec}.musicPreview{display:block;width:100%;max-height:360px;object-fit:contain;background:#f1f3ee}.pdfPreview{display:flex;align-items:center;gap:10px;padding:4px 2px 10px}.pdfPreview>div{min-width:0;display:flex;flex-direction:column;gap:4px}.pdfPreview b{font-size:11px;overflow-wrap:anywhere}.imageFileCaption a,.pdfPreview a{font-size:11px;font-weight:800;text-decoration:none}.pdfMusicPreview{display:block;width:100%;height:330px;border:1px solid #e1e7df;border-radius:8px;background:#fff}.imageFileCaption{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:9px 1px 0;color:var(--muted);font-size:10px}.imageFileCaption span{overflow-wrap:anywhere}.familyEmpty{padding:40px;text-align:center}.familyEmpty h2{font-size:21px;margin:0 0 9px}.familyEmpty p{max-width:540px;margin:0 auto 22px;color:var(--muted);font-size:13px}.familyEmpty .secondary{display:inline-flex}.parentCommentBox{margin-top:17px;padding:15px;border:1px solid #dce9de;border-radius:13px;background:linear-gradient(145deg,#f8fbf7,#fbfcfa)}.parentCommentHeading{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.commentIcon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#e4f0e5;color:#286b55;font-size:17px}.parentCommentHeading b{display:block;color:#294b3b;font-size:12px}.parentCommentHeading p{margin:4px 0 0;color:#728076;font-size:11px;line-height:1.5}.parentCommentBox textarea{display:block;width:100%;min-height:88px;resize:vertical;border:1px solid #dce5dc;border-radius:9px;background:#fff;color:var(--ink);padding:11px 12px;font-size:12px;line-height:1.55;outline:none}.parentCommentBox textarea:focus{border-color:#6eaa8b;box-shadow:0 0 0 3px rgba(61,131,94,.1)}.parentCommentActions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}.parentCommentActions>span{color:#89948b;font-size:10px}.parentCommentActions .primary{padding:9px 12px;font-size:11px}.parentCommentBox .error,.parentCommentBox .message{margin:10px 0 0;padding:9px 10px;font-size:11px}.commentSavedAt{margin:9px 0 0;color:#7b887e;font-size:10px}.parentCommentsTeacher{margin:2px 0 17px;padding:15px;border:1px solid #dce9de;border-radius:12px;background:#f8fbf7}.parentCommentsTeacher>div h3{margin:0;font-size:13px;color:#294b3b}.parentCommentsTeacher>div p{margin:4px 0 12px;color:var(--muted);font-size:11px}.teacherParentComment{padding:12px;border:1px solid #e1e9e0;border-radius:9px;background:#fff;margin-top:9px}.teacherParentComment>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.teacherParentComment b{color:#3b5948;font-size:11px;overflow-wrap:anywhere}.teacherParentComment time{color:#89948b;font-size:10px;white-space:nowrap}.teacherParentComment p{margin:8px 0 0;font-size:12px;line-height:1.6;color:#45564b;white-space:pre-wrap;overflow-wrap:anywhere}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (min-width:1500px){.mainArea{padding-left:58px;padding-right:58px}}@media (max-width:1050px){.appShell{grid-template-columns:218px minmax(0,1fr)}.sidebar{padding-left:13px;padding-right:13px}.mainArea{padding:28px 24px 35px}.studentColumns{grid-template-columns:1fr}.studentCard{grid-template-columns:minmax(140px,.55fr) minmax(0,1.45fr)}}@media (max-width:760px){.appShell{display:block}.sidebar{position:static;height:auto;min-height:0;padding:12px 16px;flex-direction:row;align-items:center;gap:8px;overflow-x:auto}.sidebar .brand{padding:0 5px 0 0;margin:0 10px 0 0;flex:0 0 auto;font-size:15px;gap:8px}.sidebar .logo{width:34px;height:34px;flex-basis:34px;border-radius:11px;font-size:20px}.navLabel,.sidebarBottom{display:none}.navActive,.navLink{width:auto;min-height:37px;flex:0 0 auto;padding:9px 11px;font-size:11px;white-space:nowrap}.mainArea{padding:25px 16px 32px}.topbar{align-items:flex-start;margin-bottom:23px}.topbar h1{font-size:26px}.userArea{gap:8px}.userArea>span{max-width:150px}.stats{gap:9px}.stats article{min-height:99px;padding:14px}.stats span{font-size:10px}.stats strong{font-size:25px}.panelHeader{padding:14px 15px}.monthNav{gap:6px}.monthNav h2{min-width:125px;font-size:13px}.lessonList{padding:0 15px}.lessonRow{gap:10px;padding:14px 0}.dateBadge{width:43px;min-width:43px;height:48px}.status{display:none}.studentList{padding:0 15px}.studentCard{grid-template-columns:1fr;gap:13px}.familyShell{padding:18px 15px 35px}.familyTop{align-items:flex-start}.familyTop .brand{font-size:16px}.familyTop .userArea{flex-direction:column;align-items:flex-end}.familyHero{margin:21px 0 24px;padding:27px 23px}.familyHero:after{right:9px;font-size:115px}.familyLessonGrid{grid-template-columns:1fr}}@media (max-width:480px){.loginShell{padding:15px}.loginCard{padding:29px 23px;border-radius:20px}.loginCard h1{font-size:26px}.topbar{flex-direction:column}.topbar .userArea{width:100%;justify-content:space-between;align-items:center}.topbar h1{font-size:24px}.stats{grid-template-columns:1fr 1fr}.stats article:last-child{grid-column:1/-1;min-height:85px}.stats article:last-child:after{width:70px;height:70px}.panelHeader{align-items:flex-start;flex-direction:column}.monthNav,.panelHeader .primary{width:100%}.monthNav{justify-content:space-between}.monthNav h2{flex:1 1}.lessonSummary b{font-size:12px}.lessonSummary small,.lessonSummary span{font-size:10px}.formRow{grid-template-columns:1fr}.modalBackdrop{padding:7px}.modal{max-height:98vh;border-radius:15px}.modalHeader{padding:14px 16px}.lessonForm{padding:17px 16px;gap:13px}.modalActions{flex-wrap:wrap}.modalActions span{display:none}.modalActions .primary{margin-left:auto}.familyHeading,.familyPicker{align-items:flex-start;flex-direction:column}.familyPicker select{width:100%}.secureLabel{white-space:normal}.familyLesson{padding:16px}.pdfMusicPreview{height:260px}}.billingPage{max-width:1680px}.billingIntro{margin:8px 0 0;max-width:610px;color:var(--muted);font-size:13px;line-height:1.55}.billingStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin:0 0 22px}.billingStats article{position:relative;overflow:hidden;min-width:0;padding:19px 20px;border:1px solid #e6ebe4;border-radius:15px;background:linear-gradient(145deg,#fff,#fbfcfa);box-shadow:0 4px 14px rgba(28,51,38,.025)}.billingStats article:after{content:"";position:absolute;width:76px;height:76px;right:-26px;bottom:-31px;border-radius:50%;background:#edf4ed}.billingStats small,.billingStats span{display:block;color:var(--muted);font-size:11px}.billingStats strong{display:block;margin:9px 0 5px;color:#234735;font-size:27px;font-weight:750;letter-spacing:-.8px;overflow-wrap:anywhere}.billingGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;align-items:start;margin-bottom:19px}.billingGridLower{margin-bottom:20px}.billingPage .panel{min-width:0;margin-bottom:20px}.billingPage .billingGrid .panel{margin-bottom:0}.billingPage .panelHeader{align-items:center}.billingPage .panelHeader h2{margin:0}.panelSub{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45;font-weight:400}.billingForm{gap:13px;padding:17px 20px 20px}.billingForm,.billingForm label{display:flex;flex-direction:column}.billingForm label{gap:6px;min-width:0;color:#526156;font-size:11px;font-weight:650}.billingFilters select,.billingForm input,.billingForm select,.billingForm textarea{width:100%;min-width:0;border:1px solid #dfe6de;border-radius:9px;background:#fff;color:var(--ink);padding:10px 11px;outline:none;font:inherit;font-size:12px;font-weight:450}.billingFilters select:focus,.billingForm input:focus,.billingForm select:focus,.billingForm textarea:focus{border-color:#6eaa8b;box-shadow:0 0 0 3px rgba(61,131,94,.09)}.billingForm textarea{min-height:68px;resize:vertical;line-height:1.5}.billingForm .formRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.billingForm .primary,.billingForm .secondary{align-self:flex-start}.billingForm .hintText{margin:0}.termList{display:flex;flex-direction:column;gap:8px;padding:0 20px 14px}.termChip{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #e6ebe4;border-radius:10px;background:#fafcf9}.termChip>div{display:flex;flex-direction:column;gap:4px;min-width:0}.termChip b{color:#314c3b;font-size:11px}.termChip span{color:var(--muted);font-size:10px}.termChip>span{flex:0 0 auto}.billingDivider{height:1px;margin:3px 20px 15px;background:#edf0ec}.smallSectionTitle{margin:16px 20px 0;color:#354c3c;font-size:12px}.outstandingFigure{color:#a2533e;font-size:19px;white-space:nowrap}.billingFilters{display:flex;gap:12px;padding:0 20px 15px}.billingFilters label{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.billingFilters select{width:auto;min-width:150px}.billingTableWrap{width:100%;overflow-x:auto;border:1px solid #e1e8e1;border-radius:12px;background:#fff}.billingTable{width:100%;border-collapse:separate;border-spacing:0;text-align:left;white-space:nowrap}.billingTable th{padding:14px 15px;background:#f1f5f1;color:#536458;border-bottom:1px solid #dce5dc;border-right:1px solid #e3eae3;font-size:10px;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.billingTable td:last-child,.billingTable th:last-child{border-right:0}.billingTable td{padding:14px 15px;border-bottom:1px solid #e8eee8;border-right:1px solid #edf1ed;color:#435247;font-size:12px;vertical-align:middle}.billingTable tbody tr:nth-child(2n){background:#f9fbf9}.billingTable tbody tr:last-child td{border-bottom:0}.billingTable td b,.billingTable td small{display:block}.billingTable td b{color:#233b2d;font-weight:750}.billingTable td small{max-width:190px;margin-top:4px;overflow:hidden;color:#78867b;font-size:10px;text-overflow:ellipsis}.billingTable tbody tr:hover{background:#eef5ef}.billingTable .balanceCell{color:#984a36;font-weight:800;background:#fff8f5}.billingTable .balanceCell.balancePaid{color:#236b45;background:#eaf6ed}.billingTable .billingStatus{padding:5px 9px;border:1px solid #dce6dc;border-radius:999px;background:#f4f8f4}.billingStatus,.billingTable .billingStatus{display:inline-flex;align-items:center;font-weight:700}.billingStatus{border-radius:99px;padding:5px 8px;background:#eef3ee;color:#526b58;font-size:10px}.billingStatus.overdue{background:#fff0eb;color:#a3452e}.billingStatus.part-paid{background:#fff5dc;color:#85631b}.billingStatus.paid{background:#eaf5eb;color:#286b45}.billingStatus.cancelled{background:#f1f2f0;color:#80877f}.billingStatus.draft{background:#f1effa;color:#665a92}.compactEmpty{padding:25px 18px}.studentBillingHistory{padding:0 20px 20px}.historySummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:16px}.historySummary span{display:flex;flex-direction:column;gap:5px;padding:10px;border-radius:9px;background:#f7faf6;color:var(--muted);font-size:10px}.historySummary b{color:#294a37;font-size:13px}.studentBillingHistory .smallSectionTitle{margin:16px 0 8px}.historyRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #edf0ec;color:#647066;font-size:10px}.historyRow>div{display:flex;flex-direction:column;gap:4px;min-width:0}.historyRow b{color:#334c3a;font-size:11px}.historyRow span{overflow-wrap:anywhere}.historyRow>div:last-child{text-align:right}.billingPage .footerNote{margin-top:5px}@media(max-width:1100px){.billingStats{grid-template-columns:repeat(2,minmax(0,1fr))}.billingGrid{grid-template-columns:1fr}}@media(max-width:760px){.billingStats{gap:9px}.billingStats article{padding:14px}.billingStats strong{font-size:23px}.billingForm{padding:15px}.billingForm .formRow{grid-template-columns:1fr}.termList{padding-left:15px;padding-right:15px}.billingDivider,.smallSectionTitle{margin-left:15px;margin-right:15px}.billingFilters{padding:0 15px 13px;flex-direction:column;align-items:stretch}.billingFilters label{justify-content:space-between}.billingFilters select{flex:1 1;max-width:65%}.billingTable td,.billingTable th{padding:11px 12px}.studentBillingHistory{padding:0 15px 15px}.historySummary{grid-template-columns:1fr}.historySummary span{flex-direction:row;justify-content:space-between;align-items:center}.historyRow{align-items:flex-start}.outstandingFigure{font-size:17px}}.billingSubnav{display:flex;flex-direction:column;gap:5px;padding:5px 10px 15px 16px;border-left:1px solid rgba(255,255,255,.13);margin:-2px 0 12px 24px}.billingSubnavLink{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border-radius:10px;color:rgba(255,255,255,.72);text-decoration:none;transition:background .15s ease,color .15s ease}.billingSubnavLink:hover{background:rgba(255,255,255,.07);color:#fff}.billingSubnavLink.active{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 2px 0 #b8d9be}.billingSubnavIcon{display:inline-flex;align-items:center;justify-content:center;width:18px;min-width:18px;padding-top:1px;font-size:15px}.billingSubnavLink>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}.billingSubnavLink b{font-size:11px;font-weight:650}.billingSubnavLink small{color:rgba(255,255,255,.55);font-size:9px;line-height:1.35}.billingSubnavLink.active small{color:rgba(255,255,255,.72)}.receiptRegister{margin-bottom:19px}.receiptRegister .empty{padding:8px 20px 22px}@media(max-width:760px){.billingSubnav{padding-left:8px;margin-left:17px}.billingSubnavLink{padding:9px}.billingSubnavLink small{font-size:9px}}.mobileMenuToggle{display:none}.sidebarNav{display:contents}@media (max-width:760px){.sidebar{display:block;padding:12px 15px;overflow:visible;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar .brand{display:flex;align-items:center;width:100%;padding:0;margin:0;gap:10px}.sidebar .brand b{font-size:16px}.mobileMenuToggle{display:flex;flex:0 0 42px;width:42px;height:40px;margin-left:auto;padding:10px;flex-direction:column;justify-content:center;gap:5px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.06);cursor:pointer}.mobileMenuToggle span{display:block;width:20px;height:2px;border-radius:2px;background:#fff}.sidebarNav{display:none;padding-top:14px}.sidebar.mobileOpen .sidebarNav{display:block}.sidebarNav .navLabel{display:block;padding:0 9px 6px}.sidebarNav .navActive,.sidebarNav .navLink{display:flex;width:100%;min-height:43px;margin:3px 0;padding:12px;font-size:13px;white-space:normal}.sidebarNav .billingSubnav{padding:5px 0 8px 13px;margin:2px 0 8px 12px}.sidebarNav .billingSubnavLink{padding:11px}.sidebarBottom{display:none}.sidebar.mobileOpen .sidebarBottom{display:block;margin-top:10px;padding:12px}.mainArea{padding:22px 13px 30px}.topbar{flex-wrap:wrap;gap:14px}.topbar>div:first-child{min-width:0;flex:1 1 100%}.userArea{width:100%;justify-content:space-between;align-items:center}.userArea>span{max-width:calc(100% - 105px);overflow-wrap:anywhere}.billingTableWrap{overflow:visible;border:0;border-radius:0;background:transparent}.billingTable,.billingTable tbody{display:block;width:100%;white-space:normal}.billingTable thead{display:none}.billingTable tbody{display:grid;grid-gap:12px;gap:12px;padding:2px}.billingTable tbody tr{display:block;overflow:hidden;border:1px solid #dce6dc;border-radius:12px;background:#fff;box-shadow:0 2px 7px rgba(28,51,38,.035)}.billingTable tbody tr:hover,.billingTable tbody tr:nth-child(2n){background:#fff}.billingTable td{display:grid;grid-template-columns:minmax(78px,31%) minmax(0,1fr);align-items:start;grid-gap:10px;gap:10px;padding:10px 12px;border-right:0;border-bottom:1px solid #edf1ed;font-size:12px;white-space:normal;overflow-wrap:anywhere}.billingTable td:before{content:attr(data-label);color:#77867b;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.billingTable tbody tr td:last-child{border-bottom:0}.billingTable td b,.billingTable td small{min-width:0;overflow-wrap:anywhere}.billingTable td small{max-width:none;white-space:normal}.billingTable .balanceCell{background:#fff8f5}.billingTable .balanceCell.balancePaid{color:#236b45;background:#eaf6ed}.billingTable .billingStatus{justify-self:start}.billingPage .panel{margin-bottom:16px}}@media (max-width:420px){.billingStats{grid-template-columns:repeat(2,minmax(0,1fr))}.billingStats article{padding:12px}.billingStats strong{font-size:20px}.billingTable td{grid-template-columns:76px minmax(0,1fr);gap:8px;padding:10px}.outstandingFigure{white-space:normal;text-align:right}}.sidebarAccount{display:flex;align-items:center;gap:9px;min-width:0;margin-bottom:10px}.sidebarAccountAvatar{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.12);color:#fff}.sidebarAccountEmail{min-width:0;overflow-wrap:anywhere;color:#fff;font-size:11px;font-weight:650}.sidebarAccountLink{display:block;padding:8px 0;color:#c7d9ce;text-decoration:none;font-size:11px}.sidebarAccountLink:hover{color:#fff;text-decoration:underline}.sidebarSignOut{width:100%;margin-top:3px;padding:9px 10px;text-align:left;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:rgba(255,255,255,.06);color:#fff;font-size:11px;font-weight:700}.sidebarSignOut:hover{background:rgba(255,255,255,.12)}.profileIntro{margin:8px 0 0;max-width:580px;color:var(--muted);font-size:13px}.profileForm{overflow:hidden;padding:0}.profilePhotoSection{display:flex;align-items:center;gap:19px;padding:25px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,#f8fbf7,#fff)}.profileAvatar{display:grid;place-items:center;flex:0 0 104px;width:104px;height:104px;overflow:hidden;border:1px solid #dce8dd;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:37px}.profileAvatar img{width:100%;height:100%;object-fit:cover}.profilePhotoText h2{margin:0 0 4px;font-size:15px}.profilePhotoText p{margin:0 0 12px;color:var(--muted);font-size:12px}.profileUpload{position:relative;width:max-content;cursor:pointer}.profileUpload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.profileFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:19px;gap:19px;padding:25px}.profileFields label{display:flex;flex-direction:column;gap:7px;color:#3b5044;font-size:12px;font-weight:750}.profileFields input,.profileFields textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid #dce4dc;border-radius:10px;background:#fff;color:var(--ink);outline:none;font-weight:450}.profileFields input:focus,.profileFields textarea:focus{border-color:#76a98a;box-shadow:0 0 0 3px rgba(61,131,94,.1)}.profileFields textarea{resize:vertical;line-height:1.6}.profileOptional{color:var(--muted);font-weight:500}.profileBioField{grid-column:1/-1}.profileBioField small{color:var(--muted);text-align:right;font-weight:500}.profilePrivacyNote{margin:0 25px;padding:14px 16px;border:1px solid #dce9de;border-radius:12px;background:#f6faf6}.profilePrivacyNote b{color:#2c6046;font-size:12px}.profilePrivacyNote p{margin:4px 0 0;color:#68796d;font-size:11px;line-height:1.6}.profileSaveRow{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:22px 25px 25px}.profileSaveRow .hintText{min-width:0;overflow-wrap:anywhere}.teacherProfileCard{display:flex;align-items:flex-start;gap:19px;margin:0 0 25px;padding:22px;border:1px solid #dce8dd;border-radius:18px;background:linear-gradient(125deg,#fff,#f7faf6);box-shadow:0 8px 24px rgba(27,48,37,.035)}.teacherProfileAvatar{display:grid;place-items:center;flex:0 0 82px;width:82px;height:82px;overflow:hidden;border-radius:50%;border:1px solid #dce8dd;background:var(--green-soft);color:var(--green);font-size:29px}.teacherProfileAvatar img{width:100%;height:100%;object-fit:cover}.teacherProfileDetails{min-width:0;flex:1 1}.teacherProfileDetails .eyebrow{margin-bottom:4px}.teacherProfileDetails h2{margin:0;font-size:19px;letter-spacing:-.45px}.teacherProfileBio{margin:9px 0 0;color:#526458;font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.teacherContactLinks{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px}.teacherContactLinks a{color:var(--green-deep);font-size:11px;font-weight:700;text-decoration:none;overflow-wrap:anywhere}.teacherContactLinks a:hover{text-decoration:underline}.stats article:after{z-index:0;pointer-events:none}.stats article>*{position:relative;z-index:1}.familyHero:after{z-index:0;pointer-events:none}.familyHero>*{position:relative;z-index:1}@media (max-width:760px){.sidebar{position:relative;z-index:20;display:block;height:auto;min-height:0;padding:12px 15px;overflow:visible}.sidebar .brand{display:flex;width:100%;padding:0;margin:0;gap:10px}.sidebar .brand b{font-size:16px}.sidebar .mobileMenuToggle{display:flex;flex:0 0 42px;width:42px;height:40px;margin-left:auto;padding:10px;flex-direction:column;justify-content:center;gap:5px}.sidebarNav{display:none;padding-top:14px}.sidebar.mobileOpen .sidebarNav{display:block}.sidebarNav .navLabel{display:block;padding:0 9px 6px}.sidebarNav .navActive,.sidebarNav .navLink{display:flex;width:100%;min-height:43px;margin:3px 0;padding:12px;white-space:normal}.sidebarBottom{display:none;margin-top:10px}.sidebar.mobileOpen .sidebarBottom{display:block;padding:12px}.stats article{isolation:isolate}.stats article:after{right:-34px;top:-37px;width:66px;height:66px;opacity:.35}.stats span,.stats strong{max-width:calc(100% - 24px);overflow-wrap:anywhere}.familyHero{isolation:isolate}.familyHero:after{right:-10px;bottom:-25px;font-size:92px;opacity:.65}.teacherProfileCard{padding:16px;gap:13px}.teacherProfileAvatar{flex-basis:62px;width:62px;height:62px;font-size:23px}.teacherProfileDetails h2{font-size:17px}.teacherContactLinks{flex-direction:column;gap:7px}.profilePhotoSection{padding:18px;gap:14px}.profileAvatar{flex-basis:78px;width:78px;height:78px}.profileFields{grid-template-columns:minmax(0,1fr);gap:15px;padding:18px}.profileBioField{grid-column:auto}.profilePrivacyNote{margin:0 18px}.profileSaveRow{align-items:stretch;flex-direction:column;padding:18px}.profileSaveRow .primary{width:100%}}@media (max-width:420px){.profilePhotoSection{align-items:flex-start;flex-direction:column}.profilePhotoText{width:100%}.profileUpload{max-width:100%}.teacherProfileCard{align-items:flex-start}.stats article:after{opacity:.25}}.calendarActions{display:flex;align-items:center;gap:12px}.viewToggle{display:inline-flex;align-items:center;gap:3px;padding:4px;border:1px solid #e1e8e1;border-radius:11px;background:#f5f8f4}.viewToggleButton{min-height:32px;padding:7px 11px;border:0;border-radius:8px;background:transparent;color:#6b7b70;font-size:11px;font-weight:750;white-space:nowrap}.viewToggleButton:hover{color:var(--green-deep);background:#eaf2eb}.viewToggleButton.active{color:#fff;background:var(--green);box-shadow:0 2px 6px rgba(40,107,85,.16)}.monthCalendar{padding:14px}.calendarDays,.calendarWeekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendarWeekdays{border:1px solid #e6ece5;border-bottom:0;border-radius:10px 10px 0 0;overflow:hidden;background:#f5f8f4}.calendarWeekdays>div{padding:10px 5px;text-align:center;color:#748579;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.5px}.calendarDays{border-top:1px solid #e6ece5;border-left:1px solid #e6ece5;border-radius:0 0 10px 10px;overflow:hidden}.calendarDay{min-width:0;min-height:112px;padding:7px;border-right:1px solid #e6ece5;border-bottom:1px solid #e6ece5;background:#fff}.calendarDay.today{background:#f3faf4}.calendarDayNumber{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;color:#52685a;font-size:11px;font-weight:800}.calendarDay.today .calendarDayNumber{color:#fff;background:var(--green)}.emptyCalendarDay{background:#f8faf7}.calendarDayLessons{display:flex;flex-direction:column;gap:4px;margin-top:4px}.calendarLesson{display:flex;flex-direction:column;gap:1px;width:100%;min-width:0;padding:5px 6px;border:1px solid #d7e8dc;border-left:3px solid #42805e;border-radius:6px;text-align:left;color:#294c38;background:#eaf4ed;font-size:10px;line-height:1.3;overflow:hidden}.calendarLesson:hover{background:#dceee1;border-color:#bad7c3}.calendarLesson b{font-size:9px;font-weight:850}.calendarLesson span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.calendarLesson.completed{border-left-color:#28754f;background:#e3f4e8}.calendarLesson.cancelled{border-color:#f0dfc9;color:#895b2a;background:#fcf3e7}@media (max-width:760px){.calendarPanelHeader{flex-direction:column;align-items:stretch}.calendarActions,.calendarPanelHeader .monthNav{width:100%;justify-content:space-between}.calendarActions{gap:8px}.calendarActions>.primary{width:auto}.monthCalendar{padding:8px}.calendarDay{min-height:85px;padding:4px}.calendarDayNumber{width:21px;height:21px;font-size:10px}.calendarWeekdays>div{padding:8px 1px;font-size:9px;letter-spacing:0}.calendarLesson{padding:4px 3px;font-size:9px;border-left-width:2px}.calendarLesson b{font-size:8px}.calendarDayLessons{gap:3px}}@media (max-width:420px){.calendarActions{align-items:stretch;flex-direction:column}.calendarActions>.primary,.viewToggle{width:100%}.viewToggleButton{flex:1 1}.calendarDay{min-height:72px}.calendarDay,.calendarLesson{padding:3px 2px}.calendarLesson span{font-size:8px}}.pageSubtitle{margin:8px 0 0;color:var(--muted);font-size:12px}.studentsTopbar{align-items:center}.studentsTablePanel{overflow:hidden}.studentsTableHeader{min-height:78px}.studentsTableHeader>div{display:flex;flex-direction:column;gap:4px}.studentSearch{display:block;width:min(320px,100%)}.studentSearch input{width:100%;min-height:40px;padding:9px 12px;border:1px solid #dfe7df;border-radius:10px;outline:none;color:var(--ink);background:#fff;font-size:12px}.studentSearch input:focus{border-color:#6eaa8b;box-shadow:0 0 0 3px rgba(61,131,94,.12)}.studentsTableWrap{width:100%;overflow-x:auto}.studentsTable{width:100%;border-collapse:separate;border-spacing:0;text-align:left;font-size:12px}.studentsTable th{padding:12px 17px;color:#718176;background:#f7f9f6;border-top:1px solid #edf0ec;border-bottom:1px solid #e5ebe4;font-size:10px;font-weight:850;letter-spacing:.45px;text-transform:uppercase;white-space:nowrap}.studentsTable td{padding:13px 17px;border-bottom:1px solid #edf0ec;color:#4b5c51;vertical-align:middle;white-space:nowrap}.studentsTable tbody tr:last-child td{border-bottom:0}.studentTableRow{cursor:pointer;outline:none;transition:background .15s ease}.studentTableRow:nth-child(2n){background:#fcfdfb}.studentTableRow:focus-visible,.studentTableRow:hover{background:#eef6f0}.studentTableIdentity{display:flex;align-items:center;gap:11px;min-width:175px}.studentTableIdentity>span:last-child{display:flex;flex-direction:column;gap:3px}.studentTableIdentity b{color:#263d30;font-size:12px}.nextLessonCell small,.studentTableIdentity small{color:#89958b;font-size:10px}.studentInitials{display:inline-grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border:1px solid #dce9de;border-radius:12px;background:#e9f3eb;color:#286b55;font-size:11px;font-weight:850}.studentAccessPill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:20px;background:#f0f2ef;color:#78857a;font-size:10px;font-weight:750}.studentAccessPill.isLinked{background:#e5f4e9;color:#28724e}.nextLessonCell{display:flex;flex-direction:column;gap:2px}.studentOpenButton{display:inline-flex;gap:7px;align-items:center;padding:7px 9px;border:1px solid #dce8de;border-radius:8px;background:#fff;color:var(--green);font-size:11px;font-weight:800}.studentOpenButton:hover{background:#eaf4ec}.studentDialog{width:min(540px,100%)}.studentDialogForm{display:flex;flex-direction:column;gap:16px}.studentDialogForm>.hintText{margin:0;line-height:1.6}.studentDialogDivider{padding-top:14px;border-top:1px solid #e9eee8}.studentDialogDivider b{color:#304a3b;font-size:12px}.studentDialogDivider b span{margin-left:6px;color:#8a968c;font-size:10px;font-weight:600}.studentDialogDivider p{margin:5px 0 0;color:var(--muted);font-size:11px}.studentDetailBackdrop{align-items:start;overflow-y:auto}.studentDetailModal{width:min(940px,100%);max-height:calc(100vh - 36px)}.studentDetailHeader{padding:20px 24px}.studentDetailHeading{display:flex;align-items:center;gap:14px;min-width:0}.studentDetailInitials{width:48px;height:48px;flex-basis:48px;border-radius:15px;font-size:13px}.studentDetailHeading .eyebrow{margin-bottom:3px}.studentDetailHeading h2{overflow-wrap:anywhere}.studentDetailHeading p:last-child{margin:3px 0 0;color:var(--muted);font-size:11px}.studentDetailBody{padding:21px 24px 25px;display:flex;flex-direction:column;gap:16px}.studentEditForm{padding:18px;border:1px solid #dfe8df;border-radius:13px;background:#f8faf7;display:flex;flex-direction:column;gap:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}.studentEditForm .studentSectionHeading{padding-bottom:12px;margin:0 0 2px;border-bottom:1px solid #e1e9e0}.studentEditForm .formRow{gap:14px}.studentEditForm label{display:flex;min-width:0;flex-direction:column;gap:6px;color:#536357;font-size:11px;font-weight:800}.studentEditForm input,.studentEditForm select,.studentEditForm textarea{width:100%;min-width:0;border:1px solid #dbe5db;border-radius:9px;background:#fff;color:#263d30;padding:10px 11px;font:inherit;font-size:12px;outline:none}.studentEditForm input:focus,.studentEditForm select:focus,.studentEditForm textarea:focus{border-color:#6eaa8b;box-shadow:0 0 0 3px rgba(61,131,94,.11)}.studentEditForm .hintText{margin:4px 0 0;font-size:10px;font-weight:500;line-height:1.5}.studentSectionHeading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.studentSectionHeading h3{margin:0;color:#2a4334;font-size:13px;letter-spacing:-.15px}.studentSectionHeading>span{color:#879489;font-size:10px}.studentDetailActions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.studentOverviewGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:14px;gap:14px}.studentOverviewCard{min-width:0;padding:17px;border:1px solid #e2e9e1;border-radius:13px;background:#fff}.studentOverviewCard .studentSectionHeading{margin-bottom:13px}.studentOverviewList{display:flex;flex-direction:column}.studentOverviewRow{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid #eff2ee}.studentOverviewRow:first-child{border-top:0;padding-top:0}.studentOverviewIcon{display:grid;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:9px;background:#e8f3eb;color:#286b55;font-weight:900}.studentOverviewRow>div{display:flex;flex-direction:column;gap:3px;min-width:0}.studentOverviewRow b{color:#3b4e41;font-size:11px}.studentOverviewRow small{color:var(--muted);font-size:10px}.studentEmptyText{margin:0;color:#849087;font-size:11px;line-height:1.6}.billingSummaryAmount{display:flex;flex-direction:column;gap:3px;padding:13px;border-radius:10px;background:#f3f8f3}.billingSummaryAmount small{color:#718176;font-size:10px}.billingSummaryAmount strong{color:#245d43;font-size:24px;letter-spacing:-.6px}.billingSummaryDetails{display:flex;flex-direction:column;gap:7px;padding:12px 1px 3px}.billingSummaryDetails span{display:flex;justify-content:space-between;align-items:baseline;gap:10px;color:var(--muted);font-size:10px}.billingSummaryDetails b{color:#46594c;text-align:right;font-size:10px;font-weight:750;overflow-wrap:anywhere}.studentInlineLink{display:inline-flex;margin-top:11px;color:var(--green);font-size:11px;font-weight:800;text-decoration:none}.studentInlineLink:hover{text-decoration:underline}.studentFamilyCard,.studentHistoryCard{padding:18px}.studentLessonHistory{padding:12px 0;border-top:1px solid #edf1ec}.studentLessonHistory:first-child{padding-top:0;border-top:0}.studentLessonHistoryTop{display:flex;align-items:center;justify-content:space-between;gap:10px}.studentLessonHistoryTop b{color:#3b4e41;font-size:11px}.studentLessonHistory p{margin:7px 0 0;color:#69766d;font-size:11px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.studentLessonHistory p strong{color:#40584a}.lessonStatusPill{display:inline-flex;padding:3px 7px;border-radius:20px;background:#edf2ed;color:#68796d;font-size:9px;font-weight:800;text-transform:capitalize}.lessonStatusPill.completed{background:#e4f3e8;color:#2b754f}.lessonStatusPill.scheduled{background:#e8f0fb;color:#436b9d}.studentParentRows{display:flex;flex-direction:column;gap:8px;margin:12px 0}.studentParentRow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px;border:1px solid #e7ece6;border-radius:10px}.studentParentRow>div{flex:1 1;min-width:170px;display:flex;flex-direction:column;gap:2px}.studentParentRow>div b{color:#415448;font-size:11px;overflow-wrap:anywhere}.studentParentRow>div small{color:#879389;font-size:10px}.addParentInlineForm{display:flex;align-items:flex-end;gap:10px;padding-top:14px;border-top:1px solid #edf1ec}.addParentInlineForm label{display:flex;flex:1 1;min-width:0;flex-direction:column;gap:6px;color:#506157;font-size:11px;font-weight:800}.addParentInlineForm input{min-width:0;width:100%;min-height:40px;padding:9px 11px;border:1px solid #dfe7df;border-radius:9px;outline:none;font-size:12px}.addParentInlineForm input:focus{border-color:#6eaa8b;box-shadow:0 0 0 3px rgba(61,131,94,.12)}.textDanger{padding:6px 8px;border:0;border-radius:7px;background:transparent;color:#a34a4a;font-size:10px;font-weight:800}.textDanger:hover{background:#fff0ef}@media (max-width:760px){.studentsTopbar{align-items:stretch}.studentsTopbar>.primary{align-self:flex-start}.studentsTableHeader{align-items:stretch}.studentSearch{width:100%}.studentsTableWrap{overflow:visible}.studentsTable,.studentsTable tbody{display:block;width:100%}.studentsTable thead{display:none}.studentsTable tbody{padding:8px 12px}.studentsTable tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px 10px;gap:8px 10px;margin:8px 0;padding:13px;border:1px solid #e4ebe3;border-radius:12px;background:#fff}.studentsTable td{display:block;padding:0;border:0;white-space:normal}.studentsTable td:first-child{grid-column:1/-1}.studentsTable td:nth-child(2):before{content:"Instrument · ";color:#8a968c}.studentsTable td:nth-child(3){grid-column:1}.studentsTable td:nth-child(4){grid-column:1;color:#7d897f;font-size:10px}.studentsTable td:nth-child(4):before{content:"Lessons · "}.studentsTable td:nth-child(5){grid-column:1}.studentsTable td:nth-child(5):before{content:"Next · ";color:#8a968c}.studentsTable td:last-child{grid-column:2;grid-row:2/span 4;align-self:center}.studentOverviewGrid{grid-template-columns:1fr}.studentDetailModal{max-height:calc(100vh - 14px)}.studentDetailBody{padding:13px;gap:12px}.studentDetailHeader{padding:14px}.studentEditForm,.studentOverviewCard{padding:13px}.studentDetailActions{align-items:stretch}.studentDetailActions>*{flex:1 1 auto}.addParentInlineForm{align-items:stretch;flex-direction:column}.addParentInlineForm .primary{align-self:flex-start}}@media (max-width:480px){.studentsTableHeader{flex-direction:column}.studentTableIdentity{min-width:0}.studentDetailHeading{gap:10px}.studentDetailInitials{width:41px;height:41px;flex-basis:41px}.studentDetailHeading h2{font-size:16px}.studentParentRow{align-items:flex-start}.studentParentRow>div{flex-basis:100%}.studentParentRow .secondary,.studentParentRow .textDanger{flex:0 0 auto}}.studentBillingSettingsForm{display:flex;flex-direction:column;gap:12px;margin-top:12px}.studentBillingSettingsForm label,.studentTermRateRow label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#526156;font-size:10px;font-weight:700}.studentBillingSettingsForm input,.studentBillingSettingsForm select,.studentBillingSettingsForm textarea,.studentTermRateRow input{width:100%;min-width:0;border:1px solid #dfe6de;border-radius:8px;background:#fff;color:var(--ink);padding:9px 10px;font:inherit;font-size:11px;font-weight:450}.studentBillingSettingsForm textarea{resize:vertical}.studentBillingSettingsForm .formRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.studentTermRates{margin-top:17px;padding-top:14px;border-top:1px solid #edf1ec}.studentTermRates h4{margin:0 0 10px;color:#344c3c;font-size:11px}.studentTermRateRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;grid-gap:9px;gap:9px;padding:10px 0;border-top:1px solid #edf1ec}.studentTermRateRow:first-of-type{border-top:0}.studentTermRateRow label{gap:5px}.studentTermRateRow label small{color:#859187;font-size:9px;font-weight:500}.studentTermRateRow button{white-space:nowrap}.billingGridFull{grid-template-columns:minmax(0,1fr)}.termChipEditing{align-items:stretch;flex-direction:column}.termEditForm{display:flex;flex-direction:column;gap:12px;width:100%}.termEditForm .formRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.termEditForm label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#526156;font-size:10px;font-weight:700}.termEditForm input,.termEditForm select{width:100%;min-width:0;border:1px solid #dfe6de;border-radius:8px;padding:9px 10px;background:#fff;color:var(--ink);font:inherit;font-size:11px}.termEditActions{display:flex;justify-content:flex-end;gap:8px}.termChip>div small{color:#7b897d;font-size:10px}@media(max-width:760px){.studentBillingSettingsForm .formRow,.termEditForm .formRow{grid-template-columns:1fr}.studentTermRateRow{grid-template-columns:minmax(0,1fr)}.studentTermRateRow button{justify-self:start}.termChip{align-items:stretch}.termChip:not(.termChipEditing){flex-direction:column}.termChip:not(.termChipEditing)>button{align-self:flex-start}.billingGridFull{grid-template-columns:minmax(0,1fr)}.billingFilters{flex-wrap:wrap}.billingFilters label{flex:1 1 150px;align-items:stretch;flex-direction:column;gap:6px}.billingFilters select{width:100%;min-width:0}}.billingTable tbody tr.billingClickableRow{cursor:pointer}.billingTable tbody tr.billingClickableRow:focus-visible{outline:2px solid #4e8060;outline-offset:-2px}.billingTable tbody tr.billingClickableRow td:first-child b{color:#285d3e}.billingTable tbody tr.billingClickableRow:hover td:first-child b{text-decoration:underline;text-underline-offset:3px}.historyClickable{width:100%;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}.historyClickable:hover{background:#f4f8f4}.historyClickable:focus-visible{outline:2px solid #4e8060;outline-offset:2px;border-radius:8px}