:root {
  color-scheme: light;
  --canvas: #f7f3ea;
  --surface: #fffdf8;
  --surface-raised: #ffffff;
  --surface-muted: #f1ede3;
  --ink: #203a43;
  --muted: #607078;
  --subtle: #7a898f;
  --line: #d8d0c2;
  --line-strong: #bdb3a4;
  --primary: #157a5b;
  --primary-hover: #0f6148;
  --primary-soft: #e0eee6;
  --danger: #b23a3a;
  --warning: #9a5b13;
  --focus: #157a5b;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --canvas: #17211f;
  --surface: #202d2a;
  --surface-raised: #263633;
  --surface-muted: #2d3d39;
  --ink: #edf4ef;
  --muted: #c0d0c8;
  --subtle: #9eb2a8;
  --line: #43544e;
  --line-strong: #62756d;
  --primary: #61c39b;
  --primary-hover: #85d6b3;
  --primary-soft: #294b3d;
  --danger: #ff9e96;
  --warning: #efbf75;
  --focus: #96e1bd;
}

html, body { min-height: 100%; background: var(--canvas); color: var(--ink); }
body { min-height: 100vh; }
/* Relevant vector illustration background with day/dark mode adaptation */
body.home { background-image: none; background-color: var(--canvas); }
body.home > .container-fluid { min-height: calc(100vh - 64px); padding: 0; }
body.home .welcome-page,
body.home .admin-home,
.admin-home,
body.home .auth-page {
  min-height: calc(100vh - 64px);
  background-image: url("/static/images/library-bg-day.svg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
:root[data-theme="dark"] body.home .welcome-page,
:root[data-theme="dark"] body.home .admin-home,
:root[data-theme="dark"] .admin-home,
:root[data-theme="dark"] body.home .auth-page {
  background-image: url("/static/images/library-bg.svg");
}

:root[data-theme="dark"] .welcome-card,
:root[data-theme="dark"] .admin-card,
:root[data-theme="dark"] .auth-card {
  background: rgba(20, 29, 27, 0.72);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.1) inset,
    0 30px 60px -20px rgba(0, 0, 0, 0.65);
}
:root[data-theme="dark"] .welcome-card::before {
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(255, 255, 255, 0) 40%,
    rgba(255, 255, 255, 0.04) 100%
  );
}
:root[data-theme="dark"] .welcome-title {
  color: #edf4ef;
}
:root[data-theme="dark"] .welcome-subtitle {
  color: #9eb2a8;
}
:root[data-theme="dark"] .welcome-search .input-group {
  background: rgba(14, 20, 19, 0.85);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}
:root[data-theme="dark"] .welcome-search .form-control {
  color: #edf4ef;
}
:root[data-theme="dark"] .welcome-search .form-control::placeholder {
  color: #7a898f;
}
:root[data-theme="dark"] .welcome-search .form-text {
  color: #9eb2a8;
}
:root[data-theme="dark"] .welcome-search .form-text i {
  color: #7a898f;
}
:root[data-theme="dark"] .welcome-hint {
  color: #c0d0c8;
  background: rgba(23, 33, 31, 0.7);
  border-color: rgba(255, 255, 255, 0.1);
}
:root[data-theme="dark"] .welcome-hint:hover {
  background: rgba(41, 75, 61, 0.8);
  color: #edf4ef;
  border-color: rgba(97, 195, 155, 0.4);
}
body, .book-form, .books-view, .book-detail, .user-profile, .manage-users-view, .admin-user-view, .auth-page { color: var(--ink); }

.site-navbar { background: var(--surface); border-color: var(--line); }
.site-brand, .site-brand:hover, .site-brand-text { color: var(--ink); }
.site-brand-mark { background: var(--primary-soft); border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); color: var(--primary); box-shadow: none; }
.site-nav-link, .admin-nav-quick { color: var(--muted); }
.site-nav-link i:first-child, .site-nav-link:hover i:first-child, .site-nav-link.is-active i:first-child, .admin-nav-quick i { color: var(--primary); }
.site-nav-link:hover, .site-nav-link.is-active, .admin-nav-quick:hover { color: var(--ink); background: var(--primary-soft); border-color: var(--line-strong); box-shadow: none; }
.site-dropdown { background: var(--surface-raised); border-color: var(--line); box-shadow: 0 12px 24px rgba(0,0,0,.16); }
.site-dropdown .dropdown-item { color: var(--muted); }
.site-dropdown .dropdown-item:hover, .site-dropdown .dropdown-item:focus { background: var(--primary-soft); color: var(--ink); }
.site-dropdown .dropdown-item i, .site-dropdown .dropdown-item:hover i { color: var(--primary); }

.theme-toggle { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .55rem .75rem; color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .85rem; font-weight: 600; }
.theme-toggle:hover { color: var(--ink); background: var(--primary-soft); border-color: var(--line-strong); }
.theme-toggle i { color: var(--primary); }

.welcome-card, .admin-card, .auth-card, .book-form .form-card, .user-profile .identity-card, .user-profile .content-card, .books-view .book-card, .books-view .empty-state, .book-detail .detail-card, .manage-users-view .user-card, .admin-user-view .user-card { background: var(--surface); border-color: var(--line); box-shadow: 0 12px 28px rgba(0,0,0,.08); }
.welcome-title, .admin-title, .auth-title, .book-form .edit-header h2, .books-view .list-header h4, .books-view .page-header h2, .books-view .book-title, .books-view .book-title a, .book-detail h1, .book-detail h2, .user-profile .identity-name, .user-profile .panel-title, .manage-users-view h1, .admin-user-view h1 { color: var(--ink); -webkit-text-fill-color: currentColor; }
.welcome-sub, .admin-sub, .auth-sub, .book-form .edit-header .subtitle, .books-view .book-desc, .books-view .empty-state, .book-detail p, .user-profile .identity-email, .user-profile .identity-section .bio, .user-profile .panel-sub, .manage-users-view .page-subtitle, .admin-user-view .page-subtitle { color: var(--muted); }
.welcome-icon, .admin-icon, .auth-icon, .admin-action .action-icon { background: var(--primary-soft); border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); box-shadow: none; }
.welcome-icon i, .admin-icon i, .auth-icon i, .admin-action .action-icon, .book-gallery-icon { color: var(--primary); filter: none; }

.welcome-search .search-wrapper, .admin-search .search-wrapper, .books-view .search-wrapper, .book-detail .search-wrapper { background: var(--surface-raised); border-color: var(--line); box-shadow: none; }
.welcome-search .search-wrapper:focus-within, .admin-search .search-wrapper:focus-within, .books-view .search-wrapper:focus-within, .book-detail .search-wrapper:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent); }
.form-control, .book-form .form-control, .auth-card .form-control { color: var(--ink); background: var(--surface-raised); border-color: var(--line); }
.form-control::placeholder, .book-form .form-control::placeholder, .auth-card .form-control::placeholder { color: var(--subtle); }
.form-control:focus, .book-form .form-control:focus, .auth-card .form-control:focus { color: var(--ink); background: var(--surface-raised); border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent); }

.btn-primary, .welcome-search .btn-search, .admin-search .btn-search, .auth-submit, .book-form .btn-submit { background: var(--primary); border-color: var(--primary); box-shadow: none; color: #fff; }
.btn-primary:hover, .welcome-search .btn-search:hover, .admin-search .btn-search:hover, .auth-submit:hover, .book-form .btn-submit:hover { background: var(--primary-hover); border-color: var(--primary-hover); box-shadow: none; transform: none; }
:root[data-theme="dark"] .btn-primary, :root[data-theme="dark"] .welcome-search .btn-search, :root[data-theme="dark"] .admin-search .btn-search, :root[data-theme="dark"] .auth-submit, :root[data-theme="dark"] .book-form .btn-submit { color: #10251d; }

.admin-action, .user-profile .book-row, .book-form .form-check, .book-detail .info-card, .manage-users-view .user-row, .admin-user-view .book-row { background: var(--surface-raised); color: var(--ink); border-color: var(--line); box-shadow: none; }
.admin-action:hover, .user-profile .book-row:hover { background: var(--primary-soft); border-color: var(--line-strong); box-shadow: none; }
.admin-action .action-label, .book-form .form-check-label, .book-form .dropzone .dz-title { color: var(--ink); }
.admin-action .action-hint, .book-form .form-text, .book-form .dropzone .dz-sub { color: var(--muted); }
.book-form .form-section, .book-form .form-actions, .books-view .book-actions, .user-profile .identity-divider { border-color: var(--line); }
.book-form .form-check { align-items: center; margin-bottom: 0; padding: 1rem 1.1rem; border-radius: 10px; background: var(--primary-soft); }
.book-form .form-check-input { width: 1.35rem; height: 1.35rem; margin-top: 0; accent-color: var(--primary); }
.book-form .form-check .form-text { max-width: 48rem; }
.book-form .dropzone { background: var(--surface-raised); border-color: var(--line-strong); }
.book-form .dropzone:hover, .book-form .dropzone.dragover { background: var(--primary-soft); border-color: var(--primary); }
.book-form .dropzone .dz-icon, .book-form .dropzone .dz-title .browse { color: var(--primary); }

.books-view .book-card, .books-view .book-card:hover { box-shadow: 0 8px 20px rgba(0,0,0,.10); }
.books-view .book-cover { background-color: var(--surface-muted); }
.books-view .list-count, .books-view .badge-stats, .user-profile .pill-verified { background: var(--primary-soft); color: var(--primary); border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); }
.books-view .btn-add, .books-view .btn-outline-edit { background: var(--surface-raised); color: var(--primary); border-color: color-mix(in srgb, var(--primary) 55%, var(--line)); }
.books-view .btn-add:hover:not(.disabled), .books-view .btn-outline-edit:hover { background: var(--primary-soft); color: var(--primary-hover); border-color: var(--primary); box-shadow: none; }
.books-view .btn-outline-delete { background: var(--surface-raised); color: var(--danger); border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); }
.books-view .btn-outline-delete:hover { background: color-mix(in srgb, var(--danger) 14%, var(--surface)); color: var(--danger); }

.user-profile .tabs-bar, .user-profile .tab-btn, .user-profile .readonly, .user-profile .empty-books, .book-detail .meta-pills, .book-detail .info-card, .book-detail .platforms, .book-detail-card, .book-detail-card .owners-section, .manage-users-view .search-wrapper, .manage-users-view .user-row, .manage-users-view .empty-state, .manage-users-view .pagination-controls button { background: var(--surface-raised); border-color: var(--line); color: var(--ink); }
.user-profile .tab-btn, .user-profile .tab-btn:hover, .user-profile .tab-btn.active { color: var(--ink); }
.user-profile .tab-btn:hover, .user-profile .tab-btn.active { background: var(--primary-soft); }
.user-profile .tab-btn.active::after { background: var(--primary); }
.user-profile .pill, .book-detail .pill, .book-detail-card .badge-soft-secondary, .manage-users-view .pill { background: var(--surface-muted); border-color: var(--line); color: var(--muted); }
.user-profile .book-assigned, .book-detail .pill-warning, .book-detail-card .badge-soft-warning { background: color-mix(in srgb, var(--warning) 15%, var(--surface)); border-color: color-mix(in srgb, var(--warning) 45%, var(--line)); color: var(--warning); }
.book-detail .pill-success, .book-detail-card .badge-soft-success { background: var(--primary-soft); border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); color: var(--primary); }
.book-detail .label, .book-detail-card .label, .user-profile .label, .manage-users-view .user-email, .manage-users-view .user-meta, .manage-users-view .pagination-info { color: var(--subtle); }
.book-detail .value, .book-detail-card .value, .manage-users-view .user-name, .user-profile .book-title, .user-profile .book-author strong { color: var(--ink); }
.book-detail .btn-add, .book-detail-card .btn-outline-edit { background: var(--primary); border-color: var(--primary); color: #fff; }
.book-detail-card .btn-outline-delete, .manage-users-view .btn-delete, .manage-users-view .btn-danger-outline { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); background: var(--surface-raised); }
.manage-users-view .clear-btn, .manage-users-view .icon-btn { color: var(--muted); border-color: var(--line); background: var(--surface-raised); }
.manage-users-view .empty-state i, .manage-users-view .spinner { color: var(--primary); border-color: var(--line); border-top-color: var(--primary); }

.headline-info, .headline-success { background: var(--primary-soft); color: var(--primary); border-bottom-color: var(--line); }
:where(a, button, input, select, textarea, [role="button"]):focus-visible { outline-color: var(--focus); }

@media (max-width: 640px) { .theme-toggle { padding: .55rem .7rem; } .theme-toggle .nav-label { display: inline; } }

/* Admin pages that still use legacy fixed colors need explicit dark surfaces. */
:root[data-theme="dark"] .manage-users-view,
:root[data-theme="dark"] .manage-users-view .page-header h2 { color: var(--ink); }
:root[data-theme="dark"] .manage-users-view .account-requests,
:root[data-theme="dark"] .manage-users-view .pagination-wrap,
:root[data-theme="dark"] .manage-users-view .user-row,
:root[data-theme="dark"] .manage-users-view .empty-state { background: var(--surface); border-color: var(--line); color: var(--ink); box-shadow: none; }
:root[data-theme="dark"] .manage-users-view .account-requests-heading h2,
:root[data-theme="dark"] .manage-users-view .account-request-details strong,
:root[data-theme="dark"] .manage-users-view .page-header h2,
:root[data-theme="dark"] .manage-users-view .user-name,
:root[data-theme="dark"] .manage-users-view .pagination-info strong { color: var(--ink); }
:root[data-theme="dark"] .manage-users-view .account-requests-heading p,
:root[data-theme="dark"] .manage-users-view .account-request-details span,
:root[data-theme="dark"] .manage-users-view .account-request-details small,
:root[data-theme="dark"] .manage-users-view .account-requests-empty,
:root[data-theme="dark"] .manage-users-view .pagination-info,
:root[data-theme="dark"] .manage-users-view .page-ellipsis { color: var(--muted); }
:root[data-theme="dark"] .manage-users-view .account-request-row,
:root[data-theme="dark"] .manage-users-view .search-wrapper,
:root[data-theme="dark"] .manage-users-view .icon-btn,
:root[data-theme="dark"] .manage-users-view .page-btn { background: var(--surface-raised); border-color: var(--line); color: var(--ink); }
:root[data-theme="dark"] .manage-users-view .account-request-count,
:root[data-theme="dark"] .manage-users-view .badge-stats { background: var(--primary-soft); color: var(--primary); }
:root[data-theme="dark"] .manage-users-view .search-wrapper .form-control { background: transparent; color: var(--ink); }
:root[data-theme="dark"] .manage-users-view .search-wrapper .form-control::placeholder { color: var(--subtle); }
:root[data-theme="dark"] .manage-users-view .search-wrapper .search-icon,
:root[data-theme="dark"] .manage-users-view .search-wrapper .clear-btn { color: var(--subtle); }
:root[data-theme="dark"] .manage-users-view .btn-request-approve { background: var(--primary-soft); color: var(--primary); }
:root[data-theme="dark"] .manage-users-view .btn-request-approve:hover { background: color-mix(in srgb, var(--primary) 24%, var(--surface)); }
:root[data-theme="dark"] .manage-users-view .btn-request-reject { background: color-mix(in srgb, var(--danger) 17%, var(--surface)); color: var(--danger); }
:root[data-theme="dark"] .manage-users-view .user-row.is-locked { background: color-mix(in srgb, var(--danger) 9%, var(--surface)); }
:root[data-theme="dark"] .manage-users-view .user-avatar { background: var(--surface-muted); color: var(--muted); box-shadow: 0 0 0 3px var(--surface), 0 0 0 4px var(--line); }
:root[data-theme="dark"] .manage-users-view .user-email,
:root[data-theme="dark"] .manage-users-view .user-bio,
:root[data-theme="dark"] .manage-users-view .user-meta,
:root[data-theme="dark"] .manage-users-view .icon-btn { color: var(--muted); }
:root[data-theme="dark"] .manage-users-view .pill-books { background: color-mix(in srgb, var(--warning) 18%, var(--surface)); color: var(--warning); border-color: color-mix(in srgb, var(--warning) 42%, var(--line)); }
:root[data-theme="dark"] .manage-users-view .pill-locked { background: color-mix(in srgb, var(--danger) 17%, var(--surface)); color: var(--danger); border-color: color-mix(in srgb, var(--danger) 42%, var(--line)); }
:root[data-theme="dark"] .manage-users-view .pill-ago { background: var(--surface-muted); color: var(--muted); border-color: var(--line); }
:root[data-theme="dark"] .manage-users-view .page-btn:hover:not(:disabled):not(.active),
:root[data-theme="dark"] .manage-users-view .icon-btn.btn-disable:hover { background: var(--primary-soft); color: var(--ink); border-color: var(--line-strong); }
:root[data-theme="dark"] .manage-users-view .page-btn.active { background: var(--primary); border-color: var(--primary); color: #10251d; }
:root[data-theme="dark"] .manage-users-view .user-actions { border-color: var(--line); }

:root[data-theme="dark"] .add-user-container .add-user-card { background: var(--surface); border-color: var(--line); color: var(--ink); box-shadow: none; }
:root[data-theme="dark"] .add-user-card .form-section-title { color: var(--ink); }
:root[data-theme="dark"] .add-user-card .form-section-title i { color: var(--primary) !important; }
:root[data-theme="dark"] .add-user-card .form-section-desc,
:root[data-theme="dark"] .add-user-card .form-floating-custom label { color: var(--muted); }
:root[data-theme="dark"] .add-user-card .form-control-custom { background: var(--surface-raised); border-color: var(--line-strong); color: var(--ink); }
:root[data-theme="dark"] .add-user-card .form-control-custom::placeholder { color: var(--subtle); }
:root[data-theme="dark"] .add-user-card .form-control-custom:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent); }
:root[data-theme="dark"] .add-user-card .btn-cancel-user { border-color: var(--line-strong); color: var(--muted); }
:root[data-theme="dark"] .add-user-card .btn-cancel-user:hover { background: var(--surface-muted); color: var(--ink); }
:root[data-theme="dark"] .add-user-card .alert-danger { background: color-mix(in srgb, var(--danger) 15%, var(--surface)); border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); color: var(--danger); }

:root[data-theme="dark"] .analytics-page { color: var(--ink); }
:root[data-theme="dark"] .analytics-eyebrow,
:root[data-theme="dark"] .analytics-date-filter label,
:root[data-theme="dark"] .analytics-metric-label,
:root[data-theme="dark"] .analytics-empty,
:root[data-theme="dark"] .analytics-retention,
:root[data-theme="dark"] .analytics-legend-item,
:root[data-theme="dark"] .analytics-rank-heading,
:root[data-theme="dark"] .analytics-loan-row { color: var(--muted); }
:root[data-theme="dark"] .analytics-date-filter,
:root[data-theme="dark"] .analytics-metric,
:root[data-theme="dark"] .analytics-panel { background: var(--surface); border-color: var(--line); box-shadow: none; }
:root[data-theme="dark"] .analytics-date-filter input,
:root[data-theme="dark"] .analytics-timeline-filter select,
:root[data-theme="dark"] .analytics-series-action { background: var(--surface-raised); border-color: var(--line-strong); color: var(--ink); }
:root[data-theme="dark"] .analytics-date-filter button { background: var(--primary); color: #10251d; }
:root[data-theme="dark"] .analytics-panel h2,
:root[data-theme="dark"] .analytics-panel-heading h2,
:root[data-theme="dark"] .analytics-metric-value,
:root[data-theme="dark"] .analytics-rank-heading strong,
:root[data-theme="dark"] .analytics-loan-row strong { color: var(--ink); }
:root[data-theme="dark"] .analytics-metric-icon { background: var(--primary-soft); color: var(--primary); }
:root[data-theme="dark"] .analytics-timeline-filter,
:root[data-theme="dark"] .analytics-series-option { color: var(--muted); }
:root[data-theme="dark"] .analytics-timeline-filter select:hover,
:root[data-theme="dark"] .analytics-series-action:hover { background: var(--surface-muted); border-color: var(--line-strong); }
:root[data-theme="dark"] .analytics-chart-gridline { stroke: var(--line); }
:root[data-theme="dark"] .analytics-chart-axis-label { fill: var(--subtle); }
:root[data-theme="dark"] .analytics-chart-point { stroke: var(--surface); }
:root[data-theme="dark"] .analytics-series-controls { background: var(--surface-muted); border-color: var(--line); }
:root[data-theme="dark"] .analytics-series-action { color: var(--muted); }
:root[data-theme="dark"] .analytics-rank-track { background: var(--surface-muted); }
:root[data-theme="dark"] .analytics-rank-heading small { color: var(--subtle); }
:root[data-theme="dark"] .analytics-loan-row { border-color: var(--line); }
:root[data-theme="dark"] .library-rules-message.is-success { background: color-mix(in srgb, var(--primary) 14%, var(--surface)); border-color: color-mix(in srgb, var(--primary) 40%, var(--line)); color: var(--primary); }
:root[data-theme="dark"] .library-rules-message.is-error { background: color-mix(in srgb, var(--danger) 14%, var(--surface)); border-color: color-mix(in srgb, var(--danger) 40%, var(--line)); color: var(--danger); }
:root[data-theme="dark"] .library-rules-actions button { color: #10251d; }

/* User-facing pages: replace remaining legacy light-only panel colors. */
:root[data-theme="dark"] .user-profile { color: var(--ink); }
:root[data-theme="dark"] .user-profile .flash,
:root[data-theme="dark"] .books-view .alert-success,
:root[data-theme="dark"] .book-detail .alert-success {
  background: color-mix(in srgb, var(--primary) 16%, var(--surface));
  border-color: color-mix(in srgb, var(--primary) 42%, var(--line));
  color: var(--primary);
}
:root[data-theme="dark"] .books-view .alert-danger {
  background: color-mix(in srgb, var(--danger) 16%, var(--surface));
  border-color: color-mix(in srgb, var(--danger) 42%, var(--line));
  color: var(--danger);
}

:root[data-theme="dark"] .user-profile .avatar-ring {
  background: var(--surface-muted);
  box-shadow: 0 0 0 4px var(--surface), 0 0 0 5px var(--line), 0 10px 25px -10px rgba(0, 0, 0, .45);
}
:root[data-theme="dark"] .user-profile .avatar-placeholder { color: var(--muted); }
:root[data-theme="dark"] .user-profile .profile-photo-form { color: var(--muted); }
:root[data-theme="dark"] .user-profile .profile-photo-form small { color: var(--subtle); }
:root[data-theme="dark"] .user-profile .profile-photo-form button {
  background: var(--surface-raised);
  border-color: var(--line-strong);
  color: var(--ink);
}
:root[data-theme="dark"] .user-profile .profile-photo-form button:hover { background: var(--surface-muted); }
:root[data-theme="dark"] .user-profile .identity-section .meta-line { color: var(--muted); }
:root[data-theme="dark"] .user-profile .identity-section .meta-line i { color: var(--subtle); }
:root[data-theme="dark"] .user-profile .book-side .bg-info,
:root[data-theme="dark"] .user-profile .book-side .bg-secondary {
  background: var(--surface-muted) !important;
  color: var(--muted) !important;
}
:root[data-theme="dark"] .user-profile .pill-books {
  background: color-mix(in srgb, var(--warning) 18%, var(--surface));
  color: var(--warning);
  border-color: color-mix(in srgb, var(--warning) 42%, var(--line));
}
:root[data-theme="dark"] .user-profile .identity-section .bio.muted { color: var(--subtle); }
:root[data-theme="dark"] .user-profile .tabs-bar { background: var(--surface); border-color: var(--line); }
:root[data-theme="dark"] .user-profile .tab-btn { color: var(--muted); }
:root[data-theme="dark"] .user-profile .tab-btn:hover,
:root[data-theme="dark"] .user-profile .tab-btn.active { background: var(--primary-soft); color: var(--ink); }
:root[data-theme="dark"] .user-profile .field label { color: var(--muted); }
:root[data-theme="dark"] .user-profile .field .form-control {
  background: var(--surface-raised);
  border-color: var(--line-strong);
  color: var(--ink);
}
:root[data-theme="dark"] .user-profile .field .form-control:focus {
  background: var(--surface-raised);
  border-color: var(--primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 20%, transparent);
}
:root[data-theme="dark"] .user-profile .field .form-control::placeholder { color: var(--subtle); }
:root[data-theme="dark"] .user-profile .form-actions { border-color: var(--line); }
:root[data-theme="dark"] .user-profile .btn-save { background: var(--primary); color: #10251d; }
:root[data-theme="dark"] .user-profile .btn-save:hover { background: var(--primary-hover); box-shadow: none; }
:root[data-theme="dark"] .user-profile .profile-signout-link {
  background: color-mix(in srgb, var(--danger) 10%, var(--surface));
  border-color: color-mix(in srgb, var(--danger) 35%, var(--line));
  color: var(--danger);
}
:root[data-theme="dark"] .user-profile .profile-signout-link:hover {
  background: color-mix(in srgb, var(--danger) 18%, var(--surface));
  border-color: var(--danger);
  color: var(--danger);
}

:root[data-theme="dark"] .books-view .search-wrapper,
:root[data-theme="dark"] .book-detail .search-wrapper {
  background: var(--surface-raised);
  border-color: var(--line);
  box-shadow: none;
}
:root[data-theme="dark"] .books-view .search-wrapper:focus-within,
:root[data-theme="dark"] .book-detail .search-wrapper:focus-within { border-color: var(--primary); }
:root[data-theme="dark"] .books-view .search-wrapper .search-icon,
:root[data-theme="dark"] .book-detail .search-wrapper .search-icon { color: var(--subtle); }
:root[data-theme="dark"] .books-view .search-wrapper .form-control,
:root[data-theme="dark"] .book-detail .search-wrapper .form-control { color: var(--ink); }
:root[data-theme="dark"] .books-view .search-wrapper .form-control::placeholder,
:root[data-theme="dark"] .book-detail .search-wrapper .form-control::placeholder { color: var(--subtle); }
:root[data-theme="dark"] .books-view .search-wrapper .btn-primary,
:root[data-theme="dark"] .book-detail .search-wrapper .btn-primary { background: var(--primary); color: #10251d; }
:root[data-theme="dark"] .books-view .list-header h4,
:root[data-theme="dark"] .books-view .empty-state h4,
:root[data-theme="dark"] .book-detail .book-name { color: var(--ink); }
:root[data-theme="dark"] .books-view .list-header h4 i { color: var(--primary); }
:root[data-theme="dark"] .books-view .empty-state p { color: var(--muted); }
:root[data-theme="dark"] .books-view .book-cover,
:root[data-theme="dark"] .user-profile .book-cover,
:root[data-theme="dark"] .book-detail .cover-wrapper { background-color: var(--surface-muted); }
:root[data-theme="dark"] .books-view .book-actions { border-color: var(--line); }
:root[data-theme="dark"] .books-view .cover-badge.all-reserved {
  background: color-mix(in srgb, var(--surface-raised) 94%, transparent);
  color: var(--muted);
  border-color: var(--line);
}
:root[data-theme="dark"] .books-view .catalog-filters {
  background: var(--surface);
  border-color: var(--line);
}
:root[data-theme="dark"] .books-view .catalog-category-select,
:root[data-theme="dark"] .books-view .tag-filter-dropdown,
:root[data-theme="dark"] .books-view .tag-filter-dropdown summary,
:root[data-theme="dark"] .books-view .tag-filter-options {
  background: var(--surface-raised);
  border-color: var(--line-strong);
  color: var(--ink);
}
:root[data-theme="dark"] .books-view .tag-filter-options { box-shadow: 0 8px 16px rgba(0, 0, 0, .35); }
:root[data-theme="dark"] .books-view .tag-filter-options label { color: var(--muted); }
:root[data-theme="dark"] .books-view .catalog-category,
:root[data-theme="dark"] .books-view .catalog-tag {
  background: var(--surface-muted);
  color: var(--muted);
}
:root[data-theme="dark"] .books-view .catalog-ebook-badge {
  background: color-mix(in srgb, var(--primary) 18%, var(--surface));
  color: var(--primary);
}
:root[data-theme="dark"] .books-view .mybook-loan-status { color: var(--ink); }
:root[data-theme="dark"] .books-view .mybook-loan-status small { color: var(--muted); }
:root[data-theme="dark"] .books-view .mybook-status-badge,
:root[data-theme="dark"] .book-detail .mybook-status-badge {
  background: color-mix(in srgb, var(--primary) 16%, var(--surface));
  color: var(--primary);
}
:root[data-theme="dark"] .books-view .mybook-status-badge.is-pending,
:root[data-theme="dark"] .book-detail .mybook-status-badge.is-pending {
  background: color-mix(in srgb, var(--warning) 17%, var(--surface));
  color: var(--warning);
}
:root[data-theme="dark"] .books-view .btn-secondary-action,
:root[data-theme="dark"] .book-detail .btn-secondary-action { color: var(--muted); border-color: var(--line-strong); }
:root[data-theme="dark"] .books-view .btn-secondary-action:hover:not(.disabled),
:root[data-theme="dark"] .book-detail .btn-secondary-action:hover:not(.disabled) {
  color: var(--ink);
  background: var(--surface-muted);
  border-color: var(--line-strong);
}

:root[data-theme="dark"] .book-detail .author-line {
  background: var(--surface-raised);
  border-color: var(--line);
  color: var(--muted);
}
:root[data-theme="dark"] .book-detail .author-line .label { color: var(--subtle); }
:root[data-theme="dark"] .book-detail .author-line .value { color: var(--ink); }
:root[data-theme="dark"] .book-detail .book-desc { color: var(--muted); }
:root[data-theme="dark"] .book-detail .cover-wrapper { box-shadow: 0 15px 30px -12px rgba(0, 0, 0, .55); }
:root[data-theme="dark"] .book-detail .btn-add { background: var(--surface-raised); color: var(--warning); border-color: color-mix(in srgb, var(--warning) 45%, var(--line)); }
:root[data-theme="dark"] .book-detail .btn-add:hover:not(.disabled) { background: var(--surface-muted); color: var(--warning); border-color: var(--warning); box-shadow: none; }

.app-confirm-dialog {
  width: min(28rem, calc(100vw - 2rem));
  max-width: none;
  padding: 0;
  border: 1px solid var(--line-strong);
  border-radius: 1rem;
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}
.app-confirm-dialog::backdrop { background: rgba(8, 15, 13, .62); }
.app-confirm-content { padding: 1.5rem; }
.app-confirm-icon {
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: .8rem;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: 1.2rem;
}
.app-confirm-content h2 { margin: 0 0 .45rem; color: var(--ink); font-size: 1.1rem; font-weight: 700; }
.app-confirm-content p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; overflow-wrap: anywhere; }
.app-confirm-actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1.5rem; }
.app-confirm-actions button {
  min-height: 2.55rem;
  padding: .55rem .9rem;
  border: 1px solid var(--line-strong);
  border-radius: .6rem;
  font: inherit;
  font-size: .9rem;
  font-weight: 650;
  cursor: pointer;
}
.app-confirm-cancel { background: var(--surface-raised); color: var(--muted); }
.app-confirm-cancel:hover { background: var(--surface-muted); color: var(--ink); }
.app-confirm-accept { border-color: var(--primary) !important; background: var(--primary); color: #10251d; }
.app-confirm-accept:hover { background: var(--primary-hover); }
.app-confirm-actions button:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }

:root[data-theme="dark"] .app-confirm-dialog { box-shadow: 0 24px 70px rgba(0, 0, 0, .58); }

@media (max-width: 480px) {
  .app-confirm-content { padding: 1.25rem; }
  .app-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; }
}
