/* Shared visual language for all Langlear surfaces. No workflow or visibility changes. */
:root{--ll-ink:#153348;--ll-muted:#617789;--ll-teal:#137c78;--ll-line:#dfe9ee;--ll-paper:#f2f7fa;--ll-radius:18px;--ll-shadow:0 8px 28px #183d5109}
body.premium-portal,body.premium-public{color:var(--ll-ink);background:var(--ll-paper);-webkit-font-smoothing:antialiased}
.premium-portal main :is(h1,h2,h3),.premium-public :is(h1,h2,h3){color:var(--ll-ink);text-wrap:balance;letter-spacing:-.025em}
.premium-portal main h1{font-size:clamp(27px,2.8vw,38px);line-height:1.2;letter-spacing:-.035em}
.premium-portal main h2{font-size:21px;line-height:1.35}.premium-portal main h3{font-size:16px;line-height:1.45}
.premium-portal main p{line-height:1.75}.premium-portal main :is(.eyebrow,.section-label){font-size:10px;letter-spacing:.13em;font-weight:750;color:var(--ll-teal)}
.premium-portal main :is(.card,.settings-card,.dashboard-card,.admin-panel,.finance-card,.group-card,.material-card,.course-card,.application-card){border:1px solid var(--ll-line);border-radius:var(--ll-radius);box-shadow:var(--ll-shadow);background:#fff;padding:clamp(20px,2.4vw,30px);margin-bottom:22px;min-width:0}
.premium-portal main :is(.hero,.settings-hero,.admin-page-heading,.dashboard-heading,.family-heading){padding-block:8px 24px;margin-bottom:24px;background:transparent;border:0;box-shadow:none;border-radius:0}
.premium-portal main :is(.hero,.settings-hero,.admin-page-heading,.dashboard-heading) p{max-width:74ch;font-size:14px;color:var(--ll-muted)}
.premium-portal :is(.admin-hero,.learning-hero,.family-hero){border:1px solid #d5e4ec;background:linear-gradient(115deg,#eef7fa,#f8fbfc);border-radius:20px;box-shadow:none;padding:28px}
.premium-portal :is(.admin-snapshot,.welcome-date){border-color:#ccdfe6;color:var(--ll-muted)}
.premium-portal main :is(.cards,.admin-grid,.settings-grid,.finance-grid,.dashboard-grid){gap:22px}
.premium-portal main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file]),select,textarea){border:1px solid #cbdbe4;border-radius:10px;background:#fff;color:var(--ll-ink);font:inherit;min-height:44px;box-shadow:none;padding:11px 13px;max-width:100%}
.premium-portal main :is(input,select,textarea):focus{border-color:var(--ll-teal);outline:3px solid #137c781c;outline-offset:1px}
.premium-portal main input:is([type=checkbox],[type=radio]){accent-color:var(--ll-teal);width:17px;height:17px;flex-shrink:0}
.premium-portal main label{font-size:13px;line-height:1.6;color:var(--ll-ink)}
.premium-portal main :is(button,.button):not(.quiet):not(.secondary):not([role=tab]):not([aria-label]):not(.time-picker-option){border-radius:10px;min-height:42px;font-weight:650;letter-spacing:0;box-shadow:none}
.premium-portal main :is(.button.secondary,button.secondary,.quiet){border:1px solid #cbdce5;border-radius:10px;background:#fff;color:var(--ll-ink)}
.premium-portal :is(a,button,input,summary,select,textarea):focus-visible,.premium-public :is(a,button,input,summary,select,textarea):focus-visible{outline:3px solid #178982;outline-offset:3px}
.premium-portal main :is(.notice,.error){border-radius:12px;padding:16px 20px;font-size:14px;line-height:1.65}.premium-portal main .notice{border:1px solid #cce6df;background:#edf8f3;color:#285e50}.premium-portal main .error{border:1px solid #f0c8ce;background:#fff2f3;color:#8e3144}
.premium-portal main :is(.empty,.empty-state,.empty-panel){border:1px dashed #cddfe7;border-radius:14px;padding:26px;background:#f8fbfc;color:var(--ll-muted);line-height:1.7}
.premium-portal main details:not(.account-disclosure){border-color:var(--ll-line);border-radius:12px}.premium-portal main summary{cursor:pointer;font-size:14px;font-weight:650;line-height:1.6;padding-block:10px}.premium-portal main details[open]>summary{margin-bottom:14px}
.premium-portal main table{font-size:13px;text-align:start}.premium-portal main :is(th,td){padding:13px 15px;border-color:#e5edf1}.premium-portal main th{background:#f2f7f9;color:#4e6879;font-size:11px;font-weight:750;letter-spacing:.025em}.premium-portal main tbody tr:hover{background:#f7fbfc}.premium-portal main .table-wrap{border:1px solid var(--ll-line);border-radius:12px;max-width:100%;overscroll-behavior-inline:contain}
.premium-portal :is(.learning-sidebar,.admin-sidebar){background:#fff;border-color:var(--ll-line)}.premium-portal :is(.learning-sidebar,.admin-sidebar) a{border-radius:9px}.premium-portal :is(.learning-sidebar,.admin-sidebar) a[aria-current=page]{color:#176d69;background:#eaf5f2}
.premium-portal .portal-support-footer{font-size:12px;color:var(--ll-muted);border-color:var(--ll-line)}
.premium-portal.access-auth{background:radial-gradient(ellipse at 10% 10%,#dceff0 0,transparent 45%),#f3f8fa}.premium-portal.access-auth main{min-height:calc(100vh - 120px);display:grid;align-content:center;padding-block:32px 64px}.premium-portal.access-auth .auth{width:min(100%,500px);margin:0 auto;border:1px solid #d6e5eb;border-radius:22px;padding:clamp(24px,4vw,42px);box-shadow:0 22px 65px #1533480b}.premium-portal.access-auth .auth h1{font-size:32px}.premium-portal.access-auth .auth>p.muted{font-size:12px;line-height:1.7}.premium-portal.access-auth .auth form>button{width:100%;margin-top:12px;background:var(--ll-ink)}
.premium-public :is(.feature-card,.language-card,.pricing-card,.testimonial-card,.contact-card,.process-card){border:1px solid var(--ll-line);border-radius:20px;box-shadow:var(--ll-shadow)}
.premium-public :is(.section-heading,.section-header) h2{font-size:clamp(28px,3vw,42px);line-height:1.2}.premium-public :is(.section-heading,.section-header)>p{max-width:66ch;margin-inline:auto;line-height:1.8;color:var(--ll-muted)}
.premium-public :is(.btn,.button,.cta-button){border-radius:10px}.premium-public .faq-item{border:1px solid var(--ll-line);border-radius:14px;box-shadow:none;margin-bottom:12px}.premium-public .faq-question{line-height:1.5;padding:22px}
.premium-public.application-page{background:var(--ll-paper)}.premium-public .application-hero{padding-block:32px 26px}.premium-public .application-hero h1{font-size:clamp(28px,3vw,40px)}.premium-public :is(.form-section,.form-step,.application-form fieldset){border-color:var(--ll-line);border-radius:18px}.premium-public .application-form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){border-radius:10px;border-color:#cbdbe4;min-height:44px}.premium-public .application-form :is(input[type=checkbox],input[type=radio]){accent-color:var(--ll-teal)}
.premium-public .document{max-width:960px;margin:32px auto 64px;border:1px solid var(--ll-line);border-radius:20px;padding:clamp(22px,5vw,56px);box-shadow:var(--ll-shadow);background:#fff}.premium-public .document h1{font-size:clamp(29px,4vw,44px)}.premium-public .document h2{font-size:22px;margin-top:34px}.premium-public .document :is(p,li){line-height:1.85}
.premium-error{background:radial-gradient(ellipse at top,#e4f1f3,#f4f8fa);color:var(--ll-ink)}.premium-error main{max-width:640px;border:1px solid var(--ll-line);background:#fff;border-radius:24px;box-shadow:0 24px 70px #1533480a;padding:clamp(28px,5vw,52px);margin:7vh auto}.premium-error main h1{font-size:clamp(28px,4vw,38px);letter-spacing:-.035em;line-height:1.2}.premium-error .code{color:var(--ll-teal);font-size:11px;letter-spacing:.13em}.premium-error main>a{background:var(--ll-ink);border-radius:10px;padding:13px 20px;display:inline-block;color:#fff;text-decoration:none;margin-top:16px}
[dir=rtl] .premium-portal main :is(th,td,label){text-align:start}[dir=rtl] .premium-portal main :is(input[type=email],input[type=url],input[type=tel]){direction:ltr;text-align:left}
@media(max-width:760px){.premium-portal main h1{font-size:28px}.premium-portal main h2{font-size:20px}.premium-portal main :is(.admin-gridform,.gridform){grid-template-columns:1fr}.premium-portal main :is(.card,.settings-card,.dashboard-card,.admin-panel){padding:20px;border-radius:15px}.premium-portal :is(.admin-hero,.learning-hero,.family-hero){padding:22px}.premium-public .document{margin:20px 12px 40px}.premium-error main{margin:32px 16px}.premium-portal main :is(.table-wrap,pre){max-width:100%;overflow:auto}.premium-portal main :is(input,select,textarea){font-size:16px!important}}
@media(prefers-reduced-motion:reduce){.premium-portal *,.premium-public *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.premium-portal main,.premium-public .document{box-shadow:none!important;background:white!important}.premium-portal :is(.card,.settings-card){box-shadow:none!important;break-inside:avoid}.premium-portal main :is(th,td){white-space:normal}}
/* Dashboard and administrative hierarchy: compact introductions, prominent next actions. */
body.premium-portal main h1{font-size:clamp(27px,2.8vw,38px)!important;line-height:1.2!important;letter-spacing:-.035em!important}
body.premium-portal main h2{font-size:21px!important;line-height:1.35!important}
body.premium-portal.admin-workspace .admin-hero{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:28px;padding:28px;margin-bottom:24px;border-radius:18px;background:linear-gradient(115deg,#14384d,#20576a);color:#fff}
body.premium-portal.admin-workspace .admin-hero :is(h1,p){color:#fff!important}.premium-portal.admin-workspace .admin-hero p{font-size:13px;line-height:1.7;max-width:65ch}.premium-portal.admin-workspace .admin-hero .eyebrow{color:#a7d9d3!important;font-size:10px;margin-bottom:12px}
body.premium-portal.admin-workspace .admin-snapshot{background:#ffffff0c;border:1px solid #ffffff25;border-radius:13px;box-shadow:none;padding:18px;min-height:0;color:#d6e8ee}.premium-portal.admin-workspace .admin-snapshot:after{display:none}.premium-portal.admin-workspace .admin-snapshot :is(strong,small,span){color:inherit}.premium-portal.admin-workspace .admin-snapshot strong{font-size:15px}
body.premium-portal.admin-workspace .admin-attention{padding:26px;border:1px solid var(--ll-line);border-radius:18px;box-shadow:var(--ll-shadow)}body.premium-portal.admin-workspace .admin-counts{gap:12px}.premium-portal.admin-workspace .admin-counts>div{border-radius:12px;padding:18px;background:#f8fbfc;border:1px solid #e1ebef}.premium-portal.admin-workspace .admin-counts strong{font-size:27px;color:#176d69}.premium-portal.admin-workspace .admin-counts :is(p,span){font-size:12px;line-height:1.65}
body.premium-portal main :is(.hero,.settings-hero,.admin-page-heading)>p:first-child{margin-top:0}
@media(max-width:760px){body.premium-portal.admin-workspace .admin-hero{grid-template-columns:1fr;padding:22px;gap:18px}.premium-portal.admin-workspace .admin-snapshot small{display:none}.premium-portal.admin-workspace .admin-snapshot{display:flex;flex-wrap:wrap;align-items:center;gap:12px}body.premium-portal main h1{font-size:28px!important}}
body.premium-portal.admin-workspace .admin-hero::after{display:none!important}body.premium-portal.admin-workspace .admin-snapshot{width:auto;max-width:none;min-width:0}
body.premium-portal main :is(.lesson-hero,.account-current) :is(h1,h2,h3){color:#fff!important}body.premium-portal main .lesson-hero h2{font-size:clamp(23px,2.3vw,30px)!important;line-height:1.3!important}


/* Responsive refinements: shared controls and focused application surfaces. */
body.premium-public footer .footer-column h3{color:#fff!important}
body.premium-public #public-mobile-menu .public-menu-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
body.premium-public #home.hero::after{content:none!important;display:none!important}
body.premium-public #testimonials .container{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-items:center}
body.premium-public #testimonials .section-heading{text-align:start;margin:0;max-width:none}
body.premium-public #testimonials .section-heading p{margin-inline:0}
body.premium-public #testimonials .testimonial{position:relative;display:grid;grid-template-columns:1fr auto;gap:22px;padding:clamp(28px,4vw,48px);margin:0;max-width:none;border:1px solid #d8e5ed;border-radius:24px;background:#fff;box-shadow:0 18px 48px #183d510a;text-align:start}
body.premium-public #testimonials blockquote{grid-column:1/-1;margin:0;padding:0;border:0}
body.premium-public #testimonials blockquote::before{content:'“';display:block;height:44px;font:70px/1 Georgia,serif;color:#b30f32}
body.premium-public #testimonials blockquote p{font-size:clamp(18px,1.7vw,23px);line-height:1.7;margin:16px 0 0;color:#153348}
body.premium-public #testimonials .testimonial-author{grid-column:1;grid-row:2;margin:0;padding:0}
body.premium-public #testimonials .testimonial-author h3{font-size:17px;margin:0 0 4px}
body.premium-public #testimonials .testimonial-author span{font-size:13px;color:#617789}
body.premium-public #testimonials .testimonial-rating{grid-column:2;grid-row:2;align-self:center;margin:0;color:#b30f32;font-size:14px;letter-spacing:3px}
html body.premium-portal.access-auth>header,html body.premium-public.application-page>.application-header{position:relative!important;top:auto!important;width:100%!important;max-width:1120px!important;margin:0 auto!important;height:auto!important;min-height:80px!important;padding:18px 28px!important;background:transparent!important;border:0!important;box-shadow:none!important;display:flex;flex-direction:row;align-items:center}
html body.premium-public.application-page>.application-header>.container{padding:0!important;min-height:44px!important;width:100%;max-width:none}
html body.premium-public.application-page .application-header-actions{top:0}
html body.premium-portal.access-auth>header nav{gap:16px;flex-wrap:nowrap}
html body.premium-portal.access-auth>main{padding-top:24px;min-height:calc(100dvh - 100px)}
html body.premium-public.application-page{padding-top:0!important}
html body.premium-portal:has(>footer.portal-support-footer){display:flex;flex-direction:column;min-height:100dvh;padding-bottom:0!important}
html body.premium-portal>main{flex:1;box-sizing:border-box}html body.premium-portal:is(.learning-dashboard,.admin-workspace)>main{width:auto;align-self:stretch;margin-inline-end:0}
html body.premium-portal>footer.portal-support-footer{flex-shrink:0;margin-top:auto!important;margin-bottom:0!important;background:var(--ll-paper)}
html body.premium-portal .portal-mobile-drawer .portal-menu-toggle{position:absolute!important;top:calc(env(safe-area-inset-top,0px) + 12px)!important;right:18px!important;left:auto!important;width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;display:grid!important;place-items:center!important;transform:none!important;margin:0!important}
html[dir=rtl] body.premium-portal .portal-mobile-drawer .portal-menu-toggle{right:auto!important;left:18px!important}
html body.premium-portal .portal-mobile-drawer .portal-menu-toggle span{display:none}
html body.premium-portal .portal-mobile-drawer .drawer-heading{padding-inline:18px 80px!important}
html body.premium-portal .inbox-guidance{display:grid!important;grid-template-columns:42px minmax(0,1fr) auto;gap:7px 18px;align-items:center;padding:26px!important}
html body.premium-portal .inbox-guidance-icon{grid-column:1;grid-row:1/3;margin:0}
html body.premium-portal .inbox-guidance>.eyebrow{display:none}
html body.premium-portal .inbox-guidance h2{grid-column:2;grid-row:1;margin:0!important}
html body.premium-portal .inbox-guidance>p:not(.eyebrow){grid-column:2;grid-row:2;margin:0!important;max-width:65ch;font-size:13px}
html body.premium-portal .inbox-guidance>a{grid-column:3;grid-row:1/3;margin:0;white-space:normal}
html body.premium-portal .lesson-request-hero{max-width:900px;margin:12px auto 26px!important;padding:12px 0 0!important}
html body.premium-portal .lesson-request-note{max-width:900px;margin:0 auto 36px!important;font-size:13px!important}
html body.premium-portal .lesson-request-form{margin:0 auto 32px!important}
html body.premium-portal .lesson-request-form>.settings-card{padding:clamp(24px,3vw,40px)!important}
html body.premium-portal .lesson-request-form legend{padding:0;margin-bottom:30px;font-size:clamp(23px,2.4vw,29px);line-height:1.35}
html body.premium-portal .lesson-request-form .request-fields{gap:28px 24px}
html body.premium-portal .lesson-request-form label{margin:0}
html body.premium-portal .request-progress{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 32px;padding:0}
html body.premium-portal .request-progress li{position:relative;border:0;padding:0;text-align:center;white-space:normal;font-size:12px;color:#617789;display:flex;flex-direction:column;align-items:center;gap:12px}
html body.premium-portal .request-progress li:first-child::after{content:'';position:absolute;top:17px;inset-inline-start:50%;width:100%;height:3px;background:#dbe6ef}
html body.premium-portal .request-step-number{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border:1px solid #c6d9e6;border-radius:50%;background:var(--ll-paper);font-weight:650}
html body.premium-portal .request-progress [aria-current=step]{color:#153348;font-weight:700}
html body.premium-portal .request-progress [aria-current=step] .request-step-number{border:2px solid #b50932;box-shadow:0 0 0 5px #b509320c;color:#b50932;background:#fff}
html body details:not(.portal-language):not(.language-switcher)>summary{position:relative;padding-inline-end:36px!important}
/* Two independent strokes morph into a cross, with no rotating text glyph. */
html body details:not(.portal-language):not(.language-switcher)>summary::before,html body details:not(.portal-language):not(.language-switcher)>summary::after{content:''!important;position:absolute!important;inset-inline-start:auto!important;inset-inline-end:12px!important;inset-block-start:50%!important;inset-block-end:auto!important;padding:0!important;box-sizing:content-box!important;display:block!important;font-size:inherit!important;line-height:inherit!important;width:.85em!important;height:2px!important;margin:0!important;border:0!important;border-radius:1px!important;background:currentColor!important;transform:translateY(-50%) rotate(0deg)!important;transform-origin:center!important;transition:transform 220ms ease-in-out!important;pointer-events:none}
html body details:not(.portal-language):not(.language-switcher)>summary::after{transform:translateY(-50%) rotate(90deg)!important}
html body details[open]:not([data-disclosure-expanding="false"]):not(.portal-language):not(.language-switcher)>summary::before{transform:translateY(-50%) rotate(-45deg)!important}
html body details[open]:not([data-disclosure-expanding="false"]):not(.portal-language):not(.language-switcher)>summary::after{transform:translateY(-50%) rotate(45deg)!important}
html body .faq-icon{transform:none!important}
html body .faq-icon .horizontal,html body .faq-icon .vertical{width:14px;height:2px;opacity:1;transition:transform 220ms ease-in-out;transform:translate(-50%,-50%) rotate(0deg)}
html body .faq-icon .vertical{transform:translate(-50%,-50%) rotate(90deg)}
html body .faq-item.active .faq-icon .horizontal{transform:translate(-50%,-50%) rotate(-45deg)}
html body .faq-item.active .faq-icon .vertical{transform:translate(-50%,-50%) rotate(45deg);opacity:1}
@media(max-width:800px){body.premium-public #testimonials .container{grid-template-columns:1fr}html body.premium-portal .inbox-guidance{grid-template-columns:36px minmax(0,1fr);padding:22px!important}html body.premium-portal .inbox-guidance>a{grid-column:2;grid-row:3;margin-top:10px}html body.premium-portal.access-auth>header,html body.premium-public.application-page>.application-header{padding:14px 20px!important;min-height:76px!important}html body.premium-portal.access-auth>header .brand-logo{width:116px!important;height:auto!important}html body.premium-portal.access-auth>header nav{gap:10px;font-size:12px}html body.premium-portal .lesson-request-hero{margin-top:0!important}}
@media(prefers-reduced-motion:reduce){html body details:not(.portal-language):not(.language-switcher)>summary::before,html body details:not(.portal-language):not(.language-switcher)>summary::after,html body .faq-icon .horizontal,html body .faq-icon .vertical{transition:none!important}}
body.premium-public #testimonials blockquote::before{position:static!important;transform:none!important;margin:0!important}body.premium-public #testimonials :is(blockquote,blockquote p,.testimonial-author){text-align:start!important}

html body.premium-portal>footer.portal-support-footer{align-self:stretch;max-width:none;margin-inline-end:0!important}html body.premium-portal .inbox-layout{grid-template-columns:minmax(0,1fr)!important}

html:root body.premium-portal.access-auth{background:#f0f6fb!important}
html:root body.premium-public.application-page{background:#f0f6fb!important}

/* Keep language menus free of disclosure strokes and student context aligned with navigation. */
html body details.portal-language>summary::before,html body details.portal-language>summary::after{content:none!important;display:none!important}
html body .learning-nav a.selected-student,html body .portal-mobile-drawer a.selected-student,html body #portal-mobile-menu a:has(.student-switch-label){box-sizing:border-box;width:auto;min-width:0;margin-inline:0!important;border-radius:8px;padding-inline:12px!important}
html body .portal-mobile-drawer a.selected-student,html body #portal-mobile-menu a:has(.student-switch-label){display:flex;flex-direction:row!important;align-items:center!important;justify-content:space-between;gap:16px!important}
html body .portal-mobile-drawer a.selected-student strong{min-width:0;overflow-wrap:anywhere}
html body .portal-mobile-drawer a.selected-student .student-switch-label{margin:0!important;text-align:end;flex-shrink:0!important}
html body .account-space .account-mode input[type=radio]:disabled{visibility:hidden}
html body .account-space .account-mode-unavailable:hover{border-color:var(--ac-line)!important;box-shadow:none}
html body .account-space .account-disclosure>summary{position:relative;padding-inline-end:34px!important}
html body .account-space .account-disclosure>summary::before,html body .account-space .account-disclosure>summary::after{content:''!important;position:absolute!important;inset-inline-end:8px!important;inset-block-start:50%!important;display:block!important;width:14px!important;height:2px!important;margin:0!important;border:0!important;border-radius:2px!important;background:currentColor!important;transform:translateY(-50%) rotate(0deg)!important;transform-origin:center!important;transition:transform 220ms ease-in-out!important}
html body .account-space .account-disclosure>summary::after{transform:translateY(-50%) rotate(90deg)!important}
html body .account-space .account-disclosure[open]>summary::before{transform:translateY(-50%) rotate(-45deg)!important}
html body .account-space .account-disclosure[open]>summary::after{transform:translateY(-50%) rotate(45deg)!important}
@media(prefers-reduced-motion:reduce){html body .account-space .account-disclosure>summary::before,html body .account-space .account-disclosure>summary::after{transition:none!important}}
