:root{--brand: #c8102e;--brand-dark: #9d0b23;--navy: #1b2a5b;--bg: #f4f6fb;--card: #ffffff;--text: #1f2937;--muted: #6b7280;--ok: #16a34a;--bad: #dc2626;--radius: 16px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--navy);text-decoration:none}h1{font-size:1.8rem;margin:.5rem 0 1rem}h2{font-size:1.2rem;margin:0 0 .75rem}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--card);box-shadow:0 1px 4px #00000014}.topbar nav{display:flex;gap:1rem;align-items:center}.brand{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:1.2rem;color:var(--navy);letter-spacing:-.02em}.brand-word em{font-style:normal;color:var(--brand)}.wordmark{width:100%;max-width:320px;display:block;margin:0 auto .25rem}.hero{text-align:center;padding:1.5rem 1rem .5rem}.hero .button{margin-bottom:1rem}.tagline{text-align:center;color:var(--navy);font-style:italic;margin:0 0 1rem}.content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:1rem}.footer{text-align:center;padding:1rem;font-size:.8rem}.muted{color:var(--muted)}.error{color:var(--bad)}.card{background:var(--card);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:0 2px 8px #0000000f}.narrow{max-width:420px;margin-left:auto;margin-right:auto}.center{text-align:center}label{display:block;margin-bottom:.75rem;font-weight:600}input{display:block;width:100%;margin-top:.25rem;padding:.6rem;border:1px solid #d1d5db;border-radius:10px;font-size:1rem}button,.button{font:inherit;cursor:pointer;border:none;border-radius:12px;padding:.6rem 1.1rem;display:inline-block}button:disabled{cursor:default;opacity:.6}.primary{background:var(--brand);color:#fff;font-weight:600}.primary:hover:not(:disabled){background:var(--brand-dark)}.secondary{background:#e5e7eb;color:var(--text)}.link{background:none;color:var(--brand-dark);padding:0}.tiles{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.tile{display:block;position:relative;padding:1.25rem;border-radius:var(--radius);color:#fff;min-height:130px;transition:transform .15s}.tile:hover{transform:translateY(-3px)}.tile h2{color:#fff}.tile p{margin:0;opacity:.9;font-size:.9rem}.tile-soon{opacity:.6}.badge{position:absolute;top:.75rem;right:.75rem;background:#ffffffe6;color:var(--text);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600}.theme-kids.tile{background:linear-gradient(135deg,#c8102e,#e8405a)}.theme-teens.tile{background:linear-gradient(135deg,#1b2a5b,#3b5bdb)}.theme-adults.tile{background:linear-gradient(135deg,#2c3e50,#5c7cfa)}.progressbar{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;flex:1}.progressbar>div{height:100%;background:var(--ok);transition:width .3s}.lessons{list-style:none;padding:0;margin:0}.lessons li{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #f3f4f6}.lesson-head{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.exercise{min-height:320px;display:flex;flex-direction:column;gap:1rem}.options{display:grid;gap:.6rem}.option{background:#f3f4f6;text-align:left;padding:.9rem 1rem;font-size:1.05rem}.option.selected{outline:2px solid var(--brand)}.option.correct{background:#dcfce7}.flashcard{background:#fff;border:2px dashed var(--navy);min-height:160px;display:flex;flex-direction:column;justify-content:center;gap:.5rem;font-size:1.1rem}.flashcard-front{font-size:2rem;font-weight:700}.flashcard-back{color:var(--brand);font-size:1.4rem}.actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}.sentence{font-size:1.3rem;line-height:2.2}.gap{display:inline-block;width:9rem;margin:0 .3rem}.sentence-builder,.word-bank{display:flex;flex-wrap:wrap;gap:.5rem;min-height:3rem;padding:.5rem;border-radius:12px}.sentence-builder{background:#f9fafb;border:1px dashed #d1d5db}.chip{background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:.4rem .9rem}.chip.chosen{background:#e7ecff;border-color:var(--navy)}.chip.selected{outline:2px solid var(--brand)}.matching{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.column{display:flex;flex-direction:column;gap:.5rem}.verdict{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem;border-radius:12px;margin-top:auto}.verdict.ok{background:#dcfce7;color:#166534}.verdict.bad{background:#fee2e2;color:#991b1b}.verdict button{margin-left:auto}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1rem}.stat{background:var(--card);border-radius:var(--radius);padding:1rem;text-align:center}.stat strong{display:block;font-size:2rem;color:var(--navy)}.points{font-size:1.3rem;color:var(--ok);font-weight:700}@media (max-width: 600px){.matching{grid-template-columns:1fr}.content{padding:.75rem}}.daily-strip{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;background:var(--card);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;box-shadow:0 2px 8px #0000000f}.daily-item{display:flex;align-items:center;gap:.4rem}.daily-item strong{font-size:1.1rem}.daily-icon{font-size:1.4rem}.goal{flex:1;min-width:180px}.goal-body{flex:1;display:flex;flex-direction:column;gap:.25rem}.progressbar.small{height:6px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}.day{display:flex;flex-direction:column;align-items:center;gap:.2rem;font-size:.8rem}.day .dot{width:34px;height:34px;border-radius:50%;background:#f3f4f6;display:grid;place-items:center;font-weight:600}.day.active .dot{background:#ffe1e6}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.badge-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem;padding:.9rem .5rem;border-radius:12px;background:#eef2ff;border:1px solid #c7d2fe;font-size:.85rem}.badge-card.locked{background:#f9fafb;border-color:#e5e7eb;opacity:.7}.badge-icon{font-size:2rem}.new-badges{margin:1rem 0}.big-score{font-size:3rem;font-weight:800;color:var(--navy);margin:0}.center-actions{justify-content:center}.summary{position:relative;overflow:hidden}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.confetti span{position:absolute;top:-10px;width:8px;height:14px;border-radius:2px;animation:confetti-fall 2.2s ease-out forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(420px) rotate(540deg);opacity:0}}@media (prefers-reduced-motion: reduce){.confetti{display:none}}.speak{background:#fff;border:1px solid #c7d2fe;border-radius:999px;padding:.3rem .6rem;font-size:1.1rem}.flashcard-row{display:flex;justify-content:flex-end}kbd{display:inline-block;min-width:1.4rem;text-align:center;font-size:.75rem;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:0 .3rem;margin-right:.4rem;color:var(--muted)}.student-table{overflow-x:auto}.student-table table{width:100%;border-collapse:collapse;text-align:left}.student-table th,.student-table td{padding:.75rem;border-bottom:1px solid #f3f4f6}.student-table tbody tr{cursor:pointer}.student-table tbody tr:hover{background:var(--bg)}.student-table .chip{display:inline-block;margin:.15rem}.program-assignment{border:0;padding:0;margin-bottom:1rem}.program-assignment label{display:flex;align-items:center;gap:.5rem}.program-assignment input{display:inline-block;width:auto;margin:0}.student-progress .lessons li>div{width:100%}.users-table{overflow-x:auto}.users-table table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:.6rem;text-align:left;vertical-align:top}.users-table caption{text-align:left;font-weight:700;margin-bottom:.75rem}.cms-program{margin-bottom:1rem}.cms-program summary{cursor:pointer;font-weight:700}.cms-topic{margin:1rem 0;padding-left:1rem;border-left:2px solid #ddd}.cms-inline,.cms-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0}.lessons .cms-lesson{display:block;padding:1rem}.cms-form fieldset{border:0;padding:0;display:grid;gap:.75rem;min-width:0}.cms-form label{display:grid;gap:.25rem}.cms-form textarea{min-height:6rem;font:inherit;padding:.5rem}.cms-inline input{max-width:100%}.cms-form input[type=radio]{display:inline-block;width:auto}.topbar{position:relative;flex-wrap:wrap}.topbar nav a.active{font-weight:700}.menu-toggle{display:none;background:none;font-size:1.5rem;padding:.2rem .5rem}@media (max-width: 720px){.menu-toggle{display:inline-block}.topbar nav{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:.75rem;padding-top:.75rem}.topbar nav.open{display:flex}.user-name{order:-1}}.cms .cms-program{position:relative;padding:.85rem 1rem}.cms .cms-program>summary{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;min-height:36px}.cms .cms-program-title{overflow-wrap:anywhere}.cms .cms-badge,.cms .cms-type-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .65rem;background:#ffedd5;color:var(--brand-dark);font-size:.78rem;font-weight:700;white-space:nowrap}.cms .cms-edit-program{margin-left:auto}.cms .cms-program-form{margin:.75rem 0 1rem}.cms .cms-program-form label{flex:1 1 10rem;min-width:0;margin:0}.cms .cms-program-form input,.cms .cms-program-form select,.cms .cms-inline input{min-width:0}.cms .cms-topic{margin:.75rem 0;padding:.55rem 0 .25rem .75rem;border-left:2px solid #fed7aa}.cms .cms-topic-row,.cms .cms-lesson-row,.cms .cms-exercise-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.cms .cms-topic-row>strong{overflow-wrap:anywhere}.cms .cms-topic-row>.muted{margin-left:auto;white-space:nowrap}.cms .cms-topic-row button,.cms .cms-lesson-row button,.cms .cms-exercise-row button,.cms .cms-inline button,.cms .cms-edit-program{min-height:36px;padding:.35rem .65rem;border-radius:9px}.cms .cms-inline{align-items:end}.cms .cms-inline label{flex:1 1 10rem;min-width:0;margin:0}.cms .cms-add{margin:.5rem 0}.cms .cms-add input{flex:1 1 12rem}.cms .cms-lessons{margin-top:.35rem}.cms .cms-lesson-row{justify-content:flex-start;padding:.45rem 0;border-bottom:1px solid #f3f4f6}.cms .cms-lesson-row>a{flex:1 1 12rem;min-width:0;font-weight:650;overflow-wrap:anywhere}.cms .cms-lesson-row>.muted{white-space:nowrap}.cms .cms-status{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:.15rem .55rem;font-size:.76rem;font-weight:700;white-space:nowrap}.cms .cms-status.published{color:#166534;background:#dcfce7}.cms .cms-status.hidden{color:#4b5563;background:#e5e7eb}.cms .cms-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.25rem 0 .9rem;font-size:.9rem}.cms .cms-breadcrumbs>span{color:var(--muted)}.cms .cms-exercise-list{display:grid;gap:.6rem;margin-bottom:.75rem}.cms .cms-exercise-card{padding:.7rem;margin:0}.cms .cms-exercise-row{flex-wrap:nowrap}.cms .cms-exercise-preview{flex:1 1 auto;min-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cms .cms-form{margin-top:.75rem}.cms .cms-form fieldset{border:0;padding:0;margin:0;min-width:0}.cms .cms-form .cms-choice-list,.cms .cms-form .cms-pairs{border:1px solid #e5e7eb;border-radius:10px;padding:.75rem;margin:.75rem 0}.cms .cms-form legend{padding:0 .25rem;font-weight:700}.cms .cms-editor-row{align-items:end;padding:.4rem 0;border-bottom:1px solid #f3f4f6}.cms .cms-correct{flex:0 0 auto;display:flex;align-items:center;gap:.35rem;min-height:36px}.cms .cms-correct input{width:auto;margin:0}.cms .cms-form textarea{width:100%;border:1px solid #d1d5db;border-radius:10px}.theme-kids .option{min-height:56px;font-size:1.2rem}.theme-kids .flashcard-front{font-size:2.6rem}.theme-kids .chip{min-height:48px;padding:.65rem 1.1rem;font-size:1.1rem}@media (max-width: 600px){.cms .cms-program{padding:.75rem}.cms .cms-program>summary{padding-top:.1rem}.cms .cms-topic{padding-left:.5rem}.cms .cms-topic-row>.muted{margin-left:0}.cms .cms-lesson-row>a{flex-basis:100%}.cms .cms-exercise-row{flex-wrap:wrap}.cms .cms-exercise-preview{order:2;flex:1 1 100%}.cms .cms-form .cms-actions{justify-content:flex-start}.cms .cms-editor-row>label{flex-basis:100%}}.exercise-image{display:block;max-width:100%;max-height:320px;object-fit:contain;margin:0 auto 1rem}.media-play{font-size:2rem;min-width:64px;min-height:64px}audio{max-width:100%}.topic-test{margin:.25rem 0 .75rem;font-size:.9rem}
