:root{--color-primary: #5856d6;--color-primary-hover: #4745b5;--color-text: #333;--color-text-secondary: #666;--color-border: #ddd;--color-bg: #ffffff;--color-bg-card: #fff;--color-success: #34c759;--color-warning: #ff9500;--color-danger: #ff3b30;--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 rgba(0, 0, 0, .1);--modal-overlay-bg: rgba(0, 0, 0, .5);--modal-shadow: 0 4px 12px rgba(0, 0, 0, .15)}@media (prefers-color-scheme: dark){:root{--color-text: #e8e8e8;--color-text-secondary: #a0a0a0;--color-border: #404040;--color-bg: #1a1a1a;--color-bg-card: #2a2a2a;--color-error-bg: #3a1f1f;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--modal-overlay-bg: rgba(0, 0, 0, .7);--modal-shadow: 0 4px 12px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:14px;line-height:1.5;color:var(--color-text);background-color:var(--color-bg)}#app{min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md) 0;font-weight:600;color:var(--color-text)}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{display:inline-block;padding:var(--spacing-sm) var(--spacing-md);font-size:14px;font-weight:500;line-height:1.5;text-align:center;text-decoration:none;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-bg-card);color:var(--color-text);transition:all .15s ease}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{opacity:.9}.btn-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:12px}input,select,textarea{width:100%;padding:var(--spacing-sm);font-size:14px;font-family:inherit;line-height:1.5;color:var(--color-text);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);transition:border-color .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary)}label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--color-text)}.form-group{margin-bottom:var(--spacing-md)}.form-row{display:flex;gap:var(--spacing-md)}.form-row .form-group{flex:1}.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;margin:0 auto;padding:var(--spacing-lg)}.container-narrow{max-width:600px;margin:0 auto;padding:var(--spacing-lg)}.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{position:fixed;inset:0;background-color:var(--modal-overlay-bg);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.modal{background-color:var(--color-bg-card);border-radius:var(--border-radius);box-shadow:var(--modal-shadow);max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0}.modal-body{padding:var(--spacing-lg)}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.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{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.pagination button{padding:var(--spacing-sm) var(--spacing-md)}@media (max-width: 768px){.container{padding:var(--spacing-md)}.form-row{flex-direction:column}}.book-card[data-v-4ab6430f]{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 ease}.book-card[data-v-4ab6430f]:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.book-content[data-v-4ab6430f]{display:flex;gap:var(--spacing-lg)}.book-cover-link[data-v-4ab6430f]{text-decoration:none;display:block}.book-title-link[data-v-4ab6430f]{text-decoration:none;color:inherit;display:block}.book-cover[data-v-4ab6430f],.book-cover-placeholder[data-v-4ab6430f]{width:120px;height:180px;object-fit:cover;border-radius:var(--border-radius);flex-shrink:0}.book-cover-clickable[data-v-4ab6430f]{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.book-cover-clickable[data-v-4ab6430f]:hover{transform:scale(1.02);box-shadow:0 4px 8px #0003}.book-cover-placeholder[data-v-4ab6430f]{display:flex;align-items:center;justify-content:center;background-color:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px;text-align:center}.book-details[data-v-4ab6430f]{flex:1;min-width:0}.book-header[data-v-4ab6430f]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-sm)}.book-header h3[data-v-4ab6430f]{margin:0;font-size:1.25rem;flex:1}.book-title-clickable[data-v-4ab6430f]{cursor:pointer;transition:color .15s ease}.book-title-clickable[data-v-4ab6430f]:hover{color:var(--color-primary)}.book-author[data-v-4ab6430f]{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:14px}.book-description[data-v-4ab6430f]{margin-bottom:var(--spacing-md);line-height:1.6;color:var(--color-text)}.book-meta[data-v-4ab6430f]{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.meta-item[data-v-4ab6430f]{font-size:12px;color:var(--color-text-secondary)}.meta-item strong[data-v-4ab6430f]{color:var(--color-text)}.book-status[data-v-4ab6430f]{margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-sm)}.book-status-label[data-v-4ab6430f]{font-size:14px;color:var(--color-text-secondary)}.book-status-pill[data-v-4ab6430f]{border:1px solid var(--color-border);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600}.book-dates[data-v-4ab6430f]{padding-top:var(--spacing-sm);display:flex;gap:var(--spacing-md)}@media (max-width: 768px){.book-content[data-v-4ab6430f]{flex-direction:column}.book-cover[data-v-4ab6430f],.book-cover-placeholder[data-v-4ab6430f]{width:100%;height:240px}.book-header[data-v-4ab6430f]{flex-direction:column}.book-status[data-v-4ab6430f]{align-items:flex-start;flex-direction:column}}.search-section[data-v-3e66a845]{margin-bottom:var(--spacing-lg)}.search-description[data-v-3e66a845]{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:14px}.search-input-group[data-v-3e66a845]{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.search-input[data-v-3e66a845]{flex:1}.btn-manual[data-v-3e66a845]{width:100%;padding:var(--spacing-sm);background-color:transparent;border:1px dashed var(--color-border);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--border-radius);font-size:14px}.btn-manual[data-v-3e66a845]:hover:not(:disabled){background-color:var(--color-bg-card);border-color:var(--color-primary);color:var(--color-primary)}.results-section[data-v-3e66a845]{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.results-section h4[data-v-3e66a845]{margin:0 0 var(--spacing-md) 0;color:var(--color-text)}.results-list[data-v-3e66a845]{display:flex;flex-direction:column;gap:var(--spacing-md);max-height:400px;overflow-y:auto}.result-item[data-v-3e66a845]{display:flex;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)}.result-content[data-v-3e66a845]{display:flex;gap:var(--spacing-md);flex:1;min-width:0}.book-thumbnail[data-v-3e66a845],.book-thumbnail-placeholder[data-v-3e66a845]{width:80px;height:120px;object-fit:cover;border-radius:var(--border-radius);flex-shrink:0}.book-thumbnail-placeholder[data-v-3e66a845]{display:flex;align-items:center;justify-content:center;background-color:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px;text-align:center}.book-info[data-v-3e66a845]{flex:1;min-width:0}.book-title[data-v-3e66a845]{margin:0 0 4px;font-size:16px;color:var(--color-text)}.book-author[data-v-3e66a845]{margin:0 0 8px;color:var(--color-text-secondary);font-size:14px}.book-details[data-v-3e66a845]{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:8px}.detail[data-v-3e66a845]{font-size:12px;color:var(--color-text-secondary);padding:2px 8px;background-color:var(--color-bg);border-radius:4px}.book-description[data-v-3e66a845]{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.4}.btn-select[data-v-3e66a845]{flex-shrink:0;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:14px;height:fit-content}.btn-select[data-v-3e66a845]:hover{opacity:.9}.empty-state[data-v-3e66a845]{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}@media (max-width: 768px){.result-content[data-v-3e66a845],.result-item[data-v-3e66a845]{flex-direction:column}.btn-select[data-v-3e66a845]{width:100%}}.navbar[data-v-83f30fe9]{background-color:var(--color-bg-card)}.navbar-content[data-v-83f30fe9]{max-width:1200px;margin:0 auto;padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.navbar-left[data-v-83f30fe9]{display:flex;align-items:center;gap:var(--spacing-xl)}.navbar-right[data-v-83f30fe9]{display:flex;align-items:center;gap:var(--spacing-lg)}.navbar-brand[data-v-83f30fe9]{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.125rem;font-weight:700;letter-spacing:.5px;color:var(--color-text);text-decoration:none;text-transform:uppercase}.navbar-icon[data-v-83f30fe9]{width:24px;height:24px;color:var(--color-primary)}.navbar-links[data-v-83f30fe9]{display:flex;align-items:center;gap:var(--spacing-md)}.navbar-link[data-v-83f30fe9]{color:var(--color-text);text-decoration:none;font-size:14px;font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);transition:background-color .15s ease}.navbar-link[data-v-83f30fe9]:hover{background-color:var(--color-bg)}.navbar-link.router-link-active[data-v-83f30fe9]{color:var(--color-primary)}.navbar-link-btn[data-v-83f30fe9]{background:none;border:none;color:var(--color-text);font-size:14px;font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;border-radius:var(--border-radius);transition:background-color .15s ease}.navbar-link-btn[data-v-83f30fe9]:hover{background-color:var(--color-bg)}.navbar-user[data-v-83f30fe9]{display:flex;align-items:center}.btn-add[data-v-83f30fe9]{padding:var(--spacing-sm) var(--spacing-lg);font-weight:600}@media (max-width: 768px){.navbar-content[data-v-83f30fe9]{flex-wrap:wrap;gap:var(--spacing-md)}.navbar-left[data-v-83f30fe9]{flex:1 1 auto;gap:var(--spacing-md)}.navbar-right[data-v-83f30fe9]{gap:var(--spacing-sm)}.navbar-links[data-v-83f30fe9]{display:none}.btn-add[data-v-83f30fe9]{font-size:13px;padding:var(--spacing-xs) var(--spacing-md)}}.search-header[data-v-b991570f]{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-bg-card);align-items:center;justify-content:space-between;border-radius:var(--border-radius)}.search-bar[data-v-b991570f]{flex:0 1 500px;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);transition:border-color .15s ease,box-shadow .15s ease}.search-bar[data-v-b991570f]:hover{border-color:var(--color-text-secondary)}.search-bar[data-v-b991570f]:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 1px #5856d659}.search-icon[data-v-b991570f]{color:var(--color-text-secondary);flex-shrink:0}.search-actions[data-v-b991570f]{display:flex;align-items:center;gap:var(--spacing-sm);padding:0 var(--spacing-xs)}.search-input[data-v-b991570f]{flex:1;border:none;background:transparent;padding:0;font-size:14px}.search-input[data-v-b991570f]:focus{outline:none;border:none}.filter-dropdown-wrapper[data-v-b991570f]{position:relative}.filter-btn[data-v-b991570f]{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);background:transparent;border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease;min-width:36px;min-height:36px}.filter-btn[data-v-b991570f]:hover{color:var(--color-text);background-color:var(--color-bg);border-color:var(--color-text-secondary)}.view-toggle[data-v-b991570f]{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden;background-color:var(--color-bg-card)}.view-btn[data-v-b991570f]{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease;min-width:36px;min-height:36px;position:relative}.view-btn[data-v-b991570f]:not(:last-child):after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);height:60%;width:1px;background-color:var(--color-border)}.view-btn[data-v-b991570f]:hover:not(.active){color:var(--color-text);background-color:var(--color-bg)}.filter-dropdown[data-v-b991570f]{position:absolute;top:calc(100% + 4px);right:0;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--modal-shadow);padding:var(--spacing-md);min-width:200px;z-index:100}.filter-dropdown-section[data-v-b991570f]{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-dropdown-label[data-v-b991570f]{font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:0}.filter-dropdown-select[data-v-b991570f]{width:100%;padding:var(--spacing-xs) var(--spacing-sm);font-size:14px;border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-bg-card);color:var(--color-text)}.view-btn.active[data-v-b991570f]{background-color:var(--color-primary);color:#fff}.view-btn.active[data-v-b991570f]:after{display:none}.view-btn.active[data-v-b991570f]:hover{background-color:var(--color-primary-hover);color:#fff}.active-filters[data-v-b991570f]{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.filter-tag[data-v-b991570f]{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:#fff;border-radius:var(--border-radius);font-size:13px;font-weight:500}.filter-tag-remove[data-v-b991570f]{background:none;border:none;color:#fff;cursor:pointer;padding:0;font-size:20px;line-height:1;font-weight:300;opacity:.8;transition:opacity .15s ease}.filter-tag-remove[data-v-b991570f]:hover{opacity:1}.empty-state[data-v-b991570f]{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.books-container[data-v-b991570f]{margin-top:var(--spacing-lg)}.books-list[data-v-b991570f]{display:flex;flex-direction:column}.books-grid[data-v-b991570f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-lg)}.grid-item[data-v-b991570f]{display:flex;flex-direction:column}.grid-cover-link[data-v-b991570f]{text-decoration:none;display:block}.grid-cover[data-v-b991570f]{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:var(--border-radius);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:var(--shadow)}.grid-cover[data-v-b991570f]:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0003}.grid-cover-placeholder[data-v-b991570f]{width:100%;aspect-ratio:2/3;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:var(--shadow);padding:var(--spacing-md)}.grid-cover-placeholder[data-v-b991570f]:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0003}.grid-no-cover-text[data-v-b991570f]{text-align:center;color:var(--color-text);font-size:14px;font-weight:500;word-break:break-word;line-height:1.4}.pagination-info[data-v-b991570f]{color:var(--color-text-secondary);font-size:14px}@media (max-width: 768px){.search-header[data-v-b991570f]{flex-wrap:wrap}.search-bar[data-v-b991570f]{flex:1 1 100%;order:-1}.filter-btn[data-v-b991570f],.view-toggle[data-v-b991570f],.view-btn[data-v-b991570f]{flex:1}.books-grid[data-v-b991570f]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--spacing-md)}}.back-button[data-v-5330de35]{margin-bottom:var(--spacing-lg)}.book-detail[data-v-5330de35]{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow);overflow:hidden}.book-header[data-v-5330de35]{display:flex;gap:var(--spacing-xl);padding:var(--spacing-xl);background-color:var(--color-bg);border-bottom:1px solid var(--color-border)}.book-cover-section[data-v-5330de35]{flex-shrink:0}.book-cover-large[data-v-5330de35]{width:240px;height:360px;object-fit:cover;border-radius:var(--border-radius);box-shadow:var(--shadow)}.book-cover-placeholder[data-v-5330de35]{display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:14px;text-align:center}.book-info[data-v-5330de35]{flex:1;min-width:0}.book-info h1[data-v-5330de35]{margin:0 0 var(--spacing-sm) 0;font-size:2rem;line-height:1.2}.book-author[data-v-5330de35]{margin:0 0 var(--spacing-lg) 0;color:var(--color-text-secondary);font-size:1.125rem}.book-actions[data-v-5330de35]{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.book-status-section[data-v-5330de35]{margin-bottom:var(--spacing-lg);padding:0;background-color:transparent;border:none}.status-actions[data-v-5330de35]{display:flex;gap:var(--spacing-sm)}.book-dates[data-v-5330de35]{display:flex;flex-direction:column;gap:var(--spacing-xs)}.date-item[data-v-5330de35]{font-size:14px;color:var(--color-text-secondary)}.date-item strong[data-v-5330de35]{color:var(--color-text)}.book-body[data-v-5330de35]{padding:var(--spacing-xl)}.book-description[data-v-5330de35]{margin-bottom:var(--spacing-xl)}.book-description h2[data-v-5330de35]{margin:0 0 var(--spacing-md) 0;font-size:1.25rem}.book-description p[data-v-5330de35]{line-height:1.6;color:var(--color-text);white-space:pre-wrap}.book-metadata h2[data-v-5330de35]{margin:0 0 var(--spacing-md) 0;font-size:1.25rem}.metadata-grid[data-v-5330de35]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.metadata-item[data-v-5330de35]{font-size:14px;color:var(--color-text-secondary)}.metadata-item strong[data-v-5330de35]{color:var(--color-text)}@media (max-width: 768px){.book-header[data-v-5330de35]{flex-direction:column;align-items:center;text-align:center}.book-cover-large[data-v-5330de35]{width:200px;height:300px}.book-info h1[data-v-5330de35]{font-size:1.5rem}.book-actions[data-v-5330de35]{flex-direction:column}.book-actions button[data-v-5330de35]{width:100%}.book-status-section select[data-v-5330de35]{max-width:100%}.metadata-grid[data-v-5330de35]{grid-template-columns:1fr}}
