:root{color:#253348;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7ff;font-family:Inter,ui-rounded,Noto Sans TC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit}button,input{font:inherit}.app-shell{background:radial-gradient(circle at 10% 15%,#ffdab973,#0000 30%),radial-gradient(circle at 90% 8%,#b7e3ff8c,#0000 28%),#f7f8ff;min-height:100vh}.site-header{background:#ffffffd9;border-bottom:1px solid #dde3f2;justify-content:space-between;align-items:center;min-height:72px;padding:0 5vw;display:flex}.site-header a{font-weight:700;text-decoration:none}.brand{align-items:center;gap:.65rem;font-size:1.2rem;display:flex}.brand span{color:#fff;letter-spacing:.08em;background:#5367d5;border-radius:14px;place-items:center;width:44px;height:44px;font-size:.75rem;display:grid;transform:rotate(-3deg)}.page-container{width:min(1080px,90vw);margin:0 auto;padding:clamp(2.5rem,8vw,6rem) 0}.hero{text-align:center}.eyebrow{color:#d45f3d;letter-spacing:.08em;margin:0 0 .75rem;font-weight:800}h1{color:#1f2a44;max-width:780px;margin:0 auto;font-size:clamp(2.2rem,7vw,4.7rem);line-height:1.12}.hero-copy{color:#5c6880;max-width:650px;margin:1.5rem auto 2rem;font-size:clamp(1rem,2vw,1.2rem);line-height:1.8}.action-row{flex-wrap:wrap;justify-content:center;gap:.8rem;display:flex}.button{border:2px solid #5367d5;border-radius:16px;justify-content:center;align-items:center;min-width:150px;min-height:52px;padding:.75rem 1.3rem;font-weight:800;text-decoration:none;display:inline-flex}.button.primary{color:#fff;background:#5367d5;box-shadow:0 9px #3548a4}.button.secondary{color:#4356bc;background:#fff}.button:focus-visible,.site-header a:focus-visible{outline-offset:4px;outline:4px solid #ffca5c}.feature-grid{text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(3rem,8vw,6rem);display:grid}.feature-grid article,.panel{background:#ffffffe6;border:1px solid #e0e5f3;border-radius:24px;padding:clamp(1.25rem,3vw,2rem);box-shadow:0 14px 40px #2c3a7014}.feature-grid article>span{font-size:2rem}.feature-grid h2{margin:1rem 0 .5rem;font-size:1.2rem}.feature-grid p,.panel p{color:#657087;line-height:1.7}.panel{text-align:center;max-width:760px;margin:0 auto}.panel h1{font-size:clamp(2rem,6vw,3.5rem)}.auth-card{background:#fffffff0;border:1px solid #e0e5f3;border-radius:28px;width:min(100%,560px);margin:0 auto;padding:clamp(1.5rem,5vw,3rem);box-shadow:0 18px 50px #2c3a701f}.auth-card h1{margin:0;font-size:clamp(2rem,7vw,3.25rem)}.auth-intro,.auth-footer{color:#657087;line-height:1.7}.auth-intro{margin:1rem 0 1.75rem}.auth-footer{text-align:center;margin-top:1.75rem}.auth-footer a,.label-row a{color:#4356bc;font-weight:700}.auth-form{gap:.65rem;display:grid}.auth-form label{color:#39455d;margin-top:.45rem;font-weight:750}.auth-form input{color:#1f2a44;background:#fff;border:2px solid #cbd3e7;border-radius:13px;width:100%;min-height:52px;padding:.75rem .9rem}.auth-form input:focus{border-color:#5367d5;outline:4px solid #5367d52e}.csv-upload{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem 1rem;display:grid}.csv-upload>div{grid-column:1/-1}.csv-upload h2,.csv-upload p{margin:0}.csv-upload p{color:#657087;margin-top:.35rem}.csv-upload input[type=file]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.file-picker{color:#fff;cursor:pointer;background:#5367d5;border-radius:12px;justify-content:center;padding:.75rem 1rem;font-weight:800;display:inline-flex}.file-picker:focus-within,.csv-upload input[type=file]:focus+span{outline:4px solid #5367d52e}.csv-summary{grid-template-columns:repeat(5,minmax(100px,1fr))}.validation-box{border-radius:14px;margin-top:1rem;padding:1rem 1.25rem}.validation-box.error{color:#872c2c;background:#fff0f0;border:1px solid #efb6b6}.validation-box ul{margin-bottom:0}.csv-preview-table td:last-child{min-width:280px}.validation-message{margin:.25rem 0;line-height:1.45;display:block}.validation-message.error{color:#a32f2f}.validation-message.warning{color:#8a5a00}.strategy-options{border:1px solid #d9deec;border-radius:14px;gap:.65rem;margin:1rem 0;padding:1rem;display:grid}.strategy-options legend{padding:0 .35rem;font-weight:750}.strategy-options label{align-items:center;gap:.65rem;display:flex}.strategy-options input{width:1.1rem;height:1.1rem}.import-confirm{min-width:180px}.import-result{background:#effaf2;border:1px solid #b9e0c1;border-radius:20px;padding:clamp(1.25rem,4vw,2rem)}.import-result h2{margin-top:0}@media (width<=720px){.csv-upload{grid-template-columns:1fr}.csv-summary{grid-template-columns:repeat(2,minmax(100px,1fr))}}.speech-preview{min-width:150px}.speech-preview summary{color:#4356bc;cursor:pointer;font-weight:750}.speech-actions,.debug-buttons{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.speech-actions button,.debug-buttons button{color:#33449e;background:#eef0ff;border:1px solid #c8cff4;border-radius:9px;min-height:38px;padding:.45rem .65rem;font-weight:700}.cloze-preview{color:#39455d;flex-basis:100%;margin:.5rem 0 0;font-weight:700}.speech-error{color:#a32f2f;max-width:260px;margin-top:.5rem;line-height:1.45;display:block}.debug-card{background:#fff;border:1px solid #dfe4f1;border-radius:20px;padding:clamp(1.25rem,4vw,2rem);box-shadow:0 12px 30px #2c3a7014}.debug-card h2{margin-top:0}.debug-facts{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.debug-facts div{background:#f6f7fc;border-radius:12px;padding:.8rem}.debug-facts dt{color:#657087;font-size:.85rem}.debug-facts dd{overflow-wrap:anywhere;margin:.25rem 0 0;font-weight:750}.debug-grid{grid-template-columns:minmax(130px,.35fr) minmax(240px,1fr);align-items:start;gap:.65rem 1rem;display:grid}.debug-grid label{padding-top:.65rem;font-weight:750}.debug-grid input,.debug-grid select,.debug-grid textarea{color:#1f2a44;background:#fff;border:1px solid #bfc8de;border-radius:10px;width:100%;padding:.65rem .75rem}.debug-grid .debug-buttons,.debug-grid .cloze-preview{grid-column:2;margin-top:0}@media (width<=620px){.debug-grid{grid-template-columns:1fr}.debug-grid label{padding-top:.25rem}.debug-grid .debug-buttons,.debug-grid .cloze-preview{grid-column:1}}.learn-page{width:min(100%,920px);margin:0 auto}.learn-heading{text-align:center;margin-bottom:2rem}.learn-heading h1{margin:.35rem 0;font-size:clamp(2rem,6vw,3.5rem)}.child-picker-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.child-picker-card{color:#263253;background:#fff;border:2px solid #dfe4f1;border-radius:24px;justify-items:center;gap:.4rem;padding:2rem 1rem;text-decoration:none;display:grid;box-shadow:0 14px 34px #2c3a7017}.child-picker-card>span{font-size:3.5rem}.child-picker-card strong{font-size:1.3rem}.task-summary-grid,.result-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.8rem;margin:1.5rem 0;display:grid}.task-summary-grid div,.result-grid div{text-align:center;background:#fff;border:1px solid #dfe4f1;border-radius:16px;gap:.25rem;padding:1rem;display:grid}.task-summary-grid strong,.result-grid dd{color:#4356bc;margin:0;font-size:2rem;font-weight:850}.start-study{justify-content:center;width:min(100%,380px);margin:2rem auto 1rem;font-size:1.15rem;display:flex}.text-link{text-align:center;display:block}.study-card{background:#fff;border:1px solid #dfe4f1;border-radius:28px;width:min(100%,720px);margin:0 auto;padding:clamp(1.25rem,5vw,2.5rem);box-shadow:0 18px 50px #2c3a701f}.question-progress{color:#657087;font-weight:750}.question-card h1,.answer-card h1{text-align:center;margin:1rem 0 .5rem;font-size:clamp(2.25rem,8vw,4.5rem)}.study-meaning,.letter-count{text-align:center}.letter-count{color:#4356bc;letter-spacing:.15em;margin:1.5rem 0;font-size:clamp(1.5rem,6vw,2.5rem)}.study-actions,.result-actions{flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex}.study-actions button{color:#33449e;background:#eef0ff;border:1px solid #c8cff4;border-radius:10px;min-height:44px;padding:.6rem .85rem;font-weight:750}.spelling-form{gap:.75rem;margin-top:1.5rem;display:grid}.spelling-form label{font-weight:750}.spelling-form input{text-align:center;border:2px solid #bfc8de;border-radius:14px;min-height:58px;padding:.7rem 1rem;font-size:1.5rem}.retry-message{color:#9a5700;text-align:center;margin:0;font-weight:800}.letter-hint,.letter-diff{flex-wrap:wrap;justify-content:center;gap:.45rem;margin:1rem 0;display:flex}.letter-hint span,.letter-diff span{background:#f2f4ff;border:1px solid #c8cff4;border-radius:10px;place-items:center;width:42px;height:46px;font-size:1.3rem;font-weight:850;display:grid}.letter-diff .mismatch{color:#a32f2f;background:#fff0f0;border-color:#efb6b6}.answer-outcome{text-align:center;border-radius:14px;padding:.65rem 1rem;font-size:1.2rem;font-weight:850}.answer-outcome.correct{color:#176230;background:#eaf8ee}.answer-outcome.retry{color:#8a4a00;background:#fff5df}.answer-comparison{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.answer-comparison div{background:#f6f7fc;border-radius:12px;padding:.8rem}.answer-comparison dd{margin:.35rem 0 0;font-size:1.2rem;font-weight:800}.learning-detail{background:#f6f7fc;border-radius:10px;margin:.65rem 0;padding:.75rem}.next-review,.unlock-message{text-align:center;border-radius:10px;margin:.75rem 0;padding:.75rem;font-weight:800}.cloze-study-prompt{background:var(--surface-soft);text-align:center;border-radius:1rem;margin:1.25rem 0;padding:1rem;font-size:clamp(1.2rem,4vw,1.7rem);font-weight:700;line-height:1.6}.dashboard-reports,.report-section{background:var(--surface);box-shadow:var(--shadow-soft);border-radius:1.25rem;margin-top:2rem;padding:1.25rem}.report-child-links{flex-wrap:wrap;gap:.75rem;display:flex}.report-metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;display:grid}.report-metrics article{background:var(--surface-soft);border-radius:1rem;gap:.35rem;padding:1rem;display:grid}.report-metrics strong{font-size:1.5rem}.mistake-list{gap:.65rem;padding:0;list-style:none;display:grid}.mistake-list li,.mistake-list li div{justify-content:space-between;align-items:center;gap:1rem;display:flex}.mistake-list li{border-bottom:1px solid var(--border);padding:.85rem 0}.mistake-list li div{justify-content:flex-start;align-items:baseline}.next-review{color:#39455d;background:#eef0ff}.unlock-message{color:#176230;background:#eaf8ee}.study-next{justify-content:center;min-width:180px;margin:1.5rem auto 0;display:flex}.result-page{text-align:center}.result-celebration{font-size:5rem}.result-page h1{font-size:clamp(2rem,7vw,3.5rem)}.total-stars{font-size:1.15rem;font-weight:800}@media (width<=520px){.answer-comparison{grid-template-columns:1fr}}.label-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.form-submit{width:100%;margin-top:1rem}.form-submit:disabled{cursor:wait;opacity:.65}.form-message{border-radius:12px;margin:.65rem 0 0;padding:.85rem 1rem;font-weight:650;line-height:1.5}.form-message.error,.error-panel{color:#8a2c20;background:#fff0ed;border:1px solid #f2b4aa}.form-message.success{color:#185d3b;background:#eaf8f0;border:1px solid #9ed8b6}.parent-toolbar{background:#ffffffd9;border:1px solid #e0e5f3;border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;margin:-1.25rem 0 1.5rem;padding:.65rem;display:flex}.parent-toolbar nav{gap:.2rem;display:flex}.parent-toolbar nav a{color:#4356bc;border-radius:9px;padding:.55rem .75rem;font-weight:750;text-decoration:none}.parent-toolbar nav a:hover{background:#eef1ff}.account-bar{color:#657087;align-items:center;gap:.75rem;font-size:.9rem;display:flex}.account-bar button{color:#4356bc;cursor:pointer;background:#fff;border:1px solid #b9c3df;border-radius:10px;min-height:40px;padding:.45rem .85rem;font-weight:750}.management-page>h1,.page-heading h1{margin:0;font-size:clamp(2rem,6vw,3.5rem)}.management-page.narrow{width:min(100%,720px);margin:0 auto}.management-page.narrow>h1{margin-bottom:1.5rem}.page-heading,.subsection-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.page-heading>div>p:last-child,.subsection-heading p{color:#657087;margin:.5rem 0 0}.heading-actions,.form-actions,.record-actions,.table-actions{flex-wrap:wrap;gap:.65rem;display:flex}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.summary-card{color:#33415e;background:#fff;border:1px solid #e0e5f3;border-radius:20px;gap:.5rem;padding:1.5rem;text-decoration:none;display:grid;box-shadow:0 12px 35px #2c3a7014}.summary-card strong{color:#5367d5;font-size:2.5rem}.summary-card small{color:#657087}.editor-card,.subsection{background:#fff;border:1px solid #dfe5f3;border-radius:20px;margin:1.25rem 0;padding:clamp(1.25rem,4vw,2rem)}.editor-card h2,.editor-card h3,.subsection h2{margin-top:0}.data-form{gap:.65rem;display:grid}.data-form label{color:#39455d;margin-top:.45rem;font-weight:750}.data-form input,.data-form select,.data-form textarea{color:#1f2a44;background:#fff;border:2px solid #cbd3e7;border-radius:12px;width:100%;min-height:50px;padding:.7rem .85rem}.data-form textarea{resize:vertical}.data-form input:focus,.data-form select:focus,.data-form textarea:focus{border-color:#5367d5;outline:4px solid #5367d52e}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.field-grid>div{gap:.65rem;display:grid}.loading-state,.empty-state{color:#657087;text-align:center;background:#ffffffa6;border:1px dashed #bbc5df;border-radius:16px;padding:1.5rem}.record-list{gap:.85rem;display:grid}.record-card{background:#fff;border:1px solid #dfe5f3;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.25rem;display:flex}.record-card.inactive{opacity:.78;background:#f1f3f7}.record-card:has(.data-form){display:block}.record-main{align-items:center;gap:1rem;display:flex}.record-main h2,.record-main p{margin:0}.record-main h2{margin-bottom:.35rem;font-size:1.2rem}.record-main p{color:#657087}.record-icon{background:#f0f2ff;border-radius:15px;flex:none;place-items:center;width:52px;height:52px;font-size:1.6rem;display:grid}.record-actions button,.record-actions a,.table-actions button{color:#4356bc;cursor:pointer;background:#fff;border:1px solid #bbc5df;border-radius:10px;min-height:40px;padding:.45rem .8rem;font-weight:750;text-decoration:none}.status-badge{color:#7e473b;background:#fff0ed;border-radius:999px;margin-top:.4rem;padding:.2rem .55rem;font-size:.8rem;font-weight:750;display:inline-flex}.status-badge.valid{color:#185d3b;background:#eaf8f0}.assignment-list{flex-wrap:wrap;gap:.7rem;display:flex}.assignment-list label{background:#f6f7ff;border:1px solid #d8def1;border-radius:12px;align-items:center;gap:.55rem;min-height:46px;padding:.65rem .9rem;font-weight:700;display:flex}.assignment-list input{width:20px;height:20px}.inline-note{border-radius:10px;margin:.25rem 0;padding:.65rem .8rem}.success-note{color:#185d3b;background:#eaf8f0}.warning-note{color:#7b4b13;background:#fff5dc}.word-table-wrap{overflow-x:auto}.word-table-wrap:focus-visible{outline-offset:2px;outline:4px solid #ffca5c}.word-table{border-collapse:collapse;background:#fff;width:100%}.word-table th,.word-table td{text-align:left;border-bottom:1px solid #e4e8f2;padding:.9rem}.word-table th{color:#58647c;font-size:.85rem}.word-table td small{color:#68748b;margin-top:.3rem;display:block}@media (width<=720px){.site-header{padding:0 1rem}.page-container{width:min(92vw,620px)}.feature-grid{grid-template-columns:1fr}.parent-toolbar,.page-heading,.subsection-heading,.record-card{flex-direction:column;align-items:stretch}.parent-toolbar nav,.account-bar{justify-content:space-between}.summary-grid,.field-grid{grid-template-columns:1fr}.heading-actions .button,.form-actions .button{flex:140px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
