@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700&family=Fraunces:wght@600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:wght@500;600;700&display=swap";.ui-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;line-height:1;vertical-align:middle;overflow:hidden}.ui-avatar--initials{background:var(--gradient-cta);color:#fff;font-weight:700}.ui-avatar--xs{width:28px;height:28px;font-size:var(--text-xs)}.ui-avatar--sm{width:36px;height:36px;font-size:var(--text-sm)}.ui-avatar--md{width:44px;height:44px;font-size:var(--text-base)}.ui-avatar--lg{width:56px;height:56px;font-size:var(--text-xl)}.ui-avatar--xl{width:72px;height:72px;font-size:var(--text-3xl)}.ui-avatar__img{width:100%;height:100%;object-fit:cover}.ui-avatar__emoji{line-height:1}.ui-avatar--xs .ui-avatar__emoji{font-size:1rem}.ui-avatar--sm .ui-avatar__emoji{font-size:1.25rem}.ui-avatar--md .ui-avatar__emoji{font-size:1.5rem}.ui-avatar--lg .ui-avatar__emoji{font-size:1.75rem}.ui-avatar--xl .ui-avatar__emoji{font-size:2.5rem}.ui-avatar__initials{text-transform:uppercase;-webkit-user-select:none;user-select:none}.notification-center{position:relative;display:inline-flex;align-items:center}.notification-new-toast{position:absolute;top:100%;right:0;z-index:1001;margin-top:4px;padding:10px 14px;font-size:13px;background:var(--bg-secondary, #fff);border-radius:8px;box-shadow:0 4px 12px #00000026;border:1px solid var(--border-color, #e5e7eb);animation:notification-toast-in .2s ease}.notification-new-toast a{color:var(--color-primary, #2563eb);text-decoration:none;font-weight:500}.notification-new-toast a:hover{text-decoration:underline}@keyframes notification-toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.notification-bell{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:transparent;color:inherit;cursor:pointer;border-radius:8px}.notification-bell:hover{background:#0000000f}.notification-bell:focus-visible{outline:2px solid var(--color-primary, #2563eb);outline-offset:2px}.notification-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:18px;color:#fff;text-align:center;background:var(--color-primary, #2563eb);border-radius:9px}.notification-dropdown{position:absolute;top:100%;right:0;z-index:1000;width:360px;max-height:400px;margin-top:4px;overflow:hidden;background:var(--bg-secondary, #fff);border-radius:12px;box-shadow:0 10px 40px #00000026;border:1px solid var(--border-color, #e5e7eb)}.notification-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:600;border-bottom:1px solid var(--border-color, #e5e7eb)}.notification-see-all{font-size:13px;font-weight:500;color:var(--color-primary, #2563eb);text-decoration:none}.notification-see-all:hover{text-decoration:underline}.notification-loading,.notification-empty{padding:24px 16px;font-size:14px;color:var(--text-muted, #6b7280);text-align:center}.notification-list{max-height:320px;margin:0;padding:8px 0;list-style:none;overflow-y:auto}.notification-item{padding:12px 16px;cursor:pointer;border:none;transition:background .15s ease}.notification-item.unread{background:#2563eb0a}.notification-item:hover{background:#0000000a}.notification-item.unread:hover{background:#2563eb14}.notification-item-title{font-size:14px;font-weight:500;color:var(--text-primary, #111)}.notification-item-body{margin-top:4px;font-size:13px;color:var(--text-secondary, #4b5563);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-item-time{margin-top:6px;font-size:12px;color:var(--text-muted, #9ca3af)}.landing-page{min-height:100vh;background:radial-gradient(circle at top left,#fff5d9,#fff5d9 18%,#eff6ff 55%,#e0f2fe);color:#0f172a;font-family:DM Sans,Trebuchet MS,sans-serif;padding:clamp(2rem,4vw,4rem) clamp(1rem,4vw,5rem) 4rem;position:relative;overflow:hidden}.landing-page:before,.landing-page:after{content:"";position:absolute;border-radius:50%;filter:blur(0px);opacity:.35;pointer-events:none}.landing-page:before{width:420px;height:420px;background:#f97316;top:-160px;right:-120px}.landing-page:after{width:320px;height:320px;background:#3b82f6;bottom:-140px;left:-120px}.landing-hero{display:grid;gap:clamp(2rem,4vw,4rem);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:center;position:relative;z-index:2}.landing-brand,.hero-content{animation:fadeUp .6s ease both}.hero-content{animation-delay:.1s}.landing-brand h1{font-family:Fraunces,Georgia,serif;font-size:clamp(2.5rem,5vw,4rem);line-height:1;margin:0 0 .5rem}.brand-badge{display:inline-flex;align-items:center;gap:.5rem;background:#0f172a;color:#fef3c7;padding:.35rem .85rem;border-radius:999px;font-size:.9rem;font-weight:700;letter-spacing:.02em}.brand-tagline{font-size:1.1rem;color:#1f2937;margin:.25rem 0 0}.hero-content h2{font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem}.hero-content p{font-size:1.1rem;color:#334155;max-width:520px}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0 1.5rem}.ai-strip{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem}.ai-pill{background:#0f172a14;color:#0f172a;border-radius:999px;padding:.45rem .9rem;font-size:.85rem;font-weight:700;letter-spacing:.01em}.cta-primary,.cta-secondary{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:.85rem 1.6rem;font-weight:700;transition:transform .2s ease,box-shadow .2s ease;min-height:48px}.cta-primary{background:linear-gradient(120deg,#0f172a,#2563eb);color:#fff;box-shadow:0 16px 30px #2563eb40}.cta-primary:hover{transform:translateY(-2px)}.cta-secondary{background:#fff;color:#0f172a;border:2px solid #0f172a}.cta-secondary:hover{transform:translateY(-2px)}.trust-row{display:flex;flex-wrap:wrap;gap:.75rem}.trust-pill{background:#fff;border-radius:999px;padding:.5rem 1rem;font-size:.9rem;font-weight:600;box-shadow:0 8px 18px #0f172a1a}.landing-highlights{margin:4rem 0 3rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.landing-license{margin:2rem 0 3.5rem;display:grid;gap:1.5rem;grid-template-columns:minmax(240px,1fr)}.license-header h3{font-family:Fraunces,Georgia,serif;font-size:clamp(1.7rem,3vw,2.2rem);margin-bottom:.6rem}.license-header p{color:#334155;max-width:620px;font-size:1.05rem}.license-grid{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.license-card{background:#fff;border-radius:18px;padding:1.4rem;border:1px solid rgba(15,23,42,.08);box-shadow:0 14px 28px #0f172a14}.license-card h4{font-family:Fraunces,Georgia,serif;font-size:1.3rem;margin-bottom:.25rem}.license-price{display:inline-block;font-size:.85rem;font-weight:600;color:#3b82f6;margin-bottom:.75rem}.license-card ul{margin:0;padding-left:1.2rem;color:#334155}.license-card li{margin-bottom:.5rem}.highlight-card{background:#fff;border-radius:18px;padding:1.5rem;box-shadow:0 15px 30px #0f172a14;border:1px solid rgba(15,23,42,.05);transition:transform .2s ease,box-shadow .2s ease;animation:fadeUp .6s ease both}.highlight-card:nth-child(2){animation-delay:.05s}.highlight-card:nth-child(3){animation-delay:.1s}.highlight-card:nth-child(4){animation-delay:.15s}.highlight-card:nth-child(5){animation-delay:.2s}.highlight-card:nth-child(6){animation-delay:.25s}.highlight-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px #0f172a26}.highlight-card h3{font-family:Fraunces,Georgia,serif;font-size:1.3rem;margin-bottom:.5rem}.landing-showcase{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));background:#0f172a;color:#f8fafc;border-radius:24px;padding:clamp(2rem,4vw,3rem);position:relative;overflow:hidden}.landing-showcase:after{content:"";position:absolute;inset:auto -30% -40% auto;width:420px;height:420px;background:radial-gradient(circle,rgba(34,197,94,.6),transparent 70%);opacity:.7}.showcase-text h3{font-family:Fraunces,Georgia,serif;font-size:1.8rem;margin-bottom:1rem}.showcase-text ul{margin-top:1rem;padding-left:1.2rem}.showcase-text li{margin-bottom:.5rem}.showcase-panel{background:#ffffff1f;border-radius:18px;padding:1.5rem;display:grid;gap:.75rem;position:relative;z-index:1;animation:fadeUp .7s ease both}.panel-chip{background:#fff3;padding:.65rem .9rem;border-radius:12px;font-weight:600}.panel-note{margin-top:.5rem;font-style:italic;color:#fef3c7}@media (max-width: 768px){.landing-page{padding:2rem 1.2rem 3rem}.hero-actions{flex-direction:column;align-items:stretch}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.riddle-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-md);border:2px solid rgba(37,99,235,.12)}.riddle-card.compact{padding:var(--space-6)}.riddle-card .riddle-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.riddle-card .riddle-header h3{margin:0;color:var(--color-slate-800);font-family:var(--font-heading);font-size:var(--text-xl)}.riddle-card .riddle-shuffle{background:var(--color-blue-500);color:#fff;border:none;border-radius:var(--radius-full);padding:var(--space-2) var(--space-5);font-weight:600;cursor:pointer;min-height:48px;transition:var(--transition-base)}.riddle-card .riddle-shuffle:hover{background:var(--color-blue-600);transform:translateY(-1px)}.riddle-card .riddle-status{color:var(--color-slate-600);margin:0}.riddle-card .riddle-status.error{color:var(--color-red-500)}.riddle-card .riddle-question{font-size:var(--text-lg);margin:var(--space-4) 0;color:var(--color-slate-800);line-height:1.6}.riddle-card .riddle-hint{background:var(--color-slate-50);border-left:4px solid var(--color-blue-500);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--color-slate-600);margin-bottom:var(--space-4)}.riddle-card .riddle-hint span{font-weight:600;color:var(--color-slate-800)}.riddle-card .riddle-meta{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4)}.riddle-card .riddle-tag{background:#2563eb1a;color:var(--color-slate-700);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);text-transform:capitalize}.riddle-card .riddle-actions{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.riddle-card .riddle-toggle{background:#fff;border:2px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-weight:600;cursor:pointer;min-height:48px;transition:var(--transition-base)}.riddle-card .riddle-toggle:hover{background:var(--color-accent);color:#fff}.riddle-card .riddle-answer{background:#22c55e1a;border-radius:var(--radius-lg);padding:var(--space-4);color:var(--color-blue-600);font-size:var(--text-lg)}@media (max-width: 768px){.riddle-card{padding:var(--space-6)}.riddle-card .riddle-header{flex-direction:column;align-items:flex-start}}.ui-alert{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;border-left:4px solid transparent;margin-bottom:var(--space-4)}.ui-alert--error{background:var(--color-red-100);color:var(--color-red-700);border-left-color:var(--color-error)}.ui-alert--warning{background:var(--color-amber-100);color:var(--color-orange-700);border-left-color:var(--color-warning)}.ui-alert--success{background:var(--color-green-100);color:var(--color-green-700);border-left-color:var(--color-success)}.ui-alert--info{background:var(--color-blue-100);color:var(--color-blue-700);border-left-color:var(--color-accent)}.ui-alert__icon{flex-shrink:0;font-size:1rem;line-height:1}.ui-alert__content{flex:1;min-width:0}.ui-alert__dismiss{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);font-size:1.2rem;line-height:1;color:inherit;opacity:.6;cursor:pointer;transition:opacity var(--transition-fast),background var(--transition-fast)}.ui-alert__dismiss:hover{opacity:1;background:#00000014}.mood-picker{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.mood-picker--compact{gap:.35rem}.mood-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .6rem;border:2px solid transparent;border-radius:var(--radius-md, 12px);background:#ffffffb3;cursor:pointer;transition:all .2s ease;min-width:60px}.mood-picker--compact .mood-btn{min-width:auto;padding:.4rem .5rem;border-radius:var(--radius-sm, 8px)}.mood-btn:hover:not(:disabled){background:#fffffff2;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.mood-btn--selected{border-color:var(--color-primary, #3b82f6);background:#3b82f61a;box-shadow:0 0 0 3px #3b82f626}.mood-btn--animating{animation:moodBounce .4s ease}@keyframes moodBounce{0%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.95)}to{transform:scale(1)}}.mood-emoji{font-size:1.8rem;line-height:1}.mood-picker--compact .mood-emoji{font-size:1.5rem}.mood-label{font-size:.7rem;font-weight:600;color:var(--color-text-secondary, #64748b);text-transform:uppercase;letter-spacing:.5px}.mood-btn:disabled{opacity:.5;cursor:not-allowed}.ui-stat-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);padding:var(--space-4) var(--space-5);background:#fff;border:1px solid var(--color-slate-200);border-radius:var(--radius-md);border-left:4px solid transparent}.ui-stat-card--highlight{background:var(--color-blue-100);border-left-color:var(--color-accent)}.ui-stat-card--success{background:var(--color-green-100);border-left-color:var(--color-success)}.ui-stat-card--warning{background:var(--color-amber-100);border-left-color:var(--color-warning)}.ui-stat-card--error{background:var(--color-red-100);border-left-color:var(--color-error)}.ui-stat-card__icon{font-size:1.25rem;line-height:1;margin-bottom:var(--space-1)}.ui-stat-card__value{font-size:var(--text-2xl);font-weight:700;color:var(--color-slate-900);line-height:1.2}.ui-stat-card__label{font-size:var(--text-sm);color:var(--color-slate-500);line-height:1.3}.ui-stat-card__trend{font-size:var(--text-xs);font-weight:600;margin-top:var(--space-1)}.ui-stats-grid{display:grid;gap:var(--space-4)}.ui-stats-grid--columns-auto{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.ui-stats-grid--columns-2{grid-template-columns:repeat(2,1fr)}.ui-stats-grid--columns-3{grid-template-columns:repeat(3,1fr)}.ui-stats-grid--columns-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.ui-stats-grid--columns-3,.ui-stats-grid--columns-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.ui-stats-grid--columns-2,.ui-stats-grid--columns-3,.ui-stats-grid--columns-4{grid-template-columns:1fr}}.home-page{animation:fadeIn .5s ease-in}.home-page .hero{text-align:center;padding:var(--spacing-2xl) var(--spacing-md);background:var(--gradient-cta);color:#fff;border-radius:16px;margin-bottom:var(--spacing-2xl);box-shadow:var(--shadow-hover)}.home-page .hero h2{font-size:var(--font-2xl);margin-bottom:var(--spacing-md);line-height:1.2}.home-page .hero p{font-size:var(--font-lg);opacity:.95}.home-page .hero-equipped{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem;animation:heroEquippedPop .4s ease-out}.home-page .hero-title{background:#fff3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:.5rem 1rem;border-radius:var(--radius-full, 999px);font-weight:600;font-size:var(--text-sm);border:1px solid rgba(255,255,255,.3);white-space:nowrap}.home-page .riddle-highlight{margin-bottom:var(--spacing-2xl);display:grid;gap:var(--spacing-md)}.home-page .riddle-link{justify-self:end;font-weight:600;text-decoration:none;color:var(--color-accent, var(--primary-color));padding:var(--space-2, .4rem) var(--space-3, .75rem);border-radius:var(--radius-full, 999px);background:var(--color-slate-100, #f1f5f9);min-height:var(--touch-min, 44px);display:inline-flex;align-items:center;transition:all var(--transition-fast, .15s ease)}.home-page .riddle-link:hover{background:var(--color-slate-200, #e2e8f0);transform:translateY(-1px)}.home-page .mood-checkin-section{background:linear-gradient(135deg,#ede9fe,#dbeafe);border-radius:var(--radius-lg, 1rem);padding:var(--spacing-lg, 1.5rem);margin-bottom:var(--spacing-2xl);text-align:center}.home-page .mood-checkin-header{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.75rem}.home-page .mood-checkin-header h3{margin:0;font-size:1.1rem;color:var(--text-primary, #1e293b)}.home-page .mood-saved-badge{font-size:.8rem;font-weight:700;color:#16a34a;background:#dcfce7;padding:.15rem .5rem;border-radius:999px}.home-page .journal-cta-link{display:inline-block;margin-top:.75rem;font-weight:700;font-size:.9rem;text-decoration:none;color:var(--primary-color, #6366f1);padding:.4rem 1rem;border-radius:999px;background:#fff9;transition:all .15s}.home-page .journal-cta-link:hover{background:#ffffffe6;transform:translateY(-1px)}.home-page .rewards-tile{background:linear-gradient(135deg,#fef3c7,#fde68a,#fcd34d);padding:var(--spacing-xl);border-radius:16px;margin-bottom:var(--spacing-2xl);box-shadow:0 4px 15px #eab30833;border:2px solid #f59e0b}.home-page .rewards-tile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.home-page .rewards-tile-header h3{margin:0;font-size:var(--font-xl);color:#92400e}.home-page .rewards-tile-link{color:#92400e;font-weight:600;text-decoration:none;padding:6px 14px;background:#fff9;border-radius:20px;transition:all .2s;font-size:.9rem}.home-page .rewards-tile-link:hover{background:#ffffffe6;transform:translateY(-1px)}.home-page .rewards-tile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.home-page .rewards-tile-stat{text-align:center;padding:12px 8px;background:#ffffff80;border-radius:12px;transition:transform .2s}.home-page .rewards-tile-stat:hover{transform:translateY(-3px);background:#ffffffb3}.home-page .rewards-tile-icon{font-size:1.5rem;display:block;margin-bottom:4px}.home-page .rewards-tile-value{font-size:1.2rem;font-weight:700;color:#78350f}.home-page .rewards-tile-label{font-size:.75rem;color:#92400e;margin-top:2px}.home-page .rewards-tile-encouragement{text-align:center;padding:10px 16px;background:#fff9;border-radius:10px;font-weight:600;color:#78350f;font-size:.95rem}.home-page .quick-stats{background:#fff;padding:var(--spacing-xl);border-radius:12px;box-shadow:var(--shadow);margin-bottom:var(--spacing-2xl);text-align:center}.home-page .quick-stats h3{color:var(--primary-color);margin-bottom:var(--spacing-lg);font-size:var(--font-xl)}.home-page .quick-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.home-page .quick-stat{padding:var(--space-4, var(--spacing-md));background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-md, 12px);transition:transform var(--transition-base, .2s ease);min-height:var(--touch-min, 44px)}.home-page .quick-stat:hover{transform:translateY(-5px)}.home-page .quick-stat.highlight{background:var(--gradient-cta);color:#fff}.home-page .quick-stat.highlight .stat-number{color:#fff}.home-page .quick-stat.highlight .stat-text{color:#ffffffe6}.home-page .stat-number{font-size:var(--font-xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.home-page .stat-text{font-size:var(--font-xs);color:var(--text-secondary)}.home-page .view-progress-btn{display:inline-block;padding:var(--spacing-md) var(--spacing-xl);background:var(--primary-color);color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:all .3s;font-size:var(--font-md);min-height:var(--touch-target-min)}.home-page .view-progress-btn:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-hover)}.home-page .features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl)}.home-page .feature-card{background:var(--card-background);padding:var(--spacing-xl);border-radius:12px;box-shadow:var(--shadow);transition:all .3s ease;text-align:center}.home-page .feature-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-hover)}.home-page .feature-card h3{color:var(--primary-color);margin-bottom:var(--spacing-sm);font-size:var(--font-lg)}.home-page .feature-card p{color:var(--text-secondary);font-size:var(--font-sm)}.home-page .feature-card.highlight-card{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:2px solid var(--color-blue-500, #3b82f6)}.home-page .feature-card.highlight-card:hover{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.home-page .feature-card.highlight-card h3{color:var(--color-blue-500, #3b82f6)}.home-page .feature-card.feature-card--assignments{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;order:-1}.home-page .feature-card.feature-card--assignments:hover{background:linear-gradient(135deg,#fde68a,#fcd34d);border-color:#d97706}.home-page .feature-card.feature-card--assignments h3{color:#92400e}.home-page .feature-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.home-page .tips{background:var(--card-background);padding:var(--spacing-xl);border-radius:12px;box-shadow:var(--shadow)}.home-page .tips h3{color:var(--primary-color);margin-bottom:var(--spacing-md);font-size:var(--font-xl)}.home-page .tips ul{list-style-position:inside;color:var(--text-secondary)}.home-page .tips li{padding:var(--spacing-sm) 0;font-size:var(--font-md)}.home-page .parent-dashboard{margin-bottom:var(--spacing-xl, 2rem)}.home-page .parent-dashboard h3{color:var(--primary-color, #6366f1);font-size:var(--font-2xl, 1.5rem);margin-bottom:var(--spacing-xs, .5rem)}.home-page .parent-dashboard-subtitle{color:var(--text-secondary, #64748b);margin-bottom:var(--spacing-lg, 1.5rem);font-size:var(--font-md, 1rem)}.home-page .parent-tip{margin-top:var(--spacing-lg, 1.5rem);padding:var(--spacing-md, 1rem) var(--spacing-lg, 1.5rem);background:linear-gradient(135deg,#ede9fe,#e0e7ff);border:2px solid #a78bfa;border-radius:12px}.home-page .parent-tip p{margin:0;color:#4c1d95;font-size:.95rem}.home-page .parent-tip a{color:#7c3aed;font-weight:600;text-decoration:underline}@media (max-width: 768px){.home-page .hero{padding:var(--spacing-xl) var(--spacing-md);border-radius:12px;margin-bottom:var(--spacing-xl)}.home-page .hero h2{font-size:var(--font-xl)}.home-page .hero p{font-size:var(--font-md)}.home-page .quick-stats{padding:var(--spacing-md)}.home-page .quick-stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.home-page .features-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md)}.home-page .feature-card{padding:var(--spacing-lg)}.home-page .feature-icon{font-size:2.5rem}.home-page .tips{padding:var(--spacing-md)}.home-page .riddle-link{justify-self:start}.home-page .rewards-tile-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.home-page .hero{padding:var(--spacing-lg) var(--spacing-sm);border-radius:8px;margin-bottom:var(--spacing-lg)}.home-page .hero h2{font-size:var(--font-lg)}.home-page .hero p{font-size:var(--font-sm)}.home-page .quick-stats{padding:var(--spacing-sm)}.home-page .quick-stats h3{font-size:var(--font-lg)}.home-page .quick-stats-grid{grid-template-columns:1fr 1fr;gap:var(--spacing-xs)}.home-page .quick-stat{padding:var(--spacing-sm)}.home-page .stat-number{font-size:var(--font-lg)}.home-page .features-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.home-page .feature-card{padding:var(--spacing-md)}.home-page .feature-icon{font-size:2rem}.home-page .view-progress-btn{width:100%;text-align:center}.home-page .rewards-tile{padding:var(--spacing-md)}.home-page .rewards-tile-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.home-page .rewards-tile-value{font-size:1rem}.home-page .rewards-tile-header h3{font-size:var(--font-lg)}}@keyframes heroEquippedPop{0%{opacity:0;transform:scale(.8) translateY(-10px)}60%{transform:scale(1.05) translateY(0)}to{opacity:1;transform:scale(1)}}.spelling-techniques-guide{background:var(--color-slate-50);padding:var(--space-8);border-radius:var(--radius-lg);margin:var(--space-10) 0;max-width:900px;margin-left:auto;margin-right:auto}.spelling-techniques-guide h3{color:var(--color-slate-800);font-family:var(--font-heading);text-align:center;margin-bottom:var(--space-10);font-size:var(--text-2xl);border-bottom:3px solid var(--color-accent);padding-bottom:var(--space-4)}.technique-section{background:var(--bg-card);padding:var(--space-6);margin-bottom:var(--space-6);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition-base)}.technique-section:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.technique-section h4{color:var(--color-accent);font-family:var(--font-heading);margin-bottom:var(--space-4);font-size:var(--text-xl);display:flex;align-items:center;gap:var(--space-2)}.technique-section p{color:var(--color-slate-600);line-height:1.6;margin-bottom:var(--space-3)}.technique-section ul{list-style:none;padding-left:0}.technique-section ul li{padding:var(--space-2) 0;padding-left:var(--space-6);position:relative;color:var(--color-slate-700);line-height:1.6}.technique-section ul li:before{content:"✓";position:absolute;left:0;color:var(--color-blue-500);font-weight:700}.technique-section ol{padding-left:var(--space-6);color:var(--color-slate-700)}.technique-section ol li{padding:var(--space-1) 0;line-height:1.6}.technique-section strong{color:var(--color-slate-800);font-weight:600}.common-mistakes{background:var(--color-yellow-50);padding:var(--space-4);border-radius:var(--radius-md);border-left:4px solid var(--color-orange-500)}.common-mistakes del{color:var(--color-red-500);text-decoration:line-through}.pro-tip{background:var(--gradient-cta);color:#fff}.pro-tip h4{color:#fff}.pro-tip p{color:#fffffff2}.tips-section{background:#2563eb14;padding:var(--space-6);border-radius:var(--radius-md);margin-top:var(--space-8);border-left:4px solid var(--color-accent)}.tips-section h4{color:var(--color-slate-800);font-family:var(--font-heading);margin-bottom:var(--space-4);font-size:var(--text-lg)}.tips-section ul{list-style:none;padding-left:0}.tips-section ul li{padding:var(--space-2) 0;color:var(--color-slate-700);font-size:var(--text-base);line-height:1.5}@media (max-width: 768px){.spelling-techniques-guide{padding:var(--space-6);margin:var(--space-6) 0}.technique-section{padding:var(--space-4)}.spelling-techniques-guide h3{font-size:var(--text-xl)}.technique-section h4{font-size:var(--text-lg)}}@media (max-width: 480px){.spelling-techniques-guide{padding:var(--space-4);margin:var(--space-4) 0;border-radius:var(--radius-md)}.technique-section{padding:var(--space-3);margin-bottom:var(--space-4)}.spelling-techniques-guide h3{font-size:var(--text-lg);margin-bottom:var(--space-6)}.technique-section h4{font-size:var(--text-base);flex-wrap:wrap}.technique-section p,.technique-section ul li,.technique-section ol li{font-size:var(--text-sm)}.tips-section{padding:var(--space-4)}.tips-section h4{font-size:var(--text-base)}}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);font-family:var(--font-body);font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.ui-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.ui-btn--sm{padding:var(--space-2) var(--space-4);min-height:36px;font-size:var(--text-sm)}.ui-btn--md{padding:var(--space-3) var(--space-6);min-height:var(--touch-min);font-size:var(--text-base)}.ui-btn--lg{padding:var(--space-4) var(--space-8);min-height:52px;font-size:var(--text-lg)}.ui-btn--primary{background:var(--gradient-cta);color:#fff;box-shadow:var(--shadow-cta)}.ui-btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 35px #2563eb4d}.ui-btn--cta{background:var(--gradient-cta);color:#fff;box-shadow:var(--shadow-cta)}.ui-btn--cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 35px #2563eb4d}.ui-btn--secondary{background:#fff;color:var(--color-slate-700);border:1px solid var(--color-slate-300)}.ui-btn--secondary:hover:not(:disabled){border-color:var(--color-slate-400);background:var(--color-slate-50)}.ui-btn--ghost{background:transparent;color:var(--color-slate-900)}.ui-btn--ghost:hover:not(:disabled){background:#0f172a0d}.ui-btn--success{background:var(--color-success);color:#fff}.ui-btn--success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 25px #22c55e4d}.ui-btn--danger{background:var(--color-error);color:#fff}.ui-btn--danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 25px #ef44444d}.ui-btn--full{width:100%}.ui-btn--loading{position:relative;color:transparent!important}.ui-btn__spinner{position:absolute;width:20px;height:20px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;opacity:.8}.ui-btn__icon{display:flex;align-items:center;justify-content:center}.ui-btn__text{display:inline-flex;align-items:center}.ui-btn--loading .ui-btn__text,.ui-btn--loading .ui-btn__icon{visibility:hidden}.ui-btn--loading .ui-btn__spinner{color:#fff}.loading-spinner{display:block;border-style:solid;border-color:var(--color-slate-200);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite;aspect-ratio:1;flex-shrink:0;box-sizing:border-box}.loading-spinner--sm{width:24px;height:24px;min-width:24px;min-height:24px;border-width:3px}.loading-spinner--md{width:40px;height:40px;min-width:40px;min-height:40px;border-width:4px}.loading-spinner--lg{width:56px;height:56px;min-width:56px;min-height:56px;border-width:5px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-4)}.loading-container--full{min-height:400px;width:100%}.loading-message{color:var(--color-slate-500);font-size:var(--text-sm);text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn .2s ease-out}.modal-content{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:fadeInScale .3s ease-out}.modal-content--sm{max-width:360px}.modal-content--md{max-width:500px}.modal-content--lg{max-width:680px}.modal-content--xl{max-width:900px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-slate-200)}.modal-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-900);margin:0}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-slate-100);border:none;border-radius:var(--radius-sm);color:var(--color-slate-600);font-size:1.5rem;line-height:1;cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-slate-200);color:var(--color-slate-900)}.modal-body{padding:var(--space-6);overflow-y:auto;flex:1}.modal-footer{display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-slate-200);background:var(--color-slate-50)}.progress-bar{display:flex;align-items:center;gap:var(--space-3);width:100%}.progress-bar--sm .progress-bar__track{height:6px}.progress-bar--sm .progress-bar__label{font-size:var(--text-xs)}.progress-bar--md .progress-bar__track{height:8px}.progress-bar--md .progress-bar__label{font-size:var(--text-sm)}.progress-bar--lg .progress-bar__track{height:12px}.progress-bar--lg .progress-bar__label{font-size:var(--text-base)}.progress-bar__track{flex:1;background:var(--color-slate-200);border-radius:var(--radius-full);overflow:hidden}.progress-bar__fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-base)}.progress-bar__fill--default{background:var(--color-accent)}.progress-bar__fill--success{background:var(--color-success)}.progress-bar__fill--warning{background:var(--color-warning)}.progress-bar__fill--error{background:var(--color-error)}.progress-bar__fill--animated{animation:progressPulse 1.5s ease-in-out infinite}.progress-bar__label{color:var(--color-slate-600);font-weight:600;min-width:3em;text-align:right}.feedback{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border-left:4px solid transparent}.feedback--animated{animation:fadeIn .3s ease-out}.feedback--correct{background:var(--color-green-100);border-color:var(--color-success)}.feedback--correct .feedback__icon{color:var(--color-green-600);background:var(--color-green-100)}.feedback--correct .feedback__message{color:var(--color-green-700)}.feedback--incorrect{background:var(--color-red-100);border-color:var(--color-error)}.feedback--incorrect .feedback__icon{color:var(--color-red-600);background:var(--color-red-100)}.feedback--incorrect .feedback__message{color:var(--color-red-700)}.feedback--neutral{background:var(--color-slate-100);border-color:var(--color-slate-400)}.feedback--neutral .feedback__icon{color:var(--color-slate-600);background:var(--color-slate-200)}.feedback--neutral .feedback__message{color:var(--color-slate-700)}.feedback--info{background:var(--color-blue-50);border-color:var(--color-accent)}.feedback--info .feedback__icon{color:var(--color-blue-600);background:var(--color-blue-100)}.feedback--info .feedback__message{color:var(--color-blue-700)}.feedback__icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:var(--text-lg);font-weight:700;flex-shrink:0}.feedback__content{flex:1;min-width:0}.feedback__message{font-weight:600;font-size:var(--text-base);margin:0}.feedback__detail{font-size:var(--text-sm);color:var(--color-slate-600);margin:var(--space-1) 0 0}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideUp .3s ease-out;min-width:280px;max-width:400px}.toast--exiting{animation:fadeOut .3s ease-out forwards}.toast--success{background:var(--color-green-100);border-left:4px solid var(--color-success)}.toast--success .toast__icon{color:var(--color-success)}.toast--error{background:var(--color-red-100);border-left:4px solid var(--color-error)}.toast--error .toast__icon{color:var(--color-error)}.toast--warning{background:var(--color-amber-100);border-left:4px solid var(--color-warning)}.toast--warning .toast__icon{color:var(--color-warning)}.toast--info{background:var(--color-blue-50);border-left:4px solid var(--color-accent)}.toast--info .toast__icon{color:var(--color-accent)}.toast__icon{font-size:var(--text-lg);font-weight:700;flex-shrink:0}.toast__message{flex:1;font-size:var(--text-sm);font-weight:500;color:var(--color-slate-800)}.toast__close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-slate-500);font-size:1.2rem;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.toast__close:hover{background:#0000001a;color:var(--color-slate-700)}.toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:1100;display:flex;flex-direction:column;gap:var(--space-3);pointer-events:none}@media (max-width: 480px){.toast-container{left:var(--space-4);right:var(--space-4);bottom:var(--space-4)}}.toast-container .toast{pointer-events:auto}.mode-toggle{display:inline-flex;background:var(--color-slate-100);border-radius:var(--radius-full);padding:var(--space-1);gap:var(--space-1)}.mode-toggle--full{width:100%;display:flex}.mode-toggle--sm .mode-toggle__btn{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);min-height:32px}.mode-toggle--md .mode-toggle__btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);min-height:40px}.mode-toggle--lg .mode-toggle__btn{padding:var(--space-3) var(--space-6);font-size:var(--text-base);min-height:var(--touch-min)}.mode-toggle__btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex:1;border-radius:var(--radius-full);border:none;background:transparent;font-family:var(--font-body);font-weight:600;color:var(--color-slate-600);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.mode-toggle__btn:hover:not(:disabled):not(.mode-toggle__btn--active){background:#ffffff80;color:var(--color-slate-700)}.mode-toggle__btn--active{background:var(--color-white);color:var(--color-slate-900);box-shadow:var(--shadow-sm)}.mode-toggle__btn:disabled{opacity:.5;cursor:not-allowed}.mode-toggle__icon{font-size:1.1em}.option-btn{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;background:var(--color-white);border:2px solid var(--color-slate-200);border-radius:var(--radius-md);font-family:var(--font-body);font-weight:500;color:var(--color-slate-700);cursor:pointer;transition:all var(--transition-fast)}.option-btn--sm{padding:var(--space-2) var(--space-3);min-height:40px;font-size:var(--text-sm)}.option-btn--md{padding:var(--space-3) var(--space-4);min-height:var(--touch-min);font-size:var(--text-base)}.option-btn--lg{padding:var(--space-4) var(--space-5);min-height:56px;font-size:var(--text-lg)}.option-btn--default:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-blue-50);transform:translateY(-2px);box-shadow:var(--shadow-md)}.option-btn--selected{border-color:var(--color-accent);background:var(--color-blue-50);color:var(--color-accent)}.option-btn--selected .option-btn__label{background:var(--color-accent);color:#fff}.option-btn--correct{border-color:var(--color-success);background:var(--color-green-100);color:var(--color-green-700);animation:pop .3s ease-out}.option-btn--correct .option-btn__label{background:var(--color-success);color:#fff}.option-btn--incorrect{border-color:var(--color-error);background:var(--color-red-100);color:var(--color-red-700);animation:shake .4s ease-in-out}.option-btn--incorrect .option-btn__label{background:var(--color-error);color:#fff}.option-btn:disabled,.option-btn--disabled{opacity:.7;cursor:not-allowed;transform:none!important}.option-btn__label{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-slate-200);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:700;color:var(--color-slate-600);flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.option-btn__content{flex:1;min-width:0}.ui-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid rgba(15,23,42,.05);overflow:hidden}.ui-card--padding-none .ui-card__body{padding:0}.ui-card--padding-sm .ui-card__body{padding:var(--space-4)}.ui-card--padding-md .ui-card__body{padding:var(--space-6)}.ui-card--padding-lg .ui-card__body{padding:var(--space-8)}.ui-card--hoverable{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.ui-card--hoverable:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.ui-card--clickable{cursor:pointer}.ui-card--clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ui-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6) 0}.ui-card__header-content{flex:1;min-width:0}.ui-card__title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-900);margin:0}.ui-card__subtitle{font-size:var(--text-sm);color:var(--color-slate-500);margin:var(--space-1) 0 0}.ui-card__header-action{flex-shrink:0}.ui-card__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-slate-200);background:var(--color-slate-50)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-body);font-weight:600;white-space:nowrap}.ui-badge--sm{padding:2px var(--space-2);font-size:var(--text-xs);border-radius:4px}.ui-badge--md{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:6px}.ui-badge--pill{border-radius:var(--radius-full)}.ui-badge--default{background:var(--color-slate-200);color:var(--color-slate-700)}.ui-badge--primary{background:var(--color-blue-100);color:var(--color-blue-700)}.ui-badge--success{background:var(--color-green-100);color:var(--color-green-700)}.ui-badge--warning{background:var(--color-amber-100);color:var(--color-orange-700)}.ui-badge--error{background:var(--color-red-100);color:var(--color-red-700)}.ui-badge--info{background:var(--color-blue-50);color:var(--color-blue-600)}.ui-badge--outline{background:transparent;border:1px solid currentColor}.ui-badge--outline.ui-badge--default{color:var(--color-slate-600)}.ui-badge--outline.ui-badge--primary{color:var(--color-accent)}.ui-badge--outline.ui-badge--success{color:var(--color-success)}.ui-badge--outline.ui-badge--warning{color:var(--color-warning)}.ui-badge--outline.ui-badge--error{color:var(--color-error)}.ui-badge--outline.ui-badge--info{color:var(--color-blue-500)}.ui-badge__icon{font-size:1em;line-height:1}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--color-slate-500)}.ui-empty--md{padding:var(--space-10) var(--space-6)}.ui-empty--sm{padding:var(--space-6) var(--space-4)}.ui-empty--cell{padding:var(--space-8) var(--space-4)}.ui-empty__icon{margin-bottom:var(--space-3);line-height:1}.ui-empty--md .ui-empty__icon{font-size:3rem}.ui-empty--sm .ui-empty__icon{font-size:2rem}.ui-empty__title{margin:0 0 var(--space-2);color:var(--color-slate-700);font-family:var(--font-heading);font-weight:600}.ui-empty--md .ui-empty__title{font-size:var(--text-lg)}.ui-empty--sm .ui-empty__title{font-size:var(--text-base)}.ui-empty__message{margin:0;max-width:400px;line-height:1.5}.ui-empty--md .ui-empty__message{font-size:var(--text-base)}.ui-empty--sm .ui-empty__message{font-size:var(--text-sm)}.ui-empty__action{margin-top:var(--space-4)}.ui-data-table{overflow-x:auto;border:1px solid var(--color-slate-200);border-radius:var(--radius-md);background:#fff}.ui-data-table__table{width:100%;border-collapse:collapse}.ui-data-table__table--clickable .ui-data-table__tr{cursor:pointer}.ui-data-table__th{background:var(--color-slate-50);padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-sm);font-weight:600;color:var(--color-slate-700);white-space:nowrap;border-bottom:1px solid var(--color-slate-200)}.ui-data-table__th--sticky{position:sticky;top:0;z-index:1}.ui-data-table__td{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-slate-900);border-top:1px solid var(--color-slate-100);vertical-align:middle}.ui-data-table__tr{transition:background var(--transition-fast)}.ui-data-table__tr:first-child .ui-data-table__td{border-top:none}.ui-data-table__tr:hover{background:var(--color-slate-50)}.ui-data-table__actions{display:flex;align-items:center;gap:var(--space-2);white-space:nowrap}.ui-data-table__loading,.ui-data-table__empty{display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-4)}@media (max-width: 640px){.ui-data-table{border-radius:var(--radius-sm)}.ui-data-table__th,.ui-data-table__td{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}}.ui-search-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#fff;border:1px solid var(--color-slate-200);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ui-search-bar:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb, 59, 130, 246),.15)}.ui-search-bar .ui-search-bar__icon{flex-shrink:0;font-size:.9rem;line-height:1;opacity:.5}.ui-search-bar .ui-search-bar__input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:var(--text-sm);color:var(--color-slate-900);padding:var(--space-1) 0}.ui-search-bar .ui-search-bar__input::placeholder{color:var(--color-slate-400)}.ui-search-bar .ui-search-bar__clear{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);font-size:.75rem;line-height:1;color:var(--color-slate-400);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.ui-search-bar .ui-search-bar__clear:hover{color:var(--color-slate-700);background:var(--color-slate-100)}.ui-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);padding:var(--space-3) 0}.ui-filter-bar .ui-filter-bar__group{display:flex;flex-direction:column;gap:var(--space-1)}.ui-filter-bar .ui-filter-bar__label{font-size:var(--text-xs);font-weight:500;color:var(--color-slate-500);line-height:1.2}.ui-filter-bar .ui-filter-bar__select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E") no-repeat right var(--space-3) center;border:1px solid var(--color-slate-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-slate-900);min-height:36px;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ui-filter-bar .ui-filter-bar__select:hover{border-color:var(--color-slate-300)}.ui-filter-bar .ui-filter-bar__select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}@media (max-width: 640px){.ui-filter-bar{flex-direction:column;align-items:stretch}.ui-filter-bar .ui-filter-bar__select{width:100%}}.ui-tabs{display:flex;gap:var(--space-1);margin-bottom:10px}.ui-tabs--underline{border-bottom:2px solid var(--color-slate-200);gap:0}.ui-tabs--boxed{background:var(--color-slate-100);border-radius:var(--radius-md);padding:var(--space-1)}.ui-tabs__tab{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;color:var(--color-slate-600);background:none;border:none;cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.ui-tabs__tab:hover:not(:disabled){color:var(--color-slate-900)}.ui-tabs--underline .ui-tabs__tab{margin-bottom:-2px;border-bottom:2px solid transparent;border-radius:0;padding:var(--space-3) var(--space-4)}.ui-tabs--underline .ui-tabs__tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.ui-tabs--boxed .ui-tabs__tab{border-radius:var(--radius-sm)}.ui-tabs--boxed .ui-tabs__tab--active{background:#fff;color:var(--color-slate-900);font-weight:600;box-shadow:0 1px 3px #0000001a}.ui-tabs__tab--disabled{opacity:.4;cursor:not-allowed}.ui-tabs__icon{display:flex;align-items:center;font-size:1em;line-height:1}.ui-tabs__label{line-height:1}.ui-tabs__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-1);font-size:var(--text-xs);font-weight:600;line-height:1;background:var(--color-slate-200);color:var(--color-slate-600);border-radius:var(--radius-full)}.ui-tabs__tab--active .ui-tabs__count{background:var(--color-blue-100);color:var(--color-accent)}.ui-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.ui-pagination__btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);min-height:36px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--color-slate-900);background:#fff;border:2px solid var(--color-slate-900);border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.ui-pagination__btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.ui-pagination__btn--disabled,.ui-pagination__btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important}.ui-pagination__info{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;color:var(--color-slate-600);white-space:nowrap}.ui-form-field{display:flex;flex-direction:column;gap:var(--space-1)}.ui-form-field__label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--color-slate-700);line-height:1.4}.ui-form-field__required{color:var(--color-error);margin-left:var(--space-1)}.ui-form-field__error{font-size:var(--text-xs);font-weight:500;color:var(--color-error);margin:0;line-height:1.4}.ui-form-field__hint{font-size:var(--text-xs);font-weight:400;color:var(--color-slate-500);margin:0;line-height:1.4}.ui-form-field--error input,.ui-form-field--error textarea,.ui-form-field--error select{border-color:var(--color-error)!important;box-shadow:0 0 0 2px #ef444426}.results-summary{text-align:center;padding:var(--space-6);animation:fadeInScale .4s ease-out}.results-summary__header{margin-bottom:var(--space-6)}.results-summary__emoji{font-size:3rem;display:block;margin-bottom:var(--space-3);animation:bounceIn .6s ease-out}.results-summary__title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--color-slate-900);margin:0 0 var(--space-2)}.results-summary__feedback{font-size:var(--text-lg);color:var(--color-slate-600);margin:0}.results-summary__score{margin-bottom:var(--space-6)}.results-summary__score-circle{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:140px;height:140px;border-radius:50%;background:var(--color-slate-100);border:4px solid var(--color-slate-200)}.results-summary__score-circle[data-variant=success]{background:var(--color-green-100);border-color:var(--color-success)}.results-summary__score-circle[data-variant=warning]{background:var(--color-amber-100);border-color:var(--color-warning)}.results-summary__score-circle[data-variant=error]{background:var(--color-red-100);border-color:var(--color-error)}.results-summary__percentage{font-family:var(--font-heading);font-size:var(--text-4xl);font-weight:700;color:var(--color-slate-900);line-height:1}.results-summary__fraction{font-size:var(--text-sm);color:var(--color-slate-600);margin-top:var(--space-1)}.results-summary__breakdown{display:flex;justify-content:center;gap:var(--space-8);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-slate-200)}.results-summary__stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.results-summary__stat--correct .results-summary__stat-icon{color:var(--color-success)}.results-summary__stat--incorrect .results-summary__stat-icon{color:var(--color-error)}.results-summary__stat-icon{font-size:var(--text-xl);color:var(--color-slate-500)}.results-summary__stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--color-slate-900)}.results-summary__stat-label{font-size:var(--text-sm);color:var(--color-slate-500)}.results-summary__extra-stats{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-5)}.results-summary__extra-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md)}.results-summary__extra-stat-value{font-weight:700;color:var(--color-slate-900)}.results-summary__extra-stat-label{font-size:var(--text-xs);color:var(--color-slate-500)}.results-summary__actions{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-6)}@media (max-width: 480px){.results-summary__breakdown{gap:var(--space-4)}.results-summary__extra-stats{flex-wrap:wrap}}.confirm-dialog{text-align:center;padding:var(--space-4) 0}.confirm-dialog__icon{font-size:3rem;margin-bottom:var(--space-4)}.confirm-dialog__title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-900);margin:0 0 var(--space-2)}.confirm-dialog__message{font-size:var(--text-base);color:var(--color-slate-600);margin:0 0 var(--space-6);line-height:1.5}.confirm-dialog__actions{display:flex;gap:var(--space-3);justify-content:center}.spelling-page{animation:fadeIn .5s ease-in}.spelling-page h2{color:var(--color-slate-900);font-size:var(--text-3xl);font-family:var(--font-heading);margin-bottom:var(--space-8);text-align:center}.spelling-page .score-board{background:var(--bg-card);padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);text-align:center;margin-bottom:var(--space-8);box-shadow:var(--shadow-md)}.spelling-page .score-board p{font-size:var(--text-lg);font-weight:600;color:var(--color-accent);margin:0}.spelling-page .spelling-card{background:var(--bg-card);padding:var(--space-12);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-8)}.spelling-page .word-section{text-align:center;margin-bottom:var(--space-8)}.spelling-page .speak-btn{padding:var(--space-4) var(--space-8);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-8);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body)}.spelling-page .speak-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-cta)}.spelling-page .word-preview{margin-top:var(--space-3);padding:var(--space-4) var(--space-6);background:linear-gradient(135deg,var(--color-orange-100, #fef3c7),var(--color-orange-200, #fde68a));border:2px solid var(--color-orange-500);border-radius:var(--radius-sm);text-align:center;animation:fadeInWord .3s ease-out}.spelling-page .word-preview-text{font-size:1.8rem;font-weight:700;color:var(--color-orange-700);letter-spacing:.15em;font-family:var(--font-heading, var(--font-body))}.spelling-page .hint-section{background:var(--color-slate-50);padding:var(--space-6);border-radius:var(--radius-sm);text-align:left;margin-top:var(--space-4)}.spelling-page .hint-section.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.spelling-page .hint-section p{margin:var(--space-2) 0;line-height:1.6;color:var(--color-slate-600)}.spelling-page .answer-section{max-width:500px;margin:0 auto}.spelling-page .spelling-input{width:100%;padding:var(--space-4);font-size:var(--text-2xl);border:2px solid var(--color-slate-200);border-radius:var(--radius-sm);text-align:center;margin-bottom:var(--space-4);font-family:var(--font-body);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.spelling-page .spelling-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb26}.spelling-page .correct-word{font-size:var(--text-3xl);font-weight:700;margin:var(--space-4) 0}.spelling-page .tips-section{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.spelling-page .tips-section h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-4)}.spelling-page .tips-section ul{list-style-position:inside;color:var(--color-slate-600)}.spelling-page .tips-section li{padding:var(--space-2) 0}.spelling-page .mnemonic-box{background:var(--gradient-cta);color:#fff;padding:var(--space-4);border-radius:var(--radius-sm);margin-top:var(--space-4)}.spelling-page .mnemonic-box p{color:#fff!important;margin:0;font-weight:600}.spelling-page .pattern-box{background:#2563eb1a;border-left:4px solid var(--color-accent);padding:var(--space-4);border-radius:var(--radius-sm);margin-top:var(--space-4)}.spelling-page .pattern-box p{color:var(--color-accent)!important;margin:0}.spelling-page .warning-box{background:var(--color-amber-100);border-left:4px solid var(--color-orange-500);padding:var(--space-4);border-radius:var(--radius-sm);margin-top:var(--space-4)}.spelling-page .warning-box p{color:var(--color-orange-500)!important;margin:0}.spelling-page .warning-box del{color:var(--color-red-500);text-decoration:line-through;font-weight:600}.spelling-page .feedback-hint{background:#ffffffb3;padding:var(--space-3);border-radius:var(--radius-sm);margin-top:var(--space-3);text-align:left}.spelling-page .feedback-hint p{margin:0;font-size:var(--text-sm)}.spelling-page .techniques-toggle{text-align:center;margin:var(--space-8) 0}.spelling-page .techniques-btn{padding:var(--space-4) var(--space-8);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);font-family:var(--font-body)}.spelling-page .techniques-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}@media (max-width: 768px){.spelling-page h2{font-size:var(--text-2xl);margin-bottom:var(--space-6)}.spelling-page .spelling-card{padding:var(--space-6)}.spelling-page .spelling-input{font-size:var(--text-lg);padding:var(--space-4)}.spelling-page .speak-btn{width:100%;min-height:var(--touch-min)}}@media (max-width: 480px){.spelling-page h2{font-size:var(--text-xl)}.spelling-page .spelling-card{padding:var(--space-4);border-radius:var(--radius-lg)}.spelling-page .spelling-input{font-size:var(--text-base)}.spelling-page .answer-section{max-width:100%}}.vocabulary-page{animation:fadeIn .5s ease-in}.vocabulary-page h2{color:var(--color-slate-900);font-size:var(--text-3xl);font-family:var(--font-heading);margin-bottom:var(--space-8);text-align:center}.vocabulary-page .vocabulary-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-8)}.vocabulary-page .word-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);flex-wrap:wrap;gap:var(--space-4)}.vocabulary-page .word-header h3{font-size:var(--text-3xl);font-family:var(--font-heading);color:var(--color-slate-900)}.vocabulary-page .word-type{background:var(--color-accent);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.vocabulary-page .reveal-btn{width:100%;padding:var(--space-4);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-4);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body)}.vocabulary-page .reveal-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.vocabulary-page .word-details{background:var(--color-slate-50);padding:var(--space-8);border-radius:var(--radius-sm)}.vocabulary-page .word-details p{margin:var(--space-4) 0;line-height:1.8}.vocabulary-page .definition{font-size:var(--text-lg);color:var(--color-slate-900)}.vocabulary-page .example{font-style:italic;color:var(--color-slate-500)}.vocabulary-page .synonyms,.vocabulary-page .antonyms{color:var(--color-slate-500)}.vocabulary-page .quiz-section{padding:var(--space-4) 0}.vocabulary-page .quiz-question{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-8);text-align:center;color:var(--color-slate-900)}.vocabulary-page .quiz-feedback{background:var(--color-slate-50);padding:var(--space-6);border-radius:var(--radius-sm);margin-top:var(--space-4)}.vocabulary-page .correct-feedback{color:var(--color-blue-500);font-weight:600;font-size:var(--text-lg);margin-bottom:var(--space-4)}.vocabulary-page .incorrect-feedback{color:var(--color-red-500);font-weight:600;font-size:var(--text-lg);margin-bottom:var(--space-4)}.vocabulary-page .example-sentence{font-style:italic;color:var(--color-slate-500)}.vocabulary-page .navigation{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-8);padding-top:var(--space-8);border-top:2px solid var(--color-slate-200)}.vocabulary-page .word-counter{font-weight:600;color:var(--color-slate-500)}.vocabulary-page .study-tips{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.vocabulary-page .study-tips h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-4)}.vocabulary-page .study-tips ul{list-style-position:inside;color:var(--color-slate-600)}.vocabulary-page .study-tips li{padding:var(--space-2) 0}@media (max-width: 768px){.vocabulary-page h2{font-size:var(--text-2xl);margin-bottom:var(--space-6)}.vocabulary-page .vocabulary-card{padding:var(--space-6)}.vocabulary-page .word-header{flex-direction:column;align-items:flex-start}.vocabulary-page .word-header h3{font-size:var(--text-2xl)}.vocabulary-page .navigation{flex-direction:column;gap:var(--space-4);align-items:stretch}}@media (max-width: 480px){.vocabulary-page h2{font-size:var(--text-xl)}.vocabulary-page .vocabulary-card{padding:var(--space-4);border-radius:var(--radius-lg)}.vocabulary-page .word-header h3{font-size:var(--text-xl)}.vocabulary-page .word-details{padding:var(--space-4)}.vocabulary-page .quiz-question{font-size:var(--text-base)}}.fill-blanks-page{animation:fadeIn .5s ease-out;padding:var(--space-6);max-width:900px;margin:0 auto}.fill-blanks-page h2{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-3xl);margin-bottom:var(--space-6);text-align:center}.fill-blanks-page .exercise-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-6);border:1px solid var(--color-slate-200)}.fill-blanks-page .sentence-section{margin-bottom:var(--space-6)}.fill-blanks-page .sentence-display{font-size:var(--text-xl);line-height:2;text-align:center;padding:var(--space-6);background:var(--color-slate-50);border-radius:var(--radius-lg)}.fill-blanks-page .blank-space{display:inline-block;min-width:100px;text-align:center;border-bottom:3px solid var(--color-accent);padding:0 var(--space-2);margin:0 var(--space-1);color:var(--color-slate-900)}.fill-blanks-page .correct-answer{color:var(--color-blue-500);font-weight:700}.fill-blanks-page .incorrect-answer{color:var(--color-red-500);font-weight:700}.fill-blanks-page .hint{background:var(--color-yellow-50);border-left:4px solid var(--color-orange-500);padding:var(--space-4) var(--space-5);margin:var(--space-4) 0;border-radius:var(--radius-md)}.fill-blanks-page .hint p{color:var(--color-slate-700);margin:0}.fill-blanks-page .options-section{margin:var(--space-6) 0}.fill-blanks-page .instruction{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-4);text-align:center;color:var(--color-slate-700)}.fill-blanks-page .options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.fill-blanks-page .complete-sentence{font-size:var(--text-lg);margin:var(--space-4) 0;padding:var(--space-4);background:#fff;border-radius:var(--radius-md)}.fill-blanks-page .explanation{font-style:italic;color:var(--color-slate-600);margin-top:var(--space-4)}.fill-blanks-page .progress{text-align:center;margin-top:var(--space-6);padding-top:var(--space-6);border-top:2px solid var(--color-slate-200);font-weight:600;color:var(--color-slate-600)}.fill-blanks-page .tips-section{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.fill-blanks-page .tips-section h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-4)}.fill-blanks-page .tips-section ul{list-style-position:inside;color:var(--color-slate-600)}.fill-blanks-page .tips-section li{padding:var(--space-2) 0}@media (max-width: 768px){.fill-blanks-page{padding:var(--space-4)}.fill-blanks-page h2{font-size:var(--text-2xl)}.fill-blanks-page .exercise-card{padding:var(--space-5)}.fill-blanks-page .sentence-display{font-size:var(--text-lg);padding:var(--space-4)}.fill-blanks-page .options-grid{grid-template-columns:1fr;gap:var(--space-3)}}@media (max-width: 480px){.fill-blanks-page h2{font-size:var(--text-xl)}.fill-blanks-page .exercise-card{padding:var(--space-4);border-radius:var(--radius-lg)}.fill-blanks-page .sentence-display{font-size:var(--text-base);padding:var(--space-3);line-height:1.8}.fill-blanks-page .blank-space{min-width:60px;font-size:var(--text-sm)}}.word-choice-practice-page{animation:fadeIn .5s ease-out;padding:var(--space-6);max-width:900px;margin:0 auto}.word-choice-practice-page h2{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-3xl);margin-bottom:var(--space-6);text-align:center}.writing-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-6);border:1px solid var(--color-slate-200)}.context{background:#2563eb0d;padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border-left:4px solid var(--color-accent)}.context h4{color:var(--color-accent);margin-bottom:var(--space-2);font-family:var(--font-heading)}.text-section{margin:var(--space-6) 0}.passage{background:var(--color-slate-50);padding:var(--space-6);border-radius:var(--radius-lg);font-size:var(--text-lg);line-height:2}.blank-dropdown{display:inline-block;min-width:120px;padding:var(--space-1) var(--space-2);background:#fff;border-bottom:3px solid var(--color-accent);font-weight:700;text-align:center}.blank-dropdown.correct-choice{color:var(--color-blue-500);border-bottom-color:var(--color-blue-500)}.blank-dropdown.incorrect-choice{color:var(--color-red-500);border-bottom-color:var(--color-red-500)}.blanks-section{margin:var(--space-6) 0}.blanks-section h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5)}.blank-selection{background:var(--color-slate-50);padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}.blank-label{font-weight:600;margin-bottom:var(--space-4);color:var(--color-slate-900)}.word-options{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.word-option{padding:var(--space-3) var(--space-5);background:#fff;border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-weight:600;transition:var(--transition-base);cursor:pointer}.word-option:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-slate-100);transform:translateY(-2px)}.word-option.selected{border-color:var(--color-accent);background:#2563eb1a}.word-option.best-choice{border-color:var(--color-blue-500);background:#22c55e1a}.word-option.wrong-choice{border-color:var(--color-red-500);background:#ef44441a}.word-explanation{background:#fff;padding:var(--space-4);border-radius:var(--radius-md);margin-top:var(--space-4);border-left:3px solid var(--color-blue-500)}.word-explanation p{margin:var(--space-2) 0;color:var(--color-slate-600)}.word-explanation strong{color:var(--color-slate-900)}.check-btn{width:100%;max-width:300px;display:block;margin:var(--space-6) auto;padding:var(--space-4) var(--space-6);background:var(--gradient-cta);color:#fff;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;border:none;cursor:pointer;transition:var(--transition-base)}.check-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-cta)}.check-btn:disabled{opacity:.5;cursor:not-allowed}.feedback-section{text-align:center;padding:var(--space-6);background:var(--color-slate-50);border-radius:var(--radius-lg);margin-top:var(--space-6)}.overall-feedback{font-size:var(--text-xl);font-weight:600;color:var(--color-accent);margin-bottom:var(--space-5)}.next-btn{padding:var(--space-3) var(--space-6);background:var(--gradient-cta);color:#fff;border-radius:var(--radius-lg);font-weight:600;border:none;cursor:pointer;transition:var(--transition-base)}.next-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.progress{text-align:center;margin-top:var(--space-6);padding-top:var(--space-6);border-top:2px solid var(--color-slate-200);font-weight:600;color:var(--color-slate-600)}.tips-section{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.tips-section h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-4)}.tips-section ul{list-style-position:inside;color:var(--color-slate-600)}.tips-section li{padding:var(--space-2) 0}@media (max-width: 768px){.word-choice-practice-page{padding:var(--space-4)}.word-choice-practice-page h2{font-size:var(--text-2xl)}.writing-card{padding:var(--space-5)}.passage{font-size:var(--text-base);padding:var(--space-4)}.word-options{flex-direction:column;gap:var(--space-3)}.word-option{width:100%;min-height:44px}.context{padding:var(--space-4)}}@media (max-width: 480px){.word-choice-practice-page h2{font-size:var(--text-xl)}.writing-card{padding:var(--space-4);border-radius:var(--radius-lg)}.passage{font-size:var(--text-sm);line-height:1.8}.blank-dropdown{min-width:80px;font-size:var(--text-sm)}.blanks-section h4{font-size:var(--text-lg)}.blank-selection{padding:var(--space-3)}.check-btn{max-width:100%;min-height:44px}}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s ease-out;cursor:pointer}.sticker-field{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.floating-sticker{position:absolute;bottom:-50px;animation:floatUp linear infinite;opacity:.9;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}@keyframes floatUp{0%{transform:translateY(0) rotate(0) scale(1);opacity:0}10%{opacity:.9}90%{opacity:.9}to{transform:translateY(-100vh) rotate(360deg) scale(.8);opacity:0}}.celebration-card{position:relative;background:#fff;border-radius:24px;padding:2rem 2.5rem;text-align:center;max-width:340px;width:90%;box-shadow:0 20px 60px #0000004d;animation:popIn .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.celebration-perfect{border-top:6px solid #FFD700;background:linear-gradient(135deg,#fffef0,#fff)}.celebration-streak{border-top:6px solid #FF6B35;background:linear-gradient(135deg,#fff5f0,#fff)}.celebration-milestone{border-top:6px solid #9C27B0;background:linear-gradient(135deg,#f9f0ff,#fff)}.celebration-mastery{border-top:6px solid var(--color-green-500);background:linear-gradient(135deg,var(--color-green-100) 0%,#fff 100%)}.celebration-emoji{font-size:4rem;line-height:1;margin-bottom:.5rem;animation:bounce .6s ease-in-out infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.celebration-title{font-size:2rem;font-weight:800;margin:0 0 1rem;background:linear-gradient(135deg,gold,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 2s linear infinite}.celebration-perfect .celebration-title{background:linear-gradient(135deg,gold,orange,gold);background-size:200% auto;-webkit-background-clip:text;background-clip:text}.celebration-streak .celebration-title{background:linear-gradient(135deg,#ff6b35,#ff8c42,#ff6b35);background-size:200% auto;-webkit-background-clip:text;background-clip:text}.celebration-milestone .celebration-title{background:linear-gradient(135deg,#9c27b0,#e040fb,#9c27b0);background-size:200% auto;-webkit-background-clip:text;background-clip:text}.celebration-mastery .celebration-title{background:linear-gradient(135deg,var(--color-green-500) 0%,#8BC34A 50%,var(--color-green-500) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text}.streak-badge{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#ff6b35,#ff8c42);border-radius:50px;color:#fff;font-weight:700;box-shadow:0 4px 15px #ff6b3566;animation:glow 1.5s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:0 4px 15px #ff6b3566}to{box-shadow:0 4px 25px #ff6b35b3}}.streak-fire{font-size:1.5rem;animation:flame .3s ease-in-out infinite alternate}@keyframes flame{0%{transform:scale(1)}to{transform:scale(1.2)}}.streak-count{font-size:1.75rem;font-weight:900}.streak-label{font-size:.9rem;opacity:.95}.milestone-badge{display:flex;flex-direction:column;align-items:center;margin-bottom:1rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#9c27b0,#e040fb);border-radius:16px;color:#fff;box-shadow:0 4px 20px #9c27b066}.milestone-count{font-size:2.5rem;font-weight:900;line-height:1}.milestone-label{font-size:.85rem;opacity:.95;margin-top:.25rem}.bonus-points{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,gold,#ffc107);border-radius:50px;box-shadow:0 4px 15px #ffd70066;animation:pulse 1s ease-in-out infinite}.bonus-amount{font-size:1.75rem;font-weight:900;color:#5d4000}.bonus-label{font-size:.9rem;font-weight:700;color:#7a5700}.celebration-message{color:#666;font-size:.95rem;line-height:1.5;margin:.5rem 0 1rem;max-width:280px;margin-left:auto;margin-right:auto}.sticker-row{display:flex;justify-content:center;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.sticker{font-size:1.75rem;animation:stickerPop .5s ease-out backwards}@keyframes stickerPop{0%{transform:scale(0) rotate(-180deg);opacity:0}60%{transform:scale(1.3) rotate(10deg)}to{transform:scale(1) rotate(0);opacity:1}}.dismiss-hint{color:#999;font-size:.8rem;margin:1rem 0 0;opacity:.8}@media (max-width: 480px){.celebration-card{padding:1.5rem;max-width:300px}.celebration-emoji{font-size:3rem}.celebration-title,.bonus-amount,.sticker,.streak-count{font-size:1.5rem}.milestone-count{font-size:2rem}}.mock-test-page{animation:fadeIn .5s ease-out;padding:var(--space-6);max-width:1200px;margin:0 auto}.mock-test-page h2{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-3xl);margin-bottom:var(--space-6);text-align:center}.mock-test-page .intro{text-align:center;font-size:var(--text-lg);margin-bottom:var(--space-8);color:var(--color-slate-600);max-width:600px;margin-left:auto;margin-right:auto}.mock-test-page .test-badge{display:inline-block;margin-left:var(--space-2);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-md);vertical-align:middle}.mock-test-page .test-badge.fill-in{background:var(--color-slate-100);color:var(--color-slate-700)}.mock-test-page .category-nav{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-8);padding:var(--space-4);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.mock-test-page .category-link{padding:var(--space-3) var(--space-5);background:var(--bg-card);color:var(--color-accent);border-radius:var(--radius-lg);font-weight:600;transition:var(--transition-base);text-decoration:none;border:2px solid transparent;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm)}.mock-test-page .category-link:hover{background:var(--color-slate-100);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.mock-test-page .category-link.active{background:var(--gradient-cta);color:var(--text-on-primary);border-color:var(--color-accent)}.mock-test-page .category-header{text-align:center;margin-bottom:var(--space-8)}.mock-test-page .category-header h3{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-2xl)}.mock-test-page .test-selection{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-6)}.mock-test-page .test-card{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transition:var(--transition-base);border:1px solid var(--color-slate-200)}.mock-test-page .test-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-accent)}.mock-test-page .test-card h3{color:var(--color-slate-900);margin-bottom:var(--space-3);font-size:var(--text-xl);font-family:var(--font-heading)}.mock-test-page .test-card p{color:var(--color-slate-600);margin-bottom:var(--space-4);line-height:1.6}.mock-test-page .test-info{display:flex;gap:var(--space-4);margin-bottom:var(--space-4);color:var(--color-slate-500);font-size:var(--text-sm)}.mock-test-page .test-header{background:var(--bg-card);padding:var(--space-5);border-radius:var(--radius-xl);margin-bottom:var(--space-6);box-shadow:var(--shadow-md);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4);border:1px solid var(--color-slate-200)}.mock-test-page .test-progress{font-weight:600;color:var(--color-accent);font-size:var(--text-lg)}.mock-test-page .question-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-200)}.mock-test-page .question-section{margin-bottom:var(--space-6)}.mock-test-page .question-number{color:var(--color-slate-500);font-weight:600;margin-bottom:var(--space-2);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em}.mock-test-page .question-text{font-size:var(--text-xl);color:var(--color-slate-900);line-height:1.6;font-family:var(--font-heading)}.mock-test-page .answers-section{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.mock-test-page .answer-option{padding:var(--space-4);background:var(--color-slate-50);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);text-align:left;font-size:var(--text-base);transition:var(--transition-base);cursor:pointer}.mock-test-page .answer-option:hover{border-color:var(--color-accent);background:var(--color-slate-100)}.mock-test-page .answer-option.selected{border-color:var(--color-accent);background:var(--bg-accent-light);font-weight:600}.mock-test-page .question-navigation{display:flex;justify-content:space-between;margin-top:var(--space-6);padding-top:var(--space-6);border-top:2px solid var(--color-slate-200)}.mock-test-page .answer-tracker{display:flex;gap:var(--space-2);justify-content:center;margin-top:var(--space-6);flex-wrap:wrap}.mock-test-page .tracker-dot{width:12px;height:12px;border-radius:var(--radius-full);background:var(--color-slate-300);cursor:pointer;transition:var(--transition-base)}.mock-test-page .tracker-dot.answered{background:var(--color-blue-500)}.mock-test-page .tracker-dot.current{width:16px;height:16px;background:var(--color-accent);box-shadow:var(--shadow-accent-ring)}.mock-test-page .results-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-200)}.mock-test-page .score-display{text-align:center;margin-bottom:var(--space-6);padding:var(--space-6);background:var(--color-slate-50);border-radius:var(--radius-xl);border:1px solid var(--color-slate-200)}.mock-test-page .score-display h3{color:var(--color-slate-700);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-4);text-transform:uppercase;letter-spacing:.05em}.mock-test-page .score-circle{width:140px;height:140px;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--color-blue-500),var(--color-blue-600));display:flex;align-items:center;justify-content:center;margin:var(--space-4) auto;box-shadow:var(--shadow-blue-glow);border:4px solid var(--bg-card)}.mock-test-page .score-number{font-size:var(--text-3xl);font-weight:700;color:var(--text-on-accent);font-family:var(--font-heading);line-height:1}.mock-test-page .score-detail{font-size:var(--text-base);color:var(--color-slate-600);margin-top:var(--space-2)}.mock-test-page .performance-feedback{text-align:center;margin-bottom:var(--space-6);font-size:var(--text-xl);font-weight:600}.mock-test-page .performance-feedback .excellent{color:var(--color-blue-500)}.mock-test-page .performance-feedback .good{color:var(--color-accent)}.mock-test-page .performance-feedback .needs-work{color:var(--color-orange-500)}.mock-test-page .answer-review{margin-top:var(--space-6)}.mock-test-page .answer-review h4{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-xl);margin-bottom:var(--space-4)}.mock-test-page .review-item{background:var(--color-slate-50);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-3);border-left:4px solid var(--color-slate-300)}.mock-test-page .review-item .question-text{font-weight:600;margin-bottom:var(--space-2);font-size:var(--text-base)}.mock-test-page .correct-answer{color:var(--color-blue-500);font-weight:600}.mock-test-page .incorrect-answer{color:var(--color-red-500);font-weight:600}.mock-test-page .explanation{color:var(--color-slate-600);font-style:italic;margin-top:var(--space-2);font-size:var(--text-sm)}@media (max-width: 768px){.mock-test-page{padding:var(--space-4)}.mock-test-page h2{font-size:var(--text-2xl)}.mock-test-page .intro{font-size:var(--text-base)}.mock-test-page .category-nav{gap:var(--space-2);padding:var(--space-3)}.mock-test-page .category-link{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);flex:1 1 auto;min-width:100px}.mock-test-page .test-selection{grid-template-columns:1fr;gap:var(--space-4)}.mock-test-page .test-card,.mock-test-page .question-card{padding:var(--space-5)}.mock-test-page .question-text{font-size:var(--text-lg)}.mock-test-page .answer-option{padding:var(--space-4);font-size:var(--text-base)}.mock-test-page .test-header{flex-direction:column;text-align:center}.mock-test-page .score-circle{width:120px;height:120px}.mock-test-page .score-number{font-size:var(--text-2xl)}}@media (max-width: 480px){.mock-test-page h2{font-size:var(--text-xl)}.mock-test-page .category-nav{flex-direction:column}.mock-test-page .category-link{width:100%}.mock-test-page .question-card{padding:var(--space-4);border-radius:var(--radius-lg)}.mock-test-page .question-text{font-size:var(--text-base)}.mock-test-page .answer-option{padding:var(--space-3);font-size:var(--text-sm)}.mock-test-page .question-navigation{flex-direction:column;gap:var(--space-3)}.mock-test-page .score-circle{width:100px;height:100px}.mock-test-page .score-number{font-size:var(--text-xl)}.mock-test-page .results-card{padding:var(--space-5)}.mock-test-page .answer-tracker{gap:4px}.mock-test-page .tracker-dot{width:10px;height:10px}}.phonetics-page{animation:fadeIn .5s ease-in}.phonetics-page h2{color:var(--color-slate-900);font-size:var(--text-3xl);font-family:var(--font-heading);margin-bottom:var(--space-8);text-align:center}.phonetics-page .phonetics-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-8)}.phonetics-page .word-display{text-align:center;margin-bottom:var(--space-8)}.phonetics-page .word-display h3{font-size:var(--text-3xl);font-family:var(--font-heading);color:var(--color-slate-900);margin-bottom:var(--space-4)}.phonetics-page .phonetic-spelling{font-size:var(--text-xl);color:var(--color-slate-500);font-style:italic}.phonetics-page .sound-controls{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-8)}.phonetics-page .play-btn,.phonetics-page .reveal-btn{padding:var(--space-4) var(--space-8);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-base);min-height:var(--touch-min);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body)}.phonetics-page .play-btn:hover,.phonetics-page .reveal-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-cta)}.phonetics-page .syllable-breakdown{background:var(--color-slate-50);padding:var(--space-8);border-radius:var(--radius-sm);margin-bottom:var(--space-8)}.phonetics-page .syllable-breakdown h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-6);text-align:center}.phonetics-page .syllables{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}.phonetics-page .syllable-card{background:#fff;padding:var(--space-4) var(--space-6);border-radius:var(--radius-sm);border:2px solid var(--color-accent);display:flex;align-items:center;gap:var(--space-4)}.phonetics-page .syllable-text{font-size:var(--text-2xl);font-weight:700;color:var(--color-accent)}.phonetics-page .syllable-play{background:var(--gradient-cta);color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);cursor:pointer;transition:all var(--transition-fast)}.phonetics-page .syllable-play:hover{transform:scale(1.1)}.phonetics-page .sound-pattern{background:#2563eb1a;padding:var(--space-6);border-radius:var(--radius-sm);margin-bottom:var(--space-8);border-left:4px solid var(--color-accent)}.phonetics-page .sound-pattern h4{color:var(--color-accent);margin-bottom:var(--space-2);font-family:var(--font-heading)}.phonetics-page .sound-pattern p{color:var(--color-slate-600);font-size:var(--text-lg);margin:0}.phonetics-page .pronunciation-tips{background:var(--color-amber-100);padding:var(--space-6);border-radius:var(--radius-sm);margin-bottom:var(--space-8);border-left:4px solid var(--color-orange-500)}.phonetics-page .pronunciation-tips h4{color:var(--color-orange-500);margin-bottom:var(--space-4);font-family:var(--font-heading)}.phonetics-page .pronunciation-tips ul{list-style-position:inside;color:var(--color-slate-700);margin:0;padding:0}.phonetics-page .pronunciation-tips li{padding:var(--space-2) 0}.phonetics-page .similar-words{background:var(--color-slate-50);padding:var(--space-8);border-radius:var(--radius-sm);margin-bottom:var(--space-8)}.phonetics-page .similar-words h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-6);text-align:center}.phonetics-page .similar-words-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4)}.phonetics-page .similar-word-btn{padding:var(--space-4);background:#fff;border:2px solid var(--color-slate-200);border-radius:var(--radius-sm);font-weight:600;transition:all var(--transition-fast);cursor:pointer;font-family:var(--font-body)}.phonetics-page .similar-word-btn:hover{border-color:var(--color-accent);background:#2563eb0d;transform:translateY(-2px)}.phonetics-page .navigation{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-8);padding-top:var(--space-8);border-top:2px solid var(--color-slate-200)}.phonetics-page .nav-btn{padding:var(--space-3) var(--space-6);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body)}.phonetics-page .nav-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-cta)}.phonetics-page .nav-btn:disabled{opacity:.5;cursor:not-allowed}.phonetics-page .counter{font-weight:600;color:var(--color-slate-500)}.phonetics-page .blending-practice{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin-bottom:var(--space-8)}.phonetics-page .blending-practice h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-4);text-align:center}.phonetics-page .blending-practice>p{text-align:center;color:var(--color-slate-500);margin-bottom:var(--space-8)}.phonetics-page .blending-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-8)}.phonetics-page .step{background:var(--color-slate-50);padding:var(--space-6);border-radius:var(--radius-sm);text-align:center}.phonetics-page .step h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-2)}.phonetics-page .step p{color:var(--color-slate-500);margin:0}.phonetics-page .tips-section{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.phonetics-page .tips-section h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-4)}.phonetics-page .tips-section ul{list-style-position:inside;color:var(--color-slate-600)}.phonetics-page .tips-section li{padding:var(--space-2) 0}@media (max-width: 768px){.phonetics-page h2{font-size:var(--text-2xl)}.phonetics-page .phonetics-card{padding:var(--space-6)}.phonetics-page .word-display h3{font-size:var(--text-2xl)}.phonetics-page .sound-controls{flex-direction:column;gap:var(--space-3)}.phonetics-page .play-btn,.phonetics-page .reveal-btn{width:100%}.phonetics-page .syllables{flex-direction:column;gap:var(--space-3)}.phonetics-page .syllable-card{justify-content:center}.phonetics-page .blending-steps{grid-template-columns:1fr}.phonetics-page .navigation{flex-direction:column;gap:var(--space-4);align-items:stretch}.phonetics-page .nav-btn{width:100%;min-height:var(--touch-min)}}@media (max-width: 480px){.phonetics-page h2{font-size:var(--text-xl)}.phonetics-page .phonetics-card{padding:var(--space-4);border-radius:var(--radius-lg)}.phonetics-page .word-display h3{font-size:var(--text-xl)}.phonetics-page .phonetic-spelling,.phonetics-page .syllable-text{font-size:var(--text-base)}.phonetics-page .syllable-play{width:36px;height:36px;font-size:var(--text-sm)}}.phonics-page{animation:fadeIn .5s ease-in;max-width:900px;margin:0 auto;padding:var(--space-4)}.phonics-page h2{color:var(--color-slate-900);font-size:var(--text-3xl);font-family:var(--font-heading);margin-bottom:var(--space-6);text-align:center}.phonics-page .resume-card{display:flex;align-items:center;gap:var(--space-4);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:var(--space-5) var(--space-6);border-radius:var(--radius-xl);margin-bottom:var(--space-6);cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:var(--shadow-md)}.phonics-page .resume-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.phonics-page .resume-card__icon{font-size:var(--text-2xl)}.phonics-page .resume-card__info{flex:1}.phonics-page .resume-card__info strong{display:block;font-size:var(--text-lg)}.phonics-page .resume-card__info span{opacity:.9;font-size:var(--text-sm)}.phonics-page .resume-card__arrow{font-size:var(--text-2xl);opacity:.8}.phonics-page .phonics-page__section-title{font-size:var(--text-xl);font-family:var(--font-heading);color:var(--color-slate-700);margin-bottom:var(--space-4)}.phonics-page .phonics-page__phases{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-4)}.phonics-page .phase-card{all:unset;display:flex;flex-direction:column;background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:var(--shadow-sm);border-left:4px solid var(--phase-color, #4ECDC4)}.phonics-page .phase-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.phonics-page .phase-card--locked{opacity:.5;cursor:not-allowed}.phonics-page .phase-card--completed{border-left-color:var(--color-success)}.phonics-page .phase-card__emoji{font-size:var(--text-3xl);margin-bottom:var(--space-2)}.phonics-page .phase-card__title{font-size:var(--text-lg);font-weight:700;color:var(--color-slate-900)}.phonics-page .phase-card__name{font-size:var(--text-sm);color:var(--color-slate-500);margin-bottom:var(--space-3)}.phonics-page .phase-card__progress{margin-top:auto}.phonics-page .phase-card__bar{height:6px;background:var(--color-slate-200, #e2e8f0);border-radius:3px;overflow:hidden;margin-bottom:var(--space-1)}.phonics-page .phase-card__bar-fill{height:100%;background:var(--phase-color, #4ECDC4);border-radius:3px;transition:width .5s ease}.phonics-page .phase-card__stats{font-size:var(--text-xs);color:var(--color-slate-500)}.phonics-page .phase-detail__back{all:unset;cursor:pointer;color:var(--color-slate-600);font-size:var(--text-sm);margin-bottom:var(--space-4);display:inline-block}.phonics-page .phase-detail__back:hover{color:var(--color-slate-900)}.phonics-page .phase-detail__header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-5);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border-left:4px solid var(--phase-color, #4ECDC4)}.phonics-page .phase-detail__header h2{font-size:var(--text-2xl);margin:0}.phonics-page .phase-detail__emoji{font-size:var(--text-4xl)}.phonics-page .phase-detail__desc{color:var(--color-slate-500);font-size:var(--text-sm);margin-top:var(--space-1)}.phonics-page .unit-section{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm)}.phonics-page .unit-section__title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-2)}.phonics-page .unit-section__desc{color:var(--color-slate-500);font-size:var(--text-sm);margin-bottom:var(--space-3)}.phonics-page .unit-section__lessons{display:flex;flex-direction:column;gap:var(--space-2)}.phonics-page .unit-section__empty{color:var(--color-slate-400);font-style:italic;font-size:var(--text-sm)}.phonics-page .lesson-btn{all:unset;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:background .15s}.phonics-page .lesson-btn:hover{background:var(--color-slate-100, #f1f5f9)}.phonics-page .lesson-btn__type{font-size:var(--text-lg)}.phonics-page .lesson-btn__title{flex:1;font-size:var(--text-sm);color:var(--color-slate-700)}.phonics-page .lesson-viewer__header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.phonics-page .lesson-viewer__back{all:unset;cursor:pointer;color:var(--color-slate-600);font-size:var(--text-sm)}.phonics-page .lesson-viewer__back:hover{color:var(--color-slate-900)}.phonics-page .lesson-viewer__breadcrumb{font-size:var(--text-xs);color:var(--color-slate-400)}.phonics-page .lesson-viewer__intro h2{text-align:center;margin-bottom:var(--space-6)}.phonics-page .lesson-viewer__actions{text-align:center;margin-top:var(--space-6)}.phonics-page .lesson-viewer__sentences{margin-top:var(--space-6)}.phonics-page .lesson-viewer__sentences h3{margin-bottom:var(--space-3)}.phonics-page .sentence-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-slate-100, #f1f5f9)}.phonics-page .sentence-row__text{font-size:var(--text-base);color:var(--color-slate-700)}.phonics-page .grapheme-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;box-shadow:var(--shadow-md);border-top:4px solid var(--phase-color, #4ECDC4)}.phonics-page .grapheme-card--activity{padding:var(--space-6)}.phonics-page .grapheme-card__letter{font-size:5rem;font-weight:800;color:var(--color-slate-900);line-height:1;margin-bottom:var(--space-3);font-family:var(--font-heading)}.phonics-page .grapheme-card__phoneme{font-size:var(--text-xl);color:var(--color-slate-500);font-style:italic;margin-top:var(--space-2)}.phonics-page .grapheme-card__tip{background:#fffbeb;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-top:var(--space-4);font-size:var(--text-sm);color:var(--color-orange-700);text-align:left}.phonics-page .grapheme-card__mouth{text-align:left;margin-top:var(--space-4);font-size:var(--text-sm)}.phonics-page .grapheme-card__mouth ul{margin:var(--space-2) 0 0 var(--space-4)}.phonics-page .grapheme-card__mouth li{margin-bottom:var(--space-1)}.phonics-page .grapheme-card__mouth em{color:var(--color-slate-500)}.phonics-page .grapheme-card__keywords{margin-top:var(--space-4);font-size:var(--text-sm);text-align:left;display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.phonics-page .grapheme-card__keyword{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--color-slate-100, #f1f5f9);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.phonics-page .word-grid{text-align:center}.phonics-page .word-grid__counter{font-size:var(--text-sm);color:var(--color-slate-400);margin-bottom:var(--space-4)}.phonics-page .word-grid__card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);margin-bottom:var(--space-6);transition:border-color .3s;border:3px solid transparent}.phonics-page .word-grid__card--correct{border-color:var(--color-success);background:#f0fff4}.phonics-page .word-grid__card--wrong{border-color:var(--color-error);background:#fff5f5}.phonics-page .word-grid__badge{display:inline-block;background:var(--color-purple-600);color:#fff;font-size:var(--text-xs);padding:2px 10px;border-radius:var(--radius-full);margin-bottom:var(--space-2)}.phonics-page .word-grid__word{font-size:3rem;font-weight:800;font-family:var(--font-heading);color:var(--color-slate-900);margin-bottom:var(--space-4)}.phonics-page .word-grid__grapheme-hint{font-size:var(--text-sm);color:var(--color-slate-500);margin-top:var(--space-3)}.phonics-page .word-grid__actions{display:flex;gap:var(--space-4);justify-content:center;margin-bottom:var(--space-4)}.phonics-page .word-grid__btn{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:transform .1s,opacity .1s;min-height:var(--touch-min, 44px)}.phonics-page .word-grid__btn:disabled{opacity:.5;cursor:not-allowed}.phonics-page .word-grid__btn:active:not(:disabled){transform:scale(.97)}.phonics-page .word-grid__btn--correct{background:var(--color-success);color:#fff}.phonics-page .word-grid__btn--wrong{background:var(--color-slate-200, #e2e8f0);color:var(--color-slate-700)}.phonics-page .word-grid__dots{display:flex;justify-content:center;gap:6px}.phonics-page .word-grid__dot{width:10px;height:10px;border-radius:50%;background:var(--color-slate-200, #e2e8f0)}.phonics-page .word-grid__dot--active{background:var(--color-slate-400)}.phonics-page .word-grid__dot--correct{background:var(--color-success)}.phonics-page .word-grid__dot--wrong{background:var(--color-error)}.phonics-page .lesson-viewer__complete{text-align:center;padding:var(--space-8);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.phonics-page .lesson-complete__emoji{font-size:4rem;margin-bottom:var(--space-3)}.phonics-page .lesson-complete__score{font-size:var(--text-lg);color:var(--color-slate-600);margin:var(--space-3) 0 var(--space-4)}.phonics-page .lesson-complete__bar{height:10px;background:var(--color-slate-200, #e2e8f0);border-radius:5px;overflow:hidden;max-width:300px;margin:0 auto var(--space-6)}.phonics-page .lesson-complete__fill{height:100%;background:var(--color-success);border-radius:5px;transition:width .6s ease}.phonics-page .lesson-complete__actions{display:flex;gap:var(--space-3);justify-content:center}.phonics-page .mastery-indicator{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);position:relative}.phonics-page .mastery-indicator--medium .mastery-indicator__ring{width:68px;height:68px}.phonics-page .mastery-indicator--small .mastery-indicator__ring{width:42px;height:42px}.phonics-page .mastery-indicator__value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-weight:700;font-size:var(--text-sm)}.phonics-page .mastery-indicator--small .mastery-indicator__value{font-size:var(--text-xs)}.phonics-page .mastery-indicator__label{font-size:var(--text-xs);color:var(--color-slate-500)}.phonics-page .revision-panel{background:#fff7ed;border:1px solid #fed7aa;border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6)}.phonics-page .revision-panel--empty{background:#f0fdf4;border-color:#bbf7d0;display:flex;align-items:center;gap:var(--space-3)}.phonics-page .revision-panel--empty p{margin:0;color:#166534}.phonics-page .revision-panel__header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.phonics-page .revision-panel__header h3{margin:0;color:#9a3412}.phonics-page .revision-panel__icon{font-size:var(--text-xl)}.phonics-page .revision-panel__list{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.phonics-page .revision-panel__item{display:flex;align-items:center;gap:var(--space-2);background:#fff;border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-sm)}.phonics-page .revision-panel__grapheme{font-weight:700;font-size:var(--text-base)}.phonics-page .audio-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-slate-100, #f1f5f9);transition:background .15s,transform .1s}.phonics-page .audio-btn:hover{background:var(--color-slate-200, #e2e8f0)}.phonics-page .audio-btn:active{transform:scale(.95)}.phonics-page .audio-btn--playing{background:var(--color-blue-100)}.phonics-page .audio-btn--sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.phonics-page .audio-btn--lg{padding:var(--space-3) var(--space-5);font-size:var(--text-lg)}.phonics-page .audio-btn__icon{font-size:inherit}.phonics-page .audio-btn__label{font-size:var(--text-sm);font-weight:500}.phonics-page .audio-btn__hint{font-size:var(--text-xs);color:var(--color-slate-400)}.phonics-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);font-weight:600;cursor:pointer;transition:transform .1s,box-shadow .15s;min-height:var(--touch-min, 44px);font-size:var(--text-base)}.phonics-page .btn:active{transform:scale(.97)}.phonics-page .btn--primary{background:var(--gradient-cta, linear-gradient(135deg, #667eea, #764ba2));color:#fff;box-shadow:var(--shadow-sm)}.phonics-page .btn--secondary{background:var(--color-slate-200, #e2e8f0);color:var(--color-slate-700)}.phonics-page .btn--warning{background:var(--color-orange-500);color:#fff}.phonics-page .btn--sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);min-height:36px}.phonics-page .btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg)}.phonics-page .parent-dashboard-phonics-section{margin-bottom:var(--space-8)}.phonics-page .phonics-progress-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);margin-bottom:var(--space-6)}.phonics-page .phonics-progress-card__header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.phonics-page .phonics-progress-card__header h3{margin:0;font-family:var(--font-heading);font-size:var(--text-xl)}.phonics-page .phonics-progress-card__header__icon{font-size:var(--text-2xl)}.phonics-page .phonics-progress-card__stats{margin-bottom:var(--space-5)}.phonics-page .phonics-progress-card__current-phase{padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.phonics-page .phonics-progress-card__current-phase h4{margin:0 0 var(--space-2) 0;font-size:var(--text-sm);color:var(--color-slate-600)}.phonics-page .phonics-progress-card__alerts{padding:var(--space-4);background:#fff3e0;border-radius:var(--radius-md)}.phonics-page .phonics-progress-card__alerts h4{margin:0 0 var(--space-2) 0;font-size:var(--text-sm);color:#e65100}.phonics-page .phonics-stat{margin-bottom:var(--space-4)}.phonics-page .phonics-stat__value{font-size:var(--text-3xl);font-weight:700;color:var(--color-slate-800)}.phonics-page .phonics-stat__label{display:block;font-size:var(--text-sm);color:var(--color-slate-500);margin-bottom:var(--space-2)}.phonics-page .phonics-stat__bar{height:8px;background:var(--color-slate-200);border-radius:4px;overflow:hidden}.phonics-page .phonics-stat__bar-fill{height:100%;border-radius:4px;transition:width .5s ease}.phonics-page .phonics-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.phonics-page .phonics-stat-item{text-align:center}.phonics-page .phonics-stat-item__value{display:block;font-size:var(--text-2xl);font-weight:700;color:var(--color-slate-800)}.phonics-page .phonics-stat-item__label{display:block;font-size:var(--text-xs);color:var(--color-slate-500)}.phonics-page .phonics-phase-bar__track{height:8px;background:var(--color-slate-200);border-radius:4px;overflow:hidden;margin-bottom:var(--space-1)}.phonics-page .phonics-phase-bar__fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .5s ease}.phonics-page .phonics-phase-bar__text{font-size:var(--text-xs);color:var(--color-slate-500)}.phonics-page .phonics-alert-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.phonics-page .phonics-alert-chip{display:inline-block;padding:var(--space-1) var(--space-3);background:#ffe0b2;border-radius:var(--radius-full);font-size:var(--text-sm);color:#e65100}.phonics-page .grapheme-mastery-chart{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);margin-bottom:var(--space-6)}.phonics-page .grapheme-mastery-chart--empty{text-align:center}.phonics-page .grapheme-mastery-chart--empty p{color:var(--color-slate-500)}.phonics-page .grapheme-mastery-chart__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);flex-wrap:wrap;gap:var(--space-3)}.phonics-page .grapheme-mastery-chart__header h3{margin:0;font-family:var(--font-heading);font-size:var(--text-xl)}.phonics-page .grapheme-mastery-chart__controls{display:flex;gap:var(--space-2)}.phonics-page .grapheme-mastery-chart__select{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-slate-300);font-size:var(--text-sm);background:#fff}.phonics-page .grapheme-mastery-chart__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.phonics-page .grapheme-mastery-chart__legend{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-slate-500)}.phonics-page .grapheme-mastery-tile{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-slate-50);text-align:center;transition:var(--transition-base)}.phonics-page .grapheme-mastery-tile--revision{border:2px solid var(--color-warning)}.phonics-page .grapheme-mastery-tile__grapheme{display:block;font-size:var(--text-xl);font-weight:700;color:var(--color-slate-800)}.phonics-page .grapheme-mastery-tile__bar{height:4px;background:var(--color-slate-200);border-radius:2px;margin:var(--space-2) 0;overflow:hidden}.phonics-page .grapheme-mastery-tile__bar-fill{height:100%;border-radius:2px}.phonics-page .grapheme-mastery-tile__info{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-slate-500)}.phonics-page .grapheme-mastery-tile__mastery{font-weight:600}.phonics-page .legend-item{display:flex;align-items:center;gap:var(--space-1)}.phonics-page .legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.phonics-page .phonics-class-overview{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);margin-bottom:var(--space-6)}.phonics-page .phonics-class-overview__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.phonics-page .phonics-class-overview__header h3{margin:0;font-family:var(--font-heading)}.phonics-page .phonics-class-overview__export{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm)}.phonics-page .phonics-class-overview__export:hover{opacity:.9}.phonics-page .phonics-class-overview__stats{display:flex;gap:var(--space-6);margin-bottom:var(--space-5);flex-wrap:wrap}.phonics-page .phonics-class-overview__phases h4{margin:0 0 var(--space-3) 0;font-size:var(--text-sm);color:var(--color-slate-600)}.phonics-page .phase-dist-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.phonics-page .phase-dist-bar__label{width:70px;font-size:var(--text-sm);color:var(--color-slate-600)}.phonics-page .phase-dist-bar__track{flex:1;height:16px;background:var(--color-slate-200);border-radius:8px;overflow:hidden}.phonics-page .phase-dist-bar__fill{height:100%;background:var(--color-primary);border-radius:8px;transition:width .5s ease}.phonics-page .phase-dist-bar__count{width:30px;text-align:right;font-size:var(--text-sm);font-weight:600}.phonics-page .phonics-student-row--struggling{background:#fff3e0}.phonics-page .phonics-student-username{display:block;font-size:var(--text-xs);color:var(--color-slate-400)}.phonics-page .phonics-mastery-cell{display:flex;align-items:center;gap:var(--space-2)}.phonics-page .phonics-mastery-cell__bar{width:60px;height:6px;background:var(--color-slate-200);border-radius:3px;overflow:hidden}.phonics-page .phonics-mastery-cell__fill{height:100%;background:var(--color-primary);border-radius:3px}.phonics-page .grapheme-heatmap{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);margin-bottom:var(--space-6)}.phonics-page .grapheme-heatmap--empty{text-align:center}.phonics-page .grapheme-heatmap--empty p{color:var(--color-slate-500)}.phonics-page .grapheme-heatmap__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.phonics-page .grapheme-heatmap__header h3{margin:0;font-family:var(--font-heading)}.phonics-page .grapheme-heatmap__subtitle{font-size:var(--text-sm);color:var(--color-slate-500)}.phonics-page .grapheme-heatmap__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:var(--space-2);margin-bottom:var(--space-4)}.phonics-page .grapheme-heatmap__legend{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-slate-500)}.phonics-page .heatmap-cell{padding:var(--space-2);border-radius:var(--radius-md);text-align:center;cursor:default;transition:var(--transition-base)}.phonics-page .heatmap-cell:hover{transform:scale(1.05)}.phonics-page .heatmap-cell__grapheme{display:block;font-size:var(--text-lg);font-weight:700}.phonics-page .heatmap-cell__mastery{display:block;font-size:var(--text-xs);font-weight:600}.phonics-page .heatmap-cell__struggling{display:block;font-size:9px;color:#d32f2f}.phonics-page .admin-text-muted{color:var(--color-slate-400);font-size:var(--text-sm)}@media (max-width: 768px){.phonics-page .phonics-page__phases{grid-template-columns:1fr}.phonics-page .word-grid__word{font-size:2.5rem}.phonics-page .grapheme-card__letter{font-size:3.5rem}}@media (max-width: 480px){.phonics-page .resume-card{flex-wrap:wrap}.phonics-page .word-grid__actions,.phonics-page .lesson-complete__actions{flex-direction:column}}.child-profile-selector-bar{display:flex;align-items:center;gap:var(--space-3, .75rem);padding:var(--space-4, 1rem) var(--space-5, 1.25rem);background:linear-gradient(135deg,#ede9fe,#e0e7ff);border:2px solid #a78bfa;border-radius:var(--radius-xl, 12px);margin-bottom:var(--space-6, 1.5rem);flex-wrap:wrap}.child-profile-selector-bar label{font-weight:600;color:#4c1d95;font-size:1.05rem;white-space:nowrap}.child-profile-select{padding:var(--space-2, .5rem) var(--space-4, 1rem);border:2px solid #a78bfa;border-radius:var(--radius-lg, 8px);background:#fff;color:#4c1d95;font-weight:600;font-size:1rem;cursor:pointer;min-width:180px;transition:var(--transition-base, all .2s)}.child-profile-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed33}.child-profile-selector__empty{padding:var(--space-6, 1.5rem);background:#fef3c7;border:2px solid #f59e0b;border-radius:var(--radius-xl, 12px);margin-bottom:var(--space-6, 1.5rem);text-align:center}.child-profile-selector__empty p{margin:0;color:#92400e;font-size:1rem}.child-profile-selector__empty a{color:#b45309;font-weight:600}.progress-detail__section{margin-bottom:var(--space-4, 1rem);padding:var(--space-4, 1rem);background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-md, 8px);border:1px solid var(--color-slate-100, #e2e8f0);overflow:hidden;box-sizing:border-box}.progress-detail__section h4{margin:0 0 var(--space-3, .75rem) 0;color:var(--color-slate-800, #1e293b);font-size:var(--text-sm, .875rem);display:flex;align-items:center;gap:var(--space-2, .5rem);word-break:break-word}.progress-detail__bar{height:10px;background:var(--color-slate-200, #e2e8f0);border-radius:var(--radius-sm, 4px);overflow:hidden;margin-bottom:var(--space-2, .5rem);position:relative}.progress-detail__fill{height:100%;border-radius:var(--radius-sm, 4px);transition:width .5s ease;min-width:4px}.progress-detail__fill.spelling{background:linear-gradient(90deg,var(--color-accent, #6366f1),var(--color-blue-400, #60a5fa))}.progress-detail__fill.vocab{background:linear-gradient(90deg,var(--color-purple-500, #a855f7),var(--color-purple-600, #9333ea))}.progress-detail__fill.math{background:linear-gradient(90deg,var(--color-orange-500, #f97316),var(--color-orange-600, #ea580c))}.progress-detail__fill.word-search{background:linear-gradient(90deg,var(--color-blue-500, #3b82f6),var(--color-blue-600, #2563eb))}.progress-detail__text{margin:0;font-size:var(--text-xs, .75rem);color:var(--color-slate-500, #64748b);font-weight:400}.progress-detail__tests{display:flex;flex-direction:column;gap:var(--space-2, .5rem);max-height:180px;overflow-y:auto;overflow-x:hidden}.progress-detail__test-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2, .5rem) var(--space-3, .75rem);background:#fff;border-radius:var(--radius-md, 8px);border:1px solid var(--color-slate-200, #e2e8f0);gap:var(--space-3, .75rem);min-width:0;flex-shrink:0}.progress-detail__test-info{display:flex;flex-direction:column;min-width:0;flex:1}.progress-detail__test-name{font-weight:500;color:var(--color-slate-800, #1e293b);font-size:var(--text-sm, .875rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-detail__test-category{font-size:var(--text-xs, .75rem);color:var(--color-slate-500, #64748b);text-transform:capitalize}.progress-detail__test-result{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.progress-detail__test-score{font-weight:600;font-size:var(--text-sm, .875rem);padding:var(--space-1, .25rem) var(--space-2, .5rem);border-radius:var(--radius-sm, 4px)}.progress-detail__test-score.good{background:#22c55e1a;color:var(--color-blue-600, #2563eb)}.progress-detail__test-score.medium{background:#f973161a;color:var(--color-orange-600, #ea580c)}.progress-detail__test-score.low{background:#ef44441a;color:var(--color-red-600, #dc2626)}.progress-detail__test-date{font-size:var(--text-xs, .75rem);color:var(--color-slate-400, #94a3b8);margin-top:var(--space-1, .25rem)}.progress-detail__categories{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-2, .5rem);width:100%;box-sizing:border-box}.progress-detail__category-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2, .5rem) var(--space-3, .75rem);background:#fff;border-radius:var(--radius-md, 8px);border:1px solid var(--color-slate-200, #e2e8f0);gap:var(--space-2, .5rem);min-width:0;overflow:hidden}.progress-detail__cat-name{font-weight:500;color:var(--color-slate-800, #1e293b);font-size:var(--text-sm, .875rem);text-transform:capitalize;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-detail__cat-count{font-size:var(--text-xs, .75rem);color:var(--color-slate-500, #64748b);flex-shrink:0}.progress-detail__cat-avg{font-weight:600;font-size:var(--text-xs, .75rem);padding:var(--space-1, .25rem) var(--space-2, .5rem);border-radius:var(--radius-sm, 4px);flex-shrink:0}.progress-detail__cat-avg.good{background:#22c55e1a;color:var(--color-blue-600, #2563eb)}.progress-detail__cat-avg.medium{background:#f973161a;color:var(--color-orange-600, #ea580c)}.progress-detail__cat-avg.low{background:#ef44441a;color:var(--color-red-600, #dc2626)}.children-progress{padding:0}.children-progress .children-progress-loading{text-align:center;padding:2rem;color:var(--text-secondary, #666)}.children-progress .children-progress-header{margin-bottom:1.5rem}.children-progress .children-progress-header h3{margin:0 0 .25rem;font-size:1.3rem}.children-progress .children-progress-subtitle{margin:0;color:var(--text-secondary, #666);font-size:.95rem}.children-progress .children-progress-search{position:relative;margin-bottom:1.5rem}.children-progress .children-progress-search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:1rem}.children-progress .children-progress-search .search-input{width:100%;padding:.6rem 2.5rem .6rem 2.75rem;border:1px solid var(--border-color, #ddd);border-radius:8px;font-size:.95rem;background:var(--bg-card, #fff);color:inherit;box-sizing:border-box}.children-progress .children-progress-search .search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-secondary, #999);font-size:1.1rem}.children-progress .children-progress-empty{text-align:center;padding:2rem;color:var(--text-secondary, #666);background:var(--bg-card, #f9f9f9);border-radius:12px}.children-progress .children-progress-empty a{color:var(--primary-color, #4f46e5)}.children-progress .children-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.children-progress .child-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #eee);border-radius:12px;padding:1.25rem;transition:box-shadow .2s;overflow:hidden;min-width:0}.children-progress .child-card:hover{box-shadow:0 4px 16px #00000014}.children-progress .child-card .ui-stats-grid{min-width:0;grid-template-columns:repeat(4,minmax(0,1fr))}.children-progress .child-card .ui-stat-card{min-width:0;overflow:hidden}.children-progress .child-card .ui-stat-card__value,.children-progress .child-card .ui-stat-card__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.children-progress .child-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.children-progress .child-info h4{margin:0;font-size:1.05rem}.children-progress .child-age{color:var(--text-secondary, #888);font-size:.85rem}.children-progress .child-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.75rem}.children-progress .child-stat{text-align:center;padding:.5rem .25rem;background:var(--bg-secondary, #f7f7fa);border-radius:8px}.children-progress .child-stat-value{display:block;font-weight:700;font-size:1.1rem}.children-progress .child-stat-value.good{color:var(--color-green-600)}.children-progress .child-stat-value.medium{color:var(--color-amber-600)}.children-progress .child-stat-value.low{color:var(--color-red-600)}.children-progress .child-stat-label{display:block;font-size:.7rem;color:var(--text-secondary, #888);text-transform:uppercase;letter-spacing:.02em;margin-top:2px}.children-progress .child-mastery{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.children-progress .mastery-badge{background:var(--bg-secondary, #f0f0f5);padding:.25rem .5rem;border-radius:6px;font-size:.85rem}.children-progress .child-card-footer{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--border-color, #eee);min-width:0}.children-progress .last-active{font-size:.8rem;color:var(--text-secondary, #888);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.children-progress .view-details-btn{flex-shrink:0;background:var(--primary-color, #4f46e5);color:#fff;border:none;padding:.4rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;transition:background .2s}.children-progress .view-details-btn:hover{background:var(--primary-hover, #4338ca)}.children-progress .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.children-progress .children-detail-modal{background:var(--bg-card, #fff);border-radius:16px;max-width:700px;width:100%;max-height:85vh;overflow-y:auto}.children-progress .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #eee);position:sticky;top:0;background:var(--bg-card, #fff);border-radius:16px 16px 0 0;z-index:1}.children-progress .modal-header h2{margin:0;font-size:1.2rem}.children-progress .close-btn{background:none;border:none;font-size:1.8rem;cursor:pointer;color:var(--text-secondary, #666);line-height:1}.children-progress .modal-loading{padding:3rem;text-align:center;color:var(--text-secondary, #666)}.children-progress .modal-body{padding:1.5rem}.children-progress .detail-icon{display:block;font-size:1.3rem;margin-bottom:.25rem}.children-progress .detail-value{display:block;font-weight:700;font-size:1.15rem}.children-progress .detail-label{display:block;font-size:.75rem;color:var(--text-secondary, #888);margin-top:2px}.children-progress .detail-section{margin-bottom:1.25rem}.children-progress .detail-section h4{margin:0 0 .5rem;font-size:1rem}.children-progress .detail-progress-bar{height:8px;background:var(--bg-secondary, #e5e7eb);border-radius:4px;overflow:hidden;margin-bottom:.3rem}.children-progress .detail-progress-fill{height:100%;border-radius:4px;transition:width .5s ease}.children-progress .detail-progress-fill.spelling{background:var(--color-blue-500)}.children-progress .detail-progress-fill.vocab{background:var(--color-purple-500)}.children-progress .detail-progress-fill.math{background:var(--color-amber-500)}.children-progress .detail-progress-fill.word-search{background:var(--color-green-500)}.children-progress .detail-progress-text{margin:0;font-size:.85rem;color:var(--text-secondary, #666)}.children-progress .detail-tests-list{display:flex;flex-direction:column;gap:.5rem}.children-progress .detail-test-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg-secondary, #f9f9fb);border-radius:8px}.children-progress .detail-test-info{display:flex;flex-direction:column;gap:2px}.children-progress .detail-test-name{font-weight:500;font-size:.9rem}.children-progress .detail-test-category{font-size:.75rem;color:var(--text-secondary, #888)}.children-progress .detail-test-result{display:flex;align-items:center;gap:.75rem}.children-progress .detail-test-score{font-weight:700;font-size:.95rem}.children-progress .detail-test-score.good{color:var(--color-green-600)}.children-progress .detail-test-score.medium{color:var(--color-amber-600)}.children-progress .detail-test-score.low{color:var(--color-red-600)}.children-progress .detail-test-date{font-size:.75rem;color:var(--text-secondary, #888)}.children-progress .detail-category-stats{display:flex;flex-direction:column;gap:.4rem}.children-progress .detail-category-item{display:flex;align-items:center;gap:1rem;padding:.4rem .75rem;background:var(--bg-secondary, #f9f9fb);border-radius:6px}.children-progress .detail-cat-name{flex:1;font-weight:500;font-size:.9rem}.children-progress .detail-cat-count{font-size:.8rem;color:var(--text-secondary, #888)}.children-progress .detail-cat-avg{font-weight:700;font-size:.9rem}.children-progress .detail-cat-avg.good{color:var(--color-green-600)}.children-progress .detail-cat-avg.medium{color:var(--color-amber-600)}.children-progress .detail-cat-avg.low{color:var(--color-red-600)}@media (max-width: 768px){.children-progress .children-cards{grid-template-columns:1fr}.children-progress .child-stats-grid{grid-template-columns:repeat(2,1fr)}.children-progress .child-card-footer{flex-direction:column;gap:.5rem;align-items:flex-start}.children-progress .view-details-btn{width:100%;text-align:center}}@media (max-width: 480px){.children-progress .detail-test-item{flex-direction:column;align-items:flex-start;gap:.25rem}}.funzone-progress{width:100%}.funzone-progress__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:var(--space-8)}.funzone-progress__spinner{font-size:3rem;animation:funzone-spin 2s linear infinite}@keyframes funzone-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.funzone-progress__loading p{margin-top:var(--space-4);font-size:var(--text-lg);color:var(--color-slate-600)}.funzone-progress__overview{padding:var(--space-6);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin-bottom:var(--space-6)}.funzone-progress__overview h3{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-800);margin:0 0 var(--space-6) 0;text-align:center}.funzone-progress__games{margin-bottom:var(--space-6)}.funzone-progress__games h3{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-800);margin:0 0 var(--space-6) 0;text-align:center}.funzone-game-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.funzone-game-card{padding:var(--space-5);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.funzone-game-card__header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-slate-100)}.funzone-game-card__icon{font-size:2rem}.funzone-game-card__title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;color:var(--color-slate-900);margin:0}.funzone-game-card__stats{display:flex;flex-direction:column;gap:var(--space-3)}.funzone-game-stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2);background:var(--color-slate-50);border-radius:var(--radius-md)}.funzone-game-stat-row--highlight{background:linear-gradient(135deg,var(--color-green-50) 0%,var(--color-green-100) 100%)}.funzone-game-stat-row__label{font-size:var(--text-sm);color:var(--color-slate-600)}.funzone-game-stat-row__value{font-size:var(--text-base);font-weight:600;color:var(--color-slate-900)}.funzone-game-card__progress{margin-top:var(--space-4)}.funzone-accuracy-bar{height:8px;background:var(--color-slate-200);border-radius:var(--radius-full);overflow:hidden}.funzone-accuracy-bar__fill{height:100%;background:linear-gradient(90deg,var(--color-green-400),var(--color-green-600));border-radius:var(--radius-full);transition:width .5s ease}.funzone-game-card__badges{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-slate-100);flex-wrap:wrap}.funzone-badges-label{font-size:var(--text-sm);color:var(--color-slate-500)}.funzone-badge-mini{font-size:1.5rem;cursor:help}.funzone-no-games{text-align:center;padding:var(--space-8);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.funzone-no-games p{font-size:var(--text-lg);color:var(--color-slate-600);margin:0 0 var(--space-4) 0}.funzone-no-games-link{display:inline-block;padding:var(--space-3) var(--space-6);background:var(--color-blue-600);color:#fff;text-decoration:none;border-radius:var(--radius-lg);font-weight:600;transition:all var(--transition-base)}.funzone-no-games-link:hover{background:var(--color-blue-700);transform:translateY(-2px)}.funzone-progress__tips{padding:var(--space-6);background:linear-gradient(135deg,var(--color-amber-100) 0%,#fde68a 100%);border-radius:var(--radius-xl);margin-bottom:var(--space-6)}.funzone-progress__tips h3{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-orange-800);margin:0 0 var(--space-4) 0}.funzone-tips-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.funzone-tips-list li{position:relative;padding-left:var(--space-6);font-size:var(--text-base);color:var(--color-orange-900);line-height:1.6}.funzone-tips-list li:before{content:"✓";position:absolute;left:0;color:var(--color-orange-600);font-weight:700}.funzone-tips-list strong{color:var(--color-orange-800)}.funzone-progress__footer{text-align:center;padding:var(--space-4) 0}.funzone-progress__link{font-size:var(--text-lg);color:var(--color-blue-600);text-decoration:none;font-weight:500;transition:all var(--transition-base)}.funzone-progress__link:hover{color:var(--color-blue-800);text-decoration:underline}@media (max-width: 640px){.funzone-game-stats-grid{grid-template-columns:1fr}}.progress-page{animation:fadeIn .5s ease-out;max-width:1200px;margin:0 auto;padding:var(--space-6)}.child-selector-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,#ede9fe,#e0e7ff);border:2px solid #a78bfa;border-radius:var(--radius-xl, 12px);margin-bottom:var(--space-6);flex-wrap:wrap}.child-selector-bar label{font-weight:600;color:#4c1d95;font-size:1.05rem;white-space:nowrap}.child-select{padding:var(--space-2) var(--space-4);border:2px solid #a78bfa;border-radius:var(--radius-lg, 8px);background:#fff;color:#4c1d95;font-weight:600;font-size:1rem;cursor:pointer;min-width:180px;transition:var(--transition-base, all .2s)}.child-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed33}.no-children-message{padding:var(--space-6);background:#fef3c7;border:2px solid #f59e0b;border-radius:var(--radius-xl, 12px);margin-bottom:var(--space-6);text-align:center}.no-children-message p{margin:0;color:#92400e;font-size:1.05rem}.no-children-message a{color:#7c3aed;font-weight:600;text-decoration:underline}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);flex-wrap:wrap;gap:var(--space-4)}.progress-header h2{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-2xl);margin:0}.header-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.export-btn,.clear-btn{padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-base);font-weight:600;min-height:44px}.export-btn{background:var(--gradient-cta);color:#fff}.export-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.clear-btn{background:var(--color-red-500);color:#fff}.clear-btn:hover{background:var(--color-red-600);transform:translateY(-2px)}.stats-overview{margin-bottom:var(--space-10)}.stats-overview h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5);font-size:var(--text-xl)}.period-stats{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-10);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.period-stats h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5);font-size:var(--text-xl)}.period-selector{display:flex;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap}.period-selector button{padding:var(--space-3) var(--space-5);border:2px solid var(--color-accent);background:#fff;color:var(--color-accent);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-base);font-weight:600}.period-selector button.active{background:var(--gradient-cta);color:#fff;border-color:transparent}.period-selector button:hover{transform:translateY(-2px)}.period-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-5)}.period-stat{text-align:center;padding:var(--space-5);background:var(--color-slate-50);border-radius:var(--radius-lg)}.period-stat strong{display:block;font-size:var(--text-3xl);color:var(--color-slate-900);margin-bottom:var(--space-2);font-family:var(--font-heading)}.period-stat span{color:var(--color-slate-500);font-size:var(--text-sm)}.module-overview{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-10);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.module-overview h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-3);font-size:var(--text-xl)}.section-subtitle{color:var(--color-slate-500);margin-bottom:var(--space-5);font-size:var(--text-base)}.module-table-wrapper{overflow-x:auto}.module-table{width:100%;border-collapse:collapse}.module-table th{background:var(--color-slate-50);padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;color:var(--color-slate-900);border-bottom:2px solid var(--color-slate-200)}.module-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-slate-200);vertical-align:middle}.module-table tbody tr:hover{background:var(--color-slate-50)}.module-table .center{text-align:center}.module-name{display:flex;align-items:center;gap:var(--space-3);font-weight:500}.module-icon{font-size:var(--text-xl)}.progress-cell{min-width:150px}.progress-bar-container{position:relative;height:24px;background:var(--color-slate-200);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-cta);border-radius:var(--radius-full);transition:width .3s ease}.progress-bar-pct{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--text-xs);font-weight:600;color:#fff}.practice-link{color:var(--color-accent);text-decoration:none;font-weight:500;transition:var(--transition-fast)}.practice-link:hover{color:var(--color-accent-dark);text-decoration:underline}.module-table tfoot .total-row{background:var(--color-slate-50);font-size:var(--text-base)}.module-table tfoot td{border-top:2px solid var(--color-slate-200);padding:var(--space-4)}.test-results{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-10);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.test-results h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5);font-size:var(--text-xl)}.category-filter{margin-bottom:var(--space-5);display:flex;align-items:center;gap:var(--space-3)}.category-filter label{font-weight:500;color:var(--color-slate-700)}.category-filter select{padding:var(--space-2) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-base);cursor:pointer;background:#fff}.results-table{overflow-x:auto}.results-table table{width:100%;border-collapse:collapse}.results-table th{background:var(--color-slate-50);padding:var(--space-3);text-align:left;font-weight:600;color:var(--color-slate-900);border-bottom:2px solid var(--color-slate-200)}.results-table td{padding:var(--space-3);border-bottom:1px solid var(--color-slate-200)}.results-table tr:hover{background:var(--color-slate-50)}.category-badge{background:var(--gradient-cta);color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500}.score-cell{display:flex;align-items:center}.percentage{padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-weight:600}.percentage.excellent{background:#22c55e1a;color:var(--color-blue-600)}.percentage.good{background:#f973161a;color:var(--color-orange-600)}.percentage.needs-work{background:#ef44441a;color:var(--color-red-500)}.recent-activity{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-10);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.recent-activity h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5);font-size:var(--text-xl)}.activity-list{display:flex;flex-direction:column;gap:var(--space-4)}.activity-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-lg);transition:var(--transition-base)}.activity-item:hover{background:var(--color-slate-100);transform:translate(5px)}.activity-icon{font-size:var(--text-3xl)}.activity-content{flex:1}.activity-title{font-weight:600;color:var(--color-slate-900);margin-bottom:var(--space-2);text-transform:capitalize}.activity-meta{display:flex;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-slate-500);flex-wrap:wrap}.activity-score{color:var(--color-accent);font-weight:500}.empty-state{text-align:center;padding:var(--space-10) var(--space-5);color:var(--color-slate-500)}.empty-state p{margin-bottom:var(--space-5);font-size:var(--text-lg)}.cta-btn{display:inline-block;padding:var(--space-3) var(--space-8);background:var(--gradient-cta);color:#fff;text-decoration:none;border-radius:var(--radius-lg);font-weight:600;transition:var(--transition-base)}.cta-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.motivation{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.motivation-card{text-align:center;padding:var(--space-8);background:var(--gradient-cta);border-radius:var(--radius-xl);color:#fff}.motivation-card h3{margin-bottom:var(--space-3);font-size:var(--text-2xl);font-family:var(--font-heading)}.motivation-card p{font-size:var(--text-lg);opacity:.95}@media (max-width: 768px){.progress-page{padding:var(--space-4)}.progress-header{flex-direction:column;align-items:stretch}.progress-header h2{font-size:var(--text-xl);text-align:center}.header-actions{width:100%;justify-content:center}.export-btn,.clear-btn{flex:1}.period-selector{justify-content:center}.period-selector button{flex:1;min-width:auto}.results-table{font-size:var(--text-sm)}.results-table th,.results-table td{padding:var(--space-2)}.activity-meta{flex-direction:column;gap:var(--space-1)}.module-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.module-table{min-width:600px}}@media (max-width: 480px){.progress-page{padding:var(--space-3)}.progress-header h2{font-size:var(--text-lg)}.period-stats{padding:var(--space-4)}.period-selector{flex-direction:column}.period-selector button{width:100%}.period-stats-grid{grid-template-columns:repeat(2,1fr)}.module-overview,.test-results,.recent-activity,.motivation{padding:var(--space-4)}.activity-item{flex-direction:column;text-align:center}.motivation-card{padding:var(--space-5)}.motivation-card h3{font-size:var(--text-xl)}}.progress-tabs{display:flex;gap:0;margin-bottom:var(--space-6, 1.5rem);border-bottom:2px solid var(--color-border, #e2e8f0)}.progress-tab{padding:var(--space-3, .75rem) var(--space-5, 1.25rem);font-size:var(--text-base, 1rem);font-weight:600;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;color:var(--color-text-secondary, #64748b);transition:all .2s ease}.progress-tab:hover{color:var(--color-primary, #6366f1)}.progress-tab.active{color:var(--color-primary, #6366f1);border-bottom-color:var(--color-primary, #6366f1)}.evaluation-reports{max-width:900px}.eval-header h3{font-size:var(--text-2xl, 1.5rem);margin-bottom:var(--space-2, .5rem)}.eval-subtitle{color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-4, 1rem)}.eval-controls{display:flex;align-items:flex-end;gap:var(--space-4, 1rem);flex-wrap:wrap;margin-bottom:var(--space-5, 1.25rem)}.eval-child-selector{display:flex;flex-direction:column;gap:var(--space-1, .25rem)}.eval-child-selector label{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-secondary, #64748b)}.eval-child-selector select{padding:var(--space-2, .5rem) var(--space-3, .75rem);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, .5rem);font-size:var(--text-base, 1rem);min-width:220px}.eval-generate-btn{padding:var(--space-2, .5rem) var(--space-5, 1.25rem);background:var(--color-primary, #6366f1);color:#fff;border:none;border-radius:var(--radius-md, .5rem);font-size:var(--text-base, 1rem);font-weight:600;cursor:pointer;transition:opacity .2s}.eval-generate-btn:hover:not(:disabled){opacity:.9}.eval-generate-btn:disabled{opacity:.55;cursor:not-allowed}.eval-loading,.eval-empty{text-align:center;padding:var(--space-8, 2rem);color:var(--color-text-secondary, #64748b)}.eval-reports-list{display:flex;flex-direction:column;gap:var(--space-3, .75rem)}.eval-report-card{border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-lg, .75rem);padding:var(--space-4, 1rem);cursor:pointer;transition:box-shadow .2s,border-color .2s}.eval-report-card:hover{box-shadow:0 2px 8px #00000014;border-color:var(--color-primary, #6366f1)}.eval-report-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2, .5rem)}.eval-report-child-name{font-weight:700;font-size:var(--text-lg, 1.125rem)}.eval-report-date{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.eval-report-card-footer{display:flex;justify-content:space-between;align-items:center}.eval-report-generated-by{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.eval-report-view-link{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-primary, #6366f1)}.progress-reports{max-width:900px}.progress-reports-header h3,.progress-reports-heading{font-size:var(--text-2xl, 1.5rem);margin-bottom:var(--space-2, .5rem)}.progress-reports-subtitle{color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-4, 1rem)}.progress-reports-controls{display:flex;align-items:flex-end;gap:var(--space-4, 1rem);flex-wrap:wrap;margin-bottom:var(--space-5, 1.25rem)}.progress-reports-create-btn{padding:var(--space-2, .5rem) var(--space-5, 1.25rem);background:var(--color-primary, #6366f1);color:#fff;border:none;border-radius:var(--radius-md, .5rem);font-size:var(--text-base, 1rem);font-weight:600;cursor:pointer;transition:opacity .2s}.progress-reports-create-btn:hover{opacity:.9}.progress-reports-overall-btn{padding:var(--space-2, .5rem) var(--space-5, 1.25rem);background:#fff;color:var(--color-primary, #6366f1);border:1px solid var(--color-primary, #6366f1);border-radius:var(--radius-md, .5rem);font-weight:600;cursor:pointer}.progress-reports-overall-btn:hover{background:var(--color-slate-50, #f8fafc)}.progress-reports-overall-toggle{margin-bottom:var(--space-4, 1rem)}.progress-reports-overall-show-btn{padding:var(--space-2, .5rem) var(--space-4, 1rem);font-size:var(--text-sm, .875rem);color:var(--color-primary, #6366f1);background:transparent;border:1px solid var(--color-primary, #6366f1);border-radius:var(--radius-md, .5rem);cursor:pointer}.progress-reports-overall-show-btn:hover{background:var(--color-slate-50, #f8fafc)}.progress-reports-overall-section{background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-lg, .75rem);padding:var(--space-4, 1rem);border:1px solid var(--color-border, #e2e8f0);margin-bottom:var(--space-5, 1.25rem)}.progress-reports-overall-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2, .5rem);flex-wrap:wrap}.progress-reports-overall-hide-btn{padding:var(--space-1, .25rem) var(--space-2, .5rem);font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);background:transparent;border:none;cursor:pointer}.progress-reports-overall-hide-btn:hover{color:var(--color-slate-800, #1e293b)}.progress-reports-overall-picker{margin-bottom:var(--space-3, .75rem);display:flex;align-items:center;gap:var(--space-2, .5rem)}.progress-reports-overall-picker label{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-reports-overall-select{padding:var(--space-1, .25rem) var(--space-2, .5rem);font-size:var(--text-sm, .875rem);border-radius:var(--radius-md, .5rem);border:1px solid var(--color-border, #e2e8f0);min-width:160px}.progress-reports-overall-empty{margin:0;color:var(--color-text-secondary, #64748b);font-size:var(--text-sm, .875rem)}.progress-reports-overall-title{font-size:var(--text-lg, 1.125rem);margin:0 0 var(--space-2, .5rem) 0;color:var(--color-slate-800, #1e293b)}.progress-reports-overall-summary{margin:0 0 var(--space-4, 1rem);line-height:1.6;color:var(--color-slate-700, #334155)}.progress-reports-overall-trends h5{font-size:var(--text-base, 1rem);margin:0 0 var(--space-2, .5rem) 0;color:var(--color-slate-700, #334155)}.progress-reports-overall-trends-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3, .75rem)}.progress-reports-overall-trend-card{padding:var(--space-3, .75rem);border-radius:var(--radius-md, .5rem);border:1px solid var(--color-border, #e2e8f0);background:#fff}.progress-reports-overall-trend-card.trend-up{border-left:3px solid var(--color-success, #22c55e)}.progress-reports-overall-trend-card.trend-down{border-left:3px solid var(--color-destructive, #dc2626)}.progress-reports-overall-trend-name{display:block;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-1, .25rem)}.progress-reports-overall-trend-value{font-size:var(--text-base, 1rem);font-weight:600;color:var(--color-slate-800, #1e293b)}.progress-reports-overall-trend-diff{margin-left:var(--space-1, .25rem);font-size:var(--text-sm, .875rem);font-weight:500}.progress-reports-overall-trend-card.trend-up .progress-reports-overall-trend-diff{color:var(--color-success, #22c55e)}.progress-reports-overall-trend-card.trend-down .progress-reports-overall-trend-diff{color:var(--color-destructive, #dc2626)}.progress-reports-overall-trend-label{display:block;font-size:var(--text-xs, .75rem);color:var(--color-text-secondary, #64748b);margin-top:var(--space-1, .25rem)}.progress-reports-overall-meta{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);margin:var(--space-3, .75rem) 0 0 0}.progress-reports-overall-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2, .5rem)}.progress-reports-overall-modal-hint{margin:0 0 var(--space-4, 1rem);font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-reports-overall-option{display:block;margin-bottom:var(--space-2, .5rem);cursor:pointer}.progress-reports-overall-option input{margin-right:var(--space-2, .5rem)}.progress-reports-overall-list{margin-top:var(--space-3, .75rem);display:flex;flex-direction:column;gap:var(--space-2, .5rem);max-height:200px;overflow-y:auto}.progress-reports-overall-check{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2, .5rem);padding:var(--space-2, .5rem);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, .5rem);cursor:pointer}.progress-reports-overall-check input{margin-right:0}.progress-reports-overall-check-meta{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-reports-loading,.progress-reports-empty{text-align:center;padding:var(--space-8, 2rem);color:var(--color-text-secondary, #64748b)}.progress-reports-history-section{margin-top:var(--space-6, 1.5rem)}.progress-reports-history-title{font-size:var(--text-lg, 1.125rem);font-weight:600;margin:0 0 var(--space-1, .25rem) 0}.progress-reports-history-hint{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);margin:0 0 var(--space-4, 1rem) 0}.progress-reports-list{display:flex;flex-direction:column;gap:var(--space-3, .75rem)}.progress-report-card{border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-lg, .75rem);padding:var(--space-4, 1rem);cursor:pointer;transition:box-shadow .2s,border-color .2s}.progress-report-card:hover{box-shadow:0 2px 8px #00000014;border-color:var(--color-primary, #6366f1)}.progress-report-card-main{margin-bottom:var(--space-2, .5rem)}.progress-report-card-title{font-size:var(--text-lg, 1.125rem);font-weight:700;margin:0 0 var(--space-1, .25rem) 0}.progress-report-card-period{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);margin-right:var(--space-2, .5rem)}.progress-report-card-level{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-primary, #6366f1)}.progress-report-card-meta{display:flex;flex-wrap:wrap;gap:var(--space-2, .5rem);font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-card-view{display:block;margin-top:var(--space-2, .5rem);font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-primary, #6366f1)}.progress-report-back{background:none;border:none;font-size:var(--text-base, 1rem);color:var(--color-primary, #6366f1);cursor:pointer;font-weight:600;margin-bottom:var(--space-4, 1rem);padding:0}.progress-report-detail{max-width:900px}.progress-report-detail-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2, .5rem);margin-bottom:var(--space-4, 1rem)}.progress-report-detail-actions{display:flex;gap:var(--space-2, .5rem)}.progress-report-detail-title-block{margin-bottom:var(--space-6, 1.5rem);padding-bottom:var(--space-4, 1rem);border-bottom:1px solid var(--color-border, #e2e8f0)}.progress-report-detail-title{font-size:var(--text-2xl, 1.5rem);margin:0 0 var(--space-1, .25rem) 0}.progress-report-period{font-size:var(--text-base, 1rem);color:var(--color-text-secondary, #64748b);margin:0 0 var(--space-2, .5rem) 0}.progress-report-meta{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);margin:0}.progress-report-author{margin-left:var(--space-3, .75rem)}.progress-report-detail-body{margin-bottom:var(--space-6, 1.5rem)}.progress-report-section{margin-bottom:var(--space-5, 1.25rem)}.progress-report-section h3{font-size:var(--text-lg, 1.125rem);margin:0 0 var(--space-2, .5rem) 0;color:var(--color-slate-800, #1e293b)}.progress-report-overall .progress-report-level{font-size:var(--text-base, 1rem);font-weight:600}.progress-report-summary{white-space:pre-wrap;line-height:1.6}.progress-report-list{margin:0;padding-left:var(--space-6, 1.5rem)}.progress-report-list li{margin-bottom:var(--space-1, .25rem)}.progress-report-subjects{display:flex;flex-direction:column;gap:var(--space-3, .75rem)}.progress-report-subject h4{font-size:var(--text-base, 1rem);margin:0 0 var(--space-1, .25rem) 0}.progress-report-subject p{margin:0;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-detail-footer{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);padding-top:var(--space-4, 1rem);border-top:1px solid var(--color-border, #e2e8f0);display:flex;justify-content:space-between}.progress-report-btn{padding:var(--space-2, .5rem) var(--space-4, 1rem);border-radius:var(--radius-md, .5rem);font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;border:1px solid var(--color-border, #e2e8f0);background:#fff}.progress-report-btn-edit{color:var(--color-primary, #6366f1)}.progress-report-btn-delete{color:var(--color-destructive, #dc2626)}.progress-report-btn-compare{color:var(--color-primary, #6366f1)}.progress-report-btn-primary{background:var(--color-primary, #6366f1);color:#fff;border-color:var(--color-primary, #6366f1)}.progress-report-btn-secondary{background:#fff;color:var(--color-text-secondary, #64748b)}.progress-report-compare-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2, .5rem)}.progress-report-compare-modal-hint{margin:0 0 var(--space-4, 1rem);font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-compare-list{display:flex;flex-direction:column;gap:var(--space-2, .5rem)}.progress-report-compare-empty{margin:0;padding:var(--space-4, 1rem);color:var(--color-text-secondary, #64748b);font-size:var(--text-sm, .875rem)}.progress-report-compare-option{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2, .5rem);padding:var(--space-3, .75rem);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, .5rem);cursor:pointer}.progress-report-compare-option input{margin-right:var(--space-2, .5rem)}.progress-report-compare-option-title{font-weight:600}.progress-report-compare-option-meta{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-compare-with-block{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2, .5rem);margin-bottom:var(--space-4, 1rem);padding:var(--space-3, .75rem);background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-md, .5rem);border:1px solid var(--color-border, #e2e8f0)}.progress-report-compare-with-label{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-compare-with-select{padding:var(--space-1, .25rem) var(--space-2, .5rem);font-size:var(--text-sm, .875rem);border-radius:var(--radius-md, .5rem);border:1px solid var(--color-border, #e2e8f0);min-width:180px}.progress-report-compare-with-inline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2, .5rem);margin-bottom:var(--space-3, .75rem)}.progress-report-compare-with-inline label,.progress-report-compare-with-loading{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-comparison-toggle{margin-bottom:var(--space-4, 1rem)}.progress-report-comparison-show-btn{padding:var(--space-2, .5rem) var(--space-4, 1rem);font-size:var(--text-sm, .875rem);color:var(--color-primary, #6366f1);background:transparent;border:1px solid var(--color-primary, #6366f1);border-radius:var(--radius-md, .5rem);cursor:pointer}.progress-report-comparison-show-btn:hover{background:var(--color-slate-50, #f8fafc)}.progress-report-comparison-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2, .5rem);flex-wrap:wrap;margin-bottom:var(--space-2, .5rem)}.progress-report-comparison-header h3{margin:0}.progress-report-comparison-hide-btn{padding:var(--space-1, .25rem) var(--space-2, .5rem);font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);background:transparent;border:none;cursor:pointer}.progress-report-comparison-hide-btn:hover{color:var(--color-slate-800, #1e293b)}.progress-report-comparison-section{background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-lg, .75rem);padding:var(--space-4, 1rem);border:1px solid var(--color-border, #e2e8f0)}.progress-report-comparison-summary{margin:0 0 var(--space-4, 1rem);line-height:1.6;color:var(--color-slate-700, #334155)}.progress-report-comparison-deltas h4{font-size:var(--text-base, 1rem);margin:0 0 var(--space-2, .5rem) 0;color:var(--color-slate-700, #334155)}.progress-report-deltas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3, .75rem)}.progress-report-delta-card{padding:var(--space-3, .75rem);border-radius:var(--radius-md, .5rem);border:1px solid var(--color-border, #e2e8f0);background:#fff}.progress-report-delta-card.delta-up{border-left:3px solid var(--color-success, #22c55e)}.progress-report-delta-card.delta-down{border-left:3px solid var(--color-destructive, #dc2626)}.progress-report-delta-name{display:block;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-1, .25rem)}.progress-report-delta-value{font-size:var(--text-lg, 1.125rem);font-weight:600;color:var(--color-slate-800, #1e293b)}.progress-report-delta-diff{margin-left:var(--space-1, .25rem);font-size:var(--text-sm, .875rem);font-weight:500}.progress-report-delta-card.delta-up .progress-report-delta-diff{color:var(--color-success, #22c55e)}.progress-report-delta-card.delta-down .progress-report-delta-diff{color:var(--color-destructive, #dc2626)}.progress-report-delta-vs{display:block;font-size:var(--text-xs, .75rem);color:var(--color-text-secondary, #64748b);margin-top:var(--space-1, .25rem)}.progress-report-loading,.progress-report-empty{text-align:center;padding:var(--space-8, 2rem);color:var(--color-text-secondary, #64748b)}.progress-report-form{display:flex;flex-direction:column;gap:var(--space-4, 1rem);max-width:640px}.progress-report-form-child{margin:0 0 var(--space-2, .5rem) 0;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-form-error{padding:var(--space-2, .5rem) var(--space-3, .75rem);background:#fef2f2;color:var(--color-destructive, #dc2626);border-radius:var(--radius-md, .5rem);font-size:var(--text-sm, .875rem)}.progress-report-form-row{display:flex;gap:var(--space-4, 1rem);flex-wrap:wrap}.progress-report-input,.progress-report-textarea,.progress-report-select{width:100%;padding:var(--space-2, .5rem) var(--space-3, .75rem);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, .5rem);font-size:var(--text-base, 1rem)}.progress-report-textarea{min-height:80px;resize:vertical}.progress-report-form-section-title{font-size:var(--text-base, 1rem);font-weight:600;margin:0 0 var(--space-2, .5rem) 0;color:var(--color-slate-800, #1e293b)}.progress-report-scores-section,.progress-report-custom-fields-section{margin-top:var(--space-4, 1rem)}.progress-report-scores-hint{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b);margin:0 0 var(--space-3, .75rem) 0}.progress-report-score-cards{display:flex;flex-wrap:wrap;gap:var(--space-3, .75rem);margin-bottom:var(--space-3, .75rem)}.progress-report-score-card-editable{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3, .75rem);padding:var(--space-3, .75rem) var(--space-4, 1rem);background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-md, .5rem);border:1px solid var(--color-border, #e2e8f0);min-width:200px;max-width:320px}.progress-report-score-card-content{flex:1;min-width:0}.progress-report-score-card-content .progress-report-score-label{display:block;font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-slate-700, #334155);margin-bottom:var(--space-1, .25rem)}.progress-report-score-card-content .progress-report-score-value{font-size:var(--text-base, 1rem);font-weight:700;color:var(--color-primary, #6366f1)}.progress-report-score-card-actions{display:flex;flex-shrink:0;gap:var(--space-2, .5rem)}.progress-report-score-card-btn{padding:var(--space-1, .25rem) var(--space-2, .5rem);font-size:var(--text-sm, .875rem);border-radius:var(--radius-sm, .25rem);border:1px solid var(--color-border, #e2e8f0);background:#fff;cursor:pointer;color:var(--color-slate-700, #334155)}.progress-report-score-card-btn:hover{background:var(--color-slate-100, #f1f5f9)}.progress-report-score-card-remove{color:var(--color-red-600, #dc2626);border-color:var(--color-red-200, #fecaca)}.progress-report-score-card-remove:hover{background:var(--color-red-50, #fef2f2)}.progress-report-score-modal-body{display:flex;flex-direction:column;gap:var(--space-4, 1rem)}.progress-report-score-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3, .75rem)}.progress-report-score-row,.progress-report-custom-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2, .5rem);margin-bottom:var(--space-2, .5rem)}.progress-report-score-name{flex:1;min-width:120px}.progress-report-score-num{width:4rem}.progress-report-score-outof{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.progress-report-custom-key{width:140px;min-width:100px}.progress-report-custom-value{flex:1;min-width:120px}.progress-report-remove-row,.progress-report-add-row{background:none;border:none;font-size:var(--text-sm, .875rem);color:var(--color-primary, #6366f1);cursor:pointer;padding:var(--space-1, .25rem) 0}.progress-report-add-row{margin-top:var(--space-1, .25rem)}.progress-report-form-actions{display:flex;gap:var(--space-3, .75rem);margin-top:var(--space-2, .5rem)}.progress-report-scores-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3, .75rem)}.progress-report-score-card{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-md, .5rem);border:1px solid var(--color-border, #e2e8f0)}.progress-report-score-label{display:block;font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-slate-700, #334155);margin-bottom:var(--space-1, .25rem)}.progress-report-score-value{font-size:var(--text-lg, 1.125rem);font-weight:700;color:var(--color-primary, #6366f1)}.progress-report-score-pct{font-size:var(--text-sm, .875rem);font-weight:500;color:var(--color-text-secondary, #64748b);margin-left:var(--space-1, .25rem)}.progress-report-custom-fields{margin:0;display:flex;flex-direction:column;gap:var(--space-2, .5rem)}.progress-report-custom-item{display:grid;grid-template-columns:140px 1fr;gap:var(--space-3, .75rem);margin:0}.progress-report-custom-item dt{font-weight:600;color:var(--color-slate-700, #334155);font-size:var(--text-sm, .875rem)}.progress-report-custom-item dd{margin:0;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #64748b)}.eval-report-detail{max-width:900px}.eval-back-btn{background:none;border:none;font-size:var(--text-base, 1rem);color:var(--color-primary, #6366f1);cursor:pointer;font-weight:600;margin-bottom:var(--space-4, 1rem);padding:0}.eval-detail-header h3{font-size:var(--text-2xl, 1.5rem);margin-bottom:var(--space-1, .25rem)}.eval-detail-meta{color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-5, 1.25rem)}.eval-section{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-lg, .75rem);padding:var(--space-5, 1.25rem);margin-bottom:var(--space-4, 1rem)}.eval-section h4{font-size:var(--text-lg, 1.125rem);margin-bottom:var(--space-3, .75rem)}.eval-summary{font-size:var(--text-base, 1rem);line-height:1.6;margin-bottom:var(--space-4, 1rem)}.eval-ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4, 1rem);margin-bottom:var(--space-4, 1rem)}.eval-ai-card{border-radius:var(--radius-md, .5rem);padding:var(--space-4, 1rem)}.eval-ai-card h5{font-size:var(--text-base, 1rem);margin-bottom:var(--space-2, .5rem)}.eval-ai-card ul{margin:0;padding-left:var(--space-5, 1.25rem)}.eval-ai-card li{margin-bottom:var(--space-1, .25rem);font-size:var(--text-sm, .875rem);line-height:1.5}.eval-ai-strengths{background:#f0fdf4;border:1px solid #bbf7d0}.eval-ai-improve{background:#fefce8;border:1px solid #fde68a}.eval-ai-recommend{background:#eff6ff;border:1px solid #bfdbfe}.eval-encouragement{background:#faf5ff;border:1px solid #e9d5ff;border-radius:var(--radius-md, .5rem);padding:var(--space-3, .75rem) var(--space-4, 1rem);font-style:italic}.eval-comparison-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--space-3, .75rem);margin-bottom:var(--space-3, .75rem)}.eval-comparison-item{display:flex;flex-direction:column;align-items:center;background:var(--color-bg, #f8fafc);border-radius:var(--radius-md, .5rem);padding:var(--space-3, .75rem)}.eval-comparison-label{font-size:var(--text-xs, .75rem);color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-1, .25rem);text-align:center}.eval-delta{font-weight:700;font-size:var(--text-lg, 1.125rem)}.eval-delta-pos{color:var(--color-green-600)}.eval-delta-neg{color:var(--color-red-600)}.eval-delta-zero{color:var(--color-text-secondary, #64748b)}.eval-comparison-verdict{text-align:center;font-weight:600}.eval-modules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4, 1rem)}.eval-module-card{border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, .5rem);padding:var(--space-4, 1rem)}.eval-module-header{display:flex;align-items:center;gap:var(--space-2, .5rem);margin-bottom:var(--space-3, .75rem)}.eval-module-icon{font-size:1.5rem}.eval-module-title{font-weight:700;font-size:var(--text-base, 1rem)}.eval-module-bar-wrapper{width:100%;height:8px;background:var(--color-border, #e2e8f0);border-radius:4px;overflow:hidden;margin-bottom:var(--space-2, .5rem)}.eval-module-bar{height:100%;background:var(--color-primary, #6366f1);border-radius:4px;transition:width .4s ease}.eval-module-stats{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-1, .25rem);font-size:var(--text-xs, .75rem);color:var(--color-text-secondary, #64748b)}.eval-writing-stats{display:flex;flex-wrap:wrap;gap:var(--space-3, .75rem)}.eval-stat-pill{display:flex;flex-direction:column;align-items:center;background:var(--color-bg, #f8fafc);border-radius:var(--radius-md, .5rem);padding:var(--space-3, .75rem) var(--space-4, 1rem);min-width:100px}.eval-stat-label{font-size:var(--text-xs, .75rem);color:var(--color-text-secondary, #64748b);margin-bottom:var(--space-1, .25rem)}.eval-stat-value{font-weight:700;font-size:var(--text-lg, 1.125rem)}.eval-tests-table{overflow-x:auto}.eval-tests-table table{width:100%;border-collapse:collapse}.eval-tests-table th,.eval-tests-table td{padding:var(--space-2, .5rem) var(--space-3, .75rem);text-align:left;border-bottom:1px solid var(--color-border, #e2e8f0);font-size:var(--text-sm, .875rem)}.eval-tests-table th{font-weight:700}.eval-activity-chips{display:flex;flex-wrap:wrap;gap:var(--space-2, .5rem);margin-top:var(--space-2, .5rem)}.eval-activity-chip{background:var(--color-bg, #f8fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-full, 9999px);padding:var(--space-1, .25rem) var(--space-3, .75rem);font-size:var(--text-xs, .75rem)}@media (max-width: 600px){.eval-ai-grid{grid-template-columns:1fr}.eval-comparison-grid{grid-template-columns:repeat(2,1fr)}.eval-modules-grid{grid-template-columns:1fr}.eval-controls{flex-direction:column;align-items:stretch}.progress-tabs{overflow-x:auto}}.points-streak-section{margin-bottom:var(--space-8);background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md)}.points-streak-section h3{margin:0 0 var(--space-5);font-family:var(--font-heading);color:var(--color-slate-900)}.points-streak-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-5)}.ps-card{text-align:center;padding:var(--space-4);background:linear-gradient(135deg,var(--color-slate-50),var(--color-slate-100));border-radius:var(--radius-md)}.ps-icon{font-size:1.5rem;display:block;margin-bottom:var(--space-2)}.ps-value{font-size:var(--text-2xl);font-weight:700;color:var(--color-slate-900);line-height:1}.ps-label{font-size:var(--text-xs);color:var(--color-slate-500);margin-top:var(--space-1);text-transform:uppercase;letter-spacing:.03em}.recent-transactions h4{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--color-slate-600)}.transactions-list{list-style:none;padding:0;margin:0 0 var(--space-4)}.tx-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-slate-100);font-size:var(--text-sm)}.tx-item:last-child{border-bottom:none}.tx-amount{font-weight:700;min-width:45px}.tx-item.tx-earned .tx-amount,.tx-item.tx-bonus .tx-amount,.tx-item.tx-streak .tx-amount{color:#059669}.tx-item.tx-spent .tx-amount{color:var(--color-red-600)}.tx-desc{flex-grow:1;color:var(--color-slate-600)}.tx-time{color:var(--color-slate-400);font-size:var(--text-xs)}.view-shop-link{display:inline-block;color:var(--color-accent);text-decoration:none;font-weight:600;font-size:var(--text-sm);transition:color var(--transition-fast)}.view-shop-link:hover{color:var(--color-blue-700)}@media (max-width: 600px){.points-streak-grid{grid-template-columns:repeat(2,1fr)}}.phonics-progress-summary{background:var(--card-bg, #fff);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color, #e0e0e0)}.phonics-progress-summary h3{margin:0 0 1rem;font-size:1.1rem}.phonics-progress-summary .phonics-weak-sounds{font-size:.85rem;margin-bottom:.75rem;color:var(--text-muted, #777)}.phonics-progress-summary .phonics-weak-chip{display:inline-block;background:var(--error-bg, #fff0f0);color:var(--error-color, #e74c3c);padding:2px 8px;border-radius:12px;font-size:.8rem;margin-left:4px}.phonics-progress-summary .practice-link{font-size:.85rem;color:var(--primary-color, #6c5ce7);text-decoration:none;font-weight:600}.phonics-progress-summary .practice-link:hover{text-decoration:underline}.progress-realtime-block{margin-bottom:var(--space-6);padding:var(--space-4);background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:1px solid #a7f3d0;border-radius:var(--radius-xl, 12px)}.progress-realtime-title{margin:0 0 var(--space-2);font-size:1rem;color:var(--color-slate-700, #334155)}.progress-realtime-content{font-size:.9rem;color:var(--color-slate-600, #475569)}.progress-realtime-summary{margin:0 0 var(--space-1)}.progress-realtime-ago{font-weight:600;color:var(--color-slate-800, #1e293b)}.progress-realtime-type{font-style:italic}.progress-realtime-doing{margin:0 0 var(--space-2);padding:var(--space-1) 0}.progress-realtime-list{margin:0;padding-left:var(--space-5);list-style:disc}.progress-realtime-list li{margin-bottom:var(--space-1);display:flex;flex-wrap:wrap;gap:var(--space-2)}.progress-realtime-activity{font-weight:500}.progress-realtime-time{font-size:.85rem;color:var(--text-muted, #94a3b8)}.progress-realtime-empty{margin:0;font-style:italic;color:var(--text-muted, #94a3b8)}.progress-chat-panel{max-width:640px;margin:0 auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.progress-chat-intro{color:var(--text-muted, #64748b);font-size:.95rem;margin:0}.progress-chat-help{display:flex;flex-direction:column;gap:var(--space-2, .5rem)}.progress-chat-help-label{font-size:var(--text-sm, .875rem);color:var(--text-muted, #64748b);font-weight:500}.progress-chat-examples{display:flex;flex-wrap:wrap;gap:var(--space-2, .5rem)}.progress-chat-example-chip{padding:var(--space-1, .25rem) var(--space-3, .75rem);font-size:var(--text-sm, .875rem);color:var(--color-primary, #6366f1);background:var(--color-slate-50, #f8fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-full, 9999px);cursor:pointer;transition:background .15s,border-color .15s}.progress-chat-example-chip:hover{background:var(--color-slate-100, #f1f5f9);border-color:var(--color-primary, #6366f1)}.progress-chat-messages{min-height:200px;max-height:400px;overflow-y:auto;padding:var(--space-3);background:var(--color-slate-50, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:var(--radius-lg, 8px);display:flex;flex-direction:column;gap:var(--space-3)}.progress-chat-placeholder{color:var(--text-muted, #94a3b8);font-size:.9rem;text-align:center;padding:var(--space-4)}.progress-chat-message{display:flex;flex-direction:column;gap:4px;align-self:flex-start;max-width:90%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg, 8px);background:#fff;border:1px solid var(--border-color, #e2e8f0)}.progress-chat-message--user{align-self:flex-end;background:var(--primary-color, #6c5ce7);color:#fff;border-color:var(--primary-color, #6c5ce7)}.progress-chat-message--assistant{background:#fff}.progress-chat-message-role{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted, #64748b)}.progress-chat-message--user .progress-chat-message-role{color:#ffffffe6}.progress-chat-message-content{font-size:.95rem;white-space:pre-wrap;word-break:break-word}.progress-chat-message-content.progress-chat-typing{color:var(--text-muted, #94a3b8);font-style:italic}.progress-chat-error{padding:var(--space-2) var(--space-3);background:var(--error-bg, #fef2f2);color:var(--error-color, #b91c1c);border-radius:var(--radius-md, 6px);font-size:.9rem}.progress-chat-form{display:flex;gap:var(--space-2)}.progress-chat-input{flex:1;padding:var(--space-2) var(--space-3);border:2px solid var(--border-color, #e2e8f0);border-radius:var(--radius-md, 6px);font-size:1rem}.progress-chat-input:focus{outline:none;border-color:var(--primary-color, #6c5ce7)}.progress-chat-input:disabled{opacity:.7;cursor:not-allowed}.progress-chat-send{padding:var(--space-2) var(--space-4);background:var(--primary-color, #6c5ce7);color:#fff;border:none;border-radius:var(--radius-md, 6px);font-weight:600;cursor:pointer;transition:opacity .2s}.progress-chat-send:hover:not(:disabled){opacity:.9}.progress-chat-send:disabled{opacity:.6;cursor:not-allowed}.spelling-fill-in-page{animation:fadeIn .5s ease-out;padding:var(--space-6);max-width:900px;margin:0 auto}.spelling-fill-in-page .container{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.spelling-fill-in-page h2{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5);text-align:center;font-size:var(--text-3xl)}.spelling-fill-in-page .filters{display:flex;gap:var(--space-5);margin-bottom:var(--space-5);flex-wrap:wrap;justify-content:center}.spelling-fill-in-page .filter-group{display:flex;flex-direction:column;gap:var(--space-2)}.spelling-fill-in-page .filter-group label{font-weight:600;color:var(--color-slate-700);font-size:var(--text-sm)}.spelling-fill-in-page .filter-group select{padding:var(--space-3) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-base);background:#fff;cursor:pointer;transition:var(--transition-base)}.spelling-fill-in-page .filter-group select:hover{border-color:var(--color-accent)}.spelling-fill-in-page .filter-group select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}.spelling-fill-in-page .score-section{display:flex;justify-content:space-around;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-5);background:var(--gradient-cta);border-radius:var(--radius-xl);color:#fff;flex-wrap:wrap}.spelling-fill-in-page .score-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.spelling-fill-in-page .score-item .label{font-size:var(--text-sm);opacity:.9;text-transform:uppercase;letter-spacing:.5px}.spelling-fill-in-page .score-item .value{font-size:var(--text-2xl);font-weight:700;font-family:var(--font-heading)}.spelling-fill-in-page .exercise-card{background:var(--color-slate-50);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-5)}.spelling-fill-in-page .word-display{text-align:center;margin-bottom:var(--space-5)}.spelling-fill-in-page .word-display h3{color:var(--color-slate-900);margin-bottom:var(--space-4);font-size:var(--text-xl)}.spelling-fill-in-page .word-with-blanks{font-size:var(--text-4xl);font-weight:700;color:var(--color-accent);letter-spacing:.3rem;font-family:Courier New,monospace;padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.spelling-fill-in-page .no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.spelling-fill-in-page .definition,.spelling-fill-in-page .example{margin-bottom:var(--space-4);padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);border-left:4px solid var(--color-accent);line-height:1.6}.spelling-fill-in-page .definition strong,.spelling-fill-in-page .example strong{color:var(--color-slate-900);display:block;margin-bottom:var(--space-1)}.spelling-fill-in-page .example-section{margin-bottom:var(--space-4);text-align:center}.spelling-fill-in-page .show-example-button{background:var(--gradient-cta);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-sm)}.spelling-fill-in-page .show-example-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.spelling-fill-in-page .hint-section{margin:var(--space-5) 0;text-align:center}.spelling-fill-in-page .hint-button{background:linear-gradient(135deg,var(--color-orange-500),var(--color-orange-600));color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-sm)}.spelling-fill-in-page .hint-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f9731666}.spelling-fill-in-page .hint{background:var(--color-yellow-50);border:2px solid var(--color-orange-500);border-radius:var(--radius-lg);padding:var(--space-4);color:var(--color-slate-700);text-align:left;line-height:1.6}.spelling-fill-in-page .hint strong{color:var(--color-orange-600);display:block;margin-bottom:var(--space-1)}.spelling-fill-in-page .answer-section{display:flex;gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap}.spelling-fill-in-page .answer-input{flex:1;min-width:200px;padding:var(--space-4);font-size:var(--text-lg);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);transition:var(--transition-base)}.spelling-fill-in-page .answer-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}.spelling-fill-in-page .submit-button{padding:var(--space-4) var(--space-6);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:var(--transition-base)}.spelling-fill-in-page .submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-cta)}.spelling-fill-in-page .submit-button:disabled{background:var(--color-slate-300);cursor:not-allowed}.spelling-fill-in-page .feedback{margin-top:var(--space-5);padding:var(--space-5);border-radius:var(--radius-xl);animation:slideIn .3s ease-out}.spelling-fill-in-page .feedback.correct{background:#22c55e1a;border:2px solid var(--color-blue-500)}.spelling-fill-in-page .feedback.correct .feedback-header{color:var(--color-blue-600)}.spelling-fill-in-page .feedback.incorrect{background:#ef44441a;border:2px solid var(--color-red-500)}.spelling-fill-in-page .feedback.incorrect .feedback-header{color:var(--color-red-600)}.spelling-fill-in-page .feedback-header{font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-4);font-family:var(--font-heading)}.spelling-fill-in-page .feedback-content p{margin:var(--space-3) 0;font-size:var(--text-lg)}.spelling-fill-in-page .common-mistake{background:var(--color-yellow-50);border-left:4px solid var(--color-orange-500);padding:var(--space-3);border-radius:var(--radius-md)}.spelling-fill-in-page .next-button{margin-top:var(--space-4);padding:var(--space-4) var(--space-6);background:var(--color-blue-500);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:var(--transition-base);width:100%}.spelling-fill-in-page .next-button:hover{background:var(--color-blue-600);transform:translateY(-2px)}.spelling-fill-in-page .action-buttons{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}.spelling-fill-in-page .reset-button,.spelling-fill-in-page .mock-test-button{padding:var(--space-3) var(--space-5);border:2px solid;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:var(--transition-base)}.spelling-fill-in-page .reset-button{background:#fff;border-color:var(--color-red-500);color:var(--color-red-500)}.spelling-fill-in-page .reset-button:hover{background:var(--color-red-500);color:#fff}.spelling-fill-in-page .mock-test-button{background:var(--color-purple-500);border-color:var(--color-purple-500);color:#fff}.spelling-fill-in-page .mock-test-button:hover{background:var(--color-purple-600);border-color:var(--color-purple-600);transform:translateY(-2px)}.spelling-fill-in-page .error-message{background:#ef44441a;color:var(--color-red-600);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4);border:1px solid var(--color-red-500)}@media (max-width: 768px){.spelling-fill-in-page{padding:var(--space-4)}.spelling-fill-in-page .container{padding:var(--space-5)}.spelling-fill-in-page h2{font-size:var(--text-2xl)}.spelling-fill-in-page .word-with-blanks{font-size:var(--text-2xl);letter-spacing:.2rem}.spelling-fill-in-page .score-section{flex-direction:column;gap:var(--space-4)}.spelling-fill-in-page .answer-section{flex-direction:column}.spelling-fill-in-page .answer-input,.spelling-fill-in-page .submit-button{width:100%;min-height:44px}.spelling-fill-in-page .action-buttons{flex-direction:column}.spelling-fill-in-page .reset-button,.spelling-fill-in-page .mock-test-button{width:100%;min-height:44px}.spelling-fill-in-page .filters{flex-direction:column;gap:var(--space-4)}.spelling-fill-in-page .filter-group{width:100%}.spelling-fill-in-page .filter-group select{width:100%;min-height:44px}}@media (max-width: 480px){.spelling-fill-in-page{padding:var(--space-3)}.spelling-fill-in-page .container{padding:var(--space-4);border-radius:var(--radius-lg)}.spelling-fill-in-page h2{font-size:var(--text-xl)}.spelling-fill-in-page .word-with-blanks{font-size:var(--text-xl);letter-spacing:.15rem;padding:var(--space-3)}.spelling-fill-in-page .definition,.spelling-fill-in-page .example{padding:var(--space-3);font-size:var(--text-sm)}.spelling-fill-in-page .exercise-card{padding:var(--space-4);border-radius:var(--radius-lg)}}.spelling-fill-in-mock-test-page{animation:fadeIn .5s ease-out;padding:var(--space-6);max-width:1000px;margin:0 auto;min-height:calc(100vh - 200px)}.spelling-fill-in-mock-test-page .container{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.spelling-fill-in-mock-test-page h2{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-2);text-align:center;font-size:var(--text-2xl)}.spelling-fill-in-mock-test-page .subtitle{text-align:center;color:var(--color-slate-500);margin-bottom:var(--space-6);font-size:var(--text-sm)}.spelling-fill-in-mock-test-page .filter-section{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.spelling-fill-in-mock-test-page .filter-section label{font-weight:600;color:var(--color-slate-700)}.spelling-fill-in-mock-test-page .filter-section select{padding:var(--space-3) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-sm);background:#fff;cursor:pointer;transition:var(--transition-base);min-height:44px}.spelling-fill-in-mock-test-page .filter-section select:hover{border-color:var(--color-accent)}.spelling-fill-in-mock-test-page .filter-section select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}.spelling-fill-in-mock-test-page .tests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5);margin-bottom:var(--space-6)}.spelling-fill-in-mock-test-page .test-card{background:var(--color-slate-50);border-radius:var(--radius-xl);padding:var(--space-5);position:relative;transition:var(--transition-base);border:2px solid transparent}.spelling-fill-in-mock-test-page .test-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-accent)}.spelling-fill-in-mock-test-page .test-card h3{color:var(--color-slate-900);margin-bottom:var(--space-3);padding-right:80px}.spelling-fill-in-mock-test-page .test-card .description{color:var(--color-slate-600);margin-bottom:var(--space-4);line-height:1.5}.spelling-fill-in-mock-test-page .difficulty-badge{position:absolute;top:var(--space-4);right:var(--space-4);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.spelling-fill-in-mock-test-page .difficulty-badge.easy{background:#22c55e1a;color:var(--color-blue-600)}.spelling-fill-in-mock-test-page .difficulty-badge.medium{background:#f973161a;color:var(--color-orange-600)}.spelling-fill-in-mock-test-page .difficulty-badge.hard{background:#ef44441a;color:var(--color-red-500)}.spelling-fill-in-mock-test-page .test-meta{display:flex;gap:var(--space-4);margin-bottom:var(--space-4);color:var(--color-slate-500);font-size:var(--text-sm)}.spelling-fill-in-mock-test-page .meta-item{display:flex;align-items:center;gap:var(--space-1)}.spelling-fill-in-mock-test-page .start-test-button{width:100%;padding:var(--space-3);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:var(--transition-base)}.spelling-fill-in-mock-test-page .start-test-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.spelling-fill-in-mock-test-page .test-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);flex-wrap:wrap;gap:var(--space-4)}.spelling-fill-in-mock-test-page .test-info{display:flex;gap:var(--space-6);align-items:center;font-size:var(--text-lg);color:var(--color-slate-500)}.spelling-fill-in-mock-test-page .timer{font-weight:600;color:var(--color-accent);font-size:var(--text-lg)}.spelling-fill-in-mock-test-page .timer.warning{color:var(--color-red-500);animation:pulse 1s infinite}.spelling-fill-in-mock-test-page .progress-bar{height:8px;background:var(--color-slate-200);border-radius:var(--radius-full);margin-bottom:var(--space-6);overflow:hidden}.spelling-fill-in-mock-test-page .progress-fill{height:100%;background:var(--gradient-cta);transition:width .3s ease;border-radius:var(--radius-full)}.spelling-fill-in-mock-test-page .question-card{background:var(--color-slate-50);border-radius:var(--radius-xl);padding:var(--space-6)}.spelling-fill-in-mock-test-page .question-card h3{color:var(--color-slate-900);margin-bottom:var(--space-5);text-align:center;font-size:var(--text-xl)}.spelling-fill-in-mock-test-page .no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.spelling-fill-in-mock-test-page .word-with-blanks{font-size:var(--text-4xl);font-weight:700;color:var(--color-accent);letter-spacing:.3rem;text-align:center;padding:var(--space-5);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5);font-family:Courier New,monospace}.spelling-fill-in-mock-test-page .definition{padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);border-left:4px solid var(--color-accent);margin-bottom:var(--space-4);line-height:1.6}.spelling-fill-in-mock-test-page .definition strong{color:var(--color-slate-900);display:block;margin-bottom:var(--space-1)}.spelling-fill-in-mock-test-page .hint-section{margin-bottom:var(--space-5)}.spelling-fill-in-mock-test-page .hint-toggle-btn{padding:var(--space-2) var(--space-4);background:var(--color-yellow-50);border:2px solid var(--color-orange-500);border-radius:var(--radius-lg);color:var(--color-orange-600);font-weight:600;cursor:pointer;transition:var(--transition-base);font-size:var(--text-sm)}.spelling-fill-in-mock-test-page .hint-toggle-btn:hover{background:var(--color-orange-500);color:#fff;transform:translateY(-1px)}.spelling-fill-in-mock-test-page .hint{padding:var(--space-4);background:var(--color-yellow-50);border:2px solid var(--color-orange-500);border-radius:var(--radius-lg);margin-top:var(--space-3);color:var(--color-slate-700);line-height:1.6;animation:fadeIn .3s ease-out}.spelling-fill-in-mock-test-page .hint strong{color:var(--color-orange-600);display:block;margin-bottom:var(--space-1)}.spelling-fill-in-mock-test-page .answer-section{display:flex;gap:var(--space-4);margin-top:var(--space-5)}.spelling-fill-in-mock-test-page .answer-input{flex:1;padding:var(--space-4);font-size:var(--text-lg);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);transition:var(--transition-base)}.spelling-fill-in-mock-test-page .answer-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}.spelling-fill-in-mock-test-page .submit-button{padding:var(--space-4) var(--space-6);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:var(--transition-base);white-space:nowrap}.spelling-fill-in-mock-test-page .submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-cta)}.spelling-fill-in-mock-test-page .submit-button:disabled{background:var(--color-slate-300);cursor:not-allowed}.spelling-fill-in-mock-test-page .results-summary{text-align:center;margin-bottom:var(--space-6)}.spelling-fill-in-mock-test-page .results-summary h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5);font-size:var(--text-xl)}.spelling-fill-in-mock-test-page .score-display{text-align:center;margin-bottom:var(--space-6);padding:var(--space-6);background:var(--color-slate-50);border-radius:var(--radius-xl);border:1px solid var(--color-slate-200)}.spelling-fill-in-mock-test-page .score-circle{width:200px;height:200px;border-radius:var(--radius-xl);display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;background:var(--color-slate-700);box-shadow:var(--shadow-xl)}.spelling-fill-in-mock-test-page .score-percentage{font-size:var(--text-4xl);font-weight:700;line-height:1;font-family:var(--font-heading)}.spelling-fill-in-mock-test-page .score-fraction{font-size:var(--text-lg);margin-top:var(--space-2);opacity:.9}.spelling-fill-in-mock-test-page .answers-review{margin-top:var(--space-6)}.spelling-fill-in-mock-test-page .answers-review h3{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-5)}.spelling-fill-in-mock-test-page .answer-item{background:var(--color-slate-50);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);border-left:4px solid}.spelling-fill-in-mock-test-page .answer-item.correct{border-left-color:var(--color-blue-500)}.spelling-fill-in-mock-test-page .answer-item.incorrect{border-left-color:var(--color-red-500)}.spelling-fill-in-mock-test-page .answer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-2)}.spelling-fill-in-mock-test-page .question-number{font-weight:600;color:var(--color-slate-900)}.spelling-fill-in-mock-test-page .answer-status{font-weight:600;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm)}.spelling-fill-in-mock-test-page .answer-status.correct{background:#22c55e1a;color:var(--color-blue-600)}.spelling-fill-in-mock-test-page .answer-status.incorrect{background:#ef44441a;color:var(--color-red-500)}.spelling-fill-in-mock-test-page .answer-content{margin-top:var(--space-4)}.spelling-fill-in-mock-test-page .answer-content p{margin:var(--space-2) 0}.spelling-fill-in-mock-test-page .word-blanks{font-size:var(--text-2xl);font-weight:700;color:var(--color-accent);margin-bottom:var(--space-4);font-family:Courier New,monospace;letter-spacing:.2rem}.spelling-fill-in-mock-test-page .user-answer{color:var(--color-red-500);background:#ef44441a;padding:var(--space-2);border-radius:var(--radius-sm)}.spelling-fill-in-mock-test-page .action-buttons{display:flex;gap:var(--space-4);justify-content:center;margin-top:var(--space-6);flex-wrap:wrap}.spelling-fill-in-mock-test-page .back-button,.spelling-fill-in-mock-test-page .practice-button{padding:var(--space-3) var(--space-5);border:2px solid;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:var(--transition-base)}.spelling-fill-in-mock-test-page .back-button{background:#fff;border-color:var(--color-accent);color:var(--color-accent)}.spelling-fill-in-mock-test-page .back-button:hover{background:var(--color-accent);color:#fff}.spelling-fill-in-mock-test-page .practice-button{background:var(--color-purple-500);border-color:var(--color-purple-500);color:#fff}.spelling-fill-in-mock-test-page .practice-button:hover{background:var(--color-purple-600);border-color:var(--color-purple-600);transform:translateY(-2px)}.spelling-fill-in-mock-test-page .error-message{background:#ef44441a;color:var(--color-red-600);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-4);border:1px solid var(--color-red-500)}@media (max-width: 768px){.spelling-fill-in-mock-test-page{padding:var(--space-4)}.spelling-fill-in-mock-test-page .container{padding:var(--space-5)}.spelling-fill-in-mock-test-page .tests-grid{grid-template-columns:1fr}.spelling-fill-in-mock-test-page .test-header{flex-direction:column;align-items:flex-start}.spelling-fill-in-mock-test-page .test-info{flex-direction:column;gap:var(--space-3);align-items:flex-start}.spelling-fill-in-mock-test-page .word-with-blanks{font-size:var(--text-2xl);letter-spacing:.2rem}.spelling-fill-in-mock-test-page .answer-section{flex-direction:column}.spelling-fill-in-mock-test-page .answer-input,.spelling-fill-in-mock-test-page .submit-button{width:100%;min-height:44px}.spelling-fill-in-mock-test-page .score-circle{width:150px;height:150px}.spelling-fill-in-mock-test-page .score-percentage{font-size:var(--text-2xl)}.spelling-fill-in-mock-test-page .action-buttons{flex-direction:column}.spelling-fill-in-mock-test-page .back-button,.spelling-fill-in-mock-test-page .practice-button{width:100%;min-height:44px}}@media (max-width: 480px){.spelling-fill-in-mock-test-page{padding:var(--space-3)}.spelling-fill-in-mock-test-page .container{padding:var(--space-4);border-radius:var(--radius-lg)}.spelling-fill-in-mock-test-page h2{font-size:var(--text-xl)}.spelling-fill-in-mock-test-page .subtitle{font-size:var(--text-xs)}.spelling-fill-in-mock-test-page .filter-section{flex-direction:column;align-items:stretch}.spelling-fill-in-mock-test-page .filter-section select{width:100%}.spelling-fill-in-mock-test-page .word-with-blanks{font-size:var(--text-xl);letter-spacing:.15rem}.spelling-fill-in-mock-test-page .score-circle{width:120px;height:120px}.spelling-fill-in-mock-test-page .score-percentage{font-size:var(--text-xl)}}.cg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg, 1.25rem)}.cg-grid .cg-card{background:var(--card-background, #fff);border-radius:16px;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;overflow:hidden;position:relative;transition:box-shadow .2s ease,transform .2s ease;display:flex;flex-direction:column}.cg-grid .cg-card:hover{box-shadow:0 4px 12px #00000014,0 2px 4px #0000000a}.cg-grid .cg-card--single{cursor:pointer}.cg-grid .cg-card--single:hover{transform:translateY(-2px)}.cg-grid .cg-card--single:hover .cg-card__go{transform:translate(4px);color:var(--cat-color, var(--primary-color, #6366f1))}.cg-grid .cg-card--single .cg-card__header{padding-bottom:var(--spacing-lg, 1.25rem)}.cg-grid .cg-card .cg-card__accent{height:4px;background:var(--cat-color, var(--primary-color, #6366f1));flex-shrink:0}.cg-grid .cg-card .cg-card__header{display:flex;align-items:center;gap:var(--spacing-md, .75rem);padding:var(--spacing-lg, 1.25rem) var(--spacing-lg, 1.25rem) var(--spacing-md, .75rem)}.cg-grid .cg-card .cg-card__icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0;background:color-mix(in srgb,var(--cat-color, #6366f1) 12%,transparent)}.cg-grid .cg-card .cg-card__title{flex:1;min-width:0}.cg-grid .cg-card .cg-card__title h3{font-size:1rem;font-weight:600;margin:0;color:var(--text-primary, #1e293b);line-height:1.3}.cg-grid .cg-card .cg-card__title p{font-size:.8rem;color:var(--text-secondary, #64748b);margin:2px 0 0;line-height:1.3}.cg-grid .cg-card .cg-card__count{font-size:.7rem;font-weight:700;min-width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:999px;color:#fff;background:var(--cat-color, var(--primary-color, #6366f1));flex-shrink:0}.cg-grid .cg-card .cg-card__go{font-size:1.1rem;color:var(--text-secondary, #64748b);flex-shrink:0;transition:transform .2s ease,color .2s ease}.cg-grid .cg-card .cg-card__activities{display:flex;flex-direction:column;padding:0 var(--spacing-lg, 1.25rem) var(--spacing-lg, 1.25rem);gap:6px}.cg-grid .cg-card .cg-activity{display:flex;align-items:center;gap:var(--spacing-sm, .5rem);padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--text-primary, #1e293b);background:var(--hover-background, #f8fafc);border:1px solid transparent;transition:background .15s ease,border-color .15s ease,transform .15s ease}.cg-grid .cg-card .cg-activity:hover{background:color-mix(in srgb,var(--cat-color, #6366f1) 6%,var(--hover-background, #f1f5f9));border-color:color-mix(in srgb,var(--cat-color, #6366f1) 20%,transparent);transform:translate(2px)}.cg-grid .cg-card .cg-activity:hover .cg-activity__arrow{transform:translate(3px);color:var(--cat-color, var(--primary-color, #6366f1))}.cg-grid .cg-card .cg-activity .cg-activity__icon{font-size:1.15rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0;background:color-mix(in srgb,var(--cat-color, #6366f1) 10%,transparent)}.cg-grid .cg-card .cg-activity .cg-activity__info{flex:1;min-width:0}.cg-grid .cg-card .cg-activity .cg-activity__name{display:block;font-size:.85rem;font-weight:500;color:var(--text-primary, #1e293b);line-height:1.3}.cg-grid .cg-card .cg-activity .cg-activity__desc{display:block;font-size:.75rem;color:var(--text-secondary, #64748b);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cg-grid .cg-card .cg-activity .cg-activity__arrow{font-size:.85rem;color:var(--text-secondary, #94a3b8);flex-shrink:0;transition:transform .15s ease,color .15s ease}@media (min-width: 1100px){.cg-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.cg-grid{grid-template-columns:1fr;gap:var(--spacing-md, 1rem)}.cg-grid .cg-card:hover,.cg-grid .cg-card--single:hover{transform:none}}@media (max-width: 480px){.cg-grid .cg-card__header{padding:var(--spacing-md, .75rem)}.cg-grid .cg-card__activities{padding:0 var(--spacing-md, .75rem) var(--spacing-md, .75rem)}.cg-grid .cg-card__icon{width:40px;height:40px;font-size:1.3rem;border-radius:10px}.cg-grid .cg-activity__desc{display:none}}.math-root-page{max-width:1100px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-md)}.math-root-page .math-hero{text-align:center;margin-bottom:var(--spacing-2xl)}.math-root-page .math-hero h2{font-size:var(--font-2xl, 2rem);color:var(--primary-color);margin-bottom:var(--spacing-xs)}.math-root-page .math-hero p{color:var(--text-secondary);font-size:var(--font-md, 1rem)}@media (max-width: 768px){.math-root-page .math-hero h2{font-size:var(--font-xl, 1.6rem)}}@media (max-width: 480px){.math-root-page{padding:var(--spacing-md) var(--spacing-sm)}}.math-techniques-page{max-width:900px;margin:0 auto;padding:var(--space-5)}.math-techniques-page h2{text-align:center;color:var(--color-slate-800);font-family:var(--font-heading);margin-bottom:var(--space-2);font-size:var(--text-3xl)}.math-techniques-page .page-description{text-align:center;color:var(--color-slate-600);margin-bottom:var(--space-8);font-size:var(--text-lg)}.math-techniques-page .mode-selection{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5);margin-bottom:var(--space-10)}.math-techniques-page .mode-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-md);border:3px solid transparent}.math-techniques-page .mode-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.math-techniques-page .mode-card h3{color:var(--color-slate-800);font-family:var(--font-heading);margin-bottom:var(--space-2)}.math-techniques-page .mode-card p{color:var(--color-slate-600);font-size:var(--text-sm)}.math-techniques-page .learn-mode:hover{border-color:var(--color-blue-500)}.math-techniques-page .quiz-mode:hover{border-color:var(--color-accent)}.math-techniques-page .mode-icon{font-size:var(--text-5xl);display:block;margin-bottom:var(--space-4)}.math-techniques-page .section-title{color:var(--color-slate-800);font-family:var(--font-heading);margin:var(--space-8) 0 var(--space-5);font-size:var(--text-xl);display:flex;align-items:center;gap:var(--space-2)}.math-techniques-page .category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}.math-techniques-page .category-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;align-items:center;gap:var(--space-4);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-sm);border-left:4px solid}.math-techniques-page .category-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.math-techniques-page .category-icon{width:45px;height:45px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);color:#fff}.math-techniques-page .category-info h4{margin:0 0 var(--space-1);color:var(--color-slate-800);font-size:var(--text-sm);text-transform:capitalize}.math-techniques-page .question-count{color:var(--color-slate-500);font-size:var(--text-sm)}.math-techniques-page .category-selection{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}.math-techniques-page .category-pill{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:2px solid var(--pill-color, var(--color-slate-400));background:var(--pill-bg, var(--color-slate-50));border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-base);font-size:var(--text-sm);font-weight:500;color:var(--color-slate-700)}.math-techniques-page .category-pill:hover{transform:scale(1.03);box-shadow:var(--shadow-sm)}.math-techniques-page .category-pill.selected{background:var(--pill-color, var(--color-slate-400));color:#fff;transform:scale(1.05);box-shadow:var(--shadow-md)}.math-techniques-page .category-pill.selected .pill-count{background:#ffffff4d}.math-techniques-page .category-pill .pill-icon{font-size:var(--text-lg)}.math-techniques-page .category-pill .pill-text{text-transform:capitalize}.math-techniques-page .category-pill .pill-count{background:#0000001a;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.math-techniques-page .difficulty-selection{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-8)}.math-techniques-page .difficulty-pill{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);border:2px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-base);font-size:var(--text-base);font-weight:600;background:var(--color-slate-100);color:var(--color-slate-600)}.math-techniques-page .difficulty-pill:hover{transform:scale(1.05)}.math-techniques-page .difficulty-pill.easy{border-color:var(--color-blue-500)}.math-techniques-page .difficulty-pill.easy:hover,.math-techniques-page .difficulty-pill.easy.selected{background:linear-gradient(135deg,var(--color-blue-500),var(--color-blue-600));color:#fff}.math-techniques-page .difficulty-pill.medium{border-color:var(--color-orange-500)}.math-techniques-page .difficulty-pill.medium:hover,.math-techniques-page .difficulty-pill.medium.selected{background:linear-gradient(135deg,var(--color-orange-500),var(--color-orange-600));color:#fff}.math-techniques-page .difficulty-pill.hard{border-color:var(--color-red-500)}.math-techniques-page .difficulty-pill.hard:hover,.math-techniques-page .difficulty-pill.hard.selected{background:linear-gradient(135deg,var(--color-red-500),var(--color-red-600));color:#fff}.math-techniques-page .difficulty-pill.selected{transform:scale(1.08);box-shadow:var(--shadow-md)}.math-techniques-page .diff-emoji{font-size:var(--text-base)}.math-techniques-page .selection-actions{background:linear-gradient(135deg,var(--color-slate-50),var(--color-slate-100));border-radius:var(--radius-xl);padding:var(--space-5);margin-top:var(--space-2);animation:slideUp .3s ease}.math-techniques-page .selection-summary{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4);justify-content:center}.math-techniques-page .selected-tag{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-weight:600;font-size:var(--text-sm);text-transform:capitalize}.math-techniques-page .category-tag{background:var(--gradient-cta);color:#fff}.math-techniques-page .difficulty-tag{color:#fff}.math-techniques-page .difficulty-tag.easy{background:linear-gradient(135deg,var(--color-blue-500),var(--color-blue-600))}.math-techniques-page .difficulty-tag.medium{background:linear-gradient(135deg,var(--color-orange-500),var(--color-orange-600))}.math-techniques-page .difficulty-tag.hard{background:linear-gradient(135deg,var(--color-red-500),var(--color-red-600))}.math-techniques-page .action-buttons{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.math-techniques-page .action-btn{padding:var(--space-4) var(--space-7);border:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:var(--transition-base);color:#fff}.math-techniques-page .action-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.math-techniques-page .action-btn.try-again{background:linear-gradient(135deg,var(--color-blue-500),var(--color-blue-600));color:#fff}.math-techniques-page .action-btn.back-menu{background:var(--color-slate-100);color:var(--color-slate-700)}.math-techniques-page .learn-btn{background:linear-gradient(135deg,var(--color-blue-500),var(--color-blue-600))}.math-techniques-page .quiz-btn{background:var(--gradient-cta)}.math-techniques-page .clear-btn{padding:var(--space-4) var(--space-5);border:2px solid var(--color-slate-300);border-radius:var(--radius-lg);background:#fff;font-size:var(--text-base);font-weight:500;cursor:pointer;transition:var(--transition-base);color:var(--color-slate-600)}.math-techniques-page .clear-btn:hover{background:var(--color-slate-50);border-color:var(--color-slate-400)}.math-techniques-page .quiz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-2)}.math-techniques-page .back-btn{background:var(--color-slate-100);border:none;padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);cursor:pointer;font-weight:500;transition:var(--transition-base)}.math-techniques-page .back-btn:hover{background:var(--color-slate-200)}.math-techniques-page .progress-info{display:flex;gap:var(--space-5);align-items:center}.math-techniques-page .question-counter{font-weight:600;color:var(--color-slate-700)}.math-techniques-page .timer{background:var(--color-accent);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-weight:600;font-family:Courier New,monospace}.math-techniques-page .score-display{text-align:center;margin-bottom:var(--space-6);padding:var(--space-6);background:var(--color-slate-50);border-radius:var(--radius-xl);border:1px solid var(--color-slate-200)}.math-techniques-page .progress-bar-container{width:100%;height:8px;background:var(--color-slate-200);border-radius:var(--radius-sm);margin-bottom:var(--space-6);overflow:hidden;flex-shrink:0}.math-techniques-page .progress-bar-container .progress-bar{height:100%;background:linear-gradient(90deg,var(--color-blue-500),var(--color-blue-600));border-radius:var(--radius-sm);transition:width .3s ease}.math-techniques-page .technique-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-md);margin-top:0}.math-techniques-page .technique-header{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap}.math-techniques-page .category-badge,.math-techniques-page .difficulty-badge{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;color:#fff;text-transform:capitalize}.math-techniques-page .technique-title{color:var(--color-slate-800);font-family:var(--font-heading);font-size:var(--text-2xl);margin-bottom:var(--space-5)}.math-techniques-page .question-box{background:var(--gradient-cta);color:#fff;padding:var(--space-6);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}.math-techniques-page .question-box .question-text{font-size:var(--text-xl);text-align:center;margin:0;line-height:1.6;color:#fff}.math-techniques-page .question-text{font-size:var(--text-xl);color:var(--color-slate-900);line-height:1.6;font-family:var(--font-heading)}.math-techniques-page .hint-btn{display:block;margin:0 auto var(--space-5);background:var(--color-yellow-50);border:2px solid var(--color-orange-500);color:var(--color-slate-700);padding:var(--space-2) var(--space-6);border-radius:var(--radius-full);font-weight:600;cursor:pointer;transition:var(--transition-base)}.math-techniques-page .hint-btn:hover{background:var(--color-orange-500);color:#fff}.math-techniques-page .hint-box{background:var(--color-yellow-50);border-left:4px solid var(--color-orange-500);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);margin-bottom:var(--space-5);display:flex;align-items:flex-start;gap:var(--space-3)}.math-techniques-page .hint-box p{margin:0;color:var(--color-slate-700);font-size:var(--text-base)}.math-techniques-page .hint-icon{font-size:var(--text-2xl)}.math-techniques-page .options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);margin-bottom:var(--space-5)}.math-techniques-page .option-btn{padding:var(--space-5) var(--space-5);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);background:#fff;font-size:var(--text-lg);cursor:pointer;transition:var(--transition-base);font-weight:500}.math-techniques-page .option-btn:hover:not(:disabled){border-color:var(--color-accent);background:#2563eb0d}.math-techniques-page .option-btn.selected{border-color:var(--color-accent);background:#2563eb1a}.math-techniques-page .option-btn.correct{border-color:var(--color-blue-500);background:#22c55e1a;color:var(--color-blue-600)}.math-techniques-page .option-btn.incorrect{border-color:var(--color-red-500);background:#ef44441a;color:var(--color-red-600)}.math-techniques-page .option-btn:disabled{cursor:default}.math-techniques-page .result-feedback{padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);text-align:center;font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-5)}.math-techniques-page .result-feedback.correct{background:#22c55e1a;color:var(--color-blue-600)}.math-techniques-page .result-feedback.incorrect{background:#ef44441a;color:var(--color-red-600)}.math-techniques-page .technique-explanation{margin-bottom:var(--space-5)}.math-techniques-page .toggle-technique-btn{display:block;width:100%;padding:var(--space-3);background:#2563eb1a;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;color:var(--color-accent);cursor:pointer;transition:var(--transition-base)}.math-techniques-page .toggle-technique-btn:hover{background:#2563eb26}.math-techniques-page .technique-content{background:var(--color-slate-50);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-4)}.math-techniques-page .technique-method{background:#fff;padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);border-left:4px solid var(--color-purple-500)}.math-techniques-page .technique-method h4{color:var(--color-purple-500);margin:0 0 var(--space-2)}.math-techniques-page .technique-method p{margin:0;color:var(--color-slate-700);font-size:var(--text-base)}.math-techniques-page .steps-list{background:#fff;padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.math-techniques-page .steps-list h4{color:var(--color-accent);margin:0 0 var(--space-2)}.math-techniques-page .steps-list ol{margin:0;padding-left:var(--space-6)}.math-techniques-page .steps-list li{color:var(--color-slate-700);padding:var(--space-1) 0;line-height:1.5}.math-techniques-page .fun-fact{background:var(--color-yellow-50);padding:var(--space-4);border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:var(--space-3)}.math-techniques-page .fun-fact p{margin:0;color:var(--color-orange-600);font-size:var(--text-sm)}.math-techniques-page .fun-fact-icon{font-size:var(--text-2xl)}.math-techniques-page .next-btn{display:block;width:100%;padding:var(--space-4);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:var(--transition-base)}.math-techniques-page .next-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.math-techniques-page .quiz-complete{text-align:center;padding:var(--space-10) var(--space-5);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.math-techniques-page .quiz-complete h2{color:var(--color-slate-800);font-family:var(--font-heading);margin-bottom:var(--space-8)}.math-techniques-page .complete-emoji{font-size:5rem;display:block;margin-bottom:var(--space-5)}.math-techniques-page .final-stats{display:flex;justify-content:center;gap:var(--space-8);margin-bottom:var(--space-8);flex-wrap:wrap}.math-techniques-page .stat-box{background:var(--gradient-cta);color:#fff;padding:var(--space-5) var(--space-8);border-radius:var(--radius-lg);min-width:100px}.math-techniques-page .stat-value{display:block;font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-1)}.math-techniques-page .stat-label{font-size:var(--text-sm);opacity:.9}.math-techniques-page .complete-message{font-size:var(--text-lg);color:var(--color-slate-600);margin-bottom:var(--space-8)}.math-techniques-page .complete-actions{display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.math-techniques-page .no-content{text-align:center;padding:var(--space-12) var(--space-5);color:var(--color-slate-600)}.math-techniques-page .no-content button{margin-top:var(--space-5);padding:var(--space-3) var(--space-8);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer}@media (max-width: 500px){.math-techniques-page .options-grid{grid-template-columns:1fr}}@media (max-width: 768px){.math-techniques-page{padding:var(--space-4)}.math-techniques-page h2{font-size:var(--text-2xl)}.math-techniques-page .technique-card{padding:var(--space-5)}.math-techniques-page .question-text{font-size:var(--text-lg)}.math-techniques-page .final-stats{gap:var(--space-4)}.math-techniques-page .stat-box{padding:var(--space-4) var(--space-5);min-width:80px}.math-techniques-page .stat-value{font-size:var(--text-2xl)}.math-techniques-page .category-selection{gap:var(--space-2)}.math-techniques-page .category-pill{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.math-techniques-page .category-pill .pill-icon{font-size:var(--text-base)}.math-techniques-page .difficulty-selection{gap:var(--space-2)}.math-techniques-page .difficulty-pill{padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}.math-techniques-page .selection-actions{padding:var(--space-4)}.math-techniques-page .action-buttons{flex-direction:column;gap:var(--space-2)}.math-techniques-page .action-btn,.math-techniques-page .clear-btn{width:100%;padding:var(--space-4);min-height:48px}}@media (max-width: 480px){.math-techniques-page{padding:var(--space-3)}.math-techniques-page h2{font-size:var(--text-xl)}.math-techniques-page .page-description{font-size:var(--text-sm)}.math-techniques-page .mode-selection{grid-template-columns:1fr;gap:var(--space-3)}.math-techniques-page .mode-card{padding:var(--space-6)}.math-techniques-page .mode-icon{font-size:2rem}.math-techniques-page .category-grid{grid-template-columns:1fr;gap:var(--space-2)}.math-techniques-page .category-pill{padding:var(--space-2);font-size:var(--text-xs);flex:1 1 calc(50% - 8px);justify-content:center}.math-techniques-page .category-pill .pill-count{display:none}.math-techniques-page .difficulty-pill{flex:1;justify-content:center;padding:var(--space-3);font-size:var(--text-sm)}}.times-tables-page{animation:fadeIn .5s ease-out;max-width:800px;margin:0 auto;padding:var(--space-5)}.times-tables-page h2{text-align:center;color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-8);font-size:var(--text-3xl)}.times-tables-page .setup-container{display:grid;grid-template-columns:1fr;gap:var(--space-8)}@media (min-width: 640px){.times-tables-page .setup-container{grid-template-columns:2fr 1fr}}.times-tables-page .setup-section{background:var(--gradient-cta);color:#fff;padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}.times-tables-page .setup-section h3{margin-bottom:var(--space-6);font-size:var(--text-xl);font-family:var(--font-heading)}.times-tables-page .setup-option{margin-bottom:var(--space-5)}.times-tables-page .setup-option label{display:block;margin-bottom:var(--space-2);font-weight:600}.times-tables-page .setup-option select{width:100%;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-lg);font-size:var(--text-base);background:#fffffff2;color:var(--color-slate-800);cursor:pointer}.times-tables-page .setup-option select:focus{outline:none;box-shadow:0 0 0 3px #ffffff80}.times-tables-page .setup-info{background:#ffffff26;padding:var(--space-4);border-radius:var(--radius-lg);margin:var(--space-6) 0}.times-tables-page .setup-info p{margin:var(--space-2) 0}.times-tables-page .tips-section{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-xl);border:2px dashed var(--color-slate-300)}.times-tables-page .tips-section h4{color:var(--color-slate-700);margin-bottom:var(--space-4);font-family:var(--font-heading)}.times-tables-page .tips-section ul{padding-left:var(--space-5);color:var(--color-slate-600)}.times-tables-page .tips-section li{margin:var(--space-3) 0;line-height:1.5}.times-tables-page .game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding:var(--space-4) var(--space-5);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.times-tables-page .timer{font-size:var(--text-xl);font-weight:700;color:var(--color-slate-900);padding:var(--space-2) var(--space-4);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.times-tables-page .timer.warning{background:#ef44441a;color:var(--color-red-600);animation:pulse 1s infinite}.times-tables-page .question-counter{font-size:var(--text-base);color:var(--color-slate-500);font-weight:600}.times-tables-page .score-display{text-align:center;margin-bottom:var(--space-6);padding:var(--space-6);background:var(--color-slate-50);border-radius:var(--radius-xl);border:1px solid var(--color-slate-200)}.times-tables-page .question-container{background:var(--bg-card);padding:var(--space-12) var(--space-8);border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-lg);margin-bottom:var(--space-5);border:1px solid var(--color-slate-200)}.times-tables-page .question-text{font-size:var(--text-5xl);font-weight:700;color:var(--color-slate-900);margin-bottom:var(--space-8);font-family:var(--font-heading)}.times-tables-page .answer-input-container{display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.times-tables-page .answer-input{width:150px;padding:var(--space-4) var(--space-5);font-size:var(--text-2xl);text-align:center;border:3px solid var(--color-slate-200);border-radius:var(--radius-xl);transition:var(--transition-base)}.times-tables-page .answer-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb33}.times-tables-page .answer-input::-webkit-outer-spin-button,.times-tables-page .answer-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.times-tables-page .answer-input[type=number]{-moz-appearance:textfield}.times-tables-page .quick-reference{text-align:center;padding:var(--space-3);background:var(--color-slate-100);border-radius:var(--radius-lg);color:var(--color-slate-600)}.times-tables-page .reference-label{margin-right:var(--space-2)}.times-tables-page .reference-table{font-weight:600;color:var(--color-slate-700)}.times-tables-page .results-container{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-200)}.times-tables-page .results-header{text-align:center;padding:var(--space-8);border-radius:var(--radius-xl);margin-bottom:var(--space-8)}.times-tables-page .results-header.perfect{background:linear-gradient(135deg,var(--color-orange-400),var(--color-orange-500))}.times-tables-page .results-header.good{background:linear-gradient(135deg,var(--color-blue-500),var(--color-blue-600));color:#fff}.times-tables-page .results-header.needs-practice{background:var(--gradient-cta);color:#fff}.times-tables-page .results-header h3{font-size:var(--text-2xl);font-family:var(--font-heading);margin:0}.times-tables-page .results-emoji{font-size:var(--text-5xl);margin-bottom:var(--space-3)}.times-tables-page .results-breakdown{margin-bottom:var(--space-8)}.times-tables-page .results-breakdown h4{margin-bottom:var(--space-4);color:var(--color-slate-700)}.times-tables-page .breakdown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.times-tables-page .breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base)}.times-tables-page .breakdown-item.correct{background:#22c55e1a;color:var(--color-blue-600)}.times-tables-page .breakdown-item.incorrect{background:#ef44441a;color:var(--color-red-600)}.times-tables-page .breakdown-question{font-weight:600}.times-tables-page .correct-mark{color:var(--color-blue-600)}.times-tables-page .incorrect-mark s{color:var(--color-red-500);margin-right:var(--space-2)}.times-tables-page .results-actions{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}.times-tables-page .techniques-section{margin-top:var(--space-8);padding:var(--space-6);background:linear-gradient(135deg,var(--color-yellow-50),rgba(251,191,36,.2));border-radius:var(--radius-xl);border:2px solid var(--color-orange-500)}.times-tables-page .techniques-section h4{color:var(--color-orange-700);margin-bottom:var(--space-5);font-size:var(--text-xl);font-family:var(--font-heading)}.times-tables-page .techniques-list{display:flex;flex-direction:column;gap:var(--space-4)}.times-tables-page .technique-card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.times-tables-page .technique-problem{font-size:var(--text-xl);font-weight:700;color:var(--color-red-500);margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:2px dashed rgba(239,68,68,.3)}.times-tables-page .technique-tip{display:flex;align-items:flex-start;gap:var(--space-3);background:#2563eb0d;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-3);color:var(--color-accent);line-height:1.5}.times-tables-page .tip-icon{font-size:var(--text-lg);flex-shrink:0}.times-tables-page .technique-practice{font-style:italic;color:var(--color-slate-600);padding:var(--space-3) var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-lg);border-left:4px solid var(--color-slate-400)}@media (max-width: 768px){.times-tables-page{padding:var(--space-4)}.times-tables-page h2{font-size:var(--text-2xl)}.times-tables-page .setup-container{grid-template-columns:1fr;gap:var(--space-5)}.times-tables-page .setup-section{padding:var(--space-5)}.times-tables-page .game-header{flex-direction:column;gap:var(--space-4);text-align:center}.times-tables-page .question-text{font-size:var(--text-3xl)}.times-tables-page .answer-input{width:120px;font-size:var(--text-xl);min-height:44px}}@media (max-width: 480px){.times-tables-page{padding:var(--space-3)}.times-tables-page h2{font-size:var(--text-xl)}.times-tables-page .setup-section{padding:var(--space-4);border-radius:var(--radius-lg)}.times-tables-page .setup-section h3{font-size:var(--text-lg)}.times-tables-page .question-text{font-size:var(--text-2xl)}.times-tables-page .answer-input{width:100px;font-size:var(--text-lg)}.times-tables-page .tips-section{padding:var(--space-4)}}.word-search-page{animation:fadeIn var(--transition-base);max-width:1200px;margin:0 auto;padding:var(--space-4)}.word-search-page h2{color:var(--color-slate-800);font-family:var(--font-heading);font-size:var(--text-4xl);margin-bottom:var(--space-2);text-align:center}.word-search-page .page-description{text-align:center;color:var(--color-slate-600);margin-bottom:var(--space-8);font-size:var(--text-lg)}.word-search-page .game-settings{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);max-width:600px;margin:0 auto}.word-search-page .game-settings h3{text-align:center;color:var(--color-slate-800);font-family:var(--font-heading);margin-bottom:var(--space-6);font-size:var(--text-2xl)}.word-search-page .settings-grid{display:flex;flex-direction:column;gap:var(--space-6);margin-bottom:var(--space-8)}.word-search-page .setting-group{display:flex;flex-direction:column;gap:var(--space-3)}.word-search-page .setting-group label{font-weight:600;color:var(--color-slate-700);font-size:var(--text-base)}.word-search-page .button-group{display:flex;gap:var(--space-2);flex-wrap:wrap}.word-search-page .button-group button{padding:var(--space-3) var(--space-5);background:var(--color-slate-50);border:2px solid var(--color-slate-200);border-radius:var(--radius-md);font-weight:500;font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);flex:1;min-width:80px;text-align:center}.word-search-page .button-group button:hover{border-color:var(--color-accent);color:var(--color-accent)}.word-search-page .button-group button.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.word-search-page .start-btn{width:100%;padding:var(--space-5) var(--space-8);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-xl);font-weight:700;cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-cta)}.word-search-page .start-btn:hover{transform:translateY(-3px);box-shadow:0 6px 20px #2563eb66}.word-search-page .start-btn:active{transform:translateY(-1px)}.word-search-page .words-available{margin-top:var(--space-6);text-align:center;color:var(--color-slate-500);font-size:var(--text-sm)}.word-search-page .game-container{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.word-search-page .game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-4)}.word-search-page .progress-info{display:flex;gap:var(--space-6);flex-wrap:wrap}.word-search-page .found-count,.word-search-page .timer{font-size:var(--text-lg);font-weight:600;color:var(--color-accent);white-space:nowrap}.word-search-page .game-controls{display:flex;gap:var(--space-3)}.word-search-page .hint-btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-weight:600;font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);white-space:nowrap;background:var(--color-yellow-50);border:2px solid var(--color-orange-500);color:var(--color-slate-700)}.word-search-page .hint-btn:hover,.word-search-page .hint-btn:active{background:var(--color-orange-500);color:#fff}.word-search-page .new-game-btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-weight:600;font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);white-space:nowrap;background:var(--color-slate-50);border:2px solid var(--color-accent);color:var(--color-accent)}.word-search-page .new-game-btn:hover,.word-search-page .new-game-btn:active{background:var(--color-accent);color:#fff}.word-search-page .found-message{padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);text-align:center;font-weight:500;animation:slideIn .3s ease;background:#22c55e1a;color:var(--color-blue-600);border:1px solid rgba(34,197,94,.3)}.word-search-page .hint-message{padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);text-align:center;font-weight:500;animation:slideIn .3s ease;background:var(--color-yellow-50);color:var(--color-slate-700);border:1px solid rgba(249,115,22,.3)}.word-search-page .game-content{display:flex;gap:var(--space-8);align-items:flex-start}.word-search-page .word-grid{display:grid;gap:2px;background:var(--color-slate-200);padding:4px;border-radius:var(--radius-md);flex:1;max-width:600px;width:100%;user-select:none;cursor:crosshair;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none}.word-search-page .grid-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#fff;font-size:clamp(.8rem,2.5vw,1.2rem);font-weight:700;font-family:Courier New,monospace;color:var(--color-slate-800);border-radius:var(--radius-sm);transition:var(--transition-fast)}.word-search-page .grid-cell:hover{background:var(--color-slate-100)}.word-search-page .grid-cell.selected{background:#2563eb33;color:var(--color-accent);transform:scale(1.05)}.word-search-page .grid-cell.found{background:#22c55e33;color:var(--color-blue-600)}.word-search-page .word-list{min-width:200px;max-width:280px;background:var(--color-slate-50);padding:var(--space-6);border-radius:var(--radius-lg);flex-shrink:0}.word-search-page .word-list h3{margin-bottom:var(--space-4);color:var(--color-slate-800);font-family:var(--font-heading);font-size:var(--text-lg)}.word-search-page .word-list ul{list-style:none;padding:0;margin:0}.word-search-page .word-list li{padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2);background:#fff;border-radius:var(--radius-md);display:flex;justify-content:space-between;align-items:center;font-weight:600;cursor:help;transition:var(--transition-base)}.word-search-page .word-list li:hover{background:var(--color-slate-100)}.word-search-page .word-list li.found{background:#22c55e26;text-decoration:line-through;opacity:.7}.word-search-page .word-list li.found .word-text{color:var(--color-blue-600)}.word-search-page .word-length{font-size:var(--text-xs);color:var(--color-slate-500);font-weight:400}.word-search-page .game-complete-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease;padding:var(--space-4)}.word-search-page .game-complete-modal{background:#fff;padding:var(--space-8);border-radius:var(--radius-xl);max-width:500px;width:100%;max-height:85vh;overflow-y:auto;text-align:center;animation:scaleIn .3s ease}.word-search-page .game-complete-modal h2{color:var(--color-blue-600);font-family:var(--font-heading);margin-bottom:var(--space-4);font-size:var(--text-3xl)}.word-search-page .game-complete-modal p{font-size:var(--text-lg);color:var(--color-slate-600);margin-bottom:var(--space-2)}.word-search-page .words-learned{margin:var(--space-6) 0;text-align:left;background:var(--color-slate-50);padding:var(--space-4);border-radius:var(--radius-md);max-height:200px;overflow-y:auto}.word-search-page .words-learned h4{margin-bottom:var(--space-3);color:var(--color-slate-800);font-family:var(--font-heading)}.word-search-page .words-learned ul{list-style:none;padding:0;margin:0}.word-search-page .words-learned li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-slate-200);font-size:var(--text-sm)}.word-search-page .words-learned li:last-child{border-bottom:none}.word-search-page .words-learned li strong{color:var(--color-accent)}.word-search-page .complete-actions{display:flex;gap:var(--space-4);justify-content:center;margin-top:var(--space-6);flex-wrap:wrap}.word-search-page .complete-actions button{padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-weight:600;font-size:var(--text-base);cursor:pointer;transition:var(--transition-base);min-width:140px}.word-search-page .complete-actions button:first-child{background:var(--gradient-cta);border:none;color:#fff}.word-search-page .complete-actions button:first-child:hover,.word-search-page .complete-actions button:first-child:active{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.word-search-page .complete-actions button:last-child{background:#fff;border:2px solid var(--color-accent);color:var(--color-accent)}.word-search-page .complete-actions button:last-child:hover,.word-search-page .complete-actions button:last-child:active{background:var(--color-accent);color:#fff}.word-search-page .instructions{margin-top:var(--space-8);background:var(--bg-card);padding:var(--space-6) var(--space-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.word-search-page .instructions h3{color:var(--color-slate-800);font-family:var(--font-heading);margin-bottom:var(--space-4)}.word-search-page .instructions ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.word-search-page .instructions li{padding:var(--space-2);color:var(--color-slate-600)}@media (max-width: 1024px){.word-search-page{padding:var(--space-3)}.word-search-page h2{font-size:var(--text-3xl)}.word-search-page .game-content{flex-direction:column;align-items:center}.word-search-page .word-grid{max-width:100%;width:100%}.word-search-page .word-list{width:100%;max-width:none;display:flex;flex-direction:column}.word-search-page .word-list ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-2)}.word-search-page .word-list li{margin-bottom:0}.word-search-page .game-header{justify-content:center}.word-search-page .progress-info{justify-content:center;width:100%}.word-search-page .game-controls{width:100%;justify-content:center}}@media (max-width: 768px){.word-search-page{padding:var(--space-2)}.word-search-page h2{font-size:var(--text-2xl);margin-bottom:var(--space-1)}.word-search-page .page-description{font-size:var(--text-sm);margin-bottom:var(--space-4)}.word-search-page .game-settings{padding:var(--space-5);margin:0 calc(-1 * var(--space-1));border-radius:var(--radius-lg)}.word-search-page .game-settings h3{font-size:var(--text-xl);margin-bottom:var(--space-4)}.word-search-page .settings-grid{gap:var(--space-5);margin-bottom:var(--space-6)}.word-search-page .button-group{gap:var(--space-1)}.word-search-page .button-group button{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);min-width:70px}.word-search-page .start-btn{padding:var(--space-4) var(--space-6);font-size:var(--text-lg)}.word-search-page .game-container{padding:var(--space-3);margin:0 calc(-1 * var(--space-1));border-radius:var(--radius-lg)}.word-search-page .game-header{flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-3)}.word-search-page .progress-info{gap:var(--space-4);font-size:var(--text-base)}.word-search-page .found-count,.word-search-page .timer{font-size:var(--text-base)}.word-search-page .game-controls{width:100%}.word-search-page .hint-btn,.word-search-page .new-game-btn{flex:1;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);text-align:center}.word-search-page .found-message,.word-search-page .hint-message{padding:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-3)}.word-search-page .word-grid{gap:1px;padding:3px;border-radius:var(--radius-md)}.word-search-page .grid-cell{font-size:clamp(.65rem,4vw,1rem);border-radius:var(--radius-sm)}.word-search-page .grid-cell.selected{transform:scale(1.02)}.word-search-page .word-list{padding:var(--space-4);border-radius:var(--radius-md)}.word-search-page .word-list h3{font-size:var(--text-base);margin-bottom:var(--space-3)}.word-search-page .word-list ul{grid-template-columns:repeat(2,1fr);gap:var(--space-1)}.word-search-page .word-list li{padding:var(--space-2) var(--space-2);font-size:var(--text-sm)}.word-search-page .word-length{font-size:var(--text-xs)}.word-search-page .game-complete-modal{padding:var(--space-6);max-height:90vh}.word-search-page .game-complete-modal h2{font-size:var(--text-2xl)}.word-search-page .game-complete-modal p{font-size:var(--text-base)}.word-search-page .words-learned{padding:var(--space-3);max-height:150px}.word-search-page .words-learned li{font-size:var(--text-sm)}.word-search-page .complete-actions{flex-direction:column;gap:var(--space-3)}.word-search-page .complete-actions button{width:100%;min-width:auto;padding:var(--space-3) var(--space-4)}.word-search-page .instructions{padding:var(--space-4) var(--space-5);margin-top:var(--space-6);border-radius:var(--radius-md)}.word-search-page .instructions h3{font-size:var(--text-base);margin-bottom:var(--space-3)}.word-search-page .instructions ul{grid-template-columns:1fr;gap:var(--space-2)}.word-search-page .instructions li{padding:var(--space-1);font-size:var(--text-sm)}}@media (max-width: 480px){.word-search-page h2{font-size:var(--text-xl)}.word-search-page .page-description{font-size:var(--text-xs)}.word-search-page .game-settings{padding:var(--space-4)}.word-search-page .button-group button{padding:var(--space-2) var(--space-2);font-size:var(--text-xs);min-width:60px}.word-search-page .start-btn{font-size:var(--text-base);padding:var(--space-3) var(--space-4)}.word-search-page .game-container{padding:var(--space-2)}.word-search-page .grid-cell{font-size:clamp(.55rem,5vw,.9rem)}.word-search-page .word-list ul{grid-template-columns:1fr 1fr}.word-search-page .word-list li{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.word-search-page .hint-message{font-size:var(--text-xs)}.word-search-page .hint-message strong{display:block;margin-bottom:var(--space-1)}}@media (max-width: 900px) and (orientation: landscape){.word-search-page .game-content{flex-direction:row;align-items:flex-start}.word-search-page .word-grid{max-width:55%;flex:0 0 55%}.word-search-page .word-list{flex:1;max-width:40%;max-height:50vh;overflow-y:auto}.word-search-page .word-list ul{grid-template-columns:1fr}.word-search-page .game-complete-modal{max-height:95vh;max-width:90%}}@media (min-width: 1024px) and (max-width: 1366px){.word-search-page .game-content{gap:var(--space-10)}.word-search-page .word-grid{max-width:550px}.word-search-page .grid-cell{font-size:var(--text-lg)}.word-search-page .word-list{min-width:280px}}@media (hover: none) and (pointer: coarse){.word-search-page .button-group button:hover{border-color:var(--color-slate-200);color:inherit}.word-search-page .button-group button.active:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.word-search-page .grid-cell:hover{background:#fff}.word-search-page .grid-cell.selected:hover{background:#2563eb33}.word-search-page .grid-cell.found:hover{background:#22c55e33}.word-search-page .hint-btn:hover,.word-search-page .new-game-btn:hover{background:initial;color:initial}.word-search-page .hint-btn{background:var(--color-yellow-50);color:var(--color-slate-700)}.word-search-page .new-game-btn{background:var(--color-slate-50);color:var(--color-accent)}.word-search-page .button-group button,.word-search-page .hint-btn,.word-search-page .new-game-btn{min-height:48px}.word-search-page .start-btn{min-height:56px}}@supports (padding: max(0px)){.word-search-page{padding-left:max(var(--space-2),env(safe-area-inset-left));padding-right:max(var(--space-2),env(safe-area-inset-right));padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}}.answer-button{display:flex;align-items:center;justify-content:center;min-width:100px;min-height:80px;padding:var(--space-4) var(--space-6);border:none;border-radius:var(--radius-xl);background:linear-gradient(135deg,#f8fafc,#e2e8f0);box-shadow:0 4px 12px #0f172a1a,0 2px 4px #0f172a0f;cursor:pointer;transition:all var(--transition-base);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.answer-button:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:0 8px 20px #0f172a1f,0 4px 8px #0f172a14}.answer-button:active:not(:disabled){transform:translateY(0) scale(.98);box-shadow:0 2px 8px #0f172a1a}.answer-button:disabled{opacity:.6;cursor:not-allowed}.answer-button__content{font-size:2.5rem;line-height:1}.answer-button--large{min-width:120px;min-height:100px;padding:var(--space-5) var(--space-8)}.answer-button--large .answer-button__content{font-size:3rem}.answer-button--default{background:linear-gradient(135deg,#fff,#f1f5f9);border:3px solid var(--color-slate-200)}.answer-button--selected{background:linear-gradient(135deg,var(--color-blue-100) 0%,var(--color-blue-200) 100%);border:3px solid var(--color-blue-400);transform:scale(1.05)}.answer-button--correct{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:3px solid #10b981;animation:correctPulse .5s ease}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.answer-button--wrong{background:linear-gradient(135deg,#fef2f2,#fecaca);border:3px solid #f87171;animation:wrongShake .4s ease}@keyframes wrongShake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@media (max-width: 480px){.answer-button{min-width:80px;min-height:70px}.answer-button__content{font-size:2rem}.answer-button--large{min-width:100px;min-height:85px}.answer-button--large .answer-button__content{font-size:2.5rem}}.game-feedback{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);border-radius:var(--radius-xl);z-index:1000;animation:feedbackAppear .3s ease}@keyframes feedbackAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.game-feedback--correct{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:4px solid #10b981;box-shadow:0 20px 40px #10b9814d}.game-feedback--correct .game-feedback__icon{color:#059669;font-size:5rem;font-weight:700;animation:correctBounce .5s ease}@keyframes correctBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.game-feedback--wrong{background:linear-gradient(135deg,#fef2f2,#fecaca);border:4px solid #f87171;box-shadow:0 20px 40px #f8717133}.game-feedback--wrong .game-feedback__icon{color:var(--color-red-600);font-size:4rem;font-weight:700}.game-feedback__message{margin-top:var(--space-3);font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600}.game-feedback--correct .game-feedback__message{color:#047857}.game-feedback--wrong .game-feedback__message{color:#b91c1c}@media (max-width: 480px){.game-feedback{padding:var(--space-6)}.game-feedback--correct .game-feedback__icon{font-size:4rem}.game-feedback--wrong .game-feedback__icon{font-size:3rem}.game-feedback__message{font-size:var(--text-xl)}}.game-header{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6)}.game-header__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.game-header__back{font-size:var(--text-base);color:var(--color-slate-600);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:all var(--transition-fast)}.game-header__back:hover{background:var(--color-slate-100);color:var(--color-slate-900)}.game-header__title{display:flex;align-items:center;gap:var(--space-3)}.game-header__icon{font-size:2rem}.game-header__title h1{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--color-slate-900);margin:0}.game-header__level{background:var(--color-blue-100);color:var(--color-blue-700);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600}.game-header__progress{display:flex;align-items:center;gap:var(--space-3)}.game-header__progress-bar{flex:1;height:12px;background:var(--color-slate-100);border-radius:var(--radius-full);overflow:hidden}.game-header__progress-fill{height:100%;background:linear-gradient(90deg,var(--color-blue-400),var(--color-blue-600));border-radius:var(--radius-full);transition:width .3s ease}.game-header__progress-text{font-size:var(--text-sm);color:var(--color-slate-600);white-space:nowrap}.game-header__badge-earned{color:var(--color-orange-600);font-weight:600}@media (max-width: 600px){.game-header__top{flex-wrap:wrap}.game-header__title h1{font-size:var(--text-xl)}.game-header__back{order:-1;width:100%;margin-bottom:var(--space-2)}}.level-selector{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.level-selector__label{font-size:var(--text-lg);color:var(--color-slate-600);font-weight:500}.level-selector__buttons{display:flex;gap:var(--space-4);flex-wrap:wrap;justify-content:center}.level-selector__button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);width:80px;height:80px;padding:var(--space-3);border:3px solid var(--color-slate-200);border-radius:var(--radius-xl);background:#fff;cursor:pointer;transition:all var(--transition-base);position:relative}.level-selector__button:hover:not(:disabled){border-color:var(--color-blue-400);transform:translateY(-2px);box-shadow:var(--shadow-md)}.level-selector__button--active{border-color:var(--color-blue-500);background:var(--color-blue-50);box-shadow:0 0 0 3px var(--color-blue-200)}.level-selector__button--locked{opacity:.5;cursor:not-allowed}.level-selector__icon{font-size:1.75rem;line-height:1}.level-selector__number{font-size:var(--text-sm);font-weight:700;color:var(--color-slate-600)}.level-selector__button--active .level-selector__number{color:var(--color-blue-700)}.level-selector__lock{position:absolute;top:-8px;right:-8px;font-size:1rem}@media (max-width: 480px){.level-selector__button{width:70px;height:70px}.level-selector__icon{font-size:1.5rem}}.badge-unlock-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f172ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.badge-unlock-modal__content{display:flex;flex-direction:column;align-items:center;padding:var(--space-10) var(--space-8);background:linear-gradient(135deg,#fff,#f8fafc);border-radius:var(--radius-xl);box-shadow:0 30px 60px #0000004d;max-width:400px;width:90%;text-align:center;animation:contentBounce .5s ease}@keyframes contentBounce{0%{opacity:0;transform:scale(.5) translateY(50px)}60%{transform:scale(1.1) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.badge-unlock-modal__badge{position:relative;margin-bottom:var(--space-6)}.badge-unlock-modal__icon{font-size:6rem;animation:badgePulse 2s ease infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.badge-unlock-modal__glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:150px;height:150px;background:radial-gradient(circle,rgba(255,215,0,.4) 0%,transparent 70%);border-radius:50%;animation:glowPulse 2s ease infinite;z-index:-1}@keyframes glowPulse{0%,to{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}}.badge-unlock-modal__title{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;color:var(--color-slate-900);margin:0 0 var(--space-2) 0}.badge-unlock-modal__name{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-blue-600);margin:0 0 var(--space-4) 0}.badge-unlock-modal__description{font-size:var(--text-base);color:var(--color-slate-600);margin:0 0 var(--space-4) 0;line-height:1.5}.badge-unlock-modal__bonus{display:inline-block;padding:var(--space-2) var(--space-4);background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:var(--radius-full);font-size:var(--text-lg);font-weight:600;color:var(--color-orange-700);margin-bottom:var(--space-6)}.badge-unlock-modal__button{padding:var(--space-4) var(--space-8);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-cta)}.badge-unlock-modal__button:hover{transform:translateY(-2px);box-shadow:0 20px 40px #2563eb59}@media (max-width: 480px){.badge-unlock-modal__content{padding:var(--space-8) var(--space-6)}.badge-unlock-modal__icon{font-size:5rem}.badge-unlock-modal__title{font-size:var(--text-2xl)}}.game-bg-picker{display:flex;align-items:center;gap:.4rem;margin:.25rem 0;flex-wrap:wrap}.game-bg-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;font-size:.875rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:border-color .15s,transform .15s;padding:0}.game-bg-swatch:hover{transform:scale(1.15)}.game-bg-swatch.active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light, rgba(99, 102, 241, .3))}.wordle-page{animation:fadeIn .3s ease-out;max-width:560px;margin:0 auto;padding:var(--space-6);min-height:60vh;position:relative}.wordle-page .wordle-back{display:inline-block;font-size:var(--text-base);color:var(--color-slate-600);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);transition:all var(--transition-fast)}.wordle-page .wordle-back:hover{background:var(--color-slate-100);color:var(--color-slate-900)}.wordle-page .wordle-subtitle{text-align:center;font-size:var(--text-lg);color:var(--color-slate-600);margin:0 0 var(--space-4) 0}.wordle-page .wordle-meaning{text-align:center;font-size:var(--text-lg);color:var(--color-slate-800);margin:0 auto var(--space-6);padding:var(--space-4) var(--space-5);max-width:480px;background:var(--color-slate-50);border-radius:var(--radius-lg);border:1px solid var(--color-slate-200)}.wordle-page .wordle-meaning strong{color:var(--color-slate-900);margin-right:var(--space-2)}.wordle-page .wordle-grid-wrap{display:flex;justify-content:center;margin-bottom:var(--space-6);cursor:text;outline:none}.wordle-page .wordle-grid-wrap:focus{outline:none}.wordle-page .wordle-grid{display:flex;flex-direction:column;gap:var(--space-2);--cell-size: clamp(44px, 10vw, 56px);--word-length: 5}.wordle-page .wordle-row{display:flex;gap:var(--space-2);justify-content:center}.wordle-page .wordle-row--current .wordle-cell--input{border:2px solid var(--color-slate-300);background:var(--color-slate-50);font-weight:600;position:relative}.wordle-page .wordle-cell-cursor{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:2px;height:1.1em;background:var(--color-slate-700);border-radius:1px;animation:wordle-cursor-blink 1s step-end infinite;pointer-events:none}@keyframes wordle-cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.wordle-page .wordle-cell{width:var(--cell-size);height:var(--cell-size);display:flex;align-items:center;justify-content:center;font-size:clamp(1.25rem,4vw,1.5rem);font-weight:700;text-transform:uppercase;border-radius:var(--radius-md);border:2px solid var(--color-slate-200);background:#fff;color:var(--color-slate-800);transition:background-color .2s,border-color .2s,color .2s}.wordle-page .wordle-cell--correct{background:var(--color-green-500, #22c55e);border-color:var(--color-green-600, #16a34a);color:#fff}.wordle-page .wordle-cell--present{background:var(--color-amber-400, #fbbf24);border-color:var(--color-amber-500, #f59e0b);color:#fff}.wordle-page .wordle-cell--absent{background:var(--color-slate-300);border-color:var(--color-slate-400);color:var(--color-slate-500)}.wordle-page .wordle-input-invisible{position:absolute;left:-100vw;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0,0,0,0)}.wordle-page .wordle-actions{display:flex;justify-content:center;margin-bottom:var(--space-8)}.wordle-page .wordle-hints{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid var(--color-slate-200);box-shadow:var(--shadow-sm)}.wordle-page .wordle-hints h3{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--color-slate-800);margin:0 0 var(--space-4)}.wordle-page .wordle-hints-list{display:flex;flex-direction:column;gap:var(--space-3)}.wordle-page .wordle-hint-item{padding:var(--space-3);background:var(--color-slate-50);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-slate-700)}.wordle-page .wordle-hint-item strong{color:var(--color-slate-900);margin-right:var(--space-1)}.wordle-page.wordle-page--solved{display:flex;align-items:center;justify-content:center;min-height:50vh}.wordle-page .wordle-success{text-align:center;padding:var(--space-8);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.wordle-page .wordle-success h2{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--color-slate-900);margin:0 0 var(--space-4)}.wordle-page .wordle-success .wordle-success-word{font-size:var(--text-3xl);font-weight:800;color:var(--color-accent);margin:0 0 var(--space-2);text-transform:uppercase}.wordle-page .wordle-success .wordle-success-def{color:var(--color-slate-600);margin:0 0 var(--space-6);font-size:var(--text-base)}.word-art-page{animation:fadeIn var(--transition-base)}.word-art-page h2{color:var(--color-slate-800);font-family:var(--font-heading);font-size:var(--text-4xl);margin-bottom:var(--space-2);text-align:center}.page-description{text-align:center;color:var(--color-slate-600);font-size:var(--text-lg);margin-bottom:var(--space-10)}.studio-container{display:grid;grid-template-columns:320px 1fr;gap:var(--space-6);margin-bottom:var(--space-8)}@media (max-width: 900px){.studio-container{grid-template-columns:1fr}}.toolbar{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-4);height:fit-content}.toolbar-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);flex-wrap:wrap}.tab-btn{flex:1;min-width:70px;padding:var(--space-2);background:var(--color-slate-100);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-xs);font-weight:600;transition:var(--transition-base)}.tab-btn:hover{background:var(--color-slate-200)}.tab-btn.active{background:var(--color-accent);color:#fff}.tab-content{min-height:300px}.words-panel{display:flex;flex-direction:column;gap:var(--space-4)}.search-input{width:100%;padding:var(--space-3);border:2px solid var(--color-slate-200);border-radius:var(--radius-md);font-size:var(--text-sm)}.search-input:focus{outline:none;border-color:var(--color-accent)}.word-list{display:flex;flex-wrap:wrap;gap:var(--space-2);max-height:350px;overflow-y:auto}.word-chip{padding:var(--space-2) var(--space-3);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-sm);font-weight:500;transition:var(--transition-base)}.word-chip:hover{transform:scale(1.05);box-shadow:var(--shadow-cta)}.text-panel{display:flex;flex-direction:column;gap:var(--space-4)}.input-group{display:flex;gap:var(--space-2)}.text-input{flex:1;padding:var(--space-3);border:2px solid var(--color-slate-200);border-radius:var(--radius-md);font-size:var(--text-sm)}.text-input:focus{outline:none;border-color:var(--color-accent)}.add-btn{padding:var(--space-3) var(--space-4);background:var(--color-blue-500);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;transition:var(--transition-base)}.add-btn:hover{background:var(--color-blue-600)}.option-group{display:flex;flex-direction:column;gap:var(--space-2)}.option-group label{font-weight:600;color:var(--color-slate-600);font-size:var(--text-sm)}.option-group input[type=range]{width:100%;accent-color:var(--color-accent)}.option-group select{padding:var(--space-2);border:2px solid var(--color-slate-200);border-radius:var(--radius-md);font-size:var(--text-sm)}.color-palette{display:flex;flex-wrap:wrap;gap:var(--space-1)}.color-btn{width:28px;height:28px;border:2px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-base)}.color-btn:hover{transform:scale(1.15)}.color-btn.selected{border-color:var(--color-slate-800);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--color-slate-800)}.stickers-panel{padding:var(--space-2) 0}.sticker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2)}.sticker-btn{padding:var(--space-2);background:var(--color-slate-50);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-2xl);transition:var(--transition-base)}.sticker-btn:hover{background:#2563eb1a;border-color:var(--color-accent);transform:scale(1.1)}.background-panel{padding:var(--space-2) 0}.background-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.background-btn{padding:var(--space-4) var(--space-2);border:3px solid transparent;border-radius:var(--radius-md);cursor:pointer;color:#fff;font-size:var(--text-xs);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5);transition:var(--transition-base)}.background-btn:hover{transform:scale(1.02)}.background-btn.selected{border-color:var(--color-slate-800);box-shadow:0 0 0 2px #fff}.element-controls{background:var(--color-slate-50);padding:var(--space-4);border-radius:var(--radius-md);margin-top:var(--space-4)}.element-controls h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-600);font-size:var(--text-sm)}.control-buttons{display:flex;gap:var(--space-2);flex-wrap:wrap}.control-buttons button{flex:1;min-width:40px;padding:var(--space-2);background:#fff;border:2px solid var(--color-slate-200);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);transition:var(--transition-base)}.control-buttons button:hover{background:#2563eb1a;border-color:var(--color-accent)}.control-buttons .delete-btn:hover{background:#ef44441a;border-color:var(--color-red-500)}.canvas-area{display:flex;flex-direction:column;gap:var(--space-4)}.canvas-wrapper{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-4);display:flex;justify-content:center;align-items:center}.art-canvas{max-width:100%;height:auto;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 4px 20px #00000026}.canvas-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.action-btn{padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:var(--text-sm);transition:var(--transition-base)}.action-btn.clear{background:#ef44441a;color:var(--color-red-500)}.action-btn.clear:hover{background:#ef444433}.action-btn.save{background:var(--color-accent);color:#fff}.action-btn.save:hover{background:var(--color-accent-dark)}.action-btn.download{background:var(--color-blue-500);color:#fff}.action-btn.download:hover{background:var(--color-blue-600)}.action-btn.gallery{background:var(--gradient-cta);color:#fff}.action-btn.gallery:hover{opacity:.9}.word-info-modal{background:#fff;padding:var(--space-8);border-radius:var(--radius-xl);max-width:450px;width:90%;position:relative;animation:slideUp .3s ease}.word-info-modal .close-btn{position:absolute;top:var(--space-4);right:var(--space-4);width:32px;height:32px;background:var(--color-slate-100);border:none;border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-2xl);line-height:1;color:var(--color-slate-500)}.word-info-modal .close-btn:hover{background:var(--color-slate-200)}.word-info-modal h3{font-size:var(--text-3xl);font-family:var(--font-heading);color:var(--color-accent);margin:0 0 var(--space-2) 0}.word-info-modal .word-type{display:inline-block;background:var(--color-blue-500);color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);margin-bottom:var(--space-4)}.word-info-modal .definition,.word-info-modal .example,.word-info-modal .synonyms{margin:var(--space-3) 0;line-height:1.6}.word-info-modal .example{font-style:italic;color:var(--color-slate-600)}.add-to-canvas-btn{width:100%;padding:var(--space-4);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:600;margin-top:var(--space-4);transition:var(--transition-base)}.add-to-canvas-btn:hover{opacity:.9}.gallery-modal{background:#fff;padding:var(--space-8);border-radius:var(--radius-xl);max-width:700px;width:90%;max-height:80vh;overflow-y:auto;position:relative;animation:slideUp .3s ease}.gallery-modal .close-btn{position:absolute;top:var(--space-4);right:var(--space-4);width:32px;height:32px;background:var(--color-slate-100);border:none;border-radius:var(--radius-full);cursor:pointer;font-size:var(--text-2xl);line-height:1;color:var(--color-slate-500)}.gallery-modal h3{margin:0 0 var(--space-6) 0;color:var(--color-slate-800);font-family:var(--font-heading);font-size:var(--text-2xl)}.empty-gallery{text-align:center;color:var(--color-slate-600);padding:var(--space-12) var(--space-4);font-size:var(--text-lg)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4)}.gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}.gallery-item img{width:100%;height:auto;display:block}.gallery-item .delete-artwork{position:absolute;top:8px;right:8px;width:32px;height:32px;background:#ffffffe6;border:none;border-radius:var(--radius-full);cursor:pointer;opacity:0;transition:var(--transition-base)}.gallery-item:hover .delete-artwork{opacity:1}.gallery-item .delete-artwork:hover{background:#ef44441a}.tips-section{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.tips-section h3{color:var(--color-slate-800);font-family:var(--font-heading);margin:0 0 var(--space-4) 0}.tips-section ul{margin:0;padding:0;list-style:none}.tips-section li{padding:var(--space-2) 0;line-height:1.6;color:var(--color-slate-600)}.loading{display:flex;justify-content:center;align-items:center;height:300px;font-size:var(--text-2xl);color:var(--color-accent)}@media (max-width: 900px){.studio-container{grid-template-columns:1fr}.toolbar{order:2}.canvas-container{order:1}}@media (max-width: 600px){.word-art-page h2{font-size:var(--text-2xl)}.page-description{font-size:var(--text-sm)}.sticker-grid{grid-template-columns:repeat(5,1fr)}.canvas-actions{flex-direction:column}.action-btn{width:100%;min-height:48px}.tab-btn{min-height:48px;font-size:var(--text-xs)}.word-chip{padding:var(--space-2);font-size:var(--text-xs)}.add-btn{min-height:48px}.color-btn{width:36px;height:36px}}.writing-evaluation-page{animation:fadeIn .5s ease-out;padding:var(--space-6);max-width:1100px;margin:0 auto}.writing-evaluation-page h2{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-3xl);margin-bottom:var(--space-6);text-align:center}.writing-evaluation-page .write-section,.writing-evaluation-page .upload-section{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.writing-evaluation-page .writing-type-selector{margin-bottom:var(--space-5)}.writing-evaluation-page .writing-type-selector label{margin-right:var(--space-3);font-weight:600;color:var(--color-slate-700)}.writing-evaluation-page .writing-type-selector select{padding:var(--space-3) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-sm);background:#fff}.writing-evaluation-page .text-editor textarea{width:100%;padding:var(--space-5);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-base);line-height:1.8;resize:vertical;min-height:300px;font-family:Georgia,serif;transition:var(--transition-base)}.writing-evaluation-page .text-editor textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}.writing-evaluation-page .word-count{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-slate-500)}.writing-evaluation-page .word-count .warning{color:var(--color-red-500)}.writing-evaluation-page .topic-name-input{margin-bottom:var(--space-4)}.writing-evaluation-page .topic-name-input label{display:block;font-weight:600;margin-bottom:var(--space-2);color:var(--color-slate-700)}.writing-evaluation-page .topic-name-input .required{color:var(--color-red-500)}.writing-evaluation-page .topic-input{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-base);transition:var(--transition-base);box-sizing:border-box}.writing-evaluation-page .topic-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #2563eb1a}.writing-evaluation-page .topic-input::placeholder{color:var(--color-slate-400);font-style:italic}.writing-evaluation-page .selected-prompt-section{margin-bottom:var(--space-4)}.writing-evaluation-page .prompt-description-box{background:linear-gradient(135deg,var(--color-blue-50),var(--color-purple-50));border:2px solid var(--color-blue-200);border-radius:var(--radius-lg);padding:var(--space-4)}.writing-evaluation-page .prompt-description-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.writing-evaluation-page .prompt-label{font-weight:600;color:var(--color-blue-700)}.writing-evaluation-page .prompt-description-text{color:var(--color-slate-700);font-size:var(--text-base);line-height:1.6;margin:0 0 var(--space-2) 0}.writing-evaluation-page .prompt-tips-inline{font-size:var(--text-sm);color:var(--color-slate-600);background:#fff;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-top:var(--space-2)}.writing-evaluation-page .prompt-tips-inline strong{color:var(--color-blue-600)}.writing-evaluation-page .clear-prompt-btn{background:transparent;border:1px solid var(--color-slate-300);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--color-slate-600);cursor:pointer;transition:var(--transition-base)}.writing-evaluation-page .clear-prompt-btn:hover{background:var(--color-red-50);border-color:var(--color-red-300);color:var(--color-red-600)}.writing-evaluation-page .evaluate-btn{display:block;width:100%;max-width:300px;margin:var(--space-5) auto 0;padding:var(--space-4) var(--space-6);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:var(--transition-base)}.writing-evaluation-page .evaluate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-cta)}.writing-evaluation-page .evaluate-btn:disabled{background:var(--color-slate-300);cursor:not-allowed}.writing-evaluation-page .upload-area{margin:var(--space-5) 0}.writing-evaluation-page .upload-area input[type=file]{display:none}.writing-evaluation-page .upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10);border:3px dashed var(--color-accent);border-radius:var(--radius-xl);cursor:pointer;transition:var(--transition-base);background:var(--color-slate-50)}.writing-evaluation-page .upload-label:hover{background:#2563eb0d;border-color:var(--color-accent-dark)}.writing-evaluation-page .upload-label p{font-size:var(--text-base);color:var(--color-slate-700);margin:0}.writing-evaluation-page .upload-label small{color:var(--color-slate-500);margin-top:var(--space-2)}.writing-evaluation-page .upload-icon{font-size:48px;margin-bottom:var(--space-4)}.writing-evaluation-page .file-preview-list{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-4) 0}.writing-evaluation-page .file-preview{margin:var(--space-4) 0;background:var(--bg-card);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);overflow:hidden}.writing-evaluation-page .file-preview-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-slate-50);border-bottom:1px solid var(--color-slate-200);font-size:var(--text-sm);color:var(--color-slate-700)}.writing-evaluation-page .file-preview-header .file-size{color:var(--color-slate-500);font-size:var(--text-xs)}.writing-evaluation-page .remove-file-btn{margin-left:auto;background:none;border:none;color:var(--color-slate-400);font-size:var(--text-base);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:var(--transition-fast)}.writing-evaluation-page .remove-file-btn:hover{background:#ef44441a;color:var(--color-red-500)}.writing-evaluation-page .image-preview{padding:var(--space-3);text-align:center}.writing-evaluation-page .image-preview img{max-width:100%;max-height:400px;border-radius:var(--radius-lg);object-fit:contain;box-shadow:var(--shadow-md)}.writing-evaluation-page .pdf-preview,.writing-evaluation-page .text-preview{padding:var(--space-5);text-align:center;color:var(--color-slate-500);font-size:var(--text-sm)}.writing-evaluation-page .prompts-section{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.writing-evaluation-page .prompts-filters{display:flex;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.writing-evaluation-page .prompts-filters select{padding:var(--space-3) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-sm)}.writing-evaluation-page .prompts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.writing-evaluation-page .prompt-card{background:var(--color-slate-50);border-radius:var(--radius-lg);padding:var(--space-5);border:2px solid transparent;transition:var(--transition-base)}.writing-evaluation-page .prompt-card:hover{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:var(--shadow-md)}.writing-evaluation-page .prompt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.writing-evaluation-page .prompt-header h4{margin:0;color:var(--color-slate-900)}.writing-evaluation-page .difficulty-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-transform:uppercase}.writing-evaluation-page .difficulty-badge.easy{background:#22c55e1a;color:var(--color-blue-600)}.writing-evaluation-page .difficulty-badge.medium{background:#f973161a;color:var(--color-orange-600)}.writing-evaluation-page .difficulty-badge.hard{background:#ef44441a;color:var(--color-red-500)}.writing-evaluation-page .category-tag{display:inline-block;background:#2563eb1a;color:var(--color-accent);padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-xs);margin-bottom:var(--space-3)}.writing-evaluation-page .prompt-text{font-style:italic;color:var(--color-slate-600);line-height:1.5;margin-bottom:var(--space-4)}.writing-evaluation-page .prompt-tips{font-size:var(--text-sm);color:var(--color-slate-600)}.writing-evaluation-page .prompt-tips ul{margin:var(--space-2) 0 var(--space-4);padding-left:var(--space-5)}.writing-evaluation-page .prompt-tips li{margin-bottom:var(--space-1)}.writing-evaluation-page .use-prompt-btn{width:100%;padding:var(--space-3);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:600;transition:var(--transition-base)}.writing-evaluation-page .use-prompt-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.writing-evaluation-page .tips-section{display:grid;gap:var(--space-6)}.writing-evaluation-page .tips-container,.writing-evaluation-page .vocabulary-container{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.writing-evaluation-page .tips-container h3,.writing-evaluation-page .vocabulary-container h3{color:var(--color-accent);font-family:var(--font-heading);margin-bottom:var(--space-5)}.writing-evaluation-page .tip-category{margin-bottom:var(--space-5)}.writing-evaluation-page .tip-category h4{color:var(--color-slate-900);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-slate-200)}.writing-evaluation-page .tip-category ul{padding-left:var(--space-5)}.writing-evaluation-page .tip-category li{margin-bottom:var(--space-2);color:var(--color-slate-600)}.writing-evaluation-page .vocab-section{margin-bottom:var(--space-6)}.writing-evaluation-page .vocab-section h4{color:var(--color-slate-900);margin-bottom:var(--space-4)}.writing-evaluation-page .vocab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.writing-evaluation-page .vocab-card{background:var(--color-slate-50);padding:var(--space-4);border-radius:var(--radius-lg)}.writing-evaluation-page .vocab-card strong{display:block;margin-bottom:var(--space-2);color:var(--color-slate-600)}.writing-evaluation-page .alternatives{display:flex;flex-wrap:wrap;gap:var(--space-2)}.writing-evaluation-page .alt-word{background:#22c55e1a;color:var(--color-blue-600);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm)}.writing-evaluation-page .starters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-5)}.writing-evaluation-page .starter-category h5{color:var(--color-accent);margin-bottom:var(--space-3);text-transform:capitalize}.writing-evaluation-page .starters{display:flex;flex-wrap:wrap;gap:var(--space-2)}.writing-evaluation-page .starter{background:#2563eb1a;color:var(--color-accent);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm)}.writing-evaluation-page .evaluation-results{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-200)}.writing-evaluation-page .uploaded-image-section{margin-bottom:var(--space-5)}.writing-evaluation-page .uploaded-image-section h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-900)}.writing-evaluation-page .uploaded-images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.writing-evaluation-page .uploaded-image-box{background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);padding:var(--space-3);text-align:center}.writing-evaluation-page .uploaded-image-box img{max-width:100%;max-height:400px;border-radius:var(--radius-md);object-fit:contain;box-shadow:var(--shadow-md)}.writing-evaluation-page .extracted-text-section{margin-bottom:var(--space-5)}.writing-evaluation-page .extracted-text-section h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-900)}.writing-evaluation-page .extracted-text-box{background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);padding:var(--space-4);white-space:pre-wrap;font-size:var(--text-sm);line-height:1.6;overflow-y:auto;color:var(--color-slate-700)}.writing-evaluation-page .ocr-comparison-section{margin-bottom:var(--space-6);border:1px solid rgba(37,99,235,.2);border-radius:var(--radius-lg);padding:var(--space-5);background:#2563eb05}.writing-evaluation-page .ocr-comparison-section h4{margin:0 0 var(--space-2) 0;color:var(--color-accent)}.writing-evaluation-page .ocr-comparison-note{margin:0 0 var(--space-4) 0;color:var(--color-slate-500);font-size:var(--text-sm)}.writing-evaluation-page .ocr-providers-grid{display:flex;flex-direction:column;gap:var(--space-3)}.writing-evaluation-page .ocr-provider-card{border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);padding:var(--space-4);background:#fff;transition:var(--transition-fast)}.writing-evaluation-page .ocr-provider-card.primary{border-color:var(--color-blue-500);border-width:2px;background:#22c55e0d}.writing-evaluation-page .ocr-provider-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.writing-evaluation-page .ocr-provider-name{font-weight:600;font-size:var(--text-base);color:var(--color-slate-900)}.writing-evaluation-page .ocr-primary-badge{background:var(--color-blue-500);color:#fff;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-weight:600}.writing-evaluation-page .ocr-provider-time{margin-left:auto;color:var(--color-slate-500);font-size:var(--text-xs)}.writing-evaluation-page .ocr-provider-stats{display:flex;gap:var(--space-4);margin-bottom:var(--space-3);font-size:var(--text-xs);color:var(--color-slate-500)}.writing-evaluation-page .ocr-provider-text{background:var(--color-slate-50);border-radius:var(--radius-md);padding:var(--space-3);font-size:var(--text-sm);line-height:1.5;overflow-y:auto;white-space:pre-wrap;color:var(--color-slate-700)}.writing-evaluation-page .ocr-provider-actions{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-slate-100)}.writing-evaluation-page .ocr-reevaluate-btn{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-blue-500);background:#2563eb14;color:var(--color-blue-600);font-weight:500;cursor:pointer;transition:var(--transition-fast)}.writing-evaluation-page .ocr-reevaluate-btn:hover:not(:disabled){background:#2563eb26;border-color:var(--color-blue-600)}.writing-evaluation-page .ocr-reevaluate-btn:disabled{opacity:.7;cursor:not-allowed}.writing-evaluation-page .ocr-too-short-hint{font-size:var(--text-xs);color:var(--color-slate-500)}.writing-evaluation-page .ocr-no-text{color:var(--color-slate-400)}.writing-evaluation-page .results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4)}.writing-evaluation-page .results-header h3{margin:0;color:var(--color-slate-900);font-family:var(--font-heading)}.writing-evaluation-page .new-writing-btn{padding:var(--space-3) var(--space-5);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-full);cursor:pointer;font-weight:600;transition:var(--transition-base)}.writing-evaluation-page .new-writing-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}.writing-evaluation-page .new-writing-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:linear-gradient(135deg,#e0f2fe,#dbeafe);border:2px solid var(--color-blue-400);border-radius:var(--radius-xl, 12px);margin-bottom:var(--space-6);flex-wrap:wrap}.writing-evaluation-page .new-writing-banner span{font-size:1.1rem;font-weight:600;color:#1e40af}.writing-evaluation-page .new-writing-btn-primary{padding:var(--space-3) var(--space-6);background:var(--gradient-cta, linear-gradient(135deg, #6366f1, #8b5cf6));color:#fff;border:none;border-radius:var(--radius-full, 999px);cursor:pointer;font-weight:700;font-size:1.05rem;transition:var(--transition-base, all .2s);box-shadow:0 4px 14px #6366f166;white-space:nowrap}.writing-evaluation-page .new-writing-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f180}.writing-evaluation-page .overall-score{display:flex;align-items:center;justify-content:center;gap:var(--space-8);margin-bottom:var(--space-6);flex-wrap:wrap}.writing-evaluation-page .score-circle{width:150px;height:150px;border-radius:var(--radius-full);border:8px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}.writing-evaluation-page .score-circle .grade{font-size:var(--text-4xl);font-weight:700;font-family:var(--font-heading);color:var(--color-slate-900)}.writing-evaluation-page .score-circle .score{font-size:var(--text-base);color:var(--color-slate-600)}.writing-evaluation-page .score-circle .percentage{font-size:var(--text-sm);color:var(--color-slate-500)}.writing-evaluation-page .score-details{text-align:center}.writing-evaluation-page .score-details p{margin:var(--space-2) 0;color:var(--color-slate-600)}.writing-evaluation-page .overall-feedback{background:#2563eb1a;padding:var(--space-5);border-radius:var(--radius-lg);text-align:center;margin-bottom:var(--space-6);font-size:var(--text-base);color:var(--color-accent);line-height:1.6}.writing-evaluation-page .score-breakdown{margin-bottom:var(--space-8)}.writing-evaluation-page .score-breakdown h4{margin-bottom:var(--space-5);color:var(--color-slate-900)}.writing-evaluation-page .score-bar-container{margin-bottom:var(--space-4)}.writing-evaluation-page .score-bar-label{display:flex;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-slate-600)}.writing-evaluation-page .score-bar{height:12px;background:var(--color-slate-200);border-radius:var(--radius-full);overflow:hidden}.writing-evaluation-page .score-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}.writing-evaluation-page .nlp-insights{margin-bottom:var(--space-6);background:#2563eb0d;border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid rgba(37,99,235,.15)}.writing-evaluation-page .nlp-insights h4{margin:0 0 var(--space-3);color:var(--color-accent)}.writing-evaluation-page .nlp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.writing-evaluation-page .nlp-stat{background:#fff;border-radius:var(--radius-lg);padding:var(--space-3);border:1px solid rgba(37,99,235,.1);text-align:center}.writing-evaluation-page .nlp-stat-label{display:block;font-size:var(--text-xs);color:var(--color-slate-500);margin-bottom:var(--space-1)}.writing-evaluation-page .nlp-stat-value{font-weight:700;color:var(--color-accent)}.writing-evaluation-page .nlp-section{background:#fff;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);border:1px solid rgba(37,99,235,.1);margin-bottom:var(--space-3)}.writing-evaluation-page .nlp-section strong{display:block;color:var(--color-accent);margin-bottom:var(--space-2)}.writing-evaluation-page .nlp-section ul{margin:0;padding-left:var(--space-5)}.writing-evaluation-page .nlp-section li{margin-bottom:var(--space-2);color:var(--color-slate-600)}.writing-evaluation-page .nlp-issue{font-weight:600;color:var(--color-red-500);display:block}.writing-evaluation-page .nlp-explanation{display:block;color:var(--color-slate-500);font-size:var(--text-sm);margin-top:var(--space-1)}.writing-evaluation-page .nlp-empty{margin:0;color:var(--color-slate-600);font-size:var(--text-sm)}.writing-evaluation-page .detailed-feedback{margin-bottom:var(--space-6)}.writing-evaluation-page .criteria-section{background:var(--color-slate-50);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);border-left:4px solid var(--color-accent)}.writing-evaluation-page .criteria-section h4{margin:0 0 var(--space-3);color:var(--color-slate-900)}.writing-evaluation-page .criteria-section>p{color:var(--color-slate-600);margin-bottom:var(--space-4)}.writing-evaluation-page .strengths,.writing-evaluation-page .improvements{margin-bottom:var(--space-3)}.writing-evaluation-page .strengths ul,.writing-evaluation-page .improvements ul{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.writing-evaluation-page .strengths li,.writing-evaluation-page .improvements li{margin-bottom:var(--space-1)}.writing-evaluation-page .strengths strong{color:var(--color-blue-500)}.writing-evaluation-page .improvements strong{color:var(--color-orange-500)}.writing-evaluation-page .word-suggestions,.writing-evaluation-page .grammar-errors,.writing-evaluation-page .spelling-errors{margin-top:var(--space-4);padding:var(--space-4);background:var(--color-yellow-50);border-radius:var(--radius-lg)}.writing-evaluation-page .suggestions-list,.writing-evaluation-page .errors-list,.writing-evaluation-page .spelling-list{margin-top:var(--space-3)}.writing-evaluation-page .suggestion,.writing-evaluation-page .error-item,.writing-evaluation-page .spelling-item{padding:var(--space-3);background:#fff;border-radius:var(--radius-md);margin-bottom:var(--space-2)}.writing-evaluation-page .original,.writing-evaluation-page .wrong,.writing-evaluation-page .error-text{color:var(--color-red-500);font-weight:600}.writing-evaluation-page .suggested,.writing-evaluation-page .correct,.writing-evaluation-page .correction{color:var(--color-blue-500);font-weight:600}.writing-evaluation-page .arrow{margin:0 var(--space-2);color:var(--color-slate-500)}.writing-evaluation-page .reason,.writing-evaluation-page .explanation,.writing-evaluation-page .mnemonic{font-size:var(--text-sm);color:var(--color-slate-500);margin-top:var(--space-2);font-style:italic}.writing-evaluation-page .mnemonic{color:var(--color-accent);background:#2563eb1a;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.writing-evaluation-page .encouragement{background:linear-gradient(135deg,#22c55e1a,#22c55e33);padding:var(--space-5);border-radius:var(--radius-lg);text-align:center;font-size:var(--text-lg);color:var(--color-blue-600);margin-bottom:var(--space-5)}.writing-evaluation-page .model-answer-section{background:linear-gradient(135deg,#2563eb0d,#2563eb1a);border:2px solid var(--color-accent);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-5)}.writing-evaluation-page .model-answer-section h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-900);font-size:var(--text-lg)}.writing-evaluation-page .model-answer-intro{color:var(--color-slate-600);font-size:var(--text-base);margin-bottom:var(--space-4);line-height:1.5}.writing-evaluation-page .model-answer-text{background:#fff;border-radius:var(--radius-lg);padding:var(--space-4);border-left:4px solid var(--color-accent);line-height:1.8;color:var(--color-slate-800);font-size:var(--text-base);margin-bottom:var(--space-4)}.writing-evaluation-page .model-answer-text p{margin:0 0 var(--space-3) 0}.writing-evaluation-page .model-answer-text p:last-child{margin-bottom:0}.writing-evaluation-page .model-answer-note{background:var(--color-yellow-50);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-slate-600);margin:0}.writing-evaluation-page .next-steps{background:var(--color-yellow-50);padding:var(--space-5);border-radius:var(--radius-lg)}.writing-evaluation-page .next-steps h4{margin:0 0 var(--space-4);color:var(--color-orange-600)}.writing-evaluation-page .next-steps ul{padding-left:var(--space-5);margin:0}.writing-evaluation-page .next-steps li{margin-bottom:var(--space-2);color:var(--color-slate-600)}.writing-evaluation-page .clear-prompt-btn{background:none;border:none;color:var(--color-slate-400);cursor:pointer;padding:var(--space-1);transition:var(--transition-fast)}.writing-evaluation-page .clear-prompt-btn:hover{color:var(--color-red-500)}.writing-evaluation-page .my-writings-section{background:var(--bg-card);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.writing-evaluation-page .my-writings-summary{display:flex;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.writing-evaluation-page .my-writings-summary .summary-stat{display:flex;align-items:center;gap:var(--space-3);background:var(--color-slate-50);padding:var(--space-4);border-radius:var(--radius-lg);min-width:140px}.writing-evaluation-page .my-writings-summary .summary-icon{font-size:var(--text-2xl)}.writing-evaluation-page .my-writings-summary .summary-info{display:flex;flex-direction:column}.writing-evaluation-page .my-writings-summary .summary-value{font-size:var(--text-xl);font-weight:700;color:var(--color-slate-900)}.writing-evaluation-page .my-writings-summary .summary-label{font-size:var(--text-sm);color:var(--color-slate-600)}.writing-evaluation-page .my-writings-summary .grade-distribution{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.writing-evaluation-page .my-writings-summary .grade-badges{display:flex;gap:var(--space-2);flex-wrap:wrap}.writing-evaluation-page .my-writings-summary .grade-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);color:#fff;font-weight:600;font-size:var(--text-xs)}.writing-evaluation-page .my-writings-filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.writing-evaluation-page .my-writings-filters .filter-select{padding:var(--space-2) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-lg);font-size:var(--text-sm);background:#fff;min-width:150px}.writing-evaluation-page .my-writings-count{color:var(--color-slate-600);margin-bottom:var(--space-4);font-size:var(--text-sm)}.writing-evaluation-page .loading-message{text-align:center;padding:var(--space-8);color:var(--color-slate-600);font-size:var(--text-base)}.writing-evaluation-page .my-writings-table-container{overflow-x:auto;margin-bottom:var(--space-4)}.writing-evaluation-page .my-writings-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.writing-evaluation-page .my-writings-table th,.writing-evaluation-page .my-writings-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-slate-200)}.writing-evaluation-page .my-writings-table th{background:var(--color-slate-50);font-weight:600;color:var(--color-slate-700);white-space:nowrap}.writing-evaluation-page .my-writings-table tbody tr:hover{background:var(--color-slate-50)}.writing-evaluation-page .my-writings-table .date-cell{white-space:nowrap;font-size:var(--text-xs);color:var(--color-slate-600)}.writing-evaluation-page .my-writings-table .source-label{margin-left:var(--space-1);font-size:var(--text-xs)}.writing-evaluation-page .my-writings-table .grade-pill{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);color:#fff;font-weight:700;font-size:var(--text-xs)}.writing-evaluation-page .my-writings-table .score-cell{font-weight:600}.writing-evaluation-page .my-writings-table .view-btn{padding:var(--space-2) var(--space-3);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:var(--transition-base)}.writing-evaluation-page .my-writings-table .view-btn:hover{background:var(--color-accent-dark)}.writing-evaluation-page .my-writings-table .empty-message{text-align:center;padding:var(--space-8);color:var(--color-slate-500)}.writing-evaluation-page .my-writings-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.writing-evaluation-page .my-writings-pagination .pagination-btn{padding:var(--space-2) var(--space-4);background:var(--color-slate-100);color:var(--color-slate-700);border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:var(--transition-base)}.writing-evaluation-page .my-writings-pagination .pagination-btn:hover:not(:disabled){background:var(--color-slate-200)}.writing-evaluation-page .my-writings-pagination .pagination-btn:disabled{opacity:.5;cursor:not-allowed}.writing-evaluation-page .my-writings-pagination .page-info{font-weight:600;padding:var(--space-2) var(--space-4)}.writing-evaluation-page .submission-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.writing-evaluation-page .submission-modal{background:#fff;border-radius:var(--radius-xl);max-width:800px;width:100%;max-height:90vh;overflow:auto;box-shadow:var(--shadow-xl)}.writing-evaluation-page .submission-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-slate-200);position:sticky;top:0;background:#fff;z-index:1}.writing-evaluation-page .submission-modal-header h3{margin:0;font-size:var(--text-lg);color:var(--color-slate-900)}.writing-evaluation-page .submission-modal-header .modal-close-btn{width:32px;height:32px;border:none;background:var(--color-slate-100);border-radius:var(--radius-full);font-size:var(--text-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-base)}.writing-evaluation-page .submission-modal-header .modal-close-btn:hover{background:var(--color-slate-200)}.writing-evaluation-page .submission-modal-body{padding:var(--space-6)}.writing-evaluation-page .submission-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-lg);font-size:var(--text-sm)}.writing-evaluation-page .submission-prompt{margin-bottom:var(--space-5)}.writing-evaluation-page .submission-prompt h4{font-size:var(--text-base);margin-bottom:var(--space-2);color:var(--color-slate-800)}.writing-evaluation-page .submission-prompt .prompt-text{padding:var(--space-4);background:var(--color-blue-50);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-slate-700)}.writing-evaluation-page .submission-text-section{margin-bottom:var(--space-5)}.writing-evaluation-page .submission-text-section h4{font-size:var(--text-base);margin-bottom:var(--space-2);color:var(--color-slate-800)}.writing-evaluation-page .submission-text{padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-lg);font-size:var(--text-sm);max-height:200px;overflow:auto;white-space:pre-wrap;line-height:1.6}.writing-evaluation-page .submission-scores{margin-bottom:var(--space-5)}.writing-evaluation-page .submission-scores h4{font-size:var(--text-base);margin-bottom:var(--space-3);color:var(--color-slate-800)}.writing-evaluation-page .submission-scores .score-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.writing-evaluation-page .submission-scores .large-grade{padding:var(--space-2) var(--space-5);border-radius:var(--radius-lg);color:#fff;font-weight:700;font-size:var(--text-xl)}.writing-evaluation-page .submission-scores .total-score{font-weight:700;font-size:var(--text-lg);color:var(--color-slate-900)}.writing-evaluation-page .submission-scores .score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3)}.writing-evaluation-page .submission-scores .score-item{padding:var(--space-3);background:var(--color-slate-50);border-radius:var(--radius-lg);text-align:center}.writing-evaluation-page .submission-scores .score-label{font-size:var(--text-xs);color:var(--color-slate-600);margin-bottom:var(--space-1)}.writing-evaluation-page .submission-scores .score-value{font-weight:700;margin-bottom:var(--space-2)}.writing-evaluation-page .submission-scores .score-bar-bg{height:4px;background:var(--color-slate-200);border-radius:var(--radius-full)}.writing-evaluation-page .submission-scores .score-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .3s ease}.writing-evaluation-page .submission-feedback{margin-bottom:var(--space-4)}.writing-evaluation-page .submission-feedback h4{font-size:var(--text-base);margin-bottom:var(--space-3);color:var(--color-slate-800)}.writing-evaluation-page .submission-feedback .overall-feedback-box{padding:var(--space-4);background:var(--color-green-50);border-radius:var(--radius-lg);margin-bottom:var(--space-4);font-size:var(--text-sm);line-height:1.6}.writing-evaluation-page .submission-feedback .feedback-section{margin-bottom:var(--space-3)}.writing-evaluation-page .submission-feedback .feedback-section ul{margin:var(--space-2) 0;padding-left:var(--space-5);font-size:var(--text-sm)}.writing-evaluation-page .submission-feedback .feedback-section li{margin-bottom:var(--space-2)}.writing-evaluation-page .submission-feedback .strengths-label{color:var(--color-green-600)}.writing-evaluation-page .submission-feedback .improvements-label{color:var(--color-orange-600)}.writing-evaluation-page .submission-feedback .encouragement-box{padding:var(--space-3) var(--space-4);background:var(--color-yellow-50);border-radius:var(--radius-lg);font-size:var(--text-sm)}.writing-evaluation-page .drafts-panel{margin-bottom:var(--space-5);background:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:var(--radius-lg);overflow:hidden}.writing-evaluation-page .drafts-panel .drafts-panel-header{padding:var(--space-3) var(--space-4);background:var(--color-blue-100);font-weight:600;font-size:var(--text-sm);color:var(--color-blue-800)}.writing-evaluation-page .drafts-panel .drafts-list{max-height:200px;overflow-y:auto}.writing-evaluation-page .drafts-panel .draft-item{display:flex;align-items:center;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-blue-100);transition:var(--transition-base)}.writing-evaluation-page .drafts-panel .draft-item:last-child{border-bottom:none}.writing-evaluation-page .drafts-panel .draft-item:hover{background:var(--color-blue-100)}.writing-evaluation-page .drafts-panel .draft-item.active{background:var(--color-blue-100);border-left:3px solid var(--color-blue-600)}.writing-evaluation-page .drafts-panel .draft-item .draft-item-info{flex:1;cursor:pointer;min-width:0}.writing-evaluation-page .drafts-panel .draft-item .draft-item-title{display:block;font-weight:500;font-size:var(--text-sm);color:var(--color-slate-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.writing-evaluation-page .drafts-panel .draft-item .draft-item-meta{font-size:var(--text-xs);color:var(--color-slate-500)}.writing-evaluation-page .drafts-panel .draft-item .draft-delete-btn{background:none;border:none;cursor:pointer;padding:var(--space-1);font-size:var(--text-sm);opacity:.5;transition:var(--transition-base)}.writing-evaluation-page .drafts-panel .draft-item .draft-delete-btn:hover{opacity:1}.writing-evaluation-page .draft-indicator{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-amber-800)}.writing-evaluation-page .draft-indicator .draft-new-btn{margin-left:auto;background:none;border:1px solid var(--color-amber-400);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--color-amber-800);cursor:pointer;transition:var(--transition-base)}.writing-evaluation-page .draft-indicator .draft-new-btn:hover{background:var(--color-amber-100)}.writing-evaluation-page .write-actions{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-top:var(--space-4)}.writing-evaluation-page .save-draft-btn{padding:var(--space-3) var(--space-5);background:var(--color-slate-100);color:var(--color-slate-700);border:2px solid var(--color-slate-300);border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:var(--transition-base)}.writing-evaluation-page .save-draft-btn:hover:not(:disabled){background:var(--color-slate-200);border-color:var(--color-slate-400)}.writing-evaluation-page .save-draft-btn:disabled{opacity:.5;cursor:not-allowed}.writing-evaluation-page .autosave-toggle{display:flex;align-items:center;gap:var(--space-2)}.writing-evaluation-page .autosave-toggle .toggle-label{display:inline-flex;align-items:center;cursor:pointer;gap:var(--space-2)}.writing-evaluation-page .autosave-toggle .toggle-input{position:absolute;opacity:0;width:0;height:0}.writing-evaluation-page .autosave-toggle .toggle-input:checked+.toggle-switch{background:var(--color-primary, #6366f1)}.writing-evaluation-page .autosave-toggle .toggle-input:checked+.toggle-switch:after{transform:translate(18px)}.writing-evaluation-page .autosave-toggle .toggle-input:focus-visible+.toggle-switch{outline:2px solid var(--color-primary, #6366f1);outline-offset:2px}.writing-evaluation-page .autosave-toggle .toggle-switch{position:relative;width:40px;height:22px;background:var(--color-slate-300);border-radius:11px;transition:var(--transition-base);flex-shrink:0}.writing-evaluation-page .autosave-toggle .toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:var(--transition-base);box-shadow:0 1px 3px #00000026}.writing-evaluation-page .autosave-toggle .toggle-text{font-size:var(--text-sm);color:var(--color-slate-600);-webkit-user-select:none;user-select:none}@media (max-width: 768px){.writing-evaluation-page{padding:var(--space-4)}.writing-evaluation-page h2{font-size:var(--text-2xl)}.writing-evaluation-page .tabs{flex-direction:column}.writing-evaluation-page .tab{width:100%;text-align:center}.writing-evaluation-page .overall-score{flex-direction:column}.writing-evaluation-page .prompts-grid,.writing-evaluation-page .vocab-grid{grid-template-columns:1fr}.writing-evaluation-page .write-section,.writing-evaluation-page .upload-section,.writing-evaluation-page .evaluation-results,.writing-evaluation-page .my-writings-section{padding:var(--space-4)}.writing-evaluation-page .my-writings-summary{flex-direction:column}.writing-evaluation-page .submission-modal{max-height:80vh}.writing-evaluation-page .submission-meta{grid-template-columns:1fr}}@media (max-width: 480px){.writing-evaluation-page h2{font-size:var(--text-xl)}.writing-evaluation-page .score-circle{width:120px;height:120px;border-width:6px}.writing-evaluation-page .score-circle .grade{font-size:var(--text-2xl)}.writing-evaluation-page .my-writings-table{font-size:var(--text-xs)}.writing-evaluation-page .my-writings-table th,.writing-evaluation-page .my-writings-table td{padding:var(--space-2)}}.handwriting-page{max-width:900px;margin:0 auto;padding:2rem 1rem}.handwriting-header{text-align:center;margin-bottom:1.5rem}.handwriting-header h1{font-size:1.8rem;color:var(--primary-color, #6c5ce7);margin-bottom:.25rem}.handwriting-header p{color:var(--text-secondary, #666);font-size:1rem}.hw-settings{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin-bottom:1.5rem;padding:1rem;background:var(--card-bg, #fff);border-radius:12px;box-shadow:0 2px 8px #00000014}.hw-setting-group{display:flex;align-items:center;gap:.5rem}.hw-setting-group label{font-weight:600;font-size:.9rem;color:var(--text-primary, #333)}.hw-btn-group{display:flex;gap:.25rem}.hw-btn{padding:.4rem .75rem;border:2px solid var(--border-color, #ddd);border-radius:8px;background:var(--card-bg, #fff);cursor:pointer;font-size:.85rem;transition:all .2s;color:var(--text-primary, #333)}.hw-btn:hover{border-color:var(--primary-color, #6c5ce7);background:#6c5ce70d}.hw-btn.active{background:var(--primary-color, #6c5ce7);color:#fff;border-color:var(--primary-color, #6c5ce7)}.hw-sentence-card{background:linear-gradient(135deg,#ffecd2,#fcb69f);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;text-align:center}.hw-sentence-card h3{margin:0 0 .75rem;font-size:1rem;color:#6b4226}.hw-sentence-display{background:#ffffffb3;border-radius:12px;padding:1.25rem;margin-bottom:1rem}.hw-sentence-text{font-size:1.25rem;font-family:Georgia,serif;color:var(--color-slate-800);line-height:1.8;letter-spacing:.5px;margin:0}.hw-new-sentence-btn{padding:.4rem 1rem;border:none;border-radius:20px;background:#fffc;cursor:pointer;font-size:.85rem;color:#6b4226;transition:all .2s}.hw-new-sentence-btn:hover{background:#fff;transform:scale(1.05)}.hw-instructions{background:var(--card-bg, #fff);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000000d}.hw-instructions h3{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary, #333)}.hw-instructions ol{margin:0;padding-left:1.25rem;color:var(--text-secondary, #555);font-size:.95rem;line-height:1.8}.hw-upload-section{margin-bottom:1.5rem}.hw-upload-area{margin-bottom:1rem}.hw-file-input{display:none}.hw-upload-label{display:block;border:3px dashed var(--border-color, #ccc);border-radius:16px;cursor:pointer;transition:all .2s;overflow:hidden}.hw-upload-label:hover{border-color:var(--primary-color, #6c5ce7);background:#6c5ce705}.hw-upload-placeholder{padding:2.5rem 1rem;text-align:center}.hw-upload-icon{font-size:3rem;margin-bottom:.75rem}.hw-upload-placeholder p{font-size:1rem;color:var(--text-primary, #333);margin:0 0 .25rem}.hw-upload-hint{font-size:.8rem;color:var(--text-secondary, #888)}.hw-preview{position:relative}.hw-preview img{width:100%;max-height:400px;object-fit:contain;display:block}.hw-preview-change{position:absolute;bottom:0;left:0;right:0;background:#0009;color:#fff;text-align:center;padding:.5rem;font-size:.85rem;margin:0}.hw-converting{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;background:var(--color-blue-50);color:var(--color-blue-600);border-left:4px solid var(--color-blue-400)}.hw-submit-btn{width:100%;padding:.9rem;border:none;border-radius:12px;background:var(--primary-color, #6c5ce7);color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.hw-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6c5ce74d}.hw-submit-btn:disabled{opacity:.6;cursor:not-allowed}.hw-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:hw-spin .8s linear infinite}@keyframes hw-spin{to{transform:rotate(360deg)}}.hw-results{display:flex;flex-direction:column;gap:1.25rem}.hw-score-card{display:flex;align-items:center;gap:1.5rem;background:var(--card-bg, #fff);border-radius:16px;padding:1.5rem;box-shadow:0 2px 12px #00000014}.hw-score-circle{flex-shrink:0}.hw-score-ring{width:100px;height:100px;border-radius:50%;display:flex;align-items:center;justify-content:center}.hw-score-inner{width:78px;height:78px;border-radius:50%;background:var(--card-bg, #fff);display:flex;flex-direction:column;align-items:center;justify-content:center}.hw-score-number{font-size:1.6rem;font-weight:700;color:var(--text-primary, #333);line-height:1}.hw-score-max{font-size:.8rem;color:var(--text-secondary, #888)}.hw-score-details{display:flex;flex-direction:column;gap:.4rem}.hw-grade{font-size:1.3rem;font-weight:700;color:var(--primary-color, #6c5ce7)}.hw-style-badge,.hw-accuracy{font-size:.9rem;color:var(--text-secondary, #666)}.hw-feedback-card{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:14px;padding:1.25rem}.hw-feedback-card h3{margin:0 0 .5rem;color:#2e7d32}.hw-overall-feedback{color:#1b5e20;margin:0 0 .5rem;line-height:1.6}.hw-encouragement{color:#33691e;font-style:italic;margin:0}.hw-criteria-section{background:var(--card-bg, #fff);border-radius:14px;padding:1.25rem;box-shadow:0 2px 8px #0000000f}.hw-criteria-section h3{margin:0 0 1rem;color:var(--text-primary, #333)}.hw-criterion-card{padding:.75rem 0;border-bottom:1px solid var(--border-color, #eee)}.hw-criterion-card:last-child{border-bottom:none}.hw-criterion-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.hw-criterion-icon{font-size:1.2rem}.hw-criterion-name{flex:1;font-weight:600;color:var(--text-primary, #333)}.hw-criterion-score{font-weight:700;font-size:.95rem}.hw-criterion-bar{height:8px;background:var(--border-color, #e0e0e0);border-radius:4px;margin-bottom:.5rem;overflow:hidden}.hw-criterion-fill{height:100%;border-radius:4px;transition:width .6s ease}.hw-criterion-feedback{font-size:.9rem;color:var(--text-secondary, #555);margin:0 0 .5rem;line-height:1.5}.hw-strengths,.hw-improvements{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.25rem}.hw-strength-badge,.hw-improvement-badge{font-size:.8rem;padding:.2rem .6rem;border-radius:12px}.hw-strength-badge{background:#e8f5e9;color:#2e7d32}.hw-improvement-badge{background:#fff8e1;color:#f57f17}.hw-tips-card{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:14px;padding:1.25rem}.hw-tips-card h3{margin:0 0 .75rem;color:#1565c0}.hw-tips-list{margin:0;padding-left:1.25rem;color:#0d47a1;font-size:.95rem;line-height:1.8}.hw-practice-letters-card{background:var(--card-bg, #fff);border-radius:14px;padding:1.25rem;box-shadow:0 2px 8px #0000000f}.hw-practice-letters-card h3{margin:0 0 .75rem;color:var(--text-primary, #333)}.hw-practice-letters{display:flex;flex-wrap:wrap;gap:.5rem}.hw-practice-letter{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .75rem;background:#fff3e0;color:#e65100;border-radius:10px;font-size:1.2rem;font-weight:700;font-family:Georgia,serif;border:2px solid #ffcc80}.hw-extracted-text-card{background:var(--card-bg, #fff);border-radius:14px;padding:1.25rem;box-shadow:0 2px 8px #0000000f}.hw-extracted-text-card h3{margin:0 0 .5rem;color:var(--text-primary, #333)}.hw-extracted-text{font-family:Courier New,monospace;background:var(--color-slate-50);padding:.75rem;border-radius:8px;font-size:.95rem;color:var(--text-primary, #333);margin:0 0 .5rem;line-height:1.6}.hw-extracted-note{font-size:.8rem;color:var(--text-secondary, #888);margin:0;font-style:italic}.hw-actions{display:flex;gap:.75rem}.hw-action-btn{flex:1;padding:.75rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.hw-action-btn.primary{background:var(--primary-color, #6c5ce7);color:#fff}.hw-action-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6c5ce74d}.hw-action-btn.secondary{background:var(--card-bg, #fff);color:var(--primary-color, #6c5ce7);border:2px solid var(--primary-color, #6c5ce7)}.hw-action-btn.secondary:hover{background:#6c5ce70d}@media (max-width: 600px){.handwriting-page{padding:1rem .5rem}.hw-settings{flex-direction:column;align-items:stretch;gap:.75rem}.hw-setting-group{flex-direction:column;align-items:flex-start;gap:.25rem}.hw-btn-group{width:100%}.hw-btn{flex:1;text-align:center;font-size:.8rem;padding:.35rem .5rem}.hw-score-card{flex-direction:column;text-align:center}.hw-actions{flex-direction:column}.hw-sentence-text{font-size:1.05rem}}.profile-page{min-height:100vh;background:var(--bg-page);padding:var(--space-8)}.profile-container{max-width:600px;margin:0 auto;background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.profile-header{background:var(--gradient-cta);color:#fff;padding:var(--space-8);text-align:center}.profile-header .back-link{display:inline-block;color:#ffffffe6;text-decoration:none;margin-bottom:var(--space-4);font-size:var(--text-sm);transition:color var(--transition-fast)}.profile-header .back-link:hover{color:#fff}.profile-header h1{margin:0;font-size:var(--text-2xl);font-family:var(--font-heading);color:#fff}.profile-subtitle{margin:var(--space-2) 0 0 0;opacity:.9}.profile-section{padding:var(--space-8)}.profile-info-card{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-6);background:linear-gradient(135deg,var(--color-slate-50) 0%,var(--color-slate-100) 100%);border-radius:var(--radius-md);margin-bottom:var(--space-8)}.user-details h3{margin:0 0 var(--space-1) 0;font-size:var(--text-xl);color:var(--color-slate-900)}.user-email{margin:0 0 var(--space-2) 0;color:var(--color-slate-500);font-size:var(--text-sm)}.role-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-transform:uppercase}.role-badge.student{background:#2563eb1a;color:var(--color-blue-600)}.role-badge.parent{background:#a855f71a;color:#9333ea}.role-badge.teacher{background:#22c55e1a;color:var(--color-blue-500)}.role-badge.admin{background:#f973161a;color:var(--color-orange-500)}.equipped-title{font-size:var(--text-sm);opacity:.8}.profile-badges-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.points-badge-link{text-decoration:none}.points-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;background:#fbbf2426;color:#92400e;transition:background var(--transition-fast)}.points-badge:hover{background:#fbbf244d}.profile-form{background:var(--color-slate-50);padding:var(--space-6);border-radius:var(--radius-md)}.profile-form h3{margin:0 0 var(--space-2) 0;color:var(--color-slate-900);font-family:var(--font-heading)}.form-description{color:var(--color-slate-500);margin:0 0 var(--space-6) 0;font-size:var(--text-sm)}.child-profile-notice{background:var(--color-slate-100, #f1f5f9);padding:var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-4);color:var(--color-slate-600, #475569);font-size:var(--text-sm)}.profile-form .form-group{margin-bottom:var(--space-5)}.profile-form .form-group label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--color-slate-700);font-size:var(--text-sm)}.profile-form .form-group input{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-sm);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box;font-family:var(--font-body)}.profile-form .form-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb26}.profile-form .form-group input.input-disabled{background:var(--color-slate-100);color:var(--color-slate-500);cursor:not-allowed}.input-hint{display:block;margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-slate-400)}.message{padding:var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-4);font-weight:500}.message.success{background:#22c55e1a;color:var(--color-blue-500);border:1px solid rgba(34,197,94,.3)}.message.error{background:var(--color-red-100);color:var(--color-red-500);border:1px solid rgba(239,68,68,.3)}.submit-btn{width:100%;padding:var(--space-4);background:var(--gradient-cta);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);font-family:var(--font-body)}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-cta)}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.profile-footer{padding:var(--space-4) var(--space-8);background:var(--color-slate-50);border-top:1px solid var(--color-slate-200);text-align:center}.account-info{margin:0;color:var(--color-slate-400);font-size:var(--text-sm)}.license-info-card{background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-md);padding:var(--space-6);margin-bottom:var(--space-8)}.license-info-card h4{margin:0 0 var(--space-4) 0;color:var(--color-slate-700);font-size:var(--text-lg);font-family:var(--font-heading)}.license-details{display:flex;flex-direction:column;gap:var(--space-3)}.license-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--color-slate-100)}.license-row:last-child{border-bottom:none}.license-features-row{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.license-label{color:var(--color-slate-500);font-size:var(--text-sm);font-weight:500}.license-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600}.license-active{background:#22c55e26;color:var(--color-blue-600)}.license-expired{background:#ef444426;color:var(--color-red-600)}.license-suspended{background:#f9731626;color:var(--color-orange-600)}.license-none,.license-no_license{background:var(--color-slate-100);color:var(--color-slate-500)}.license-type{font-weight:600;text-transform:capitalize}.license-type-free{color:var(--color-green-600, #16a34a)}.license-ai-usage{font-variant-numeric:tabular-nums}.license-ai-usage .upgrade-hint{color:var(--color-amber-600, #d97706);font-size:.9em}.license-type-paid{color:var(--color-accent)}.license-type-basic{color:var(--color-blue-600)}.license-type-premium{color:var(--color-accent)}.license-type-enterprise{color:var(--color-orange-600)}.license-expiry{color:var(--color-slate-700)}.license-expiry.expiring-soon{color:var(--color-red-600);font-weight:600}.days-remaining{display:block;font-size:var(--text-xs);color:var(--color-slate-500);margin-top:var(--space-1)}.expiring-soon .days-remaining{color:var(--color-red-500)}.license-features{display:flex;flex-wrap:wrap;gap:var(--space-2)}.feature-tag{display:inline-block;padding:var(--space-1) var(--space-2);background:#2563eb1a;color:var(--color-accent);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500}.license-message{margin-top:var(--space-3);padding:var(--space-3);background:#eab30826;border:1px solid rgba(234,179,8,.3);border-radius:var(--radius-sm);color:#854d0e;font-size:var(--text-sm)}@media (max-width: 768px){.profile-page{padding:var(--space-4)}.profile-header,.profile-section{padding:var(--space-6)}.profile-info-card{flex-direction:column;text-align:center;padding:var(--space-4)}}@media (max-width: 480px){.profile-page{padding:var(--space-2)}.profile-container{border-radius:var(--radius-lg)}.profile-header{padding:var(--space-4)}.profile-header h1{font-size:var(--text-xl)}.profile-section{padding:var(--space-4)}}.children-section .children-header{margin-bottom:var(--space-4)}.children-section .children-header h3{margin:0 0 var(--space-2) 0;font-size:var(--text-xl);font-family:var(--font-heading)}.add-child-btn{width:100%;background:var(--color-accent, #6366f1)!important}.add-child-form .form-group{margin-bottom:var(--space-3)}.add-child-form label{display:block;font-weight:600;margin-bottom:var(--space-1);font-size:var(--text-sm);color:var(--color-slate-600)}.add-child-form input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-slate-300, #cbd5e1);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-body);transition:border-color var(--transition-fast)}.add-child-form input:focus{outline:none;border-color:var(--color-accent, #6366f1);box-shadow:0 0 0 3px #6366f11a}.child-card:hover{box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .1))}.riddle-page{animation:fadeIn var(--transition-base)}.riddle-hero{text-align:center;padding:var(--space-10) var(--space-6);background:var(--color-yellow-50);border-radius:var(--radius-xl);margin-bottom:var(--space-10);box-shadow:var(--shadow-md)}.riddle-hero h2{margin:0 0 var(--space-2);color:var(--color-slate-800);font-family:var(--font-heading);font-size:var(--text-4xl)}.riddle-hero p{margin:0;color:var(--color-slate-600);font-size:var(--text-lg)}.riddle-tip{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-lg);margin-top:var(--space-10);box-shadow:var(--shadow-md)}.riddle-tip h3{margin-bottom:var(--space-2);color:var(--color-slate-800);font-family:var(--font-heading)}.riddle-tip ul{margin:0;padding-left:var(--space-5);color:var(--color-slate-600)}.riddle-tip li{padding:var(--space-1) 0}@media (max-width: 768px){.riddle-hero{padding:var(--space-6)}.riddle-hero h2{font-size:var(--text-2xl)}.riddle-hero p{font-size:var(--text-base)}}.punctuation-page{animation:fadeIn .5s ease-out;padding:var(--space-6);max-width:900px;margin:0 auto}.punctuation-page h2{color:var(--color-slate-900);font-family:var(--font-heading);font-size:var(--text-3xl);margin-bottom:var(--space-6);text-align:center}.punctuation-page .loading-state,.punctuation-page .error-state{text-align:center;padding:var(--space-8)}.punctuation-page .error{color:var(--color-red-600);margin-bottom:var(--space-4)}.punctuation-page .retry-btn{padding:var(--space-3) var(--space-6);background:var(--color-purple-600);color:#fff;border:none;border-radius:var(--radius-lg);font-weight:600;cursor:pointer;transition:var(--transition-base)}.punctuation-page .retry-btn:hover{background:var(--color-purple-600);transform:translateY(-2px)}.punctuation-page .quiz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.punctuation-page .score-board{display:flex;gap:var(--space-4);font-weight:600;color:var(--color-slate-700)}.punctuation-page .source-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full, 9999px);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em}.punctuation-page .source-badge.source-ai{background:#9c27b01f;color:var(--color-purple-600);border:1px solid rgba(156,39,176,.25)}.punctuation-page .source-badge.source-seed{background:#4caf501f;color:var(--color-green-700);border:1px solid rgba(76,175,80,.25)}.punctuation-page .exercise-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-6);border:1px solid var(--color-slate-200)}.punctuation-page .question-section{margin-bottom:var(--space-6)}.punctuation-page .question-text{font-size:var(--text-xl);line-height:1.6;text-align:center;padding:var(--space-6);background:var(--color-slate-50);border-radius:var(--radius-lg);color:var(--color-slate-900);font-weight:500}.punctuation-page .options-section{margin:var(--space-6) 0}.punctuation-page .instruction{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-4);text-align:center;color:var(--color-slate-700)}.punctuation-page .options-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin-bottom:var(--space-6)}.punctuation-page .options-grid.punctuation-marks{grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.punctuation-page .options-grid.punctuation-marks .option-btn{text-align:center;font-size:var(--text-2xl);padding:var(--space-5) var(--space-4)}.punctuation-page .explanation{font-style:italic;color:var(--color-slate-600);margin-top:var(--space-4);line-height:1.6}.punctuation-page .progress{text-align:center;margin-top:var(--space-6);padding-top:var(--space-6);border-top:2px solid var(--color-slate-200);font-weight:600;color:var(--color-slate-600)}.punctuation-page .completion-card{background:var(--bg-card);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-200);text-align:center}.punctuation-page .completion-header{margin-bottom:var(--space-6)}.punctuation-page .completion-header h3{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--color-slate-900)}.punctuation-page .completion-icon{font-size:3rem;display:block;margin-bottom:var(--space-3)}.punctuation-page .completion-stats{display:flex;justify-content:center;gap:var(--space-8);margin-bottom:var(--space-6)}.punctuation-page .stat{display:flex;flex-direction:column;align-items:center}.punctuation-page .stat-value{font-size:var(--text-3xl);font-weight:700;color:var(--color-purple-600)}.punctuation-page .stat-value.grade-a{color:var(--color-green-500)}.punctuation-page .stat-value.grade-b{color:var(--color-blue-500)}.punctuation-page .stat-value.grade-c{color:var(--color-warning)}.punctuation-page .stat-value.grade-d{color:var(--color-red-500)}.punctuation-page .stat-label{font-size:var(--text-sm);color:var(--color-slate-500);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.punctuation-page .source-label{font-size:var(--text-sm);color:var(--color-slate-500);margin-bottom:var(--space-4)}.punctuation-page .play-again-btn{padding:var(--space-4) var(--space-8);background:linear-gradient(135deg,var(--color-purple-600),var(--color-purple-600));color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:var(--transition-base)}.punctuation-page .play-again-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #9c27b066}.punctuation-page .tips-section{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.punctuation-page .tips-section h4{color:var(--color-slate-900);font-family:var(--font-heading);margin-bottom:var(--space-4)}.punctuation-page .tips-section ul{list-style-position:inside;color:var(--color-slate-600)}.punctuation-page .tips-section li{padding:var(--space-2) 0;line-height:1.6}@media (max-width: 768px){.punctuation-page{padding:var(--space-4)}.punctuation-page h2{font-size:var(--text-2xl)}.punctuation-page .exercise-card{padding:var(--space-5)}.punctuation-page .question-text{font-size:var(--text-lg);padding:var(--space-4)}.punctuation-page .quiz-header{flex-direction:column;gap:var(--space-2);align-items:flex-start}.punctuation-page .completion-stats{gap:var(--space-4)}.punctuation-page .options-grid.punctuation-marks{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.punctuation-page h2{font-size:var(--text-xl)}.punctuation-page .exercise-card{padding:var(--space-4);border-radius:var(--radius-lg)}.punctuation-page .question-text{font-size:var(--text-base);padding:var(--space-3);line-height:1.6}.punctuation-page .options-grid.punctuation-marks .option-btn{font-size:var(--text-xl)}.punctuation-page .stat-value{font-size:var(--text-2xl)}}.points-toast-container{position:fixed;top:80px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.points-toast-container .points-toast{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-md, 8px);font-weight:600;font-size:.95rem;box-shadow:0 4px 20px #00000026;animation:toastSlideIn .35s ease-out,toastFadeOut .4s ease-in 2.1s forwards;pointer-events:auto}.points-toast-container .points-toast.earned{background:linear-gradient(135deg,#fef9c3,#fde68a);color:#92400e;border:2px solid #fbbf24}.points-toast-container .points-toast.spent{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:2px solid #60a5fa}.points-toast-container .points-toast-icon{font-size:1.3rem}.points-toast-container .points-toast-amount{font-size:1.2rem;font-weight:700;min-width:30px}.points-toast-container .points-toast-message{font-size:.85rem;font-weight:500;opacity:.9}@keyframes toastSlideIn{0%{transform:translate(100px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastFadeOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(-20px);opacity:0}}@media (max-width: 600px){.points-toast-container{top:70px;right:10px;left:10px}.points-toast-container .points-toast{font-size:.85rem;padding:8px 14px}}.rewards-page{min-height:100vh;background:var(--bg-page);padding:var(--space-8)}.rewards-page .rewards-container{max-width:900px;margin:0 auto}.rewards-page .rewards-header{text-align:center;margin-bottom:var(--space-6)}.rewards-page .rewards-header .back-link{display:inline-block;color:var(--color-accent);text-decoration:none;margin-bottom:var(--space-4);font-size:var(--text-sm);transition:color var(--transition-fast)}.rewards-page .rewards-header .back-link:hover{color:var(--color-blue-700)}.rewards-page .rewards-header h1{margin:0;font-size:var(--text-3xl);font-family:var(--font-heading);color:var(--color-slate-900)}.rewards-page .rewards-subtitle{margin:var(--space-2) 0 0;color:var(--color-slate-500);font-size:var(--text-base)}.rewards-page .child-selector-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,#ede9fe,#e0e7ff);border:2px solid #a78bfa;border-radius:var(--radius-xl, 12px);margin-bottom:var(--space-6);flex-wrap:wrap}.rewards-page .child-selector-bar label{font-weight:600;color:#4c1d95;font-size:1.05rem;white-space:nowrap}.rewards-page .child-select{padding:var(--space-2) var(--space-4);border:2px solid #a78bfa;border-radius:var(--radius-lg, 8px);background:#fff;color:#4c1d95;font-weight:600;font-size:1rem;cursor:pointer;min-width:180px;transition:var(--transition-base, all .2s)}.rewards-page .child-select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed33}.rewards-page .no-children-message{padding:var(--space-6);background:#fef3c7;border:2px solid #f59e0b;border-radius:var(--radius-xl, 12px);margin-bottom:var(--space-6);text-align:center}.rewards-page .no-children-message p{margin:0;color:#92400e}.rewards-page .no-children-message a{color:#d97706;font-weight:600}.rewards-page .rewards-message{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);text-align:center;font-weight:500;margin-bottom:var(--space-4);animation:fadeIn .3s ease-out}.rewards-page .rewards-message.success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.rewards-page .rewards-message.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.rewards-page .rewards-category-toggle{width:min(100%,520px);margin:0 auto var(--space-6)}.rewards-page .category-tabs{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);justify-content:center}.rewards-page .category-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:2px solid var(--color-slate-200);border-radius:var(--radius-full);background:var(--bg-card);cursor:pointer;font-size:var(--text-sm);font-weight:600;color:var(--color-slate-600);transition:all var(--transition-fast);font-family:var(--font-body)}.rewards-page .category-tab:hover{border-color:var(--color-accent);color:var(--color-accent)}.rewards-page .category-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.rewards-page .cat-icon{font-size:1.1rem}.rewards-page .cat-count{font-size:var(--text-xs);opacity:.8}.rewards-page .rewards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-5)}.rewards-page .no-rewards{grid-column:1/-1;text-align:center;color:var(--color-slate-400);padding:var(--space-12);font-size:var(--text-lg)}.rewards-page .reward-card{position:relative;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5);display:flex;flex-direction:column;align-items:center;text-align:center;transition:transform var(--transition-fast),box-shadow var(--transition-fast);border:2px solid transparent}.rewards-page .reward-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.rewards-page .reward-card.equipped{border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.rewards-page .reward-card.tier-common{border-top:3px solid #6b7280}.rewards-page .reward-card.tier-rare{border-top:3px solid #3b82f6}.rewards-page .reward-card.tier-epic{border-top:3px solid #a855f7}.rewards-page .reward-card.tier-legendary{border-top:3px solid #f59e0b;background:linear-gradient(180deg,#fffbeb 0%,var(--bg-card) 30%)}.rewards-page .tier-badge{position:absolute;top:8px;left:8px;padding:2px 8px;border-radius:var(--radius-full);color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.rewards-page .equipped-badge{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:var(--radius-full);background:#10b981;color:#fff;font-size:.65rem;font-weight:700}.rewards-page .reward-preview{width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin:var(--space-4) 0 var(--space-3)}.rewards-page .avatar-emoji{font-size:3.5rem;line-height:1}.rewards-page .theme-swatch{display:flex;gap:4px;align-items:flex-end;height:60px}.rewards-page .swatch-bar{width:22px;height:50px;border-radius:6px}.rewards-page .swatch-bar.small{height:35px}.rewards-page .title-preview{display:flex;flex-direction:column;align-items:center;gap:4px}.rewards-page .title-prefix{font-size:2rem}.rewards-page .title-text{font-size:var(--text-sm);font-weight:600;color:var(--color-slate-700)}.rewards-page .reward-name{margin:0 0 var(--space-1);font-size:var(--text-base);font-family:var(--font-heading);color:var(--color-slate-900)}.rewards-page .reward-desc{margin:0 0 var(--space-4);font-size:var(--text-xs);color:var(--color-slate-500);line-height:1.4;flex-grow:1}.rewards-page .reward-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--space-3)}.rewards-page .reward-cost{font-weight:700;font-size:var(--text-sm);color:var(--color-slate-700)}.rewards-page .reward-cost.too-expensive{color:var(--color-red-500)}.rewards-page .owned-label{color:#10b981!important}.rewards-page .btn-buy,.rewards-page .btn-equip,.rewards-page .btn-unequip{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-body)}.rewards-page .btn-buy{background:var(--gradient-cta);color:#fff}.rewards-page .btn-buy:hover:not(.disabled){transform:scale(1.05)}.rewards-page .btn-buy.disabled{background:var(--color-slate-200);color:var(--color-slate-400);cursor:not-allowed}.rewards-page .btn-equip{background:#10b981;color:#fff}.rewards-page .btn-equip:hover{background:#059669}.rewards-page .btn-unequip{background:var(--color-slate-200);color:var(--color-slate-600)}.rewards-page .btn-unequip:hover{background:var(--color-slate-300)}.rewards-page .rewards-loading{text-align:center;padding:var(--space-16) 0}.rewards-page .modal-preview{margin:var(--space-4) 0}.rewards-page .modal-avatar{font-size:4rem}.rewards-page .modal-theme-preview{width:80px;height:50px;border-radius:var(--radius-md);margin:0 auto}.rewards-page .modal-title-preview{font-size:1.3rem;font-weight:600}.rewards-page .modal-name{font-weight:600;font-size:var(--text-lg);margin:var(--space-2) 0}.rewards-page .modal-cost{color:var(--color-slate-700);margin:var(--space-2) 0}.rewards-page .modal-balance{color:var(--color-slate-500);font-size:var(--text-sm);margin:var(--space-2) 0 var(--space-5)}.rewards-page .modal-actions{display:flex;gap:var(--space-3);justify-content:center}.rewards-page .btn-cancel{padding:var(--space-3) var(--space-6);border:2px solid var(--color-slate-300);border-radius:var(--radius-md);background:#fff;color:var(--color-slate-600);font-weight:600;cursor:pointer;font-family:var(--font-body);transition:all var(--transition-fast)}.rewards-page .btn-cancel:hover{background:var(--color-slate-100)}.rewards-page .btn-confirm{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-md);background:var(--gradient-cta);color:#fff;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:all var(--transition-fast)}.rewards-page .btn-confirm:hover{transform:scale(1.03)}.rewards-page .btn-confirm:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 640px){.rewards-page .rewards-category-toggle{width:100%}}@media (max-width: 700px){.rewards-page{padding:var(--space-4)}.rewards-page .category-tabs{flex-wrap:wrap}.rewards-page .rewards-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3)}.rewards-page .reward-card{padding:var(--space-4)}.rewards-page .avatar-emoji{font-size:2.5rem}}.mood-calendar{border-radius:var(--radius-md, 12px);background:var(--color-surface, #fff);padding:1rem}.mood-calendar-title{text-align:center;font-weight:700;font-size:1rem;margin-bottom:.75rem;color:var(--color-text, #1e293b)}.mood-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.mood-calendar-header{text-align:center;font-size:.7rem;font-weight:700;color:var(--color-text-secondary, #64748b);padding:.25rem 0;text-transform:uppercase}.mood-calendar-empty{aspect-ratio:1}.mood-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px solid transparent;border-radius:var(--radius-sm, 8px);background:var(--color-surface-alt, #f8fafc);cursor:pointer;transition:all .15s;padding:0}.mood-calendar-day:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000001a}.mood-calendar-day--today{border-color:var(--color-primary, #3b82f6)!important;font-weight:700}.mood-calendar-day--has-mood{border-width:2px}.mood-calendar-emoji{font-size:1.1rem;line-height:1}.mood-calendar-date{font-size:.75rem;color:var(--color-text-secondary, #64748b)}@media (min-width: 480px){.mood-calendar-emoji{font-size:1.3rem}.mood-calendar-date{font-size:.85rem}}.sticker-picker{border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 12px);background:var(--color-surface, #fff);overflow:hidden}.sticker-tabs{display:flex;overflow-x:auto;gap:0;border-bottom:1px solid var(--color-border, #e2e8f0);background:var(--color-surface-alt, #f8fafc)}.sticker-tab{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border:none;background:none;cursor:pointer;font-size:.8rem;white-space:nowrap;border-bottom:2px solid transparent;transition:all .15s;color:var(--color-text-secondary, #64748b)}.sticker-tab:hover{background:#3b82f60d}.sticker-tab--active{border-bottom-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6);font-weight:600}.sticker-tab-label{display:none}@media (min-width: 640px){.sticker-tab-label{display:inline}}.sticker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:.25rem;padding:.75rem}.sticker-item{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:2px solid transparent;border-radius:var(--radius-sm, 8px);background:none;cursor:pointer;transition:all .15s}.sticker-item:hover:not(:disabled){background:#3b82f60f;transform:scale(1.15)}.sticker-item--selected{border-color:var(--color-primary, #3b82f6);background:#3b82f61a}.sticker-item:disabled{opacity:.3;cursor:not-allowed}.sticker-emoji{font-size:1.5rem}.sticker-selected-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-top:1px solid var(--color-border, #e2e8f0);background:var(--color-surface-alt, #f8fafc)}.sticker-count{font-size:.75rem;color:var(--color-text-secondary, #64748b);font-weight:600}.sticker-selected-preview{display:flex;gap:.15rem;flex-wrap:wrap}.sticker-preview-item{font-size:1.2rem}.badge-display{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.badge-card{display:flex;gap:.75rem;padding:1rem;border-radius:var(--radius-md, 12px);background:var(--color-surface, #fff);border:2px solid var(--color-border, #e2e8f0);transition:all .2s ease}.badge-card--earned{border-color:var(--color-success, #22c55e);background:linear-gradient(135deg,#22c55e0d,#22c55e05)}.badge-card--locked{opacity:.7}.badge-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.badge-icon-wrap{position:relative;flex-shrink:0}.badge-icon{font-size:2.2rem;line-height:1}.badge-card--locked .badge-icon{filter:grayscale(.8);opacity:.5}.badge-check{position:absolute;bottom:-4px;right:-6px;font-size:.9rem}.badge-info{flex:1;min-width:0}.badge-name{font-weight:700;font-size:.9rem;color:var(--color-text, #1e293b);margin-bottom:.15rem}.badge-desc{font-size:.78rem;color:var(--color-text-secondary, #64748b);line-height:1.4}.badge-progress-bar{margin-top:.5rem;height:6px;background:var(--color-border, #e2e8f0);border-radius:3px;overflow:hidden}.badge-progress-fill{height:100%;background:var(--color-primary, #3b82f6);border-radius:3px;transition:width .5s ease}.badge-earned-date{margin-top:.35rem;font-size:.72rem;color:var(--color-success, #22c55e);font-weight:600}.journal-page{max-width:1100px;margin:0 auto;padding:2rem 1rem 4rem;font-family:var(--font-primary, "Nunito", sans-serif)}.journal-hero{text-align:center;margin-bottom:1.5rem}.journal-hero h2{font-size:2rem;color:var(--primary, #6366f1);margin:0 0 .25rem}.journal-hero p{color:var(--text-secondary, #64748b);margin:0}.journal-date-nav,.planner-week-nav,.mood-month-nav{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.date-nav-btn{padding:.4rem .9rem;border-radius:.5rem;border:2px solid var(--border, #e2e8f0);background:var(--surface, #fff);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.date-nav-btn:hover{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1)}.date-nav-today{background:var(--primary, #6366f1);color:#fff;border-color:var(--primary, #6366f1)}.date-nav-today:hover{opacity:.9;color:#fff}.date-nav-current{display:flex;align-items:center;gap:.5rem}.date-input{padding:.35rem .5rem;border-radius:.4rem;border:2px solid var(--border, #e2e8f0);font-size:.85rem}.date-display{font-weight:700;font-size:1.05rem;color:var(--text-primary, #1e293b)}.week-label,.month-label{font-weight:700;font-size:1.05rem;color:var(--text-primary, #1e293b);min-width:200px;text-align:center}.journal-prompt-card{background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:1rem;padding:1.25rem 1.5rem;margin-bottom:1.25rem}.prompt-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.prompt-emoji{font-size:1.5rem}.prompt-label{font-weight:700;font-size:.9rem;color:var(--primary, #6366f1);text-transform:uppercase;letter-spacing:.05em}.prompt-text{font-size:1.1rem;color:var(--text-primary, #1e293b);margin:0 0 .75rem;font-style:italic;line-height:1.5}.prompt-use-btn{padding:.5rem 1.2rem;border-radius:999px;border:none;background:var(--primary, #6366f1);color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .15s,opacity .15s}.prompt-use-btn:hover{opacity:.9;transform:scale(1.03)}.new-entry-btn{width:100%;padding:1rem;border-radius:.75rem;border:2px dashed var(--primary, #6366f1);background:var(--surface, #fff);color:var(--primary, #6366f1);font-size:1rem;font-weight:600;cursor:pointer;margin-bottom:1.5rem;transition:all .2s}.new-entry-btn:hover{background:var(--primary-light, #eef2ff);transform:translateY(-1px)}.entry-form{border-radius:1rem;padding:1.5rem;border:2px solid var(--border, #e2e8f0);margin-bottom:1.5rem;transition:background-color .3s}.entry-form h3{margin:0 0 1rem;font-size:1.2rem}.entry-title-input{width:100%;padding:.75rem 1rem;border:2px solid var(--border, #e2e8f0);border-radius:.5rem;font-size:1rem;font-weight:600;margin-bottom:.75rem;box-sizing:border-box}.entry-title-input:focus{outline:none;border-color:var(--primary, #6366f1)}.entry-content-input{width:100%;padding:.75rem 1rem;border:2px solid var(--border, #e2e8f0);border-radius:.5rem;font-size:.95rem;line-height:1.6;resize:vertical;margin-bottom:.75rem;font-family:inherit;box-sizing:border-box}.entry-content-input:focus{outline:none;border-color:var(--primary, #6366f1)}.form-section{margin-bottom:1rem}.form-label{display:block;font-weight:700;font-size:.85rem;color:var(--text-secondary, #64748b);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.04em}.color-theme-row{display:flex;gap:.4rem;flex-wrap:wrap}.color-theme-btn{width:2.4rem;height:2.4rem;border-radius:50%;border:3px solid transparent;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.color-theme-btn:hover{transform:scale(1.15)}.color-theme-btn--selected{border-color:var(--primary, #6366f1);box-shadow:0 0 0 2px #6366f14d}.link-tasks-list{display:flex;flex-direction:column;gap:.4rem}.link-task-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:#00000008;border-radius:.5rem;font-size:.9rem}.link-task-cat{font-size:1.1rem}.link-task-done{text-decoration:line-through;opacity:.6}.link-btn{margin-left:auto;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--border, #e2e8f0);background:var(--surface, #fff);font-size:.8rem;font-weight:600;cursor:pointer}.link-btn--linked{background:var(--primary, #6366f1);color:#fff;border-color:var(--primary, #6366f1)}.form-actions{display:flex;gap:.75rem;margin-top:1rem}.save-btn{padding:.65rem 1.5rem;border-radius:999px;border:none;background:var(--primary, #6366f1);color:#fff;font-weight:700;font-size:.95rem;cursor:pointer;transition:opacity .15s,transform .15s}.save-btn:hover:not(:disabled){opacity:.9;transform:scale(1.02)}.save-btn:disabled{opacity:.45;cursor:not-allowed}.cancel-btn{padding:.65rem 1.5rem;border-radius:999px;border:2px solid var(--border, #e2e8f0);background:var(--surface, #fff);font-weight:700;font-size:.95rem;cursor:pointer}.entries-list{display:flex;flex-direction:column;gap:1rem}.entry-card{border-radius:1rem;padding:1.25rem 1.5rem;border:2px solid var(--border, #e2e8f0);transition:background-color .3s,transform .15s}.entry-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.entry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.entry-title{margin:0;font-size:1.1rem}.entry-actions{display:flex;gap:.4rem}.entry-actions button{background:none;border:none;font-size:1rem;cursor:pointer;opacity:.6;transition:opacity .15s;padding:.2rem}.entry-actions button:hover{opacity:1}.entry-mood{font-size:1.5rem;margin:.3rem 0}.entry-content{white-space:pre-wrap;line-height:1.6;color:var(--text-primary, #1e293b);margin:.5rem 0}.entry-stickers{display:flex;gap:.2rem;flex-wrap:wrap;margin-top:.5rem}.entry-sticker{font-size:1.4rem}.entry-prompt-used{font-size:.8rem;color:var(--text-secondary, #64748b);margin-top:.5rem;font-style:italic}.entry-linked-tasks{margin-top:.75rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.linked-label{font-size:.8rem;font-weight:700;color:var(--text-secondary, #64748b)}.linked-task-chip{font-size:.8rem;padding:.2rem .6rem;border-radius:999px;background:var(--primary-light, #eef2ff);color:var(--primary, #6366f1);font-weight:600}.linked-task-chip--done{background:#dcfce7;color:#16a34a}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary, #64748b)}.empty-emoji{font-size:3rem;display:block;margin-bottom:.5rem}.empty-hint{font-size:.85rem;opacity:.7}.planner-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.planner-day{background:var(--surface, #fff);border:2px solid var(--border, #e2e8f0);border-radius:.75rem;padding:.5rem;min-height:180px;display:flex;flex-direction:column}.planner-day--today{border-color:var(--primary, #6366f1);background:var(--primary-light, #eef2ff)}.planner-day-header{display:flex;align-items:center;gap:.3rem;margin-bottom:.5rem;padding-bottom:.35rem;border-bottom:1px solid var(--border, #e2e8f0)}.planner-day-name{font-weight:700;font-size:.75rem;text-transform:uppercase;color:var(--text-secondary, #64748b)}.planner-day-date{font-weight:800;font-size:1rem;color:var(--text-primary, #1e293b)}.planner-journal-link{margin-left:auto;background:none;border:none;font-size:.9rem;cursor:pointer;opacity:.5;transition:opacity .15s;padding:0}.planner-journal-link:hover{opacity:1}.planner-tasks{flex:1;display:flex;flex-direction:column;gap:.3rem}.planner-task-card{display:flex;align-items:center;gap:.3rem;padding:.3rem .4rem;border-radius:.4rem;background:#00000008;border-left:3px solid #64748b;font-size:.8rem}.planner-task-card--done{opacity:.6}.planner-task-card--class .task-delete-btn{display:none}.task-check--class{cursor:default;font-size:1rem}.task-meta{display:block;font-size:.75rem;color:var(--text-secondary, #64748b);margin-top:.15rem}.task-check{background:none;border:none;font-size:.9rem;cursor:pointer;padding:0;line-height:1}.task-info{flex:1;min-width:0}.task-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.task-title--done{text-decoration:line-through}.task-time{display:block;font-size:.7rem;color:var(--text-secondary, #64748b)}.task-delete-btn{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--text-secondary, #64748b);opacity:0;transition:opacity .15s;padding:0}.planner-task-card:hover .task-delete-btn{opacity:.7}.task-delete-btn:hover{color:var(--color-red-500);opacity:1!important}.planner-add-btn{margin-top:auto;padding:.3rem;border-radius:.4rem;border:1px dashed var(--border, #e2e8f0);background:none;font-size:.8rem;font-weight:600;color:var(--text-secondary, #64748b);cursor:pointer;transition:all .15s}.planner-add-btn:hover{border-color:var(--primary, #6366f1);color:var(--primary, #6366f1);background:#6366f10d}.category-row{display:flex;gap:.4rem;flex-wrap:wrap}.category-btn{padding:.35rem .7rem;border-radius:999px;border:2px solid var(--border, #e2e8f0);background:var(--surface, #fff);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.category-btn:hover{border-color:var(--primary, #6366f1)}.category-btn--selected{background:var(--primary-light, #eef2ff);color:var(--primary, #6366f1)}.form-row{display:flex;gap:1rem}.time-input{padding:.4rem .5rem;border-radius:.4rem;border:2px solid var(--border, #e2e8f0);font-size:.85rem}.mood-tab{max-width:700px;margin:0 auto}.mood-calendar-section{margin-bottom:2rem}.mood-distribution{padding:1.5rem;border-radius:1rem;background:var(--surface, #fff);border:2px solid var(--border, #e2e8f0)}.mood-distribution h4{margin:0 0 1rem;font-size:1rem}.mood-bars{display:flex;flex-direction:column;gap:.5rem}.mood-bar-row{display:flex;align-items:center;gap:.5rem}.mood-bar-label{width:120px;font-size:.85rem;font-weight:600;text-transform:capitalize}.mood-bar-track{flex:1;height:20px;background:var(--background, #f8fafc);border-radius:999px;overflow:hidden}.mood-bar-fill{height:100%;background:linear-gradient(90deg,#6366f1,#a78bfa);border-radius:999px;transition:width .5s ease;min-width:4px}.mood-bar-count{font-size:.8rem;font-weight:700;color:var(--text-secondary, #64748b);width:30px;text-align:right}.badges-tab{max-width:700px;margin:0 auto}.stats-summary{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-bottom:1.5rem}.stat-pill{padding:.4rem 1rem;border-radius:999px;background:var(--primary-light, #eef2ff);color:var(--primary, #6366f1);font-weight:700;font-size:.85rem}@media (max-width: 900px){.planner-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 600px){.journal-page{padding:1rem .5rem 3rem}.journal-hero h2{font-size:1.4rem}.planner-grid{grid-template-columns:1fr 1fr}.planner-day{min-height:140px}.date-display{display:none}}.english-root-page{max-width:1100px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-md)}.english-root-page .english-hero{text-align:center;margin-bottom:var(--spacing-2xl)}.english-root-page .english-hero h2{font-size:var(--font-2xl, 2rem);color:var(--primary-color);margin-bottom:var(--spacing-xs)}.english-root-page .english-hero p{color:var(--text-secondary);font-size:var(--font-md, 1rem)}@media (max-width: 768px){.english-root-page .english-hero h2{font-size:var(--font-xl, 1.6rem)}}@media (max-width: 480px){.english-root-page{padding:var(--spacing-md) var(--spacing-sm)}}.fun-zone-page{min-height:100vh;padding:var(--space-4);background:var(--bg-page)}.fun-zone-header{text-align:center;padding:var(--space-8) var(--space-4);margin-bottom:var(--space-6)}.fun-zone-header__content{max-width:600px;margin:0 auto}.fun-zone-header__title{display:flex;align-items:center;justify-content:center;gap:var(--space-3);font-family:var(--font-heading);font-size:var(--text-4xl);font-weight:700;color:var(--color-slate-900);margin:0 0 var(--space-2) 0}.fun-zone-header__icon{font-size:2.5rem}.fun-zone-header__subtitle{font-size:var(--text-xl);color:var(--color-slate-600);margin:0}.fun-zone-filters{display:flex;justify-content:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-8);padding:0 var(--space-4)}.fun-zone-filter{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:2px solid var(--color-slate-200);border-radius:var(--radius-full);background:#fff;font-size:var(--text-base);font-weight:500;color:var(--color-slate-600);cursor:pointer;transition:all var(--transition-base)}.fun-zone-filter:hover{border-color:var(--color-blue-300);background:var(--color-blue-50)}.fun-zone-filter--active{border-color:var(--color-blue-500);background:var(--color-blue-100);color:var(--color-blue-700)}.fun-zone-filter__icon{font-size:1.25rem}.fun-zone-games{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-6);max-width:1200px;margin:10px auto;padding:0 var(--space-2)}.game-card{position:relative;display:flex;flex-direction:column;padding:var(--space-6);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);text-decoration:none;color:inherit;transition:all var(--transition-base);overflow:hidden}.game-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.game-card--disabled{pointer-events:none}.game-card__icon{font-size:4rem;margin-bottom:var(--space-4);text-align:center}.game-card__title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--color-slate-900);margin:0 0 var(--space-2) 0}.game-card__description{font-size:var(--text-base);color:var(--color-slate-600);margin:0 0 var(--space-4) 0;line-height:1.5}.game-card__meta{display:flex;gap:var(--space-4);margin-bottom:var(--space-4)}.game-card__age,.game-card__levels{font-size:var(--text-sm);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-slate-100);color:var(--color-slate-600)}.game-card__progress{display:flex;align-items:center;gap:var(--space-3);margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-slate-100)}.game-card__progress-bar{flex:1;height:8px;background:var(--color-slate-100);border-radius:var(--radius-full);overflow:hidden}.game-card__progress-fill{height:100%;background:linear-gradient(90deg,var(--color-blue-400),var(--color-blue-600));border-radius:var(--radius-full);transition:width .3s ease}.game-card__progress-text{font-size:var(--text-sm);font-weight:600;color:var(--color-slate-600)}.game-card__badge{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:var(--radius-full);width:fit-content}.game-card__badge-icon{font-size:1.25rem}.game-card__badge-name{font-size:var(--text-sm);font-weight:600;color:var(--color-orange-700)}.game-card__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffffe6;font-size:var(--text-xl);font-weight:700;color:var(--color-slate-500)}.fun-zone-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16)}.fun-zone-loading__spinner{font-size:4rem;animation:spin 2s linear infinite}.fun-zone-loading p{margin-top:var(--space-4);font-size:var(--text-lg);color:var(--color-slate-600)}.fun-zone-empty{grid-column:1/-1;text-align:center;padding:var(--space-16)}.fun-zone-empty p{font-size:var(--text-lg);color:var(--color-slate-600);margin:0 0 var(--space-2) 0}.fun-zone-footer{text-align:center;margin-top:var(--space-10);padding-bottom:var(--space-8)}.fun-zone-back{font-size:var(--text-lg);color:var(--color-slate-600);text-decoration:none;padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);transition:all var(--transition-base)}.fun-zone-back:hover{background:var(--color-slate-100);color:var(--color-slate-900)}@media (max-width: 640px){.fun-zone-header__title{font-size:var(--text-3xl)}.fun-zone-filters{gap:var(--space-2)}.fun-zone-filter{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.fun-zone-games{grid-template-columns:1fr;gap:var(--space-4)}.game-card{padding:var(--space-4)}.game-card__icon{font-size:3rem}}.pattern-detective-page{min-height:100vh;padding:var(--space-4);background:var(--bg-page-secondary)}.pattern-detective-content{max-width:800px;margin:0 auto;padding:var(--space-4)}.pattern-stats{display:flex;justify-content:center;gap:var(--space-6);margin-bottom:var(--space-8);padding:var(--space-4);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.pattern-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4)}.pattern-stat__icon{font-size:1.5rem}.pattern-stat__value{font-size:var(--text-2xl);font-weight:700;color:var(--color-slate-900)}.pattern-stat__label{font-size:var(--text-sm);color:var(--color-slate-500)}.pattern-display{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--space-8)}.pattern-sequence{display:flex;gap:var(--space-3);padding:var(--space-6);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:center}.pattern-item{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.pattern-emoji{font-size:2.5rem}.pattern-hint{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-yellow-100);border-radius:var(--radius-full)}.pattern-hint__icon{font-size:1.25rem}.pattern-hint__text{font-size:var(--text-base);font-weight:500;color:var(--color-yellow-800)}.pattern-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);max-width:500px;margin:0 auto var(--space-6)}.pattern-badges{margin-top:var(--space-8);padding:var(--space-6);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.pattern-badges h3{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-800);margin:0 0 var(--space-4) 0;text-align:center}.pattern-badges__list{display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.pattern-badge{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3);background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:var(--radius-lg)}.pattern-badge__icon{font-size:2rem}.pattern-badge__name{font-size:var(--text-sm);font-weight:600;color:var(--color-orange-700)}.pattern-detective-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh}.pattern-detective-loading__spinner{font-size:5rem;animation:bounce-rotate 1.5s ease-in-out infinite}@keyframes bounce-rotate{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(15deg)}}.pattern-detective-loading p{margin-top:var(--space-4);font-size:var(--text-xl);color:var(--color-slate-600)}.pattern-detective-error{text-align:center;padding:var(--space-8);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);max-width:400px;margin:var(--space-8) auto}.pattern-detective-error p{font-size:var(--text-lg);color:var(--color-red-600);margin:0 0 var(--space-4) 0}.pattern-detective-error button{padding:var(--space-3) var(--space-8);background:var(--color-blue-600);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.pattern-detective-error button:hover{background:var(--color-blue-700);transform:translateY(-2px)}@media (max-width: 640px){.pattern-detective-page{padding:var(--space-2)}.pattern-stats{gap:var(--space-3);padding:var(--space-3)}.pattern-stat__value{font-size:var(--text-xl)}.pattern-sequence{gap:var(--space-2);padding:var(--space-4)}.pattern-item{width:60px;height:60px}.pattern-emoji{font-size:2rem}.pattern-options{gap:var(--space-3)}.pattern-option{min-height:80px}}.shape-sorter-page{min-height:100vh;padding:var(--space-4);background:var(--bg-page-secondary)}.shape-sorter-content{max-width:600px;margin:0 auto;padding:1rem}.shape-stats{display:flex;justify-content:center;gap:1.5rem;margin:1rem 0;padding:.75rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.shape-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.shape-stat__icon{font-size:1.25rem}.shape-stat__value{font-size:1.5rem;font-weight:700;color:#1e293b}.shape-stat__label{font-size:.75rem;color:#64748b;text-transform:uppercase}.target-bucket{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem;margin:1.5rem 0;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:16px;border:3px dashed #f59e0b}.target-bucket__icon{font-size:3rem;animation:bounce 1s ease-in-out infinite}.target-bucket__instruction{font-size:1.25rem;font-weight:600;color:#92400e}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.shapes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1rem;background:#fff;border-radius:16px;box-shadow:0 4px 12px #0000001a}.shape-item{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#f8fafc;border:3px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .2s ease}.shape-item:hover:not(:disabled){transform:scale(1.05);border-color:#3b82f6;background:#eff6ff}.shape-item--selected{border-color:#3b82f6;background:#dbeafe;box-shadow:0 0 0 4px #3b82f64d;transform:scale(1.05)}.shape-item--correct{border-color:#22c55e;background:#dcfce7;animation:pulse-correct .5s ease}.shape-item--wrong{border-color:#ef4444;background:#fee2e2;animation:shake .5s ease}@keyframes pulse-correct{0%{transform:scale(1.05)}50%{transform:scale(1.15)}to{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.shape-emoji{font-size:2.5rem}.submit-button{width:100%;padding:1rem;margin-top:1.5rem;font-size:1.25rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #22c55e66}.submit-button:disabled{opacity:.5;cursor:not-allowed}.shape-badges{margin-top:2rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.shape-badges h3{margin:0 0 .75rem;font-size:1rem;color:#475569}.shape-badges__list{display:flex;gap:.75rem;flex-wrap:wrap}.shape-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:8px}.shape-badge__icon{font-size:1.25rem}.shape-badge__name{font-size:.875rem;font-weight:600;color:#92400e}.shape-sorter-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:1rem}.shape-sorter-loading__spinner{font-size:4rem;animation:spin 1s linear infinite}.shape-sorter-loading p{font-size:1.125rem;color:#64748b}@media (max-width: 480px){.shapes-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.shape-emoji{font-size:2rem}.target-bucket{flex-direction:column;gap:.5rem}.target-bucket__icon{font-size:2.5rem}.target-bucket__instruction{font-size:1rem;text-align:center}}.number-ninja-page{min-height:100vh;padding:var(--space-4);background:var(--bg-page-secondary)}.number-ninja-page .number-ninja-content{max-width:600px;margin:0 auto;padding:1rem}.number-ninja-page .ninja-stats{display:flex;justify-content:center;gap:1.5rem;margin:1rem 0;padding:.75rem;background:var(--bg-card);border:1px solid var(--color-slate-200);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.number-ninja-page .ninja-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.number-ninja-page .ninja-stat__icon{font-size:1.25rem}.number-ninja-page .ninja-stat__value{font-size:1.5rem;font-weight:700;color:var(--color-amber-600)}.number-ninja-page .ninja-stat__label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.number-ninja-page .equation-display{margin:2rem 0;padding:2rem;background:var(--bg-card);border-radius:20px;border:2px solid var(--color-amber-100)}.number-ninja-page .equation-box{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.number-ninja-page .equation-num{font-size:3rem;font-weight:700;color:var(--color-primary);min-width:60px;text-align:center}.number-ninja-page .equation-op{font-size:2.5rem;font-weight:700;color:var(--color-amber-600)}.number-ninja-page .equation-eq{font-size:2.5rem;font-weight:700;color:var(--color-slate-400)}.number-ninja-page .equation-answer{font-size:3rem;font-weight:700;color:var(--color-amber-600);background:var(--color-amber-50);padding:.5rem 1.5rem;border-radius:12px;border:2px dashed var(--color-amber-500);animation:pulse-question 1s ease-in-out infinite}.number-ninja-page .equation-hint{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;padding:.5rem;background:var(--color-blue-50);border-radius:8px}.number-ninja-page .hint-icon{font-size:1rem}.number-ninja-page .hint-text{font-size:.875rem;color:var(--color-blue-600)}.number-ninja-page .ninja-options{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:1rem}.number-ninja-page .ninja-options button{font-size:1.5rem!important;padding:1.25rem!important;background:var(--bg-card)!important;border:2px solid var(--color-slate-200)!important;color:var(--color-primary)!important}.number-ninja-page .ninja-options button:hover:not(:disabled){background:var(--color-blue-50)!important;border-color:var(--color-amber-500)!important;transform:scale(1.05)}.number-ninja-page .ninja-badges{margin-top:2rem;padding:1rem;background:var(--bg-card);border:1px solid var(--color-slate-200);border-radius:12px}.number-ninja-page .ninja-badges h3{margin:0 0 .75rem;font-size:1rem;color:var(--text-secondary)}.number-ninja-page .ninja-badges__list{display:flex;gap:.75rem;flex-wrap:wrap}.number-ninja-page .ninja-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:linear-gradient(135deg,var(--color-amber-50) 0%,var(--color-yellow-50) 100%);border-radius:8px;border:1px solid var(--color-amber-100)}.number-ninja-page .ninja-badge__icon{font-size:1.25rem}.number-ninja-page .ninja-badge__name{font-size:.875rem;font-weight:600;color:var(--color-amber-600)}.number-ninja-page .number-ninja-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:1rem}.number-ninja-page .number-ninja-loading p{font-size:1.125rem;color:var(--text-secondary)}.number-ninja-page .number-ninja-loading__spinner{font-size:4rem;animation:ninja-spin .5s ease-in-out infinite alternate}.number-ninja-page .game-header{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6)}.number-ninja-page .game-header__title{color:var(--color-primary)}.number-ninja-page .game-header__progress-text{color:var(--text-secondary)}@media (max-width: 480px){.number-ninja-page .equation-num{font-size:2.5rem;min-width:50px}.number-ninja-page .equation-op,.number-ninja-page .equation-eq{font-size:2rem}.number-ninja-page .equation-answer{font-size:2.5rem;padding:.5rem 1rem}.number-ninja-page .ninja-options button{font-size:1.25rem!important;padding:1rem!important}}@keyframes pulse-question{0%,to{opacity:1}50%{opacity:.6}}@keyframes ninja-spin{0%{transform:translate(-10px) rotate(-5deg)}to{transform:translate(10px) rotate(5deg)}}.rush-hours-page{min-height:100vh;padding:var(--space-4);background:var(--bg-page-secondary)}.rush-hours-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;gap:1rem}.rush-hours-loading .rush-hours-loading__spinner{font-size:3rem;animation:rush-hours-pulse 1s ease-in-out infinite}.rush-hours-loading p{color:var(--text-secondary)}@keyframes rush-hours-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.rush-hours-retry{margin-top:1rem;padding:.5rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600}.rush-hours-content{max-width:420px;margin:0 auto;padding:1rem}.rush-hours-stats{display:flex;justify-content:center;gap:1.5rem;margin:1rem 0;padding:.5rem;font-size:.95rem;color:var(--text-secondary)}.rush-hours-stats .rush-hours-stat{font-weight:600;color:var(--text-primary)}.rush-hours-board-wrapper{margin:1rem 0;padding:.5rem;background:var(--bg-card);border-radius:12px;border:2px solid var(--color-slate-200);box-shadow:0 2px 8px #0000000f}.rush-hours-board{display:grid;gap:2px;aspect-ratio:7/6;max-width:100%;margin:0 auto;background:var(--color-slate-200);border-radius:6px;overflow:hidden}.rush-hours-cell{min-height:0;min-width:0;min-height:44px;border:none;padding:0;background:var(--bg-page-secondary);cursor:pointer;transition:box-shadow .15s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;position:relative}.rush-hours-cell:focus{outline:2px solid var(--color-primary);outline-offset:1px}.rush-hours-cell:focus:not(:focus-visible){outline:none}.rush-hours-cell:active{transform:none}.rush-hours-cell:hover:not(.rush-hours-cell--vehicle):not(.rush-hours-cell--valid-move){background:var(--color-slate-100)}.rush-hours-cell.rush-hours-cell--vehicle{border-radius:6px;box-shadow:0 1px 3px #00000026;border:2px solid rgba(0,0,0,.15)}.rush-hours-cell.rush-hours-cell--vehicle .rush-hours-cell__icon{font-size:clamp(.85rem,3.5vw,1.25rem);line-height:1}.rush-hours-cell.rush-hours-cell--vehicle:hover{filter:brightness(1.1)}.rush-hours-cell.rush-hours-cell--head-h{border-radius:6px 0 0 6px;border-right:none}.rush-hours-cell.rush-hours-cell--tail-h{border-radius:0 6px 6px 0;border-left:none}.rush-hours-cell.rush-hours-cell--mid-h{border-radius:0;border-left:none;border-right:none}.rush-hours-cell.rush-hours-cell--head-v{border-radius:6px 6px 0 0;border-bottom:none}.rush-hours-cell.rush-hours-cell--tail-v{border-radius:0 0 6px 6px;border-top:none}.rush-hours-cell.rush-hours-cell--mid-v{border-radius:0;border-top:none;border-bottom:none}.rush-hours-cell.rush-hours-cell--selected{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 5px var(--color-primary);z-index:1}.rush-hours-cell.rush-hours-cell--valid-move{background:var(--color-green-100);border:2px dashed var(--color-green-600);color:var(--color-green-700)}.rush-hours-cell.rush-hours-cell--exit{background:var(--color-slate-100);cursor:default;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--text-secondary)}.rush-hours-cell.rush-hours-cell--exit-open{background:var(--color-green-100);color:var(--color-green-700)}.rush-hours-instructions{margin-top:1rem;font-size:.9rem;color:var(--text-secondary);text-align:center;line-height:1.4}.guess-4-numbers-page{min-height:100vh;padding:var(--space-4);background:var(--bg-page-secondary)}.guess-4-numbers-content{max-width:600px;margin:0 auto;padding:var(--space-4)}.guess-4-numbers-loading{text-align:center;color:var(--text-secondary);padding:var(--space-8)}.guess-4-numbers-subtitle{text-align:center;color:var(--color-slate-600);font-size:var(--text-sm);margin-bottom:var(--space-4)}.guess-4-numbers-stats{display:flex;justify-content:center;gap:var(--space-6);margin-bottom:var(--space-6);padding:var(--space-4);background:var(--bg-card);border:1px solid var(--color-slate-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.guess-4-numbers-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.guess-4-numbers-stat__value{font-size:1.5rem;font-weight:700;color:var(--color-slate-900)}.guess-4-numbers-stat__label{font-size:var(--text-sm);color:var(--color-slate-500);text-transform:uppercase}.guess-4-numbers-digit-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-3);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.guess-4-numbers-digit{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 var(--space-1);font-weight:600;font-size:var(--text-base);color:var(--color-slate-700);border-radius:var(--radius-md);background:var(--color-slate-100)}.guess-4-numbers-digit--ruled-out{color:var(--color-red-600);text-decoration:line-through;background:var(--color-red-100)}.guess-4-numbers-history{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6);max-height:320px;overflow-y:auto;padding:var(--space-2)}.guess-4-numbers-row{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:nowrap}.guess-4-numbers-cell{display:flex;align-items:center;justify-content:center;width:56px;height:56px;font-weight:700;font-size:1.5rem;border-radius:var(--radius-lg);color:var(--color-slate-900);box-shadow:var(--shadow-sm)}.guess-4-numbers-cell--green{background:var(--color-green-500);color:#fff}.guess-4-numbers-cell--yellow{background:var(--color-amber-500);color:#fff}.guess-4-numbers-cell--red{background:var(--color-red-500);color:#fff}.guess-4-numbers-input-area{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200)}.guess-4-numbers-input{width:100%;max-width:200px;padding:var(--space-3) var(--space-4);font-size:1.5rem;font-weight:600;text-align:center;letter-spacing:.25em;border:2px solid var(--color-slate-300);border-radius:var(--radius-lg);background:var(--color-white);color:var(--color-slate-900);transition:border-color .2s}.guess-4-numbers-input::placeholder{color:var(--color-slate-400)}.guess-4-numbers-input:focus{outline:none;border-color:var(--color-blue-500)}.guess-4-numbers-input:disabled{background:var(--color-slate-100);cursor:not-allowed}.guess-4-numbers-results{padding:var(--space-6);background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);border:1px solid var(--color-slate-200);text-align:center}.guess-4-numbers-results__message{font-size:var(--text-lg);color:var(--color-slate-800);margin-bottom:var(--space-6)}.guess-4-numbers-results__message strong{color:var(--color-green-600)}.guess-4-numbers-results__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4)}.guess-4-numbers-results__link{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);font-size:var(--text-base);font-weight:600;color:var(--color-slate-700);background:var(--color-slate-100);border:2px solid var(--color-slate-300);border-radius:var(--radius-lg);text-decoration:none;transition:background .2s,border-color .2s}.guess-4-numbers-results__link:hover{background:var(--color-slate-200);border-color:var(--color-slate-400);color:var(--color-slate-900)}.parent-dashboard-page{min-height:100vh;padding:var(--space-4);background:var(--bg-page)}.parent-dashboard-header{max-width:900px;margin:0 auto var(--space-8);text-align:center}.parent-dashboard-back{position:absolute;left:var(--space-4);top:var(--space-4);padding:var(--space-2) var(--space-4);background:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-base);color:var(--color-slate-600);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.parent-dashboard-back:hover{background:var(--color-slate-100);color:var(--color-slate-900)}.parent-dashboard-title{display:flex;align-items:center;justify-content:center;gap:var(--space-3);font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;color:var(--color-slate-900);margin:var(--space-8) 0 var(--space-2) 0}.parent-dashboard-title__icon{font-size:2rem}.parent-dashboard-subtitle{font-size:var(--text-lg);color:var(--color-slate-600);margin:0}.parent-dashboard-child-selector{display:flex;align-items:center;justify-content:center;gap:var(--space-3);max-width:900px;margin:0 auto var(--space-6);padding:var(--space-4);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.parent-dashboard-child-selector label{font-size:var(--text-base);font-weight:500;color:var(--color-slate-700)}.parent-dashboard-child-select{padding:var(--space-2) var(--space-4);font-size:var(--text-base);border:1px solid var(--color-slate-300);border-radius:var(--radius-lg);background:#fff;min-width:200px;cursor:pointer}.parent-dashboard-child-select:focus{outline:none;border-color:var(--color-blue-500);box-shadow:0 0 0 3px #3b82f61a}.parent-dashboard-no-children{max-width:600px;margin:0 auto var(--space-6);padding:var(--space-6);background:var(--color-amber-50);border:1px solid var(--color-amber-200);border-radius:var(--radius-xl);text-align:center}.parent-dashboard-no-children p{margin:0;font-size:var(--text-base);color:var(--color-amber-800)}.parent-dashboard-no-children a{color:var(--color-blue-600);font-weight:500}.parent-dashboard-no-children a:hover{text-decoration:underline}.parent-dashboard-overview{max-width:900px;margin:0 auto var(--space-8);padding:var(--space-6);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.parent-dashboard-overview h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-800);margin:0 0 var(--space-6) 0;text-align:center}.overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4)}.overview-stat{display:flex;flex-direction:column;align-items:center;padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-lg)}.overview-stat--highlight{background:linear-gradient(135deg,var(--color-blue-50) 0%,var(--color-blue-100) 100%)}.overview-stat__value{font-size:var(--text-3xl);font-weight:700;color:var(--color-slate-900)}.overview-stat__label{font-size:var(--text-sm);color:var(--color-slate-500);margin-top:var(--space-1)}.parent-dashboard-games{max-width:900px;margin:0 auto var(--space-8)}.parent-dashboard-games h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-800);margin:0 0 var(--space-6) 0;text-align:center}.game-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.game-stats-card{padding:var(--space-5);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.game-stats-card__header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-slate-100)}.game-stats-card__icon{font-size:2rem}.game-stats-card__title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-900);margin:0}.game-stats-card__stats{display:flex;flex-direction:column;gap:var(--space-3)}.game-stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2);background:var(--color-slate-50);border-radius:var(--radius-md)}.game-stat-row--highlight{background:linear-gradient(135deg,var(--color-green-50) 0%,var(--color-green-100) 100%)}.game-stat-row__label{font-size:var(--text-sm);color:var(--color-slate-600)}.game-stat-row__value{font-size:var(--text-base);font-weight:600;color:var(--color-slate-900)}.game-stats-card__progress{margin-top:var(--space-4)}.accuracy-bar{height:8px;background:var(--color-slate-200);border-radius:var(--radius-full);overflow:hidden}.accuracy-bar__fill{height:100%;background:linear-gradient(90deg,var(--color-green-400),var(--color-green-600));border-radius:var(--radius-full);transition:width .5s ease}.game-stats-card__badges{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-slate-100)}.badges-label{font-size:var(--text-sm);color:var(--color-slate-500)}.badge-mini{font-size:1.5rem;cursor:help}.no-games{text-align:center;padding:var(--space-8);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.no-games p{font-size:var(--text-lg);color:var(--color-slate-600);margin:0 0 var(--space-4) 0}.no-games-link{display:inline-block;padding:var(--space-3) var(--space-6);background:var(--color-blue-600);color:#fff;text-decoration:none;border-radius:var(--radius-lg);font-weight:600;transition:all var(--transition-base)}.no-games-link:hover{background:var(--color-blue-700);transform:translateY(-2px)}.parent-dashboard-tips{max-width:900px;margin:0 auto var(--space-8);padding:var(--space-6);background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:var(--radius-xl)}.parent-dashboard-tips h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--color-orange-800);margin:0 0 var(--space-4) 0}.tips-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.tips-list li{position:relative;padding-left:var(--space-6);font-size:var(--text-base);color:var(--color-orange-900);line-height:1.6}.tips-list li:before{content:"✓";position:absolute;left:0;color:var(--color-orange-600);font-weight:700}.tips-list strong{color:var(--color-orange-800)}.parent-dashboard-footer{max-width:900px;margin:0 auto;text-align:center;padding-bottom:var(--space-8)}.parent-dashboard-link{font-size:var(--text-lg);color:var(--color-blue-600);text-decoration:none;font-weight:500;transition:all var(--transition-base)}.parent-dashboard-link:hover{color:var(--color-blue-800);text-decoration:underline}.parent-dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh}.parent-dashboard-loading__spinner{font-size:4rem;animation:spin 2s linear infinite}.parent-dashboard-loading p{margin-top:var(--space-4);font-size:var(--text-lg);color:var(--color-slate-600)}.parent-dashboard-error{text-align:center;padding:var(--space-8);background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);max-width:400px;margin:var(--space-8) auto}.parent-dashboard-error p{font-size:var(--text-lg);color:var(--color-red-600);margin:0 0 var(--space-4) 0}.parent-dashboard-error button{padding:var(--space-3) var(--space-6);background:var(--color-blue-600);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;cursor:pointer}@media (max-width: 640px){.parent-dashboard-back{position:relative;left:0;top:0;margin-bottom:var(--space-4)}.parent-dashboard-title{font-size:var(--text-2xl);margin-top:var(--space-4)}.overview-stats{grid-template-columns:repeat(2,1fr)}.overview-stat__value{font-size:var(--text-2xl)}.game-stats-grid{grid-template-columns:1fr}}.parent-dashboard-phonics-section.phonics-page{max-width:none;margin:0;padding:0}.teacher-groups-page{max-width:1400px;margin:0 auto;padding:2rem}.teacher-groups-page .page-header{margin-bottom:2rem}.teacher-groups-page .page-header h1{margin:0 0 .5rem;font-size:2rem;color:var(--color-heading, #1a1a1a)}.teacher-groups-page .page-header p{margin:0 0 .5rem;color:var(--color-muted)}.teacher-groups-page .back-link{color:var(--color-primary);text-decoration:none}.teacher-groups-page .success-message{background:#efe;border:1px solid #8c8;color:#080;padding:1rem;border-radius:8px;margin-bottom:1rem}.teacher-groups-page .pending-alert{background:linear-gradient(135deg,#fff3cd,#ffeeb8);border:1px solid #ffcc00;border-radius:12px;padding:1rem;margin-bottom:1.5rem}.teacher-groups-page .pending-alert h3{margin:0 0 .75rem;font-size:1rem;color:#856404}.teacher-groups-page .pending-list{display:flex;flex-direction:column;gap:.5rem}.teacher-groups-page .pending-item{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:.75rem 1rem;border-radius:8px;gap:1rem;flex-wrap:wrap}.teacher-groups-page .pending-actions{display:flex;gap:.5rem}.teacher-groups-page .btn-approve{background:var(--color-green-600);color:#fff;border:none;padding:.4rem 1rem;border-radius:6px;cursor:pointer;font-weight:500}.teacher-groups-page .btn-reject{background:var(--color-red-600);color:#fff;border:none;padding:.4rem 1rem;border-radius:6px;cursor:pointer;font-weight:500}.teacher-groups-page .two-panel-layout{display:grid;grid-template-columns:320px 1fr;gap:1.5rem;min-height:600px}.teacher-groups-page .left-panel,.teacher-groups-page .right-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:1.5rem;border:1px solid var(--color-slate-100)}.teacher-groups-page .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-slate-100)}.teacher-groups-page .panel-header h2{margin:0;font-size:1.25rem;color:var(--color-heading, #333)}.teacher-groups-page .btn-add{background:var(--color-primary, #4f46e5);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-weight:500;transition:background .2s}.teacher-groups-page .btn-add:hover{background:var(--color-primary-dark, #4338ca)}.teacher-groups-page .btn-primary{width:100%;background:var(--color-primary, #4f46e5);color:#fff;border:none;padding:.75rem;border-radius:8px;cursor:pointer;font-weight:600;margin-top:.5rem}.teacher-groups-page .btn-back{background:transparent;border:1px solid var(--color-slate-200);padding:.5rem 1rem;border-radius:8px;cursor:pointer;margin-bottom:1rem;color:var(--color-slate-500)}.teacher-groups-page .btn-back:hover{background:var(--color-slate-50)}.teacher-groups-page .btn-add-small{background:var(--color-primary, #4f46e5);color:#fff;border:none;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer;white-space:nowrap}.teacher-groups-page .btn-remove{background:transparent;border:1px solid var(--color-red-600);color:var(--color-red-600);padding:.35rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer}.teacher-groups-page .btn-remove:hover{background:var(--color-red-600);color:#fff}.teacher-groups-page .create-form{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--color-slate-50);border-radius:8px;margin-bottom:1rem}.teacher-groups-page .create-form input,.teacher-groups-page .create-form select,.teacher-groups-page .create-form textarea{padding:.75rem;border:1px solid var(--color-slate-200);border-radius:8px;font-size:1rem;width:100%;box-sizing:border-box}.teacher-groups-page .form-row{display:flex;gap:.75rem}.teacher-groups-page .form-row>*{flex:1}.teacher-groups-page .loading,.teacher-groups-page .empty{color:var(--color-slate-400);font-style:italic;text-align:center;padding:2rem 1rem}.teacher-groups-page .empty-state{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--color-slate-400)}.teacher-groups-page .org-list{display:flex;flex-direction:column;gap:.5rem}.teacher-groups-page .org-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-slate-50);border-radius:8px;cursor:pointer;transition:all .2s}.teacher-groups-page .org-item:hover{background:var(--color-slate-100)}.teacher-groups-page .org-item.active{background:var(--color-primary, #4f46e5);color:#fff}.teacher-groups-page .org-name{font-weight:500}.teacher-groups-page .org-count{font-size:.85rem;opacity:.7}.teacher-groups-page .groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.teacher-groups-page .group-card{background:var(--color-slate-50);border:1px solid var(--color-slate-100);border-radius:12px;padding:1rem;cursor:pointer;transition:all .2s}.teacher-groups-page .group-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:var(--color-primary, #4f46e5)}.teacher-groups-page .group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.teacher-groups-page .group-name{font-weight:600;font-size:1.1rem}.teacher-groups-page .badge{background:var(--color-primary, #4f46e5);color:#fff;padding:.2rem .6rem;border-radius:12px;font-size:.75rem}.teacher-groups-page .group-desc{color:var(--color-slate-500);font-size:.9rem;margin:0 0 .75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.teacher-groups-page .group-stats{display:flex;gap:1rem;font-size:.85rem;color:var(--color-slate-400)}.teacher-groups-page .group-detail-view{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000d;border:1px solid var(--color-slate-100)}.teacher-groups-page .group-detail-header{margin-bottom:1.5rem}.teacher-groups-page .group-detail-header h2{margin:0 0 .25rem;font-size:1.5rem}.teacher-groups-page .group-detail-header p{margin:0;color:var(--color-slate-500)}.teacher-groups-page .tab-content{min-height:300px}.teacher-groups-page .tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.teacher-groups-page .tab-header h3{margin:0;font-size:1.1rem}.teacher-groups-page .add-section{background:var(--color-slate-50);border-radius:8px;padding:1rem;margin-bottom:1rem}.teacher-groups-page .add-section input,.teacher-groups-page .add-section select{padding:.6rem;border:1px solid var(--color-slate-200);border-radius:6px;font-size:.95rem;width:100%;margin-bottom:.75rem;box-sizing:border-box}.teacher-groups-page .available-list{max-height:250px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.teacher-groups-page .available-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border-radius:6px;border:1px solid var(--color-slate-100)}.teacher-groups-page .content-info{display:flex;flex-direction:column;gap:.2rem}.teacher-groups-page .content-title{font-weight:500}.teacher-groups-page .content-meta{font-size:.8rem;color:var(--color-slate-400)}.teacher-groups-page .members-list,.teacher-groups-page .assignments-list{display:flex;flex-direction:column;gap:.5rem}.teacher-groups-page .member-item,.teacher-groups-page .assignment-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-slate-50);border-radius:8px}.teacher-groups-page .member-info,.teacher-groups-page .assignment-info{display:flex;flex-direction:column;gap:.2rem}.teacher-groups-page .member-name,.teacher-groups-page .assignment-title{font-weight:500}.teacher-groups-page .member-role,.teacher-groups-page .assignment-meta{font-size:.85rem;color:var(--color-slate-400)}.teacher-groups-page .attendance-tab .attendance-subnav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.teacher-groups-page .attendance-tab .attendance-subnav button{padding:.5rem 1rem;border-radius:8px;border:1px solid var(--color-slate-200);background:#fff;cursor:pointer}.teacher-groups-page .attendance-tab .attendance-subnav button.active{background:var(--color-primary, #2563eb);color:#fff;border-color:var(--color-primary)}.teacher-groups-page .attendance-row.attendance-row{display:grid;grid-template-columns:1fr auto;gap:1rem}.teacher-groups-page .attendance-status-select{min-width:180px;padding:.4rem .5rem;border-radius:6px}.teacher-groups-page .attendance-history-list,.teacher-groups-page .absences-list,.teacher-groups-page .pending-approval-list{display:flex;flex-direction:column;gap:.5rem}.teacher-groups-page .attendance-history-item,.teacher-groups-page .attendance-absence-item{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.75rem 1rem;background:var(--color-slate-50);border-radius:8px}.teacher-groups-page .attendance-absence-item .by-status,.teacher-groups-page .attendance-history-item .by-status{font-size:.85rem;color:var(--color-slate-500)}.teacher-groups-page .pending-approval-item{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem;padding:1rem;background:var(--color-slate-50);border-radius:8px}.teacher-groups-page .pending-approval-item .pending-actions{display:flex;gap:.5rem;flex-wrap:wrap}@media (max-width: 900px){.teacher-groups-page .two-panel-layout,.teacher-groups-page .groups-grid{grid-template-columns:1fr}}.worksheet-practice-page{max-width:900px;margin:0 auto;padding:24px 16px 60px;min-height:100vh}.worksheet-practice-header{text-align:center;margin-bottom:32px}.worksheet-practice-header h1{font-size:2rem;margin:8px 0 4px}.worksheet-practice-header p{color:#64748b;margin:0}.wp-back-btn{background:none;border:none;color:#2563eb;font-size:.95rem;cursor:pointer;padding:4px 0}.wp-back-btn:hover{text-decoration:underline}.wp-filters{display:flex;gap:12px;justify-content:center;margin-bottom:24px;flex-wrap:wrap}.wp-filters select{padding:8px 16px;border:1px solid #cbd5e1;border-radius:8px;font-size:.9rem;background:#fff}.wp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.wp-card{background:#fff;border-radius:16px;padding:24px;border:1px solid #e2e8f0;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;align-items:center;text-align:center}.wp-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.wp-card-icon{font-size:2.5rem;margin-bottom:12px}.wp-card-title{margin:0 0 8px;font-size:1.1rem;color:#1e293b}.wp-card-desc{color:#64748b;font-size:.85rem;margin:0 0 12px;line-height:1.4}.wp-card-meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:16px}.wp-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;background:#f1f5f9;color:#475569;text-transform:capitalize}.wp-badge.english{background:#8b5cf61a;color:#7c3aed}.wp-badge.maths{background:#2563eb1a;color:#2563eb}.wp-badge.easy{background:#22c55e1a;color:#16a34a}.wp-badge.medium{background:#f973161a;color:#ea580c}.wp-badge.hard{background:#ef44441a;color:var(--color-red-600)}.wp-badge.level{background:#06b6d41a;color:#0891b2}.wp-start-btn{width:100%;padding:10px;background:#2563eb;color:#fff;border:none;border-radius:10px;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s}.wp-start-btn:hover{background:#1d4ed8}.wp-loading,.wp-empty{text-align:center;padding:60px 20px;color:#64748b}.wp-empty-icon{font-size:3rem;margin-bottom:12px}.wp-empty h3{margin:0 0 4px;color:#1e293b}.wp-empty p{margin:0}.wp-error{background:#ef44441a;color:var(--color-red-600);padding:12px 16px;border-radius:10px;margin-bottom:16px;font-weight:500}.wp-progress-bar{height:4px;background:#e2e8f0;border-radius:2px;margin-bottom:16px;overflow:hidden}.wp-progress-fill{height:100%;background:#2563eb;border-radius:2px;transition:width .3s}.wp-test-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:12px}.wp-test-header h2{font-size:1.2rem;margin:0;flex:1;text-align:center}.wp-question-counter{font-size:.85rem;color:#64748b;white-space:nowrap}.wp-question-card{background:#fff;border-radius:16px;padding:32px;border:1px solid #e2e8f0;margin-bottom:24px}.wp-passage{background:#fefce8;border:1px solid #fde68a;border-radius:10px;padding:20px;margin-bottom:20px;line-height:1.7}.wp-passage h4{margin:0 0 8px;color:#92400e}.wp-passage p{margin:0;color:#451a03}.wp-question-text{font-size:1.15rem;line-height:1.5;margin:0 0 20px;color:#1e293b}.wp-options{display:flex;flex-direction:column;gap:10px}.wp-option{display:flex;align-items:center;gap:12px;padding:14px 18px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;font-size:.95rem;text-align:left;transition:all .15s;color:#334155}.wp-option:hover{border-color:#93c5fd;background:#eff6ff}.wp-option.selected{border-color:#2563eb;background:#eff6ff;color:#1e40af;font-weight:500}.wp-option-letter{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#f1f5f9;font-weight:700;font-size:.8rem;color:#475569;flex-shrink:0}.wp-option.selected .wp-option-letter{background:#2563eb;color:#fff}.wp-text-input{width:100%;padding:14px 18px;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;box-sizing:border-box;transition:border-color .2s}.wp-text-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.wp-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.wp-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:400px}.wp-dot{width:12px;height:12px;border-radius:50%;border:2px solid #cbd5e1;background:#fff;cursor:pointer;padding:0;transition:all .15s}.wp-dot.active{border-color:#2563eb;background:#2563eb;transform:scale(1.2)}.wp-dot.answered{background:#93c5fd;border-color:#60a5fa}.wp-btn{padding:10px 20px;border:none;border-radius:10px;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s;white-space:nowrap}.wp-btn:disabled{opacity:.5;cursor:not-allowed}.wp-btn-primary{background:#2563eb;color:#fff}.wp-btn-primary:hover:not(:disabled){background:#1d4ed8}.wp-btn-secondary{background:#f1f5f9;color:#475569}.wp-btn-secondary:hover:not(:disabled){background:#e2e8f0}.wp-btn-success{background:#16a34a;color:#fff}.wp-btn-success:hover:not(:disabled){background:#15803d}.wp-results{text-align:center;padding-top:20px}.wp-score-circle{width:140px;height:140px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 20px;border:6px solid}.wp-score-circle.excellent{border-color:#16a34a;background:#22c55e14}.wp-score-circle.good{border-color:#2563eb;background:#2563eb14}.wp-score-circle.fair{border-color:#ea580c;background:#f9731614}.wp-score-circle.needs-work{border-color:var(--color-red-600);background:#ef444414}.wp-score-value{font-size:2.2rem;font-weight:800;color:#1e293b}.wp-score-label{font-size:.9rem;color:#64748b}.wp-results-title{font-size:1.5rem;margin:0 0 4px}.wp-results-subtitle{color:#64748b;margin:0 0 28px}.wp-answers-review{text-align:left;margin-bottom:28px}.wp-answer-card{display:flex;gap:16px;padding:16px;border-radius:12px;margin-bottom:12px;border:1px solid}.wp-answer-card.correct{background:#22c55e0d;border-color:#22c55e33}.wp-answer-card.wrong{background:#ef44440d;border-color:#ef444433}.wp-answer-number{font-weight:700;color:#64748b;min-width:32px;padding-top:2px}.wp-answer-body{flex:1}.wp-answer-question{margin:0 0 8px;color:#1e293b;line-height:1.4}.wp-answer-details{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:4px}.wp-answer-badge{font-size:.8rem;padding:3px 10px;border-radius:6px;font-weight:500}.wp-answer-badge.correct{background:#22c55e1a;color:var(--color-green-600)}.wp-answer-badge.wrong{background:#ef44441a;color:var(--color-red-600)}.wp-answer-explanation{font-size:.85rem;color:#64748b;margin:6px 0 0;line-height:1.4}.wp-results-actions{display:flex;justify-content:center;gap:12px}@media (max-width: 640px){.wp-question-card{padding:20px}.wp-test-header h2{font-size:1rem}.wp-dots{max-width:200px}.wp-nav{flex-direction:column}.wp-grid{grid-template-columns:1fr}}.contact-page .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.contact-page .form-hint{font-size:var(--text-xs);color:var(--color-slate-400);margin-top:calc(-1 * var(--space-3))}.contact-page .form-textarea{resize:vertical;min-height:120px;font-family:var(--font-body)}.contact-page .char-counter{text-align:right;font-size:var(--text-xs);color:var(--color-slate-400);margin-top:var(--space-1)}.contact-page .char-warning{color:var(--color-orange-500, #f97316);font-weight:600}.contact-page .required{color:var(--color-red-500, #ef4444)}.contact-page .field-error{display:block;color:var(--color-red-500, #ef4444);font-size:var(--text-xs);margin-top:var(--space-1)}.contact-page .input-error{border-color:var(--color-red-500, #ef4444)!important}.contact-page .captcha-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.contact-page .contact-success-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-12) var(--space-8);max-width:500px;width:100%;text-align:center;box-shadow:var(--shadow-xl)}.contact-page .contact-success-card h2{color:var(--color-slate-900);margin-bottom:var(--space-3)}.contact-page .contact-success-card p{color:var(--color-slate-500);margin-bottom:var(--space-8);line-height:1.6}.contact-page .success-icon{font-size:3rem;margin-bottom:var(--space-4)}.contact-page .success-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}@media (max-width: 768px){.contact-page .form-row{grid-template-columns:1fr;gap:var(--space-5)}}.privacy-notice-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-6, 1.5rem);background:var(--color-slate-50, #f8fafc)}.privacy-notice-container{width:100%;max-width:720px;display:flex;flex-direction:column;align-items:center;gap:var(--space-6, 1.5rem)}.privacy-notice-card{background:var(--color-white, #fff);border-radius:var(--radius-lg, .5rem);box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .1));padding:var(--space-8, 2rem);width:100%}.privacy-notice-card h1{font-size:var(--text-2xl, 1.5rem);margin-bottom:var(--space-2)}.privacy-notice-card .version{color:var(--color-slate-500);font-size:var(--text-sm);margin-bottom:var(--space-6)}.privacy-notice-card section{margin-bottom:var(--space-6)}.privacy-notice-card section:last-of-type{margin-bottom:var(--space-4)}.privacy-notice-card h2{font-size:var(--text-lg);margin-bottom:var(--space-3)}.privacy-notice-card ul{margin:var(--space-2) 0 var(--space-4);padding-left:var(--space-6)}.privacy-notice-card li{margin-bottom:var(--space-2)}.privacy-notice-card .footer-links{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-slate-200);font-size:var(--text-sm)}.privacy-notice-card .footer-links a{color:var(--color-primary, #2563eb);text-decoration:none}.privacy-notice-card .footer-links a:hover{text-decoration:underline}.org-roster-panel{margin-top:var(--space-6, 1.5rem);padding-top:var(--space-4, 1rem);border-top:1px solid var(--color-slate-200, #e2e8f0)}.org-roster-panel .org-roster-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2, .5rem);margin-bottom:var(--space-3, .75rem)}.org-roster-panel .org-roster-header h3{margin:0;font-size:var(--text-lg, 1.125rem);font-weight:600;color:var(--color-slate-800, #1e293b)}.org-roster-panel .org-roster-actions{display:flex;gap:var(--space-2, .5rem);flex-wrap:wrap}.org-roster-panel .org-roster-btn-add,.org-roster-panel .org-roster-btn-cancel{padding:var(--space-2, .5rem) var(--space-3, .75rem);font-size:var(--text-sm, .875rem);border-radius:var(--radius-md, 6px);white-space:nowrap;cursor:pointer;border:1px solid transparent}.org-roster-panel .org-roster-btn-add{background:var(--color-accent, #3b82f6);border-color:var(--color-accent, #3b82f6);color:#fff}.org-roster-panel .org-roster-btn-cancel{background:var(--color-slate-100, #f1f5f9);border-color:var(--color-slate-300, #cbd5e1);color:var(--color-slate-700, #334155)}.org-roster-panel .org-roster-add-section{margin-bottom:var(--space-4, 1rem);padding:var(--space-4, 1rem);border:1px solid var(--color-slate-200, #e2e8f0);border-radius:var(--radius-md, 8px);background:var(--color-slate-50, #f8fafc)}.org-roster-panel .org-roster-add-section h4{margin:0 0 var(--space-3, .75rem) 0;font-size:var(--text-base, 1rem);font-weight:600}.org-roster-panel .org-roster-add-section .org-roster-hint,.org-roster-panel .org-roster-add-section .org-roster-empty{font-size:var(--text-sm, .875rem);color:var(--color-slate-600, #475569);margin-bottom:var(--space-3, .75rem)}.org-roster-panel .org-roster-add-section .org-roster-empty{margin-top:var(--space-2, .5rem)}.org-roster-panel .org-roster-form-row{margin-bottom:var(--space-2, .5rem)}.org-roster-panel .org-roster-form-row input,.org-roster-panel .org-roster-form-row select{width:100%;max-width:400px;padding:var(--space-2, .5rem) var(--space-3, .75rem);border:1px solid var(--color-slate-300, #cbd5e1);border-radius:var(--radius-md, 6px);font-size:var(--text-sm, .875rem)}.org-roster-panel .org-roster-form-row label{margin-right:var(--space-2, .5rem);font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-slate-700, #334155)}.org-roster-panel .org-roster-form-row .org-roster-form-hint{margin-left:var(--space-2, .5rem);font-size:var(--text-sm, .875rem);color:var(--color-slate-500, #64748b)}.org-roster-panel .org-roster-search{width:100%;max-width:400px;padding:var(--space-2, .5rem) var(--space-3, .75rem);border:1px solid var(--color-slate-300, #cbd5e1);border-radius:var(--radius-md, 6px);font-size:var(--text-sm, .875rem);margin-bottom:var(--space-3, .75rem)}.org-roster-panel .org-roster-available-list{display:flex;flex-direction:column;gap:var(--space-2, .5rem);max-height:200px;overflow-y:auto}.org-roster-panel .org-roster-available-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2, .5rem) var(--space-3, .75rem);background:var(--bg-card, #fff);border-radius:var(--radius-md, 6px);border:1px solid var(--color-slate-200, #e2e8f0);font-size:var(--text-sm, .875rem)}.org-roster-panel .org-roster-btn-add-small{padding:var(--space-1, .25rem) var(--space-2, .5rem);font-size:var(--text-sm, .875rem);border-radius:var(--radius-md, 6px);background:var(--color-accent, #3b82f6);color:#fff;border:1px solid var(--color-accent, #3b82f6);cursor:pointer;white-space:nowrap}.org-roster-panel .org-roster-btn-add-small:disabled{opacity:.6;cursor:not-allowed}.org-roster-panel .org-roster-staff-list{display:flex;flex-direction:column;gap:var(--space-2, .5rem)}.org-roster-panel .org-roster-staff-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2, .5rem) var(--space-3, .75rem);background:var(--color-slate-50, #f8fafc);border-radius:var(--radius-md, 6px);border:1px solid var(--color-slate-200, #e2e8f0)}.org-roster-panel .org-roster-staff-info{display:flex;flex-direction:column;gap:var(--space-1, .25rem)}.org-roster-panel .org-roster-staff-name{font-weight:500;color:var(--color-slate-800, #1e293b)}.org-roster-panel .org-roster-staff-role{font-size:var(--text-xs, .75rem);color:var(--color-slate-500, #64748b)}.org-roster-panel .org-roster-btn-remove{padding:var(--space-1, .25rem) var(--space-2, .5rem);font-size:var(--text-sm, .875rem);border-radius:var(--radius-md, 6px);background:var(--color-red-100, #fee2e2);border:1px solid var(--color-red-500, #ef4444);color:var(--color-red-700, #b91c1c);cursor:pointer;white-space:nowrap}.my-groups-page{max-width:1200px;margin:0 auto;padding:2rem}.my-groups-page .page-header{margin-bottom:2rem;text-align:center}.my-groups-page .page-header h1{margin:0 0 .5rem;font-size:2rem;color:var(--color-heading, #1a1a1a)}.my-groups-page .page-header p{margin:0 0 .75rem;color:var(--color-slate-500);font-size:1.1rem}.my-groups-page .back-link{color:var(--color-primary, #4f46e5);text-decoration:none;font-size:.9rem}.my-groups-page .child-selector{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;background:var(--color-slate-50);border-radius:12px}.my-groups-page .child-selector label{font-weight:500;color:var(--color-slate-600)}.my-groups-page .child-selector select{padding:.5rem 1rem;border:1px solid var(--color-slate-200);border-radius:8px;font-size:1rem;min-width:200px}.my-groups-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:var(--color-slate-400)}.my-groups-page .spinner{width:40px;height:40px;border:3px solid var(--color-slate-100);border-top-color:var(--color-primary, #4f46e5);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.my-groups-page .empty-state{text-align:center;padding:4rem 2rem;color:var(--color-slate-400)}.my-groups-page .empty-icon{font-size:4rem;margin-bottom:1rem}.my-groups-page .empty-state h3{margin:0 0 .5rem;color:var(--color-slate-600);font-size:1.5rem}.my-groups-page .empty-state p{margin:0;font-size:1rem}.my-groups-page .assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.my-groups-page .assignment-card{background:#fff;border:2px solid var(--color-slate-200);border-radius:16px;padding:1.25rem;transition:all .2s}.my-groups-page .assignment-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.my-groups-page .assignment-card.completed{background:#f9fdf9;border-color:#c8e6c9}.my-groups-page .assignment-card.overdue{border-color:#f48fb1;background:#fff5f7}.my-groups-page .assignment-card.due-today{border-color:#ffcc80;background:#fffde7}.my-groups-page .assignment-card.due-soon{border-color:#ffab91}.my-groups-page .assignment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem}.my-groups-page .content-badge{background:var(--color-primary, #4f46e5);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500}.my-groups-page .due-badge{font-size:.8rem;padding:.25rem .6rem;border-radius:12px;font-weight:500}.my-groups-page .due-badge.overdue{background:var(--color-error);color:#fff}.my-groups-page .due-badge.due-today{background:var(--color-warning);color:#fff}.my-groups-page .due-badge.due-soon{background:var(--color-amber-500);color:var(--color-slate-800)}.my-groups-page .assignment-title{margin:0 0 .5rem;font-size:1.2rem;color:var(--color-slate-900)}.my-groups-page .assignment-desc{margin:0 0 .75rem;color:var(--color-slate-500);font-size:.95rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.my-groups-page .assignment-meta{margin-bottom:1rem}.my-groups-page .group-name{font-size:.85rem;color:var(--color-slate-400)}.my-groups-page .assignment-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.my-groups-page .btn-start{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:10px;cursor:pointer;font-weight:600;font-size:.95rem;transition:all .2s;box-shadow:0 2px 8px #4f46e54d}.my-groups-page .btn-start:hover{transform:scale(1.02);box-shadow:0 4px 12px #4f46e566}.my-groups-page .btn-mark-done{background:transparent;border:1px solid var(--color-slate-200);padding:.6rem 1rem;border-radius:10px;cursor:pointer;font-size:.9rem;color:var(--color-slate-500);transition:all .2s}.my-groups-page .btn-mark-done:hover{background:var(--color-slate-50);border-color:var(--color-slate-300)}.my-groups-page .completed-badge{background:var(--color-success);color:#fff;padding:.5rem 1rem;border-radius:10px;font-weight:600;font-size:.9rem}.my-groups-page .groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.my-groups-page .group-card{background:#fff;border:2px solid var(--color-slate-200);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;transition:all .2s}.my-groups-page .group-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014;border-color:var(--color-primary, #4f46e5)}.my-groups-page .group-icon{font-size:2.5rem;line-height:1}.my-groups-page .group-info h3{margin:0 0 .25rem;font-size:1.2rem;color:var(--color-slate-900)}.my-groups-page .group-info .org-name{margin:0;font-size:.9rem;color:var(--color-slate-500)}.my-groups-page .year-badge{display:inline-block;background:var(--color-primary, #4f46e5);color:#fff;padding:.15rem .6rem;border-radius:12px;font-size:.75rem;margin-top:.5rem}.my-groups-page .group-stats{display:flex;gap:1rem;font-size:.85rem;color:var(--color-slate-400);padding-top:.75rem;border-top:1px solid var(--color-slate-100)}@media (max-width: 600px){.my-groups-page{padding:1rem}.my-groups-page .page-header h1{font-size:1.5rem}.my-groups-page .assignments-grid,.my-groups-page .groups-grid{grid-template-columns:1fr}}.notifications-page{max-width:640px;margin:0 auto;padding:24px 16px}.notifications-page-disabled,.notifications-loading,.notifications-empty{padding:32px 16px;font-size:16px;color:var(--text-muted, #6b7280);text-align:center}.notifications-page-header{margin-bottom:24px}.notifications-page-header h1{margin:0 0 16px;font-size:1.5rem;font-weight:600}.notifications-filter-label{font-size:14px;color:var(--text-secondary, #4b5563)}.notifications-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.notifications-filters label{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}.notifications-filters select{padding:8px 12px;font-size:14px;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:var(--bg-secondary, #fff)}.notifications-filters .mark-all-read{padding:8px 14px;font-size:13px;font-weight:500;color:var(--color-primary, #2563eb);background:transparent;border:1px solid var(--color-primary, #2563eb);border-radius:8px;cursor:pointer}.notifications-filters .mark-all-read:hover{background:#2563eb14}.notifications-list{margin:0;padding:0;list-style:none}.notifications-list-item{padding:16px;margin-bottom:8px;cursor:pointer;background:var(--bg-secondary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;transition:background .15s ease}.notifications-list-item.unread{background:#2563eb0a;border-color:#2563eb33}.notifications-list-item:hover{background:#00000008}.notifications-list-item.unread:hover{background:#2563eb14}.notifications-item-title{font-size:15px;font-weight:600;color:var(--text-primary, #111)}.notifications-item-body{margin-top:6px;font-size:14px;color:var(--text-secondary, #4b5563);line-height:1.5}.notifications-item-meta{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:12px;color:var(--text-muted, #9ca3af)}.notifications-item-category{padding:2px 8px;text-transform:capitalize;background:#0000000f;border-radius:4px}.notifications-load-more{margin-top:24px;text-align:center}.notifications-load-more button{padding:10px 20px;font-size:14px;font-weight:500;color:var(--color-primary, #2563eb);background:transparent;border:1px solid var(--color-primary, #2563eb);border-radius:8px;cursor:pointer}.notifications-load-more button:hover:not(:disabled){background:#2563eb14}.notifications-load-more button:disabled{opacity:.6;cursor:not-allowed}.compose-announcement-page{max-width:560px;margin:0 auto;padding:24px 16px}.compose-announcement-disabled{padding:32px 16px;text-align:center;color:var(--text-muted, #6b7280)}.compose-announcement-header{margin-bottom:24px}.compose-announcement-header .compose-announcement-back{margin-bottom:12px;padding:4px 0;font-size:14px;color:var(--color-primary, #2563eb);background:none;border:none;cursor:pointer}.compose-announcement-header .compose-announcement-back:hover{text-decoration:underline}.compose-announcement-header h1{margin:0 0 4px;font-size:1.5rem;font-weight:600}.compose-announcement-header .compose-announcement-org{margin:0;font-size:14px;color:var(--text-muted, #6b7280)}.compose-announcement-form .form-group{margin-bottom:20px}.compose-announcement-form .form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500}.compose-announcement-form .form-group input[type=text],.compose-announcement-form .form-group select,.compose-announcement-form .form-group textarea{width:100%;padding:10px 12px;font-size:14px;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:var(--bg-secondary, #fff)}.compose-announcement-form .form-group textarea{resize:vertical;min-height:100px}.compose-announcement-form .compose-announcement-multiselect{max-height:200px;padding:12px;overflow-y:auto;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:var(--bg-secondary, #fff)}.compose-announcement-form .compose-announcement-check{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:400;cursor:pointer}.compose-announcement-form .compose-announcement-check input{margin:0}.compose-announcement-form .form-actions{margin-top:24px}.admin-container{max-width:1200px;margin:0 auto;padding:var(--space-8)}.admin-header{text-align:center;margin-bottom:var(--space-8)}.admin-header h1{font-family:var(--font-heading);font-size:var(--text-3xl);color:var(--color-slate-800);margin-bottom:var(--space-2)}.admin-subtitle{color:var(--color-slate-600);font-size:var(--text-lg);margin:0}.admin-summary{display:flex;gap:var(--space-6);justify-content:center;margin-bottom:var(--space-8);flex-wrap:wrap}.summary-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-md);min-width:220px}.summary-icon{font-size:var(--text-3xl)}.summary-info{display:flex;flex-direction:column}.summary-value{font-size:var(--text-2xl);font-weight:700;color:var(--color-slate-800)}.summary-label{font-size:var(--text-sm);color:var(--color-slate-500)}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.admin-card{display:flex;align-items:center;gap:var(--space-4);background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-5);text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);border-left:4px solid;transition:var(--transition-base)}.admin-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);flex-shrink:0}.card-content{flex:1}.card-content h3{margin:0 0 var(--space-1);font-size:var(--text-lg);font-weight:600;color:var(--color-slate-800)}.card-count{font-size:var(--text-sm);color:var(--color-slate-500)}.card-arrow{font-size:var(--text-xl);color:var(--color-slate-400);transition:transform .2s ease}.admin-card:hover .card-arrow{transform:translate(4px);color:var(--color-accent)}.admin-loading{text-align:center;padding:var(--space-12);color:var(--color-slate-500)}.admin-page{max-width:1400px;margin:0 auto;padding:var(--space-8)}.admin-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8)}.admin-page-header h1{margin:0;font-family:var(--font-heading);font-size:var(--text-3xl);color:var(--color-slate-800)}.admin-back-link{color:var(--color-accent);text-decoration:none;display:flex;align-items:center;gap:var(--space-2)}.admin-back-link:hover{text-decoration:underline}.admin-toolbar{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;align-items:center;background:var(--color-slate-50);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-slate-200)}.admin-toolbar .result-count{font-size:var(--text-sm);color:var(--color-slate-500);font-weight:500;white-space:nowrap;padding:var(--space-2) var(--space-3);background:#fff;border-radius:var(--radius-md);border:1px solid var(--color-slate-200)}.admin-checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-slate-600);cursor:pointer;white-space:nowrap}.admin-checkbox-label input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.admin-table-container{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{width:100%;border-collapse:collapse;overflow-x:auto}.admin-table th,.admin-table td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--color-slate-100)}.admin-table th{background:var(--color-slate-50);font-weight:600;color:var(--color-slate-600);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px}.admin-table tr:hover{background:var(--color-slate-50)}.admin-table-actions{display:flex;gap:var(--space-2);white-space:nowrap;flex-shrink:0}.admin-table td:last-child,.admin-table th:last-child{min-width:140px}.admin-table .last-accessed-cell{white-space:nowrap}.inactive-row{opacity:.6;background:var(--color-slate-50)}.inactive-row:hover{opacity:.9}.prompt-preview{font-size:var(--text-sm);color:var(--color-slate-500);margin-top:.25rem}.admin-toolbar select,.admin-container select,.generate-form select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:var(--space-10);cursor:pointer;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2.5 4.5L6 8l3.5-3.5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px}.admin-toolbar select:hover,.admin-container select:hover,.generate-form select:hover{border-color:var(--color-slate-400);background-color:var(--color-slate-50)}.admin-toolbar select{padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-slate-700);min-width:140px;background-color:#fff;transition:var(--transition-base)}.admin-toolbar select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}.admin-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.admin-form-checkbox{display:flex;align-items:center;gap:var(--space-2)}.admin-form-checkbox input[type=checkbox]{width:auto}.truncate{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.last-accessed-cell{white-space:nowrap}.last-accessed{font-size:var(--text-sm);color:var(--color-slate-800)}.never-accessed{font-size:var(--text-sm);color:var(--color-slate-400);font-style:italic}@media (max-width: 768px){.admin-container{padding:var(--space-4)}.admin-header h1{font-size:var(--text-2xl)}.admin-summary{flex-direction:column;align-items:stretch}.summary-card{min-width:auto}.admin-grid,.admin-form-row{grid-template-columns:1fr}.admin-page-header{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.admin-toolbar{flex-direction:column;gap:var(--space-3)}.admin-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{min-width:600px}.admin-table th,.admin-table td{padding:var(--space-2);font-size:var(--text-sm)}}.user-permissions-content .user-permissions-info{display:flex;gap:var(--space-6);padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.user-permissions-content .info-item{display:flex;align-items:center;gap:var(--space-2)}.user-permissions-content .info-label{font-size:var(--text-sm);color:var(--color-slate-500)}.user-permissions-content .role-badge{padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;text-transform:uppercase}.user-permissions-content .role-student{background:var(--color-green-100);color:var(--color-green-700)}.user-permissions-content .role-parent{background:var(--color-blue-100);color:var(--color-blue-700)}.user-permissions-content .role-teacher{background:#9333ea1a;color:var(--color-purple-600)}.user-permissions-content .role-admin{background:var(--color-amber-100);color:var(--color-orange-700)}.user-permissions-content .role-superadmin{background:var(--color-red-100);color:var(--color-red-700)}.user-permissions-content .has-overrides{color:var(--color-amber-600);font-weight:600}.user-permissions-content .permission-state-legend{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-slate-100);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-xs);flex-wrap:wrap;justify-content:center}.user-permissions-content .legend-title{color:var(--color-slate-500);font-weight:500}.user-permissions-content .permission-groups{display:flex;flex-direction:column;gap:var(--space-4)}.user-permissions-content .permission-group-section{border:1px solid var(--color-slate-200);border-radius:var(--radius-md);overflow:hidden}.user-permissions-content .permission-group-header.clickable{cursor:pointer;padding:var(--space-3) var(--space-4);background:var(--color-slate-50);transition:var(--transition-base)}.user-permissions-content .permission-group-header.clickable:hover{background:var(--color-slate-100)}.user-permissions-content .group-summary{font-size:var(--text-xs);color:var(--color-slate-500);margin-left:auto}.user-permissions-content .permission-items{padding:var(--space-2)}.user-permissions-content .permission-item-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-base)}.user-permissions-content .permission-item-row:hover{background:var(--color-slate-100)}.user-permissions-content .permission-item-row.has-change{background:var(--color-amber-50)}.user-permissions-content .permission-item-row .permission-name{font-size:var(--text-sm)}.user-permissions-content .permission-state{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm);font-weight:500}.user-permissions-content .state-default-on{background:var(--color-slate-200);color:var(--color-slate-600)}.user-permissions-content .state-default-off{background:var(--color-slate-100);color:var(--color-slate-400)}.user-permissions-content .state-granted{background:var(--color-green-100);color:var(--color-green-700)}.user-permissions-content .state-revoked{background:var(--color-red-100);color:var(--color-red-700)}.admin-licenses-page .admin-success{background:#22c55e26;border:1px solid var(--color-blue-500);color:var(--color-blue-700);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);animation:fadeIn .3s ease}.admin-licenses-page .license-expiry-cell{white-space:nowrap}.admin-licenses-page .license-cell{display:flex;flex-direction:column;gap:var(--space-1)}.admin-licenses-page .license-type-small{font-size:var(--text-xs);color:var(--color-slate-500);text-transform:capitalize}.admin-licenses-page .license-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.admin-licenses-page .license-stat-card{background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;transition:transform .15s ease,box-shadow .15s ease}.admin-licenses-page .license-stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.admin-licenses-page .license-stat-card.stat-active{border-color:#22c55e4d;background:#22c55e0d}.admin-licenses-page .license-stat-card.stat-active .license-stat-value{color:var(--color-green-600)}.admin-licenses-page .license-stat-card.stat-expired{border-color:#ef44444d;background:#ef44440d}.admin-licenses-page .license-stat-card.stat-expired .license-stat-value{color:var(--color-red-600)}.admin-licenses-page .license-stat-card.stat-suspended{border-color:#f973164d;background:#f973160d}.admin-licenses-page .license-stat-card.stat-suspended .license-stat-value{color:var(--color-orange-600)}.admin-licenses-page .license-stat-card.stat-revoked{border-color:#6b72804d;background:#6b72800d}.admin-licenses-page .license-stat-card.stat-revoked .license-stat-value{color:var(--color-slate-500)}.admin-licenses-page .license-stat-card.stat-warning{border-color:#eab3084d;background:#eab3080d}.admin-licenses-page .license-stat-card.stat-warning .license-stat-value{color:var(--color-orange-600)}.admin-licenses-page .license-stat-card.stat-basic{border-color:#22c55e33;background:#22c55e08}.admin-licenses-page .license-stat-card.stat-basic .license-stat-value{color:var(--color-green-600)}.admin-licenses-page .license-stat-card.stat-premium{border-color:#2563eb33;background:#2563eb08}.admin-licenses-page .license-stat-card.stat-premium .license-stat-value{color:var(--color-blue-600)}.admin-licenses-page .license-stat-card.stat-enterprise{border-color:#eab30833;background:#eab30808}.admin-licenses-page .license-stat-card.stat-enterprise .license-stat-value{color:var(--color-orange-600)}.admin-licenses-page .license-stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--color-slate-800)}.admin-licenses-page .license-stat-label{font-size:var(--text-xs);color:var(--color-slate-500);text-transform:uppercase;font-weight:600;margin-top:var(--space-1)}@media (max-width: 640px){.admin-licenses-page .license-stats-grid{grid-template-columns:repeat(2,1fr)}}.admin-licenses-modal .license-user-info{background:var(--color-slate-50);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.admin-licenses-modal .license-user-info strong{font-size:var(--text-base);color:var(--color-slate-800)}.admin-licenses-modal .license-user-email{color:var(--color-slate-500);font-size:var(--text-sm);display:block}.admin-licenses-modal .expired-text{color:var(--color-red-600);text-decoration:line-through}.admin-licenses-modal .days-remaining{display:block;font-size:var(--text-xs);color:var(--color-slate-500);margin-top:var(--space-1)}.admin-licenses-modal .days-remaining.warning,.admin-licenses-modal .days-warning,.admin-licenses-modal .devices-full{color:var(--color-red-500);font-weight:600}.admin-licenses-modal .license-details-card{background:var(--color-slate-50);border:1px solid var(--color-slate-200);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.admin-licenses-modal .license-details-card h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-700);font-size:var(--text-base);font-weight:600}.admin-licenses-modal .license-details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4)}.admin-licenses-modal .license-details-grid code{background:var(--color-slate-200);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:monospace;word-break:break-all}.admin-licenses-modal .license-detail-item{display:flex;flex-direction:column;gap:var(--space-1)}.admin-licenses-modal .license-detail-item .label{font-size:var(--text-xs);color:var(--color-slate-500);text-transform:uppercase;font-weight:600;letter-spacing:.5px}.admin-licenses-modal .license-detail-item .value{font-size:var(--text-sm);color:var(--color-slate-800);line-height:1.5}.admin-licenses-modal .license-actions-section{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-slate-200)}.admin-licenses-modal .license-actions-section h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-700);font-size:var(--text-base);font-weight:600}.admin-licenses-modal .license-action-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}.admin-licenses-modal .license-action-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md);margin-bottom:var(--space-3);gap:var(--space-4);flex-wrap:wrap}.admin-licenses-modal .license-action-row span{color:var(--color-slate-600);font-size:var(--text-sm)}.admin-licenses-modal .license-action-row.danger{background:#ef44440d;border:1px solid rgba(239,68,68,.2)}.admin-licenses-modal .license-action-row .license-action-desc{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1}.admin-licenses-modal .license-action-row .license-action-label{font-weight:600;color:var(--color-slate-800);font-size:var(--text-sm)}.admin-licenses-modal .license-action-row .license-action-hint{font-size:var(--text-xs);color:var(--color-slate-500);line-height:1.4}.admin-licenses-modal .license-action-row .license-action-controls{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.admin-licenses-modal .license-action-row .license-action-unit{font-size:var(--text-sm);color:var(--color-slate-600)}.admin-licenses-modal .license-action-row.license-action-row--extend .license-action-controls{flex-wrap:wrap}.admin-licenses-modal .license-action-row.license-action-row--extend .ui-form-field{flex-direction:row;align-items:center;gap:var(--space-2);margin:0}.admin-licenses-modal .license-create-section{background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-md);padding:var(--space-4)}.admin-licenses-modal .license-create-section h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-700);font-size:var(--text-base);font-weight:600}.admin-licenses-modal .license-create-info{color:var(--color-slate-500);font-size:var(--text-sm);margin-bottom:var(--space-4)}.admin-licenses-modal .extend-preview{background:var(--color-blue-50);border:1px solid var(--color-blue-200);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin:var(--space-4) 0;color:var(--color-blue-700)}.admin-users-page .admin-table-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.admin-users-page .admin-table-summary,.admin-users-page .admin-page-size{font-size:.875rem;color:var(--color-slate-600)}.admin-users-page .admin-page-size select{margin-left:.25rem;padding:.25rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--color-slate-300)}.admin-users-page .expand-cell{width:32px;padding:4px!important;text-align:center}.admin-users-page .expand-toggle{background:none;border:none;cursor:pointer;font-size:.75rem;color:var(--color-slate-500);padding:4px;border-radius:4px;transition:all .15s}.admin-users-page .expand-toggle:hover{background:var(--color-slate-100);color:var(--color-slate-700)}.admin-users-page .parent-link-badge{display:block;font-size:.72rem;color:var(--color-primary-500, #6366f1);margin-top:2px;font-weight:500}.admin-users-page .children-count{font-weight:600;color:var(--color-slate-600)}.admin-users-page .children-count.has-children{color:var(--color-green-600)}.admin-users-page .children-max{font-weight:400;color:var(--color-slate-400);font-size:.8rem}.admin-users-page .children-na{color:var(--color-slate-300)}.admin-users-page .child-row-linked{background:var(--color-slate-50)}.admin-users-page .child-row-linked td:first-child{border-left:3px solid var(--color-blue-200)}.admin-users-page .children-detail-row,.admin-users-page .children-detail-row:hover{background:var(--color-slate-50)!important}.admin-users-page .children-detail-panel{padding:12px 16px 12px 40px}.admin-users-page .children-detail-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:.85rem;color:var(--color-slate-600)}.admin-users-page .children-detail-icon{font-size:1rem}.admin-users-page .children-detail-count{font-weight:400;color:var(--color-slate-400);font-size:.8rem}.admin-users-page .children-detail-grid{display:flex;gap:12px;flex-wrap:wrap}.admin-users-page .child-detail-card{background:#fff;border:1px solid var(--color-slate-200);border-radius:8px;padding:10px 14px;min-width:150px;max-width:200px}.admin-users-page .child-detail-name{font-weight:600;font-size:.85rem;color:var(--color-slate-700);margin-bottom:4px}.admin-users-page .child-detail-meta{font-size:.78rem;color:var(--color-slate-500);margin-top:2px}.admin-users-page .children-detail-empty{font-size:.85rem;color:var(--color-slate-400);font-style:italic}.admin-users-page .email-role-cell{display:flex;flex-direction:column;gap:3px}.admin-users-page .email-role-cell .cell-primary{font-size:.85rem;color:var(--color-slate-700)}.admin-users-page .status-cell{display:flex;flex-direction:column;gap:3px}.admin-users-page .status-cell.status-cell-inline{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}.admin-users-page .status-cell .status-cell-account{flex-shrink:0}.admin-users-page .orphan-badge{display:block;font-size:.72rem;color:var(--color-orange-600);margin-top:2px;font-weight:500}.admin-users-page .child-detail-username{font-size:.72rem;color:var(--color-slate-400);margin-bottom:4px}.admin-users-page .child-detail-actions{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--color-slate-200)}.admin-users-page .audit-table{font-size:.85rem}.admin-users-page .audit-table th,.admin-users-page .audit-table td{padding:.5rem .75rem;white-space:nowrap}.admin-users-page .audit-table .audit-failed{background-color:#ef444414}.admin-users-page .audit-action{font-size:.75rem;padding:2px 6px;border-radius:4px;background:var(--color-slate-100);color:var(--color-slate-600)}.admin-users-page .audit-action-login,.admin-users-page .audit-action-child-login{background:#10b9811a;color:var(--color-green-600)}.admin-users-page .audit-action-login-failed,.admin-users-page .audit-action-child-login-failed{background:#ef44441a;color:var(--color-red-600)}.admin-users-page .audit-action-password-change,.admin-users-page .audit-action-pin-change{background:#3b82f61a;color:var(--color-blue-600)}.admin-users-page .audit-action-profile-switch{background:#9333ea1a;color:var(--color-purple-600)}.admin-users-page .audit-device{display:inline-block;font-size:.75rem;padding:1px 4px;background:var(--color-slate-100);border-radius:3px;margin-right:4px}.admin-users-page .audit-os{display:inline-block;font-size:.75rem;color:var(--color-slate-500)}.admin-users-page .audit-ip{font-family:monospace;font-size:.8rem;color:var(--color-slate-500)}.admin-users-page .audit-btn{background:none;border:none;cursor:pointer;padding:2px 6px;font-size:.85rem;opacity:.6;margin-left:6px;border-radius:3px;transition:opacity .15s,background .15s}.admin-users-page .audit-btn:hover{opacity:1;background:var(--color-slate-100)}.admin-users-page .last-accessed-time{color:var(--color-slate-500);font-size:.8rem}.admin-users-page .last-accessed-cell{display:flex;align-items:center;gap:4px}.admin-users-page .child-last-login{font-size:.7rem;color:var(--color-slate-500);cursor:default}.admin-users-page .child-last-login span{color:var(--color-slate-800)}.admin-users-page .permissions-btn{background:linear-gradient(135deg,var(--color-purple-600),var(--color-purple-600));color:#fff;border:none;padding:4px 8px;border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;transition:var(--transition-base)}.admin-users-page .permissions-btn:hover{opacity:.9;transform:scale(1.02)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.admin-user-progress-page .user-info{display:flex;flex-direction:column}.admin-user-progress-page .user-name{font-weight:600;color:var(--color-slate-800)}.admin-user-progress-page .user-email{font-size:var(--text-sm);color:var(--color-slate-500)}.admin-user-progress-page .role-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-xs);font-weight:600;text-transform:uppercase}.admin-user-progress-page .role-badge.admin{background:#22c55e1a;color:var(--color-blue-600)}.admin-user-progress-page .role-badge.user{background:#2563eb1a;color:var(--color-accent)}.admin-user-progress-page .score{font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.admin-user-progress-page .score.good{background:#22c55e1a;color:var(--color-blue-600)}.admin-user-progress-page .score.medium{background:#f973161a;color:var(--color-orange-600)}.admin-user-progress-page .score.low{background:#ef44441a;color:var(--color-red-600)}.admin-user-progress-page .mastered-badges{display:flex;gap:var(--space-2);flex-wrap:wrap}.admin-user-progress-page .mastered-badge{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500}.admin-user-progress-page .mastered-badge.spelling{background:#2563eb1a;color:var(--color-accent)}.admin-user-progress-page .mastered-badge.vocab{background:#8b5cf61a;color:var(--color-purple-600)}.admin-user-progress-page .mastered-badge.math{background:#f973161a;color:var(--color-orange-600)}.admin-user-progress-page .mastered-badge.word-search{background:#22c55e1a;color:var(--color-blue-600)}.admin-user-progress-page .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.admin-user-progress-page .modal-content{background:#fff;border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:modalSlideIn .2s ease-out;overflow:hidden;box-sizing:border-box}.admin-user-progress-page .modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-slate-200);background:var(--color-slate-50);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-shrink:0}.admin-user-progress-page .modal-header h2{margin:0;font-family:var(--font-heading);font-size:var(--text-xl);color:var(--color-slate-800)}.admin-user-progress-page .close-btn{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;color:var(--color-slate-500);padding:0;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);transition:var(--transition-base)}.admin-user-progress-page .close-btn:hover{background:var(--color-slate-200);color:var(--color-slate-800)}.admin-user-progress-page .modal-body{padding:var(--space-6);overflow-y:auto;overflow-x:hidden;flex:1;min-height:0}.admin-user-progress-page .modal-loading{text-align:center;padding:var(--space-12);color:var(--color-slate-500)}.admin-user-progress-page .user-progress-modal{max-width:800px;max-height:85vh;width:95%;overflow:hidden}.admin-user-progress-page .user-progress-modal .modal-body{padding:var(--space-6);overflow-y:auto;overflow-x:hidden;max-height:calc(85vh - 80px)}.admin-user-progress-page .user-progress-modal .progress-bar-container{height:10px;background:var(--color-slate-200);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-2);position:relative}.admin-user-progress-page .user-progress-modal .progress-bar{height:100%;border-radius:var(--radius-sm);transition:width .5s ease;min-width:4px}.admin-user-progress-page .user-progress-modal .progress-bar.spelling{background:linear-gradient(90deg,var(--color-accent),var(--color-blue-400))}.admin-user-progress-page .user-progress-modal .progress-bar.vocab{background:linear-gradient(90deg,var(--color-purple-500),var(--color-purple-600))}.admin-user-progress-page .user-progress-modal .progress-bar.math{background:linear-gradient(90deg,var(--color-orange-500),var(--color-orange-600))}.admin-user-progress-page .user-progress-modal .progress-bar.word-search{background:linear-gradient(90deg,var(--color-blue-500),var(--color-blue-600))}.admin-user-progress-page .user-progress-modal .progress-text{position:static;transform:none;margin:0;font-size:var(--text-xs);color:var(--color-slate-500);font-weight:400}.admin-user-progress-page .user-detail-header{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);background:var(--gradient-cta);border-radius:var(--radius-lg);color:#fff;margin-bottom:var(--space-6);flex-shrink:0}.admin-user-progress-page .user-avatar{width:56px;height:56px;min-width:56px;border-radius:var(--radius-full);background:#fff3;display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);font-weight:600}.admin-user-progress-page .user-detail-info{flex:1;min-width:0}.admin-user-progress-page .user-detail-info h3{margin:0 0 var(--space-1) 0;font-size:var(--text-xl);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-progress-page .user-detail-info p{margin:0 0 var(--space-2) 0;opacity:.9;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-progress-page .user-detail-info .role-badge{background:#fff3;color:#fff;font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.admin-user-progress-page .progress-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-6);width:100%;box-sizing:border-box}.admin-user-progress-page .progress-section{margin-bottom:var(--space-4);padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md);border:1px solid var(--color-slate-100);overflow:hidden;box-sizing:border-box}.admin-user-progress-page .progress-section h4{margin:0 0 var(--space-3) 0;color:var(--color-slate-800);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-2);word-break:break-word}.admin-user-progress-page .recent-tests-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:180px;overflow-y:auto;overflow-x:hidden}.admin-user-progress-page .recent-test-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:#fff;border-radius:var(--radius-md);border:1px solid var(--color-slate-200);gap:var(--space-3);min-width:0;flex-shrink:0}.admin-user-progress-page .test-info{display:flex;flex-direction:column;min-width:0;flex:1}.admin-user-progress-page .test-name{font-weight:500;color:var(--color-slate-800);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-progress-page .test-category{font-size:var(--text-xs);color:var(--color-slate-500);text-transform:capitalize}.admin-user-progress-page .test-result{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.admin-user-progress-page .test-score{font-weight:600;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.admin-user-progress-page .test-score.good{background:#22c55e1a;color:var(--color-blue-600)}.admin-user-progress-page .test-score.medium{background:#f973161a;color:var(--color-orange-600)}.admin-user-progress-page .test-score.low{background:#ef44441a;color:var(--color-red-600)}.admin-user-progress-page .test-date{font-size:var(--text-xs);color:var(--color-slate-400);margin-top:var(--space-1)}.admin-user-progress-page .category-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-2);width:100%;box-sizing:border-box}.admin-user-progress-page .category-stat-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:#fff;border-radius:var(--radius-md);border:1px solid var(--color-slate-200);gap:var(--space-2);min-width:0;overflow:hidden}.admin-user-progress-page .category-name{font-weight:500;color:var(--color-slate-800);font-size:var(--text-sm);text-transform:capitalize;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-progress-page .category-count{font-size:var(--text-xs);color:var(--color-slate-500);flex-shrink:0}.admin-user-progress-page .category-avg{font-weight:600;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);flex-shrink:0}.admin-user-progress-page .category-avg.good{background:#22c55e1a;color:var(--color-blue-600)}.admin-user-progress-page .category-avg.medium{background:#f973161a;color:var(--color-orange-600)}.admin-user-progress-page .category-avg.low{background:#ef44441a;color:var(--color-red-600)}.admin-user-progress-page .no-data{text-align:center;padding:var(--space-12);color:var(--color-slate-500);font-size:var(--text-lg)}@media (max-width: 700px){.admin-user-progress-page .progress-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 400px){.admin-user-progress-page .progress-stats-grid{grid-template-columns:1fr}}@media (max-width: 768px){.admin-user-progress-page .modal-overlay{padding:var(--space-2)}.admin-user-progress-page .user-progress-modal{max-height:90vh;width:100%}.admin-user-progress-page .user-progress-modal .modal-body{padding:var(--space-4);max-height:calc(90vh - 70px)}.admin-user-progress-page .user-progress-modal .progress-text{position:static;transform:none;color:var(--color-slate-500);font-size:var(--text-xs);font-weight:400;word-break:break-word}.admin-user-progress-page .modal-header{padding:var(--space-4)}.admin-user-progress-page .modal-header h2{font-size:var(--text-lg)}.admin-user-progress-page .user-detail-header{padding:var(--space-4);gap:var(--space-3);flex-wrap:wrap}.admin-user-progress-page .user-avatar{width:44px;height:44px;min-width:44px;font-size:var(--text-lg)}.admin-user-progress-page .user-detail-info{min-width:0;flex:1 1 auto}.admin-user-progress-page .user-detail-info h3{font-size:var(--text-base)}.admin-user-progress-page .user-detail-info p{font-size:var(--text-sm)}.admin-user-progress-page .progress-section{padding:var(--space-3);margin-bottom:var(--space-3)}.admin-user-progress-page .progress-section h4{font-size:var(--text-sm)}.admin-user-progress-page .category-stats{grid-template-columns:1fr}.admin-user-progress-page .recent-tests-list{max-height:150px}.admin-user-progress-page .test-name{font-size:var(--text-sm)}.admin-user-progress-page .test-date{font-size:var(--text-xs)}}.admin-worksheets-page .upload-zone{border:2px dashed var(--color-slate-300);border-radius:var(--radius-lg);padding:var(--space-10);text-align:center;cursor:pointer;transition:var(--transition-base);margin-bottom:var(--space-6);background:var(--color-slate-50)}.admin-worksheets-page .upload-zone:hover,.admin-worksheets-page .upload-zone.drag-over{border-color:var(--color-accent);background:#2563eb0d}.admin-worksheets-page .upload-zone h3{margin:0 0 var(--space-2);color:var(--color-slate-700)}.admin-worksheets-page .upload-zone p{margin:0;color:var(--color-slate-500);font-size:var(--text-sm)}.admin-worksheets-page .upload-zone-icon{font-size:3rem;margin-bottom:var(--space-3)}.admin-worksheets-page .processing-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-xs);font-weight:600;text-transform:uppercase}.admin-worksheets-page .processing-badge.pending{background:#f973161a;color:var(--color-orange-600)}.admin-worksheets-page .processing-badge.processing{background:#2563eb1a;color:var(--color-accent)}.admin-worksheets-page .processing-badge.extracted,.admin-worksheets-page .processing-badge.categorized{background:#22c55e1a;color:var(--color-green-600)}.admin-worksheets-page .processing-badge.failed{background:#ef44441a;color:var(--color-red-600)}.admin-worksheets-page .upload-progress-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(37,99,235,.25);border-top-color:var(--color-accent);border-radius:50%;animation:upload-spin .8s linear infinite;flex-shrink:0}.admin-worksheets-page .upload-pipeline-card{background:linear-gradient(135deg,#2563eb0a,#6366f10f);border:1px solid rgba(37,99,235,.15);border-radius:var(--radius-lg, 12px);padding:var(--space-4) var(--space-5, 20px);margin-bottom:var(--space-4);position:relative;overflow:hidden}.admin-worksheets-page .upload-pipeline-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-accent),var(--color-blue-400));animation:pipeline-shimmer 2s ease-in-out infinite}.admin-worksheets-page .upload-pipeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.admin-worksheets-page .upload-pipeline-file{display:flex;align-items:center;gap:var(--space-2);min-width:0}.admin-worksheets-page .upload-pipeline-name{font-weight:600;font-size:var(--text-sm);color:var(--color-slate-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.admin-worksheets-page .upload-pipeline-size{font-size:var(--text-xs);color:var(--color-slate-400);flex-shrink:0}.admin-worksheets-page .upload-pipeline-elapsed{font-size:var(--text-xs);color:var(--color-slate-500);font-variant-numeric:tabular-nums;flex-shrink:0;background:#0000000a;padding:2px 8px;border-radius:var(--radius-full, 20px)}.admin-worksheets-page .upload-stepper{display:flex;align-items:flex-start;gap:0;margin-bottom:var(--space-3);position:relative}.admin-worksheets-page .upload-stepper-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.admin-worksheets-page .upload-stepper-step.pending .upload-stepper-dot{background:var(--color-slate-100);color:var(--color-slate-400);border:2px solid var(--color-slate-200)}.admin-worksheets-page .upload-stepper-step.completed .upload-stepper-dot{background:var(--color-green-500);color:#fff;border:2px solid var(--color-green-600);box-shadow:0 2px 6px #22c55e4d}.admin-worksheets-page .upload-stepper-step.active .upload-stepper-dot{background:var(--color-accent);color:#fff;border:2px solid var(--color-accent);box-shadow:0 0 0 4px #2563eb26;animation:step-pulse 1.5s ease-in-out infinite}.admin-worksheets-page .upload-stepper-step.active .upload-stepper-label{color:var(--color-accent);font-weight:600}.admin-worksheets-page .upload-stepper-step.completed .upload-stepper-label{color:var(--color-green-600);font-weight:500}.admin-worksheets-page .upload-stepper-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;transition:all .3s ease;position:relative;z-index:1}.admin-worksheets-page .upload-stepper-label{font-size:11px;margin-top:6px;color:var(--color-slate-400);text-align:center;white-space:nowrap;transition:color .3s ease}.admin-worksheets-page .upload-stepper-line{position:absolute;top:16px;left:calc(50% + 18px);width:calc(100% - 36px);height:2px;background:var(--color-slate-200);transition:background .3s ease}.admin-worksheets-page .upload-stepper-line.completed{background:var(--color-green-500)}.admin-worksheets-page .upload-pipeline-description{font-size:var(--text-sm);color:var(--color-slate-600);text-align:center;padding:var(--space-1) 0;min-height:20px}.admin-worksheets-page .upload-error-msg{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-red-600);line-height:1.3;max-width:220px;word-break:break-word}.admin-worksheets-page .refresh-btn{white-space:nowrap}.admin-worksheets-page .topic-tree{list-style:none;padding:0;margin:0}.admin-worksheets-page .topic-tree-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-slate-100)}.admin-worksheets-page .topic-tree-item:hover{background:var(--color-slate-50)}.admin-worksheets-page .topic-tree-actions{display:flex;gap:var(--space-2);align-items:center}.admin-worksheets-page .topic-tree-children{list-style:none;padding:0 0 0 var(--space-8);margin:0}.admin-worksheets-page .topic-name{font-weight:500;color:var(--color-slate-800);display:flex;align-items:center;gap:var(--space-2)}.admin-worksheets-page .topic-subject-badge{display:inline-block;padding:1px 7px;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase}.admin-worksheets-page .topic-subject-badge.english{background:#8b5cf61a;color:var(--color-purple-600)}.admin-worksheets-page .topic-subject-badge.maths{background:#2563eb1a;color:var(--color-accent)}.admin-worksheets-page .topic-count{font-size:var(--text-xs);color:var(--color-slate-400)}.admin-worksheets-page .worksheet-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.admin-worksheets-page .worksheet-stat-card{background:#fff;border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-slate-200);text-align:center}.admin-worksheets-page .worksheet-stat-value{font-size:var(--text-3xl);font-weight:700;color:var(--color-accent)}.admin-worksheets-page .worksheet-stat-label{font-size:var(--text-sm);color:var(--color-slate-500);margin-top:var(--space-1)}.admin-worksheets-page .question-preview{padding:var(--space-4);border:1px solid var(--color-slate-200);border-radius:var(--radius-md);margin-bottom:var(--space-3);background:#fff}.admin-worksheets-page .question-preview:hover{border-color:var(--color-slate-300)}.admin-worksheets-page .question-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.admin-worksheets-page .question-preview-text{color:var(--color-slate-800);margin-bottom:var(--space-2);line-height:1.5}.admin-worksheets-page .question-preview-options{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.admin-worksheets-page .question-preview-options li{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--color-slate-50)}.admin-worksheets-page .question-preview-options li.correct{background:#22c55e1a;color:var(--color-green-600);font-weight:500}.admin-worksheets-page .question-preview-actions{display:flex;gap:var(--space-2);align-items:center}.admin-worksheets-page .question-preview-meta{display:flex;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap}.admin-worksheets-page .question-preview-meta span{font-size:var(--text-xs);color:var(--color-slate-400)}.admin-worksheets-page .generate-form{background:var(--color-slate-50);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6);border:1px solid var(--color-slate-200)}.admin-worksheets-page .generate-form h3{margin:0 0 var(--space-4);color:var(--color-slate-800)}.admin-worksheets-page .select-all-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md);margin-bottom:var(--space-4);border:1px solid var(--color-slate-200)}.admin-worksheets-page .select-all-bar label{font-size:var(--text-sm);color:var(--color-slate-600);cursor:pointer}@media (max-width: 480px){.admin-page .upload-stepper{flex-direction:column;gap:var(--space-2)}.admin-page .upload-stepper-step{flex-direction:row;gap:var(--space-2)}.admin-page .upload-stepper-label{margin-top:0}.admin-page .upload-stepper-line{display:none}}@media (max-width: 768px){.admin-page .question-preview-options{grid-template-columns:1fr}.admin-page .worksheet-stats-grid{grid-template-columns:repeat(2,1fr)}}.admin-support-tickets-page .status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.admin-support-tickets-page .contact-info{font-size:var(--text-sm);color:var(--color-slate-600);white-space:nowrap}.admin-support-tickets-page .notes-cell{max-width:200px;font-size:var(--text-sm);color:var(--color-slate-500)}.admin-support-tickets-page .date-cell{white-space:nowrap;font-size:var(--text-sm);color:var(--color-slate-500)}.admin-support-tickets-page .action-buttons{display:flex;gap:var(--space-2);white-space:nowrap}.admin-support-tickets-page .row-highlight{background:#2196f30a}.admin-support-tickets-page .ticket-detail-grid{display:grid;gap:var(--space-3)}.admin-support-tickets-page .detail-row{display:grid;grid-template-columns:120px 1fr;gap:var(--space-3);align-items:baseline}.admin-support-tickets-page .detail-label{font-size:var(--text-sm);font-weight:600;color:var(--color-slate-500)}.admin-support-tickets-page .detail-value{font-size:var(--text-sm);color:var(--color-slate-800)}.admin-support-tickets-page .detail-value a{color:var(--color-accent);text-decoration:none}.admin-support-tickets-page .detail-value a:hover{text-decoration:underline}.admin-support-tickets-page .detail-section{margin-top:var(--space-4)}.admin-support-tickets-page .detail-message{margin-top:var(--space-2);padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-slate-700);line-height:1.6;white-space:pre-wrap}.admin-support-tickets-page .detail-divider{border:none;border-top:1px solid var(--color-slate-200);margin:var(--space-6) 0}.admin-support-tickets-page .form-textarea{resize:vertical;min-height:80px;font-family:var(--font-body)}@keyframes upload-spin{to{transform:rotate(360deg)}}@keyframes pipeline-shimmer{0%,to{opacity:.6}50%{opacity:1}}@keyframes step-pulse{0%,to{box-shadow:0 0 0 4px #2563eb26}50%{box-shadow:0 0 0 8px #2563eb14}}.admin-content-generator-page .section-description{color:var(--color-slate-600);margin-bottom:var(--space-6)}.admin-content-generator-page .form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.admin-content-generator-page .form-group label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--color-slate-600);margin-bottom:var(--space-2)}.admin-content-generator-page .form-group select,.admin-content-generator-page .form-group input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-base);background:#fff}.admin-content-generator-page .form-group select:focus,.admin-content-generator-page .form-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px rgba(var(--color-accent-rgb),.1)}.admin-content-generator-page .form-actions{display:flex;gap:var(--space-4);align-items:center}.admin-content-generator-page .upload-progress-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(37,99,235,.25);border-top-color:var(--color-accent, #2563eb);border-radius:50%;animation:upload-spin .8s linear infinite;flex-shrink:0}.admin-content-generator-page .upload-pipeline-card{background:linear-gradient(135deg,#2563eb0a,#6366f10f);border:1px solid rgba(37,99,235,.15);border-radius:var(--radius-lg, 12px);padding:var(--space-4) var(--space-5, 20px);margin-bottom:var(--space-4);position:relative;overflow:hidden}.admin-content-generator-page .upload-pipeline-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-accent, #2563eb),var(--color-blue-400, #60a5fa));animation:pipeline-shimmer 2s ease-in-out infinite}.admin-content-generator-page .upload-pipeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.admin-content-generator-page .upload-pipeline-file{display:flex;align-items:center;gap:var(--space-2);min-width:0}.admin-content-generator-page .upload-pipeline-name{font-weight:600;font-size:var(--text-sm);color:var(--color-slate-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.admin-content-generator-page .upload-pipeline-elapsed{font-size:var(--text-xs);color:var(--color-slate-500);font-variant-numeric:tabular-nums;flex-shrink:0;background:#0000000a;padding:2px 8px;border-radius:var(--radius-full, 20px)}.admin-content-generator-page .upload-stepper{display:flex;align-items:flex-start;gap:0;margin-bottom:var(--space-3);position:relative}.admin-content-generator-page .upload-stepper-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;min-width:0}.admin-content-generator-page .upload-stepper-step.pending .upload-stepper-dot{background:var(--color-slate-100);color:var(--color-slate-500);border:2px solid var(--color-slate-200)}.admin-content-generator-page .upload-stepper-step.completed .upload-stepper-dot{background:var(--color-green-500);color:#fff;border:2px solid var(--color-green-600);box-shadow:0 2px 6px #22c55e4d}.admin-content-generator-page .upload-stepper-step.active .upload-stepper-dot{background:var(--color-accent, #2563eb);color:#fff;border:2px solid var(--color-accent, #2563eb);box-shadow:0 0 0 4px #2563eb26;animation:step-pulse 1.5s ease-in-out infinite}.admin-content-generator-page .upload-stepper-step.active .upload-stepper-label{color:var(--color-accent, #2563eb);font-weight:600}.admin-content-generator-page .upload-stepper-step.completed .upload-stepper-label{color:var(--color-green-600);font-weight:500}.admin-content-generator-page .upload-stepper-dot{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;transition:all .3s ease;position:relative;z-index:1;flex-shrink:0}.admin-content-generator-page .upload-stepper-dot .stepper-dot-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:upload-spin .7s linear infinite}.admin-content-generator-page .upload-stepper-label{font-size:11px;margin-top:6px;color:var(--color-slate-400);text-align:center;white-space:nowrap;transition:color .3s ease;overflow:hidden;text-overflow:ellipsis;max-width:100%}.admin-content-generator-page .upload-stepper-line{position:absolute;top:16px;left:calc(50% + 18px);width:calc(100% - 36px);height:2px;background:var(--color-slate-200);transition:background .3s ease}.admin-content-generator-page .upload-stepper-line.completed{background:var(--color-green-500)}.admin-content-generator-page .upload-pipeline-description{font-size:var(--text-sm);color:var(--color-slate-600);text-align:center;padding:var(--space-1) 0;min-height:20px}.admin-content-generator-page .result-message{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between}.admin-content-generator-page .result-message.success{background:var(--color-green-50);color:var(--color-green-700);border:1px solid var(--color-green-200)}.admin-content-generator-page .result-message.error{background:var(--color-red-50);color:var(--color-red-700);border:1px solid var(--color-red-200)}.admin-content-generator-page .error-banner{background:var(--color-red-50);color:var(--color-red-700);border:1px solid var(--color-red-200);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);display:flex;justify-content:space-between;align-items:center}.admin-content-generator-page .error-banner button{background:none;border:none;font-size:var(--text-lg);cursor:pointer;color:var(--color-red-700)}.admin-content-generator-page .filters-bar{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.admin-content-generator-page .filters-bar select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-sm);background:#fff;min-width:120px}.admin-content-generator-page .bulk-actions{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-accent-50);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.admin-content-generator-page .bulk-actions span{font-weight:500;color:var(--color-accent-dark)}.admin-content-generator-page .review-split-view{display:grid;grid-template-columns:350px 1fr;gap:var(--space-4);min-height:600px}.admin-content-generator-page .items-list{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-slate-200);display:flex;flex-direction:column;overflow:hidden}.admin-content-generator-page .list-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-slate-200);background:var(--color-slate-50)}.admin-content-generator-page .checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer}.admin-content-generator-page .items-scroll{flex:1;overflow-y:auto}.admin-content-generator-page .item-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-slate-100);cursor:pointer;transition:background .15s}.admin-content-generator-page .item-row:hover{background:var(--color-slate-50)}.admin-content-generator-page .item-row.selected{background:var(--color-accent-50)}.admin-content-generator-page .item-info{flex:1;min-width:0}.admin-content-generator-page .item-type{font-size:var(--text-xs);color:var(--color-slate-500);text-transform:uppercase;margin-bottom:var(--space-1)}.admin-content-generator-page .item-preview{font-size:var(--text-sm);color:var(--color-slate-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-content-generator-page .item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.admin-content-generator-page .badge{display:inline-block;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full)}.admin-content-generator-page .badge-success{background:var(--color-green-100);color:var(--color-green-700)}.admin-content-generator-page .badge-warning{background:var(--color-yellow-100);color:var(--color-yellow-700)}.admin-content-generator-page .badge-error{background:var(--color-red-100);color:var(--color-red-700)}.admin-content-generator-page .badge-info{background:var(--color-blue-100);color:var(--color-blue-700)}.admin-content-generator-page .difficulty-badge{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-transform:capitalize}.admin-content-generator-page .difficulty-badge.easy{background:var(--color-green-100);color:var(--color-green-700)}.admin-content-generator-page .difficulty-badge.medium{background:var(--color-yellow-100);color:var(--color-yellow-700)}.admin-content-generator-page .difficulty-badge.hard{background:var(--color-red-100);color:var(--color-red-700)}.admin-content-generator-page .detail-panel{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-slate-200);padding:var(--space-4);display:flex;flex-direction:column}.admin-content-generator-page .empty-detail{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-slate-400)}.admin-content-generator-page .empty-state{text-align:center;padding:var(--space-8);color:var(--color-slate-400)}.admin-content-generator-page .batch-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-slate-200)}.admin-content-generator-page .batch-nav button{padding:var(--space-2) var(--space-3);background:var(--color-slate-100);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm)}.admin-content-generator-page .batch-nav button:disabled{opacity:.5;cursor:not-allowed}.admin-content-generator-page .batch-nav button:not(:disabled):hover{background:var(--color-slate-200)}.admin-content-generator-page .warnings-section{margin-bottom:var(--space-4)}.admin-content-generator-page .warning-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2);font-size:var(--text-sm)}.admin-content-generator-page .warning-item.error{background:var(--color-red-50);color:var(--color-red-700)}.admin-content-generator-page .warning-item.warning{background:var(--color-yellow-50);color:var(--color-yellow-700)}.admin-content-generator-page .warning-item.info{background:var(--color-blue-50);color:var(--color-blue-700)}.admin-content-generator-page .warning-icon{font-size:var(--text-base)}.admin-content-generator-page .content-preview{margin-bottom:var(--space-4)}.admin-content-generator-page .content-preview h3{font-size:var(--text-base);margin-bottom:var(--space-2);color:var(--color-slate-700)}.admin-content-generator-page .preview-content{padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-md)}.admin-content-generator-page .payload-preview strong{display:block;font-size:var(--text-lg);margin-bottom:var(--space-2)}.admin-content-generator-page .payload-preview p{margin-bottom:var(--space-2);color:var(--color-slate-600)}.admin-content-generator-page .payload-preview em{color:var(--color-slate-500);font-style:italic}.admin-content-generator-page .json-editor{margin-top:var(--space-3)}.admin-content-generator-page .json-editor summary{cursor:pointer;font-size:var(--text-sm);color:var(--color-accent);padding:var(--space-2)}.admin-content-generator-page .json-editor textarea{width:100%;font-family:monospace;font-size:var(--text-sm);padding:var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);margin-top:var(--space-2)}.admin-content-generator-page .json-editor button{margin-top:var(--space-2)}.admin-content-generator-page .similar-section,.admin-content-generator-page .existing-section{margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-slate-50);border-radius:var(--radius-md)}.admin-content-generator-page .similar-section h4,.admin-content-generator-page .existing-section h4{font-size:var(--text-sm);color:var(--color-slate-600);margin-bottom:var(--space-3)}.admin-content-generator-page .similar-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);background:#fff;border-radius:var(--radius-sm);margin-bottom:var(--space-2);font-size:var(--text-sm)}.admin-content-generator-page .match-score{font-weight:600;color:var(--color-red-600);min-width:40px}.admin-content-generator-page .match-preview{flex:1;color:var(--color-slate-700)}.admin-content-generator-page .match-reason{font-size:var(--text-xs);color:var(--color-slate-500)}.admin-content-generator-page .existing-list{max-height:200px;overflow-y:auto}.admin-content-generator-page .existing-item{display:flex;gap:var(--space-2);padding:var(--space-2);font-size:var(--text-sm);border-bottom:1px solid var(--color-slate-200)}.admin-content-generator-page .existing-item:last-child{border-bottom:none}.admin-content-generator-page .stats-summary{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-slate-500)}.admin-content-generator-page .action-buttons{display:flex;gap:var(--space-3);margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-slate-200)}.admin-content-generator-page .stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.admin-content-generator-page .stats-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.admin-content-generator-page .stats-card h3{font-size:var(--text-base);color:var(--color-slate-600);margin-bottom:var(--space-4)}.admin-content-generator-page .stat-value{font-size:var(--text-4xl);font-weight:700;color:var(--color-accent)}.admin-content-generator-page .stat-label{font-size:var(--text-sm);color:var(--color-slate-500);margin-top:var(--space-1)}.admin-content-generator-page .stat-details{display:flex;gap:var(--space-4);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-slate-600)}.admin-content-generator-page .stat-breakdown{display:flex;flex-direction:column;gap:var(--space-2)}.admin-content-generator-page .stat-row{display:flex;justify-content:space-between;padding:var(--space-2);background:var(--color-slate-50);border-radius:var(--radius-sm);font-size:var(--text-sm)}.admin-content-generator-page .stat-row.clickable{cursor:pointer;transition:background .15s}.admin-content-generator-page .stat-row.clickable:hover{background:var(--color-slate-100)}@media (max-width: 768px){.admin-page .review-split-view{grid-template-columns:1fr}.admin-page .items-list{max-height:300px}.admin-page .form-grid{grid-template-columns:1fr}}.admin-role-permissions-page .role-permissions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-6);margin-bottom:var(--space-8)}.admin-role-permissions-page .role-card{background:var(--bg-card);border-radius:var(--radius-lg);border:2px solid var(--color-slate-200);overflow:hidden;transition:var(--transition-base)}.admin-role-permissions-page .role-card.editing{box-shadow:0 0 0 3px #3b82f64d}.admin-role-permissions-page .role-card-header{padding:var(--space-4);color:#fff;display:flex;justify-content:space-between;align-items:center}.admin-role-permissions-page .role-card-header h3{margin:0;font-size:var(--text-lg);font-weight:600}.admin-role-permissions-page .role-permission-count{font-size:var(--text-sm);opacity:.9}.admin-role-permissions-page .role-card-description{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-slate-600);background:var(--color-slate-50);border-bottom:1px solid var(--color-slate-200)}.admin-role-permissions-page .role-card-content{padding:var(--space-4);max-height:400px;overflow-y:auto}.admin-role-permissions-page .permission-group{margin-bottom:var(--space-3)}.admin-role-permissions-page .permission-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-slate-100);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:500}.admin-role-permissions-page .permission-group-header:hover{background:var(--color-slate-200)}.admin-role-permissions-page .group-toggle{font-size:.7rem;color:var(--color-slate-500)}.admin-role-permissions-page .group-name{flex:1}.admin-role-permissions-page .group-count{font-size:var(--text-xs);color:var(--color-slate-500)}.admin-role-permissions-page .permission-list{padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.admin-role-permissions-page .permission-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-base)}.admin-role-permissions-page .permission-item:hover:not(.disabled){background:var(--color-slate-100)}.admin-role-permissions-page .permission-item.disabled{opacity:.7;cursor:default}.admin-role-permissions-page .permission-item.active .permission-name{color:var(--color-green-600)}.admin-role-permissions-page .permission-item input[type=checkbox]{accent-color:var(--color-green-500)}.admin-role-permissions-page .permission-name{font-size:var(--text-xs);color:var(--color-slate-700)}.admin-role-permissions-page .role-card-actions{padding:var(--space-4);border-top:1px solid var(--color-slate-200);display:flex;gap:var(--space-2);justify-content:flex-end}.admin-role-permissions-page .permission-legend{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.admin-role-permissions-page .permission-legend h4{margin:0 0 var(--space-4);color:var(--color-slate-700)}.admin-role-permissions-page .legend-items{display:flex;flex-direction:column;gap:var(--space-2)}.admin-role-permissions-page .legend-item{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-slate-600)}.admin-role-permissions-page .legend-color{width:16px;height:16px;border-radius:var(--radius-sm)}.admin-role-permissions-page .legend-color.admin-perms{background:linear-gradient(135deg,var(--color-warning),var(--color-red-500))}.admin-role-permissions-page .legend-color.exercise-perms{background:linear-gradient(135deg,var(--color-green-500),var(--color-green-400))}.admin-role-permissions-page .legend-color.feature-perms{background:linear-gradient(135deg,var(--color-blue-500),var(--color-blue-400))}.admin-organizations-page .layout{display:grid;grid-template-columns:320px 1fr;gap:var(--space-6);align-items:start;min-height:400px}.admin-organizations-page .orgs-panel{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--color-slate-200)}.admin-organizations-page .orgs-panel .panel-header-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.admin-organizations-page .orgs-panel .panel-header-actions h3{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--color-slate-800)}.admin-organizations-page .orgs-panel .search-bar{margin-bottom:var(--space-3)}.admin-organizations-page .orgs-panel .search-bar input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-sm)}.admin-organizations-page .orgs-panel .btn-add-small{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-md);background:var(--color-accent);color:#fff;border:1px solid var(--color-accent);white-space:nowrap}.admin-organizations-page .orgs-list{display:flex;flex-direction:column;gap:var(--space-1)}.admin-organizations-page .org-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;transition:var(--transition-base)}.admin-organizations-page .org-item:hover{background:var(--color-slate-50)}.admin-organizations-page .org-item.active{background:var(--color-blue-50);border-color:var(--color-blue-200)}.admin-organizations-page .org-item-info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.admin-organizations-page .org-item .org-name{display:block;font-weight:600;color:var(--color-slate-800);font-size:var(--text-sm);line-height:1.3}.admin-organizations-page .org-item .org-owner{display:block;font-size:var(--text-xs);color:var(--color-slate-500);line-height:1.3}.admin-organizations-page .org-item .org-group-count{display:block;font-size:var(--text-xs);color:var(--color-slate-500);margin-top:var(--space-1)}.admin-organizations-page .groups-panel{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);border:1px solid var(--color-slate-200);min-height:300px}.admin-organizations-page .select-org-prompt{padding:var(--space-8);text-align:center;color:var(--color-slate-500)}.admin-organizations-page .groups-panel-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-slate-200)}.admin-organizations-page .groups-panel-header h3{margin:0 0 var(--space-1);font-size:var(--text-xl);font-weight:600;color:var(--color-slate-800)}.admin-organizations-page .groups-panel-header .org-meta{margin:0;font-size:var(--text-sm);color:var(--color-slate-500)}.admin-organizations-page .groups-panel-header .header-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.admin-organizations-page .groups-panel-header .header-buttons .btn-edit,.admin-organizations-page .groups-panel-header .header-buttons .btn-delete,.admin-organizations-page .groups-panel-header .header-buttons .btn-add{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-md);white-space:nowrap}.admin-organizations-page .groups-panel-header .header-buttons .btn-edit{background:var(--color-slate-100);border:1px solid var(--color-slate-300);color:var(--color-slate-700)}.admin-organizations-page .groups-panel-header .header-buttons .btn-delete{background:var(--color-red-100);border:1px solid var(--color-red-500);color:var(--color-red-700)}.admin-organizations-page .groups-panel-header .header-buttons .btn-add{background:var(--color-accent);border:1px solid var(--color-accent);color:#fff}.admin-organizations-page .groups-panel-header .header-buttons .btn-add-link{display:inline-block;text-decoration:none;text-align:center;cursor:pointer}.admin-organizations-page .groups-panel-header .header-buttons .btn-add-link:hover{opacity:.9;color:#fff}.admin-organizations-page .groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.admin-organizations-page .group-card{padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-slate-200);background:var(--color-slate-50);display:flex;flex-direction:column;gap:var(--space-3)}.admin-organizations-page .group-card-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.admin-organizations-page .group-card .group-name{font-weight:600;color:var(--color-slate-800);font-size:var(--text-base)}.admin-organizations-page .group-card .group-description{margin:0;font-size:var(--text-sm);color:var(--color-slate-600);line-height:1.4}.admin-organizations-page .group-stats{display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-slate-600)}.admin-organizations-page .group-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.admin-organizations-page .group-actions .btn-view,.admin-organizations-page .group-actions .btn-edit-small,.admin-organizations-page .group-actions .btn-delete-small{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-md);white-space:nowrap}.admin-organizations-page .group-actions .btn-view{color:var(--color-accent);text-decoration:none}.admin-organizations-page .group-actions .btn-view:hover{text-decoration:underline}.admin-organizations-page .group-actions .btn-edit-small{background:var(--color-slate-100);border:1px solid var(--color-slate-300);color:var(--color-slate-700)}.admin-organizations-page .group-actions .btn-delete-small{background:var(--color-red-100);border:1px solid var(--color-red-500);color:var(--color-red-700)}.admin-organizations-page .empty-text{color:var(--color-slate-500);font-size:var(--text-sm);padding:var(--space-4);margin:0}.admin-organizations-page .admin-org-staff-section{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-slate-200)}.admin-organizations-page .admin-org-staff-section .panel-header-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.admin-organizations-page .admin-org-staff-section .staff-header-buttons{display:flex;gap:var(--space-2);flex-wrap:wrap}.admin-organizations-page .admin-org-staff-section .staff-header-buttons .btn-add,.admin-organizations-page .admin-org-staff-section .staff-header-buttons .btn-edit{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-md);white-space:nowrap}.admin-organizations-page .admin-org-staff-section .staff-header-buttons .btn-add{background:var(--color-accent);border:1px solid var(--color-accent);color:#fff}.admin-organizations-page .admin-org-staff-section .staff-header-buttons .btn-edit{background:var(--color-slate-100);border:1px solid var(--color-slate-300);color:var(--color-slate-700)}.admin-organizations-page .admin-org-staff-section .staff-item .btn-delete-small{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-md);white-space:nowrap;background:var(--color-red-100);border:1px solid var(--color-red-500);color:var(--color-red-700)}.admin-organizations-page .admin-org-staff-section .add-staff-box{margin-bottom:var(--space-4)}.admin-organizations-page .admin-org-staff-section .add-staff-box .add-child-hint{font-size:var(--text-sm);color:var(--color-slate-600);margin-bottom:var(--space-3)}.admin-organizations-page .admin-org-staff-section .add-staff-box .label-inline{margin-right:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--color-slate-700)}.admin-organizations-page .admin-org-staff-section .add-staff-box .input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-2)}.admin-organizations-page .admin-org-staff-section .available-staff-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:200px;overflow-y:auto}.admin-organizations-page .admin-org-staff-section .available-staff-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-slate-50);border-radius:var(--radius-md);border:1px solid var(--color-slate-200);font-size:var(--text-sm)}.admin-organizations-page .admin-org-staff-section .available-staff-item .btn-add-small{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-md);background:var(--color-accent);color:#fff;border:1px solid var(--color-accent)}.admin-organizations-page .admin-org-staff-section .staff-list{display:flex;flex-direction:column;gap:var(--space-2)}.admin-organizations-page .admin-org-staff-section .staff-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-slate-50);border-radius:var(--radius-md);border:1px solid var(--color-slate-200)}.admin-organizations-page .admin-org-staff-section .staff-item-info{display:flex;flex-direction:column;gap:var(--space-1)}.admin-organizations-page .admin-org-staff-section .staff-name{font-weight:500;color:var(--color-slate-800);font-size:var(--text-sm)}.admin-organizations-page .admin-org-staff-section .staff-role{font-size:var(--text-xs);color:var(--color-slate-500)}@media (max-width: 768px){.admin-organizations-page .layout{grid-template-columns:1fr}}.group-detail-page{animation:fadeIn .4s ease-out;max-width:1200px;margin:0 auto;padding:var(--space-6)}.back-button{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--color-primary, #6366f1);color:#fff;border-radius:var(--radius-lg);text-decoration:none;font-weight:600;transition:all .2s ease}.back-button:hover{background:var(--color-primary-dark, #4f46e5);transform:translateY(-2px)}.group-header-card{background:linear-gradient(135deg,var(--color-blue-500) 0%,var(--color-purple-600) 100%);border-radius:var(--radius-xl, 16px);padding:var(--space-6);margin-bottom:var(--space-6);color:#fff;position:relative;overflow:hidden}.group-header-card:before{content:"";position:absolute;top:-50%;right:-20%;width:300px;height:300px;background:#ffffff1a;border-radius:50%}.group-header-content{display:flex;align-items:flex-start;gap:var(--space-5);position:relative;z-index:1}.group-icon-wrapper{width:72px;height:72px;background:#fff3;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;flex-shrink:0}.group-icon{font-size:2.5rem}.group-info{flex:1}.group-info h1{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;margin:0 0 var(--space-2)}.group-meta{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-3)}.meta-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);opacity:.9}.meta-icon{font-size:1rem}.group-description{font-size:var(--text-sm);opacity:.85;margin:0;max-width:600px}.back-link{position:absolute;top:var(--space-4);right:var(--space-4);color:#fffc;text-decoration:none;font-size:var(--text-sm);font-weight:500;transition:color .2s ease;z-index:1}.back-link:hover{color:#fff}.tab-panel{animation:fadeIn .3s ease-out}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-5);flex-wrap:wrap;gap:var(--space-4)}.panel-header h2{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--color-slate-800);margin:0}.panel-subtitle{color:var(--color-slate-500);font-size:var(--text-sm);margin:var(--space-1) 0 0}.action-button{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.action-button.primary{background:var(--color-primary, #6366f1);color:#fff}.action-button.primary:hover{background:var(--color-primary-dark, #4f46e5);transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}.action-button.secondary{background:var(--color-slate-200);color:var(--color-slate-700)}.action-button.secondary:hover{background:var(--color-slate-300)}.add-panel{background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-xl);padding:var(--space-5);margin-bottom:var(--space-6);animation:slideIn .3s ease-out}.panel-title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--color-slate-700);margin-bottom:var(--space-4);font-size:var(--text-base)}.add-member-type-toggle{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.add-member-type-toggle button{padding:var(--space-2) var(--space-4);border:2px solid var(--color-slate-200);border-radius:var(--radius-md);background:#fff;font-weight:500;color:var(--color-slate-600);cursor:pointer;transition:border-color .2s,background .2s}.add-member-type-toggle button:hover{border-color:var(--color-slate-300);background:var(--color-slate-50)}.add-member-type-toggle button.active{border-color:var(--color-accent);background:#2563eb14;color:var(--color-accent)}.form-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-4)}.weekdays-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.weekdays-row .checkbox-label{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm)}.form-group.flex-1{flex:1}.form-group.flex-2{flex:2}.form-group label{font-size:var(--text-sm);font-weight:500;color:var(--color-slate-600)}.form-input,.form-select{padding:var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-sm);background:#fff;transition:all .2s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-primary, #6366f1);box-shadow:0 0 0 3px #6366f11a}.content-type-pills{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.type-pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:#fff;border:1px solid var(--color-slate-300);border-radius:var(--radius-full);font-size:var(--text-sm);cursor:pointer;transition:all .2s ease}.type-pill:hover{border-color:var(--color-primary, #6366f1);background:var(--color-slate-50)}.type-pill.active{background:var(--color-primary, #6366f1);border-color:var(--color-primary, #6366f1);color:#fff}.pill-icon{font-size:1rem}.student-list,.content-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto}.student-item,.content-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:#fff;border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);transition:all .2s ease}.student-item:hover,.content-item:hover{border-color:var(--color-primary, #6366f1);box-shadow:var(--shadow-sm)}.student-info,.content-info{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.student-name,.content-title{font-weight:600;color:var(--color-slate-800)}.student-year{font-size:var(--text-xs);color:var(--color-slate-500)}.content-meta{display:flex;gap:var(--space-2)}.difficulty-badge,.category-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm);font-weight:500}.difficulty-badge{background:var(--color-green-100);color:var(--color-green-600)}.difficulty-badge.medium{background:var(--color-amber-100);color:var(--color-orange-600)}.difficulty-badge.hard{background:var(--color-red-100);color:var(--color-red-600)}.category-badge{background:var(--color-slate-100);color:var(--color-slate-600)}.add-student-btn,.assign-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary, #6366f1);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.add-student-btn:hover,.assign-btn:hover{background:var(--color-primary-dark, #4f46e5);transform:translateY(-1px)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10);text-align:center;background:var(--color-slate-50);border-radius:var(--radius-xl);border:2px dashed var(--color-slate-300)}.empty-state.small{padding:var(--space-6);border:none;background:transparent}.empty-icon{font-size:3rem;margin-bottom:var(--space-3)}.empty-state.small .empty-icon{font-size:2rem}.empty-state h3{color:var(--color-slate-700);margin:0 0 var(--space-2)}.empty-state p{color:var(--color-slate-500);margin:0 0 var(--space-4)}.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.member-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-slate-200);transition:all .2s ease}.member-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.member-card.pending{border-left:4px solid var(--color-orange-500)}.member-card.rejected{border-left:4px solid var(--color-error);opacity:.7}.member-card-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.member-identity{display:flex;flex-direction:column;gap:var(--space-1)}.member-name{font-weight:600;color:var(--color-slate-800);font-size:var(--text-base)}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-full);width:fit-content}.status-badge.approved{background:var(--color-green-100);color:var(--color-green-600)}.status-badge.pending{background:var(--color-amber-100);color:var(--color-orange-600)}.status-badge.rejected{background:var(--color-red-100);color:var(--color-red-600)}.platform-role-badge.teacher{display:inline-flex;align-self:flex-start;font-size:var(--text-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-purple-100);color:var(--color-purple-700)}.member-details{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3);background:var(--color-slate-50);border-radius:var(--radius-md)}.detail-row{display:flex;justify-content:space-between;align-items:center}.detail-label{font-size:var(--text-sm);color:var(--color-slate-500)}.detail-value{font-size:var(--text-sm);font-weight:500;color:var(--color-slate-700)}.detail-value.role{font-size:var(--text-xs);background:var(--color-slate-100);padding:2px 8px;border-radius:var(--radius-sm)}.member-notes{font-size:var(--text-sm);color:var(--color-slate-500);font-style:italic;margin:0 0 var(--space-3);padding-left:var(--space-3);border-left:2px solid var(--color-slate-200)}.member-actions{display:flex;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-slate-100)}.member-actions .btn{flex:1;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.member-actions .btn.approve{background:var(--color-green-600);color:#fff}.member-actions .btn.approve:hover{background:var(--color-green-700)}.member-actions .btn.reject{background:var(--color-slate-100);color:var(--color-slate-700)}.member-actions .btn.reject:hover,.member-actions .btn.remove{background:var(--color-red-100);color:var(--color-red-600)}.member-actions .btn.remove:hover{background:var(--color-red-100)}.member-actions .role-select{flex:1;padding:var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-sm);background:#fff}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4)}.assignment-card{background:#fff;border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-slate-200);transition:all .2s ease}.assignment-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.assignment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);flex-wrap:wrap;gap:var(--space-2)}.type-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;padding:4px 10px;border-radius:var(--radius-sm);background:var(--color-slate-100);color:var(--color-slate-600);text-transform:capitalize}.due-badge{font-size:var(--text-xs);font-weight:500;color:var(--color-slate-500)}.due-badge.overdue{color:var(--color-red-600)}.assignment-title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;color:var(--color-slate-800);margin:0 0 var(--space-2)}.assignment-description{font-size:var(--text-sm);color:var(--color-slate-500);margin:0 0 var(--space-4);line-height:1.5}.assignment-stats{display:flex;gap:var(--space-4);padding:var(--space-3);background:var(--color-slate-50);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.assignment-stats .stat{display:flex;flex-direction:column;align-items:center;flex:1}.assignment-stats .stat-number{font-size:var(--text-xl);font-weight:700;color:var(--color-slate-800)}.assignment-stats .stat.progress .stat-number{color:var(--color-primary, #6366f1)}.assignment-stats .stat-label{font-size:var(--text-xs);color:var(--color-slate-500)}.assignment-actions{display:flex;gap:var(--space-2)}.assignment-actions .btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;text-decoration:none;transition:all .2s ease}.assignment-actions .btn.view{background:var(--color-primary, #6366f1);color:#fff}.assignment-actions .btn.view:hover{background:var(--color-primary-dark, #4f46e5)}.assignment-actions .btn.delete{background:var(--color-slate-100);color:var(--color-slate-700)}.assignment-actions .btn.delete:hover{background:var(--color-red-100);color:var(--color-red-600)}@media (max-width: 768px){.group-detail-page{padding:var(--space-4)}.group-header-content{flex-direction:column;align-items:center;text-align:center}.group-meta{justify-content:center}.back-link{position:static;margin-top:var(--space-4);display:block;text-align:center}.panel-header{flex-direction:column;align-items:stretch}.form-row{flex-direction:column}.content-type-pills{overflow-x:auto;flex-wrap:nowrap;padding-bottom:var(--space-2)}.members-grid,.assignments-grid{grid-template-columns:1fr}.assignment-stats{flex-wrap:wrap}}@media (max-width: 480px){.member-actions,.assignment-actions{flex-direction:column}}.admin-assignment-detail-page{max-width:800px;margin:0 auto;padding:var(--space-6)}.admin-assignment-detail-page__back-links{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6)}.admin-assignment-detail-page__back{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--color-accent);text-decoration:none;font-weight:500;border-radius:var(--radius-md);transition:background .2s,color .2s}.admin-assignment-detail-page__back:hover{background:var(--color-slate-100);color:var(--color-accent)}.admin-assignment-detail-page__back--secondary{color:var(--color-slate-600);font-weight:400;font-size:var(--text-sm)}.admin-assignment-detail-page__back--secondary:hover{color:var(--color-slate-800)}.admin-assignment-detail-page__card-actions{margin-bottom:var(--space-4)}.admin-assignment-detail-page__edit-form{display:flex;flex-direction:column;gap:var(--space-4)}.admin-assignment-detail-page__edit-row{display:flex;flex-direction:column;gap:var(--space-1)}.admin-assignment-detail-page__edit-row label{font-size:var(--text-sm);font-weight:500;color:var(--color-slate-700)}.admin-assignment-detail-page__edit-row input[type=text],.admin-assignment-detail-page__edit-row input[type=datetime-local],.admin-assignment-detail-page__edit-row textarea{padding:var(--space-2) var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);font-size:var(--text-sm)}.admin-assignment-detail-page__edit-row--checkbox{flex-direction:row;align-items:center}.admin-assignment-detail-page__edit-row--checkbox label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.admin-assignment-detail-page__edit-hint{font-size:var(--text-xs);color:var(--color-slate-500);margin-top:var(--space-1)}.admin-assignment-detail-page__edit-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.admin-assignment-detail-page__card{background:var(--bg-card);border:1px solid var(--color-slate-200);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:var(--shadow-md)}.admin-assignment-detail-page__card h2{margin:0 0 var(--space-4);font-size:var(--text-xl);font-family:var(--font-heading);color:var(--color-slate-800)}.admin-assignment-detail-page__meta{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-6);margin:0}.admin-assignment-detail-page__meta dt{color:var(--color-slate-500);font-size:var(--text-sm);font-weight:500}.admin-assignment-detail-page__meta dd{margin:0;font-size:var(--text-sm);color:var(--color-slate-800)}.admin-assignment-detail-page__meta dd code{background:var(--color-slate-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs)}.admin-assignment-detail-page__description{margin:var(--space-4) 0 0;padding-top:var(--space-4);border-top:1px solid var(--color-slate-200);color:var(--color-slate-600);font-size:var(--text-sm);line-height:1.6}.admin-assignment-detail-page__empty{margin:0;color:var(--color-slate-500);font-size:var(--text-sm)}.admin-assignment-detail-page__completions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.admin-assignment-detail-page__completion{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg)}.admin-assignment-detail-page__completion-user{font-weight:600;color:var(--color-slate-800)}.admin-assignment-detail-page__year{margin-left:var(--space-2);font-weight:400;font-size:var(--text-sm);color:var(--color-slate-500)}.admin-assignment-detail-page__completion-meta{display:flex;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-slate-600)}.admin-deletion-requests .action-row{display:flex;flex-direction:column;gap:.5rem}.admin-deletion-requests .reject-row{display:flex;gap:.5rem;align-items:center}.admin-deletion-requests .reject-reason-input{flex:1;min-width:120px;padding:.35rem .5rem;font-size:.875rem;border:1px solid var(--color-slate-300);border-radius:4px}.admin-deletion-requests .text-muted{font-size:.8rem;color:var(--color-slate-500)}.admin-deletion-requests .status-badge{padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.admin-deletion-requests .status-pending{background:var(--color-amber-100);color:var(--color-amber-800)}.admin-deletion-requests .status-approved{background:var(--color-green-100);color:var(--color-green-800)}.admin-deletion-requests .status-rejected{background:var(--color-slate-100);color:var(--color-slate-600)}.site-footer{padding:var(--space-4) var(--space-6);text-align:center;font-size:var(--text-sm);color:var(--color-slate-400);border-top:1px solid var(--color-slate-100);background:var(--bg-page)}.site-footer .footer-inner{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex-wrap:wrap}.site-footer .footer-brand{font-weight:600;color:var(--color-slate-500)}.site-footer .footer-separator{color:var(--color-slate-300)}.site-footer .footer-tagline{color:var(--color-slate-400)}.site-footer .footer-link{color:var(--color-accent);text-decoration:none;font-weight:600;transition:var(--transition-fast)}.site-footer .footer-link:hover{text-decoration:underline}.site-footer .footer-version{color:var(--color-slate-400);font-size:.75rem;cursor:default}@media (max-width: 480px){.site-footer .footer-separator:first-of-type,.site-footer .footer-tagline{display:none}}.local-storage-notice{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-slate-100, #f1f5f9);border-bottom:1px solid var(--color-slate-200);font-size:var(--text-sm);flex-wrap:wrap}.local-storage-notice p{margin:0}.local-storage-notice a{color:var(--color-primary, #2563eb);text-decoration:underline}.local-storage-notice__dismiss{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);background:var(--color-slate-200);border:none;border-radius:var(--radius);cursor:pointer}.local-storage-notice__dismiss:hover{background:var(--color-slate-300)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,var(--color-slate-900) 0%,var(--color-slate-800) 100%);padding:var(--space-3) var(--space-6);display:flex;align-items:center;gap:var(--space-4);box-shadow:var(--shadow-lg);position:relative;z-index:1001}.app-header h1{margin:0;font-size:var(--text-xl);color:var(--color-slate-50);font-weight:700}.header-line{display:flex;align-items:center;gap:var(--space-4);flex:1}.header-logo-link{text-decoration:none;color:inherit}.user-greeting{font-size:var(--text-sm);color:var(--color-slate-200);font-weight:600;white-space:nowrap;flex-shrink:0}.header-avatar{font-size:1.5rem;line-height:1;animation:avatar-pop .3s ease-out}@keyframes avatar-pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.header-title{background:linear-gradient(135deg,var(--color-amber-100),var(--color-amber-50));color:var(--color-slate-800);padding:.125rem .5rem;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;white-space:nowrap}.header-right{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;min-width:0}.header-logout-btn{background:none;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);padding:var(--space-1) var(--space-2);line-height:1;transition:all var(--transition-fast);color:var(--color-slate-200)}.header-logout-btn:hover{background:#ffffff26;border-color:#fff6;transform:scale(1.1)}.nav-brand,.nav-greeting,.nav-logout-btn{display:none}.main-nav{display:flex;gap:var(--space-1);background:var(--color-slate-800);padding:var(--space-2) var(--space-6);box-shadow:var(--shadow-md);z-index:1000;position:sticky;top:0;align-items:center;justify-content:center;flex-wrap:wrap}.nav-link,.dropbtn{color:var(--color-slate-50);text-decoration:none;font-weight:500;font-size:var(--text-sm);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:all .2s ease;background:transparent;border:none;cursor:pointer;outline:none;min-height:var(--touch-min);display:flex;align-items:center;justify-content:center;gap:var(--space-1);white-space:nowrap}.nav-link:hover,.nav-link:focus,.dropbtn:hover,.dropbtn:focus,.dropdown.open .dropbtn{background:var(--color-slate-700);color:var(--color-slate-50)}.dropdown-arrow{font-size:.7em;transition:transform .2s ease;display:inline-block}.dropdown.open .dropdown-arrow{transform:rotate(180deg)}.main-nav .nav-notification-center{display:inline-flex;align-items:center}.main-nav .nav-notification-center .notification-bell{color:var(--color-slate-50);width:auto;height:auto;min-height:var(--touch-min, 44px);padding:var(--space-3) var(--space-4)}.main-nav .nav-notification-center .notification-bell:hover{background:var(--color-slate-700);color:var(--color-slate-50)}.main-nav .nav-notification-center .notification-bell svg{width:1.25rem;height:1.25rem;color:inherit}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;top:100%;left:50%;transform:translate(-50%);background:var(--color-slate-800);min-width:220px;box-shadow:0 8px 24px #0000004d;z-index:1001;border-radius:var(--radius-md);padding:var(--space-2);margin-top:var(--space-1);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.dropdown-content.show{display:block;opacity:1;visibility:visible}.dropdown-content:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--color-slate-800)}.dropdown-content a{color:var(--color-slate-50);padding:var(--space-3) var(--space-4);text-decoration:none;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-sm);transition:all .15s ease;margin:2px 0}.dropdown-content a:hover,.dropdown-content a:focus{background:var(--color-slate-600);transform:translate(4px)}.menu-toggle{display:none;background:transparent;border:none;padding:var(--space-2);cursor:pointer;min-height:var(--touch-min);min-width:var(--touch-min);align-items:center;justify-content:center;transition:all .2s ease;z-index:1002;position:relative;border-radius:var(--radius-sm)}.menu-toggle:hover{background:var(--color-slate-700)}.hamburger{display:flex;flex-direction:column;gap:5px;width:24px}.hamburger span{display:block;height:3px;background:var(--color-slate-50);border-radius:2px;transition:all .3s ease;transform-origin:center}.menu-toggle.open .hamburger span:nth-child(1){transform:rotate(45deg) translate(5.5px,5.5px)}.menu-toggle.open .hamburger span:nth-child(2){opacity:0;transform:scaleX(0)}.menu-toggle.open .hamburger span:nth-child(3){transform:rotate(-45deg) translate(5.5px,-5.5px)}.main-content{flex:1;padding:var(--space-8);max-width:1200px;width:100%;margin:0 auto}.app-footer{background:var(--color-slate-900);color:#fffc;text-align:center;padding:var(--space-6);margin-top:auto;font-size:var(--text-sm)}@media (max-width: 1024px){.menu-toggle{display:flex}.main-nav{position:fixed;top:0;left:-280px;width:280px;height:100vh;flex-direction:column;gap:0;padding:var(--space-4);padding-top:80px;background:var(--color-slate-900);box-shadow:4px 0 20px #0000004d;transition:left .3s ease;overflow-y:auto;align-items:stretch;justify-content:flex-start}.main-nav.open{left:0}.main-nav.open:after{content:"";position:fixed;top:0;left:280px;right:0;bottom:0;background:#00000080;z-index:-1}.nav-link{width:100%;justify-content:flex-start;padding:var(--space-4);border-radius:var(--radius-md)}.dropdown{width:100%}.dropbtn{width:100%;justify-content:space-between;padding:var(--space-4);border-radius:var(--radius-md)}.dropdown-content{position:static;transform:none;min-width:100%;margin-top:0;padding:0;padding-left:var(--space-4);background:transparent;box-shadow:none;border-radius:0;max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .3s ease;opacity:0;visibility:visible;display:block}.dropdown-content:before{display:none}.dropdown-content.show{max-height:500px;opacity:1;padding-top:var(--space-2);padding-bottom:var(--space-2)}.dropdown-content a{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-slate-600);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:var(--space-1) 0}.dropdown-content a:hover,.dropdown-content a:focus{border-left-color:var(--color-primary);background:var(--color-slate-800);transform:none}.main-content{padding:var(--space-4)}.app-header{padding:var(--space-3) var(--space-4)}.app-header h1{font-size:var(--text-lg)}}@media (max-width: 480px){.main-nav{width:100%;left:-100%}.main-nav.open:after{display:none}.user-greeting{font-size:var(--text-xs)}.header-logout-btn{font-size:var(--text-sm);padding:2px 6px}.main-content{padding:var(--space-3)}.app-header h1{font-size:var(--text-base)}}@media (min-width: 1025px){.app-header{display:none}.nav-brand{display:inline-block;font-size:var(--text-lg);font-weight:700;color:var(--color-slate-50);text-decoration:none;margin-right:auto;padding:var(--space-2) var(--space-4)}.nav-brand:hover{opacity:.85}.nav-avatar-wrap{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0}.nav-avatar{display:inline-flex;align-items:center;margin-left:auto}.nav-title{background:linear-gradient(135deg,var(--color-amber-100),var(--color-amber-50));color:var(--color-slate-800);padding:.125rem .5rem;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;white-space:nowrap;flex-shrink:0;margin-right:var(--space-1)}.nav-greeting{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-slate-300);margin-left:var(--space-2);font-weight:600;padding:var(--space-2) var(--space-4);white-space:nowrap;flex-shrink:0}.nav-avatar-wrap+.nav-greeting{margin-left:var(--space-2)}.nav-logout-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);cursor:pointer;padding:var(--space-1) var(--space-2);line-height:1;transition:all var(--transition-fast);color:var(--color-slate-200);margin-left:var(--space-2)}.nav-logout-btn:hover{background:#ffffff26;border-color:#fff6;transform:scale(1.1)}}.preview-mode-banner{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:1px solid #ffc107;border-radius:8px;padding:12px 20px;margin-bottom:16px;font-size:.95rem;color:#856404;box-shadow:0 2px 6px #ffc10726}.preview-mode-icon{font-size:1.3rem}.preview-mode-content button[type=submit],.preview-mode-content button:not([class*=nav]):not([class*=tab]):not([class*=toggle]):not([class*=play]):not([class*=close]):not([class*=expand]):not([class*=collapse]):not([class*=filter]):not([class*=pagination]):not([class*=back]):not([class*=menu]){opacity:.5;pointer-events:none;cursor:not-allowed}.preview-mode-content input[type=text],.preview-mode-content input[type=number],.preview-mode-content textarea{opacity:.7;pointer-events:none}:root{--color-slate-900: #0f172a;--color-slate-800: #1e293b;--color-slate-700: #334155;--color-slate-600: #475569;--color-slate-500: #64748b;--color-slate-400: #94a3b8;--color-slate-300: #cbd5e1;--color-slate-200: #e2e8f0;--color-slate-100: #f1f5f9;--color-slate-50: #f8fafc;--color-blue-700: #1d4ed8;--color-blue-600: #2563eb;--color-blue-500: #3b82f6;--color-blue-400: #60a5fa;--color-blue-200: #bfdbfe;--color-blue-100: #dbeafe;--color-blue-50: #eff6ff;--color-orange-700: #c2410c;--color-orange-600: #ea580c;--color-orange-500: #f97316;--color-orange-400: #fb923c;--color-amber-600: #d97706;--color-amber-500: #f59e0b;--color-amber-100: #fef3c7;--color-amber-50: #fff5d9;--color-yellow-50: #fefce8;--color-green-700: #15803d;--color-green-600: #16a34a;--color-green-500: #22c55e;--color-green-400: #4ade80;--color-green-100: #dcfce7;--color-red-700: #b91c1c;--color-red-600: #dc2626;--color-red-500: #ef4444;--color-red-100: #fee2e2;--color-purple-600: #9333ea;--color-purple-500: #a855f7;--color-white: #ffffff;--color-primary: var(--color-slate-900);--color-primary-light: var(--color-slate-700);--color-accent: var(--color-blue-600);--color-accent-dark: #1d4ed8;--color-accent-light: var(--color-blue-400);--color-success: var(--color-green-500);--color-warning: var(--color-orange-500);--color-error: var(--color-red-500);--text-on-primary: var(--color-white);--text-on-accent: var(--color-white);--bg-page: radial-gradient(circle at top left, var(--color-slate-50) 0%, var(--color-slate-50) 18%, #f8fafc 55%, #e0f2fe 100%);--bg-page-secondary: linear-gradient(135deg, var(--color-blue-100) 0%, var(--color-amber-50) 100%);--bg-card: var(--color-white);--bg-dark: var(--color-slate-900);--bg-accent-light: rgba(37, 99, 235, .1);--gradient-cta: linear-gradient(120deg, var(--color-slate-900), var(--color-blue-600));--gradient-cta-hover: linear-gradient(120deg, var(--color-slate-800), var(--color-blue-500));--font-body: "DM Sans", "Segoe UI", system-ui, sans-serif;--font-heading: "Fraunces", "Georgia", serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: clamp(1.75rem, 4vw, 2rem);--text-4xl: clamp(2rem, 5vw, 2.5rem);--text-5xl: clamp(2.5rem, 5vw, 3.5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--radius-full: 999px;--shadow-sm: 0 2px 8px rgba(15, 23, 42, .06);--shadow-md: 0 8px 18px rgba(15, 23, 42, .1);--shadow-lg: 0 15px 30px rgba(15, 23, 42, .08);--shadow-xl: 0 20px 40px rgba(15, 23, 42, .12);--shadow-cta: 0 16px 30px rgba(37, 99, 235, .25);--shadow-accent-ring: 0 0 0 3px rgba(37, 99, 235, .3);--shadow-blue-glow: 0 8px 24px rgba(59, 130, 246, .3);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--touch-min: 44px;--input-height: 48px;--primary-color: var(--color-blue-500);--primary-dark: var(--color-blue-600);--primary-light: var(--color-blue-400);--secondary-color: var(--color-slate-600);--danger-color: var(--color-red-500);--warning-color: var(--color-orange-500);--background: #f8fafc;--card-background: #ffffff;--text-primary: var(--color-slate-800);--text-secondary: var(--color-slate-500);--border-color: #e2e8f0;--shadow: var(--shadow-sm);--shadow-hover: var(--shadow-md);--focus-ring: 0 0 0 3px rgba(59, 130, 246, .2);--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-6);--spacing-xl: var(--space-8);--spacing-2xl: var(--space-12);--font-xs: var(--text-xs);--font-sm: var(--text-sm);--font-md: var(--text-base);--font-lg: var(--text-lg);--font-xl: var(--text-xl);--font-2xl: var(--text-2xl);--touch-target-min: var(--touch-min)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;padding:0;font-family:var(--font-body);background:var(--bg-page);color:var(--color-slate-900);line-height:1.6;min-height:100vh}html,body{overflow-x:hidden;max-width:100vw}#root{min-height:100vh}*{-webkit-tap-highlight-color:rgba(37,99,235,.1)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;margin:0;color:inherit}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}p{margin:0;color:inherit}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-blue-500)}button{cursor:pointer;border:none;outline:none;font-family:inherit;transition:all .2s ease}button:disabled{opacity:.5;cursor:not-allowed}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),textarea{font-family:inherit;outline:none;width:100%;padding:var(--space-3) var(--space-4);min-height:var(--input-height);border:2px solid var(--color-slate-200);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-slate-900);background:#fff;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color])::placeholder,textarea::placeholder{color:var(--color-slate-400)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb26}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):disabled,textarea:disabled{background:var(--color-slate-100);color:var(--color-slate-400);cursor:not-allowed}textarea{min-height:120px;resize:vertical}select{font-family:inherit;outline:none}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:10px 36px 10px 14px;border:1px solid var(--color-slate-300);border-radius:8px;font-size:14px;font-family:inherit;background-color:#fff;color:var(--color-slate-700);cursor:pointer;transition:all .2s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2.5 4.5L6 8l3.5-3.5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px}select:hover{border-color:var(--color-slate-400);background-color:var(--color-slate-50)}select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb26}select:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-slate-100)}select[multiple]{padding:8px;background-image:none;min-height:100px}select[multiple] option{padding:8px 12px;border-radius:4px;margin-bottom:2px}select[multiple] option:checked{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff}img{max-width:100%;height:auto;display:block}ul,ol{margin:0;padding:0;list-style:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInWord{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideIn{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 10px #3b82f600}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes confettiFall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes starBurst{0%{transform:scale(0) rotate(0);opacity:1}to{transform:scale(1) rotate(180deg);opacity:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes progressPulse{0%,to{opacity:1}50%{opacity:.7}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-fadeInUp{animation:fadeInUp .4s ease-out}.animate-fadeInDown{animation:fadeInDown .4s ease-out}.animate-fadeInScale{animation:fadeInScale .3s ease-out}.animate-slideIn{animation:slideIn .3s ease-out}.animate-slideUp{animation:slideUp .3s ease-out}.animate-bounceIn{animation:bounceIn .5s ease-out}.animate-pop{animation:pop .3s ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-wiggle{animation:wiggle .5s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-breathe{animation:breathe 4s ease-in-out infinite}.animate-shimmer{animation:shimmer 2s linear infinite;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);background-size:200% 100%}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.m-0{margin:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.ml-2{margin-left:var(--space-2)}.ml-4{margin-left:var(--space-4)}.mr-2{margin-right:var(--space-2)}.mr-4{margin-right:var(--space-4)}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.w-full{width:100%}.w-auto{width:auto}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.hidden{display:none}.grid{display:grid}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-slate-900{color:var(--color-slate-900)}.text-slate-700{color:var(--color-slate-700)}.text-slate-600{color:var(--color-slate-600)}.text-slate-500{color:var(--color-slate-500)}.text-slate-400{color:var(--color-slate-400)}.text-white{color:var(--color-white)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.bg-white{background-color:var(--color-white)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-transparent{background-color:transparent}.rounded{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-none{box-shadow:none}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.transition{transition:all var(--transition-base)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 480px){.hide-mobile{display:none!important}}@media (min-width: 768px){.hide-desktop{display:none!important}}@media (max-width: 768px){.hide-tablet{display:none!important}}.page{min-height:100vh;padding:clamp(var(--space-4),4vw,var(--space-8))}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-lg);border:1px solid rgba(15,23,42,.05)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl);transition:all var(--transition-base)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);min-height:var(--touch-min);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--gradient-cta);color:#fff;box-shadow:var(--shadow-cta)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 35px #2563eb4d}.btn-secondary{background:#fff;color:var(--color-slate-900);border:2px solid var(--color-slate-900)}.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;color:var(--color-slate-900)}.btn-ghost:hover:not(:disabled){background:#0f172a0d}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 25px #22c55e4d}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 25px #ef44444d}.btn-block{width:100%}.btn-sm{padding:var(--space-2) var(--space-4);min-height:36px;font-size:var(--text-sm)}.btn-lg{padding:var(--space-4) var(--space-8);min-height:52px;font-size:var(--text-lg)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-weight:600;font-size:var(--text-sm);color:var(--color-slate-700)}.form-input{width:100%;padding:var(--space-3) var(--space-4);min-height:var(--input-height);border:2px solid var(--color-slate-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);color:var(--color-slate-900);background:#fff;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input::placeholder{color:var(--color-slate-400)}.form-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb26}.form-input:disabled{background:var(--color-slate-100);color:var(--color-slate-400);cursor:not-allowed}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.form-input.input-error{border-color:var(--color-red-500, #ef4444);background-color:#ef444408}.form-input.input-error:focus{border-color:var(--color-red-500, #ef4444);box-shadow:0 0 0 3px #ef44441a}.form-group .field-error{display:block;color:var(--color-red-500, #ef4444);font-size:var(--text-xs);margin-top:var(--space-1);font-weight:500}.form-group .field-hint{display:block;color:var(--color-slate-400);font-size:var(--text-xs);margin-top:var(--space-1)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:500}.alert-error{background:var(--color-red-100);color:var(--color-red-600);border-left:4px solid var(--color-error)}.alert-success{background:var(--color-green-100);color:var(--color-green-600);border-left:4px solid var(--color-success)}.alert-warning{background:var(--color-amber-100);color:var(--color-orange-600);border-left:4px solid var(--color-warning)}.alert-info{background:var(--color-blue-100);color:var(--color-blue-600);border-left:4px solid var(--color-accent)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page);padding:var(--space-4)}.auth-container{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;width:100%;background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl)}@media (max-width: 768px){.auth-container{grid-template-columns:1fr;max-width:480px}}.auth-form-section{padding:var(--space-10) var(--space-8);display:flex;flex-direction:column;justify-content:center}.auth-form-section h1{margin-bottom:var(--space-2)}.auth-form-section .subtitle{color:var(--color-slate-500);margin-bottom:var(--space-8)}@media (max-width: 768px){.auth-form-section{padding:var(--space-8) var(--space-6)}}.auth-kicker{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:#0f172a14;color:var(--color-slate-900);font-size:var(--text-sm);font-weight:700;width:fit-content;margin-bottom:var(--space-4)}.auth-brand{display:flex;flex-direction:column;margin-bottom:var(--space-4)}.auth-brand-name{font-family:var(--font-heading);font-size:1.6rem;font-weight:800;color:var(--color-slate-900);line-height:1.1}.auth-brand-tagline{font-size:var(--text-sm);color:var(--color-slate-500);margin-top:.15rem}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.auth-highlights{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6)}.auth-highlight{background:#fff;border:1px solid rgba(15,23,42,.08);color:var(--color-slate-700);border-radius:var(--radius-full);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:600;box-shadow:var(--shadow-sm)}.auth-sidebar{padding:var(--space-12) var(--space-8);background:var(--gradient-cta);color:#fff;display:flex;flex-direction:column;justify-content:center}.auth-sidebar h2{color:#fff;margin-bottom:var(--space-2)}.auth-sidebar p{color:#ffffffe6;margin-bottom:var(--space-8)}@media (max-width: 768px){.auth-sidebar{display:none}}.auth-footer{margin-top:var(--space-6);text-align:center;color:var(--color-slate-500);font-size:var(--text-sm)}.auth-footer a{font-weight:600}.benefits-list{display:flex;flex-direction:column;gap:var(--space-5)}.benefit-item{display:flex;align-items:flex-start;gap:var(--space-4)}.benefit-icon{width:48px;height:48px;background:#fff3;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.benefit-text h4{color:#fff;font-size:var(--text-base);margin-bottom:var(--space-1)}.benefit-text p{font-size:var(--text-sm);color:#fffc}.pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;background:#fff;box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;background:var(--color-slate-900);color:var(--color-amber-100)}.password-hints{padding:var(--space-4);background:var(--color-slate-50);border-radius:var(--radius-sm);border-left:4px solid var(--color-accent)}.password-hints h5{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-2);color:var(--color-slate-700)}.password-hints ul{margin:0;padding-left:var(--space-5);font-size:var(--text-sm);color:var(--color-slate-600);list-style:disc}.password-hints li{margin:var(--space-1) 0}.dark-theme{--color-primary: #ffffff;--color-primary-light: #e2e8f0;--color-slate-900: #ffffff;--color-slate-800: #f1f5f9;--color-slate-700: #e2e8f0;--color-slate-600: #cbd5e1;color-scheme:dark}.dark-theme .user-greeting,.dark-theme .header-logout-btn{color:#fff}.dark-theme .main-nav{background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dark-theme .card,.dark-theme .auth-card,.dark-theme .exercise-card,.dark-theme .module-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:#fff}.dark-theme .card h2,.dark-theme .card h3,.dark-theme .card h4,.dark-theme .card p,.dark-theme .auth-card h2,.dark-theme .auth-card h3,.dark-theme .auth-card h4,.dark-theme .auth-card p,.dark-theme .exercise-card h2,.dark-theme .exercise-card h3,.dark-theme .exercise-card h4,.dark-theme .exercise-card p,.dark-theme .module-card h2,.dark-theme .module-card h3,.dark-theme .module-card h4,.dark-theme .module-card p{color:#fff}.dark-theme .header-title{background:linear-gradient(135deg,#fff3,#ffffff1a);color:#fff}
