@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300..800;1,14..32,300..800&display=swap");@tailwind base;@tailwind components;@tailwind utilities;:root{--color-primary:#0f172a;--color-secondary:#64748b;--color-accent:#4f46e5;--color-accent-hover:#4338ca;--color-accent-subtle:#eef2ff;--color-bg:#f8fafc;--color-surface:#fff;--color-border:#e2e8f0;--color-text:#0f172a;--color-muted:#64748b;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--shadow-xs:0 1px 2px 0 rgba(0,0,0,.05);--shadow-sm:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease}*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;background-color:var(--color-bg);color:var(--color-text);line-height:1.6}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;top:-40px;left:8px;background:var(--color-accent);color:#fff;padding:8px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;z-index:100;transition:top var(--transition-fast)}.skip-link:focus{top:8px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--radius-sm)}nav a[aria-current=page]{color:var(--color-accent);font-weight:600}.badge-active{background-color:#dcfce7;color:#166534}.badge-overdue{background-color:#fee2e2;color:#991b1b}.badge-returned{background-color:#f1f5f9;color:#475569}.card-hover{transition:transform var(--transition-base),box-shadow var(--transition-base)}.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skeleton{animation:none;background:#e2e8f0}}@keyframes spin{to{transform:rotate(1turn)}}.boot{min-height:100dvh;display:grid;place-items:center;padding:24px}