@font-face{font-family:system;src:local(-apple-system)}
.voice-source-tabs{display:flex;gap:16px;margin:18px 0}.voice-source-tabs [aria-pressed=true]{color:var(--green-dark);font-weight:700;text-decoration:underline;text-underline-offset:6px}.voice-record-toolbar{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:16px;background:var(--surface);padding:12px 0}.voice-record-toolbar [data-record-time]{font-variant-numeric:tabular-nums;color:var(--green-dark)}.voice-reading-passage{font:19px/1.7 Georgia,serif;background:#edf1e5;border-radius:16px;padding:20px;margin:12px 0}.voice-record-toolbar [data-record]{min-width:155px}#custom-voice-panel [data-record-playback] audio{margin-bottom:4px}
#custom-voice-panel audio{width:100%;margin:14px 0}#custom-voice-panel textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:12px;font:16px/1.5 system-ui;color:var(--ink);background:white}#custom-voice-panel details{margin:16px 0}#custom-voice-panel summary{cursor:pointer;color:var(--green-dark)}#custom-voice-panel label.small{display:flex;gap:10px;align-items:flex-start;line-height:1.6}#custom-voice-panel input[type=checkbox]{flex-shrink:0;margin-top:4px}#custom-voice-panel [data-message]:empty{display:none}
:root{--bg:#f5f5ed;--surface:#fffef9;--ink:#22382f;--muted:#59675e;--green:#416e54;--green-dark:#294f39;--line:#e0e5da;--peach:#f0dfc6;--red:#b04432;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}html{overflow-x:clip}body{margin:0;-webkit-font-smoothing:antialiased;overflow-x:clip}button,input,select{font:inherit}button,a,input,select,summary,label.dropzone{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}input,select{font-size:16px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:10px;padding:12px 14px;min-height:48px}input{width:100%}input:focus,select:focus{outline:2px solid var(--green);outline-offset:2px}input[type=checkbox],input[type=radio]{accent-color:var(--green);width:18px;height:18px;min-height:0;margin:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}button svg,.iphone-tip svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.topbar{max-width:1020px;display:flex;align-items:center;gap:16px;margin:auto;padding:26px 32px 15px}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-family:Georgia,serif;font-size:30px;letter-spacing:-1.4px}.brand-dot{color:var(--green)}.beta{margin-left:auto;font-size:9px;letter-spacing:1.7px;color:var(--muted);border:1px solid var(--line);padding:7px 10px;border-radius:20px}.icon-button{display:flex;align-items:center;justify-content:center;background:none;border:0;min-width:44px;min-height:44px;color:var(--ink);font-size:30px}.icon-button:hover{background:#e7ecdf;border-radius:10px}main{max-width:940px;margin:auto;padding:0 28px 65px}.hero{position:relative;padding:38px 0 40px;overflow:hidden}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;color:var(--green);display:flex;align-items:center;gap:9px}.eyebrow>span{width:5px;height:5px;border-radius:100%;background:var(--green)}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(48px,7vw,76px);line-height:1.05;letter-spacing:-3px;margin:22px 0 18px}h1 em{font-weight:400;color:var(--green)}.hero>p{font-size:16px;line-height:1.75;color:var(--muted);margin:0;max-width:420px}.hero-art{position:absolute;right:20px;top:65px;width:270px;height:245px}.art-page{position:absolute;left:40px;top:8px;width:137px;height:172px;border:1px solid #d2d7c9;border-radius:10px;background:#e5e9dc;transform:rotate(-12deg);padding:27px 21px;box-shadow:7px 7px 0 #eff0e5}.art-page span{display:block;height:3px;border-radius:4px;background:#bbc8b2;margin:14px 0}.art-page span:first-child{height:8px;width:60%;background:#859e7a}.art-page span:last-child{width:65%}.art-wave{position:absolute;right:10px;bottom:22px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:24px;background:#416e54;width:185px;height:90px;box-shadow:0 12px 30px #3b594a15;transform:rotate(7deg)}.art-wave i{height:18px;width:5px;background:#dbe8cc;border-radius:8px}.art-wave i:nth-child(2),.art-wave i:nth-child(8){height:29px}.art-wave i:nth-child(3),.art-wave i:nth-child(7){height:41px}.art-wave i:nth-child(4),.art-wave i:nth-child(6){height:53px}.art-wave i:nth-child(5){height:38px}
.panel{padding:29px;background:var(--surface);border:1px solid var(--line);border-radius:20px;margin-bottom:22px;box-shadow:0 3px 8px #1b332304}.section-heading{display:flex;gap:13px;align-items:center;margin-bottom:22px}h2{margin:0;font-size:19px;font-weight:600;letter-spacing:-.4px}.step{font-size:11px;color:var(--green);background:#eaf0e2;border-radius:50%;width:29px;height:29px;display:flex;align-items:center;justify-content:center}.muted{color:var(--muted);line-height:1.6}.small{font-size:12px}.access-panel{max-width:570px}.access-panel form{display:flex;gap:12px;margin-top:20px}.access-panel .primary{white-space:nowrap}.error{font-size:13px;color:var(--red);line-height:1.55;margin:12px 0 0}.error:empty{display:none}.primary{border:0;background:var(--green-dark);color:#fffef9;font-size:14px;font-weight:600;min-height:52px;border-radius:11px;padding:14px 19px;display:flex;justify-content:space-between;align-items:center;gap:15px}.primary:hover{background:#356346}.primary span{font-size:20px;font-weight:400}.full{width:100%;margin-top:24px}.status-strip{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;line-height:1.4;margin-bottom:18px}.status-dot{width:6px;height:6px;background:#d0a56c;border-radius:50%;flex-shrink:0}.status-dot.online{background:#709d69}.local-badge{margin-left:auto;border-left:1px solid var(--line);padding-left:12px;white-space:nowrap}.dropzone{position:relative;border:1px dashed #c4cfbe;background:#f3f5ed;border-radius:13px;min-height:170px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px 18px;gap:9px;text-align:center;cursor:pointer;transition:background .15s}.dropzone:hover,.dropzone.dragover{background:#eaf0e0}.dropzone:focus-within{outline:2px solid var(--green);outline-offset:2px}.dropzone strong{font-size:15px;font-weight:550;overflow-wrap:anywhere}.dropzone>span:not(.file-icon){font-size:12px;color:var(--muted)}.file-icon svg{width:29px;height:33px;fill:none;stroke:var(--green);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.dropzone .file-limit{font-size:10px!important;color:#899184!important;margin-top:2px}.field-label{display:block;font-size:12px;font-weight:550;margin:22px 0 8px}.voice-heading{margin:28px 0 16px}.quiet-label{font-size:10px;margin-left:auto;color:var(--muted)}.voice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.voice-card{border:1px solid var(--line);border-radius:12px;padding:14px 13px;position:relative;background:white}.voice-card.selected{border-color:var(--green);background:#f0f4e9;box-shadow:0 0 0 1px var(--green)}.voice-card label{display:block;cursor:pointer}.voice-card input{position:absolute;right:13px;top:15px;width:14px;height:14px}.voice-card strong{display:block;font-size:14px;margin:0 24px 8px 0;font-weight:600}.voice-card span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.preview-button{border:0;border-radius:8px;background:#eaf0e1;color:var(--green-dark);width:35px;height:34px;font-size:13px;margin-top:9px}.pace-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-top:22px;gap:15px}.pace-row select{font-size:13px;min-height:42px;padding:9px 11px}.options{margin-top:20px;border-top:1px solid var(--line);padding-top:17px}.options summary{font-size:12px;color:var(--muted);cursor:pointer}.range-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.range-fields label{font-size:11px;color:var(--muted)}.range-fields input{display:block;margin-top:8px}.check-label{display:flex;align-items:center;gap:10px;font-size:12px;margin:18px 0}.upload-progress{margin:20px 0 2px}.progress-line{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);gap:10px;margin-bottom:10px}progress{display:block;width:100%;height:6px;appearance:none;-webkit-appearance:none;border:0;border-radius:10px;overflow:hidden;background:#e5e9dd}progress::-webkit-progress-bar{background:#e5e9dd}progress::-webkit-progress-value{background:var(--green);border-radius:10px}progress::-moz-progress-bar{background:var(--green)}
.job-panel h2{margin-bottom:9px;overflow-wrap:anywhere}.job-panel .eyebrow{margin-bottom:14px}.book-stats{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.book-stats span{font-size:11px;padding:7px 9px;border-radius:6px;background:#f0f3e9;color:var(--muted)}.job-panel>p{font-size:13px;color:var(--muted);line-height:1.6}.job-panel .review-text{font-size:12px;color:var(--muted);max-height:240px;overflow:auto;white-space:pre-wrap;line-height:1.65;background:#f6f7f0;padding:14px;border-radius:9px}.job-panel details summary{font-size:12px;cursor:pointer;color:var(--green);margin:18px 0 12px}.warning{font-size:12px;background:#fbf1dc;color:#856532;padding:12px;border-radius:9px;line-height:1.6;margin-top:13px}.warning-check{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.5;margin-top:14px}.warning-check input{flex-shrink:0;margin-top:2px}.cancel-row{display:flex;justify-content:space-between;gap:15px;margin-top:18px;align-items:center}.text-button{background:none;border:0;color:var(--green);font-size:12px;padding:10px 0;min-height:44px;text-decoration:none}.muted-button{color:var(--muted)}.library-section{margin-top:34px}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.library{display:grid;grid-template-columns:1fr 1fr;gap:12px}.empty-shelf{grid-column:1/-1;text-align:center;border:1px dashed var(--line);padding:33px 18px;border-radius:15px;color:var(--muted)}.empty-shelf>span{font-size:27px;color:#9baa91}.empty-shelf p{font-size:13px;margin-bottom:6px}.empty-shelf small{font-size:11px}.shelf-card{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:13px;padding:15px;background:var(--surface);min-width:0;cursor:pointer;text-align:left;width:100%;color:var(--ink)}.shelf-card:hover{border-color:#b9c8b1}.book-cover{background:var(--green);color:#e6eccf;border-radius:3px 8px 8px 3px;flex-shrink:0;width:48px;height:64px;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:21px;box-shadow:inset 4px 0 0 #ffffff25}.shelf-card:nth-child(3n+2) .book-cover{background:#bc916f;color:#f9ead2}.shelf-card:nth-child(3n+3) .book-cover{background:#7d8998;color:#e7edf4}.book-info{min-width:0;flex:1}.book-info strong{display:block;font-size:13px;font-weight:550;margin-bottom:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-info small{font-size:11px;color:var(--muted);display:block;line-height:1.5}.book-action{font-size:16px;color:var(--green);flex-shrink:0}.iphone-tip{display:flex;align-items:flex-start;gap:13px;padding:20px 0 8px;margin-top:25px;border-top:1px solid var(--line);color:var(--muted)}.iphone-tip svg{flex-shrink:0;margin-top:1px}.iphone-tip strong{font-size:12px;color:var(--ink);font-weight:550}.iphone-tip p{font-size:11px;line-height:1.8;margin:6px 0;max-width:660px}footer{font-size:10px;color:#8a9285;line-height:1.8;margin-top:20px}.loading{padding:40px 0;font-size:13px;color:var(--muted)}.loading span{margin-left:12px;letter-spacing:3px;animation:fade 1.2s infinite}@keyframes fade{50%{opacity:.3}}
.player-panel{position:fixed;bottom:0;left:0;right:0;background:#fffefaf5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid #d6dfcf;box-shadow:0 -10px 35px #14221b12;z-index:10;padding:20px 25px max(15px,env(safe-area-inset-bottom))}.player-inner{max-width:884px;margin:auto}.player-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.player-top h2{font-size:16px;margin-top:7px;max-width:650px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-top .eyebrow{font-size:8px}.player-top .icon-button{font-size:25px;min-height:35px;min-width:35px}.player-panel audio{width:100%;height:46px}.player-extras{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}.skip-controls{display:flex;gap:12px}.skip-controls button{background:none;border:0;color:var(--green);min-height:42px;font-size:20px;padding:3px 5px}.skip-controls span{font-size:10px}.player-extras select{font-size:11px;min-height:36px;padding:6px 8px;border:0;background:#eef2e7}.download{font-size:11px;text-decoration:none;color:var(--green);padding:10px 0;white-space:nowrap;min-height:40px;display:flex;align-items:center}.chapter-select{width:100%;min-height:38px;font-size:12px;padding:8px 11px;margin-top:8px;background:#f5f6ee}.player-open main{padding-bottom:320px}.toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);border-radius:12px;background:var(--ink);color:white;padding:13px 18px;font-size:12px;z-index:30;max-width:calc(100vw - 32px);text-align:center;line-height:1.5}.player-open .toast{bottom:300px}
@media(min-width:760px){#workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:25px}#workspace>.status-strip,#workspace>.library-section,#workspace>.iphone-tip,#workspace>footer{grid-column:1/-1}#upload-panel{grid-column:1/-1}.voice-grid{grid-template-columns:repeat(4,1fr)}.job-panel{grid-column:1/-1}#configure{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}#configure>.field-label,#configure>input,#configure>.voice-heading,#configure>.voice-grid,#configure>.full{grid-column:1/-1}.options{margin-top:22px;border-top:0;padding-top:0}.access-panel form input{max-width:260px}}
@media(max-width:650px){.topbar{padding:20px 22px 8px}.brand{font-size:27px}.beta{font-size:8px;letter-spacing:1.3px;padding:6px 9px}main{padding:0 20px 45px}.hero{padding:30px 0 33px}.hero h1{font-size:54px;letter-spacing:-2.5px}.hero>.eyebrow{font-size:8px;letter-spacing:1.4px}.hero>p{font-size:13px;max-width:255px;line-height:1.8}.hero-art{right:-48px;top:90px;width:150px;height:160px;opacity:.95}.art-page{left:20px;width:82px;height:108px;padding:12px 11px;border-radius:6px;box-shadow:4px 4px 0 #eff0e5}.art-page span{height:2px;margin:9px 0}.art-page span:first-child{height:5px}.art-wave{width:112px;height:58px;gap:4px;bottom:8px;right:4px;border-radius:15px}.art-wave i{width:3px;height:10px}.art-wave i:nth-child(2),.art-wave i:nth-child(8){height:17px}.art-wave i:nth-child(3),.art-wave i:nth-child(7){height:24px}.art-wave i:nth-child(4),.art-wave i:nth-child(6){height:33px}.art-wave i:nth-child(5){height:22px}.panel{padding:21px;border-radius:16px;margin-bottom:17px}.section-heading{gap:10px;margin-bottom:17px}h2{font-size:17px}.voice-grid{grid-template-columns:1fr 1fr;gap:10px}.voice-card{padding:13px}.voice-heading{margin-top:26px}.quiet-label{font-size:9px}.dropzone{min-height:170px}.status-strip{font-size:9px;margin-bottom:15px;gap:7px}.local-badge{font-size:9px;padding-left:9px}.access-panel form{flex-direction:column}.library{grid-template-columns:1fr}.library-section{margin-top:27px}.library-heading h2{font-size:18px}.player-panel{padding:16px 18px max(12px,env(safe-area-inset-bottom))}.player-top h2{max-width:calc(100vw - 88px)}.player-extras{gap:5px}.skip-controls{gap:10px}.book-stats{gap:7px}.book-stats span{font-size:10px}.primary{font-size:13px}.pace-row{font-size:12px}.pace-row select{font-size:12px;max-width:170px}}
@media(max-width:360px){.hero-art{display:none}.hero h1{font-size:48px}.hero>p{max-width:none}.status-strip .local-badge{display:none}.quiet-label{display:none}.player-extras{flex-wrap:wrap}.player-extras .download{margin-left:auto}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.job-panel>.error{color:var(--red)}
.preview-button{width:44px;height:44px}
.topbar{padding-top:calc(26px + env(safe-area-inset-top));padding-left:calc(32px + env(safe-area-inset-left));padding-right:calc(32px + env(safe-area-inset-right))}
main{padding-left:calc(28px + env(safe-area-inset-left));padding-right:calc(28px + env(safe-area-inset-right))}
.player-panel{padding-left:calc(25px + env(safe-area-inset-left));padding-right:calc(25px + env(safe-area-inset-right))}
@media(max-width:650px){.topbar{padding-top:calc(20px + env(safe-area-inset-top));padding-left:calc(22px + env(safe-area-inset-left));padding-right:calc(22px + env(safe-area-inset-right))}main{padding-left:calc(20px + env(safe-area-inset-left));padding-right:calc(20px + env(safe-area-inset-right))}.player-panel{padding-left:calc(18px + env(safe-area-inset-left));padding-right:calc(18px + env(safe-area-inset-right))}}
@media(max-width:650px){.pace-row select,.player-extras select,.chapter-select{font-size:16px}.player-extras{flex-wrap:wrap}.player-extras .download{margin-left:auto}}

/* Shared books have one focused player, rather than a floating library tray. */
.shared-listening{background:radial-gradient(ellipse at 50% 10%,#e8eddf 0%,#f5f5ed 65%)}
.shared-listening .topbar{max-width:650px;padding-bottom:22px}.shared-listening .beta{display:none}
.shared-listening main{max-width:650px;padding-bottom:32px!important}
.shared-listening #shared-panel{padding:36px 40px 22px;border-radius:26px;box-shadow:0 14px 60px #263d2e09}
.shared-listening #shared-panel>.eyebrow{justify-content:center;font-size:10px}
.shared-listening #shared-panel h1{font-size:clamp(32px,6vw,48px);letter-spacing:-1.7px;line-height:1.12;text-align:center;margin:16px 0 12px;overflow-wrap:anywhere}
.book-length{text-align:center;font-size:13px;color:var(--muted);margin:0 0 26px}
.shared-listening .player-panel{position:static;background:none;border:0;box-shadow:none;backdrop-filter:none;padding:0;max-height:none}
.shared-listening .player-top,.shared-listening .skip-controls{display:none}
.listening-art{position:relative;border-radius:20px;background:linear-gradient(140deg,#365c45,#203e31);height:205px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:25px}
.listening-art:before{content:'';position:absolute;width:240px;height:240px;border:1px solid #ffffff12;border-radius:50%;top:-110px;right:-65px}
.art-book{position:absolute;top:27px;width:75px;height:94px;background:#e2d7bd;color:#3e5c41;border-radius:3px 9px 9px 3px;box-shadow:inset 6px 0 0 #af9c7260,7px 9px 20px #0e241939;transform:rotate(-7deg);display:flex;align-items:center;flex-direction:column;padding:13px}
.art-book span{font:34px Georgia,serif;line-height:1.1}.art-book i{width:36px;height:2px;background:#9ea88b;margin-top:6px}.art-book i:last-child{width:23px}
#sound-wave{position:absolute;bottom:19px;width:calc(100% - 38px);height:52px}
.listen-progress input[type=range]{appearance:none;-webkit-appearance:none;padding:0;min-height:44px;width:100%;border:0;background:transparent;cursor:pointer;accent-color:var(--green);margin:0}
.listen-progress input[type=range]::-webkit-slider-runnable-track{background:#dce5d6;height:6px;border-radius:6px}.listen-progress input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:19px;height:19px;border-radius:50%;background:#416e54;margin-top:-6.5px;box-shadow:0 0 0 4px #416e5410}
.listen-progress input[type=range]::-moz-range-track{height:6px;border-radius:6px;background:#dce5d6}.listen-progress input[type=range]::-moz-range-thumb{width:19px;height:19px;border:0;border-radius:50%;background:#416e54}
.listen-times{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:-2px}
.listen-controls{display:flex;justify-content:center;align-items:center;gap:34px;margin-top:14px}
.listen-controls button{border:0;background:transparent;color:var(--green-dark);width:52px;height:60px;font-size:35px;position:relative}
.listen-controls small{font-size:11px;position:absolute;top:27px;left:0;right:0;font-weight:600}
.listen-controls #listen-toggle{width:76px;height:76px;border-radius:50%;background:var(--green-dark);color:white;font-size:27px;box-shadow:0 5px 14px #294f3920;display:grid;place-items:center}
.listen-controls #listen-toggle:hover{background:#416e54}.listen-controls #listen-icon{line-height:1}
.resume-note{text-align:center;color:var(--muted);font-size:11px;line-height:1.5;min-height:18px;margin:17px 0 23px;font-variant-numeric:tabular-nums}
.shared-listening .player-extras{border-top:1px solid var(--line);padding-top:16px;margin-top:0;gap:15px;flex-wrap:nowrap}
.shared-listening .player-extras select{font-size:14px;min-height:44px;padding:10px 13px}
.shared-listening .player-extras .download{font-size:13px;margin-left:auto}
.shared-listening .chapter-select{margin-top:10px;min-height:48px;font-size:14px}
.listening-help{margin-top:20px;border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:12px;line-height:1.7}
.listening-help summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:center;color:var(--green)}
.listening-help p{margin:4px 0 12px}.shared-listening .toast{bottom:25px}
#share-dialog{padding:16px;background:#f1f4e9;border-radius:12px;margin-top:10px}#share-dialog .field-label{margin-top:10px}#share-dialog input[readonly]{font-size:12px}#share-dialog .check-label{margin-top:0;line-height:1.5}
.player-panel{max-height:85dvh;overflow-y:auto}
@media(max-width:650px){.shared-listening .topbar{padding-bottom:18px}.shared-listening #shared-panel{padding:27px 23px 12px;border-radius:22px}.shared-listening main{padding-left:16px;padding-right:16px}.shared-listening #shared-panel h1{font-size:36px}.book-length{font-size:12px;margin-bottom:23px}.listening-art{height:175px;margin-bottom:15px}.art-book{top:20px;width:67px;height:84px;padding-top:10px}#sound-wave{bottom:13px;height:44px}.resume-note{margin-bottom:18px}.shared-listening .player-extras select,.shared-listening .chapter-select{font-size:16px}.shared-listening .player-extras{padding-top:10px}.shared-listening .player-extras .download{font-size:12px}.listening-help{margin-top:12px}}
@media(max-width:360px){.shared-listening #shared-panel{padding-left:18px;padding-right:18px}.shared-listening #shared-panel h1{font-size:30px}.listen-controls{gap:24px}}
.shared-listening #shared-panel h1{text-wrap:balance}
.credit-actions{display:flex;gap:12px;flex-wrap:wrap}.credit-actions button{flex:1;min-width:160px}#email-form input{width:100%;margin:8px 0 14px}#api-key-result{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}#signup-panel{margin-bottom:20px}.developer-page{max-width:760px;padding:32px 20px;margin:auto}.developer-page pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:18px;background:#e9eee3;border-radius:12px}.developer-page table{width:100%;border-collapse:collapse}.developer-page td,.developer-page th{padding:12px;text-align:left;border-bottom:1px solid #ccd5c8}
.offline-controls{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.offline-controls .primary{min-height:48px}.offline-controls>.small{font-size:12px;line-height:1.5;margin:12px 0}.offline-controls #offline-manage{display:flex;align-items:center;justify-content:space-between;gap:14px}.offline-help{font-size:11px;color:var(--muted);line-height:1.7}.offline-help summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--green)}.offline-help p{margin:5px 0 12px}#offline-progress{padding-top:8px}#offline-progress .progress-line{align-items:center;font-variant-numeric:tabular-nums}.connection-note{margin:14px 0;padding:12px 16px;border-radius:12px;background:#e5ecdc;color:var(--green-dark);font-size:12px;line-height:1.5}#offline-shelf{margin-top:24px}.shared-listening #offline-shelf{padding:24px}.shared-listening #offline-shelf .library{grid-template-columns:1fr}.offline-controls .error{font-size:12px}.offline-controls button:disabled{cursor:wait}
/* One clear action handles offline setup; secondary file controls stay in Options. */
.offline-controls{background:#edf2e7;border:1px solid #dbe4d2;border-radius:16px;padding:16px 18px;margin:18px 0}.offline-row{display:flex;align-items:center;gap:16px;justify-content:space-between}.offline-copy{min-width:0}.offline-copy strong{font-size:14px;font-weight:600}.offline-copy p{font-size:11px;color:var(--muted);line-height:1.5;margin:5px 0 0;max-width:235px}.offline-row .primary{flex-shrink:0;min-height:44px;padding:11px 15px;font-size:12px;white-space:nowrap;border-radius:12px}.offline-controls[data-state=saved] .primary:disabled{background:#dce8d2;color:#365c45;opacity:1;cursor:default}.offline-controls[data-state=saving] .primary:disabled{cursor:progress}.offline-help summary{font-size:11px;min-height:36px;padding-top:6px;justify-content:flex-start}.offline-help{margin-top:5px}.offline-controls #offline-manage{border-top:1px solid #dbe4d2;margin-top:7px}.offline-controls .error:empty{display:none}.shared-listening .player-extras{border-top:0;padding-top:0}.shared-listening .player-extras select{width:100%}.offline-controls button:disabled{cursor:default}@media(max-width:360px){.offline-controls{padding:14px}.offline-row{gap:10px}.offline-row .primary{padding:10px;font-size:11px}.offline-copy strong{font-size:13px}}

.google-sign-in{display:flex;align-items:center;justify-content:center;gap:12px;min-height:50px;background:#fff;color:#1f1f1f;border:1px solid #747775;border-radius:24px;font-weight:500}.google-sign-in:hover{background:#f4f7fc}.google-sign-in svg{flex-shrink:0}
/* Account chip */
.account-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:7px 12px 7px 10px;min-height:36px;color:var(--ink);font-size:12px;font-weight:550}
.account-chip:hover{background:#e7ecdf}
.account-chip[aria-expanded="true"]{border-color:var(--green);background:#f0f4e9}
.account-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0}
.account-chip-label{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:650px){.account-chip{min-height:34px}.account-chip-label{max-width:112px}}

/* Overlays: hub + settings */
.folio-overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;pointer-events:auto}
.folio-backdrop{position:absolute;inset:0;background:#22382f33}
body.player-open .folio-overlay{bottom:min(320px,42dvh)}
.account-hub{position:relative;max-width:min(420px,calc(100vw - 40px));max-height:min(560px,calc(100dvh - 48px));overflow:auto}
.account-hub .overlay-close{position:absolute;top:8px;right:8px;font-size:24px}
.account-hub .account-hub-identity{margin-bottom:14px}
.account-hub .badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.account-hub .badge{font-size:10px;padding:6px 8px;border-radius:6px;background:#f0f3e9;color:var(--muted)}
.account-hub .meta{font-size:11px;color:var(--muted);margin-top:4px}
.account-hub .links{margin-top:12px;border-top:1px solid var(--line)}
.account-hub .account-hub-link{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:none;border:0;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;font-weight:550}
.account-hub .account-hub-link:last-child{border-bottom:0}
.account-hub .account-hub-link:hover{background:#f3f5ed}
.account-hub .account-sign-out{color:var(--red);margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}

/* ===== Account menu polish (FD 2026-10-07) — append AFTER existing account-hub rules, before link-underline block ===== */
/* Card: real width, Folio .panel quality, grid header so close never overlaps */
.account-hub{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:4px;width:min(400px,calc(100vw - 32px));max-width:none;max-height:min(620px,calc(100% - 32px));overflow:auto;overscroll-behavior:contain;margin:0;padding:24px 22px 16px 24px;border-radius:22px;border-color:#dfe5d8;box-shadow:0 1px 2px #1b33230a,0 18px 50px #1b332320}
.account-hub .account-hub-content{display:contents}
.account-hub .overlay-close{position:static;grid-column:2;grid-row:1;margin:-10px -10px 0 0;font-size:24px;color:var(--muted)}
.account-hub .overlay-close:hover{color:var(--ink)}

/* Identity: eyebrow → serif title → email (wraps) → badges → member since */
.account-hub .account-hub-identity{grid-column:1;grid-row:1;min-width:0;margin:0 0 20px}
.account-hub .account-hub-identity .eyebrow{margin:6px 0 10px}
.account-hub #account-hub-title{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:26px;line-height:1.15;letter-spacing:-.6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-hub .account-hub-email{font-size:13px;line-height:1.45;color:var(--ink);margin-top:6px;overflow-wrap:anywhere}
.account-hub .meta{font-size:11px;line-height:1.5}
.account-hub .badges{margin-top:12px}
.account-hub .badges:empty{display:none}
.account-hub .badge{background:#f0f4e9;color:var(--green-dark)}
.account-hub .account-hub-identity>.meta:last-child{margin-top:10px}

/* Rows: grouped card (shelf-card language), Folio ink — never UA/iOS blue */
.account-hub .links{grid-column:1/-1;margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.account-hub .account-hub-link{-webkit-appearance:none;appearance:none;min-height:50px;padding:13px 14px 13px 16px;gap:12px;color:var(--ink);font-size:15px;transition:background .12s}
.account-hub .account-hub-link>span{position:relative;top:-1px;color:var(--muted);font-size:19px;line-height:1;transition:transform .12s,color .12s}
.account-hub .account-hub-link:hover{background:#f3f5ed}
.account-hub .account-hub-link:hover>span{color:var(--green);transform:translateX(2px)}
.account-hub .account-hub-link:focus-visible{outline-offset:-3px;border-radius:12px}
.account-hub a,.settings-sheet a{color:var(--green)}
.account-hub a:hover,.settings-sheet a:hover{color:var(--green-dark)}

/* Sign out: ONE full-width separator, even rhythm (fixes double rule from wrapper+button sharing .account-sign-out) */
.account-hub .account-hub-content>.account-sign-out{grid-column:1/-1;margin:18px 0 0;padding:8px 0 0;border:0;border-top:1px solid var(--line)}
.account-hub button.account-sign-out{-webkit-appearance:none;appearance:none;display:flex;align-items:center;width:100%;margin:0;padding:12px 16px;border:0;border-radius:12px;min-height:48px;font-size:14px;font-weight:550;color:var(--red);text-align:left}
.account-hub button.account-sign-out:hover{background:#f8ebe7}

@media(max-width:650px){
  .account-hub{padding:22px 18px 12px 20px;border-radius:20px}
  .account-hub #account-hub-title{font-size:24px}
}
@media(prefers-reduced-motion:reduce){.account-hub .account-hub-link,.account-hub .account-hub-link>span{transition:none}}

/* Settings sheet: long-email safety (P1) */
.settings-section strong,.settings-section .small{overflow-wrap:anywhere}

.settings-sheet{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 60px #263d2e14;max-width:min(720px,calc(100vw - 48px));max-height:min(640px,calc(100dvh - 40px));display:flex;flex-direction:column;overflow:hidden}
.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.settings-main{display:grid;grid-template-columns:200px 1fr}
.settings-nav{border-right:1px solid var(--line);padding:12px;background:var(--surface)}
.settings-nav-item{display:block;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:12px;padding:10px 12px;font-size:13px;color:var(--muted)}
.settings-nav-item:hover{background:#eaf0e0}
.settings-nav-item.is-active{border-color:var(--green);background:#f0f4e9;color:var(--ink)}
.settings-body{padding:22px 24px;overflow:auto}
.settings-section .section-heading{margin-bottom:14px}
.settings-callout{background:#fbf1dc;color:#856532;padding:12px;border-radius:9px;font-size:12px;line-height:1.6}
.settings-section .small.muted{margin-top:8px}
.settings-section .credit-actions{margin-top:14px}
.settings-section .field-label{margin-top:6px}
@media(max-width:760px){
  .settings-main{display:block}
  .settings-nav{border-right:0;border-bottom:1px solid var(--line);display:flex;gap:8px;overflow:auto}
  .settings-nav-item{white-space:nowrap}
}

/* Link underline + undecorated chrome (FD brief 2026-10-07) */
a{color:inherit;text-decoration-color:color-mix(in srgb,var(--green) 55%,transparent);text-decoration-thickness:from-font;text-underline-offset:.22em;text-underline-position:under}
a:hover{color:var(--green);text-decoration-color:var(--green)}
.brand,.text-button,.muted-button,.download,.account-hub-link,.settings-nav-item{text-decoration:none}
.small a,footer a,.muted a,.developer-page a,.iphone-tip a{color:var(--green);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.28em;text-underline-position:under}
.small a:hover,footer a:hover,.developer-page a:hover{color:var(--green-dark);text-decoration-thickness:1.5px}

/* Gate legal spacing and separator */
.gate-legal{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.gate-legal-sep{color:var(--muted)}

/* Access panel intro hierarchy + details spacing */
.access-panel #signup-panel>p{font-size:14px}
.access-panel details[open]{margin-bottom:8px}

/* P1: Soften mobile hero art */
@media(max-width:650px){.hero-art{right:-28px;opacity:.88}}

/* ===== Post-PR9 polish (FD 2026-10-07) — appended by Cloud Agent ===== */
/* ===== Post-PR9 polish (FD 2026-10-07) — append at the END of app/public/styles.css (after the "P1: Soften mobile hero art" rule) ===== */

/* 1 (P0) Settings sections: no hidden tabs on narrow widths.
   Equal-width pill grid: 3x2 at 390, 2x3 at 320, single row near 760. Overrides the old flex + overflow:auto strip. */
@media(max-width:760px){
  .settings-sheet{width:calc(100vw - 48px)}  /* stable width: the sheet is a centred flex item and would shrink-wrap a grid nav */
  .settings-main{flex:1 1 auto;min-height:0;overflow:auto}  /* short phones: nav + body scroll inside the sheet instead of clipping */
  .settings-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:6px;overflow:visible;padding:10px 12px}
  .settings-nav-item{text-align:center;white-space:nowrap;padding:10px 6px;min-height:44px}
}

/* 2 (P1) Beta badge: never wraps; at <=360px hide it while signed in (the chip already says you're in). */
.beta{white-space:nowrap}
@media(max-width:360px){
  .topbar:has(#account-chip:not([hidden])) .beta{display:none}
  .topbar:has(#account-chip:not([hidden])) .account-chip{margin-left:auto}  /* .beta carried margin-left:auto; hand it to the chip so chip + share stay right-aligned */
}

/* 3 (P1) Hero art: stop the bleed at <=650px. .hero{overflow:hidden} clips at the content column, so any negative
   right offset cuts the waveform card. Sit the art inside the column and scale to 80% from its top-right corner so the waveform also clears the subtitle (measured 361-650px: 0px² overlap). */
@media(max-width:650px){.hero-art{right:0;transform:scale(.8);transform-origin:right top}}

/* 5 (P2) Settings > Account Sign out = same rust button row as the hub (one rule, 48px).
   Negative inline margin lines the label up with section copy while the hover tint gets room. */
.settings-section>.account-sign-out{margin:18px 0 0;padding:8px 0 0;border-top:1px solid var(--line)}
.settings-section button.account-sign-out{-webkit-appearance:none;appearance:none;display:flex;align-items:center;width:calc(100% + 24px);margin:0 -12px;padding:12px;border:0;border-radius:12px;min-height:48px;background:none;font-size:14px;font-weight:550;color:var(--red);text-align:left}
.settings-section button.account-sign-out:hover{background:#f8ebe7}

/* Share dialog visibility (2026-10-07) — appended after polish */
#share-dialog{position:relative;z-index:20}


/* ===== Copy trim (commit 4) — appended by Cloud Agent ===== */
/* ===== Copy trim (FD 2026-10-07, PR A commit 4) — append at the END of app/public/styles.css, after the post-PR9 polish block ===== */

/* B1: the marketing hero is for the signed-out gate only. #access-panel starts [hidden] in index.html, so the hero is also
   hidden while "Opening your library…" shows: returning users never see it flash. Signed-out visitors get hero + gate together,
   with the commit-1 hero-art/waveform rules untouched. */
main:has(> #access-panel[hidden]) > .hero{display:none}

/* Gap the hidden hero leaves: the first workspace card would sit ~8px under the topbar on phones. Give it the same air the hero's
   top padding used to provide, scaled down. */
main:has(> #access-panel[hidden]) > #workspace{padding-top:18px}
@media(max-width:650px){main:has(> #access-panel[hidden]) > #workspace{padding-top:14px}}

/* A1: player offline box = just the Save offline button; the status line only renders when it has something to say. */
.offline-copy:has(#offline-status:empty){display:none}

/* A3/A4: shared listener page keeps a single expiry line under the player. */
.shared-expiry{text-align:center;margin:18px 0 0}

/* C3 gap: with the trial line cut, form margin (20px) + button margin (24px) stack under the heading (~61px of air).
   Pull the Google button up to the heading rhythm (~21px). */
#signup-panel>form{margin-top:0}
#signup-panel>form>.google-sign-in{margin-top:4px}
/* ===== Appended PR B (FD rev): begin ===== */
:root{--player-mini-h:calc(59px + max(10px, env(safe-area-inset-bottom)))}
body.library-view .hero,body.library-view #workspace,body.library-view #offline-shelf{display:none}
.library-page{max-width:760px;margin:0 auto;padding:4px 0 0}
.lib-header{display:flex;align-items:center;gap:2px;margin:0 0 16px -12px}
.lib-back{color:var(--muted);text-decoration:none}
.lib-back svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lib-back:hover{color:var(--ink)}
.lib-title{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:34px;line-height:1.1;letter-spacing:-1px;margin:0}
.lib-title:focus{outline:none}
.lib-title:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:4px}
.lib-count{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.lib-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.lib-row{display:flex;align-items:stretch;border-top:1px solid var(--line)}
.lib-row:first-child{border-top:0}
.lib-open{flex:1;min-width:0;display:flex;align-items:center;gap:14px;min-height:76px;padding:12px 4px 12px 14px;background:none;border:0;text-align:left;color:var(--ink)}
.lib-open:hover{background:#f3f5ed}
.lib-open:focus-visible,.lib-more:focus-visible{outline-offset:-3px;border-radius:12px}
.lib-row .book-cover{width:40px;height:52px;font-size:18px}
.lib-row[data-state=canceled] .book-cover,.lib-row[data-state=failed] .book-cover,.lib-row[data-state=uploading] .book-cover{background:#dfe3d8;color:#8a9285;box-shadow:none}
.lib-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}
.lib-name{font-size:14px;font-weight:600;line-height:1.35;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lib-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;font-size:12px;line-height:1.4;color:var(--muted);font-variant-numeric:tabular-nums}
.lib-row progress{height:3px;margin-top:3px;max-width:220px}
.lib-more{flex-shrink:0;width:48px;min-height:44px;display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--muted)}
.lib-more svg{width:20px;height:20px;fill:currentColor;stroke:none}
.lib-more:hover{background:#f3f5ed;color:var(--ink)}
.lib-more[aria-expanded=true]{background:#f0f4e9;color:var(--green-dark)}
.lib-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;line-height:1;padding:4px 7px;border-radius:6px;white-space:nowrap;background:#eaf0e2;color:var(--green-dark)}
.lib-badge.warn{background:#fbf1dc;color:#856532}
.lib-badge.quiet{background:#eceee7;color:var(--muted)}
.lib-load{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--green-dark);font-size:14px;font-weight:600}
.lib-load:hover{background:#f3f5ed}
.lib-load:disabled{cursor:progress}
.lib-group-label{margin:26px 0 10px 2px}
.lib-empty{margin-top:4px}
.lib-empty .empty-shelf{background:var(--surface)}
.lib-empty .empty-shelf p{color:var(--ink);font-size:15px;margin:10px 0 18px}
.lib-empty .primary{display:inline-flex;justify-content:center;margin:0 auto;min-height:48px;padding:14px 26px;text-decoration:none}
.library-heading a.text-button{display:inline-flex;align-items:center}
@media(max-width:650px){.lib-title{font-size:30px}.lib-header{margin-bottom:14px}.lib-open{gap:12px;padding-left:12px}}
.folio-sheet{position:relative;display:flex;flex-direction:column;width:min(440px,calc(100vw - 32px));max-height:min(600px,calc(100% - 32px));background:var(--surface);border:1px solid #dfe5d8;border-radius:22px;box-shadow:0 1px 2px #1b33230a,0 18px 50px #1b332320;overflow:hidden}
.sheet-header{display:flex;align-items:flex-start;gap:8px;padding:16px 8px 12px 22px}
.sheet-title{flex:1;min-width:0;margin:10px 0 0;font-size:17px;font-weight:600;line-height:1.35;letter-spacing:-.3px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sheet-header .icon-button{flex-shrink:0;font-size:24px;color:var(--muted)}
.sheet-header .icon-button:hover{color:var(--ink)}
.sheet-body{overflow:auto;overscroll-behavior:contain;padding:0 22px 22px}
.sheet-actions{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.sheet-actions+.sheet-actions{margin-top:12px}
.sheet-action{display:flex;align-items:center;gap:12px;width:100%;min-height:50px;padding:12px 16px;background:none;border:0;border-top:1px solid var(--line);color:var(--ink);font-size:15px;font-weight:550;text-align:left;text-decoration:none}
.sheet-action:first-child{border-top:0}
.sheet-action:hover{background:#f3f5ed}
.sheet-action:focus-visible{outline-offset:-3px;border-radius:12px}
.sheet-action small{margin-left:auto;font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap}
.sheet-action[aria-disabled=true]{color:var(--muted);cursor:not-allowed}
.sheet-action[aria-busy=true]{cursor:progress;color:var(--muted)}
.sheet-action.is-danger:not([aria-disabled=true]){color:var(--red)}
.sheet-action.is-danger:not([aria-disabled=true]):hover{background:#f8ebe7}
.sheet-form .field-label{margin-top:0}
.sheet-form input{margin-bottom:18px}
.sheet-buttons{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.sheet-buttons .text-button{min-height:48px;padding:10px 14px;font-size:14px}
.sheet-buttons .primary,.danger-button{min-height:48px;padding:12px 22px;justify-content:center}
.danger-button{border:0;border-radius:11px;background:var(--red);color:#fffef9;font-size:14px;font-weight:600}
.danger-button:hover{background:#963726}
.player-tools{display:flex;align-items:center;gap:8px;margin-top:16px}
.tool-button,.sleep-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--green-dark);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.tool-button svg,.sleep-chip svg{width:18px;height:18px}
.tool-button:hover,.sleep-chip:hover{background:#eef2e7}
#bookmark-add{width:44px;padding:0}
.sleep-chip{margin-left:auto;color:var(--muted)}
.sleep-chip[data-state=on]{background:#f0f4e9;border-color:var(--green);color:var(--green-dark);box-shadow:inset 0 0 0 1px var(--green)}
.toast:has(.toast-action){width:max-content;display:flex;align-items:center;justify-content:center;gap:12px;padding-top:8px;padding-bottom:8px}
.toast-action{flex-shrink:0;min-height:36px;padding:6px 4px;background:none;border:0;color:#d6e8c4;font-size:12px;font-weight:650;text-decoration:underline;text-underline-offset:.2em}
@media(max-width:650px){body:has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) .toast{top:calc(16px + env(safe-area-inset-top));bottom:auto}}
/* ===== Appended PR B (FD rev): end ===== */
/* Bottom-anchored sheets */
body:has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) .folio-overlay{align-items:flex-end;padding:0 8px 8px}
.folio-sheet{margin:0}
@media(max-width:1024px){
  .folio-sheet{width:100%;max-width:100vw;border-bottom-left-radius:0;border-bottom-right-radius:0}
}
/* Share dialog: bottom danger row (Stop sharing) */
.sheet-bottom-danger{border-top:1px solid var(--line);margin-top:16px;padding-top:8px}
.text-button.is-danger{color:var(--red)}

/* Pricing page underline/line-height adjustments (QA F) */
.developer-page p{line-height:1.6}
.developer-page a{text-underline-offset:.18em;text-underline-position:auto}

/* Player mode: mini vs sheet (in-app) */
.player-panel[data-mode=mini] #player-body{display:none}
.player-panel[data-mode=sheet] #player-body{display:block}
.player-panel[data-mode=sheet] #mini-toggle{display:none}
.player-line{position:absolute;top:0;left:0;right:0;height:2px;background:#dce5d6}
.player-line i{display:block;height:100%;width:0;background:var(--green)}
.player-expand{-webkit-appearance:none;appearance:none;background:none;border:0;padding:0;text-align:left;display:grid;grid-template-columns:1fr auto;grid-template-areas:'eyebrow chev''title chev''sub chev';gap:2px 10px;align-items:center;min-height:48px}
.player-expand .eyebrow{grid-area:eyebrow;letter-spacing:1.6px}
.player-title{grid-area:title}
.player-sub{grid-area:sub}
.player-chevron{grid-area:chev}
/* Hide eyebrow in mini bar */
#player-panel[data-mode=mini] .player-expand .eyebrow{display:none}
@media(max-width:650px){
  .player-panel[data-mode=sheet] .listening-art{display:none}
  .player-panel[data-mode=sheet] #simple-controls{display:block}
}
/* Mini play button */
.mini-toggle{-webkit-appearance:none;appearance:none;border:0;border-radius:50%;width:44px;height:44px;background:var(--green-dark);color:#fffef9;display:grid;place-items:center}
.mini-toggle:hover{background:#416e54}
/* Hide duplicate small skip row in app */
.player-extras .skip-controls{display:none}

/* Sheet placement: bottom on phones, centered card on wider screens */
body:has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) .folio-overlay{align-items:flex-end;padding:0 8px 8px}
@media(min-width:760px){
  body:has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) .folio-overlay{align-items:center}
  .folio-sheet{max-width:min(680px,90vw);border-radius:24px;box-shadow:0 20px 60px #1b332320}
}
/* Mini bar compact height: ~48px row + padding to ~69px total */
#player-panel[data-mode=mini]{padding-top:6px;padding-bottom:calc(max(6px, env(safe-area-inset-bottom)));}
#player-panel[data-mode=mini] .player-top{margin-bottom:0}
#player-panel[data-mode=mini] .player-title,
#player-panel[data-mode=mini] .player-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== FD PR B: Missing sheet + bookmarks styles (append-only) ===== */
/* Bookmarks list sheet */
.bm-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.bm-row{display:flex;align-items:stretch;border-top:1px solid var(--line)}
.bm-row:first-child{border-top:0}
.bm-seek{flex:1;min-width:0;display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:10px;align-items:start;min-height:56px;padding:13px 4px 13px 14px;background:none;border:0;text-align:left;color:var(--ink)}
.bm-seek:hover,.bm-edit:hover{background:#f3f5ed}
.bm-seek:focus-visible,.bm-edit:focus-visible{outline-offset:-3px;border-radius:12px}
.bm-time{font-size:14px;font-weight:600;line-height:1.35;color:var(--green-dark);font-variant-numeric:tabular-nums}
.bm-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.bm-chapter{font-size:12px;line-height:1.35;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bm-note{font-size:13px;line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bm-edit{flex-shrink:0;width:48px;display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--muted)}
.bm-edit svg{width:18px;height:18px}
.bm-empty{text-align:center;padding:22px 12px 8px;color:var(--muted);font-size:13px;line-height:1.6}
.bm-empty strong{display:block;color:var(--ink);font-size:15px;font-weight:600;margin-bottom:2px}

/* Sleep timer sheet header row */
.sleep-now{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px 6px 10px 16px;background:#edf2e7;border:1px solid #dbe4d2;border-radius:14px}
.sleep-now strong{display:block;font-size:22px;font-weight:600;color:var(--green-dark);font-variant-numeric:tabular-nums;line-height:1.2}
.sleep-now span{font-size:12px;color:var(--muted)}
.sleep-now .text-button{font-size:14px;padding:10px 12px}

/* Additional shared sheet helpers */
.lib-device{display:inline-flex;align-items:center;gap:4px;color:var(--green);font-weight:550;white-space:nowrap}
.lib-device svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sheet-sub{display:block;font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:3px;font-variant-numeric:tabular-nums}
.sheet-note{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.sheet-copy{font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 20px}
.note-count{font-size:11px;color:var(--muted);text-align:right;margin:6px 0 14px;font-variant-numeric:tabular-nums;min-height:15px}

/* Overlay bottom anchoring when player is mini: sit sheet directly above mini bar */
body.player-open:has(#player-panel[data-mode="mini"]) .folio-overlay{bottom:var(--player-mini-h)}
body.player-open:has(#player-panel[data-mode="mini"]) .folio-overlay{padding:0 8px 0}
/* Stronger specificity to defeat generic overlay padding when mini is active */
body.player-open:has(#player-panel[data-mode="mini"]):has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) .folio-overlay{padding-bottom:0!important}

/* Follow-up polish after PR #12 (2026-10-07) */
.sheet-title{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:21px;line-height:1.2;letter-spacing:-.4px}
.sheet-header{padding:14px 6px 10px 18px}
.sheet-body{padding:0 18px max(18px,env(safe-area-inset-bottom))}
.sheet-action svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:var(--green);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sheet-action #del-hint{display:block;margin:4px 0 0;font-size:12px;font-weight:400;color:var(--muted);white-space:normal}
.sheet-action[aria-disabled=true] svg{stroke:#a9b2a6}
.sheet-action.is-danger:not([aria-disabled=true]) svg{stroke:var(--red)}
body:has(#folio-overlay:not([hidden]),[role=dialog]:not([hidden]),#share-dialog:not([hidden])) .toast{top:calc(72px + env(safe-area-inset-top));bottom:auto}
.lib-row .book-cover{flex-shrink:0;display:flex;align-items:center;justify-content:center}
.lib-row[data-tone="1"] .book-cover{background:#bc916f;color:#f9ead2}
.lib-row[data-tone="2"] .book-cover{background:#7d8998;color:#e7edf4}
.lib-row:is([data-state=canceled],[data-state=failed],[data-state=uploading]) .book-cover{background:#dfe3d8;color:#8a9285;box-shadow:none}
#lib-title:focus:not(:focus-visible){outline:none}
#lib-title:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.lib-empty.empty-shelf{background:var(--surface)}
.lib-empty.empty-shelf p{color:var(--ink);font-size:15px;margin:10px 0 18px}
.lib-empty.empty-shelf .primary{display:inline-flex;justify-content:center;margin:0 auto;min-height:48px;padding:14px 26px;text-decoration:none}
#player-panel .player-extras{flex-wrap:nowrap;gap:10px}
#player-panel .player-extras :is(#playback-speed,#chapters){appearance:none;-webkit-appearance:none;min-height:44px;padding:10px 36px 10px 12px;border:1px solid transparent;border-radius:10px;background:#eef2e7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23294f39' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--ink);font-size:14px;font-weight:600}
#player-panel .player-extras #playback-speed{flex:0 0 auto;width:auto;min-width:108px}
#player-panel .player-extras #chapters{flex:1 1 0;min-width:0;width:auto;margin-top:0}
#player-panel .player-extras select:focus-visible{outline:2px solid var(--green);outline-offset:4px}
@media(min-width:651px){
  body:has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) #folio-overlay{align-items:center;justify-content:center;padding:16px}
  #folio-overlay .folio-sheet{width:min(440px,calc(100vw - 32px));max-width:none;max-height:min(600px,calc(100% - 32px));border:1px solid #dfe5d8;border-radius:22px;box-shadow:0 1px 2px #1b33230a,0 18px 50px #1b332320}
}
@media(max-width:650px){
  body:has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) .toast{top:calc(72px + env(safe-area-inset-top));bottom:auto}
  body:has(#folio-overlay:not([hidden]) .folio-sheet:not([hidden])) #folio-overlay{align-items:flex-end;padding:0}
  #folio-overlay .folio-sheet{width:100%;max-height:calc(100% - 24px);border-radius:20px 20px 0 0;border-bottom:0}
  body:has(#player-panel[data-mode=sheet]:not([hidden])) .toast{top:calc(72px + env(safe-area-inset-top));bottom:auto}
  #player-panel .player-extras :is(#playback-speed,#chapters){font-size:16px}
}
@media(max-width:360px){#player-panel .player-extras{flex-wrap:wrap}#player-panel .player-extras #chapters{flex-basis:100%}}

/* Header Library navigation */
.header-library{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:8px;min-height:36px;padding:7px 14px 7px 11px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:550;text-decoration:none}
.header-library svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:var(--green-dark);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.header-library:hover{background:#f3f5ed}
.header-library:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.header-library[aria-current="page"]{background:#f0f4e9;color:var(--green-dark)}
#shelf-library-link[hidden]{display:none}
@media(max-width:649px){
  .header-library{width:44px;height:44px;min-height:44px;padding:0;border-radius:22px}
  .header-library-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .topbar .account-chip{min-width:0}
  .topbar:has(#account-chip:not([hidden])) .beta{display:none}
  .topbar:has(#account-chip:not([hidden])) .account-chip{margin-left:auto}
}
@media(max-width:360px){.topbar{gap:6px}.brand{font-size:24px;gap:8px}.brand img{width:28px;height:28px}}

/* QA: mini player and overlay share the specified safe-area height. */
#player-panel[data-mode=mini]{box-sizing:border-box;height:var(--player-mini-h);min-height:var(--player-mini-h);display:flex;align-items:center}
#player-panel[data-mode=mini] .player-inner{width:100%}
/* Toasts never block taps on what they overlay; only the action button is clickable. */
.toast{pointer-events:none}
.toast-action{pointer-events:auto}
/* FD nits (offline-restore PR) */
/* 1. "Library ›": the link is inline-flex, which drops the space before the arrow; keep the real space. */
#shelf-library-link{white-space:pre}
/* 2. Expanded-player chevron points down (FD folio-pr-b.css). */
.player-expand .player-chevron{transition:transform .2s}
#player-panel[data-mode=sheet] .player-chevron{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.player-expand .player-chevron{transition:none}}
/* 3. The tapped (playing) library row highlights across the full row, including the ⋯ column. */
.lib-row:has(.lib-open:hover){background:#f3f5ed}
/* iOS keyboard (FD): note sheet bottom sits on the keyboard; the mini player stays hidden behind it. */
body.note-kb:has(#note-input:focus) .folio-overlay{bottom:var(--kb-inset)}
body.note-kb #player-panel{visibility:hidden}

/* A clearer path from choosing a book to returning to a listen. */
.continue-listening{grid-column:1/-1;margin:12px 0 24px}
.continue-listening>.eyebrow{margin-bottom:12px}
.continue-card{display:flex;align-items:center;gap:16px;text-align:left;width:100%;padding:20px;border:1px solid #b8c9b3;border-radius:18px;background:linear-gradient(115deg,#edf3e6,#fffef8);color:var(--ink)}
.continue-card .book-info{flex:1;min-width:0}.continue-card .book-info strong{font-size:19px;display:block;overflow-wrap:anywhere}.continue-card small{display:block;margin:8px 0;color:var(--muted)}
.continue-card progress{width:100%;height:4px;display:block;margin:12px 0 0;accent-color:var(--green)}
.continue-play{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:50%;color:white;background:var(--green-dark)}
.upload-hint{margin:14px 0 0;line-height:1.6}
.lib-toolbar{display:flex;flex-direction:column;gap:12px;margin:8px 0 22px}.lib-toolbar input{width:100%;min-height:48px;background:var(--surface);border-radius:12px;font-size:16px}
.lib-filters{display:flex;gap:8px}.lib-filters button{min-height:44px;border:1px solid var(--line);border-radius:24px;padding:10px 18px;background:transparent;color:var(--muted);font-size:13px}.lib-filters button.is-active{background:var(--green-dark);border-color:var(--green-dark);color:white}
.lib-add{margin-left:auto;flex-shrink:0;min-height:44px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:13px}
.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0}.plan-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:20px;display:flex;flex-direction:column;gap:12px}.plan-card .eyebrow{font-size:9px;letter-spacing:1.1px}.plan-card h3{font:42px Georgia,serif;letter-spacing:-1px;margin:0}.plan-card h3 small{font:14px system-ui;letter-spacing:0;color:var(--muted)}.plan-card strong{font-size:17px}.plan-card p{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 8px}.plan-card .primary{margin-top:auto;min-height:48px}.plan-featured{background:#edf2e7;border-color:#afc2a7}
.listen-summary{text-align:center;font-size:12px;color:var(--green-dark);margin:16px 0 0;font-variant-numeric:tabular-nums}.resume-note{margin-top:6px;margin-bottom:16px}
.player-tools .tool-button:has(.tool-label){width:auto;min-width:44px;padding:10px;gap:6px}.tool-label{font-size:12px}
.document-page{max-width:780px;margin:0 auto;padding-top:30px;padding-bottom:60px}.document-page h1{font:clamp(34px,6vw,52px) Georgia,serif;line-height:1.1;letter-spacing:-1.5px;margin:18px 0}.document-page h2{margin-top:32px;font-size:21px}.document-page p{font-size:15px;line-height:1.8}.document-page pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#edf2e7;padding:18px;border-radius:12px}.document-page details{margin:24px 0;padding:18px;border:1px solid var(--line);border-radius:16px}.document-page details summary{font-size:17px;font-weight:600;min-height:32px}.document-back{display:inline-flex;align-items:center;min-height:44px;color:var(--green);text-decoration:none}.document-nav{display:flex;gap:20px;margin-top:28px;font-size:14px}.document-page .plan-card p{font-size:13px;margin:0 0 8px}
@media(max-width:650px){.plan-grid{grid-template-columns:1fr}.continue-card{padding:16px;gap:12px}.continue-card .book-info strong{font-size:17px}.tool-label{font-size:11px}.player-tools{gap:6px}.lib-add{padding:10px 13px}.lib-header{flex-wrap:wrap}.document-page{padding-top:20px}.plan-card{padding:20px}.settings-nav{scrollbar-width:thin}}
@media(max-width:360px){.player-tools .tool-label{font-size:10px}.player-tools .tool-button:has(.tool-label){padding:8px;gap:4px}.player-tools .tool-button svg{width:16px;height:16px}}

/* Listening room: shared editorial language, native controls, no UI runtime. */
:root{--bg:#f4f1e9;--surface:#fffdf7;--ink:#203b33;--muted:#63736a;--line:#dcded2;--green:#37654f;--green-dark:#234c3c;--accent:#d9ee9f}
body{background:radial-gradient(ellipse at 100% 0,#e5ebda80,transparent 48%),var(--bg)}
.topbar{padding-bottom:22px}
.brand{font-size:33px}.brand img{border-radius:9px}
.primary{border-radius:16px;box-shadow:0 3px 0 #132d2010;text-decoration:none}
button,.primary,.shelf-card,.lib-row{transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}
button:active,.primary:active{transform:translateY(1px)}
.panel{border-radius:26px;box-shadow:0 5px 20px #293c2604}
.workspace-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0 28px;grid-column:1/-1}
.workspace-intro h1{font-size:clamp(36px,5vw,54px);line-height:1.08;letter-spacing:-1.8px;margin:13px 0 0}
.workspace-intro h1 em{font-weight:400;color:var(--green)}
.intro-stamp{width:70px;height:70px;border-radius:50%;border:1px solid #bfcbb9;display:flex;align-items:center;justify-content:center;gap:4px;transform:rotate(-12deg);background:#e7eddb;flex-shrink:0}
.intro-stamp i{width:4px;height:15px;background:var(--green);border-radius:6px}.intro-stamp i:nth-child(2n){height:27px}.intro-stamp i:nth-child(3){height:38px}
.library-view .workspace-intro{display:none}
.continue-listening{margin:0 0 26px}.continue-listening>.eyebrow{margin-left:3px}
.continue-card{position:relative;overflow:hidden;padding:24px;border:0;border-radius:24px;background:linear-gradient(125deg,#284f40,#163b30);box-shadow:0 10px 28px #163b3015;color:#fffdf2;gap:18px}
.continue-card::after{content:'';position:absolute;right:-55px;top:-95px;width:240px;height:240px;border:1px solid #d9ee9f1c;border-radius:50%;pointer-events:none}
.continue-card .book-info strong{font:400 23px/1.2 Georgia,serif;white-space:normal;letter-spacing:-.3px}
.continue-card small{color:#d0dcce;font-size:12px}.continue-card .book-cover{background:#d8d9b6;color:#284839;width:54px;height:76px;transform:rotate(-5deg)}
.continue-play{background:var(--accent);color:#203b33;width:48px;height:48px;box-shadow:0 0 0 7px #ffffff07}
.continue-card progress::-webkit-progress-bar{background:#ffffff24}.continue-card progress::-webkit-progress-value{background:var(--accent)}.continue-card progress::-moz-progress-bar{background:var(--accent)}
.section-heading h2,.library-heading h2{font-family:Georgia,serif;font-weight:400;font-size:25px;letter-spacing:-.7px}
.step{background:none;border:1px solid #bcc9b4;font:italic 13px Georgia,serif;flex-shrink:0}
#upload-panel{padding:24px}.dropzone{min-height:176px;background:linear-gradient(145deg,#edf1e3,#f8f8ef);border:1px dashed #acbea1;border-radius:19px;gap:12px;padding:24px 18px}
.file-icon{display:grid;place-items:center;width:52px;height:58px;border-radius:7px 15px 15px 7px;background:var(--surface);box-shadow:-4px 0 0 #d5dec9,0 5px 12px #203b3310;transform:rotate(-6deg);margin-bottom:4px}
.file-icon svg{width:25px;height:29px}.dropzone strong{font-size:16px}.dropzone>span:not(.file-icon){max-width:240px;line-height:1.6;font-size:12px}.upload-hint{font-size:12px}
.voice-card{border-radius:18px;background:#fcfcf5;padding:18px 14px}.voice-card.selected{background:#e9f0dc;border-color:#74916a}.voice-card strong{font:22px Georgia,serif}.voice-card span{font-size:11px;line-height:1.5}.preview-button{border-radius:50%;width:44px;height:44px}
.job-panel h2{font:30px/1.15 Georgia,serif}.book-stats span{border-radius:9px;padding:9px 11px}.job-panel .review-text{font:15px/1.8 Georgia,serif;background:#f3f1e8;padding:20px;border-radius:16px}
.book-cover{position:relative;overflow:hidden;box-shadow:inset 4px 0 0 #ffffff25,inset 7px 0 0 #172f2512,3px 4px 7px #263d2e12;border-radius:3px 7px 7px 3px}
.book-cover::after{content:'';position:absolute;inset:8px 7px 8px 10px;border-top:1px solid #ffffff40;border-bottom:1px solid #ffffff40;pointer-events:none}
.shelf-card{border-radius:20px;padding:18px;gap:16px}.shelf-card .book-info strong{font-size:15px}.shelf-card .book-info small{font-size:12px}
.library-kicker{margin:18px 0 12px}.lib-header{gap:12px;margin-bottom:24px}.lib-title{font-size:44px;letter-spacing:-1.6px}.lib-count{font-size:12px}.lib-back{border:1px solid var(--line);border-radius:50%;min-width:40px;min-height:40px}
.lib-toolbar{gap:14px;margin-bottom:24px}.lib-toolbar input{border-radius:18px;padding-left:18px;background:#fffdf8;box-shadow:0 2px 8px #243d2603}
.lib-filters{background:#e7eadd;border-radius:16px;padding:4px;width:fit-content;gap:2px}.lib-filters button{border:0;border-radius:12px;min-height:40px;padding:9px 18px;color:#4d6153}.lib-filters button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 2px 6px #243d2612}
.lib-list{gap:12px}.lib-row{border-radius:20px}.lib-open{padding:18px 12px 18px 18px;gap:16px}.lib-row .book-cover{width:50px;height:68px}.lib-info strong{font-size:16px}.lib-more{margin-right:5px;border-radius:50%;height:44px}
.folio-backdrop{background:#122c254a;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.settings-header h2,.account-hub #account-hub-title{font:30px Georgia,serif;letter-spacing:-.8px}.settings-header{padding:20px 20px 14px}.settings-section h2{font:28px Georgia,serif;letter-spacing:-.7px}.settings-section p{line-height:1.7}.settings-section .small{font-size:13px}.settings-section .field-label{font-size:14px}
.settings-nav-item{border-radius:12px;min-height:44px}.settings-nav-item.is-active{background:var(--green-dark);color:#fffdf7;border-color:var(--green-dark)}
.settings-callout{background:#e7efdb;color:var(--green-dark);padding:18px;border-radius:16px;font-size:15px}.settings-section #default-speed{width:100%;margin-top:12px;border-radius:16px}
#api-key-result:empty{display:none}.account-hub .account-hub-link{min-height:54px}.account-hub .account-hub-identity{margin-bottom:22px}
.plan-card{border-radius:22px;padding:24px;gap:14px}.plan-card h3{font-size:52px}.plan-card .primary{justify-content:center}.plan-featured{background:#244d3e;border-color:#244d3e;color:#fffdf5;position:relative;overflow:hidden}.plan-featured .eyebrow{color:#d9ee9f}.plan-featured p,.plan-featured h3 small{color:#d0dfd2}.plan-featured .primary{background:var(--accent);color:#203b33}.plan-featured .primary:hover{background:#e4f5bc}
.listening-art{background:radial-gradient(ellipse at 25% 10%,#587d58,transparent 65%),#153d31;border-radius:22px;height:190px}.listening-art:before{width:310px;height:310px;right:-150px;top:-140px;border-color:#d9ee9f30}.listening-art::after{content:'';position:absolute;width:235px;height:235px;left:-135px;bottom:-115px;border:1px solid #d9ee9f25;border-radius:50%}
.art-book{background:#e9dfb9;transform:rotate(-9deg);box-shadow:inset 6px 0 0 #89785140,8px 12px 24px #082a2660}
.player-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.player-tools .tool-button:has(.tool-label),.player-tools #bookmark-add,.player-tools .sleep-chip{width:100%;min-width:0;padding:10px 4px;margin:0;border-radius:14px;gap:4px;font-size:12px}.player-tools .tool-label{font-size:11px}.player-tools svg{flex-shrink:0;width:17px;height:17px}
.listen-controls #listen-toggle{background:var(--green-dark);width:78px;height:78px;box-shadow:0 6px 18px #234c3c25}.listen-times{font-size:12px}.offline-controls{background:#edf1e2;border-radius:19px;padding:16px}.offline-row .primary{border-radius:13px;font-size:13px}.offline-help summary{font-size:12px;min-height:44px}
.sheet-title{font-size:26px}.sheet-header{padding:17px 12px 14px 22px}.sheet-body{padding-left:22px;padding-right:22px}.sheet-actions{border-radius:18px}.sheet-action{min-height:56px}
.document-page{max-width:780px}.document-page>.eyebrow{margin-top:28px}.document-page h1{font-size:clamp(44px,7vw,66px);letter-spacing:-2px;max-width:650px}.document-page>p{color:var(--muted);max-width:590px}.document-page h2{font:28px Georgia,serif;letter-spacing:-.6px}.document-page details{background:var(--surface);padding:20px;border-radius:20px}.document-page details summary{min-height:44px;line-height:1.5;cursor:pointer;font-size:16px}.document-page pre{background:#203b33;color:#e1edcf;border-radius:16px;padding:20px;font-size:12px}.document-nav{border-top:1px solid var(--line);padding-top:20px}.document-nav a{min-height:44px;display:inline-flex;align-items:center}
.shared-listening{background:radial-gradient(ellipse at 50% 0,#dfe9d2,transparent 65%),var(--bg)}.shared-listening #shared-panel{border-radius:28px}.shared-listening #shared-panel h1{font-size:clamp(34px,6vw,48px)}
@media(max-width:650px){
 .topbar{gap:10px;padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:16px}.topbar .account-chip{min-height:44px;border-radius:50px}.brand{font-size:30px;gap:8px}.topbar #library-link{width:44px;border:1px solid var(--line);border-radius:50%;background:#fffdf780}.topbar #library-link svg{width:19px;height:19px}
 .workspace-intro{padding:13px 0 25px}.workspace-intro h1{font-size:39px}.workspace-intro .eyebrow{font-size:9px;letter-spacing:2px}.intro-stamp{width:60px;height:60px}
 .continue-card{padding:21px 17px;gap:14px}.continue-card .book-info strong{font-size:21px}.continue-card small{font-size:11px}.continue-card .book-cover{width:45px;height:66px}.continue-play{width:44px;height:44px}.continue-card progress{margin-top:10px}
 #upload-panel{padding:20px}.section-heading{gap:10px;margin-bottom:18px}.section-heading h2,.library-heading h2{font-size:24px}.library-section{margin-top:32px}.dropzone{min-height:170px}.voice-grid{gap:10px}
 .lib-header{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;margin-bottom:20px}.lib-title{font-size:40px}.lib-add{grid-column:1/-1;width:100%;justify-content:center;background:transparent;color:var(--green-dark);border:1px solid #aebfa5;border-radius:14px}.lib-toolbar{margin-top:0}.lib-row .book-cover{width:46px;height:64px}.lib-open{padding:16px 10px 16px 15px;gap:13px}.lib-info strong{font-size:15px}
 #folio-overlay{align-items:flex-end;padding:0!important}.account-hub,.settings-sheet{width:100%;max-width:100%;max-height:calc(100% - 20px);border-radius:28px 28px 0 0;margin:0;border-bottom:0}.account-hub{padding:28px 22px max(18px,env(safe-area-inset-bottom))}.account-hub #account-hub-title{font-size:30px}.settings-sheet{height:min(760px,calc(100% - 20px));min-height:0}.settings-header{padding:20px 20px 12px}.settings-main{overflow:auto;overscroll-behavior:contain}.settings-nav{padding:10px 18px 14px;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));background:transparent}.settings-nav-item{font-size:12px}.settings-body{padding:23px 22px max(28px,env(safe-area-inset-bottom));overflow:visible}.settings-section .section-heading{margin-bottom:18px}
 .player-panel[data-mode=sheet]{max-height:calc(100dvh - 16px - env(safe-area-inset-top));border-radius:28px 28px 0 0;padding-top:22px;overscroll-behavior:contain}.player-panel[data-mode=sheet] .listening-art{display:flex;height:128px;margin:16px 0 8px}.player-panel[data-mode=sheet] .art-book{width:56px;height:72px;top:12px;padding:8px}.player-panel[data-mode=sheet] .art-book span{font-size:27px}.player-panel[data-mode=sheet] .art-book i{margin-top:4px;width:28px}.player-panel[data-mode=sheet] #sound-wave{height:29px;bottom:7px}.player-panel[data-mode=sheet] .player-title{font:25px/1.15 Georgia,serif;letter-spacing:-.6px}.player-panel[data-mode=sheet] .player-sub{font-size:12px;margin-top:4px}.player-top{gap:10px}.player-top .icon-button{min-width:44px;min-height:44px}.player-tools{gap:6px}.player-panel[data-mode=sheet] .listen-controls{margin-top:9px}.player-panel[data-mode=sheet] .listen-summary{margin-top:12px}.player-panel[data-mode=sheet] .resume-note{margin-bottom:12px}.player-panel[data-mode=sheet] .player-line{display:none}
 .shared-listening #shared-panel{padding:28px 20px 12px}.shared-listening .listening-art{height:170px}.shared-listening #player-panel{border-radius:0}.shared-listening .player-panel[data-mode=sheet] .listening-art{height:170px}.shared-listening .player-panel[data-mode=sheet] .art-book{top:22px}
 .document-page{padding-top:16px}.document-page h1{font-size:48px}.document-page .plan-grid{gap:14px}.document-page p{font-size:14px;line-height:1.8}.hero{padding-top:24px}.hero h1{font-size:62px}.hero-art{opacity:.65;right:-50px}.hero>p{position:relative;z-index:1;max-width:235px;color:#53695a}.access-panel{padding:23px}
}
@media(max-width:360px){.topbar{gap:6px}.brand{font-size:27px}.brand img{width:26px;height:26px}.topbar .account-chip{padding:7px 9px}.header-library{width:40px}.workspace-intro h1{font-size:35px}.intro-stamp{width:50px;height:50px}.continue-card{gap:10px;padding:19px 14px}.continue-card .book-info strong{font-size:19px}.continue-card .book-cover{width:38px;height:58px}.continue-play{width:40px;height:40px}.section-heading h2{font-size:21px}.player-tools svg{width:15px;height:15px}.player-tools .tool-label{font-size:10px}.player-tools .tool-button:has(.tool-label){gap:3px}.hero h1{font-size:54px}}
@media(prefers-reduced-motion:no-preference){.folio-sheet,.account-hub,.settings-sheet{animation:folio-reveal .2s ease-out}@keyframes folio-reveal{from{opacity:.4;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
/* Player chrome: explicit colors prevent Safari's default blue button text. */
.player-expand{color:var(--ink);width:100%;min-width:0;flex:1;-webkit-text-fill-color:currentColor}
.player-title{overflow-wrap:anywhere}.player-chevron{width:22px;height:22px;flex-shrink:0;color:var(--green)}
#player-panel[data-mode=mini] .player-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#player-panel[data-mode=mini] .player-sub{font-size:11px;color:var(--muted)}
#player-panel[data-mode=sheet] .player-top{position:sticky;top:-22px;z-index:2;background:var(--surface);padding:8px 0 12px;margin-bottom:0}
#player-panel[data-mode=sheet]{background:var(--surface)}
#player-panel[data-mode=sheet] .player-inner{max-width:520px}
#player-panel[data-mode=sheet] .player-expand .eyebrow{font-size:9px;margin-bottom:5px;letter-spacing:2px}
#player-panel[data-mode=sheet] .player-title{font:28px/1.18 Georgia,serif;letter-spacing:-.6px}
#player-panel[data-mode=sheet] .player-sub{font-size:12px;color:var(--muted);margin-top:5px}
body:has(#player-panel[data-mode=sheet]:not([hidden])){overflow:hidden}
.shared-listening:has(#player-panel[data-mode=inline]){overflow:visible}
@media(max-width:650px){#player-panel[data-mode=sheet]{height:calc(100dvh - 16px - env(safe-area-inset-top));padding-bottom:max(22px,env(safe-area-inset-bottom))}#player-panel[data-mode=sheet] .player-title{font-size:25px}}
.listen-controls #simple-back,.listen-controls #simple-forward{display:grid;place-items:center}
.listen-controls #simple-back svg,.listen-controls #simple-forward svg{width:34px;height:34px;stroke-width:1.6}
.listen-controls small{top:24px;font-size:11px;line-height:18px}
@media(max-width:650px){.player-panel[data-mode=sheet] .resume-note:empty{min-height:0;margin:0}.player-panel[data-mode=sheet] .player-tools{margin-top:20px}}
.lib-header{margin-left:0}.lib-list{display:flex;flex-direction:column;background:transparent;border:0;border-radius:0;overflow:visible}.lib-row,.lib-row:first-child{border:1px solid var(--line);background:var(--surface);overflow:hidden}.lib-name{font-size:15px}.lib-more{align-self:center}
@media(max-width:650px){.settings-sheet{height:auto;min-height:min(420px,calc(100% - 20px))}.settings-main{min-height:0}}
.shared-listening .player-line{display:none}
/* Bookmark editing remains visible and comfortably tappable on a phone. */
.bm-edit{width:auto;min-width:72px;min-height:52px;gap:6px;padding:12px;color:var(--green-dark);font-size:13px;font-weight:600;border-left:1px solid var(--line)}
.bm-note-empty{color:var(--muted);font-style:italic}.bm-seek{align-items:center;padding-top:16px;padding-bottom:16px}.bm-list{border-radius:18px}.bm-time{line-height:1.6}
@media(max-width:360px){.bm-edit{min-width:62px;padding:10px;gap:4px}.bm-edit svg{width:16px}.bm-seek{grid-template-columns:48px minmax(0,1fr);padding-left:12px;column-gap:6px}}

/* Document reading stays inside one focused, mobile-friendly sheet. */
.reader-open{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:50px;margin:16px 0;padding:12px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--green-dark);font:inherit;font-weight:600}
.player-panel[data-mode="mini"] .reader-open{display:none}
.document-sheet{width:min(720px,calc(100vw - 32px));height:min(850px,calc(100dvh - 32px));max-height:calc(100dvh - 32px)}
.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 22px;flex-shrink:0}.reader-toolbar button,.reader-pages button{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;color:var(--green-dark);background:var(--surface);font:inherit}.reader-toolbar [role="tablist"]{display:flex;gap:6px}.reader-toolbar [aria-selected="true"]{background:var(--green-dark);color:white}.reader-secondary{padding-top:0}.reader-secondary button{font-size:13px;border:0;background:var(--sage,#edf1e7)}
.reader-body{flex:1;min-height:0;padding-top:12px}.reader-passage{display:block;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:14px;padding:16px;color:var(--ink);font:20px/1.7 Georgia,serif;overflow-wrap:anywhere;cursor:pointer}.reader-passage:disabled{opacity:1;cursor:default}.reader-passage.is-speaking{background:#e7eedb;border-color:#98b384}.reader-passage.is-selected{box-shadow:inset 3px 0 var(--green-dark)}.reader-location{display:block;font:11px/1.5 system-ui,sans-serif;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.reader-pages{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0}.reader-pages button:disabled{opacity:.4}
#document-question label{display:block;font-weight:600;margin:16px 0 10px}#document-question textarea{width:100%;box-sizing:border-box;resize:vertical;border:1px solid var(--line);border-radius:16px;padding:14px;font:16px/1.5 system-ui;background:var(--surface);color:var(--ink)}.reader-question-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}.reader-answer{font-size:17px;line-height:1.7;white-space:pre-wrap}.reader-source{display:block;width:100%;padding:16px;margin:12px 0;text-align:left;border:1px solid var(--line);border-radius:14px;background:#f0f3e9;color:var(--ink)}.reader-source span,.reader-source small{display:block;font:12px/1.5 system-ui;color:var(--green-dark)}.reader-source q{display:block;font:17px/1.6 Georgia,serif;margin:8px 0}#document-answer{margin-top:20px}#document-resume{margin-top:16px;min-height:48px}
@media(max-width:650px){.document-sheet{width:100%;height:calc(100dvh - max(20px,env(safe-area-inset-top)));max-height:calc(100dvh - max(20px,env(safe-area-inset-top)));border-radius:24px 24px 0 0}.reader-toolbar{padding-left:18px;padding-right:18px}.reader-body{padding-left:8px;padding-right:8px}.reader-body>p,.reader-body>form,.reader-body>#document-answer,.reader-body>#document-resume{margin-left:12px;margin-right:12px}.reader-passage{font-size:19px}}
/* Reading has its own playback controls, so reserve the whole viewport even in shared/offline mode. */
body.player-open:has(#document-sheet:not([hidden])) #folio-overlay{bottom:0;align-items:center;padding:16px}
#folio-overlay #document-sheet{width:min(720px,calc(100vw - 32px));height:calc(100% - 16px);max-height:calc(100% - 16px)}
@media(max-width:650px){body.player-open:has(#document-sheet:not([hidden])) #folio-overlay{align-items:flex-end;padding:0}#folio-overlay #document-sheet{width:100%;height:calc(100% - max(24px,env(safe-area-inset-top)));max-height:calc(100% - max(24px,env(safe-area-inset-top)));border-radius:24px 24px 0 0}}

/* Highlights: a quiet notebook with a stable, keyboard-aware editor. */
.highlight-library-link{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:18px 20px;margin-bottom:22px;border:1px solid var(--line);border-radius:18px;background:#eaf0e4;color:var(--green-dark);text-align:left;font-size:18px;font-family:Georgia,serif}
.highlight-library-link span{font:12px/1.5 system-ui;max-width:60%;text-align:right;color:var(--muted)}
.highlight-intro{font:26px/1.2 Georgia,serif;margin:6px 0 20px;letter-spacing:-.6px}.highlight-tabs{display:flex;gap:6px;background:#e9ede3;border-radius:14px;padding:4px;margin-bottom:16px}.highlight-tabs button{flex:1;min-height:44px;border:0;border-radius:11px;background:none;color:var(--muted)}.highlight-tabs button[aria-pressed=true]{background:var(--surface);color:var(--green-dark);box-shadow:0 2px 5px #1835270c}
#highlight-search{width:100%;font-size:16px}.highlight-device{margin:12px 0 20px}.highlight-total{font-size:12px;color:var(--muted)}.highlight-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}.highlight-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fffef8}.highlight-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.highlight-card-top>span{min-width:0;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.highlight-time.bm-seek{display:block;flex:none;min-height:44px;padding:10px 12px;background:#edf2e7;border-radius:30px;font-size:12px;color:var(--green-dark);white-space:nowrap}.highlight-note.bm-edit{display:block;width:100%;min-height:48px;margin:12px 0 8px;padding:0;text-align:left;font:18px/1.6 Georgia,serif;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.highlight-note.bm-edit:hover{background:transparent}.highlight-note.is-empty{color:var(--muted);font-style:italic}.highlight-edit-hint{font-size:11px;color:var(--muted)}
.highlight-anchor{display:grid;gap:6px;padding:14px 16px;border-left:3px solid #77966b;background:#eff2e8;border-radius:0 12px 12px 0;margin:4px 0 18px}.highlight-anchor span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.highlight-anchor strong{font-size:12px;color:var(--green-dark)}
#note-input{display:block;width:100%;min-height:170px;max-height:32vh;resize:vertical;font:18px/1.6 system-ui;border:0;background:transparent;padding:10px 2px;border-radius:0;color:var(--ink)}#note-input:focus{outline:0;box-shadow:0 2px var(--green)}#note-sheet .note-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);margin:14px 0}#note-sheet .sheet-buttons{margin-top:12px}#note-sheet .sheet-body{min-height:0;padding-bottom:max(22px,env(safe-area-inset-bottom))}
body:has(#note-sheet:not([hidden])) #folio-overlay{top:var(--note-top,0px);bottom:auto;height:var(--note-height,100dvh);align-items:center;padding:16px;z-index:60}body:has(#bookmarks-sheet:not([hidden])) #folio-overlay{bottom:0;z-index:60}#folio-overlay #bookmarks-sheet{max-height:calc(100% - 32px);height:min(760px,calc(100% - 32px))}#folio-overlay #note-sheet{max-height:calc(100% - 16px)}
@media(max-width:650px){body:has(#note-sheet:not([hidden])) #folio-overlay{align-items:flex-end;padding:0}#folio-overlay #note-sheet{width:100%;border-radius:24px 24px 0 0}#note-sheet .sheet-header{padding-top:14px}#note-input{min-height:110px;max-height:25vh}#note-sheet .highlight-anchor{margin-bottom:8px}#note-sheet .sheet-title{font:25px/1.2 Georgia,serif}#folio-overlay #bookmarks-sheet{height:calc(100% - max(24px,env(safe-area-inset-top)));max-height:calc(100% - max(24px,env(safe-area-inset-top)))} }

.document-kind-control{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted);margin:16px 0}.document-kind-control select{font:16px system-ui;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:9px 12px;min-height:44px;max-width:180px}

.sync-notice{grid-column:1/-1;padding:14px;border:1px solid #d6dfcf;border-radius:12px;margin:14px 0;background:#eef2e7}.sync-notice p{margin:0 0 8px}.sync-notice button{margin-right:8px}

.apple-sign-in{display:flex;align-items:center;justify-content:center;gap:10px;background:#171d18!important;color:white!important}.apple-sign-in svg{width:21px;height:21px}

/* Settings actions share consistent alignment and touch targets. */
.developer-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}
.developer-actions .btn,.settings-section .developer-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:12px;text-decoration:none}
#api-key-result{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border:1px solid var(--line);border-radius:12px}

#configure>.document-options,#configure>.quick-document-note,#configure>#quick-document-settings{grid-column:1/-1}
.document-options{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.document-options>summary{font-size:14px;min-height:44px;display:flex;align-items:center;list-style:revert}
.document-options[open]>.field-label{display:block;margin-top:16px}
.document-options .voice-heading{margin-top:24px}
.quick-document-note{margin:10px 0 0;font-size:12px}
#quick-document-settings{margin:0 0 12px}
.document-options>summary::after{content:'⌄';margin-left:auto;font-size:18px}
.document-options[open]>summary::after{content:'⌃'}
.dropzone.has-file{min-height:100px;padding:18px}
.dropzone.has-file .file-icon{display:none}
.quick-document-page .hero,.quick-document-page .library-section,.quick-document-page #continue-listening,.quick-document-page .iphone-tip{display:none!important}
.quick-document-page main{padding-top:16px}
.native-book-page .hero,.native-book-page .library-section,.native-book-page #continue-listening,.native-book-page .iphone-tip,.native-book-page #upload-panel,.native-book-page #job-panel{display:none!important}
.native-book-page.native-book-status #job-panel:not([hidden]){display:block!important}
.native-book-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.native-book-page main{padding-top:16px}
