@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
:root{font-family:'Noto Sans JP',sans-serif;color:#26374c;background:#f5f7fb;font-synthesis:none;--blue:#205bb2;--navy:#153e75;--muted:#69788b;--line:#e4eaf1;--light:#edf4ff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #729eed;outline-offset:4px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sidebar{position:fixed;inset:0 auto 0 0;width:246px;background:white;border-right:1px solid var(--line);z-index:30;display:flex;flex-direction:column;padding:34px 20px 25px}.brand{display:flex;flex-direction:column;padding-left:18px;width:fit-content}.brand-word{font-family:Arial,sans-serif;font-size:3.0625rem;font-weight:800;letter-spacing:-3px;line-height:1;color:#174b91}.brand-dot{color:#64a5e6}.brand-sub{font-size:0.75rem;font-weight:700;letter-spacing:2px;margin-top:13px;color:#5d7089}.nav-caption{font-size:0.6875rem;color:#8995a6;letter-spacing:1.5px;padding:0 17px;margin:47px 0 15px}nav{display:flex;flex-direction:column;gap:7px}.nav-link{display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:8px;font-size:0.875rem;font-weight:500;color:#65738a;min-height:49px}.nav-link svg{width:21px;height:21px}.nav-link:hover{background:#f5f8fc;color:var(--blue)}.nav-link.active{color:var(--blue);background:#edf3fc;font-weight:700}.nav-link .nav-dot{margin-left:auto;width:7px;height:7px;background:#3975cf;border-radius:50%}.nav-separator{border-top:1px solid var(--line);margin:20px 12px 14px}.nav-link.small{font-size:0.75rem;padding-top:12px;padding-bottom:12px;gap:11px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:23px 7px 0;display:flex;gap:10px;align-items:center}.school-mark{font-family:Georgia,serif;font-size:1.4375rem;color:#597ca9;background:#eef3fa;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.sidebar-bottom strong{font-size:0.625rem;color:#59708a;font-weight:600}.sidebar-bottom span{display:block;font-size:0.5625rem;color:#909aaa;margin-top:5px}.workspace{margin-left:246px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 45px;border-bottom:1px solid var(--line);background:#fff}.header-label{font-size:0.8125rem;font-weight:600;display:flex;align-items:center;gap:12px}.demo-pill{font-family:Arial,sans-serif;color:#7b8ca2;background:#f0f3f7;font-size:0.5625rem;letter-spacing:1px;padding:4px 7px;border-radius:4px}.header-actions{display:flex;align-items:center;gap:24px}.student-label{font-size:0.75rem;color:#778499}.profile{display:flex;align-items:center;gap:10px;background:none;border:0;font-size:0.8125rem}.avatar{border:1px solid #dfe7f2;background:#f0f5fc;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;color:#486b97;font-size:0.8125rem}.profile-chevron{color:#8b97a8;margin-left:8px}.mobile-menu{display:none!important}main{max-width:1220px;margin:auto;padding:37px 45px 24px;min-height:calc(100vh - 145px)}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{font-family:Arial,sans-serif;font-size:0.625rem;letter-spacing:2px;font-weight:700;color:#7387a4;margin-bottom:9px}h1{font-size:1.6875rem;letter-spacing:1px;line-height:1.5;margin:0;color:#233e60;font-weight:700}.subtitle{font-size:0.8125rem;color:#718097;margin:10px 0 0;line-height:1.8}.heading-side{display:flex;align-items:center;gap:20px}.today{font-size:0.75rem;color:#7c899a;white-space:nowrap}.help-button{display:flex;gap:6px;align-items:center;border:0;background:transparent;color:#73839b;font-size:0.6875rem;padding:7px}.help-circle{border:1.5px solid #8c9bb1;border-radius:50%;width:25px;height:25px;font-size:1rem;display:grid;place-items:center}.welcome{position:relative;background:#edf4fc;border:1px solid #e0eaf7;border-radius:12px;overflow:hidden;min-height:156px;padding:26px 30px;display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.welcome-copy{z-index:1}.welcome-label{font-size:0.625rem;letter-spacing:1.7px;color:#5d81b1;font-weight:700;margin-bottom:12px}.welcome h2{font-size:1.375rem;color:#234970;letter-spacing:.8px;margin:0 0 12px}.welcome p{font-size:0.75rem;color:#70829b;line-height:1.9;margin:0}.welcome-art{width:245px;align-self:stretch;position:relative;margin:-16px 0 -15px 15px;flex-shrink:0}.welcome-art svg{width:100%;height:150px;stroke:none}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px}.section-title h2{font-size:0.9375rem;letter-spacing:.5px;margin:0}.section-title span{font-size:0.6875rem;color:#8a95a5}.main-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.feature-card{background:white;border:1px solid #e0e7f0;border-radius:11px;overflow:hidden;box-shadow:0 3px 8px #1c467304;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.feature-card:hover{transform:translateY(-2px);box-shadow:0 7px 22px #1c46730b}.card-main{padding:23px 24px 19px;flex:1}.card-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}.icon-tile{width:45px;height:45px;border-radius:11px;background:#edf4ff;color:#3472c4;display:grid;place-items:center}.icon-tile svg{width:25px;height:25px}.card-top h3{font-size:1.1875rem;margin:0;font-weight:700;letter-spacing:.6px}.badge{display:inline-flex;align-items:center;gap:5px;background:#fff0ec;color:#ce684e;padding:5px 9px;border-radius:5px;font-size:0.625rem;font-weight:600;margin-left:auto;white-space:nowrap}.badge.blue{color:#4778b6;background:#edf4ff}.badge.green{color:#408271;background:#edf7f1}.card-description{font-size:0.75rem;color:#7a8798;line-height:1.8;margin:0 0 15px}.card-preview{border-top:1px solid #edf0f5;padding-top:12px;min-height:45px;font-size:0.75rem;display:flex;align-items:center;gap:10px}.tiny-label{color:#72839a;font-size:0.625rem;white-space:nowrap}.preview-text{color:#4b5e78;line-height:1.7}.new-dot{width:5px;height:5px;border-radius:50%;background:#4e86d3;flex-shrink:0}.card-link{border-top:1px solid #e8edf4;background:#fafcfe;width:100%;padding:13px 24px;display:flex;align-items:center;justify-content:space-between;color:#3869a7;font-size:0.75rem;font-weight:600}.card-link svg{width:16px;height:16px}.card-link:hover{background:#edf4ff}.secondary-section{margin-top:29px}.secondary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.small-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:20px 18px;display:flex;gap:12px;align-items:flex-start;transition:border-color .2s}.small-card:hover{border-color:#8db0df}.small-card>svg{width:22px;height:22px;color:#6485b0}.small-card h3{font-size:0.75rem;margin:1px 0 7px;line-height:1.7}.small-card p{font-size:0.625rem;line-height:1.8;color:#8792a1;margin:0}.small-card .arrow{margin-left:auto;width:14px;height:14px;align-self:center;color:#a1afc1}.support-strip{display:flex;align-items:center;justify-content:center;gap:9px;border:1px dashed #d7e1ed;border-radius:8px;margin-top:26px;padding:15px;color:#8190a3;font-size:0.6875rem}.support-strip svg{width:16px;height:16px}.support-strip a{color:#3a6ba7;text-decoration:underline;text-underline-offset:3px}footer{max-width:1220px;margin:auto;display:flex;justify-content:space-between;padding:21px 45px 24px;font-size:0.625rem;color:#8b97a7}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:26px;margin-bottom:20px}.panel h2{font-size:1.1875rem;margin:0 0 18px;color:#2a4568}.panel h3{font-size:1rem}.panel p,.panel li{font-size:0.875rem;line-height:1.9;color:#68778b}.back-link{display:inline-flex;gap:7px;align-items:center;color:#607b9e;font-size:0.75rem;margin-bottom:21px}.back-link svg{width:16px;height:16px;transform:rotate(180deg)}.notice{background:#edf4fe;border:1px solid #dbe8fa;border-radius:8px;padding:14px 18px;display:flex;align-items:flex-start;gap:12px;font-size:0.8125rem;line-height:1.9;color:#45668e;margin-bottom:20px}.notice svg{width:20px;height:20px;margin-top:2px}.notice p{margin:0}.notice.neutral{background:#f7f9fc;border-color:var(--line);color:#798698}details{border:1px solid var(--line);border-radius:9px;background:white;margin-bottom:12px}summary{font-size:0.875rem;font-weight:600;cursor:pointer;padding:18px 20px;line-height:1.7}details[open] summary{border-bottom:1px solid var(--line);color:var(--blue)}.details-body{padding:8px 20px 20px;font-size:0.875rem;line-height:1.9;color:#61738b}.details-body p:last-child{margin-bottom:0}.faq-grid{margin:24px 0}.faq-grid h2{font-size:1.125rem;margin-bottom:16px}.faq-grid summary{font-size:0.8125rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:flex;flex-direction:column;gap:9px}.field.full{grid-column:1/-1}.field label,.field legend{font-size:0.875rem;font-weight:600}.required{font-size:0.625rem;color:#b85d4d;margin-left:8px;background:#fff0ec;padding:3px 5px;border-radius:3px}input:not([type=radio]):not([type=checkbox]),select,textarea{border:1px solid #ccd7e4;border-radius:7px;background:white;padding:13px 14px;width:100%;min-height:48px;color:#344a64;font-size:0.9375rem}textarea{resize:vertical;min-height:145px}.field small{color:#7d8b9d;font-size:0.75rem;line-height:1.7}.radio-group{display:flex;gap:12px;flex-wrap:wrap}.radio-option{display:flex;align-items:center;gap:9px;border:1px solid #dbe3ed;padding:13px 15px;border-radius:7px;font-size:0.8125rem!important;cursor:pointer}.radio-option:has(input:checked){background:#edf4ff;border-color:#79a1d9;color:var(--blue)}input[type=radio],input[type=checkbox]{accent-color:var(--blue);width:18px;height:18px;flex-shrink:0}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset legend{margin-bottom:12px}.primary-button,.secondary-button{border-radius:7px;min-height:46px;padding:12px 22px;font-size:0.875rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--blue);background:var(--blue);color:white}.primary-button:hover{background:#16488f}.secondary-button{color:#547094;border-color:#d4dfed;background:white}.button-row{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.tabs{display:flex;gap:7px;margin-bottom:23px;border-bottom:1px solid var(--line);overflow:auto}.tab{white-space:nowrap;border:0;background:transparent;padding:14px 20px;border-bottom:3px solid transparent;font-size:0.875rem;color:#77869a}.tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:700}.schedule-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.month-control{display:flex;align-items:center;gap:20px;font-size:1.1875rem;font-weight:700}.icon-button{background:white;border:1px solid var(--line);width:38px;height:38px;border-radius:7px;display:grid;place-items:center}.icon-button svg{width:20px;height:20px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:0.8125rem}th{background:#f4f7fc;text-align:left;color:#6f8097;font-size:0.75rem;font-weight:500;padding:15px}td{padding:19px 15px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}.pill{font-size:0.6875rem;color:#4b79b3;background:#edf4fd;padding:5px 9px;border-radius:4px;display:inline-block}.lesson-date{font-weight:700;color:#3d5a80}.list-item{padding:20px 0;border-bottom:1px solid var(--line)}.list-item:first-child{padding-top:0}.list-item:last-child{border:0;padding-bottom:0}.item-meta{display:flex;gap:12px;align-items:center;font-size:0.75rem;color:#8a97a8;margin-bottom:10px}.list-item h3{margin:0 0 8px;font-size:1rem}.list-item p{margin:0;font-size:0.8125rem}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.report-grid>div{background:#f5f8fc;border-radius:8px;padding:18px}.report-grid h3{margin-top:0;color:#496b95}.report-grid p{margin:0}.progress-head{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px}.progress-head p{margin:5px 0 0;font-size:0.75rem}.progress-head h2{margin:0;font-size:1.125rem}.renewal-card{display:flex;justify-content:space-between;align-items:center;gap:20px}.renewal-card h2{margin-bottom:9px}.renewal-card p{margin:0;font-size:0.8125rem}.primary-button:disabled{background:#e7ebf0;border-color:#e7ebf0;color:#919aaa;cursor:not-allowed}.demo-control{display:flex;align-items:center;gap:10px;font-size:0.75rem;color:#7f8c9e;cursor:pointer;margin:22px 0}.empty-state{text-align:center;padding:38px 16px}.empty-state .icon-tile{margin:0 auto 20px;width:58px;height:58px}.empty-state h2{font-size:1.1875rem}.empty-state p{max-width:460px;margin:12px auto}.placeholder-list{max-width:490px;margin:25px auto 0;text-align:left;display:grid;gap:10px}.placeholder-list div{padding:15px 20px;background:#f7f9fc;border:1px solid var(--line);border-radius:7px;font-size:0.875rem;color:#7c8b9d}.confirmation{display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:0.875rem;margin-top:22px}.confirmation dt{color:#8491a4}.confirmation dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.success-icon{background:#eaf6ef;color:#44876a;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;margin:5px auto 20px}.success{text-align:center}.success p{font-size:0.875rem;color:#748298;line-height:1.9}.success h2{font-size:1.3125rem;color:#284767}dialog{border:0;border-radius:15px;padding:30px;width:calc(100% - 32px);max-width:530px;max-height:85vh;box-shadow:0 25px 90px #18396133;color:#34485f}dialog::backdrop{background:#17314a66;backdrop-filter:blur(3px)}.modal-header{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.modal-header h2{font-size:1.25rem;margin:0;line-height:1.6}.modal-body{font-size:0.875rem;line-height:1.9;color:#738299}.modal-body p{margin:0 0 15px}.modal-body ul{padding-left:22px}.modal-close{border:0;background:#f2f5fa;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;flex-shrink:0}.modal-close svg{width:18px;height:18px}#toast{position:fixed;bottom:24px;left:calc(50% + 123px);transform:translateX(-50%);background:#254666;color:#fff;padding:15px 23px;border-radius:9px;font-size:0.875rem;box-shadow:0 5px 25px #1234;z-index:100;display:none;max-width:90vw;width:max-content}.skip{position:fixed;top:-60px;left:20px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.renewal-banner{display:flex;gap:14px;align-items:center;background:#fff8ed;border:1px solid #f0dfc4;padding:17px 20px;border-radius:10px;margin-bottom:22px;font-size:0.8125rem;color:#9b733e}.renewal-banner a{margin-left:auto;text-decoration:underline;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){main{padding-top:46px}.welcome{min-height:174px}.card-main{padding:28px}.card-top h3{font-size:1.3125rem}.card-description{font-size:0.875rem}.card-preview{font-size:0.8125rem}.small-card h3{font-size:0.875rem}.small-card p{font-size:0.75rem}}
@media(max-width:1150px){.sidebar{width:218px;padding-left:14px;padding-right:14px}.workspace{margin-left:218px}.topbar{padding:0 28px}main{padding:30px 28px 20px}.today{display:none}.welcome-art{width:200px}.welcome h2{font-size:1.25rem}.small-card{padding:18px 13px;gap:8px}.small-card>svg{width:19px}.small-card h3{font-size:0.6875rem}footer{padding-left:28px;padding-right:28px}#toast{left:calc(50% + 109px)}}
@media(max-width:900px){.sidebar{width:190px;padding-left:10px;padding-right:10px}.workspace{margin-left:190px}.nav-link{font-size:0.8125rem;gap:10px;padding-left:13px}.nav-link.small{font-size:0.6875rem;gap:8px}.brand{padding-left:15px}.student-label{display:none}.welcome-art{width:155px}.welcome{padding:24px}.welcome h2{font-size:1.125rem}.welcome p{font-size:0.6875rem}.secondary-cards{grid-template-columns:1fr}.small-card{padding:19px}.small-card h3{font-size:0.875rem;margin:0 0 4px}.small-card p{font-size:0.75rem}.small-card>svg{width:23px}.card-main{padding:20px 18px}.card-top{gap:10px}.card-top h3{font-size:1.0625rem}.badge{font-size:0.5625rem;padding:4px 6px}.icon-tile{width:39px;height:39px}.support-strip{flex-wrap:wrap}.sidebar-bottom{padding-left:1px;padding-right:1px}.sidebar-bottom strong{font-size:0.5625rem}#toast{left:calc(50% + 95px)}}
@media(max-width:700px){.sidebar{transform:translateX(-100%);width:246px;transition:transform .2s;box-shadow:20px 0 60px #17385b22}.sidebar.open{transform:translateX(0);top:70px}.sidebar .brand{display:none}.sidebar .nav-caption{margin-top:15px}.workspace{margin-left:0}.topbar{height:70px;padding:0 18px;gap:12px;position:sticky;top:0;z-index:40}.mobile-menu{display:grid!important;border:0;width:30px}.header-label{margin-right:auto;font-size:0.75rem;gap:8px}.header-actions{gap:0}.profile{font-size:0.75rem;gap:7px;padding:0}.profile-chevron{display:none}.avatar{width:30px;height:30px}.demo-pill{font-size:0.5rem;padding:3px 5px}main{padding:26px 20px 18px;min-height:calc(100vh - 145px)}h1{font-size:1.5625rem}.eyebrow{font-size:0.5625rem}.subtitle{font-size:0.75rem}.page-heading{margin-bottom:21px}.help-button{padding-right:0}.help-button>span:last-child{display:none}.welcome{padding:24px;min-height:153px;margin-bottom:26px}.welcome h2{font-size:1.1875rem}.welcome-art{width:135px;margin-right:-15px;margin-left:0}.welcome p{font-size:0.6875rem;max-width:210px}.welcome-label{font-size:0.5625rem}.main-cards{gap:14px}.card-main{padding:18px 16px}.card-top{flex-wrap:wrap;gap:10px;position:relative;margin-bottom:12px}.card-top h3{font-size:1.0625rem}.card-top .badge{position:absolute;top:-1px;right:-4px;font-size:0.5rem;padding:3px 5px}.card-top .icon-tile{margin-right:50%;width:38px;height:38px}.card-description{font-size:0.75rem;min-height:44px}.card-preview{flex-wrap:wrap;gap:4px;font-size:0.6875rem;min-height:60px;align-content:flex-start}.tiny-label{width:100%;font-size:0.625rem}.card-link{font-size:0.6875rem;padding:13px 14px}.card-link svg{width:14px}.section-title h2{font-size:0.875rem}.section-title span{font-size:0.625rem}.secondary-section{margin-top:26px}.secondary-cards{gap:10px}.small-card{gap:13px}.support-strip{font-size:0.6875rem;line-height:1.8;padding:14px 10px;gap:5px}footer{padding:20px;flex-direction:column-reverse;gap:13px;align-items:center;font-size:0.5625rem}.form-grid{grid-template-columns:1fr}.panel{padding:21px 18px}.field.full{grid-column:auto}.radio-group{gap:8px}.radio-option{font-size:0.75rem!important;padding:12px 10px}.tabs{margin-left:-3px;margin-right:-3px;gap:0}.tab{font-size:0.8125rem;padding:12px 13px}.schedule-toolbar{flex-wrap:wrap}.month-control{font-size:1.0625rem;gap:13px}.report-grid{grid-template-columns:1fr}.renewal-card{flex-direction:column;align-items:stretch}.renewal-card button{width:100%}.button-row{flex-wrap:wrap}.button-row button{flex:1}.renewal-banner{flex-wrap:wrap;font-size:0.75rem}.renewal-banner a{margin-left:38px}.confirmation{grid-template-columns:85px 1fr;font-size:0.8125rem}#toast{left:50%;font-size:0.75rem}dialog{padding:25px}.modal-header h2{font-size:1.125rem}.today{display:none}}
.brand-word{font-size:2.3125rem;letter-spacing:-1.5px;color:#242b83}.today small{display:block;text-align:right;font-size:0.625rem;margin-top:5px}.mobile-only{display:none}.mobile-table-hint{font-size:0.75rem!important}.subtitle,.card-description,.welcome p{font-size:0.875rem;color:#63758c}.nav-link{font-size:0.9375rem}.nav-link.small{font-size:0.8125rem}.card-link{font-size:0.875rem;min-height:49px}.card-preview{font-size:0.8125rem}.tiny-label{font-size:0.75rem}.small-card h3{font-size:0.875rem}.small-card p{font-size:0.75rem;color:#6d7e93}.section-title h2{font-size:1rem}.badge{font-size:0.6875rem}.welcome h2{color:#272f7b}.card-top h3{color:#273e68}.help-button{min-height:44px;min-width:44px}.help-circle{width:28px;height:28px}.nav-link.active{color:#2b378b;background:#f0f1fb}.panel p,.details-body{color:#53677f}.tab{min-height:48px}.small-card .arrow{min-width:14px}.card-top .badge{font-size:0.625rem}.sidebar-bottom strong{color:#506786}
@media(max-width:1100px){.card-top{flex-wrap:wrap}.card-top .badge{margin-left:0}.welcome-art{width:150px}.welcome p{font-size:0.8125rem}.nav-link.small{font-size:0.75rem}}
@media(max-width:700px){.nav-link{font-size:1rem}.nav-link.small{font-size:0.875rem}.welcome p{font-size:0.8125rem}.welcome-art{width:110px;opacity:.8}.welcome h2{font-size:1.25rem}.card-description{font-size:0.8125rem;min-height:69px}.card-preview{font-size:0.75rem;min-height:74px}.card-link{font-size:0.75rem;gap:8px}.small-card h3{font-size:0.9375rem}.small-card p{font-size:0.8125rem}.subtitle{font-size:0.8125rem}.tiny-label{font-size:0.6875rem}.mobile-only{display:block}.card-top .badge{font-size:0.5625rem}.card-top h3{font-size:1.1875rem}.today{display:none}}
main:focus{outline:none}
@media(max-width:600px){.main-cards{grid-template-columns:1fr}.card-top .icon-tile{margin-right:0}.card-top .badge{position:static;margin-left:auto}.card-description{min-height:0;font-size:0.875rem}.card-preview{min-height:40px;font-size:0.8125rem}.card-link{font-size:0.875rem}.welcome-art{display:none}.welcome p{max-width:none}.card-top .badge{font-size:0.625rem}.card-main{padding:22px}.card-link{padding:15px 22px}.tiny-label{width:auto;margin-right:5px}.card-preview{align-content:center}.welcome{min-height:175px}.support-strip{justify-content:flex-start}.section-title span{font-size:0.625rem}}
@media(max-width:380px){.profile>span:not(.avatar){display:none}.section-title>span{display:none}}
/* Pastel themes follow destinations, including after card reordering. */
.feature-card{--card-bg:#edf5ff;--card-border:#c8dcf5;--card-accent:#7ea8df;--card-tint:#dceaff;--card-hover:#d1e3fc;--card-ink:#24569b;border-radius:24px;border-color:var(--card-border);background:var(--card-bg);box-shadow:0 5px 18px #2456a008;transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer}
.feature-card[href="#lessons"]{--card-bg:#edf8f1;--card-border:#c7e3d4;--card-accent:#83bda0;--card-tint:#dcefe3;--card-hover:#cde7d7;--card-ink:#2e664e}
.feature-card[href="#contact"]{--card-bg:#f4f0fc;--card-border:#ded3ef;--card-accent:#b09bd4;--card-tint:#e9e0f6;--card-hover:#ded1f0;--card-ink:#65508c}
.feature-card[href="#billing"]{--card-bg:#fff3eb;--card-border:#f0d8c7;--card-accent:#dca987;--card-tint:#fae5d6;--card-hover:#f5d8c3;--card-ink:#8b5737}
.feature-card .card-main{border-top:5px solid var(--card-accent)}
.feature-card .icon-tile{background:var(--card-tint);color:var(--card-ink);border-radius:16px}
.feature-card .card-top h3{color:var(--card-ink)}
.feature-card .card-preview{border-top-color:var(--card-border)}
.feature-card .card-link{background:var(--card-tint);border-top-color:var(--card-border);color:var(--card-ink);transition:background .2s}
.feature-card .badge.blue{background:var(--card-tint);color:var(--card-ink)}
.feature-card .card-link svg{width:24px;height:24px;padding:4px;border-radius:50%;background:#fff9}
.feature-card:hover,.feature-card:focus-visible{border-color:var(--card-accent);box-shadow:0 9px 25px #2456a015;transform:translateY(-2px)}
.feature-card:hover .card-link,.feature-card:focus-visible .card-link{background:var(--card-hover)}
.feature-card:active{transform:translateY(0);box-shadow:0 2px 8px #2456a012}
.small-card{border-radius:20px;border-color:#d2e1f5;background:#f4f8ff;transition:background .2s,border-color .2s}
.small-card>svg{color:#487cc2}
.small-card h3{color:#315a92}
.small-card:hover,.small-card:focus-visible{background:#eaf2ff;border-color:#88adde}
.welcome{border-radius:25px;background:linear-gradient(110deg,#e1edff,#eef5ff);border-color:#d0e1f8}
.panel{border-radius:20px}
.icon-tile{border-radius:15px}
.nav-link{border-radius:13px}
.nav-link.active{background:#e4efff;color:#24569e}
.support-strip{border-radius:16px;background:#eef5ff;border-color:#c5d9f3}
/* Large, clearly labelled lesson navigation and page controls. */
.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border:0;overflow:visible;margin:0 0 28px}
.tab{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0;min-height:190px;padding:22px;text-align:left;white-space:normal;border:2px solid #c8daf2;border-radius:22px;background:#fff;color:#284f83;box-shadow:0 4px 14px #2456a008;transition:background .2s,border-color .2s}
.lesson-tab-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#e8f1ff;color:#2b65b2;flex-shrink:0}
.lesson-tab-icon svg{width:28px;height:28px}
.lesson-tab-copy{display:flex;flex-direction:column;gap:8px}
.lesson-tab-title{font-size:1.25rem;font-weight:700;line-height:1.6;overflow-wrap:anywhere}
.lesson-tab-description{font-size:0.875rem;line-height:1.7;color:#536b89;font-weight:400}
.lesson-tab-status{margin-top:auto;padding:4px 12px;border-radius:20px;background:#eaf2ff;font-size:0.8125rem;font-weight:700;line-height:1.6}
.tab:hover{background:#edf5ff;border-color:#79a2da}
.tab.active{background:#245caf;border-color:#245caf;color:#fff;box-shadow:0 6px 18px #245caf24}
.tab.active .lesson-tab-icon{background:#ffffff26;color:white}
.tab.active .lesson-tab-description{color:#fff}
.tab.active .lesson-tab-status{background:white;color:#245caf}
.back-link{display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:13px 22px;margin-bottom:24px;border:2px solid #adc8ed;border-radius:16px;background:white;color:#24569b;font-size:1.0625rem;font-weight:700;box-shadow:0 3px 10px #2456a008}
.back-link svg{width:24px;height:24px}
.back-link:hover{background:#e7f0ff;border-color:#5e90d3}
.page-heading{gap:20px;align-items:flex-start}
.page-heading>div:first-child{min-width:0}
.heading-side{flex-shrink:0}
.help-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:10px 17px;border:2px solid #8eb0e0;border-radius:16px;background:#e6efff;color:#234f91;font-size:1rem;font-weight:700;white-space:nowrap}
.help-button>span:last-child{display:inline}
.help-circle{width:32px;height:32px;border:0;background:#245caf;color:#fff;font-size:1.4375rem;font-weight:700;flex-shrink:0}
.help-button:hover{background:#d6e6ff;border-color:#5e90d3}
@media(min-width:701px) and (max-width:1100px){.tabs{gap:10px}.tab{padding:18px 14px}.lesson-tab-title{font-size:1.125rem}.lesson-tab-description{font-size:0.8125rem}}
@media(max-width:700px){.tabs{grid-template-columns:1fr;gap:12px;margin:0 0 24px}.tab{flex-direction:row;align-items:center;gap:14px;min-height:108px;padding:18px;border-radius:18px}.lesson-tab-copy{flex:1;min-width:0;gap:5px}.lesson-tab-title{font-size:1.125rem}.lesson-tab-description{font-size:0.8125rem}.lesson-tab-status{margin:0;padding:4px 8px;font-size:0.75rem;flex-shrink:0}.page-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px}.help-button{padding:10px 12px;font-size:0.9375rem}.back-link{font-size:1rem;min-height:56px}.heading-side{align-self:start}.help-circle{width:30px;height:30px}}
@media(max-width:380px){.tab{gap:10px;padding:16px 12px}.lesson-tab-icon{width:38px;height:42px}.lesson-tab-title{font-size:1.0625rem}.lesson-tab-description{font-size:0.75rem}.help-button{gap:7px;padding:10px}.page-heading{column-gap:10px}}
html{font-size:16px}
html[data-text-size="large"]{font-size:18px}
html[data-text-size="largest"]{font-size:20px}
.text-size-toolbar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;max-width:1220px;margin:auto;padding:18px 45px 0;color:#315a8e;font-size:.875rem;font-weight:700}
.text-size-options{display:flex;flex-wrap:wrap;gap:6px}
.text-size-options button{min-height:44px;padding:9px 14px;border:1px solid #abc6e9;border-radius:12px;background:white;color:#315a8e;font-size:.875rem;font-weight:600;line-height:1.6}
.text-size-options button[aria-pressed="true"]{background:#245caf;border-color:#245caf;color:white;box-shadow:0 2px 8px #245caf22}
.text-size-options button:hover{border-color:#245caf}
.card-main,.small-card>div,.welcome-copy,.card-top h3{min-width:0}
.card-description,.preview-text,.small-card h3,.small-card p,.subtitle,.nav-link span,.modal-body{overflow-wrap:anywhere;line-break:strict}
.card-top,.card-preview,.item-meta,.header-actions{flex-wrap:wrap}
.card-link{gap:12px;line-height:1.7}
.small-card .arrow{flex-shrink:0}
.sidebar{overflow-y:auto}
.sidebar-bottom{flex-shrink:0}
.topbar{min-height:86px;height:auto;padding-top:16px;padding-bottom:16px;gap:14px;flex-wrap:wrap}
html:not([data-text-size="standard"]) .page-heading{flex-wrap:wrap}
html:not([data-text-size="standard"]) .card-top .badge{position:static;margin-left:0;white-space:normal}
html:not([data-text-size="standard"]) .card-top .icon-tile{margin-right:0}
html:not([data-text-size="standard"]) .welcome{flex-wrap:wrap;gap:16px}
html:not([data-text-size="standard"]) .welcome-art{display:none}
html:not([data-text-size="standard"]) .welcome p{max-width:none}
html:not([data-text-size="standard"]) .renewal-card{flex-wrap:wrap}
html:not([data-text-size="standard"]) .badge{white-space:normal}
html:not([data-text-size="standard"]) .primary-button,html:not([data-text-size="standard"]) .secondary-button{white-space:normal;line-height:1.7}
html[data-text-size="largest"] .secondary-cards{grid-template-columns:1fr}
html[data-text-size="largest"] .tabs{grid-template-columns:1fr}
html[data-text-size="largest"] .tab{min-height:100px;flex-direction:row;align-items:center}
html[data-text-size="largest"] .lesson-tab-status{margin:0 0 0 auto;flex-shrink:0}
@media(max-width:1150px){.text-size-toolbar{padding-left:28px;padding-right:28px}html:not([data-text-size="standard"]) .main-cards,html:not([data-text-size="standard"]) .secondary-cards{grid-template-columns:1fr}html:not([data-text-size="standard"]) .tabs{grid-template-columns:1fr}html:not([data-text-size="standard"]) .tab{min-height:100px;flex-direction:row;align-items:center}html:not([data-text-size="standard"]) .lesson-tab-status{margin:0 0 0 auto;flex-shrink:0}}
@media(max-width:700px){.text-size-toolbar{padding:16px 20px 0;justify-content:flex-start;gap:8px}.text-size-options{width:100%;display:grid;grid-template-columns:1fr 1fr 1.5fr}.text-size-options button{padding:10px 6px}.topbar{min-height:70px;padding-top:12px;padding-bottom:12px;position:relative}.page-heading{display:flex;flex-wrap:wrap}.heading-side{margin-left:auto}html:not([data-text-size="standard"]) .form-grid,html:not([data-text-size="standard"]) .report-grid{grid-template-columns:1fr}html:not([data-text-size="standard"]) .tab{flex-wrap:wrap}html:not([data-text-size="standard"]) .lesson-tab-copy{flex:1 1 150px}html:not([data-text-size="standard"]) .lesson-tab-status{margin-left:auto}html:not([data-text-size="standard"]) .confirmation{grid-template-columns:1fr;gap:8px}html:not([data-text-size="standard"]) .confirmation dd{margin-bottom:10px}.mobile-menu{min-height:44px;min-width:36px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Prominent, consistent portal branding at every text size. */
.brand{max-width:100%;padding-left:14px}
.brand-word{font-size:2.625rem}
.brand-sub{font-size:1.125rem;line-height:1.5;letter-spacing:.06em;color:#244e8c;margin-top:12px}
.brand-sub>span{display:block;font-size:1rem;letter-spacing:.02em;font-weight:600}
.topbar{min-height:112px;padding-top:24px;padding-bottom:24px}
.header-label{font-size:1.5rem;font-weight:800;line-height:1.5;color:#244e8c;gap:14px;flex-wrap:wrap;min-width:0;max-width:100%}
.header-label>span:first-child{overflow-wrap:anywhere}
.header-label .demo-pill{font-size:.6875rem;align-self:center}
.student-label,.profile{font-size:.9375rem}
@media(max-width:1100px){.header-label{font-size:1.375rem}.brand{padding-left:10px}.brand-word{font-size:2.25rem}}
@media(max-width:700px){.topbar{min-height:108px;padding:18px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px 12px}.header-label{font-size:1.25rem;gap:7px}.header-actions{grid-column:2;justify-content:flex-end}.sidebar.open{top:0;z-index:50}.sidebar.open .brand{display:flex;margin-bottom:18px}.brand-word{font-size:2.25rem}}

.menu-backdrop{display:none}
@media(max-width:700px){.menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:45;border:0;border-radius:0;background:rgba(24,49,80,.15);padding:0;width:100%;height:100%;cursor:pointer}.sidebar.open{z-index:50}}

/* Simplified main cards with larger, naturally wrapping text. */
.feature-card .card-main{padding:28px}
.feature-card .card-top{gap:16px;margin-bottom:18px}
.feature-card .card-top h3{font-size:1.625rem;line-height:1.5}
.feature-card .card-description{font-size:1.0625rem;line-height:1.9;margin:0;min-height:0}
.feature-card .card-link{font-size:1rem;padding:17px 28px;line-height:1.7}
@media(max-width:700px){.feature-card .card-main{padding:24px}.feature-card .card-top h3{font-size:1.5rem}.feature-card .card-description{font-size:1rem}.feature-card .card-link{font-size:1rem;padding:16px 24px}}

/* Parent support: three clear entry points, with details revealed on demand. */
.parent-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.parent-links .small-card{align-items:center;min-height:120px;padding:22px 18px}
.parent-links .small-card h3{font-size:1.125rem}
.parent-links .small-card p{font-size:.9375rem}
.parent-links .small-card>svg:last-child{width:18px;margin-left:auto}
.parent-topics{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.parent-choice{display:flex;align-items:center;gap:14px;min-height:82px;padding:18px;text-align:left;background:#f0f6ff;border:1px solid #c9dbf2;border-radius:16px;color:#2b5287;font-size:1.0625rem;font-weight:700;line-height:1.8}
.parent-choice span{flex:1;min-width:0;overflow-wrap:anywhere}
.parent-choice:hover{background:#e0edff}
.parent-detail-title{margin-top:24px!important;line-height:1.8}
.parent-switch{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}
.parent-switch .selected{background:#245caf;color:white;border-color:#245caf}
.parent-placeholder{background:#f6f8fc;border:1px solid #e0e7f1;border-radius:18px;padding:24px;margin:20px 0;line-height:1.9;overflow-wrap:anywhere}
.parent-placeholder h3{font-size:1.125rem}
.video-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:210px;background:#e7effa;border-radius:14px;padding:24px;text-align:center;color:#405e88}
.video-placeholder span{font-size:.9375rem;line-height:1.8}
.parent-slots{display:grid;gap:12px}
.parent-slots .radio-option{font-size:1rem!important;line-height:1.8}
.parent-steps{display:flex;gap:10px;list-style:none;margin:0 0 24px;padding:0;flex-wrap:wrap}
.parent-steps li{flex:1;min-width:90px;padding:12px 15px;background:#eaf0f9;border-radius:12px;color:#526882;font-size:1rem;line-height:1.6;text-align:center}
.parent-steps [aria-current]{background:#245caf;color:white;font-weight:700}
#parent-ai-form{margin-top:22px}
#contact-form{scroll-margin-top:25px}
@media(max-width:1100px){.parent-links{grid-template-columns:1fr}.parent-links .small-card{min-height:90px}}
@media(max-width:700px){.parent-topics{grid-template-columns:1fr}.parent-placeholder{padding:18px}.parent-switch{flex-direction:column}.parent-switch button,.parent-switch a{width:100%}.parent-steps{gap:6px}.parent-steps li{padding:10px 5px;min-width:70px}.parent-choice{font-size:1rem}}
html[data-text-size="largest"] .parent-links,html[data-text-size="largest"] .parent-topics{grid-template-columns:1fr}

.parent-links{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.parent-links{grid-template-columns:1fr}}

.parent-links .event-card-disabled{background:#eef0f3;border-color:#d6dce3;cursor:not-allowed;box-shadow:none}.parent-links .event-card-disabled h3,.parent-links .event-card-disabled p,.parent-links .event-card-disabled>svg{color:#616d7c}

/* One clear destination per card, without a duplicate footer label. */
.feature-card{position:relative}
.feature-card .card-main{padding:28px 76px 28px 28px;min-height:172px}
.card-direction{position:absolute;right:22px;top:50%;transform:translateY(-50%);width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--card-tint);color:var(--card-ink);pointer-events:none}
.card-direction svg{width:22px;height:22px}
.feature-card:hover .card-direction,.feature-card:focus-visible .card-direction{background:var(--card-hover)}
.feature-card .card-top .icon-tile{margin-right:0}
@media(max-width:700px){.feature-card .card-main{padding:24px 64px 24px 22px;min-height:156px}.card-direction{right:16px;width:34px;height:34px}}

/* Consistent compact cards across both supporting sections. */
.parent-links,.secondary-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.parent-links .small-card,.secondary-cards .small-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:16px;min-height:144px;padding:26px 64px 26px 24px;border-radius:24px}
.parent-links .small-card>svg:first-child,.secondary-cards .small-card>svg:first-child{width:40px;height:40px;padding:8px;background:#e2edff;border-radius:13px;color:#3869a7}
.parent-links .small-card h3,.secondary-cards .small-card h3{font-size:1.375rem;line-height:1.6;margin:0 0 10px;overflow-wrap:anywhere}
.parent-links .small-card p,.secondary-cards .small-card p{font-size:1rem;line-height:1.8;margin:0;overflow-wrap:anywhere;color:#536b89}
.parent-links .small-card>svg:last-child,.secondary-cards .small-card>svg:last-child{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:32px;height:32px;padding:7px;border-radius:50%;background:#e2edff;color:#3869a7;margin:0}
.parent-links .event-card-disabled>svg:first-child,.parent-links .event-card-disabled>svg:last-child{background:#dfe3e8;color:#616d7c}
.parent-links .event-card-disabled h3,.parent-links .event-card-disabled p{color:#616d7c}
@media(max-width:900px){.parent-links,.secondary-cards{grid-template-columns:1fr}}
@media(max-width:700px){.parent-links .small-card,.secondary-cards .small-card{grid-template-columns:36px minmax(0,1fr);gap:12px;padding:22px 54px 22px 18px;min-height:126px}.parent-links .small-card h3,.secondary-cards .small-card h3{font-size:1.25rem}.parent-links .small-card>svg:first-child,.secondary-cards .small-card>svg:first-child{width:36px;height:36px}.parent-links .small-card>svg:last-child,.secondary-cards .small-card>svg:last-child{right:13px;width:28px;height:28px;padding:5px}}
html:not([data-text-size="standard"]) .parent-links,html:not([data-text-size="standard"]) .secondary-cards{grid-template-columns:1fr}

/* Show required actions only while they need attention. */
.action-needed{border:2px solid #dfbe7a;border-radius:22px;background:#fff8e9;margin-bottom:26px;padding:24px 28px;color:#594820}
.action-needed-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.action-needed-heading>svg{width:30px;height:30px;color:#8b651e;flex-shrink:0}
.action-needed h2{font-size:1.375rem;margin:0;line-height:1.6}
.action-needed h3{font-size:1.125rem;margin:0 0 8px;line-height:1.7}
.action-needed-content{display:flex;align-items:center;justify-content:space-between;gap:24px}
.action-needed-content>div{min-width:0}
.action-needed p{font-size:1rem;line-height:1.8;margin:0;overflow-wrap:anywhere}
.action-needed .action-needed-deadline{font-size:.9375rem;margin-top:8px;font-weight:600}
.action-needed .primary-button{min-height:56px;flex-shrink:0;font-size:1.0625rem;line-height:1.6;white-space:normal}
@media(max-width:900px){.action-needed-content{align-items:stretch;flex-direction:column;gap:18px}.action-needed{padding:22px}.action-needed .primary-button{width:100%}}
html[data-text-size="largest"] .action-needed-content{align-items:stretch;flex-direction:column}

/* Three balanced cards per group; icons above copy preserve reading width. */
.parent-links,.secondary-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.parent-links .small-card,.secondary-cards .small-card{display:flex;flex-direction:column;align-items:flex-start;gap:18px;min-height:218px;padding:24px}
.parent-links .small-card>div,.secondary-cards .small-card>div{width:100%;min-width:0}
.parent-links .small-card h3,.secondary-cards .small-card h3{font-size:1.25rem;line-height:1.65;word-break:normal;overflow-wrap:anywhere;text-wrap:pretty}
.parent-links .small-card p,.secondary-cards .small-card p{font-size:1rem;line-height:1.8;text-wrap:pretty}
.parent-links .small-card>svg:last-child,.secondary-cards .small-card>svg:last-child{top:28px;right:22px;transform:none}
html:not([data-text-size="standard"]) .parent-links,html:not([data-text-size="standard"]) .secondary-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1150px){html:not([data-text-size="standard"]) .parent-links,html:not([data-text-size="standard"]) .secondary-cards{grid-template-columns:1fr}}
@media(max-width:1000px){.parent-links,.secondary-cards{grid-template-columns:1fr}.parent-links .small-card,.secondary-cards .small-card{min-height:0;gap:14px;padding:24px}}
@media(max-width:700px){.parent-links .small-card,.secondary-cards .small-card{padding:22px}.parent-links .small-card>svg:last-child,.secondary-cards .small-card>svg:last-child{top:24px;right:22px}}
