:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-sans:Inter, system-ui, sans-serif;--font-display:"Space Grotesk", Inter, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--bg:#f4f5f7;--surface:#fff;--surface-2:#eceef2;--line:#dadee4;--ink:#15181d;--muted:#566070;--accent:#c2410c;--accent-ink:#fff;--accent-soft:#fce9de;--accent-text:#9a3412;--up:#1d4ed8;--up-soft:#e3ebfd;--proc:#6b21a8;--proc-soft:#f1e7fb;--ok:#166534;--ok-soft:#e0f2e6;--bad:#b42318;--bad-soft:#fde7e5;--focus:#2563eb}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1114;--surface:#181b21;--surface-2:#22262e;--line:#30353e;--ink:#eceef1;--muted:#a0a8b4;--accent:#ff8a4c;--accent-ink:#1b0d04;--accent-soft:#3a2015;--accent-text:#ffb389;--up:#9db8ff;--up-soft:#1c2745;--proc:#cdb2ff;--proc-soft:#2b2146;--ok:#7ee2a4;--ok-soft:#15301f;--bad:#ff9c93;--bad-soft:#3e1a18;--focus:#93b4ff}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--font-sans);margin:0}h1,h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:600}h1{font-size:30px;line-height:1.15}h2{letter-spacing:-.01em;font-size:20px;line-height:1.2}p{margin:0}a{color:var(--accent-text)}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.small{font-size:13px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}button,input,select{font:inherit;color:inherit}button,.button{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.button:hover{border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.primary:hover:not(:disabled){border-color:var(--accent);filter:brightness(1.08)}.danger{color:var(--bad);background:0 0}.danger-solid{background:var(--bad);border-color:var(--bad);color:var(--surface)}.big{min-height:52px;font-size:16px}.back{min-height:44px;color:var(--accent-text);background:0 0;border:0;align-self:flex-start;align-items:center;gap:6px;padding:0;font-size:15px;font-weight:600;display:inline-flex}.back:hover{text-underline-offset:3px;text-decoration:underline}.icon-btn{flex:none;width:40px;min-height:40px;padding:0}.chip-btn{min-height:44px;padding:0 12px;font-size:14px}label.button:has(:focus-visible){outline:2px solid var(--focus);outline-offset:2px}label.button input{opacity:0;width:1px;height:1px;position:absolute}label.button{position:relative}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{color:var(--muted);font-size:13px;font-weight:600}input[type=text],input[type=search],input:not([type]),select{border:1px solid var(--line);background:var(--surface);width:100%;height:48px;color:var(--ink);border-radius:10px;padding:0 12px;font-size:16px}select{font-size:15px}input:disabled{opacity:.6}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:32px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--p,0%), var(--surface-2) var(--p,0%));border-radius:3px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:4px solid var(--surface);width:26px;height:26px;box-shadow:0 0 0 1px var(--line), 0 1px 3px #0003;border-radius:50%;margin-top:-10px}input[type=range]::-moz-range-track{background:var(--surface-2);border-radius:3px;height:6px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:3px;height:6px}input[type=range]::-moz-range-thumb{background:var(--accent);border:4px solid var(--surface);width:18px;height:18px;box-shadow:0 0 0 1px var(--line);border-radius:50%}.range-ends{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pills{flex-wrap:wrap;gap:6px;display:flex}.pill{white-space:nowrap;background:var(--surface-2);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.pill-lg{gap:6px;padding:6px 12px;font-size:14px}.pill-watch{background:var(--accent-soft);color:var(--accent-text)}.pill-uploading{background:var(--up-soft);color:var(--up)}.pill-processing{background:var(--proc-soft);color:var(--proc)}.pill-ready{background:var(--ok-soft);color:var(--ok)}.pill-failed{background:var(--bad-soft);color:var(--bad)}.msg{border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;font-weight:500;line-height:1.45;display:flex}.msg>svg{flex:none;margin-top:1px}.msg-ok{background:var(--ok-soft);color:var(--ok)}.msg-bad{background:var(--bad-soft);color:var(--bad)}.msg-bad button{min-height:36px;color:inherit;background:0 0;border-color:currentColor;border-radius:8px;padding:0 12px;font-size:14px}.error-text{color:var(--bad);font-size:13px;line-height:1.45}.error-line{color:var(--bad);gap:8px;font-size:14px;font-weight:600;display:flex}.meter{background:var(--surface-2);border-radius:2px;height:4px;overflow:hidden}.meter>div,.progress>div{background:var(--accent);border-radius:inherit;height:100%;transition:width .2s}.progress{background:var(--surface);border-radius:6px;height:12px;overflow:hidden}.facts{margin:0;padding:0;overflow:hidden}.facts>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:10px 20px;display:flex}.facts>div:last-child{border-bottom:0}.facts>div.facts-meter{flex-direction:column;justify-content:center;align-items:stretch;gap:8px}.facts-meter>div:first-child{justify-content:space-between;gap:16px;display:flex}.facts dt{color:var(--muted);font-size:14px}.facts dd{text-align:right;overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:500}.state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:32px 24px;display:flex}.state-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent-text);border-radius:50%;justify-content:center;align-items:center;display:flex}.state-icon.bad{background:var(--bad-soft);color:var(--bad)}.empty{border:2px dashed var(--line);border-radius:14px;min-height:300px}.fullpage{min-height:100vh}@keyframes pulse{50%{opacity:.55}}.sk{animation:1.4s ease-in-out infinite pulse}.sk-block{background:var(--surface-2);border-radius:4px}.app{min-height:100vh;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:10px;height:56px;padding:0 20px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:600}.nav{z-index:10;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0}.nav-brand{display:none}.nav-item{min-height:52px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex-direction:column;gap:3px;padding:0;font-size:12px;font-weight:500}.nav-item[aria-current=page]{color:var(--accent-text);font-weight:600}.main{padding:8px 16px 24px}.page{flex-direction:column;gap:16px;padding-top:16px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:0 4px;display:flex}.page-head .muted{display:none}.cover{aspect-ratio:1;object-fit:cover;border-radius:6px;flex:none;display:block;box-shadow:0 1px 2px #0003}.cover-blank{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);box-shadow:none;flex-direction:column;justify-content:space-between;padding:9px 7px;display:flex;overflow:hidden}.cover-blank span{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;font-weight:600;line-height:1.15}.cover-thumb{align-self:flex-start;width:88px}.cover-thumb.cover-blank span{font-size:11px}.cover-large{border-radius:8px;width:240px;box-shadow:0 10px 24px #00000038}.cover-large.cover-blank{box-shadow:none;padding:18px 16px}.cover-large.cover-blank span{font-size:24px;line-height:1.1}.books{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.book-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:14px;padding:14px;display:flex}.book-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.book-title{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;font-size:18px;font-weight:600;line-height:1.2;text-decoration:none}a.book-title:hover{text-underline-offset:3px;text-decoration:underline}.book-pos{font-family:var(--font-mono);color:var(--muted);font-size:13px}.book-pos b{color:var(--ink);font-weight:500}.book-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.book-title-row{align-items:flex-start;gap:4px;display:flex}.book-title-row .book-title{flex:1;min-width:0;padding-top:2px}.more-btn{width:36px;min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:50%;flex:none;margin:-6px -6px 0 0;padding:0}.more-btn:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.sheet{background:var(--surface);width:100%;max-width:100%;color:var(--ink);border:0;border-radius:20px 20px 0 0;margin:auto auto 0;padding:0;animation:.2s ease-out sheet-up}.sheet::backdrop{background:#0a0c1073}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-body{padding:12px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:10px;display:flex}.sheet-body:before{content:"";background:var(--line);border-radius:2px;align-self:center;width:36px;height:4px;margin-bottom:6px}.sheet-head{align-items:center;gap:12px;padding:0 4px 8px;display:flex}.sheet-head h2{overflow-wrap:anywhere;font-size:17px}.sheet-head p{margin-top:4px}.cover-mini{align-self:center;width:48px}.cover-mini.cover-blank{padding:6px}.cover-mini.cover-blank span{display:none}.sheet-action{justify-content:flex-start;gap:12px;min-height:52px;font-size:16px}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.confirm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.book-layout{flex-direction:column;gap:16px;display:flex}.book-info{flex-direction:column;align-items:center;gap:16px;padding:24px 20px 20px;display:flex}.book-meta{text-align:center;flex-direction:column;align-items:center;gap:6px;width:100%;padding-top:4px;display:flex}.book-meta h1{font-size:28px}.book-sync{border-top:1px solid var(--line);flex-direction:column;align-items:center;gap:10px;width:100%;padding-top:14px;display:flex}.book-head,.book-head-text{display:contents}.cover-tools{order:1;justify-content:center}.find-panel{order:2}.book-meta{order:3}.book-sync{order:4}.find-panel{background:var(--bg);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:14px;width:100%;padding:16px;display:flex}.search-row{gap:8px;display:flex}.search-row input{flex:1;min-width:0;height:44px;font-size:15px}.cover-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.cover-pick{background:0 0;border:2px solid #0000;border-radius:9px;width:100%;min-height:0;padding:3px}.cover-pick:hover:not(:disabled){border-color:var(--accent)}.cover-pick img{aspect-ratio:1;object-fit:cover;border-radius:5px;width:100%;display:block}.readout{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.readout .mono{letter-spacing:-.02em;font-size:32px;font-weight:600}.nudge{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.nudge button{font-size:14px}.picker{border:2px dashed var(--line);background:var(--bg);text-align:center;cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:22px 16px;display:flex;position:relative}.picker:hover{border-color:var(--muted)}.picker:has(:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.picker input{opacity:0;width:1px;height:1px;position:absolute}.picker-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:50%;justify-content:center;align-items:center;display:flex}.picker-btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;min-height:44px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.file-list{border:1px solid var(--line);border-radius:10px;margin:0;padding:0;list-style:none}.file-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 12px;font-size:14px;display:flex}.file-list li:last-child{border-bottom:0}.file-list li span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-list li span:last-child{font-family:var(--font-mono);color:var(--muted);flex:none;font-size:13px}.hints{color:var(--muted);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;line-height:1.45;display:flex}.upload-status{background:var(--accent-soft);color:var(--accent-text);border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.upload-status>div{justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;display:flex}.upload-status .pct{font-family:var(--font-mono);font-size:28px;font-weight:600}.watch-intro{align-items:center;gap:16px;display:flex}.watch-intro svg{flex:none}.note{background:var(--surface-2);color:var(--muted);border-radius:10px;margin-top:-6px;padding:10px 12px;font-size:13px;line-height:1.45}.code{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid;position:relative}.code:focus-within{outline:2px solid var(--focus);outline-offset:6px;border-radius:12px}.code-cell{background:var(--bg);border:2px solid var(--line);height:60px;font-family:var(--font-mono);border-radius:10px;justify-content:center;align-items:center;font-size:28px;font-weight:600;display:flex}.code-cell.filled{border-color:var(--muted)}.code-cell.next{border-color:var(--accent)}.code.ok .code-cell{border-color:var(--ok)}.code.bad .code-cell{border-color:var(--bad)}.code input{opacity:0;cursor:text;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.signin{flex-direction:column;align-items:center;gap:36px;max-width:420px;margin:0 auto;padding:72px 20px 32px;display:flex}.signin-head{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex}.signin-head h1{font-size:34px}.signin-head p{max-width:290px;font-size:16px}.signin .card{width:100%}.closed-brand{align-items:center;gap:12px;display:flex}.closed-brand .brand{font-size:26px}@media (width>=768px){.app{padding-bottom:0;display:flex}.topbar{display:none}.nav{top:0;border-top:0;border-right:1px solid var(--line);flex-direction:column;flex:none;gap:4px;width:232px;height:100vh;padding:24px 16px;display:flex;position:sticky;inset:auto}.nav-brand{align-items:center;gap:10px;padding:0 10px 24px;display:flex}.nav-brand .brand{font-size:19px}.nav-item{flex-direction:row;justify-content:flex-start;gap:12px;min-height:44px;padding:0 12px;font-size:15px}.nav-item[aria-current=page]{background:var(--accent-soft)}.nav-item:hover:not([aria-current]){background:var(--surface-2)}.main{flex:1;min-width:0;padding:24px clamp(16px,4vw,48px) 56px}.page{gap:20px;max-width:1180px;margin:0 auto}.page.narrow{max-width:640px;margin:0}h1{font-size:36px}.page-head{align-items:flex-end;padding:0}.page-head .muted{margin-top:4px;display:block}.books{grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:20px;display:grid}.book-card{flex-direction:column;gap:12px}.book-card .cover-thumb{width:100%}.book-card .cover-thumb.cover-blank{padding:16px 14px}.book-card .cover-thumb.cover-blank span{font-size:20px}.book-title{font-size:17px}.book-body{gap:8px}.book-actions{flex-wrap:nowrap;margin-top:auto;padding-top:6px}.book-actions .set-current{flex:1;min-height:40px;padding:0 10px}.sheet{border-radius:16px;width:min(420px,100% - 32px);margin:auto;animation:none}.sheet-body{padding:20px}.sheet-body:before{display:none}.book-layout{flex-flow:wrap;align-items:flex-start;gap:24px}.book-layout>.card{padding:28px}.book-info{flex:520px;align-items:stretch;gap:24px;min-width:0}.book-head{flex-wrap:wrap;gap:28px;display:flex}.cover-large{width:260px}.book-head-text{flex-direction:column;flex:220px;gap:8px;padding-top:6px;display:flex}.book-meta{text-align:left;align-items:flex-start;padding:0}.book-meta h1{font-size:34px}.book-sync{border-top:0;align-items:flex-start;padding-top:14px}.cover-tools{border-top:1px solid var(--line);order:2;justify-content:flex-start;padding-top:20px}.find-panel{order:3}.book-position{flex:380px;min-width:0}.book-position h2{font-size:22px}.readout .mono{font-size:40px}}
