:root{color-scheme:light dark;--bg: #f7f7f5;--surface: #ffffff;--text: #1a1a1a;--muted: #6b6b6b;--border: #e0e0dc;--accent: #2f5d50;--accent-contrast: #ffffff;--danger: #b3261e;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #16171a;--surface: #1f2024;--text: #eceae6;--muted: #9a9a9a;--border: #33343a;--accent: #7fb69a;--accent-contrast: #0e1210}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app{max-width:960px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.app__header{padding:1rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.app__nav{display:flex;align-items:center;gap:1rem}.app__username{color:var(--muted);font-size:.9rem}.app__loading{padding:2rem;color:var(--muted)}.app__brand{font-size:1.25rem;font-weight:700;color:var(--text);text-decoration:none}.app__main{padding:1.5rem;flex:1}.books-page__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.button,button{font:inherit;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.5rem 1rem;cursor:pointer;text-decoration:none;display:inline-block}button[type=submit],.books-page__header .button{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.button--danger{background:transparent;color:var(--danger);border-color:var(--danger)}.book-list__filter{display:flex;flex-direction:column;gap:.25rem;max-width:260px;margin-bottom:1.5rem}.book-list__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.book-card{display:flex;flex-direction:column;gap:.5rem;color:var(--text);text-decoration:none;border:1px solid var(--border);border-radius:12px;padding:.75rem;background:var(--surface)}.book-card__cover{width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:8px;background:var(--border)}.book-card__info{display:flex;flex-direction:column;gap:.15rem}.book-card__location{color:var(--muted);font-size:.85rem}.book-form,.cover-upload,.cover-picker,.location-picker{display:flex;flex-direction:column;gap:.75rem;max-width:420px;margin-top:1rem}.book-form label,.location-picker,.cover-upload label,.cover-picker label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted)}.cover-picker__preview{display:flex;align-items:center;gap:.75rem}.cover-picker__preview img{width:96px;aspect-ratio:2 / 3;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.photo-capture{display:flex;flex-direction:column;gap:.75rem;max-width:420px;margin-top:.75rem}.photo-capture__video{width:100%;border-radius:12px;background:#000}.photo-capture__controls{display:flex;gap:.75rem}.book-form input,.book-form textarea,.location-picker input{font:inherit;padding:.5rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.barcode-scanner__video{width:100%;max-width:420px;border-radius:12px;background:#000}.scan-page__manual{display:flex;align-items:flex-end;gap:.75rem;margin-top:1rem;max-width:420px}.scan-page__manual label{flex:1;display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted)}.scan-page__manual input{font:inherit;padding:.5rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.scan-page__status{color:var(--muted);margin-top:.75rem}.book-detail__cover{max-width:240px;border-radius:12px;margin:1rem 0}[role=alert]{color:var(--danger)}.auth-page{max-width:360px;margin:3rem auto}.auth-form{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.auth-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted)}.auth-form input{font:inherit;padding:.5rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.users-page__list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem;margin:1rem 0 2rem}.users-page__row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.users-page__username{font-weight:600;flex:1}.users-page__role{color:var(--muted);font-size:.85rem;text-transform:capitalize}.users-page__create{display:flex;flex-direction:column;gap:.75rem;max-width:360px}.users-page__create label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted)}.users-page__create input,.users-page__create select{font:inherit;padding:.5rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}
