body:has(.home-dashboard){background:#eef3df}body:has(.home-dashboard:not(.authenticated-home))>#root>header{display:none}main:has(>.home-dashboard){max-width:1440px;padding:clamp(24px,5vw,76px) clamp(20px,4vw,64px) 28px}.home-dashboard{--home-navy:#092976;--home-coral:#ff7147;--home-background-image:url(/backgrounds/home/home_neighbourhood.png);isolation:isolate;align-content:start;gap:clamp(52px,5vw,72px);min-width:0;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif;display:grid;position:relative}.home-dashboard:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(#fffef810, #fffef810), var(--home-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.home-dashboard-heading{justify-content:flex-start;align-items:center;gap:clamp(32px,6vw,92px);padding:12px 16px 0;display:flex}.home-dashboard-heading .home-class-title{color:var(--home-navy);letter-spacing:-.045em;isolation:isolate;flex-shrink:0;margin:0;padding:4px 20px 12px;font-size:clamp(44px,5.5vw,78px);font-weight:900;line-height:1.1;position:relative}.home-class-title:before{content:"";z-index:-1;background:#fffffff2;border-radius:18% 8% 13% 7%/24% 18% 17% 28%;position:absolute;inset:-4px 0;transform:rotate(-2deg)}.home-class-title:after{content:"";background:#ffd445;border-radius:70%;width:55%;height:8px;position:absolute;bottom:2px;right:15px;transform:rotate(-1deg)}.home-login-actions{flex-wrap:wrap;gap:18px;display:flex}.home-login-actions button{background:var(--home-coral);color:#fff;font:inherit;cursor:pointer;border:2px solid #fff7;border-radius:22px;justify-content:center;align-items:center;gap:14px;padding:18px 24px;font-size:clamp(17px,1.6vw,23px);font-weight:800;display:inline-flex;box-shadow:0 5px #dd633d20}.home-login-actions button.secondary{color:var(--home-navy);background:#fffef8;border-color:#9dc95c}.home-login-actions svg{fill:currentColor;flex-shrink:0;width:28px;height:28px}.home-login-actions .secondary svg{color:#83b839}.home-login-actions button:hover{filter:brightness(1.04)}.home-dashboard button:focus-visible{outline-offset:5px;outline:3px solid #173f89}.student-gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:20px;display:grid}.student-gallery-card{--tab-color:#ff7750;background:#fffdf1;border:0;border-radius:30px 26px 32px 28px;min-width:0;padding:34px 14px 14px;position:relative;box-shadow:0 6px #e6d8b8,0 14px 26px #705b3426,inset 0 2px #fff}.student-gallery-card:nth-child(2){--tab-color:#389bf5}.student-gallery-card:nth-child(3){--tab-color:#f9bc45}.student-gallery-card:nth-child(4){--tab-color:#6abe5b}.student-gallery-card h2{background:var(--tab-color);color:#fff;white-space:nowrap;border-radius:21px 18px 20px 17px;margin:0;padding:8px 32px 10px 22px;font-size:clamp(27px,2.6vw,38px);font-weight:900;line-height:1.1;position:absolute;top:-27px;left:50%;transform:translate(-50%)rotate(-5deg)}.student-gallery-card .avatar-scene{aspect-ratio:1;border-radius:15px;width:100%;min-height:0}.home-dashboard .unlocked-achievement-icons{place-content:start center;gap:5px;margin:14px 0 0}.home-dashboard .unlocked-achievement-icons li{flex:0 0 38px;width:38px;height:38px}.home-dashboard [data-tooltip]:after{display:none}.home-dashboard [data-tooltip]:hover:after,.home-dashboard [data-tooltip]:focus:after{max-width:160px;display:block}.home-dashboard .login-modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#142b4f66;overflow-y:auto}.home-dashboard .login-modal{background:radial-gradient(at 100% 0,#caedff 0,#0000 48%),linear-gradient(#f2fbff,#fffefa 45%);border:1px solid #ffffffd9;border-radius:32px;width:min(100%,580px);max-height:calc(100dvh - 32px);padding:clamp(24px,4vw,44px);overflow-y:auto;box-shadow:0 24px 80px #10274840}.home-dashboard .login-modal .profile-eyebrow{color:#637fa4;letter-spacing:.16em;text-transform:uppercase;margin:0 36px 8px 0;font-size:12px;font-weight:800}.home-dashboard .login-modal h2{color:#143b76;width:fit-content;margin:0 0 32px;padding-bottom:14px;font-size:clamp(28px,4vw,40px);font-weight:900;line-height:1.15;position:relative}.home-dashboard .login-modal h2:after{content:"";background:#ffcf47;border-radius:50%;width:54%;height:6px;position:absolute;bottom:0;right:3%}.home-dashboard .login-modal-close{color:#173d77;border-radius:50%;width:36px;height:36px;font-size:30px;top:14px;right:14px}.home-dashboard .login-modal-close:hover{background:#dceffa}.home-dashboard .login-modal form{gap:20px}.home-dashboard .login-modal label{color:#173d77;gap:9px;font-size:18px}.home-login-field{background:#fffbeb;border:2px solid #d9dccb;border-radius:22px;align-items:center;gap:14px;min-width:0;padding:0 18px;transition:box-shadow .15s,border-color .15s;display:flex;box-shadow:0 0 0 7px #e0f1fb,inset 0 2px 4px #29486d0d}.home-login-field:focus-within{border-color:#6c9ec4;box-shadow:0 0 0 7px #cde9fb,0 0 0 9px #719cc34d}.home-login-field svg{fill:#173d77;flex-shrink:0;width:23px;height:23px}.home-label-text small{color:#7186a1;font-size:.72em;font-weight:650}.home-dashboard .login-modal .home-login-field input{min-width:0;box-shadow:none;color:#142d4c;background:0 0;border:0;border-radius:0;outline:none;padding:16px 0;font-size:19px}.home-dashboard .login-modal form button{border-radius:var(--primary-button-radius);background:var(--primary-button-background);box-shadow:var(--primary-button-shadow);border:0;margin-top:6px;padding:16px 24px;font-size:22px;transition:filter .14s,transform .14s,box-shadow .14s}.home-dashboard .login-modal form button:hover{filter:brightness(1.07);transform:translateY(-1px)}.home-dashboard .login-modal form button:active{box-shadow:var(--primary-button-shadow-active);transform:translateY(2px)}.home-dashboard .login-modal form button span{margin-left:14px}.home-dashboard .login-modal form button:disabled{cursor:wait;opacity:.72;transform:none}.home-dashboard .login-mode-switch{color:#315f99;font:inherit;cursor:pointer;background:0 0;border:0;margin:18px auto 0;padding:8px 12px;font-weight:750;display:block}.home-dashboard .login-mode-switch:hover{text-decoration:underline}.home-dashboard .demo-credentials{color:#23416b;background:#eef5e7;border-radius:20px;margin-top:24px;padding:18px 20px;font-size:13px}.home-dashboard .demo-credentials strong{font-size:15px}.home-dashboard .demo-credentials ul{flex-wrap:wrap;gap:8px 18px;margin:10px 0 0;padding:0;list-style:none;display:flex}@media (width<=1100px){.home-dashboard-heading{flex-wrap:wrap;gap:28px}.student-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:58px 24px}.home-dashboard{gap:64px}.home-login-actions button{padding:15px 20px}}@media (width<=600px){main:has(>.home-dashboard){padding:28px 20px 20px}.home-dashboard-heading{flex-direction:column;align-items:center;gap:26px;padding:0}.home-dashboard-heading .home-class-title{font-size:48px}.home-class-title:after{box-shadow:none}.home-login-actions{gap:10px;width:100%}.home-login-actions button{border-radius:17px;flex:140px;gap:8px;padding:13px 10px;font-size:16px}.home-login-actions svg{width:22px;height:22px}.student-gallery{grid-template-columns:minmax(0,1fr);gap:56px}.student-gallery-card h2{font-size:34px}.home-dashboard:before{background-position:0}}.home-welcome.student-gallery-card{color:#173d77;max-width:720px;padding:clamp(24px,4vw,44px)}.home-welcome.student-gallery-card h2{color:inherit;white-space:normal;background:0 0;padding:0;position:static;transform:none}.home-welcome p{margin-bottom:0;font-size:18px;line-height:1.6}.authenticated-home{gap:clamp(42px,5vw,66px)}.authenticated-home .home-dashboard-heading{justify-content:space-between}.authenticated-home .home-dashboard-heading .profile-eyebrow{color:#315e91;letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px 20px;font-weight:800}.authenticated-home .student-gallery>:is(div,a){min-width:0;color:inherit;text-decoration:none}.authenticated-home .student-gallery-card{box-sizing:border-box;height:100%}.home-student-link{border-radius:30px;display:block}.home-student-link:hover .student-gallery-card{transform:translateY(-2px);box-shadow:0 6px #e6d8b8,0 18px 30px #705b3433,inset 0 2px #fff}.home-student-link:focus-visible{outline-offset:5px;outline:4px solid #2873c5}.home-group-selector{color:#173d77;gap:6px;min-width:min(260px,100%);font-weight:800;display:grid}.home-group-selector select{color:#173d77;font:inherit;background:#fffef8;border:2px solid #bed5ea;border-radius:15px;padding:12px 42px 12px 14px;box-shadow:0 4px #9cbcd644}.home-dashboard-actions{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:14px;display:flex}.home-roster-state{color:#173d77;background:#fffef8e8;border-radius:18px;width:fit-content;margin:0;padding:16px 20px;font-weight:700}.authenticated-home .home-welcome a{color:#fff;background:#246fc5;border-radius:13px;margin-top:16px;padding:11px 17px;font-weight:800;text-decoration:none;display:inline-block}@media (width<=600px){.authenticated-home .home-dashboard-heading{align-items:stretch}.authenticated-home .home-dashboard-heading .profile-eyebrow{text-align:center;margin-left:0}.home-group-selector{width:100%}.home-dashboard-actions{justify-content:stretch;width:100%}.home-dashboard-actions>*{flex:100%}}body:has(.student-profile){isolation:isolate;background:#f1f3e8}body:has(.student-profile):before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#f5fbff14,#fffdf314),url(/backgrounds/home/home_neighbourhood.png) 50%/cover no-repeat;position:fixed;inset:0}main:has(>.student-profile){max-width:1328px;padding:20px 24px 28px}main>.student-profile{color:#092976;gap:16px;width:100%;margin:0;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif;transform:none}.student-profile .profile-hero{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px}.student-profile .avatar-panel,.student-profile .profile-summary,.student-profile .achievements-panel{background:#fffef7f5;border:1px solid #ffffffd9;border-radius:28px;min-width:0;box-shadow:0 12px 30px #314b6420}.student-profile .avatar-panel{flex-direction:column;justify-content:center;gap:10px;padding:14px;display:flex}.student-profile .avatar-scene{border-radius:19px}.student-profile .customize-button{border-radius:var(--primary-button-radius);background:var(--primary-button-background);box-shadow:var(--primary-button-shadow);margin:0;padding:13px 20px;font-size:22px;font-weight:900;transition:filter .14s,transform .14s,box-shadow .14s}.student-profile .customize-button:hover{filter:brightness(1.07);transform:translateY(-1px)}.student-profile .customize-button:active{box-shadow:var(--primary-button-shadow-active);transform:translateY(2px)}.student-profile :is(a,[tabindex]):focus-visible{outline-offset:4px;outline:3px solid #377db8}.student-profile .profile-summary{box-shadow:none;background:0 0;border:0;align-self:start;padding:0 4px}.profile-identity{background:#fffdf4;border-radius:30px 30px 22px 22px;min-height:156px;margin-bottom:14px;padding:20px 160px 14px 24px;position:relative;box-shadow:0 6px 18px #705b341a}.profile-mascot{pointer-events:none;width:136px;height:146px;position:absolute;bottom:0;right:14px}.student-profile .profile-identity h1{overflow-wrap:anywhere;width:fit-content;max-width:100%;position:relative}.profile-identity h1:after{content:"";background:#ffcb43;border-radius:8px;width:7px;height:15px;position:absolute;top:2px;right:-18px;transform:rotate(28deg);box-shadow:13px 12px 0 -1px #ffcb43}.student-profile .profile-summary>h2{background:#fffdf4;border-radius:16px;width:fit-content;margin:0 0 10px;padding:8px 18px}.student-profile .profile-eyebrow{color:#6b83a1;letter-spacing:.15em;font-size:12px}.student-profile .profile-summary h1{color:#092976;letter-spacing:-.035em;font-size:clamp(40px,4.5vw,62px);font-weight:900;line-height:1.05}.student-profile .profile-status{color:#657da5;margin:6px 0 14px}.student-profile .profile-summary h2{color:#173d77;margin-bottom:14px;font-size:23px}.student-profile .progress-panel{gap:10px}.student-profile .progress-item{background:linear-gradient(110deg,#fff4d9,#fffcf5);border:1px solid #f4e8ca;border-radius:22px;grid-template-columns:72px minmax(0,1fr) 40px;gap:12px;min-height:94px;padding:12px 16px;position:relative;box-shadow:0 3px #dacbae80,0 7px 18px #705b341a,inset 0 2px #fff9}.student-profile .progress-item:has(.progress-track span:not([style*="width: 0%"])):before{content:"";background:#ffcc43;border-radius:5px;width:5px;height:10px;position:absolute;top:9px;left:10px;transform:rotate(-32deg);box-shadow:-7px 8px 0 -1px #ffcc43}.student-profile .progress-item:nth-child(2){background:#f4edfb;border-color:#e4d9ef}.student-profile .progress-item:nth-child(3){background:#eaf5f9;border-color:#d5e7ed}.student-profile .progress-achievement-current{width:72px}.student-profile .progress-achievement-next{width:40px}.student-profile .progress-heading{color:#092976;flex-wrap:wrap;gap:8px;font-size:18px}.student-profile .progress-heading span{font-size:13px}.student-profile .progress-track{background:#183f7914;height:12px;margin:7px 0 5px}.student-profile .progress-track span{background:#4289f5}.student-profile .progress-item:nth-child(2) .progress-track span{background:#9768e6}.student-profile .progress-item:nth-child(3) .progress-track span{background:#42af68}.student-profile .progress-item small{color:#52627a;font-size:12px}.student-profile .achievements-panel{background:#fffdf2;padding:20px;box-shadow:0 5px #e6d8b8,0 12px 26px #705b3426}.student-profile .section-heading{margin-bottom:18px}.student-profile .section-heading h2{color:#173d77;font-size:25px}:is(.student-profile .achievement-groups,.student-profile .achievement-groups:not(:has(.achievement-group-hidden))){grid-template-columns:1.2fr 1.05fr .85fr;gap:14px}.student-profile .achievement-group-hidden{grid-column:1/-1}.student-profile .achievement-group{background:#faf6e9;border:1px solid #eae5d7;border-radius:20px;padding:14px}.student-profile .achievement-group-streak{background:#f6f0fa;border-color:#e8dfef}.student-profile .achievement-group-test{background:#edf6fa;border-color:#dceaf0}.student-profile .achievement-group-hidden{background:#eef5e8;border-color:#dfebd6}.student-profile .achievement-group h3{text-align:center;margin-bottom:12px;font-size:16px;font-weight:900}.student-profile .achievement-list{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:8px}.student-profile .achievement-group-hidden .achievement-list{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.student-profile .achievement-group-hidden .achievement-list li{flex:0 0 64px}.student-profile .achievement-list .achievement-label{display:none}.student-profile .achievement-list li{justify-items:center;gap:5px;font-size:11px}.student-profile .achievement-list img,.student-profile .achievement-fallback{width:64px;max-width:100%;margin-inline:auto}.student-profile .achievement-list .locked{opacity:.58}.student-profile [data-tooltip]:after{max-width:min(210px,65vw);display:none}.student-profile [data-tooltip]:hover:after,.student-profile [data-tooltip]:focus:after{display:block}@media (width<=980px){.student-profile .profile-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}.student-profile .profile-summary{padding:0}.profile-identity{padding:18px 106px 14px 18px}.profile-mascot{width:92px;height:105px;right:4px}.student-profile .progress-item{grid-template-columns:44px minmax(0,1fr)}.student-profile .progress-achievement-current{width:44px}.student-profile .progress-achievement-next{display:none}}@media (width<=700px){main:has(>.student-profile){padding:20px 16px}:is(.student-profile .profile-hero,.student-profile .achievement-groups,.student-profile .achievement-groups:not(:has(.achievement-group-hidden))){grid-template-columns:minmax(0,1fr)}.student-profile .avatar-panel{width:100%;max-width:560px}.student-profile .achievements-panel{padding:16px}.student-profile .achievement-list{grid-template-columns:repeat(auto-fit,minmax(54px,1fr))}}body:has(.teacher-dashboard){isolation:isolate;background:#edf5f4}body:has(.teacher-dashboard):before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#f7fbfd80,#fffaf08c),url(/backgrounds/home/home_neighbourhood.png) 50%/cover no-repeat;position:fixed;inset:0}main:has(>.teacher-dashboard){max-width:1360px;padding:30px 24px 40px}.teacher-dashboard{color:#17345f;gap:16px;min-width:0;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif;display:grid}.teacher-heading{justify-content:space-between;align-items:center;gap:28px;padding:6px 10px 4px;display:flex;position:relative}.teacher-heading .profile-eyebrow{color:#315e91;letter-spacing:.12em;background:#dcecff;border-radius:14px;margin:0 0 8px;padding:6px 11px;font-size:11px;display:inline-block}.teacher-heading h1{color:#0b2d68;letter-spacing:-.035em;width:fit-content;margin:0;font-size:clamp(36px,5vw,60px);line-height:1;position:relative}.teacher-heading h1:after{content:"";background:#ffc83d;border-radius:8px;width:7px;height:18px;position:absolute;bottom:-8px;left:-22px;transform:rotate(-67deg);box-shadow:-12px -2px 0 -1px #ffc83d}.teacher-heading p:last-child{color:#61738c;margin:12px 0 0;font-size:17px}.teacher-add-button,.teacher-dashboard .activity-form button{color:#fff;font:inherit;cursor:pointer;background:linear-gradient(#ff8067,#f45e48);border:1px solid #ff8f76;border-radius:17px;padding:14px 22px;font-size:16px;font-weight:850;transition:filter .15s,transform .15s,box-shadow .15s;box-shadow:0 4px #d94b39,inset 0 2px #ffffff59,0 9px 20px #cf59472b}.teacher-add-button:hover,.teacher-dashboard .activity-form button:hover{filter:brightness(1.05);transform:translateY(-1px)}.teacher-add-button:active,.teacher-dashboard .activity-form button:active{transform:translateY(2px);box-shadow:0 2px #d94b39}.teacher-add-button:disabled{cursor:wait;filter:grayscale(.2);opacity:.65;transform:none;box-shadow:0 2px #d94b39}.teacher-tabs{background:#ffffffbf;border:0;border-radius:17px;gap:6px;width:fit-content;padding:5px;display:flex;box-shadow:0 5px 15px #31547512}.teacher-tabs button{color:#5a6d87;min-width:138px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:13px;padding:11px 18px;font-weight:800}.teacher-tabs button.active{color:#174b8c;background:#e4f0ff;box-shadow:0 3px #2d75ce,inset 0 2px #fff}.homework-month-tabs{scrollbar-width:thin;gap:7px;min-width:0;padding:5px 5px 8px;display:flex;overflow-x:auto}.homework-month-tabs button{color:#60728b;font:inherit;cursor:pointer;background:#ffffffde;border:1px solid #d8e4ef;border-radius:13px;flex:none;padding:9px 14px;font-size:12px;font-weight:800;box-shadow:0 3px 8px #31547510}.homework-month-tabs button:hover{color:#24558d;border-color:#a9c8ea}.homework-month-tabs button.active{color:#174b8c;background:#dfedff;border-color:#87b7ed;box-shadow:0 3px #2d75ce,inset 0 2px #fff}.teacher-dashboard :is(button,input,.journal-scroll):focus-visible{outline-offset:3px;outline:3px solid #2873c5}.activity-form{background:#fffef8ed;border:1px solid #ffffffd9;border-radius:20px;grid-template-columns:minmax(150px,.6fr) minmax(220px,1fr) auto;align-items:end;gap:14px;padding:18px;display:grid;box-shadow:0 8px 22px #31547514}.activity-form label{color:#324b6d;gap:6px;font-size:12px;font-weight:800;display:grid}.activity-form label span{color:#7a8799;font-weight:500}.activity-form input{color:#172f52;min-width:0;font:inherit;background:#fff;border:1px solid #cbd9e7;border-radius:11px;padding:11px 12px}.journal-scroll{background:#fffef9f2;border:1px solid #ffffffd9;border-radius:26px;min-width:0;padding:14px;overflow-x:auto;box-shadow:0 5px #dfd9c9,0 14px 30px #3154751c}.journal-table{border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #dfe7ee;border-radius:16px;width:100%;min-width:720px;overflow:hidden}.journal-table th,.journal-table td{text-align:center;border-bottom:1px solid #e3e9ef;border-right:1px solid #e3e9ef;min-width:122px;padding:14px}.journal-table tr:last-child th,.journal-table tr:last-child td{border-bottom:0}.journal-table th:last-child,.journal-table td:last-child{border-right:0}.journal-table thead th{color:#17345f;background:#eff6ff;height:72px;font-size:13px}.journal-table thead th:nth-child(3n){background:#f0f7ee}.journal-table thead th:nth-child(4n){background:#fff6e9}.journal-table thead th:nth-child(5n){background:#fff0f1}.journal-table thead th span,.journal-table th small{display:block}.journal-table thead th small{color:#6c7e97;text-overflow:ellipsis;white-space:nowrap;max-width:125px;margin:5px auto 0;font-weight:500;overflow:hidden}.journal-table tbody tr:nth-child(2n) td{background:#fbfdff}.journal-table .student-column{z-index:2;text-align:left;background:#fbfcfe;min-width:200px;position:sticky;left:0}.journal-table tbody .student-column{color:#17345f;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;display:grid}.teacher-student-initial{color:#fff;background:#ff8077;border-radius:50%;place-items:center;width:42px;height:42px;font-size:18px;font-weight:900;display:grid}.journal-table tbody tr:nth-child(2) .teacher-student-initial{background:#59a8ef}.journal-table tbody tr:nth-child(3) .teacher-student-initial{background:#f4b83d}.journal-table tbody tr:nth-child(4) .teacher-student-initial{background:#70bb62}.teacher-student-name{min-width:0;font-size:15px}.journal-table tbody .student-column small{color:#718096;margin-top:3px;font-size:11px;font-weight:500}.journal-checkbox{appearance:none;cursor:pointer;background:#fff;border:2px solid #aeb9c8;border-radius:5px;place-items:center;width:26px;height:26px;display:inline-grid}.journal-checkbox:checked{background:#2778d2;border-color:#2778d2}.journal-checkbox:checked:before{content:"✓";color:#fff;font-size:19px;font-weight:900;line-height:1}.section-scores{grid-template-columns:repeat(3,72px);justify-content:center;gap:5px;display:grid}.section-scores label{color:#63758d;gap:3px;font-size:10px;display:grid}.section-scores input{color:#17345f;width:72px;font:inherit;text-align:center;background:#fbfdff;border:1px solid #cbd9e7;border-radius:8px;padding:7px 5px}.section-scores>small{color:#718096;grid-column:1/-1;font-size:11px}.section-scores>small.passed{color:#267047;font-weight:700}.section-scores>small.not-passed{color:#a24747;font-weight:700}:is(.journal-table td:has(.section-scores),.journal-table th:has(+td .section-scores)){min-width:238px}.teacher-note,.journal-empty{color:#61738c;background:#ffffffb8;border-radius:14px;margin:0;padding:13px 15px;font-size:12px}.journal-error{color:#8b3027;background:#fff1ee;border:1px solid #e7a69b;border-radius:13px;margin:0 0 12px;padding:11px 14px}.journal-error button{color:#164f9a;font:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;font-weight:800;text-decoration:underline}@media (width<=760px){main:has(>.teacher-dashboard){padding:22px 14px 32px}.teacher-heading{flex-direction:column;align-items:stretch}.teacher-heading h1{font-size:40px}.teacher-heading p:last-child{font-size:14px}.teacher-add-button,.teacher-tabs{width:100%}.teacher-tabs button{flex:1;min-width:0}.activity-form{grid-template-columns:1fr}.homework-month-tabs{margin-inline:-4px}.journal-scroll{padding:8px}}.teacher-roster-controls.activity-form{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.teacher-roster-controls label{flex:220px}.teacher-roster-controls select{box-sizing:border-box;color:#17376c;width:100%;min-height:42px;font:inherit;background:#fff;border:1px solid #d5e2f0;border-radius:12px;padding:8px 12px}.teacher-provision-form.activity-form{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.teacher-provision-form h2{flex-basis:100%;margin:0}.teacher-provision-form label{flex:180px;min-width:0}.teacher-provision-form input{box-sizing:border-box;width:100%}.teacher-roster{background:#ffffffeb;border-radius:22px;margin:18px 0;padding:18px 22px}.teacher-roster h2{margin:0 0 12px;font-size:20px}.teacher-roster p{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-roster button{color:#17376c;font:inherit;cursor:pointer;background:#f0f6ff;border:1px solid #d5e2f0;border-radius:12px;padding:9px 14px}.teacher-roster button:focus-visible,.teacher-roster-controls select:focus-visible{outline-offset:3px;outline:3px solid #76a9f3}body:has(.customize-page){isolation:isolate;background:#dcebdc}body:has(.customize-page):before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#fffef80d,#fffef80d),url(/backgrounds/home/home_neighbourhood.png) 50%/cover no-repeat;position:fixed;inset:0}main:has(>.customize-page){max-width:1380px;padding:20px 24px 28px}main>.customize-page{color:#092976;width:100%;margin:0;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif;transform:none}.customize-layout{grid-template-columns:minmax(350px,.78fr) minmax(560px,1.22fr);align-items:start;gap:18px;display:grid}.customize-preview-panel,.customize-options-panel{background:#fffdf2;border:1px solid #ffffffd9;border-radius:30px;min-width:0;position:relative;box-shadow:0 6px #e6d8b8,0 14px 28px #705b3426}.customize-preview-panel{padding:14px}.customize-preview-panel>h2{z-index:40;color:#fff;background:#ff7750;border-radius:20px 18px 22px;margin:0;padding:8px 24px;font-size:clamp(27px,2.4vw,38px);line-height:1;position:absolute;top:-23px;left:50%;transform:translate(-50%)rotate(-4deg);box-shadow:0 5px #d95e3c}.customize-preview-panel .avatar-scene{border-radius:18px}.customize-save-button{cursor:pointer;border-radius:var(--primary-button-radius);background:var(--primary-button-background);color:#fff;width:100%;box-shadow:var(--primary-button-shadow);border:0;justify-content:center;align-items:center;gap:12px;margin-top:12px;padding:15px 18px;font-family:inherit;font-size:21px;font-weight:900;text-decoration:none;transition:filter .14s,transform .14s,box-shadow .14s;display:flex}.customize-save-button:disabled{cursor:wait;opacity:.72}.customize-request-error{color:#a63838;text-align:center;font-weight:750}.customize-save-button:hover{filter:brightness(1.07);transform:translateY(-1px)}.customize-save-button:active{box-shadow:var(--primary-button-shadow-active);transform:translateY(2px)}.customize-options-panel{background:#fffef8f7;padding:22px}.customize-title{margin-bottom:16px;position:relative}.customize-title .profile-eyebrow{color:#6885ad;letter-spacing:.16em;margin-bottom:2px}.customize-title h1{color:#092976;letter-spacing:-.035em;width:fit-content;margin:0;font-size:clamp(38px,4vw,56px);line-height:1;position:relative}.customize-title h1:after{content:"";background:#ffcb43;border-radius:8px;width:7px;height:15px;position:absolute;top:2px;right:-22px;transform:rotate(28deg);box-shadow:13px 12px 0 -1px #ffcb43}.customize-tabs{border:0;grid-template-columns:repeat(8,minmax(58px,1fr));gap:8px;padding:0 0 18px;display:grid}.customize-tabs button{--tab:#6ca8f4;background:color-mix(in srgb, var(--tab) 22%, white);color:#173d77;min-width:0;height:46px;font:inherit;white-space:nowrap;cursor:pointer;box-shadow:0 3px 0 color-mix(in srgb, var(--tab) 34%, #a99b82);border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:7px;padding:0 10px;font-size:11px;font-weight:900;transition:transform .14s,filter .14s,box-shadow .14s;display:inline-flex}.customize-category-icon{fill:currentColor;width:22px;height:22px;color:var(--tab);flex:0 0 22px}.customize-tabs button.active{border-color:color-mix(in srgb, var(--tab) 62%, #fff2b7);background:var(--tab);color:#fff;box-shadow:0 5px 0 color-mix(in srgb, var(--tab) 64%, #66594b), 0 2px 0 #ffffff73 inset;transform:translateY(-1px)}.customize-tabs button.active .customize-category-icon{color:#fff}.customize-tabs button:hover{filter:brightness(1.04)}.customize-tabs .customize-tab-clothes,.customize-tabs .customize-tab-pet{--tab:#f17b79}.customize-tabs .customize-tab-head,.customize-tabs .customize-tab-premium{--tab:#efb638}.customize-tabs .customize-tab-bag{--tab:#62b66c}.customize-tabs .customize-tab-room{--tab:#a787d6}.customize-tabs .customize-tab-effect{--tab:#64b8d2}.customize-category-heading{justify-content:space-between;align-items:center;gap:12px;margin:4px 0 12px;display:flex}.customize-category-heading h2{color:#123b78;align-items:center;gap:9px;margin:0;font-size:23px;display:flex}.customize-category-heading .customize-category-icon{color:#efb638}.premium-active-note{color:#76580c;background:#f4e6ba;border-radius:16px;padding:6px 10px;font-size:11px;font-weight:900}.customization-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;display:grid}.customization-card{color:#29466f;min-width:0;font:inherit;cursor:pointer;background:#fff9e9;border:2px solid #0000;border-radius:18px;grid-template-rows:118px auto minmax(14px,auto);gap:5px;padding:9px;transition:transform .14s,box-shadow .14s;display:grid;position:relative;overflow:hidden;box-shadow:0 4px #e7dcc4,0 7px 14px #705b3414}.customization-card[data-tooltip]{overflow:visible}.customization-card:hover:not([aria-disabled=true]){transform:translateY(-2px);box-shadow:0 6px #d8caa8,0 10px 18px #705b341c}.customization-card.selected{background:#eaf4ff;border-color:#3d86ee;padding:9px;box-shadow:0 4px #2e6fc9,0 8px 16px #347bf126}.customization-card.locked{cursor:not-allowed;filter:grayscale(.72);opacity:.58}.customization-thumbnail{color:#8290a3;background:#f0eee7;border-radius:13px;place-items:center;min-width:0;font-size:34px;display:grid;overflow:hidden}.customization-thumbnail img{object-fit:contain;width:100%;height:100%}.customization-thumbnail .alpha-cropped-preview{max-width:100%;max-height:100%}.customization-name{color:#173d77;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:900;overflow:hidden}.selection-status,.lock-status{color:#5e718d;text-align:center;font-size:10px;line-height:1.25}.customization-card.selected .selection-status{color:#2368bd;font-weight:900}.customization-check{z-index:3;color:#fff;background:#3d86ee;border-radius:50%;place-items:center;width:24px;height:24px;font-size:15px;font-weight:900;display:grid;position:absolute;top:6px;right:6px;box-shadow:0 2px 5px #173d7733}.customize-helper{color:#436887;text-align:center;background:#e7f4fa;border-radius:16px;margin:16px 0 0;padding:11px 14px;font-size:13px;font-weight:800}.customize-helper span{color:#e9a618;margin-right:8px}.customize-page :is(a,button):focus-visible{outline-offset:4px;outline:3px solid #174e91}.customize-page [data-tooltip]:after{max-width:min(210px,60vw);display:none}.customize-page [data-tooltip]:hover:after,.customize-page [data-tooltip]:focus:after{display:block}@media (width<=1050px){.customize-layout{grid-template-columns:minmax(300px,.82fr) minmax(430px,1.18fr)}.customize-tabs{grid-template-columns:repeat(4,minmax(64px,1fr))}.customization-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){main:has(>.customize-page){padding:20px 16px}.customize-layout{grid-template-columns:minmax(0,1fr)}.customize-preview-panel{width:min(100%,560px);margin-inline:auto}.customize-options-panel{padding:18px}}@media (width<=470px){.customize-tabs{scrollbar-width:thin;padding:3px 2px 13px;display:flex;overflow-x:auto}.customize-tabs button{flex:none;min-width:94px}.customization-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customization-card{grid-template-rows:108px auto minmax(14px,auto)}.customize-title h1{font-size:40px}}:root{--primary-button-background:linear-gradient(#5b9dff, #3279ee);--primary-button-radius:28px;--primary-button-shadow:0 4px 0 #185bc3, 0 2px 0 #ffffff73 inset;--primary-button-shadow-active:0 2px 0 #185bc3;color:#172033;background:#f5f7fa;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}.app-header{background:#fff;border-bottom:1px solid #dce2ea;justify-content:space-between;align-items:center;gap:2rem;padding:1rem 1.5rem;display:flex}.app-header.authenticated{z-index:95;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #ffffffdf;border-radius:19px;width:min(1360px,100% - 32px);margin:10px auto 0;padding:11px 18px;position:sticky;top:10px;box-shadow:0 8px 24px #3154751a}.app-header nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.app-header nav a{color:#45607f;border-radius:11px;padding:.55rem .75rem;font-weight:750;text-decoration:none}.app-header nav a:hover{color:#17457e;background:#edf4fd}.app-logout{color:#fff;font:inherit;cursor:pointer;background:linear-gradient(#ff806b,#f25f4b);border:1px solid #e06553;border-radius:11px;padding:.58rem .9rem;font-weight:850;box-shadow:0 3px #c94737,inset 0 1px #fff6}.app-logout:hover{filter:brightness(1.05)}.app-header :is(a,button):focus-visible{outline-offset:3px;outline:3px solid #2873c5}.auth-loading{color:#52627a;place-items:center;min-height:45vh;font-weight:700;display:grid}.app-home-link{color:#172033;font-weight:700;text-decoration:none}main{max-width:1100px;margin:auto;padding:1.5rem}.student-profile{gap:1rem;width:min(1180px,100vw - 3rem);margin-left:50%;display:grid;transform:translate(-50%)}.profile-hero{grid-template-columns:minmax(340px,430px) minmax(420px,1fr);align-items:stretch;gap:1rem;display:grid}.avatar-panel,.profile-summary,.achievements-panel{background:#fff;border:1px solid #dce2ea;border-radius:20px;box-shadow:0 10px 30px #20304e14}.avatar-panel{padding:.65rem}.avatar-scene{aspect-ratio:1;background:#e9e6df;border-radius:14px;width:100%;position:relative;overflow:hidden}.room-canvas{aspect-ratio:1326/1187;width:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.room-background{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.room-decoration{z-index:10;object-fit:contain;width:12%;height:auto;position:absolute}.room-decoration-1{top:10%;left:42%}.room-decoration-2{top:10%;left:53%}.room-decoration-3{top:10%;left:64%}.trophy-cup{z-index:12;object-fit:contain;height:auto;position:absolute;transform:translate(-50%,-100%)}.avatar-canvas{z-index:20;aspect-ratio:1024/1536;width:56%;position:absolute;bottom:2%;left:27%}.avatar-canvas img,.avatar-canvas canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.avatar-canvas .shoulder-bag-front{transform:translateY(1.5%)}.customize-button{color:#fff;width:100%;font:inherit;text-align:center;background:#183f79;border:0;border-radius:12px;margin-top:.6rem;padding:.7rem 1rem;font-weight:700;text-decoration:none;display:block}.customize-button:hover{background:#123462}.profile-summary{padding:clamp(1.15rem,2.3vw,1.8rem)}.profile-eyebrow{color:#52709a;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.8rem;font-weight:800}.profile-summary h1{color:#102b55;margin:0;font-size:clamp(2.1rem,4vw,3.25rem);line-height:1}.profile-status{color:#637086;margin:.5rem 0 1.15rem}.profile-summary h2{color:#172f55;margin:0 0 .7rem}.progress-panel{gap:.6rem;display:grid}.progress-item{background:#f9fafc;border:1px solid #e1e7ef;border-radius:14px;grid-template-columns:50px minmax(0,1fr) 50px;align-items:center;gap:.7rem;padding:.65rem .75rem;display:grid}.progress-content{min-width:0}.progress-achievement-icon{aspect-ratio:1;object-fit:contain;width:50px}.progress-achievement-next{opacity:.68}.progress-heading{color:#18345f;justify-content:space-between;gap:1rem;display:flex}.progress-heading span{color:#52627a;font-variant-numeric:tabular-nums}.progress-track{background:#dfe5ec;border-radius:99px;height:8px;margin:.45rem 0 .3rem;overflow:hidden}.progress-track span{border-radius:inherit;background:#2d6fc0;height:100%;display:block}.progress-item small{color:#637086}.achievements-panel{padding:.9rem 1rem 1rem}.section-heading{color:#172f55;align-items:center;gap:.55rem;margin-bottom:.7rem;display:flex}.section-heading>span{color:#e8a51c;font-size:1.45rem}.section-heading h2{margin:0}.achievement-groups{grid-template-columns:1.5fr 1.25fr .9fr 1fr;gap:.7rem;display:grid}.achievement-groups:not(:has(.achievement-group-hidden)){grid-template-columns:1.5fr 1.25fr .9fr}.achievement-group{background:#fbfcfd;border:1px solid #e1e7ef;border-radius:14px;min-width:0;padding:.65rem}.achievement-group h3{color:#263c61;text-align:center;margin:0 0 .45rem;font-size:.9rem}.achievement-list{grid-template-columns:repeat(auto-fit,minmax(50px,1fr));gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.achievement-group-homework .achievement-list{grid-template-columns:repeat(6,minmax(50px,1fr))}.achievement-group-streak .achievement-list{grid-template-columns:repeat(5,minmax(50px,1fr))}.achievement-group-test .achievement-list{grid-template-columns:repeat(3,minmax(50px,1fr))}.achievement-list li{text-align:center;color:#33435e;align-content:start;gap:.2rem;min-width:0;font-size:.65rem;display:grid}.achievement-list img{aspect-ratio:1;object-fit:contain;width:100%}.achievement-list .locked{opacity:.62}.achievement-list li,.unlocked-achievement-icons li{position:relative}.achievement-fallback{aspect-ratio:1;color:#d59a21;place-items:center;font-size:2rem;display:grid}.achievement-group-hidden .achievement-list{grid-template-columns:repeat(auto-fill,minmax(54px,64px));justify-content:center}.achievement-group-hidden .achievement-list img,.achievement-group-hidden .achievement-fallback{width:min(100%,64px);margin-inline:auto}[data-tooltip]:after{z-index:80;color:#fff;content:attr(data-tooltip);opacity:0;pointer-events:none;text-align:left;background:#172033;border-radius:8px;width:max-content;max-width:240px;padding:.5rem .6rem;font-size:.72rem;font-weight:500;line-height:1.35;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + .45rem);left:50%;transform:translate(-50%,.25rem)}[data-tooltip]:hover:after,[data-tooltip]:focus:after,[data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}.achievement-tooltip-host{position:relative}.achievement-tooltip{z-index:80;color:#fff;opacity:0;pointer-events:none;text-align:left;background:#172033;border-radius:8px;gap:.15rem;width:max-content;max-width:min(260px,70vw);padding:.55rem .65rem;font-size:.72rem;line-height:1.35;transition:opacity .15s,transform .15s;display:grid;position:absolute;bottom:calc(100% + .45rem);left:50%;transform:translate(-50%,.25rem)}.achievement-tooltip strong{font-weight:800}.achievement-tooltip>span{font-weight:500}.achievement-tooltip-host:hover>.achievement-tooltip,.achievement-tooltip-host:focus>.achievement-tooltip,.achievement-tooltip-host:focus-visible>.achievement-tooltip{opacity:1;transform:translate(-50%)}@media (width<=820px){.profile-hero,.achievement-groups{grid-template-columns:1fr}.avatar-panel{width:100%;max-width:560px;margin-inline:auto}.achievement-group-homework .achievement-list,.achievement-group-streak .achievement-list,.achievement-group-test .achievement-list{grid-template-columns:repeat(auto-fit,minmax(58px,1fr))}}@media (width<=700px){.app-header{flex-direction:column;align-items:flex-start;gap:.5rem}.app-header.authenticated{width:calc(100% - 20px);position:relative;top:0}.app-header nav{justify-content:flex-start;width:100%}main{padding:1rem}}@media (width<=560px){.student-profile{width:calc(100vw - 2rem)}}@media (width<=430px){.progress-item{grid-template-columns:42px minmax(0,1fr);gap:.55rem}.progress-achievement-icon{width:42px}.progress-achievement-next{display:none}.progress-heading{flex-direction:column;align-items:flex-start;gap:.15rem}}.login-modal form button{color:#fff;min-width:0;font:inherit;cursor:pointer;background:#183f79;border:1px solid #183f79;border-radius:12px;padding:.75rem 1rem;font-weight:750}.unlocked-achievement-icons{flex-wrap:wrap;gap:.3rem;min-height:30px;margin:.65rem .2rem 0;padding:0;list-style:none;display:flex}.unlocked-achievement-icons li{width:30px;height:30px}.unlocked-achievement-icons img{object-fit:contain;width:100%;height:100%}.login-modal-backdrop{z-index:100;background:#111f3494;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.login-modal{background:#fff;border-radius:18px;width:min(100%,400px);padding:1.5rem;position:relative;box-shadow:0 24px 70px #08132647}.login-modal h2{color:#102b55;margin:0 0 1.2rem}.login-modal-close{color:#52627a;cursor:pointer;background:0 0;border:0;width:2rem;height:2rem;font-size:1.5rem;position:absolute;top:.7rem;right:.8rem}.login-modal form{gap:1rem;display:grid}.login-modal label{color:#33435e;gap:.4rem;font-size:.85rem;font-weight:750;display:grid}.login-modal input{color:#172033;width:100%;font:inherit;border:1px solid #cbd5e2;border-radius:10px;padding:.75rem}.login-modal input:focus{outline-offset:1px;outline:2px solid #8db4e2}.login-error{color:#a12626;margin:0;font-size:.85rem}.login-success{color:#28713f;margin:0;font-size:.85rem}.demo-credentials{color:#52627a;background:#f3f6fa;border-radius:10px;margin-top:1rem;padding:.8rem;font-size:.75rem}.demo-credentials strong{color:#33435e}.demo-credentials ul{flex-wrap:wrap;gap:.3rem .75rem;margin:.45rem 0 0;padding:0;list-style:none;display:flex}.unlock-backdrop{z-index:120;background:#111f349e;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.unlock-dialog{background:#fff;border-radius:20px;width:min(100%,540px);max-height:calc(100vh - 2rem);padding:1.5rem;animation:.35s ease-out unlock-reveal;position:relative;overflow:auto;box-shadow:0 24px 70px #0813264d}.unlock-dialog h2{color:#102b55;margin:0 0 1rem}.unlock-sparkles{color:#e8a51c;font-size:1.3rem;position:absolute;top:1rem;right:1.25rem}.unlock-achievements{gap:.7rem;display:grid}.unlock-achievements article{background:#f6f8fb;border-radius:12px;grid-template-columns:68px 1fr;align-items:center;gap:.8rem;padding:.65rem;display:grid}.unlock-achievements img,.unlock-achievements article>span{text-align:center;filter:drop-shadow(0 0 8px #e8a51c66);width:68px;font-size:2.5rem}.unlock-achievements p{color:#637086;margin:.25rem 0 0;font-size:.82rem}.unlock-rewards{margin-top:1rem}.unlock-rewards ul{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.5rem;margin:.5rem 0;padding:0;list-style:none;display:grid}.unlock-rewards li{color:#785817;text-align:center;text-transform:capitalize;background:#fff3d7;border-radius:10px;justify-items:center;gap:.25rem;padding:.5rem;font-size:.72rem;display:grid}.reward-preview-image{background:#ffffff8c;border-radius:8px;place-items:center;width:96px;height:96px;display:grid;overflow:hidden}.unlock-rewards img{object-fit:contain;width:88px;height:88px}.alpha-cropped-preview{object-fit:contain;width:auto;height:auto;display:block}.unlock-actions{justify-content:flex-end;gap:.6rem;margin-top:1.2rem;display:flex}.unlock-actions a,.unlock-actions button{color:#fff;font:inherit;cursor:pointer;background:#183f79;border:1px solid #183f79;border-radius:10px;padding:.65rem .9rem;font-weight:700;text-decoration:none}.unlock-actions button{color:#183f79;background:#fff}@keyframes unlock-reveal{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.unlock-dialog,[data-tooltip]:after,.achievement-tooltip{transition:none;animation:none}}
