:root{--color-primary:#5856d6;--color-primary-hover:#4745b5;--color-text:#333;--color-text-secondary:#666;--color-border:#ddd;--color-bg:#fff;--color-bg-card:#fff;--color-success:#34c759;--color-warning:#ff9500;--color-danger:#ff3b30;--color-danger-hover:#d92d24;--color-error-bg:#fff5f5;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--border-radius:4px;--shadow:0 1px 3px #0000001a;--modal-overlay-bg:#00000080;--modal-shadow:0 4px 12px #00000026}@media (prefers-color-scheme:dark){:root{--color-primary:#8f8cf2;--color-primary-hover:#a9a6f7;--color-text:#ece8f2;--color-text-secondary:#9b93ab;--color-border:#322e3c;--color-bg:#141319;--color-bg-card:#221f2a;--color-error-bg:#3a1f2a;--shadow:0 1px 3px #0006;--modal-overlay-bg:#000000b3;--modal-shadow:0 12px 30px #0000008c}}*{box-sizing:border-box}html{overflow-x:hidden}body{color:var(--color-text);background-color:var(--color-bg);max-width:100vw;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:14px;line-height:1.5;overflow-x:hidden}#app{min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md) 0;color:var(--color-text);font-weight:600}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin:0 0 var(--spacing-md) 0}button,.btn{padding:var(--spacing-sm) var(--spacing-md);text-align:center;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-bg-card);color:var(--color-text);font-size:14px;font-weight:500;line-height:1.5;text-decoration:none;transition:all .15s;display:inline-block}button:hover,.btn:hover{background-color:var(--color-bg);border-color:var(--color-text-secondary)}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:12px}button.text-link{color:var(--color-primary);text-underline-offset:3px;background:0 0;border:none;border-radius:0;padding:0;text-decoration:underline}button.text-link:hover:not(:disabled){color:var(--color-primary-hover)}input,select,textarea{width:100%;min-width:0;max-width:100%;padding:var(--spacing-sm);color:var(--color-text);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);font-family:inherit;font-size:16px;line-height:1.5;transition:border-color .15s;display:block}input[type=date],input[type=datetime-local],input[type=time]{-webkit-appearance:none;width:100%;min-width:0;max-width:100%}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none}label{margin-bottom:var(--spacing-xs);color:var(--color-text);font-weight:500;display:block}.form-group{margin-bottom:var(--spacing-md);min-width:0}.form-row{gap:var(--spacing-md);width:100%;display:flex}.form-row .form-group{flex:1;min-width:0}.card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--spacing-lg);margin-bottom:var(--spacing-md)}.container{max-width:1200px;padding:var(--spacing-lg);margin:0 auto;overflow-x:hidden}.container-narrow{max-width:600px;padding:var(--spacing-lg);margin:0 auto}.text-center{text-align:center}.text-muted{color:var(--color-text-secondary)}.text-small{font-size:12px}.mt-1{margin-top:var(--spacing-md)}.mt-2{margin-top:var(--spacing-lg)}.mb-1{margin-bottom:var(--spacing-md)}.mb-2{margin-bottom:var(--spacing-lg)}.modal-overlay{background-color:var(--modal-overlay-bg);z-index:1000;padding:var(--spacing-sm);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--color-bg-card);border-radius:var(--border-radius);box-shadow:var(--modal-shadow);max-width:600px;width:min(600px, calc(100vw - 2 * var(--spacing-sm)));max-height:90vh;margin:0 auto;overflow:hidden auto}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h3{margin:0}.modal-body{padding:var(--spacing-lg);width:100%;max-width:100%;overflow-x:hidden}.modal-body form{width:100%}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--spacing-sm);display:flex}.loading{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.error{color:var(--color-danger);background-color:var(--color-error-bg);border:1px solid var(--color-danger);border-radius:var(--border-radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.pagination{justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);display:flex}.pagination button{padding:var(--spacing-sm) var(--spacing-md)}@media (width<=768px){.container{padding:var(--spacing-md) var(--spacing-md)}.form-row{flex-direction:column}}@media (width<=600px){.modal-overlay{padding:var(--spacing-sm);align-items:flex-start}.modal{width:calc(100vw - 2 * var(--spacing-sm));max-width:calc(100vw - 2 * var(--spacing-sm));border-radius:0}}@media (width<=480px){.container{padding:var(--spacing-md) var(--spacing-md)}}.nav-button[data-v-5fa52ab5]{color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:none;border-radius:999px;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:8px 6px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.nav-button svg[data-v-5fa52ab5-s]{width:20px;height:20px}.nav-button-label[data-v-5fa52ab5]{line-height:1}.nav-button[data-v-5fa52ab5]:hover:not(.active){color:var(--color-text)}.nav-button.active[data-v-5fa52ab5]{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}@media (width>=769px){.nav-button[data-v-5fa52ab5]{flex-direction:row;flex:none;gap:7px;padding:8px 16px;font-size:14px}.nav-button svg[data-v-5fa52ab5-s]{width:16px;height:16px}}.library-nav[data-v-c488bd0c]{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));background:var(--color-bg-card);border:1px solid var(--color-border);width:min(92vw,420px);box-shadow:var(--modal-shadow);z-index:30;border-radius:999px;gap:6px;padding:6px;display:flex;position:fixed;transform:translate(-50%)}.hide-on-mobile[data-v-c488bd0c]{display:none}@media (width>=769px){.library-nav[data-v-c488bd0c]{width:auto;box-shadow:none;background:0 0;border:none;border-radius:0;justify-content:flex-start;gap:4px;margin:0;padding:0;display:flex;position:static;transform:none}}.navbar[data-v-c488bd0c]{background-color:var(--color-bg);border-bottom:1px solid var(--color-border);z-index:200;width:100%;position:relative;overflow:visible}.navbar-content[data-v-c488bd0c]{max-width:1200px;padding:var(--spacing-md) var(--spacing-lg);justify-content:space-between;align-items:center;margin:0 auto;display:flex;overflow:visible}.navbar-left[data-v-c488bd0c]{align-items:center;gap:var(--spacing-xl);display:flex}.navbar-right[data-v-c488bd0c]{align-items:center;gap:var(--spacing-lg);display:flex}.navbar-brand[data-v-c488bd0c]{align-items:center;gap:var(--spacing-sm);letter-spacing:.5px;color:var(--color-text);text-transform:uppercase;font-size:1.125rem;font-weight:700;text-decoration:none;display:flex}.navbar-icon[data-v-c488bd0c]{width:24px;height:24px;color:var(--color-primary)}.navbar-user[data-v-c488bd0c]{align-items:center;display:flex;position:relative}.btn-add[data-v-c488bd0c]{padding:var(--spacing-sm) var(--spacing-lg);font-weight:600}.menu-toggle[data-v-c488bd0c]{cursor:pointer;border-radius:var(--border-radius);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;padding:6px;transition:background-color .15s;display:inline-flex}.menu-toggle[data-v-c488bd0c]:hover{background-color:var(--color-bg)}.menu-toggle span[data-v-c488bd0c]{background-color:var(--color-text);border-radius:999px;width:18px;height:2px;display:block}.menu-backdrop[data-v-c488bd0c]{z-index:10;background:0 0;position:fixed;inset:0}.menu-panel[data-v-c488bd0c]{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);z-index:11;min-width:160px;padding:var(--spacing-xs);position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 30px #0000001f}.menu-item[data-v-c488bd0c]{text-align:left;width:100%;color:var(--color-text);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .15s;display:block}.menu-item[data-v-c488bd0c]:hover{background-color:var(--color-bg)}@media (width<=768px){.navbar-content[data-v-c488bd0c]{gap:var(--spacing-sm);padding:var(--spacing-md);flex-wrap:nowrap}.navbar-left[data-v-c488bd0c]{gap:var(--spacing-sm);flex:0 auto;min-width:0}.navbar-right[data-v-c488bd0c]{gap:var(--spacing-sm);flex:none}.btn-add[data-v-c488bd0c]{padding:var(--spacing-xs) var(--spacing-sm);white-space:nowrap;font-size:13px}.menu-toggle[data-v-c488bd0c]{width:32px;height:32px;padding:5px}.menu-toggle span[data-v-c488bd0c]{width:16px}}.search-section[data-v-4c75c98c]{margin-bottom:var(--spacing-lg)}.search-description[data-v-4c75c98c]{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:14px}.search-input-group[data-v-4c75c98c]{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.search-input[data-v-4c75c98c]{flex:1}.results-section[data-v-4c75c98c]{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.results-section h4[data-v-4c75c98c]{margin:0 0 var(--spacing-md) 0;color:var(--color-text)}.results-list[data-v-4c75c98c]{gap:var(--spacing-md);flex-direction:column;display:flex}.result-item[data-v-4c75c98c]{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);display:flex}.result-content[data-v-4c75c98c]{gap:var(--spacing-md);flex:1;min-width:0;display:flex}.book-thumbnail[data-v-4c75c98c],.book-thumbnail-placeholder[data-v-4c75c98c]{border-radius:var(--border-radius);flex-shrink:0;width:80px;height:auto}.book-thumbnail[data-v-4c75c98c]{display:block}.book-thumbnail-placeholder[data-v-4c75c98c]{aspect-ratio:2/3;background-color:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex}.book-info[data-v-4c75c98c]{flex:1;min-width:0}.book-title[data-v-4c75c98c]{color:var(--color-text);margin:0 0 4px;font-size:16px}.book-author[data-v-4c75c98c]{color:var(--color-text-secondary);margin:0 0 8px;font-size:14px}.book-details[data-v-4c75c98c]{gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:8px;display:flex}.detail[data-v-4c75c98c]{color:var(--color-text-secondary);background-color:var(--color-bg);border-radius:4px;padding:2px 8px;font-size:12px}.book-description[data-v-4c75c98c]{color:var(--color-text-secondary);margin:0;font-size:13px;line-height:1.4}.btn-select[data-v-4c75c98c]{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:#fff;border-radius:var(--border-radius);cursor:pointer;border:none;flex-shrink:0;height:fit-content;font-size:14px}.btn-select[data-v-4c75c98c]:hover{opacity:.9}.empty-state[data-v-4c75c98c]{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}@media (width<=768px){.search-input-group[data-v-4c75c98c]{flex-direction:column}.search-input-group button[data-v-4c75c98c]{width:100%}.result-content[data-v-4c75c98c]{flex-direction:column}.result-item[data-v-4c75c98c]{flex-direction:column;width:100%}.results-list[data-v-4c75c98c]{overflow-x:hidden}.btn-select[data-v-4c75c98c]{width:100%}}.cover-grid[data-v-09b3bf7a]{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));max-height:60vh;display:grid;overflow-y:auto}.cover-tile[data-v-9fee233a]{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;text-align:left;flex-direction:column;gap:6px;padding:6px;transition:border-color .15s,transform .15s;display:flex}.cover-tile[data-v-9fee233a]:hover{border-color:var(--color-primary);transform:translateY(-2px)}.cover-tile img[data-v-9fee233a]{aspect-ratio:2/3;object-fit:cover;background-color:var(--color-bg);border-radius:4px;width:100%}.cover-caption[data-v-9fee233a]{flex-direction:column;gap:2px;font-size:12px;display:flex}.search-fields[data-v-772068ca]{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.search-fields input[data-v-772068ca]:nth-child(3),.search-fields button[data-v-772068ca]{grid-column:span 2}.cover-tile[data-v-772068ca] .cover-caption{min-height:2.4em}.cover-title[data-v-772068ca]{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cover-author[data-v-772068ca]{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty-state[data-v-772068ca]{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}@media (width<=768px){.search-fields[data-v-772068ca]{grid-template-columns:1fr}.search-fields input[data-v-772068ca]:nth-child(3),.search-fields button[data-v-772068ca]{grid-column:span 1}}.mode-hint[data-v-498f8b8b]{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:.9rem}.cover-size[data-v-498f8b8b]{color:var(--color-text);font-weight:600}.cover-meta[data-v-498f8b8b]{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quality.exact[data-v-498f8b8b]{color:var(--color-success,#2a9d4a);font-weight:600}.quality.likely[data-v-498f8b8b]{color:var(--color-text-secondary)}.empty-state[data-v-498f8b8b]{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.upload-tab[data-v-79278fa7]{gap:var(--spacing-sm);flex-direction:column;display:flex}.dropzone[data-v-79278fa7]{padding:var(--spacing-xl);border:1px dashed var(--color-border);border-radius:var(--border-radius);background-color:var(--color-bg-card);cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:border-color .15s;display:flex}.dropzone[data-v-79278fa7]:hover,.dropzone.drag-active[data-v-79278fa7]{border-color:var(--color-primary)}.dropzone.drag-active[data-v-79278fa7]{background-color:var(--color-bg)}.dropzone input[data-v-79278fa7]{display:none}.dropzone-title[data-v-79278fa7]{color:var(--color-text);font-weight:600}.dropzone-hint[data-v-79278fa7]{color:var(--color-text-secondary);font-size:.85rem}.or-divider[data-v-79278fa7]{align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:.85rem;display:flex}.or-divider[data-v-79278fa7]:before,.or-divider[data-v-79278fa7]:after{content:"";background-color:var(--color-border);flex:1;height:1px}.url-row[data-v-79278fa7]{gap:var(--spacing-sm);display:flex}.cover-search-links[data-v-79278fa7]{gap:var(--spacing-sm);flex-wrap:wrap;font-size:.9rem;display:flex}.cover-search-links a[data-v-79278fa7]{color:var(--color-primary);text-decoration:underline}.url-row input[data-v-79278fa7]{flex:1;min-width:0}.mode-hint[data-v-79278fa7]{color:var(--color-text-secondary);font-size:.9rem}.tabs[data-v-15adbc72]{gap:var(--spacing-xs);padding:0 var(--spacing-md);border-bottom:1px solid var(--color-border);display:flex}.tab[data-v-15adbc72]{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-size:.9rem}.tab[data-v-15adbc72]:hover{color:var(--color-text)}.tab.active[data-v-15adbc72]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.cover-row[data-v-c19313ba]{gap:var(--spacing-md);align-items:flex-start;display:flex}.cover-preview[data-v-c19313ba]{aspect-ratio:2/3;border-radius:var(--border-radius);background-color:var(--color-bg);border:1px solid var(--color-border);width:120px;color:var(--color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex;overflow:hidden}.cover-preview img[data-v-c19313ba]{object-fit:cover;width:100%;height:100%}.cover-actions[data-v-c19313ba]{gap:var(--spacing-sm);flex-direction:column;flex:1;min-width:0;display:flex}.cover-status[data-v-c19313ba]{color:var(--color-text-secondary);font-size:.9rem}.cover-buttons[data-v-c19313ba]{gap:var(--spacing-sm);display:flex}fieldset[data-v-264ffec8]{border:0;min-width:0;margin:0;padding:0}.form-actions[data-v-cdff2c55]{justify-content:flex-end;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);flex-wrap:wrap;display:flex}.page-header[data-v-a8d805d4]{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex}.mode-tabs[data-v-a8d805d4]{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);display:flex}.mode-tab[data-v-a8d805d4]{padding:var(--spacing-sm) 0;color:var(--color-text-secondary);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0}.mode-tab[aria-selected=true][data-v-a8d805d4]{border-bottom-color:var(--color-primary);color:var(--color-primary)}.mode-tab[data-v-a8d805d4]:hover:not(:disabled){color:var(--color-primary);background:0 0}.mode-tab[data-v-a8d805d4]:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.kebab-button[data-v-c962f25e]{width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:flex}.kebab-button[data-v-c962f25e]:hover,.kebab-button[data-v-c962f25e]:focus-visible{background:var(--color-bg);color:var(--color-text);outline:none}.kebab-button svg[data-v-c962f25e]{fill:currentColor}.book-meta[data-v-d7fcc305]{gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.meta-item[data-v-d7fcc305]{color:var(--color-text-secondary);word-break:break-word;overflow-wrap:anywhere;font-size:12px}.meta-item strong[data-v-d7fcc305]{color:var(--color-text)}.book-shelf[data-v-f83918ca]{margin-bottom:var(--spacing-sm);align-items:center;gap:var(--spacing-sm);display:flex}.book-shelf-label[data-v-f83918ca]{color:var(--color-text-secondary);font-size:14px}.book-shelf-pill[data-v-f83918ca]{border:1px solid var(--color-border);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600}.book-dates[data-v-f83918ca]{padding-top:var(--spacing-sm);gap:var(--spacing-md);flex-wrap:wrap;display:flex}@media (width<=768px){.book-shelf[data-v-f83918ca]{flex-direction:column;align-items:flex-start}}.book-card[data-v-1a8e563a]{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);transition:box-shadow .15s;position:relative;overflow:hidden}.card-menu-button[data-v-1a8e563a]{z-index:2;position:absolute;top:8px;right:16px}.book-card[data-v-1a8e563a]:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.book-content[data-v-1a8e563a]{gap:var(--spacing-lg);display:flex}.book-cover-link[data-v-1a8e563a]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;text-decoration:none;display:block}.book-title-link[data-v-1a8e563a]{color:inherit;text-decoration:none;display:block}.book-cover[data-v-1a8e563a],.book-cover-placeholder[data-v-1a8e563a]{border-radius:var(--border-radius);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;flex-shrink:0;width:120px;height:auto}.book-cover[data-v-1a8e563a]{display:block}.book-cover-clickable[data-v-1a8e563a]{cursor:pointer;transition:transform .15s,box-shadow .15s}.book-cover-clickable[data-v-1a8e563a]:hover{transform:scale(1.02);box-shadow:0 4px 8px #0003}.book-cover-placeholder[data-v-1a8e563a]{aspect-ratio:2/3;background-color:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex}.book-details[data-v-1a8e563a]{flex:1;min-width:0}.book-header[data-v-1a8e563a]{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:flex-start;padding-right:44px;display:flex}.book-header h3[data-v-1a8e563a]{word-break:break-word;flex:1;margin:0;font-size:1.25rem}.book-title-clickable[data-v-1a8e563a]{cursor:pointer;transition:color .15s}.book-title-clickable[data-v-1a8e563a]:hover{color:var(--color-primary)}.book-author[data-v-1a8e563a]{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);word-break:break-word;font-size:14px}.book-description[data-v-1a8e563a]{margin-bottom:var(--spacing-md);color:var(--color-text);word-break:break-word;overflow-wrap:anywhere;line-height:1.6}@media (width<=768px){.book-content[data-v-1a8e563a]{flex-direction:column}.book-cover[data-v-1a8e563a],.book-cover-placeholder[data-v-1a8e563a]{width:100%;height:auto}.book-header[data-v-1a8e563a]{flex-direction:column}}.ctx-backdrop[data-v-0b057924]{z-index:1000;position:fixed;inset:0}.ctx-menu[data-v-0b057924]{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);flex-direction:column;min-width:168px;padding:6px 0;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 30px #0003}.ctx-item[data-v-0b057924]{text-align:left;width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:0;padding:10px 12px;font-size:.95rem;font-weight:500;transition:background .12s}.ctx-item[data-v-0b057924]:hover,.ctx-item[data-v-0b057924]:focus-visible{background:color-mix(in srgb, var(--color-primary) 16%, var(--color-bg-card));outline:none}.ctx-item-danger[data-v-0b057924]{color:var(--color-danger,#c0392b)}.ctx-item[data-v-0b057924]:disabled{opacity:.5;cursor:default}.grid-item[data-v-87aa1c3c]{flex-direction:column;justify-content:flex-end;width:100%;min-width:0;max-width:100%;display:flex;overflow:visible}.grid-cover-link[data-v-87aa1c3c]{cursor:grab;text-align:left;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;background:0 0;border:none;width:100%;padding:0;text-decoration:none;display:block;position:relative}.grid-cover[data-v-87aa1c3c]{border-radius:var(--border-radius);cursor:pointer;width:100%;max-width:100%;height:auto;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;touch-action:manipulation;transition:transform .2s;display:block}.grid-cover[data-v-87aa1c3c]:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0003}.grid-cover-placeholder[data-v-87aa1c3c]{aspect-ratio:2/3;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;width:100%;max-width:100%;box-shadow:var(--shadow);padding:var(--spacing-md);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;justify-content:center;align-items:center;transition:transform .2s;display:flex;overflow:hidden}.grid-cover-placeholder[data-v-87aa1c3c]:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0003}.grid-no-cover-text[data-v-87aa1c3c]{text-align:center;color:var(--color-text);word-break:break-word;-webkit-line-clamp:8;line-clamp:8;-webkit-box-orient:vertical;max-height:100%;font-size:14px;font-weight:500;line-height:1.4;display:-webkit-box;overflow:hidden}.grid-rating-badge[data-v-87aa1c3c],.grid-progress-badge[data-v-87aa1c3c]{z-index:2;color:#fff;letter-spacing:.02em;pointer-events:none;background:#14181fd9;border-radius:999px;padding:4px 7px;font-size:12px;font-weight:700;transition:transform .2s,box-shadow .2s;position:absolute;bottom:6px;right:6px;box-shadow:0 4px 10px #00000040}.grid-rating-badge[data-v-87aa1c3c]{top:6px;bottom:auto}.grid-cover-link:hover .grid-progress-badge[data-v-87aa1c3c]{transform:translateY(-4px);box-shadow:0 8px 16px #00000040}.view-toggle[data-v-925e6a8b]{border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-bg-card);gap:0;display:flex;overflow:hidden}.view-btn[data-v-925e6a8b]{padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;min-width:34px;min-height:30px;transition:all .15s;display:flex;position:relative}.view-btn[data-v-925e6a8b]:not(:last-child):after{content:"";background-color:var(--color-border);width:1px;height:60%;position:absolute;top:50%;right:0;transform:translateY(-50%)}.view-btn[data-v-925e6a8b]:hover:not(.active){color:var(--color-text);background-color:var(--color-bg)}.view-btn.active[data-v-925e6a8b]{background-color:var(--color-primary);color:#fff}.view-btn.active[data-v-925e6a8b]:after{display:none}.view-btn.active[data-v-925e6a8b]:hover{background-color:var(--color-primary-hover);color:#fff}.book-shelf-header[data-v-a1b6d470]{align-items:center;gap:var(--spacing-sm);min-height:30px;margin-bottom:var(--spacing-sm);display:flex}.shelf-view-toggle[data-v-a1b6d470]{margin-left:auto}.book-shelf-title[data-v-a1b6d470]{color:var(--color-text);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:700}.shelf-collapse-toggle[data-v-a1b6d470]{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;background:0 0;border:none;display:flex}.shelf-collapse-toggle[data-v-a1b6d470]:hover{color:var(--color-primary);background:0 0}.shelf-collapse-toggle[data-v-a1b6d470]:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.shelf-chevron[data-v-a1b6d470]{flex-shrink:0}.shelf-chevron.expanded[data-v-a1b6d470]{transform:rotate(90deg)}.books-container[data-v-a1b6d470]{overflow:clip visible}.books-list[data-v-a1b6d470]{flex-direction:column;display:flex}.books-grid[data-v-a1b6d470]{width:100%;max-width:100%;padding-top:6px;padding-bottom:var(--spacing-sm);grid-template-columns:repeat(auto-fill,120px);align-items:center;gap:1.25rem;display:grid;overflow:visible}.books-grid[data-v-a1b6d470] .sortable-ghost .grid-cover,.books-grid[data-v-a1b6d470] .sortable-ghost .grid-cover-placeholder,.books-grid[data-v-a1b6d470] .sortable-chosen .grid-cover,.books-grid[data-v-a1b6d470] .sortable-chosen .grid-cover-placeholder,.books-grid[data-v-a1b6d470] .sortable-drag .grid-cover,.books-grid[data-v-a1b6d470] .sortable-drag .grid-cover-placeholder{box-shadow:var(--shadow);transform:none}@media (width<=480px){.books-grid[data-v-a1b6d470]{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}}.grid-ghost[data-v-a1b6d470]{opacity:0}.grid-drag[data-v-a1b6d470],.grid-chosen[data-v-a1b6d470]{opacity:1!important}.infinite-sentinel[data-v-a1b6d470]{padding:var(--spacing-lg) 0;justify-content:center;align-items:center;min-height:48px;display:flex}.infinite-loading[data-v-a1b6d470]{color:var(--color-text-secondary);font-size:14px}.search-header[data-v-139c4da7]{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--border-radius);align-items:center;max-width:100%;display:flex;overflow:visible}.search-bar[data-v-139c4da7]{align-items:center;gap:var(--spacing-sm);min-width:0;max-width:500px;padding:var(--spacing-sm) var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:#ffffff0a;flex:auto;transition:border-color .15s,box-shadow .15s;display:flex}.search-bar[data-v-139c4da7]:hover{border-color:var(--color-text-secondary)}.search-bar[data-v-139c4da7]:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 1px #5856d659}.search-icon[data-v-139c4da7]{color:var(--color-text-secondary);flex-shrink:0}.search-input[data-v-139c4da7]{background:0 0;border:none;flex:1;padding:0}.search-input[data-v-139c4da7]:focus{border:none;outline:none}@media (width<=768px){.search-bar[data-v-139c4da7]{max-width:100%}}.go-to-top[data-v-617bd563]{right:var(--spacing-md);bottom:calc(96px + env(safe-area-inset-bottom));z-index:40;align-items:center;gap:var(--spacing-sm);min-height:44px;box-shadow:var(--modal-shadow);color:var(--color-primary);border-radius:999px;display:inline-flex;position:fixed}.go-to-top svg[data-v-617bd563]{width:20px;height:20px}@media (width>=769px){.go-to-top[data-v-617bd563]{right:var(--spacing-lg);bottom:var(--spacing-lg)}}.books-view[data-v-d3841d79]{box-sizing:border-box;background-color:var(--color-bg);min-height:100svh;padding-bottom:112px}.empty-state[data-v-d3841d79]{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.shelves[data-v-d3841d79],.shelves[data-v-d3841d79]>*+*{margin-top:var(--spacing-lg)}@media (width>=769px){.books-view[data-v-d3841d79]{padding-bottom:var(--spacing-xl)}}.book-notes[data-v-46960028]{margin-bottom:var(--spacing-xl)}.book-notes h2[data-v-46960028]{margin:0 0 var(--spacing-md) 0;font-size:1.25rem}.notes-textarea[data-v-46960028]{resize:vertical;width:100%;min-height:120px;padding:var(--spacing-sm);border-radius:var(--border-radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-family:inherit;line-height:1.5}.notes-actions[data-v-46960028]{margin-top:var(--spacing-sm);justify-content:flex-end;gap:var(--spacing-sm);display:flex}.notes-rendered[data-v-46960028]{padding:var(--spacing-sm);border-radius:var(--border-radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);line-height:1.5}.notes-rendered[data-v-46960028] blockquote{margin:var(--spacing-md) 0;padding:var(--spacing-sm) var(--spacing-md);border-inline-start:3px solid var(--color-primary);background:var(--color-bg-card);overflow-wrap:anywhere}.notes-rendered[data-v-46960028]>:first-child,.notes-rendered[data-v-46960028] blockquote>:first-child{margin-top:0}.notes-rendered[data-v-46960028]>:last-child,.notes-rendered[data-v-46960028] blockquote>:last-child{margin-bottom:0}.notes-empty[data-v-46960028]{color:var(--color-text-muted,#888);margin:0;font-style:italic}.confirm-button[data-v-ac71065d]{border:1px solid var(--color-primary);border-radius:var(--border-radius);background:var(--color-primary);color:#fff;font:inherit;cursor:pointer;padding:6px 8px;font-size:.9rem}.confirm-button[data-v-ac71065d]:disabled{opacity:.6;cursor:not-allowed}.precision-row[data-v-c4e4af70]{align-items:center;gap:8px;display:flex}.date-input[data-v-c4e4af70]{border-radius:var(--border-radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);flex:1;padding:6px 8px}.precision-column[data-v-2d567c58]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.month-picker[data-v-2d567c58]{gap:6px;display:flex}.date-input[data-v-2d567c58]{flex:1}.date-input[data-v-2d567c58],.year-input[data-v-2d567c58]{border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg);color:var(--color-text);padding:6px 8px}.year-input[data-v-2d567c58]{width:5.5rem}.confirm-button[data-v-2d567c58]{align-self:flex-start}.sr-only[data-v-2d567c58]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.precision-row[data-v-87a7c26c]{display:flex}.precision-column[data-v-b0036b65]{flex-direction:column;gap:4px;display:flex}.precision-row[data-v-b0036b65]{align-items:center;gap:8px;display:flex}.date-input[data-v-b0036b65]{border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg);color:var(--color-text);flex:1;padding:6px 8px}.validation-message[data-v-b0036b65]{color:var(--color-danger);margin:0;font-size:.8rem}.shelf-menu[data-v-5e25efdc]{z-index:1000;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);flex-direction:column;gap:8px;min-width:240px;padding:12px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 30px #0003}.shelf-menu-label[data-v-5e25efdc]{color:var(--color-text-secondary);font-size:.85rem}.pause-action[data-v-5e25efdc],.abandon-action[data-v-5e25efdc]{border-radius:var(--border-radius);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0;padding:7px 8px;font:500 .9rem inherit}.pause-action[data-v-5e25efdc]:hover,.abandon-action[data-v-5e25efdc]:hover{background:var(--color-bg)}.menu-divider[data-v-5e25efdc]{background:var(--color-border);height:1px}.shelf-precision-select[data-v-5e25efdc]{border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg);color:var(--color-text);padding:6px 8px}.shelf-control[data-v-0fb9e750]{align-self:flex-start;position:relative}@media (width<=768px){.shelf-control[data-v-0fb9e750]{margin-inline:auto}}.shelf-split[data-v-0fb9e750]{display:inline-flex}.shelf-button[data-v-0fb9e750],.shelf-caret[data-v-0fb9e750]{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;cursor:pointer;align-items:center;font:500 .9rem/1.2 inherit;display:inline-flex}.shelf-button[data-v-0fb9e750]{border-radius:999px 0 0 999px;padding:8px 16px}.shelf-caret[data-v-0fb9e750]{border-left-color:#fff6;border-radius:0 999px 999px 0;padding:8px 12px}.shelf-button[data-v-0fb9e750]:hover:not(:disabled),.shelf-caret[data-v-0fb9e750]:hover:not(:disabled){filter:brightness(1.1)}.shelf-button[data-v-0fb9e750]:disabled,.shelf-caret[data-v-0fb9e750]:disabled{opacity:.6;cursor:not-allowed}.reading-card[data-v-24c73372]{border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-lg);gap:var(--spacing-md);background:#0c081008;flex-direction:column;width:fit-content;max-width:100%;display:inline-flex;box-shadow:0 10px 20px #0705080f}@media (prefers-color-scheme:dark){.reading-card[data-v-24c73372]{background:#0c081073;border:1px solid #ffffff1f;box-shadow:0 10px 20px #07050833}}.reading-header[data-v-24c73372]{align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.reading-label[data-v-24c73372]{font-weight:600}.since[data-v-24c73372]{color:var(--color-text-secondary);font-size:.8rem}.reading-actions[data-v-24c73372]{margin-top:var(--spacing-xs);display:flex}.progress-display[data-v-24c73372]{justify-content:space-between;align-items:baseline;gap:var(--spacing-md);font-size:.9rem;display:flex}.sep[data-v-24c73372]{margin:0 var(--spacing-sm)}.progress-line[data-v-24c73372],.progress-edit[data-v-24c73372]{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;font-size:.9rem;display:flex}.dates[data-v-24c73372]{gap:var(--spacing-xs);color:var(--color-text-secondary);font-size:.8rem;display:flex}.muted[data-v-24c73372]{color:var(--color-text-secondary)}.unit-toggle[data-v-24c73372]{border:1px solid var(--color-border);border-radius:var(--border-radius);display:inline-flex;overflow:hidden}.unit-btn[data-v-24c73372]{padding:4px var(--spacing-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.85rem}.unit-btn[data-v-24c73372]:not(:last-child){border-right:1px solid var(--color-border)}.unit-btn.active[data-v-24c73372]{background:var(--color-primary);color:#fff}.unit-btn[data-v-24c73372]:disabled{cursor:not-allowed}.progress-suffix[data-v-24c73372]{text-align:left;min-width:4rem}.progress-input[data-v-24c73372]{width:70px;padding:4px var(--spacing-sm);border-radius:var(--border-radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);appearance:textfield;font-family:inherit}.progress-input[data-v-24c73372]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.progress-input[data-v-24c73372]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.btn-link[data-v-24c73372]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem}.btn-link[data-v-24c73372]:hover:not(:disabled){text-decoration:underline}.btn-link[data-v-24c73372]:disabled{color:var(--color-text-secondary);cursor:not-allowed}.btn-link-cancel[data-v-24c73372]{color:var(--color-danger)}.book-rating[data-v-f13071f6]{margin-top:var(--spacing-md)}label[data-v-f13071f6]{align-items:center;gap:var(--spacing-sm);display:inline-flex}select[data-v-f13071f6]{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg-card);color:var(--color-text)}[role=status][data-v-f13071f6]{margin-left:var(--spacing-sm);color:var(--color-text-secondary)}.rating-error[data-v-f13071f6]{margin-top:var(--spacing-sm);color:var(--color-danger)}.collapsible-text[data-v-582160d6]{position:relative}.collapsible-text__body[data-v-582160d6]{color:var(--color-text);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;will-change:max-height;max-height:none;line-height:1.6;transition:max-height .24s;position:relative;overflow:hidden}.collapsible-text__body.clamped[data-v-582160d6]{opacity:1}.collapsible-text__body.clamped[data-v-582160d6]:after{content:"";pointer-events:none;background:linear-gradient(to bottom, #0000, var(--color-bg));height:1.8rem;position:absolute;bottom:0;left:0;right:0}@supports ((-webkit-mask-image:linear-gradient(#000, transparent)) or (mask-image:linear-gradient(#000, transparent))){.collapsible-text__body.clamped[data-v-582160d6]{-webkit-mask-image:linear-gradient(#000 0% 70%,#0000 100%);mask-image:linear-gradient(#000 0% 70%,#0000 100%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.collapsible-text__body.clamped[data-v-582160d6]:after{content:none}}.collapsible-text__toggle[data-v-582160d6]{margin-top:var(--spacing-xs);color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.95rem}.collapsible-text__toggle[data-v-582160d6]:hover{text-decoration:underline}.book-metadata h2[data-v-b4b5fc37]{margin:0 0 var(--spacing-md) 0;font-size:1.25rem}.metadata-grid[data-v-b4b5fc37]{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));width:100%;display:grid}.metadata-item[data-v-b4b5fc37]{color:var(--color-text-secondary);word-break:break-word;overflow-wrap:anywhere;min-width:0;font-size:14px}.metadata-item strong[data-v-b4b5fc37]{color:var(--color-text)}@media (width<=768px){.metadata-grid[data-v-b4b5fc37]{grid-template-columns:1fr}}.event-timeline[data-v-60f9b8ac]{margin-top:var(--spacing-xl)}.event-timeline h3[data-v-60f9b8ac]{margin:0 0 var(--spacing-md) 0;font-size:1.25rem}.no-events[data-v-60f9b8ac]{color:var(--color-text-secondary);font-size:14px}.timeline[data-v-60f9b8ac]{padding-left:var(--spacing-lg);position:relative}.timeline-item[data-v-60f9b8ac]{padding-bottom:var(--spacing-md);position:relative}.timeline-item[data-v-60f9b8ac]:before{content:"";left:calc(-1 * var(--spacing-lg) + 5px);background-color:var(--color-border);width:2px;position:absolute;top:14px;bottom:0}.timeline-item[data-v-60f9b8ac]:last-child{padding-bottom:0}.timeline-item[data-v-60f9b8ac]:last-child:before{display:none}.timeline-dot[data-v-60f9b8ac]{left:calc(-1 * var(--spacing-lg) + 1px);background-color:var(--color-primary);border:2px solid var(--color-bg-card);width:10px;height:10px;box-shadow:0 0 0 2px var(--color-primary);border-radius:50%;position:absolute;top:4px}.timeline-content[data-v-60f9b8ac]{padding-left:var(--spacing-sm);position:relative;top:-3px}.event-label[data-v-60f9b8ac]{color:var(--color-text);font-size:14px;font-weight:500}.event-date[data-v-60f9b8ac]{color:var(--color-text-secondary);margin-top:2px;font-size:12px}.event-note[data-v-60f9b8ac]{margin-top:var(--spacing-xs);white-space:pre-wrap;color:var(--color-text);font-size:.95rem;line-height:1.5}.custom-shelves[data-v-62d5253a]{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.section-header[data-v-62d5253a]{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}h2[data-v-62d5253a]{margin:0;font-size:1.25rem}.empty[data-v-62d5253a]{color:var(--color-text-secondary);margin:0}.error[data-v-62d5253a]{color:var(--color-danger);margin:0}.shelf-list[data-v-62d5253a]{gap:var(--spacing-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.shelf-link[data-v-62d5253a]{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-primary);text-decoration:none;display:block}.shelf-link[data-v-62d5253a]:hover{border-color:var(--color-primary)}.shelf-link[data-v-62d5253a]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.modal[data-v-62d5253a]{max-height:calc(100dvh - 2 * var(--spacing-sm));flex-direction:column;display:flex;overflow:hidden}.modal-header[data-v-62d5253a]{gap:var(--spacing-sm);flex-shrink:0}.modal-body[data-v-62d5253a]{overscroll-behavior:contain;min-height:0;overflow:hidden auto}.shelf-options[data-v-62d5253a]{gap:var(--spacing-sm);display:grid}.shelf-option[data-v-62d5253a]{align-items:center;gap:var(--spacing-md);min-height:48px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;overflow-wrap:anywhere;display:flex}.shelf-option[data-v-62d5253a]:hover{border-color:var(--color-primary)}.shelf-option[data-v-62d5253a]:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.shelf-option input[data-v-62d5253a]{width:20px;height:20px;accent-color:var(--color-primary);flex:none;margin:0}@media (width<=600px){.modal-overlay[data-v-62d5253a]{align-items:center}.modal-body[data-v-62d5253a]{padding:var(--spacing-md)}}.back-to-shelf[data-v-9ae30db7]{align-items:center;gap:var(--spacing-sm);min-height:44px;margin-bottom:var(--spacing-md);color:var(--color-primary);text-decoration:none;display:inline-flex}.back-to-shelf[data-v-9ae30db7]:hover{text-decoration:underline}.book-detail-page[data-v-9ae30db7]{background-color:var(--color-bg);min-height:100vh}.book-detail[data-v-9ae30db7]{border-radius:var(--border-radius);box-shadow:none;background:0 0;max-width:100%;overflow:hidden}.book-header[data-v-9ae30db7]{column-gap:var(--spacing-xl);padding:var(--spacing-xl);background:0 0;grid-template-columns:minmax(220px,260px) minmax(0,1fr);align-items:flex-start;width:100%;max-width:100%;display:grid}.book-cover-section[data-v-9ae30db7]{flex-shrink:0;max-width:100%}.book-cover-stack[data-v-9ae30db7]{width:min(240px,100%);position:relative}.book-cover-loading[data-v-9ae30db7]{visibility:hidden}.book-cover-large[data-v-9ae30db7]{border-radius:var(--border-radius);width:min(240px,100%);max-width:100%;height:auto;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;display:block}.book-cover-large.book-cover-overlay[data-v-9ae30db7]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.book-cover-placeholder[data-v-9ae30db7]{aspect-ratio:2/3;background-color:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-secondary);text-align:center;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;justify-content:center;align-items:center;font-size:14px;display:flex}.book-info[data-v-9ae30db7]{flex-direction:column;width:100%;min-width:0;display:flex}.book-info h1[data-v-9ae30db7]{margin:0 0 var(--spacing-sm) 0;word-break:break-word;font-size:2rem;line-height:1.2}.book-author[data-v-9ae30db7]{margin:0 0 var(--spacing-lg) 0;color:var(--color-text-secondary);word-break:break-word;font-size:1.125rem}.book-actions[data-v-9ae30db7]{gap:var(--spacing-md);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl);flex-wrap:wrap;justify-content:flex-start;display:flex}.book-actions button[data-v-9ae30db7]{flex:none;width:auto;min-width:140px;max-width:220px}.book-shelf-section[data-v-9ae30db7]{margin-bottom:var(--spacing-lg);gap:var(--spacing-md);background-color:#0000;border:none;flex-direction:column;padding:0;display:flex}.book-dates[data-v-9ae30db7]{gap:var(--spacing-xs);flex-direction:column;display:flex}.date-item[data-v-9ae30db7]{color:var(--color-text-secondary);font-size:14px}.date-item strong[data-v-9ae30db7]{color:var(--color-text)}.book-body[data-v-9ae30db7]{padding:var(--spacing-xl);background:0 0;overflow-x:hidden}.book-description[data-v-9ae30db7]{margin-bottom:var(--spacing-xl)}.book-description h2[data-v-9ae30db7]{margin:0 0 var(--spacing-md) 0;font-size:1.25rem}@media (width<=768px){.book-detail-page[data-v-9ae30db7]{border-radius:0;min-height:100%}.book-detail[data-v-9ae30db7]{box-shadow:none;background:0 0;border:none;border-radius:0}.book-header[data-v-9ae30db7]{text-align:center;padding:var(--spacing-lg) 0;flex-flow:column wrap;align-items:center;display:flex}.book-cover-section[data-v-9ae30db7]{width:100%;margin-bottom:var(--spacing-lg);justify-content:center;display:flex}.book-cover-large[data-v-9ae30db7],.book-cover-stack[data-v-9ae30db7]{width:min(200px,100%);height:auto}.book-info h1[data-v-9ae30db7]{font-size:1.5rem}.book-info[data-v-9ae30db7]{width:100%}.book-actions[data-v-9ae30db7]{flex-direction:column}.book-actions button[data-v-9ae30db7]{flex:none;width:100%}.book-shelf-section[data-v-9ae30db7]{align-items:center}.book-shelf-section select[data-v-9ae30db7]{max-width:100%}.book-body[data-v-9ae30db7]{padding:var(--spacing-lg) 0}}.book-edit-page[data-v-3af16c05]{background-color:var(--color-bg);min-height:100vh}.breadcrumb[data-v-3af16c05]{align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);color:var(--color-text-secondary);flex-wrap:wrap;font-size:.9rem;display:flex}.breadcrumb-link[data-v-3af16c05]{color:var(--color-text);font-weight:600;text-decoration:none}.breadcrumb-link[data-v-3af16c05]:hover{color:var(--color-primary)}.breadcrumb-separator[data-v-3af16c05]{color:var(--color-text-secondary)}.breadcrumb-current[data-v-3af16c05]{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:min(420px,60vw);overflow:hidden}.edit-content[data-v-3af16c05]{max-width:720px}.edit-content h1[data-v-3af16c05]{margin:0 0 var(--spacing-lg) 0;font-size:1.75rem}.form-actions[data-v-3af16c05]{gap:var(--spacing-md);margin-top:var(--spacing-xl);justify-content:flex-end;display:flex}.form-actions .delete-action[data-v-3af16c05]{margin-right:auto}.settings-section[data-v-2f9731f3]{margin-top:var(--spacing-lg)}.settings-section h2[data-v-2f9731f3]{margin-bottom:var(--spacing-md);font-size:1.125rem}.import-zone[data-v-2f9731f3]{border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-lg)}.import-item[data-v-2f9731f3]{gap:var(--spacing-md);flex-direction:column;display:flex}.import-controls[data-v-2f9731f3]{align-items:center;gap:var(--spacing-md);display:flex}.import-success[data-v-2f9731f3]{color:var(--color-success);margin:0;font-weight:500}.import-error[data-v-2f9731f3]{color:var(--color-danger);margin:0;font-weight:500}.imports-history[data-v-2f9731f3]{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.imports-history h3[data-v-2f9731f3]{margin:0 0 var(--spacing-md) 0;font-size:1rem}.imports-list[data-v-2f9731f3]{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.imports-item[data-v-2f9731f3]{gap:var(--spacing-xs);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.imports-item[data-v-2f9731f3]:last-child{border-bottom:none;padding-bottom:0}.imports-item-main[data-v-2f9731f3]{justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap;align-items:baseline;display:flex}.imports-item-date[data-v-2f9731f3]{color:var(--color-text-secondary);font-size:13px}.imports-item-counts[data-v-2f9731f3]{font-size:13px}.danger-zone[data-v-2f9731f3]{border:1px solid var(--color-danger);border-radius:var(--border-radius);padding:var(--spacing-lg)}.danger-item[data-v-2f9731f3]{justify-content:space-between;align-items:center;gap:var(--spacing-lg);display:flex}.danger-item p[data-v-2f9731f3]{margin:var(--spacing-xs) 0 0;font-size:13px}.danger-item .btn-danger[data-v-2f9731f3]{flex-shrink:0}@media (width<=600px){.danger-item[data-v-2f9731f3],.import-controls[data-v-2f9731f3]{flex-direction:column;align-items:flex-start}}.shelves-page[data-v-f025a3ec]{background:var(--color-bg);min-height:100svh;padding-bottom:112px}.shelves-header[data-v-f025a3ec]{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin:var(--spacing-sm) 0 var(--spacing-lg);display:flex}.shelves-header h1[data-v-f025a3ec]{margin:0;font-size:1.5rem}.add-shelf-button[data-v-f025a3ec]{align-items:center;gap:var(--spacing-sm);white-space:nowrap;display:inline-flex}.add-shelf-button span[data-v-f025a3ec]{font-size:1.125rem;line-height:1}.add-shelf-button[data-v-f025a3ec]:focus-visible,.shelf-row[data-v-f025a3ec]:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.create-shelf label[data-v-f025a3ec]{margin-bottom:var(--spacing-sm);font-weight:600;display:block}.create-shelf input[data-v-f025a3ec]{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg-card);width:100%;color:var(--color-text);padding:.65rem .75rem}.create-error[data-v-f025a3ec]{margin:var(--spacing-sm) 0 0;color:var(--color-danger,#c0392b)}.shelf-list[data-v-f025a3ec]{border:1px solid var(--color-border);border-radius:6px;flex-direction:column;display:flex}.shelf-row[data-v-f025a3ec]{align-items:center;gap:var(--spacing-md);width:100%;min-width:0;min-height:56px;padding:var(--spacing-md);color:var(--color-text);text-decoration:none;transition:background-color .15s;display:flex}.shelf-row[data-v-f025a3ec]:hover{background:color-mix(in srgb, var(--color-primary) 6%, var(--color-bg-card))}.shelf-details[data-v-f025a3ec]{align-items:center;gap:var(--spacing-md);flex:1;min-width:0;display:flex}.shelf-name[data-v-f025a3ec]{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600}.shelf-count[data-v-f025a3ec]{white-space:nowrap;flex:none;font-size:.8125rem}.shelf-count[data-v-f025a3ec],.shelf-chevron[data-v-f025a3ec],.empty-state[data-v-f025a3ec]{color:var(--color-text-secondary)}.shelf-chevron[data-v-f025a3ec]{flex:none;font-size:1.25rem;line-height:1}.shelf-row+.shelf-row[data-v-f025a3ec]{border-top:1px solid var(--color-border)}.shelf-row[data-v-f025a3ec]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.shelf-row[data-v-f025a3ec]:last-child{border-bottom-right-radius:5px;border-bottom-left-radius:5px}.empty-state[data-v-f025a3ec],.loading[data-v-f025a3ec],.error[data-v-f025a3ec]{padding:var(--spacing-xl);text-align:center}@media (width>=769px){.shelves-page[data-v-f025a3ec]{padding-bottom:var(--spacing-xl)}}.modal-body label[data-v-ddcff809]{margin-bottom:var(--spacing-sm);font-weight:600;display:block}.modal-body input[data-v-ddcff809]{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg-card);width:100%;color:var(--color-text);padding:.65rem .75rem}.action-error[data-v-ddcff809]{margin:var(--spacing-sm) 0 0;color:var(--color-danger,#c0392b)}.custom-shelf-page[data-v-c70fdc99]{background:var(--color-bg);min-height:100svh;padding-bottom:112px}.shelf-heading[data-v-c70fdc99]{margin:var(--spacing-lg) 0;justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}h1[data-v-c70fdc99]{margin:0;font-size:1.5rem}.empty-state[data-v-c70fdc99]{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.error-state[data-v-c70fdc99]{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);color:var(--color-danger);display:flex}@media (width>=769px){.custom-shelf-page[data-v-c70fdc99]{padding-bottom:var(--spacing-xl)}}
