@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&family=Inter:wght@400;500;600&display=swap";:root{--ink:#171224;--ink-soft:#312a47;--parchment:#f2ede1;--parchment-dim:#ddd4bf;--gold:#c99a3e;--gold-bright:#e0b563;--danger:#b6503c;--font-display:"Fraunces", serif;--font-body:"Inter", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--ink);color:var(--parchment);font-family:var(--font-body);margin:0}button{cursor:pointer;font-family:inherit}a{color:var(--gold-bright)}:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.auth-page{background:radial-gradient(circle at 20% 20%, #c99a3e1f, transparent 45%), var(--ink);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--ink-soft);border:1px solid #f2ede114;border-radius:4px;flex-direction:column;width:100%;max-width:380px;padding:40px 32px;display:flex}.auth-card h1{font-family:var(--font-display);margin:0 0 4px;font-size:2rem;font-weight:600}.auth-subtitle{color:var(--parchment-dim);margin:0 0 28px;font-size:.9rem}.auth-card label{text-transform:uppercase;letter-spacing:.04em;color:var(--parchment-dim);margin-bottom:6px;font-size:.8rem}.auth-card input{background:var(--ink);color:var(--parchment);border:1px solid #f2ede126;border-radius:3px;margin-bottom:18px;padding:11px 12px;font-size:.95rem}.auth-card button[type=submit]{background:var(--gold);color:var(--ink);border:none;border-radius:3px;margin-top:8px;padding:12px;font-size:.95rem;font-weight:600;transition:background .15s}.auth-card button[type=submit]:hover{background:var(--gold-bright)}.auth-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:var(--danger);margin:-6px 0 12px;font-size:.85rem}.auth-switch{color:var(--parchment-dim);text-align:center;margin-top:24px;font-size:.85rem}.dashboard{max-width:1000px;margin:0 auto;padding:32px 24px 80px}.dashboard-header{border-bottom:1px solid #f2ede11a;justify-content:space-between;align-items:baseline;margin-bottom:32px;padding-bottom:20px;display:flex}.dashboard-header h1{font-family:var(--font-display);margin:0;font-size:1.8rem;font-weight:600}.link-button{color:var(--parchment-dim);background:0 0;border:none;font-size:.85rem;text-decoration:underline}.search-form{gap:10px;margin-bottom:24px;display:flex}.search-form input{background:var(--ink-soft);color:var(--parchment);border:1px solid #f2ede126;border-radius:3px;flex:1;padding:11px 14px;font-size:.95rem}.search-form button{background:var(--gold);color:var(--ink);border:none;border-radius:3px;padding:0 20px;font-weight:600}.library-section h2{font-family:var(--font-display);margin:40px 0 16px;font-size:1.3rem;font-weight:600}.empty-state{color:var(--parchment-dim);font-size:.9rem}.results-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;display:grid}.book-card{background:var(--ink-soft);border:1px solid #f2ede114;border-radius:4px;flex-direction:column;gap:12px;padding:16px;display:flex}.book-cover{justify-content:center;align-items:center;height:140px;display:flex}.book-cover img{border-radius:2px;height:100%;box-shadow:0 4px 14px #0006}.book-cover-placeholder{background:var(--ink);width:90px;height:100%;font-family:var(--font-display);color:var(--gold-bright);border:1px solid #f2ede11a;justify-content:center;align-items:center;font-size:1.6rem;display:flex}.book-info h3{font-family:var(--font-display);margin:0 0 4px;font-size:1.05rem;line-height:1.3}.book-authors{color:var(--parchment-dim);margin:0;font-size:.8rem}.book-status{text-transform:uppercase;letter-spacing:.04em;color:var(--gold-bright);background:#c99a3e26;border-radius:20px;margin-top:8px;padding:3px 8px;font-size:.7rem;display:inline-block}.book-actions button,.already-added{text-align:center;border-radius:3px;width:100%;padding:8px;font-size:.85rem}.book-actions button{background:var(--gold);color:var(--ink);border:none;font-weight:600}.already-added{color:var(--parchment-dim);font-style:italic}.library-actions{gap:8px;display:flex}.library-actions select{background:var(--ink);color:var(--parchment);border:1px solid #f2ede126;border-radius:3px;flex:1;padding:6px;font-size:.8rem}.remove-button{color:var(--danger);background:0 0;border:1px solid #b6503c80;border-radius:3px;padding:6px 10px;font-size:.8rem}.loading-screen{min-height:100vh;color:var(--parchment-dim);font-family:var(--font-display);place-items:center;display:grid}.library-header{justify-content:space-between;align-items:center;margin:40px 0 16px;display:flex}.library-header h2{margin:0}.filter-select{background:var(--ink-soft);color:var(--parchment);border:1px solid #f2ede126;border-radius:3px;padding:6px 10px;font-size:.85rem}.header-actions{align-items:center;gap:16px;display:flex}.icon-button{color:var(--parchment-dim);background:0 0;border:none;border-radius:4px;align-items:center;padding:6px;transition:color .15s,background .15s;display:flex}.icon-button:hover{color:var(--gold-bright);background:#f2ede10f}.achievements-section h2{font-family:var(--font-display);margin:40px 0 16px;font-size:1.3rem;font-weight:600}.achievements-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.achievement-card{background:var(--ink-soft);border:1px solid #f2ede114;border-radius:4px;align-items:flex-start;gap:12px;padding:14px;display:flex}.achievement-icon{font-size:1.4rem;line-height:1}.achievement-card h3{font-family:var(--font-display);margin:0 0 4px;font-size:.95rem}.achievement-card p{color:var(--parchment-dim);margin:0;font-size:.78rem}.achievement-locked{opacity:.45}.app-footer{text-align:center;border-top:1px solid #f2ede114;margin-top:48px;padding-top:20px}.app-footer a{color:var(--parchment-dim);font-size:.8rem;text-decoration:underline}.app-footer a:hover{color:var(--gold-bright)}@media (width<=480px){.install-banner{flex-direction:column}.install-banner-actions{flex-direction:row;justify-content:flex-end}.auth-card{padding:32px 22px}}
