:root{--bg: #f6f4ef;--surface: #ffffff;--text: #1d2126;--muted: #5d646c;--line: #dcd8cf;--accent: #2f5d50;--accent-text: #ffffff;--accent-soft: #e3ece8;--danger: #a23a2a;--danger-soft: #f7e4df;--ok-soft: #e1efe4;--radius: 14px;--tap: 48px;color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:17px;line-height:1.45;-webkit-text-size-adjust:100%}@media(prefers-color-scheme:dark){:root{--bg: #16181c;--surface: #212429;--text: #eef0f2;--muted: #a5acb4;--line: #353a41;--accent: #7fc0a8;--accent-text: #0e1a16;--accent-soft: #23352f;--danger: #f08a78;--danger-soft: #3a2420;--ok-soft: #1f3326}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{min-height:100dvh;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}a{color:var(--accent)}h1{font-size:1.5rem;margin:.25rem 0 .5rem}h2{font-size:1.1rem;margin:0 0 .5rem}button,input,select,textarea{font:inherit;color:inherit}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:calc(env(safe-area-inset-top) + .4rem) calc(env(safe-area-inset-right) + 1rem) .4rem calc(env(safe-area-inset-left) + 1rem);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{font-weight:700;text-decoration:none;color:var(--text);min-height:var(--tap);display:flex;align-items:center;gap:.5rem;white-space:nowrap}.tabs{display:flex;gap:.25rem;white-space:nowrap}.tab{min-height:40px;padding:0 .8rem;border-radius:999px;display:flex;align-items:center;text-decoration:none;color:var(--muted);font-weight:600;font-size:.95rem}.tab[data-status=active],.tab.active{background:var(--accent-soft);color:var(--text)}.content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:1rem calc(env(safe-area-inset-right) + 1rem) calc(env(safe-area-inset-bottom) + 6rem) calc(env(safe-area-inset-left) + 1rem)}.page{display:flex;flex-direction:column;gap:1rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:0}.card.error{background:var(--danger-soft);border-color:var(--danger)}.card.success{background:var(--ok-soft)}.card p{margin:0 0 .75rem}.card p:last-child{margin-bottom:0}.empty{text-align:center}details.card summary{cursor:pointer;font-weight:600;min-height:var(--tap);display:flex;align-items:center}.hint{color:var(--muted);font-size:.92rem;margin:0}.muted{color:var(--muted);font-size:.92rem}.center{text-align:center}.error-text{color:var(--danger);font-weight:600}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.grow{flex:1;min-width:0}.button{min-height:var(--tap);padding:0 1.1rem;border-radius:12px;border:1px solid transparent;background:var(--accent);color:var(--accent-text);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:.4rem}.button.secondary{background:transparent;color:var(--text);border-color:var(--line)}.button.danger{background:var(--danger);color:#fff}.button.small{min-height:40px;padding:0 .9rem}.button.wide{width:100%}.button:disabled{opacity:.45;cursor:default}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}.check,.radio{display:flex;align-items:center;gap:.6rem;min-height:var(--tap)}.check input,.radio input{width:22px;height:22px;accent-color:var(--accent)}.field{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.95rem;margin-bottom:.75rem}.field input,.field select,.row input{min-height:var(--tap);padding:0 .8rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-weight:400;width:100%}.row input{width:auto}.choose{border:1px solid var(--line);border-radius:12px;padding:.75rem;margin:0 0 1rem}.choose legend{font-weight:600;padding:0 .25rem}progress{width:100%;height:12px;accent-color:var(--accent)}.facts{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0 0 .75rem}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.facts.stacked{grid-template-columns:1fr;gap:.1rem}.facts.stacked dd{margin-bottom:.5rem}.banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem calc(env(safe-area-inset-right) + 1rem) .6rem calc(env(safe-area-inset-left) + 1rem);background:var(--accent-soft);border-bottom:1px solid var(--line)}.books{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.book-main{display:flex;gap:1rem;color:inherit;text-decoration:none;margin-bottom:.75rem}.book-text{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.progress{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:.4rem}.progress>div{height:100%;background:var(--accent)}.cover{flex:none;border-radius:10px;overflow:hidden;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-small{width:48px;height:48px;font-size:1rem;border-radius:8px}.cover-medium{width:88px;height:88px;font-size:1.6rem}.cover-large{width:min(68vw,300px);height:min(68vw,300px);font-size:3rem;border-radius:16px;box-shadow:0 8px 30px #0000002e}.mini{position:fixed;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;gap:.75rem;padding:.5rem calc(env(safe-area-inset-right) + 1rem) calc(env(safe-area-inset-bottom) + .5rem) calc(env(safe-area-inset-left) + 1rem);background:var(--surface);border-top:1px solid var(--line)}.mini-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;color:inherit;text-decoration:none}.mini-text{display:flex;flex-direction:column;min-width:0}.mini-text strong,.mini-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-text span{color:var(--muted);font-size:.88rem}.round{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;padding:0}.round.big{width:76px;height:76px;background:var(--accent);color:var(--accent-text);border:none}.round:disabled{opacity:.45}.skip{font-weight:700;font-size:.95rem}.player-page .now{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem}.player-page .now h1{margin-top:1rem}.chapter-name{font-weight:600;margin:.25rem 0 0;min-height:1.5em}.seek input[type=range]{width:100%;height:var(--tap);accent-color:var(--accent);margin:0}.times{display:flex;justify-content:space-between;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}.controls{display:flex;justify-content:space-between;align-items:center;gap:.25rem}.settings{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.settings .field{margin:0}.chapters ol{list-style:none;margin:0;padding:0}.chapter{width:100%;min-height:var(--tap);display:flex;justify-content:space-between;align-items:center;gap:1rem;background:none;border:none;border-bottom:1px solid var(--line);padding:.5rem .25rem;text-align:left;cursor:pointer}.chapters li:last-child .chapter{border-bottom:none}.chapter.current{font-weight:700;color:var(--accent)}.log{list-style:none;margin:0 0 1rem;padding:0;max-height:60vh;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.5}.log li{padding:.2rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.log .log-heartbeat{color:var(--muted)}.log .log-error,.log .log-gap{color:var(--danger)}.log .log-note{font-weight:700}.report{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:.75rem;background:var(--bg);border:1px solid var(--line);border-radius:8px}@media(max-width:420px){.brand-full{display:none}}@media(max-width:380px){.round{width:50px;height:50px}.round.big{width:68px;height:68px}.tab{padding:0 .6rem}}.tab-with-icon{gap:.35rem}.tab-icon{flex:none}h3{font-size:1rem;margin:1rem 0 .5rem}.stack-gap{margin-top:.6rem}.stack-gap-bottom{margin-bottom:1rem}.link-button{background:none;border:none;padding:0;min-height:var(--tap);color:var(--accent);text-decoration:underline;cursor:pointer;font-size:inherit}.plain-list{list-style:none;margin:0 0 1rem;padding:0}.plain-list li{padding:.5rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.plain-list li:last-child{border-bottom:none}.connection-code{margin:.25rem 0 .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(1rem,4.6vw,1.35rem);font-weight:700;user-select:all;-webkit-user-select:all;background:var(--accent-soft);border-radius:12px;padding:.75rem;overflow-wrap:anywhere;word-break:break-all}.countdown{font-variant-numeric:tabular-nums}.devices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.device{border:1px solid var(--line);border-radius:12px;padding:.75rem}.device.revoked{opacity:.7}.device-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.device-head strong{flex:1;min-width:0;overflow-wrap:anywhere}.pill{font-size:.8rem;font-weight:600;padding:.1rem .6rem;border-radius:999px;background:var(--accent-soft)}.pill-off{background:var(--danger-soft);color:var(--danger)}.facts.small{font-size:.9rem}.confirm p{margin:0 0 .5rem}@media(max-width:640px){.tab-label,.tab-icon.wide-only{display:none}}@media(max-width:480px){.tab{padding:0 .6rem}}@media(max-width:420px){.topbar{padding-left:calc(env(safe-area-inset-left) + .6rem);padding-right:calc(env(safe-area-inset-right) + .6rem);gap:.35rem}.tabs{gap:.1rem}.tab{padding:0 .5rem;font-size:.88rem}}@media(max-width:359px){.brand{display:none}.topbar{justify-content:center}}.notice{background:var(--accent-soft);border-radius:999px;padding:.4rem 1rem;margin:0 auto;font-size:.92rem;font-weight:600}.card.catalogue-book{display:flex;flex-direction:column;gap:.75rem}
