:root{--bg: #f5f3ee;--surface: #ffffff;--ink: #1e2a25;--muted: #6b7570;--accent: #2b5d4a;--accent-ink:#ffffff;--border: #e2ddd3;--danger: #b3482e;--radius: 10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.header{background:var(--accent);color:var(--accent-ink);padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.header h1{margin:0;font-size:1.2rem}.header nav a{color:var(--accent-ink);margin-left:.75rem}.container{max-width:900px;margin:0 auto;padding:1rem}.field{margin-bottom:.9rem}.field label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.3rem}input,textarea,select{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;background:var(--surface);font-family:inherit}textarea{resize:vertical;min-height:80px}button{padding:.6rem 1.1rem;border:none;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);font-size:1rem;cursor:pointer;font-family:inherit}button:hover{opacity:.92}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--border)}button.danger{background:var(--danger)}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:#eee}.card .body{padding:.8rem;flex:1;display:flex;flex-direction:column}.card h3{margin:0 0 .25rem;font-size:1rem}.card .meta{font-size:.82rem;color:var(--muted)}.badge{display:inline-block;font-size:.72rem;padding:.15rem .5rem;border-radius:999px;background:var(--border);color:var(--ink)}.badge.lent_out{background:#eadfc3}.badge.requested{background:#d4e3d0}.badge.active{background:#bcd4b5}.badge.returned{background:#e0e0e0}.badge.declined{background:#f0d0c8}.error{background:#f9e2dc;color:var(--danger);padding:.6rem .8rem;border-radius:var(--radius);margin-bottom:1rem}.empty{text-align:center;color:var(--muted);padding:2rem 1rem}@media (max-width: 500px){.header h1{font-size:1rem}.header nav a{margin-left:.5rem;font-size:.9rem}}
