:root{--bg: #f4f5f7;--panel: #ffffff;--ink: #1b1b20;--muted: #6b6b76;--line: #e3e3e8;--accent: #4f46e5;--danger: #dc2626}*{box-sizing:border-box}body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}.app{display:flex;flex-direction:column;height:100vh}header{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0}header h1{font-size:18px;margin:0 12px 0 0;letter-spacing:-.01em}.crumb{color:var(--muted)}.view{flex:1;min-height:0;overflow:hidden}button{padding:7px 12px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-size:13px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary,button.on{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:var(--danger);border-color:#f3c2c2}input,select{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}.hint{color:var(--muted);font-size:13px}.muted{color:var(--muted)}.error{color:var(--danger);font-size:13px}.home{height:100%;overflow-y:auto;padding:24px;max-width:1080px;margin:0 auto}.home h2{font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.upload-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px}.dropzone{border:2px dashed var(--line);border-radius:12px;padding:34px 18px;text-align:center;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s;margin:12px 0}.dropzone.drag,.dropzone:hover{border-color:var(--accent);background:#f7f6ff}.dropzone b{color:var(--ink)}.upload-card .row{display:flex;gap:8px}.upload-card .row input{flex:1}.progress-block{margin-top:16px}.progress-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.bar{height:10px;background:#ececf1;border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .3s ease}.pct{font-size:12px;color:var(--muted)}.toggle{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.toggle:has(input:disabled){opacity:.55;cursor:default}.toggle.mini{margin:0;font-size:12px;gap:5px}.toggle.mini input{width:13px;height:13px}.progress-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.progress-foot button{padding:4px 12px;font-size:12px}.gallery{margin-top:28px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.thumb{height:190px;background:#eceef2;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;object-position:top}.thumb-empty{color:var(--muted);font-size:12px}.card-body{padding:10px 12px;display:flex;flex-direction:column;gap:3px}.card-body .muted{font-size:12px}.card-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.card-actions button{padding:5px 9px;font-size:12px}.reader{height:100%;overflow-y:auto;background:#22232a}.reader-bar{position:sticky;top:0;display:flex;align-items:center;gap:12px;padding:10px 16px;background:#14151af2;color:#fff;border-bottom:1px solid #34353d;z-index:5}.reader-bar button{background:#34353d;color:#fff;border-color:#45464f}.reader-bar .muted{color:#a9aab3}.webtoon{max-width:760px;margin:0 auto}.webtoon-img{width:100%;display:block}.editor{display:flex;flex-direction:column;height:100%}.editor-top{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.editor-main{display:flex;flex:1;min-height:0}.editor .pages{width:220px;border-right:1px solid var(--line);overflow-y:auto;background:var(--panel)}.page-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer}.page-item.active{background:#eef0ff}.page-item.review{border-left:3px solid #3b82f6}.page-item .idx{color:var(--muted);width:22px}.page-item .pid{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis}.page-item .status{font-size:10px;padding:2px 6px;border-radius:999px;background:#eee}.page-item .status.analyzed{background:#dcfce7}.page-item .status.needs_review{background:#dbeafe}.page-item .status.failed{background:#fee2e2}.editor .canvas{flex:1;overflow:auto;padding:16px}.toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.toolbar button{font-size:12px}.preview{max-width:100%;border:1px solid var(--line);background:#fff}.editor .inspector{width:260px;border-left:1px solid var(--line);overflow-y:auto;padding:12px 14px;background:var(--panel)}.editor .inspector h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 8px}.panel-card{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px}.panel-card .row{font-size:12px;color:var(--muted)}.progress{color:var(--muted);margin-left:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:14px;padding:20px 22px;min-width:340px;max-width:90vw;box-shadow:0 12px 44px #00000040}.modal h3{margin:0 0 4px}.modal table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}.modal td{padding:4px 6px;border-bottom:1px solid var(--line)}.modal td:last-child{text-align:right;font-variant-numeric:tabular-nums}.modal tr.total td{font-weight:700;border-top:2px solid var(--line)}.modal button{margin-top:8px}
