.rails-bootstrap-forms-date-select select,.rails-bootstrap-forms-time-select select,.rails-bootstrap-forms-datetime-select select{display:inline-block;width:auto}.rails-bootstrap-forms-error-summary{margin-top:10px}:root,[data-bs-theme=light]{--app-font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--app-font-serif: "Fraunces", "Iowan Old Style", Georgia, serif;--app-canvas: #f5f4f0;--app-surface-2: #f9f8f5;--app-hover: #f3f5fb;--app-shadow: 0 1px 2px rgba(16, 18, 27, 0.04), 0 2px 10px rgba(16, 18, 27, 0.04);--app-shadow-lg: 0 2px 4px rgba(16, 18, 27, 0.06), 0 12px 32px rgba(16, 18, 27, 0.12);--app-primary: #2563eb;--app-primary-hover: #1d4ed8;--app-primary-active: #1e40af;--app-accent: #f59e0b;--app-chart-bar: #2563eb;--app-chart-bar-hover: #1d4ed8;--app-chart-grid: #ebe9e3;--bs-body-font-family: var(--app-font-sans);--bs-body-font-size: .9375rem;--bs-body-bg: #ffffff;--bs-body-color: #1c1d21;--bs-body-color-rgb: 28, 29, 33;--bs-emphasis-color: #0d0e10;--bs-secondary-color: #5f626b;--bs-tertiary-color: #8c8f97;--bs-tertiary-bg: #f1f0ec;--bs-border-color: #e6e3db;--bs-border-color-translucent: rgba(16, 18, 27, 0.09);--bs-border-radius: .625rem;--bs-border-radius-sm: .5rem;--bs-border-radius-lg: .875rem;--bs-primary: #2563eb;--bs-primary-rgb: 37, 99, 235;--bs-primary-bg-subtle: #e8efff;--bs-primary-border-subtle: #c7d7fe;--bs-primary-text-emphasis: #1e40af;--bs-danger: #dc2626;--bs-danger-rgb: 220, 38, 38;--bs-danger-bg-subtle: #fdecec;--bs-danger-border-subtle: #f8c9c9;--bs-danger-text-emphasis: #a51c1c;--bs-success: #16a34a;--bs-success-rgb: 22, 163, 74;--bs-link-color: #2563eb;--bs-link-color-rgb: 37, 99, 235;--bs-link-hover-color: #1d4ed8;--bs-link-hover-color-rgb: 29, 78, 216;--bs-focus-ring-color: rgba(37, 99, 235, 0.22)}[data-bs-theme=dark]{--app-canvas: #0f1012;--app-surface-2: #1d1e22;--app-hover: #20232b;--app-shadow: none;--app-shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.45);--app-primary: #3f6fea;--app-primary-hover: #5682f0;--app-primary-active: #6a92f3;--app-accent: #fbbf24;--app-chart-bar: #5b8cff;--app-chart-bar-hover: #7ba3ff;--app-chart-grid: #2a2c31;--bs-body-bg: #18191c;--bs-body-color: #e8e8eb;--bs-body-color-rgb: 232, 232, 235;--bs-emphasis-color: #ffffff;--bs-secondary-color: #a3a5ad;--bs-tertiary-color: #7c7f87;--bs-tertiary-bg: #222327;--bs-border-color: #2b2d32;--bs-border-color-translucent: rgba(255, 255, 255, 0.09);--bs-primary: #5b8cff;--bs-primary-rgb: 91, 140, 255;--bs-primary-bg-subtle: #1a2645;--bs-primary-border-subtle: #273a6b;--bs-primary-text-emphasis: #a9c1ff;--bs-danger: #f26b6b;--bs-danger-rgb: 242, 107, 107;--bs-danger-bg-subtle: #3a1a1c;--bs-danger-border-subtle: #5c2629;--bs-danger-text-emphasis: #ffb1b1;--bs-success: #4ade80;--bs-success-rgb: 74, 222, 128;--bs-link-color: #8fb0ff;--bs-link-color-rgb: 143, 176, 255;--bs-link-hover-color: #b3c9ff;--bs-link-hover-color-rgb: 179, 201, 255;--bs-focus-ring-color: rgba(91, 140, 255, 0.3)}body{background:var(--app-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11", "ss01"}h1,h2,h3,h4,h5{letter-spacing:-.01em}a{text-underline-offset:.2em}.app-main{padding-block:1.5rem 3rem}.app-narrow{max-width:48rem;margin-inline:auto}.app-medium{max-width:64rem;margin-inline:auto}.app-header{position:sticky;top:0;z-index:1030;background:color-mix(in srgb, var(--app-canvas) 82%, transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--bs-border-color);padding-top:env(safe-area-inset-top)}.app-header .navbar{--bs-navbar-padding-y: .625rem}.app-brand{display:flex;align-items:center;gap:.5rem;margin-right:1.5rem;font-family:var(--app-font-serif);font-size:1.375rem;font-weight:600;letter-spacing:-.02em;color:var(--bs-emphasis-color)}.app-brand img{width:1.875rem;height:1.875rem}.app-nav{gap:.25rem}.app-nav .nav-link{padding:.375rem .875rem !important;border-radius:999px;font-weight:500;color:var(--bs-secondary-color);transition:background-color .15s, color .15s}.app-nav .nav-link:hover{color:var(--bs-body-color);background:color-mix(in srgb, var(--bs-body-color) 5%, transparent)}.app-nav .nav-link.active{color:var(--bs-emphasis-color);background:color-mix(in srgb, var(--bs-body-color) 8%, transparent)}.app-search{position:relative;flex:1 1 auto;max-width:22rem;margin-inline:auto}.app-search>i{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--bs-tertiary-color);font-size:.8125rem;pointer-events:none}.app-search .form-control{padding-left:2.25rem;border-radius:999px;background:var(--bs-body-bg);height:2.375rem}.app-btn-icon{--bs-btn-padding-x: 0;width:2.375rem;height:2.375rem;display:inline-grid;place-items:center;border-radius:999px;color:var(--bs-secondary-color)}.app-btn-icon:hover,.app-btn-icon.show{color:var(--bs-body-color);background:color-mix(in srgb, var(--bs-body-color) 7%, transparent)}.app-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:1030;display:grid;grid-template-columns:repeat(4, 1fr);gap:.25rem;padding:0.375rem 0.5rem calc(.375rem + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bs-body-bg) 86%, transparent);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--bs-border-color)}.app-tabbar .dropup{display:flex}.app-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.375rem 0;border:0;border-radius:.75rem;background:none;color:var(--bs-secondary-color);font-size:.6875rem;font-weight:500;text-decoration:none}.app-tab i{font-size:1.125rem}.app-tab.active{color:var(--bs-primary)}.app-tab:active,.app-tab.show{background:color-mix(in srgb, var(--bs-body-color) 6%, transparent)}@media (max-width: 991.98px){.app-authenticated .app-main{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}}.app-page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.app-page-eyebrow{margin:0 0 .25rem;font-size:.8125rem;font-weight:600;color:var(--bs-secondary-color)}.app-page-title{margin:0;font-family:var(--app-font-serif);font-size:clamp(1.625rem, calc(1.3rem + 1.2vw), 2.125rem);font-weight:600;letter-spacing:-.02em;color:var(--bs-emphasis-color)}.app-page-subtitle{margin:.25rem 0 0;color:var(--bs-secondary-color)}.app-card{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);box-shadow:var(--app-shadow)}.app-card-body{padding:1.25rem}@media (min-width: 768px){.app-card-body{padding:1.75rem}}.app-section+.app-section{margin-top:1.5rem}.app-section-title{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bs-secondary-color)}.app-empty-state{padding:2.5rem 1rem;text-align:center;color:var(--bs-secondary-color)}.app-empty-state i{display:block;margin-bottom:.75rem;font-size:1.5rem;color:var(--bs-tertiary-color)}.app-alert{display:flex;align-items:center;gap:.625rem;border-radius:var(--bs-border-radius-lg);box-shadow:var(--app-shadow);font-weight:500}.app-alert.alert-info{--bs-alert-bg: var(--bs-body-bg);--bs-alert-color: var(--bs-body-color);--bs-alert-border-color: var(--bs-border-color)}.app-alert.alert-info i{color:var(--bs-primary)}.app-alert.alert-danger{--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-border-color: var(--bs-danger-border-subtle)}.btn{--bs-btn-font-weight: 500;--bs-btn-padding-x: 1rem;--bs-btn-border-radius: var(--bs-border-radius);display:inline-flex;align-items:center;justify-content:center;gap:.375rem}.btn-sm{--bs-btn-padding-x: .75rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.btn-primary{--bs-btn-bg: var(--app-primary);--bs-btn-border-color: var(--app-primary);--bs-btn-hover-bg: var(--app-primary-hover);--bs-btn-hover-border-color: var(--app-primary-hover);--bs-btn-active-bg: var(--app-primary-active);--bs-btn-active-border-color: var(--app-primary-active);--bs-btn-disabled-bg: var(--app-primary);--bs-btn-disabled-border-color: var(--app-primary);--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);box-shadow:0 1px 2px rgba(16,18,27,0.12),inset 0 1px 0 rgba(255,255,255,0.12)}.btn-outline-primary{--bs-btn-color: var(--bs-primary);--bs-btn-border-color: var(--bs-primary-border-subtle);--bs-btn-hover-color: var(--bs-primary-text-emphasis);--bs-btn-hover-bg: var(--bs-primary-bg-subtle);--bs-btn-hover-border-color: var(--bs-primary-border-subtle);--bs-btn-active-color: #fff;--bs-btn-active-bg: var(--app-primary);--bs-btn-active-border-color: var(--app-primary);--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb)}.btn-secondary,.btn-outline-secondary{--bs-btn-color: var(--bs-body-color);--bs-btn-bg: var(--bs-body-bg);--bs-btn-border-color: var(--bs-border-color);--bs-btn-hover-color: var(--bs-body-color);--bs-btn-hover-bg: var(--bs-tertiary-bg);--bs-btn-hover-border-color: var(--bs-border-color);--bs-btn-active-color: var(--bs-body-color);--bs-btn-active-bg: var(--bs-tertiary-bg);--bs-btn-active-border-color: var(--bs-border-color);--bs-btn-disabled-color: var(--bs-secondary-color);--bs-btn-disabled-bg: var(--bs-body-bg);--bs-btn-disabled-border-color: var(--bs-border-color);box-shadow:0 1px 2px rgba(16,18,27,0.05)}.btn-outline-danger{--bs-btn-color: var(--bs-danger);--bs-btn-border-color: var(--bs-danger-border-subtle);--bs-btn-hover-color: var(--bs-danger-text-emphasis);--bs-btn-hover-bg: var(--bs-danger-bg-subtle);--bs-btn-hover-border-color: var(--bs-danger-border-subtle);--bs-btn-active-color: var(--bs-danger-text-emphasis);--bs-btn-active-bg: var(--bs-danger-bg-subtle);--bs-btn-active-border-color: var(--bs-danger)}.btn-link{--bs-btn-color: var(--bs-secondary-color);--bs-btn-hover-color: var(--bs-body-color);text-decoration:none}.app-segmented{padding:.1875rem;border-radius:999px;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color)}.app-segmented>.btn{--bs-btn-border-color: transparent;--bs-btn-color: var(--bs-secondary-color);--bs-btn-hover-color: var(--bs-body-color);--bs-btn-hover-bg: transparent;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-emphasis-color);--bs-btn-active-bg: var(--bs-body-bg);--bs-btn-active-border-color: var(--bs-border-color);border-radius:999px !important;padding-inline:1rem}.app-segmented>.btn-check:checked+.btn{box-shadow:0 1px 2px rgba(16,18,27,0.1)}.dropdown-menu{--bs-dropdown-border-color: var(--bs-border-color);--bs-dropdown-border-radius: var(--bs-border-radius-lg);--bs-dropdown-padding-x: .375rem;--bs-dropdown-padding-y: .375rem;--bs-dropdown-item-padding-x: .75rem;--bs-dropdown-item-padding-y: .5rem;--bs-dropdown-item-border-radius: var(--bs-border-radius-sm);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-bg: var(--bs-primary-bg-subtle);--bs-dropdown-link-active-color: var(--bs-primary-text-emphasis);box-shadow:var(--app-shadow-lg)}.dropdown-item{display:flex;align-items:center;gap:.625rem;font-weight:500}.dropdown-item i{width:1rem;text-align:center;color:var(--bs-secondary-color)}.dropdown-header{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.form-label{margin-bottom:.375rem;font-size:.875rem;font-weight:500}.form-control,.form-select{border-color:var(--bs-border-color);box-shadow:0 1px 2px rgba(16,18,27,0.04)}.form-control:focus,.form-select:focus{border-color:var(--bs-primary);box-shadow:0 0 0 0.25rem var(--bs-focus-ring-color)}.form-check-input{border-color:color-mix(in srgb, var(--bs-body-color) 25%, transparent)}.form-check-input:checked{background-color:var(--app-primary);border-color:var(--app-primary)}.form-check-input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 0.25rem var(--bs-focus-ring-color)}.app-dice-picker{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.app-dice-picker>.btn{--bs-btn-padding-x: .25rem;--bs-btn-padding-y: 0;--bs-btn-font-size: 2rem;--bs-btn-line-height: 1;--bs-btn-color: var(--bs-tertiary-color);--bs-btn-border-color: transparent;--bs-btn-active-color: var(--app-accent);--bs-btn-active-bg: transparent;--bs-btn-active-border-color: transparent;--bs-btn-focus-box-shadow: 0 0 0 .25rem var(--bs-focus-ring-color)}.app-dice-picker>.btn-check:not(:checked)+.btn:hover{color:var(--bs-secondary-color)}.app-dice-picker>.app-dice-picker-none{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .25rem;--bs-btn-font-size: .875rem;--bs-btn-active-color: var(--bs-body-color);--bs-btn-active-bg: var(--bs-tertiary-bg);--bs-btn-active-border-color: var(--bs-border-color);margin-left:.25rem;border-radius:999px}.app-form-section+.app-form-section{margin-top:.5rem;padding-top:1.5rem;border-top:1px solid var(--bs-border-color)}.app-form-actions{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--bs-border-color)}.EasyMDEContainer .editor-toolbar{border-color:var(--bs-border-color);border-radius:var(--bs-border-radius) var(--bs-border-radius) 0 0;background:var(--app-surface-2);opacity:1}.EasyMDEContainer .editor-toolbar button{color:var(--bs-secondary-color);border-radius:.375rem}.EasyMDEContainer .editor-toolbar button:hover,.EasyMDEContainer .editor-toolbar button.active{background:var(--bs-tertiary-bg);border-color:transparent;color:var(--bs-body-color)}.EasyMDEContainer .editor-toolbar i.separator{border-left-color:var(--bs-border-color);border-right-color:transparent}.EasyMDEContainer .CodeMirror{border-color:var(--bs-border-color);border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);background:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--app-font-sans);line-height:1.6}.EasyMDEContainer .CodeMirror-cursor{border-left-color:var(--bs-body-color)}.EasyMDEContainer .CodeMirror-selected,.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected,.EasyMDEContainer .CodeMirror-line::selection,.EasyMDEContainer .CodeMirror-line>span::selection{background:var(--bs-primary-bg-subtle)}.EasyMDEContainer .editor-preview,.EasyMDEContainer .editor-preview-side{background:var(--app-surface-2)}.EasyMDEContainer .editor-statusbar{color:var(--bs-tertiary-color)}.app-table-card{overflow:hidden}.app-table-card .table-responsive{margin:0}.app-table{--bs-table-bg: transparent;--bs-table-color: var(--bs-body-color);--bs-table-hover-bg: var(--app-hover);--bs-table-hover-color: var(--bs-body-color);--bs-table-border-color: var(--bs-border-color);margin:0}.app-table>:not(caption)>*>*{padding:.5rem 1rem}.app-table>thead>tr>th{padding-block:.75rem}.app-table>thead{background:var(--app-surface-2)}.app-table>thead th{font-size:.8125rem;font-weight:600;color:var(--bs-secondary-color);white-space:nowrap;vertical-align:middle;border-bottom-width:0}.app-table>tbody{vertical-align:middle}.app-table>tbody>tr:last-child>td{border-bottom:0}.app-table .app-col-shrink{width:1%;white-space:nowrap}.tablesorter .filtered{display:none}.tablesorter .tablesorter-header:not(.sorter-false){cursor:pointer;user-select:none}.tablesorter .tablesorter-header:not(.sorter-false) .tablesorter-header-inner{display:inline-flex;align-items:center;gap:.375rem}.tablesorter .tablesorter-header:not(.sorter-false) .tablesorter-header-inner::after{content:"";width:.5rem;height:.75rem;background:currentColor;opacity:.3;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 0 8 4.5H0zM4 12 0 7.5h8z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 0 8 4.5H0zM4 12 0 7.5h8z'/%3E%3C/svg%3E") center/contain no-repeat}.tablesorter .tablesorter-header:not(.sorter-false):hover .tablesorter-header-inner::after{opacity:.6}.tablesorter .tablesorter-headerAsc,.tablesorter .tablesorter-headerDesc{color:var(--bs-body-color)}.tablesorter .tablesorter-headerAsc .tablesorter-header-inner::after,.tablesorter .tablesorter-headerDesc .tablesorter-header-inner::after{opacity:1 !important;color:var(--bs-primary)}.tablesorter .tablesorter-headerAsc .tablesorter-header-inner::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 2 8 7H0z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 2 8 7H0z'/%3E%3C/svg%3E")}.tablesorter .tablesorter-headerDesc .tablesorter-header-inner::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 10 0 5h8z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 10 0 5h8z'/%3E%3C/svg%3E")}.tablesorter .tablesorter-filter-row td{padding:0 .5rem .625rem !important;background:var(--app-surface-2);border-bottom:1px solid var(--bs-border-color)}.tablesorter .tablesorter-filter-row .tablesorter-filter{width:100%;min-width:3.5rem;height:2rem;padding:.25rem .625rem;font-size:.8125rem;border-radius:var(--bs-border-radius-sm);background-color:var(--bs-body-bg);box-shadow:none}.tablesorter .tablesorter-filter-row select.tablesorter-filter{padding-right:1.75rem;background-image:var(--bs-form-select-bg-img);background-repeat:no-repeat;background-position:right .5rem center;background-size:12px 9px}.tablesorter .tablesorter-filter-row .disabled{visibility:hidden}.app-book-cell{display:flex;align-items:center;gap:.875rem;min-width:12rem}.app-book-cell-text{min-width:0}.app-book-title{font-weight:500;color:var(--bs-emphasis-color)}.app-book-author{font-size:.8125rem;color:var(--bs-secondary-color)}.app-copy-btn{flex:none;margin-left:-.5rem;padding:.25rem .375rem;border:0;border-radius:.375rem;background:none;color:var(--bs-tertiary-color);font-size:.8125rem;transition:opacity .15s}.app-copy-btn:hover{color:var(--bs-body-color);background:var(--bs-tertiary-bg)}@media (hover: hover){.app-copy-btn{opacity:0}tr:hover .app-copy-btn,.app-copy-btn:focus-visible{opacity:1}}.app-date-cell{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--bs-secondary-color)}.app-comment-cell{max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--bs-secondary-color)}.app-icon-cell{width:1%;text-align:center;white-space:nowrap}.app-icon-rating{color:var(--app-accent)}.app-icon-ok{color:var(--bs-success);opacity:.7}.app-icon-warning{color:var(--app-accent)}.app-status-pill{--bs-badge-font-weight: 600;--bs-badge-padding-x: .5rem;--bs-badge-padding-y: .25rem;border:1px solid transparent;border-radius:999px}.app-status-pill--reading{color:var(--bs-primary-text-emphasis);background:var(--bs-primary-bg-subtle);border-color:var(--bs-primary-border-subtle)}.app-status-pill--abandoned{color:var(--bs-danger-text-emphasis);background:var(--bs-danger-bg-subtle);border-color:var(--bs-danger-border-subtle)}@media (max-width: 767.98px){.app-books-table>*>tr>:nth-child(1),.app-books-table>*>tr>:nth-child(2),.app-books-table>*>tr>:nth-child(3),.app-books-table>*>tr>:nth-child(6),.app-books-table>*>tr>:nth-child(8),.app-shall-read-table>*>tr>:nth-child(1),.app-shall-read-table>*>tr>:nth-child(2),.app-shall-read-table>*>tr>:nth-child(3),.app-shall-read-table>*>tr>:nth-child(5),.app-shall-read-table>*>tr>:nth-child(6){display:none}.app-table>:not(caption)>*>*{padding-inline:.75rem}.app-book-cell{min-width:0}}.app-cover{flex:none;display:block;width:1.75rem;aspect-ratio:2 / 3;object-fit:cover;border-radius:.1875rem;background:var(--bs-tertiary-bg);box-shadow:0 0 0 1px var(--bs-border-color-translucent),0 1px 3px rgba(16,18,27,0.12)}.app-cover--placeholder{display:grid;place-items:center;overflow:hidden;color:oklch(0.45 0.06 var(--app-cover-hue));background:linear-gradient(160deg, oklch(0.93 0.035 var(--app-cover-hue)), oklch(0.86 0.05 var(--app-cover-hue)));font-size:.75rem}[data-bs-theme=dark] .app-cover--placeholder{color:oklch(0.8 0.05 var(--app-cover-hue));background:linear-gradient(160deg, oklch(0.34 0.04 var(--app-cover-hue)), oklch(0.26 0.04 var(--app-cover-hue)))}.app-cover--lg{width:100%;border-radius:.375rem;box-shadow:0 0 0 1px var(--bs-border-color-translucent),var(--app-shadow-lg)}.app-cover--lg.app-cover--placeholder{padding:1.25rem;text-align:center}.app-cover-title{font-family:var(--app-font-serif);font-size:1.375rem;font-weight:600;line-height:1.2}.app-book-hero{display:grid;gap:1.5rem;align-items:start}@media (min-width: 768px){.app-book-hero{grid-template-columns:13rem 1fr;gap:2.5rem}}.app-book-hero-cover{width:9rem;margin-inline:auto}@media (min-width: 768px){.app-book-hero-cover{width:100%}}.app-book-hero-author{margin:0 0 .375rem;font-weight:500;color:var(--bs-secondary-color)}.app-book-hero-title{margin:0 0 1rem;font-family:var(--app-font-serif);font-size:clamp(1.75rem, calc(1.3rem + 1.8vw), 2.75rem);font-weight:600;line-height:1.1;letter-spacing:-.025em;color:var(--bs-emphasis-color)}.app-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.app-chips:empty{display:none}.app-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border:1px solid var(--bs-border-color);border-radius:999px;background:var(--bs-body-bg);font-size:.8125rem;font-weight:500;color:var(--bs-secondary-color)}.app-book-facts{--bs-table-bg: transparent;width:auto;margin-bottom:1.5rem}.app-book-facts th,.app-book-facts td{padding:.5rem 0;border-bottom:1px solid var(--bs-border-color);vertical-align:top}.app-book-facts th{padding-right:2.5rem;font-size:.8125rem;font-weight:500;color:var(--bs-secondary-color);white-space:nowrap}.app-book-facts td{font-variant-numeric:tabular-nums}.app-book-facts tr:last-child>*{border-bottom:0}.app-book-actions{display:flex;flex-wrap:wrap;gap:.5rem}.app-prose{max-width:70ch;font-size:1rem;line-height:1.7}.app-prose>:last-child{margin-bottom:0}.app-prose p{margin-bottom:1em}.app-gallery{display:grid;grid-template-columns:repeat(auto-fill, minmax(10rem, 1fr));gap:.75rem}.app-gallery-item{position:relative}.app-gallery-item img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--bs-border-radius);box-shadow:0 0 0 1px var(--bs-border-color-translucent)}.app-gallery-delete{position:absolute;top:.5rem;right:.5rem;display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:rgba(0,0,0,0.55);color:#fff;font-size:.8125rem;backdrop-filter:blur(4px)}.app-gallery-delete:hover{background:var(--bs-danger);color:#fff}.app-lookup-results{--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-radius: var(--bs-border-radius)}.app-lookup-results img{width:2.75rem;border-radius:.1875rem;box-shadow:0 0 0 1px var(--bs-border-color-translucent)}.app-stat-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:.75rem;margin-bottom:1.25rem}.app-stat-tile{padding:1rem 1.25rem}@media (max-width: 575.98px){.app-stat-tile{padding:.75rem .875rem}.app-stat-tile .app-stat-value{font-size:1.25rem}.app-stat-tile .app-stat-label,.app-stat-tile .app-stat-note{font-size:.75rem}}.app-stat-label{font-size:.8125rem;font-weight:500;color:var(--bs-secondary-color)}.app-stat-value{margin-top:.25rem;font-size:1.75rem;font-weight:600;letter-spacing:-.02em;line-height:1.2;color:var(--bs-emphasis-color)}.app-stat-note{margin-top:.125rem;font-size:.8125rem;color:var(--bs-tertiary-color)}.app-chart-wrap{position:relative}.app-search-term{color:var(--bs-emphasis-color)}.app-auth{min-height:70vh;display:grid;place-items:center}.app-auth-card{width:100%;max-width:24rem;padding:2rem}.app-auth-logo{display:block;width:3.5rem;height:3.5rem;margin:0 auto 1rem}.app-auth-title{margin:0;text-align:center;font-family:var(--app-font-serif);font-size:1.75rem;font-weight:600;color:var(--bs-emphasis-color)}.app-auth-subtitle{margin:.25rem 0 1.75rem;text-align:center;color:var(--bs-secondary-color)}.app-facts-list{display:grid;grid-template-columns:max-content 1fr;gap:.75rem 2.5rem;margin:0}.app-facts-list dt{font-weight:500;color:var(--bs-secondary-color)}.app-facts-list dd{margin:0;font-variant-numeric:tabular-nums}
