:root{--color-bg: #f7f7fb;--color-surface: #ffffff;--color-panel: #ffffff;--color-border: #ebedf2;--color-border-strong: #d4d8e1;--color-border-bold: #e5e7eb;--color-text: #0b0b0f;--color-text-muted: #4b5563;--color-text-subtle: #6b7280;--color-chip-bg: #ffffff;--color-chip-selected-bg: #111827;--color-chip-selected-text: #ffffff;--color-tag-bg: #f3f4f6;--color-primary: #111827;--color-primary-text: #ffffff;--color-accent: #2563eb;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-text);background-color:var(--color-bg);line-height:1.5}body.theme-dark{--color-bg: #05060a;--color-surface: #0f121d;--color-panel: #151a2c;--color-border: #23293c;--color-border-strong: #2f354a;--color-border-bold: #353c54;--color-text: #f5f5f7;--color-text-muted: #cbd5f5;--color-text-subtle: #a6b0d0;--color-chip-bg: #161b2a;--color-chip-selected-bg: #2563eb;--color-chip-selected-text: #f5f5f7;--color-tag-bg: #1e2436;--color-primary: #2563eb;--color-primary-text: #f5f5f7;--color-accent: #3b82f6;color-scheme:dark}*{box-sizing:border-box}body,#root{margin:0;min-height:100vh;background-color:var(--color-bg);color:var(--color-text);transition:background-color .2s ease,color .2s ease}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh;flex-direction:column}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10;box-shadow:0 2px 6px #05060a0a}.app-header__content{margin:0 auto;max-width:1200px;padding:1rem 1.5rem;display:flex;align-items:center;gap:1.5rem}.logo{font-weight:700;font-size:1.2rem}.app-header__actions{display:flex;align-items:center;gap:1rem;margin-left:auto}.auth-user{font-size:.85rem;color:var(--color-text-muted)}.theme-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-text-muted)}.theme-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-accent);cursor:pointer}.config-form{display:flex;flex-direction:column;gap:1rem}.config-field{display:flex;flex-direction:column;gap:.4rem}.config-field input{border-radius:6px;border:1px solid var(--color-border-strong);padding:.6rem .75rem;font-size:1rem;background:var(--color-surface);color:var(--color-text)}.helper-text{margin:0;font-size:.85rem;color:var(--color-text-subtle)}.success-text{margin:0;font-size:.9rem;color:#16a34a}.error-text{margin:0;font-size:.9rem;color:#ef4444}.primary-button{align-self:flex-start;background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:6px;padding:.5rem 1.25rem;cursor:pointer}.primary-button:disabled{opacity:.65;cursor:not-allowed}.config-theme h2{margin-top:0}.app-nav{display:flex;gap:1rem}.app-nav a{color:var(--color-text-muted);transition:color .2s ease}.app-nav a.active{font-weight:600;color:var(--color-text)}.auth-button{margin-left:auto;background:var(--color-primary);color:var(--color-primary-text);border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.app-main{flex:1;padding:2rem 1rem 3rem}.app-footer{border-top:1px solid var(--color-border);padding:1rem 1.5rem;text-align:center;color:var(--color-text-muted);font-size:.9rem;background:var(--color-surface)}.page{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.page.narrow{max-width:720px}.page-header{display:flex;justify-content:space-between;gap:1rem;align-items:center}.page-header h1{margin:0 0 .35rem}.link-button{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:0;font-size:.95rem}.filters-panel{background:var(--color-panel);border-radius:12px;border:1px solid var(--color-border);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:0 6px 24px #06080f14}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:600}.filter-group input,.filter-group select,.form input,.form textarea{border:1px solid var(--color-border-strong);border-radius:8px;padding:.65rem .75rem;font-size:1rem;width:100%;font-family:inherit;background:var(--color-surface);color:var(--color-text)}.filter-group__header{display:flex;justify-content:space-between;font-weight:600;font-size:.95rem}.chip-grid{display:flex;flex-wrap:wrap;gap:.5rem}.chip{border-radius:999px;border:1px solid var(--color-border-strong);background:var(--color-chip-bg);padding:.35rem .75rem;font-size:.85rem;cursor:pointer}.chip--selected{background:var(--color-chip-selected-bg);color:var(--color-chip-selected-text);border-color:var(--color-chip-selected-bg)}.chip--static{cursor:default;background:var(--color-tag-bg);border-color:var(--color-tag-bg)}.results-panel{display:flex;flex-direction:column;gap:1rem}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.book-card{border:1px solid var(--color-border);border-radius:12px;background:var(--color-panel);padding:1rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .2s ease}.book-card:hover{border-color:var(--color-border-strong)}.book-card__eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-subtle);font-size:.75rem;margin:0}.book-card h3{margin:0}.book-card__synopsis{margin:0;color:var(--color-text-muted);font-size:.95rem}.book-card__tags{display:flex;flex-wrap:wrap;gap:.4rem;color:var(--color-text-subtle);font-size:.85rem}.pagination{display:flex;gap:1rem;justify-content:center;align-items:center}.pagination button{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:6px;padding:.4rem .9rem;cursor:pointer;color:var(--color-text)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.empty-state{background:var(--color-panel);border:1px dashed var(--color-border-strong);border-radius:12px;padding:2rem;text-align:center}.book-hero{background:var(--color-panel);border-radius:16px;border:1px solid var(--color-border);padding:2rem;display:flex;flex-direction:column;gap:1rem}.book-hero__eyebrow{text-transform:uppercase;letter-spacing:.1em;margin:0;color:var(--color-text-subtle);font-size:.8rem}.book-hero__meta{border-top:1px solid var(--color-border);padding-top:1rem}.preps-section{display:flex;flex-direction:column;gap:1rem}.section-header{display:flex;justify-content:space-between;align-items:flex-end}.prep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.prep-card{border:2px solid var(--color-border-bold);border-radius:16px;background:var(--color-panel);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.prep-card__eyebrow{text-transform:uppercase;font-size:.7rem;margin:0;letter-spacing:.08em;color:var(--color-text-subtle)}.prep-card__votes{align-self:flex-start;display:flex;flex-direction:column;gap:.2rem;color:var(--color-text-subtle);font-size:.85rem}.prep-card header{display:flex;justify-content:space-between;gap:1rem}.prep-card__keywords{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.85rem;color:var(--color-text)}.prep-card__actions{display:flex;gap:.5rem}.prep-card__actions button{flex:1;border:1px solid var(--color-border-strong);border-radius:999px;padding:.4rem .75rem;background:var(--color-surface);cursor:pointer;color:var(--color-text)}.prep-card__actions button:disabled{opacity:.4;cursor:not-allowed}.panel{border:1px solid var(--color-border);border-radius:16px;background:var(--color-panel);padding:1.5rem}.form{display:flex;flex-direction:column;gap:1rem}.form label{display:flex;flex-direction:column;gap:.4rem;font-weight:600}.form textarea{min-height:120px;resize:vertical}.form button{align-self:flex-start;border:none;border-radius:8px;background:var(--color-primary);color:var(--color-primary-text);padding:.65rem 1.25rem;cursor:pointer}.success{color:#0f766e}.error{color:#b91c1c}@media (min-width: 768px){.book-hero{flex-direction:row;justify-content:space-between;gap:2rem}.book-hero__meta{min-width:280px;border-top:none;border-left:1px solid var(--color-border);padding-left:1.5rem}}
