:root{--max-content-width:1540px;--max-reading-width:900px;--gutter-width:clamp(1rem, 2vw, 2.25rem);--bg-page:#f8fafc;--bg-surface:#fff;--bg-surface-subtle:#f1f5f9;--bg-surface-elevated:#fff;--text-main:#0f172a;--text-muted:#475569;--text-dim:#94a3b8;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--accent-navy:#6366f1;--accent-navy-hover:#4f46e5;--accent-navy-subtle:#eef2ff;--on-accent:#fff;--accent-advanced-gold:#f59e0b;--accent-advanced-gold-hover:#d97706;--accent-advanced-gold-subtle:#fefce8;--on-accent-gold:#b45309;--cover-aura:#6366f12e;--cover-shadow:#0f172a24;--overlay:#0f172a99;--status-idle:var(--text-muted);--status-idle-bg:var(--bg-surface-subtle);--status-idle-border:var(--border-subtle);--status-progress:#4f46e5;--status-progress-bg:#eef2ff;--status-progress-border:#c7d2fe;--status-blank:#d97706;--status-blank-bg:#fffbeb;--status-blank-border:#fde68a;--status-correct:#059669;--status-correct-bg:#ecfdf5;--status-correct-border:#a7f3d0;--status-incorrect:#e11d48;--status-incorrect-bg:#fff1f2;--status-incorrect-border:#fecdd3;--status-review:#7c3aed;--status-review-bg:#f5f3ff;--status-correct-solid:#10b981;--status-incorrect-solid:#f43f5e;--status-blank-solid:#f59e0b;--status-progress-solid:#6366f1;--on-status-solid:#fff;--color-primary:#4f46e5;--color-primary-dark:#4338ca;--color-surface:#fff;--color-surface-hover:#f8fafc;--color-bg:#f8fafc;--color-bg-alt:#f1f5f9;--color-border:#e2e8f0;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--accent-amber:#d97706;--sec-teal:#0d9488;--sec-teal-bg:#f0fdfa;--sec-indigo:#4f46e5;--sec-indigo-bg:#eef2ff;--sec-violet:#7c3aed;--sec-violet-bg:#f5f3ff;--sec-sea:#0284c7;--sec-sea-bg:#f0f9ff;--sec-terracotta:#ea580c;--sec-terracotta-bg:#fff7ed;--sec-amber:#d97706;--sec-amber-bg:#fffbeb;--sec-blue:#2563eb;--sec-blue-bg:#eff6ff;--sec-burgundy:#e11d48;--sec-burgundy-bg:#fff1f2;--sec-forest:#059669;--sec-forest-bg:#ecfdf5;--sec-plum:#9333ea;--sec-plum-bg:#faf5ff;--font-body:Arial, Helvetica, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:Arial, Helvetica, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 6px -1px #0f172a12, 0 2px 4px -2px #0f172a0a;--shadow-lg:0 10px 15px -3px #0f172a14, 0 4px 6px -4px #0f172a0a;--shadow-xl:0 20px 25px -5px #0f172a17, 0 8px 10px -6px #0f172a0a;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.24s cubic-bezier(.4, 0, .2, 1);--unit-hue:248;--unit-ink:#4f46e5;--unit-glow:#a5b4fc;--unit-edge:#7c3aed;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--bg-page:#0b0f19;--bg-surface:#111827;--bg-surface-subtle:#1e293b;--bg-surface-elevated:#243046;--text-main:#f8fafc;--text-muted:#cbd5e1;--text-dim:#94a3b8;--border-subtle:#1f293d;--border-strong:#334155;--accent-navy:#818cf8;--accent-navy-hover:#a5b4fc;--accent-navy-subtle:#6366f129;--on-accent:#0f172a;--accent-advanced-gold:#fbbf24;--accent-advanced-gold-hover:#fcd34d;--accent-advanced-gold-subtle:#f59e0b2e;--on-accent-gold:#fef08a;--cover-aura:#818cf847;--cover-shadow:#000000a6;--overlay:#030712c7;--shadow-sm:0 1px 3px #00000080;--shadow-md:0 4px 10px #0009;--shadow-lg:0 10px 25px #000000b3;--shadow-xl:0 20px 30px #000c;--status-progress:#818cf8;--status-progress-bg:#6366f12e;--status-progress-border:#818cf859;--status-blank:#fbbf24;--status-blank-bg:#f59e0b2e;--status-blank-border:#fbbf2459;--status-correct:#34d399;--status-correct-bg:#10b9812e;--status-correct-border:#34d39959;--status-incorrect:#fb7185;--status-incorrect-bg:#f43f5e2e;--status-incorrect-border:#fb718559;--status-review:#c084fc;--status-review-bg:#a855f72e;--color-primary:#818cf8;--color-primary-dark:#6366f1;--color-surface:#111827;--color-surface-hover:#1e293b;--color-bg:#0b0f19;--color-bg-alt:#1e293b;--color-border:#1f293d;--color-text-primary:#f8fafc;--color-text-secondary:#cbd5e1;--color-text-muted:#94a3b8;--accent-amber:#fbbf24;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root,.unit-palette{--unit-accent:var(--lightningcss-light,var(--unit-ink))var(--lightningcss-dark,var(--unit-glow));--unit-accent-hover:var(--lightningcss-light,color-mix(in srgb, var(--unit-ink), black 12%))var(--lightningcss-dark,color-mix(in srgb, var(--unit-glow), white 25%));--unit-subtle:var(--lightningcss-light,hsl(var(--unit-hue) 100% 97%))var(--lightningcss-dark,hsl(var(--unit-hue) 42% 16%));--unit-border:var(--lightningcss-light,hsl(var(--unit-hue) 80% 86%))var(--lightningcss-dark,hsl(var(--unit-hue) 45% 32%));--unit-wash:var(--lightningcss-light,hsl(var(--unit-hue) 100% 98.5%))var(--lightningcss-dark,hsl(var(--unit-hue) 45% 12%));--unit-line:var(--unit-border);--unit-gradient:linear-gradient(135deg, var(--unit-ink), var(--unit-edge));--unit-border-gradient:linear-gradient(135deg, var(--unit-ink) 0%, var(--unit-edge) 50%, var(--unit-glow) 100%);--unit-card-surface:var(--bg-surface);--unit-card-bg:var(--bg-surface);--unit-shadow:0 4px 18px -4px hsla(var(--unit-hue), 75%, 45%, .14);--unit-shadow-hover:0 12px 28px -5px hsla(var(--unit-hue), 85%, 45%, .28)}.unit-palette{--accent-navy:var(--unit-accent);--accent-navy-hover:var(--unit-accent-hover);--accent-navy-subtle:var(--unit-subtle)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-color:var(--border-strong) var(--bg-page);font-size:16px}body{background-color:var(--bg-page);color:var(--text-main);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;font-size:1rem;line-height:1.6;display:flex}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-main);letter-spacing:-.02em;font-weight:700;line-height:1.25}h1{font-size:clamp(1.85rem,2.5vw,2.5rem)}h2{font-size:clamp(1.35rem,2vw,1.75rem)}h3{font-size:1.2rem;font-weight:600}p{margin-bottom:.5rem}a{color:var(--accent-navy);transition:color var(--transition-fast);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;outline:none}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent-navy);outline-offset:2px}.container{width:100%;max-width:var(--max-content-width);padding-left:var(--gutter-width);padding-right:var(--gutter-width);margin-left:auto;margin-right:auto}.colloc-highlight{background-color:var(--accent-navy-subtle);color:var(--accent-navy);border-radius:4px;padding:1px 4px;font-weight:700}.study-settings{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface);width:min(440px,100% - 2rem);color:var(--text-main);box-shadow:var(--shadow-xl);margin:auto;padding:1.5rem}.study-settings::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c}.study-settings label{gap:.4rem;margin:1.1rem 0;font-size:.9rem;font-weight:600;display:grid}.study-settings select,.study-button{color:var(--text-main);background:var(--bg-surface-subtle);border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;transition:all var(--transition-fast);padding:.6rem .85rem;font-size:.9rem}.study-settings select:focus{border-color:var(--accent-navy);outline:none}.study-button:hover{background:var(--accent-navy-subtle);border-color:var(--accent-navy)}.study-button:disabled{opacity:.5;cursor:default}.settings-note{color:var(--text-muted);margin-bottom:1rem;font-size:.8rem}.home-page{padding-top:var(--space-xs);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=640px){main,.home-page{padding-bottom:70px}}._authContainer_dxrwa_1{min-height:100vh;padding:var(--space-lg);background:radial-gradient(circle at 50% 10%, #4f46e514 0%, transparent 60%), var(--bg-main);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}._authContainer_dxrwa_1:before{content:"";pointer-events:none;background:radial-gradient(circle,#7c3aed1f 0%,#0000 70%);border-radius:50%;width:450px;height:450px;position:absolute;top:-150px;right:-100px}._authCard_dxrwa_25{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:460px;padding:var(--space-2xl);text-align:center;z-index:1;flex-direction:column;align-items:center;animation:.3s ease-out _fadeIn_dxrwa_1;display:flex;position:relative;box-shadow:0 20px 40px -15px #0f172a1f,0 0 1px 1px #0000000d}@keyframes _fadeIn_dxrwa_1{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}._logoBadge_dxrwa_54{border-radius:var(--radius-pill);color:#4f46e5;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md);background:linear-gradient(135deg,#4f46e51a 0%,#7c3aed1a 100%);border:1px solid #4f46e533;align-items:center;gap:8px;padding:6px 14px;font-size:.75rem;font-weight:700;display:inline-flex}._logoIcon_dxrwa_70{border-radius:var(--radius-lg);color:#fff;width:54px;height:54px;margin-bottom:var(--space-md);background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);justify-content:center;align-items:center;display:flex;box-shadow:0 8px 20px #4f46e559}._title_dxrwa_83{color:var(--text-main);margin-bottom:var(--space-xs);letter-spacing:-.02em;font-size:1.5rem;font-weight:800;line-height:1.25}._subtitle_dxrwa_92{color:var(--text-muted);margin-bottom:var(--space-lg);font-size:.9375rem;line-height:1.5}._errorAlert_dxrwa_99{border-radius:var(--radius-md);color:#dc2626;text-align:left;box-sizing:border-box;background-color:#fef2f2;border:1px solid #fecaca;width:100%;padding:10px 14px;font-size:.8125rem;line-height:1.4}._studentPreview_dxrwa_112{background-color:var(--bg-surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;padding:var(--space-md);margin-bottom:var(--space-lg);align-items:center;gap:var(--space-sm);text-align:left;box-sizing:border-box;display:flex}._avatarFallback_dxrwa_126{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#06b6d4 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.125rem;font-weight:700;display:flex}._studentMeta_dxrwa_140{flex:1;min-width:0}._studentName_dxrwa_145{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}._studentEmail_dxrwa_154{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}._zaloActionBtn_dxrwa_162{border-radius:var(--radius-md);color:#fff;cursor:pointer;width:100%;transition:all var(--transition-fast);margin-bottom:var(--space-sm);box-sizing:border-box;background:linear-gradient(135deg,#0068ff 0%,#0052cc 100%);border:none;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-size:.95rem;font-weight:700;text-decoration:none;display:flex;box-shadow:0 4px 12px #0068ff4d}._zaloActionBtn_dxrwa_162:hover{color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px #0068ff66}._secondaryBtn_dxrwa_189{border-radius:var(--radius-md);border:1px solid var(--border-subtle);width:100%;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-xs);box-sizing:border-box;background-color:#0000;padding:10px 16px;font-size:.875rem;font-weight:600}._secondaryBtn_dxrwa_189:hover{background-color:var(--bg-surface-subtle);color:var(--text-main);border-color:var(--border-strong)}._googleButton_dxrwa_211{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-surface);width:100%;color:var(--text-main);cursor:pointer;padding:12px 18px;font-weight:700}._googleButton_dxrwa_211:hover:enabled{background:var(--bg-surface-subtle);border-color:var(--accent-navy)}._googleButton_dxrwa_211:disabled{opacity:.65;cursor:default}._errorAlert_dxrwa_99{margin:var(--space-sm) 0}
