:root{font-family:"Segoe UI Variable","Segoe UI",Roboto,Arial,sans-serif;color:#172033;background:#f7f9fc;--ink:#172033;--muted:#667085;--line:#e2e8f0;--blue:#466b9e;--blue-soft:#eef5ff;--orange:#d97706;--orange-soft:#fff7ed}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,#f7f9fc,#fffaf3);min-height:100vh;color:var(--ink)}
.public-shell{width:min(820px,100%);margin:auto;padding:22px}.public-hero{background:linear-gradient(135deg,#fff,#f3f7fc);border:1px solid #dfe7f0;border-radius:18px;padding:26px;margin-bottom:16px;box-shadow:0 10px 30px rgba(15,23,42,.055)}
.public-hero h1{margin:6px 0;font-size:30px;letter-spacing:-.025em;font-weight:720}.public-hero p{margin:5px 0;color:var(--muted);line-height:1.55}.eyebrow{font-weight:700;font-size:11px;color:var(--blue);letter-spacing:.08em}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;margin:13px 0;box-shadow:0 7px 22px rgba(15,23,42,.04)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stats article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}.stats span,.stats small{display:block;color:var(--muted);font-size:11px;font-weight:600}.stats strong{display:block;font-size:27px;color:#3f6d65;margin:4px 0;font-weight:720}
h2{font-size:17px;margin:0 0 12px;font-weight:700;letter-spacing:-.01em}.grade-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.grade{background:var(--blue-soft);border:1px solid #d9e6f4;border-radius:11px;padding:12px;text-align:center}.grade b{font-size:21px;color:#365f91}.grade span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.note{white-space:pre-wrap;line-height:1.65;margin:0}.action-panel{display:flex;align-items:center;justify-content:space-between;gap:12px}.action-panel p{margin:4px 0;color:var(--muted);font-size:12px}.primary-link,.primary-btn{display:inline-block;border:0;border-radius:11px;background:#466b9e;color:#fff;padding:11px 14px;text-decoration:none;font-weight:650;cursor:pointer;box-shadow:0 5px 14px rgba(70,107,158,.16)}.updated,footer{text-align:center;color:#98a2b3;font-size:11px}.hidden{display:none!important}.error{border-color:#fecaca;color:#b91c1c;background:#fff1f2}
.kids-hero{background:linear-gradient(135deg,#fff,#f4f7fb)}.game-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.game-tab{padding:12px;border-radius:11px;border:1px solid #dce4ed;background:white;font-weight:650;cursor:pointer}.game-tab.active{background:#466b9e;color:white}.game-score{display:flex;justify-content:space-between;font-size:13px;color:#466b9e;font-weight:650}.game-card{text-align:center}.game-card h2{font-size:28px;margin:22px 0}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.answer{padding:14px;border-radius:12px;border:1px solid #dfe5ec;background:white;font-size:18px;font-weight:650;cursor:pointer}.answer:hover{border-color:#8ca9ca}.answer.correct{background:#ecfdf3;border-color:#86d5a8}.answer.wrong{background:#fff1f2;border-color:#f3a6ad}.feedback{height:32px;padding-top:8px;font-weight:650}.primary-btn{margin-top:10px;min-width:130px}
.lesson-picker-panel{margin-bottom:10px}.lesson-select{border:1px solid #d8e0e8;border-radius:10px;padding:9px 10px;background:white;font-weight:600;max-width:100%}.entry-card{display:flex;flex-direction:column;gap:9px}.entry-card label{font-size:12px;font-weight:650;color:#475467}.entry-input{width:100%;border:1px solid #cdd9e7;border-radius:12px;padding:14px;font-size:18px;font-weight:650;text-transform:uppercase;outline:none}.entry-input:focus{border-color:#668bb8;box-shadow:0 0 0 3px #dce8f633}.pet-panel{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,#fffaf3,#f3f7fc)}
.back-home{position:fixed;left:14px;top:14px;z-index:50;background:rgba(255,255,255,.96);border:1px solid #dfe5ec;border-radius:11px;padding:8px 11px;box-shadow:0 7px 22px rgba(15,23,42,.08);color:#466b9e!important;font-size:12px;font-weight:650;text-decoration:none}.back-home:hover{background:#f7f9fc}
@media(max-width:560px){.public-shell{padding:10px}.public-hero{padding:18px}.public-hero h1{font-size:25px}.grade-grid{grid-template-columns:1fr 1fr}.action-panel{display:block}.primary-link{margin-top:10px}.stats article{padding:10px}.stats strong{font-size:22px}.lesson-select{width:100%;margin-top:8px}.back-home{position:static;display:inline-block;margin:10px 0 0 10px}}

.roadmap-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.roadmap-head b{font-size:17px;color:#1e40af}.roadmap-head div div{font-size:11px;color:#64748b;margin-top:3px}.roadmap-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.roadmap-item{width:100%;display:grid;grid-template-columns:34px 1fr 20px;gap:9px;align-items:center;text-align:left;padding:10px;border-radius:12px;border:1px solid #bfdbfe;background:#f8fbff;color:#1e293b;cursor:pointer}.roadmap-item.planned{border-color:#ddd6fe;background:#faf5ff}.roadmap-number{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#dbeafe;color:#1d4ed8;font-weight:900}.roadmap-item.planned .roadmap-number{background:#ede9fe;color:#7c3aed}.roadmap-copy b{display:block;font-size:13px}.roadmap-copy small{display:block;font-size:10px;color:#64748b;margin-top:2px}.roadmap-copy em{display:inline-block;font-size:9px;font-style:normal;color:#c2410c;margin-top:4px}.roadmap-arrow{font-size:22px;color:#94a3b8}.roadmap-empty{padding:18px;text-align:center;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b;font-size:11px;line-height:1.5}.roadmap-back{border:0;background:transparent;color:#2563eb;font-weight:800;cursor:pointer;padding:0 0 10px}.roadmap-detail-title{padding-bottom:10px;border-bottom:1px solid #e2e8f0}.roadmap-detail-title small{font-size:10px;color:#7c3aed;font-weight:900}.roadmap-detail-title h2{margin:4px 0 0;color:#1e3a8a}.roadmap-block{margin-top:12px;padding:11px;border-radius:11px;background:#f8fafc;border:1px solid #e2e8f0}.roadmap-block>b{font-size:11px;color:#475569}.roadmap-block p{white-space:pre-line;margin:5px 0 0;font-size:13px;line-height:1.55;color:#1e293b}.roadmap-due{margin-top:10px;padding:9px;border-radius:9px;background:#fff7ed;color:#9a3412;font-size:11px}.roadmap-download{display:block;text-align:center;text-decoration:none;margin-top:10px}.roadmap-result{margin-top:13px;padding:12px;border-radius:11px;background:#ecfdf5;border:1px solid #a7f3d0;color:#166534}.roadmap-result>b{font-size:12px}.roadmap-result p{margin:5px 0 0;font-size:11px}.roadmap-comment{padding-top:6px;border-top:1px solid #bbf7d0;white-space:pre-line}
.parent-public-journal{display:flex;flex-direction:column;gap:8px}.parent-public-journal article{padding:10px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff}.parent-public-journal b{font-size:12px;color:#1e3a8a}.parent-public-journal small{display:block;margin-top:3px;color:#0f766e;font-size:10px;font-weight:800}.parent-public-journal p{margin:5px 0 0;font-size:11px;line-height:1.45;color:#475569;white-space:pre-line}
.entry-card{display:flex;flex-direction:column;gap:9px}.entry-card label{font-size:12px;font-weight:900;color:#475569}.entry-input{width:100%;border:2px solid #ddd6fe;border-radius:13px;padding:14px;font-size:18px;font-weight:900;text-transform:uppercase;outline:none}.entry-input:focus{border-color:#8b5cf6}.pet-panel{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,#fff7ed,#faf5ff)}.pet-avatar{width:70px;height:70px;border-radius:22px;background:white;border:2px solid #fde68a;display:flex;align-items:center;justify-content:center;font-size:42px;box-shadow:0 8px 18px #f59e0b22}.pet-meta{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0;color:#7c3aed;font-size:12px}.pet-panel small{color:#64748b}.coin-chip{font-size:10px;background:#fef3c7;color:#92400e;padding:5px 8px;border-radius:999px;font-weight:900}.game-tabs{margin-top:12px;grid-template-columns:repeat(3,1fr)}.mode-monster{background:linear-gradient(180deg,#fff,#fff1f2)}.mode-tower{background:linear-gradient(180deg,#fff,#eff6ff)}.mode-balloon{background:linear-gradient(180deg,#fff,#f0fdfa)}.mode-match{background:linear-gradient(180deg,#fff,#faf5ff)}@media(max-width:560px){.game-tabs{grid-template-columns:1fr 1fr}.pet-avatar{width:58px;height:58px;font-size:34px}}

.back-home{position:fixed;left:14px;top:14px;z-index:50;background:rgba(255,255,255,.95);border:1px solid #fed7aa;border-radius:12px;padding:8px 11px;box-shadow:0 8px 24px #0f172a14;color:#c2410c!important;font-size:12px;font-weight:900;text-decoration:none}.back-home:hover{background:#fff7ed}@media(max-width:700px){.back-home{position:static;display:inline-block;margin:10px 0 0 10px}}


/* V5.5.3 · Student vocabulary modes */
.student-word-card{display:inline-block;font-size:clamp(30px,7vw,52px);font-weight:800;letter-spacing:-.025em;color:#274c77;padding:12px 18px;background:#f4f8fc;border:1px solid #dce8f3;border-radius:18px}
.student-tool-btn{min-height:54px}.spelling-box{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%}.spelling-box input{min-width:0;border:1px solid #cfdbe7;border-radius:14px;padding:13px 14px;font-size:17px;font-weight:700;outline:none;background:#fff}.spelling-box input:focus{border-color:#6b91bb;box-shadow:0 0 0 3px rgba(79,121,170,.12)}.spelling-box .primary-btn{margin:0;white-space:nowrap}@media(max-width:520px){.spelling-box{grid-template-columns:1fr}.student-word-card{font-size:32px}}

/* Student Vocabulary Learning v2 */
.vocab-progress{border:1px solid #dce6ef;background:#fff}.vocab-progress-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.vocab-progress-head>div:first-child>div{font-size:11px;color:#64748b;margin-top:3px}.vocab-progress-legend{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.vocab-progress-legend span{font-size:10px;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:5px 8px}.vocab-progress-track{height:8px;border-radius:999px;background:#e9eef4;margin-top:12px;overflow:hidden}.vocab-progress-track span{display:block;height:100%;width:0;background:#5b7fa8;border-radius:inherit;transition:width .25s ease}.vocab-progress p{font-size:11px;line-height:1.55;color:#64748b;margin:9px 0 0}.word-learning-status{grid-column:1/-1;font-size:11px;font-weight:750;color:#526579;margin-bottom:2px}@media(max-width:640px){.vocab-progress-head{display:block}.vocab-progress-legend{justify-content:flex-start;margin-top:9px}}
.article-figure{margin:18px 0 22px}.article-figure img{display:block;width:100%;max-height:520px;object-fit:contain;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc}.article-figure figcaption{margin-top:7px;color:#64748b;font-size:12px;line-height:1.5;text-align:center}

/* V6.7.0 Student Identity V2 */
:root{--student-orange:#ea580c;--student-amber:#f59e0b;--student-soft:#fff7ed}
.student-entry-page,.kids-body{font-family:Tahoma,"Segoe UI",Arial,sans-serif}
.student-entry-page .public-shell{width:min(760px,100%)}
.student-entry-page .public-hero,.kids-body .kids-hero{background:linear-gradient(135deg,#fff 0%,#fffaf4 68%,#ffedd5 100%);border-color:#fed7aa}
.student-entry-page .eyebrow,.kids-body .eyebrow{color:#c2410c}
.student-entry-page .public-hero h1,.kids-body .public-hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:-.02em}
.student-entry-page .panel{border-color:#eee5dc;box-shadow:0 10px 28px rgba(15,23,42,.045)}
.entry-section-title{display:flex;gap:11px;align-items:center;margin-bottom:16px}.entry-section-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:linear-gradient(135deg,#ea580c,#f59e0b);color:#fff;font-weight:700}.entry-section-title b{display:block;font-family:Georgia,"Times New Roman",serif;font-size:18px}.entry-section-title small{display:block;color:#7a8493;margin-top:2px}
.student-name-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.student-name-card{display:flex;align-items:center;gap:11px;border:1px solid #eadfd3;background:#fff;padding:12px;border-radius:13px;cursor:pointer;text-align:left;color:#273244;font:inherit;transition:.16s}.student-name-card:hover{border-color:#fdba74;background:#fffaf5;transform:translateY(-1px);box-shadow:0 7px 18px rgba(234,88,12,.08)}.student-name-card>span,.selected-student>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#fff7ed,#ffedd5);color:#c2410c;font-family:Georgia,serif;font-weight:700;font-size:18px}.student-name-card b{font-weight:600;font-size:14px}.selected-student{display:flex;align-items:center;gap:11px;margin:5px 0 18px}.selected-student small{display:block;color:#8a94a3;font-size:10px}.selected-student b{display:block;font-family:Georgia,serif;font-size:19px;margin-top:2px}
.student-entry-page .entry-input,.kids-body .entry-input{border:1px solid #e5d9cc!important;font-size:15px!important;font-weight:500!important;text-transform:none!important;border-radius:11px!important}.student-entry-page .entry-input:focus,.kids-body .entry-input:focus{border-color:#f59e0b!important;box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.student-entry-page .primary-btn,.kids-body .primary-btn,.kids-body .primary-link{background:linear-gradient(135deg,#ea580c,#f59e0b)!important;color:#fff!important;box-shadow:0 7px 18px rgba(234,88,12,.18)!important}.wide-btn{width:100%;margin-top:8px}.text-back{border:0;background:transparent;color:#b45309;padding:0;margin-bottom:15px;cursor:pointer;font:inherit;font-size:12px}.entry-help,.entry-fallback{font-size:11px;line-height:1.55;color:#7b8492}.entry-fallback{text-align:center}.entry-fallback a{color:#c2410c;font-weight:700}.roster-loading{grid-column:1/-1;color:#8a94a3;font-size:12px;padding:14px;text-align:center}
.student-session-chip{position:fixed;right:16px;top:82px;z-index:850;display:flex;align-items:center;gap:8px;padding:7px 10px 7px 7px;border:1px solid #fed7aa;border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 9px 24px rgba(15,23,42,.11);text-decoration:none;color:#253047;backdrop-filter:blur(10px)}.student-session-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#ea580c,#f59e0b);color:#fff;font-family:Georgia,serif;font-weight:700}.student-session-chip b{display:block;font-size:11px;font-weight:650;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-session-chip small{display:block;color:#8a94a3;font-size:9px;margin-top:1px}
@media(max-width:560px){.student-name-grid{grid-template-columns:1fr}.student-session-chip{top:auto;right:10px;bottom:70px}.student-session-chip small{display:none}}
