@import"https://fonts.googleapis.com/css2?family=BBH+Sans+Hegarty&family=Jost:ital,wght@0,100..900;1,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";:root{--bg: #f4f4f4;--card: #fff;--accent: #1ebe24;--dark: #222}body{margin:0;font-family:Montserrat,sans-serif;background:var(--bg);color:#111}.header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--dark);color:#fff;position:sticky;top:0}.nav{display:flex;gap:12px;align-items:center}.nav a{color:#fff;text-decoration:none}.login-btn{background:var(--accent);border:none;padding:8px 12px;border-radius:8px;cursor:pointer}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:16px}.book-card{display:flex;gap:12px;padding:12px;background:var(--card);border-radius:8px;box-shadow:0 2px 6px #0000000f;align-items:flex-start}.book-card img{width:96px;height:auto;object-fit:cover;border-radius:4px}.thumb-placeholder{width:96px;height:130px;display:flex;align-items:center;justify-content:center;background:#eee;color:#666;border-radius:4px}.meta h3{margin:0 0 6px;font-size:1rem}.authors{margin:0;color:#555;font-size:.9rem}.info{margin-top:6px;font-size:.8rem;color:#777}.formats{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.format-link{font-size:.8rem;text-decoration:none;padding:4px 8px;border-radius:6px;background:#f0f0f0;color:#333}.search-form{display:flex;gap:8px;margin-bottom:12px}.search-form input{flex:1;padding:8px 10px;border-radius:8px;border:1px solid #ddd}.search-form button{padding:8px 12px;border-radius:8px;background:var(--accent);color:#fff;border:none;cursor:pointer}.pagination{display:flex;gap:12px;justify-content:center;align-items:center;margin:16px 0}.pagination button[disabled]{opacity:.5;cursor:not-allowed}.form{display:grid;gap:10px;max-width:420px}.form label{display:grid;gap:4px;font-size:14px}.form input{padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;outline:none}.form input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.btn{border:1px solid #e2e8f0;padding:8px 12px;border-radius:10px;background:#fff}.btn-primary{background:#2563eb;color:#fff!important;border-color:#2563eb;border-radius:10px;padding:8px 12px}.btn-primary:hover{background:#1e40af;border-color:#1e40af}.card{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff}.loans{display:grid;gap:12px;margin-top:10px}.loan-item{display:flex;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#fff}.loan-item img{width:50px;border-radius:6px;object-fit:cover}*{box-sizing:border-box;margin:0;padding:0}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#222;color:#fff;position:sticky;top:0;z-index:100}.logo a{color:#fff;text-decoration:none;font-size:1.5rem;font-weight:700}.nav{display:flex;align-items:center;gap:1.5rem}.nav a{color:#fff;text-decoration:none;font-size:1rem;transition:color .3s}.nav a:hover{color:#1ebe24}.mobile-profile{display:none;color:#fff}.mobile-profile a{color:#fff}@media (max-width: 768px){.header{position:fixed;inset:auto 0 0;justify-content:space-between;background:#222;padding:.8rem 2rem;border-top:1px solid #333}.logo{flex:1;text-align:center}.logo a{font-size:1.2rem}.nav{display:none}.mobile-profile{display:block;position:absolute;right:1.5rem;bottom:.9rem}}:root{--f-bg: #ffffff;--f-border: #e6e8eb;--f-text: #111827;--f-muted: #6b7280;--f-ring: #2563eb;--f-shadow: 0 6px 18px rgba(16, 24, 40, .06)}@media (prefers-color-scheme: dark){:root{--f-bg: #222222;--f-border: rgb(78, 78, 78);--f-text: #e5e7eb;--f-muted: #9ca3af;--f-ring: #60a5fa;--f-shadow: 0 6px 18px rgba(0, 0, 0, .35)}}.filters{position:relative;top:0;z-index:10;display:grid;gap:10px;grid-template-columns:1fr 180px 200px;align-items:center;padding:10px;margin:0 0 12px;background:var(--f-bg);border:1px solid var(--f-border);border-radius:14px;box-shadow:var(--f-shadow);-webkit-backdrop-filter:saturate(140%) blur(6px);backdrop-filter:saturate(140%) blur(6px)}@media (max-width: 760px){.filters{grid-template-columns:1fr;gap:8px}}.filter-input,.filter-select{appearance:none;outline:none;width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--f-border);background:var(--f-bg);color:var(--f-text);font-size:14px;line-height:1.2;transition:border-color .15s ease,box-shadow .15s ease,transform .06s ease}.filter-input::placeholder{color:var(--f-muted)}.filter-input:hover,.filter-select:hover{transform:translateY(-1px)}.filter-input:focus,.filter-select:focus{border-color:var(--f-ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--f-ring) 20%,transparent)}.filter-select{padding-right:40px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2399a1ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.book-card{position:relative;display:grid;grid-template-rows:auto 1fr;gap:12px;padding:12px 12px 60px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 4px 14px #0000000d;height:100%}.top{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:start}.thumb img,.thumb-placeholder{width:92px;aspect-ratio:3/4;object-fit:cover;border-radius:10px;background:#f1f5f9}.info{min-width:0}.title{margin:0 0 4px;font-size:16px;line-height:1.28}.title a{color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.authors{margin:0;color:#64748b;font-size:14px}.small{margin:6px 0 0;color:#94a3b8;font-size:12px}.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cat{display:block;text-align:center;font-size:13px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avail{position:absolute;left:10px;right:10px;bottom:10px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:.2px;pointer-events:none;border:2px solid transparent}.avail.available{background:#16a34a;color:#fff;border-color:#22c55e}.avail.unavailable{background:#ef4444;color:#fff;border-color:#f87171}.books-grid{display:grid;gap:18px;align-items:stretch}.books-grid>*{height:100%}.is-clickable{cursor:pointer;transition:box-shadow .18s ease,transform .18s ease}.is-clickable:hover{box-shadow:0 10px 22px #0000001a;transform:translateY(-2px)}.pagination{display:grid;gap:8px;justify-items:center;margin:12px 0}.pag-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;align-items:center}.pag-btn,.pag-num,.pag-go{border:1px solid #d1d5db;background:#fff;color:#111827;border-radius:8px;padding:6px 10px;line-height:1;cursor:pointer}.pag-btn[disabled],.pag-num[disabled]{opacity:.5;cursor:not-allowed}.pag-list{list-style:none;display:flex;gap:4px;margin:0 6px;padding:0;align-items:center}.pag-num.is-active{background:#2563eb;color:#fff;border-color:#2563eb}.pag-dots{padding:0 4px;color:#6b7280}.pag-goto{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center}.pag-input{width:90px;min-height:34px;padding:6px 8px;border-radius:8px;border:1px solid #d1d5db;outline:none}.pag-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb2e}.pag-info{color:#6b7280;font-size:.9rem}@media (max-width: 480px){.pag-row{gap:4px}.pag-list{gap:2px}.pag-input{width:74px}}.book-card.skeleton{position:relative;display:grid;grid-template-rows:auto 1fr;gap:12px;padding:12px 12px 60px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 4px 14px #0000000d;height:100%;pointer-events:none}.book-card.skeleton .top{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:start}.book-card.skeleton .thumb{width:92px}.book-card.skeleton .sk-img{width:92px;aspect-ratio:3/4;border-radius:10px;background:#eef1f6}.book-card.skeleton .sk-line{height:14px;border-radius:6px;background:#eef1f6;margin-bottom:8px}.book-card.skeleton .sk-title{height:16px;width:80%}.book-card.skeleton .sk-title.short{width:55%}.book-card.skeleton .sk-sub{height:12px;width:65%;opacity:.9}.book-card.skeleton .sk-sub.short{width:45%}.book-card.skeleton .cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.book-card.skeleton .sk-pill{height:38px;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0;display:block}.book-card.skeleton .sk-footer{position:absolute;left:10px;right:10px;bottom:10px;height:40px;border-radius:10px;background:#f1f5f9;border:2px solid #e2e8f0}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background-image:linear-gradient(90deg,#e2e8f0,#f8fafc,#e2e8f0,#f8fafc,#e2e8f0)}@media (max-width: 600px){.book-card.skeleton .top{grid-template-columns:72px 1fr}.book-card.skeleton .thumb,.book-card.skeleton .sk-img{width:72px}}@media (min-width: 900px){.book-card.skeleton{padding:12px 12px 60px}}.searchTitle{font-family:Montserrat,sans-serif;text-align:center;margin-bottom:20px}:root{--bg: #fff;--fg: #0f172a;--muted: #64748b;--brd: #e2e8f0;--ring: #2563eb}@media (prefers-color-scheme: dark){:root{--fg: #000000;--muted: #3a3a3a;--brd: #1f2937;--ring: #60a5fa}}.detail{padding:16px}.detail-header{margin-bottom:12px}.detail-body{display:grid;gap:20px;grid-template-columns:180px 1fr;align-items:start}@media (max-width: 760px){.detail-body{grid-template-columns:1fr}}.cover{width:180px;aspect-ratio:3/4;border-radius:12px;object-fit:cover;background:#e5e7eb}.kv p{margin:4px 0;color:var(--muted)}.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.badge{font-size:12px;padding:6px 10px;border:1px solid var(--brd);border-radius:999px}.section{margin-top:16px}.section h2{font-size:16px;margin:0 0 6px}.summary{color:var(--fg);line-height:1.6}.formats{display:flex;gap:8px;flex-wrap:wrap}.format-link{font-size:13px;border:1px dashed var(--brd);padding:6px 10px;border-radius:8px}.btn{border:1px solid var(--brd);background:var(--bg);color:var(--fg);padding:8px 12px;border-radius:10px;cursor:pointer;transition:background-color .3s ease-in-out}.btn:hover{background:#c4c4c5}.btn:focus-visible{outline:3px solid color-mix(in oklab,var(--ring) 25%,transparent)}.sk{position:relative;overflow:hidden;background:#e9ecef;border-radius:10px}.sk:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:sh 1.2s infinite}@keyframes sh{to{transform:translate(100%)}}.sk-cover{width:180px;aspect-ratio:3/4}.sk-back{width:80px;height:32px;border-radius:8px}.sk-line{height:14px;width:65%;margin:8px 0}.sk-line.lg{height:18px;width:80%}.sk-line.sm{height:10px;width:40%}.sk-chip-row{display:flex;gap:8px;margin-top:6px}.sk-chip{width:80px;height:24px;border-radius:999px}.sk-btn-row{display:flex;gap:8px;margin-top:10px}.sk-btn{width:120px;height:36px;border-radius:10px}.auth-page{min-height:calc(100vh - 60px);display:flex;justify-content:center;align-items:center;background:#f8fafc;padding:20px}.auth-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 6px 20px #0000000f;padding:32px;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:stretch}.auth-title{text-align:center;font-size:28px;margin-bottom:20px}.auth-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:20px}.tab-btn{flex:1;border:1px solid #e2e8f0;background:#f8fafc;color:#1e293b;padding:10px 0;border-radius:8px;font-weight:500;transition:all .2s ease;cursor:pointer}.tab-btn:hover{background:#e2e8f0}.tab-btn.active{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:4px;font-size:14px}.auth-form input{padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;outline:none}.auth-form input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.auth-msg{color:#dc143c;text-align:center;margin-bottom:10px}.btn.primary{background:#2563eb;color:#fff;border:none;border-radius:8px;padding:10px;font-weight:500;transition:background .2s;cursor:pointer}.btn.primary:hover{background:#1d4ed8}.btn.primary:disabled{background:#93c5fd;cursor:not-allowed}
