@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700&family=Literata:opsz,wght@7..72,400;7..72,500;7..72,600&display=swap');
:root{--bg:#f7f7f2;--paper:#fff;--ink:#263c35;--muted:#838a81;--line:#e5e7dd;--green:#244e43;--light:#edf1e8;--serif:'Literata',Georgia,serif;--sans:'Golos Text',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px var(--sans)}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid #a0b875;outline-offset:4px}a{color:inherit;text-decoration:none}.sidebar{position:fixed;left:0;top:0;bottom:0;width:240px;border-right:1px solid var(--line);padding:38px 25px;display:flex;flex-direction:column;background:#f0f1e9}.brand{font:600 49px Georgia;letter-spacing:-3px;padding-left:18px}.brand span{font-style:italic}.brand i{font:28px Georgia;color:#8c9e6a;vertical-align:top;display:inline-block;margin:4px 0 0 20px}.brand-sub{font-size:8px;letter-spacing:2px;margin:12px 0 43px 18px}.sidebar nav{display:grid;gap:9px}.sidebar button{padding:14px 16px;display:flex;align-items:center;gap:13px;text-align:left;border-radius:8px;font-size:13px}.sidebar button span{font-size:22px;line-height:20px}.sidebar button.active{background:#e0e7d7;color:var(--green);font-weight:600}.sidebar-bottom{margin-top:auto}.small-quote{font:italic 13px/1.9 var(--serif);color:#8a9386;padding:25px 15px}.local-note{border-top:1px solid #dde1d4;margin:22px 12px 0;padding-top:22px;font-size:11px;line-height:2}.local-note b{color:#8eac6c;margin-right:5px}.local-note small{color:var(--muted);font-size:10px;margin-left:14px}main{margin-left:240px}.topbar{height:88px;display:flex;align-items:center;gap:22px;padding:0 48px;border-bottom:1px solid var(--line);font-size:11px}.topbar #dateLabel{text-transform:capitalize}.top-label{margin-left:auto;font-size:9px;letter-spacing:1.6px;color:var(--muted)}.avatar{background:#e8ecde;border:1px solid #dce2d0;border-radius:50%;width:33px;height:33px;display:grid;place-items:center}#content{max-width:1390px;margin:auto;padding:40px 48px 60px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:#8b9781;margin-bottom:12px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}h1{font:400 36px/1.3 var(--serif);letter-spacing:-1px;margin:0 0 10px}h2{font:400 24px var(--serif);margin:0}h3{font-weight:500}p.sub{color:var(--muted);font-size:12px;line-height:1.7;margin:0}.primary{background:var(--green);color:white;border-radius:6px;padding:13px 19px;font-size:12px;display:inline-flex;gap:11px;align-items:center}.primary:hover{background:#173a30}.primary span{font-size:20px;line-height:15px}.outline{border:1px solid #cfd6c5;padding:11px 16px;border-radius:6px;font-size:12px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr);gap:22px;margin:30px 0 36px}.continue-card{background:#e9eddf;border:1px solid #e1e6d5;min-height:245px;border-radius:12px;padding:28px 30px;display:flex;gap:28px;position:relative;overflow:hidden}.continue-card:after{content:'✳';font:280px Georgia;position:absolute;right:-75px;bottom:-140px;color:#dce3ce;pointer-events:none}.cover{height:170px;aspect-ratio:.68;background:var(--cover,#34574d);border-radius:3px 7px 7px 3px;box-shadow:5px 8px 12px #1c32291c;position:relative;overflow:hidden;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;color:#fff9e8;padding:17px 14px;text-align:left}.cover:before{content:'';position:absolute;left:5px;top:0;bottom:0;border-left:1px solid #ffffff2b}.cover:after{content:'';position:absolute;width:130px;height:130px;border:1px solid #ffffff38;border-radius:50%;bottom:-65px;right:-50px;box-shadow:0 0 0 13px #ffffff0d,0 0 0 27px #ffffff08}.cover .cover-author{font-size:7px;text-transform:uppercase;letter-spacing:1.3px;line-height:1.7}.cover .cover-title{font:17px/1.3 var(--serif);overflow-wrap:anywhere}.cover .cover-mark{font-size:8px;letter-spacing:2px}.continue-info{display:flex;flex-direction:column;position:relative;z-index:1;min-width:0}.continue-info .eyebrow{font-size:8px}.continue-info h2{font-size:26px;line-height:1.3;margin:4px 0 7px;overflow-wrap:anywhere}.author{color:#74806f;font-size:11px}.book-progress{margin:17px 0 16px;max-width:250px}.track{height:3px;background:#d4ddc9;border-radius:9px;overflow:hidden}.track i{display:block;background:#58754c;height:100%}.progress-label{display:flex;justify-content:space-between;color:#839078;font-size:9px;margin-top:7px;gap:15px}.continue-info .primary{align-self:flex-start;padding:11px 20px;margin-top:auto}.goal-card{border:1px solid var(--line);border-radius:12px;padding:26px;background:#fffefa}.section-mini{font-size:10px;display:flex;justify-content:space-between;align-items:center}.goal-card .ring-row{display:flex;align-items:center;gap:19px;margin:22px 0}.ring{--pct:0%;width:95px;height:95px;border-radius:50%;background:conic-gradient(#7e9963 var(--pct),#edf0e6 0);display:grid;place-items:center;flex-shrink:0}.ring-inner{background:#fffefa;width:81px;height:81px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-inner strong{font:26px var(--serif)}.ring-inner small{font-size:9px;color:var(--muted);margin-top:3px}.goal-card p{font:16px/1.7 var(--serif);margin:0}.goal-card p small{font:10px var(--sans);color:var(--muted)}.goal-card .goal-bottom{border-top:1px solid var(--line);padding-top:14px;font-size:10px;color:#7d8974}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px;background:#fffefa;margin-bottom:35px}.mini-stat{padding:20px 23px;border-right:1px solid var(--line)}.mini-stat:last-child{border:0}.mini-stat small{font-size:9px;display:block;color:var(--muted);margin-bottom:12px}.mini-stat strong{font:25px var(--serif)}.mini-stat em{font-size:10px;font-style:normal;color:#8b927f;margin-left:5px}.library-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.library-top h2 span{font:11px var(--sans);color:var(--muted);margin-left:8px}.search-wrap{position:relative}.search-wrap span{position:absolute;left:12px;top:7px;font-size:22px;color:#8c9583}.search-wrap input{background:transparent;border:1px solid var(--line);border-radius:6px;padding:10px 12px 10px 36px;width:240px;outline:none;font-size:11px}.filters{display:flex;gap:9px;margin-bottom:26px;flex-wrap:wrap}.chip{border:1px solid transparent;color:var(--muted);border-radius:20px;font-size:10px;padding:8px 13px}.chip.active{border-color:#d5deca;background:#eaf0e1;color:#36523b}.book-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px}.book-card{min-width:0}.book-open{display:block;width:100%;text-align:left;padding:0}.book-card .cover{height:auto;width:100%;aspect-ratio:.68;max-height:260px;padding:23px 19px}.book-card .cover-title{font-size:clamp(15px,1.5vw,24px)}.book-meta{margin-top:15px;position:relative;padding-right:22px}.book-meta h3{font-size:12px;margin:0 0 6px;line-height:1.6;overflow-wrap:anywhere}.book-meta p{font-size:10px;color:var(--muted);margin:0 0 11px}.book-meta .more{position:absolute;top:0;right:0;padding:0 5px;font-size:19px}.book-meta .badge{font-size:8px;letter-spacing:.7px;color:#8e9587}.book-meta .track{margin:9px 0 7px}.upload-card{border:1px dashed #cad4be;border-radius:7px;aspect-ratio:.68;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#849276;background:#f0f3e9;min-height:160px}.upload-card b{font:32px var(--serif);font-weight:400}.upload-card span{font-size:11px}.upload-card small{font-size:8px}.bottom-note{color:#a1a697;font-size:9px;letter-spacing:1px;text-align:center;margin-top:45px}.empty{border:1px dashed #cfd6c5;border-radius:10px;padding:50px;text-align:center;grid-column:1/-1;color:var(--muted)}.empty h3{font:23px var(--serif);color:var(--ink)}.empty p{font-size:12px;line-height:1.8}.empty .primary{margin-top:15px}.mobile-nav{display:none}.stats-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.panel{background:#fffefa;border:1px solid var(--line);border-radius:12px;padding:25px;margin-bottom:22px}.panel h2{font-size:21px}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.period-nav{display:flex;align-items:center;gap:12px;font-size:12px}.bars{display:flex;align-items:stretch;height:200px;gap:8px;border-bottom:1px solid var(--line);padding-top:24px}.bar-col{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.bar{background:#759265;border-radius:4px 4px 0 0;width:min(100%,35px);min-height:2px;position:relative}.bar-col small{font-size:8px;color:var(--muted);height:22px;padding-top:7px}.bar-col b{font-size:8px;font-weight:400;color:#7b8870;margin-bottom:6px;white-space:nowrap}.chart-empty{font-size:11px;color:var(--muted);margin-top:15px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:22px}.cal-cell{aspect-ratio:1;display:grid;place-items:center;font-size:10px;border-radius:5px;background:#f2f3ec}.cal-cell.read{background:#6b8b5c;color:white}.cal-cell.today{outline:1px solid #9ba58a;outline-offset:1px}.cal-cell.blank,.cal-cell.day{background:none;color:#9ca18f}.legend{font-size:9px;color:var(--muted);margin-top:16px}.legend i{display:inline-block;background:#6b8b5c;width:9px;height:9px;border-radius:2px;margin-right:5px}.history-row{display:flex;gap:15px;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px;align-items:center}.history-row .history-title{flex:1;min-width:0;overflow-wrap:anywhere}.history-row small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid var(--line)}.form-row label{font-size:12px}.form-row small{display:block;color:var(--muted);font-size:10px;line-height:1.7;max-width:300px;margin-top:7px}input[type=number],select{border:1px solid #dce1d4;background:#fffefa;padding:9px;border-radius:6px;width:90px;color:var(--ink)}.settings-grid p{font-size:12px;line-height:1.9;color:var(--muted)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(120px);opacity:0;transition:.2s;background:#244e43;color:white;padding:15px 24px;border-radius:8px;max-width:90vw;z-index:100;font-size:12px;box-shadow:0 5px 25px #0002}#toast.show{transform:translateX(-50%);opacity:1}dialog{border:1px solid var(--line);border-radius:12px;padding:32px;width:480px;max-width:calc(100% - 32px);max-height:85vh;color:var(--ink);background:#fffefa;box-shadow:0 20px 100px #182c2a22}dialog::backdrop{background:#17352e66;backdrop-filter:blur(4px)}dialog h2{font-size:25px;margin:0 20px 20px 0}dialog p{line-height:1.8;color:var(--muted);font-size:12px}.modal-close{position:absolute;right:13px;top:12px}.icon{width:37px;height:37px;border-radius:6px;font-size:20px;display:inline-grid;place-items:center;flex-shrink:0}.icon:hover{background:#d8dfce55}.quiet{padding:9px;font-size:11px}.modal-list{display:grid;gap:5px;margin-top:20px;max-height:50vh;overflow:auto}.modal-list button{text-align:left;padding:12px;border-radius:6px;background:#f0f2e9;font-size:12px}.modal-list button:hover{background:#e0e7d6}.modal-search{width:100%;padding:12px;border:1px solid var(--line);border-radius:6px}.danger{color:#a75441}.bookmark-item{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);gap:15px}.bookmark-item p{font:16px/1.6 var(--serif);margin:0 0 5px}.bookmark-item small{color:var(--muted);font-size:10px}.reader-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 28px;border-bottom:1px solid #8882;position:sticky;top:0;background:var(--reader-bg);z-index:2}.reader-title{text-align:center;min-width:0}.reader-title b{display:block;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}.reader-title small{font-size:9px;display:block;opacity:.5;margin-top:5px}.reader-actions{display:flex;gap:4px}.reader-status{display:flex;align-items:center;justify-content:center;gap:12px;font-size:9px;opacity:.6;padding:16px}.reader-status button{font-size:9px;text-decoration:underline}#reader{--reader-bg:#f7f3e8;--reader-ink:#383b31;position:fixed;inset:0;z-index:20;background:var(--reader-bg);color:var(--reader-ink);overflow:auto}#reader[hidden]{display:none}#reader.dark{--reader-bg:#202923;--reader-ink:#d9ddca}#reader.white{--reader-bg:#fff;--reader-ink:#30382f}#page{max-width:760px;margin:0 auto;padding:15px 36px 40px;font:20px/1.9 var(--serif);white-space:pre-wrap;overflow-wrap:break-word;min-height:55vh}#page h2{font:1.5em/1.6 var(--serif);margin:15px 0 30px}#page canvas{display:block;max-width:100%;height:auto;margin:0 auto;background:white}.reader-footer{max-width:690px;margin:0 auto;padding:0 20px 35px}.page-controls{display:flex;justify-content:center;align-items:center;gap:25px;padding:10px}.reader-footnote{display:flex;justify-content:space-between;font-size:9px;opacity:.6;margin-top:10px}.reader-footnote button{font-size:9px}.theme-choices{display:flex;gap:10px;margin:20px 0}.theme-choices button{border:1px solid #b9c5aa;border-radius:6px;width:70px;padding:14px}.theme-choices button:nth-child(1){background:#f7f3e8;color:#383b31}.theme-choices button:nth-child(2){background:white;color:#30382f}.theme-choices button:nth-child(3){background:#202923;color:#d9ddca}input[type=range]{accent-color:#7e9963}.drop-overlay{position:fixed;inset:0;z-index:90;background:#244e43ee;color:white;display:grid;place-items:center;font:32px var(--serif);border:3px dashed #b7c595;margin:15px;border-radius:12px;pointer-events:none}.help{font-size:10px!important;color:#8b9583!important}
@media(min-width:1550px){.book-grid{gap:35px}.hero-grid{grid-template-columns:1.8fr 1fr}.continue-card{padding:30px 40px}}@media(max-width:1150px){.sidebar{width:205px;padding:30px 16px}main{margin-left:205px}.topbar{padding:0 28px}#content{padding:32px 28px}.book-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.hero-grid{grid-template-columns:1.4fr 1fr}.continue-card{padding:25px 20px;gap:20px}.continue-card .cover{height:160px}.continue-info h2{font-size:21px}.goal-card{padding:22px}.goal-card .ring-row{gap:12px}.goal-card p{font-size:14px}.stats-grid{grid-template-columns:1fr 1fr}}@media(max-width:850px){.sidebar{width:175px;padding:28px 10px}.sidebar button{font-size:11px;gap:8px}.brand{font-size:43px;padding-left:16px}.brand i{margin-left:14px}.brand-sub{font-size:6px;letter-spacing:1.5px}.small-quote{font-size:10px}.local-note{font-size:9px}.local-note small{font-size:8px}main{margin-left:175px}.top-label{display:none}.hero-grid{grid-template-columns:1fr}.goal-card{display:none}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mini-stat{padding:18px 12px}.mini-stat strong{font-size:21px}.mini-stat small{font-size:8px}.stats-grid,.settings-grid{grid-template-columns:1fr}h1{font-size:30px}.topbar{height:65px}.search-wrap input{width:180px}.heading{gap:15px}.primary{white-space:nowrap}}@media(max-width:600px){.sidebar{display:none}main{margin:0}.topbar{height:58px;padding:0 22px}#content{padding:28px 20px 100px}.topbar:before{content:none;font:27px Georgia;letter-spacing:-1px}.topbar #dateLabel{margin-left:auto;font-size:9px}.avatar{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#f5f6edf5;border-top:1px solid var(--line);backdrop-filter:blur(10px);z-index:10;justify-content:space-around;padding:10px 4px max(10px,env(safe-area-inset-bottom))}.mobile-nav button{font-size:23px;color:#89947d;min-width:65px;display:grid;gap:4px}.mobile-nav button.active{color:#254e43}.mobile-nav small{font-size:8px}.eyebrow{font-size:8px;letter-spacing:1.5px}h1{font-size:28px;margin-bottom:8px}.heading{align-items:flex-start;margin-bottom:20px}.heading .primary{font-size:0;gap:0;padding:12px;margin-top:25px;width:40px;height:40px;justify-content:center}.heading .primary span{font-size:24px}p.sub{font-size:11px}.hero-grid{margin:25px 0}.continue-card{gap:22px;padding:23px 20px;min-height:220px}.continue-card .cover{height:155px}.continue-info h2{font-size:21px}.continue-info .primary{font-size:10px}.continue-info .eyebrow{font-size:7px}.stat-strip{margin-bottom:27px;grid-template-columns:1fr 1fr}.mini-stat{padding:17px 18px}.mini-stat:nth-child(2){border-right:0}.mini-stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.mini-stat small{font-size:9px;margin-bottom:7px}.mini-stat strong{font-size:23px}.library-top{align-items:flex-start;flex-direction:column;gap:16px}.library-top h2{font-size:23px}.search-wrap,.search-wrap input{width:100%}.filters{gap:2px;margin-bottom:20px}.chip{font-size:9px;padding:8px 11px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 21px}.book-card .cover{max-height:none;padding:23px 18px}.book-card .cover-title{font-size:22px}.book-card .cover-author{font-size:7px}.upload-card{aspect-ratio:.68}.panel{padding:20px}.reader-bar{padding:10px 9px;gap:4px}.reader-bar .quiet{font-size:19px}.reader-bar .quiet span{display:none}.reader-actions{gap:0}.reader-actions .icon{width:31px;font-size:18px}.reader-title b{max-width:42vw;font-size:10px}.reader-title small{font-size:8px}#page{padding:8px 23px 25px;font-size:19px;line-height:1.85;min-height:58vh}.reader-footer{padding:0 24px 25px}#toast{bottom:85px;min-width:250px;text-align:center}.bookmark-item p{font-size:14px}dialog{padding:26px 22px}.empty{padding:30px 20px}}
/* A reader page always fits the available screen, including system safe areas. */
#reader{height:100vh;height:100dvh;bottom:auto;display:flex;flex-direction:column;overflow:hidden;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
#reader[hidden]{display:none}.reader-bar{flex:0 0 auto;position:relative}.reader-status{flex:0 0 auto;padding:9px 12px;min-height:30px}
#page{flex:1 1 0;min-height:0;width:100%;max-width:760px;overflow:hidden;padding:12px 36px 14px;margin:0 auto;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;touch-action:pan-y;user-select:text}
#page.pdf-page{display:flex;align-items:center;justify-content:center;white-space:normal}
#page canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;flex-shrink:1}
.reader-footer{flex:0 0 auto;width:100%;padding:0 24px calc(12px + env(safe-area-inset-bottom));margin:0 auto;max-width:760px}
.page-controls{padding:4px;gap:24px}.reader-footnote{margin-top:4px}.page-controls .quiet{min-width:125px;font-variant-numeric:tabular-nums}
.reader-footnote button{padding:5px 0}
.cover.has-image{padding:0;background:#ecece3}.cover.has-image:before,.cover.has-image:after{display:none}.cover-image{display:block;width:100%;height:100%;object-fit:contain;background:#e8e9e0}
@media(max-width:600px){#page{padding:8px 22px 10px}.reader-bar{padding:7px 9px}.reader-status{padding:6px 10px;min-height:25px}.reader-footer{padding:0 20px calc(8px + env(safe-area-inset-bottom))}.page-controls{padding:0}.page-controls .icon{height:32px}.reader-footnote{font-size:8px}.reader-title small{display:none}}
@media(max-height:450px){.reader-status{display:none}.reader-bar{padding:3px 12px}.reader-footer{padding-bottom:4px}.reader-footnote{display:none}.page-controls .icon{height:28px}#page{padding-top:4px;padding-bottom:4px}}
@media(prefers-reduced-motion:reduce){#page{animation:none!important}}
.annual-count{display:flex;align-items:baseline;gap:12px;margin:22px 0 18px}.annual-count strong{font:40px var(--serif)}.annual-count span{font-size:12px;color:var(--muted)}.annual-goal .track{height:5px;margin-bottom:14px}.annual-goal .panel-top{align-items:baseline}.annual-goal .quiet{white-space:nowrap;color:var(--muted)}
.page-turn-scene{position:fixed;z-index:25;pointer-events:none;perspective:1600px;perspective-origin:15% 50%;isolation:isolate;contain:layout style}
.turn-base{position:absolute;inset:0;background:var(--sheet-color);color:var(--sheet-ink)}
.turn-strip{position:absolute;left:0;top:0;height:100%;transform-origin:0 50%;transform-style:preserve-3d;will-change:transform}
.turn-strip-front,.turn-strip-back{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--sheet-color);color:var(--sheet-ink)}
.turn-strip-back{transform:rotateY(180deg);background:linear-gradient(90deg,#0000000a,#ffffff0c),var(--sheet-color)}
.turn-ghost{opacity:.045}
.turn-cast-shadow{position:absolute;inset:0;background:linear-gradient(90deg,#00000046,transparent 85%);transform-origin:left;opacity:0}
@media(prefers-reduced-motion:reduce){.page-turn-scene{display:none}}
.page-turn-scene{overflow:hidden}
.page-turn-scene{perspective:3000px;perspective-origin:0 50%}


#bookmarkBtn svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}#bookmarkBtn.is-saved svg{fill:currentColor}
.reader-highlight{background:color-mix(in srgb,var(--highlight) 64%,transparent);color:inherit;padding:0;margin:0;border:0;font:inherit;line-height:inherit;box-decoration-break:clone;-webkit-box-decoration-break:clone;cursor:pointer}
.dark .reader-highlight{background:color-mix(in srgb,var(--highlight) 38%,transparent)}
.reader-highlight:focus-visible{outline:1px solid currentColor;outline-offset:1px}
.selection-toolbar{position:fixed;z-index:35;display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:12px;background:#fffdf5;color:#263c35;box-shadow:0 5px 30px #182c2a35;border:1px solid #cbd4bd;touch-action:none}
.selection-toolbar[hidden]{display:none}.color-choice{display:block;flex-shrink:0;width:28px;height:28px;padding:0;border-radius:50%;background:var(--swatch);border:2px solid #ffffffb0;box-shadow:0 0 0 1px #00000013}.color-choice.selected,.color-choice:focus-visible{outline:2px solid var(--green);outline-offset:3px}.selection-note{font-size:11px;white-space:nowrap;padding:7px 4px;margin-left:auto}
.annotation-colors{display:flex;gap:15px;margin:20px 0 26px}.annotation-colors .color-choice{width:31px;height:31px}
.annotation-quote{margin:0;padding:12px 15px;border-left:3px solid #abbc90;background:#f0f3e9;font:14px/1.8 var(--serif);max-height:160px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
#annotationNote{display:block;width:100%;min-height:120px;resize:vertical;margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:6px;font:13px/1.7 var(--sans);color:var(--ink);background:#fffefa}
.annotation-item{display:flex;gap:10px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.annotation-jump{flex:1;min-width:0;text-align:left;padding:0}.annotation-jump span{display:block;font:14px/1.7 var(--serif);border-left:3px solid var(--highlight);padding-left:12px;white-space:pre-wrap;overflow-wrap:anywhere}.annotation-jump small{display:block;color:var(--muted);font-size:10px;margin:10px 0 0 15px;white-space:pre-wrap;overflow-wrap:anywhere}
.pdf-page-surface{position:relative;flex:0 0 auto;background:white}.pdf-page-surface>canvas{position:absolute;inset:0;margin:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
.pdf-text-layer{position:absolute;inset:0;overflow:hidden;text-align:initial;line-height:1;white-space:pre;color:transparent;user-select:text;-webkit-user-select:text;cursor:text;touch-action:pan-y}
.pdf-text-layer>span{position:absolute;white-space:pre;transform-origin:0 0;line-height:1;color:transparent}.pdf-text-layer .reader-highlight{color:transparent}.pdf-text-layer ::selection{background:#9ccaf080;color:transparent}
@media(max-width:600px){.reader-actions{gap:0}.reader-actions .icon{width:29px;font-size:18px}.reader-title{flex:1}.reader-title b{max-width:100%;font-size:10px}.reader-bar{gap:2px}.reader-bar>#closeReader{width:29px;padding:4px}.selection-toolbar{gap:8px;padding:10px}.color-choice{width:27px;height:27px}}
@media(max-width:340px){.reader-actions .icon{width:27px}.reader-title b{font-size:9px}}
/* Fixed reading geometry: panels animate over the page and never participate in layout. */
#reader .reader-top{position:absolute;top:env(safe-area-inset-top);left:0;right:0;z-index:30;transform:translateY(0);opacity:1;background:var(--reader-bg);box-shadow:0 3px 18px #0000000a;transition:transform 240ms cubic-bezier(.2,.7,.3,1),opacity 240ms;will-change:transform}
#reader .reader-bar{position:relative;width:100%}#reader .reader-status{background:var(--reader-bg);opacity:1;color:var(--reader-ink)}#reader .reader-status>span{opacity:.6}
#reader .reader-footer{position:absolute;bottom:0;left:50%;z-index:30;background:var(--reader-bg);transform:translate(-50%,0);opacity:1;box-shadow:0 -3px 18px #0000000a;transition:transform 240ms cubic-bezier(.2,.7,.3,1),opacity 240ms;will-change:transform}
#reader.focus-mode .reader-top{transform:translateY(calc(-100% - env(safe-area-inset-top)));opacity:0;pointer-events:none}
#reader.focus-mode .reader-footer{transform:translate(-50%,calc(100% + env(safe-area-inset-bottom)));opacity:0;pointer-events:none}
#reader #page{padding-top:18px;padding-bottom:18px;user-select:none;-webkit-user-select:none;cursor:default}
#reader #page .pdf-text-layer{user-select:none;-webkit-user-select:none}
#reader #page.selection-enabled,#reader #page.selection-enabled .pdf-text-layer{user-select:text;-webkit-user-select:text;cursor:text}
#page h2.chapter-heading,.reader-page-measure h2.chapter-heading{font-family:inherit;font-size:1.45em;font-weight:500;line-height:1.35;letter-spacing:0;margin:0;padding:0;white-space:pre-wrap;overflow-wrap:anywhere}
#page .chapter-body,.reader-page-measure .chapter-body{margin:0;padding:0;font:inherit;line-height:inherit;white-space:pre-wrap}
#page .reader-highlight{cursor:inherit}
@media(prefers-reduced-motion:reduce){#reader .reader-top,#reader .reader-footer{transition:none}}
/* Transformed overlay panels must not create a focus-scrollable reader. */
#reader,#reader #page{overflow:clip}
#page .chapter-body,.reader-page-measure .chapter-body{padding-top:22px}
.chapter-separator{display:none}
/* Reader controls are separate surfaces; changing them never changes page geometry. */
#reader{--reader-panel:#e6e1d1;--panel-line:#b8b5a4}
#reader.white{--reader-panel:#e9eeeb;--panel-line:#bbc9c0}
#reader.dark{--reader-panel:#344138;--panel-line:#627366}
#reader .reader-top,#reader .reader-footer,#reader .reader-status,#reader .reader-bar{background:var(--reader-panel)}
#reader .reader-top{border-bottom:1px solid var(--panel-line);box-shadow:0 5px 18px #0000001a}
#reader .reader-footer{border-top:1px solid var(--panel-line);box-shadow:0 -5px 18px #0000001a;border-radius:14px 14px 0 0;padding-top:7px}
#reader .reader-bar{padding:12px 24px;min-height:68px}
#reader .reader-actions{gap:7px}
#reader .reader-actions .icon,#reader #closeReader{min-width:44px;height:44px;font-size:24px;border-radius:9px}
#reader #bookmarkBtn svg{width:24px;height:24px}
#reader .reader-title b{font-size:13px}
#reader .reader-status{font-size:11px;padding:8px 12px 12px}
#reader .reader-status button{font-size:11px;min-height:30px;padding:5px 12px}
#reader #page{touch-action:none;-webkit-touch-callout:none}
@media(max-width:600px){
 #reader .reader-bar{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 10px;padding:10px 14px 7px}
 #reader .reader-title{text-align:left}#reader .reader-title b{font-size:13px;max-width:none}
 #reader .reader-actions{grid-column:1/-1;display:flex;justify-content:space-between;gap:2px}
 #reader .reader-actions .icon{width:44px;font-size:24px}
 #reader .reader-status{padding:4px 12px 8px}
}
.text-selection{position:fixed;inset:0;z-index:34;pointer-events:none}
.text-selection[hidden]{display:none}.selection-ink i{position:fixed;background:#6bafe54d;pointer-events:none}
.selection-handle{position:fixed;width:44px;height:44px;transform:translateX(-50%);pointer-events:auto;touch-action:none;cursor:grab;padding:0;background:transparent;border-radius:50%;user-select:none;-webkit-user-select:none}
.selection-handle:before{content:'';position:absolute;top:0;left:21px;width:2px;height:15px;background:#397fad}
.selection-handle:after{content:'';position:absolute;top:11px;left:13px;width:18px;height:18px;border-radius:50%;background:#397fad;border:2px solid #fff;box-shadow:0 1px 5px #0005}
.text-selection.dragging .selection-handle{cursor:grabbing}
.selection-toolbar{flex-wrap:wrap;gap:9px;touch-action:none}
.selection-pages{display:flex;align-items:center;justify-content:space-between;width:100%;border-top:1px solid #cbd4bd;padding-top:5px;font-size:10px;color:#586952;gap:5px}
.selection-pages button{width:42px;height:34px;border-radius:6px;background:#e9eedf;font-size:20px}
/* Targets sit outside the range, so even a short word has two usable handles. */
.selection-handle.start{transform:translateX(-100%)}.selection-handle.end{transform:none}
.selection-handle.start:before{left:auto;right:0}.selection-handle.end:before{left:0}
.selection-handle.start:after{left:auto;right:0}.selection-handle.end:after{left:0}
/* Talehabit: a quiet home for a growing reading life. */
:root{--bg:#f7f5ef;--paper:#fffdf8;--ink:#2b4137;--muted:#81877b;--line:#e3e4d9;--green:#294f40;--light:#eaf0e5}
#app .sidebar{width:226px;padding:34px 20px;background:#efefe5;border-color:#dedfd2}
#app main{margin-left:226px}#app .brand{font-size:51px}#app .brand i{color:#b49569}
#app .sidebar nav{gap:8px}#app .sidebar button{min-height:49px;border-radius:12px;font-size:12px;padding:12px 15px;gap:13px;transition:background .18s}
[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}#app .sidebar button.active{background:#dde5d3;color:#2b523f;font-weight:500}
#app .sidebar button:hover{background:#e3e8db}#app .small-quote{padding:26px 15px;font-size:12px;color:#8b927f}
#app .topbar{height:79px;border-color:#e9e7dd;font-size:11px;padding:0 44px;gap:16px;background:#f9f7f1}
.top-label{letter-spacing:1.5px}
#content{max-width:1450px;padding:39px 44px 42px}
#app h1{font-size:39px;line-height:1.24;letter-spacing:-1.25px;font-weight:400}
#app h2{font-size:25px;line-height:1.35;letter-spacing:-.5px}
#app .eyebrow{display:flex;align-items:center;gap:8px;font-size:9px;line-height:1.6;color:#8c987c;letter-spacing:1.65px}
#app p.sub{font-size:12px;line-height:1.8;color:#8a8d80}
#app .primary{border-radius:9px;min-height:43px;padding:12px 17px;font-size:12px;align-items:center;justify-content:center}
#app .primary svg{flex-shrink:0}#app button:focus-visible{outline-color:#839b6d}
.home-heading{margin-bottom:27px}.home-heading h1{margin:0 0 14px}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,1fr);gap:20px}
.home-continue{position:relative;isolation:isolate;overflow:hidden;background:#2c4b3b;color:#fcf9ec;border-radius:20px;padding:31px;min-height:319px;display:flex;align-items:center;gap:20px}
.home-continue:before,.home-continue:after{content:'';position:absolute;border:1px solid #f5f3d414;border-radius:50%;width:390px;height:390px;right:-135px;top:-100px;pointer-events:none;z-index:-1}
.home-continue:after{width:310px;height:310px;right:-95px;top:-60px}
.home-continue-copy{min-width:0;flex:1;z-index:1}#app .home-continue .eyebrow{color:#c0cfac;font-size:8px;letter-spacing:1.4px}
#app .home-continue h2{font-size:29px;line-height:1.3;margin:14px 0 8px;overflow-wrap:anywhere;color:#fff9e9}
.hero-author{font-size:11px;color:#bac7b1;line-height:1.7;margin:0}
.home-continue .book-progress{margin:23px 0 20px;max-width:300px}.home-continue .track{height:4px;background:#ffffff24}
.home-continue .track i{background:#c1ce98}.home-continue .progress-label{color:#c1c9b4;font-size:9px;line-height:1.5}
#app .home-continue .primary{background:#e5e9d5;color:#2d4a3b;gap:13px;padding:12px 19px;min-height:44px}
#app .home-continue .primary:hover{background:#f2f3e7}.hero-whisper{font:italic 11px/1.7 var(--serif);color:#b4c2a6;margin:13px 0 0}
.home-book-art{position:relative;width:125px;flex:0 0 125px;align-self:center;padding:0;transform:rotate(7deg);transition:transform .25s}
.home-book-art:hover{transform:rotate(2deg) translateY(-4px)}.home-book-art:after{content:'';position:absolute;left:6px;right:-5px;top:4px;bottom:-3px;background:#e8e5d4;border-radius:4px;z-index:-1;box-shadow:8px 16px 23px #10221860}
.home-book-art .cover{height:auto;width:100%;aspect-ratio:.68;padding:18px 13px;border-radius:3px 6px 6px 3px;box-shadow:2px 0 5px #0004}
.home-book-art .cover-title{font-size:20px}.home-book-art .cover-author{font-size:7px}.home-book-art .cover.has-image{padding:0}
.empty-book-art{color:#c0cda1;opacity:.55;transform:rotate(-9deg)}
.home-rhythm{background:#efe9d9;border:1px solid #e6dfcc;border-radius:20px;padding:25px 24px;display:flex;flex-direction:column;min-width:0}
.home-rhythm .section-mini>span{display:flex;gap:6px;align-items:center;font-size:8px;letter-spacing:1px;color:#888b6e}
.surface-link{display:inline-grid;place-items:center;min-width:32px;min-height:32px;color:#858c71}
.home-goal-row{display:flex;gap:16px;align-items:center;margin:15px 0 24px}.home-goal-row .ring{width:84px;height:84px;background:conic-gradient(#8b9f6c var(--pct),#dedfc9 0)}
.home-goal-row .ring-inner{width:71px;height:71px;background:#efe9d9}.home-goal-row strong{font-size:27px}.home-goal-row .ring-inner small{font-size:9px;margin-top:2px}
#app .home-goal-row h2{font-size:17px;line-height:1.5;letter-spacing:-.3px;margin:0}.home-goal-row p{font-size:10px;line-height:1.8;color:#96947f;margin:6px 0 0}
.week-rhythm{display:flex;justify-content:space-between;gap:7px;margin-top:auto}.rhythm-day{display:flex;flex:1;flex-direction:column;align-items:center;gap:8px;font-size:9px;color:#8d907e}
.rhythm-day i{display:grid;place-items:center;width:27px;height:27px;border:1px solid #d8d9c4;border-radius:50%;font-style:normal;background:#f5f0e3;color:#8a9c6c}
.rhythm-day.complete i{background:#85996a;border-color:#85996a;color:#fff}.rhythm-day.today i{outline:1px solid #a7b08e;outline-offset:3px}.rhythm-day.today>span{color:#475b3d}
.rhythm-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;border-top:1px solid #dedcc9;margin-top:19px;padding-top:13px;font-size:9px;color:#96957e}
.rhythm-foot>span:first-child{display:flex;align-items:center;gap:5px;color:#64734e}.rhythm-foot b{font-weight:600}
.home-milestones{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0 34px;border:1px solid var(--line);border-radius:15px;background:#fffdf7}
.home-milestones button{display:flex;align-items:center;gap:14px;text-align:left;padding:20px 22px;min-width:0;border-right:1px solid var(--line)}
.home-milestones button:last-child{border:0}.home-milestones button>svg:first-child{color:#9eab88;flex-shrink:0}.home-milestones button>svg:last-child{margin-left:auto;color:#b3baa3;flex-shrink:0}
.home-milestones strong{font:23px var(--serif);font-weight:400;display:block}.home-milestones small{display:block;font-size:9px;color:#979c8e;margin-top:6px}
.home-journal-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:29px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 21px}.section-heading h2{margin:0 0 7px}.section-heading .eyebrow{font-size:8px}
.count-pill{border:1px solid #dedfcf;background:#eeeee1;color:#8f997d;border-radius:30px;font-size:11px;padding:7px 11px;flex-shrink:0}
.quote-book{border:1px solid var(--line);background:#fffdf8;border-radius:15px;margin-bottom:16px;overflow:hidden}
.quote-book summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:13px;padding:16px 18px;min-height:85px}.quote-book summary::-webkit-details-marker{display:none}
.quote-book summary:focus-visible{outline:2px solid #9cad7d;outline-offset:-3px}.quote-book-cover{width:33px;flex:0 0 33px}.quote-book-cover .cover{width:33px;height:47px;min-height:0;padding:4px 3px;border-radius:2px;box-shadow:2px 3px 6px #0002}
.quote-book-cover .cover-title{font-size:6px}.quote-book-cover .cover-author,.quote-book-cover .cover-mark{display:none}.quote-book-cover .cover.has-image{padding:0}
.quote-book-title{min-width:0;flex:1}.quote-book-title strong{font-size:12px;font-weight:500;display:block;line-height:1.6;overflow-wrap:anywhere}.quote-book-title small{display:block;font-size:9px;color:#959b8b;margin-top:4px;line-height:1.6}
.details-chevron{font-size:20px;color:#9aa58c;transition:transform .2s}.quote-book[open] .details-chevron{transform:rotate(180deg)}
.quote-book-pages{border-top:1px solid #ebeade}.saved-quote{position:relative;padding:22px 25px 19px 33px;overflow:hidden}.saved-quote+.saved-quote{border-top:1px solid #edece2}
.saved-quote:before{content:'';position:absolute;left:18px;top:26px;bottom:24px;width:3px;border-radius:5px;background:var(--quote-color)}
.quote-decoration{font:56px Georgia;position:absolute;right:19px;top:9px;color:#e4e7d6;pointer-events:none}
.saved-quote blockquote{font:17px/1.85 var(--serif);margin:0 0 13px;color:#526044;white-space:pre-wrap;overflow-wrap:anywhere;position:relative}
.quote-note{font-size:11px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:#929683;margin:0 0 14px;padding:10px 12px;background:#f4f3ea;border-radius:7px}.quote-note svg{vertical-align:middle;margin-right:4px}
.quote-return{display:inline-flex;align-items:center;gap:9px;font-size:9px;color:#9ca88d;padding:5px 0;min-height:30px}.quote-return:hover{color:#35573c}
.quotes-empty{border:1px dashed #d6dbc9;border-radius:17px;text-align:center;padding:38px 27px;background:#f0f1e6}
.empty-quote-icon{display:inline-grid;place-items:center;color:#a4b18a;background:#e5e9d7;width:65px;height:65px;border-radius:50%}
#app .quotes-empty h3{font:21px/1.5 var(--serif);margin:21px 0 10px;color:#556849}.quotes-empty p{font-size:11px;line-height:1.9;color:#949c86;max-width:350px;margin:0 auto 21px}
.text-link{display:inline-flex;align-items:center;gap:10px;font-size:11px;min-height:37px;padding:5px 0;color:#6f825a}.text-link:hover{color:#2b523e}
.home-aside{display:grid;gap:20px;align-content:start}.next-stories{padding:25px;border:1px solid var(--line);border-radius:17px;background:#fdfbf4}
#app .next-stories h2{font-size:22px;margin:0 0 8px}.next-stories .sub{font-size:10px!important;margin-bottom:17px}
.next-story{display:flex;align-items:center;gap:13px;width:100%;padding:14px 0;text-align:left;border-bottom:1px solid #e8e8dc}.next-story>span:nth-child(2){flex:1;min-width:0}.next-story>svg{color:#a8b197;flex-shrink:0}
.next-cover{width:43px;flex:0 0 43px}.next-cover .cover{width:43px;height:62px;padding:5px;border-radius:2px;box-shadow:2px 3px 7px #0002}.next-cover .cover-title{font-size:7px}.next-cover .cover-author,.next-cover .cover-mark{display:none}.next-cover .cover.has-image{padding:0}
.next-story strong{font-size:11px;font-weight:500;line-height:1.6;display:block;overflow-wrap:anywhere}.next-story small{font-size:9px;color:#959e8a;display:block;margin-top:4px;line-height:1.6}.next-story em{display:block;font-size:8px;font-style:normal;color:#a6ac95;margin-top:8px}
.next-stories>.text-link{margin-top:10px}.next-empty{padding:25px 0 10px;color:#b0b89e}.next-empty p{font-size:11px;line-height:1.8;color:#a1a88f;max-width:220px}
.home-annual{padding:23px 25px;background:#e9eddf;border-radius:17px;overflow:hidden}.home-annual-count{display:flex;align-items:baseline;gap:10px;margin:10px 0 18px}.home-annual-count strong{font:42px var(--serif);color:#667c51}.home-annual-count span{font-size:11px;color:#98a386}.home-annual-count svg{margin-left:auto;align-self:center;color:#b2bea0}.home-annual .track{height:4px;background:#d5ddc7}.home-annual .track i{background:#829969}.home-annual p{font:13px/1.8 var(--serif);color:#899775;margin:12px 0 7px}
.closing-thought{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;margin:39px 0 6px;color:#b0b79e}.closing-thought p{font:12px/1.9 var(--serif);margin:0;color:#9ca58c}.closing-thought em{font-style:italic;color:#aeb59e}
.library-heading{align-items:center;margin-bottom:23px}.library-summary{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:25px;color:#9ba18c;font-size:10px}.library-summary>span{display:flex;align-items:center;gap:7px}.library-summary b{font-weight:500;color:#60744f}
.library-tools{display:flex;gap:20px;align-items:center;margin-bottom:22px}.library-tools .search-wrap{flex:1;display:block}.library-tools .search-wrap svg{position:absolute;left:14px;top:12px;color:#a0aa90}
.library-tools .search-wrap input{width:100%;padding:13px 15px 13px 43px;background:#fffdf6;border-radius:9px;font-size:11px;border-color:#e2e4d6;min-height:44px}
.library-tools select{width:150px;min-height:43px;background:#f1f2e8;border-color:#e1e4d4;font-size:10px;color:#81906e;border-radius:8px}
.library-filters{gap:8px;margin-bottom:29px}.library-filters .chip{display:inline-flex;align-items:center;gap:8px;border-radius:8px;padding:10px 13px;font-size:10px;background:#eeefe5;color:#929c82;min-height:39px}.library-filters .chip.active{background:#e0e7d3;color:#3e5b37;border-color:#cfdabf}.library-filters .chip>span{font-size:9px;color:#9aa78a;margin-left:5px}
#app .book-grid{gap:28px 25px;grid-template-columns:repeat(4,minmax(0,1fr))}.book-card{padding:0 0 18px;border-bottom:1px solid #e4e5d8}.book-open{transition:transform .2s}.book-open:hover{transform:translateY(-4px)}
#app .book-card .cover{border-radius:3px 9px 9px 3px;box-shadow:4px 7px 16px #283a2926}.book-card .book-meta{margin-top:18px}.book-meta .track{height:3px}.book-meta .badge{font-size:8px;line-height:1.8}.upload-card{background:#eef0e4;border-color:#cbd5ba;border-radius:10px;color:#91a179}.upload-card:hover{background:#e6ebd9}
#app .stat-strip{border-radius:16px;background:#fffdf7;border-color:#e1e5d7;margin-bottom:30px;overflow:hidden}.mini-stat{padding:22px}.mini-stat small{display:flex;align-items:center;gap:7px;font-size:8px;line-height:1.6;color:#949e86}.mini-stat small svg{color:#9ead88;flex-shrink:0}.mini-stat strong{font-size:27px;color:#46603d}
#app .panel{border-radius:17px;background:#fffdf7;border-color:#e1e5d7;padding:25px}.panel h2{color:#516346}.panel .bar{background:linear-gradient(#8da475,#6f8a5b);border-radius:5px 5px 0 0}.cal-cell{border-radius:7px;background:#f2f3e9}.cal-cell.read{background:#849e6e}.cal-cell.today{outline-color:#aabd8e}
#app [data-screen="stats"] .heading{margin-bottom:29px}#app [data-screen="stats"] .filters .chip{border-radius:8px;background:#eeefe3}#app [data-screen="stats"] .filters .chip.active{background:#e0e7d3}
#app [data-screen="settings"] .heading{margin-bottom:32px}#app .settings-grid h2{display:flex;align-items:center;gap:9px}.settings-grid .form-row{padding:21px 0}.settings-grid input,.settings-grid select{border-radius:8px;background:#f5f5ec}.settings-grid .outline{border-radius:8px}
@media(min-width:1600px){#app .book-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.home-continue{min-height:335px}.home-book-art{width:145px;flex-basis:145px}#app .home-continue h2{font-size:33px}}
@media(max-width:1150px){#app .sidebar{width:190px;padding:30px 14px}#app main{margin-left:190px}#content{padding:30px}.home-hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(265px,1fr);gap:16px}.home-continue{padding:24px;gap:15px}.home-book-art{width:100px;flex-basis:100px}.home-book-art .cover-title{font-size:16px}#app .home-continue h2{font-size:25px}.home-rhythm{padding:21px 18px}.home-goal-row{gap:12px}.home-goal-row .ring{width:71px;height:71px}.home-goal-row .ring-inner{width:60px;height:60px}.home-journal-grid{gap:22px;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.home-milestones button{padding:18px 16px;gap:10px}.home-milestones strong{font-size:21px}.home-milestones button>svg:last-child{display:none}#app .book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 20px}}
@media(max-width:920px){#app .sidebar{width:173px;padding:27px 10px}#app main{margin-left:173px}#app .sidebar button{font-size:11px;padding:11px;gap:9px}#app .brand{font-size:44px}#app .brand i{font-size:24px;margin-left:14px}.home-hero-grid{grid-template-columns:1fr}.home-rhythm{padding:23px}.home-goal-row{margin:12px 0 22px}.home-rhythm .home-goal-row h2{font-size:20px}.home-goal-row p{font-size:11px}.home-goal-row .ring{width:80px;height:80px}.home-goal-row .ring-inner{width:68px;height:68px}.home-continue{min-height:292px}.home-book-art{width:132px;flex-basis:132px}.home-book-art .cover-title{font-size:21px}.home-continue .book-progress{max-width:280px}.home-journal-grid{grid-template-columns:1fr}.home-aside{grid-template-columns:1fr 1fr;gap:18px}.home-milestones button{padding:18px 13px}.home-milestones button>svg:first-child{display:none}.home-milestones strong{font-size:22px}.home-milestones small{font-size:8px}#app h1{font-size:35px}#app .stats-grid{grid-template-columns:1fr}#app .stats-grid>div{min-width:0}}
@media(max-width:600px){
 #app .sidebar{display:none}#app main{margin:0}#app .topbar{height:68px;padding:0 22px;background:#f7f5ef}#app .topbar:before{font-size:30px;color:#304b3a}#app .topbar #dateLabel{font-size:9px;color:#a1a58f}
 #content{padding:28px 20px 110px}#app h1{font-size:33px;line-height:1.25;letter-spacing:-1px}#app p.sub{font-size:11px}#app .eyebrow{font-size:8px;letter-spacing:1.3px}
 .home-heading{align-items:center;gap:12px;margin-bottom:25px}.home-heading h1{margin-bottom:12px}
 .home-hero-grid{gap:16px}.home-continue{padding:25px 23px;min-height:304px;border-radius:17px;gap:13px;align-items:center}#app .home-continue .eyebrow{font-size:7px;letter-spacing:1px;line-height:1.8;gap:6px}#app .home-continue .eyebrow svg{display:none}
 #app .home-continue h2{font-size:25px;margin:12px 0 8px}.hero-author{font-size:9px}.home-book-art{width:89px;flex-basis:89px;margin-right:0}.home-book-art .cover{padding:13px 10px}.home-book-art .cover-title{font-size:15px}.home-book-art .cover-author{font-size:5px}.home-book-art .cover-mark{font-size:5px}.home-continue .book-progress{margin:20px 0 18px}.home-continue .progress-label{font-size:8px;gap:10px;flex-wrap:wrap}.home-continue .progress-label>span:last-child{display:none}
 #app .home-continue .primary{font-size:10px;gap:9px;padding:11px 13px;min-height:42px;white-space:nowrap}.hero-whisper{font-size:9px;line-height:1.8;margin-top:13px}.empty-book-art svg{width:73px;height:73px}
 .home-rhythm{padding:20px 22px;border-radius:17px}.home-rhythm .section-mini>span{font-size:7px;letter-spacing:.8px}.home-goal-row{margin:12px 0 24px;gap:18px}#app .home-rhythm .home-goal-row h2{font-size:18px}.home-goal-row p{font-size:10px}.home-goal-row .ring{width:77px;height:77px}.home-goal-row .ring-inner{width:65px;height:65px}.week-rhythm{gap:9px}.rhythm-day i{width:27px;height:27px}.rhythm-day{gap:9px}.rhythm-foot{font-size:8px;margin-top:20px;padding-top:13px}
 .home-milestones{margin:17px 0 32px;border-radius:13px}.home-milestones button{padding:18px 11px;display:block}.home-milestones strong{font-size:19px;letter-spacing:-.5px;white-space:nowrap}.home-milestones small{font-size:8px;line-height:1.7;max-width:80px}.home-milestones button>svg{display:none}
 .home-journal-grid{gap:23px}#app .section-heading h2{font-size:25px;line-height:1.4}.section-heading .eyebrow{font-size:7px}.section-heading p.sub{font-size:10px}.section-heading{margin-bottom:19px;align-items:center}.count-pill{font-size:10px;padding:6px 9px}
 .quotes-empty{padding:29px 22px}.quotes-empty p{font-size:10px}.quote-book summary{padding:16px;gap:12px}.quote-book-title strong{font-size:11px}.quote-book-title small{font-size:8px}.saved-quote{padding:21px 21px 17px 31px}.saved-quote:before{left:16px}.saved-quote blockquote{font-size:16px;line-height:1.85}.quote-note{font-size:10px}.quote-return{font-size:9px}
 .home-aside{grid-template-columns:1fr}.next-stories{padding:23px}.next-story{padding:15px 0}.next-cover{width:45px;flex-basis:45px}.next-cover .cover{height:65px;width:45px}.next-story strong{font-size:12px}.next-story small{font-size:10px}.next-story em{font-size:9px}.home-annual{padding:23px}.closing-thought{margin:31px 0 0}.closing-thought p{font-size:11px}
 #app .mobile-nav{background:#f8f8eff5;padding:6px 6px max(6px,env(safe-area-inset-bottom));border-top:1px solid #e0e5d6;box-shadow:0 -3px 18px #283a2906}
 #app .mobile-nav button{min-width:0;width:25%;min-height:48px;gap:4px;align-content:center;justify-items:center;color:#53654f;border-radius:10px}#app .mobile-nav button.active{color:#335a3f}#app .mobile-nav button.active [data-icon]{background:#e7eddb;border-radius:9px;padding:3px 16px;margin:-3px -16px}
 #app .mobile-nav small{font-size:10px}#app .mobile-nav svg{width:22px;height:22px}
 .library-heading{align-items:flex-start;gap:6px;margin-bottom:24px}#app .library-heading .primary{font-size:0;min-width:43px;width:43px;height:43px;margin-top:29px;padding:0}.library-heading .primary .button-label{display:none}.library-heading h1{font-size:30px}.library-heading p.sub{font-size:10px}
 .library-summary{font-size:9px;gap:16px;padding-bottom:20px;margin-bottom:21px}.library-tools{gap:10px;margin-bottom:17px}.library-tools .search-wrap{width:auto;min-width:0}.library-tools .search-wrap input{font-size:10px;padding-left:36px}.library-tools .search-wrap svg{left:11px;top:13px;width:17px}.library-tools select{width:105px;font-size:9px;padding:9px 5px}
 .library-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:26px}.library-filters .chip{padding:10px 11px;font-size:9px;gap:7px;min-height:40px;text-align:left}.library-filters .chip>span{margin-left:auto}
 #app .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 19px}#app .book-card .cover{padding:21px 15px}.book-card .book-meta{margin-top:15px}.book-meta h3{font-size:11px}.book-meta p{font-size:9px}.book-meta .badge{font-size:7px}.book-meta .more{min-width:26px;min-height:30px;right:-6px;top:-4px}.upload-card{gap:11px}.upload-card span{font-size:10px}.upload-card small{font-size:7px}
 #app .stat-strip{margin-bottom:25px;border-radius:14px}.mini-stat{padding:17px!important}.mini-stat small{font-size:7px;gap:5px;margin-bottom:10px}.mini-stat small svg{width:14px;height:14px}.mini-stat strong{font-size:25px}.mini-stat em{font-size:9px}
 #app .panel{padding:21px;border-radius:15px}#app .panel h2{font-size:22px}#app .panel .period-nav{font-size:10px;gap:8px}.panel .period-nav button{min-height:32px;min-width:24px}.settings-grid .actions{flex-direction:column}.settings-grid .actions button{width:100%;justify-content:center}
}
@media(max-width:350px){#content{padding-left:16px;padding-right:16px}.home-continue{padding:22px 18px;gap:10px}.home-book-art{width:73px;flex-basis:73px}#app .home-continue h2{font-size:23px}.home-rhythm{padding:19px}.home-goal-row{gap:13px}.home-milestones strong{font-size:17px}.home-milestones button{padding:16px 10px}.home-milestones small{font-size:7px}.library-heading h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.home-book-art,.book-open,.details-chevron{transition:none}}
#app .shelf-empty{padding:43px 25px;background:#eff1e6;border-color:#cfd8bd;color:#a4b18e;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
#app .shelf-empty h3{font:23px/1.5 var(--serif);margin:5px 0;color:#647b52}#app .shelf-empty p{max-width:330px;margin:0;font-size:11px;line-height:1.9;color:#939f83}#app .shelf-empty button{margin-top:13px;font-size:11px}
#app .book-card .cover.has-image{padding:0}
.quote-visit{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 18px;padding:9px 16px;border-bottom:1px solid var(--panel-line);background:color-mix(in srgb,var(--reader-panel) 85%,var(--reader-ink));font-size:10px}
.quote-visit[hidden]{display:none}.quote-visit>span{opacity:.7}.quote-visit button{border:1px solid var(--panel-line);border-radius:7px;padding:9px 12px;font-size:11px;min-height:36px;background:var(--reader-panel)}
@media(max-width:600px){.quote-visit{font-size:9px;gap:7px;padding:9px 12px}.quote-visit button{font-size:10px}}
.rhythm-day.future{opacity:.45}
.home-reading-stack{min-width:0;display:flex;flex-direction:column}
.home-reading-carousel{display:flex;width:100%;min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:20px;flex:1}
.home-reading-carousel::-webkit-scrollbar{display:none}.home-reading-carousel>.home-continue{width:100%;min-width:100%;flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
.reading-carousel-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#9ba68b;font-size:9px;padding:8px 5px 0}
.reading-carousel-nav>div{display:flex;gap:2px}.reading-carousel-nav button{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;padding:0}.reading-carousel-nav i{width:6px;height:6px;background:#d2dac5;border-radius:50%;transition:width .2s}.reading-carousel-nav button[aria-pressed="true"] i{width:18px;border-radius:5px;background:#8c9f71}
@media(max-width:600px){.home-reading-carousel{border-radius:17px}.reading-carousel-nav{font-size:8px;padding-top:5px}}

.reader-progress{width:100%;height:4px;margin:9px 0 8px;border-radius:8px;overflow:hidden;background:color-mix(in srgb,var(--reader-ink) 17%,transparent);pointer-events:none}
.reader-progress i{display:block;height:100%;background:#82996c;border-radius:inherit}
#reader.dark .reader-progress i{background:#acbd8b}

.turn-strip-shade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}
.home-book-context{display:flex;align-items:center;gap:8px;margin:23px 4px 0;color:#9da88e;font-size:9px;line-height:1.7}.home-book-context>svg{flex-shrink:0}.home-book-context b{font-weight:500;color:#788b63;margin-left:5px;overflow-wrap:anywhere}
.home-milestones.book-specific-stats{margin-top:9px}.home-milestones .book-stat{display:flex;align-items:center;gap:14px;padding:20px 22px;min-width:0;border-right:1px solid var(--line)}.home-milestones .book-stat:last-child{border-right:0}.book-stat>svg,.book-stat-icon{flex-shrink:0;color:#9eab88}
@media(max-width:1150px){.home-milestones .book-stat{padding:18px 16px;gap:10px}}
@media(max-width:920px){.home-milestones .book-stat{padding:18px 13px}.book-stat>svg,.book-stat-icon{display:none}}
@media(max-width:600px){.home-book-context{font-size:8px;margin-top:20px;align-items:flex-start}.home-milestones .book-stat{padding:18px 11px;display:block}}
@media(max-width:350px){.home-milestones .book-stat{padding:16px 10px}}
.home-milestones .book-stat:first-child strong{white-space:normal;line-height:1.35}
.day-book-list .history-row{padding:17px 0;gap:18px;align-items:center}.day-book-list .history-row:last-child{border-bottom:0}.day-book-list .history-title{line-height:1.7}.day-reading-time{flex:0 0 auto;max-width:40%;text-align:right;line-height:1.6;font-variant-numeric:tabular-nums;color:#647a55}
/* The selected book and its personal history stay together above the daily habit. */
.home-hero-grid{align-items:start}.home-reading-stack #homeBookStats .home-milestones{margin-bottom:0}.home-reading-stack .home-book-context{margin-top:17px}

/* Book counters share the same value rows and caption baseline at every length. */
.home-milestones.book-specific-stats{grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}
.home-milestones .book-stat{display:block;padding:18px 12px;container-type:inline-size}
.home-milestones .book-stat>svg,.home-milestones .book-stat>.book-stat-icon{display:none}
.home-milestones .book-stat>span:last-child{display:grid;grid-template-rows:3em auto;font-size:clamp(16px,1.7vw,23px);min-width:0}
.home-milestones .book-stat strong,.home-milestones .book-stat:first-child strong{font-size:inherit;line-height:1.35;letter-spacing:-.4px;white-space:normal;font-variant-numeric:lining-nums tabular-nums;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;gap:0}
.stat-amount{display:block;white-space:nowrap;max-width:100%;font-size:min(23px,var(--stat-fit,19cqi))}
.home-milestones .book-stat small{margin:7px 0 0;max-width:none;line-height:1.6;min-height:3.2em;font-size:9px}
/* Never stretch a book carousel vertically to match a neighbouring habit card. */
.home-reading-carousel{flex:0 0 auto;align-items:flex-start}
.home-continue{min-height:280px;padding:25px;align-items:center}
.home-book-art{transform:perspective(650px) rotateY(-13deg) rotateZ(5deg);isolation:isolate}
.home-book-art:after{background:repeating-linear-gradient(90deg,#e9e3d1 0 1px,#faf6e9 1px 3px);right:-6px;top:5px;bottom:-4px;border-radius:2px 6px 6px 2px}
.home-book-art .cover{box-shadow:inset 5px 0 7px #0003,2px 0 5px #0004}
.home-book-art .cover:before{z-index:2;left:4px;border-left:1px solid #0002;box-shadow:2px 0 3px #ffffff55}
.theme-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0 14px}
.theme-choices button{width:100%;min-width:0;padding:13px 5px;min-height:70px;display:flex;flex-direction:column;align-items:center;gap:7px;border:2px solid #c9cebf;position:relative;font-size:13px}
.theme-check{visibility:hidden;border-radius:50%;background:#335942;color:#fff;width:20px;height:20px;display:grid;place-items:center;font:13px var(--sans)}
.theme-choices button[aria-pressed="true"]{border-color:#365c40;box-shadow:0 0 0 3px #8ba47744}
.theme-choices button[aria-pressed="true"] .theme-check{visibility:visible}
.appearance-preview{background:#f7f3e8;color:#383b31;border:1px solid #d7d5c7;border-radius:10px;padding:16px 18px;max-height:215px;overflow:auto}
.appearance-preview[data-theme="white"]{background:#fff;color:#30382f;border-color:#cbd2c8}
.appearance-preview[data-theme="dark"]{background:#202923;color:#d9ddca;border-color:#526451}
.appearance-preview small{display:block;font:11px/1.5 var(--sans);color:inherit;opacity:.8}
.appearance-preview p{margin:10px 0 0;color:inherit;font:20px/1.9 var(--serif)}
@media(max-width:600px){
 .home-continue{min-height:0;padding:22px 20px;gap:17px;display:grid;grid-template-columns:minmax(0,1fr) 94px}
 #app .home-continue h2{font-size:23px;line-height:1.3;margin:10px 0 7px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
 .home-book-art{width:94px;min-width:0;margin:0}.home-continue-copy{min-width:0}
 .home-continue .book-progress{margin:16px 0}.hero-whisper{margin-top:12px}
 #app .home-continue .primary{white-space:normal;text-align:left;font-size:10px;padding:11px 12px;gap:8px}
 .home-milestones .book-stat{padding:17px 10px}
 .home-milestones .book-stat>span:last-child{font-size:19px;grid-template-rows:2.9em auto}
 .home-milestones .book-stat small{font-size:8px}
 .stat-amount{font-size:min(20px,var(--stat-fit,19cqi))}
}
@media(max-width:350px){.home-continue{padding:20px 17px;grid-template-columns:minmax(0,1fr) 79px;gap:13px}.home-book-art{width:79px}#app .home-continue h2{font-size:21px}.home-milestones .book-stat{padding:16px 8px}}

/* Permanent captions use a balanced two-line setting across the three columns. */
.home-milestones .book-stat small{font-size:10px;font-weight:600;line-height:1.55;text-align:center;color:#65735e;min-height:3.1em;text-wrap:balance}
@media(max-width:600px){.home-milestones .book-stat small{font-size:9px}}

/* Match the tallest card without fixing the carousel to a viewport-based height. */
.home-reading-carousel{align-items:stretch}
#app .home-continue h2{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.home-continue .hero-author{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* A bounded home selection leads to the searchable collection. */
.home-recent-quotes{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fffdf8}
.quote-source{display:flex;align-items:center;gap:12px;margin:0 0 16px;position:relative;z-index:1}
.quote-source .quote-book-title{flex:1}.quote-source .quote-book-title strong{font-size:11px}
.quote-compact blockquote{font-size:16px}
.quote-saved-date{display:block;font-size:9px;color:#8f9983;margin:5px 0 7px;line-height:1.6}
.all-quotes-link{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:15px;min-height:44px;width:100%;font-size:12px}
.quote-revisit{background:#21473d;color:#fff9e9;border-radius:22px;padding:clamp(20px,4vw,40px);margin:0 0 30px;overflow-wrap:anywhere}
#app .quote-revisit h2{color:#e7cf94;font:700 13px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin:0}
.daily-quote-mark{display:block;color:#e7cf94;font:48px/1 var(--serif);margin-top:16px}
.quote-revisit blockquote{font:clamp(21px,3vw,29px)/1.55 var(--serif);white-space:pre-wrap;margin:0 0 20px}
.daily-quote-source{border-top:1px solid #ffffff40;padding-top:14px;color:#fff9e9}
.daily-quote-source span,.daily-quote-note strong{display:block;color:#e7cf94;margin:4px 0}
.daily-quote-note{white-space:pre-wrap;margin:18px 0 0}
.quote-revisit button{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;min-height:44px;margin-top:18px;background:#fff5dd;color:#21473d;border-radius:12px;text-align:left}
#app .quote-revisit h2{font-size:24px;line-height:1.45;margin-bottom:12px}
.quote-revisit>p{font-size:10px!important}.quote-revisit .saved-quote{padding-top:23px}.quote-revisit .saved-quote:before{top:26px}
.collection-back{margin-bottom:15px;gap:8px}
.collection-search{display:flex;align-items:center;gap:12px;padding:0 14px;background:#fffdf8;border:1px solid var(--line);border-radius:10px;max-width:700px}
.collection-search>svg{flex-shrink:0;color:#8b9d79}
.collection-search input{padding:15px 0!important;border:0!important;background:transparent!important;min-width:0;width:100%!important;color:var(--ink);font-size:12px!important;outline-offset:3px}
.collection-count{color:#8c9880;font-size:11px;line-height:1.7;margin:18px 0}
.collection-book .quote-book-pages:empty{display:none}.collection-more{display:block;min-height:44px;margin:16px auto;font-size:11px;max-width:calc(100% - 32px)}
@media(max-width:600px){.quote-source .quote-book-title strong{font-size:11px}.collection-search input{font-size:11px!important}.quote-compact blockquote{font-size:16px}}

.home-journal-grid.without-revisit{grid-template-columns:minmax(0,1fr)}
.home-journal-grid .home-aside{grid-template-columns:minmax(0,1fr)}

.settings-details{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.settings-details summary{cursor:pointer;font-size:12px;color:#647858;line-height:1.7;padding:8px 0}.settings-details p{font-size:11px!important}
.book-status-field{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;padding:10px 0}.book-status-field select{width:165px;min-height:44px}
#keepAwake{width:22px;height:22px;accent-color:#6e895d;flex:0 0 22px}
.reader-status [hidden]{display:none}
@media(max-width:350px){#app .library-heading h1{font-size:27px}}

.library-tools .search-submit{position:absolute;left:0;top:0;bottom:0;width:43px;display:grid;place-items:center;padding:0;z-index:1;border-radius:9px;color:#81906e}.library-tools .search-submit svg{position:static;width:19px;height:19px}

#bookGrid:focus{outline:none}

/* Talehabit wordmark: readable at narrow widths, with a real home link on mobile. */
#app .brand{display:flex;align-items:baseline;gap:5px;font-size:33px;line-height:1.15;letter-spacing:-1.4px;padding-left:0;white-space:nowrap}
#app .brand i{font-size:22px;line-height:1;margin:0;color:#b49569;font-style:normal}
#app .brand-sub{margin:12px 0 40px;font-size:8px;letter-spacing:2px}
.mobile-brand{display:none}
@media(min-width:601px) and (max-width:920px){#app .brand{font-size:27px;letter-spacing:-1.2px;gap:3px}#app .brand i{font-size:18px;margin:0}#app .brand-sub{font-size:7px;letter-spacing:1.4px}}
@media(max-width:600px){#app .topbar:before{content:none}#app .mobile-brand{display:inline-flex;align-items:baseline;gap:4px;font:600 27px/1.1 Georgia,serif;letter-spacing:-1.1px;color:var(--ink);white-space:nowrap;flex-shrink:0}#app .mobile-brand i{font-style:normal;font-size:19px;color:#b49569}#app .topbar{gap:12px}#app .topbar #dateLabel{white-space:nowrap;font-size:9px}}
@media(max-width:360px){#app .mobile-brand{font-size:24px}#app .mobile-brand i{font-size:17px}#app .topbar{padding-inline:16px;gap:8px}#app .topbar #dateLabel{font-size:8px}}

/* Approved flowing-page identity. The wordmark is outlined, independent of device fonts. */
#app .brand{display:block;width:100%;max-width:185px;padding:0;margin-bottom:32px}
#app .brand img{display:block;width:100%;height:auto}
#app .mobile-brand img{display:block;width:146px;height:auto}
@media(min-width:601px) and (max-width:920px){#app .brand{max-width:150px;margin-bottom:30px}}
@media(max-width:360px){#app .mobile-brand img{width:128px}}

@media(max-width:600px){#app .mobile-brand{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}#app .mobile-brand-tagline{display:block;margin-left:37px;font:500 9px/1.2 var(--sans);letter-spacing:.4px;color:var(--ink)}}
@media(max-width:360px){#app .mobile-brand-tagline{margin-left:32px;font-size:8.5px;letter-spacing:.2px}}

/* Mobile lockup: pages, name, then the reading promise, centered on one axis. */
@media(max-width:600px){#app .topbar{height:112px}#app .mobile-brand{align-items:center;gap:3px}#app .mobile-brand img{width:128px;height:auto}#app .mobile-brand-tagline{margin-left:0;font-size:9.5px;line-height:1.3;letter-spacing:.3px}}
@media(max-width:360px){#app .mobile-brand img{width:120px}#app .mobile-brand-tagline{margin-left:0;font-size:9px}}

@media(max-width:600px){#app .topbar{height:132px}#app .mobile-brand{gap:4px}#app .mobile-brand-tagline{font:500 10px/1.3 Georgia,serif;letter-spacing:1px;margin-left:0}}
@media(max-width:360px){#app .mobile-brand-tagline{font-size:9.5px;letter-spacing:.8px}}

/* Continuous text shares the fixed viewport and page count with paginated reading. */
#reader #page.continuous-reading{overflow-y:auto;overflow-x:hidden;touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:none;overflow-anchor:none}
#page.continuous-reading h2.chapter-heading{margin:0;display:block}
#readingModeSelect{max-width:100%;width:230px;font-size:13px}
.form-row:has(#readingModeSelect){flex-wrap:wrap;gap:12px}
@media(max-width:600px){#readingModeSelect{width:100%}}

#reader #page.continuous-reading::-webkit-scrollbar{display:none}

#importProgress{position:fixed;z-index:40;bottom:100px;left:50%;transform:translateX(-50%);width:min(92vw,600px);display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:18px;background:#244e43;color:#fffef9;box-shadow:0 8px 30px #244e4330}#importProgress span{flex:1;min-width:0;overflow-wrap:anywhere}#importProgress button{color:inherit;border:1px solid #ffffff80;border-radius:10px;padding:10px;flex-shrink:0}

/* Approved identity: web SVG is the sole source for native outlined artwork. */
#app .topbar #dateLabel{font-size:12px;font-weight:600}
@media(max-width:600px){
 #app .topbar #dateLabel{font-size:12px;font-weight:600;line-height:1.35;transform:translateY(19px);white-space:normal;text-align:right}
}
@media(max-width:360px){#app .topbar #dateLabel{font-size:11px;transform:translateY(17px)}}
/* One number, one unit, one caption: identical rows for all three book counters. */
.home-milestones .book-stat>span:last-child{display:grid;grid-template-rows:38px 24px auto;justify-items:stretch}
.home-milestones .book-stat strong,.home-milestones .book-stat:first-child strong{font-size:min(30px,calc(100cqi / (var(--stat-digits,3) * .68)));line-height:38px;letter-spacing:0;display:block;white-space:nowrap;text-align:center}
.home-milestones .book-stat .stat-unit{font:13px/24px var(--sans);color:var(--ink);text-align:center;white-space:nowrap}
.home-milestones .book-stat small{margin-top:10px}
#reader #page{padding-top:12px}

.topbar #dateLabel{text-transform:none}

.quote-refinement{margin:14px 0}.quote-refinement p{font-size:12px;color:var(--muted);margin:0 0 8px}.quote-refinement>div{display:flex;align-items:center;gap:8px;margin:6px 0}.quote-refinement span{flex:1;font-weight:600;font-size:13px}.quote-refinement button{width:48px;min-height:48px;padding:8px;border:1px solid #cbd4bd;border-radius:12px;font-size:20px}.quote-refinement button:disabled{opacity:.35;cursor:default}

/* Calendar detail uses the same calm book cards as the native reader. */
.day-reading-summary{margin:20px 0 16px;padding:18px;background:#efe9d7;border-radius:16px;color:var(--green);display:grid;gap:8px}
.day-reading-summary>span{font-size:12px;color:var(--muted);font-weight:600}
.day-reading-summary>strong{font:400 28px/1.4 var(--serif);overflow-wrap:anywhere}
.day-book-list{display:grid;gap:8px}
.day-book-card{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.day-book-cover{width:40px;flex:0 0 40px;pointer-events:none}
.day-book-cover .cover{width:40px;height:58px;min-height:0;padding:4px;border-radius:3px;margin:0}
.day-book-cover .cover.has-image{padding:0}
.day-book-cover .cover-image{object-fit:contain}
.day-book-cover .cover-author{font-size:4px;line-height:1.2;letter-spacing:0}
.day-book-cover .cover-title{font-size:6px;line-height:1.2;letter-spacing:0}
.day-book-cover .cover-mark{display:none}
.day-book-info{min-width:0;flex:1;display:grid;gap:8px}
.day-book-card .history-title{font-size:14px;line-height:1.6;font-weight:600;overflow-wrap:anywhere}
.day-book-card .day-reading-time{max-width:none;text-align:left;font-size:13px;line-height:1.5;color:var(--green);white-space:normal}
.day-reading-empty{padding:18px 12px;color:var(--muted);line-height:1.7;text-align:center}

.bar-col small{white-space:nowrap}

/* Thin page block and straight cover corners: retain the original cover artwork. */
.home-book-art{transform:perspective(650px) rotateY(-10deg) rotateZ(3deg);filter:drop-shadow(7px 12px 10px #10221840)}
.home-book-art:after{left:3px;right:-4px;top:3px;bottom:-3px;border-radius:0 1px 1px 0;background:repeating-linear-gradient(0deg,#faf7ec 0 1px,#d2cbb7 1px 1.5px,#f5f1e5 1.5px 3px);box-shadow:none;border-bottom:1px solid #bcb9a7;z-index:-1}
.home-book-art .cover{border-radius:1px;box-shadow:2px 1px 3px #10221835}
.home-book-art .cover:before,.home-book-art .cover.has-image:before{display:block;content:'';position:absolute;left:0;top:0;bottom:0;width:7px;z-index:2;border:0;background:linear-gradient(90deg,#10221845,#ffffff18 50%,transparent);box-shadow:none}
.home-book-art .cover.has-image{aspect-ratio:auto;height:auto}
.home-book-art .cover.has-image .cover-image{width:100%;height:auto;background:transparent}

.annual-goal .annual-goal-heading{justify-content:center;text-align:center}.annual-goal-heading h2{width:100%}

/* A physical top gutter stays visible even while the document scrolls. */
#reader{padding-top:calc(env(safe-area-inset-top) + 28px)}

/* Compact home introduction and reading actions. */
#app .home-heading{margin-bottom:16px}
#app .home-heading .eyebrow{margin-bottom:8px}
#app .home-heading h1{line-height:1.12;margin-bottom:8px}
#app .home-continue.home-empty{display:flex;min-height:0;padding:20px;background:var(--paper,#fffdf6);border:1px solid #dce2d3}
#app .home-continue.home-empty::before,#app .home-continue.home-empty::after{display:none}
#app .home-continue.home-empty h2{font-size:20px;color:#2c4b3b;margin:0 0 12px}
#app .home-continue .primary{background:#16352a;color:#fffef9;border:1px solid #a7be99}
#app .home-continue .primary:hover{background:#254638}

.next-reading{margin-top:20px}.next-reading h2{margin:8px 0 12px;overflow-wrap:anywhere}

/* Give the quote collection its own readable introduction below the habit card. */
.home-quotes{margin-top:40px}
#app .home-quotes .section-heading{align-items:flex-start}
#app .home-quotes .section-heading .eyebrow{display:flex;align-items:center;gap:10px;font-size:11px;line-height:1.5;letter-spacing:1.3px;margin:0 0 10px;color:#6d7a63}
.home-quotes .section-heading .eyebrow svg{width:20px;height:20px;flex:0 0 20px}
@media(max-width:600px){.home-quotes{margin-top:32px}}

/* Shared 0.38.4 polish: compact chrome, generous reading card. */
#app .home-heading{margin-bottom:18px}
@media(max-width:600px){
 #app .topbar{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:end;height:auto;padding:18px 20px 12px;gap:12px}
 #app .topbar #dateLabel{font-size:11px;line-height:13px;margin:0 0 1px;transform:none;color:#6d7a63;text-align:right;overflow-wrap:normal}
 #app .home-heading h1{font-size:30px}
 #app .home-continue:not(.home-empty){min-height:400px;padding:24px 22px;display:grid;grid-template-columns:minmax(0,1fr) 106px;grid-template-rows:auto minmax(180px,1fr) auto auto auto;column-gap:16px;row-gap:0;align-items:center}
 .home-continue:not(.home-empty) .home-continue-copy{display:contents}
 #app .home-continue:not(.home-empty) .eyebrow{grid-column:1/-1;grid-row:1;margin:0 0 14px}
 .home-continue:not(.home-empty) .home-book-details{grid-column:1;grid-row:2;min-width:0}
 .home-continue:not(.home-empty) .home-book-art{grid-column:2;grid-row:2;width:106px;align-self:center}
 .home-continue:not(.home-empty) .book-progress{grid-column:1/-1;grid-row:3;max-width:none;width:100%;margin:24px 0 15px}
 #app .home-continue:not(.home-empty) .primary{grid-column:1/-1;grid-row:4;width:100%;justify-content:space-between;text-align:center;font-size:14px;min-height:48px}
 .home-continue:not(.home-empty) .hero-whisper{grid-column:1/-1;grid-row:5;font-size:13px;margin:14px 0 0}
}
@media(max-width:360px){
 #app .topbar{grid-template-columns:120px minmax(0,1fr);padding-inline:16px;gap:8px}
 #app .topbar #dateLabel{font-size:10px}
 #app .home-continue:not(.home-empty){padding-inline:20px;grid-template-columns:minmax(0,1fr) 94px}
 .home-continue:not(.home-empty) .home-book-art{width:94px}
}

/* Annual goal: a quiet bookshelf illustration balances the exact count. */
.annual-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0}
.annual-summary .annual-count{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0;min-width:0}
.annual-summary .annual-count strong{font-size:48px;line-height:1.1;overflow-wrap:anywhere}
.annual-summary .annual-count span{font-size:14px;line-height:1.5}
.annual-bookshelf{display:block;width:112px;height:100px;flex:0 0 112px}
.annual-goal .track{margin-bottom:0}
.annual-goal .annual-achieved{margin-top:16px}
@media(max-width:360px){.annual-bookshelf{width:92px;height:84px;flex-basis:92px}.annual-summary{gap:12px}}

/* Library status emphasis and the compact next-reading bookmark. */
.book-open{position:relative}
.book-open .next-reading-marker{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:28px;height:34px;border-radius:7px;background:#efe9d7;color:#244e43;border:1px solid #d5ddc7;box-shadow:0 2px 5px #203e3214}
.book-open .next-reading-marker svg{fill:#244e43;stroke:#244e43;stroke-width:1.5}
#app .book-meta .badge{display:inline-block;max-width:100%;padding:5px 8px;margin-top:8px;border-radius:8px;font-size:10.5px;font-weight:600;line-height:1.45;letter-spacing:0;text-transform:none;overflow-wrap:anywhere}
#app .book-meta .book-status-reading{background:#e0ebdf;color:#244e43}
#app .book-meta .book-status-done{background:#dce8ce;color:#244e43}
#app .book-meta .book-status-want{background:#efe9d7;color:#5c6554}
