:root{color:#172027;background:#eef3f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5;--bg: #eef3f5;--surface: #f8fafb;--surface-soft: rgba(248, 250, 251, .82);--surface-muted: #e3eaee;--text: #172027;--muted: #65737d;--line: rgba(23, 32, 39, .14);--primary: #315f70;--primary-text: #f8fbfc;--danger: #8f3f4a;--reader-bg: #111820;--reader-text: #eff5f7;--reader-muted: #b7c5cc;--radius: 8px;--tap: 44px}:root[data-theme=dark]{color:#e8eef1;background:#18242c;--bg: #18242c;--surface: #22313b;--surface-soft: rgba(34, 49, 59, .82);--surface-muted: #2b3d49;--text: #e8eef1;--muted: #9babb4;--line: rgba(232, 238, 241, .16);--primary: #9fc4d1;--primary-text: #102029;--danger: #e18a92;--reader-bg: #0f171d;--reader-text: #f0f5f7;--reader-muted: #a8b8c0}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,input,select{font:inherit}button{border:1px solid var(--line);background:var(--surface-soft);color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #6a9aad;outline-offset:3px}.app{min-height:100vh}.topbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:1rem clamp(1rem,4vw,3rem);position:sticky;top:0;z-index:2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#eef3f5d1}:root[data-theme=dark] .topbar{background:#18242cd6}.brand{border:0;background:transparent;font-family:Georgia,serif;font-size:1.35rem}nav{display:flex;gap:.5rem}nav button,.themeToggle,.readerBar button,.chips button,.photoEdit button,.segmented button{border-radius:999px;padding:.55rem .85rem}.themeToggle{min-width:3.25rem}.active,.selected{background:var(--primary);color:var(--primary-text)}.home,.importPanel,.studio,.studioEmpty{padding:clamp(1rem,4vw,3rem)}.drop p,.textPage p,.coverPage p{color:var(--muted);letter-spacing:0;margin:0 0 .75rem;text-transform:uppercase}.shelfHeader h1,.drop h1,.textPage h1,.coverPage h1{font-family:Georgia,serif;font-size:clamp(2rem,6vw,4.6rem);font-weight:500;line-height:1;margin:0 0 1.5rem;max-width:920px}.shelfHeader button,.primary,.fileButton{align-items:center;background:var(--primary);border-radius:999px;color:var(--primary-text);display:inline-flex;justify-content:center;min-height:48px;padding:.8rem 1.1rem;width:fit-content}.shelf h2{font-family:Georgia,serif;font-size:1.8rem;font-weight:500}.shelfHeader{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:clamp(1.5rem,5vw,3rem)}.shelfHeader h1{margin:0}.shelf{display:grid;gap:1.5rem}.shelfRow{display:grid;gap:.75rem}.shelfRow h3{color:var(--muted);font-size:.95rem;font-weight:500;margin:0}.bookGrid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.bookCard{aspect-ratio:4 / 5;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;display:grid;grid-template-rows:1fr auto;padding:1.1rem;text-align:left}.bookCard:hover,.bookOpen:focus-visible .bookCard{background:var(--surface)}.bookOpen{background:transparent;border:0;display:grid;padding:0;text-align:left}.bookCard strong{align-self:end;font-family:Georgia,serif;font-size:1.6rem;font-weight:500}.bookActions{display:grid;gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:.9rem}.bookActions button{border-radius:999px;min-height:36px}.bookCard small,.bookCard span,.empty p,.drop span,.status{color:var(--muted)}.empty,.drop{border:1px dashed var(--line);border-radius:8px;padding:clamp(1.5rem,6vw,4rem)}.drop{min-height:54vh;display:grid;align-content:center;justify-items:start}.fileButton{margin-top:1.5rem}.importActions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.importActions .fileButton{margin-top:0}.fileButton.secondary{background:var(--surface);border-color:var(--line);color:var(--text)}.fileButton input{inline-size:1px;opacity:0;position:absolute}.studio{display:grid;gap:1.5rem;grid-template-columns:minmax(260px,340px) 1fr}.composer{align-self:start;display:grid;gap:1rem;position:sticky;top:5.5rem}.storageSummary{align-items:end;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding-bottom:.75rem}.storageSummary span{color:var(--muted)}.storageSummary strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:500}.recipePreview{display:flex;flex-wrap:wrap;gap:.45rem}.recipePreview span{background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.84rem;padding:.38rem .58rem}.composer label{display:grid;gap:.4rem}.segmented{border:0;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}.segmented legend{color:var(--muted);flex-basis:100%;margin-bottom:.15rem}.composer input,.composer select,.photoEdit input{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:.7rem .8rem;width:100%}.composer input,.composer select,.photoEdit input{color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.titleSuggestions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:-.35rem}.titleSuggestions button{border-radius:999px;color:var(--text);font-size:.86rem;padding:.45rem .65rem}.dateRange{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.recipeActions{display:grid;gap:.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}.recipeActions button{border-radius:8px;min-height:40px}.photoStrip{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.photoEdit{display:grid;gap:.6rem}.photoEdit img{aspect-ratio:4 / 3;border-radius:8px;height:auto;object-fit:cover;width:100%}.photoEdit div{display:grid;gap:.5rem}.photoActions{display:grid;gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr))}.quietDanger{color:var(--danger)}.tagEditor{display:grid;gap:.45rem;grid-template-columns:1fr auto}.miniTags,.miniMeta{color:var(--muted);font-size:.82rem;margin:0;overflow-wrap:anywhere}.miniMeta{color:var(--primary)}.reader{background:var(--reader-bg);color:var(--reader-text);height:100dvh;min-height:100vh;overflow:hidden;padding:5.25rem clamp(1rem,3vw,2rem) 6.25rem;position:relative}.reader--whiteMargin{--reader-chrome-bg: color-mix(in srgb, var(--bg) 86%, transparent);--reader-chrome-button: color-mix(in srgb, var(--text) 7%, transparent);--reader-chrome-line: var(--line);--reader-chrome-muted: var(--muted);--reader-chrome-text: var(--text)}.reader:not(.reader--whiteMargin){--reader-chrome-bg: rgba(17, 24, 32, .74);--reader-chrome-button: rgba(239, 245, 247, .08);--reader-chrome-line: rgba(239, 245, 247, .16);--reader-chrome-muted: rgba(239, 245, 247, .7);--reader-chrome-text: var(--reader-text)}.readerHeader{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(180deg,var(--reader-chrome-bg),color-mix(in srgb,var(--reader-chrome-bg) 72%,transparent));border-bottom:1px solid var(--reader-chrome-line);display:flex;inset:0 0 auto;min-height:calc(4rem + env(safe-area-inset-top));padding:calc(.8rem + env(safe-area-inset-top)) clamp(1rem,4vw,3rem) .8rem;position:fixed;z-index:6}.readerBrand{background:transparent;border:0;color:var(--reader-chrome-text);font-family:var(--font-display, Georgia, serif);font-size:1.35rem;min-height:auto;padding:0}.readerBar{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:var(--reader-chrome-bg);border:1px solid var(--reader-chrome-line);border-radius:999px;box-shadow:0 18px 50px #00000042;display:flex;gap:.45rem;justify-content:space-between;left:50%;max-width:min(760px,calc(100vw - 1.5rem));padding:.4rem;position:fixed;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);width:max-content;z-index:6}.readerBar span{color:var(--reader-chrome-muted);font-size:.9rem;min-width:3.9rem;text-align:center}.readerBar button{background:var(--reader-chrome-button);border-color:var(--reader-chrome-line);color:var(--reader-chrome-text);font-size:.92rem;min-height:var(--tap, 44px);white-space:nowrap}.readerBar button:disabled{cursor:default;opacity:.46;transform:none}.coverPage,.textPage,.singlePhoto,.photoGroup{height:calc(100dvh - 11.5rem);min-height:0;overflow:hidden}.coverPage{display:grid;gap:clamp(1rem,4vw,3rem);grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);place-items:center}.coverPage img,.singlePhoto img,.photoGroup img{border-radius:var(--radius, 8px);max-height:100%;min-height:0;object-fit:contain;width:100%}.coverPage div{justify-self:start}.textPage{display:grid;place-content:center;text-align:center}.textPage span{color:var(--reader-muted);font-size:1.1rem}.recordPage dl{display:grid;gap:.9rem;margin:0 auto;width:min(420px,80vw)}.recordPage dl div{align-items:baseline;border-bottom:1px solid color-mix(in srgb,var(--reader-text) 14%,transparent);display:grid;gap:1rem;grid-template-columns:5rem minmax(0,1fr);padding:.7rem 0;text-align:left}.recordPage dt{color:var(--reader-muted)}.recordPage dd{margin:0}.relatedBooks{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:2rem;max-width:680px;width:min(680px,90vw)}.relatedBooks button{background:#eff5f714;border-color:#eff5f72e;border-radius:var(--radius, 8px);color:var(--reader-text);display:grid;gap:.35rem;padding:.9rem;text-align:left}.relatedBooks small{color:var(--reader-muted);text-transform:uppercase}.relatedBooks strong{font-family:var(--font-display, Georgia, serif);font-size:1.05rem;font-weight:500}.singlePhoto{display:grid;gap:.2rem;grid-template-rows:minmax(0,1fr) auto;place-items:center}.singlePhoto.whiteMargin{background:var(--bg);color:var(--text);padding:clamp(1rem,5vw,4rem)}.singlePhoto.photoWithCaption{gap:clamp(.25rem,1vw,.8rem);grid-template-columns:minmax(0,.9fr) minmax(176px,.36fr);grid-template-rows:minmax(0,1fr);justify-content:center;margin-inline:auto;max-width:1080px}.singlePhoto.photoWithCaption p{align-self:center;border-left:1px solid rgba(239,245,247,.24);padding-left:clamp(.25rem,1vw,.8rem)}.singlePhoto.fullPhoto img{max-height:100%}.singlePhoto p{color:inherit;margin:0;opacity:.78}.photoGroup{display:grid;gap:1rem;place-content:center}.photoGroup h2{color:var(--reader-muted);font-family:var(--font-display, Georgia, serif);font-size:1rem;font-weight:500;margin:0;text-align:center}.photoGroup div{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));max-height:100%;max-width:980px;overflow:hidden}.contactSheet div{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}@media(max-width:760px){.topbar{align-items:flex-start;flex-direction:column}nav{overflow-x:auto;width:100%}.studio,.coverPage{grid-template-columns:1fr}.composer{position:static}.photoGroup div,.singlePhoto.photoWithCaption{grid-template-columns:1fr}.singlePhoto.photoWithCaption p{border-left:0;padding-left:0}.reader{padding:4.9rem .75rem 8.4rem}.readerHeader{min-height:calc(3.75rem + env(safe-area-inset-top));padding-inline:1rem}.readerBar{border-radius:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:calc(100vw - 1rem)}.readerBar span{grid-column:span 2;min-width:0}.readerBar button{padding-inline:.55rem}.coverPage,.textPage,.singlePhoto,.photoGroup{height:calc(100dvh - 13.3rem)}.coverPage{align-content:start;gap:1.4rem;padding-top:1rem;place-items:start}.coverPage img,.singlePhoto img,.photoGroup img{max-height:100%}}
