:root{color:#243043;background:#f6f8fc;--ink: #243043;--muted: #687386;--surface: #ffffff;--line: #dbe2ec;--shadow: #cfd8e6;--green: #58cc02;--green-dark: #49a900;--green-soft: #e9ffd9;--blue: #1cb0f6;--blue-dark: #137db0;--blue-soft: #eaf7ff;--yellow: #ffc800;--yellow-dark: #8d6b00;--yellow-soft: #fff6cf;--coral: #ff6b6b;--coral-dark: #b53535;--coral-soft: #fff0f0;font-family:Inter,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,YuGothic,Noto Sans JP,Noto Sans CJK JP,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit}.app-shell{min-height:100vh;background:radial-gradient(circle at top left,rgba(28,176,246,.2),transparent 330px),linear-gradient(180deg,rgba(255,200,0,.16),transparent 260px),#f6f8fc;padding:24px}.app-frame{width:min(1520px,100%);margin:0 auto}.topbar,.quiz-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.eyebrow{color:var(--blue);font-size:.84rem;font-weight:650;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1;letter-spacing:0}.level-switch{display:inline-grid;grid-template-columns:repeat(5,minmax(56px,72px));gap:8px;padding:6px;border:2px solid var(--line);border-radius:18px;background:#fff}.top-actions{display:flex;align-items:center;gap:12px;justify-content:flex-end}.level-switch button,.subject-tabs button,.primary-button,.secondary-button,.start-button,.icon-button,.avatar-button,.wrong-icon-button{cursor:pointer;border:0}.avatar-button{display:grid;flex:0 0 54px;place-items:center;width:54px;min-width:54px;height:54px;min-height:54px;border-radius:50%;color:#fff;background:var(--blue);box-shadow:0 5px #168ac2;font-weight:650;font-size:1.25rem}.wrong-icon-button{position:relative;display:grid;flex:0 0 54px;place-items:center;width:54px;min-width:54px;height:54px;min-height:54px;border-radius:50%;color:var(--coral-dark);background:var(--coral-soft);box-shadow:0 5px #e7c5ce}.wrong-badge{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border:2px solid #ffffff;border-radius:999px;color:#fff;background:var(--coral);font-size:.78rem;font-weight:650}.level-switch button{min-height:42px;border-radius:12px;background:transparent;color:var(--muted);font-weight:650}.level-switch .active{color:#fff;background:var(--green);box-shadow:inset 0 -4px #0000001f}.subject-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.subject-tabs button{min-height:52px;border:2px solid var(--line);border-radius:16px;color:var(--muted);background:var(--surface);box-shadow:0 4px 0 var(--shadow);font-weight:650}.subject-tabs button:nth-child(1).active{color:#fff;border-color:var(--blue);background:var(--blue);box-shadow:0 4px #168ac2}.subject-tabs button:nth-child(2).active{color:#4c3900;border-color:var(--yellow);background:var(--yellow);box-shadow:0 4px #d8a900}.subject-tabs button:nth-child(3).active{color:#fff;border-color:var(--coral);background:var(--coral);box-shadow:0 4px #d94c4c}.stats-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{display:flex;align-items:center;gap:12px;min-height:82px;padding:16px;border:2px solid var(--line);border-radius:18px;background:#fff}.metric-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:var(--blue-dark);background:var(--blue-soft)}.metric:nth-child(2) .metric-icon{color:var(--yellow-dark);background:var(--yellow-soft)}.metric:nth-child(3) .metric-icon{color:var(--green-dark);background:var(--green-soft)}.metric strong,.metric small{display:block}.metric strong{font-size:1.35rem}.metric small,.book-meta,.history-row,.feedback span{color:#65746a}.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.home-continue-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:24px;border:2px solid #b9e7cd;border-radius:22px;background:linear-gradient(135deg,#f0fff5,#fff);box-shadow:0 5px #c9dfd2}.home-continue-card>div{display:grid;gap:8px}.home-continue-card h2{font-size:clamp(1.35rem,2.5vw,1.8rem)}.home-continue-card p,.home-section-heading p,.home-library-heading>span{color:var(--muted)}.home-section{margin-top:28px}.home-section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.home-section-heading h2{margin-bottom:4px;font-size:1.25rem}.home-section-heading p{font-size:.9rem}.training-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.training-action{position:relative;display:flex;min-height:142px;padding:18px;flex-direction:column;align-items:flex-start;gap:16px;border:2px solid var(--line);border-radius:19px;color:var(--ink);background:var(--surface);box-shadow:0 4px 0 var(--shadow);text-align:left;cursor:pointer}.training-action:hover,.subject-library-tabs button:hover,.home-review-grid button:hover{transform:translateY(-1px)}.training-action:disabled{cursor:not-allowed;opacity:.55}.training-action>svg{color:var(--blue-dark)}.training-action>span{display:grid;gap:5px}.training-action small{color:var(--muted);line-height:1.45}.training-action em{position:absolute;top:14px;right:14px;padding:4px 8px;border-radius:999px;color:var(--green-dark);background:#fff;font-size:.72rem;font-style:normal;font-weight:700}.training-action.featured{border-color:#b9e7cd;background:linear-gradient(145deg,var(--green-soft),#f8fff4);box-shadow:0 4px #bdd9c7}.training-action.featured>svg{color:var(--green-dark)}.home-module-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:14px}.home-training-module{display:flex;min-height:230px;padding:20px;flex-direction:column;gap:18px;border:2px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 4px 0 var(--shadow)}.home-training-module.featured{border-color:#b9e7cd;background:linear-gradient(145deg,var(--green-soft),#ffffff 72%);box-shadow:0 4px #bdd9c7}.home-module-heading,.home-module-heading>div{display:flex;align-items:center;gap:12px}.home-module-heading{justify-content:space-between}.home-module-heading>div>svg{color:var(--green-dark)}.exam-module .home-module-heading>div>svg{color:var(--blue-dark)}.home-module-heading span{display:grid;gap:4px}.home-module-heading strong{font-size:1.18rem}.home-module-heading small,.home-exam-summary span,.home-exam-summary small,.home-module-actions small{color:var(--muted)}.home-module-heading em{padding:4px 9px;border-radius:999px;color:var(--green-dark);background:#fff;font-size:.72rem;font-style:normal;font-weight:700}.home-module-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;flex:1}.home-module-actions button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:15px;border:2px solid #cfe3d6;border-radius:15px;color:var(--ink);background:#ffffffd6;text-align:left;cursor:pointer}.home-module-actions button:hover{border-color:var(--green);transform:translateY(-1px)}.home-module-actions button:disabled{cursor:not-allowed;opacity:.55}.home-module-actions button>svg:first-child{color:var(--green-dark)}.home-module-actions button span{display:grid;gap:5px}.home-exam-summary{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:3px 9px;flex:1}.home-exam-summary strong{grid-row:1 / 3;font-size:2.5rem;color:var(--blue-dark)}.home-exam-summary small{grid-column:2}.exam-module .primary-button{width:100%}.subject-library-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.subject-library-tabs button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;min-height:60px;padding:13px 16px;border:2px solid var(--line);border-radius:16px;color:var(--muted);background:var(--surface);box-shadow:0 4px 0 var(--shadow);text-align:left;cursor:pointer}.subject-library-tabs button span{font-size:.78rem}.subject-library-tabs button.active{color:#fff}.subject-library-tabs button.subject-grammar{border-color:var(--blue);background:var(--blue);box-shadow:0 4px #168ac2}.subject-library-tabs button.subject-meaning{color:#4c3900;border-color:var(--yellow);background:var(--yellow);box-shadow:0 4px #d8a900}.subject-library-tabs button.subject-kanji{border-color:var(--coral);background:var(--coral);box-shadow:0 4px #d94c4c}.home-library-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:26px 0 13px}.home-library-heading>div{display:flex;align-items:center;gap:12px}.home-library-heading h2{font-size:1.2rem}.home-review-grid{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:13px;margin-top:26px}.home-study-summary,.home-review-grid button{min-height:86px;padding:16px;border:2px solid var(--line);border-radius:17px;color:var(--ink);background:var(--surface)}.home-study-summary{display:grid;grid-template-columns:1fr auto;align-items:center}.home-study-summary small,.home-study-summary span,.home-review-grid button small{color:var(--muted)}.home-study-summary strong{grid-row:1 / 3;grid-column:2;font-size:1.7rem}.home-review-grid button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-align:left;cursor:pointer}.home-review-grid button>svg:first-child{color:var(--coral-dark)}.home-review-grid button:last-child>svg:first-child{color:var(--blue-dark)}.home-review-grid button span{display:grid;gap:4px}.grammar-practice-setup{width:min(980px,100%);margin:0 auto;padding-bottom:40px}.grammar-practice-title{flex:1}.grammar-practice-title h1{margin:4px 0 8px;font-size:clamp(2rem,4vw,3rem)}.grammar-practice-title p,.practice-config-heading p,.practice-source-grid small,.practice-type-grid small,.practice-start-bar span{color:var(--muted)}.grammar-practice-setup form{display:grid;gap:18px}.practice-config-section{padding:22px;border:2px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 4px 0 var(--shadow)}.practice-config-heading{display:flex;align-items:center;gap:13px;margin-bottom:18px}.practice-config-heading>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:11px;color:#fff;background:var(--blue);font-weight:700}.practice-config-heading h2{margin-bottom:3px;font-size:1.15rem}.practice-source-grid,.practice-type-grid{display:grid;gap:12px}.practice-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-source-grid label,.practice-type-grid label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;min-height:92px;padding:16px;border:2px solid var(--line);border-radius:16px;background:#fbfcfe;cursor:pointer}.practice-source-grid label>input,.practice-type-grid label>input{position:absolute;opacity:0;pointer-events:none}.practice-source-grid label>svg,.practice-type-grid label>svg{color:#9aa5b3}.practice-source-grid label>span,.practice-type-grid label>span{display:grid;gap:5px}.practice-source-grid label.selected,.practice-type-grid label.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 3px #b7ddf0}.practice-source-grid label.selected>svg,.practice-type-grid label.selected>svg{color:var(--blue-dark)}.practice-exam-select{width:100%;min-height:52px;margin-top:14px;padding:0 14px;border:2px solid var(--line);border-radius:13px;color:var(--ink);background:#fff}.practice-count-options{display:flex;flex-wrap:wrap;gap:10px}.practice-count-options>button{min-width:76px;min-height:48px;border:2px solid var(--line);border-radius:13px;color:var(--muted);background:#fff;cursor:pointer}.practice-count-options>button.selected{color:#fff;border-color:var(--green);background:var(--green);box-shadow:0 3px 0 var(--green-dark)}.practice-count-options>label{display:flex;align-items:center;min-height:48px;border:2px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.practice-count-options input{width:76px;padding:0 12px;border:0;outline:0;font:inherit}.practice-count-options label span{padding-right:12px;color:var(--muted)}.practice-start-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border:2px solid #b9e7cd;border-radius:18px;background:linear-gradient(135deg,var(--green-soft),#ffffff)}.practice-start-bar>div{display:grid;gap:4px}.grammar-type-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:24px}.grammar-type-summary>div{display:grid;gap:6px;padding:18px;border:2px solid var(--line);border-radius:17px;background:var(--surface)}.grammar-type-summary strong{color:var(--green-dark);font-size:1.65rem}.grammar-type-summary small{color:var(--muted)}.random-practice-view{width:min(920px,100%);margin:0 auto;padding-bottom:110px}.random-practice-question{display:grid;gap:20px;padding:26px;border:2px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 5px 0 var(--shadow)}.random-practice-meta{display:flex;align-items:center;justify-content:space-between;gap:14px}.random-practice-meta small{color:var(--muted)}.random-practice-number{color:var(--blue-dark);font-size:.88rem;font-weight:700}.random-practice-title{font-size:1.2rem;font-weight:600;line-height:1.75}.random-practice-nav{margin-top:20px}.listening-setup-form{display:grid;gap:18px}.listening-setup-filters{display:flex;align-items:end;gap:18px}.listening-setup-filters .book-pill{min-height:52px;display:inline-flex;align-items:center;padding:0 18px;border-radius:14px;font-size:1rem}.listening-setup-filters label{display:grid;gap:6px;color:var(--muted);font-size:.88rem}.listening-setup-filters select{min-width:190px;min-height:52px;padding:0 14px;border:2px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;font:inherit}.listening-resume{color:var(--ink);text-decoration:none}.listening-resume>strong{color:var(--green-dark);white-space:nowrap}.listening-exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.listening-exam-grid>a{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;min-height:112px;padding:17px;border:2px solid var(--line);border-radius:16px;color:var(--ink);background:#fbfcfe;text-decoration:none}.listening-exam-grid>a:hover{border-color:var(--blue);background:var(--blue-soft);transform:translateY(-1px)}.listening-exam-grid>a>svg{color:var(--blue-dark)}.listening-exam-grid>a>span{display:grid;gap:6px}.listening-exam-grid small{color:var(--muted)}.listening-exam-grid b{grid-column:2;color:var(--blue-dark);font-size:.85rem}.listening-practice-result{display:grid;place-items:center;gap:12px;width:min(680px,100%);margin:40px auto;padding:42px 24px;border:2px solid #b9e7cd;border-radius:22px;background:linear-gradient(145deg,var(--green-soft),#ffffff);text-align:center}.listening-practice-result>svg,.listening-practice-result>strong{color:var(--green-dark)}.listening-practice-result>strong{font-size:2rem}.listening-practice-result>p{color:var(--muted)}.listening-practice-result>div{display:flex;gap:12px;margin-top:10px}.mixed-test-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:18px;border:2px solid #bfe7fb;border-radius:20px;background:linear-gradient(135deg,#eaf7ffeb,#fff6cfdb),var(--surface);box-shadow:0 5px #b8d8eb}.mixed-test-card div:first-child{display:grid;gap:10px}.mixed-test-card h2{font-size:1.35rem}.mixed-test-card p{color:var(--muted);font-weight:650}.book-card{display:grid;grid-template-columns:1fr 54px;gap:12px;min-height:156px;padding:16px;border:2px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 5px 0 var(--shadow)}.book-card-main{display:flex;flex-direction:column;gap:12px}.book-badge,.book-pill{width:fit-content;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-weight:650}.book-badge{padding:5px 9px;font-size:.76rem}.subject-meaning{background:var(--yellow-soft);color:var(--yellow-dark)}.subject-kanji{background:var(--coral-soft);color:var(--coral-dark)}.subject-reading{background:var(--green-soft);color:var(--green-dark)}.book-card h2{font-size:1.1rem}.book-display-number{color:var(--ink);font-size:1.65rem;font-variant-numeric:tabular-nums;font-weight:500;line-height:1}.exam-section,.exam-list-view{display:grid;gap:12px;margin-bottom:18px}.exam-intro-view{max-width:860px;margin:0 auto}.exam-intro-card{margin-top:28px;padding:32px;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:var(--shadow)}.exam-intro-summary{display:flex;align-items:center;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--line)}.exam-intro-summary>div{display:grid;gap:4px}.exam-intro-summary span,.exam-section-schedule small{color:var(--muted)}.exam-intro-summary strong{font-size:1.5rem}.exam-section-schedule{display:grid;gap:12px;margin:24px 0}.exam-section-schedule>div{display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;background:var(--surface)}.exam-section-schedule>div>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:var(--ink);font-weight:800}.exam-section-schedule>div>div{display:flex;flex:1;justify-content:space-between;gap:12px}.exam-rules{display:grid;gap:10px;padding-left:22px;color:var(--muted);line-height:1.65}.exam-break-card{margin-top:15vh;text-align:center}.exam-break-card h1{margin:20px 0 10px}.exam-break-card p{max-width:560px;margin:0 auto 28px;color:var(--muted);line-height:1.7}.exam-timer{display:flex;align-items:center;gap:7px;min-width:92px;justify-content:center;padding:10px 12px;border-radius:12px;background:var(--surface);font-variant-numeric:tabular-nums}.exam-timer.urgent{color:#b42318;background:#fee4e2}.listening-exam-player{display:flex;align-items:center;gap:16px;margin:18px 0;padding:18px;border:1px solid #b8d4ee;border-radius:16px;background:#eef7ff}.listening-exam-player>div{display:grid;flex:1;gap:4px}.listening-exam-player p{margin:0;color:var(--muted);font-size:.9rem}.listening-exam-player>span{color:var(--blue-dark);font-weight:750}@media(max-width:640px){.exam-intro-card{padding:22px 18px}.exam-section-schedule>div>div{display:grid}.exam-timer{order:-1;width:100%}}.exam-entry-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:18px;border:2px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 4px 0 var(--shadow)}.exam-entry-card p{margin-top:8px;color:var(--muted);font-weight:700}.vocabulary-entry-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:18px;border:2px solid #cbe8d0;border-radius:18px;background:linear-gradient(135deg,#f3ffe9,#eaf7ff);box-shadow:0 4px #bdd7c6}.vocabulary-entry-card p{color:var(--muted);font-weight:700}.vocabulary-open-button{white-space:nowrap}.exam-level-switch{width:min(440px,100%)}.exam-list-view .exam-list{max-height:none;overflow:visible;padding-right:0}.exam-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;max-height:360px;overflow:auto;padding-right:4px}.exam-card{display:grid;grid-template-columns:1fr auto;gap:12px;min-height:92px;padding:12px 14px;border:2px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 4px 0 var(--shadow)}.exam-card h3{margin:8px 0 4px;font-size:1.08rem}.exam-card p{color:var(--muted);font-weight:650;line-height:1.45}.exam-card-actions{display:grid;align-content:center;justify-items:end;gap:8px}.exam-card .review-exam-button{min-height:30px;padding:0 9px;border-radius:10px;font-size:.78rem;gap:0;box-shadow:0 3px 0 var(--shadow);white-space:nowrap}.book-meta{display:flex;justify-content:space-between;gap:10px;font-size:.88rem;font-weight:700}.progress{width:100%;height:12px;overflow:hidden;border-radius:999px;background:#e8edf5}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .18s ease}.start-button{align-self:center;justify-self:end;display:grid;place-items:center;width:50px;height:50px;border-radius:50%;color:#fff;background:var(--green);box-shadow:0 5px 0 var(--green-dark)}.history-panel{margin-top:24px;padding:18px;border:2px solid var(--line);border-radius:20px;background:var(--surface)}.wrong-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding:18px;border:2px solid #f3c5c5;border-radius:20px;background:snow}.wrong-entry p{color:var(--muted);font-weight:650}.wrong-entry .secondary-button:disabled{cursor:not-allowed;color:#9aa4b2;background:#f1f4f8;box-shadow:0 5px #d6dde8}.wrong-page{max-width:920px;margin:0 auto;padding-bottom:40px}.user-page{display:grid;grid-template-rows:auto auto 1fr auto;max-width:760px;min-height:calc(100vh - 48px);margin:0 auto;padding-bottom:40px}.logout-button{margin-top:24px;width:100%}.profile-card,.new-user-form{margin-top:18px;padding:18px;border:2px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 5px 0 var(--shadow)}.profile-card{display:flex;align-items:center;gap:16px}.profile-admin-card{margin-top:24px}.profile-admin-card .section-title{align-items:flex-start}.profile-admin-card .section-title p{margin-top:4px;color:var(--muted);font-weight:650}.form-success{color:#16834a;font-weight:650}.profile-avatar{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;color:#fff;background:var(--blue);box-shadow:0 6px #168ac2;font-size:2rem;font-weight:650}.profile-card h2{font-size:1.6rem}.profile-card p,.new-user-form label{color:var(--muted);font-weight:650}.new-user-form{display:grid;gap:12px}.login-card .new-user-form{margin-top:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.new-user-form label{display:grid;gap:6px;color:var(--muted);font-weight:700}.new-user-form input{width:100%;min-height:48px;padding:0 12px;border:0;border-bottom:3px solid #cfd8e6;border-radius:12px 12px 0 0;color:var(--ink);background:#f7f9fd;font:inherit;font-weight:650}.new-user-form input:focus{outline:0;border-bottom-color:var(--blue);background:#fff}.form-error{color:#d93535;font-weight:650}.wrong-page-title{display:grid;gap:8px;flex:1}.wrong-page-title p{color:var(--muted);font-weight:700}.wrong-review-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:18px;border:2px solid #f3c5c5;border-radius:20px;background:linear-gradient(135deg,#fff0f0e6,#eaf7ffd1),var(--surface);box-shadow:0 5px #e7c5ce}.wrong-review-card div:first-child{display:grid;gap:10px}.wrong-review-card h2{font-size:1.35rem}.wrong-review-card p{color:var(--muted);font-weight:650}.wrong-list{display:grid;gap:10px}.wrong-item{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;padding:12px;border-radius:14px;background:#fff}.wrong-count{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:var(--coral);font-weight:650}.wrong-item h3{margin-bottom:6px;font-size:1rem}.wrong-item p{color:var(--muted);font-weight:650}.wrong-item small{display:block;margin-top:6px;color:#8a95a6;font-weight:650}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:#24312d}.section-title.compact{margin-bottom:6px}.section-title h2{font-size:1.15rem}.history-list{display:grid;gap:8px}.history-row{display:grid;grid-template-columns:minmax(120px,1fr) 86px 64px 110px;gap:8px;align-items:center;min-height:42px;padding:8px 10px;border-radius:12px;background:#f7f9fd;font-weight:650}.history-book{color:#24312d}.empty-history,.empty-books,.center-state{color:#65746a;font-weight:650}.empty-books{display:grid;place-items:center;gap:6px;min-height:180px;padding:24px;border:2px dashed #cad4e3;border-radius:20px;background:#ffffffb8;text-align:center}.empty-books strong,.empty-books span{display:block}.empty-books strong{color:#24312d;font-size:1.15rem}.center-state{display:grid;place-items:center;min-height:60vh}.center-state.error{color:#d93535}.vocabulary-page{width:min(920px,100%);margin:0 auto;padding-bottom:48px}.vocabulary-header{justify-content:flex-start}.vocabulary-title{display:grid;gap:5px}.vocabulary-title p{color:var(--muted);font-weight:700}.vocabulary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.vocabulary-stats div{display:grid;gap:3px;padding:13px;border:2px solid var(--line);border-radius:15px;background:var(--surface);text-align:center}.vocabulary-stats strong{font-size:1.35rem}.vocabulary-stats span{color:var(--muted);font-size:.78rem;font-weight:700}.vocabulary-filters{display:grid;grid-template-columns:minmax(220px,1fr) repeat(3,auto);gap:10px;margin-bottom:18px}.vocabulary-search{display:flex;align-items:center;gap:8px;min-height:46px;padding:0 13px;border:2px solid var(--line);border-radius:14px;color:var(--muted);background:var(--surface)}.vocabulary-search input{width:100%;border:0;outline:0;color:var(--ink);background:transparent;font:inherit;font-weight:650}.vocabulary-filters select{min-height:46px;padding:0 12px;border:2px solid var(--line);border-radius:14px;color:var(--ink);background:var(--surface);font:inherit;font-weight:650}.vocabulary-card{display:grid;gap:24px;min-height:390px;padding:clamp(22px,5vw,44px);border:2px solid #c8ddeb;border-radius:26px;background:radial-gradient(circle at top right,rgba(255,200,0,.15),transparent 220px),linear-gradient(150deg,#fff,#f6fbff);box-shadow:0 8px #c8d8e5}.vocabulary-card.revealed{min-height:540px}.vocabulary-card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-weight:750}.vocabulary-status{padding:5px 9px;border-radius:999px;background:#eef2f7;font-size:.76rem}.status-learning{color:var(--yellow-dark);background:var(--yellow-soft)}.status-mastered{color:var(--green-dark);background:var(--green-soft)}.vocabulary-word-block{display:grid;place-items:center;gap:14px;padding:12px 0 20px;text-align:center}.vocabulary-word-block h2{font-size:clamp(2.7rem,8vw,5.4rem);font-weight:650;line-height:1.05}.vocabulary-readings{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.vocabulary-readings span{padding:6px 12px;border-radius:999px;color:var(--blue-dark);background:var(--blue-soft);font-weight:750}.vocabulary-readings span+span{color:var(--coral-dark);background:var(--coral-soft)}.reveal-vocabulary{align-self:end;justify-self:center;min-height:52px;padding:0 28px;border:0;border-radius:15px;color:#fff;background:var(--blue);box-shadow:0 5px #168ac2;cursor:pointer;font-weight:750}.vocabulary-details{display:grid;gap:17px;border-top:2px solid var(--line);padding-top:22px}.vocabulary-meaning{display:grid;gap:5px;text-align:center}.vocabulary-meaning span,.vocabulary-detail-section h3{color:var(--muted);font-size:.82rem;text-transform:uppercase}.vocabulary-meaning strong{font-size:1.35rem}.vocabulary-detail-section{display:grid;gap:8px}.vocabulary-tags{display:flex;flex-wrap:wrap;gap:7px}.vocabulary-tags span{display:grid;gap:2px;padding:6px 10px;border-radius:10px;color:var(--blue-dark);background:var(--blue-soft);font-weight:700}.vocabulary-tags span strong{font-size:.92rem}.vocabulary-tags span small{color:inherit;font-size:.72rem;opacity:.76}.vocabulary-tags .no-natural-relation{color:var(--muted);background:#eef2f7}.collocation-tags span{color:var(--green-dark);background:var(--green-soft)}.vocabulary-examples{display:grid;gap:8px;margin:0;padding-left:22px;line-height:1.65;font-weight:400}.vocabulary-examples li strong,.vocabulary-examples li small{display:block}.vocabulary-examples li strong{font-weight:400}.vocabulary-examples li small{margin-top:3px;color:var(--muted);font-size:.78rem;font-weight:400}.vocabulary-card-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:18px}.vocabulary-card-footer>span{color:var(--muted);font-weight:750}.vocabulary-card-footer>:last-child{justify-self:end}.vocabulary-review-actions{display:flex;gap:9px}.review-again,.review-known{min-height:48px;padding:0 18px;border:0;border-radius:14px;color:#fff;cursor:pointer;font-weight:750}.review-again{background:var(--coral);box-shadow:0 4px #d94c4c}.review-known{background:var(--green);box-shadow:0 4px 0 var(--green-dark)}.review-again:disabled,.review-known:disabled{cursor:wait;opacity:.6}.login-page{display:grid;place-items:center;min-height:calc(100vh - 48px)}.login-card{display:grid;gap:20px;width:min(460px,100%);padding:28px;border:2px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:0 7px 0 var(--shadow)}.login-brand{display:grid;gap:8px}.login-brand div{color:var(--ink);font-size:clamp(2.4rem,9vw,4.4rem);font-weight:650;line-height:.95}.login-brand p{color:var(--muted);font-weight:700}.auth-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0;border:0;border-radius:0;background:transparent}.auth-tabs button{min-height:44px;border:2px solid var(--line);border-radius:12px;color:var(--muted);background:#fff;cursor:pointer;font-weight:650}.auth-tabs .active{color:#fff;background:var(--blue);box-shadow:inset 0 -4px #00000024}.quiz-view{max-width:820px;margin:0 auto}.exam-view{max-width:1120px;margin:0 auto}.icon-button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--muted);background:var(--surface);border:2px solid var(--line)}.quiz-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;flex:1;font-weight:650}.question-area{display:grid;gap:18px;padding:34px 0}.book-pill{padding:8px 12px}.question-area h2{font-size:clamp(1.55rem,3vw,2.45rem);line-height:1.45}.options-grid{display:grid;gap:12px;margin-bottom:118px}.exam-layout{display:grid;grid-template-columns:1fr;gap:18px;align-items:start;padding-top:22px}.exam-layout.sheet-open{grid-template-columns:260px 1fr}.exam-header-actions{display:flex;align-items:center;gap:10px}.exam-view .quiz-header{flex-wrap:wrap}.exam-view .quiz-progress{min-width:min(360px,100%)}.answer-sheet{position:sticky;top:18px;display:grid;gap:14px;padding:14px;border:2px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 4px 0 var(--shadow)}.answer-sheet-close{justify-self:end;padding:0;border:0;color:var(--muted);background:transparent;cursor:pointer;font-weight:650}.answer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.answer-section-list{display:grid;gap:14px}.answer-part{display:grid;gap:10px}.sheet-title{color:var(--muted);text-align:center;font-size:.82rem;font-weight:650}.answer-section{display:grid;gap:8px;padding:8px;border-radius:12px}.answer-section.active{background:var(--blue-soft)}.answer-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;border:0;color:var(--ink);background:transparent;font-size:.88rem;font-weight:650;text-align:left;cursor:pointer}.answer-section-title small{color:var(--muted);font-size:.76rem}.answer-dot{display:grid;place-items:center;aspect-ratio:1;min-width:0;border:2px solid var(--line);border-radius:10px;color:var(--muted);background:var(--surface);font-size:.82rem;font-weight:650}.answer-dot.answered{color:var(--green-dark);background:var(--green-soft);border-color:var(--green)}.answer-dot.active{color:#fff;background:var(--blue);border-color:var(--blue)}.submit-exam-button{width:100%}.exam-question-panel{display:grid;gap:16px;min-height:620px;padding:20px;border:2px solid var(--line);border-radius:18px;background:#fff}.exam-question-head{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;color:var(--muted);font-size:1.08rem;font-weight:650;line-height:1.55}.exam-question-head span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:var(--blue-dark);background:var(--blue-soft)}.exam-question-head small{grid-column:2;color:var(--blue-dark);font-size:.82rem}.exam-problem-page{display:grid;gap:18px;padding:0 clamp(10px,2vw,24px)}.exam-passage-group{display:grid;gap:18px}.exam-sub-question{display:grid;gap:14px;padding:6px 0 18px;background:transparent}.exam-sub-question+.exam-sub-question{padding-top:18px;border-top:1px solid var(--line)}.exam-sub-question-title{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:start}.exam-sub-question-title>span{color:var(--blue-dark);font-weight:650;font-size:1.08rem}.exam-sub-question-title .html-content{color:#263446;font-weight:500}.exam-sub-question .options-grid{margin-bottom:0}.html-content{color:#2f3d4f;font-size:1.08rem;font-weight:400;line-height:1.75}.html-content p{margin:0 0 10px}.html-content u{text-underline-offset:5px;text-decoration-thickness:1.5px}.exam-passage{max-height:420px;overflow:auto;padding:16px;border:2px solid var(--line);border-radius:14px;background:var(--surface)}.exam-passage .html-content{font-size:1.08rem;font-weight:400}.exam-audio{width:100%}.exam-audio.compact{margin:8px 0}.exam-image,.review-image{width:min(100%,680px);max-height:520px;object-fit:contain;border:2px solid var(--line);border-radius:12px;background:#fff}.exam-options{margin-bottom:0}.exam-nav{display:flex;justify-content:space-between;gap:12px;margin-top:8px}.exam-result-view{max-width:1180px}.exam-score-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.exam-score-summary>div{display:grid;gap:6px;padding:14px;border:2px solid var(--line);border-radius:14px;background:#fff}.exam-score-summary.passed>div:first-child{border-color:var(--green);background:var(--green-soft)}.exam-score-summary.failed>div:first-child{border-color:#ff9a9a;background:#fff0f0}.exam-score-summary span,.exam-score-summary small{color:var(--muted);font-weight:700}.exam-score-summary strong{color:var(--ink);font-size:1.45rem;font-weight:650}.result-review-layout{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:18px}.review-jump-panel{position:sticky;top:18px;display:grid;gap:10px;max-height:calc(100vh - 36px);overflow:auto;scrollbar-gutter:stable;padding:12px;border:2px solid var(--line);border-radius:14px;background:#fff}.review-jump-title{color:var(--muted);font-size:.82rem;font-weight:650}.review-jump-section{display:grid;gap:9px}.review-jump-group-title{color:var(--ink);font-size:.82rem;font-weight:650}.review-jump-problem{display:grid;gap:6px;padding-left:6px}.review-jump-problem-title{color:var(--muted);font-size:.74rem;font-weight:650}.review-jump-grid{display:grid;grid-template-columns:repeat(5,36px);gap:7px}.review-jump-dot{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;box-sizing:border-box;border:2px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:.78rem;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:0;line-height:1;padding:0;text-align:center}.review-jump-dot.right{color:var(--green-dark);border-color:var(--green);background:var(--green-soft)}.review-jump-dot.miss{color:#d93535;border-color:#ff9a9a;background:#fff0f0}.exam-review-item{align-items:start;scroll-margin-top:18px}.review-title{margin-bottom:8px}.review-title-row{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;margin-bottom:8px}.review-question-number{display:inline-flex;align-items:center;justify-content:center;width:34px;height:28px;box-sizing:border-box;border-radius:9px;color:#334155;background:#eef4f8;font-size:.82rem;font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.review-title .html-content{color:#263446;font-size:1.14rem;font-weight:500}.review-unanswered{display:inline-flex;align-items:center;margin:2px 0 10px;padding:5px 9px;border-radius:8px;color:#b42318;background:#fff0f0;font-size:.82rem;font-weight:650}.analysis-text{margin-top:12px;padding:12px;border-left:4px solid var(--blue);border-radius:0 12px 12px 0;color:#4d5b6f;background:#f6f9ff;line-height:1.72}.analysis-text .html-content{color:inherit;font-size:1.02rem;font-weight:400;line-height:1.72}.analysis-text .html-content p{margin:0}.analysis-text .html-content u{text-underline-offset:4px}.review-block-label{margin-bottom:8px;color:var(--muted);font-size:.78rem;font-weight:650}.listening-transcript,.reading-transcript,.listening-translation,.review-shared-passage{margin-top:12px;padding:12px;border:2px solid var(--line);border-radius:14px;background:#f8fbff}.review-shared-passage{margin-bottom:12px}.review-passage-group.has-shared-passage{display:grid;gap:12px;padding:16px 20px 18px;border-radius:16px;background:#fbfcfe}.review-passage-group.has-shared-passage .review-shared-passage{margin:0;padding:0 2px 4px;border:0;border-radius:0;background:transparent}.review-passage-group.has-shared-passage>.translation-block{margin-top:0;border:0;background:#f5f8fb}.review-passage-group.has-shared-passage .exam-review-item{padding:14px 0 0;border:0;border-top:1px solid #e4ebf2;border-radius:0;background:transparent}.listening-transcript,.reading-transcript{max-height:none;overflow:visible}.bilingual-toolbar{display:flex;justify-content:flex-end;margin-bottom:6px}.bilingual-toggle{min-height:30px;padding:0 10px;border:2px solid var(--line);border-radius:10px;color:var(--blue-dark);background:#fff;cursor:pointer;font-size:.78rem;font-weight:650}.bilingual-line{display:grid;gap:4px;padding:8px 0;border-bottom:1px solid #e6edf5}.bilingual-line:last-child{border-bottom:0}.bilingual-line>.html-content{color:#2f3d4f;font-size:1.03rem;font-weight:400;line-height:1.72}.translation-line{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei UI,Microsoft YaHei,Hiragino Sans,Noto Sans CJK JP,system-ui,sans-serif}.translation-line .html-content{color:#5f6f83;font-size:.96rem;font-weight:400;line-height:1.66}.listening-translation .html-content,.translation-block .html-content{color:#5f6f83;font-size:1.02rem;font-weight:400;line-height:1.7}.listening-translation .html-content p,.translation-block .html-content p{font-weight:400}.listening-translation,.translation-block{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei UI,Microsoft YaHei,Hiragino Sans,Noto Sans CJK JP,system-ui,sans-serif;margin-top:12px;padding:12px;border:2px solid var(--line);border-radius:14px;background:#fbfcfe}.review-options{display:grid;gap:7px;margin-top:12px}.review-option{display:grid;grid-template-columns:28px 1fr;align-items:start;gap:10px;padding:9px 10px;border:2px solid var(--line);border-radius:12px;color:#4b596b;background:#fff}.review-option-number{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;color:var(--muted);background:#eef3f8;font-size:.82rem;font-variant-numeric:tabular-nums;font-weight:650}.review-option-text{font-size:1rem;font-weight:400;line-height:1.55}.review-option.correct{border-color:var(--green);background:var(--green-soft)}.review-option.correct .review-option-number{color:#fff;background:var(--green)}.review-option.chosen-wrong{border-color:#ffb0b0;background:#fff4f4}.review-option.chosen-wrong .review-option-number{color:#fff;background:var(--coral)}.review-option.chosen-correct .review-option-text,.review-option.correct .review-option-text{color:#26452e}.option-button{display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:12px;min-height:70px;padding:12px 16px;border:2px solid var(--line);border-radius:18px;color:var(--ink);background:var(--surface);box-shadow:0 4px 0 var(--shadow);cursor:pointer;text-align:left;font-size:1.16rem;font-weight:550}.option-letter{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;color:var(--blue-dark);background:var(--blue-soft);font-size:.92rem;font-weight:650}.option-button.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 4px #87d8ff}.option-button.correct{border-color:var(--green);background:var(--green-soft);box-shadow:0 4px #b5e69c}.option-button.wrong{border-color:#ff4b4b;background:#fff0f0;box-shadow:0 4px #ffc1c1}.answer-dock{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:18px;padding:18px 24px;border-top:2px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.answer-dock.yes{border-color:#b5e69c;background:#e9ffd9f7}.answer-dock.no{border-color:#ffc1c1;background:#fff0f0f7}.feedback{width:min(560px,60vw)}.feedback strong,.feedback span{display:block}.feedback strong{font-size:1.1rem}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:14px;font-weight:650}.primary-button{color:#fff;background:var(--green);box-shadow:0 5px 0 var(--green-dark)}.primary-button:disabled{cursor:not-allowed;color:#91a09a;background:#dbe6d7;box-shadow:0 5px #c3d1bd}.secondary-button{color:var(--blue-dark);background:var(--surface);border:2px solid var(--line);box-shadow:0 5px 0 var(--shadow)}.logout-button{color:#fff;background:var(--coral);border-color:var(--coral);box-shadow:0 5px #d94c4c}.result-view{max-width:900px;margin:0 auto;padding-bottom:40px}.result-view.exam-result-view{max-width:1520px}.result-score{display:grid;place-items:center;gap:8px;min-height:260px;color:var(--blue);text-align:center}.result-score h1{font-size:clamp(4rem,12vw,7rem)}.result-score p{color:#52645b;font-size:1.1rem;font-weight:650}.result-actions{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.review-list{display:grid;gap:18px}.review-part-block,.review-problem-block{display:grid;gap:10px}.review-part-heading{position:sticky;top:0;z-index:1;padding:10px 12px;border:2px solid var(--line);border-radius:14px;color:var(--ink);background:#fffffff0;font-size:.96rem;font-weight:650}.review-problem-heading{width:fit-content;padding:6px 10px;border-radius:999px;color:var(--blue-dark);background:var(--blue-soft);font-size:.84rem;font-weight:650}.review-item{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:14px;border:2px solid var(--line);border-radius:16px;background:#fff}.review-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%}.review-mark.right{color:var(--green-dark);background:var(--green-soft)}.review-mark.miss{color:#d93535;background:#fff0f0}.review-item h3{margin-bottom:6px;font-size:1rem}@media(max-width:680px){.app-shell{padding:16px}.topbar{align-items:stretch;flex-direction:column}.top-actions{align-items:center;flex-wrap:wrap}.home-continue-card{grid-template-columns:1fr;padding:20px}.home-continue-card .primary-button{width:100%}.training-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-module-grid,.subject-library-tabs,.home-review-grid{grid-template-columns:1fr}.home-library-heading{align-items:flex-start;flex-direction:column;gap:8px}.practice-source-grid,.practice-type-grid{grid-template-columns:1fr}.practice-start-bar{align-items:stretch;flex-direction:column}.practice-start-bar .primary-button{width:100%}.listening-exam-grid{grid-template-columns:1fr}.listening-setup-filters{align-items:stretch;flex-direction:column}.listening-setup-filters select,.level-switch,.subject-tabs,.stats-strip{width:100%}.level-switch{flex:1 1 150px;grid-template-columns:repeat(5,1fr)}.subject-tabs{grid-template-columns:repeat(3,1fr)}.stats-strip{grid-template-columns:1fr}.mixed-test-card,.wrong-entry,.wrong-review-card,.exam-entry-card{align-items:stretch;flex-direction:column}.exam-entry-card .primary-button{width:100%}.vocabulary-entry-card{align-items:stretch;flex-direction:column}.vocabulary-open-button{width:100%}.vocabulary-stats{grid-template-columns:repeat(2,1fr)}.vocabulary-filters{grid-template-columns:1fr 1fr}.vocabulary-search{grid-column:1 / -1}.vocabulary-filters select:last-child{grid-column:1 / -1}.vocabulary-card{padding:20px}.vocabulary-card-footer{grid-template-columns:auto 1fr}.vocabulary-card-footer>span{justify-self:end}.vocabulary-card-footer>:last-child{grid-column:1 / -1;justify-self:stretch}.vocabulary-review-actions>button,.vocabulary-card-footer>.secondary-button:last-child{flex:1}.exam-list{grid-template-columns:1fr}.exam-card{align-items:stretch;grid-template-columns:1fr}.exam-card-actions{grid-template-columns:1fr auto;justify-items:stretch}.exam-card .start-button{width:100%;min-height:48px}.exam-score-summary,.result-review-layout{grid-template-columns:1fr}.review-jump-panel{position:static;max-height:none;overflow:visible}.review-jump-grid{grid-template-columns:repeat(auto-fill,minmax(34px,1fr))}.exam-layout,.exam-layout.sheet-open{grid-template-columns:1fr}.exam-header-actions{width:100%}.exam-header-actions .primary-button,.exam-header-actions .secondary-button{flex:1}.answer-sheet{position:static}.answer-grid{grid-template-columns:repeat(6,1fr)}.exam-question-panel{min-height:auto;padding:16px}.exam-nav{flex-direction:column}.profile-card{align-items:flex-start}.history-row{grid-template-columns:1fr 44px 54px}.history-row span:last-child{display:none}.question-area{padding:22px 0}.answer-dock{align-items:stretch;flex-direction:column}.feedback{width:100%}.result-actions{flex-direction:column}}@media(max-width:430px){.training-action-grid{grid-template-columns:1fr}.training-action{min-height:118px}.home-module-actions{grid-template-columns:1fr}}.listening{width:100%;margin-bottom:18px}.listening .quiz-header{justify-content:flex-start}.listening .quiz-header p{margin-top:12px;color:var(--muted)}.listening-note{color:var(--muted);font-size:.85rem;margin-bottom:20px}.listening-card{display:block;padding:24px;margin-bottom:20px;border:2px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 4px 0 var(--shadow);color:var(--ink);text-decoration:none}.listening-card h2,.listening-card p{margin-bottom:14px;line-height:1.7}.listening-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0}.listening-tools{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:20px 0}.listening select{font:inherit;padding:10px 14px;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink)}.listening-level-switch{grid-template-columns:repeat(2,minmax(56px,72px))}.listening-mode-tabs{margin-bottom:20px}.listening button:disabled{cursor:not-allowed}.listening .secondary-button:disabled{opacity:.45}.listening button.selected,.listening .resume{background:var(--blue-soft);border-color:var(--blue)}.listening-question{align-items:flex-start;flex-direction:column;gap:10px;text-align:left;padding:18px}.listening-question span{font-size:.85rem;color:var(--muted)}.listening-player{position:sticky;top:0;z-index:2;padding:16px 0;background:var(--surface);display:flex;flex-wrap:wrap;gap:12px;align-items:center}.listening audio{width:min(100%,650px)}.listening-segments{max-height:560px;overflow-y:auto;scroll-padding:10px;padding:4px 4px 8px}.listening-segment{padding:18px;margin-bottom:14px;border:2px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 4px 0 var(--shadow)}.listening-segment.active{border-color:var(--blue);background:var(--blue-soft)}.listening-segment-header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.listening-segment p{margin:18px 0 0;white-space:pre-wrap;line-height:1.9}.listening .translation{color:var(--muted)}.listening-image{max-width:100%;max-height:380px;object-fit:contain}.listening a{text-decoration:none}.listening a:focus-visible,.listening button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}@media(max-width:600px){.listening-card{padding:16px}.listening-grid{grid-template-columns:1fr}.listening-mode-tabs{flex-wrap:wrap}.listening-segment{padding:12px}}.listening-player{gap:20px;padding:20px;margin-bottom:24px;border:2px solid var(--line);border-radius:16px;box-shadow:0 4px 0 var(--shadow)}.listening-play{flex-shrink:0}.listening-progress{flex:1 1 220px;min-width:0}.listening-progress-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:.9rem}.listening-progress-label span{color:var(--muted);font-size:.8rem}.listening-progress input{appearance:none;display:block;width:100%;height:10px;margin:10px 0;border-radius:10px;background:linear-gradient(to right,var(--blue) var(--played),var(--line) var(--played));cursor:pointer}.listening-progress input::-webkit-slider-thumb{appearance:none;width:22px;height:22px;border-radius:50%;border:3px solid white;background:var(--blue);box-shadow:0 2px 0 var(--blue-dark)}.listening-progress input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;border:3px solid white;background:var(--blue);box-shadow:0 2px 0 var(--blue-dark)}.listening-progress input:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.listening-progress input:disabled{opacity:.5;cursor:not-allowed}.listening-player-settings{display:flex;align-items:center;gap:12px}.listening-player-settings label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem}.listening .listening-mute{padding:0;width:46px;min-height:44px}@media(max-width:600px){.listening-player{padding:16px;gap:16px}.listening-progress{flex-basis:calc(100% - 130px)}.listening-progress-label span{display:none}.listening-player-settings{width:100%;justify-content:space-between}}.listening-workspace{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px;align-items:start}.listening-sidebar{position:sticky;top:24px;margin:0;padding:24px}.listening-panel-heading{margin-bottom:20px}.listening-panel-heading h2{margin:6px 0 0;font-size:1.3rem}.listening-sidebar .listening-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.listening-sidebar .listening-mode-tabs button{padding:12px 8px;font-size:.95rem}.listening-sidebar .listening-player{position:static;padding:18px;gap:18px;background:var(--blue-soft);box-shadow:none}.listening-sidebar .listening-play{width:100%}.listening-sidebar .listening-progress{flex-basis:100%}.listening-sidebar .listening-progress-label span{display:none}.listening-sidebar .listening-player-settings{width:100%;justify-content:space-between}.listening-sidebar .listening-tools{gap:12px}.listening-sidebar .listening-tools>button{flex:1;padding:0 10px;font-size:.9rem}.listening-sidebar footer{border-top:2px solid var(--line);padding-top:24px;margin-bottom:0}.listening-sidebar footer .primary-button{flex-basis:100%}.listening-sidebar footer span{color:var(--muted);font-size:.85rem}.listening-content{min-width:0;min-height:570px;padding:28px;margin:0}.listening-content-heading{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding-bottom:18px;border-bottom:2px solid var(--line)}.listening-content-heading h2{margin:0;font-size:1.5rem}.listening-content-heading span{color:var(--muted);font-size:.85rem}.listening-content .listening-segments{max-height:none;overflow:visible}.listening-content .listening-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.listening-content .listening-image{display:block;margin:20px auto}@media(min-width:1200px){.listening-workspace{grid-template-columns:380px minmax(0,1fr);gap:32px}.listening-content{padding:32px}}@media(max-width:900px){.listening-workspace{grid-template-columns:minmax(0,1fr);gap:20px}.listening-sidebar{position:static}.listening-content{min-height:0}.listening-sidebar .listening-play{width:auto}.listening-sidebar .listening-progress{flex-basis:180px}}@media(max-width:600px){.listening-sidebar,.listening-content{padding:16px}.listening-content .listening-grid{grid-template-columns:1fr}}.listening-sidebar .listening-tools:not(footer){display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.listening-sidebar .listening-tools:not(footer)>button{padding:0 6px;white-space:nowrap}.listening-sidebar .listening-tools:not(footer)>label{grid-column:span 3}.listening-feedback{margin-top:28px;border:2px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}.listening-feedback-heading{display:flex;align-items:flex-start;gap:12px;padding:20px 24px;background:var(--green-soft)}.listening-feedback-heading>svg{flex-shrink:0;margin-top:3px;color:var(--green-dark)}.listening-feedback.is-incorrect .listening-feedback-heading{background:var(--yellow-soft)}.listening-feedback.is-incorrect .listening-feedback-heading>svg{color:var(--yellow-dark)}.listening-feedback-heading h3{margin:0;font-size:1.1rem;line-height:1.5}.listening .listening-feedback-heading p{margin:6px 0 0;font-size:.9rem;line-height:1.7;color:var(--muted)}.listening-answer-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;padding:24px}.listening-answer-summary>div{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#f6f8fc}.listening-answer-summary .listening-correct-answer{background:var(--green-soft);border-color:#b8dfa2}.listening-answer-summary span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:8px}.listening .listening-answer-summary p{margin:0;font-size:1rem;font-weight:600;line-height:1.8;overflow-wrap:anywhere}.listening-explanation{margin:0 24px;padding:20px 0 4px;border-top:1px solid var(--line)}.listening-explanation h4{margin:0 0 12px;font-size:.9rem;color:var(--muted);font-weight:650}.listening .listening-explanation p{margin:0 0 14px;font-size:.98rem;line-height:1.95;overflow-wrap:anywhere;white-space:pre-wrap;max-width:72ch}.listening-feedback-actions{display:flex;flex-wrap:wrap;gap:12px;padding:20px 24px 26px}.listening-feedback-actions .secondary-button{min-height:44px;font-size:.9rem}@media(max-width:600px){.listening-feedback-heading,.listening-answer-summary{padding:16px}.listening-answer-summary{grid-template-columns:1fr}.listening-explanation{margin:0 16px}.listening-feedback-actions{padding:16px 16px 22px}}.focus-player-settings>.listening-play,.focus-player-settings>.listening-progress{display:none}.focus-layout{display:grid;grid-template-columns:minmax(0,1fr)}.focus-stage{min-width:0;display:flex;flex-direction:column;align-items:center;padding:28px 16px;border-radius:16px;background:#f6f8fc}.focus-stage:focus-visible{outline:2px solid var(--blue)}.focus-play{margin:28px 0;min-height:72px;padding:0 32px}.focus-transcript{width:100%;min-height:200px;text-align:center}.listening .focus-transcript p{font-size:1.15rem;line-height:2;margin:16px 0 24px}.focus-transcript .secondary-button{margin:6px}.focus-placeholder{color:var(--muted)}.focus-navigation{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}.listening .focus-shortcuts{font-size:.78rem;color:var(--muted);margin:20px 0 0;line-height:1.8;text-align:center}@media(max-width:600px){.focus-stage{padding:20px 10px}.focus-navigation{gap:8px}.focus-navigation .secondary-button{padding:0 10px}}.listening-full-transcript{margin:22px 0;padding:20px;border:2px solid var(--line);border-radius:16px;background:#f6f8fc}.listening-full-transcript h3{margin:0 0 14px;font-size:1rem}.listening-transcript-scroll{max-height:360px;overflow-y:auto}.listening .listening-transcript-scroll p{margin:0 0 8px;padding:12px 16px;border-left:3px solid transparent;border-radius:8px;font-size:1.05rem;line-height:1.95;transition:background .15s ease,border-color .15s ease}.listening .listening-transcript-scroll p.is-playing{border-left-color:var(--blue);background:var(--blue-soft);color:var(--blue-dark)}@media(max-width:600px){.listening-full-transcript{padding:14px}.listening .listening-transcript-scroll p{padding:10px}}.listening-transcript-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.listening-transcript-heading h3{margin:0}.listening-transcript-heading .secondary-button{min-height:42px;padding:0 14px;font-size:.9rem}
