@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/224e262ef877bfa4-s.0mo8vqgr8yagc.woff2?dpl=dpl_333Yssbc8jjMDz1rakFMsjCG1bZG)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/7f11d98043fdedc9-s.0r4w1y.tjq0ay.woff2?dpl=dpl_333Yssbc8jjMDz1rakFMsjCG1bZG)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/e6d00ff86ef9e699-s.0lcb62h0-.jh3.woff2?dpl=dpl_333Yssbc8jjMDz1rakFMsjCG1bZG)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/d8cb5ab3660140cd-s.0ri_id_kcagyz.woff2?dpl=dpl_333Yssbc8jjMDz1rakFMsjCG1bZG)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/07454f8ad8aaac57-s.p.0tqkxa-w3pk~c.woff2?dpl=dpl_333Yssbc8jjMDz1rakFMsjCG1bZG)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Fallback;src:local(Arial);ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.0%;size-adjust:101.39%}.nunito_2daf454e-module__xZ8DQq__className{font-family:Nunito,Nunito Fallback;font-style:normal}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#1f93ff;--accent:#ffd84d;--info:#2ec4b6;--danger:#e7358a;--progress-poor:#e7358a;--progress-low:#ff6a3d;--progress-moderate:#ffb30f;--progress-good:#1f93ff;--progress-excellent:#149b74;--on-primary:#fff;--on-info:#fff;--on-accent:#15245c;--on-danger:#fff;--bg-default:#f7f8fe;--bg-subtle:#eef1ff;--bg-muted:#eef1ff;--surface-default:#fff;--surface-raised:#fff;--surface-tooltip:#15245c;--text-primary:#15245c;--text-secondary:#66749e;--text-inverse:#fff;--text-disabled:#9ba7cc;--text-color:#15245c;--icon-default:#15245c;--icon-muted:#66749e;--icon-inverse:#fff;--border-default:#d8def3;--border-strong:#c2cbeb;--border-color:#d8def3;--disabled-bg:#e8ebf4;--disabled-border:#d4d9ea;--state-success-main:#149b74;--state-success-bg:#e8fbf2;--state-success-border:#97e2cc;--state-error-main:#e7358a;--state-error-bg:#ffeaf3;--state-error-border:#f8b8d5;--state-error-dark:#c81e70;--state-warning-main:#ffd84d;--state-warning-bg:#fff8de;--state-warning-border:#ffe08a;--state-info-main:#2ec4b6;--state-info-bg:#e8faf8;--state-info-border:#8be1d8;--interaction-pressed-overlay:#15245c14;--overlay-scrim:#15245c73;--overlay-sheen:#ffffff47;--overlay-white-subtle:#ffffff4d;--blur-overlay:4px;--shadow-color:#15245c2e;--shadow-neutral-subtle:#0000000a;--shadow-neutral:#15245c1f;--shadow-neutral-medium:#00000026;--shadow-neutral-strong:#15245c33;--shadow-error:#e7358a1f;--primary-overlay-subtle:#1f93ff05;--primary-overlay-light:#1f93ff0a;--primary-overlay-soft:#1f93ff0d;--primary-overlay-inset:#1f93ff0f;--primary-overlay-hover:#1f93ff14;--primary-overlay-border:#1f93ff1a;--primary-overlay-active:#1f93ff1f;--primary-shadow-focus:#1f93ff33;--primary-shadow:#1f93ff40;--primary-shadow-strong:#1f93ff4d;--success-shadow:#149b7440;--success-shadow-strong:#149b744d;--success-shadow-deep:#149b7414;--info-shadow:#2ec4b64d;--muted-overlay:#66749e1a;--slate-overlay:#9ba7cc2e;--opacity-icon-subtle:.4;--opacity-disabled:.5;--opacity-disabled-strong:.6;--opacity-subtle:.7;--shadow-sm:0 2px 4px var(--shadow-neutral-subtle);--shadow-md:0 4px 12px var(--primary-shadow-focus);--shadow-lg:0 8px 16px var(--shadow-neutral);--shadow-xl:0 12px 20px var(--primary-shadow-strong);--shadow-xxl:0 24px 48px var(--shadow-neutral-strong);--shadow-card:0 2px 4px var(--shadow-neutral-subtle);--shadow-button:0 4px 12px var(--primary-shadow-focus);--shadow-modal:0 24px 48px var(--shadow-neutral-strong);--spacing-xxs:2px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--spacing-xxl:32px;--spacing-xxxl:40px;--spacing-jumbo:48px;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--radius-xxl:28px;--radius-pill:999px;--font-family-regular:"Nunito-Regular", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-medium:"Nunito-SemiBold", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-bold:"Nunito-Bold", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:13px;--font-size-sm:15px;--font-size-md:17px;--font-size-lg:20px;--font-size-xl:26px;--font-size-xxl:32px;--line-height-xs:18px;--line-height-sm:22px;--line-height-md:26px;--line-height-lg:30px;--line-height-xl:34px;--line-height-xxl:42px;--letter-spacing-tight:.05em;--letter-spacing-normal:.08em;--letter-spacing-wide:.1em;--letter-spacing-extra:.15em;--motion-duration-instant:0s;--motion-duration-fast:.12s;--motion-duration-normal:.2s;--motion-duration-slow:.28s;--motion-easing-default:ease;--motion-easing-press:cubic-bezier(.14, .84, .28, 1);--motion-translate-subtle:-1px;--motion-translate-modal-start:-20px;--z-base:0;--z-header:10;--z-floating:20;--z-overlay:30;--z-modal:40;--z-toast:50;--breakpoint-sm:640px;--breakpoint-md:1024px;--size-button-sm:44px;--size-button-md:52px;--size-button-lg:60px;--size-input-md:52px;--size-chip-default:48px;--size-icon-sm:16px;--size-icon-md:20px;--size-icon-lg:24px;--size-icon-xl:32px;--size-icon-xxl:40px;--size-avatar-sm:32px;--size-avatar-md:44px;--size-avatar-lg:56px;--size-progress-bar-height:16px;--size-progress-ring-stroke:8px;--size-checkbox:18px;--size-success-badge:64px;--size-spinner:14px;--size-tooltip-min-width:260px;--size-input-field-width:320px;--size-modal-width-percent:90%;--size-modal-height-percent:90vh;--size-tooltip-arrow-outer:8px;--size-tooltip-arrow-inner:7px;--layout-settings-offset:220px;--layout-profile-label-width:160px;--layout-profile-divider-offset:178px;--grid-min-card-width:200px;--size-border-thin:1px;--size-border-normal:2px;--size-border-thick:3px;--size-focus-ring:3px;--max-width-xs:440px;--max-width-sm:500px;--max-width-md:520px;--max-width-lg:560px;--max-width-xl:720px;--gradient-primary:linear-gradient(135deg, var(--primary), var(--primary-dark));--gradient-neutral:linear-gradient(135deg, var(--bg-default), var(--bg-subtle));--gradient-success:linear-gradient(135deg, var(--state-success-main), var(--primary));--gradient-overlay:linear-gradient(135deg, var(--primary-overlay-soft), var(--primary-overlay-hover));--gradient-info:linear-gradient(135deg, var(--info), var(--accent));--gradient-radial-overlay:radial-gradient(circle, var(--primary-overlay-border) 0%, transparent 70%);--sidebar-width:240px;--primary-dark:#1878d9;--text-muted:#66749e;font-family:var(--font-family-regular)}*,:before,:after{box-sizing:border-box}html,body{background:radial-gradient(circle at top left, #1f93ff29, transparent 28%), radial-gradient(circle at top right, #ffd84d33, transparent 24%), linear-gradient(180deg, #eef1ff 0%, var(--bg-default) 46%, #fff 100%);height:100%;color:var(--text-primary);margin:0;padding:0;overflow:hidden}body{isolation:isolate;height:100dvh;display:flex;position:relative}.app-root{z-index:1;flex:1;width:100%;min-height:100vh;display:flex;position:relative}.background-orb{filter:blur(10px);opacity:.9;pointer-events:none;z-index:-1;border-radius:999px;position:fixed}.background-orb--blue{background:#1f93ff2e;width:280px;height:280px;top:8%;left:-8%}.background-orb--yellow{background:#ffd84d38;width:260px;height:260px;bottom:10%;right:-6%}.background-orb--teal{background:#2ec4b638;width:120px;height:120px;top:18%;right:12%}a{color:inherit;text-decoration:none}main{flex:1}button,input,select{font-family:inherit}.app-shell{width:100%;height:100dvh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--surface-default);border-right:var(--size-border-thin) solid var(--border-default);height:100dvh;padding:var(--spacing-lg) var(--spacing-lg);gap:var(--spacing-lg);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-header{gap:var(--spacing-xs);flex-direction:column;display:flex}.sidebar-brand{align-items:center;gap:var(--spacing-sm);font-family:var(--font-family-medium);min-width:0;display:inline-flex}.sidebar-brand-icon{flex-shrink:0;width:2.5rem;height:2.5rem}.sidebar-brand-name{color:var(--primary);font-family:var(--font-family-bold);font-size:var(--font-size-lg);line-height:var(--line-height-sm);white-space:nowrap}.sidebar-nav{gap:var(--spacing-sm);margin-top:var(--spacing-sm);font-size:var(--font-size-md);line-height:var(--line-height-md);flex-direction:column;flex:1;min-height:0;padding:0;display:flex;position:relative}.sidebar-nav a{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);transition:background var(--motion-duration-normal) var(--motion-easing-default), color var(--motion-duration-normal) var(--motion-easing-default);display:block}.sidebar-nav a:hover{background:var(--state-success-bg)}.sidebar-nav a.active{background:var(--state-success-bg);color:var(--primary)}.tooltip-warning{background:var(--state-warning-bg);color:var(--state-warning-main);border:var(--size-border-thin) solid var(--state-warning-border);gap:var(--spacing-md);align-items:flex-start}.tooltip-warning:after{content:"";top:calc(var(--spacing-xs) * -1.5);border-left:var(--size-tooltip-arrow-outer) solid transparent;border-right:var(--size-tooltip-arrow-outer) solid transparent;border-bottom:var(--size-tooltip-arrow-outer) solid var(--state-warning-border);width:0;height:0;position:absolute;left:50%;transform:translate(-50%)}.tooltip-warning:before{content:"";top:calc(var(--spacing-xs) * -1.25);border-left:var(--size-tooltip-arrow-inner) solid transparent;border-right:var(--size-tooltip-arrow-inner) solid transparent;border-bottom:var(--size-tooltip-arrow-inner) solid var(--state-warning-bg);width:0;height:0;position:absolute;left:50%;transform:translate(-50%)}.tooltip-icon{font-size:var(--font-size-lg);margin-top:var(--spacing-xxs);flex:none;line-height:1}.tooltip-content{flex:auto}.delete-confirm-name{color:var(--state-error-main)}.danger-box{align-items:flex-start;gap:var(--spacing-md);background:var(--state-error-bg);color:var(--state-error-main);border:var(--size-border-thin) solid var(--state-error-border);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-sm);display:flex}.warning-icon{font-size:var(--font-size-lg);margin-top:var(--spacing-xxs);flex:none;line-height:1}.warning-content{flex:auto}.sidebar-section{margin-top:var(--spacing-lg);text-transform:uppercase;font-size:var(--font-size-xs);color:var(--text-secondary);letter-spacing:var(--letter-spacing-normal)}.sidebar-empty{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.sidebar-divider{margin:var(--spacing-md) 0;height:var(--size-border-thin);background:var(--border-default);border-radius:var(--radius-pill);width:100%}.sidebar-account-section{border-top:var(--size-border-thin) solid var(--border-default);padding-top:var(--spacing-lg);margin-top:auto;position:relative}.sidebar-account-trigger{align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-sm);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--motion-duration-normal) var(--motion-easing-default);background:0 0;border:none;display:flex}.sidebar-account-trigger:hover{background:var(--primary-overlay-hover)}.sidebar-account-avatar{width:var(--size-avatar-md);height:var(--size-avatar-md);background:var(--gradient-primary);color:var(--text-inverse);font-size:var(--font-size-sm);font-family:var(--font-family-medium);border:var(--size-border-thin) solid var(--border-default);box-shadow:var(--shadow-md);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-account-details{gap:var(--spacing-xxs);text-align:left;flex-direction:column;display:flex;overflow:hidden}.sidebar-account-details strong{font-size:var(--font-size-sm);font-family:var(--font-family-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-account-details span{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-account-menu{bottom:100%;left:var(--spacing-sm);right:var(--spacing-sm);margin-bottom:var(--spacing-sm);background:var(--surface-default);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);box-shadow:var(--shadow-lg);padding:var(--spacing-sm);gap:var(--spacing-xxs);z-index:var(--z-modal);flex-direction:column;display:flex;position:absolute}.sidebar-account-menu button{width:100%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);text-align:left;cursor:pointer;color:var(--text-primary);font-family:var(--font-family-medium);transition:background var(--motion-duration-normal) var(--motion-easing-default);background:0 0;border:none}.sidebar-account-menu button:hover{background:var(--state-success-bg);color:var(--primary)}.app-content{flex-direction:column;flex:1;height:100dvh;min-height:0;display:flex;position:relative}.app-main{padding:var(--spacing-jumbo);scroll-behavior:smooth;flex:1;min-width:0;min-height:0;overflow:hidden auto}.anchor-target{scroll-margin-top:var(--spacing-xl)}body.has-modal-open,body.has-modal-open .app-main{overflow:hidden!important}.settings-tabs{gap:var(--spacing-xl);flex-direction:column;display:flex}.settings-tab-list{gap:var(--spacing-jumbo);border-bottom:var(--size-border-thin) solid var(--border-default);padding-bottom:var(--spacing-md);display:flex}.settings-tab-button{padding:0 0 var(--spacing-md);font-family:var(--font-family-medium);font-size:var(--font-size-md);color:var(--text-secondary);cursor:pointer;transition:color var(--motion-duration-normal) var(--motion-easing-default);background:0 0;border:none;position:relative}.settings-tab-button:hover{color:var(--text-primary)}.settings-tab-button:after{content:"";width:0;height:var(--size-border-thick);border-radius:var(--radius-pill);background:var(--primary);transition:width var(--motion-duration-normal) var(--motion-easing-default);position:absolute;bottom:0;left:0}.settings-tab-button.active{color:var(--primary)}.settings-tab-button.active:after{width:100%}.settings-tab-panel{padding:var(--spacing-xl) 0 0 0;box-shadow:none;justify-content:flex-start;align-items:center;gap:var(--spacing-xl);padding-top:var(--spacing-xl);min-height:calc(100vh - var(--layout-settings-offset));background:0 0;border:none;border-radius:0;flex-direction:column;display:flex}.settings-tab-panels{flex-direction:column;display:flex}.settings-tab-panel .profile-section-card{width:100%;max-width:var(--max-width-xl);display:block}.settings-tab-panel.hidden{display:none}.page-section{background:var(--surface-default);padding:var(--spacing-xl);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);overflow-wrap:break-word;min-width:0;max-width:100%;overflow-x:hidden}.students-manager{gap:var(--spacing-xl);flex-direction:column;display:flex}.students-header-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.page-header{margin-bottom:var(--spacing-xl)}.page-header p{margin:var(--spacing-sm) 0 0 0;color:var(--text-secondary)}.page-section h2{margin-top:0;margin-bottom:var(--spacing-lg)}.empty-state{color:var(--text-secondary)}.empty-state-card{background:var(--gradient-neutral);border:1px dashed var(--border-default);border-radius:var(--radius-lg);padding:var(--spacing-xxxl) var(--spacing-jumbo);text-align:center;align-items:center;gap:var(--spacing-xl);margin:var(--spacing-jumbo) 0;flex-direction:column;display:flex}.empty-state-card h3{font-size:var(--font-size-xl);font-family:var(--font-family-medium);color:var(--text-primary);margin:0}.empty-state-card p{font-size:var(--font-size-md);color:var(--text-secondary);max-width:var(--max-width-lg);line-height:var(--line-height-lg);margin:0}.empty-state-card a{color:var(--primary);font-family:var(--font-family-medium);align-items:center;gap:var(--spacing-xs);transition:color var(--motion-duration-normal) var(--motion-easing-default);text-decoration:none;display:inline-flex}.empty-state-card a:hover{color:var(--primary-dark);text-decoration:underline}.empty-state-card button{margin-top:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-lg);background:var(--gradient-primary);color:var(--text-inverse);font-family:var(--font-family-medium);font-size:var(--font-size-md);cursor:pointer;box-shadow:var(--shadow-lg) var(--primary-shadow);transition:all var(--motion-duration-normal) var(--motion-easing-default);border:none}.empty-state-card button:hover{transform:translateY(var(--motion-translate-subtle));box-shadow:var(--shadow-xl) var(--primary-shadow-strong)}.student-card-name{font-size:var(--font-size-lg);font-family:var(--font-family-medium);color:var(--text-primary)}.students-cards-list{gap:var(--spacing-lg);margin-top:var(--spacing-xl);flex-direction:column;display:flex}.student-card-horizontal{align-items:flex-start;gap:var(--spacing-lg);background:var(--surface-default);border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);display:flex}.student-avatar{width:var(--size-avatar-lg);height:var(--size-avatar-lg);min-width:var(--size-avatar-lg);background:var(--gradient-primary);color:var(--text-inverse);font-size:var(--font-size-lg);font-family:var(--font-family-medium);border-radius:50%;justify-content:center;align-items:center;display:flex}.student-card-content{gap:var(--spacing-md);flex-direction:column;flex:1;display:flex}.student-card-main{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);display:flex}.student-card-info{gap:var(--spacing-xxs);flex-direction:column;display:flex}.student-card-grade{font-size:var(--font-size-sm);color:var(--text-secondary)}.student-card-actions{gap:var(--spacing-sm);align-items:center;display:flex}.student-activation-code{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:var(--size-border-thin) solid var(--border-color);display:flex}.activation-code-display{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.activation-code-label{font-size:var(--font-size-sm);color:var(--text-muted)}.activation-code-value-button{font-family:SF Mono,Menlo,Monaco,monospace;font-size:var(--font-size-md);font-family:var(--font-family-medium);color:var(--text-color);letter-spacing:var(--letter-spacing-wide);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;transition:all .2s;position:relative}.activation-code-value-button:not(:disabled):hover{background:var(--state-success-bg);color:var(--primary)}.activation-code-value-button:not(:disabled):active{background:var(--primary-overlay-active)}.activation-code-value-button:disabled{cursor:default;opacity:var(--opacity-disabled-strong)}.copied-tooltip{z-index:var(--z-toast);background:var(--state-success-main);color:var(--text-inverse);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-family:var(--font-family-medium);pointer-events:none;box-shadow:var(--shadow-lg) var(--success-shadow-strong);animation:2s ease-in-out forwards tooltipFadeInOut;position:fixed;transform:translate(-50%,-120%)}@keyframes tooltipFadeInOut{0%{opacity:0;transform:translate(-50%,-100%)}10%,90%{opacity:1;transform:translate(-50%,-120%)}to{opacity:0;transform:translate(-50%,-140%)}}.copied-message{font-size:var(--font-size-xs);color:var(--state-success-main);background:var(--state-success-bg);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-xs);font-family:var(--font-family-medium);animation:2s ease-in-out fadeInOut}.activation-code-status{font-size:var(--font-size-xs);font-family:var(--font-family-medium);padding:var(--spacing-xxs) var(--spacing-sm);border-radius:var(--radius-pill);text-transform:uppercase}.status-active{background:var(--state-success-bg);color:var(--state-success-main)}.status-expired{background:var(--state-error-bg);color:var(--state-error-main)}.status-redeemed{background:var(--muted-overlay);color:var(--text-secondary)}.btn-text{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--primary);font-family:var(--font-family-medium);cursor:pointer;transition:all var(--motion-duration-normal) var(--motion-easing-default);font-size:var(--font-size-sm);background:0 0;border:none}.btn-text:hover:not(:disabled){background:var(--state-success-bg)}.btn-text:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.btn-primary{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);background:var(--gradient-primary);color:var(--text-inverse);font-family:var(--font-family-medium);cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--motion-duration-normal) var(--motion-easing-default);font-size:var(--font-size-sm);border:none}.btn-primary:hover{transform:translateY(var(--motion-translate-subtle));box-shadow:var(--shadow-lg) var(--primary-shadow-strong)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;box-shadow:var(--shadow-sm) var(--primary-overlay-border);transform:none}.btn-primary:disabled:hover{box-shadow:var(--shadow-sm) var(--primary-overlay-border);transform:none}.btn-secondary{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);background:var(--surface-default);color:var(--text-primary);font-family:var(--font-family-medium);cursor:pointer;transition:all var(--motion-duration-normal) var(--motion-easing-default);font-size:var(--font-size-sm);line-height:var(--line-height-md);justify-content:center;align-items:center;display:flex}.btn-secondary:hover:not(:disabled){background:var(--bg-default);border-color:var(--text-secondary);transform:translateY(var(--motion-translate-subtle))}.btn-secondary:active:not(:disabled){transform:translateY(0)}.btn-secondary:disabled{opacity:var(--opacity-disabled-strong);cursor:not-allowed}.btn-small{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);height:var(--size-button-sm)}.btn-danger{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--state-error-main);background:var(--state-error-main);color:var(--text-inverse);font-family:var(--font-family-medium);cursor:pointer;transition:all var(--motion-duration-normal) var(--motion-easing-default);font-size:var(--font-size-sm)}.btn-danger:hover:not(:disabled){background:var(--state-error-dark,#c64545);border-color:var(--state-error-dark,#c64545);transform:translateY(var(--motion-translate-subtle))}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-danger:disabled{opacity:var(--opacity-disabled-strong);cursor:not-allowed;background:var(--disabled-bg);border-color:var(--disabled-border);color:var(--text-disabled)}.modal-overlay{background:var(--overlay-scrim);z-index:var(--z-modal);-webkit-backdrop-filter:blur(var(--blur-overlay));backdrop-filter:blur(var(--blur-overlay));justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xxl);max-width:var(--max-width-sm);width:var(--size-modal-width-percent);max-height:var(--size-modal-height-percent);animation:modalSlideIn var(--motion-duration-normal) ease-out;padding:var(--spacing-xl);flex-direction:column;display:flex;overflow-y:auto}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(var(--motion-translate-modal-start))}to{opacity:1;transform:translateY(0)}}.modal-header{padding:0 0 var(--spacing-lg) 0;border-bottom:var(--size-border-thin) solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.modal-header h3{font-size:var(--font-size-lg);font-family:var(--font-family-medium);margin:0}.modal-close{font-size:var(--font-size-xl);color:var(--text-secondary);cursor:pointer;width:var(--size-avatar-sm);height:var(--size-avatar-sm);border-radius:var(--radius-lg);transition:all var(--motion-duration-normal) var(--motion-easing-default);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.modal-close:hover{background:var(--state-error-bg);color:var(--state-error-main)}.add-child-form,.add-student-form{padding:var(--spacing-xl) 0 0 0;gap:var(--spacing-xl);flex-direction:column;display:flex}.form-row{gap:var(--spacing-sm);flex-direction:column;display:flex}.form-row label{font-family:var(--font-family-medium)}.form-row input{padding:var(--spacing-md) var(--spacing-md);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);background:var(--surface-default)}.form-row input:focus{outline:2px solid var(--primary-shadow-focus)}.form-status{padding:var(--spacing-md) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);margin:0}.form-status.success{background:var(--state-success-bg);border:var(--size-border-thin) solid var(--state-success-main);color:var(--state-success-main)}.form-status.error{background:var(--state-error-bg);border:var(--size-border-thin) solid var(--state-error-main);color:var(--state-error-main)}.profile-form{gap:var(--spacing-md);flex-direction:column;width:auto;margin:0 auto;display:flex}.profile-section-card{vertical-align:top;background:var(--surface-default);border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);box-shadow:var(--shadow-lg);display:inline-block}.profile-section-title{font-size:var(--font-size-lg);font-family:var(--font-family-medium);color:var(--text-primary);width:100%;padding-bottom:var(--spacing-md);margin:0 0 var(--spacing-md) 0;border-bottom:var(--size-border-thin) solid var(--border-default);display:block}.profile-field-row{grid-template-columns:var(--layout-profile-label-width) auto;column-gap:var(--spacing-lg);row-gap:var(--spacing-sm);padding:var(--spacing-sm) 0;align-items:flex-start;display:grid}.profile-field-label{font-family:var(--font-family-medium);color:var(--text-primary);padding-top:var(--spacing-sm)}.profile-field-input{gap:var(--spacing-sm);flex-direction:column;display:flex}.profile-field-input input{width:var(--size-input-field-width);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);background:var(--surface-default)}.profile-field-input input:focus{outline:2px solid var(--primary-shadow-focus)}.profile-field-helper{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.input-error{font-size:var(--font-size-sm);color:var(--state-error-main);padding-top:var(--spacing-sm);margin:0}.profile-form-actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}.profile-divider{width:100%;height:var(--size-border-thin);background:var(--border-color);margin-bottom:var(--spacing-lg)}.profile-field-row.profile-save-row .profile-field-input{padding-top:var(--spacing-xl);position:relative}.profile-field-row.profile-save-row .profile-divider{top:0;left:calc(var(--layout-profile-divider-offset) * -1);width:calc(100% + var(--layout-profile-divider-offset));z-index:0;margin:0;position:absolute}@media (max-width:640px){.profile-section-card{padding:var(--spacing-lg)}.profile-field-row{row-gap:var(--spacing-sm);grid-template-columns:1fr}.profile-field-label{padding-top:0}.profile-field-input input{max-width:100%}.profile-field-row.profile-save-row .profile-field-input{position:static}.profile-field-row.profile-save-row .profile-divider{width:100%;margin-bottom:var(--spacing-md);position:static;left:0}}.form-error{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);background:var(--state-error-bg);border:var(--size-border-thin) solid var(--state-error-border);color:var(--state-error-main);font-size:var(--font-size-sm);margin:0}.form-actions-modal{gap:var(--spacing-md);margin-top:var(--spacing-sm);justify-content:flex-end;display:flex}.logout-confirm-modal{max-width:480px}.logout-confirm-body{padding-top:var(--spacing-xl)}.logout-confirm-body p{color:var(--text-primary);line-height:var(--line-height-md);margin:0}.consent-step{padding:var(--spacing-xl) 0 0 0;gap:var(--spacing-xl);flex-direction:column;display:flex}.consent-intro{line-height:var(--line-height-lg);color:var(--text-primary)}.consent-intro p{margin:0}.consent-policy-link{padding:var(--spacing-lg);background:var(--bg-default);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default)}.consent-policy-link a{color:var(--primary);font-family:var(--font-family-medium);transition:color var(--motion-duration-normal) var(--motion-easing-default);text-decoration:none}.consent-policy-link a:hover{color:var(--primary-dark)}.consent-checkbox{padding:var(--spacing-lg);background:var(--surface-default);border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-lg)}.consent-checkbox label{gap:var(--spacing-lg);cursor:pointer;align-items:flex-start;display:flex}.consent-checkbox input[type=checkbox]{margin-top:var(--spacing-sm);width:var(--size-checkbox);height:var(--size-checkbox);cursor:pointer;flex-shrink:0}.consent-checkbox span{line-height:var(--line-height-md);color:var(--text-primary)}.activation-step{padding:var(--spacing-xl) 0 0 0;gap:var(--spacing-xl);flex-direction:column;display:flex}.activation-success-message{align-items:center;gap:var(--spacing-lg);text-align:center;padding:var(--spacing-xl) var(--spacing-lg);background:var(--state-success-bg);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--state-success-border);flex-direction:column;display:flex}.success-icon{width:var(--size-success-badge);height:var(--size-success-badge);background:var(--gradient-success);color:var(--text-inverse);font-size:var(--size-icon-xxl);font-family:var(--font-family-bold);box-shadow:var(--shadow-xl) var(--success-shadow);border-radius:50%;justify-content:center;align-items:center;display:flex}.success-text{font-size:var(--font-size-md);line-height:var(--line-height-lg);color:var(--state-success-main);font-family:var(--font-family-medium);margin:0}.activation-code-section{gap:var(--spacing-md);flex-direction:column;display:flex}.activation-code-section-label{font-size:var(--font-size-sm);font-family:var(--font-family-medium);color:var(--text-primary);text-transform:uppercase;letter-spacing:var(--letter-spacing-tight)}.activation-code-box{padding:var(--spacing-xl);background:var(--bg-default);border:2px dashed var(--border-default);border-radius:var(--radius-lg);transition:all var(--motion-duration-normal) var(--motion-easing-default);justify-content:center;align-items:center;display:flex}.activation-code-box:hover{border-color:var(--primary);background:var(--primary-overlay-subtle)}.activation-code-box-clickable{cursor:pointer;border:2px dashed var(--border-default);width:100%;padding:var(--spacing-xl);border-radius:var(--radius-lg);transition:all var(--motion-duration-normal) var(--motion-easing-default);background:0 0;justify-content:center;align-items:center;display:flex}.activation-code-box-clickable:hover{border-color:var(--primary);background:var(--primary-overlay-soft)}.activation-code-box-clickable:active{background:var(--primary-overlay-hover);transform:scale(.98)}.activation-code-value-display{font-family:SF Mono,Menlo,Monaco,Consolas,monospace;font-size:var(--font-size-xxl);font-family:var(--font-family-bold);color:var(--primary);letter-spacing:var(--letter-spacing-extra);-webkit-user-select:all;user-select:all;cursor:text}.activation-instructions{padding:var(--spacing-lg);background:var(--primary-overlay-light);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--primary-overlay-border)}.activation-instructions p{font-size:var(--font-size-sm);line-height:var(--line-height-lg);color:var(--text-secondary);margin:0}.tooltip-wrapper{display:inline-block;position:relative}.tooltip-wrapper.disabled{cursor:not-allowed}.tooltip{bottom:calc(100% + var(--spacing-sm));background:var(--surface-tooltip);color:var(--text-inverse);padding:var(--spacing-md) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:var(--line-height-md);box-shadow:var(--shadow-md);white-space:normal;max-width:var(--max-width-lg);min-width:var(--size-tooltip-min-width);overflow-wrap:break-word;word-break:break-word;z-index:var(--z-floating);opacity:0;pointer-events:none;transition:opacity var(--motion-duration-fast) var(--motion-easing-default);position:absolute;left:50%;transform:translate(-50%)}.tooltip-wrapper:hover .tooltip{opacity:1}.progress-tree{gap:var(--spacing-xl);flex-direction:column;display:flex}.progress-tree-header h2{margin:0}.topic-list{gap:var(--spacing-lg);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.topic-item{border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-lg);padding:var(--spacing-lg);background:var(--surface-default)}.topic-title{font-family:var(--font-family-medium);margin-bottom:var(--spacing-md)}.skill-list{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.skill-item{padding:var(--spacing-sm) 0;border-bottom:var(--size-border-thin) solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.skill-item:last-child{border-bottom:none}.skill-name{font-family:var(--font-family-medium)}.skill-meta{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.pill{padding:var(--spacing-xxs) var(--spacing-md);border-radius:var(--radius-pill);background:var(--state-success-bg);color:var(--primary-dark);font-size:var(--font-size-xs)}.pill.subtle{background:var(--slate-overlay);color:var(--text-secondary)}.stats-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit, minmax(var(--grid-min-card-width), 1fr));display:grid}.stat-card{border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);padding:var(--spacing-xl);background:var(--surface-default);box-shadow:inset 0 0 0 1px var(--primary-overlay-inset);gap:var(--spacing-sm);flex-direction:column;display:flex}.stat-card.subtle{opacity:var(--opacity-subtle)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal)}.stat-value{font-size:var(--font-size-xxl);font-family:var(--font-family-medium);color:var(--primary-dark)}.auth-container{min-height:100vh}.auth-split{grid-template-columns:1fr 1fr;width:100%;min-height:100vh;display:grid}.auth-form-section{padding:var(--spacing-jumbo);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffad;justify-content:center;align-items:center;display:flex}.auth-form-wrapper{width:100%;max-width:var(--max-width-xs);gap:var(--spacing-xxxl);flex-direction:column;display:flex}.auth-brand h1{font-size:var(--font-size-xl);font-family:var(--font-family-bold);background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0}.auth-brand--image{width:100%;margin-top:calc(var(--spacing-xl) * -1);margin-bottom:var(--spacing-lg);justify-content:center;display:flex}.auth-brand-image{width:min(8.5rem,40vw);height:auto;display:block}.auth-header h2{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-xxl);font-family:var(--font-family-medium)}.auth-header p{color:var(--text-secondary);font-size:var(--font-size-md);margin:0}.auth-form{gap:var(--spacing-xl);flex-direction:column;display:flex}.auth-field{gap:var(--spacing-sm);flex-direction:column;display:flex}.auth-field-label-row{justify-content:space-between;align-items:center;display:flex}.auth-field label{font-family:var(--font-family-medium);font-size:var(--font-size-sm);color:var(--text-primary)}.auth-field input{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);background:var(--surface-default);font-size:var(--font-size-md);transition:all var(--motion-duration-normal) var(--motion-easing-default)}.auth-field input:focus{border-color:var(--primary);box-shadow:0 0 0 var(--size-focus-ring) var(--primary-overlay-border);outline:none}.auth-field input:disabled{opacity:var(--opacity-disabled-strong);cursor:not-allowed;background:var(--bg-default)}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{width:100%;padding-right:var(--size-button-sm)}.password-toggle{right:var(--spacing-md);border-radius:var(--radius-md);padding:var(--spacing-lg) var(--spacing-xl);box-shadow:none;transition:color var(--motion-duration-normal) var(--motion-easing-default);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.password-toggle:hover{color:var(--primary);background:0 0}.password-toggle:focus{color:var(--primary);background:0 0;outline:none}.password-toggle svg{display:block}.auth-error{padding:var(--spacing-lg) var(--spacing-lg);border-radius:var(--radius-lg);background:var(--state-error-bg);border:var(--size-border-thin) solid var(--state-error-border);color:var(--state-error-main);font-size:var(--font-size-sm);line-height:var(--line-height-md);align-items:flex-start;gap:var(--spacing-md);box-shadow:var(--shadow-sm) var(--shadow-error);display:flex}.auth-error:before{content:"⚠";font-size:var(--font-size-lg);margin-top:var(--size-border-thin);flex-shrink:0}.auth-submit{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);background:var(--gradient-primary);color:var(--text-inverse);font-family:var(--font-family-medium);font-size:var(--font-size-md);cursor:pointer;box-shadow:var(--shadow-lg) var(--primary-shadow);transition:all var(--motion-duration-normal) var(--motion-easing-default);border:none}.auth-submit:hover:not(:disabled){transform:translateY(var(--motion-translate-subtle));box-shadow:var(--shadow-xl) var(--primary-shadow-strong)}.auth-submit:disabled{opacity:var(--opacity-disabled-strong);cursor:not-allowed;box-shadow:var(--shadow-sm) var(--primary-overlay-border);transform:none}.button-spinner{align-items:center;gap:var(--spacing-sm);display:inline-flex}.spinner{width:var(--size-spinner);height:var(--size-spinner);border:2px solid var(--overlay-white-subtle);border-top-color:var(--text-inverse);border-radius:50%;animation:.6s linear infinite spin}.reset-code-info{padding:var(--spacing-lg) var(--spacing-lg);border-radius:var(--radius-lg);background:var(--state-success-bg);border:var(--size-border-thin) solid var(--state-success-border);color:var(--state-success-main);font-size:var(--font-size-sm);line-height:var(--line-height-md);align-items:flex-start;gap:var(--spacing-lg);box-shadow:var(--shadow-sm) var(--success-shadow-deep);display:flex}.reset-code-message{gap:var(--spacing-xxs);flex-direction:column;flex:1;display:flex}.reset-code-message strong{font-family:var(--font-family-medium);display:block}.auth-footer{gap:var(--spacing-lg);padding-top:var(--spacing-sm);flex-direction:column;display:flex}.auth-footer p{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;margin:0}.auth-link{color:var(--primary);font-family:var(--font-family-medium);transition:color var(--motion-duration-normal) var(--motion-easing-default);text-decoration:none}.auth-link:hover{color:var(--primary-dark);text-decoration:underline}.auth-terms{line-height:var(--line-height-md);font-size:var(--font-size-sm)!important}.auth-testimonial-section{padding:var(--spacing-jumbo);background:var(--gradient-overlay);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-testimonial-section:before{content:"";background:var(--gradient-radial-overlay);pointer-events:none;width:100%;height:100%;position:absolute;top:-50%;right:-50%}.auth-testimonial{max-width:var(--max-width-md);gap:var(--spacing-xxxl);flex-direction:column;display:flex;position:relative}.testimonial-quote{gap:var(--spacing-xl);flex-direction:column;display:flex}.quote-icon{color:var(--primary);opacity:var(--opacity-icon-subtle)}.testimonial-quote p{font-size:var(--font-size-lg);line-height:var(--line-height-xl);color:var(--text-primary);margin:0}.testimonial-author{align-items:center;gap:var(--spacing-lg);display:flex}.author-avatar{width:var(--size-avatar-lg);height:var(--size-avatar-lg);background:var(--gradient-info);color:var(--text-inverse);font-family:var(--font-family-medium);font-size:var(--font-size-lg);box-shadow:var(--shadow-lg) var(--info-shadow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.author-info{gap:var(--spacing-xxs);flex-direction:column;display:flex}.author-name{font-family:var(--font-family-medium);font-size:var(--font-size-md);color:var(--text-primary)}.author-role{font-size:var(--font-size-sm);color:var(--text-secondary)}@media (max-width:1024px){.auth-split{grid-template-columns:1fr}.auth-testimonial-section{display:none}.auth-form-section{min-height:100vh}}.support-nav{gap:var(--spacing-xs);flex-direction:column;display:flex}.support-nav-item{padding:var(--spacing-md) var(--spacing-lg);background:var(--surface-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-family-medium);font-size:var(--font-size-md);transition:background var(--motion-duration-normal) var(--motion-easing-default);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.support-nav-item:hover{background:var(--bg-subtle)}.support-nav-arrow{color:var(--text-secondary)}.legal-content{color:var(--text-primary);font-size:var(--font-size-md);line-height:var(--line-height-lg)}.legal-content h1{display:none}.legal-content h2{font-size:var(--font-size-lg);font-family:var(--font-family-bold);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-sm)}.legal-content h3{font-size:var(--font-size-md);font-family:var(--font-family-medium);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.legal-content p{margin-bottom:var(--spacing-md)}.legal-content ul,.legal-content ol{padding-left:var(--spacing-xl);margin-bottom:var(--spacing-md)}.legal-content li{margin-bottom:var(--spacing-xs)}.legal-content table{border-collapse:collapse;width:100%;margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.legal-content th,.legal-content td{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-default);text-align:left}.legal-content th{background:var(--bg-subtle);font-family:var(--font-family-bold)}.legal-content hr{border:none;border-top:1px solid var(--border-default);margin:var(--spacing-xl) 0}.legal-content code{font-family:var(--font-family-medium);background:var(--bg-subtle);padding:2px var(--spacing-xs);border-radius:var(--radius-xs)}.public-legal-page{max-width:800px;padding:var(--spacing-xl) var(--spacing-lg);margin:0 auto}.public-legal-page .legal-content h1{font-size:var(--font-size-xxl);font-family:var(--font-family-bold);margin-bottom:var(--spacing-lg);display:block}.dashboard-page{gap:var(--spacing-xl);flex-direction:column;min-width:0;max-width:100%;display:flex}.children-summary-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));display:grid}.child-summary-card{gap:var(--spacing-lg);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);padding:var(--spacing-xl);background:var(--surface-default);color:inherit;min-width:0;transition:box-shadow var(--motion-duration-normal) var(--motion-easing-default), border-color var(--motion-duration-normal) var(--motion-easing-default), transform var(--motion-duration-normal) var(--motion-easing-default);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.child-summary-card:hover{border-color:var(--primary);box-shadow:0 2px 12px #1f93ff1a}.child-summary-card:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.child-summary-header{justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.child-summary-name{font-size:var(--font-size-xl);font-family:var(--font-family-bold);color:var(--text-primary);margin:0}.child-summary-body{justify-content:space-between;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.child-summary-progress{align-items:center;gap:var(--spacing-lg);flex:260px;min-width:0;display:flex}.child-summary-verdict{gap:var(--spacing-xxs);flex-direction:column;flex:1;min-width:0;display:flex}.child-summary-verdict-line{font-size:var(--font-size-lg);font-family:var(--font-family-bold);line-height:var(--line-height-md)}.child-summary-days,.readiness-heading{font-size:var(--font-size-sm);color:var(--text-secondary)}.readiness-level{font-size:var(--font-size-lg);font-family:var(--font-family-bold)}.readiness-good{color:var(--progress-excellent)}.readiness-okay{color:var(--primary)}.readiness-needs-work{color:var(--progress-low)}.readiness-starting{color:var(--text-secondary)}.child-summary-cta{justify-content:center;align-self:stretch;display:inline-flex}.child-summary-cta-label{min-height:44px;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--primary);font-size:var(--font-size-md);font-family:var(--font-family-bold);width:100%;transition:background var(--motion-duration-normal) var(--motion-easing-default);justify-content:center;align-items:center;display:inline-flex}.child-summary-card:hover .child-summary-cta-label{background:var(--primary);color:var(--on-primary)}.practice-status{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-family:var(--font-family-bold);border:var(--size-border-thin) solid transparent;display:inline-flex}.practice-status-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px}.practice-status-today{background:var(--state-success-bg);color:var(--state-success-main);border-color:var(--state-success-border)}.practice-status-yesterday{background:var(--bg-subtle);color:var(--primary);border-color:var(--border-default)}.practice-status-recent{background:var(--state-warning-bg,#fff8e1);color:var(--text-primary);border-color:var(--state-warning-border,#ffd54f)}.practice-status-stale{background:var(--state-error-bg);color:var(--state-error-dark);border-color:var(--state-error-border)}.practice-status-never{background:var(--bg-subtle);color:var(--text-secondary);border-color:var(--border-default)}.mastery-ring{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.mastery-ring svg{display:block}.mastery-ring-value{font-family:var(--font-family-bold);color:var(--text-primary);line-height:1;position:absolute}.exam-countdown{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-lg);background:var(--bg-subtle);border:var(--size-border-thin) solid var(--border-default);display:flex}.exam-countdown-icon{width:28px;height:28px;color:var(--text-secondary);flex-shrink:0}.exam-countdown-body{flex-direction:column;gap:2px;min-width:0;display:flex}.exam-countdown-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.exam-countdown-value{font-size:var(--font-size-md);font-family:var(--font-family-bold);color:var(--primary)}.student-progress-page{gap:var(--spacing-xl);flex-direction:column;min-width:0;max-width:100%;display:flex}.student-overview-header{gap:var(--spacing-lg);flex-direction:column;display:flex}.student-overview-header h2{margin-top:0;margin-bottom:var(--spacing-lg)}.overview-hero{gap:var(--spacing-xl);padding:var(--spacing-sm) 0 0;flex-wrap:wrap;align-items:center;display:flex}.overview-hero-readiness{align-items:center;gap:var(--spacing-lg);flex:1;min-width:280px;display:flex}.overview-hero-text{gap:var(--spacing-xs);overflow-wrap:break-word;word-break:break-word;flex-direction:column;flex:auto;min-width:0;display:flex}.overview-hero-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.overview-hero-level{font-size:var(--font-size-xxl);font-family:var(--font-family-bold);overflow-wrap:break-word;word-break:break-word;line-height:1.1}.overview-hero-description{font-size:var(--font-size-md);color:var(--text-primary);margin:var(--spacing-xs) 0 0;overflow-wrap:break-word;word-break:break-word;max-width:420px;line-height:1.5}.overview-practice{gap:var(--spacing-xl);flex-wrap:wrap;align-items:center;display:flex}.overview-practice-headline{flex-direction:column;align-items:flex-start;min-width:140px;display:flex}.overview-practice-big{font-size:48px;font-family:var(--font-family-bold);color:var(--primary);line-height:1}.overview-practice-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--spacing-xs)}.weekly-activity-chart{gap:var(--spacing-sm);flex-direction:column;flex:1;min-width:240px;display:flex}.weekly-activity-bars{gap:var(--spacing-xs);align-items:flex-end;height:80px;display:flex}.weekly-activity-bar-group{align-items:center;gap:var(--spacing-xxs);flex-direction:column;flex:1;height:100%;display:flex}.weekly-activity-bar-track{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.weekly-activity-bar-fill{border-radius:var(--radius-xs) var(--radius-xs) 0 0;background:var(--border-default);width:100%;max-width:24px;min-height:4px;transition:height var(--motion-duration-normal) var(--motion-easing-default)}.weekly-activity-bar-fill.active{background:var(--primary)}.weekly-activity-bar-label{font-size:var(--font-size-xs);color:var(--text-secondary)}.weekly-activity-bar-label.active{color:var(--text-primary);font-family:var(--font-family-bold)}.onboarding-card{text-align:center;max-width:480px;margin:0 auto}.onboarding-icon{margin-bottom:var(--spacing-md);font-size:48px}.onboarding-card h3{margin:0 0 var(--spacing-sm)}.onboarding-description{color:var(--text-secondary);margin:0 0 var(--spacing-xl)}.onboarding-steps{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);text-align:left;flex-direction:column;display:flex}.onboarding-step{align-items:center;gap:var(--spacing-md);font-size:var(--font-size-sm);display:flex}.onboarding-step-number{background:var(--primary);width:28px;height:28px;color:var(--on-primary);font-family:var(--font-family-bold);font-size:var(--font-size-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pending-codes-list{gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);flex-direction:column;display:flex}.pending-code-item{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);background:var(--bg-subtle);justify-content:space-between;align-items:center;display:flex}.pending-code-name{font-size:var(--font-size-sm);color:var(--text-primary)}.pending-code-value{font-size:var(--font-size-md);font-family:var(--font-family-bold);color:var(--primary);letter-spacing:2px}.sidebar-student-link{justify-content:space-between;align-items:center;display:flex}.sidebar-active-dot{background:var(--state-success-main);border-radius:50%;flex-shrink:0;width:8px;height:8px}.sidebar-toggle{top:var(--spacing-md);left:var(--spacing-md);z-index:1001;background:var(--surface-default);border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;width:44px;height:44px;font-size:var(--font-size-lg);color:var(--text-primary);transition:left var(--motion-duration-normal) var(--motion-easing-default);justify-content:center;align-items:center;padding:0;display:none;position:fixed}.sidebar-toggle.is-open{left:calc(var(--sidebar-width) - 44px - var(--spacing-md));background:0 0;border-color:#0000}.sidebar-overlay{display:none}@media (max-width:768px){.sidebar-toggle{display:inline-flex}.sidebar-overlay{z-index:999;background:#0000004d;display:block;position:fixed;inset:0}.sidebar{z-index:1000;transition:transform var(--motion-duration-normal) var(--motion-easing-default);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.app-main{padding:var(--spacing-xl) var(--spacing-lg);padding-top:calc(var(--spacing-xl) + 48px)}.overview-hero{flex-direction:column;align-items:stretch}.overview-hero-readiness{text-align:left;align-items:center}.overview-hero-text{align-items:flex-start}.overview-practice{flex-direction:column;align-items:stretch}.overview-practice-headline{align-items:center}.children-summary-grid{grid-template-columns:minmax(0,1fr)}.child-summary-body{flex-direction:column;align-items:stretch}.child-summary-progress{flex:initial}.exam-pill{align-self:stretch}.child-summary-stats{width:100%}}@media (max-width:480px){.page-header h2{font-size:var(--font-size-lg)}.child-summary-card{padding:var(--spacing-lg)}.student-overview-title{font-size:var(--font-size-xl);line-height:var(--line-height-xl)}.overview-hero-level{font-size:var(--font-size-xl)}.overview-hero-description{font-size:var(--font-size-sm);max-width:100%}.overview-hero-readiness{min-width:0}.page-section{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.student-overview-title-row{flex-direction:column;align-items:stretch}.student-overview-title-row .practice-status{align-self:flex-start}.skills-list-row{padding-left:var(--spacing-md);padding-right:var(--spacing-md);gap:var(--spacing-sm)}.skill-category-card-body{padding:var(--spacing-md)}}.alerts-stack{gap:var(--spacing-sm);flex-direction:column;display:flex}.alert-banner{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);border:var(--size-border-thin) solid var(--border-default);background:var(--surface-default);display:flex}.alert-banner.alert-warning{background:var(--state-warning-bg,#fff8e1);border-color:var(--state-warning-border,#ffd54f)}.alert-banner.alert-info{background:var(--bg-subtle);border-color:var(--border-default)}.alert-banner.alert-celebration{background:var(--state-success-bg);border-color:var(--state-success-border)}.alert-message{font-size:var(--font-size-sm);color:var(--text-primary);flex:1}.alert-action{font-size:var(--font-size-sm);font-family:var(--font-family-bold);color:var(--primary);white-space:nowrap;text-decoration:none}.alert-action:hover{text-decoration:underline}.skill-bucket{padding:var(--spacing-lg);border-radius:var(--radius-lg);border:var(--size-border-thin) solid var(--border-default);background:var(--surface-default)}.skill-bucket.empty{opacity:.7}.skill-bucket-header{align-items:center;gap:var(--spacing-sm);cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;background:0 0;border:none;padding:0;display:flex}.skill-bucket-toggle{width:20px;font-family:var(--font-family-bold);color:var(--text-secondary);justify-content:center;display:inline-flex}.skill-bucket-title{font-size:var(--font-size-md);font-family:var(--font-family-bold);flex:1;margin:0}.skill-bucket-count{padding:2px var(--spacing-sm);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-family:var(--font-family-bold);background:var(--bg-subtle);color:var(--text-secondary)}.skill-bucket-struggling .skill-bucket-count{background:var(--state-error-bg);color:var(--state-error-dark)}.skill-bucket-notStarted .skill-bucket-count{background:var(--bg-subtle);color:var(--text-secondary)}.skill-bucket-soSo .skill-bucket-count{background:var(--state-warning-bg,#fff8e1);color:var(--text-primary)}.skill-bucket-exceptional .skill-bucket-count{background:var(--state-success-bg);color:var(--state-success-main)}.skill-bucket-description{margin:var(--spacing-sm) 0 var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-secondary)}.skill-bucket-empty{margin:var(--spacing-sm) 0 0;font-size:var(--font-size-sm);color:var(--text-secondary);font-style:italic}.skill-bucket-list{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.skill-bucket-item{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);background:var(--bg-subtle);display:flex}.skill-bucket-item-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.skill-bucket-item-name{font-size:var(--font-size-sm);color:var(--text-primary)}.skill-bucket-item-theory-btn{color:var(--primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.skill-bucket-item-theory-btn:hover{color:var(--text-primary)}.skill-bucket-item-path{font-size:var(--font-size-xs);color:var(--text-secondary)}.skill-bucket-item-stats{align-items:center;gap:var(--spacing-md);flex-shrink:0;display:flex}.skill-bucket-item-sessions{font-size:var(--font-size-xs);color:var(--text-secondary)}.skill-bucket-item-mastery{font-family:var(--font-family-bold);font-size:var(--font-size-sm);color:var(--primary);text-align:right;min-width:42px}.theory-drawer-overlay{z-index:1100;background:#00000059;animation:.2s ease-out theory-drawer-fade-in;position:fixed;inset:0}.theory-drawer{z-index:1101;background:var(--surface-default);flex-direction:column;width:min(520px,100vw);animation:.25s ease-out theory-drawer-slide-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #0000001f}@keyframes theory-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes theory-drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes theory-drawer-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width:768px){.theory-drawer{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:85dvh;animation:.25s ease-out theory-drawer-slide-up;top:auto;left:0;right:0;box-shadow:0 -4px 24px #0000001f}}.theory-drawer-markdown u{text-underline-offset:2px;text-decoration:underline}.theory-drawer-header{padding:var(--spacing-lg);border-bottom:var(--size-border-thin) solid var(--border-default);justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.theory-drawer-title{font-size:var(--font-size-lg);font-family:var(--font-family-bold);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;overflow:hidden}.theory-drawer-close{cursor:pointer;font-size:var(--font-size-lg);color:var(--text-secondary);padding:var(--spacing-xs);background:0 0;border:none;line-height:1}.theory-drawer-close:hover{color:var(--text-primary)}.theory-drawer-body{padding:var(--spacing-lg);flex:1;overflow-y:auto}.theory-drawer-status{color:var(--text-secondary);font-size:var(--font-size-sm)}.theory-drawer-status.error{color:var(--state-error-main)}.theory-drawer-markdown{color:var(--text-primary);line-height:1.6}.theory-drawer-markdown h1,.theory-drawer-markdown h2,.theory-drawer-markdown h3{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.theory-drawer-markdown h1:first-child,.theory-drawer-markdown h2:first-child,.theory-drawer-markdown h3:first-child{margin-top:0}.theory-drawer-markdown p{margin:0 0 var(--spacing-md)}.theory-drawer-markdown ul,.theory-drawer-markdown ol{margin:0 0 var(--spacing-md);padding-left:var(--spacing-xl)}.theory-drawer-markdown li{margin-bottom:var(--spacing-xs)}.theory-drawer-markdown code{background:var(--bg-subtle);padding:2px var(--spacing-xs);border-radius:var(--radius-xs);font-size:.9em}.faq-section h3{margin-top:0;margin-bottom:var(--spacing-xs)}.faq-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--spacing-lg)}.faq-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.faq-item{border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-subtle)}.faq-item[open]{background:var(--surface-default);border-color:var(--primary)}.faq-question{padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;font-family:var(--font-family-bold);color:var(--text-primary);font-size:var(--font-size-sm);justify-content:space-between;align-items:center;list-style:none;display:flex}.faq-question::-webkit-details-marker{display:none}.faq-question:after{content:"+";color:var(--text-secondary);font-size:var(--font-size-md);transition:transform .2s}.faq-item[open] .faq-question:after{content:"−"}.faq-answer{padding:0 var(--spacing-lg) var(--spacing-lg);font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.6}@media (max-width:768px){.daily-activity-row{padding:var(--spacing-sm) var(--spacing-md)}.daily-activity-row-main{flex-direction:row;justify-content:space-between;width:100%}.skill-bucket-item{flex-direction:column;align-items:flex-start}.skill-bucket-item-stats{align-self:flex-end}.alert-banner{flex-direction:column;align-items:flex-start}}a:focus-visible,button:focus-visible,[role=button]:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:var(--radius-xs)}.skills-list-section{gap:var(--spacing-md);flex-direction:column;display:flex}.skills-list-section.tone-success{border-left:4px solid var(--state-success-main);padding-left:var(--spacing-md)}.skills-list-section.tone-warning{border-left:4px solid var(--state-error-main);padding-left:var(--spacing-md)}.skills-list-header{gap:var(--spacing-xs);flex-direction:column;display:flex}.skills-list-description{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.skills-list-empty{color:var(--text-secondary);font-size:var(--font-size-sm)}.skills-list{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.skills-list-item{margin:0}.skills-list-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);width:100%;min-height:56px;padding:var(--spacing-md) var(--spacing-lg);background:var(--surface-default);border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-md);text-align:left;display:flex}.skills-list-theory-btn{background:var(--bg-subtle);border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--primary);cursor:pointer;transition:background var(--motion-duration-normal) var(--motion-easing-default), border-color var(--motion-duration-normal) var(--motion-easing-default);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.skills-list-theory-btn:hover{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.skills-list-theory-icon{width:20px;height:20px}.skills-list-main{gap:var(--spacing-xxs);flex-direction:column;flex:1;min-width:0;display:flex}.skills-list-name{font-size:var(--font-size-md);font-family:var(--font-family-bold);color:var(--text-primary);line-height:var(--line-height-sm)}.skills-list-path{font-size:var(--font-size-xs);color:var(--text-secondary);-webkit-line-clamp:2;word-break:break-word;overflow-wrap:break-word;max-width:100%;line-height:var(--line-height-xs);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skills-list-mastery{font-size:var(--font-size-md);font-family:var(--font-family-bold);color:var(--text-primary);padding:var(--spacing-xxs) var(--spacing-sm);border-radius:var(--radius-sm);background:var(--bg-subtle);flex-shrink:0}.coming-soon-pill{font-size:11px;line-height:1.2;font-family:var(--font-family-medium);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);background:var(--state-warning-bg);border:1px solid var(--state-warning-border);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:2px 8px;display:inline-block}.skills-list-see-all{padding:var(--spacing-xs) 0;color:var(--primary);font-family:var(--font-family-bold);font-size:var(--font-size-sm);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;text-decoration:underline}.skills-list-see-all:hover{color:var(--text-primary)}.skills-list-modal{flex-direction:column;width:100%;max-width:640px;max-height:80vh;display:flex}.skills-list-modal-body{padding:0 var(--spacing-lg) var(--spacing-lg);margin:0;overflow-y:auto}.add-child-button{align-items:center;gap:var(--spacing-sm);min-height:44px;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family-bold);font-size:var(--font-size-md);border:var(--size-border-thin) solid var(--border-default);display:inline-flex}.add-child-button.btn-primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.add-child-button.btn-primary:hover{background:var(--primary);filter:brightness(1.05)}.add-child-button.btn-secondary{background:var(--surface-default);color:var(--primary);border-color:var(--primary)}.add-child-button-plus{width:20px;height:20px;font-size:var(--font-size-lg);background:#ffffff40;border-radius:50%;justify-content:center;align-items:center;line-height:1;display:inline-flex}.add-child-button.btn-secondary .add-child-button-plus{background:var(--bg-subtle);color:var(--primary)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.page-header-titles{gap:var(--spacing-xs);flex-direction:column;min-width:0;display:flex}.child-summary-stats{gap:var(--spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;display:grid}.child-summary-stat{gap:var(--spacing-xxs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-subtle);border-radius:var(--radius-md);flex-direction:column;min-width:0;display:flex}.child-summary-stat dt{font-size:var(--font-size-xs);color:var(--text-secondary)}.child-summary-stat dd{font-size:var(--font-size-md);font-family:var(--font-family-bold);color:var(--text-primary);margin:0}.child-summary-skill-list{gap:var(--spacing-xs);padding:var(--spacing-md);border-radius:var(--radius-md);background:var(--bg-subtle);flex-direction:column;display:flex}.child-summary-skill-heading{font-size:var(--font-size-xs);font-family:var(--font-family-bold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--spacing-xs);display:block}.child-summary-skill-list-top .child-summary-skill-heading{color:var(--state-success-main)}.child-summary-skill-list-bottom .child-summary-skill-heading{color:var(--state-error-dark)}.child-summary-skill-list ul{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.child-summary-skill-list li{justify-content:space-between;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);padding-block:var(--spacing-xs);border-top:var(--size-border-thin) solid var(--border-default);display:flex}.child-summary-skill-list li:first-child{border-top:none;padding-top:0}.child-summary-skill-name{color:var(--text-primary);font-family:var(--font-family-bold);font-size:var(--font-size-md);line-height:var(--line-height-sm);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.child-summary-skill-mastery{font-family:var(--font-family-bold);font-size:var(--font-size-md);color:var(--text-primary);flex-shrink:0}.child-summary-notstarted{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.student-overview-title-row{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.student-overview-title{overflow-wrap:break-word;word-break:break-word;flex:auto;min-width:0;margin:0}.student-overview-stats{gap:var(--spacing-sm);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;display:grid}.student-overview-stat{gap:var(--spacing-xxs);padding:var(--spacing-md);background:var(--bg-subtle);border-radius:var(--radius-md);flex-direction:column;min-width:0;display:flex}.student-overview-stat dt{font-size:var(--font-size-sm);color:var(--text-secondary)}.student-overview-stat dd{font-size:var(--font-size-xl);font-family:var(--font-family-bold);color:var(--text-primary);margin:0}.student-overview-stat.tone-success dd{color:var(--state-success-main)}.student-overview-stat.tone-warning dd{color:var(--state-error-dark)}.student-overview-skill-counts{margin-top:0}.student-overview-divider{border:none;border-top:var(--size-border-thin) solid var(--border-default);height:0;margin:0}.student-overview-section{gap:var(--spacing-md);flex-direction:column;display:flex}.student-overview-section-header{justify-content:space-between;align-items:baseline;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.student-overview-section-footer{justify-content:flex-end;display:flex}.student-overview-section-title{font-size:var(--font-size-xs);font-family:var(--font-family-bold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0}.student-overview-see-more{font-size:var(--font-size-sm);font-family:var(--font-family-bold);color:var(--primary);text-underline-offset:3px;text-decoration:underline}.student-overview-see-more:hover{color:var(--text-primary)}.student-overview-target{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--state-warning-bg);border:var(--size-border-thin) solid var(--state-warning-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);line-height:var(--line-height-md);margin:0;display:flex}.student-overview-target-icon{font-size:var(--font-size-lg);flex-shrink:0;line-height:1}.student-overview-weekly{gap:var(--spacing-md);flex-direction:column;display:flex}.student-overview-weekly-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.student-overview-highlights{gap:var(--spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.student-overview-highlight{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);background:var(--bg-subtle)}.student-overview-highlight h3{margin:0 0 var(--spacing-sm);font-size:var(--font-size-xs);font-family:var(--font-family-bold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.student-overview-highlight.tone-success h3{color:var(--state-success-main)}.student-overview-highlight.tone-warning h3{color:var(--state-error-dark)}.student-overview-highlight ul{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.student-overview-highlight li{justify-content:space-between;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);padding-block:var(--spacing-xs);border-top:var(--size-border-thin) solid var(--border-default);display:flex}.student-overview-highlight li:first-child{border-top:none;padding-top:0}.student-overview-highlight-name{color:var(--text-primary);font-family:var(--font-family-bold);font-size:var(--font-size-md);line-height:var(--line-height-sm);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.student-overview-highlight-mastery{font-family:var(--font-family-bold);font-size:var(--font-size-md);color:var(--text-primary);flex-shrink:0}.student-overview-notstarted{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.exam-countdown-date{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--spacing-xxs);display:block}.weekly-activity-bar-track{position:relative}.weekly-activity-bar-tooltip{background:var(--surface-tooltip);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-family:var(--font-family-bold);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--motion-duration-fast,.12s) ease;z-index:2;padding:2px 8px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.weekly-activity-bar-group:hover .weekly-activity-bar-tooltip,.weekly-activity-bar-group:focus-within .weekly-activity-bar-tooltip{opacity:1}.weekly-practice-bars{gap:var(--spacing-md);flex-direction:column;display:flex}.weekly-practice-header{justify-content:space-between;align-items:baseline;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.weekly-practice-header h3{margin:0}.weekly-practice-summary{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.weekly-practice-chart{gap:var(--spacing-sm);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekly-practice-bar{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--surface-default);border:2px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;min-height:160px;transition:border-color var(--motion-duration-normal) var(--motion-easing-default), background var(--motion-duration-normal) var(--motion-easing-default);flex-direction:column;display:flex}.weekly-practice-bar:hover:not(:disabled),.weekly-practice-bar.active{border-color:var(--primary);background:var(--bg-subtle)}.weekly-practice-bar.today:not(.active){border-color:var(--primary);border-style:dashed}.weekly-practice-bar.future{opacity:.4;cursor:not-allowed;background:var(--bg-default)}.weekly-practice-bar-track{background:var(--bg-subtle);border-radius:var(--radius-sm);flex:1;align-items:flex-end;width:100%;min-height:80px;display:flex;position:relative;overflow:hidden}.weekly-practice-bar-fill{background:var(--primary);border-radius:var(--radius-sm);width:100%;transition:height var(--motion-duration-normal) var(--motion-easing-default)}.weekly-practice-bar.has-activity .weekly-practice-bar-fill{background:var(--progress-good)}.weekly-practice-bar-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase}.weekly-practice-bar.active .weekly-practice-bar-label,.weekly-practice-bar.today .weekly-practice-bar-label{color:var(--text-primary);font-family:var(--font-family-bold)}.weekly-practice-bar-minutes{font-size:var(--font-size-xs);color:var(--text-secondary);font-family:var(--font-family-bold)}.weekly-practice-day-detail{padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-subtle);border-radius:var(--radius-md)}.weekly-practice-day-title{margin:0 0 var(--spacing-sm);font-size:var(--font-size-md);text-transform:capitalize}.weekly-practice-day-empty{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.weekly-practice-day-skills{gap:var(--spacing-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.weekly-practice-day-skills li{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--surface-default);border-radius:var(--radius-sm);font-size:var(--font-size-sm);display:flex}.weekly-practice-check{background:var(--state-success-main);width:20px;height:20px;color:var(--on-primary);font-size:12px;font-family:var(--font-family-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.weekly-practice-skill-name{color:var(--text-primary);flex:1;min-width:0}.weekly-practice-skill-mastery{font-family:var(--font-family-bold);color:var(--text-primary);flex-shrink:0}@media (max-width:640px){.student-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.student-overview-highlights{grid-template-columns:1fr}.child-summary-skills-grid{grid-template-columns:minmax(0,1fr)!important}.weekly-practice-bar{min-height:120px;padding:var(--spacing-xs)}.weekly-practice-bar-track{min-height:60px}}.exam-pill{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);background:var(--bg-subtle);border:var(--size-border-thin) solid var(--border-default);max-width:100%;display:inline-flex}.exam-pill-icon{width:22px;height:22px;color:var(--text-secondary);flex-shrink:0}.exam-pill-text{flex-direction:column;gap:2px;min-width:0;display:flex}.exam-pill-title{font-size:var(--font-size-sm);font-family:var(--font-family-bold);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.exam-pill-sub{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:capitalize}.weekly-flames{gap:var(--spacing-xs);padding:var(--spacing-sm) 0;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekly-flame{justify-content:center;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) 0;flex-direction:column;display:flex}.weekly-flame-slot{border-radius:var(--radius-md);width:40px;height:40px;transition:background var(--motion-duration-normal) var(--motion-easing-default);justify-content:center;align-items:center;display:inline-flex}.weekly-flames-sm .weekly-flame-slot{width:32px;height:32px}.weekly-flame-svg{width:24px;height:24px;transition:color var(--motion-duration-normal) var(--motion-easing-default)}.weekly-flames-sm .weekly-flame-svg{width:20px;height:20px}.weekly-flame.state-practiced .weekly-flame-svg{color:var(--accent)}.weekly-flame.state-missed .weekly-flame-svg{color:var(--state-error-main)}.weekly-flame.state-future .weekly-flame-svg{color:var(--disabled-border)}.weekly-flame.is-today .weekly-flame-slot{background:var(--state-success-bg)}.weekly-flame-day{font-size:var(--font-size-xs);color:var(--text-disabled);font-family:var(--font-family-medium);text-transform:uppercase}.weekly-flame.state-practiced .weekly-flame-day,.weekly-flame.is-today .weekly-flame-day{color:var(--text-primary);font-family:var(--font-family-bold)}.child-summary-skills-grid{gap:var(--spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.child-summary-skill-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.child-summary-skill-path{font-size:var(--font-size-xs);color:var(--text-secondary);-webkit-line-clamp:2;word-break:break-word;overflow-wrap:break-word;line-height:var(--line-height-xs);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.student-overview-highlight-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.student-overview-highlight-path{font-size:var(--font-size-xs);color:var(--text-secondary);-webkit-line-clamp:2;word-break:break-word;overflow-wrap:break-word;max-width:100%;line-height:var(--line-height-xs);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skill-category-grid-header{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.skill-category-grid-intro{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.skill-category-grid-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.skill-category-card{background:var(--surface-default);border:var(--size-border-thin) solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--motion-duration-normal) var(--motion-easing-default);overflow:hidden}.skill-category-card.is-expanded{border-color:var(--primary)}.skill-category-card-header{gap:var(--spacing-md);width:100%;min-height:64px;padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;text-align:left;transition:background var(--motion-duration-normal) var(--motion-easing-default);background:0 0;border:none;grid-template-columns:minmax(0,1fr) minmax(120px,180px) auto 32px;align-items:center;display:grid}.skill-category-card-header:hover{background:var(--bg-subtle)}.skill-category-card-title{gap:var(--spacing-xxs);flex-direction:column;min-width:0;display:flex}.skill-category-card-name{font-size:var(--font-size-lg);font-family:var(--font-family-bold);color:var(--text-primary)}.skill-category-card-counts{font-size:var(--font-size-sm);color:var(--text-secondary)}.skill-category-card-progress{background:var(--bg-subtle);border-radius:var(--radius-pill);height:10px;position:relative;overflow:hidden}.skill-category-card-progress-fill{border-radius:var(--radius-pill);transition:width var(--motion-duration-normal) var(--motion-easing-default);position:absolute;inset:0 auto 0 0}.progress-tier-poor{background:var(--progress-poor)}.progress-tier-low{background:var(--progress-low)}.progress-tier-moderate{background:var(--progress-moderate)}.progress-tier-good{background:var(--progress-good)}.progress-tier-excellent{background:var(--progress-excellent)}.mastery-tier-poor{color:var(--progress-poor)}.mastery-tier-low{color:var(--progress-low)}.mastery-tier-moderate{color:var(--progress-moderate)}.mastery-tier-good{color:var(--progress-good)}.mastery-tier-excellent{color:var(--progress-excellent)}.skill-category-card-percent{font-size:var(--font-size-lg);font-family:var(--font-family-bold);color:var(--text-primary);text-align:right;min-width:48px}.skill-category-card-chevron{border-radius:var(--radius-pill);background:var(--bg-subtle);width:32px;height:32px;color:var(--text-primary);font-size:var(--font-size-lg);font-family:var(--font-family-bold);justify-content:center;align-items:center;display:inline-flex}.skill-category-card.is-expanded .skill-category-card-chevron{background:var(--primary);color:var(--on-primary)}.skill-category-card-body{border-top:var(--size-border-thin) solid var(--border-default);padding:var(--spacing-lg);gap:var(--spacing-md);background:var(--bg-default);flex-direction:column;min-width:0;animation:.2s ease-out categoryBodyIn;display:flex;overflow-x:hidden}.skill-category-card-body .skills-list-section.page-section{background:0 0;border:none;border-radius:0;padding:0}.skill-category-card-body .skills-list-section.page-section.tone-success{border-left:4px solid var(--state-success-main);padding-left:var(--spacing-md)}.skill-category-card-body .skills-list-section.page-section.tone-warning{border-left:4px solid var(--state-error-main);padding-left:var(--spacing-md)}@keyframes categoryBodyIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.skill-category-card-body{animation:none}}.skill-category-grid-list{overflow-anchor:none}.skill-category-card-header{scroll-margin-top:var(--spacing-lg)}@keyframes skeletonShimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--bg-subtle) 0%, var(--surface-default) 50%, var(--bg-subtle) 100%);border-radius:var(--radius-md);background-size:800px 100%;animation:1.4s ease-in-out infinite skeletonShimmer}.skeleton-title{width:40%;height:32px;margin-bottom:var(--spacing-sm)}.skeleton-subtitle{width:60%;height:18px}.skeleton-hero{height:180px;margin-top:var(--spacing-md)}.skeleton-exam-countdown{height:96px;margin-bottom:var(--spacing-lg)}.skeleton-child-card{height:220px}.skeleton-list-row{height:56px;margin-top:var(--spacing-sm)}.skeleton-category-row{height:64px;margin-top:var(--spacing-sm)}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@media (max-width:560px){.skill-category-card-header{gap:var(--spacing-xs) var(--spacing-md);row-gap:var(--spacing-xs);grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto 32px}.skill-category-card-title{grid-area:1/1/auto/2}.skill-category-card-percent{grid-area:1/2/auto/3}.skill-category-card-chevron{grid-area:1/3/span 2/4;align-self:center}.skill-category-card-progress{grid-area:2/1/auto/3}}.skills-pair-grid{gap:var(--spacing-xl);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.skills-pair-grid>.skills-list-section{height:100%}@media (max-width:880px){.skills-pair-grid{grid-template-columns:minmax(0,1fr)}}
