:root{--bg: #f6f4ef;--surface: #ffffff;--text: #1f2328;--muted: #6b7280;--border: #e7e2d8;--primary: #6d4aff;--primary-soft: #efeaff;--success: #16a34a;--success-soft: #e7f7ed;--warn: #d97706;--warn-soft: #fdf3e2;--danger: #dc2626;--radius: 14px;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #14151a;--surface: #1d1f26;--text: #e8e8ea;--muted: #9aa0aa;--border: #2c2f38;--primary: #9b84ff;--primary-soft: #2a2545;--success-soft: #16321f;--warn-soft: #3a2a12}}*{box-sizing:border-box}body,h1,h2,h3,h4{margin:0}h2{font-size:1.25rem;margin-bottom:.75rem}h3{font-size:1rem}code{background:var(--primary-soft);padding:.1em .35em;border-radius:4px}input{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font:inherit}input:focus{outline:2px solid var(--primary);outline-offset:-1px}label{display:flex;flex-direction:column;gap:.3rem;font-weight:500}.btn{padding:.55rem .9rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap;transition:transform .05s,background .15s}.btn:hover:not(:disabled){background:var(--primary-soft)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--primary)}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.success:hover:not(:disabled){filter:brightness(1.08);background:var(--success)}.btn.ghost{background:transparent;border-color:transparent}.btn.danger{color:var(--danger)}.link{background:none;border:none;color:var(--primary);cursor:pointer;font:inherit;padding:0}.no-isbn{margin-top:.6rem}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger);margin:.5rem 0 0}.success{color:var(--success)}.empty{color:var(--muted);padding:1.5rem;text-align:center;border:1px dashed var(--border);border-radius:var(--radius)}.row{display:flex;gap:.5rem;align-items:center}.row.wrap{flex-wrap:wrap}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.card.narrow{width:100%;max-width:400px}.card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.9rem;gap:.5rem}.steps{line-height:1.9;padding-left:1.2rem}.alert{display:flex;justify-content:space-between;gap:1rem;background:#fde8e8;color:#8a1c1c;padding:.75rem 1rem;border-radius:10px}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;background:color-mix(in srgb,var(--surface) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1.2rem;display:flex;gap:.4rem;align-items:center}.container{max-width:1200px;margin:0 auto;padding:1.25rem;display:flex;flex-direction:column;gap:1.75rem}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:1rem}.section-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.section-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.stat{display:flex;align-items:center;gap:.75rem}.stat-icon{font-size:1.5rem;width:2.6rem;height:2.6rem;display:grid;place-items:center;background:var(--primary-soft);border-radius:12px;flex-shrink:0}.stat-value{font-size:1.4rem;font-weight:700}.stat-label{color:var(--muted);font-size:.8rem}.chart{display:flex;gap:4px;align-items:flex-end;height:170px}.chart-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;height:100%;gap:4px}.chart-track{flex:1;width:100%;display:flex;align-items:flex-end;background:var(--primary-soft);border-radius:6px;overflow:hidden}.chart-bar{display:block;width:100%;background:var(--primary);border-radius:6px 6px 0 0;transition:height .3s}.chart-val{font-size:.65rem;color:var(--muted);height:.9rem}.chart-label{font-size:.7rem;color:var(--muted)}.preview{display:flex;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.preview img,.preview .cover-placeholder{width:90px;height:135px;object-fit:cover;border-radius:8px;flex-shrink:0}.preview-body{display:flex;flex-direction:column;gap:.4rem;min-width:0;flex:1}.preview-body input[type=number]{max-width:140px}.cover-placeholder{display:grid;place-items:center;background:var(--primary-soft);font-size:2rem;border-radius:8px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1rem}.book{display:flex;flex-direction:column;gap:.85rem}.book-top{display:flex;gap:.9rem}.cover{width:72px;height:108px;object-fit:cover;border-radius:8px;flex-shrink:0;box-shadow:var(--shadow)}.book-info{min-width:0;display:flex;flex-direction:column;gap:.25rem}.book-info h4{font-size:1rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-info p{margin:0}.badge{align-self:flex-start;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.badge.reading{background:var(--warn-soft);color:var(--warn)}.badge.finished{background:var(--success-soft);color:var(--success)}.badge.want_to_read{background:var(--primary-soft);color:var(--primary)}.progress-wrap{display:flex;flex-direction:column;gap:.35rem}.progress-wrap p{margin:0}.progress-text{display:flex;justify-content:space-between}.progress{height:8px;background:var(--primary-soft);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#b06bff);border-radius:999px;transition:width .3s}.book.finished .progress span{background:var(--success)}.actions{margin-top:auto}.tabs{display:flex;gap:.25rem;background:var(--surface);border:1px solid var(--border);padding:.25rem;border-radius:12px}.tab{border:none;background:none;padding:.4rem .8rem;border-radius:9px;cursor:pointer;font:inherit;color:var(--muted)}.tab.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.count{font-size:.75rem;opacity:.8}.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-top:.75rem}.rec{display:flex;flex-direction:column;gap:.35rem;padding:.75rem}.rec img,.rec .cover-placeholder{width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:8px}.rec strong{font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.reason{color:var(--primary);font-size:.75rem}.rec .btn{margin-top:auto;font-size:.8rem}@media (max-width: 600px){.container{padding:.9rem;gap:1.25rem}.stats{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:1.15rem}.chart-val{display:none}.rec-grid{grid-template-columns:repeat(2,1fr)}}
