:root{--bg:#f7f5f2;--surface:#fff;--border:#e3ddd3;--text:#2b2620;--text-muted:#7a7166;--brand:#7a4f2b;--brand-dark:#5e3b1f;--danger:#b3413a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:6px;padding:.5rem 1rem;font-family:inherit;font-size:.95rem;transition:background .15s,box-shadow .15s,transform .1s}button:hover{background:var(--brand-dark);box-shadow:0 2px 10px #7a4f2b40}button:active{transform:translateY(1px)}button.danger{border-color:var(--danger);color:var(--danger);background:0 0}button.danger:hover{background:var(--danger);color:#fff}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.5rem .6rem;font-family:inherit;font-size:.95rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.navbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:2rem;padding:.9rem 2rem;display:flex;position:relative}.navbar-top{align-items:center;gap:1rem;display:flex}.navbar-brand{white-space:nowrap;font-size:1.1rem;font-weight:700}.navbar-toggle{background:0 0;border:none;flex-direction:column;justify-content:center;gap:4px;margin-left:auto;padding:.5rem;display:none}.navbar-toggle span{background:var(--text);border-radius:2px;width:22px;height:2px;display:block}.navbar-links{flex:1;align-items:center;gap:1.25rem;display:flex}.navbar-links a{color:var(--text-muted);transition:color .15s}.navbar-links a:hover{color:var(--text)}.navbar-links a.active{color:var(--brand);font-weight:600}.navbar-avatar{background:var(--brand);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:700;display:inline-flex}.navbar-user{color:var(--text-muted);align-items:center;gap:.75rem;margin-left:auto;font-size:.9rem;display:flex}.navbar-user button{padding:.35rem .75rem;font-size:.85rem}.app-main{max-width:1100px;margin:0 auto;padding:1.5rem 2rem 4rem}.page-header{align-items:baseline;gap:.75rem;margin-bottom:1rem;display:flex}.hint{color:var(--text-muted);font-size:.9rem}.error-message{color:var(--danger);background:#fbe9e7;border-radius:6px;padding:.5rem .75rem;font-size:.9rem}.auth-page{justify-content:center;padding:4rem 1rem;display:flex}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.9rem;width:100%;max-width:360px;padding:2rem;display:flex}.auth-form h1{text-align:center;margin:0 0 .25rem}.auth-form h2{text-align:center;color:var(--text-muted);margin:0 0 .5rem;font-size:1rem;font-weight:500}.auth-form label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.auth-switch{text-align:center;color:var(--text-muted);font-size:.85rem}.auth-switch a{color:var(--brand);font-weight:600}.filters{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.filters input[type=search]{flex:1;min-width:220px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.25rem;display:grid}.book-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.book-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000014}.book-cover{aspect-ratio:2/3;background:#ece6dd}.book-cover img{object-fit:cover;width:100%;height:100%;display:block}.book-cover-placeholder{width:100%;height:100%;color:var(--text-muted);text-align:center;justify-content:center;align-items:center;padding:.5rem;font-size:.8rem;display:flex}.book-card-body{flex-direction:column;gap:.4rem;padding:.75rem;display:flex}.book-card-body h3{margin:0;font-size:.95rem;line-height:1.3}.book-author{color:var(--text-muted);margin:0;font-size:.85rem}.status-badge{border-radius:999px;align-self:flex-start;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.status-unread{color:#8a6a2e;background:#f0e6d8}.status-reading{color:#2e5c8a;background:#dde8f5}.status-read{color:#2e7a3c;background:#dfeee0}.book-categories{flex-wrap:wrap;gap:.3rem;display:flex}.category-tag{color:var(--text-muted);background:#eee7dc;border-radius:999px;padding:.1rem .5rem;font-size:.7rem}.category-picker{flex-wrap:wrap;gap:.6rem;display:flex}.category-chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.85rem;display:flex}.book-form,.inline-form{flex-direction:column;gap:1rem;max-width:640px;display:flex}.inline-form{flex-direction:row;max-width:480px;margin-bottom:1rem}.inline-form input{flex:1}.book-form label{color:var(--text-muted);flex-direction:column;flex:1;gap:.3rem;font-size:.9rem;display:flex}.form-row{gap:1rem;display:flex}.isbn-row{gap:.5rem;display:flex}.isbn-row input{flex:1;min-width:0}.isbn-row button{white-space:nowrap;padding:.5rem .7rem;font-size:.85rem}.field-block{flex-direction:column;gap:.4rem;display:flex}.field-label{color:var(--text-muted);font-size:.9rem}.cover-preview{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:120px;height:160px;margin-bottom:.4rem}.back-link{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem;display:inline-block}.book-detail{flex-wrap:wrap;gap:2.5rem;display:flex}.book-detail-covers{gap:1rem;display:flex}.cover-block{flex-direction:column;gap:.4rem;display:flex}.cover-block img,.cover-block .book-cover-placeholder{object-fit:cover;border:1px solid var(--border);background:#ece6dd;border-radius:8px;width:180px;height:260px}.book-detail-info{flex-direction:column;flex:1;gap:.6rem;min-width:260px;display:flex}.book-detail-info h1{margin:0}.book-meta{grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:.5rem 0;display:grid}.book-meta dt{color:var(--text-muted);font-size:.85rem}.book-meta dd{margin:0;font-size:.85rem}.book-description{line-height:1.5}.book-actions{gap:.75rem;margin-top:.5rem;display:flex}.category-list{flex-direction:column;gap:.5rem;max-width:480px;padding:0;list-style:none;display:flex}.category-list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:.6rem .9rem;display:flex}.category-list button{padding:.25rem .6rem;font-size:.8rem}.page-loading{text-align:center;color:var(--text-muted);padding:3rem}.image-capture-field{flex-direction:column;flex:1;gap:.4rem;display:flex}.cover-preview-empty{color:var(--text-muted);text-align:center;background:#ece6dd;justify-content:center;align-items:center;font-size:.8rem;display:flex}.image-capture-actions{gap:.5rem;display:flex}.image-capture-actions button{color:var(--brand);background:0 0;padding:.35rem .7rem;font-size:.8rem}.image-capture-actions button:hover{background:var(--brand);color:#fff}.description-header{justify-content:space-between;align-items:center;display:flex}.link-button{color:var(--brand);background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.link-button:hover{color:var(--brand-dark);background:0 0}.modal-overlay{z-index:1000;background:#14100a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border-radius:10px;flex-direction:column;gap:1rem;width:100%;max-width:480px;padding:1.5rem;display:flex}.modal-content h2{margin:0;font-size:1.1rem}.modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.camera-preview{transform-origin:50%;background:#111;border-radius:8px;width:100%;display:block}.scanner-frame{border-radius:8px;position:relative;overflow:hidden}.scanner-guide{pointer-events:none;border:2px solid #fff;border-radius:6px;height:22%;position:absolute;top:50%;left:8%;right:8%;transform:translateY(-50%);box-shadow:0 0 0 999px #00000059}.zoom-control{align-items:center;gap:.6rem;font-size:1rem;display:flex}.zoom-control input[type=range]{flex:1}.zoom-control .hint{text-align:right;min-width:2.5rem}.crop-modal .crop-area{background:#222;border-radius:8px;width:100%;height:320px;position:relative;overflow:hidden}.cover-clickable{cursor:zoom-in;transition:opacity .15s}.cover-clickable:hover{opacity:.85}.lightbox-overlay{z-index:2000;cursor:zoom-out;background:#0a0805e6;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-close{color:#fff;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;line-height:1;display:flex;position:absolute;top:1.25rem;right:1.5rem}.lightbox-close:hover{background:#fff3}.lightbox-viewport{cursor:default;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.lightbox-image{object-fit:contain;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:4px;max-width:90vw;max-height:80vh;transition:transform 50ms}.lightbox-hint{color:#ffffffb3;text-align:center;margin:.75rem 0 0;padding:0 1rem;font-size:.8rem}@media (width<=768px){.navbar{flex-direction:column;align-items:stretch;gap:0;padding:.75rem 1rem}.navbar-top{justify-content:space-between}.navbar-toggle{display:flex}.navbar-links{flex-direction:column;align-items:stretch;gap:0;padding-top:.5rem;display:none}.navbar-links.open{display:flex}.navbar-links a{border-top:1px solid var(--border);padding:.7rem .25rem}.navbar-user{border-top:1px solid var(--border);justify-content:space-between;margin-left:0;padding:.7rem .25rem .25rem}.app-main{padding:1rem 1rem 3rem}.auth-page{padding:2rem 1rem}.auth-form{padding:1.5rem}.filters{flex-direction:column;align-items:stretch}.filters input[type=search]{min-width:0}.filters select{width:100%}.book-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.9rem}.form-row{flex-direction:column;gap:1rem}.isbn-row{flex-wrap:wrap}.isbn-row input{flex-basis:100%}.inline-form{flex-direction:column;align-items:stretch;max-width:none}.book-detail{gap:1.5rem}.book-detail-covers{flex-wrap:wrap;gap:.75rem}.cover-block img,.cover-block .book-cover-placeholder{width:130px;height:190px}.book-actions{flex-wrap:wrap}.modal-content{max-height:90vh;padding:1.25rem;overflow-y:auto}.crop-modal .crop-area{height:55vh;max-height:320px}.image-capture-actions{flex-wrap:wrap}.category-list li{flex-wrap:wrap;gap:.5rem}}@media (width<=420px){.book-grid{grid-template-columns:repeat(2,1fr);gap:.7rem}}.admin-section{max-width:640px;margin-bottom:2.5rem}.admin-section h2{margin-bottom:.25rem}.admin-family-list{flex-direction:column;gap:.5rem;margin-top:1rem;padding:0;list-style:none;display:flex}.admin-family-list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:.6rem .9rem;display:flex}.admin-family-list button{padding:.25rem .6rem;font-size:.8rem}.admin-user-table{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.admin-user-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.75rem;padding:.6rem .9rem;display:flex}.admin-user-info{flex-direction:column;flex:1;min-width:0;display:flex}.admin-user-info strong{font-size:.9rem}.admin-user-controls{gap:.5rem;display:flex}.admin-user-row select{padding:.35rem .5rem;font-size:.85rem}@media (width<=768px){.admin-user-row{flex-direction:column;align-items:stretch;gap:.6rem}.admin-user-info{width:100%}.admin-user-row select{flex:1;min-width:0}}.spinner{border:2px solid var(--border);border-top-color:var(--brand);vertical-align:middle;border-radius:50%;width:16px;height:16px;margin-right:.5rem;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:12px;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1.5rem;display:flex}.empty-state-icon{font-size:2.5rem}.empty-state p{margin:0}
