.hero{text-align:center;padding-block:var(--space-12)}.hero .badge{margin-bottom:var(--space-4)}.hero h1{margin-bottom:var(--space-3)}.hero p{color:var(--color-text-muted);max-width:38rem;margin-inline:auto}.hero .actions{justify-content:center;margin-top:var(--space-6)}.greet{color:var(--color-primary);font-weight:700}.grid{display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:640px){.grid-2,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr)}}.feature{padding:var(--space-6)}.feature h3{margin-bottom:var(--space-2)}.feature p{color:var(--color-text-muted);font-size:var(--text-sm)}.footer-grid{display:flex;flex-direction:column;gap:var(--space-2)}.footer-grid a:hover{color:#fff}@media (min-width:768px){.footer-grid{flex-direction:row;justify-content:space-between;align-items:center}}.tier{display:inline-block;font-size:var(--text-xs);font-weight:700;color:#fff;background:var(--color-primary-light);border-radius:999px;padding:.2rem .6rem}.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.stat-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(3,1fr)}.stat{text-align:center;padding:var(--space-4)}.stat-num{display:block;font-size:var(--text-3xl);font-weight:700;color:var(--color-primary);line-height:1.1}.stat-label{font-size:var(--text-sm);color:var(--color-text-muted)}.tier-card{display:flex;flex-direction:column}.tier-card h3{font-size:var(--text-base)}.tier-score{margin:var(--space-2) 0 0}.tier-card .btn{margin-top:auto}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-block;font-size:var(--text-xs);font-weight:600;border-radius:999px;padding:.25rem .7rem}.chip-weak{background:#fef2f2;color:var(--color-danger);border:1px solid #fecaca}.chip-strong{background:#f0fdf4;color:var(--color-success);border:1px solid #bbf7d0}.chip-current{background:#eff6ff;color:var(--color-primary-light);border:1px solid #bfdbfe}.tier-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.tier-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);background:#fff;font-size:var(--text-sm);font-weight:600}.tier-tab:hover{text-decoration:none;border-color:var(--color-primary-light)}.tier-tab.is-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tier-tab .count{font-size:var(--text-xs);background:rgba(0,0,0,.12);border-radius:999px;padding:.05rem .45rem}.tier-tab.is-active .count{background:rgba(255,255,255,.25)}.ex-list{display:grid;gap:var(--space-3);grid-template-columns:1fr}@media (min-width:768px){.ex-list{grid-template-columns:repeat(2,1fr)}}.ex-item{display:flex;flex-direction:column;gap:.3rem;padding:var(--space-4);color:var(--color-text)}.ex-item:hover{text-decoration:none;box-shadow:var(--shadow-md);transform:translateY(-1px)}.ex-title{font-weight:600;line-height:1.4}.ex-meta{font-size:var(--text-xs)}.type-badge{align-self:flex-start;font-size:var(--text-xs);font-weight:700;border-radius:var(--radius-sm);padding:.15rem .55rem;color:#fff;background:var(--color-text-muted)}.type-mcq{background:#2563a8}.type-irac{background:#7c3aed}.type-drafting{background:#0f766e}.type-roleplay{background:#b45309}.type-simulation{background:#be123c}.ex-head{margin-top:var(--space-3)}.prompt-card h2,.prompt-card{margin-top:var(--space-4)}.prompt{white-space:pre-wrap;word-break:break-word;font-family:var(--font-thai);font-size:var(--text-base);line-height:1.7;max-height:60vh;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-2)}.score-card{display:flex;align-items:baseline;gap:var(--space-4)}.score-total{font-size:var(--text-3xl);font-weight:700;color:var(--color-primary)}.score-total small{font-size:var(--text-lg);color:var(--color-text-muted)}.grade{font-size:var(--text-xl);font-weight:700;color:var(--color-accent)}.checkline{display:flex;align-items:center;gap:.5rem;margin-top:var(--space-3);font-size:var(--text-sm)}.checkline input{min-height:auto;width:auto}.btn-link.danger{color:var(--color-danger)}.video-list{display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:768px){.video-list{grid-template-columns:repeat(2,1fr)}}.ratio{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--radius-md);overflow:hidden}.ratio iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-row{padding:var(--space-3)}.video-meta{display:flex;align-items:center;gap:.6rem;margin-top:.6rem;flex-wrap:wrap}.video-meta .inline{margin-left:auto}.quiz-q legend{font-weight:700;color:var(--color-primary);padding:0 .4rem}.quiz-stem{margin-bottom:var(--space-2)}.quiz-choice{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:.4rem;cursor:pointer}.quiz-choice:hover{border-color:var(--color-primary-light);background:#f8fafc}.quiz-choice input{min-height:auto;width:auto;margin-top:.25rem}.quiz-choice input:checked+span{font-weight:600}.module-card{display:block;color:var(--color-text)}.module-card:hover{text-decoration:none;box-shadow:var(--shadow-md)}.lesson-steps{display:flex;flex-direction:column;gap:var(--space-2)}.lesson-step{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text);padding:var(--space-3) var(--space-4)}.lesson-step:hover{text-decoration:none;box-shadow:var(--shadow-sm)}.step-no{flex:0 0 32px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-primary)}.step-no.done{background:var(--color-success);color:#fff;border-color:var(--color-success)}.step-body{display:flex;flex-direction:column;flex:1}.step-title{font-weight:600}.step-state{font-size:var(--text-sm);color:var(--color-text-muted)}.step-card h2{font-size:var(--text-lg);margin-bottom:var(--space-2)}.lesson-body{white-space:normal;line-height:1.8}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);background:#fff;min-width:480px}.report-table th,.report-table td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--color-border)}.report-table thead th{background:var(--color-surface);color:var(--color-primary);font-weight:700;white-space:nowrap}.report-table tbody tr:last-child td{border-bottom:0}