:root{--bg:#eef3f5;--ink:#1f2933;--muted:#65758b;--line:#d8dee8;--brand:#2f7c81;--brand-dark:#246367;--accent:#d97706;--panel:#fff;--soft:#f6fbfb}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}
.topbar{height:60px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:0 28px;background:var(--brand);border-bottom:1px solid rgba(255,255,255,.14);box-shadow:0 2px 10px rgba(24,56,64,.16);position:sticky;top:0;z-index:5}.brand{font-weight:800;color:#fff;letter-spacing:.5px;white-space:nowrap}.topbar nav{display:flex;gap:16px;color:rgba(255,255,255,.88);font-size:14px}.topbar nav a:hover{color:#fff}
main{min-height:calc(100vh - 56px)}.workspace{max-width:1180px;margin:0 auto;padding:24px;display:grid;gap:16px}.two-col{grid-template-columns:1fr 1fr}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:20px}.intro{min-height:220px;display:flex;flex-direction:column;justify-content:center}
h1{font-size:26px;margin:0 0 12px}h2{font-size:18px;margin:0 0 12px}p{line-height:1.7;color:var(--muted)}.actions,.filters{display:flex;gap:10px;flex-wrap:wrap}.btn,button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:9px 14px;cursor:pointer}.btn:hover,button:hover{border-color:#a9c7cb}.btn.primary,button.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover,button.primary:hover{background:var(--brand-dark)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px;background:#fff}label{display:block;margin:12px 0;color:var(--muted)}
.study-home{max-width:1220px;margin:0 auto;padding:24px}.home-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;background:linear-gradient(135deg,#ffffff,#edf8f8);border:1px solid #cfe2e5;border-radius:8px;padding:26px 28px;box-shadow:0 6px 18px rgba(42,82,92,.06)}.eyebrow{margin:0 0 8px;color:var(--brand);font-weight:800;letter-spacing:.4px}.home-hero h1{font-size:30px}.home-hero p{max-width:760px;margin:0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.subject-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:18px 0}.subject-pill{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;min-height:72px}.subject-pill b{font-size:18px}.subject-pill span{font-size:13px;color:var(--muted)}.subject-pill.active{border-color:#7bbfc4;background:#f4fbfb;box-shadow:inset 0 3px 0 var(--brand)}.subject-pill.disabled{opacity:.55;background:#f7f8f9}.exam-board{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px}.board-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}.board-heading p{margin:0}.exam-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.exam-column{border:1px solid #dfe8eb;border-radius:8px;background:#fbfdfd;overflow:hidden}.exam-column-title{display:flex;justify-content:space-between;align-items:center;background:#e7f4f5;border-bottom:1px solid #cfe2e5;padding:12px 14px}.exam-column-title span{font-size:20px;font-weight:800;color:var(--brand-dark)}.exam-column-title small{color:var(--muted)}.year-row{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf1f3}.year-row:last-child{border-bottom:0}.year-label{font-weight:800;color:#31435a}.paper-links{display:flex;gap:8px;flex-wrap:wrap}.paper-links a{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:34px;border:1px solid #d7e3e7;border-radius:6px;background:#fff;color:var(--brand-dark);font-weight:800}.paper-links a:hover{background:#e7f4f5;border-color:#8fc7cc}
.grid-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:16px}.item{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}.item b{display:block;margin-bottom:6px}
.reader{display:grid;grid-template-columns:minmax(360px,1fr) 380px 320px;gap:16px;padding:16px}.passage,.questions,.ai-chat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;max-height:calc(100vh - 88px);overflow:auto}.sentence{display:grid;grid-template-columns:1fr 38px;gap:8px;align-items:start;color:var(--ink)}.sentence button{padding:4px}.translation{display:none;border-left:3px solid var(--brand);padding:8px 12px;margin:4px 0 12px;background:#f6fbf8;color:#31435a}.translation.open{display:block}.explain{margin-top:8px;color:#263442}.question{border-top:1px solid var(--line);padding:14px 0}.question h3{font-size:15px}.question label{color:var(--ink);line-height:1.5}.question input[type=radio]{width:auto;margin-right:6px}.ai-chat textarea{height:96px}.chat-msg{padding:9px;border-radius:6px;margin:8px 0;background:#eef3f7}.chat-msg.user{background:#e9f7f1}
.practice-page{padding:18px;background:var(--bg);min-height:calc(100vh - 60px)}.practice-paper{max-width:1280px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(42,82,92,.08);display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 96px);overflow:hidden}.practice-article,.practice-side{max-height:calc(100vh - 96px);overflow:auto}.practice-article{padding:26px 34px;border-right:1px solid var(--line)}.practice-title{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:14px}.practice-title span{color:var(--brand);font-weight:800}.practice-title h1{margin:6px 0 0}.read-toggle{display:flex;align-items:center;gap:8px;margin:4px 0 0;color:var(--brand-dark);font-weight:800;white-space:nowrap}.read-toggle input{width:auto}.exam-reading p{font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.95;color:#1d2935;text-indent:2em;margin:0 0 18px}.hidden{display:none}.intensive-reading{display:none}.intensive-reading.active{display:block}.para-block{border-bottom:1px solid #edf1f5;margin-bottom:12px;padding-bottom:12px}.sentence-card{position:relative;padding:10px 0 8px}.sentence-text{color:var(--ink);font-size:16px;line-height:1.85;margin:0 0 8px 56px}.mini-btn{position:absolute;left:0;top:11px;padding:4px 8px;font-size:12px;color:var(--brand-dark);border-color:#b8d5d9;background:#f4fbfb}.practice-side{padding:0}.side-tabs{display:grid;grid-template-columns:1fr 1fr;position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:2}.tab{border:0;border-radius:0;background:#fff;padding:13px}.tab.active{background:#e9f7f1;color:var(--brand);font-weight:700}.side-panel{display:none;padding:20px}.side-panel.active{display:block}.option{display:grid;grid-template-columns:24px 1fr;gap:6px;border:1px solid var(--line);border-radius:6px;padding:9px 10px;margin:8px 0}.analysis{color:var(--ink);line-height:1.7}.analysis-card{border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0;background:#fbfdfd}.analysis-card h3{font-size:14px;margin:0 0 8px;color:#31435a}.score-box{margin-top:12px;font-weight:700;color:var(--brand)}.chat-log{min-height:220px;max-height:38vh;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:10px;margin-bottom:10px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}td form{display:inline-flex;gap:6px;margin:2px}td input{max-width:72px}.stats{display:flex;gap:18px;flex-wrap:wrap}.stats b{border:1px solid var(--line);border-radius:8px;padding:14px 18px}.flash{padding:10px 12px;border-radius:6px;background:#eef3f7}.flash.success{background:#e9f7f1}.flash.danger{background:#fdecec}.result{white-space:pre-wrap;line-height:1.7}.qbank-box{display:grid;gap:10px}
.admin-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.edit-form{max-width:760px}.edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}.edit-grid.compact{grid-template-columns:110px 1fr 1fr}.editor-card{border:1px solid var(--line);border-radius:8px;padding:14px;margin:12px 0;background:#fbfcfd}.check-row{display:flex;align-items:center;gap:8px}.check-row input{width:auto}
.btn.danger,button.danger{border-color:#f3b8b8;color:#9f1d1d;background:#fff7f7}.btn.danger:hover,button.danger:hover{background:#fdecec;border-color:#e58b8b}.table-actions{display:flex;gap:6px;flex-wrap:wrap}.table-actions form{margin:0}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:14px 0 18px}.summary-card{border:1px solid var(--line);border-radius:8px;background:#fbfdfd;padding:12px}.summary-card b{display:block;color:var(--brand-dark);margin-bottom:4px}.summary-card span{font-size:13px;color:var(--muted)}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input{width:90px}.sentence-grid{grid-template-columns:120px 90px 1.3fr 1fr 1fr}.question-grid{grid-template-columns:120px 1.5fr 1fr 1fr}.editor-card .danger{margin-top:8px}
@media(max-width:1000px){.reader,.two-col,.practice-paper{grid-template-columns:1fr}.passage,.questions,.ai-chat,.practice-article,.practice-side{max-height:none}.practice-article{border-right:0;border-bottom:1px solid var(--line)}.topbar{padding:0 12px}.topbar nav{gap:10px}.workspace{padding:14px}.edit-grid.compact{grid-template-columns:1fr}}
@media(max-width:760px){.study-home{padding:14px}.home-hero,.board-heading{display:block}.hero-actions{margin-top:14px}.subject-nav,.exam-columns{grid-template-columns:1fr}.year-row{grid-template-columns:58px 1fr}}

/* Reading practice v2 */
.practice-paper{grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr}.practice-toolbar{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;background:var(--brand);color:#fff;padding:14px 24px}.practice-toolbar span{display:block;font-size:13px;color:rgba(255,255,255,.78);font-weight:700}.practice-toolbar h1{font-size:20px;margin:2px 0 0;color:#fff}.mode-btn{justify-self:center;background:#fff;color:var(--brand-dark);border:0;border-radius:8px;padding:12px 28px;font-size:17px;font-weight:800;box-shadow:0 6px 14px rgba(18,52,58,.18)}.btn.ghost{justify-self:end;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.45);color:#fff}.practice-article,.practice-side{max-height:calc(100vh - 118px)}.exam-paragraph{margin:0 0 18px}.sentence-hotspot{cursor:default;border-radius:4px;padding:1px 2px;transition:background .12s,color .12s}.reading-intensive .sentence-hotspot{cursor:pointer}.reading-intensive .sentence-hotspot:hover,.sentence-hotspot.selected{background:#d9f0f2;color:#12373b}.paragraph-translation{display:none;margin:-4px 0 18px;padding:12px 14px;background:#f3f7f8;border-left:4px solid #a8ccd1;border-radius:6px;color:#40566a;line-height:1.72;font-size:15px}.show-translation .paragraph-translation{display:block}.question-panel{padding:20px}.sentence-panel{display:none;padding:22px}.empty-insight{border:1px dashed #cbd8df;border-radius:8px;padding:18px;background:#fbfdfd}.sentence-insight h2,.sentence-insight h3{margin:0 0 10px}.sentence-insight h3{font-size:15px;color:var(--brand-dark);margin-top:16px}.sentence-insight p{line-height:1.62;margin:0 0 8px;color:#334155}.insight-source{font-family:Georgia,"Times New Roman",serif;background:#f7fbfb;border:1px solid #dce9ec;border-radius:8px;padding:14px;line-height:1.65;color:#1d2935}.question-card{border-bottom:1px solid var(--line);padding:0 0 18px;margin:0 0 18px}.question-card h3{font-size:16px;line-height:1.55;margin:0 0 12px}.explain-question{margin-top:8px;color:var(--brand-dark);border-color:#b8d5d9;background:#f4fbfb}.question-insight{display:none;margin-top:10px;border-radius:8px;padding:12px;line-height:1.55}.question-insight p{margin:4px 0;color:#334155;line-height:1.55}.question-insight.warn,.question-insight.right,.question-insight.wrong{display:block}.question-insight.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.question-insight.right{background:#eefbf3;border:1px solid #bce6c8}.question-insight.wrong{background:#fff1f2;border:1px solid #fecdd3}.plan-submit{width:100%;margin-top:4px}.score-box{border-radius:8px;background:#f3fbfb;padding:12px}.score-box p{line-height:1.58;margin:6px 0 0}

/* Admin v2 */
.admin-body{background:#f4f6f8}.admin-shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.admin-sidebar{background:#1f2933;color:#fff;display:flex;flex-direction:column}.admin-logo{padding:20px;border-bottom:1px solid #31404d}.admin-logo b{display:block;font-size:18px}.admin-logo span{font-size:12px;color:#9aa7b5}.admin-menu{padding:10px 0;display:flex;flex-direction:column}.admin-menu a{padding:11px 20px;color:#b7c1cc;border-left:3px solid transparent;font-size:14px}.admin-menu a:hover,.admin-menu a.active{background:#293541;color:#fff;border-left-color:var(--brand)}.admin-menu a.logout{color:#fca5a5}.menu-section{padding:16px 20px 6px;color:#718092;font-size:11px;font-weight:800;letter-spacing:1px}.admin-content{padding:28px 32px;overflow:auto}.admin-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.admin-page-head.compact{align-items:center}.admin-page-head h1{font-size:28px;margin:2px 0 8px}.admin-page-head p{margin:0}.qbank-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.qbank-column{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.qbank-column-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#e7f4f5;border-bottom:1px solid #cfe2e5}.qbank-column-head h2{margin:0;color:var(--brand-dark)}.admin-year-group{border-bottom:1px solid #edf1f3}.admin-year{font-weight:800;color:#31435a;padding:12px 14px;background:#fbfdfd}.admin-passage-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid #edf1f3}.admin-passage-row b{display:block}.admin-passage-row span{font-size:13px;color:var(--muted)}.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.empty-state{padding:18px;color:var(--muted)}.empty-state.small{padding:10px 0}.meta-strip{display:grid;grid-template-columns:120px 110px 1fr 90px 80px auto;gap:12px;align-items:end;margin-bottom:18px}.qbank-editor{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:18px}.editor-pane{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;min-width:0}.pane-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.pane-head h2{margin:0 0 4px}.pane-head p{margin:0;line-height:1.5}.paragraph-editor{border:1px solid #dfe8eb;border-radius:8px;margin-bottom:14px;overflow:hidden}.paragraph-head{display:flex;justify-content:space-between;align-items:center;background:#f4fbfb;padding:10px 12px;border-bottom:1px solid #dfe8eb}.paragraph-head span{font-weight:800;color:var(--brand-dark)}.sentence-editor,.question-editor{padding:12px;border-bottom:1px solid #edf1f3}.sentence-editor:last-child,.question-editor:last-child{border-bottom:0}.sort-field{max-width:86px}.fixed-textarea{resize:none;line-height:1.5}.explain-input{min-height:168px}.add-sentence-box{padding:10px 12px;background:#fbfdfd}.sticky-save{position:sticky;bottom:12px;margin-top:10px;box-shadow:0 8px 20px rgba(42,82,92,.12)}.question-editor-head{display:flex;justify-content:space-between;align-items:end;gap:12px}.question-editor-head label{width:78px}.option-editor-list{display:grid;gap:8px;margin:10px 0}.option-editor{display:grid;grid-template-columns:28px 1fr 26px;gap:8px;align-items:center;margin:0}.option-editor span{font-weight:800;color:var(--brand-dark)}.answer-radio{width:18px;height:18px}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input{width:72px}

@media(max-width:1000px){.practice-toolbar{grid-template-columns:1fr}.mode-btn,.btn.ghost{justify-self:stretch}.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:relative}.admin-content{padding:18px}.qbank-columns,.qbank-editor,.meta-strip{grid-template-columns:1fr}.admin-passage-row{display:block}.row-actions{margin-top:8px}}

/* Admin editor efficiency pass */
body,input,select,textarea,button{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif}.admin-content{padding:18px 22px}.compact-meta{display:grid;grid-template-columns:94px 84px minmax(240px,1fr) 68px 62px auto auto auto;gap:8px;align-items:end;margin-bottom:12px;padding:12px}.compact-meta label{margin:0;font-size:12px;color:#56677a}.compact-meta input,.compact-meta select{height:36px;padding:7px 9px}.compact-meta .check-row{height:36px;align-items:center;justify-content:center}.compact-meta .btn{height:36px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.qbank-editor{grid-template-columns:minmax(0,3fr) minmax(360px,2fr);gap:14px}.editor-pane{padding:12px}.compact-pane-head{padding-bottom:8px;margin-bottom:10px;align-items:center}.compact-pane-head h2{font-size:17px;margin:0}.paragraph-editor{margin-bottom:12px;scroll-margin-top:14px}.paragraph-head{padding:8px 10px}.sentence-row{display:grid;grid-template-columns:54px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:start;padding:10px;scroll-margin-top:14px}.sentence-row label,.question-row-editor label{margin:0;font-size:12px;color:#526174}.sentence-order-cell{display:grid;gap:7px}.sentence-order-cell input,.question-num-cell input{width:42px;text-align:center;padding:7px 4px;height:34px}.tiny-danger{font-size:12px;padding:6px 4px;width:54px;white-space:normal;line-height:1.15}.vertical-textarea{resize:vertical;min-height:78px;line-height:1.45;padding:8px 9px;overflow:auto}.add-sentence-box{padding:8px 10px}.question-row-editor{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;align-items:start;scroll-margin-top:14px}.question-num-cell{display:grid;gap:7px}.question-main-cell{display:grid;gap:8px}.question-main-cell .vertical-textarea[rows="1"]{min-height:38px}.option-editor-list{gap:6px;margin:0}.option-editor{grid-template-columns:22px minmax(0,1fr) 24px;gap:6px}.option-editor input:not(.answer-radio){height:34px;padding:7px 8px}.answer-radio{width:17px;height:17px}.sticky-save{bottom:10px}.pane-head .inline-form input{height:34px}

@media(max-width:1200px){.compact-meta{grid-template-columns:90px 82px 1fr 64px 58px}.compact-meta .btn{grid-column:auto}.qbank-editor{grid-template-columns:1fr}.sentence-row{grid-template-columns:54px 1fr}.question-row-editor{grid-template-columns:54px 1fr}}

/* Current polish */
.subject-band{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;background:var(--brand);border-radius:8px;padding:14px;margin:0 0 18px;box-shadow:0 6px 18px rgba(42,82,92,.10)}.subject-band .subject-pill{min-height:64px;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff}.subject-band .subject-pill span{color:rgba(255,255,255,.78)}.subject-band .subject-pill.active{background:#fff;color:var(--brand-dark);box-shadow:none}.subject-band .subject-pill.active span{color:var(--muted)}.subject-band .subject-pill.disabled{opacity:.62;background:rgba(255,255,255,.08)}.qbank-editor{grid-template-columns:minmax(0,4fr) minmax(260px,1fr)}.qbank-editor .editor-pane:nth-child(2) .question-row-editor{grid-template-columns:44px minmax(0,1fr)}.qbank-editor .editor-pane:nth-child(2) .option-editor{grid-template-columns:20px minmax(0,1fr) 20px}.qbank-editor .editor-pane:nth-child(2) .tiny-danger{width:44px}.set-create-bar{display:grid;grid-template-columns:96px 90px minmax(220px,1fr) 80px 70px auto;gap:10px;align-items:end;margin-bottom:16px}.set-create-bar label{margin:0}.set-row{display:grid;grid-template-columns:78px 78px minmax(150px,1fr) 68px 64px auto;gap:8px;align-items:end;padding:12px;border-top:1px solid #edf1f3}.set-row label{margin:0;font-size:12px}.set-row input,.set-row select{height:34px;padding:7px 8px}.set-actions{display:flex;gap:6px;align-items:center}.set-row small{grid-column:1/-1;color:var(--muted)}
.topbar-subjects{justify-self:center;display:flex;gap:8px;align-items:center;min-width:0}.topbar-subject{height:42px;min-width:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:rgba(255,255,255,.12);color:#fff;line-height:1.15}.topbar-subject b{font-size:14px}.topbar-subject span{font-size:11px;color:rgba(255,255,255,.76);margin-top:3px}.topbar-subject.active{background:#fff;color:var(--brand-dark);border-color:#fff}.topbar-subject.active span{color:#6b7c8f}.topbar-subject.disabled{opacity:.56}.topbar-actions{justify-content:flex-end;min-width:44px}
body.reading-screen{overflow:hidden}body.reading-screen main{height:calc(100vh - 60px);min-height:0;overflow:hidden}body.reading-screen .practice-page{height:calc(100vh - 60px);min-height:0;padding:12px;overflow:hidden}body.reading-screen .practice-paper{height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr)}body.reading-screen .practice-article,body.reading-screen .practice-side{height:100%;max-height:none;min-height:0;overflow:auto}
body.writing-screen{overflow:hidden}body.writing-screen main{height:calc(100vh - 60px);min-height:0;overflow:hidden}.writing-page{height:100%;padding:12px;background:var(--bg);overflow:hidden}.writing-shell{max-width:1280px;height:100%;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(42,82,92,.08);display:grid;grid-template-columns:minmax(360px,.9fr) minmax(520px,1.1fr);overflow:hidden}.writing-prompt-pane,.writing-editor-pane{min-height:0;overflow:auto}.writing-prompt-pane{border-right:1px solid var(--line);padding:18px;background:#fbfdfd}.writing-task-switcher{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.writing-task-group{background:#fff;border:1px solid #dfe8eb;border-radius:8px;padding:10px}.writing-task-group b{display:block;color:var(--brand-dark);margin-bottom:8px}.writing-task-group div{display:flex;gap:6px;flex-wrap:wrap}.writing-task-group a,.writing-task-group span{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:28px;border-radius:6px;border:1px solid #d7e3e7;background:#fff;font-size:12px;color:var(--brand-dark)}.writing-task-group a.active{background:var(--brand);border-color:var(--brand);color:#fff}.writing-prompt-card{background:#fff;border:1px solid #dfe8eb;border-radius:8px;padding:16px;margin-bottom:12px}.writing-meta-line{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.writing-meta-line span{background:#e7f4f5;color:var(--brand-dark);font-size:12px;font-weight:800;border-radius:999px;padding:4px 9px}.writing-prompt-card h1{font-size:22px;margin-bottom:14px}.prompt-block{border-top:1px solid #edf1f3;padding-top:12px;margin-top:12px}.prompt-block h2{font-size:15px;color:#31435a;margin-bottom:6px}.prompt-block p{white-space:pre-wrap;margin:0;color:#263645;line-height:1.75}.prompt-block.image-desc{background:#f5fbfb;border:1px solid #dce9ec;border-radius:8px;padding:12px}.analyze-writing-btn{width:100%;background:#d97706;color:#fff;border-color:#d97706;font-size:17px;font-weight:800;padding:14px}.writing-analysis{display:grid;gap:10px;margin-top:12px}.writing-analysis .analysis-card{margin:0;background:#fff}.writing-analysis ul{margin:6px 0 0;padding-left:18px;color:#334155;line-height:1.65}.writing-editor-pane{display:flex;flex-direction:column;background:#fff;overflow:hidden}.writing-editor-head{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--brand);color:#fff;padding:14px 20px;flex-shrink:0}.writing-editor-head span{font-size:12px;color:rgba(255,255,255,.78);font-weight:800}.writing-editor-head h2{color:#fff;margin:2px 0 0}.word-target{border:1px solid rgba(255,255,255,.36);border-radius:999px;padding:6px 10px;white-space:nowrap}.writing-editor-wrap{position:relative;flex:1;min-height:0}.essay-input{height:100%;border:0;border-radius:0;resize:none;padding:26px 32px 90px;font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.9;color:#172033;outline:none}.ky-hint{position:absolute;right:22px;top:22px;border:0;border-radius:999px;background:#1f2933;color:#fff;box-shadow:0 5px 18px rgba(15,23,42,.22);font-weight:800}.ky-hint-modal{display:none;position:absolute;right:22px;top:72px;width:340px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px rgba(15,23,42,.2);padding:16px;z-index:4}.ky-hint-modal.show{display:block}.ky-hint-modal h3{margin:0 0 6px}.ky-hint-modal p{margin:0 0 10px;line-height:1.55}.hint-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.hint-result.show{display:block;margin-top:10px;background:#f4fbfb;border:1px solid #dce9ec;border-radius:8px;padding:12px}.hint-sentence{font-family:Georgia,"Times New Roman",serif;color:var(--brand-dark);font-weight:800;cursor:pointer}.warn-text{color:#9a3412}.writing-bottom-bar{height:58px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;justify-content:space-between;padding:0 18px;background:#fbfdfd;flex-shrink:0}.writing-bottom-bar span{color:#526174;font-size:14px}.writing-progress{display:none;position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:20;align-items:center;justify-content:center}.writing-progress.show{display:flex}.progress-card{width:min(520px,calc(100vw - 32px));background:#fff;border-radius:8px;padding:24px;box-shadow:0 18px 50px rgba(15,23,42,.28)}.progress-card h2{margin-bottom:6px}.progress-track{height:8px;background:#edf1f3;border-radius:999px;overflow:hidden;margin:14px 0}.progress-track span{display:block;width:20%;height:100%;background:var(--brand);transition:width .35s}.progress-card ol{display:grid;gap:7px;margin:0;padding-left:20px;color:#64748b}.progress-card li.active{color:var(--brand);font-weight:800}.progress-card li.done{color:#15803d}.writing-result-panel{max-width:1280px;margin:12px auto 0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;max-height:42vh;overflow:auto}.writing-result-panel:empty{display:none}.score-hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;background:#f3fbfb;border:1px solid #dce9ec;border-radius:8px;padding:16px}.score-hero h2{font-size:30px;color:var(--brand-dark);margin:2px 0 0}.score-hero p{margin:0;color:#334155}.score-dims{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.score-dim,.upgrade-card{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfdfd}.score-dim b{display:flex;justify-content:space-between;gap:8px;color:#31435a}.score-dim p{margin:8px 0;color:#334155;line-height:1.55}.score-dim small,.upgrade-card small{color:#64748b}.writing-result-panel section{margin-top:14px}.writing-result-panel h3{font-size:16px;margin:0 0 8px;color:#31435a}.writing-result-panel li{margin-bottom:6px;line-height:1.6}.result-error{background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;padding:12px;color:#9f1239}.writing-create-bar{display:grid;grid-template-columns:86px 86px 96px minmax(180px,1fr) 70px 70px 80px auto;gap:10px;align-items:end;margin-bottom:16px}.writing-create-bar label{margin:0}.writing-create-bar .wide{grid-column:span 4}.writing-task-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid #edf1f3}.writing-task-row b{display:block}.writing-task-row span{font-size:13px;color:var(--muted)}.writing-admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:14px}.writing-meta{grid-template-columns:82px 78px 92px 70px 82px 82px 62px 72px auto auto auto}.writing-meta .btn{height:36px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.vertical-textarea.tall{min-height:190px}.image-desc-input{min-height:380px}.admin-tip{margin-top:10px;background:#f4fbfb;border:1px solid #dce9ec;border-radius:8px;padding:12px;color:#526174;line-height:1.6}
.writing-result-panel{position:fixed;right:24px;top:84px;bottom:24px;width:min(720px,calc(100vw - 48px));max-width:none;margin:0;max-height:none;box-shadow:0 18px 54px rgba(15,23,42,.24);z-index:12}.score-dims{grid-template-columns:repeat(2,1fr)}

@media(max-width:900px){.subject-band,.set-create-bar,.set-row,.writing-create-bar,.writing-meta{grid-template-columns:1fr}.qbank-editor,.writing-admin-grid{grid-template-columns:1fr}.topbar{grid-template-columns:1fr;gap:8px;height:auto;padding:10px 12px}.brand,.topbar-actions{justify-self:center}.topbar-subjects{width:100%;justify-content:center;flex-wrap:wrap}.topbar-subject{min-width:78px;height:38px}.topbar-subject span{display:none}body.reading-screen,body.writing-screen{overflow:auto}body.reading-screen main,body.reading-screen .practice-page,body.writing-screen main{height:auto;overflow:visible}body.reading-screen .practice-paper{height:auto}.writing-page{height:auto;overflow:visible}.writing-shell{height:auto;grid-template-columns:1fr}.writing-prompt-pane{border-right:0;border-bottom:1px solid var(--line)}.writing-editor-pane{min-height:70vh}.score-dims{grid-template-columns:1fr}.score-hero{grid-template-columns:1fr}.writing-create-bar .wide{grid-column:auto}}

/* Layout refinements */
.topbar{display:block;padding:0;background:var(--brand)}
.topbar-inner{max-width:1280px;height:60px;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:0 12px}
.topbar-subjects{height:100%;justify-content:center;gap:0}
.topbar-subject{appearance:none;border:0;border-radius:0;background:transparent;height:60px;min-width:92px;padding:0 18px;color:rgba(255,255,255,.94);font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s,border-color .18s}
.topbar-subject b{font-size:16px}
.topbar-subject:hover{background:rgba(255,255,255,.10);color:#fff}
.topbar-subject.active{background:rgba(0,0,0,.10);border-bottom:4px solid #82c4c9;color:#fff}
.topbar-subject.disabled{opacity:.68;cursor:default}
.topbar-subject.disabled:hover{background:transparent}
.study-home{max-width:1280px;padding:12px;margin:0 auto}
body.reading-screen,body.reading-screen html{height:100%;overflow:hidden}
body.reading-screen .topbar{position:relative}
body.reading-screen main{height:calc(100dvh - 60px);max-height:calc(100dvh - 60px);overflow:hidden}
body.reading-screen .practice-page{height:100%;max-height:100%;padding:10px;overflow:hidden}
body.reading-screen .practice-paper{height:100%;max-height:100%;min-height:0;border-width:1px;grid-template-rows:auto minmax(0,1fr)}
body.reading-screen .practice-toolbar{min-height:64px;padding:10px 20px}
body.reading-screen .practice-article,body.reading-screen .practice-side{height:100%;max-height:100%;min-height:0;overflow-y:auto;overflow-x:hidden}
.writing-meta-row{display:grid;grid-template-columns:82px 78px 92px 72px 92px 64px 72px auto auto auto;gap:8px;align-items:end;margin-bottom:12px;padding:12px}
.writing-meta-row label{margin:0;font-size:12px;color:#56677a}
.writing-meta-row input,.writing-meta-row select{height:36px;padding:7px 9px}
.writing-meta-row .btn{height:36px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.title-prompt-input{min-height:360px}
.writing-image-preview{border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:10px;margin:8px 0 12px;text-align:center}
.writing-image-preview img{max-width:100%;max-height:240px;object-fit:contain}
.writing-image-empty{border:1px dashed #cbd8df;border-radius:8px;background:#fbfdfd;color:#718092;padding:40px 12px;text-align:center;margin:8px 0 12px}
.writing-admin-grid{grid-template-columns:minmax(0,1fr) minmax(360px,.9fr)}
.writing-task-image img{max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}
@media(max-width:900px){.topbar-inner{height:auto;grid-template-columns:1fr}.topbar-subjects{height:auto;flex-wrap:wrap}.topbar-subject{height:42px}.writing-meta-row{grid-template-columns:1fr}}

/* QQ/dual-engine browser fallbacks */
body.reading-screen main{height:calc(100vh - 60px);max-height:calc(100vh - 60px)}
@supports (height:100dvh){body.reading-screen main{height:calc(100dvh - 60px);max-height:calc(100dvh - 60px)}}
.writing-result-panel{width:calc(100vw - 48px);max-width:720px}
@supports (width:min(10px,20px)){.writing-result-panel{width:min(720px,calc(100vw - 48px));max-width:none}}

/* Centered subject nav, matching the TOEFL home layout */
.topbar-inner{position:relative;display:flex;align-items:center;justify-content:space-between}
.brand{position:relative;z-index:2;min-width:150px}
.topbar-actions{position:relative;z-index:2;min-width:150px;justify-content:flex-end}
.topbar-subjects{position:absolute;left:50%;top:0;transform:translateX(-50%);height:60px;width:auto;display:flex;align-items:center;justify-content:center;gap:0;white-space:nowrap}
.topbar-subject{flex:0 0 auto;width:auto;min-width:auto;padding:0 22px;white-space:nowrap}
.topbar-subject b{white-space:nowrap}

/* Final forced desktop topbar: keep QQ/zoomed browsers from stacking it */
.topbar{height:60px!important;padding:0!important;overflow:visible!important}
.topbar .topbar-inner{width:calc(100% - 48px)!important;max-width:1256px!important;height:60px!important;margin:0 auto!important;padding:0!important;position:relative!important;display:block!important}
.topbar .brand{position:absolute!important;left:0!important;top:0!important;height:60px!important;min-width:150px!important;display:flex!important;align-items:center!important;z-index:3!important}
.topbar .topbar-actions{position:absolute!important;right:0!important;top:0!important;height:60px!important;min-width:150px!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;z-index:3!important}
.topbar .topbar-subjects{position:absolute!important;left:50%!important;top:0!important;transform:translateX(-50%)!important;height:60px!important;width:max-content!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:center!important;gap:0!important;white-space:nowrap!important;z-index:2!important}
.topbar .topbar-subject{appearance:none!important;flex:0 0 auto!important;width:auto!important;min-width:0!important;height:60px!important;margin:0!important;padding:0 22px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:rgba(255,255,255,.95)!important;font-size:16px!important;font-weight:700!important;line-height:60px!important;white-space:nowrap!important;display:flex!important;align-items:center!important;justify-content:center!important}
.topbar .topbar-subject b{font-size:16px!important;white-space:nowrap!important}
.topbar .topbar-subject:hover{background:rgba(255,255,255,.10)!important;color:#fff!important}
.topbar .topbar-subject.active{background:rgba(0,0,0,.10)!important;border-bottom:4px solid #82c4c9!important;color:#fff!important}
.topbar .topbar-subject.disabled{opacity:.74!important}

/* Writing edit CMS should stay compact: one meta row, then two panes */
.writing-edit-form{min-width:1120px}
.writing-meta-row{display:flex!important;flex-wrap:nowrap!important;align-items:flex-end!important;gap:8px!important;overflow-x:auto!important;overflow-y:hidden!important;padding:10px 12px!important}
.writing-meta-row label{flex:0 0 auto!important;margin:0!important;font-size:12px!important;color:#56677a!important}
.writing-meta-row label:nth-child(1){width:82px!important}
.writing-meta-row label:nth-child(2){width:78px!important}
.writing-meta-row label:nth-child(3){width:92px!important}
.writing-meta-row label:nth-child(4){width:72px!important}
.writing-meta-row label:nth-child(5){width:92px!important}
.writing-meta-row label:nth-child(6){width:64px!important}
.writing-meta-row .check-row{width:72px!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.writing-meta-row input,.writing-meta-row select{height:36px!important;padding:7px 8px!important}
.writing-meta-row .btn{flex:0 0 auto!important;height:36px!important;white-space:nowrap!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.writing-admin-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr)!important;gap:14px!important}

/* Writing index mirrors the reading board: choose a task before entering the editor */
.writing-index-page{max-width:1280px;padding-top:18px}
.writing-index-board{min-height:calc(100vh - 108px)}
.writing-index-board .board-heading{margin-bottom:16px}
.writing-year-row{grid-template-columns:78px 1fr}
.writing-paper-links{gap:10px}
.writing-paper-links a{min-width:86px;padding:0 14px}

/* The writing task is chosen on /writing/ now, so the editor does not show a second chooser */
.writing-task-switcher{display:none!important}

/* Writing hint lives in the bottom bar so it does not cover the line being typed */

/* Free trial labels on the reading home board */
.paper-links a{position:relative}
.paper-links a.free-trial{border-color:#f2d58a;background:#fffdf3;color:#7a4b00}
.paper-links a.free-trial:hover{background:#fff8dc;border-color:#e5bd52}
.paper-links a.free-trial em{position:absolute;right:-7px;top:-8px;display:inline-flex;align-items:center;justify-content:center;height:17px;min-width:28px;padding:0 6px;border:1px solid #f1c65f;border-radius:999px;background:#fff2b8;color:#8a5a00;font-size:10px;font-style:normal;font-weight:900;line-height:1;box-shadow:0 2px 5px rgba(138,90,0,.12)}

/* Home right-side service QR */
.study-home.with-service{max-width:1280px;display:grid;grid-template-columns:minmax(0,1fr) 238px;gap:18px;align-items:start}
.study-home.with-service .exam-board{min-width:0}
.home-service-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(42,82,92,.08);padding:14px 16px;text-align:center;position:sticky;top:78px}
.home-service-title{font-weight:900;color:var(--brand-dark);font-size:14px;margin-bottom:9px}
.home-service-card img{width:150px;height:150px;object-fit:contain;display:block;margin:0 auto 8px;border:1px solid #edf1f3;border-radius:6px;background:#fff}
.home-service-card p{margin:0;color:#526174;font-size:13px;line-height:1.5}
.home-service-empty{width:150px;height:150px;margin:0 auto 8px;border:1px dashed #cbd8df;border-radius:6px;background:#fbfdfd;color:#718092;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1.4}
@media(max-width:1080px){.study-home.with-service{grid-template-columns:1fr}.home-service-card{position:static;max-width:260px;justify-self:center;width:100%}}

/* Home three-column board */
.study-home.home-three-col{max-width:1480px;display:grid;grid-template-columns:238px minmax(720px,1fr) 238px;gap:18px;align-items:start}
.home-three-col .exam-board{min-width:0}
.home-ad-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(42,82,92,.08);padding:10px;position:sticky;top:78px;min-height:320px}
.home-ad-card img{width:100%;height:auto;display:block;border-radius:6px}
.home-ad-empty{min-height:320px;border:1px dashed #cbd8df;border-radius:6px;background:#fbfdfd;color:#718092;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;line-height:1.5;padding:16px}
.home-three-col .home-service-card{position:sticky;top:78px}
.home-three-col .home-service-card img,.home-three-col .home-service-empty{margin-bottom:0}
@media(max-width:1280px){.study-home.home-three-col{grid-template-columns:200px minmax(640px,1fr) 200px;gap:14px}.home-service-card img,.home-service-empty{width:138px;height:138px}.home-ad-card{padding:8px}}
@media(max-width:1040px){.study-home.home-three-col{grid-template-columns:1fr}.home-ad-card,.home-three-col .home-service-card{position:static;max-width:280px;width:100%;justify-self:center}.home-ad-card{order:2}.home-three-col .exam-board{order:1}.home-three-col .home-service-card{order:3}}

/* Home topbar aligns to the centered white board, not the whole page edge. */
body:not(.reading-screen) .topbar .topbar-inner{width:100%!important;max-width:none!important;box-sizing:border-box!important;padding:0!important;display:block!important}
body:not(.reading-screen) .topbar .brand{position:absolute!important;left:var(--home-board-left,24px)!important;top:0!important}
body:not(.reading-screen) .topbar .topbar-actions{position:absolute!important;right:var(--home-board-right,24px)!important;top:0!important}

/* Admin system settings */
.settings-grid{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:18px;align-items:start}
.settings-card h2{font-size:20px;color:var(--brand-dark);margin:0 0 8px}
.settings-card p{margin:0 0 14px}
.settings-qr-preview{border:1px solid #dfe8eb;border-radius:8px;background:#fbfdfd;padding:14px;text-align:center;margin-bottom:14px}
.settings-qr-preview img{max-width:180px;max-height:180px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid #edf1f3}
.settings-qr-preview span{display:block;margin-top:8px;color:#718092;font-size:13px}
.settings-qr-empty{width:180px;height:180px;margin:0 auto;border:1px dashed #cbd8df;border-radius:8px;color:#718092;display:flex;align-items:center;justify-content:center;background:#fff}
.settings-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.settings-upload-form input{height:38px;padding:6px 8px}
.settings-title-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-bottom:14px}
.settings-title-form label{margin:0}
.settings-title-form input{height:38px}
.settings-ad-preview img{max-width:220px;max-height:360px}
.settings-ad-empty{width:220px;height:320px}
.settings-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.settings-stats b{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:#fbfdfd;padding:14px;color:#526174}
.settings-stats span{font-size:24px;color:var(--brand-dark)}
@media(max-width:900px){.settings-grid,.settings-upload-form,.settings-title-form{grid-template-columns:1fr}}

/* Deep reading mode */
.practice-toolbar-modes,.reading-mode-switcher{justify-self:center;display:flex;align-items:center;justify-content:center;min-width:0}
.reading-mode-switcher{height:50px;padding:4px;border:1px solid rgba(255,255,255,.46);border-radius:12px;background:rgba(255,255,255,.13);box-shadow:0 6px 14px rgba(18,52,58,.14);overflow:hidden}
.reading-mode-login-prompt{justify-self:center;min-height:50px;display:flex;align-items:center;justify-content:center;padding:0 18px;border:1px solid rgba(255,255,255,.46);border-radius:12px;background:rgba(255,255,255,.13);box-shadow:0 6px 14px rgba(18,52,58,.14)}
.reading-mode-login-prompt a{color:#fff;font-weight:900;text-decoration:none;white-space:nowrap}
.reading-mode-login-prompt a:hover{text-decoration:underline}
.preview-login-note{margin-top:16px;padding:14px 16px;border:1px solid #b8d5d9;border-radius:8px;background:#f4fbfb;text-align:center}
.preview-login-note a{color:var(--brand-dark);font-weight:800;text-decoration:none}
.preview-login-note a:hover{text-decoration:underline}
.reading-mode-switcher.single{min-width:188px}
.mode-switch-option{height:42px;border:0;border-radius:8px;background:transparent;color:#fff;padding:0 24px;font-size:16px;font-weight:900;white-space:nowrap;cursor:pointer}
.mode-switch-option.active{background:#fff;color:var(--brand-dark);box-shadow:0 4px 12px rgba(18,52,58,.16)}
.mode-switch-option:not(.active):hover{background:rgba(255,255,255,.12)}
.practice-toolbar-modes .mode-btn{justify-self:auto;white-space:nowrap}
.mode-btn.secondary{background:#f5fbfb;color:var(--brand-dark);border:1px solid rgba(255,255,255,.45)}
.deep-reading-active .practice-paper{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.deep-reading-active .practice-article{background:#fff}
.deep-reading-active .practice-side{background:#f3f7f8}
.deep-reading-active .sentence-hotspot{cursor:pointer;border-radius:5px;padding:2px 3px}
.deep-reading-active .sentence-hotspot:hover,.deep-reading-active .sentence-hotspot.selected{background:#dff3ec;color:#12373b;box-shadow:0 0 0 1px rgba(47,124,129,.18)}
.sentence-panel{display:none}
.reading-intensive .sentence-panel{display:grid!important}
.deep-reading-workbench{height:100%;min-height:0;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:14px;background:#f3f7f8}
.deep-reading-workbench .empty-insight{border:1px solid #cfe2e5;background:#fff;border-radius:8px;padding:14px;box-shadow:0 6px 16px rgba(42,82,92,.06)}
.deep-reading-workbench .empty-insight h2{font-size:18px;margin:0 0 4px;color:var(--brand-dark)}
.deep-reading-workbench .empty-insight p{margin:0;line-height:1.55;color:#526174}
.sentence-insight{min-height:0;overflow:hidden;display:flex;flex-direction:column}
.deep-reading-loading{border:1px solid #dce9ec;border-radius:8px;background:#fff;padding:16px;color:#526174;box-shadow:0 6px 16px rgba(42,82,92,.06)}
.deep-reading-card{background:#fff;border:1px solid #cfe2e5;border-radius:8px;padding:16px;box-shadow:0 8px 20px rgba(42,82,92,.08);display:grid;gap:11px}
.deep-chat-panel{height:100%;min-height:0;background:#fff;border:1px solid #cfe2e5;border-radius:8px;box-shadow:0 8px 20px rgba(42,82,92,.08);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:12px}
.deep-chat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #edf1f3;padding-bottom:8px}
.deep-chat-head b{color:var(--brand-dark);font-size:17px}
.deep-chat-head span{font-size:13px;color:#718092;white-space:nowrap}
.deep-panel-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.deep-panel-title span{font-size:12px;font-weight:900;color:#718092}
.deep-panel-title h2{font-size:19px;margin:2px 0 0;color:var(--brand-dark)}
.deep-panel-title b{flex:0 0 auto;background:#e7f4f5;color:var(--brand-dark);border-radius:999px;padding:5px 9px;font-size:13px}
.deep-reading-card .insight-source{background:#fbfdfd;border-color:#dce9ec}
.deep-insight-section{border-top:1px solid #edf1f3;padding-top:10px}
.deep-insight-section h3{font-size:15px;margin:0 0 5px;color:var(--brand-dark)}
.deep-insight-section p{margin:0;color:#263645;line-height:1.68}
.deep-followup{background:#fff;border:1px solid #dce9ec;border-radius:8px;padding:12px;box-shadow:0 8px 20px rgba(42,82,92,.06);display:grid;gap:9px}
.deep-followup-head{display:flex;justify-content:space-between;align-items:center;color:var(--brand-dark)}
.deep-followup-head span{font-size:13px;color:#718092}
.deep-followup-log{min-height:0;overflow:auto;display:grid;align-content:start;gap:8px;padding-right:2px}
.deep-msg{padding:9px 11px;border-radius:8px;line-height:1.6;color:#263645;background:#f1faf7;white-space:pre-wrap}
.deep-msg.user{justify-self:end;max-width:88%;background:#e7f4f5;color:#12373b}
.deep-msg.ai{justify-self:start;max-width:92%}
.deep-msg.warn{background:#fff7ed;color:#9a3412}
.deep-followup-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:stretch}
.deep-followup textarea,.deep-followup-row textarea{height:58px!important;min-height:58px!important;max-height:58px!important;resize:none!important;line-height:1.5;overflow:auto}
.deep-followup-row .btn{height:54px;font-weight:900}
.vocab-book{min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid #dce9ec;border-radius:8px;padding:13px;box-shadow:0 8px 20px rgba(42,82,92,.06)}
.vocab-book-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.vocab-book-title{display:flex;align-items:center;gap:8px;min-width:0}
.vocab-book h2{font-size:18px;margin:0;color:var(--brand-dark)}
.vocab-book-head span{font-size:13px;color:#718092;background:#eef7f8;border-radius:999px;padding:3px 8px;white-space:nowrap}
.vocab-download-btn{height:34px;padding:0 10px;font-size:13px;font-weight:900;white-space:nowrap;border-color:#b8d5d9;color:var(--brand-dark);background:#f4fbfb}
.vocab-download-btn:disabled{opacity:.45;cursor:not-allowed}
.vocab-list{display:grid;gap:8px;overflow:auto;padding-right:2px;align-content:start}
.vocab-list.empty{display:grid;gap:4px;border:1px dashed #cbd8df;border-radius:8px;background:#fbfdfd;padding:14px;color:#718092}
.vocab-list.empty b{color:var(--brand-dark)}
.vocab-list.empty span{line-height:1.5}
.vocab-column-labels{display:grid;grid-template-columns:minmax(90px,.72fr) minmax(0,1fr) 28px;gap:8px;padding:0 10px;color:#718092;font-size:12px;font-weight:900}
.vocab-item{display:grid;grid-template-columns:minmax(90px,.72fr) minmax(0,1fr) 28px;gap:8px;align-items:center;border:1px solid #dce9ec;border-radius:8px;background:#fbfdfd;padding:8px 10px}
.vocab-item b{font-family:Georgia,"Times New Roman",serif;color:#1d2935}
.vocab-item span{color:#526174;line-height:1.45}
.vocab-item button{width:28px;height:28px;padding:0;border-radius:50%;color:#718092}
.word-popup{position:fixed;z-index:40;width:272px;background:#fff;border:1px solid #d8e6e8;border-radius:8px;box-shadow:0 14px 34px rgba(15,23,42,.18);padding:13px;display:grid;gap:8px}
.word-popup b{font-family:Georgia,"Times New Roman",serif;font-size:19px;color:#12373b}
.word-popup p{margin:0;color:#263645;line-height:1.5}
.word-popup small{display:block;color:#718092;line-height:1.45}
.word-popup-error{color:#9a3412!important;background:#fff7ed;border-radius:6px;padding:6px 8px}
.word-popup .btn,.word-popup .word-add-btn{width:100%;margin-top:2px;height:38px;font-weight:900}
.word-popup-close{position:absolute;right:8px;top:8px;width:24px;height:24px;border:0;background:#f1f5f9;border-radius:50%;padding:0;color:#64748b}
@media(max-width:1000px){.deep-reading-active .practice-paper{grid-template-columns:1fr}.practice-toolbar-modes{justify-self:stretch;display:grid;grid-template-columns:1fr}.deep-reading-workbench{grid-template-rows:minmax(320px,1fr) minmax(260px,1fr)}.vocab-column-labels,.vocab-item{grid-template-columns:1fr 28px}.vocab-item span{grid-column:1/-1}}
.writing-bottom-bar{position:relative}
.writing-bottom-bar .ky-hint{position:static!important;right:auto!important;top:auto!important;box-shadow:none}
.writing-bottom-bar .ky-hint-modal{position:absolute!important;right:96px!important;top:auto!important;bottom:64px!important;width:380px;max-width:calc(100vw - 48px);max-height:56vh;overflow:auto}
.hint-sentence{padding:8px 10px;border:1px solid #dce9ec;border-radius:8px;background:#f7fbfb}
.hint-sentence:hover{background:#e7f4f5}

/* Login profile + question-bank unlock flow */
.user-menu{position:relative;display:flex;align-items:center;height:60px}
.avatar-btn{width:38px;height:38px;border:1px solid rgba(255,255,255,.45);border-radius:50%;padding:0;overflow:hidden;background:#fff;cursor:pointer}
.avatar-btn img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-btn.user-trigger{width:auto;min-width:156px;height:60px;border:0;border-radius:0;padding:0 18px;overflow:visible;background:rgba(255,255,255,.10);display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;font-weight:900}
.avatar-btn.user-trigger:hover{background:rgba(255,255,255,.16);border-color:transparent}
.avatar-btn.user-trigger img{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.62);background:#fff;flex:0 0 auto}
.avatar-btn.user-trigger span{max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1}
.user-dropdown{display:none;position:absolute;right:0;top:60px;width:100%;min-width:220px;background:#fff;color:#172033;border:1px solid var(--line);border-top:0;border-radius:0 0 8px 8px;box-shadow:0 16px 38px rgba(15,23,42,.22);padding:0;z-index:20;overflow:hidden}
.user-menu:hover .user-dropdown,.user-dropdown.show{display:grid;gap:0}
.user-dropdown p{margin:4px 0 0;color:#64748b;font-size:12px}
.user-dropdown strong{font-size:18px;color:var(--brand-dark);letter-spacing:.5px;word-break:break-all}
.user-dropdown small{color:#64748b}
.user-code-row{display:flex;align-items:center;gap:8px;padding:18px 18px;color:var(--brand-dark);border-bottom:1px solid #edf1f3;font-size:16px;line-height:1.3}
.user-code-row b{white-space:nowrap}
.user-code-row strong{font-size:16px;letter-spacing:.3px}
.user-dropdown a{display:flex;align-items:center;justify-content:center;color:#334155;font-weight:800;text-decoration:none;padding:16px 18px;border-radius:0;background:#fff}
.user-dropdown a:hover{color:var(--brand-dark);background:#eef7f8}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:30;align-items:center;justify-content:center;padding:18px}
.modal-overlay.show{display:flex}
.qbank-modal-card{position:relative;width:min(520px,100%);background:#fff;border-radius:8px;padding:28px 32px;box-shadow:0 18px 54px rgba(15,23,42,.28)}
.qbank-modal-card h2{margin:0 0 8px;color:#172033}
.qbank-modal-card p{line-height:1.65}
.modal-close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:24px;color:#64748b;cursor:pointer}
.coupon-block{background:#f4fbfb;border:1px solid #cfe2e5;border-radius:8px;padding:14px;margin-top:14px}
.coupon-block-title{font-weight:800;color:var(--brand-dark);margin-bottom:10px}
.coupon-input-row{display:flex;gap:8px;align-items:center}
.coupon-input-row .qbank-code-input{flex:1;min-width:0}
.coupon-input-row .btn{flex:0 0 auto;height:44px;white-space:nowrap}
.qbank-code-input{height:44px;text-transform:uppercase;font-size:16px;letter-spacing:.6px;text-align:left;margin:0}
.site-gate-code-input{text-transform:none}
.qbank-modal-msg{min-height:20px;color:#9a3412;font-size:13px;margin-top:7px}
.topbar-login-btn{border:0;background:transparent;color:rgba(255,255,255,.9);font-weight:800;padding:8px 0}
.topbar-login-btn:hover{color:#fff}
.login-modal-card{text-align:center;width:min(430px,100%)}
.wx-login-container{height:410px;margin-top:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.wx-login-container iframe{width:300px!important;height:400px!important}
.wx-login-loading,.wx-login-error{width:100%;padding:34px 18px;border:1px dashed #cbd8df;border-radius:8px;background:#fbfdfd;color:#64748b}
.wx-login-error{color:#9a3412;background:#fff7ed;border-color:#fed7aa}
.login-fallback{display:inline-flex;margin-top:6px;color:var(--brand-dark);font-size:13px;font-weight:800}
.admin-user-cell{display:flex;gap:10px;align-items:center}
.admin-user-cell img{width:38px;height:38px;border-radius:50%;object-fit:cover;background:#edf1f3}
.admin-user-cell small{display:block;color:var(--muted);margin-top:3px}
.admin-page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:14px}
.admin-page-head h1{margin:0 0 4px;font-size:22px}
.admin-page-head p{margin:0;color:#64748b;line-height:1.5}
.user-admin-panel{overflow:auto;padding:0}
.admin-user-table{min-width:1380px;font-size:13px}
.admin-user-table th{position:sticky;top:0;background:#f8fbfc;color:#405066;font-weight:800;z-index:1}
.admin-user-table th,.admin-user-table td{padding:12px;border-bottom:1px solid #e6edf1;vertical-align:middle}
.admin-user-table tr:hover td{background:#fbfdfd}
.uid-cell{font-weight:800;color:#526174;white-space:nowrap}
.code-cell b{display:block;color:var(--brand-dark);font-size:15px;letter-spacing:.4px}
.code-cell small,.status-line,.ip-cell small{display:block;margin-top:4px;color:#64748b}
.muted{color:#94a3b8}
.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}
.status-pill.ok{background:#e9f7f1;color:#137447}
.status-pill.off{background:#eef2f7;color:#526174}
.operation-cell{min-width:190px}
.operation-cell form{margin:3px 4px 3px 0}
.switch-btn{display:inline-flex;align-items:center;gap:7px;border-radius:999px;font-weight:800;padding:7px 12px}
.switch-btn span{width:28px;height:16px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px rgba(15,23,42,.14);position:relative}
.switch-btn span:after{content:"";position:absolute;top:3px;width:10px;height:10px;border-radius:50%;background:currentColor}
.switch-btn.on{background:var(--brand);border-color:var(--brand);color:#fff}
.switch-btn.on span:after{right:4px}
.switch-btn.danger{background:#fff7f7;border-color:#f1b7b7;color:#a61b1b}
.switch-btn.danger span:after{left:4px}
.small-action{padding:7px 10px;font-size:12px}
.ai-open-form{display:inline-flex;align-items:center;gap:6px}
.ai-open-form input{width:48px;height:32px;padding:6px;text-align:center}
.ai-open-form button{padding:7px 9px;font-size:12px}
.openid-cell code{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f3f7f8;border:1px solid #e0e8ed;border-radius:6px;padding:5px 7px;color:#334155}
.time-cell{white-space:nowrap;color:#405066}
.ip-cell b{display:block;color:#334155;font-weight:700}
.empty-row{text-align:center;color:#94a3b8;padding:28px!important}

/* Writing score report: centered, concise, and focused on what the student should do next */
body.writing-result-open::after{content:"";position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:11}
.writing-result-panel{position:fixed;left:50%;right:auto;top:82px;bottom:22px;transform:translateX(-50%);width:min(760px,calc(100vw - 40px));max-width:none;margin:0;padding:0;background:#fff;border:1px solid #d8e3e8;border-radius:8px;box-shadow:0 22px 70px rgba(15,23,42,.28);z-index:12;overflow:hidden;display:flex;flex-direction:column}
.writing-result-panel:empty{display:none}
.writing-report-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;background:var(--brand);color:#fff;flex-shrink:0}
.writing-report-head span{display:block;font-size:13px;font-weight:800;color:rgba(255,255,255,.78)}
.writing-report-head h2{margin:3px 0 0;color:#fff;font-size:34px;line-height:1.1}
.writing-report-head button{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.42);color:#fff}
.writing-report-body{padding:18px 22px 22px;overflow:auto;display:grid;gap:14px}
.report-score-card,.report-focus-card{border:1px solid #dfe8eb;border-radius:8px;background:#fbfdfd;padding:16px}
.report-score-card{background:#f3fbfb;border-color:#cfe4e8}
.report-score-card b{display:block;color:var(--brand-dark);font-size:18px;margin-bottom:8px}
.report-score-card p{margin:0;color:#334155;line-height:1.62}
.report-score-card small{display:inline-flex;margin-top:10px;color:#64748b;font-weight:800}
.report-focus-card h3{margin:0 0 10px;font-size:18px;color:#172033}
.report-focus-card ul,.report-focus-card ol{margin:0;padding-left:22px;display:grid;gap:8px;color:#334155;line-height:1.58}
.report-focus-card li::marker{color:var(--brand);font-weight:800}
.report-focus-card.next{background:#fffaf0;border-color:#f3d8aa}

.analysis-loading{border-color:#cfe4e8;background:#f3fbfb!important}
.clean-analysis h3{font-size:16px;margin:0 0 8px;color:#172033}
.clean-analysis ul,.clean-analysis ol{margin:0;padding-left:22px;display:grid;gap:8px;color:#334155;line-height:1.55}
.clean-analysis li{white-space:normal;overflow-wrap:anywhere}
.progress-meter{display:flex;align-items:center;gap:10px;margin:10px 0 4px;color:var(--brand-dark);font-weight:800}
.progress-spinner{width:22px;height:22px;border:3px solid #d8eef0;border-top-color:var(--brand);border-radius:50%;animation:ky-spin .9s linear infinite}
@keyframes ky-spin{to{transform:rotate(360deg)}}
.report-focus-card.strengths{background:#f3fbfb;border-color:#cfe4e8}
.report-detail-item{border:1px solid #e2ebef;border-radius:8px;padding:11px 12px;background:#fff;list-style-position:outside}
.report-detail-item b{display:block;color:#172033;margin-bottom:6px}
.report-detail-item p{margin:5px 0 0;color:#405066;line-height:1.55}
.report-detail-item em{font-style:normal;color:var(--brand-dark);font-weight:800;margin-right:4px}
.report-focus-card ul,.report-focus-card ol{gap:10px}

.essay-input{padding-right:118px}
.side-hint{position:absolute!important;right:18px!important;top:18px!important;width:72px;min-height:118px;border-radius:999px!important;padding:12px 10px!important;line-height:1.35;white-space:normal;box-shadow:0 8px 22px rgba(15,23,42,.18);z-index:3}
.side-hint-modal{position:absolute!important;right:102px!important;top:18px!important;bottom:auto!important;width:360px;max-width:calc(100% - 126px);max-height:calc(100% - 36px);overflow:auto}
.writing-bottom-bar .ky-hint,.writing-bottom-bar .ky-hint-modal{position:static}
.report-detail-item{border:0!important;background:transparent!important;border-radius:0!important;padding:0!important;margin:0 0 10px!important}
.report-detail-item b{margin-bottom:4px}
.report-focus-card{box-shadow:none}

.writing-hint-dock{position:fixed;top:170px;right:max(18px,calc((100vw - 1280px)/2 - 96px));z-index:10}
.writing-hint-dock .ky-hint{position:static!important;width:76px;min-height:128px;border-radius:999px!important;padding:12px 10px!important;white-space:normal;line-height:1.35;box-shadow:0 10px 28px rgba(15,23,42,.22)}
.writing-hint-dock .ky-hint-modal{position:absolute!important;right:88px!important;top:0!important;bottom:auto!important;width:360px;max-width:calc(100vw - 128px);max-height:70vh;overflow:auto}
.essay-input{padding-right:32px}
.side-hint,.side-hint-modal{display:none!important}
.mini-progress-head{display:flex;align-items:center;gap:10px;color:var(--brand-dark)}
.mini-progress-head small{margin-left:auto;color:#64748b}
.analysis-progress-steps{margin:12px 0 0;padding-left:20px;display:grid;gap:6px;color:#64748b}
.analysis-progress-steps li.active{color:var(--brand-dark);font-weight:800}
.reading-logic-block{margin-top:9px;padding-top:9px;border-top:1px solid rgba(15,23,42,.08)}
.reading-logic-block h4{font-size:15px;margin:0 0 4px;color:var(--brand-dark)}
.reading-logic-block p{margin:0;color:#334155;line-height:1.52}
.score-box{font-weight:400;color:#334155}
.score-box > b{display:block;margin-bottom:6px;color:var(--brand-dark);font-weight:800}
.passage-logic-grid{display:grid;gap:10px;margin-top:10px}
.passage-logic-grid section{border-top:1px solid #dce9ec;padding-top:9px}
.passage-logic-grid h4{margin:0 0 6px;color:var(--brand-dark);font-size:15px}
.passage-logic-grid ul{margin:0;padding-left:20px;display:grid;gap:5px;color:#334155;line-height:1.5}
.passage-logic-grid li{font-weight:400}
.passage-logic-grid li span{font-weight:400;color:#526174}
.writing-hint-dock{top:150px;right:max(24px,calc((100vw - 1280px)/2 - 170px))}
.writing-hint-dock .ky-hint{width:auto;min-height:0;border-radius:999px!important;padding:11px 16px!important;white-space:nowrap}
.writing-hint-dock .ky-hint-modal{left:0!important;right:auto!important;top:50px!important;width:min(300px,calc((100vw - 1280px)/2 - 64px));min-width:220px;max-width:none}
@media(max-width:1500px){.writing-hint-dock{right:18px;top:128px}.writing-hint-dock .ky-hint{width:auto;min-height:0;padding:10px 14px!important}.writing-hint-dock .ky-hint-modal{left:auto!important;right:0!important;top:48px!important;width:min(320px,calc(100vw - 36px));min-width:0;max-width:none}}
.answer-review-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.answer-review-column{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.answer-review-column-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#e7f4f5;border-bottom:1px solid #cfe2e5}.answer-review-column-head h2{margin:0;color:var(--brand-dark);font-size:18px}.answer-review-column-head span{color:#64748b;font-size:13px}.answer-review-list{display:grid;gap:10px;padding:12px}.answer-review-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;scroll-margin-top:16px}.answer-review-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #edf1f3;padding-bottom:8px;margin-bottom:10px}.answer-review-meta b{font-size:14px;color:#1f3348}.answer-review-meta span{color:#64748b;font-size:12px;white-space:nowrap}.answer-review-card h3{font-size:15px;line-height:1.5;margin:0 0 9px}.answer-review-options{display:grid;gap:6px;margin-bottom:10px}.answer-review-option{display:grid;grid-template-columns:20px 1fr;gap:8px;align-items:start;margin:0;padding:7px 8px;border:1px solid #e2e8f0;border-radius:6px;color:#334155;line-height:1.45;cursor:pointer}.answer-review-option:hover{background:#f8fafc;border-color:#b8d5d9}.answer-review-option input{width:16px;height:16px;margin:2px 0 0}.answer-review-option b{color:var(--brand-dark)}.answer-review-form{display:block}.answer-review-form .btn{width:100%;height:34px}.answer-review-form input{width:auto}.answer-review-explain{display:none}
@media(max-width:1100px){.answer-review-columns{grid-template-columns:1fr}.answer-review-meta{align-items:flex-start;flex-direction:column}.answer-review-meta span{white-space:normal}}

/* Hidden reading coach prototype */
.coach-highlight{background:#edf9f1!important;box-shadow:0 0 0 2px rgba(47,124,129,.18);border-radius:5px}
.exam-paragraph.coach-highlight{padding:8px 12px;margin-left:-12px;margin-right:-12px}
.question-card.coach-highlight{background:#eefaf2;border:1px solid #bde6ca;border-radius:8px;padding:12px}
.coach-keyword{background:#fff1a8;color:inherit;border-radius:4px;padding:0 4px;margin:0 1px;box-shadow:0 0 0 1px rgba(217,119,6,.16);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.question-number-badge{color:var(--brand-dark);font-weight:900;margin-right:4px}
.coach-choice-locked{opacity:.42}
.coach-choice-locked .option{cursor:not-allowed}
.question-card h3,.option span{font-family:Georgia,"Times New Roman",serif}
.option span{color:#1f2933;font-weight:400}
.coach-enabled .explain-question,.coach-enabled .plan-submit,.coach-enabled #score{display:none!important}
.coach-bubble{position:fixed;width:300px;z-index:14;max-width:calc(100vw - 32px)}
.coach-bubble.coach-overlay{width:min(360px,calc(100vw - 36px))}
.coach-left{left:max(14px,calc((100vw - 1280px)/2 - 300px))}
.coach-right{right:max(14px,calc((100vw - 1280px)/2 - 300px))}
.coach-card{position:relative;background:#fff;border:1px solid #cfe2e5;border-radius:8px;box-shadow:0 18px 46px rgba(15,23,42,.22);padding:16px;font-size:14px}
.coach-close{position:absolute;right:10px;top:9px;width:24px;height:24px;border:0;border-radius:50%;padding:0;background:#eef2f5;color:#64748b;font-size:18px;line-height:24px;display:flex;align-items:center;justify-content:center}
.coach-close:hover{background:#e2e8f0;color:#334155}
.coach-kicker{font-size:14px;font-weight:900;color:var(--brand-dark);letter-spacing:0;margin-bottom:8px}
.coach-kicker span{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:#e7f4f5;color:var(--brand-dark);font-size:14px;font-weight:900}
.coach-card p,.coach-text{margin:0;color:#253447;line-height:1.62}
.coach-option-list{display:grid;gap:7px;margin-top:2px}
.coach-option-line{line-height:1.58}
.coach-option-line b{display:inline-block;margin-right:2px;color:var(--brand-dark)}
.coach-warn{margin-top:10px;padding:8px 10px;border-radius:6px;background:#fff7ed;color:#9a3412;font-size:14px;line-height:1.55}
.coach-answer-feedback{margin-top:10px;padding:9px 10px;border-radius:6px;background:#f3fbfb;border:1px solid #cfe4e8;color:#244b50;line-height:1.55}
.coach-actions{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:6px;margin-top:10px}
.coach-actions .btn{padding:7px 8px;font-size:13px;white-space:nowrap}
.coach-actions .btn[disabled]{opacity:.45;cursor:not-allowed}
.coach-ask-btn{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;font-weight:800}
.coach-ask-btn[disabled]{background:#f3d2a5!important;border-color:#f3d2a5!important;color:#7c4a14!important;opacity:1!important}
.coach-followup{margin-top:10px}
.coach-followup-log{display:grid;gap:7px;max-height:330px;overflow-y:auto;margin-bottom:7px;padding:8px;border:1px solid #cfe9d8;border-radius:8px;background:#f3fbf6}
.coach-followup-log:empty{display:none}
.coach-followup-msg{max-width:88%;border-radius:8px;padding:7px 9px;font-size:14px;line-height:1.55;word-break:break-word}
.coach-followup-msg.user{justify-self:end;background:#fff;color:#334155;border:1px solid #dbe6ea}
.coach-followup-msg.ai{justify-self:start;background:#e9f7ef;color:#244334;border:1px solid #cbe7d5}
.coach-typing span::after{content:"";animation:coach-dots 1.2s steps(4,end) infinite}
.coach-followup textarea{resize:vertical;min-height:58px;max-height:96px;padding:8px;font-size:14px;line-height:1.45}
.coach-report{margin-top:12px;border-top:1px solid #dce9ec;padding-top:10px}
.coach-report h3{margin:0 0 8px;color:var(--brand-dark);font-size:16px}
.coach-report p{margin:6px 0;color:#334155;line-height:1.55}
.coach-report ol{margin:8px 0 0;padding-left:20px;display:grid;gap:6px;color:#334155;line-height:1.5}
.coach-report li::marker{color:var(--brand);font-weight:800}
@keyframes coach-dots{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}
@media(max-width:900px){.coach-bubble{top:auto!important;left:50%!important;right:auto!important;bottom:18px!important;transform:translateX(-50%)!important;width:min(360px,calc(100vw - 36px))}.coach-card{padding:14px}.coach-card p{line-height:1.5}}

.coach-promo-modal{z-index:40}
.coach-promo-card{width:min(860px,calc(100vw - 34px));max-height:calc(100vh - 34px);overflow:auto;background:#fff;border:1px solid #cfe2e5;border-radius:10px;box-shadow:0 24px 70px rgba(15,23,42,.32);position:relative;padding:18px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:center}
.coach-promo-copy{display:grid;gap:12px;align-content:center;justify-items:stretch;padding:10px 4px 10px 8px}
.coach-promo-copy span{width:max-content;border-radius:999px;background:#fff2b8;color:#8a5a00;border:1px solid #f1c65f;padding:4px 10px;font-size:13px;font-weight:900}
.coach-promo-copy h2{width:100%;margin:0;border:1px solid #b8d5d9;border-radius:12px;background:#f4fbfb;color:var(--brand-dark);font-size:clamp(20px,2.4vw,28px);font-weight:900;line-height:1.18;text-align:center;padding:14px 10px;box-shadow:0 6px 16px rgba(42,82,92,.08)}
.coach-promo-copy p{margin:0;color:#40566a;font-size:16px;line-height:1.7}
.coach-promo-qr{width:100%;display:grid;justify-items:center;margin-top:4px;border:1px solid #dce9ec;border-radius:8px;background:#fbfdfd;padding:12px}
.coach-promo-qr img{width:min(168px,100%);aspect-ratio:1/1;object-fit:contain;border-radius:6px;background:#fff;border:1px solid #edf1f3}
.coach-promo-qr div{width:min(168px,100%);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;text-align:center;color:#718092;border:1px dashed #cbd8df;border-radius:6px;background:#fff;font-size:13px;line-height:1.45;padding:8px}
.coach-promo-qr b{font-size:14px;color:var(--brand-dark);line-height:1.35}
.coach-promo-image{width:100%;max-height:min(78vh,720px);object-fit:contain;border-radius:8px;background:#f8fafc;border:1px solid #edf1f3}
.coach-promo-placeholder{min-height:420px;border:1px dashed #cbd8df;border-radius:8px;background:#fbfdfd;color:#718092;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.5;padding:18px}
@media(max-width:760px){.coach-promo-card{grid-template-columns:1fr;padding:14px}.coach-promo-copy{order:2;padding:0}.coach-promo-image,.coach-promo-placeholder{order:1;max-height:62vh}.coach-promo-copy p{font-size:15px}.coach-promo-qr{width:100%}}

/* Reading desktop tuning: keep both modes visually stable and leave side room for AI cards. */
body.reading-screen .practice-paper{max-width:1100px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
body.reading-screen.deep-reading-active .practice-paper{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#deep-followup-input{height:58px!important;min-height:58px!important;max-height:58px!important;resize:none!important;overflow:auto}
@media(max-width:1200px){.coach-bubble{width:280px}}

/* Reading coach admin */
.coach-admin-note{margin-bottom:12px;color:#40566a;line-height:1.6;background:#fbfdfd}
.coach-meta-form{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(320px,1fr) auto;gap:12px;align-items:end;margin-bottom:12px}
.coach-meta-form label{margin:0}
.coach-status-row{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.coach-admin-actions{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.coach-import-box{margin-bottom:12px}
.coach-import-box summary{cursor:pointer;font-weight:800;color:var(--brand-dark)}
.coach-import-box textarea{margin:10px 0}
.coach-step-form{display:grid;gap:12px}
.coach-step-editor{padding:14px;scroll-margin-top:16px}
.coach-step-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.coach-step-head b{color:var(--brand-dark)}
.coach-step-head label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;color:#526174}
.coach-step-head input{width:64px;height:32px;text-align:center}
.coach-step-grid{display:grid;grid-template-columns:150px minmax(220px,1fr) 170px;gap:10px}
.coach-step-grid label,.coach-step-editor label{font-size:12px;color:#526174;margin-bottom:8px}
.coach-step-editor textarea{resize:vertical;min-height:92px;line-height:1.55}
.coach-checks{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.coach-checks .check-row{margin:0;color:#334155}
.admin-help{font-size:12px;color:#718092;margin:-2px 0 0;line-height:1.5}
@media(max-width:1000px){.coach-meta-form,.coach-step-grid{grid-template-columns:1fr}.coach-status-row{justify-content:flex-start}}

/* Admin login */
.admin-login-page{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:24px}
.admin-login-card{width:min(420px,100%);box-shadow:0 18px 54px rgba(15,23,42,.16)}
.admin-login-card h1{margin-bottom:6px;color:var(--brand-dark)}
.admin-login-card p{margin:0 0 14px}
.admin-login-card label{font-weight:800;color:#334155}
.admin-login-card input{margin-top:6px;height:44px;font-size:16px}
.admin-login-submit{width:100%;height:44px;margin-top:8px;font-weight:800}

/* Deep reading admin */
.deep-admin-pane{margin-bottom:16px}
.deep-admin-form{display:grid;gap:12px}
.deep-sentence-editor{display:grid;grid-template-columns:minmax(260px,.9fr) repeat(5,minmax(150px,1fr)) auto;gap:10px;align-items:start;border:1px solid #dfe8eb;border-radius:8px;padding:12px;background:#fbfdfd;scroll-margin-top:14px}
.deep-sentence-source{background:#fff;border:1px solid #edf1f3;border-radius:8px;padding:10px}
.deep-sentence-source b{color:var(--brand-dark)}
.deep-sentence-source p{margin:6px 0;color:#1d2935;line-height:1.55;font-family:Georgia,"Times New Roman",serif}
.deep-sentence-source small{display:block;color:#64748b;line-height:1.45}
.deep-sentence-editor label{margin:0;font-size:12px;color:#526174}
.deep-sentence-editor textarea{margin-top:5px;min-height:72px;resize:vertical;line-height:1.5}
.deep-publish-check{align-self:center;justify-content:center}
.deep-vocab-add{display:grid;grid-template-columns:120px 120px minmax(160px,1fr) minmax(180px,1.2fr) 130px 190px 100px 110px 90px auto;gap:8px;align-items:end;background:#fbfdfd;border:1px solid #dfe8eb;border-radius:8px;padding:12px;margin-bottom:12px}
.deep-vocab-add label,.deep-vocab-row label{margin:0;font-size:12px;color:#526174}
.deep-vocab-add input,.deep-vocab-add select,.deep-vocab-row input,.deep-vocab-row select{height:34px;padding:7px 8px;margin-top:5px}
.deep-vocab-list{display:grid;gap:8px}
.deep-vocab-row{display:grid;grid-template-columns:120px 120px minmax(160px,1fr) minmax(180px,1.1fr) 130px 120px 92px 72px 72px 58px;gap:8px;align-items:end;border:1px solid #dfe8eb;border-radius:8px;padding:10px;background:#fff}
@media(max-width:1280px){.deep-sentence-editor,.deep-vocab-add,.deep-vocab-row{grid-template-columns:1fr 1fr}.deep-sentence-source{grid-column:1/-1}}
@media(max-width:760px){.deep-sentence-editor,.deep-vocab-add,.deep-vocab-row{grid-template-columns:1fr}}

/* Qbank sentence editor: keep original translation and backup explanation, add fast AI deep-reading field. */
.admin-qbank-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.admin-qbank-actions .btn{min-width:92px}
.admin-qbank-actions .status-btn{height:auto;min-height:38px;display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.1;padding:6px 10px}
.admin-qbank-actions .status-btn span{font-weight:900;color:#12373b}
.admin-qbank-actions .status-btn small{font-size:11px;color:#64748b;font-weight:700}
.paragraph-title-actions{display:flex;align-items:center;gap:10px;min-width:0}
.paragraph-title-actions span{white-space:nowrap}
.save-paragraph-btn{height:30px;padding:5px 10px;font-size:12px;white-space:nowrap}
.sentence-main-cell{display:grid;gap:8px}
.sentence-row .ai-sentence-input{min-height:168px;background:#fbfffd;border-color:#bfe3cf}
.sentence-row .backup-explanation-input{min-height:168px;background:#fbfdfd;color:#526174}
.sentence-row label:has(.ai-sentence-input){color:var(--brand-dark);font-weight:900}
@media(max-width:1200px){.sentence-row{grid-template-columns:54px 1fr}.sentence-main-cell{grid-column:auto}}

/* Reading polish: stable option wrapping, aligned header, clearer deep-reading chat. */
body.reading-screen .topbar .topbar-inner{width:calc(100% - 20px)!important;max-width:1100px!important}
body.reading-screen .practice-article{padding-left:28px;padding-right:28px}
body.reading-screen .question-panel{padding:18px 20px}
body.reading-screen .question-card h3{font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.5;color:#1d2935;font-weight:400}
body.reading-screen .question-stem-text{font-size:17px;font-weight:800}
body.reading-screen .option{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;margin:8px 0;min-height:44px}
body.reading-screen .option input[type=radio]{flex:0 0 auto;width:18px;height:18px;margin:4px 0 0}
body.reading-screen .option span{display:block;min-width:0;font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.45;color:#1d2935;overflow-wrap:anywhere}
body.reading-screen .question-number-badge{font-size:17px;font-weight:800}
@media(max-width:1280px){body.reading-screen .practice-paper{max-width:1040px}.coach-bubble{width:260px}.coach-bubble.coach-overlay{width:min(330px,calc(100vw - 36px))}}

.deep-chat-panel{border:1px solid #cfe2e5}
.deep-chat-head{border-bottom-color:#edf1f3}
.deep-followup-row{grid-template-columns:minmax(0,1fr) 104px;gap:8px;padding:0;border:0;background:transparent;align-items:stretch}
.deep-followup-input-box{height:44px;box-sizing:border-box;border:2px solid var(--brand);border-radius:8px;background:#fff;padding:5px 8px}
.deep-followup-row textarea{border:0!important;outline:0!important;padding:0!important;height:30px!important;min-height:30px!important;max-height:30px!important;line-height:1.15!important;font-size:16px!important;box-shadow:none!important;background:transparent!important}
.deep-followup-row textarea:focus{border:0!important;outline:0!important;box-shadow:none!important}
.deep-followup-send{height:44px!important;padding:0 10px;font-weight:900;white-space:nowrap;background:#d97706!important;border-color:#d97706!important;color:#fff!important}
.vocab-book-title{flex:1 1 auto;gap:6px;flex-wrap:wrap}
.vocab-book h2{color:var(--brand-dark);white-space:nowrap}
.vocab-title-help{font-size:18px;color:var(--brand-dark);font-weight:400;background:transparent!important;padding:0!important;border-radius:0!important;white-space:normal}
.vocab-download-btn{font-weight:400!important}
.vocab-column-labels{grid-template-columns:32px minmax(78px,.58fr) minmax(0,1fr) 26px;font-size:11px;padding:0 8px}
.vocab-item{grid-template-columns:32px minmax(78px,.58fr) minmax(0,1fr) 26px;padding:4px 8px;border:0;border-radius:6px;background:transparent}
.vocab-item:nth-child(odd){background:#f6f8fa}
.vocab-item em{font-style:normal;color:#94a3b8;font-size:13px;text-align:center}
.vocab-item b{font-size:16px;line-height:1.25}
.vocab-item span{font-size:15px;line-height:1.25}
.vocab-item button{width:24px;height:24px}

body.reading-screen .practice-paper{grid-template-rows:auto auto minmax(0,1fr)}
.reading-first-tip{grid-column:1/-1;display:none;align-items:center;justify-content:center;gap:10px;background:#fff8e6;border-bottom:1px solid #f0d9a6;color:#7a4a00;font-size:14px;line-height:1.5;padding:8px 16px;text-align:center}
.reading-first-tip.show{display:flex}
.reading-first-tip span{max-width:860px}
.reading-first-tip button{width:24px;height:24px;border:0;border-radius:50%;background:rgba(122,74,0,.1);color:#7a4a00;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;flex:0 0 auto}
.reading-first-tip button:hover{background:rgba(122,74,0,.18)}

.coach-card.manual-position .coach-kicker{cursor:grab}
.coach-card.dragging .coach-kicker{cursor:grabbing}
.coach-auto-btn{position:absolute;right:38px;top:9px;width:24px;height:24px;border:0;border-radius:50%;padding:0;background:#eef2f5;color:#64748b;font-size:14px;line-height:24px;display:flex;align-items:center;justify-content:center}
.coach-auto-btn:hover{background:#e2e8f0;color:#334155}

/* Production polish: reading return button, deep-reading text scale, compact admin settings, user filters. */
.reading-home-link{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;border:1px solid rgba(255,255,255,.52);border-radius:999px;color:#fff!important;font-weight:900;background:rgba(255,255,255,.12)}
.reading-home-link:hover{background:#fff;color:var(--brand-dark)!important}
.deep-msg{font-size:15px;line-height:1.58}
.deep-chat-head b{font-size:16px}
.deep-followup-row textarea{font-size:15px!important}
.vocab-item span{font-size:15px}

.settings-page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.settings-stats-inline{display:grid;grid-template-columns:repeat(3,120px);gap:8px}
.settings-stats-inline b{padding:9px 10px}
.settings-stats-inline span{font-size:20px}
.settings-grid{grid-template-columns:minmax(360px,.9fr) minmax(300px,.7fr);grid-template-areas:"ad qr" "ad tip";gap:14px}
.settings-ad-card{grid-area:ad}
.settings-qr-card{grid-area:qr}
.settings-tip-card{grid-area:tip}
.settings-card{padding:16px}
.settings-card h2{font-size:18px}
.settings-card p{font-size:13px;line-height:1.55;margin-bottom:10px}
.settings-qr-card .settings-qr-preview{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px}
.settings-qr-card .settings-qr-preview img{width:128px;height:128px;max-width:128px;max-height:128px}
.settings-qr-card .settings-qr-empty{width:128px;height:128px}
.settings-ad-card .settings-qr-preview{padding:12px}
.settings-ad-card .settings-qr-preview img{max-width:260px;max-height:520px}
.settings-ad-card .settings-ad-empty{width:230px;height:420px}
.settings-title-form{margin-bottom:10px}
.settings-tip-card textarea{min-height:72px}

.admin-filter-bar{display:grid;grid-template-columns:120px minmax(220px,1fr) 150px 96px auto;gap:10px;align-items:end;margin:0 0 14px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px}
.admin-filter-bar label{margin:0;font-size:12px;color:#526174;font-weight:800}
.admin-filter-bar input,.admin-filter-bar select{height:38px;margin-top:5px;padding:7px 9px}
.filter-actions{display:flex;gap:8px;align-items:center}
.admin-pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:14px;color:#526174}
.admin-pagination span{margin-right:auto}
.admin-pagination label{display:flex;align-items:center;gap:6px;margin:0;color:#526174}
.admin-pagination input{width:76px;height:36px}
.admin-pagination .disabled{opacity:.45;pointer-events:none}
@media(max-width:900px){.settings-page-head,.settings-grid,.admin-filter-bar{grid-template-columns:1fr;grid-template-areas:none}.settings-ad-card,.settings-qr-card,.settings-tip-card{grid-area:auto}.settings-stats-inline{grid-template-columns:repeat(3,1fr)}.filter-actions{justify-content:flex-start}.admin-pagination span{width:100%}}

.monitor-stats{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-bottom:14px}
.monitor-stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:0 6px 16px rgba(42,82,92,.05)}
.monitor-stat span{display:block;color:#64748b;font-size:13px;font-weight:800}
.monitor-stat b{display:block;margin-top:6px;color:var(--brand-dark);font-size:30px;line-height:1}
.monitor-grid{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr);gap:14px;align-items:start}
.monitor-grid.single{grid-template-columns:1fr}
.monitor-panel{overflow:auto}
.monitor-panel h2{color:var(--brand-dark)}
.monitor-table{min-width:620px}
.monitor-table th{background:#f8fbfc;color:#405066;font-weight:900}
.monitor-table td{vertical-align:middle}
.monitor-table small{display:block;margin-top:4px;color:#718092;line-height:1.35;word-break:break-all}
.monitor-user{display:flex;align-items:center;gap:8px;min-width:130px}
.monitor-user img{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#edf1f3}
@media(max-width:1100px){.monitor-stats,.monitor-grid{grid-template-columns:1fr}.monitor-table{min-width:720px}}
