:root{--bg:#f6f3ee;--surface:#fff;--sunken:#ece7dd;--text:#1f2a24;--muted:#5d6b63;--border:#ddd6c8;--accent:#2f4a3c;--on-accent:#fff;--accent-soft:#dfe9e1;--good:#2f6b46;--bad:#a3392b;--bad-soft:#f7e3df;--radius:10px;--tabs-height:3.75rem;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#141a17;--surface:#1d2521;--sunken:#0f1412;--text:#ebe7df;--muted:#a2ada6;--border:#2f3a34;--accent:#8fc4a3;--on-accent:#10201a;--accent-soft:#24332b;--good:#7fc79a;--bad:#f0968a;--bad-soft:#3a211e}}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;color:var(--text);-webkit-text-size-adjust:100%;margin:0}h1,h2,h3{margin:0;line-height:1.2}h1{font:600 1.6rem/1.2 var(--serif)}h2{font-size:1.05rem}h3{margin-top:1.25rem;font-size:.95rem}p{margin:.5rem 0}a{color:inherit}.muted{color:var(--muted)}.small{font-size:.85rem}.icon{fill:currentColor;flex:none;width:1.4rem;height:1.4rem}button,.button,input,select,textarea{font:inherit;color:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:2.75rem;padding:0 .9rem}button,.button{cursor:pointer;justify-content:center;align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:inline-flex}button:disabled{opacity:.6;cursor:default}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.danger{color:var(--bad)}button.link{color:var(--accent);background:0 0;border:0;padding:0 .5rem;font-weight:500}.button small{opacity:.8;font-weight:400}textarea{resize:vertical;width:100%;padding:.6rem .9rem}input{width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{text-align:left;gap:.3rem;margin:.9rem 0;display:grid}.field>span{font-size:.9rem;font-weight:600}.field small{color:var(--muted)}.row{grid-template-columns:1fr 6rem;gap:.75rem;display:grid}.notice{border-radius:var(--radius);background:var(--bad-soft);color:var(--bad);padding:.7rem .9rem}.notice.info{background:var(--accent-soft);color:var(--text)}.auth{max-width:24rem;padding:calc(env(safe-area-inset-top) + 2.5rem) 1rem 2rem;text-align:center;margin:0 auto}.auth h1{margin:.75rem 0 .25rem}.auth form{margin-top:1.25rem}.auth button.primary{width:100%;margin-top:.5rem}.shell{padding-bottom:calc(var(--tabs-height) + env(safe-area-inset-bottom))}.tabs{z-index:10;height:calc(var(--tabs-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:flex;position:fixed;inset:auto 0 0}.tabs a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.15rem;font-size:.75rem;text-decoration:none;display:flex}.tabs a.active{color:var(--accent);font-weight:600}.screen{max-width:72rem;padding:calc(env(safe-area-inset-top) + .75rem) 1rem 1.5rem;margin:0 auto}.screen.narrow{max-width:38rem}.screen.narrow>h1{margin:.75rem 0 .5rem}.bar{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.search{flex:1;min-width:0;position:relative}.search .icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:.7rem;translate:0 -50%}.search input{padding-left:2.6rem}.icon-button{background:0 0;border:0;width:2.75rem;margin-left:-.6rem;padding:0}.chips{scrollbar-width:none;gap:.5rem;margin:0 -1rem .75rem;padding:.15rem 1rem;display:flex;overflow-x:auto}.chips.wrap{flex-wrap:wrap;margin:.5rem 0 0;padding:0;overflow:visible}.chip{border-radius:999px;flex:none;min-height:2.25rem;font-size:.9rem;font-weight:500}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.count{margin:0 0 .5rem;font-size:.85rem}.grid{grid-template-columns:repeat(auto-fill,minmax(min(6.25rem,30%),1fr));gap:1.1rem .8rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=40rem){.grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:1.5rem 1.1rem}}.grid a{text-decoration:none;display:block}.grid .title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:.85rem;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.grid .author{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-size:.78rem;display:block;overflow:hidden}.cover{aspect-ratio:2/3;object-fit:cover;background:var(--sunken);border-radius:4px;width:100%;display:block;box-shadow:0 1px 2px #0000002e,0 4px 10px #0000001a}.cover-blank{background:hsl(var(--hue) 28% 34%);color:#fff;font-family:var(--serif);text-align:left;flex-direction:column;justify-content:space-between;padding:12% 10%;display:flex;overflow:hidden;container-type:inline-size}.cover-blank span{-webkit-line-clamp:5;-webkit-box-orient:vertical;font-size:11cqw;line-height:1.15;display:-webkit-box;overflow:hidden}.cover-blank small{opacity:.85;font-size:8cqw}.more{margin:1.5rem auto 0;display:flex}.fab{right:1rem;bottom:calc(var(--tabs-height) + env(safe-area-inset-bottom) + 1rem);z-index:9;background:var(--accent);width:3.5rem;height:3.5rem;color:var(--on-accent);border:0;border-radius:50%;padding:0;position:fixed;box-shadow:0 4px 14px #0000004d}.empty{text-align:center;color:var(--muted);padding:3rem 1rem}.empty h2{color:var(--text);font:600 1.3rem var(--serif)}.empty button{margin-top:.75rem}.uploads{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:.25rem .9rem}.uploads ul{margin:0;padding:0;list-style:none}.uploads li{justify-content:space-between;gap:1rem;padding:.55rem 0;font-size:.9rem;display:flex}.uploads li+li{border-top:1px solid var(--border)}.uploads .name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.uploads .state{text-align:right;max-width:60%;color:var(--muted);flex:none}.uploads .done .state{color:var(--good)}.uploads .failed .state{color:var(--bad)}.dragging{outline:2px dashed var(--accent);outline-offset:-6px}.drop-hint{inset:auto 0 calc(var(--tabs-height) + 2rem) 0;background:var(--accent);width:fit-content;color:var(--on-accent);pointer-events:none;border-radius:999px;margin:0 auto;padding:.6rem 1rem;font-weight:600;position:fixed}.detail{max-width:46rem}.detail .hero{grid-template-columns:minmax(6.5rem,34%) 1fr;align-items:start;gap:1rem;display:grid}.detail .hero .author{color:var(--muted);margin:.25rem 0 1rem}.detail section{margin-top:1.75rem}.description{white-space:pre-line;font-family:var(--serif);font-size:1.02rem}.actions{flex-wrap:wrap;gap:.6rem;display:flex}.actions.end{justify-content:flex-end;margin-top:1.75rem}.detail .hero .actions{flex-direction:column;align-items:stretch}.detail .hero .actions .button{white-space:nowrap;justify-content:space-between;padding:0 .75rem;font-size:.92rem}@media (width>=40rem){.detail .hero{grid-template-columns:14rem 1fr;gap:2rem}.detail .hero .actions{flex-direction:row}}dl{border-top:1px solid var(--border);margin:1.75rem 0 0}dl div{border-bottom:1px solid var(--border);justify-content:space-between;gap:1rem;padding:.6rem 0;display:flex}dt{color:var(--muted)}dd{text-align:right;overflow-wrap:anywhere;margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:1rem;padding:1rem}.inline{gap:.5rem;margin:1rem 0;display:flex}.inline button{flex:none}.list{margin:.75rem 0 0;padding:0;list-style:none}.list li{border-top:1px solid var(--border);align-items:center;gap:.25rem;min-height:3.25rem;display:flex}.list li>:first-child{flex-direction:column;flex:1;min-width:0;padding:.5rem 0;text-decoration:none;display:flex}.list .muted{font-size:.85rem}.invite-link{grid-template-columns:1fr auto;gap:.5rem;margin-top:.75rem;display:grid}.invite-link small{grid-column:1/-1}@media (width>=52rem){.shell{padding:0 0 0 5.5rem}.tabs{border-top:0;border-right:1px solid var(--border);flex-direction:column;justify-content:flex-start;gap:.5rem;width:5.5rem;height:auto;padding:1.25rem 0;inset:0 auto 0 0}.tabs a{flex:none;height:4rem}.fab{bottom:2rem;right:2rem}.drop-hint{bottom:2rem}}.grid a{position:relative}.progress{background:var(--border);border-radius:2px;height:4px;margin-top:5px;display:block;overflow:hidden}.progress span{background:var(--accent);height:100%;display:block}.reading{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin-top:.75rem;display:flex}.reading button.link{min-height:2rem;padding:0}fieldset{border:0;margin:1rem 0 .5rem;padding:0}legend{padding:0;font-size:.9rem;font-weight:600}.choice{align-items:flex-start;gap:.6rem;padding:.55rem 0;display:flex}.choice input{width:1.25rem;height:1.25rem;min-height:0;accent-color:var(--accent);flex:none;margin:.1rem 0 0;padding:0}.choice small{display:block}.steps{padding-left:1.25rem}.steps li{margin:.6rem 0}code{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.code-input{letter-spacing:.25em;text-transform:uppercase;max-width:11rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.credentials{margin-top:.75rem}.credentials dd{-webkit-user-select:all;user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}.find{max-width:46rem}.find .bar .search input{padding-left:.9rem}.results{margin-top:1.5rem}.results h2{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.results h2 .muted{font-size:.85rem;font-weight:400}.results h2 button.heading{font:inherit;color:inherit;text-align:left;padding:0;text-decoration:none}.results h2 button.heading:not(:disabled):after{content:" ▸";color:var(--muted);font-size:.8em}.results h2 button.heading[aria-expanded=true]:not(:disabled):after{content:" ▾"}.results h2 button.heading:disabled{cursor:default;opacity:1}.one-line{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.results ul,.results-list{margin:.5rem 0 0;padding:0;list-style:none}.results li,.results-list li{border-top:1px solid var(--border);grid-template-columns:3.25rem 1fr auto;align-items:center;gap:.75rem;padding:.6rem 0;display:grid}.results li img,.results-list li img,.no-cover{aspect-ratio:2/3;object-fit:cover;background:var(--sunken);border-radius:3px;width:3.25rem}.results li>div,.results-list li>div{flex-direction:column;min-width:0;display:flex}.results li strong,.results-list li strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.results li .muted{font-size:.85rem}.results li small.bad{color:var(--bad)}.results .failure-detail{min-width:0;font-size:.8rem}.results .failure-detail summary{cursor:pointer;color:var(--muted)}.results .failure-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sunken);border-radius:6px;max-height:14rem;margin:.35rem 0 0;padding:.5rem .6rem;overflow:auto}.results .books{margin-top:.5rem}.results .books>li.book{padding:.9rem 0;display:block}.results .book-head{grid-template-columns:3.25rem 1fr;align-items:center;gap:.75rem;display:grid}.results .book-head>div{flex-direction:column;min-width:0;display:flex}.results .copies{margin:.5rem 0 0}.copy-languages,.results li>.copy-languages{flex-flow:wrap;margin:.6rem 0 0}.copy-languages .chip{gap:.35rem;min-height:2.25rem}.copy-languages .chip .muted{font-size:.8rem}.copy-meta{color:var(--text)}@media (width>=40rem){.results .copies,.copy-languages{margin-left:4rem}}.results .copies li{border-top:1px dashed var(--border);grid-template-columns:1fr auto;padding:.5rem 0}.results .copies li>div{gap:.1rem;min-width:0}.source-tag{background:var(--accent-soft);color:var(--accent);vertical-align:.1em;border-radius:999px;margin-right:.35rem;padding:.05rem .45rem;font-size:.75rem;font-weight:600;display:inline-block}.manage{margin-top:2rem}.manage form{margin-top:.75rem}.manage .actions{margin-top:.5rem}.row.even{grid-template-columns:1fr 1fr}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.source{flex-wrap:wrap}.secrets{flex-basis:100%;padding-bottom:.75rem}.tabs a span{white-space:nowrap}.target{align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.target select{flex:1;min-width:0}.disclosure{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:0;display:flex}.shared-library{border-top:1px solid var(--border);padding:.25rem 0 .5rem}.shared-library .actions{margin-top:.75rem}.shared-library select{max-width:11rem;min-height:2.25rem}.inline select{flex:1;min-width:0}.activity{margin:.75rem 0 0;padding:0;font-size:.9rem;list-style:none}.activity li{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;padding:.5rem 0;display:flex}.activity time{flex:none;font-size:.8rem}.activity em{overflow-wrap:anywhere;font-style:normal}.passkey{width:100%;margin-top:.75rem}.auth .small{margin-top:1rem}.turnstile{justify-content:center;min-height:65px;margin:.75rem 0;display:flex}.auth .language{min-height:2.25rem;color:var(--muted);margin:1.5rem auto 0;font-size:.85rem;display:block}.discover .results h2 .link,.list-page h2 .link{font-size:.85rem;font-weight:500}.shelf-strip{scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-auto-columns:7.5rem;grid-auto-flow:column;gap:.75rem;padding-bottom:.5rem;display:grid;overflow-x:auto}.shelf-strip::-webkit-scrollbar{display:none}.shelf-strip>li{scroll-snap-align:start}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:1rem .75rem;display:grid}.results .shelf-strip>li,.results .shelf-grid>li{border:0;padding:0;display:block}.book-card{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:stretch;gap:.2rem;padding:0;display:flex}.results .book-card img,.results .book-card .no-cover,.card-placeholder{aspect-ratio:2/3;object-fit:cover;background:var(--sunken);border-radius:6px;width:100%}.book-card .no-cover{text-align:center;color:var(--muted);justify-content:center;align-items:center;padding:.5rem;font-size:.8rem;display:flex}.book-card strong,.book-card small{-webkit-box-orient:vertical;font-size:.85rem;line-height:1.25;display:-webkit-box;overflow:hidden}.book-card strong{-webkit-line-clamp:2}.book-card small{-webkit-line-clamp:1;font-size:.78rem}.book-card:hover img{filter:brightness(1.08)}.categories,.order-tabs{flex-wrap:wrap;gap:.5rem;display:flex}.order-tabs{margin-bottom:1rem}button.link.back{margin:.25rem 0 .75rem;padding:0}.settings-group{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:1.75rem 0 0;font-size:.78rem;font-weight:600}.settings-group+.card{margin-top:.5rem}.card-title{align-items:center;gap:.25rem;min-height:2.25rem;display:flex}.card-title h3,.card-title h4{margin:0;font-size:1.02rem}.card-title h4{font-size:.95rem}.card>.card-title+*{margin-top:.5rem}.list+.card-title,.invite-link+.card-title{margin-top:1rem}.card-title-end{align-items:center;gap:.25rem;margin-left:auto;display:flex}button.info{min-width:2.25rem;min-height:2.25rem;color:var(--muted);background:0 0;border:0;padding:0}button.info .icon{width:1.1rem;height:1.1rem}button.info[aria-expanded=true]{color:var(--accent)}.hint{border-radius:var(--radius);background:var(--sunken);color:var(--muted);margin:.25rem 0 .5rem;padding:.6rem .75rem;font-size:.88rem}.hint p{margin:0}.hint p+p{margin-top:.4rem}button.small-button{min-height:2.25rem;padding:0 .8rem}.subhead{margin:1.25rem 0 .25rem;font-size:.95rem}.profile{align-items:center;gap:.75rem;display:flex}.profile>div{flex-direction:column;flex:1;min-width:0;display:flex}.field-pair .field{margin:.6rem 0 0}@media (width>=34rem){.field-pair{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}}.list.people li{display:block}.list.people li>.person{flex-direction:row;padding:0}.person{align-items:center;gap:.25rem;min-height:3.25rem;display:flex}.person>span{flex-direction:column;flex:1;min-width:0;padding:.5rem 0;display:flex}.person-actions{flex-wrap:wrap;gap:.5rem;padding:0 0 .75rem;display:flex}.person-actions button{min-height:2.25rem;padding:0 .8rem}.find>form.bar{z-index:5;margin:calc(-1 * env(safe-area-inset-top) - .75rem) -1rem .75rem;padding:calc(env(safe-area-inset-top) + .75rem) 1rem .6rem;background:var(--bg);border-bottom:1px solid #0000;position:sticky;top:0}.rotated{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.screen-title{justify-content:space-between;align-items:center;gap:.75rem;margin:.75rem 0 .5rem;display:flex}.screen.narrow .screen-title h1{margin:0}.ways{gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.ways button{text-align:left;background:var(--bg);flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:.8rem .9rem;font-weight:400;display:flex}.ways button strong{font-weight:600}.ways button .muted{font-size:.88rem;line-height:1.35}.add-device .inline{margin:.5rem 0}.list.flush{margin:0}.list.flush li:first-child{border-top:0}.row-card{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.device-settings{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.25rem}.device-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.device-actions button{min-height:2.5rem}button.link.small-link{min-height:2.25rem;padding:0}button.link.danger{color:var(--bad)}.wizard-head{justify-content:space-between;align-items:center;min-height:2.75rem;display:flex}.wizard-head .icon-button:last-child{margin:0 -.6rem 0 0}.wizard-progress{background:var(--sunken);border-radius:2px;height:4px;margin:.25rem 0 1.25rem;overflow:hidden}.wizard-progress span{background:var(--accent);height:100%;transition:width .2s;display:block}.wizard h1{margin:0 0 1rem}.wizard-body>form>input,.wizard input.wide,.wizard button.wide{width:100%}.wizard-body .notice{margin-top:1rem}.wizard-actions{flex-direction:column;gap:.6rem;margin-top:1.75rem;display:flex}.wizard-actions button{width:100%}@media (width>=40rem){.wizard-actions{flex-direction:row-reverse;justify-content:flex-start}.wizard-actions button{width:auto;min-width:9rem}}.steps.big li{margin-bottom:.6rem;font-size:1.02rem}.wizard .ways{margin-top:0}.wizard button.link{margin-top:.75rem;padding:0}.credentials dd{overflow-wrap:anywhere;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.credentials dd button.link{flex:none;margin:0;font-family:inherit}.empty-devices button{margin-top:.5rem}.wizard .credentials>div{padding:.6rem 0;display:block}.wizard .credentials dt{color:var(--muted);font-size:.85rem}.wizard .credentials dd{text-align:left;justify-content:space-between;margin-top:.15rem;font-family:inherit}.wizard .credentials dd span{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}
