@import "https://fonts.googleapis.com/css2?family=Sarabun:wght@400;500;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,700;1,400&display=swap";.tlx-app{--bg:#f7f3ee;--surface:#fff;--surface-2:#fdfaf6;--surface-3:#f4ede4;--border:#eadfd3;--border-strong:#dccbb9;--text:#2b2119;--text-muted:#8b7b6c;--accent:#c2410c;--accent-strong:#9a3412;--accent-soft:#ea580c;--accent-light:#fdeede;--accent-ring:#c2410c29;--success:#15803d;--success-light:#e6f5eb;--warn:#b45309;--warn-light:#fbf0dc;--error:#dc2626;--error-light:#fceaea;--info:#1d4ed8;--info-light:#edf2fd;--radius-lg:18px;--radius-md:13px;--radius-sm:9px;--shadow-sm:0 1px 2px #402a180d, 0 2px 8px #402a180a;--shadow-md:0 2px 6px #402a180f, 0 12px 28px -8px #402a181a;--shadow-lg:0 8px 20px #402a181a, 0 24px 48px -12px #402a1829;--font:"Sarabun", "Noto Sans Thai", "Prompt", "Segoe UI", system-ui, -apple-system, sans-serif;font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;background:radial-gradient(920px 480px at 6% -8%, #ea580c17, transparent 60%), radial-gradient(760px 460px at 104% 2%, #1d4ed80d, transparent 55%), var(--bg);min-height:100vh;font-size:15.5px;line-height:1.65}.tlx-app *,.tlx-app :before,.tlx-app :after{box-sizing:border-box}.tlx-app ::selection{background:#f3d3b8}.tlx-app button{font-family:inherit}.tlx-app :focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px;border-radius:6px}.tlx-app button:disabled,.tlx-app textarea:disabled,.tlx-app input:disabled{cursor:not-allowed;opacity:.55}@keyframes tlxFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes tlxSpin{to{transform:rotate(360deg)}}@keyframes tlxShimmer{to{transform:translate(100%)}}@keyframes tlxShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.app-header{z-index:60;-webkit-backdrop-filter:blur(14px)saturate(1.3);border-bottom:1px solid var(--border);background:#f7f3eed1;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1060px;margin:0 auto;padding:13px 20px;display:flex}.logo-badge{background:linear-gradient(135deg, var(--accent-soft), var(--accent));color:#fff;letter-spacing:.03em;white-space:nowrap;border-radius:11px;padding:7px 12px;font-size:12.5px;font-weight:800;box-shadow:0 4px 12px -3px #c2410c73}.logo-texts{flex-direction:column;line-height:1.2;display:flex}.logo-text{letter-spacing:-.02em;font-size:19px;font-weight:800}.logo-caption{letter-spacing:.05em;color:var(--text-muted);font-size:10.5px;font-weight:700}.header-sub{color:var(--text-muted);text-align:right;font-size:13px;font-weight:600}.tlx-app main{flex-direction:column;gap:20px;max-width:1060px;margin:0 auto;padding:26px 20px 96px;display:flex}.tlx-app main>*{animation:.5s cubic-bezier(.22,.8,.34,1) both tlxFadeUp}.tlx-app main>:nth-child(2){animation-delay:60ms}.tlx-app main>:nth-child(3){animation-delay:.12s}.tlx-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;transition:box-shadow .25s}.tlx-card:hover{box-shadow:var(--shadow-md)}.section-head{align-items:center;gap:14px;margin-bottom:18px;display:flex}.step-num{color:#fff;background:linear-gradient(135deg, var(--accent-soft), var(--accent));border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;font-weight:800;display:flex;box-shadow:0 4px 10px -2px #c2410c66}.section-head-text h2{letter-spacing:-.01em;margin:0;font-size:17.5px;font-weight:800}.section-head-text p{color:var(--text-muted);margin:2px 0 0;font-size:13px}.opt-chip{vertical-align:2px;letter-spacing:.04em;color:var(--accent);background:var(--accent-light);border-radius:999px;margin-left:6px;padding:2px 9px;font-size:10.5px;font-weight:800;display:inline-block}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:9px;padding:13px 22px;font-size:15px;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s,opacity .18s;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--accent-soft), var(--accent));box-shadow:0 6px 16px -4px #c2410c73,inset 0 1px #ffffff2e}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 24px -6px #c2410c8c,inset 0 1px #ffffff2e}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary:hover:not(:disabled){border-color:var(--accent-soft);color:var(--accent);background:var(--surface-2)}.btn-resume{color:#fff;background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 5px 14px -4px #b4530980}.btn-resume:hover:not(:disabled){transform:translateY(-1px)}.btn-sm{border:1px solid var(--border-strong);background:var(--surface);color:#6d5c4d;cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:700;transition:all .18s;display:inline-flex}.btn-sm:hover:not(:disabled){color:var(--accent);border-color:var(--accent-soft);background:var(--accent-light)}.btn-sm-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-sm-accent:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.copy-btn{color:#6d5c4d;background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;border-radius:8px;align-items:center;gap:5px;padding:5px 11px;font-size:12.5px;font-weight:700;transition:all .18s;display:inline-flex}.copy-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent-soft);background:var(--accent-light)}.copy-btn-accent{background:var(--accent-light);color:var(--accent);border-color:#f0cdb2}.copy-btn-accent:hover:not(:disabled){background:#fbe2c8}.copy-btn-blue{background:var(--info-light);color:var(--info);border-color:#c9d8f8}.copy-btn-blue:hover:not(:disabled){color:var(--info);background:#dfe9fc;border-color:#aec8f5}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:15px;height:15px;animation:.7s linear infinite tlxSpin;display:none}.input-tabs{background:var(--surface-3);border:1px solid var(--border);border-radius:12px;gap:4px;margin-bottom:16px;padding:4px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex}.tab-btn:hover:not(.active):not(:disabled){color:var(--text);background:#ffffffa6}.tab-btn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.upload-zone{text-align:center;cursor:pointer;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-2);padding:34px 22px;transition:border-color .2s,background .2s,transform .2s;position:relative}.upload-zone:hover{border-color:var(--accent-soft);background:#fff8f2}.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-light);border-style:solid;transform:scale(1.008)}.upload-zone.disabled{pointer-events:none;opacity:.55}.upload-inner{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex}.upload-icon{width:58px;height:58px;color:var(--accent);background:var(--accent-light);border-radius:16px;justify-content:center;align-items:center;margin-bottom:8px;transition:transform .25s;display:flex}.upload-zone:hover .upload-icon,.upload-zone.drag-over .upload-icon{transform:translateY(-3px)scale(1.06)}.upload-title{margin:0;font-size:16px;font-weight:700}.upload-or{color:var(--text-muted);font-size:14px;font-weight:500}.upload-or u{color:var(--accent);border-bottom:1.5px solid var(--accent-soft);font-weight:700;text-decoration:none}.upload-sub{color:var(--text-muted);margin:0;font-size:13px}.upload-hint{color:var(--warn);background:var(--warn-light);border-radius:999px;margin:6px 0 0;padding:4px 12px;font-size:12px}.file-chip{background:var(--success-light);color:var(--success);border:1px solid #bfe3cc;border-radius:999px;align-items:center;gap:7px;max-width:100%;margin-top:10px;padding:7px 14px;font-size:13px;font-weight:700;display:inline-flex}.file-chip #fileName{text-overflow:ellipsis;white-space:nowrap;max-width:340px;overflow:hidden}.text-input-zone{display:none}.text-input-zone.active{animation:.35s tlxFadeUp;display:block}.text-input-title{font-size:14px;font-weight:700}.text-actions{flex-wrap:wrap;gap:8px;display:flex}.textarea-wrap textarea{resize:vertical;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);width:100%;min-height:200px;color:var(--text);padding:14px 16px;font-family:inherit;font-size:14.5px;line-height:1.8;transition:border-color .2s,box-shadow .2s,background .2s}.textarea-wrap textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.textarea-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}#textCharCount{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12.5px}.error-box{background:var(--error-light);border:1px solid #f3c2c2;border-left:4px solid var(--error);border-radius:var(--radius-md);color:#a31f1f;align-items:flex-start;gap:10px;margin-top:16px;padding:13px 16px;font-size:13.5px;font-weight:600;display:none}.error-box.visible{animation:.4s tlxShake;display:flex}.mode-selector{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mode-btn{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:13px 16px;font-size:15px;font-weight:700;transition:all .2s;display:flex;position:relative}.mode-btn:hover:not(.active):not(:disabled){border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.mode-btn.active{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 3px var(--accent-ring)}.mode-emoji{background:var(--surface);width:42px;height:42px;box-shadow:var(--shadow-sm);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;font-size:21px;display:flex}.mode-name{flex:1}.mode-tick{background:var(--accent);color:#fff;opacity:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;transition:all .2s;display:flex;transform:scale(.5)}.mode-btn.active .mode-tick{opacity:1;transform:scale(1)}.mode-desc{color:var(--text-muted);background:var(--surface-2);border-left:3px solid var(--accent-soft);border-radius:0 10px 10px 0;margin-top:12px;padding:10px 14px;font-size:13px;line-height:1.6}.genre-row{border-top:1px dashed var(--border);margin-top:16px;padding-top:16px;display:none}.genre-row.visible{animation:.35s tlxFadeUp;display:block}.genre-label{color:var(--text-muted);margin-bottom:10px;font-size:13px;font-weight:800;display:block}.genre-btn{border:1.5px solid var(--border);background:var(--surface);color:#6d5c4d;cursor:pointer;border-radius:999px;padding:8px 15px;font-size:13.5px;font-weight:700;transition:all .18s}.genre-btn:hover:not(.active):not(:disabled){border-color:var(--accent-soft);color:var(--accent);transform:translateY(-1px)}.genre-btn.active{background:linear-gradient(135deg, var(--accent-soft), var(--accent));color:#fff;border-color:#0000;box-shadow:0 4px 12px -3px #c2410c73}.genre-desc{color:var(--text-muted);margin-top:10px;font-size:12.5px;line-height:1.6;display:block}.glossary-panel,.relationship-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);overflow:hidden}.glossary-panel{margin-bottom:12px}.glossary-header,.relationship-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;transition:background .18s;display:flex}.glossary-header:hover,.relationship-header:hover{background:var(--surface-3)}.glossary-title,.relationship-title{align-items:center;gap:9px;font-size:14px;font-weight:700;display:flex}.glossary-title svg,.relationship-title svg{color:var(--accent);flex-shrink:0}.glossary-toggle-icon,.relationship-toggle-icon{color:var(--text-muted);font-size:11px;transition:transform .25s}.glossary-toggle-icon.open,.relationship-toggle-icon.open{transform:rotate(180deg)}.glossary-body,.relationship-body{padding:2px 16px 16px;display:none}.glossary-body.open,.relationship-body.open{animation:.3s tlxFadeUp;display:block}.glossary-desc,.relationship-desc{color:var(--text-muted);margin:6px 0 14px;font-size:12.5px;line-height:1.6}.glossary-table-wrap{overflow-x:auto}.glossary-table th{text-align:left;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11.5px;font-weight:800}.glossary-table td{border-bottom:1px dashed var(--border);padding:5px 8px}.glossary-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:8px 11px;font-family:inherit;font-size:13.5px;transition:border-color .18s,box-shadow .18s}.glossary-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.glossary-del-btn{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:17px;line-height:1;transition:all .15s}.glossary-del-btn:hover:not(:disabled){background:var(--error-light);color:var(--error)}.glossary-count{color:var(--text-muted);font-size:12.5px;font-weight:700}.glossary-import-wrap{flex-wrap:wrap;gap:8px;display:flex}.glossary-add-btn{border:1.5px dashed var(--border-strong);color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:700;transition:all .18s;display:inline-flex}.glossary-add-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}.relationship-example-tag:hover{border-color:var(--accent-soft);color:var(--accent);background:var(--accent-light);transform:translateY(-1px)}.relationship-textarea{resize:vertical;border:1.5px solid var(--border);background:var(--surface);width:100%;min-height:110px;color:var(--text);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:13.5px;line-height:1.75;transition:border-color .2s,box-shadow .2s}.relationship-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.relationship-footer{justify-content:space-between;align-items:center;gap:10px;margin-top:9px;display:flex}.relationship-clear-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700;transition:all .15s}.relationship-clear-btn:hover:not(:disabled){color:var(--error);background:var(--error-light)}.resume-banner{border:1px solid #f0dcb8;border-left:5px solid var(--warn);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#fff8ec,#fdf0da);flex-direction:column;gap:8px;padding:18px 20px;display:none}.resume-banner.visible{animation:.45s tlxFadeUp;display:flex}.resume-banner-actions{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);animation:.5s cubic-bezier(.22,.8,.34,1) both tlxFadeUp;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;display:flex}.panel-title{align-items:center;gap:9px;font-size:14.5px;font-weight:800;display:flex}.lang-flag{letter-spacing:.06em;border-radius:6px;justify-content:center;align-items:center;padding:2px 8px;font-size:10.5px;font-weight:800;display:inline-flex}.lang-en{background:var(--info-light);color:var(--info)}.lang-th{background:var(--accent-light);color:var(--accent)}.char-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12.5px}.panel-body{max-height:560px;padding:18px;overflow:auto}.panel-body::-webkit-scrollbar{width:9px}.panel-body::-webkit-scrollbar-track{background:0 0}.panel-body::-webkit-scrollbar-thumb{border:2px solid var(--surface);background:#e2d5c6;border-radius:99px}.panel-body::-webkit-scrollbar-thumb:hover{background:#d0bda9}.control-panel .panel-body{max-height:none}.text-content,.translation-content{white-space:pre-wrap;font-size:15px;line-height:1.95}.text-content{color:#57493c}#translateBtn{border-radius:14px;flex:260px;padding:15px 26px;font-size:16px}#resetBtn{flex:none}.parallel-toggle{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);cursor:pointer;flex:100%;align-items:center;gap:14px;padding:14px 16px;transition:all .2s;display:flex}.parallel-toggle.active{background:var(--accent-light);border-color:#f0cdb2}.parallel-toggle input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.parallel-toggle-switch{background:#e0d2c2;border-radius:999px;flex-shrink:0;width:46px;height:26px;transition:background .25s;position:relative}.parallel-toggle input:checked+.parallel-toggle-switch{background:var(--accent)}.parallel-toggle input:checked+.parallel-toggle-switch:after{transform:translate(20px)}.parallel-toggle input:disabled+.parallel-toggle-switch{opacity:.5}.parallel-toggle-copy{flex-direction:column;gap:2px;font-size:13.5px;display:flex}.parallel-toggle-copy strong{font-size:14px}.parallel-toggle-copy small{color:var(--text-muted);font-size:12px;line-height:1.5}.progress-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 22px;display:none}.progress-wrap.visible{animation:.4s tlxFadeUp;display:block}.progress-label{justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:14.5px;font-weight:800;display:flex}#progressPct{color:var(--accent);font-variant-numeric:tabular-nums}.progress-bar-fill{background:linear-gradient(90deg, var(--accent-soft), var(--accent));border-radius:999px;width:0;height:100%;transition:width .45s cubic-bezier(.22,.8,.34,1);position:relative;overflow:hidden}.progress-bar-fill:after{content:"";background:linear-gradient(110deg,#0000 20%,#ffffff73 50%,#0000 80%);animation:1.6s infinite tlxShimmer;position:absolute;inset:0;transform:translate(-100%)}.progress-meta{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-top:10px;display:flex}.progress-status{color:var(--text-muted);font-size:13px;font-weight:600}.progress-eta{color:var(--accent);background:var(--accent-light);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.progress-eta:empty{display:none}#resultGrid{grid-template-columns:repeat(auto-fit,minmax(min(430px,100%),1fr));align-items:start;gap:20px;display:none}.empty-state{min-height:220px;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.empty-icon{font-size:36px}.consistency-panel.visible{animation:.4s tlxFadeUp;display:block}.issue-row{border-bottom:1px dashed var(--border);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.issue-badge{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:800}.issue-text{font-size:13.5px;line-height:1.6}.consistency-spinner{vertical-align:-1px;border:2px solid #1d4ed840;border-top-color:var(--info);border-radius:50%;width:12px;height:12px;margin-right:6px;animation:.7s linear infinite tlxSpin;display:inline-block}.loading-overlay{z-index:9999;-webkit-backdrop-filter:blur(10px);background:#f7f3eeb8;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.loading-box{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;align-items:center;gap:18px;padding:36px 48px;display:flex}.loading-text{color:var(--text-muted);font-size:14.5px;font-weight:600}@media (max-width:720px){.header-sub{display:none}.tlx-app main{gap:16px;padding:18px 14px 80px}.tlx-card{padding:18px}.mode-selector{grid-template-columns:1fr}.section-head-text h2{font-size:16.5px}#translateBtn,#resetBtn{flex:100%}.panel-body{max-height:460px;padding:14px}.upload-zone{padding:26px 16px}.controls{flex-direction:column}}@media (prefers-reduced-motion:reduce){.tlx-app *,.tlx-app :before,.tlx-app :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--bg:#faf8f4;--surface:#fff;--surface2:#f4f1eb;--border:#e0d9ce;--accent:#c4622d;--accent-light:#f9ede6;--text:#1a1410;--text-muted:#7a6f65;--text-subtle:#b5aca0;--success:#2d7a4a;--success-bg:#e8f5ee;--error:#991b1b;--error-bg:#fef2f2;--radius:12px;--shadow:0 2px 16px #3c281414;--input-bg:#fcfbf9;--input-border:#d4c8b5;--warn:#92400e;--warn-bg:#fffbeb;--warn-border:#fde68a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Sarabun,sans-serif;font-size:16px;line-height:1.7}header{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;align-items:center;gap:1rem;height:60px;padding:0 2rem;display:flex;position:sticky;top:0}.logo-mark{align-items:center;gap:.5rem;display:flex}.logo-badge{background:var(--accent);color:#fff;letter-spacing:.08em;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600}.logo-text{color:var(--text);font-family:Playfair Display,serif;font-size:18px;font-style:italic}.header-sub{color:var(--text-muted);border-left:1px solid var(--border);padding-left:1rem;font-size:13px}main{flex-direction:column;gap:1.5rem;max-width:1200px;margin:0 auto;padding:2rem 1.5rem;display:flex}.input-tabs,.mode-selector{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);gap:.5rem;width:-moz-fit-content;width:fit-content;padding:.4rem;display:flex}.mode-selector{margin-bottom:.5rem}.tab-btn,.mode-btn{cursor:pointer;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem 1.2rem;font-size:14px;font-weight:500;transition:all .15s;display:flex}.tab-btn:hover,.mode-btn:hover{color:var(--text);background:var(--surface2)}.tab-btn.active,.mode-btn.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #c4622d40}.mode-desc{color:var(--text-subtle);margin-top:4px;padding-left:4px;font-size:12px}.upload-zone{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;padding:3rem 2rem;transition:all .2s;position:relative}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-light)}.upload-zone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-icon{background:var(--surface2);border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 1rem;display:flex}.upload-icon svg{color:var(--accent)}.upload-title{margin-bottom:.4rem;font-family:Playfair Display,serif;font-size:20px}.upload-sub{color:var(--text-muted);font-size:14px}.upload-hint{color:var(--text-subtle);margin-top:.5rem;font-size:12px}.file-chip{background:var(--success-bg);color:var(--success);border:1px solid #b8ddc7;border-radius:8px;align-items:center;gap:.5rem;margin-top:1rem;padding:.4rem 1rem;font-size:14px;font-weight:500;display:inline-flex}.text-input-zone{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;display:none}.text-input-zone.active{display:block}.text-input-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.text-input-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:14px;font-weight:600}.text-actions{gap:.5rem;display:flex}.textarea-wrap{border:1px solid var(--input-border);background:var(--input-bg);border-radius:8px;position:relative}#textInput{width:100%;min-height:300px;max-height:500px;color:var(--text);resize:vertical;background:0 0;border:none;outline:none;padding:1rem;font-family:Sarabun,sans-serif;font-size:15px;line-height:1.8}#textInput::placeholder{color:var(--text-subtle)}.textarea-footer{color:var(--text-subtle);background:var(--surface2);border-radius:0 0 8px 8px;justify-content:space-between;align-items:center;padding:.5rem 1rem;font-size:12px;display:flex}.btn-sm{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:4px;padding:.3rem .8rem;font-size:12px;transition:all .15s}.btn-sm:hover{background:var(--surface2)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-header{background:var(--surface2);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.25rem;display:flex}.panel-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.5rem;font-size:13px;font-weight:600;display:flex}.panel-body{padding:1.25rem}.text-content{color:var(--text);white-space:pre-wrap;scrollbar-width:thin;scrollbar-color:var(--border) transparent;max-height:320px;font-size:15px;line-height:1.8;overflow-y:auto}.char-count{color:var(--text-subtle);background:var(--surface2);border-radius:4px;padding:3px 8px;font-size:12px}.controls{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.4rem;font-family:Sarabun,sans-serif;font-size:15px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#a8521f;transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-resume{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border)}.btn-resume:hover:not(:disabled){background:#fef3c7}.progress-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;display:none}.progress-wrap.visible{display:block}.progress-label{color:var(--text-muted);justify-content:space-between;margin-bottom:.6rem;font-size:14px;display:flex}.progress-bar-track{background:var(--surface2);border-radius:999px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:999px;width:0%;height:100%;transition:width .3s}.progress-status{color:var(--text-muted);min-height:20px;margin-top:.6rem;font-size:13px}.progress-eta{color:var(--text-subtle);margin-top:.3rem;font-size:12px}.result-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (max-width:768px){.result-grid{grid-template-columns:1fr}}.lang-flag{border-radius:4px;align-items:center;gap:.35rem;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.lang-en{color:#1a56c4;background:#e8f0fe}.lang-th{color:#c4622d;background:#fef3e8}.translation-content{color:var(--text);white-space:pre-wrap;scrollbar-width:thin;scrollbar-color:var(--border) transparent;max-height:600px;font-size:16px;line-height:2.2;overflow-y:auto}.copy-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:5px;padding:3px 10px;font-family:Sarabun,sans-serif;font-size:12px;transition:all .15s}.copy-btn:hover{background:var(--surface2);color:var(--text)}.copy-btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;color:var(--text-subtle);padding:2.5rem 1rem;font-size:14px}.empty-icon{opacity:.4;margin-bottom:.5rem;font-size:2rem}.error-box{background:var(--error-bg);color:var(--error);border:1px solid #fecaca;border-radius:8px;padding:.8rem 1rem;font-size:14px;display:none}.error-box.visible{display:block}.resume-banner{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);flex-direction:column;gap:.75rem;padding:1rem 1.25rem;display:none}.resume-banner.visible{display:flex}.resume-banner-title{color:var(--warn);align-items:center;gap:.4rem;font-size:14px;font-weight:600;display:flex}.resume-banner-info{color:var(--text-muted);font-size:13px}.resume-banner-actions{gap:.6rem;display:flex}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:none}.spinner.visible{display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.loading-overlay{z-index:1000;background:#faf8f4e6;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:none;position:fixed;inset:0}.loading-overlay.visible{display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.loading-text{color:var(--text-muted);font-size:14px}.glossary-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.glossary-header{background:var(--surface2);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.25rem;display:flex}.glossary-header:hover{background:#ede9e0}.glossary-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.5rem;font-size:13px;font-weight:600;display:flex}.glossary-toggle-icon{color:var(--text-subtle);font-size:12px;transition:transform .2s}.glossary-toggle-icon.open{transform:rotate(180deg)}.glossary-body{padding:1rem 1.25rem;display:none}.glossary-body.open{display:block}.glossary-desc{color:var(--text-muted);margin-bottom:1rem;font-size:13px;line-height:1.6}.glossary-table{border-collapse:collapse;width:100%}.glossary-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);text-align:left;padding:.4rem .6rem;font-size:12px;font-weight:600}.glossary-table td{vertical-align:middle;padding:.35rem .4rem}.glossary-input{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--text);border-radius:6px;outline:none;padding:.4rem .6rem;font-family:Sarabun,sans-serif;font-size:14px;transition:border-color .15s}.glossary-input:focus{border-color:var(--accent)}.glossary-input::placeholder{color:var(--text-subtle)}.glossary-del-btn{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:16px;line-height:1;transition:all .15s}.glossary-del-btn:hover{background:var(--error-bg);color:var(--error)}.glossary-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.glossary-count{color:var(--text-subtle);font-size:12px}.glossary-add-btn{color:var(--accent);cursor:pointer;background:var(--accent-light);border:1px solid #e8c4b0;border-radius:6px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.glossary-add-btn:hover{background:#f5dfd3}.glossary-import-wrap{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.glossary-tag{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.glossary-arrow{color:var(--text-subtle);font-size:11px}.genre-row{flex-direction:column;gap:.4rem;display:none}.genre-row.visible{display:flex}.genre-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-subtle);padding-left:2px;font-size:11px;font-weight:600}.genre-selector{flex-wrap:wrap;gap:.4rem;display:flex}.genre-btn{cursor:pointer;color:var(--text-muted);border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:8px;align-items:center;gap:.35rem;padding:.45rem 1rem;font-size:13px;font-weight:500;transition:all .15s;display:flex}.genre-btn:hover{color:var(--text);background:var(--surface2);border-color:#c8b9a5}.genre-btn.active{color:#fff;border-color:#0000;box-shadow:0 2px 8px #00000026}.genre-btn[data-genre=FANTASY].active{background:#5b4fcf}.genre-btn[data-genre=ROMANCE].active{background:#c2436a}.genre-btn[data-genre=ACTION].active{background:#c44a1a}.genre-btn[data-genre=SPORTS].active{background:#1a7a3a}.genre-desc{color:var(--text-subtle);min-height:18px;padding-left:2px;font-size:12px}.relationship-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.relationship-header{background:var(--surface2);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.25rem;display:flex}.relationship-header:hover{background:#ede9e0}.relationship-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.5rem;font-size:13px;font-weight:600;display:flex}.relationship-toggle-icon{color:var(--text-subtle);font-size:12px;transition:transform .2s}.relationship-toggle-icon.open{transform:rotate(180deg)}.relationship-body{padding:1rem 1.25rem;display:none}.relationship-body.open{display:block}.relationship-desc{color:var(--text-muted);margin-bottom:.75rem;font-size:13px;line-height:1.6}.relationship-examples{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.relationship-example-tag{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:2px 8px;font-size:11px;transition:all .15s}.relationship-example-tag:hover{background:var(--accent-light);color:var(--accent);border-color:#e8c4b0}.relationship-textarea{border:1px solid var(--input-border);background:var(--input-bg);width:100%;min-height:120px;color:var(--text);resize:vertical;border-radius:8px;outline:none;padding:.75rem;font-family:Sarabun,sans-serif;font-size:14px;line-height:1.8;transition:border-color .15s}.relationship-textarea:focus{border-color:var(--accent)}.relationship-textarea::placeholder{color:var(--text-subtle)}.relationship-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.relationship-count{color:var(--text-subtle);font-size:12px}.relationship-clear-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:.3rem .8rem;font-size:12px;transition:all .15s}.relationship-clear-btn:hover{background:var(--error-bg);color:var(--error);border-color:#fecaca}.consistency-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:none;overflow:hidden}.consistency-panel.visible{display:block}.consistency-spinner{border:2px solid #c4622d4d;border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.7s linear infinite spin;display:inline-block}.issue-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:.75rem;padding:.65rem 0;font-size:14px;display:flex}.issue-row:last-child{border-bottom:none}.issue-badge{border-radius:4px;flex-shrink:0;margin-top:2px;padding:2px 7px;font-size:11px;font-weight:600}.badge-warn{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border)}.badge-ok{background:var(--success-bg);color:var(--success);border:1px solid #b8ddc7}.issue-text{color:var(--text);flex:1;line-height:1.6}.issue-suggestion{color:var(--text-muted);margin-top:2px;font-size:12px}main.translation-running .input-tabs,main.translation-running .mode-selector,main.translation-running .genre-row,main.translation-running .upload-zone,main.translation-running .text-input-zone,main.translation-running .glossary-panel,main.translation-running .relationship-panel{pointer-events:none;opacity:.65}button:disabled,input:disabled,textarea:disabled{cursor:not-allowed}.upload-zone.disabled{border-color:var(--border)}.parallel-toggle{border:1px solid var(--border);background:var(--surface2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:.65rem;min-height:44px;padding:.45rem .75rem;transition:border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.parallel-toggle:hover{border-color:#c8b9a5}.parallel-toggle.active{background:var(--success-bg);border-color:#b8ddc7;box-shadow:0 0 0 2px #2d7a4a0f}.parallel-toggle input{opacity:0;pointer-events:none;position:absolute}.parallel-toggle-switch{background:var(--text-subtle);border-radius:999px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.parallel-toggle-switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.parallel-toggle.active .parallel-toggle-switch{background:var(--success)}.parallel-toggle.active .parallel-toggle-switch:after{transform:translate(16px)}.parallel-toggle-copy{flex-direction:column;line-height:1.3;display:flex}.parallel-toggle-copy strong{color:var(--text);font-size:13px;font-weight:600}.parallel-toggle-copy small{color:var(--text-muted);font-size:11px}.parallel-toggle:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}main.translation-running .parallel-toggle{pointer-events:none;opacity:.65}
