:root{--bg:#f4f6f8;--ink:#17191c;--muted:#65707d;--line:#d7dde3;--panel:#fff;--accent:#b51f2a;--accent-2:#08716d;--soft:#e9eef3;--warn:#a56512;--shadow:0 16px 35px #151b2214}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{border:0}a{color:inherit;text-decoration:none}.page-shell{min-height:100vh;padding:24px}.narrow-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:var(--panel);border:1px solid var(--line);width:min(100%,390px);box-shadow:var(--shadow);border-radius:8px;padding:26px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;max-width:1240px;margin:0 auto 18px;padding-bottom:16px;display:flex}.brand{flex-direction:column;gap:4px;display:flex}.brand h1,.login-panel h1{letter-spacing:0;margin:0;font-size:25px;line-height:1.2}.brand p,.login-panel p,.hint,.meta{color:var(--muted);margin:0;font-size:14px}.layout-grid{direction:ltr;grid-template-columns:minmax(320px,410px) minmax(0,1fr);gap:16px;max-width:1240px;margin:0 auto;display:grid}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:18px}.panel h2{margin:0 0 14px;font-size:18px}.form-stack{gap:12px;display:grid}.field{gap:6px;display:grid}.field span,.check-row span{color:var(--muted);font-size:13px}.input{border:1px solid var(--line);width:100%;color:var(--ink);direction:ltr;background:#fff;border-radius:6px;padding:11px 12px}.input:focus{border-color:var(--accent-2);outline:none;box-shadow:0 0 0 3px #08716d1f}.check-row{align-items:center;gap:9px;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--accent)}.button-row{flex-wrap:wrap;gap:9px;display:flex}.btn{background:var(--soft);min-height:40px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 13px;font-weight:650;display:inline-flex}.btn:hover{background:#dde5ec}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:#84151a}.btn.secondary{background:var(--accent-2);color:#fff}.btn.secondary:hover{background:#075f5b}.btn.icon{width:40px;padding:0}.btn:disabled{cursor:wait;opacity:.65}.status{min-height:20px;color:var(--muted);font-size:14px;line-height:1.4}.status.error{color:var(--accent)}.edition-list{gap:10px;display:grid}.edition-row{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:8px;padding:13px;display:grid}.edition-row.ready{border-inline-start:4px solid var(--accent-2)}.edition-row.failed{border-inline-start:4px solid var(--accent)}.edition-title{justify-content:space-between;align-items:center;gap:12px;font-weight:700;display:flex}.pill{color:#47525f;background:#e8edf2;border-radius:999px;padding:4px 8px;font-size:12px}.reader-shell{color:#f8fafc;direction:ltr;background:#1c2026;grid-template-rows:auto minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.reader-toolbar{z-index:3;background:#0d0f12f5;border-bottom:1px solid #ffffff1a;grid-template-columns:minmax(220px,1fr) auto minmax(260px,1fr);align-items:center;gap:16px;min-height:68px;padding:10px 16px;display:grid;box-shadow:0 10px 32px #00000038}.reader-title-group{align-items:center;gap:12px;min-width:0;display:flex}.reader-back,.reader-icon{color:#f8fafc;cursor:pointer;background:#ffffff12;border:1px solid #ffffff1f;border-radius:6px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.reader-back:hover,.reader-icon:hover,.reader-tool:hover{background:#ffffff21;border-color:#fff3}.reader-icon.disabled{opacity:.45;pointer-events:none}.reader-title{min-width:0}.reader-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.25;display:block;overflow:hidden}.reader-title span{color:#a9b2be;margin-top:3px;font-size:12px;line-height:1.2;display:block}.reader-toolbar-center{background:#ffffff0e;border:1px solid #ffffff1f;border-radius:8px;justify-content:center;justify-self:center;align-items:center;gap:8px;padding:5px;display:inline-flex}.reader-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.page-jump{color:#a9b2be;white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:inline-flex}.reader-page-input{color:#161a20;text-align:center;direction:ltr;background:#f8fafc;border:1px solid #ffffff29;border-radius:6px;width:70px;height:38px;font-weight:700}.reader-page-input:focus{border-color:#54c5bd;outline:none;box-shadow:0 0 0 3px #54c5bd38}.reader-tool,.reader-tool-group{color:#f8fafc;background:#ffffff12;border:1px solid #ffffff1f;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 11px;font-size:13px;font-weight:700;display:inline-flex}.reader-tool.active{color:#d9fffb;background:#54c5bd29;border-color:#54c5bd8c}.reader-tool-group{gap:4px;padding:0 5px}.reader-tool-group .reader-icon{background:0 0;border:0;width:31px;height:31px}.zoom-readout{color:#c5ced8;text-align:center;min-width:44px;font-size:12px}.reader-grid{direction:ltr;grid-template-columns:168px minmax(0,1fr);min-height:0;display:grid}.thumbs{background:#13171c;border-right:1px solid #ffffff1f;padding:12px 10px;overflow:auto}.thumb{color:#cbd3dc;cursor:pointer;text-align:center;background:#ffffff09;border:1px solid #0000;border-radius:8px;gap:7px;width:100%;margin-bottom:12px;padding:7px;display:grid}.thumb:hover{background:#ffffff14;border-color:#ffffff1f}.thumb.active{color:#f8fafc;background:#54c5bd24;border-color:#54c5bd94}.thumb img{aspect-ratio:.66;object-fit:cover;background:#2a3038;border-radius:5px;width:100%;box-shadow:0 5px 16px #00000047}.thumb span{font-size:12px;font-weight:700}.canvas-wrap{direction:ltr;background:radial-gradient(circle at 0 0,#08716d29,#0000 32%),linear-gradient(#252a31,#1d2127 55%,#191d22);min-width:0;min-height:0;overflow:auto}.page-stage{place-items:start center;min-height:100%;padding:26px;display:grid}.page-image{transform-origin:top;background:#fff;border-radius:2px;max-width:none;height:auto;display:block;box-shadow:0 24px 70px #0000006b}@media (max-width:780px){.page-shell{padding:16px}.topbar,.layout-grid{max-width:none}.layout-grid{grid-template-columns:1fr}.reader-toolbar{grid-template-columns:1fr;align-items:stretch}.reader-grid{grid-template-columns:104px minmax(0,1fr)}.reader-toolbar-center{justify-self:stretch}.reader-tools{justify-content:flex-start;width:100%}}
