.app-header[data-v-96439a65]{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--card)}.app-logo[data-v-96439a65]{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.app-logo[data-v-96439a65]:hover{text-decoration:none}.app-title[data-v-96439a65]{font-family:var(--font-serif);font-size:1.25rem;font-weight:700}.app-header-right[data-v-96439a65]{display:flex;align-items:center;gap:12px}.app-user[data-v-96439a65]{font-size:.875rem;color:var(--warm-gray)}@media(max-width:480px){.logout-label[data-v-96439a65]{display:none}}.app-main[data-v-96439a65]{max-width:960px;margin:0 auto;padding:24px 20px 48px}.public-layout[data-v-42f461a4]{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--cream)}.public-card[data-v-42f461a4]{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:32px 28px;width:100%;max-width:400px}.public-logo[data-v-42f461a4]{display:flex;align-items:center;gap:12px;margin-bottom:28px;color:var(--amber)}.public-logo h1[data-v-42f461a4]{font-size:1.5rem;color:var(--ink)}.status-badge[data-v-22908d8e]{display:inline-block;border-radius:var(--radius-sm);padding:3px 10px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.to_read[data-v-22908d8e]{background:#8f7a5a1a;color:var(--status-sand)}.reading[data-v-22908d8e]{background:#5a7a8f1a;color:var(--status-blue)}.finished[data-v-22908d8e]{background:#5a8f5a1a;color:var(--status-green)}.star-rating[data-v-66342a94]{display:flex;gap:2px}.star-btn[data-v-66342a94]{background:none;border:none;padding:0;cursor:default;color:var(--border);display:flex;transition:color .1s}.interactive .star-btn[data-v-66342a94]{cursor:pointer}.interactive .star-btn[data-v-66342a94]:hover{color:var(--amber-hover)}.star-btn.filled[data-v-66342a94]{color:var(--amber)}.book-card[data-v-e18b1ccc]{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:border-color .15s}.book-card[data-v-e18b1ccc]:hover{border-color:var(--warm-gray)}.book-card-header[data-v-e18b1ccc]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.book-card-actions[data-v-e18b1ccc]{display:flex;gap:4px}.book-card-title[data-v-e18b1ccc]{font-size:1.125rem;margin-bottom:2px}.book-card-author[data-v-e18b1ccc]{font-size:.875rem;color:var(--warm-gray);margin-bottom:10px}.book-card-notes[data-v-e18b1ccc]{font-size:.875rem;color:var(--warm-gray);margin-top:10px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.modal-backdrop[data-v-8c5fda34]{position:fixed;inset:0;background:#2c24204d;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.modal-card[data-v-8c5fda34]{background:var(--card);border-radius:var(--radius-xl);padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-header[data-v-8c5fda34]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h2[data-v-8c5fda34]{margin:0}.modal-form[data-v-8c5fda34]{display:flex;flex-direction:column;gap:16px}.form-row[data-v-8c5fda34]{display:flex;gap:16px}.form-row .form-group[data-v-8c5fda34]{flex:1}.form-actions[data-v-8c5fda34]{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.library-header[data-v-fe6f2703]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.stats-grid[data-v-fe6f2703]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.stat-card[data-v-fe6f2703]{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;display:flex;flex-direction:column}.stat-number[data-v-fe6f2703]{font-family:var(--font-serif);font-size:1.75rem;font-weight:700;line-height:1.2}.stat-label[data-v-fe6f2703]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--warm-gray);margin-top:2px}.filter-bar[data-v-fe6f2703]{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.filter-pill[data-v-fe6f2703]{border:1px solid var(--border);border-radius:var(--radius-pill);padding:6px 16px;font-size:.875rem;font-weight:500;font-family:var(--font-sans);background:transparent;color:var(--warm-gray);cursor:pointer;transition:all .15s}.filter-pill[data-v-fe6f2703]:hover{color:var(--ink);border-color:var(--warm-gray)}.filter-pill.active[data-v-fe6f2703]{background:var(--ink);color:#fff;border-color:var(--ink)}.book-grid[data-v-fe6f2703]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.loading-text[data-v-fe6f2703]{color:var(--warm-gray);font-size:.9375rem;padding:40px 0;text-align:center}.empty-state[data-v-fe6f2703]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 0;color:var(--warm-gray)}.empty-state p[data-v-fe6f2703]{font-size:.9375rem}.modal-backdrop[data-v-fe6f2703]{position:fixed;inset:0;background:#2c24204d;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.delete-card[data-v-fe6f2703]{background:var(--card);border-radius:var(--radius-xl);padding:28px;width:100%;max-width:360px}.delete-card h3[data-v-fe6f2703]{margin-bottom:8px}.delete-text[data-v-fe6f2703]{font-size:.875rem;color:var(--warm-gray);margin-bottom:20px}.form-actions[data-v-fe6f2703]{display:flex;justify-content:flex-end;gap:10px}@media(max-width:640px){.stats-grid[data-v-fe6f2703]{grid-template-columns:repeat(2,1fr)}.book-grid[data-v-fe6f2703]{grid-template-columns:1fr}}.auth-form[data-v-9881a4e0]{display:flex;flex-direction:column;gap:14px}.auth-subtitle[data-v-9881a4e0]{font-size:.875rem;color:var(--warm-gray);margin-top:-4px}.auth-error[data-v-9881a4e0]{background:#a8484814;color:var(--danger);border-radius:var(--radius-md);padding:10px 14px;font-size:.875rem}.full-width[data-v-9881a4e0]{width:100%;justify-content:center}.auth-toggle[data-v-9881a4e0]{text-align:center;font-size:.875rem;color:var(--warm-gray)}.btn-link[data-v-9881a4e0]{background:none;border:none;color:var(--amber);font-size:.875rem;font-weight:600;cursor:pointer;padding:0;font-family:var(--font-sans)}.btn-link[data-v-9881a4e0]:hover{text-decoration:underline}.not-found[data-v-afbeb43f]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:12px;color:var(--warm-gray)}:root{--cream: #fbf8f3;--card: #ffffff;--warm-gray: #8c8279;--ink: #2c2420;--border: #e8e0d6;--amber: #d4940a;--amber-hover: #b87d08;--status-green: #5a8f5a;--status-blue: #5a7a8f;--status-sand: #8f7a5a;--danger: #a84848;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 20px;--font-serif: Georgia, "Times New Roman", serif;--font-sans: system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--cream);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-serif);line-height:1.3}h1{font-size:1.75rem}h2{font-size:1.25rem}label{display:block;font-size:.875rem;font-weight:600;color:var(--ink);margin-bottom:4px}input,textarea,select{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;font-size:1rem;font-family:var(--font-sans);background:var(--card);color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--amber);outline:none;box-shadow:0 0 0 3px #d4940a26}textarea{resize:vertical;min-height:80px}.btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:var(--radius-md);padding:10px 20px;font-size:.9375rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:background .15s,opacity .15s;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--amber);color:#fff}.btn-primary:hover:not(:disabled){background:var(--amber-hover)}.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--cream)}.btn-ghost{background:transparent;color:var(--warm-gray);padding:6px 10px}.btn-ghost:hover:not(:disabled){color:var(--ink)}.btn-danger{background:transparent;color:var(--danger);padding:6px 10px}.btn-danger:hover:not(:disabled){background:#a8484814}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline}
