:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111827;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-width:320px;overflow-x:hidden}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}#root{min-height:100vh}.page-shell{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:32px}.intro-panel{width:min(720px,100%);border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:40px;box-shadow:0 12px 32px #0f172a14}.eyebrow{margin:0 0 12px;color:#2563eb;font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.intro-panel h1{margin:0;color:#111827;font-size:clamp(2rem,5vw,3rem);line-height:1.1}.intro-text{margin:20px 0 0;color:#4b5563;font-size:1rem;line-height:1.7}.route-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.route-actions a{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid #2563eb;border-radius:6px;padding:0 18px;color:#fff;background:#2563eb;font-weight:700;text-decoration:none}.route-actions a:hover{background:#1d4ed8}.auth-page{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:24px}.auth-panel{width:min(520px,100%);border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:36px}.text-link{display:inline-flex;margin-top:20px;color:#2563eb;font-weight:700}.auth-form{display:grid;gap:16px;margin-top:28px}.auth-form label{display:grid;gap:8px;color:#374151;font-weight:700}.auth-form input{min-height:46px;border:1px solid #d1d5db;border-radius:6px;padding:0 12px;background:#fff;color:#111827}.auth-form .primary-button{width:100%}.form-message{border-radius:6px;margin:0;padding:12px;font-size:.92rem;line-height:1.5}.error-message{border:1px solid #fecaca;background:#fef2f2;color:#991b1b}.success-message{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534}.status-panel{width:fit-content;max-width:100%;border:1px solid #d7dee8;border-radius:8px;margin:0;background:#fff;padding:16px 18px;color:#4b5563;line-height:1.6}.app-layout{display:grid;min-height:100vh;grid-template-columns:240px minmax(0,1fr)}.app-sidebar{display:flex;min-width:0;min-height:100vh;flex-direction:column;border-right:1px solid #d7dee8;background:#fff;padding:24px}.brand-link{display:inline-flex;max-width:100%;margin-bottom:28px;color:#111827;font-size:1.05rem;font-weight:800;text-decoration:none;overflow-wrap:anywhere}.app-sidebar nav{display:grid;gap:6px;min-width:0}.app-sidebar nav a{min-width:0;border-radius:6px;padding:10px 12px;color:#374151;font-weight:700;text-decoration:none;overflow-wrap:anywhere}.app-sidebar nav a:hover{background:#eff6ff;color:#1d4ed8}.logout-area{display:grid;gap:10px;margin-top:auto;padding-top:24px}.logout-button{min-height:42px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-weight:700}.logout-button:hover{background:#f9fafb}.logout-button:disabled{cursor:not-allowed;opacity:.65}.sidebar-error{margin:0;color:#991b1b;font-size:.85rem;line-height:1.4}.app-content{min-width:0;padding:32px}.student-layout .app-content,.teacher-layout .app-content{overflow-x:hidden}.page-section{display:grid;gap:20px;width:min(1120px,100%);max-width:1120px}.page-section h1{margin-bottom:0;color:#111827;font-size:2rem;line-height:1.15}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-grid article,.word-card,.table-section{border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:20px}.metric-grid span{display:block;color:#6b7280;font-size:.9rem}.metric-grid strong{display:block;margin-top:8px;color:#111827;font-size:2rem}.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.primary-link,.primary-button{display:inline-flex;width:fit-content;min-height:44px;align-items:center;justify-content:center;border:1px solid #2563eb;border-radius:6px;padding:0 18px;color:#fff;background:#2563eb;font-weight:700;text-decoration:none}.primary-link:hover,.primary-button:hover{background:#1d4ed8}.word-card{width:min(560px,100%);max-width:560px;justify-self:start;line-height:1.6}.review-page .word-card{justify-self:center}.word-card h2{margin:8px 0;color:#111827;font-size:3rem;overflow-wrap:anywhere}.word-phonetic,.word-meaning,.word-example,.muted-text{color:#4b5563;overflow-wrap:anywhere}.review-actions{display:flex;flex-wrap:wrap;gap:12px}.review-actions button{min-width:112px;min-height:48px;border:1px solid #d1d5db;border-radius:6px;padding:0 18px;background:#fff;color:#111827;font-weight:700;touch-action:manipulation}.table-section{display:grid;gap:14px;min-width:0}.table-section h2{margin:0;font-size:1.2rem}.table-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:720px}th,td{border-bottom:1px solid #e5e7eb;padding:12px;text-align:left;vertical-align:top;overflow-wrap:break-word}th{color:#374151;font-size:.85rem}td{color:#6b7280}.form-grid{display:grid;width:100%;max-width:720px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-filters,.export-form{max-width:100%}.teacher-filter-grid,.teacher-export-grid{max-width:none;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.export-form .primary-button{justify-self:start}.reports-page table{min-width:880px}.dashboard-recent-section table{min-width:620px}.form-grid label{display:grid;gap:8px;color:#374151;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:44px;border:1px solid #d1d5db;border-radius:6px;padding:0 12px;background:#fff;color:#111827}.form-grid textarea{min-height:96px;padding:12px;resize:vertical}.form-grid-wide{grid-column:1 / -1}.stacked-field{display:grid;gap:8px;color:#374151;font-weight:700}.stacked-field textarea{min-height:160px;border:1px solid #d1d5db;border-radius:6px;padding:12px;background:#fff;color:#111827;resize:vertical}.table-input{width:100%;max-width:100%;min-width:140px;min-height:38px;border:1px solid #d1d5db;border-radius:6px;padding:0 10px;background:#fff;color:#111827}.table-actions{display:flex;flex-wrap:wrap;gap:8px}.small-button{min-height:36px;border:1px solid #2563eb;border-radius:6px;padding:0 12px;background:#2563eb;color:#fff;font-weight:700}.secondary-button{border-color:#d1d5db;background:#fff;color:#374151}.small-button:disabled{cursor:not-allowed;opacity:.65}@media(max-width:900px){.metric-grid,.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-layout .page-section,.teacher-layout .table-section,.teacher-layout .form-grid,.teacher-layout .table-wrap{width:100%;max-width:100%}.teacher-filter-grid,.teacher-export-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media(max-width:768px){.app-layout{grid-template-columns:1fr}.app-sidebar{min-height:auto;border-right:0;border-bottom:1px solid #d7dee8;padding:18px}.brand-link{margin-bottom:14px}.app-sidebar nav{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.app-sidebar nav a{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:8px;text-align:center}.logout-area{margin-top:14px;padding-top:14px}.logout-button{min-height:44px}}@media(max-width:640px){.page-shell{align-items:stretch;padding:16px}.intro-panel{padding:28px}.route-actions{flex-direction:column}.route-actions a,.primary-link,.primary-button{width:100%}.auth-page{align-items:stretch;padding:16px}.auth-panel{align-self:center;padding:24px}.auth-panel h1{font-size:1.75rem;line-height:1.2}.auth-form input{min-height:48px}.app-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.app-content{padding:20px 16px}.student-layout .app-content,.teacher-layout .app-content,.student-layout .page-section,.teacher-layout .page-section,.student-layout .metric-grid,.teacher-layout .metric-grid,.student-layout .table-section,.teacher-layout .table-section,.student-layout .table-wrap,.teacher-layout .table-wrap{width:100%;max-width:100%}.page-section{gap:16px}.page-section h1{font-size:1.65rem}.metric-grid,.form-grid,.dashboard-metrics,.teacher-filter-grid,.teacher-export-grid{grid-template-columns:1fr}.metric-grid{width:100%;gap:12px}.metric-grid article,.word-card,.table-section{padding:16px}.metric-grid strong{font-size:1.75rem}.review-page{align-content:start}.review-page .muted-text{justify-self:center;margin:0;font-weight:700}.word-card{width:100%;max-width:520px;justify-self:center}.word-card h2{font-size:2.4rem;line-height:1.05;text-align:center}.word-phonetic,.word-meaning,.word-example{text-align:center}.review-actions{display:grid;grid-template-columns:1fr;gap:10px}.review-actions button{width:100%;min-height:56px;font-size:1rem}.report-filters,.export-form{gap:16px}.export-form .primary-button{justify-self:stretch}.table-actions{display:grid;grid-template-columns:1fr}.small-button{width:100%;min-height:42px}.table-input{min-width:160px}table{min-width:640px}}@media(max-width:420px){.auth-page,.page-shell{padding:12px}.auth-panel,.intro-panel,.metric-grid article,.word-card,.table-section{padding:14px}.app-content{padding:16px 12px}.app-sidebar nav{grid-template-columns:1fr}.page-section h1{font-size:1.5rem}.word-card h2{font-size:2.1rem}.table-section h2{font-size:1.05rem}}
