
:root{--sage:#cadcba;--sage-deep:#265e48;--sage-line:#a8c19a;--butter:#fff0cb;--cream:#fff9ec;--ink:#293b31;--muted:#66796c;--panel:#fffaf0;--purple:#edf0ff;--stroke:#d8dec8;--shadow:0 12px 35px rgba(47,65,36,.09);--radius:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;color:var(--ink);background:var(--butter)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #56a47e;outline-offset:2px}a{color:var(--sage-deep)}
.topbar{height:91px;background:var(--sage);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:20px;box-shadow:0 1px 0 rgba(42,79,40,.08);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:11px;min-width:145px}.brand-mark{width:45px;height:45px;border-radius:10px;background:#9bc96d;display:grid;place-items:center}.brand-mark svg{width:38px}.brand-title{font-size:25px;color:white;font-weight:800;line-height:1}.brand-sub{font-size:10px;color:#fff;letter-spacing:.4px}.head-center{flex:1;display:flex;align-items:end;gap:6px;align-self:end;max-width:650px}.booktab{height:34px;padding:7px 25px 5px;background:#bbd09c;border-radius:6px 6px 0 0;color:#486847;font-size:13px;min-width:120px;text-align:center;border:1px solid #adc38d;border-bottom:0;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booktab.selected{height:36px;background:var(--butter);font-weight:700;color:#285b43;opacity:1}.head-actions{display:flex;gap:12px;align-items:center}.icon-button{width:38px;height:38px;border:0;background:transparent;border-radius:9px;color:#1c674a;display:grid;place-items:center}.icon-button:hover{background:#b7d3a8}.icon-button svg{width:22px;height:22px}.id-pill{padding:9px 12px;background:#e1eed7;border:1px solid #a9c79e;border-radius:30px;font-size:12px;color:#34513e;font-weight:600}
.screen{min-height:calc(100vh - 91px)}.intro{max-width:920px;margin:45px auto;padding:0 20px 60px}.intro h1{font-size:31px;line-height:1.35;margin:8px 0 9px;letter-spacing:-.4px}.eyebrow{font-size:12px;color:#437856;letter-spacing:2px;font-weight:800;text-transform:uppercase}.lead{font-size:15px;color:#687666;line-height:1.9}.card{background:rgba(255,253,247,.95);border:1px solid #e7dfc8;border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{margin-bottom:18px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;border:1px solid #cccfbb;background:white;border-radius:11px;padding:12px 14px;color:var(--ink);font-size:15px}.field textarea{resize:vertical;min-height:100px}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.65}.fine{font-size:11px;color:var(--muted)}.notice{padding:12px 16px;border-radius:12px;background:#fff4df;border:1px solid #ecd49f;font-size:13px;line-height:1.75;color:#795b2a}.notice.blue{background:#eaf2ee;border-color:#bfdfc9;color:#38594b}.notice.rose{background:#ffedea;border-color:#e5b8b0;color:#8e4238}.flex{display:flex;align-items:center}.between{justify-content:space-between}.gap8{gap:8px}.gap12{gap:12px}.gap16{gap:16px}.wrap{flex-wrap:wrap}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt22{margin-top:22px}.mb0{margin-bottom:0}.btn{border:1px solid #b8c9b2;background:white;color:#285942;border-radius:12px;padding:11px 18px;font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px;white-space:nowrap}.btn svg{width:18px;height:18px;flex:none}.btn:hover:not(:disabled){filter:brightness(.97)}.btn.primary{background:#225d45;border-color:#225d45;color:white}.btn.soft{background:#e6efd9}.btn.ghost{background:transparent;border-color:transparent}.btn.danger{color:#9c433f;border-color:#debab8}.btn.tiny{min-height:32px;padding:6px 12px;font-size:12px;border-radius:8px}.chip{display:inline-flex;border-radius:30px;padding:4px 11px;background:#e8eedf;color:#42644a;font-size:12px;font-weight:700}.chip.gold{background:#fff0d2;color:#8a642e}.chip.blue{background:#e8edff;color:#5968a4}.radio-pair{display:flex;flex-wrap:wrap;gap:9px}.radio-pair label{border:1px solid #cfdbc7;border-radius:12px;padding:12px 14px;background:white;display:flex;align-items:center;gap:9px;flex:1;min-width:175px;cursor:pointer;font-size:13px}.radio-pair input{accent-color:#236449}.section-title{font-size:19px;margin:0 0 12px}.readme{line-height:1.8;font-size:13px}.steps{display:flex;align-items:center;gap:8px;margin:18px 0 25px;flex-wrap:wrap}.step{font-size:12px;padding:7px 12px;border-radius:28px;background:#e7e8d9;color:#71816b;font-weight:600}.step.done{background:#dbe9d2;color:#296146}.step.now{background:#275c44;color:white}.arrow{color:#a7af9b}
.library-wrap{max-width:1200px;margin:32px auto;padding:0 30px 70px}.library-head{display:flex;align-items:start;justify-content:space-between;gap:18px}.library-title{font-size:29px;margin:8px 0}.library-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.material-card{border:1px solid #e2ddc8;background:#fffdf5;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);position:relative;min-height:344px;display:flex;flex-direction:column}.cover{height:156px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.cover span{font-family:Georgia,"Noto Serif CJK SC",serif;font-size:46px;color:#355940;opacity:.8}.cover:before,.cover:after{content:"";position:absolute;border:2px solid rgba(77,113,71,.18);width:140px;height:140px;border-radius:50%;top:-50px;left:-25px}.cover:after{top:auto;left:auto;bottom:-80px;right:-40px;width:190px;height:190px}.cover.en{background:#e2e8d8}.cover.ja{background:#f0e4d5}.cover.ko{background:#dee9ee}.material-inner{padding:18px;display:flex;flex-direction:column;flex:1;gap:10px}.material-inner h3{font-size:19px;margin:0}.material-inner p{font-size:13px;color:#6d7466;line-height:1.65;margin:0;flex:1}.material-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.lock{position:absolute;top:13px;right:13px;border-radius:12px;background:rgba(255,255,255,.93);font-size:11px;padding:6px 9px;font-weight:700;color:#657363}.demo-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px;padding:14px;background:rgba(255,253,242,.7);border:1px solid #e7dfc6;border-radius:14px}.demo-controls select{padding:8px 10px;border-radius:8px;border:1px solid #b8c8ae;background:white}
.reader-viewport{height:calc(100vh - 91px);min-height:590px;display:flex;flex-direction:column}.reader-metadata{height:50px;min-height:50px;display:flex;justify-content:space-between;align-items:center;padding:0 34px;gap:10px;font-size:12px;color:#58705f;background:rgba(255,247,225,.55)}.reader-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(550px,740px) minmax(220px,1fr);gap:0;flex:1;min-height:0}.reader-wing{padding:16px 20px;min-width:0;overflow-y:auto;scrollbar-color:#c1caa9 transparent}.reader-wing.empty{pointer-events:none}.reader-body{min-width:0;overflow-y:auto;padding:12px 32px 110px;scrollbar-color:#d6ca9d transparent;scroll-behavior:smooth}.reader-paragraphs{font-size:17px;color:#202720;line-height:2.2;letter-spacing:.18px;max-width:720px;margin:6px auto;font-weight:520}.reader-paragraphs p{margin:0 0 14px;text-align:justify;border-left:3px solid transparent;padding-left:10px;transition:.2s}.reader-paragraphs p.annotatable{cursor:pointer}.reader-paragraphs p.annotatable:hover{background:rgba(159,184,112,.11)}.reader-paragraphs p.active-para{background:rgba(171,196,124,.19);border-left-color:#477b50}.reader-paragraphs p.has-mark:after{content:" ·";color:#84ab66;font-size:19px}.wing-card{background:#fffdf5;border:1px solid #e1dfca;border-radius:17px;box-shadow:0 7px 22px rgba(76,78,42,.06);padding:16px;margin-bottom:13px}.wing-title{font-weight:800;font-size:14px;color:#255b45;margin:0 0 10px}.wing-heading{display:flex;gap:8px;align-items:center;margin-bottom:8px}.wing-heading svg{width:20px}.wing-info{font-size:12px;line-height:1.8;color:#677367}.note-item{border:1px solid #e2e8d9;background:#f7faee;border-radius:11px;padding:11px;margin-bottom:9px;cursor:pointer}.note-item:hover{border-color:#adc9aa}.note-item.active{border-color:#478c69;box-shadow:0 0 0 2px rgba(68,127,84,.08)}.note-item.purple{background:#f5f4ff;border-color:#d9dcf2}.note-item p{margin:5px 0;font-size:12px;line-height:1.8}.note-item strong{font-size:12px}.source{background:#f3f5e9;border-radius:9px;padding:10px;margin-top:8px;font-size:11px;line-height:1.65;color:#4f6753}.reader-toolbar{min-height:74px;background:#fcf5df;border-top:1px solid #e0d8c1;display:flex;align-items:center;justify-content:center;gap:18px;padding:13px 25px}.reader-toolbar .hint{font-size:12px;color:#647261}.reader-toolbar .btn{min-width:165px}.progress-track{height:5px;background:#e6e9d6;overflow:hidden}.progress-fill{height:100%;background:#6c9b67;transition:width .2s}.thin-select{width:100%;border-radius:8px;border:1px solid #d1ddc7;padding:10px;background:#fff}.right-edge-label{font-size:10px;color:#839880;line-height:1.5}
.survey{max-width:920px;margin:33px auto 70px;padding:0 22px}.question{padding:20px 0;border-bottom:1px solid #ebeadb}.question h3{font-size:16px;margin:0 0 9px}.question p.desc{font-size:12px;color:#68776b;margin:0 0 12px}.choices{display:grid;gap:8px}.choices label{display:flex;align-items:start;gap:10px;padding:10px 12px;border:1px solid #e1e3d6;border-radius:10px;background:#fff;cursor:pointer;font-size:14px}.choices label:has(input:checked){background:#e8f1df;border-color:#96b693}.choices input{accent-color:#2c7756;margin-top:3px}.scale-line{display:flex;gap:5px;flex-wrap:wrap}.scale-line label{display:flex;align-items:center;justify-content:center;min-width:37px;min-height:37px;border-radius:9px;border:1px solid #d7decc;background:white;cursor:pointer;font-size:13px}.scale-line label:has(input:checked){background:#276248;color:white;border-color:#276248}.scale-line input{position:absolute;opacity:0;pointer-events:none}.scale-labels{display:flex;justify-content:space-between;color:#84917f;font-size:11px;margin-top:8px}.error{color:#a33734;font-size:13px;font-weight:700;margin-top:8px}.review-box{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.review-box .metric{padding:18px;border-radius:13px;background:#f6f7ea;border:1px solid #e1e7d1;text-align:center}.metric b{font-size:25px;color:#1b694a}.metric span{display:block;font-size:12px;color:#627660}.report-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:12px}.report-table th,.report-table td{text-align:left;padding:12px 9px;border-bottom:1px solid #e1e3d3;vertical-align:top}.report-table th{font-weight:750;background:#eff2e6}.report-table tr:hover td{background:#fafcf3}.report-monospace{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.scroll-x{overflow:auto}.task-banner{border:1px solid #b8ceb7;border-radius:15px;background:#f0f6eb;padding:15px 18px;margin:15px 0}.task-banner h3{margin:3px 0 6px}.inlinecheck{display:flex;align-items:start;gap:9px;font-size:13px;line-height:1.75}.inlinecheck input{width:18px;height:18px;accent-color:#28664a;margin-top:3px}.placeholder-tag{padding:2px 7px;border-radius:8px;color:#946020;background:#fff0d9;font-size:11px;font-weight:750}.floating-toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#244f3d;color:white;border-radius:12px;padding:11px 18px;font-size:13px;box-shadow:var(--shadow);z-index:15;max-width:90vw}.footer-center{text-align:center;margin-top:25px;font-size:11px;color:#748577}.inline-danger{color:#a64036}.hide{display:none!important}
@media(max-width:1200px){.reader-grid{grid-template-columns:minmax(180px,1fr) minmax(520px,720px) minmax(180px,1fr)}.reader-wing{padding:12px 10px}.topbar{padding:0 17px}.head-center{max-width:470px}.booktab{min-width:95px;padding:7px 10px;font-size:12px}}
@media(max-width:900px){.reader-grid{grid-template-columns:1fr;overflow:auto}.reader-viewport{height:auto;min-height:calc(100vh - 91px)}.reader-body{min-height:440px;max-height:65vh;order:0;padding:16px 22px 45px}.reader-wing{overflow:visible;order:1;padding:11px 18px}.reader-wing.empty{display:none}.reader-paragraphs{font-size:16px}.library-cards{grid-template-columns:1fr}.head-center{display:none}.form-grid{grid-template-columns:1fr}.library-wrap{padding:0 20px 55px}.reader-toolbar{flex-wrap:wrap}.review-box{grid-template-columns:1fr}.brand-title{font-size:19px}.topbar{height:77px}.screen{min-height:calc(100vh - 77px)}.head-actions{gap:3px}.id-pill{font-size:10px;padding:7px}}

.reader-metadata{height:auto;min-height:50px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}.reader-metadata>div{flex-wrap:wrap}.reader-paragraphs[lang="en"] p{text-align:left;overflow-wrap:anywhere}

.entry-intro{max-width:1000px;margin-top:52px}.entry-heading{max-width:750px;margin-bottom:30px}.entry-heading h1{font-size:34px;letter-spacing:-.8px}.entry-card{padding:32px 36px;background:#fffcf3}.entry-section-head{display:flex;justify-content:space-between;align-items:end;gap:16px}.entry-section-head .eyebrow{font-size:10px;letter-spacing:1.5px;color:#85917b}.entry-section-head h2{margin:7px 0 0;font-size:20px}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.mode-option{position:relative;display:flex;align-items:center;gap:14px;padding:22px 18px;min-height:104px;border:1px solid #dedfce;border-radius:15px;cursor:pointer;background:#fffdf7;transition:background .15s,border-color .15s}.mode-option.chosen{background:#edf2e5;border-color:#789568}.mode-option input{position:absolute;opacity:0}.mode-option:focus-within{outline:3px solid #56a47e;outline-offset:3px}.mode-symbol{color:#6f8764;font-size:20px;font-weight:500}.mode-option strong{display:block;font-size:16px;margin-bottom:7px}.mode-option small{display:block;color:#76806f;font-size:12px;line-height:1.6}.mode-dot{width:17px;height:17px;border:1px solid #b4bda8;border-radius:50%;margin-left:auto;flex:none}.chosen .mode-dot{border:5px solid #42694c;background:white}.seat-heading{margin-top:34px;padding-top:27px;border-top:1px solid #e7e5d7}.seat-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px;margin-top:20px}.seat{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 3px;border:1px solid #d9dfce;background:#fffdf7;border-radius:10px;color:#38553e;transition:.15s}.seat span{font-size:20px;font-variant-numeric:tabular-nums;font-weight:650}.seat small{font-size:9px;color:#8c9684;letter-spacing:.5px}.seat:hover:not(:disabled){background:#edf2e5;border-color:#8da77a}.seat.selected{background:#2c6047;border-color:#2c6047;color:white;box-shadow:0 3px 10px #315a4522}.seat.selected small{color:#d5e4cc}.seat:disabled{background:#f0f0e9;border-color:#e6e6dc;color:#a4a99b;opacity:1}.entry-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:26px}.entry-footnote{font-size:11px;line-height:1.8;color:#7f8b76;text-align:center;margin:21px 14px}.resume-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #e6e6d6;padding-top:16px}.question{border-left:0;border-right:0;border-top:0;margin:0;min-width:0}.question legend{float:left;width:100%;font-size:15px;font-weight:650;line-height:1.7;margin-bottom:12px}.question legend+.choices,.question legend+.scale-line{clear:both}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ueq-question{border:0;border-bottom:1px solid #ececde;margin:0;min-width:0;padding:16px 0;display:grid;grid-template-columns:20px minmax(78px,1fr) minmax(245px,1.8fr) minmax(78px,1fr);align-items:center;gap:8px}.ueq-num{font-size:11px;color:#99a18f}.ueq-end{font-size:12px;line-height:1.5}.ueq-end:last-child{text-align:right}.ueq-options{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.ueq-options label{display:grid;place-items:center;position:relative;min-height:36px;border:1px solid #d6decc;border-radius:8px;background:white;font-size:12px;cursor:pointer}.ueq-options input{position:absolute;opacity:0}.ueq-options label:has(input:checked){background:#2c6047;color:white;border-color:#2c6047}.ueq-options label:focus-within,.scale-line label:focus-within{outline:3px solid #56a47e;outline-offset:2px}.report-answer{white-space:pre-wrap;font-size:14px;line-height:1.9}.raw-data{white-space:pre-wrap;overflow-wrap:anywhere;max-height:380px;overflow:auto;font-size:11px}.reader-metadata{padding-left:24px;padding-right:24px}.reader-grid{grid-template-columns:minmax(200px,1fr) minmax(0,720px) minmax(200px,1fr)}
@media(max-width:760px){.entry-intro{margin-top:28px}.entry-heading h1{font-size:27px}.entry-card{padding:24px 18px}.mode-options{grid-template-columns:1fr}.mode-option{min-height:85px;padding:17px}.seat-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.seat span{font-size:17px}.entry-section-head{align-items:start}.entry-section-head>.fine{max-width:105px;text-align:right}.ueq-question{grid-template-columns:15px 1fr 1fr;gap:9px}.ueq-options{grid-column:2/4;grid-row:2}.ueq-end:last-child{grid-column:3;grid-row:1}.ueq-options label{min-height:40px}.entry-bottom{align-items:start}.reader-grid{display:block}.reader-body{height:100%;padding:12px 20px 60px}.reader-wing{max-height:260px}.reader-wing.empty{display:none}.reader-grid{overflow:auto}.reader-body{overflow-y:auto;height:65vh;min-height:240px}.reader-viewport{height:auto;min-height:calc(100vh - 91px)}.reader-toolbar{position:sticky;bottom:0}.reader-metadata>div{max-width:100%}}

dialog{border:1px solid #d8dec8;border-radius:18px;padding:28px;background:#fffcf3;color:#293b31;box-shadow:0 20px 80px #20332033;max-width:calc(100vw - 32px)}dialog::backdrop{background:#26392c66}

[hidden]{display:none!important}.reader-work-title{font-size:14px;font-weight:650}.reader-metadata{min-height:52px;background:#fff0cb;padding:8px 28px}.reader-grid{grid-template-columns:minmax(230px,1fr) minmax(0,720px) minmax(230px,1fr);background:#fff0cb}.reader-body{padding:24px 30px 80px;scroll-behavior:auto}.reader-paragraphs{font-size:17px;line-height:2.25;letter-spacing:.2px;color:#19251e;font-weight:450}.reader-paragraphs p{padding-left:0;border-left:0;margin:0 0 27px;transition:background .15s}.reader-paragraphs .context-active{background:transparent}.ai-anchor{background:#bbce8a77;border-radius:3px;color:inherit;padding:1px 0;cursor:pointer}.note-anchor{background:transparent;text-decoration:underline wavy #8ba965;text-underline-offset:4px;color:inherit;cursor:pointer}.reader-paragraphs mark:focus-visible{outline:2px solid #3e7650;outline-offset:3px}.reader-wing{padding:16px 18px 14px;overflow:hidden;display:flex;flex-direction:column;min-height:0;gap:12px}.rail-heading{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;color:#557247;flex:none;padding:0 4px}.rail-heading svg{width:18px;height:18px}.rail-caption{font-size:9px;font-weight:400;margin-left:auto;color:#879677}.margin-track{position:relative;flex:1;min-height:0;overflow:hidden}.margin-context{position:absolute;left:0;right:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a8c090 transparent;padding:0 5px 7px}.rail-empty{font-size:11px;line-height:1.8;color:#91a083;margin:16px 5px}.ai-margin-card{background:#c1d18e;border:1px solid #a4bc73;border-radius:11px;margin-bottom:12px;position:relative;color:#45613d}.margin-card-title{width:100%;background:transparent;border:0;border-bottom:1px solid #a6bd7880;color:#fdfef7;display:flex;align-items:center;justify-content:space-between;padding:13px 14px;font-weight:700;text-align:left;font-size:13px;gap:10px}.support-copy{font-size:12px;line-height:1.95;padding:0 14px;overflow-wrap:anywhere}.support-copy p{margin:12px 0}.source-button{border:0;background:#e3ebc555;color:#567c48;border-radius:7px;margin:0 14px 14px;padding:7px 10px;font-size:10px}.source{margin:0 12px 12px;background:#eef2d5b3}.reader-margin-card{border:1px solid #b8cda3;background:#fffef9;border-radius:11px;margin-bottom:14px;padding:13px 14px;color:#6f8560}.reader-margin-card p{font-size:12px;line-height:1.95;margin:10px 0 0}.note-quote{background:transparent;border:0;width:100%;text-align:left;font-size:12px;color:#8ca17a;line-height:1.8;font-weight:650;padding:0 0 9px;border-bottom:1px solid #e8eddf}.private-composer{flex:none;font-size:11px;background:#fffaf0;border:1px solid #d8e1c8;border-radius:9px;padding:10px}.private-composer summary{cursor:pointer;color:#618052}.private-composer[open]{max-height:300px;overflow-y:auto}.language-tabs{display:flex;border:1px solid #d5dbbb;border-radius:8px;overflow:hidden;margin-left:8px}.language-tabs button{border:0;background:#fff6df;color:#80906c;padding:5px 10px;font-size:10px}.language-tabs button[aria-pressed=true]{background:#dfe8c7;color:#3b6545}#support-jump{max-width:190px;border:1px solid #d6dcbc;background:#fff6df;color:#6f825c;border-radius:7px;padding:6px 8px;font-size:11px}.reading-end{text-align:center;font-size:11px;color:#9aa38b!important;margin:48px 0 0!important}.choice-letter{display:inline-block;font-size:11px;color:#8b987f;margin-right:9px}.choices label{line-height:1.85}.open-question-label{display:block;font-size:14px;font-weight:600;line-height:1.9;margin:15px 0 10px}.mode-recap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.mode-recap>div{border:1px solid #d9e1c9;background:#fffaf0;border-radius:13px;padding:15px}.mode-recap strong{display:block;font-size:12px;line-height:1.8;margin-top:10px}.mode-recap small{display:block;font-size:10px;color:#8b967e;margin-top:8px}.preference-counts{font-size:12px;line-height:1.9}
@media(max-width:1100px){.reader-grid{grid-template-columns:minmax(180px,1fr) minmax(0,620px) minmax(180px,1fr)}.reader-wing{padding-left:10px;padding-right:10px}.reader-body{padding-left:20px;padding-right:20px}.support-copy{font-size:11px;padding:0 10px}}
@media(max-width:760px){.reader-viewport{height:calc(100vh - 91px);min-height:620px}.reader-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.reader-space{display:none}.reader-body{grid-column:1;grid-row:1;overflow-y:auto;height:auto;min-height:0;padding:16px 20px 40px}.reader-wing{grid-row:2;height:190px;max-height:190px;padding:8px 12px;border-top:1px solid #d8dfbd;gap:5px}.right-rail{grid-column:1}.left-rail{grid-column:1}.condition-C2 .reader-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.condition-C2 .reader-body{grid-column:1/3}.condition-C2 .left-rail{grid-column:1}.condition-C2 .right-rail{grid-column:2}.margin-context{position:absolute;top:0!important;max-height:100%!important;padding:0 2px}.rail-heading{font-size:10px;gap:5px}.rail-caption{display:none}.private-composer{font-size:10px;max-height:75px!important;padding:6px}.reader-margin-card{padding:8px}.reader-margin-card p,.support-copy{font-size:11px}.margin-card-title{font-size:11px;padding:9px}.reader-metadata{padding:8px 15px}.reader-work-title{font-size:12px}#support-jump{max-width:150px}.reader-paragraphs{font-size:16px}.reader-toolbar{position:relative;padding:9px 12px;min-height:62px;gap:8px}.reader-toolbar .hint{font-size:10px;max-width:130px}.reader-toolbar .btn{min-width:150px;font-size:12px}.mode-recap{grid-template-columns:1fr}.mode-recap>div{display:flex;align-items:center;gap:10px;padding:11px}.mode-recap strong{margin:0;flex:1}.mode-recap small{margin:0;max-width:70px}}

.profile-section{border-top:1px solid #e3e5d5;margin:28px 0;padding-top:22px}.profile-section h2{font-size:17px;margin:0 0 20px;display:flex;align-items:center;gap:12px}.profile-section h2 span{font-size:11px;color:#79916a;letter-spacing:1px}.profile-page input[type=number]{width:100%;padding:12px;border:1px solid #d8dec8;border-radius:9px;background:#fff;color:var(--ink);font:inherit}.profile-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:0}.profile-summary dt{font-size:12px;color:var(--muted)}.profile-summary dd{font-size:14px;margin:6px 0 0}#preview-bar{position:sticky;top:0;z-index:8}.preview-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 24px;background:#f3f6e9;border-bottom:1px solid #cfdbc1}.preview-nav strong{font-size:12px;display:block;color:#355e46}.preview-nav small{display:block;font-size:11px;color:#78866d;margin-top:4px}.preview-nav select{max-width:100%;min-height:39px;border:1px solid #c7d4b8;border-radius:9px;background:#fffdf5;padding:7px 12px;color:var(--ink);font:inherit;font-size:12px;margin-left:auto}.preview-nav .btn{font-size:12px;padding:10px 14px}.preview-nav .btn:disabled{opacity:.45;cursor:default}@media(max-width:760px){.preview-nav{padding:12px 16px;gap:9px}.preview-nav>div{width:100%}.preview-nav select{margin-left:0;flex:1;min-width:0}.profile-summary{grid-template-columns:1fr}}
.required-mark{color:#a34d3f;font-size:12px}.profile-hint{font-size:11px;line-height:1.7;color:#788470;margin:0 0 9px}.profile-section .field{justify-content:flex-start}

/* 阅读页视觉参数同步自 jdweb；实验条件共享相同的正文排版。 */
body.reader-page {
  --butter: #FFF0CC;
  --reader-header-height: 75px;
  height: 100vh;
  height: 100svh;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #FFF0CC;
  font-family: -apple-system, "Noto Sans", BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.reader-page .topbar {
  height: var(--reader-header-height);
  min-height: var(--reader-header-height);
  flex: none;
  padding: 0 40px;
  gap: 20px;
  background: #c5dbb3;
  box-shadow: none;
}
.reader-page .brand { min-width: 99px; flex: none; }
.reader-logo { display: block; width: 99px; height: 45px; object-fit: contain; }
.reader-page .head-center { min-width: 0; max-width: none; height: 30px; gap: 0; overflow: hidden; }
.reader-page .booktab {
  flex: 1 1 136px;
  height: 30px;
  min-width: 72px;
  max-width: 180px;
  padding: 5px 12px;
  margin-right: -5px;
  border: 0;
  border-radius: 5px 5px 0 0;
  background: #C5D399;
  color: #4A6633;
  box-shadow: 2px -3px 4px rgba(139,182,103,.3);
  font-size: 14px;
  font-weight: 500;
  opacity: 1;
}
.reader-page .booktab.selected { background: #FFF0CC; color: #4A6633; z-index: 1; }
.reader-page .id-pill { border: 0; background: rgba(255,255,255,.38); color: #4A6633; font-weight: 500; }
.reader-page #preview-bar { position: relative; flex: none; }
.reader-page .preview-nav { padding: 8px 24px; }
.reader-page #app { display: flex; flex: 1; min-height: 0; overflow: hidden; }
.reader-page .reader-viewport { height: 100%; min-height: 0; width: 100%; }
.reader-page .reader-metadata { min-height: 46px; padding: 8px 28px; background: #FFF0CC; flex: none; }
.reader-page .reader-work-title { color: #4A6633; font-size: 14px; font-weight: 500; }
.reader-page .language-tabs { border-color: rgba(139,182,103,.5); border-radius: 30px; }
.reader-page .language-tabs button { background: transparent; color: #4A6633; padding: 6px 12px; font-size: 12px; }
.reader-page .language-tabs button[aria-pressed=true] { background: #C5D399; }
.reader-page #support-jump { border-color: rgba(139,182,103,.5); background: transparent; color: #4A6633; }
.reader-page .progress-track { height: 3px; flex: none; background: rgba(197,211,153,.35); }
.reader-page .progress-fill { background: #8BB667; }
.reader-page .reader-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,720px) minmax(0,1fr);
  grid-template-rows: minmax(0,1fr);
  overflow: hidden;
  background: #FFF0CC;
}
.reader-page .reader-body {
  order: initial;
  height: 100%;
  min-height: 0;
  max-height: none;
  padding: 70px 16px 60px;
  overscroll-behavior: contain;
}
.reader-page .reader-paragraphs {
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 0;
  font-weight: 400;
  color: #000;
  margin: 0 auto;
}
.reader-page .reader-paragraphs p { padding: 0; margin: 0 0 24px; overflow-wrap: anywhere; }
.reader-page .ai-anchor { background: rgba(139,182,103,.25); padding: 0; }
.reader-page .note-anchor { text-decoration-color: #8BB667; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.reader-page .reader-wing { order: initial; height: 100%; max-height: none; padding: 22px 20px 16px; gap: 14px; }
.reader-page .rail-heading { color: #4A6633; font-size: 12px; font-weight: 500; }
.reader-page .rail-caption { color: #6e845b; }
.reader-page .rail-empty { color: #7c8e66; }
.reader-page .margin-context { padding: 0 8px 8px; }
.reader-page .ai-margin-card { border: 0; border-radius: 10px; background: transparent; color: rgba(74,102,51,.9); margin-bottom: 12px; }
.reader-page .margin-card-title {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid rgba(139,182,103,.5);
  border-radius: 10px;
  background: #8BB667;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 21px;
}
.reader-page .margin-card-title > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reader-page .margin-card-title > span:last-child { flex: none; font-size: 16px; }
.reader-page .margin-card-title:hover,
.reader-page .margin-card-title[aria-expanded=true] { background: #C5D399; color: #4A6633; }
.reader-page .ai-margin-card > [data-ai-body] {
  margin: -1px 0 0 30px;
  border: 1px solid rgba(139,182,103,.5);
  border-top: 0;
  border-radius: 0 0 10px 10px;
  background: #C5D399;
  padding-top: 1px;
}
.reader-page .ai-margin-card:has(> [data-ai-body]:not([hidden])) > .margin-card-title { border-bottom-right-radius: 0; }
.reader-page .support-copy { font-size: 14px; line-height: 1.625; padding: 0 12px; }
.reader-page .source-button { margin: 0 12px 12px; color: #4A6633; background: rgba(255,240,204,.55); font-size: 11px; }
.reader-page .source { color: #4A6633; }
.reader-page .reader-margin-card { padding: 0; background: transparent; border: 0; color: rgba(74,102,51,.8); }
.reader-page .note-quote { width: 100%; background: #fff; color: rgba(74,102,51,.75); text-align: left; }
.reader-page .note-quote:hover,
.reader-page .note-quote[aria-expanded=true] { background: #fff; color: #4A6633; }
.reader-page .reader-margin-card:has(> [data-note-body]:not([hidden])) > .note-quote { border-bottom-left-radius: 0; }
.reader-page .reader-note-body { margin: -1px 30px 0 0; padding: 12px; border: 1px solid rgba(139,182,103,.5); border-top: 0; border-radius: 0 0 10px 10px; background: #fff; }
.reader-page .reader-note-body blockquote { border-left: 2px solid #C5D399; margin: 0 0 10px; padding-left: 9px; color: #757575; font-size: 12px; line-height: 1.625; }
.reader-page .reader-note-body p { margin: 0 0 12px; font-size: 14px; line-height: 1.625; }
.reader-page .note-locate { border: 0; background: transparent; padding: 0; font-size: 11px; color: #4A6633; text-decoration: underline; text-underline-offset: 3px; }
.reader-page .private-composer { background: rgba(255,255,255,.55); border-color: rgba(139,182,103,.5); border-radius: 10px; }
.reader-page .reader-toolbar { position: relative; flex: none; min-height: 64px; padding: 10px 24px; background: #FFF0CC; border-top: 1px solid rgba(139,182,103,.25); }
.reader-page .reader-toolbar .btn { background: #C5D399; border-color: #8BB667; color: #4A6633; border-radius: 10px; font-weight: 500; }
.reader-page .reader-body,
.reader-page .margin-context,
.reader-page .private-composer { scrollbar-width: thin; scrollbar-color: #c5dbb3 transparent; }
.reader-page .reader-body::-webkit-scrollbar,
.reader-page .margin-context::-webkit-scrollbar { width: 6px; }
.reader-page .reader-body::-webkit-scrollbar-thumb,
.reader-page .margin-context::-webkit-scrollbar-thumb { background: #c5dbb3; border-radius: 3px; }
.reader-page .reader-body::-webkit-scrollbar-thumb:hover,
.reader-page .margin-context::-webkit-scrollbar-thumb:hover { background: #a3c78f; }
@media (min-width:768px) and (max-width:1100px) {
  .reader-page .reader-grid { grid-template-columns: minmax(140px,1fr) minmax(0,720px) minmax(140px,1fr); }
  .reader-page .reader-wing { padding-left: 8px; padding-right: 8px; }
  .reader-page .support-copy { font-size: 13px; }
  .reader-page .margin-card-title { font-size: 13px; }
  .reader-page .ai-margin-card > [data-ai-body] { margin-left: 12px; }
  .reader-page .reader-note-body { margin-right: 12px; }
}
@media (min-width:768px) and (max-width:1023px) {
  body.reader-page { --reader-header-height: 72px; }
  .reader-page .topbar { padding: 0 24px; gap: 14px; }
  .reader-page .brand { min-width: 86px; }
  .reader-logo { width: 86px; height: 40px; }
  .reader-page .head-center { display: flex; }
  .reader-page .booktab { min-width: 64px; max-width: 140px; font-size: 13px; padding: 5px 10px; }
  .reader-page .id-pill { font-size: 10px; padding: 7px 9px; }
}
@media (max-width:767px) {
  body.reader-page { --reader-header-height: 60px; }
  .reader-page .topbar { padding: 0 12px; gap: 8px; }
  .reader-page .brand { min-width: 64px; }
  .reader-logo { width: 64px; height: 32px; }
  .reader-page .head-center { display: none; }
  .reader-page .id-pill { font-size: 10px; padding: 7px 9px; max-width: calc(100vw - 105px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .reader-page .preview-nav { padding: 8px 12px; gap: 6px; }
  .reader-page .preview-nav > div { display: none; }
  .reader-page .preview-nav select { min-height: 32px; padding: 5px 8px; }
  .reader-page .preview-nav .btn { min-height: 32px; padding: 6px 9px; }
  .reader-page .reader-metadata { padding: 8px 12px; gap: 6px; }
  .reader-page .reader-work-title { font-size: 12px; }
  .reader-page .reader-metadata > div { gap: 5px; }
  .reader-page .language-tabs { margin-left: 0; }
  .reader-page .language-tabs button { font-size: 10px; padding: 5px 8px; }
  .reader-page #support-jump { max-width: 140px; font-size: 10px; }
  .reader-page .reader-grid { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0,1fr) auto; }
  .reader-page .reader-space { display: none; }
  .reader-page .reader-body { grid-column: 1; grid-row: 1; padding: 24px 20px 40px; }
  .reader-page .reader-paragraphs { font-size: 24px; }
  .reader-page .reader-wing { grid-column: 1; grid-row: 2; height: clamp(150px,26svh,220px); max-height: none; padding: 8px 10px; gap: 5px; border-top: 1px solid rgba(139,182,103,.35); }
  .reader-page .condition-C2 .reader-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .reader-page .condition-C2 .reader-body { grid-column: 1 / 3; }
  .reader-page .condition-C2 .left-rail { grid-column: 1; }
  .reader-page .condition-C2 .right-rail { grid-column: 2; }
  .reader-page .condition-B .reader-grid { grid-template-rows: minmax(0,1fr); }
  .reader-page .rail-heading { font-size: 10px; }
  .reader-page .rail-caption { display: none; }
  .reader-page .margin-context { top: 0 !important; max-height: 100% !important; padding: 0 2px; }
  .reader-page .margin-card-title { min-height: 34px; font-size: 12px; padding: 6px 9px; }
  .reader-page .ai-margin-card > [data-ai-body] { margin-left: 10px; }
  .reader-page .reader-note-body { margin-right: 10px; padding: 8px; }
  .reader-page .support-copy { padding: 0 9px; font-size: 12px; }
  .reader-page .reader-note-body p { font-size: 12px; }
  .reader-page .reader-toolbar { padding: 8px 12px; min-height: 56px; gap: 8px; }
  .reader-page .reader-toolbar .hint { max-width: 120px; font-size: 10px; }
  .reader-page .reader-toolbar .btn { min-width: 150px; font-size: 12px; }
}
/* 设置与选词工具 */
.reader-page { --reader-bg:#FFF0CC; --reader-text:#000; --reader-font-size:24px; --reader-line-height:1.5; --reader-letter-spacing:0px; }
.reader-page .reader-grid,.reader-page .reader-metadata,.reader-page .reader-toolbar { background:var(--reader-bg); }
.reader-page .reader-paragraphs { font-size:var(--reader-font-size); line-height:var(--reader-line-height); letter-spacing:var(--reader-letter-spacing); color:var(--reader-text); }
.reader-page .reader-paragraphs > p,.reader-page .reader-paragraphs .bilingual-pair p { margin:0 0 1em; }
.reader-page .bilingual-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
.reader-page .bilingual-pair > p { min-width:0; }
.reader-page .bilingual-pair > p:last-child { border-left:1px solid rgba(139,182,103,.3); padding-left:16px; }
.reader-page .reader-paragraphs [data-fragment-language="original"] { text-align:start; }
.reader-page .head-actions { gap:10px; }
.reader-page .topbar { z-index:50; }
.reader-settings-wrap { position:relative; flex:none; }
.reader-page .reader-settings-trigger { color:#3d6a4b; }
.reader-page .reader-settings-trigger svg { width:27px; height:27px; }
.reader-settings-panel { position:absolute; right:0; top:calc(100% + 13px); z-index:40; width:268px; padding:12px 18px; background:#fff; border:1px solid #8bb66780; border-radius:6px; color:#4a6633; box-shadow:0 8px 30px #34532518; max-height:calc(100svh - 100px); overflow-y:auto; }
.reader-settings-title { display:flex; align-items:center; justify-content:center; position:relative; font-size:18px; font-weight:500; padding:1px 0 9px; }
.reader-settings-title button,.reader-dialog-heading > button,.reader-ai-heading > button { border:0; background:transparent; color:#668950; cursor:pointer; font-size:24px; line-height:1; }
.reader-settings-title button { position:absolute; right:-7px; top:0; }
.reader-setting-row { display:flex; align-items:center; gap:10px; padding:13px 0; border-bottom:1px solid #e2ebd8; font-size:16px; }
.reader-setting-row > label,.reader-setting-row > span { width:42px; flex:none; font-weight:500; line-height:1.1; }
.reader-settings-panel[lang=en] .reader-setting-row > label,.reader-settings-panel[lang=en] .reader-setting-row > span { width:65px; font-size:13px; }
.reader-setting-row select { min-width:0; width:100%; border:1px solid #adc99a; border-radius:6px; background:#fff; color:#4a6633; padding:5px 6px; font-size:14px; }
.reader-setting-row select:disabled { color:#6f825f; opacity:.65; }
.reader-range { display:flex; align-items:center; gap:5px; flex:1; min-width:0; flex-wrap:wrap; font-size:13px; color:#819775; position:relative; padding-bottom:10px; }
.reader-range input { appearance:none; -webkit-appearance:none; min-width:0; width:60px; flex:1; margin:0; height:4px; background:#e9f1e2; border-radius:3px; cursor:pointer; }
.reader-range input::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:15px; height:15px; border-radius:50%; background:#7ca66a; box-shadow:0 1px 3px #49623730; }
.reader-range input::-moz-range-thumb { width:15px; height:15px; border:0; border-radius:50%; background:#7ca66a; }
.reader-range output { position:absolute; left:0; right:0; bottom:-6px; text-align:center; font-size:10px; color:#5c7b49; }
.reader-mode-buttons { display:flex; flex:1; border:1px solid #adc99a; border-radius:10px; overflow:hidden; }
.reader-mode-buttons button { flex:1; border:0; padding:6px 9px; color:#4a6633; background:#fff; font-size:14px; }
.reader-mode-buttons button[aria-pressed=true] { background:#7ca66a; color:white; }
.reader-theme-buttons { display:flex; gap:8px; }
.reader-theme-swatch { display:block; width:29px; height:32px; border:1px solid #bcd3a8; border-radius:7px; background:var(--swatch); padding:0; }
.reader-theme-swatch[aria-pressed=true] { outline:3px solid #9abb80; outline-offset:1px; }
.reader-settings-hint { color:#80916f; font-size:10px; line-height:1.6; margin:10px 0 6px; }
.reader-settings-reset { border:0; background:transparent; color:#5d7f48; font-size:11px; padding:5px 0; }
.reader-selection-tools { position:fixed; z-index:60; display:flex; align-items:stretch; gap:2px; max-width:calc(100vw - 16px); padding:9px 12px; background:white; border:1px solid #d4dfc9; border-radius:12px; box-shadow:0 3px 10px #2e493321; color:#a4c58c; }
.reader-selection-tools button { position:relative; white-space:nowrap; color:#9fc187; font-size:16px; font-weight:600; border:0; background:transparent; min-height:48px; padding:5px 13px 12px; border-radius:6px; }
.reader-selection-tools button:hover,.reader-selection-tools button:focus-visible { background:#f0f6e9; color:#4a6633; }
.selection-action-highlight::after,.selection-action-underline::after { content:''; position:absolute; height:4px; bottom:6px; left:14px; right:14px; border-radius:2px; background:#f4dc59; border:1px solid #a48d2e; }
.selection-action-underline::after { background:#499b59; border-color:#499b59; }
.reader-page .reader-user-highlight { background:#f6dd54; color:inherit; border-radius:2px; }
.reader-page .reader-user-underline { text-decoration-line:underline; text-decoration-color:#499b59; text-decoration-thickness:2px; text-underline-offset:4px; }
.reader-page .reader-user-note { text-decoration-line:underline; text-decoration-style:wavy; text-decoration-color:#8bb667; text-underline-offset:5px; }
.reader-page .reader-user-note.reader-user-underline { border-bottom:2px solid #499b59; }
.reader-tool-dialog { width:520px; max-height:calc(100svh - 40px); overflow-y:auto; background:#fff; color:#4a6633; border:1px solid #8bb66780; border-radius:12px; padding:24px; }
.reader-tool-dialog h2 { font-size:19px; font-weight:500; margin:0 0 18px; }
.reader-tool-dialog blockquote { margin:0 0 14px; padding:8px 12px; border-left:3px solid #c5d399; background:#f5f8ee; color:#6c7b5d; font-size:13px; line-height:1.7; max-height:120px; overflow:auto; white-space:pre-wrap; }
.reader-tool-dialog textarea { width:100%; padding:12px; border:1px solid #b9cca9; border-radius:8px; font-size:15px; color:#33462b; resize:vertical; }
.reader-dialog-actions { display:flex; justify-content:flex-end; gap:10px; }
.reader-dialog-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; }
.reader-annotation-item { padding:14px 0; border-bottom:1px solid #e4eadc; }
.reader-annotation-type { display:block; font-size:12px; color:#7ca66a; margin-bottom:8px; }
.reader-annotation-item p { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.7; }
.reader-annotation-actions { display:flex; gap:20px; justify-content:flex-end; }
.reader-annotation-actions button { border:0; background:transparent; color:#65844f; font-size:12px; }
.reader-selection-ai { position:fixed; z-index:35; right:20px; top:175px; width:min(340px,calc(100vw - 32px)); max-height:calc(100svh - 255px); display:flex; flex-direction:column; border:1px solid #98b780; border-radius:10px; background:#c5d399; color:#4a6633; box-shadow:0 10px 28px #344d3026; }
.reader-ai-heading { display:flex; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px solid #a8bf8c; }
.reader-ai-heading strong { flex:1; font-size:14px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reader-ai-content { min-height:0; overflow:auto; padding:14px; font-size:13px; line-height:1.7; scrollbar-width:thin; }
.reader-ai-content article { border-top:1px solid #a9be8e; padding:10px 0; }
.reader-ai-content h3 { margin:4px 0 10px; font-size:14px; }
.reader-ai-content blockquote { font-size:12px; border-left:2px solid #8bb667; margin:8px 0; padding-left:10px; }
.reader-ai-source-tag { display:inline-block; background:#eaf0db; border-radius:20px; padding:3px 9px; font-size:10px; }
.reader-ai-hint,.reader-ai-citation { font-size:11px; color:#677e50; }
.reader-ai-content button { background:#e9efd8; color:#4a6633; border:1px solid #a6bf8d; border-radius:6px; font-size:11px; padding:4px 10px; }
.reader-page[data-reader-theme=dark] .reader-work-title,.reader-page[data-reader-theme=dark] .reader-metadata .fine,.reader-page[data-reader-theme=dark] .reader-toolbar .hint { color:#b7cba5; }
.reader-page[data-reader-theme=dark] .language-tabs button,.reader-page[data-reader-theme=dark] #support-jump { color:#c5d399; }
.reader-page[data-reader-theme=dark] .language-tabs button[aria-pressed=true] { color:#344a25; }
.reader-page[data-reader-theme=dark] .reading-end { color:#a5b493!important; }
.reader-page[data-reader-theme=dark] .reader-user-highlight { color:#171d12; }
@media(max-width:767px){
 .reader-page .head-actions { gap:4px; }
 .reader-page .id-pill { max-width:calc(100vw - 200px); }
 .reader-page .reader-settings-trigger { width:32px; height:34px; }
 .reader-page .reader-settings-trigger svg { width:24px; height:24px; }
 .reader-settings-panel { position:fixed; top:65px; right:10px; max-height:calc(100svh - 80px); }
 .reader-page .bilingual-pair { gap:12px; }
 .reader-page .bilingual-pair > p:last-child { padding-left:9px; }

 .reader-selection-ai { right:12px; top:auto; bottom:70px; max-height:55svh; }
}
@media(max-width:480px){
 .reader-selection-tools { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:calc(100vw - 16px); padding:5px 8px; }
 .reader-selection-tools button { font-size:14px; padding:4px 9px 10px; min-height:43px; }
 .reader-selection-tools:has(button:first-child.selection-action-search) { grid-template-columns:repeat(2,minmax(0,1fr)); width:260px; }
}


.reader-ai-history-trigger { border:1px solid #aec598; border-radius:20px; background:transparent; color:#63804c; font-size:10px; padding:2px 8px; cursor:pointer; margin-left:auto; }
.reader-ai-answer { white-space:normal; overflow-wrap:anywhere; font-size:14px; line-height:1.8; }
.reader-ai-answer p { margin:0 0 12px; }
.ai-task-report { border-top:1px solid var(--line); margin-top:24px; padding-top:12px; }
.ai-report-item { padding:16px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.ai-report-item h4 { margin:0 0 8px; }
.ai-report-item blockquote { margin:12px 0; padding:8px 14px; border-left:3px solid #8bb667; background:#f1f5e9; white-space:pre-wrap; }
.ai-report-answer { font-size:15px; line-height:1.9; }
.reader-ai-progress { font-size:12px; color:#667e50; }
.reader-ai-error { font-size:12px; color:#8b3434; white-space:pre-wrap; }
.reader-ai-actions { display:flex; gap:8px; margin-top:12px; }
#reader-ai-history { width:100%; min-width:0; border:1px solid #a4bc87; border-radius:7px; background:#edf2dd; color:#4a6633; padding:6px; font-size:11px; }
.reader-page[data-reader-theme=dark] .rail-heading,.reader-page[data-reader-theme=dark] .rail-caption,.reader-page[data-reader-theme=dark] .rail-empty { color:#b0c89c; }
.reader-page[data-reader-theme=dark] .private-composer { background:#283220; }
.reader-page[data-reader-theme=dark] .private-composer summary { color:#b0c89c; }


.study-introduction { font-size:15px; line-height:1.95; color:#3a4c3e; }
.study-introduction > p { margin:0 0 14px; }
.study-introduction > p > strong { display:block; color:#315c43; font-size:14px; margin-bottom:3px; }
.study-reward { background:#edf3e5; border:1px solid #d1dfc2; border-radius:12px; padding:15px 18px; margin:22px 0; font-size:14px; }
.study-reward p { margin:0; }
.study-reward p + p { margin-top:7px; color:#64765a; font-size:13px; }
.profile-instructions { font-size:12px; color:#73836b; line-height:1.8; margin:22px 0 0; }
.profile-question-list { display:grid; grid-template-columns:minmax(0,1fr); gap:22px; }
.profile-question-list .field { margin-bottom:0; }
.profile-question-list .field > label { font-size:15px; line-height:1.7; margin-bottom:10px; }
.profile-question-list .field > select { max-width:580px; }
.profile-multi { border:0; padding:0; margin:0; min-width:0; }
.profile-multi legend { padding:0; font-size:15px; font-weight:700; line-height:1.7; margin-bottom:10px; }
.profile-type-tag { font-size:10px; color:#8a9a7d; font-weight:400; margin:0 7px; white-space:nowrap; }
.profile-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.profile-options .profile-option { display:flex; align-items:flex-start; gap:9px; border:1px solid #dbe1cf; border-radius:9px; padding:11px 12px; background:#fffdf7; color:#445340; font-size:13px; font-weight:400; line-height:1.6; cursor:pointer; margin:0; }
.profile-option input { width:16px; height:16px; margin:3px 0 0; padding:0; border-radius:3px; flex:none; accent-color:#47704e; }
.profile-option:has(input:checked) { background:#eaf2e1; border-color:#8fac7b; }
.profile-option:focus-within { outline:2px solid #7f9e6a; outline-offset:2px; }
.profile-other { margin-top:12px; max-width:580px; }
.profile-other label { font-size:12px; font-weight:500; color:#667c5c; margin-bottom:6px; }
.profile-other input { width:100%; min-height:43px; padding:10px 12px; border:1px solid #c7d4ba; border-radius:8px; background:white; color:#293b31; }
@media(max-width:760px){.profile-options{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-question-list{gap:23px}.profile-page>.card{padding:22px 18px}.study-introduction{font-size:14px}.study-reward{padding:13px 14px}}
@media(max-width:440px){.profile-options{grid-template-columns:minmax(0,1fr)}}


/* jdweb components/common/JdDialog.vue: white, 30px radius, green border and centered title. */
.jd-study-dialog { width:535px; max-width:calc(100vw - 40px); padding:30px 50px; border:1px solid #8bb66780; border-radius:30px; background:#fff; color:#4a6633; box-shadow:0 12px 38px #4a66331f; line-height:1.5; max-height:calc(100svh - 40px); overflow:auto; }
.jd-study-dialog::backdrop { background:#0006; }
.jd-study-dialog h2 { margin:0; padding:0 20px 15px; color:#4a6633; font-size:25px; line-height:1.3; font-weight:700; text-align:center; }
.jd-dialog-close { position:absolute; top:25px; right:25px; width:28px; height:28px; padding:0; border:0; background:transparent; color:#4a663360; font-size:25px; }
.jd-dialog-subtitle { color:#4a6633c7; font-size:14px; text-align:center; margin:0 0 20px; }
.jd-reading-mode { text-align:center; background:#eff5e9; border-radius:12px; padding:14px 8px; font-size:17px; font-weight:600; margin:16px 0; }
.jd-feature-list { margin:0; padding:0; }
.jd-feature-list div { display:flex; align-items:center; justify-content:space-between; padding:9px 4px; border-bottom:1px solid #e9efdf; font-size:14px; }
.jd-feature-list dt,.jd-feature-list dd { margin:0; }.jd-feature-list .enabled { color:#608f44; font-weight:600; }.jd-feature-list .disabled { color:#929c89; }
.jd-reading-instruction { margin:20px 0 0; color:#4a6633c7; font-size:14px; line-height:1.9; }
.jd-dialog-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
.jd-dialog-actions button { border-radius:8px; min-height:43px; padding:10px 18px; font-size:14px; }
.jd-primary { background:#6ba15b; border:1px solid #6ba15b; color:#fff; }.jd-primary:hover { background:#5ca04a; }
.jd-secondary { background:#fff; border:1px solid #c5d9b6; color:#4a6633; }
.jd-password-label { display:block; margin:0 0 8px; font-size:14px; }
#admin-password { width:100%; border:1px solid #c5d9b6; border-radius:8px; min-height:44px; padding:10px 12px; color:#4a6633; }
.material-foot { align-items:flex-start; gap:12px; }.material-foot>.small { line-height:1.7; }
@media(max-width:767px){.jd-study-dialog{padding:24px;border-radius:20px}.jd-study-dialog h2{font-size:20px;padding-bottom:15px}.jd-dialog-close{top:20px;right:20px}.jd-dialog-actions{gap:8px}.jd-dialog-actions button{padding:10px 12px}.jd-reading-mode{font-size:15px}}


.seat-admin-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:22px 0; }
.seat-admin-toolbar label { font-size:13px; }.seat-admin-toolbar select { color:#4a6633; border:1px solid #bccdac; background:#fff; border-radius:8px; padding:9px 12px; font-size:13px; }
.seat-admin-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.seat-admin-card { border:1px solid #d4dfc8; border-radius:16px; background:#fffdf7; padding:18px; min-width:0; }
.seat-admin-card.occupied { border-color:#d8c58f; background:#fffaf0; }.seat-admin-card h2 { margin:0; font-size:19px; color:#355c43; }.seat-admin-card .chip { font-size:10px; padding:3px 8px; }
.seat-admin-status { margin:13px 0 5px; font-size:13px; font-weight:600; }.seat-admin-card .small { min-height:42px; overflow-wrap:anywhere; }.seat-admin-actions { display:flex; flex-wrap:wrap; gap:7px; min-height:32px; }
.seat-release-warning { border:1px solid #e8c4ba; border-radius:12px; padding:14px; background:#fff5f1; color:#874b3d; font-size:14px; line-height:1.85; }.seat-release-warning strong { display:block; }
.seat-release-ack { font-size:13px; line-height:1.8; align-items:flex-start; }.seat-release-ack input { accent-color:#9b5145; margin-top:5px; }
.jd-danger { border:1px solid #9b5145; background:#9b5145; color:#fff; }
@media(max-width:1100px){.seat-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.seat-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.seat-admin-toolbar{gap:9px}}@media(max-width:480px){.seat-admin-grid{grid-template-columns:minmax(0,1fr)}.seat-admin-card .small{min-height:0}.seat-admin-actions{min-height:0}}


/* Align SUS responses to the same central column as UEQ. */
.sus-rating-row{clear:both;display:grid;grid-template-columns:20px minmax(78px,1fr) minmax(245px,1.8fr) minmax(78px,1fr);align-items:center;gap:8px}
.sus-end{font-size:12px;line-height:1.5}.sus-end:last-child{text-align:right}
.sus-options{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.sus-options label{position:relative;display:grid;place-items:center;min-height:36px;border:1px solid #d6decc;border-radius:8px;background:white;font-size:12px;cursor:pointer}
.sus-options input{position:absolute;opacity:0}.sus-options label:has(input:checked){background:#2c6047;color:white;border-color:#2c6047}.sus-options label:focus-within{outline:3px solid #56a47e;outline-offset:2px}
.ux-raw-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ux-raw-totals p{padding:16px;background:#eef2e6;border-radius:12px}.ux-raw-totals strong{display:block;font-size:14px}.ux-raw-totals span{display:block;font-size:27px;margin-top:8px;font-variant-numeric:tabular-nums}
.statistics-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0}.statistics-toolbar select{max-width:100%;min-height:40px;padding:9px 12px;border:1px solid #c7d4b8;border-radius:9px;background:#fffdf5;color:var(--ink);font:inherit;font-size:13px}
.statistics-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.statistics-categories section{min-width:0}.statistics-categories h3{font-size:15px}.statistics-table th:first-child{min-width:220px;width:56%}.statistics-table th:not(:first-child),.statistics-table td:not(:first-child){text-align:center;font-variant-numeric:tabular-nums}.statistics-table td{overflow-wrap:anywhere}.statistics-table th{white-space:nowrap}
.interview-options{border:0;margin:20px 0;padding:0}.interview-options legend{font-weight:600;margin-bottom:14px}.interview-options label{display:inline-flex;align-items:center;gap:8px;margin-right:26px;cursor:pointer}.interview-options input{accent-color:#355e46}.interview-card input[type=text]{display:block;width:100%;max-width:500px;margin-top:10px;padding:13px;border:1px solid #c7d4b8;border-radius:9px;background:white;color:var(--ink);font:inherit}.interview-card [hidden]{display:none}.completion-reward{font-size:17px;line-height:1.9}.completion-contact{margin:26px 0;font-size:14px}.completion-contact a{color:#355e46;text-underline-offset:3px}
@media(max-width:900px){.statistics-categories{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sus-rating-row{grid-template-columns:15px 1fr 1fr;gap:9px}.sus-options{grid-column:2/4;grid-row:2}.sus-end:last-child{grid-column:3;grid-row:1}.sus-options label{min-height:40px}.statistics-categories,.ux-raw-totals{grid-template-columns:minmax(0,1fr)}.statistics-toolbar{align-items:stretch}.statistics-toolbar label{width:100%}.statistics-toolbar select{width:100%}.statistics-table th:first-child{min-width:170px}.ux-raw-totals{gap:0}}


/* Keep the 7- and 9-point reading experience options centered at the same midpoint. */
.reading-rating-row{clear:both;display:grid;grid-template-columns:minmax(78px,1fr) minmax(0,2.4fr) minmax(78px,1fr);gap:12px;align-items:center}
.reading-scale-options{display:grid;grid-template-columns:repeat(var(--option-count),minmax(0,1fr));gap:3px}.reading-scale-options label{position:relative;display:grid;place-items:center;min-height:38px;background:white;border:1px solid #d6decc;border-radius:8px;font-size:12px;cursor:pointer}.reading-scale-options input{position:absolute;opacity:0}.reading-scale-options label:has(input:checked){background:#2c6047;border-color:#2c6047;color:white}.reading-scale-options label:focus-within{outline:3px solid #56a47e;outline-offset:2px}.reading-scale-end{font-size:12px;line-height:1.5}.reading-scale-end:last-child{text-align:right}.report-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.comprehension-total{padding:16px;background:#eef2e6;border-radius:12px}.comprehension-total strong{display:block;font-size:20px}.comprehension-total span{display:block;margin-top:8px;font-size:12px;color:var(--muted)}.comprehension-answer{padding:6px 0;border-bottom:1px solid #e6e9dc}.answer-incorrect{color:#99552f}.answer-key-material{border-top:1px solid #e6e9dc;margin-top:18px;padding-top:8px}
@media(max-width:760px){.reading-rating-row{grid-template-columns:1fr 1fr;gap:9px}.reading-scale-options{grid-row:2;grid-column:1/3;gap:3px}.reading-scale-end:last-child{grid-row:1;grid-column:2}.reading-scale-options label{min-height:40px}.report-overview{grid-template-columns:1fr}}


.admin-parent-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;position:sticky;top:0;z-index:7;padding:12px 0;margin-bottom:18px;background:#fbf0ce;border-bottom:1px solid #dde2cd}.admin-parent-bar span{font-size:12px;color:var(--muted)}
.statistics-section-nav{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}.statistics-section-nav a{padding:9px 13px;background:#edf2e5;border:1px solid #d5dec8;border-radius:20px;color:#355e46;font-size:12px;text-decoration:none}.statistics-section-nav a:hover{background:#dbe8ce}.statistics-dashboard [id^=statistics-]{scroll-margin-top:85px}.stat-chip-row{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.stat-chip-row .chip{font-size:12px;padding:7px 11px}.statistics-dashboard .report-table th{white-space:nowrap}.statistics-dashboard .report-table td{vertical-align:top}.statistics-words{max-height:420px;overflow:auto}.statistics-words thead{position:sticky;top:0;background:#eef2e6}.statistics-quote{max-width:420px;min-width:140px;white-space:pre-wrap;overflow-wrap:anywhere}.statistics-contact{max-width:260px;overflow-wrap:anywhere;white-space:pre-wrap}.statistics-ai-record{border-top:1px solid #e1e6d7;padding:14px 0}.statistics-ai-record h4{font-size:14px;margin:9px 0}.statistics-ai-record blockquote{margin:12px 0;padding:10px 14px;background:#eef2e6;border-left:3px solid #8da77a;max-width:none}.statistics-ai-pagination{display:flex;align-items:center;gap:12px;font-size:12px;flex-wrap:wrap;margin:15px 0}.statistics-toolbar input[type=search]{max-width:100%;min-height:40px;min-width:160px;border:1px solid #c7d4b8;border-radius:9px;padding:9px 12px;background:white;color:var(--ink);font:inherit;font-size:13px}.statistics-preferences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.statistics-preferences h3{font-size:14px;line-height:1.7}.statistics-preferences ul{font-size:13px;line-height:1.9;padding-left:18px}
@media(max-width:760px){.admin-parent-bar{padding:10px 0;gap:8px}.admin-parent-bar span{font-size:11px}.statistics-preferences{grid-template-columns:minmax(0,1fr)}.statistics-toolbar input[type=search]{width:100%;min-width:0}.statistics-toolbar .sr-only{width:1px}.statistics-dashboard>.card{padding:20px 16px}.statistics-section-nav{gap:6px}.statistics-section-nav a{padding:8px 10px}.statistics-words{max-height:360px}}

.completion-page>h1{text-align:center}
/* 独立后端接入：沿用原型配色、卡片与量表，补充同源应用的响应式布局。 */
.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 5vw}.topbar nav{display:flex;gap:20px}.topbar a{color:inherit;text-decoration:none}.brand{font-weight:700;font-size:22px}.brand small{font-size:12px;font-weight:400}
.connection-banner{padding:9px 5vw;background:#e8eedf;color:#355e46;font-size:13px;border-bottom:1px solid #cdd8c1}#notice:not(:empty),#conflict{margin:12px auto;padding:14px;max-width:1000px;background:#fff0dc;border:1px solid #b55f34;border-radius:8px}#notice:empty{display:none}
.screen{min-height:70vh}.intro,.library-wrap{max-width:1060px;margin:30px auto;padding:0 24px}.field{display:block;min-width:0;border:0;border-bottom:1px solid #d6decc;padding:18px 0;margin:12px 0}.field legend{font-weight:600;line-height:1.8}.form-options{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.form-options label{display:inline-flex;align-items:center;gap:7px;background:#fffdf5;border:1px solid #d6decc;padding:11px 14px;border-radius:8px;cursor:pointer}.form-options label:has(input:checked){background:#e0ecd9;border-color:#355e46}input[type=radio],input[type=checkbox]{accent-color:#355e46}.seat-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}.seat-grid label{background:#fffdf5;padding:10px 4px;border:1px solid #cdd8c1;border-radius:8px}.seat-grid label:has(input:disabled){opacity:.45}button:disabled{opacity:.5;cursor:not-allowed}input:not([type=checkbox]):not([type=radio]),select,textarea{max-width:100%;padding:11px;border:1px solid #bcccad;border-radius:8px;background:#fffdf5;font:inherit;color:inherit}textarea{display:block;width:100%;min-height:100px;margin:10px 0}label:has(>input:not([type=checkbox]):not([type=radio])),label:has(>select){display:flex;flex-direction:column;gap:8px;margin:14px 0}.card{margin:18px 0}.card h2{font-size:20px}.study-progress{padding:15px 24px;border-bottom:1px solid #d6decc;display:flex;justify-content:space-between;gap:15px;align-items:center}code,pre{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}dialog{max-width:600px;width:calc(100% - 40px);padding:28px;border:1px solid #b6c5a6;border-radius:14px;background:#fff9e9;color:#293d29}dialog::backdrop{background:#142b1d80}.research-reader{padding:22px 4vw}.reader-toolbar{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.reader-toolbar h1{font-size:28px;flex:1}.reading-columns{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;margin:20px 0}.reading-columns:has(aside:empty){grid-template-columns:1fr}.reading-columns aside:empty{display:none}#passage{max-width:850px;margin:auto;font-size:18px;line-height:2.1;width:100%}.passage-paragraph{margin:22px 0}.passage-paragraph p{margin:9px 0}[hidden]{display:none!important}#ai-output{white-space:pre-wrap;line-height:1.9;overflow-wrap:anywhere}.reward-item{border-top:1px solid #d6decc;padding:15px 0}.table-scroll{overflow-x:auto}.report-table{width:100%}.report-table th,.report-table td{padding:12px;text-align:left}pre{max-height:600px;overflow:auto}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #71a685;outline-offset:3px}
@media(max-width:760px){.reading-columns{grid-template-columns:1fr;gap:12px}.seat-grid{grid-template-columns:repeat(4,1fr)}.topbar{padding:14px 20px}.topbar nav{gap:12px;font-size:12px}.brand small{display:none}.study-progress{font-size:12px;padding:10px 18px}.intro,.library-wrap{padding:0 18px}.research-reader{padding:18px}.form-options{gap:7px}.form-options label{padding:10px}.reader-toolbar h1{min-width:100%}}
