@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_next/static/media/nunito-cyrillic-ext-wght-normal.61774f03.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_next/static/media/nunito-cyrillic-wght-normal.529dd11c.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_next/static/media/nunito-vietnamese-wght-normal.0dc71c53.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_next/static/media/nunito-latin-ext-wght-normal.abd45177.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_next/static/media/nunito-latin-wght-normal.5cc7ff84.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-vietnamese-soft-normal.9efed48f.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-ext-soft-normal.8521430a.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-soft-normal.4e1b819b.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root,[data-theme=bambou]{--h:150;--c:0.11}[data-theme=ocean]{--h:245;--c:0.13}[data-theme=lavande]{--h:295;--c:0.12}[data-theme=terracotta]{--h:40;--c:0.13}[data-theme=cerise]{--h:355;--c:0.15}[data-theme=encre]{--h:260;--c:0.015}:root,[data-theme]{--bg:oklch(98.6% calc(var(--c) * 0.07) var(--h));--surface:oklch(100% 0 0);--surface-2:oklch(96.5% calc(var(--c) * 0.22) var(--h));--fg:oklch(22% calc(var(--c) * 0.15) var(--h));--muted:oklch(50% calc(var(--c) * 0.2) var(--h));--line:oklch(25% calc(var(--c) * 0.2) var(--h)/0.09);--line-strong:oklch(25% calc(var(--c) * 0.2) var(--h)/0.17);--accent:oklch(54% var(--c) var(--h));--accent-strong:oklch(45% var(--c) var(--h));--accent-fg:oklch(99% 0.005 var(--h));--accent-soft:oklch(54% var(--c) var(--h)/0.13);--glass:oklch(99.5% calc(var(--c) * 0.04) var(--h)/0.78);--glass-strong:oklch(99.5% calc(var(--c) * 0.04) var(--h)/0.9);--glass-edge:oklch(25% calc(var(--c) * 0.2) var(--h)/0.08);--blob-1:oklch(88% calc(var(--c) * 0.9) var(--h)/0.45);--blob-2:oklch(92% calc(var(--c) * 0.7) calc(var(--h) + 50)/0.35);--blob-3:oklch(94% calc(var(--c) * 0.5) calc(var(--h) - 40)/0.3);--lent:oklch(55% 0.13 65);--lent-soft:oklch(75% 0.15 75/0.2);--late:oklch(55% 0.2 27);--late-soft:oklch(62% 0.2 27/0.14);--ok:oklch(52% 0.13 150);--ok-soft:oklch(65% 0.15 150/0.16);--shadow:0 1px 2px oklch(25% 0.03 var(--h)/0.05),0 4px 16px oklch(25% 0.03 var(--h)/0.05);--shadow-lift:0 2px 6px oklch(25% 0.03 var(--h)/0.07),0 16px 36px oklch(25% 0.04 var(--h)/0.11);color-scheme:light;--logo-bg:oklch(52% calc(var(--c) * 1.05) var(--h));--logo-ink:oklch(38% var(--c) var(--h));--logo-soft:oklch(90% calc(var(--c) * 0.35) var(--h))}.logo{flex:none}.auth-head .logo{margin:0 auto 12px;display:block}@media (prefers-color-scheme:dark){:root:not([data-mode=light]),:root:not([data-mode=light]) [data-theme]{--bg:oklch(15% calc(var(--c) * 0.1) var(--h));--surface:oklch(19.5% calc(var(--c) * 0.12) var(--h));--surface-2:oklch(24% calc(var(--c) * 0.16) var(--h));--fg:oklch(95% calc(var(--c) * 0.04) var(--h));--muted:oklch(72% calc(var(--c) * 0.15) var(--h));--line:oklch(100% 0 0/0.08);--line-strong:oklch(100% 0 0/0.15);--accent:oklch(74% calc(var(--c) * 1.05) var(--h));--accent-strong:oklch(84% calc(var(--c) * 0.85) var(--h));--accent-fg:oklch(16% calc(var(--c) * 0.3) var(--h));--accent-soft:oklch(74% var(--c) var(--h)/0.18);--glass:oklch(17% calc(var(--c) * 0.1) var(--h)/0.78);--glass-strong:oklch(19% calc(var(--c) * 0.12) var(--h)/0.9);--glass-edge:oklch(100% 0 0/0.1);--blob-1:oklch(35% calc(var(--c) * 0.9) var(--h)/0.35);--blob-2:oklch(30% calc(var(--c) * 0.7) calc(var(--h) + 50)/0.3);--blob-3:oklch(28% calc(var(--c) * 0.6) calc(var(--h) - 40)/0.25);--lent:oklch(83% 0.12 80);--lent-soft:oklch(75% 0.14 75/0.18);--late:oklch(74% 0.16 25);--late-soft:oklch(65% 0.18 25/0.2);--ok:oklch(80% 0.14 150);--ok-soft:oklch(70% 0.15 150/0.18);--shadow:0 1px 1px oklch(0% 0 0/0.2),0 8px 24px oklch(0% 0 0/0.3);--shadow-lift:0 2px 4px oklch(0% 0 0/0.3),0 18px 40px oklch(0% 0 0/0.45);color-scheme:dark}}:root[data-mode=dark],:root[data-mode=dark] [data-theme]{--bg:oklch(15% calc(var(--c) * 0.1) var(--h));--surface:oklch(19.5% calc(var(--c) * 0.12) var(--h));--surface-2:oklch(24% calc(var(--c) * 0.16) var(--h));--fg:oklch(95% calc(var(--c) * 0.04) var(--h));--muted:oklch(72% calc(var(--c) * 0.15) var(--h));--line:oklch(100% 0 0/0.08);--line-strong:oklch(100% 0 0/0.15);--accent:oklch(74% calc(var(--c) * 1.05) var(--h));--accent-strong:oklch(84% calc(var(--c) * 0.85) var(--h));--accent-fg:oklch(16% calc(var(--c) * 0.3) var(--h));--accent-soft:oklch(74% var(--c) var(--h)/0.18);--glass:oklch(17% calc(var(--c) * 0.1) var(--h)/0.78);--glass-strong:oklch(19% calc(var(--c) * 0.12) var(--h)/0.9);--glass-edge:oklch(100% 0 0/0.1);--blob-1:oklch(35% calc(var(--c) * 0.9) var(--h)/0.35);--blob-2:oklch(30% calc(var(--c) * 0.7) calc(var(--h) + 50)/0.3);--blob-3:oklch(28% calc(var(--c) * 0.6) calc(var(--h) - 40)/0.25);--lent:oklch(83% 0.12 80);--lent-soft:oklch(75% 0.14 75/0.18);--late:oklch(74% 0.16 25);--late-soft:oklch(65% 0.18 25/0.2);--ok:oklch(80% 0.14 150);--ok-soft:oklch(70% 0.15 150/0.18);--shadow:0 1px 1px oklch(0% 0 0/0.2),0 8px 24px oklch(0% 0 0/0.3);--shadow-lift:0 2px 4px oklch(0% 0 0/0.3),0 18px 40px oklch(0% 0 0/0.45);color-scheme:dark}:root{--font:"Nunito Variable",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;--font-display:"Fraunces Variable",Georgia,"Times New Roman",serif;--font-mono:ui-monospace,"SF Mono",Menlo,monospace;--radius:18px;--radius-sm:12px;--blur:blur(20px) saturate(160%)}*{box-sizing:border-box}body,html{margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:16px;line-height:1.5;letter-spacing:0;-webkit-font-smoothing:antialiased;min-height:100dvh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;line-height:1.15}.book-title,.brand-text strong,.choice-name,.site-step-n,.slip strong,.spine,h1,h2,h3{font-variation-settings:"SOFT" 100}h1{font-size:clamp(1.9rem,1.5rem + 1.6vw,2.5rem);letter-spacing:-.015em}h1,h2{font-weight:650}h2{font-size:1.25rem;letter-spacing:-.018em}ul{padding-left:1.2em}.muted{color:var(--muted)}.small{font-size:.875rem}.label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.stack{display:flex;flex-direction:column;gap:14px}::selection{background:var(--accent-soft)}.glass{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-edge);box-shadow:var(--shadow)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.glass{background:var(--surface)}}.backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(70vmax 34vmax at 12% -6%,var(--blob-1),transparent 70%),radial-gradient(50vmax 28vmax at 100% 0,var(--blob-2),transparent 70%),radial-gradient(60vmax 30vmax at 50% 110%,var(--blob-3),transparent 70%),var(--bg)}.app{position:relative;isolation:isolate}.wrap{max-width:1120px;margin:0 auto;padding:28px 20px 64px}.app-foot{margin-top:48px;text-align:center}.app-foot a{color:var(--muted)}.narrow{max-width:440px}.page-title{margin:6px 0 22px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.title-action,.title-row .page-title{margin-bottom:22px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;border-width:0 0 1px;border-color:var(--line);border-radius:0;box-shadow:none}.topbar-in{max-width:1120px;margin:0 auto;padding:10px 20px;gap:16px}.brand,.topbar-in{display:flex;align-items:center}.brand{gap:10px;color:inherit;min-width:0}.brand a:hover,.brand:hover{text-decoration:none}.brand a{color:inherit}.brand-logo{display:flex;flex:none;border-radius:12px}.brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.brand-text strong{font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.brand-text span{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text .brand-family{font-size:.95rem;font-weight:600;color:var(--accent)}.nav{gap:2px;margin-left:auto;padding:3px;border-radius:999px;border:1px solid var(--line);background:var(--surface)}.nav,.nav a{display:flex}.nav a{position:relative;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;color:var(--muted);font-weight:590;font-size:.9rem;white-space:nowrap;transition:background .2s,color .2s}.nav a:hover{color:var(--fg);text-decoration:none}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.nav a[aria-current=page] svg{color:var(--accent)}.tab-icon{display:inline-flex}.topbar-actions{display:flex;gap:2px}.icon-btn{display:grid;place-items:center;width:38px;height:38px;min-height:0;padding:0;border-radius:999px;border:0;background:none;color:var(--muted);cursor:pointer;box-shadow:none}.icon-btn:hover,.icon-btn[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:oklch(63% .22 27);color:#fff;font-size:.7rem;line-height:18px;text-align:center;font-weight:700}.tabbar{display:none}@media (min-width:761px) and (max-width:1060px){.topbar-in{flex-wrap:wrap;row-gap:8px}.brand{flex:1 1 auto}.topbar-actions{margin-left:auto}.nav{order:3;flex:1 1 100%;margin-left:0}.nav a{flex:1 1;justify-content:center}}@media (max-width:420px){.topbar .brand,.topbar-in{gap:8px}.topbar .brand .logo{width:36px;height:36px}.topbar .brand-text strong{white-space:nowrap;font-size:1rem}.topbar-actions{gap:0}.topbar-actions .icon-btn{width:32px;height:36px}}@media (max-width:760px){.wrap{padding:18px 16px calc(96px + env(safe-area-inset-bottom))}.topbar-in{padding:8px 16px}.brand-text .brand-family{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.2}.title-action{position:fixed;z-index:31;right:16px;bottom:calc(88px + env(safe-area-inset-bottom));margin:0}.title-action .add-link{width:58px;height:58px;padding:0;border-radius:999px;justify-content:center;box-shadow:var(--shadow-lift)}.title-action .add-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.topbar-actions{margin-left:auto}.nav{display:none}.tabbar{position:fixed;z-index:30;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;padding:6px;border-radius:28px;background:var(--glass-strong);border:1px solid var(--line);box-shadow:var(--shadow-lift)}.tabbar a{position:relative;flex:1 1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px 4px;border-radius:22px;color:var(--muted);font-size:.68rem;font-weight:600}.tabbar a:hover{text-decoration:none}.tabbar a[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.tabbar .count{position:absolute;top:2px;left:calc(50% + 6px)}}.btn,button{font:inherit;font-weight:650;font-size:.94rem;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);border-radius:999px;padding:9px 18px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .2s,border-color .2s,transform .1s,filter .2s}.btn:hover,button:hover{background:var(--surface-2);border-color:color-mix(in oklch,var(--accent) 35%,var(--line-strong));text-decoration:none}.btn:active,button:active{transform:scale(.97)}button:disabled{opacity:.55;cursor:progress}.page-progress{position:fixed;top:env(safe-area-inset-top,0);left:0;z-index:10000;height:4px;width:0;opacity:0;pointer-events:none;background:var(--accent);box-shadow:0 0 10px var(--accent);border-radius:0 4px 4px 0}.page-loading.on .page-progress{opacity:1;animation:page-progress 8s cubic-bezier(.1,.7,.2,1) forwards}@keyframes page-progress{0%{width:0}10%{width:35%}to{width:92%}}.page-spinner{position:fixed;top:50%;left:50%;z-index:10000;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lift)}.page-spinner:before{content:"";width:26px;height:26px;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.page-loading.on .page-spinner{visibility:visible;animation:page-spinner-in .2s ease-out .5s forwards}@keyframes page-spinner-in{to{opacity:1}}button[data-pending=spin]:before{content:"";display:inline-block;flex:none;width:13px;height:13px;margin-right:6px;vertical-align:-2px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spin .8s linear infinite}@media (prefers-reduced-motion:reduce){.page-loading.on .page-progress{animation:none;width:100%;opacity:.7}}:focus-visible{outline:3px solid color-mix(in oklch,var(--accent) 50%,transparent);outline-offset:2px}.btn.primary,button.primary{background:var(--accent);border-color:transparent;color:var(--accent-fg);box-shadow:0 1px 2px color-mix(in oklch,var(--accent) 30%,transparent),0 6px 16px color-mix(in oklch,var(--accent) 22%,transparent)}.btn.primary:hover,button.primary:hover{background:var(--accent);border-color:transparent;filter:brightness(1.07)}button.tinted{background:var(--accent-soft);border-color:transparent;color:var(--accent-strong)}button.ghost{background:none;border-color:transparent;color:var(--accent)}button.ghost:hover{background:var(--accent-soft);border-color:transparent}button.danger{color:var(--late)}input,select,textarea{font:inherit;font-size:16px;color:var(--fg);background-color:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 14px;min-height:44px;min-width:0;width:100%;transition:box-shadow .2s,background .2s}input::placeholder,textarea::placeholder{color:var(--muted)}input:hover,select:hover,textarea:hover{border-color:color-mix(in oklch,var(--accent) 30%,var(--line-strong))}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238b938d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:14px}input:focus,select:focus,textarea:focus{outline:none;background-color:var(--surface);box-shadow:0 0 0 4px var(--accent-soft);border-color:var(--accent)}label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.88rem;color:var(--muted)}form.inline{display:inline}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.row>label{flex:1 1 180px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:22px}.toolbar .filter{display:grid;min-width:0}.toolbar .filter-size,.toolbar .filter>select{grid-area:1/1}.toolbar .filter select{width:100%;contain:inline-size}.toolbar .filter-size{visibility:hidden;height:0;overflow:hidden;white-space:nowrap;padding:0 35px 0 15px;font-size:.92rem}.search{position:relative;flex:1 1 240px;display:flex}.search svg{position:absolute;left:14px;top:50%;translate:0 -50%;color:var(--muted);pointer-events:none}.search input{padding-left:42px;background:var(--surface);border-radius:999px;box-shadow:var(--shadow)}.toolbar .filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-basis:100%}.toolbar .filter select{border-radius:999px;padding:8px 34px 8px 14px;font-size:.92rem;box-shadow:var(--shadow)}.toolbar .filter.on select{border-color:var(--accent);background-color:var(--accent-soft);color:var(--accent-strong);font-weight:600}.toolbar .clear-filters{font-size:.9rem;font-weight:600;padding:0 6px;white-space:nowrap}@media (max-width:640px){.toolbar .filters{flex-grow:0;flex-shrink:0;flex-basis:calc(100% + 32px);flex-wrap:nowrap;overflow-x:auto;margin:-6px -16px;padding:6px 16px;scrollbar-width:none;gap:6px}.toolbar .filter{flex:1 0 auto;font-weight:500}.toolbar .filter.on{font-weight:600}.toolbar .filter select,.toolbar .filter-size{font-size:.86rem}.toolbar .filter select{padding:8px 22px 8px 9px;background-position:right 7px center;background-size:12px}.toolbar .filter-size{padding:0 23px 0 10px}}.notice{color:var(--fg);border-radius:var(--radius);padding:14px 18px;margin-bottom:20px}.notice:not(.glass){background:var(--accent-soft)}.notice.glass{background:var(--surface);border-left:4px solid var(--accent)}.notice.warn{background:var(--lent-soft)}.notice h2{margin-bottom:4px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}details.add{margin-bottom:16px}details.add>summary{list-style:none}details.add>summary::-webkit-details-marker{display:none}details.add[open]>summary{margin-bottom:12px}.shelf{margin-bottom:36px}.shelf-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}.books{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));grid-gap:14px;gap:14px}.book{display:grid;grid-template-columns:54px 1fr;grid-gap:16px;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;min-width:0;box-shadow:var(--shadow);transition:box-shadow .3s,transform .3s,border-color .3s}@media (hover:hover){.book:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px);border-color:color-mix(in oklch,var(--accent) 25%,var(--line))}}.spine{width:54px;height:78px;border-radius:5px 10px 10px 5px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:700;letter-spacing:.02em;text-shadow:0 1px 1px rgb(0 0 0/.25);background-image:linear-gradient(90deg,rgb(0 0 0/.2) 0 5px,rgb(255 255 255/.14) 5px 7px,transparent 7px),linear-gradient(160deg,rgb(255 255 255/.22),transparent 60%);box-shadow:0 6px 14px rgb(0 0 0/.18)}.book-body{min-width:0;display:flex;flex-direction:column;gap:3px}.book-title{font-family:var(--font-display);font-weight:650;font-size:1.04rem;line-height:1.25;letter-spacing:-.015em;overflow-wrap:anywhere}.book-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.book details>summary,.book-actions button{min-height:32px;padding:5px 14px;font-size:.85rem}.book details>summary{list-style:none;display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--line-strong);font-weight:600;cursor:pointer}.book details>summary::-webkit-details-marker{display:none}.book details.lend>summary{background:var(--accent-soft);border-color:transparent;color:var(--accent-strong)}.book details.remove>summary{background:none;border-color:transparent;color:var(--muted)}.book details[open]{flex-basis:100%;order:2}.book details[open]>summary{background:var(--surface-2);color:var(--fg)}:is(.book details,.admin-actions,.meeting-propose,.meeting-map,.edit-book,.book-hero details.lend,.remove-book)[open]>summary:after{content:"✕";margin-left:10px;font-size:.8em;font-weight:600;opacity:.65}.book details form{margin-top:8px;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}.book details form input,.book details form select{background-color:var(--surface)}.pill{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:999px}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.free{background:var(--ok-soft);color:var(--ok)}.pill.lent{background:var(--lent-soft);color:var(--lent)}.pill.late{background:var(--late-soft);color:var(--late)}.pill.asked{background:var(--accent-soft);color:var(--accent-strong)}.pill.lang{background:var(--surface-2);color:var(--muted)}.choices{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.choices legend:not(.sr-only){width:100%;margin-bottom:8px}.choices label{flex-direction:row;align-items:center;gap:8px;padding:6px 14px 6px 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--fg);cursor:pointer}.choices label:has(input:checked){background:var(--accent-soft);border-color:transparent;color:var(--accent-strong)}.choices input{width:18px;height:18px;min-height:0;padding:0;margin:0;accent-color:var(--accent)}.choices details{width:100%}.choices details>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.choices summary{cursor:pointer;font-size:.88rem;font-weight:600;color:var(--accent-strong)}.slips{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));grid-gap:14px;gap:14px;margin-bottom:32px}.slip{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px;min-width:0;box-shadow:var(--shadow)}.slip.late{box-shadow:inset 0 0 0 1.5px var(--late),var(--shadow)}.slip strong{font-family:var(--font-display);font-size:1.08rem;font-weight:650;letter-spacing:-.015em}.slip-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding-bottom:6px}.stamp{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:590;font-size:.9rem}.stamp.late{color:var(--late)}.section-title{margin:8px 0 14px;display:flex;align-items:center;gap:10px}.empty{color:var(--muted);padding:24px;margin:0 0 28px;border-radius:var(--radius);text-align:center;border:1.5px dashed var(--line-strong)}.code{font-family:var(--font-mono);font-size:1.25rem;font-weight:700;letter-spacing:.15em;background:var(--accent-soft);color:var(--accent-strong);padding:6px 14px;border-radius:var(--radius-sm);display:inline-block;align-self:flex-start}.error{color:var(--late);font-size:.9rem;margin:0}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));grid-gap:16px;gap:16px;align-items:start}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.list li:last-child{border-bottom:0}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);font-family:var(--font-display);font-weight:650;flex:none}.list .grow{flex:1 1 160px;min-width:0;display:flex;flex-direction:column}.auth{position:relative;isolation:isolate;min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:420px}.auth-head{text-align:center;margin-bottom:20px}.auth-head p{margin:8px 0 0}.auth .panel{padding:24px}.auth .panel button.primary{width:100%}.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,136px),1fr));grid-gap:10px;gap:10px}.choice{position:relative;display:flex;flex-direction:column;gap:8px;text-align:left;align-items:stretch;padding:10px 10px 12px;border-radius:18px;background:var(--surface);border:1px solid var(--line);min-height:0;font-weight:400;box-shadow:var(--shadow)}.choice[aria-pressed=true]{box-shadow:0 0 0 3px var(--accent),var(--shadow)}.choice-name{font-family:var(--font-display);font-weight:650;font-size:.98rem;display:flex;align-items:center;justify-content:space-between;padding:0 4px}.choice-name svg{color:var(--accent)}.choice-hint{color:var(--muted);font-size:.82rem;padding:0 4px}.preview{position:relative;height:64px;border-radius:12px;overflow:hidden;background:radial-gradient(60% 90% at 15% 10%,var(--blob-1),transparent 70%),radial-gradient(60% 90% at 90% 30%,var(--blob-2),transparent 70%),var(--bg)}.preview span{position:absolute;left:10px;right:10px;bottom:10px;height:22px;border-radius:999px;background:var(--accent)}.segmented{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--line);border-radius:999px;align-self:flex-start}.segmented button{background:none;border-color:transparent;color:var(--muted);min-height:34px;padding:6px 16px}.segmented button:hover{background:var(--surface-2);border-color:transparent;color:var(--fg)}.segmented button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}.reminders ul{margin:6px 0 8px;padding-left:18px}.reminders li{margin:2px 0}a.book-title{color:inherit;text-decoration:none}a.book-title:hover{text-decoration:underline;text-underline-offset:3px}textarea{resize:vertical;min-height:88px}.stars{color:oklch(78% .16 75);letter-spacing:1px}.stars .off{color:var(--line)}.back-link{display:inline-block;margin-bottom:14px}.book-page{display:flex;flex-direction:column;gap:16px;max-width:760px}.book-hero{display:grid;grid-template-columns:auto 1fr;grid-gap:22px;gap:22px;align-items:start}.book-hero p{margin:0}.cover.big,.spine.big{width:120px;height:176px;font-size:1.6rem}@media (max-width:480px){.book-hero{grid-template-columns:1fr;justify-items:start}}.book-page-title{font-size:1.6rem;line-height:1.15;margin:0;letter-spacing:-.02em}.description{white-space:pre-line;margin:8px 0 0;line-height:1.55}.rate{border:0;padding:0;margin:0;display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}.rate legend{width:100%;margin-bottom:4px}.rate input{position:absolute;opacity:0;width:1px;height:1px}.rate label{font-size:2rem;line-height:1;cursor:pointer;color:var(--line);transition:color .15s,transform .15s;padding:2px}.rate span:has(input:checked) label,.rate span:has(input:checked)~span label,.rate span:hover label,.rate span:hover~span label{color:oklch(78% .16 75)}.rate input:focus-visible+label{outline:2px solid var(--accent);border-radius:6px}.reviews li{align-items:flex-start}.reviews .grow{gap:2px}.review-text{white-space:pre-line;overflow-wrap:anywhere}.notice.install{display:flex;gap:14px;align-items:flex-start}.notice.install p{margin:4px 0 0}.install-icon{flex:none;width:52px;height:52px;border-radius:12px;box-shadow:var(--shadow)}.install-steps{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.install-steps li{display:flex;gap:8px;align-items:baseline;line-height:1.7}.install-n{flex:none;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);font-weight:700;font-size:.75rem;line-height:1}.install-key{display:inline-flex;align-items:center;gap:4px;padding:0 7px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);font-weight:600;white-space:nowrap;line-height:1.5}.notice.install .grow{flex:1 1 auto;min-width:0}.install-actions{flex:none;align-self:center}.install-actions:not(:has(.primary)){align-self:flex-start;margin:-6px -8px 0 0}@media (max-width:560px){.notice.install:has(.install-actions .primary){flex-wrap:wrap}.install-icon{width:40px;height:40px;border-radius:10px}.notice.install .grow{flex-grow:1;flex-shrink:1;flex-basis:calc(100% - 100px)}.install-actions:has(.primary){flex:1 1 100%;justify-content:flex-end}}.share{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.share-url{overflow-wrap:anywhere;-webkit-user-select:all;-moz-user-select:all;user-select:all}.admin-share{display:flex;flex-direction:column;gap:10px}.ideas-card{display:flex;align-items:center;gap:14px;margin:2px 0 8px;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,var(--accent-soft),transparent 85%),var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);color:var(--fg);text-decoration:none}#idees{scroll-margin-top:90px}.more-ideas{display:inline-flex;align-items:center;gap:8px;margin-top:12px}.dismissed-ideas{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:10px}.dismissed-ideas button{min-height:32px;padding:5px 10px}.ideas-card:hover{text-decoration:none;box-shadow:var(--shadow-lift)}.ideas-card-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--accent);color:var(--accent-fg)}.ideas-card-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.ideas-card-text strong{font-size:1rem;color:var(--accent-strong)}.ideas-card-text .small{color:var(--muted)}.ideas-card>svg:last-child{flex:none;color:var(--accent)}.ol-link{gap:4px}.bookshop-link,.ol-link{display:inline-flex;align-items:center;align-self:flex-start}.bookshop-link{gap:6px}.row-links{display:flex;flex-wrap:wrap;gap:4px 14px}.idea-reason{font-style:italic}.add-link{display:inline-flex;align-items:center;gap:8px}.cover{width:54px;height:78px;object-fit:cover;border-radius:4px 8px 8px 4px;box-shadow:0 6px 14px rgb(0 0 0/.18);background:var(--surface-2)}.page-title{letter-spacing:-.025em}.shelf-head h2{font-size:1.35rem}.segmented.modes{display:grid;grid-template-columns:repeat(4,1fr);width:100%;max-width:620px;border-radius:16px}.segmented.modes button{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:13px;padding:8px 6px}@media (max-width:560px){.segmented.modes button{flex-direction:column;gap:2px;font-size:.75rem;min-height:54px;white-space:nowrap;padding:8px 2px}}.scanner{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}.scanner.on{position:relative;width:auto;height:auto;opacity:1;pointer-events:auto;border-radius:var(--radius);background:#000;aspect-ratio:4/3;max-height:60vh}.scanner video{width:100%;height:100%;object-fit:cover;display:block}.scan-frame{position:absolute;left:10%;right:10%;top:30%;bottom:30%;border:2px solid oklch(100% 0 0/.9);border-radius:12px;box-shadow:0 0 0 100vmax oklch(0 0 0/.35)}.scan-line{position:absolute;left:6%;right:6%;top:50%;height:2px;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:scan 1.6s ease-in-out infinite alternate}@keyframes scan{0%{top:15%}to{top:85%}}.scan-frame.hit{animation:scan-hit .7s ease-out}@keyframes scan-hit{0%{border-color:oklch(80% .2 145);border-width:4px;scale:1.04}to{border-color:oklch(100% 0 0/.9);border-width:2px;scale:1}}.scan-toast{margin:0;display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:12px;font-size:.9rem;font-weight:600;line-height:1.3;color:var(--fg);background:var(--surface);border:1px solid var(--line-strong)}.scan-toast svg{flex:none}.scan-toast.found{color:#fff;border-color:transparent;background:oklch(45% .12 150)}.scan-toast.missing{color:#fff;border-color:transparent;background:oklch(48% .14 50)}.scan-toast .spinner{flex:none;margin-right:0}.scan-stage{display:flex;flex-direction:column;gap:14px;order:1}.scan-stage.on{position:fixed;inset:0;z-index:1000;order:0;gap:10px;background:#000;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.scan-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#fff}.scan-stage.on .scanner.on{flex:1 1 auto;min-height:160px;aspect-ratio:auto;max-height:none}.scan-stage.on .books{flex:0 1 auto;max-height:38vh;overflow-y:auto;margin:0;overscroll-behavior:contain}.file-btn{position:relative;align-self:flex-start}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-btn.disabled{opacity:.55;pointer-events:none}.shelf-photo{max-width:100%;max-height:280px;align-self:flex-start;border-radius:var(--radius-sm);box-shadow:var(--shadow)}.spinner{display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{rotate:1turn}}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.checklist li{display:grid;grid-template-columns:auto 54px 1fr;grid-gap:12px;gap:12px;align-items:center;padding:10px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface)}.checklist li.done{opacity:.6}.checklist input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--accent)}.checklist .grow{min-width:0}.checklist input:not([type]){min-height:36px;padding:6px 10px;background:var(--surface)}.stack-tight{display:flex;flex-direction:column;gap:6px}.search.grow{flex:1 1 240px}.site{position:relative;isolation:isolate}.site-nav{display:flex;gap:6px;margin-left:auto;align-items:center}.site .topbar-in{padding-top:12px;padding-bottom:12px}.site .brand{gap:12px}.site-nav .btn{white-space:nowrap}.site-nav .narrow-only{display:none}.site .brand-text strong{white-space:nowrap;font-size:1.75rem;font-weight:750;letter-spacing:-.025em;color:var(--accent-strong)}.btn.ghost-link{background:none;border-color:transparent;color:var(--accent)}.btn.ghost-link:hover{background:var(--accent-soft);border-color:transparent}.btn.big{min-height:50px;padding:12px 24px;font-size:1.02rem}.site-hero{display:grid;grid-template-columns:1.1fr 1fr;grid-gap:48px;gap:48px;align-items:center;padding-top:72px;padding-bottom:48px}.site-hero h1{font-size:clamp(2.3rem,1.6rem + 3vw,3.9rem);letter-spacing:-.02em;margin:10px 0 18px}.site-lead{font-size:1.2rem;line-height:1.5;margin:0 0 28px;max-width:34em}.site-cta{display:flex;flex-wrap:wrap;gap:10px}.site-free{display:flex;align-items:center;gap:6px;margin:16px 0 0}.site-free svg{color:var(--accent)}.site-shelf{border-radius:28px;padding:22px;background:var(--surface-2);border:1px solid var(--line);box-shadow:var(--shadow-lift);rotate:1.5deg}.site-books{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.site-books .book{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:72px 1fr;align-items:center}.sample-cover{display:block;width:72px;height:104px;overflow:hidden}.site-section{padding-top:40px;padding-bottom:40px}.site-h2{font-size:clamp(1.6rem,1.3rem + 1.2vw,2.2rem);letter-spacing:-.025em;margin-bottom:24px}.site-features{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));grid-gap:16px;gap:16px}.site-features h3,.site-steps h3{font-size:1.1rem;font-weight:650;letter-spacing:-.015em;margin:14px 0 6px}.site-features p,.site-steps p{margin:0}.site-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--accent-soft);color:var(--accent-strong)}.site-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));grid-gap:24px;gap:24px}.site-step-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--accent-fg);font-family:var(--font-display);font-weight:700;font-size:1.1rem}.site-faq .panel{padding:6px 22px;max-width:820px}.site-faq details{border-bottom:1px solid var(--line)}.site-faq details:last-child{border-bottom:0}.site-faq summary{cursor:pointer;padding:16px 0;font-weight:620;list-style:none;display:flex;justify-content:space-between;gap:12px}.site-faq summary::-webkit-details-marker{display:none}.site-faq summary:after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1;transition:rotate .2s}.site-faq details[open] summary:after{rotate:45deg}.site-faq details p{margin:0 0 16px}.site-final{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;padding:44px 22px}.site-final .site-h2{margin-bottom:0}.site-final p{margin:0 0 14px}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:24px;padding-bottom:40px;border-top:1px solid var(--line)}@media (max-width:860px){.site-hero{grid-template-columns:1fr;gap:36px;padding-top:40px}.site-shelf{rotate:0deg}}@media (max-width:760px){.site .wrap{padding-bottom:32px}.site-nav .ghost-link{display:none}.site .brand-text strong{font-size:1.35rem}.site .brand{gap:8px}.site .brand .logo{width:44px;height:auto}.site-nav .wide-only{display:none}.site-nav .narrow-only{display:inline}}@media (max-width:379px){.site .brand-text{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (prefers-reduced-transparency:reduce){.book,.glass,.panel,.search input,.slip{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.admin-stats{list-style:none;padding:0;margin:0 0 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));grid-gap:12px;gap:12px}.admin-stats li{display:flex;flex-direction:column;gap:2px;padding:16px 18px}.admin-stats strong{font-family:var(--font-display);font-variation-settings:"SOFT" 100;font-size:2rem;line-height:1.1}.late-text{color:var(--late)}.admin-accounts{margin-top:16px}.admin-accounts .list li{flex-wrap:wrap}.admin-badge{margin-left:8px;font-size:.75rem;padding:1px 8px;vertical-align:middle}.admin-actions>summary{cursor:pointer;list-style:none;padding:5px 14px;border-radius:999px;border:1px solid var(--line-strong);font-size:.9rem;font-weight:600}.admin-actions>summary::-webkit-details-marker{display:none}.admin-inline{align-items:flex-end}.admin-inline>button{flex:none}.admin-members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.admin-members li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line)}.admin-members li>strong{flex:1 1 100%}.admin-members .admin-inline{flex:1 1 220px}.sr-label{font-size:0;gap:0}.admin-actions[open]{flex-basis:100%;display:flex;flex-direction:column;gap:14px;padding:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}.admin-actions[open]>summary{align-self:flex-start;background:var(--surface)}.admin-actions input{background:var(--surface)}.auto-select select{width:auto}.list .grow>.small{overflow-wrap:anywhere}.owner-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.owner-picker select{min-height:36px;padding:6px 34px 6px 12px;background-position:right 10px center}.series-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row>label.volume-field{flex:0 1 110px}.series-list{display:grid;grid-gap:14px;gap:14px;margin-top:14px}.series-card .series-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.series-card h3{margin:0;font-size:1.05rem}.series-missing{gap:6px}.series-books,.series-missing{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.series-books{gap:6px 12px}.series-books a{overflow-wrap:anywhere}.series-proposals input[type=number],.series-proposals input[type=text]{min-width:0}.series-proposals .volume-input{width:76px;flex:0 0 76px}.series-proposals .row{flex-wrap:nowrap}.series-proposals .row>input:first-child{flex:1 1 auto}.edit-book>summary{cursor:pointer;font-weight:600}.edit-book[open]>summary{margin-bottom:16px}.prefixed{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding-left:14px;transition:box-shadow .2s}.prefixed:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.prefixed .prefix{font-weight:600;font-size:16px;color:var(--muted)}.prefixed input,.prefixed input:focus{border:0;box-shadow:none;background-color:transparent;padding-left:6px}.icon-btn{position:relative}.icon-btn .count{position:absolute;top:-2px;right:-4px}.kind-choice{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0}.kind-choice label{flex-direction:row;align-items:center;gap:8px;padding:9px 16px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--fg);cursor:pointer;font-size:.95rem}.kind-choice label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.kind-choice input{width:18px;height:18px;min-height:0;padding:0;margin:0;accent-color:var(--accent);box-shadow:none;flex:none}.feedback-form>button{align-self:flex-start}.feedback-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:0;gap:0}.feedback-list>li{display:flex;flex-direction:column;gap:8px;padding:16px 0;border-top:1px solid var(--line)}.feedback-list>li:first-child{border-top:0;padding-top:4px}.feedback-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.feedback-meta .pill{align-self:center}.feedback-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.mail-log>li{gap:4px;padding:12px 0}.mail-log .mail-subject,.mail-log .small{overflow-wrap:anywhere}.mail-log .mail-subject{font-weight:600}.feedback-response{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 12px 12px 0;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.pill.muted-pill{background:var(--surface-2);color:var(--muted)}.appearance{position:relative}.appearance summary{list-style:none}.appearance summary,.icon-btn.theme-btn{color:var(--accent);background:var(--accent-soft)}.appearance summary:hover,.icon-btn.theme-btn:hover,.icon-btn.theme-btn[aria-current=page]{color:var(--accent-strong)}.appearance summary::-webkit-details-marker{display:none}.appearance[open] summary{background:var(--accent-soft);color:var(--accent-strong)}.appearance-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:max-content;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-lift)}.appearance-pop .label{margin:0}.appearance-modes{align-self:stretch;display:grid;grid-template-columns:repeat(3,1fr)}.appearance-modes button{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px}.swatches{display:flex;gap:10px}.swatch{width:34px;height:34px;min-height:0;padding:3px;border-radius:50%;border:2px solid transparent;background:none;box-shadow:none;cursor:pointer}.swatch span{display:block;width:100%;height:100%;border-radius:50%;background:var(--accent)}.swatch:hover{border-color:var(--line-strong);background:none}.swatch[aria-pressed=true]{border-color:var(--accent)}.auth-corner{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;z-index:5}.isbn{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.01em;-webkit-user-select:all;-moz-user-select:all;user-select:all}@media (max-width:560px){.appearance-pop{position:fixed;top:auto;left:16px;right:16px;width:auto;max-width:none;margin-top:8px}.appearance-modes button{padding:6px 8px}.swatches{justify-content:space-between}}.auto-select select{max-width:100%}.segmented.loan-tabs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;max-width:560px;margin-bottom:24px;border-radius:16px}.loan-tabs a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 10px;border-radius:13px;color:var(--muted);font-weight:600;text-decoration:none;white-space:nowrap}.loan-tabs a:hover{background:var(--surface-2);color:var(--fg)}.loan-tabs a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.loan-tab-n{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;opacity:.75}.slip.asked{box-shadow:inset 0 0 0 1.5px var(--accent),var(--shadow)}.meetings{gap:10px}.meeting,.meetings{display:flex;flex-direction:column}.meeting{gap:6px;padding:12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line)}.meeting-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px}.meeting-when{font-weight:650}.meeting-when:first-letter{text-transform:uppercase}.meeting-place{display:inline-flex;align-items:flex-start;gap:4px;overflow-wrap:anywhere}.meeting-place svg{flex:none;margin-top:2px}.meeting-actions{gap:8px}.meeting-actions .btn{display:inline-flex;align-items:center;gap:6px}.meeting-map>summary,.meeting-propose>summary{cursor:pointer;font-weight:600;color:var(--accent);font-size:.9rem}.meeting-map iframe{display:block;width:100%;height:220px;margin-top:8px;border:0;border-radius:var(--radius-sm)}.meeting-propose[open]>summary{margin-bottom:8px}.loan-tabs .short-label{display:none}@media (max-width:420px){.loan-tabs a{font-size:.9rem;gap:6px;padding:8px 6px}.loan-tabs .wide-label{display:none}.loan-tabs .short-label{display:inline}}.place-field{position:relative;display:block}.place-suggestions{scroll-margin-bottom:96px;position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-lift)}.place-suggestions [role=option]{padding:10px 12px;font-size:.9rem;font-weight:400;color:var(--fg);cursor:pointer}.place-suggestions [role=option]+[role=option]{border-top:1px solid var(--line)}.place-suggestions .active,.place-suggestions [role=option]:hover{background:var(--accent-soft)}.push-icon{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--surface);color:var(--accent)}button.push-on{align-self:flex-start}.push-msg{margin:0}.books.linked .book{position:relative}.books.linked .book-title:after{content:"";position:absolute;inset:0}.books.linked .book-title:focus-visible{outline:none}.books.linked .book:has(.book-title:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.books.linked.liste{grid-template-columns:1fr;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.books.linked.liste .book{grid-template-columns:38px 1fr;gap:14px;align-items:center;padding:10px 14px;border:0;border-radius:0;box-shadow:none;background:none;transform:none}.books.linked.liste .book+.book{border-top:1px solid var(--line)}.books.linked.liste .book:hover{background:var(--surface-2);box-shadow:none;transform:none}.books.linked.liste .cover,.books.linked.liste .spine{width:38px;height:54px;font-size:.75rem;box-shadow:0 3px 8px rgb(0 0 0/.16)}.books.linked.liste .book-body{gap:2px}.books.linked.liste .book-title{font-size:.98rem}.books.linked.liste .book-body{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:8px}.books.linked.liste .book-title{flex-basis:100%}.books.linked.liste .book-body>.muted{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.books.linked.liste .book-body>.pill{flex:none;align-self:center}.books.linked.liste .isbn{display:none}.books.linked.liste .pill{font-size:.72rem;padding:2px 8px}.view-switch{margin-left:auto}.view-switch button{min-height:30px;padding:4px 14px;font-size:.85rem}@media (max-width:760px){.books.linked{grid-template-columns:1fr;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.books.linked .book{grid-template-columns:38px 1fr;gap:14px;align-items:center;padding:10px 14px;border:0;border-radius:0;box-shadow:none;background:none;transform:none}.books.linked .book+.book{border-top:1px solid var(--line)}.books.linked .book:hover{background:var(--surface-2);box-shadow:none;transform:none}.books.linked .cover,.books.linked .spine{width:38px;height:54px;font-size:.75rem;box-shadow:0 3px 8px rgb(0 0 0/.16)}.books.linked .book-body{gap:2px}.books.linked .book-title{font-size:.98rem}.books.linked .book-body{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:8px}.books.linked .book-title{flex-basis:100%}.books.linked .book-body>.muted{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.books.linked .book-body>.pill{flex:none;align-self:center}.books.linked .isbn{display:none}.books.linked .pill{font-size:.72rem;padding:2px 8px}.view-switch{display:none}}.book-hero details.lend>summary{list-style:none;align-self:flex-start}.book-hero details.lend>summary::-webkit-details-marker{display:none}.book-hero details.lend form{margin-top:10px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);gap:8px}.book-hero details.lend form :is(input,select){background-color:var(--surface)}.remove-book>summary{cursor:pointer;font-weight:600;color:var(--late)}.remove-book[open]>summary{margin-bottom:12px}.missing-at-friend{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.missing-at-friend button{min-height:28px;padding:3px 12px}.friends-manage .btn{align-self:flex-start}.remove-friend>summary{cursor:pointer;color:var(--late);list-style:none}.remove-friend>summary::-webkit-details-marker{display:none}.remove-friend[open]>summary{display:none}.me-menu,.me-menu>summary{position:relative}.me-menu>summary{list-style:none;display:grid;place-items:center;width:40px;height:40px;border-radius:999px;cursor:pointer}.me-menu>summary::-webkit-details-marker{display:none}.me-menu>summary .count{position:absolute;top:-2px;right:-4px}.me-avatar{width:36px;height:36px;font-size:.95rem;background:var(--accent-soft);color:var(--accent-strong);font-weight:700}.me-menu>summary:hover .me-avatar,.me-menu[open] .me-avatar{background:var(--accent);color:var(--accent-fg)}.me-panel{position:absolute;z-index:40;right:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 24px));padding:8px;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lift)}.me-panel,.me-who{display:flex;flex-direction:column}.me-who{padding:8px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.me-panel nav{display:flex;flex-direction:column;gap:2px}.me-panel form{margin:4px 0 0;padding-top:4px;border-top:1px solid var(--line)}.menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:12px;background:none;box-shadow:none;color:var(--fg);font-weight:600;font-size:.95rem;text-align:left;justify-content:flex-start}.menu-item svg{flex:none;color:var(--accent)}.menu-item:hover,.menu-item[aria-current=page]{background:var(--accent-soft);text-decoration:none;color:var(--accent-strong)}.menu-item .count{margin-left:auto}.legal-page{min-height:100vh;position:relative}.legal-head{display:flex;align-items:center;gap:14px;padding-top:16px;padding-bottom:0}.legal-head .legal-theme{margin-left:auto}.legal{max-width:760px}.legal ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.legal p{margin:0}