:root{--green:#cfe8ad;--ink:#17231b;--blue:#168bea;--deep-blue:#087cc5;--answer-font:"PracticeTimes","Times New Roman","PracticeKai","DFKai-SB","標楷體","BiauKai",serif;--ui-font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","Microsoft JhengHei",sans-serif;--font-size:26px;--tracking:4px;--line-height:42px;--text-width:750px}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:var(--ui-font);font-size:15px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #4a9c76;outline-offset:3px}button{transition:filter .12s,box-shadow .12s}button:hover:not(:disabled){filter:brightness(.97)}[hidden]{display:none!important}.app-strip{padding:13px 30px;border-bottom:1px solid #e1e7de;display:flex;gap:20px;justify-content:space-between;align-items:center;background:#fafcf8}.wordmark{display:flex;align-items:center;gap:10px;white-space:nowrap}.mark{width:29px;height:29px;display:grid;place-items:center;background:#28715b;color:#fff;border-radius:6px;font-family:var(--answer-font);font-size:20px}.wordmark strong{font-size:17px;letter-spacing:1px;color:#2b5b47}.nonofficial{font-size:11px;color:#8a958a;margin-left:6px;letter-spacing:.6px}.strip-actions{display:flex;gap:16px;align-items:center}#save-status{font-size:11px;color:#7c8b7a}#save-status.unsaved{color:#a0692a}.quiet{border:0;background:transparent;padding:4px 0;font-size:12px;color:#60765e}.strip-actions .quiet{border-left:1px solid #d9e1d3;padding-left:16px}main{max-width:1420px;margin:auto;padding:22px 30px 0}.exam-card{border:1px solid #d1ddce;border-radius:7px 7px 2px 2px;background:linear-gradient(110deg,#f2f3ef,#f8f9f7);box-shadow:0 3px 10px #18391c07}.exam-title{background:linear-gradient(#f6fff1 0,#c8e8b2 25%,#d9efd0 70%,#f9fff7 100%);border-bottom:1px solid #c4d9bc;border-top:1px solid #e1efd7;border-radius:6px 6px 0 0;padding:9px 17px;display:flex;justify-content:space-between;align-items:center;gap:15px;color:#315335;font-weight:650;font-size:18px;letter-spacing:.3px}.small-stamp{font-size:11px;color:#547351;font-weight:400;white-space:nowrap}.exam-meta{display:flex;gap:55px;padding:16px 19px 9px;font-size:14px;color:#5e685d}.exam-meta span:last-child{margin-left:auto;color:#83907e;font-size:12px}.subject{font-size:16px;padding:0 19px 16px;color:#4c584b}.subject strong{font-weight:450}.inline-link{border:0;background:transparent;color:#6c8464;font-size:12px;padding:4px 8px;text-decoration:underline;text-underline-offset:3px}.subject .inline-link{margin-left:7px}.exam-stats{margin:0 18px;padding:14px 0;border-top:1px dotted #aab7a4;display:flex;align-items:center;gap:0;font-size:15px}.exam-stats>span{padding:0 25px;border-right:1px solid #c9d0c4}.exam-stats>span:first-child{padding-left:0}.exam-stats b{font-weight:700;color:#ec2a65;padding-left:6px;font-family:"Times New Roman",serif;font-size:21px}.clock-group{margin-left:auto;display:flex;align-items:center;gap:13px}.clock-group>span{white-space:nowrap}#clock{font-size:24px;color:#ef2f67;font-family:"Times New Roman",serif;font-variant-numeric:tabular-nums;letter-spacing:1px}.timer-button{padding:5px 10px;color:#5a7250;border:1px solid #bccdb1;background:#fbfff7;border-radius:4px;font-size:12px}.clock-group .quiet{font-size:11px}.collapse-info{display:block;background:linear-gradient(#f4f6f0,#e8ece4);border:0;border-top:1px solid white;border-radius:0 0 8px 8px;margin:auto;width:90px;height:16px;color:#b49354;line-height:10px}.collapse-info span{font-size:19px}.answer-nav{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:22px;margin:21px 0 22px}.nav-group{display:flex;align-items:center;gap:11px}.official{background:linear-gradient(#c7c8c5 0,#b1b2ae 16%,#91928e 55%,#b6b7b3 100%);border:1px solid #8f918a;color:#fff;text-shadow:0 1px #6c6f67;border-radius:10px;font-weight:600;font-size:15px;min-width:102px;height:43px;padding:0 15px;box-shadow:inset 0 2px 2px #ffffff8c,0 2px 3px #0002;display:flex;align-items:center;justify-content:center;gap:8px}.official span{font-size:17px}.guide{height:43px;border:1px solid #acd079;background:#b6df83;border-radius:12px;padding:0 16px;font-size:15px;font-weight:650;color:#294323;box-shadow:inset 0 2px #ffffff38}.question-select{display:flex;align-items:center;gap:10px;font-size:15px;white-space:nowrap}.question-select select{height:31px;min-width:113px;padding:0 6px;border:1px solid #9aa095;border-radius:3px;background:#fff;color:#20291d;font-size:14px}.download-button{height:43px;display:flex;align-items:center;justify-content:center;gap:8px;background:#28765c;color:#fff;border:1px solid #286a54;border-radius:9px;padding:0 18px;box-shadow:0 2px 4px #1a5e3320;font-weight:600;font-size:14px;white-space:nowrap}.download-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.question-section{margin:0 3px 13px}.question-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #e0e4dc;padding:0 0 8px}.question-heading>div{display:flex;align-items:center}.question-heading h1{font:28px var(--answer-font);margin:0;color:#111}.score{font-family:var(--ui-font);font-size:15px;font-weight:400;margin-left:6px}.prompt-toggle{border:0;background:transparent;font-size:23px;line-height:23px;color:#56634d;width:26px}.prompt{font:19px/1.65 var(--answer-font);color:#1f271e;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;max-height:93px;overflow:auto;padding-right:12px}.prompt.expanded{max-height:none}.empty-prompt{font-family:var(--ui-font);font-size:13px;color:#9ba492;padding-top:6px}.writing-section{margin-top:13px}.writing-header{max-width:862px;margin:0 auto 10px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;color:#768573;font-size:11px;gap:15px}.writing-label{letter-spacing:3px;color:#54784c;font-size:12px}.writing-count{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.divider{color:#d0d8c9}#page-total{color:#9aa593}#limit-warning{color:#b15a38}.paper-scroll{max-height:calc(100dvh - 390px);min-height:390px;overflow:auto;scrollbar-color:#b9ccad #f3f7ed;scrollbar-width:thin;background:linear-gradient(90deg,#fbfcf9,#fff 15%,#fff 85%,#fbfcf9);border:1px solid #e3e8de;border-radius:4px;overscroll-behavior:contain}.paper-stage{width:862px;min-height:100%;margin:auto;padding:0 38px 20px}.toolbar{width:786px;height:45px;background:#cfe8ad;display:flex;align-items:center;gap:0;padding:5px 7px;position:sticky;top:0;z-index:2;border:1px solid #bfdc9f;border-bottom:0;flex-shrink:0}.punctuations{display:flex;align-items:center}.toolbar button{border:1px solid transparent;background:transparent;color:#3f4e2c;width:29px;height:33px;display:grid;place-items:center;padding:0;font:23px var(--answer-font);border-radius:3px;flex-shrink:0}.toolbar button:hover{background:#e5f4ce;border-color:#aacb88}.toolbar>button{font-family:var(--ui-font);font-size:21px;color:#57723e;width:29px}.tool-divider{height:23px;width:1px;background:#afc993;margin:0 5px;flex-shrink:0}.number-tool{display:flex;align-items:center;position:relative;color:#526b3d;font-size:19px;width:31px;justify-content:center}.number-tool>span{pointer-events:none}.number-tool select{position:absolute;inset:0;width:31px;opacity:0;cursor:pointer}.paper-body{position:relative;width:786px}.answer-frame{position:relative;border:4px solid var(--deep-blue);background:#fff;box-shadow:0 0 0 1px #c7def1;min-height:1100px}.answer-text{display:block;box-sizing:content-box;width:var(--text-width);height:1092px;min-height:1092px;resize:none;border:0;outline:0!important;padding:0 14px;margin:0;overflow:hidden;border-radius:0;font-family:var(--answer-font);font-size:var(--font-size);font-kerning:none;font-variant-ligatures:none;letter-spacing:var(--tracking);line-height:var(--line-height);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;line-break:anywhere;tab-size:2;color:#13191a;caret-color:#1b642f;background:repeating-linear-gradient(to bottom,#fff 0,#fff 41px,#188aff 41px,#188aff 42px);text-align:left;-webkit-text-size-adjust:none}.page-side{position:absolute;top:10px;color:var(--blue);font-family:var(--answer-font);font-size:18px;line-height:1.7;writing-mode:vertical-rl;text-orientation:upright;pointer-events:none}.page-side.left{left:-31px;letter-spacing:2px}.page-side.right{right:-31px;font-size:16px;letter-spacing:2px}.page-side .vertical-number{text-combine-upright:all;letter-spacing:0}.page-break{position:absolute;left:0;right:0;border-top:2px dashed #087bc8b3;pointer-events:none}.page-break span{position:absolute;right:0;top:0;padding:1px 5px;background:#eaf6ff;color:#4a86b0;font-size:10px}.paper-footer{padding:8px 12px;display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#99a291}.site-footer{text-align:center;color:#82917b;font-size:11px;padding:23px 10px 20px;letter-spacing:.3px}.site-footer span{font-size:10px;color:#b0b8a7;margin-left:18px}dialog{border:1px solid #c8d8bf;border-radius:13px;padding:25px;width:min(530px,calc(100vw - 30px));max-height:90dvh;color:#354331;box-shadow:0 20px 100px #15331c33;background:#fff}dialog::backdrop{background:#1422168c;backdrop-filter:blur(2px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:23px}.dialog-heading h2{font-size:21px;margin:0;color:#2e5235;font-weight:600}.close{font-size:27px;line-height:1;border:0;background:transparent;color:#7c8c72;padding:0 3px}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;border-top:1px solid #ebeee5;padding-top:20px;margin-top:24px}.primary,.secondary{border-radius:6px;font-size:13px;padding:10px 16px}.primary{background:#327953;border:1px solid #327953;color:#fff}.secondary{background:#f7faf3;border:1px solid #cad7c0;color:#5b7350}dialog label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#687d5c;margin:17px 0}dialog input:not([type=checkbox]),dialog select,dialog textarea{border:1px solid #cbd7c1;border-radius:5px;background:#fcfdf9;padding:10px;color:#2e432c;width:100%;font-size:14px}dialog textarea{resize:vertical;min-height:160px;line-height:1.7}.field-note{font-size:11px;line-height:1.8;color:#9aa58d;margin:10px 0}.font-settings{border:1px solid #dde6d5;border-radius:6px;margin:23px 0 0;padding:14px}.font-settings legend{font-size:13px;padding:0 6px;color:#698060}.font-settings>p{font-size:12px;color:#809175;line-height:1.8;margin:0}.font-settings .field-note{font-size:10px;margin-top:8px}.font-settings input[type=file]{font-size:11px}.font-settings #font-status{font-size:11px;color:#6b8c5a}.font-settings>.inline-link{font-size:11px}.question-management{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.text-danger{background:transparent;border:0;padding:5px 0;font-size:12px;color:#a4725a}.export-note{background:#f1f7eb;border:1px solid #dce7d3;border-radius:8px;padding:15px;margin-top:20px}.export-note strong{font-size:13px;color:#56764c;font-weight:500}.export-note p{font-size:12px;line-height:1.8;color:#86967a;margin:8px 0 0}.checkbox-label{flex-direction:row!important;align-items:center;font-size:13px!important}.checkbox-label input{accent-color:#327953}.dialog-text{font-size:13px;color:#7c8e71;line-height:1.9;margin-bottom:23px}.block{display:block;width:100%;text-align:center}.file-label{border:1px dashed #c3d1b8;padding:15px;border-radius:7px;margin-top:22px}.file-label input{font-size:11px!important;background:white!important}.help-content h3{font-size:14px;color:#628353;font-weight:600;margin:20px 0 6px}.help-content p{font-size:13px;color:#849579;line-height:1.9;margin:0}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:30;background:#31563f;color:#fff;border:1px solid #57775d;border-radius:9px;padding:12px 20px;font-size:13px;line-height:1.7;max-width:min(600px,calc(100vw - 30px));box-shadow:0 3px 12px #0002}.toast.error{background:#835335;border-color:#99724d}#pdf-progress{font-size:12px;line-height:1.8;color:#638357;min-height:20px}body.info-collapsed .paper-scroll{max-height:calc(100dvh - 300px)}@media(min-width:1450px){.paper-scroll{max-height:calc(100dvh - 390px)}}@media(max-width:1120px){.exam-meta{gap:30px}.exam-meta span:last-child{display:none}.exam-stats>span{padding-right:15px;padding-left:15px}.clock-group{gap:9px}.answer-nav{gap:13px}.official{min-width:88px;padding:0 11px}.nav-group{gap:8px}.guide{padding:0 12px}.question-select{gap:6px}.download-button{padding:0 13px}.app-strip{padding:12px 20px}main{padding:18px 20px 0}.paper-scroll{max-height:600px}.writing-header{padding:0 28px}.strip-actions{gap:11px}}@media(max-width:800px){.exam-title{font-size:15px;padding:10px 12px}.small-stamp{font-size:10px}.exam-meta{padding:12px 12px 8px;font-size:12px;gap:20px}.subject{padding-left:12px;padding-bottom:12px;font-size:14px}.exam-stats{flex-wrap:wrap;gap:12px 0;margin:0 12px;font-size:13px}.exam-stats b{font-size:18px}.clock-group{flex-basis:100%;margin-left:0;padding-top:8px;border-top:1px solid #e0e5d8}.clock-group #timer-reset{margin-left:auto}#clock{font-size:23px}.answer-nav{margin:17px 0;gap:12px}.nav-group{flex:1;justify-content:center}.official{flex:1;min-width:0;height:39px;font-size:13px;border-radius:8px;padding:0 10px}.official span{font-size:14px}.nav-group>.guide{height:39px;font-size:13px;margin-right:auto}.download-button{height:39px;font-size:12px}.question-select{font-size:12px}.question-select select{min-width:90px}.question-heading h1{font-size:25px}.score{font-size:13px}.prompt{font-size:18px}.empty-prompt{font-size:12px}.paper-scroll{max-height:560px;min-height:360px}.writing-header{padding:0 0;font-size:10px;gap:8px}.writing-label{display:none}.writing-count{gap:7px}.paper-footer{font-size:9px;padding:7px 2px;flex-wrap:wrap}.paper-footer>span:last-child{display:none}.site-footer span{display:block;margin:9px 0 0}.nonofficial{display:none}.app-strip{padding:10px 14px}.wordmark{gap:6px}.wordmark strong{font-size:14px}.strip-actions{gap:9px}.strip-actions .quiet{font-size:10px;padding-left:9px}#save-status{font-size:9px}.mark{width:25px;height:25px;font-size:17px}main{padding:15px 12px 0}.preview-navigation{gap:9px}.preview-navigation button{font-size:11px;padding:8px 10px}dialog{padding:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.duration-control{display:flex;align-items:center;gap:7px;font-size:12px;color:#75866a;white-space:nowrap}.duration-control select{font:12px var(--ui-font);padding:5px 7px;border:1px solid #bacbac;border-radius:4px;background:#fff;color:#456039}.custom-duration{display:flex;align-items:center;gap:5px;font-size:11px;color:#778a68}.custom-duration input{width:57px;padding:5px;border:1px solid #bdcdb0;border-radius:4px;background:#fff;color:#456039}.clock-group{flex-wrap:wrap}.exam-meta span:last-child{margin-left:auto}@media(max-width:1120px){.exam-meta span:last-child{display:inline}.exam-stats{flex-wrap:wrap;gap:12px 0}.clock-group{gap:10px;margin-left:auto}.exam-stats>span{padding-left:12px;padding-right:12px}.exam-stats>span:first-child{padding-left:0}.clock-group #clock{font-size:21px}.duration-control{font-size:11px}}@media(max-width:900px){.clock-group{flex-basis:100%;margin-left:0;padding-top:10px;border-top:1px solid #e0e5d8}.duration-control{font-size:12px}.clock-group #clock{font-size:23px}}@media(max-width:480px){.clock-group{gap:10px}.clock-group>span{margin-left:auto}.clock-group .timer-button{margin-left:auto}.clock-group #timer-reset{margin-left:0}.exam-meta span:last-child{font-size:10px}.custom-duration{order:0}}

/* Paragraphs have no extra vertical gap. Only their editing semantics differ. */
.answer-text[contenteditable]{height:auto;overflow:visible;cursor:text;isolation:isolate}
.answer-text>p{position:relative;margin:0;min-height:var(--line-height);padding:0;box-sizing:border-box;line-height:var(--line-height);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;line-break:anywhere}
.answer-text>p::before{content:attr(data-marker);position:absolute;left:0;top:0;width:var(--marker-width,65px);text-align:right;white-space:pre;pointer-events:none;user-select:none}
.toolbar button[aria-pressed=true]{background:#e5f4ce;border-color:#91b96a;box-shadow:inset 0 1px 2px #557d2430}
.toolbar button:disabled{opacity:.35;cursor:default;background:transparent;border-color:transparent}
.page-break{z-index:1}

/* The header stays outside the only scrolling pane. Each row is a two-page spread. */
body.preview-open{overflow:hidden}
.preview-dialog{width:calc(100vw - 32px);max-width:1880px;height:calc(100dvh - 32px);max-height:none;padding:0;overflow:hidden;background:#fff;border-radius:9px}
.preview-dialog[open]{display:flex;flex-direction:column}
.preview-header{flex:none;background:#fff;border-bottom:1px solid #d6ded1;padding:15px 22px;box-shadow:0 2px 5px #22331908;z-index:1}
.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}
.preview-heading h2{margin:0;color:#315335;font-size:21px;font-weight:600}
.preview-heading p{margin:5px 0 0;color:#7b8b71;font-size:12px;line-height:1.5}
.preview-heading .official{height:39px;min-width:110px;flex:none}
.preview-navigation{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0;background:#fff}
.preview-navigation>span{font-size:13px;color:#617957;min-width:160px;text-align:center;font-variant-numeric:tabular-nums}
.preview-navigation .primary{margin-left:auto}
.preview-jump{display:flex;align-items:center;gap:10px;margin-top:12px;min-width:0;font-size:13px;color:#536a49}
.preview-jump>span{flex:none;white-space:nowrap}
.preview-page-links{display:flex;gap:6px;overflow-x:auto;padding:3px;scrollbar-width:thin}
.preview-page-links .official{min-width:74px;height:34px;padding:0 10px;border-radius:7px;font-size:13px;white-space:nowrap}
.preview-page-links .is-visible{background:linear-gradient(#dcebcf,#a6bd94 60%,#bed1ae);border-color:#8da87a;color:#284724;text-shadow:none}
.preview-jump label{display:flex;flex-direction:row;align-items:center;gap:7px;white-space:nowrap;margin:0 0 0 auto;font-size:12px}
.preview-jump select{width:auto;min-width:86px;padding:6px 8px;font-size:12px}
.preview-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#edf0e8}
.preview-scroll:focus-visible{outline:3px solid #4a9c76;outline-offset:-3px}
.preview-canvas{position:relative;padding:20px;display:flex;flex-direction:column;gap:24px;min-width:680px;max-width:1840px;margin:auto}
.preview-spread{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.preview-page{margin:0;min-width:0}
.preview-page figcaption{color:#617957;text-align:center;font-size:12px;line-height:20px;margin-bottom:7px}
.preview-sheet{position:relative;aspect-ratio:900 / 1273;background:#fff;box-shadow:0 3px 12px #22331919;overflow:hidden}
.preview-sheet canvas{display:block;position:absolute;inset:0;width:100%;height:100%;background:#fff}
.preview-sheet::before{content:'作答紙';position:absolute;inset:0;display:grid;place-items:center;color:#a3b09b;font-size:13px}
.preview-blank{aspect-ratio:900 / 1273;margin-top:27px;border:1px dashed #c4d0bc;display:grid;place-items:center;color:#8c9c81;font-size:13px;background:#f5f7f0}
@media(max-width:800px){.preview-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px);border-radius:6px}.preview-header{padding:12px}.preview-heading{gap:12px;margin-bottom:10px}.preview-heading h2{font-size:18px}.preview-heading p{font-size:11px}.preview-heading .official{height:35px;min-width:90px;font-size:13px}.preview-navigation{gap:7px}.preview-navigation>span{min-width:135px;font-size:11px}.preview-navigation button{font-size:11px;padding:8px 10px}.preview-jump{gap:6px;font-size:12px}.preview-page-links .official{min-width:67px;height:32px;font-size:12px}.preview-canvas{padding:12px;gap:18px}.preview-spread{gap:14px}}

.text-export-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px;margin:-9px 3px 17px}.text-export-actions .secondary{padding:8px 13px;background:#fff;color:#406d50;border-color:#b8ceb8;font-size:12px}#plain-export-text{font:16px/1.7 var(--answer-font);white-space:pre-wrap;min-height:180px}#text-export-progress{min-height:20px;color:#536f49;white-space:pre-wrap}@media(max-width:800px){.text-export-actions{margin:0 0 15px;justify-content:center}.text-export-actions .secondary{flex:1;white-space:nowrap}}

.export-warning{margin:16px 0;padding:13px 15px;border:1px solid #dfc58b;border-left:4px solid #a66b16;border-radius:8px;background:#fff8e9;color:#694b20}.export-warning strong{display:block;font-size:14px;font-weight:650}.export-warning p{margin:7px 0 0;font-size:13px;line-height:1.85;overflow-wrap:anywhere}
