:root{--bg:#f7f7f5;--bg-elev:#fff;--surface:#fff;--surface-2:#f1f1ee;--surface-3:#e9e9e5;--line:#e4e4df;--line-strong:#d3d3cc;--text:#17181b;--text-2:#4a4c52;--muted:#7a7c83;--accent:#e8a23a;--accent-strong:#c47a12;--accent-soft:#fbefd9;--on-accent:#1d1406;--ok:#1f9d63;--ok-soft:#e1f4ea;--warn:#b26e05;--warn-soft:#fbf0d8;--err:#d64545;--err-soft:#fbe6e6;--info:#2d73d2;--info-soft:#e3edfb;--shadow-sm:0 1px 2px #14141e0f;--shadow:0 4px 16px #14141e14;--shadow-lg:0 16px 48px #14141e29;--r-sm:8px;--r:12px;--r-lg:18px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--topbar-h:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Noto Sans Thai,Leelawadee UI,Sarabun,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.6}:root[data-theme=dark]{--bg:#111214;--bg-elev:#17181b;--surface:#1a1b1f;--surface-2:#222328;--surface-3:#2b2c32;--line:#2c2e34;--line-strong:#3a3d45;--text:#ececee;--text-2:#c2c3c8;--muted:#8d8f97;--accent:#f0b04d;--accent-strong:#f6c26e;--accent-soft:#3a2d17;--on-accent:#1b1305;--ok:#4cc38a;--ok-soft:#173326;--warn:#f0a33a;--warn-soft:#3a2b12;--err:#ef6a6a;--err-soft:#3a1c1c;--info:#6aa7f0;--info-soft:#182a40;--shadow-sm:0 1px 2px #0006;--shadow:0 4px 16px #00000059;--shadow-lg:0 16px 48px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 var(--s4);letter-spacing:-.01em;font-size:1.65rem;font-weight:700;line-height:1.3}h2{margin:0;font-size:1.25rem;font-weight:700}h3{margin:0 0 var(--s3);font-size:1.02rem;font-weight:600}input,select,textarea,button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:not([type=checkbox]):not([type=range]):not([type=color]),select,textarea{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);outline:none;width:100%;padding:9px 12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=color]{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);width:56px;height:38px;padding:3px}input[type=range],input[type=checkbox]{accent-color:var(--accent)}input[type=range]{width:100%}textarea{resize:vertical}.container{max-width:1200px;padding:var(--s5) 16px 96px;margin:0 auto}.muted{color:var(--muted)}.small{font-size:.86rem}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.grow{flex:1}.center{justify-content:center}.stack{gap:var(--s3);flex-direction:column;display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.actions{gap:var(--s2);margin-top:var(--s4);flex-wrap:wrap;align-items:center;display:flex}.empty{text-align:center;color:var(--muted);padding:64px 16px}.error-text{color:var(--err)}.warn-text{color:var(--warn)}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.page-head h1{margin:0}.page-sub{color:var(--muted);margin:2px 0 0}.btn{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 14px;font-weight:500;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex;color:var(--text)!important;text-decoration:none!important}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);font-weight:600;color:var(--on-accent)!important}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn-danger-ghost{background:0 0;border-color:#0000;color:var(--err)!important}.btn-danger-ghost:hover:not(:disabled){background:var(--err-soft)}.btn-sm{height:32px;padding:0 10px;font-size:.88rem}.btn-lg{border-radius:var(--r);height:46px;padding:0 24px;font-size:1.02rem}.btn-icon{border-radius:var(--r-sm);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex;text-decoration:none!important}.btn-icon:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-icon:disabled{opacity:.35}.topbar{z-index:40;height:var(--topbar-h);align-items:center;gap:var(--s4);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--line);padding:0 max(16px,50vw - 584px);display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:1.05rem;font-weight:700;display:flex;color:var(--text)!important;text-decoration:none!important}.brand img{border-radius:8px}.topnav{margin-left:var(--s4);gap:2px;display:flex}.topnav a{border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-weight:500;display:flex;color:var(--text-2)!important;text-decoration:none!important}.topnav a:hover{background:var(--surface-2)}.topnav a.active{background:var(--accent-soft);color:var(--text)!important}.top-actions{align-items:center;gap:var(--s1);margin-left:auto;display:flex}.sys{color:var(--muted);border:1px solid var(--line);margin-right:var(--s2);border-radius:999px;align-items:center;gap:7px;max-width:320px;padding:5px 10px;font-size:.8rem;display:flex}.dot{border-radius:50%;flex:none;width:7px;height:7px}.dot-ok{background:var(--ok)}.dot-warn{background:var(--warn)}.banner{justify-content:space-between;gap:var(--s4);background:var(--warn-soft);color:var(--text-2);border-bottom:1px solid var(--line);align-items:flex-start;padding:10px max(16px,50vw - 584px);font-size:.88rem;display:flex}.bottomnav{display:none}.chip{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:.78rem;font-weight:500;display:inline-flex}.chip-queued{background:var(--info-soft);color:var(--info)}.chip-processing{background:var(--accent-soft);color:var(--accent-strong)}.chip-done{background:var(--ok-soft);color:var(--ok)}.chip-error{background:var(--err-soft);color:var(--err)}.chip-warn{background:var(--warn-soft);color:var(--warn)}.progress{background:var(--surface-3);border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:999px;height:100%;transition:width .4s}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.toasts{z-index:100;gap:var(--s2);flex-direction:column;max-width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--bg-elev);border:1px solid var(--line);border-left:4px solid var(--info);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);cursor:pointer;padding:10px 14px}.toast-ok{border-left-color:var(--ok)}.toast-error{border-left-color:var(--err)}.modal-backdrop{z-index:90;background:#0a0a0e80;justify-content:center;align-items:center;padding:16px;animation:.15s fade;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);width:min(480px,100%);box-shadow:var(--shadow-lg)}.modal-head{margin-bottom:var(--s4);justify-content:space-between;align-items:center;display:flex}.modal-head h3{margin:0}@keyframes fade{0%{opacity:0}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5);margin-bottom:var(--s4);box-shadow:var(--shadow-sm)}.form-grid{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:end;display:grid}.form-grid>h3,.form-grid>.full{grid-column:1/-1}.form-grid>h3{margin-bottom:0}.form-grid.tight{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}label,.field{flex-direction:column;gap:6px;display:flex}label>span,.field>span{color:var(--text-2);font-size:.84rem;font-weight:500}label.check{align-items:center;gap:var(--s2);cursor:pointer;flex-direction:row}.segmented{background:var(--surface-2);border-radius:var(--r-sm);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-radius:6px;padding:6px 14px;font-weight:500}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}:root[data-theme=dark] .segmented button.active{background:var(--surface-3)}.segmented button:disabled{opacity:.4;cursor:not-allowed}details summary{cursor:pointer;margin-bottom:var(--s3)}.series-grid{gap:var(--s5) var(--s4);grid-template-columns:repeat(auto-fill,minmax(178px,1fr));display:grid}.series-card{gap:var(--s2);flex-direction:column;min-width:0;display:flex}.cover{aspect-ratio:2/3;border-radius:var(--r);background:var(--surface-2);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;display:block;position:relative;overflow:hidden}.cover:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.cover img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.cover-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:.85rem;display:flex}.cover-badges{justify-content:space-between;gap:4px;display:flex;position:absolute;top:8px;left:8px;right:8px}.lang-tag,.cover-count{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0e0e12b8;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.cover-status{color:#fff;background:linear-gradient(#0000,#0a0a0ed9);padding:28px 10px 9px;font-size:.78rem;position:absolute;bottom:0;left:0;right:0}.cover-status .progress{background:#ffffff40}.series-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden;color:var(--text)!important}.series-meta{color:var(--muted);font-size:.82rem}.new-card{aspect-ratio:2/3;border:2px dashed var(--line-strong);border-radius:var(--r);justify-content:center;align-items:center;gap:var(--s2);flex-direction:column;font-weight:500;transition:border-color .15s,color .15s,background .15s;display:flex;color:var(--muted)!important;text-decoration:none!important}.new-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--text)!important}.welcome{text-align:center;padding:72px 16px}.welcome h2{margin-bottom:var(--s2)}.welcome p{color:var(--muted);margin:0 0 var(--s5)}.upload{max-width:920px}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center;cursor:pointer;background:var(--surface);margin-bottom:var(--s4);padding:44px 16px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft)}.dropzone.small-zone{padding:24px 16px}.drop-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent-strong);margin-bottom:var(--s3);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.drop-icon svg{width:26px;height:26px}.group-list{gap:var(--s3);flex-direction:column;display:flex}.group-row{gap:var(--s3);padding-bottom:var(--s3);border-bottom:1px solid var(--line);align-items:flex-end;display:flex}.group-row:last-child{border-bottom:0}.group-row .num{flex:none;width:92px}.group-row .grow{min-width:140px}.group-file{flex:1.2;min-width:0;padding-bottom:8px}.series-head{gap:var(--s5);margin-bottom:var(--s5);align-items:flex-end;display:flex}.series-cover{aspect-ratio:2/3;object-fit:cover;object-position:top;border-radius:var(--r);width:140px;box-shadow:var(--shadow);flex:none}.series-head h1{margin:2px 0 4px}.series-head .actions{margin-top:var(--s3)}.tabs{gap:var(--s1);border-bottom:1px solid var(--line);margin-bottom:var(--s5);display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:500}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.chapter-table{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;display:flex;overflow:hidden}.chapter-row{gap:var(--s4);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);align-items:center;display:flex}.chapter-row:last-child{border-bottom:0}.chapter-row:hover{background:var(--surface-2)}.chapter-thumb{aspect-ratio:2/3;object-fit:cover;object-position:top;background:var(--surface-2);border-radius:6px;flex:none;width:48px}.chapter-main{flex:1;min-width:0}.chapter-title{font-weight:600}.chapter-title a{color:var(--text)!important}.chapter-meta{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:2px;display:flex}.chapter-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.glossary{gap:var(--s2);flex-direction:column;display:flex}.glossary-head,.glossary-row{gap:var(--s2);grid-template-columns:1fr 1fr 1.4fr 36px;align-items:center;display:grid}.glossary-head{color:var(--muted);font-size:.82rem;font-weight:500}.settings{max-width:980px}.pronoun-grid{gap:var(--s3) var(--s4);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.replace-list{gap:var(--s2);flex-direction:column;align-items:flex-start;display:flex}.replace-row{gap:var(--s2);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 36px;align-items:center;width:min(100%,540px);display:grid}.reader{--r-bg:#0b0b0d;--r-bar:#121216eb;--r-line:#2a2b31;background:var(--r-bg);color:#ececee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;min-height:100vh}.reader .btn{background:#1d1e23;border-color:#33353d;color:#ececee!important}.reader .btn:hover:not(:disabled){background:#282a30}.reader .btn-primary{background:#f0b04d;border-color:#f0b04d;color:#1b1305!important}.reader .btn-icon{color:#b5b7bd}.reader .btn-icon:hover{color:#fff;background:#23252b}.reader .muted{color:#8d8f97}.reader a{color:#f0b04d}.reader-bar,.reader-foot{z-index:30;align-items:center;gap:var(--s2);background:var(--r-bar);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 12px;transition:transform .2s,opacity .2s;display:flex;position:fixed;left:0;right:0}.reader-bar{border-bottom:1px solid var(--r-line);top:0}.reader-foot{border-top:1px solid var(--r-line);padding-bottom:calc(8px + env(safe-area-inset-bottom));bottom:0}.reader-bar.hidden{opacity:0;pointer-events:none;transform:translateY(-100%)}.reader-foot.hidden{opacity:0;pointer-events:none;transform:translateY(100%)}.reader-title{flex:1;min-width:0;line-height:1.3}.reader-scroll{flex-direction:column;align-items:center;padding:60px 0 76px;display:flex}.reader-page{background:#18191d;width:min(100%,900px);position:relative}.reader-page img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.reader-single{flex-direction:column;align-items:center;padding:60px 0 76px;display:flex}.reader-page.single{width:auto;max-width:100%;height:calc(100vh - 136px)}.tap{cursor:pointer;background:0 0;border:0;position:absolute;top:0;bottom:0}.tap-left{width:35%;left:0}.tap-mid{width:30%;left:35%}.tap-right{width:35%;right:0}.page-badge{color:#f0b04d;background:#000000bf;border-radius:999px;padding:2px 10px;font-size:.78rem;position:absolute;top:10px;right:10px}.page-badge.warn{color:#f0a33a}.chapter-end{text-align:center;width:min(100%,900px);padding:40px 16px}.reader-foot input[type=range]{flex:1}.editor-head{justify-content:space-between;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;display:flex}.editor-head .actions{margin-top:0}.editor-toolbar{gap:var(--s2);margin:var(--s4) 0;top:var(--topbar-h);z-index:10;background:var(--bg);padding:var(--s2) 0;flex-wrap:wrap;align-items:center;display:flex;position:sticky}.editor-body{gap:var(--s4);grid-template-columns:minmax(0,1fr) 360px;align-items:start;display:grid}.editor-canvas-wrap{min-width:0}.editor-canvas{-webkit-user-select:none;user-select:none;touch-action:none;border-radius:var(--r-sm);width:100%;max-width:900px;box-shadow:var(--shadow);background:#fff;margin:0 auto;position:relative;overflow:hidden}.editor-canvas img{pointer-events:none;width:100%;height:100%;display:block}.editor-canvas.drawing{cursor:crosshair}.ebox{cursor:move;background:#2d73d20f;border:2px solid #2d73d2d9;border-radius:3px;position:absolute}.ebox.untranslated{border-color:#d64545e6}.ebox.is-hidden{border-style:dashed;border-color:#7a7c83cc}.ebox.selected{border-color:var(--accent);z-index:2;background:#e8a23a1f}.ebox.draft{border-color:var(--accent);pointer-events:none;background:#e8a23a26;border-style:dashed}.editor-canvas.drawing .ebox{pointer-events:none}.ebox-num{color:#fff;background:#14151ad9;border-radius:4px;padding:0 6px;font-size:.72rem;font-weight:700;position:absolute;top:-20px;left:-2px}.handle{background:var(--accent);border:2px solid #fff;border-radius:4px;width:14px;height:14px;position:absolute;box-shadow:0 1px 3px #0000004d}.handle-nw{cursor:nwse-resize;top:-8px;left:-8px}.handle-ne{cursor:nesw-resize;top:-8px;right:-8px}.handle-sw{cursor:nesw-resize;bottom:-8px;left:-8px}.handle-se{cursor:nwse-resize;bottom:-8px;right:-8px}.canvas-busy{justify-content:center;align-items:center;gap:var(--s2);color:#fff;background:#00000073;display:flex;position:absolute;inset:0}.editor-side{top:calc(var(--topbar-h) + 64px);max-height:calc(100vh - var(--topbar-h) - 80px);position:sticky;overflow-y:auto}.box-list{flex-direction:column;gap:4px;margin:0;padding-left:1.4rem;display:flex}.box-list li{cursor:pointer;border-radius:var(--r-sm);padding:6px 8px}.box-list li:hover{background:var(--surface-2)}.sample-input{max-width:640px}.font-list{gap:var(--s4);margin-top:var(--s4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.font-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}.font-sample{margin-top:var(--s3);color:#111;border-radius:var(--r-sm);overflow-wrap:anywhere;border:1px solid var(--line);background:#fff;padding:10px 14px;font-size:1.6rem;line-height:1.5}.translators{max-width:920px}.provider-list{gap:var(--s3);margin-bottom:var(--s6);flex-direction:column;display:flex}.provider-card{margin-bottom:0}.provider-card.disabled{opacity:.6}.provider-card.local{box-shadow:none;border-style:dashed}.provider-card .form-grid{margin-top:var(--s3)}.actions.tight{gap:2px;margin-top:0}.preset-grid{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.preset-grid .card{margin-bottom:0}.login-wrap{background:radial-gradient(1200px 500px at 50% -10%, var(--accent-soft), transparent 70%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-lg);width:min(380px,100%);padding:var(--s6) var(--s5);box-shadow:var(--shadow-lg);text-align:center}.login-card .brand{margin-bottom:var(--s2);justify-content:center;font-size:1.3rem}.login-card form{gap:var(--s3);margin-top:var(--s5);text-align:left;flex-direction:column;display:flex}.public-link{align-items:center;gap:var(--s2);background:var(--info-soft);border-radius:var(--r);padding:var(--s3) var(--s4);margin-bottom:var(--s5);flex-wrap:wrap;font-size:.9rem;display:flex}.public-link code{overflow-wrap:anywhere;font-family:ui-monospace,Consolas,monospace;font-size:.85rem}@media (width<=900px){.editor-body{grid-template-columns:1fr}.editor-side{max-height:none;position:static}}@media (width<=720px){:root{font-size:14.5px}.container{padding:var(--s4) 16px calc(88px + env(safe-area-inset-bottom))}.topnav,.sys{display:none}.bottomnav{z-index:40;background:color-mix(in srgb, var(--bg-elev) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav a{flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 6px;font-size:.72rem;display:flex;color:var(--muted)!important;text-decoration:none!important}.bottomnav a.active{color:var(--accent-strong)!important}.series-grid{gap:var(--s4) var(--s3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.series-head{align-items:flex-start}.series-cover{width:96px}.chapter-row{flex-wrap:wrap}.chapter-actions{justify-content:flex-start;width:100%;padding-left:64px}.group-row{flex-wrap:wrap}.group-file{flex-basis:100%}.glossary-head{display:none}.glossary-row{grid-template-columns:1fr 1fr 36px}.glossary-row input:nth-child(3){grid-area:2/1/auto/3}.hide-mobile{display:none}.reader-page.single{width:100%;height:auto}.editor-toolbar{top:0}.card{padding:var(--s4)}}
