@import "https://fonts.googleapis.com/css2?family=Ysabeau+Infant:wght@300;400;500;600;700&display=swap";.app-page{justify-content:center;width:100%;min-height:100vh;padding:clamp(12px,3vw,24px);display:flex;overflow-x:hidden}.app-shell{flex-direction:column;gap:14px;width:min(860px,100%);min-width:0;margin:0 auto;display:flex}.card{background:var(--paper);border:1px solid var(--stroke);box-shadow:var(--shadow);border-radius:22px;width:100%;padding:18px}.card-soft{background:var(--paper2);box-shadow:var(--shadow2)}.back-fixed{z-index:50;justify-content:flex-start;margin-bottom:8px;display:flex;position:sticky;top:0}.title-main{letter-spacing:.2px;text-align:center;margin-top:0;margin-bottom:0;font-size:clamp(22px,5.2vw,26px);font-weight:650;line-height:1.2}.subtitle-main{color:#2b241f99;text-align:center;max-width:560px;margin:0 auto;font-size:15px;line-height:1.55}.loading-text{color:#2b241f99;font-weight:500}.error-note{margin-top:16px}.card-grid{gap:14px;margin-top:18px;display:grid}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.section-title{color:#5d544b;margin:0;font-weight:500}.button-base{cursor:pointer;white-space:nowrap;border-radius:16px;transition:transform 60ms,filter .14s,box-shadow .14s}.button-base:hover{filter:brightness(1.02)}.button-base:active{transform:translateY(1px)}.button-primary{color:#fff;background:linear-gradient(180deg, var(--rose), var(--gold));border:none;padding:13px 18px;font-size:16.5px;font-weight:700;box-shadow:0 16px 36px #d86b8d2e}.button-secondary{color:#2b241feb;background:#ffffffe0;border:1px solid #2b241f24;padding:12px 16px;font-size:15.5px;font-weight:650;box-shadow:0 10px 24px #50281e14}.button-selected{background:#efe9df;border:2px solid #72675c}.button-full{width:100%}.button-left{text-align:left}.question-picker{flex-wrap:wrap;gap:10px;display:flex}.question-chip{cursor:pointer;border-radius:14px;min-width:52px;padding:10px 14px;font-weight:700;transition:transform 60ms,filter .14s,box-shadow .14s}.question-chip-normal{color:#2b241feb;background:#ffffffe0;border:1px solid #2b241f1f;box-shadow:0 8px 18px #50281e0d}.question-chip-selected{border:2px solid var(--rose);color:var(--ink);background:linear-gradient(#d86b8d2e,#e2b15f2e);box-shadow:0 10px 24px #50281e1a}.question-chip-bank{color:var(--ink);background:linear-gradient(#d86b8d2e,#e2b15f2e);border:1px solid #d86b8d59;box-shadow:0 10px 24px #50281e1a,0 2px 6px #d86b8d1f}.question-chip-bank:hover{transform:translateY(-1px)scale(1.03);box-shadow:0 14px 28px #50281e24,0 4px 10px #d86b8d2e}.selected-count{color:#6b7280;margin-top:14px}.level-list{gap:10px;margin-bottom:16px;display:grid}.status-box{box-shadow:var(--shadow2);background:#ffffffe0;border:1px solid #2b241f1f;border-radius:16px;padding:12px}.status-box-info{color:#2b241fcc}.status-box-error{color:#8d4040}.top-progress-card{margin-bottom:20px}.top-progress-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;width:100%;display:flex}.top-progress-meta{color:#6b7280;margin-bottom:6px}.top-progress-title{letter-spacing:.2px;margin:0;font-size:22px;font-weight:650;line-height:1.15}.top-score-box{text-align:right;flex-shrink:0;min-width:120px}.top-score-label{color:#6b7280}.top-score-value{font-size:28px;font-weight:700}.progress-bar{background:#2b241f1a;border-radius:999px;width:100%;height:12px;margin-top:16px;overflow:hidden}.progress-bar-fill{background:linear-gradient(180deg, var(--rose), var(--gold));border-radius:999px;height:100%}.question-meta{color:#6b7280;margin-bottom:8px;font-size:14px}.question-title{white-space:pre-line;margin-top:0;font-size:clamp(20px,5vw,28px);line-height:1.5}.practice-box{box-shadow:var(--inset), 0 8px 18px #50281e0d;white-space:pre-line;overflow-wrap:anywhere;word-break:break-word;background:#ffffffe0;border:1px solid #2b241f1f;border-radius:12px;margin-bottom:16px;padding:16px;line-height:2}.slot-button{min-width:120px;min-height:42px;color:var(--ink);vertical-align:middle;overflow-wrap:anywhere;word-break:break-word;text-align:center;border:1px solid #2b241f1f;border-radius:14px;max-width:100%;margin:0 4px;padding:8px 12px;transition:transform 60ms,filter .14s,box-shadow .14s}.slot-empty{box-shadow:var(--inset), 0 8px 18px #50281e0d;cursor:default;background:#ffffffb8;font-weight:600}.slot-filled{box-shadow:var(--inset), 0 8px 18px #50281e0d;cursor:pointer;background:#ffffffeb;font-weight:600}.practice3-slots{margin-bottom:16px}.practice3-slot-list{flex-wrap:wrap;gap:10px;display:flex}.practice3-slot{justify-content:center;align-items:center;gap:8px;min-width:140px;max-width:100%;min-height:48px;margin:0;display:flex}.slot-index{color:#2b241f47;font-size:12px;font-weight:500}.slot-underline{color:#2b241f6b;letter-spacing:.08em}.bank-title{color:#2b241fcc;margin-bottom:12px;font-weight:500}.bank-list{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.bottom-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.finish-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.finish-stat-card{background:var(--paper2);box-shadow:var(--shadow2);min-width:0;padding:14px}.finish-stat-label{color:#6b7280;font-size:13px;line-height:1.3}.finish-stat-value{margin-top:6px;font-size:clamp(24px,4vw,30px);font-weight:700;line-height:1.1}.finish-summary-card{padding-bottom:16px}.finish-summary-title{margin-bottom:4px}.finish-summary-subtitle{color:#6b5f55;margin:0}.relearn-card{background:#ffffffe6;border:1px solid #2b241f1f;border-radius:12px;margin-bottom:12px;padding:16px}.relearn-meta{color:#6b7280;margin-bottom:8px;font-size:14px}.relearn-question{white-space:pre-line;font-weight:700}.relearn-answer{white-space:pre-line;margin-top:8px}.feedback-card{box-shadow:none;background:#ffffffe6;margin-top:20px}.feedback-card-correct{background:#ebf8f0e6;border:1px solid #335c3f2e}.feedback-card-wrong{background:#fcebebe6;border:1px solid #8d40402e}.action-button-primary{min-width:160px}.bottom-actions .action-button-secondary{background:#faf5eefa;border:1px solid #2b241f2e;min-width:140px;box-shadow:inset 0 1px #ffffffb8,0 6px 14px #50281e0d}.bottom-actions .action-button-secondary:hover{background:#f6efe6fa;box-shadow:inset 0 1px #ffffffb8,0 10px 22px #50281e14}.text-correct{color:#2e7d32;font-weight:600}.text-wrong{color:#c62828;font-weight:600}.answer-correct{color:#2e7d32}.answer-wrong{color:#c62828}@keyframes gentlePopCorrect{0%{opacity:.7;transform:scale(.98)}55%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.feedback-card-pop{animation:.22s ease-out gentlePopCorrect}@media (width<=700px){.finish-grid{grid-template-columns:1fr}.finish-stat-card{padding:12px}.finish-stat-value{font-size:24px}}.bottom-actions-compact{justify-content:space-between;align-items:center}.bottom-actions-secondary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.action-button-small{border-radius:12px;min-width:auto;padding:8px 12px;font-size:14px;font-weight:600;box-shadow:0 4px 10px #50281e0d}.feedback-inline{background:#ffffffeb;border:1px solid #2b241f1f;border-radius:12px;margin-top:16px;margin-bottom:10px;padding:10px 12px;box-shadow:0 6px 14px #50281e0d}.feedback-inline-correct{color:#335c3f;background:#ebf8f0f2;border-color:#335c3f2e}.feedback-inline-wrong{color:#8d4040;background:#fcebebf2;border-color:#8d40402e}@media (width<=640px){.app-page{padding:10px}.app-shell{gap:10px}.card{border-radius:18px;padding:14px}.title-main{font-size:22px}.back-fixed{margin-bottom:6px}.back-fixed .button-base{padding:6px 10px;font-size:13px}.subtitle-main,.loading-text,.error-note,.selected-count,.top-progress-meta,.top-score-label,.question-meta,.finish-stat-label,.finish-summary-subtitle{font-size:14px;line-height:1.45}.section-head{align-items:flex-start}.question-picker{gap:8px}.question-chip{min-width:46px;padding:9px 12px;font-size:14px}.button-secondary{padding:10px 14px;font-size:14px}.button-primary{padding:12px 16px;font-size:15px}.top-progress-head{flex-direction:column;align-items:stretch;gap:10px}.top-progress-title{color:#2b241f85;font-size:13px;font-weight:500}.top-score-box{text-align:left;min-width:0}.top-score-value{font-size:24px}.progress-bar{height:10px;margin-top:12px}.question-title{font-size:clamp(18px,5.4vw,22px);line-height:1.55}.practice-box{padding:12px;font-size:15px;line-height:1.9}.slot-button{border-radius:12px;min-width:88px;min-height:40px;margin:0 2px;padding:8px 10px;font-size:14px}.practice3-slot-list{gap:8px}.practice3-slot{gap:6px;min-width:110px;min-height:42px}.slot-index{font-size:11px}.bank-title,.section-title{font-size:15px}.bank-list{gap:8px}.bottom-actions{flex-direction:column;align-items:stretch;gap:10px}.bottom-actions-secondary{justify-content:flex-start;width:100%}.bottom-actions .button-base,.action-button-primary{width:100%;min-width:0}.bottom-actions .action-button-small{width:auto}.feedback-inline,.feedback-card{font-size:14px;line-height:1.45}.relearn-card{padding:14px}.relearn-meta{font-size:13px}.question-chip-bank{min-width:0;padding:10px 12px;font-size:14px}}@media (width<=380px){.card{padding:12px}.question-chip{min-width:42px;padding:8px 10px}.practice3-slot{min-width:96px}.slot-button{min-width:78px;font-size:13px}.button-secondary,.button-primary,.question-chip-bank{font-size:13px}}.button-primary:disabled{opacity:.5;cursor:not-allowed;color:#666;background:linear-gradient(#ccc,#bbb)}.button-primary:disabled:hover{filter:none;transform:none}:root{--bg:#fce5cd;--ink:#2b241f;--paper:#ffffffc7;--paper2:#ffffffe0;--stroke:#2b241f1f;--rose:#d86b8d;--gold:#e2b15f;--r:22px;--r2:16px;--shadow:0 18px 45px #50281e1a;--shadow2:0 10px 26px #50281e14;--inset:inset 0 1px 0 #ffffffa6}*{box-sizing:border-box;font-family:Ysabeau Infant,sans-serif}html,body,#root{min-height:100%;margin:0}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;justify-content:center;align-items:flex-start;min-height:100%;margin:0;padding:24px;display:flex}body.embedded{padding:12px}button,input,textarea,select{font:inherit}@media (width<=820px){body{padding:16px}}@media (width<=520px){body{padding:14px}}
