:root{--bg:#f6f7f5;--ink:#1d302d;--green:#174d46;--green2:#2c6b60;--muted:#6b7d77;--border:#dce5df;--white:#fff;--pale:#edf4f0;--gold:#b99b65;--danger:#bd584d;--shadow:0 10px 34px rgba(28,56,46,.045)}*{box-sizing:border-box}html,body{margin:0}body{font-family:system-ui,-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.55}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.masthead{height:72px;padding:0 max(35px,calc((100vw - 1240px)/2));background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px}.brand-icon{width:43px;height:43px;display:grid;place-items:center;background:var(--green);color:#fff;border-radius:11px;font-size:24px;font-family:serif}.brand strong{display:block;font-weight:780;font-size:18px;line-height:22px;letter-spacing:1px}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:1px}.head-side{display:flex;align-items:center;gap:18px}.pill{display:flex;gap:8px;align-items:center;padding:7px 12px;border-radius:40px;background:#eff5f1;font-size:12px;color:#386357}.dot{height:7px;width:7px;border-radius:20px;background:#56a277}.version{color:var(--muted);font-size:12px}.frame{width:min(1240px,calc(100% - 58px));margin:auto}.heading{padding:38px 4px 30px;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.4px;color:#899c8d;margin:0 0 9px}.heading h1{font-family:serif;font-size:36px;font-weight:750;letter-spacing:2px;line-height:1.3;margin:0}.intro{color:var(--muted);font-size:15px;margin:12px 0 0}.head-emblem{border:1px solid #bed3c5;background:linear-gradient(145deg,#eaf3ed,#f8f9f7);color:#669281;border-radius:14px;font-family:serif;text-align:center;font-size:23px;line-height:1.4;padding:16px 26px}.tabs{display:flex;gap:0;margin-bottom:22px;border-bottom:1px solid #cfdcd5}.tab{border:0;background:transparent;padding:16px 20px 15px 15px;color:var(--muted);font-size:15px;font-weight:700;border-bottom:3px solid transparent}.tab.active{color:var(--green);border-color:var(--green)}.mini-chip,.status-pill{padding:3px 8px;border-radius:6px;background:#eef1ef;color:#59706b;font-size:11px;font-weight:700;white-space:nowrap}.mini-chip.live,.status-pill.ok{color:#236a4a;background:#e7f4e9}.mini-chip.future{color:#997344;background:#f9f0dd}.card{background:var(--white);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow)}.uploader{min-height:129px;display:flex;align-items:center;gap:21px;padding:23px 27px;border:1px dashed #9dbbb0;margin-bottom:20px;background:linear-gradient(120deg,#fff,#fafdfb)}.upload-mark{width:59px;height:59px;border-radius:15px;display:grid;place-items:center;background:var(--pale);font-size:29px;color:var(--green2)}.upload-main{flex:1}.uploader h2,.card-title h2{margin:0;font-size:17px}.uploader p{margin:3px 0;color:var(--muted)}.fine{font-size:12px;color:#8a9892!important}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid transparent;padding:11px 18px;font-weight:750;transition:.15s}.btn.primary{background:var(--green);color:#fff}.btn.primary:hover:not(:disabled){background:#29685e}.btn.light{background:white;color:var(--ink);border-color:var(--border)}.control-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:19px;margin-bottom:21px}.settings,.file-panel,.proof-card,.export-card{padding:22px 24px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px}.card-title>div:first-child{display:flex;align-items:center;gap:10px}.step{display:grid;place-items:center;background:#e9f1ed;border-radius:8px;color:var(--green);font-weight:800;font-size:12px;width:30px;height:30px}.status-pill{border-radius:20px;font-size:11px}.pending{background:#f7f0e2;color:#a37a3b}.field-head{display:flex;justify-content:space-between;font-weight:750}.field-head small{font-weight:400;color:var(--muted)}.lang-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 14px}.lang-grid label{border:1px solid var(--border);padding:9px 5px;border-radius:8px;text-align:center;font-size:12px;white-space:nowrap}.lang-grid input,.row-settings input,.export-options input{accent-color:var(--green);vertical-align:middle}.row-settings{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0;font-size:12px;color:#5c706a}.minor-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;margin:18px 0}.minor-grid label{font-weight:700;font-size:12px}.minor-grid small{font-weight:400;color:var(--muted)}.minor-grid input,.minor-grid select{width:100%;margin-top:6px;border-radius:8px;border:1px solid var(--border);padding:10px;background:#fff;color:var(--ink)}.actions{display:flex;gap:10px}.progress-group{margin-top:17px}.progress-line{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:6px}.track{height:7px;border-radius:20px;background:#e9efeb;overflow:hidden}.track div{height:100%;background:linear-gradient(90deg,#508c79,#77b493);width:0%;transition:width .15s}.notice{background:#f5f8f6;border:1px solid #e8f0ea;border-radius:8px;padding:11px 13px;color:#74857d;font-size:12px;margin:15px 0 0}.file-summary{display:flex;align-items:center;gap:13px;background:#f9fbfa;border:1px solid var(--border);border-radius:9px;padding:15px}.file-summary.empty{color:var(--muted)}.file-summary p{margin:0;font-size:13px;overflow-wrap:anywhere}.file-emoji{font-size:29px;color:#a1bab0}.page-list{margin-top:16px;max-height:340px;overflow:auto;display:grid;gap:6px}.page-list button{width:100%;border-radius:8px;border:1px solid transparent;background:#fafcfb;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;text-align:left}.page-list button.active{border-color:#83afa0;background:#f0f8f3}.page-status{font-size:11px;color:#729488}.page-status.failed{color:var(--danger)}.proof-card{margin-bottom:19px}.tools-inline,.col-top>div{display:flex;align-items:center;gap:8px}.mini-btn{border:1px solid var(--border);background:white;color:var(--green);border-radius:7px;font-size:12px;padding:6px 8px}.tools-inline strong{font-size:12px;color:var(--muted)}.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.proof-col{min-width:0}.col-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700;color:#46635a}.col-top span{font-size:12px}.preview-stage{height:485px;border-radius:9px;background:#eef0ee;display:flex;align-items:center;justify-content:center;overflow:auto;padding:18px;position:relative}.preview-stage img{max-height:100%;max-width:100%;object-fit:contain;transform-origin:center;box-shadow:0 1px 15px #0002}.preview-stage #preview-placeholder{color:#899a91}.col-note{color:var(--muted);font-size:12px}.proof-col textarea{width:100%;min-height:275px;border:1px solid var(--border);border-radius:9px;padding:14px 15px;outline:none;resize:vertical;line-height:1.8;background:#fdfefd;color:var(--ink)}.proof-col textarea:focus{border-color:#83b2a1}.edit-bar{display:flex;align-items:center;justify-content:space-between;margin:8px 0 18px;color:var(--muted);font-size:11px}.translation-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.translation-head label{font-weight:750;color:#46635a}.proof-col #translated-text{min-height:145px}.export-card{margin-bottom:22px}.export-layout{display:flex;align-items:center;justify-content:space-between;gap:20px}.export-layout p{color:var(--muted);margin:0 0 10px}.export-options{display:flex;flex-wrap:wrap;gap:14px}.export-options label{font-size:12px}.roadmap{padding:32px 34px;min-height:500px}.roadmap-header{text-align:center;padding:18px 0 28px}.roadmap-header h2{font-size:26px}.roadmap-header p{max-width:670px;color:var(--muted);margin:auto}.roadmap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0 30px}.roadmap-grid>div{padding:22px;border:1px solid var(--border);border-radius:12px;background:#f9fbfa}.road-num{color:#a7c0b5;font-size:28px;font-weight:800}.roadmap-grid h3{margin:7px 0}.roadmap-grid p{color:var(--muted)}.drop-indicator{position:fixed;inset:0;background:#174d46d9;z-index:20;display:grid;place-items:center;color:#fff;font-size:28px;font-weight:800;pointer-events:none}.drop-indicator[hidden]{display:none}.toast{position:fixed;right:22px;bottom:22px;max-width:360px;padding:13px 17px;background:#173d36;color:white;border-radius:10px;box-shadow:0 6px 30px #0003;z-index:40}.toast[hidden]{display:none}footer{padding:12px 0 32px;text-align:center;color:#8c9d96;font-size:12px}@media(max-width:950px){.control-grid,.proof-grid{grid-template-columns:1fr}.lang-grid{grid-template-columns:repeat(2,1fr)}.head-emblem{display:none}.preview-stage{height:400px}}@media(max-width:620px){.masthead{padding:0 15px}.head-side{display:none}.frame{width:calc(100% - 24px)}.heading{padding-top:26px}.heading h1{font-size:27px}.intro{font-size:13px}.tab{font-size:12px;padding:12px 5px}.uploader{display:block;padding:20px}.upload-main{margin:12px 0}.uploader .btn{width:100%}.settings,.file-panel,.proof-card,.export-card{padding:18px}.roadmap-grid{grid-template-columns:1fr}.export-layout{display:block}.export-layout button{margin-top:16px;width:100%}}

/* v2：歷史手寫辨識與分區校讀 */
.mode-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:9px 0 17px}.mode-choices label{border:1px solid var(--border);border-radius:9px;padding:8px;font-weight:750;font-size:12px;background:#fafcfb}.mode-choices label:has(input:checked){background:#eaf5ee;border-color:#70a48f}.mode-choices small{display:block;color:var(--muted);font-size:10px;font-weight:500;margin:3px 0 0 18px}.mode-choices input{accent-color:var(--green)}.handwriting-settings{border:1px solid #ddebe3;background:#f9fcfa;border-radius:8px;padding:12px;margin:10px 0 14px}.handwriting-settings[hidden]{display:none}.handwriting-status{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:8px}.model-select{display:block;width:100%;padding:8px;margin:8px 0;border:1px solid var(--border);border-radius:6px;background:white}.tiny-help{color:#637970;font-size:11px;line-height:1.55}.region-tools{padding:10px;margin-top:9px;border:1px solid #dce7e0;border-radius:8px;background:#fcfefd}.region-tools[hidden]{display:none}.region-actions{display:flex;flex-wrap:wrap;gap:6px}.region-actions .btn{font-size:12px;padding:8px 12px}.region-actions .mini-btn.active{background:#dcefe5;border-color:#72a793}.preview-stage.selecting{cursor:crosshair;touch-action:none}.selection-box{position:absolute;pointer-events:none;border:2px solid #14654b;background:#1e846326;z-index:3}.selection-box[hidden]{display:none}.segments-panel{border-top:1px solid var(--border);margin:10px 0;padding-top:9px;font-size:12px;color:#62766d}.segments-panel[hidden]{display:none}.segments-panel p{margin:3px 0}.backup-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.backup-row button{font-size:12px}@media(max-width:650px){.mode-choices{grid-template-columns:1fr}}

.translate-actions{display:flex;align-items:center;gap:8px;margin:4px 0 10px}.translate-actions select{flex:1;min-width:0;padding:7px;border:1px solid var(--border);border-radius:7px;background:white}.translate-actions button{white-space:nowrap}@media(max-width:650px){.translate-actions{flex-direction:column;align-items:stretch}}

/* 網站管理者的 AI 存取碼僅留在瀏覽器記憶體中 */
.online-code {display:block; box-sizing:border-box; width:100%; min-height:37px; margin:7px 0 9px; padding:8px 11px; border:1px solid #b8c8c3; background:#fff; color:#153b36; border-radius:7px; font:inherit;}
.online-code:focus {outline:2px solid #496d62; outline-offset:1px;}

/* v3.1 史料辨識品質警示：低信心結果不能誤認為已轉錄史料 */
.quality-alert{margin:8px 0 12px;border:1px solid #ce9b73;border-left:5px solid #9f4e20;border-radius:9px;background:#fff7ed;padding:12px 14px;color:#6f321c;font-size:13px;line-height:1.6}
.quality-alert[hidden]{display:none}
.quality-alert strong{font-size:14px}
.quality-alert p{margin:5px 0 9px}
.quality-actions{display:flex;gap:7px;flex-wrap:wrap}
.quality-actions button{border-color:#c9946f;background:#fffdf9;color:#714025}

/* v3.5：新增自我測試按鈕後，小螢幕不遮擋狀態標籤。 */
.handwriting-status{flex-wrap:wrap;justify-content:flex-start;gap:8px}.handwriting-status .status-pill{margin-right:auto}
