:root {
  --navy: #08152f;
  --navy-2: #10254d;
  --blue: #2d6cdf;
  --cyan: #37c6d0;
  --gold: #f0b44d;
  --cream: #f7f3ea;
  --paper: #ffffff;
  --ink: #17213a;
  --muted: #687086;
  --line: #dfe5ed;
  --soft: #f3f6fa;
  --green: #1f8f5f;
  --red: #c44848;
  --radius: 22px;
  --shadow: 0 24px 60px rgba(8, 21, 47, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: Inter, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }

.landing-shell { min-height: 780px; color: white; overflow: hidden; background: radial-gradient(circle at 83% 8%, rgba(45,108,223,.27), transparent 26%), radial-gradient(circle at 18% 90%, rgba(55,198,208,.1), transparent 24%), var(--navy); position: relative; }
.landing-shell::before { content: ""; position: absolute; inset: 0; opacity: .2; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 68px 68px; mask-image: linear-gradient(to right, transparent, #000 50%, #000); }
.site-header { width: min(1240px, calc(100% - 64px)); height: 92px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 5; border-bottom: 1px solid rgba(255,255,255,.13); }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand img { width: 45px; height: 45px; border-radius: 50%; object-fit: cover; }
.brand span { display: flex; flex-direction: column; line-height: 1.03; }
.brand b { font-size: 14px; letter-spacing: -.02em; }
.brand small { margin-top: 3px; color: var(--gold); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.site-nav { display: flex; gap: 34px; font-size: 13px; color: rgba(255,255,255,.74); }
.site-nav a { transition: .2s ease; }
.site-nav a:hover { color: white; }
.button { border: 0; border-radius: 999px; min-height: 51px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; color: var(--navy); background: var(--gold); font-weight: 750; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(240,180,77,.25); background: #ffc765; }
.button-small { min-height: 42px; padding: 0 19px; font-size: 12px; }
.button-wide { width: 100%; }

.hero { width: min(1240px, calc(100% - 64px)); min-height: 685px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; position: relative; z-index: 2; }
.hero-copy { padding: 72px 0 80px; }
.eyebrow { display: flex; align-items: center; gap: 11px; color: rgba(255,255,255,.67); font-size: 11px; text-transform: uppercase; letter-spacing: .18em; font-weight: 700; }
.eyebrow span { width: 26px; height: 2px; background: var(--gold); }
.eyebrow.dark { color: #7b8496; }
.hero h1 { max-width: 720px; margin: 24px 0 24px; font-size: clamp(52px, 5.3vw, 80px); line-height: .98; letter-spacing: -.066em; }
.hero h1 em { color: var(--gold); font-family: Georgia, serif; font-weight: 400; }
.hero-lead { max-width: 610px; margin: 0; color: rgba(255,255,255,.68); font-size: 17px; line-height: 1.7; }
.hero-actions { margin-top: 34px; display: flex; align-items: center; gap: 29px; }
.text-link { color: rgba(255,255,255,.78); font-size: 13px; border-bottom: 1px solid rgba(255,255,255,.35); padding-bottom: 5px; }
.hero-meta { display: flex; margin-top: 55px; }
.hero-meta div { min-width: 120px; display: flex; flex-direction: column; border-left: 1px solid rgba(255,255,255,.17); padding-left: 18px; margin-right: 22px; }
.hero-meta strong { font-family: Georgia, serif; color: white; font-size: 27px; font-weight: 500; }
.hero-meta span { margin-top: 4px; color: rgba(255,255,255,.53); font-size: 11px; }
.hero-visual { min-height: 600px; position: relative; }
.orbit { position: absolute; border: 1px solid rgba(240,180,77,.28); border-radius: 50%; }
.orbit-one { width: 440px; height: 440px; top: 80px; left: 70px; }
.orbit-two { width: 560px; height: 310px; transform: rotate(-22deg); top: 150px; left: 8px; border-color: rgba(55,198,208,.18); }
.orbit-one::after, .orbit-two::after { content: ""; position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); top: 48%; left: -5px; box-shadow: 0 0 0 6px rgba(240,180,77,.1); }
.hero-emblem { position: absolute; width: 270px; height: 270px; border-radius: 50%; top: 155px; left: 155px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); background: radial-gradient(circle at 35% 25%, #234b8e, #0d244e 70%); box-shadow: 0 35px 70px rgba(0,0,0,.35), inset 0 0 0 11px rgba(255,255,255,.035); }
.hero-emblem::before { content: ""; position: absolute; inset: 19px; border: 2px solid var(--gold); border-radius: inherit; }
.hero-emblem span, .hero-emblem i, .hero-emblem small { position: absolute; font-family: Georgia, serif; font-size: 102px; font-weight: 500; font-style: normal; }
.hero-emblem span { color: var(--cream); transform: translate(-26px,-1px); }
.hero-emblem i { color: var(--gold); transform: translate(26px, 13px); }
.hero-emblem small { font-size: 15px; bottom: 37px; letter-spacing: .3em; color: var(--gold); }
.formula { position: absolute; font-family: Georgia, serif; color: rgba(255,255,255,.25); font-style: italic; }
.formula-a { top: 58px; right: 25px; font-size: 19px; transform: rotate(9deg); }.formula-b { top: 196px; left: 42px; color: var(--gold); font-size: 33px; }.formula-c { right: 15px; bottom: 135px; color: var(--cyan); font-size: 33px; }.formula-d { left: 95px; bottom: 60px; font-size: 18px; }
.floating-note { position: absolute; padding: 14px 17px; display: flex; flex-direction: column; background: rgba(255,255,255,.96); color: var(--ink); border-radius: 13px; box-shadow: var(--shadow); }
.floating-note b { font-size: 12px; }.floating-note span { font-size: 9px; color: var(--muted); margin-top: 4px; }.note-one { left: 20px; bottom: 112px; transform: rotate(-3deg); }.note-two { right: -10px; top: 125px; transform: rotate(3deg); }.note-two b { color: var(--blue); font-size: 22px; }

.statement-strip { height: 95px; overflow: hidden; background: var(--gold); color: var(--navy); display: flex; justify-content: center; align-items: center; gap: 34px; font-family: Georgia, serif; font-size: clamp(22px, 2.4vw, 34px); }
.statement-strip i { opacity: .45; font-style: normal; }.statement-strip strong { font-weight: 700; }
.section { width: min(1180px, calc(100% - 64px)); margin: 0 auto; padding: 115px 0; }
.section-heading h2, .learning-copy h2, .results-copy h2 { margin: 17px 0 0; font-size: clamp(40px, 4.2vw, 62px); line-height: 1.04; letter-spacing: -.055em; }
.split-heading { display: grid; grid-template-columns: 1fr .7fr; align-items: end; gap: 90px; margin-bottom: 54px; }
.split-heading > p { color: var(--muted); line-height: 1.75; font-size: 15px; margin: 0 0 5px; }
.programs-section { padding-bottom: 130px; }
.program-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.program-card { min-height: 380px; position: relative; overflow: hidden; padding: 31px; border-radius: var(--radius); background: var(--soft); transition: .25s ease; }
.program-card:nth-child(2) { background: var(--navy); color: white; }.program-card:nth-child(3) { background: var(--cream); }
.program-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.program-number { font-family: Georgia, serif; font-size: 72px; color: rgba(23,33,58,.07); position: absolute; right: 22px; top: 8px; }.program-card:nth-child(2) .program-number { color: rgba(255,255,255,.08); }
.program-grades { display: inline-block; position: relative; z-index: 1; padding: 8px 12px; border-radius: 99px; color: var(--blue); background: #e6edfb; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .1em; }.program-card:nth-child(2) .program-grades { color: var(--gold); background: rgba(240,180,77,.12); }
.program-card h3 { max-width: 280px; margin: 78px 0 14px; font-size: 26px; line-height: 1.06; letter-spacing: -.035em; }.program-card p { color: var(--muted); font-size: 13px; line-height: 1.65; }.program-card:nth-child(2) p { color: rgba(255,255,255,.56); }
.program-card a { position: absolute; bottom: 30px; left: 31px; font-size: 12px; font-weight: 750; border-bottom: 1px solid currentColor; padding-bottom: 4px; }.program-card a span { margin-left: 8px; color: var(--blue); }

.learning-loop { width: 100%; max-width: none; padding: 0; background: var(--navy); color: white; display: grid; grid-template-columns: 1fr 1fr; }
.learning-photo { min-height: 720px; position: relative; overflow: hidden; }.learning-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8,21,47,.85), transparent 60%); }.learning-photo img { width: 100%; height: 100%; position: absolute; object-fit: cover; }.learning-photo span { position: absolute; z-index: 1; bottom: 35px; left: 42px; font-size: 11px; letter-spacing: .08em; }
.learning-copy { padding: 100px min(8vw,115px); align-self: center; }.learning-copy h2 { margin-bottom: 50px; }.step-list > div { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.12); }.step-list > div > b { font-family: Georgia, serif; color: var(--gold); font-size: 19px; }.step-list span { color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.55; }.step-list strong { display: block; color: white; font-size: 15px; margin-bottom: 5px; }

.schedule-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 45px; }.schedule-note { color: var(--muted); font-size: 12px; }
.schedule-list { border-top: 1px solid var(--line); }
.schedule-row { min-height: 120px; display: grid; grid-template-columns: 155px 1fr 1fr 1.2fr 100px; align-items: center; gap: 28px; border-bottom: 1px solid var(--line); transition: .2s ease; }.schedule-row:hover { padding-left: 10px; background: var(--soft); }
.grade-circle { width: 70px; height: 70px; border-radius: 50%; display: grid; place-content: center; text-align: center; color: white; background: var(--navy); font-family: Georgia,serif; font-size: 25px; }.grade-circle small { font-family: Inter,"Segoe UI",sans-serif; text-transform: uppercase; font-size: 8px; letter-spacing: .12em; color: var(--gold); }
.schedule-row div:not(.grade-circle) { display: flex; flex-direction: column; }.schedule-row div span { color: var(--muted); text-transform: uppercase; letter-spacing: .1em; font-size: 9px; margin-bottom: 7px; }.schedule-row div strong { font-size: 14px; }.schedule-row > a { font-size: 12px; font-weight: 700; }.schedule-row > a span { color: var(--blue); }

.teachers-section { background: var(--cream); width: 100%; max-width: none; padding-left: max(32px, calc((100% - 1180px)/2)); padding-right: max(32px, calc((100% - 1180px)/2)); }
.teacher-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }.teacher-card { padding-bottom: 20px; }.teacher-image { height: 390px; overflow: hidden; position: relative; border-radius: 18px; background: #d8d8d8; }.teacher-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; filter: saturate(.85); transition: transform .4s ease; }.teacher-card:hover img { transform: scale(1.035); }.teacher-image span { position: absolute; left: 16px; bottom: 16px; padding: 8px 12px; border-radius: 99px; color: white; background: rgba(8,21,47,.78); backdrop-filter: blur(8px); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }.teacher-card h3 { margin: 19px 0 8px; font-size: 23px; letter-spacing: -.03em; }.teacher-card p { color: var(--muted); font-size: 12px; line-height: 1.65; margin: 0; }

.results-section { width: 100%; max-width: none; padding: 0; display: grid; grid-template-columns: .9fr 1.1fr; background: var(--navy); color: white; }.results-copy { padding: 110px max(48px, calc((100vw - 1180px)/2)); padding-right: 70px; }.results-copy p { max-width: 520px; color: rgba(255,255,255,.58); line-height: 1.7; margin: 26px 0 34px; }.results-tags { display: flex; flex-wrap: wrap; gap: 9px; }.results-tags span { border: 1px solid rgba(255,255,255,.18); border-radius: 99px; padding: 8px 13px; color: rgba(255,255,255,.7); font-size: 10px; }
.results-gallery { min-height: 670px; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 4px; }.results-gallery img { width: 100%; height: 100%; object-fit: cover; }.results-gallery img:first-child { grid-row: 1 / 3; }
.final-cta { min-height: 350px; position: relative; overflow: hidden; padding: 60px max(32px, calc((100% - 1180px)/2)); display: grid; grid-template-columns: 1fr auto; align-items: center; color: var(--navy); background: var(--gold); }.final-cta > div:not(.cta-symbol) { position: relative; z-index: 1; }.final-cta span { font-size: 10px; text-transform: uppercase; letter-spacing: .16em; font-weight: 750; }.final-cta h2 { margin: 13px 0 11px; font-size: clamp(38px,4vw,60px); letter-spacing: -.055em; }.final-cta p { margin: 0; opacity: .66; }.button-light { position: relative; z-index: 1; background: var(--navy); color: white; }.button-light:hover { background: #142b56; box-shadow: 0 12px 25px rgba(8,21,47,.2); }.cta-symbol { position: absolute; right: 22%; top: -145px; font-family: Georgia,serif; font-size: 430px; opacity: .07; }
.site-footer { min-height: 150px; padding: 35px max(32px, calc((100% - 1180px)/2)); display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; background: var(--navy); color: white; }.footer-brand img { width: 42px; height: 42px; }.site-footer > p { text-align: center; color: rgba(255,255,255,.42); font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }.site-footer > div:last-child { display: flex; justify-content: flex-end; gap: 22px; color: rgba(255,255,255,.58); font-size: 11px; }

/* Information disclosure */
.disclosure-section { display: grid; grid-template-columns: .82fr 1.18fr; gap: 80px; align-items: center; }.disclosure-section h2 { margin: 17px 0 0; font-size: clamp(40px, 4.2vw, 62px); line-height: 1.04; letter-spacing: -.055em; }.disclosure-card { padding: 38px; border: 1px solid #e0e6ee; border-radius: var(--radius); background: var(--soft); }.disclosure-card > span { display: inline-flex; padding: 7px 10px; border-radius: 99px; color: var(--blue); background: #e5edfb; font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .1em; }.disclosure-card h3 { margin: 19px 0 13px; font-size: 27px; letter-spacing: -.035em; }.disclosure-card p { max-width: 650px; margin: 0 0 25px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.formal-page { background: #f5f7fa; }.formal-top { color: white; background: radial-gradient(circle at 85% 15%, rgba(45,108,223,.29), transparent 28%), var(--navy); }.formal-hero { width: min(1180px, calc(100% - 64px)); min-height: 350px; margin: 0 auto; padding: 80px 0 72px; }.formal-hero h1 { max-width: 900px; margin: 22px 0 20px; font-size: clamp(48px, 5.5vw, 76px); line-height: .98; letter-spacing: -.064em; }.formal-hero p { max-width: 750px; margin: 0; color: rgba(255,255,255,.64); font-size: 16px; line-height: 1.7; }.formal-alert { width: min(1180px, calc(100% - 64px)); margin: 28px auto 0; padding: 20px 24px; display: flex; align-items: flex-start; gap: 22px; border: 1px solid #ecd28f; border-radius: 14px; color: #755515; background: #fff8e8; }.formal-alert strong { white-space: nowrap; }.formal-alert span { line-height: 1.55; font-size: 13px; }.formal-layout { width: min(1180px, calc(100% - 64px)); margin: 0 auto; padding: 34px 0 100px; display: grid; grid-template-columns: 255px 1fr; gap: 34px; align-items: start; }.formal-nav { position: sticky; top: 22px; padding: 21px; display: flex; flex-direction: column; border: 1px solid #e0e6ee; border-radius: 15px; background: white; }.formal-nav > span { margin-bottom: 13px; color: var(--blue); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }.formal-nav a { padding: 9px 0; color: #5f6879; font-size: 11px; line-height: 1.35; border-top: 1px solid #edf0f4; }.formal-nav a:hover { color: var(--blue); }.formal-content { min-width: 0; display: flex; flex-direction: column; gap: 17px; }.formal-section { scroll-margin-top: 20px; padding: 31px; border: 1px solid #e0e6ee; border-radius: 17px; background: white; }.formal-section-heading { display: grid; grid-template-columns: 48px 1fr auto; gap: 15px; align-items: center; }.formal-section-heading > span { color: var(--gold); font-family: Georgia, serif; font-size: 31px; }.formal-section-heading small { color: #9299a7; font-size: 8px; font-weight: 750; text-transform: uppercase; letter-spacing: .12em; }.formal-section-heading h2 { max-width: 650px; margin: 5px 0 0; font-size: 22px; line-height: 1.14; letter-spacing: -.03em; }.status { padding: 7px 10px; border-radius: 99px; font-size: 8px; white-space: nowrap; }.status.pending { color: #8a5b0b; background: #fff2d0; }.status.ready { color: #17633a; background: #e5f4e9; }.formal-facts { margin: 26px 0 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #e8ecf1; }.formal-facts > div { min-height: 86px; padding: 17px 18px 15px 0; border-bottom: 1px solid #e8ecf1; }.formal-facts > div:nth-child(odd) { border-right: 1px solid #e8ecf1; }.formal-facts > div:nth-child(even) { padding-left: 18px; }.formal-facts dt { color: #858d9c; font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }.formal-facts dd { margin: 8px 0 0; font-size: 12px; line-height: 1.5; }.formal-checklist { list-style: none; margin: 24px 0 0; padding: 0; }.formal-checklist li { min-height: 48px; padding: 10px 0; display: grid; grid-template-columns: 22px 1fr auto; gap: 10px; align-items: center; border-top: 1px solid #edf0f4; }.formal-checklist i { color: #a4abb7; font-style: normal; }.formal-checklist span { color: #4f596b; font-size: 11px; line-height: 1.45; }.formal-checklist b { color: #a46f17; font-size: 8px; font-weight: 700; }.education-section { border-color: #cddbf3; box-shadow: 0 18px 55px rgba(21,43,86,.08); }.curriculum-card { margin-top: 27px; padding: 28px; color: white; border-radius: 15px; background: linear-gradient(140deg, #0d2148, #183d75); }.curriculum-meta { display: flex; flex-wrap: wrap; gap: 8px; }.curriculum-meta span { padding: 6px 9px; color: var(--gold); border: 1px solid rgba(240,180,77,.28); border-radius: 99px; font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }.curriculum-card h3 { margin: 20px 0 11px; font-size: 30px; letter-spacing: -.035em; }.curriculum-card > p { max-width: 690px; margin: 0; color: rgba(255,255,255,.67); font-size: 13px; line-height: 1.7; }.curriculum-card dl { margin: 25px 0; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }.curriculum-card dl div { padding: 15px 12px; border-left: 1px solid rgba(255,255,255,.13); }.curriculum-card dl div:first-child { border-left: 0; }.curriculum-card dt { color: rgba(255,255,255,.45); font-size: 8px; text-transform: uppercase; }.curriculum-card dd { margin: 7px 0 0; font-size: 10px; line-height: 1.45; }.curriculum-actions { display: flex; align-items: center; gap: 21px; }.curriculum-actions .button { min-height: 44px; font-size: 11px; }.document-link { color: rgba(255,255,255,.75); font-size: 10px; border-bottom: 1px solid rgba(255,255,255,.28); padding-bottom: 4px; }.document-warning { margin-top: 23px; padding: 15px 17px; display: grid; grid-template-columns: 155px 1fr; gap: 16px; border: 1px solid rgba(240,180,77,.25); border-radius: 10px; background: rgba(240,180,77,.09); }.document-warning strong { color: var(--gold); font-size: 10px; }.document-warning span { color: rgba(255,255,255,.65); font-size: 9px; line-height: 1.5; }.education-todo { margin-top: 16px; padding: 14px 16px; display: flex; gap: 8px; border-radius: 9px; background: #f3f6fa; color: #586276; font-size: 10px; line-height: 1.5; }.formal-bottom-note { padding: 24px; display: flex; flex-direction: column; gap: 7px; color: #5f6878; border-left: 3px solid var(--gold); background: white; font-size: 11px; line-height: 1.55; }.formal-bottom-note strong { color: var(--ink); }.formal-footer { margin-top: 0; }

/* Portal login */
.portal-page { min-height: 100vh; color: white; background: radial-gradient(circle at 15% 85%, rgba(55,198,208,.13), transparent 28%), radial-gradient(circle at 88% 12%, rgba(45,108,223,.26), transparent 28%), var(--navy); }
.portal-topbar { width: min(1180px,calc(100% - 64px)); height: 90px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.13); }.back-link { font-size: 12px; color: rgba(255,255,255,.65); }
.login-layout { width: min(1180px,calc(100% - 64px)); min-height: calc(100vh - 90px); margin: 0 auto; display: grid; grid-template-columns: 1fr .78fr; gap: 100px; align-items: center; padding: 55px 0 80px; }.login-intro h1 { font-size: clamp(48px,5vw,76px); line-height: .98; letter-spacing: -.06em; margin: 22px 0; }.login-intro h1 em { color: var(--gold); font-family: Georgia,serif; font-weight: 400; }.login-intro > p { max-width: 570px; color: rgba(255,255,255,.59); line-height: 1.7; font-size: 15px; }.login-benefits { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 55px; }.login-benefits > div { border-left: 1px solid rgba(255,255,255,.16); padding-left: 16px; display: flex; gap: 12px; }.login-benefits > div > b { color: var(--gold); font-family: Georgia,serif; }.login-benefits span { color: rgba(255,255,255,.45); font-size: 10px; line-height: 1.45; }.login-benefits strong { display: block; color: white; font-size: 12px; margin-bottom: 3px; }
.login-card-wrap { position: relative; }.login-card-wrap::before { content: "π"; position: absolute; font-family: Georgia,serif; color: rgba(240,180,77,.18); font-size: 220px; right: -90px; top: -115px; }.login-card { position: relative; padding: 39px; border-radius: 25px; background: white; color: var(--ink); box-shadow: 0 35px 90px rgba(0,0,0,.28); }.secure-chip { display: inline-flex; gap: 7px; color: var(--green); background: #e8f6ef; padding: 7px 10px; border-radius: 99px; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; font-weight: 750; }.login-card h2 { font-size: 32px; margin: 22px 0 9px; letter-spacing: -.04em; }.login-card > p { color: var(--muted); font-size: 12px; line-height: 1.55; margin: 0 0 25px; }.login-card label { display: flex; flex-direction: column; gap: 8px; margin: 16px 0; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; color: #5a6274; }.login-card input { height: 53px; border: 1px solid var(--line); border-radius: 12px; padding: 0 15px; background: #f8fafc; outline: none; font-size: 14px; letter-spacing: .02em; }.login-card input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(45,108,223,.12); background: white; }.form-error { margin: 7px 0 14px; padding: 10px 12px; border-radius: 9px; color: #982f2f; background: #fdecec; font-size: 11px; line-height: 1.4; }.demo-access { width: 100%; border: 1px dashed #bac3d0; background: #f7f9fc; margin-top: 13px; padding: 10px 13px; border-radius: 11px; display: flex; justify-content: space-between; cursor: pointer; color: var(--muted); font-size: 10px; }.demo-access b { color: var(--blue); font-size: 11px; }.privacy-note { display: block; text-align: center; color: #9aa1ae; font-size: 9px; line-height: 1.5; margin-top: 18px; }

/* Student dashboard */
.dashboard-page { min-height: 100vh; background: #f1f4f8; }.dashboard-header { height: 78px; padding: 0 30px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; background: var(--navy); color: white; }.dashboard-month { display: flex; gap: 10px; align-items: center; padding: 9px 13px; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; }.dashboard-month span { font-size: 9px; color: rgba(255,255,255,.48); text-transform: uppercase; }.dashboard-month b { font-size: 11px; }.profile-chip { justify-self: end; display: flex; align-items: center; gap: 10px; }.profile-chip > span { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: var(--navy); font-size: 12px; font-weight: 800; }.profile-chip div { display: flex; flex-direction: column; }.profile-chip b { font-size: 11px; }.profile-chip small { margin-top: 3px; font-size: 9px; color: rgba(255,255,255,.48); }.profile-chip button { border: 0; background: transparent; color: rgba(255,255,255,.5); cursor: pointer; font-size: 20px; }.dashboard-shell { display: grid; grid-template-columns: 215px 1fr; max-width: 1500px; margin: 0 auto; }.dashboard-sidebar { min-height: calc(100vh - 78px); padding: 28px 18px; display: flex; flex-direction: column; gap: 5px; background: white; border-right: 1px solid var(--line); }.dashboard-sidebar > a { height: 43px; border-radius: 9px; padding: 0 13px; display: flex; align-items: center; gap: 12px; color: #6d7586; font-size: 11px; font-weight: 600; }.dashboard-sidebar > a span { width: 19px; text-align: center; font-size: 16px; }.dashboard-sidebar > a.active { color: var(--blue); background: #edf3ff; }.sidebar-help { margin-top: auto; padding: 17px; display: flex; flex-direction: column; border-radius: 13px; color: white; background: var(--navy); }.sidebar-help b { font-size: 11px; }.sidebar-help span { margin: 7px 0 12px; color: rgba(255,255,255,.55); font-size: 9px; line-height: 1.5; }.sidebar-help button { padding: 0; text-align: left; border: 0; color: var(--gold); background: none; font-size: 9px; cursor: pointer; }.dashboard-main { padding: 30px; min-width: 0; }.dashboard-welcome { min-height: 145px; padding: 27px 31px; display: flex; justify-content: space-between; align-items: center; color: white; border-radius: 17px; background: radial-gradient(circle at 80% 0, rgba(45,108,223,.4), transparent 35%), var(--navy); }.dashboard-welcome > div:first-child > span { color: var(--gold); text-transform: uppercase; letter-spacing: .13em; font-size: 9px; }.dashboard-welcome h1 { font-size: 28px; margin: 10px 0 6px; letter-spacing: -.04em; }.dashboard-welcome h1 em { color: var(--gold); font-family: Georgia,serif; font-weight: 400; }.dashboard-welcome p { margin: 0; color: rgba(255,255,255,.48); font-size: 9px; }.next-lesson { min-width: 260px; padding: 17px 20px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; background: rgba(255,255,255,.05); }.next-lesson span { color: rgba(255,255,255,.48); font-size: 8px; text-transform: uppercase; letter-spacing: .13em; }.next-lesson b { margin: 7px 0 4px; font-size: 13px; }.next-lesson small { color: rgba(255,255,255,.55); font-size: 9px; }.metric-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; margin: 15px 0; }.metric-grid article { min-height: 145px; padding: 18px; display: flex; flex-direction: column; position: relative; overflow: hidden; border-radius: 13px; background: white; border: 1px solid #e4e8ee; }.metric-grid article > span { color: var(--muted); text-transform: uppercase; letter-spacing: .1em; font-size: 8px; }.metric-grid article > strong { margin: 14px 0 5px; font-size: 30px; letter-spacing: -.05em; }.metric-grid sup { font-size: 13px; color: #8c94a4; }.metric-grid small { color: #8d94a3; font-size: 9px; }.metric-grid i { position: absolute; height: 4px; left: 18px; bottom: 17px; border-radius: 99px; background: var(--blue); }.metric-grid article::after { content: ""; position: absolute; height: 4px; left: 18px; right: 18px; bottom: 17px; border-radius: 99px; background: #edf0f4; z-index: 0; }.metric-grid i { z-index: 1; }.metric-grid .rank-metric { background: #fff8e8; }.metric-grid .rank-metric i { background: var(--gold); }.metric-grid .due-metric { color: white; background: var(--blue); }.metric-grid .due-metric span, .metric-grid .due-metric small { color: rgba(255,255,255,.65); }.metric-grid .due-metric a { margin-top: 12px; color: white; font-size: 9px; font-weight: 700; }.metric-grid .due-metric::after { display: none; }.dashboard-two-col { display: grid; grid-template-columns: 1.35fr .85fr; gap: 15px; }.dashboard-two-col.lower-row { margin-top: 15px; grid-template-columns: .9fr 1.1fr; }.panel { padding: 20px; min-width: 0; border: 1px solid #e3e8ef; border-radius: 14px; background: white; }.panel-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }.panel-heading span { color: var(--muted); text-transform: uppercase; letter-spacing: .11em; font-size: 8px; }.panel-heading h2 { margin: 4px 0 0; font-size: 17px; }.panel-heading > b { padding: 6px 9px; border-radius: 99px; color: var(--blue); background: #edf3ff; font-size: 8px; }.topic-progress { display: flex; flex-direction: column; gap: 16px; }.topic-progress > div { display: grid; grid-template-columns: 165px 1fr 35px; align-items: center; gap: 13px; }.topic-progress span { display: flex; flex-direction: column; }.topic-progress span b { font-size: 10px; }.topic-progress span small { color: var(--muted); font-size: 8px; margin-top: 3px; }.topic-progress > div > i { height: 6px; overflow: hidden; border-radius: 99px; background: #edf0f4; }.topic-progress em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--blue),var(--cyan)); }.topic-progress > div > strong { text-align: right; font-size: 9px; }.rating-list > div { min-height: 35px; padding: 0 7px; display: grid; grid-template-columns: 25px 1fr 30px; align-items: center; border-top: 1px solid #edf0f4; font-size: 9px; }.rating-list > div > b { color: #8a92a2; }.rating-list > div span { display: flex; align-items: center; gap: 6px; }.rating-list small { padding: 3px 6px; border-radius: 99px; color: white; background: var(--blue); font-size: 7px; }.rating-list > div > strong { text-align: right; }.rating-list .current { margin: 0 -7px; padding: 0 14px; border-radius: 7px; border: 0; background: #edf3ff; color: var(--blue); }.attendance-timeline { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }.attendance-timeline > div { padding: 13px 10px; min-height: 115px; display: flex; flex-direction: column; border-radius: 10px; background: #f4f8f6; }.attendance-timeline i { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--green); font-size: 10px; font-style: normal; }.attendance-timeline span { margin: 11px 0 auto; display: flex; flex-direction: column; }.attendance-timeline span b { font-size: 10px; }.attendance-timeline span small { margin-top: 3px; color: var(--muted); font-size: 7px; line-height: 1.35; }.attendance-timeline > div > strong { color: var(--green); font-size: 8px; }.attendance-timeline .missed { background: #fdf2f2; }.attendance-timeline .missed i { background: var(--red); }.attendance-timeline .missed > strong { color: var(--red); }.invoice-panel { display: grid; grid-template-columns: 1fr 145px; gap: 15px; position: relative; color: white; background: var(--navy); }.invoice-copy > span { color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .1em; font-size: 8px; }.invoice-copy h2 { color: var(--gold); margin: 9px 0 14px; font-size: 28px; }.invoice-copy > div { max-width: 210px; display: flex; justify-content: space-between; padding: 6px 0; border-top: 1px solid rgba(255,255,255,.1); }.invoice-copy small { color: rgba(255,255,255,.5); font-size: 8px; }.invoice-copy b { font-size: 9px; }.invoice-copy .discount-line b { color: var(--gold); }.invoice-copy .button { min-height: 34px; margin-top: 11px; padding: 0 15px; font-size: 9px; }.invoice-qr { padding: 9px; border-radius: 10px; background: white; color: var(--ink); text-align: center; }.invoice-qr img { width: 112px; height: 112px; display: block; margin: 0 auto 5px; }.invoice-qr small { font-size: 7px; line-height: 1.35; }.qr-loading { width: 112px; height: 112px; background: #eef1f5; margin: 0 auto 5px; }.invoice-demo-note { grid-column: 1/-1; margin: 0; color: rgba(255,255,255,.4); font-size: 7px; }

/* Admin */
.admin-page { min-height: 100vh; display: grid; grid-template-columns: 230px 1fr; background: #f3f5f8; color: #162139; }.admin-sidebar { position: sticky; top: 0; height: 100vh; padding: 24px 18px; display: flex; flex-direction: column; color: white; background: var(--navy); }.admin-brand { padding: 0 10px 22px; border-bottom: 1px solid rgba(255,255,255,.11); }.admin-brand img { width: 38px; height: 38px; }.admin-brand b { font-size: 17px; }.admin-sidebar nav { display: flex; flex-direction: column; gap: 4px; margin-top: 23px; }.admin-sidebar nav button { height: 42px; padding: 0 12px; display: flex; align-items: center; gap: 11px; border: 0; border-radius: 9px; color: rgba(255,255,255,.55); background: transparent; cursor: pointer; text-align: left; font-size: 11px; font-weight: 600; }.admin-sidebar nav button span { width: 18px; font-size: 15px; }.admin-sidebar nav button.active { color: white; background: rgba(255,255,255,.1); }.sync-card { margin-top: auto; padding: 15px; border-radius: 12px; display: flex; flex-direction: column; background: rgba(255,255,255,.07); }.sync-card > span { color: rgba(255,255,255,.42); text-transform: uppercase; letter-spacing: .1em; font-size: 7px; }.sync-card b { margin-top: 7px; font-size: 10px; }.sync-card b i { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: var(--gold); }.sync-card small { margin: 8px 0 12px; color: rgba(255,255,255,.42); font-size: 8px; line-height: 1.45; }.sync-card button { height: 30px; border: 1px solid rgba(255,255,255,.14); border-radius: 7px; color: rgba(255,255,255,.4); background: transparent; font-size: 8px; }.admin-back { margin: 16px 9px 0; color: rgba(255,255,255,.4); font-size: 9px; }.admin-main { min-width: 0; }.admin-topbar { height: 70px; padding: 0 30px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); background: white; }.admin-topbar > div { display: flex; flex-direction: column; }.admin-topbar > div:first-child small { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }.admin-topbar > div:first-child b { font-size: 13px; margin-top: 3px; }.admin-topbar > div:last-child { flex-direction: row; align-items: center; gap: 9px; }.admin-topbar button { width: 35px; height: 35px; position: relative; border: 1px solid var(--line); border-radius: 50%; background: white; }.admin-topbar button i { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--red); right: 3px; top: 3px; }.admin-topbar > div:last-child > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--navy); background: var(--gold); font-weight: 800; }.admin-topbar > div:last-child div b { font-size: 10px; }.admin-topbar > div:last-child div small { color: var(--muted); font-size: 8px; }.admin-content { max-width: 1320px; margin: 0 auto; padding: 30px; }.admin-page-title { min-height: 82px; display: flex; justify-content: space-between; align-items: center; margin-bottom: 23px; }.admin-page-title span { color: var(--blue); text-transform: uppercase; letter-spacing: .11em; font-size: 8px; font-weight: 700; }.admin-page-title h1 { margin: 4px 0 4px; font-size: 30px; letter-spacing: -.04em; }.admin-page-title p { margin: 0; color: var(--muted); font-size: 10px; }.admin-primary { min-height: 39px; padding: 0 16px; border: 0; border-radius: 8px; color: white; background: var(--blue); cursor: pointer; font-size: 9px; font-weight: 700; }.admin-toast { position: fixed; z-index: 20; right: 28px; top: 82px; padding: 12px 17px; border-radius: 9px; color: white; background: var(--green); box-shadow: var(--shadow); font-size: 10px; }.admin-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; }.admin-metrics article { min-height: 125px; position: relative; padding: 17px; display: flex; flex-direction: column; border: 1px solid #e0e5eb; border-radius: 11px; background: white; }.admin-metrics article > span { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }.admin-metrics strong { margin: 14px 0 4px; font-size: 26px; letter-spacing: -.04em; }.admin-metrics small { color: #949baa; font-size: 8px; }.admin-metrics i { position: absolute; right: 14px; top: 14px; padding: 4px 6px; color: var(--green); background: #e9f6ef; border-radius: 99px; font-size: 7px; font-style: normal; }.admin-grid-main { display: grid; grid-template-columns: 1.2fr .8fr; gap: 13px; margin-top: 13px; }.admin-panel { padding: 19px; border: 1px solid #e0e5eb; border-radius: 11px; background: white; }.admin-panel-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 17px; }.admin-panel-heading span { color: var(--blue); text-transform: uppercase; letter-spacing: .1em; font-size: 7px; }.admin-panel-heading h2 { margin: 4px 0 0; font-size: 16px; }.admin-panel-heading button { border: 0; color: var(--blue); background: transparent; cursor: pointer; font-size: 8px; }.today-lessons article { min-height: 70px; display: grid; grid-template-columns: 55px 1fr 80px; align-items: center; border-top: 1px solid #edf0f4; }.today-lessons time { color: var(--blue); font-weight: 750; font-size: 13px; }.today-lessons div { display: flex; flex-direction: column; }.today-lessons div b { font-size: 10px; }.today-lessons div span { margin-top: 4px; color: var(--muted); font-size: 8px; }.today-lessons > article > strong { color: var(--muted); font-size: 8px; font-weight: 500; }.group-bars { display: flex; flex-direction: column; gap: 14px; }.group-bars > div { display: grid; grid-template-columns: 55px 1fr 30px; align-items: center; gap: 9px; font-size: 8px; }.group-bars i { height: 6px; border-radius: 99px; background: #edf0f4; overflow: hidden; }.group-bars i b { display: block; height: 100%; border-radius: inherit; background: var(--blue); }.group-bars strong { text-align: right; }.invoices-overview { margin-top: 13px; }.invoice-kpis { display: grid; grid-template-columns: repeat(4,1fr); }.invoice-kpis > div { padding: 3px 16px; border-left: 1px solid var(--line); display: flex; flex-direction: column; }.invoice-kpis > div:first-child { border-left: 0; padding-left: 0; }.invoice-kpis span { color: var(--muted); font-size: 8px; }.invoice-kpis b { margin: 8px 0 3px; font-size: 21px; }.invoice-kpis small { color: #9aa1ad; font-size: 8px; }
.plusnik-toolbar, .table-toolbar, .billing-rule, .settings-banner { padding: 14px 17px; display: flex; align-items: center; gap: 16px; border: 1px solid var(--line); border-radius: 10px; background: white; margin-bottom: 13px; }.plusnik-toolbar label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 8px; }.plusnik-toolbar select, .table-toolbar select { min-height: 34px; border: 1px solid var(--line); border-radius: 7px; padding: 0 10px; background: white; font-size: 9px; }.plusnik-toolbar > span { margin-left: auto; color: var(--muted); font-size: 8px; }.plusnik-table-wrap, .admin-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; background: white; }.plusnik-admin-table, .admin-data-table { width: 100%; border-collapse: collapse; font-size: 9px; }.plusnik-admin-table th, .admin-data-table th { height: 41px; padding: 0 11px; color: #778093; background: #f6f8fa; text-align: left; text-transform: uppercase; letter-spacing: .07em; font-size: 7px; border-bottom: 1px solid var(--line); white-space: nowrap; }.plusnik-admin-table th:not(:first-child), .plusnik-admin-table td:not(:first-child) { text-align: center; }.plusnik-admin-table td { height: 45px; border-top: 1px solid #edf0f4; padding: 0 5px; white-space: nowrap; }.plusnik-admin-table td:first-child { padding-left: 12px; font-weight: 650; }.task-check, .attendance-check { width: 25px; height: 25px; border: 1px solid #dbe1e9; border-radius: 6px; background: white; color: white; cursor: pointer; font-size: 10px; }.task-check.checked { background: var(--green); border-color: var(--green); }.attendance-check.checked { color: var(--green); background: #e6f5ed; border-color: #b9e2cd; }.attendance-check:not(.checked) { color: var(--red); }.table-toolbar input { width: 280px; height: 35px; border: 1px solid var(--line); border-radius: 7px; padding: 0 11px; font-size: 9px; outline: none; }.table-toolbar button { margin-left: auto; height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 7px; background: white; color: var(--blue); font-size: 8px; cursor: pointer; }.admin-data-table td { height: 49px; padding: 0 11px; border-top: 1px solid #edf0f4; white-space: nowrap; }.admin-data-table td b { font-size: 9px; }.admin-data-table code { color: var(--blue); background: #edf3ff; padding: 4px 6px; border-radius: 5px; font-size: 8px; }.admin-data-table td button { border: 0; background: transparent; cursor: pointer; }.top-rank { display: inline-block; min-width: 25px; padding: 4px; border-radius: 99px; text-align: center; color: #7c4a03; background: #ffe8aa; }.demo-table-note { color: var(--muted); font-size: 8px; }.billing-rule { gap: 28px; }.billing-rule > span { color: var(--muted); text-transform: uppercase; font-size: 7px; letter-spacing: .1em; }.billing-rule > div { display: flex; gap: 9px; align-items: center; font-size: 9px; }.billing-rule strong { color: var(--blue); }.status-due { padding: 5px 7px; color: #8c5a04; background: #fff2d0; border-radius: 99px; font-size: 7px; }.settings-banner { align-items: flex-start; flex-direction: column; gap: 5px; border-color: #f1d58d; background: #fff8e8; }.settings-banner b { font-size: 10px; }.settings-banner span { color: #7c6b48; font-size: 8px; }.settings-table td { position: relative; }.settings-table input, .settings-table select { height: 31px; max-width: 150px; border: 1px solid #dce2ea; border-radius: 6px; padding: 0 8px; background: #fbfcfd; font-size: 8px; }.settings-table td:nth-child(2) input { width: 100px; }.settings-table td:nth-child(3) input, .settings-table td:nth-child(4) input { width: 62px; }.settings-table td > span { margin-left: -17px; color: var(--muted); font-size: 8px; pointer-events: none; }

@media (max-width: 1050px) {
  .site-nav { display: none; }.hero { grid-template-columns: 1fr .75fr; }.hero-visual { transform: scale(.85); transform-origin: center; }.program-grid { grid-template-columns: 1fr 1fr; }.program-card:last-child { grid-column: 1/-1; min-height: 300px; }.schedule-row { grid-template-columns: 110px 1fr 1fr 1fr; }.schedule-row > a { display: none; }.metric-grid { grid-template-columns: 1fr 1fr; }.dashboard-two-col, .dashboard-two-col.lower-row { grid-template-columns: 1fr; }.admin-metrics { grid-template-columns: 1fr 1fr; }.admin-grid-main { grid-template-columns: 1fr; }.invoice-kpis { grid-template-columns: 1fr 1fr; gap: 15px; }
}

@media (max-width: 760px) {
  .site-header, .hero, .section, .portal-topbar, .login-layout { width: min(100% - 32px, 620px); }.site-header { height: 76px; }.site-header .button { padding: 0 13px; font-size: 0; }.site-header .button span { font-size: 14px; }.brand b { font-size: 12px; }.hero { display: block; min-height: 690px; }.hero-copy { padding: 65px 0 25px; }.hero h1 { font-size: 51px; }.hero-lead { font-size: 14px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; }.hero-meta { margin-top: 38px; }.hero-meta div { min-width: 88px; padding-left: 11px; margin-right: 8px; }.hero-visual { display: none; }.landing-shell { min-height: 750px; }.statement-strip { height: 72px; gap: 9px; font-size: 18px; }.section { padding: 75px 0; }.split-heading { display: block; margin-bottom: 35px; }.split-heading > p { margin-top: 25px; }.section-heading h2, .learning-copy h2, .results-copy h2 { font-size: 42px; }.program-grid { grid-template-columns: 1fr; }.program-card:last-child { grid-column: auto; }.learning-loop { grid-template-columns: 1fr; }.learning-photo { min-height: 460px; }.learning-copy { padding: 70px 24px; }.schedule-heading { display: block; }.schedule-note { display: block; margin-top: 15px; }.schedule-row { grid-template-columns: 70px 1fr 1fr; gap: 13px; min-height: 105px; }.schedule-row > div:nth-child(4) { display: none; }.grade-circle { width: 58px; height: 58px; }.teacher-grid { grid-template-columns: 1fr; }.teacher-image { height: 450px; }.results-section { grid-template-columns: 1fr; }.results-copy { padding: 75px 24px; }.results-gallery { min-height: 500px; }.final-cta { grid-template-columns: 1fr; gap: 30px; padding: 65px 24px; }.site-footer { grid-template-columns: 1fr; gap: 20px; text-align: left; }.site-footer > p { text-align: left; }.site-footer > div:last-child { justify-content: flex-start; }
  .login-layout { grid-template-columns: 1fr; gap: 40px; padding-top: 55px; }.login-intro h1 { font-size: 51px; }.login-benefits { display: none; }.login-card { padding: 27px 22px; }.dashboard-header { grid-template-columns: 1fr auto; padding: 0 15px; }.dashboard-month { display: none; }.profile-chip div { display: none; }.dashboard-shell { display: block; }.dashboard-sidebar { min-height: auto; position: sticky; top: 0; z-index: 5; padding: 8px; flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); }.dashboard-sidebar > a { min-width: 48px; padding: 0; justify-content: center; font-size: 0; }.dashboard-sidebar > a span { font-size: 16px; }.sidebar-help { display: none; }.dashboard-main { padding: 14px; }.dashboard-welcome { display: block; padding: 23px; }.dashboard-welcome h1 { font-size: 25px; }.next-lesson { margin-top: 20px; min-width: 0; }.metric-grid { grid-template-columns: 1fr 1fr; }.metric-grid article { min-height: 130px; }.metric-grid article > strong { font-size: 24px; }.dashboard-two-col { grid-template-columns: 1fr; }.topic-progress > div { grid-template-columns: 125px 1fr 30px; }.attendance-timeline { grid-template-columns: 1fr 1fr; }.invoice-panel { grid-template-columns: 1fr 125px; }
  .admin-page { grid-template-columns: 1fr; }.admin-sidebar { height: auto; position: sticky; z-index: 10; padding: 9px 12px; flex-direction: row; align-items: center; overflow-x: auto; }.admin-brand { border: 0; padding: 0; margin-right: 10px; }.admin-brand span { display: none; }.admin-brand img { width: 34px; height: 34px; }.admin-sidebar nav { margin: 0; flex-direction: row; }.admin-sidebar nav button { width: 41px; padding: 0; justify-content: center; font-size: 0; }.admin-sidebar nav button span { font-size: 15px; }.sync-card, .admin-back { display: none; }.admin-topbar { display: none; }.admin-content { padding: 17px; }.admin-page-title { align-items: flex-start; gap: 15px; }.admin-page-title h1 { font-size: 26px; }.admin-page-title p { max-width: 220px; }.admin-primary { white-space: nowrap; }.admin-metrics { grid-template-columns: 1fr 1fr; }.admin-metrics strong { font-size: 21px; }.invoice-kpis { grid-template-columns: 1fr 1fr; }.billing-rule { align-items: flex-start; flex-wrap: wrap; }.table-toolbar input { width: 170px; }.table-toolbar select { display: none; }
}

@media (max-width: 1050px) {
  .disclosure-section { grid-template-columns: 1fr; gap: 38px; }
  .formal-layout { grid-template-columns: 210px 1fr; }
  .curriculum-card dl { grid-template-columns: 1fr 1fr; }
  .curriculum-card dl div:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.13); }
  .curriculum-card dl div:nth-child(4) { border-top: 1px solid rgba(255,255,255,.13); }
}

@media (max-width: 760px) {
  .formal-hero, .formal-alert, .formal-layout { width: min(100% - 32px, 620px); }
  .formal-hero { min-height: 330px; padding: 65px 0; }
  .formal-hero h1 { font-size: 48px; }
  .formal-alert { flex-direction: column; gap: 8px; }
  .formal-alert strong { white-space: normal; }
  .formal-layout { display: block; padding-top: 20px; }
  .formal-nav { position: static; margin-bottom: 18px; max-height: 280px; overflow-y: auto; }
  .formal-section { padding: 22px 18px; }
  .formal-section-heading { grid-template-columns: 38px 1fr; }
  .formal-section-heading > .status { grid-column: 2; justify-self: start; }
  .formal-facts { grid-template-columns: 1fr; }
  .formal-facts > div:nth-child(odd) { border-right: 0; }
  .formal-facts > div:nth-child(even) { padding-left: 0; }
  .formal-checklist li { grid-template-columns: 20px 1fr; }
  .formal-checklist li b { grid-column: 2; }
  .curriculum-card { padding: 22px 17px; }
  .curriculum-card dl { grid-template-columns: 1fr; }
  .curriculum-card dl div { border-left: 0; border-top: 1px solid rgba(255,255,255,.13); }
  .curriculum-card dl div:first-child { border-top: 0; }
  .curriculum-actions, .education-todo { align-items: flex-start; flex-direction: column; }
  .document-warning { grid-template-columns: 1fr; }
}

@media print { .dashboard-sidebar, .dashboard-header, .dashboard-welcome, .metric-grid, .dashboard-two-col > section:not(#invoice), .invoice-demo-note { display: none !important; }.dashboard-shell, .dashboard-main, .dashboard-two-col.lower-row { display: block; }.invoice-panel { color: black; background: white; border: 1px solid #ddd; } }

/* 2026/27 schedule */
.schedule-row.schedule-row-v2 { grid-template-columns: 82px minmax(210px,1.25fr) minmax(150px,.75fr) minmax(230px,1fr) 90px; }
.schedule-program strong { font-size: 13px; }

/* Shared live portals */
.portal-loading { min-height: 100vh; display: grid; place-content: center; justify-items: center; gap: 15px; color: #677085; background: #f3f5f8; font-size: 12px; }
.portal-spinner { width: 34px; height: 34px; border: 3px solid #dce3ee; border-top-color: var(--blue); border-radius: 50%; animation: portal-spin .8s linear infinite; }
@keyframes portal-spin { to { transform: rotate(360deg); } }
.staff-login-page .login-intro p { max-width: 520px; }

/* Parent consent */
.link-button { padding: 0; border: 0; background: transparent; cursor: pointer; }
.consent-layout { width: min(1180px,calc(100% - 64px)); min-height: calc(100vh - 90px); margin: 0 auto; padding: 48px 0 70px; display: grid; grid-template-columns: .78fr 1fr; gap: 80px; align-items: center; }
.consent-intro h1 { margin: 22px 0; font-size: clamp(45px,4.7vw,70px); line-height: .98; letter-spacing: -.06em; }.consent-intro h1 em { color: var(--gold); font-family: Georgia,serif; font-weight: 400; }.consent-intro > p { max-width: 520px; margin: 0; color: rgba(255,255,255,.61); font-size: 14px; line-height: 1.7; }
.consent-card { padding: 34px; color: var(--ink); border-radius: 24px; background: white; box-shadow: 0 35px 90px rgba(0,0,0,.28); }.consent-card h2 { margin: 19px 0 16px; font-size: 28px; letter-spacing: -.04em; }
.consent-person { padding: 15px 17px; display: grid; grid-template-columns: 150px 1fr; gap: 8px 14px; border-radius: 13px; background: #f4f7fb; }.consent-person span { color: #858e9e; font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }.consent-person b { font-size: 10px; line-height: 1.45; }
.consent-relation { margin: 17px 0 12px; display: flex; flex-direction: column; gap: 7px; color: #626b7c; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }.consent-relation select { height: 45px; padding: 0 12px; border: 1px solid #dbe1e9; border-radius: 10px; background: white; font-size: 11px; }
.consent-checkbox { padding: 14px; display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start; color: #4e586a; border: 1px solid #dce3ec; border-radius: 12px; background: #fbfcfd; cursor: pointer; }.consent-checkbox input { width: 20px; height: 20px; margin: 0; accent-color: var(--blue); }.consent-checkbox span { font-size: 10px; line-height: 1.55; }.consent-checkbox a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
.consent-audit-note { margin: 10px 2px 15px; color: #8a92a0; font-size: 8px; line-height: 1.5; }.consent-card .button:disabled { cursor: not-allowed; opacity: .48; }

/* First-login questionnaire. Sensitive fields are collected only after the separate consent step. */
.onboarding-page { min-height: 100vh; }
.onboarding-layout { width: min(1260px,calc(100% - 64px)); margin: 0 auto; padding: 44px 0 80px; display: grid; grid-template-columns: minmax(280px,.68fr) minmax(620px,1.32fr); gap: 64px; align-items: start; }
.onboarding-intro { position: sticky; top: 34px; padding-top: 34px; }
.onboarding-intro h1 { margin: 22px 0; font-size: clamp(44px,4.4vw,68px); line-height: .98; letter-spacing: -.06em; }
.onboarding-intro h1 em { color: var(--gold); font-family: Georgia,serif; font-weight: 400; }
.onboarding-intro > p { max-width: 480px; margin: 0; color: rgba(255,255,255,.64); font-size: 15px; line-height: 1.7; }
.onboarding-person { margin-top: 27px; padding: 17px 18px; display: grid; grid-template-columns: 105px 1fr; gap: 9px 15px; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(255,255,255,.06); }
.onboarding-person span { color: rgba(255,255,255,.48); font-size: 13px; }
.onboarding-person b { font-size: 14px; line-height: 1.4; }
.onboarding-security-note { margin-top: 18px !important; padding-left: 17px; border-left: 2px solid var(--green); font-size: 13px !important; }
.onboarding-security-note b { display: block; margin-bottom: 3px; color: white; }
.onboarding-card { padding: 12px 34px 34px; color: var(--ink); border-radius: 24px; background: white; box-shadow: 0 35px 90px rgba(0,0,0,.28); }
.onboarding-card fieldset { margin: 0; padding: 28px 0; border: 0; border-bottom: 1px solid #e5e9ef; }
.onboarding-card legend { width: 100%; margin: 0 0 19px; padding: 0; display: flex; align-items: center; gap: 12px; }
.onboarding-card legend > span { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: var(--blue); border-radius: 10px; background: #edf3ff; font-size: 13px; font-weight: 800; }
.onboarding-card legend div { display: flex; flex-direction: column; gap: 2px; }
.onboarding-card legend b { font-size: 18px; letter-spacing: -.02em; }
.onboarding-card legend small { color: #858e9e; font-size: 13px; }
.onboarding-grid { display: grid; gap: 15px; }
.passport-grid { grid-template-columns: .55fr .8fr 1fr 1fr; }
.contact-grid { grid-template-columns: 1fr 1fr; }
.education-grid { grid-template-columns: .55fr 1.45fr; }
.onboarding-grid label { min-width: 0; display: flex; flex-direction: column; gap: 8px; color: #5e6879; font-size: 14px; font-weight: 700; }
.onboarding-grid input, .onboarding-grid select { width: 100%; min-width: 0; height: 48px; padding: 0 13px; color: var(--ink); border: 1px solid #d9e0e8; border-radius: 10px; outline: 0; background: #f8fafc; font: inherit; font-weight: 500; }
.onboarding-grid input:focus, .onboarding-grid select:focus { border-color: var(--blue); background: white; box-shadow: 0 0 0 3px rgba(45,108,223,.12); }
.onboarding-grid .wide-field { grid-column: 1/-1; }
.nested-fields { margin-top: 17px; padding: 18px; border-radius: 14px; background: #f5f7fa; }
.onboarding-toggle { min-height: 48px; padding: 0 14px; display: flex; align-items: center; gap: 11px; color: #4f596b; border: 1px solid #dce3ec; border-radius: 11px; background: #fbfcfd; cursor: pointer; font-size: 14px; font-weight: 700; }
.onboarding-toggle input, .messenger-choice input, .course-choice input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--blue); }
.messenger-choice { margin-top: 17px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.messenger-choice > span { margin-right: 4px; color: #5e6879; font-size: 14px; font-weight: 700; }
.messenger-choice label { min-height: 44px; padding: 0 14px; display: flex; align-items: center; gap: 8px; border: 1px solid #dce3ec; border-radius: 10px; cursor: pointer; font-size: 14px; }
.course-choice { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.course-choice label { min-height: 74px; padding: 14px; display: grid; grid-template-columns: 22px 1fr; gap: 11px; align-items: start; border: 1px solid #dce3ec; border-radius: 12px; background: #fbfcfd; cursor: pointer; }
.course-choice label.selected { border-color: #9db9ee; background: #edf3ff; box-shadow: inset 0 0 0 1px #c9daf8; }
.course-choice span { display: flex; flex-direction: column; gap: 5px; }
.course-choice b { font-size: 14px; line-height: 1.35; }
.course-choice small { color: #737d8d; font-size: 13px; line-height: 1.45; }
.course-placeholder { margin: 16px 0 0; padding: 16px; color: #737d8d; border-radius: 11px; background: #f5f7fa; font-size: 14px; }
.onboarding-card > .form-error { margin-top: 20px; font-size: 14px; }
.onboarding-submit { padding-top: 25px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.onboarding-submit p { max-width: 390px; margin: 0; color: #7a8392; font-size: 13px; line-height: 1.5; }
.onboarding-submit a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
.onboarding-submit .button { min-width: 260px; flex: 0 0 auto; }
.onboarding-submit .button:disabled { cursor: not-allowed; opacity: .55; }

/* Public consent document */
.privacy-page { min-height: 100vh; background: #f3f6f9; }.privacy-hero { min-height: 290px; }.privacy-document { width: min(900px,calc(100% - 64px)); margin: 30px auto 80px; padding: 38px; color: var(--ink); border: 1px solid #e0e6ed; border-radius: 18px; background: white; }.privacy-document-heading { padding-bottom: 24px; border-bottom: 1px solid #e7ebf0; }.privacy-document-heading > span { color: var(--blue); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }.privacy-document-heading h2 { margin: 7px 0 0; font-size: 25px; letter-spacing: -.035em; }.privacy-document > p { margin: 0; padding: 18px 0; display: grid; grid-template-columns: 38px 1fr; gap: 14px; border-bottom: 1px solid #edf0f4; }.privacy-document > p b { color: var(--gold); font-family: Georgia,serif; font-size: 20px; }.privacy-document > p span { color: #596274; font-size: 12px; line-height: 1.7; }.privacy-document aside { margin-top: 20px; padding: 17px 19px; display: flex; flex-direction: column; gap: 6px; color: #4f5e76; border-left: 3px solid var(--blue); background: #edf3ff; }.privacy-document aside strong { color: var(--ink); font-size: 10px; }.privacy-document aside span { font-size: 9px; line-height: 1.6; }.privacy-document .privacy-legal-note { border-left-color: var(--gold); background: #fff8e8; }.privacy-document .button { margin-top: 25px; }

/* Student cabinet */
.student-shell-v2 { min-height: calc(100vh - 78px); background: #f2f5f8; }
.student-primary-tabs { min-height: 58px; padding: 8px max(28px,calc((100% - 1320px)/2)); display: flex; gap: 7px; align-items: center; color: #687185; background: white; border-bottom: 1px solid #e2e7ee; }.student-primary-tabs button { min-height: 40px; padding: 0 16px; display: flex; align-items: center; gap: 8px; color: #687185; border: 0; border-radius: 9px; background: transparent; font-size: 10px; font-weight: 800; cursor: pointer; }.student-primary-tabs button span { font-size: 14px; }.student-primary-tabs button.active { color: var(--blue); background: #edf3ff; }
.student-group-bar { min-height: 78px; padding: 14px max(28px,calc((100% - 1320px)/2)); display: flex; align-items: center; gap: 28px; color: #687185; background: white; border-bottom: 1px solid #e2e7ee; }
.student-group-bar > span { flex: 0 0 auto; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.student-group-bar > div { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.student-group-bar button { min-height: 40px; padding: 0 14px; flex: 0 0 auto; border: 1px solid #dce3ec; border-radius: 10px; color: #596276; background: #fff; font-size: 10px; font-weight: 700; cursor: pointer; }
.student-group-bar button.active { color: white; border-color: var(--blue); background: var(--blue); box-shadow: 0 8px 20px rgba(45,108,223,.18); }
.student-content-v2 { width: min(1320px,calc(100% - 56px)); margin: 0 auto; padding: 28px 0 60px; }
.student-hero-v2 { min-height: 190px; padding: 30px 34px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 35px; color: white; border-radius: 20px; background: radial-gradient(circle at 80% 0, rgba(45,108,223,.45), transparent 37%), var(--navy); }
.student-hero-v2 > div:first-child > span { color: var(--gold); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.student-hero-v2 h1 { max-width: 650px; margin: 10px 0 9px; font-size: clamp(26px,3vw,42px); letter-spacing: -.045em; }
.student-hero-v2 p { margin: 0; color: rgba(255,255,255,.58); font-size: 11px; line-height: 1.55; }
.student-kpis-v2 { display: grid; grid-template-columns: repeat(3,130px); gap: 9px; }
.student-kpis-v2 article { min-height: 112px; padding: 17px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.14); border-radius: 13px; background: rgba(255,255,255,.06); }
.student-kpis-v2 article > span { color: rgba(255,255,255,.56); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }
.student-kpis-v2 strong { margin-top: auto; font-size: 30px; letter-spacing: -.04em; }
.student-kpis-v2 small { color: rgba(255,255,255,.5); font-size: 8px; }
.lesson-history-v2 { margin-top: 18px; padding: 24px; border: 1px solid #e1e6ed; border-radius: 17px; background: white; }
.portal-section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.portal-section-heading span { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .11em; }
.portal-section-heading h2 { margin: 5px 0 0; font-size: 20px; }
.portal-section-heading > b { padding: 7px 10px; color: var(--blue); border-radius: 99px; background: #edf3ff; font-size: 9px; }
.lesson-card-list-v2 { display: flex; flex-direction: column; }
.student-lesson-card { min-height: 116px; padding: 18px 8px; display: grid; grid-template-columns: 62px 1fr 135px; gap: 18px; align-items: center; border-top: 1px solid #e8ecf1; }
.student-lesson-card:first-child { border-top: 0; }
.lesson-date-badge { width: 54px; height: 60px; display: grid; place-content: center; text-align: center; color: var(--blue); border: 1px solid #dbe4f2; border-radius: 13px; background: #f3f7fd; }
.lesson-date-badge strong { font-size: 21px; line-height: 1; }.lesson-date-badge span { margin-top: 4px; font-size: 8px; text-transform: uppercase; }
.student-lesson-main > span { color: #8991a0; font-size: 8px; text-transform: uppercase; letter-spacing: .07em; }
.student-lesson-main h3 { margin: 7px 0 10px; font-size: 15px; }
.lesson-files-v2 { display: flex; flex-wrap: wrap; gap: 7px; }
.lesson-files-v2 a { padding: 6px 9px; color: var(--blue); border-radius: 7px; background: #edf3ff; font-size: 8px; font-weight: 750; }
.lesson-result-v2 { display: grid; justify-items: end; }
.lesson-result-v2 > span { padding: 5px 8px; border-radius: 99px; font-size: 7px; font-weight: 800; text-transform: uppercase; }
.lesson-result-v2 > span.present { color: #147344; background: #e8f6ef; }.lesson-result-v2 > span.absent { color: #a33232; background: #fdecec; }.lesson-result-v2 > span.pending { color: #7f6d42; background: #fff5d7; }
.lesson-result-v2 strong { margin-top: 9px; font-size: 25px; }.lesson-result-v2 strong small { color: #8b93a1; font-size: 11px; }.lesson-result-v2 em { color: #8b93a1; font-size: 7px; font-style: normal; }
.portal-empty { min-height: 180px; display: grid; place-content: center; justify-items: center; gap: 7px; color: #8c94a3; text-align: center; }.portal-empty b { color: #3e4758; font-size: 13px; }.portal-empty span { font-size: 9px; }
.payment-hero-v2 { min-height: 190px; padding: 31px 35px; display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; color: white; border-radius: 20px; background: radial-gradient(circle at 78% 0,rgba(240,180,77,.17),transparent 36%),var(--navy); }.payment-hero-v2 > div:first-child > span { color: var(--gold); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }.payment-hero-v2 h1 { margin: 10px 0 8px; font-size: clamp(31px,3.5vw,48px); letter-spacing: -.05em; }.payment-hero-v2 p { margin: 0; color: rgba(255,255,255,.58); font-size: 11px; }
.payment-summary { min-width: 220px; padding: 20px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; background: rgba(255,255,255,.06); }.payment-summary > span { color: var(--gold); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }.payment-summary > strong { margin: 10px 0 3px; font-size: 28px; }.payment-summary > small { color: rgba(255,255,255,.48); font-size: 8px; }
.payment-panel-v2 { margin-top: 18px; padding: 24px; border: 1px solid #e1e6ed; border-radius: 17px; background: white; }.payment-empty-v2 { min-height: 310px; display: grid; place-content: center; justify-items: center; text-align: center; }.payment-empty-icon { width: 56px; height: 56px; display: grid; place-items: center; color: var(--blue); border-radius: 50%; background: #edf3ff; font-size: 22px; font-weight: 800; }.payment-empty-v2 h3 { margin: 17px 0 8px; font-size: 18px; }.payment-empty-v2 > p { max-width: 580px; margin: 0; color: #7f8797; font-size: 10px; line-height: 1.65; }.payment-empty-v2 > div:last-child { margin-top: 20px; display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; }.payment-empty-v2 > div:last-child span { width: 100%; color: #949baa; font-size: 7px; text-transform: uppercase; letter-spacing: .1em; }.payment-empty-v2 > div:last-child b { padding: 6px 9px; color: #596274; border-radius: 99px; background: #f1f4f7; font-size: 8px; }
.payment-list-v2 { display: flex; flex-direction: column; }.payment-list-v2 article { min-height: 105px; padding: 17px 6px; display: grid; grid-template-columns: 1.3fr .7fr .7fr 1fr; gap: 18px; align-items: center; border-top: 1px solid #e8ecf1; }.payment-list-v2 article:first-child { border-top: 0; }.payment-list-v2 article > div { display: flex; flex-direction: column; }.payment-list-v2 article > div > span { color: #8a92a1; font-size: 7px; text-transform: uppercase; letter-spacing: .08em; }.payment-list-v2 article > div > strong, .payment-period > b { margin-top: 7px; font-size: 13px; }.payment-list-v2 article small { margin-top: 5px; color: #8a92a1; font-size: 7px; line-height: 1.4; }.payment-balance { align-items: flex-end; text-align: right; }.payment-balance > span { padding: 5px 8px; border-radius: 99px; }.payment-balance > span.paid { color: #147344; background: #e8f6ef; }.payment-balance > span.overdue { color: #a33232; background: #fdecec; }.payment-balance > span.pending, .payment-balance > span.partial { color: #7f5c19; background: #fff1c8; }

/* Teacher workspace */
.teacher-app { min-height: 100vh; display: grid; grid-template-columns: 225px 1fr; color: #172033; background: #f3f5f8; }
.teacher-sidebar { height: 100vh; position: sticky; top: 0; display: flex; flex-direction: column; padding: 18px 14px; color: white; background: var(--navy); }
.teacher-sidebar .admin-brand { padding: 4px 7px 22px; border-bottom: 1px solid rgba(255,255,255,.12); }
.teacher-sidebar nav { display: flex; flex-direction: column; gap: 5px; margin-top: 22px; }
.teacher-sidebar nav button { min-height: 44px; padding: 0 13px; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.58); border: 0; border-radius: 9px; background: transparent; font-size: 10px; font-weight: 700; cursor: pointer; }
.teacher-sidebar nav button span { width: 18px; color: var(--gold); font-size: 16px; }
.teacher-sidebar nav button.active { color: white; background: rgba(255,255,255,.1); }
.teacher-identity { margin-top: auto; padding: 13px 8px 2px; display: grid; grid-template-columns: 35px 1fr 25px; gap: 9px; align-items: center; border-top: 1px solid rgba(255,255,255,.12); }
.teacher-identity > span { width: 35px; height: 35px; display: grid; place-items: center; color: var(--navy); border-radius: 50%; background: var(--gold); font-size: 10px; font-weight: 800; }
.teacher-identity div { min-width: 0; display: flex; flex-direction: column; }.teacher-identity b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }.teacher-identity small { margin-top: 3px; color: rgba(255,255,255,.47); font-size: 7px; }.teacher-identity button { color: rgba(255,255,255,.6); border: 0; background: none; font-size: 17px; cursor: pointer; }
.teacher-main { min-width: 0; }
.teacher-topbar { height: 68px; padding: 0 25px; display: flex; justify-content: space-between; align-items: center; background: white; border-bottom: 1px solid #e2e6ed; }
.teacher-topbar > div { display: flex; flex-direction: column; }.teacher-topbar small { color: #8b93a1; font-size: 7px; text-transform: uppercase; letter-spacing: .1em; }.teacher-topbar b { margin-top: 4px; font-size: 11px; }
.teacher-new-button, .teacher-save-button { min-height: 38px; padding: 0 14px; color: white; border: 0; border-radius: 9px; background: var(--blue); font-size: 9px; font-weight: 800; cursor: pointer; }
.teacher-error { margin: 12px 25px 0; min-height: 42px; padding: 0 13px; display: flex; align-items: center; justify-content: space-between; color: #912f2f; border: 1px solid #f0c5c5; border-radius: 9px; background: #fff0f0; font-size: 9px; }.teacher-error button { border: 0; background: none; color: inherit; font-size: 18px; cursor: pointer; }
.teacher-content { padding: 25px; }
.teacher-title { min-height: 68px; display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.teacher-title > div > span { color: var(--blue); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }.teacher-title h1 { margin: 5px 0 4px; font-size: 29px; letter-spacing: -.045em; }.teacher-title p { margin: 0; color: #7c8494; font-size: 9px; }
.teacher-workspace-grid { margin-top: 16px; display: grid; grid-template-columns: 265px 1fr; gap: 14px; align-items: start; }
.lesson-picker-panel, .lesson-editor-panel, .plusnik-v2, .teacher-table-wrap { border: 1px solid #e1e6ed; border-radius: 14px; background: white; }
.lesson-picker-panel { max-height: 510px; overflow: hidden; }
.lesson-picker-heading { height: 51px; padding: 0 13px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #e7ebf0; }.lesson-picker-heading b { font-size: 9px; }.lesson-picker-heading button { width: 29px; height: 29px; color: white; border: 0; border-radius: 7px; background: var(--blue); cursor: pointer; }
.lesson-picker-list { max-height: 458px; overflow-y: auto; }.lesson-picker-list > button { width: 100%; min-height: 68px; padding: 9px 11px; display: grid; grid-template-columns: 48px 1fr 23px; gap: 9px; align-items: center; text-align: left; border: 0; border-bottom: 1px solid #edf0f4; background: white; cursor: pointer; }.lesson-picker-list > button.active { background: #edf3ff; box-shadow: inset 3px 0 var(--blue); }.lesson-picker-list time { display: flex; flex-direction: column; }.lesson-picker-list time strong { font-size: 9px; }.lesson-picker-list time small, .lesson-picker-list span small { margin-top: 3px; color: #9098a6; font-size: 7px; }.lesson-picker-list span { min-width: 0; display: flex; flex-direction: column; }.lesson-picker-list span b, .lesson-picker-list span small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.lesson-picker-list span b { font-size: 8px; }.lesson-picker-list em { width: 22px; height: 22px; display: grid; place-items: center; color: var(--blue); border-radius: 6px; background: #e1ebfc; font-size: 8px; font-style: normal; font-weight: 800; }
.lesson-editor-panel { overflow: hidden; }
.lesson-form { padding: 18px; }
.lesson-form-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }.lesson-form-heading span, .lesson-files-panel > div > span { color: #87909f; font-size: 7px; text-transform: uppercase; letter-spacing: .1em; }.lesson-form-heading h2, .lesson-files-panel h3 { margin: 4px 0 0; font-size: 15px; }.lesson-form-heading button { min-height: 34px; padding: 0 12px; color: white; border: 0; border-radius: 8px; background: var(--navy); font-size: 8px; font-weight: 800; cursor: pointer; }
.lesson-form-grid { display: grid; grid-template-columns: 1.3fr .8fr .65fr .65fr; gap: 10px; }.lesson-form-grid label { display: flex; flex-direction: column; gap: 7px; color: #6e7687; font-size: 7px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }.lesson-form-grid input, .lesson-form-grid select { min-width: 0; height: 40px; padding: 0 10px; border: 1px solid #dce2ea; border-radius: 8px; outline: 0; background: #fafbfc; font-size: 9px; }.lesson-form-grid input:focus, .lesson-form-grid select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(45,108,223,.1); }.lesson-form-grid .topic-field { grid-column: 1/4; }
.lesson-files-panel { padding: 16px 18px 18px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 11px; border-top: 1px solid #e7ebf0; background: #fafbfc; }.lesson-files-panel > div { align-self: center; }.lesson-files-panel label { min-height: 72px; padding: 11px; position: relative; display: flex; flex-direction: column; justify-content: center; border: 1px dashed #cbd4df; border-radius: 10px; background: white; cursor: pointer; }.lesson-files-panel label.uploaded { border-style: solid; border-color: #bcd7c9; background: #f2faf6; }.lesson-files-panel label > span { color: #8a92a0; font-size: 7px; text-transform: uppercase; }.lesson-files-panel label > b { max-width: 210px; margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }.lesson-files-panel label input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }.lesson-files-panel label a { position: absolute; right: 9px; bottom: 8px; z-index: 2; color: var(--blue); font-size: 7px; font-weight: 800; }
.plusnik-v2 { margin-top: 14px; overflow: hidden; }.plusnik-v2-heading { padding: 17px 18px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #e4e8ee; }.plusnik-v2-heading span { color: var(--blue); font-size: 7px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }.plusnik-v2-heading h2 { margin: 4px 0; font-size: 17px; }.plusnik-v2-heading p { margin: 0; color: #8a92a1; font-size: 8px; }.plusnik-v2-heading > div:last-child { display: flex; align-items: center; gap: 6px; color: #8a92a1; font-size: 7px; }.plusnik-v2-heading i { width: 9px; height: 9px; border-radius: 3px; }.legend-current { background: var(--green); }.legend-other { margin-left: 8px; background: var(--blue); }
.plusnik-scroll { overflow: auto; max-height: 620px; }.plusnik-scroll table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; }.plusnik-scroll th { height: 39px; min-width: 45px; position: sticky; top: 0; z-index: 2; color: #778092; border-bottom: 1px solid #e1e6ed; background: #f7f9fb; font-size: 7px; text-transform: uppercase; }.plusnik-scroll th:first-child { left: 0; z-index: 4; min-width: 210px; text-align: left; padding-left: 13px; }.plusnik-scroll th:nth-child(2) { left: 210px; z-index: 4; min-width: 55px; }.plusnik-scroll td { height: 53px; min-width: 45px; text-align: center; border-bottom: 1px solid #edf0f4; background: white; }.plusnik-scroll td:first-child { width: 210px; max-width: 210px; position: sticky; left: 0; z-index: 3; padding: 0 13px; text-align: left; box-shadow: 7px 0 10px -11px #27334a; }.plusnik-scroll td:first-child b, .plusnik-scroll td:first-child small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.plusnik-scroll td:first-child b { font-size: 9px; }.plusnik-scroll td:first-child small { margin-top: 3px; color: #969dac; font-size: 7px; }.plusnik-scroll td:nth-child(2) { position: sticky; left: 210px; z-index: 3; background: white; box-shadow: 7px 0 10px -11px #27334a; }.attendance-cell, .task-cell { width: 31px; height: 31px; position: relative; display: inline-grid; place-items: center; border: 1px solid #dce2e9; border-radius: 8px; color: #9aa2ae; background: white; font-size: 9px; font-weight: 800; cursor: pointer; }.attendance-cell.checked { color: white; border-color: var(--green); background: var(--green); }.task-cell.checked { color: white; border-color: var(--green); background: var(--green); }.task-cell.other-teacher { border-color: var(--blue); background: var(--blue); }.task-cell small { position: absolute; right: -4px; bottom: -4px; width: 13px; height: 13px; display: grid; place-items: center; color: var(--navy); border: 1px solid white; border-radius: 50%; background: var(--gold); font-size: 5px; }.plusnik-scroll td:last-child strong { color: var(--blue); font-size: 10px; }.plusnik-mobile-note { display: none; padding: 9px 13px; color: #8a92a1; border-top: 1px solid #e5e9ef; font-size: 7px; text-align: center; }
.student-search { margin: 14px 0 10px; }.student-search input { width: min(420px,100%); height: 42px; padding: 0 13px; border: 1px solid #dce2e9; border-radius: 9px; background: white; outline: 0; font-size: 9px; }.teacher-table-wrap { overflow: auto; }.teacher-table-wrap table { width: 100%; border-collapse: collapse; }.teacher-table-wrap th { height: 40px; padding: 0 12px; color: #7f8797; background: #f7f9fb; text-align: left; font-size: 7px; text-transform: uppercase; }.teacher-table-wrap td { min-height: 48px; padding: 12px; border-top: 1px solid #edf0f4; font-size: 8px; line-height: 1.5; }.teacher-table-wrap td b { font-size: 9px; }.teacher-table-wrap code { color: var(--blue); border-radius: 5px; background: #edf3ff; padding: 4px 6px; }
.teacher-stat-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 13px; }.teacher-stat-grid article { padding: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; border: 1px solid #e1e6ed; border-radius: 14px; background: white; }.teacher-stat-grid article > span, .teacher-stat-grid article > h2 { grid-column: 1/-1; }.teacher-stat-grid article > span { color: var(--blue); font-size: 7px; text-transform: uppercase; letter-spacing: .1em; }.teacher-stat-grid h2 { margin: 0; font-size: 17px; }.teacher-stat-grid article > div { display: flex; flex-direction: column; }.teacher-stat-grid article > div b { font-size: 25px; }.teacher-stat-grid article > div small { color: #8a92a1; font-size: 7px; }

@media (max-width: 1000px) {
  .schedule-row.schedule-row-v2 { grid-template-columns: 72px minmax(180px,1fr) minmax(130px,.7fr) minmax(200px,1fr); }.schedule-row.schedule-row-v2 > a { display: none; }
  .student-hero-v2, .payment-hero-v2 { grid-template-columns: 1fr; }.student-kpis-v2 { grid-template-columns: repeat(3,1fr); }.payment-summary { min-width: 0; }
  .consent-layout { grid-template-columns: 1fr; gap: 36px; }.consent-intro { max-width: 720px; }.consent-card { max-width: 720px; }
  .onboarding-layout { grid-template-columns: 1fr; gap: 34px; }.onboarding-intro { position: static; max-width: 800px; padding-top: 0; }.onboarding-intro h1 { font-size: 52px; }.onboarding-security-note { max-width: 700px !important; }.passport-grid { grid-template-columns: .6fr .8fr 1fr; }.passport-grid label:nth-child(4) { grid-column: 1/2; }.passport-grid .wide-field { grid-column: 2/-1; }
  .teacher-workspace-grid { grid-template-columns: 1fr; }.lesson-picker-panel { max-height: 260px; }.lesson-picker-list { max-height: 208px; }
  .lesson-form-grid { grid-template-columns: 1fr 1fr 1fr; }.lesson-form-grid .topic-field { grid-column: 1/3; }
}

@media (max-width: 700px) {
  .schedule-row.schedule-row-v2 { min-height: 138px; grid-template-columns: 65px 1fr; gap: 8px 14px; padding: 15px 0; }.schedule-row.schedule-row-v2 > div:nth-child(3), .schedule-row.schedule-row-v2 > div:nth-child(4) { grid-column: 2; }.schedule-row.schedule-row-v2 .grade-circle { grid-row: 1/4; }.schedule-program strong { font-size: 12px; }
  .consent-layout { width: calc(100% - 32px); padding-top: 34px; }.consent-intro h1 { font-size: 45px; }.consent-card { padding: 24px 18px; }.consent-person { grid-template-columns: 1fr; }.privacy-document { width: calc(100% - 32px); padding: 24px 18px; }.privacy-document > p { grid-template-columns: 31px 1fr; }
  .onboarding-layout { width: calc(100% - 24px); padding: 24px 0 50px; }.onboarding-intro { padding: 0 4px; }.onboarding-intro h1 { font-size: 43px; }.onboarding-person { grid-template-columns: 1fr; }.onboarding-card { padding: 8px 16px 24px; border-radius: 18px; }.onboarding-card fieldset { padding: 24px 0; }.onboarding-grid, .passport-grid, .contact-grid, .education-grid, .course-choice { grid-template-columns: 1fr; }.passport-grid label:nth-child(4), .passport-grid .wide-field { grid-column: auto; }.nested-fields { padding: 14px; }.messenger-choice { align-items: stretch; }.messenger-choice > span { width: 100%; }.messenger-choice label { flex: 1; justify-content: center; }.onboarding-submit { align-items: stretch; flex-direction: column; }.onboarding-submit .button { width: 100%; min-width: 0; }
  .student-primary-tabs { padding: 8px 14px; position: sticky; top: 0; z-index: 7; }.student-primary-tabs button { flex: 1; justify-content: center; }
  .student-group-bar { padding: 10px 14px; display: block; }.student-group-bar > span { display: block; margin-bottom: 8px; }.student-content-v2 { width: calc(100% - 28px); padding-top: 14px; }.student-hero-v2, .payment-hero-v2 { padding: 22px 18px; border-radius: 15px; }.student-kpis-v2 { gap: 6px; }.student-kpis-v2 article { min-height: 95px; padding: 11px; }.student-kpis-v2 strong { font-size: 23px; }.lesson-history-v2, .payment-panel-v2 { padding: 15px 12px; }.student-lesson-card { grid-template-columns: 48px 1fr; gap: 11px; padding: 15px 2px; }.lesson-date-badge { width: 44px; height: 50px; }.lesson-result-v2 { grid-column: 2; justify-items: start; display: flex; align-items: center; gap: 8px; }.lesson-result-v2 strong { margin: 0; font-size: 18px; }.lesson-result-v2 em { display: none; }.payment-list-v2 article { grid-template-columns: 1fr 1fr; gap: 16px; }.payment-period, .payment-balance { grid-column: 1/-1; }.payment-balance { align-items: flex-start; text-align: left; }
  .teacher-app { display: block; }.teacher-sidebar { height: auto; position: sticky; z-index: 20; padding: 8px 10px; flex-direction: row; align-items: center; overflow-x: auto; }.teacher-sidebar .admin-brand { padding: 0; border: 0; }.teacher-sidebar .admin-brand span { display: none; }.teacher-sidebar nav { margin: 0 0 0 8px; flex-direction: row; }.teacher-sidebar nav button { min-width: 44px; padding: 0; justify-content: center; font-size: 0; }.teacher-sidebar nav button span { width: auto; font-size: 16px; }.teacher-identity { margin: 0 0 0 auto; padding: 0; border: 0; grid-template-columns: 34px 23px; }.teacher-identity div { display: none; }.teacher-topbar { height: 60px; padding: 0 13px; }.teacher-content { padding: 14px; }.teacher-title h1 { font-size: 24px; }.teacher-title p { max-width: 230px; line-height: 1.45; }.teacher-save-button { min-height: 42px; }.lesson-picker-panel { max-height: 220px; }.lesson-picker-list { max-height: 168px; }.lesson-form { padding: 14px; }.lesson-form-grid { grid-template-columns: 1fr 1fr; }.lesson-form-grid .topic-field { grid-column: 1/-1; }.lesson-files-panel { grid-template-columns: 1fr; padding: 14px; }.plusnik-v2-heading { align-items: flex-start; }.plusnik-v2-heading > div:last-child { display: none; }.plusnik-scroll { max-height: 70vh; }.plusnik-scroll th:first-child { min-width: 165px; }.plusnik-scroll th:nth-child(2) { left: 165px; }.plusnik-scroll td:first-child { width: 165px; max-width: 165px; }.plusnik-scroll td:nth-child(2) { left: 165px; }.attendance-cell, .task-cell { width: 38px; height: 38px; }.plusnik-mobile-note { display: block; }.teacher-table-wrap table { min-width: 760px; }
}

/* Touch targets for the authenticated portals. */
.profile-chip button { min-width: 42px; min-height: 42px; display: grid; place-items: center; }

@media (max-width: 700px) {
  .teacher-sidebar nav button { min-height: 44px; }
  .teacher-identity { grid-template-columns: 34px 42px; }
  .teacher-identity > button { width: 42px; height: 42px; }
  .teacher-topbar { height: 64px; }
  .teacher-new-button, .teacher-save-button { min-height: 44px; }
  .lesson-picker-heading button { width: 42px; height: 42px; }
  .lesson-form-heading button { min-height: 42px; }
  .attendance-cell, .task-cell { width: 42px; height: 42px; }
}

/* Published course-program collection. */
.curriculum-list { display: flex; flex-direction: column; gap: 16px; margin-top: 27px; }
.curriculum-list .curriculum-card { margin-top: 0; }
.curriculum-actions { flex-wrap: wrap; gap: 15px 21px; }
.education-section > .document-warning { color: #6c521d; border-color: #ead18f; background: #fff8e8; }
.education-section > .document-warning strong { color: #805a10; }
.education-section > .document-warning span { color: #6c624f; }

/* Completed information sections. */
.status.partial { color: #77580f; background: #fff1c7; }
.formal-inline-link { color: var(--blue); text-decoration: underline; text-decoration-color: rgba(45,108,223,.32); text-underline-offset: 3px; }
.formal-inline-link:hover { text-decoration-color: currentColor; }
.formal-person-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.formal-person-card { padding: 21px; border: 1px solid #e4e8ee; border-radius: 13px; background: #f9fafc; }
.formal-person-card > span { display: block; color: var(--blue); font-size: 8px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.formal-person-card h3 { margin: 9px 0 15px; font-size: 17px; line-height: 1.2; }
.formal-person-card p { margin: 0; color: #566174; font-size: 11px; line-height: 1.62; }
.formal-person-card > small { display: block; margin-top: 14px; color: #8a92a0; font-size: 8px; line-height: 1.5; }
.formal-person-card dl { margin: 0; }
.formal-person-card dl div { padding: 10px 0; border-top: 1px solid #e6eaf0; }
.formal-person-card dt { color: #8a92a0; font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }
.formal-person-card dd { margin: 5px 0 0; font-size: 10px; line-height: 1.5; }
.teacher-details-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.facility-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.facility-grid article { padding: 20px; border-radius: 13px; background: #f3f6fa; }
.facility-grid h3 { margin: 0 0 9px; font-size: 14px; }
.facility-grid p { margin: 0; color: #596477; font-size: 10px; line-height: 1.7; }
.facility-grid .facility-wide { grid-column: 1/-1; border-left: 3px solid var(--gold); background: #fff9eb; }

@media (max-width: 700px) {
  .formal-person-grid, .teacher-details-grid, .facility-grid { grid-template-columns: 1fr; }
  .facility-grid .facility-wide { grid-column: auto; }
}
