.data-table-scroll{overflow-x:auto}.data-table-toolbar{justify-content:flex-end;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.data-table-toolbar-start{flex:1;min-width:0}.data-table-customizer{position:relative}.data-table-customizer-button{border:1px solid var(--data-table-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--data-table-customizer-bg,var(--surface,light-dark(#fff,#1d2024)));color:inherit;font:inherit;cursor:pointer;white-space:nowrap;border-radius:.375rem;align-items:center;gap:.375rem;padding:.375rem .625rem;display:inline-flex}.data-table-customizer-button:hover{background:var(--data-table-customizer-hover-bg,var(--surface-hover,light-dark(#f5f5f5,#292d33)))}.data-table-customizer-panel{z-index:20;border:1px solid var(--data-table-border,var(--border,light-dark(#d0d0d0,#30343a)));background:var(--data-table-panel-bg,var(--surface,light-dark(#fff,#1d2024)));border-radius:.5rem;min-width:12rem;padding:.75rem;position:absolute;top:calc(100% + .375rem);right:0;box-shadow:0 8px 24px #0000001f}.data-table-customizer-title{margin:0 0 .5rem;font-weight:600}.data-table-customizer-list{gap:.375rem;margin:0;padding:0;list-style:none;display:grid}.data-table-customizer-item{border-radius:.25rem;align-items:center;gap:.25rem;display:flex}.data-table-customizer-item-dragging{opacity:.5}.data-table-customizer-grip{opacity:.5;cursor:grab;flex:none}.data-table-customizer-option{cursor:pointer;flex:1;align-items:center;gap:.5rem;display:flex}.data-table-customizer-option:has(input:disabled){opacity:.6;cursor:not-allowed}.data-table-customizer-actions{gap:.5rem;margin-top:.75rem;display:flex}.data-table{border-collapse:collapse;width:100%;max-width:100%}.data-table-resized{table-layout:fixed;max-width:none}.data-table-resized th,.data-table-resized td{box-sizing:border-box}.data-table-resized td{text-overflow:ellipsis;overflow:hidden}.data-table th:has(>.data-table-resize-handle){position:relative}.data-table-resize-handle{z-index:1;cursor:col-resize;touch-action:none;user-select:none;width:8px;position:absolute;top:0;bottom:0;right:-4px}.data-table-resize-handle:after{content:"";width:2px;position:absolute;top:0;bottom:0;left:3px}.data-table-resize-handle:hover:after,.data-table-resize-handle:focus-visible:after,.data-table-resize-handle:active:after{background:var(--data-table-border,var(--border,light-dark(#8a8a8a,#6a6e75)))}.data-table-resize-handle:focus-visible{outline:none}.data-table-sort{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0}.data-table-sort:hover{color:inherit;background:0 0;text-decoration:underline}.data-table-sort-indicator{text-align:center;width:1em;margin-left:.25em;display:inline-block}.data-table-status{color:var(--text-secondary,#616161)}.combobox{min-width:0;position:relative}.combobox-input{box-sizing:border-box;border:1px solid var(--combobox-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--combobox-bg,var(--surface,light-dark(#fff,#1d2024)));width:100%;color:inherit;font:inherit;text-overflow:ellipsis;cursor:pointer;border-radius:.375rem;padding:.375rem 1.8rem .375rem .5rem}.combobox-open .combobox-input{cursor:text}.combobox-input:disabled{cursor:not-allowed;opacity:.6}.combobox-with-detail .combobox-input{color:#0000}.combobox-with-icon .combobox-input{padding-left:1.7rem}.combobox-icon{color:var(--combobox-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));pointer-events:none;display:inline-flex;position:absolute;top:50%;left:.55rem;transform:translateY(-50%)}.combobox-option-icon{vertical-align:-.15em;color:var(--combobox-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));margin-right:.4rem;display:inline-flex}.combobox-chevron{color:var(--combobox-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));pointer-events:none;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.combobox-list{z-index:20;border:1px solid var(--combobox-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--combobox-panel-bg,var(--surface,light-dark(#fff,#1d2024)));border-radius:.375rem;max-height:16rem;margin:0;padding:.2rem;position:absolute;top:calc(100% + .2rem);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.combobox-preview{z-index:20;border:1px solid var(--combobox-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--combobox-panel-bg,var(--surface,light-dark(#fff,#1d2024)));pointer-events:none;border-radius:.375rem;width:max-content;padding:.5rem;position:absolute;top:calc(100% + .2rem);left:calc(100% + .4rem);box-shadow:0 8px 24px #0000001f}.combobox-option,.combobox-empty{border-radius:.25rem;padding:.3rem .5rem}.combobox-option{cursor:pointer}.combobox-option-label,.combobox-detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.combobox-detail{color:var(--combobox-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));font-size:.875em;font-weight:400}.combobox-value{pointer-events:none;align-items:baseline;gap:.6rem;min-width:0;display:flex;position:absolute;top:50%;left:calc(.5rem + 1px);right:1.8rem;transform:translateY(-50%)}.combobox-with-icon .combobox-value{left:calc(1.7rem + 1px)}.combobox-value>.combobox-option-label{flex:0 auto;min-width:3rem}.combobox-value>.combobox-detail{flex:0 auto;min-width:0}.combobox-option-active{background:var(--combobox-hover-bg,var(--surface-hover,light-dark(#f5f5f5,#292d33)))}.combobox-option[aria-selected=true]{font-weight:600}.combobox-option-add{border-top:1px solid var(--combobox-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--combobox-panel-bg,var(--surface,light-dark(#fff,#1d2024)));color:var(--combobox-accent,var(--primary,light-dark(#1a66d6,#6ea8fe)));border-radius:0 0 .25rem .25rem;align-items:center;gap:.4rem;margin-top:.2rem;font-weight:600;display:flex;position:sticky;bottom:-.2rem}.combobox-option-add.combobox-option-active{background:var(--combobox-hover-bg,var(--surface-hover,light-dark(#f5f5f5,#292d33)))}.combobox-option-empty,.combobox-empty{color:var(--combobox-muted,var(--text-secondary,light-dark(#616161,#9b9da5)))}.combobox-list-detail{grid-template-columns:minmax(0,max-content) minmax(0,1fr);align-content:start;column-gap:1rem;display:grid}.combobox-list-detail>.combobox-option,.combobox-list-detail>.combobox-empty{grid-column:1/-1;grid-template-columns:subgrid;align-items:baseline;display:grid}.combobox-list-detail>.combobox-option-add{align-items:center;display:flex}.filter-table-tabs{border-bottom:1px solid var(--filter-table-border,var(--border,light-dark(#d0d0d0,#3a3e45)));gap:.25rem;margin-bottom:.75rem;display:flex}.filter-table-tab{color:var(--filter-table-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.375rem .375rem 0 0;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.5rem .875rem;display:inline-flex}.filter-table-tab:hover{color:inherit;background:0 0}.filter-table-tab[aria-selected=true]{border-color:var(--filter-table-border,var(--border,light-dark(#d0d0d0,#3a3e45))) var(--filter-table-border,var(--border,light-dark(#d0d0d0,#3a3e45))) transparent;background:var(--filter-table-bg,var(--surface,light-dark(#fff,#1d2024)));color:inherit;font-weight:600}.filter-table-badge{background:var(--filter-table-accent,var(--primary,light-dark(#1a66d6,#6ea8fe)));color:light-dark(#fff,#10141a);text-align:center;border-radius:999px;min-width:1.25rem;padding:.05rem .4rem;font-size:.75em;font-weight:600}.filter-table-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-table-input{box-sizing:border-box;border:1px solid var(--filter-table-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--filter-table-bg,var(--surface,light-dark(#fff,#1d2024)));width:100%;color:inherit;font:inherit;border-radius:.375rem;padding:.375rem .5rem}.filter-table-search{flex:0 16rem;min-width:10rem;position:relative}.filter-table-search .filter-table-input{padding-left:1.9rem}.filter-table-search-icon{color:var(--filter-table-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));pointer-events:none;position:absolute;top:50%;left:.55rem;transform:translateY(-50%)}.filter-table-pills,.filter-table-chips{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.filter-table-pill,.filter-table-chip{background:var(--filter-table-pill-bg,light-dark(#1a66d61f,#6ea8fe29));color:var(--filter-table-accent,var(--primary,light-dark(#1a66d6,#6ea8fe)));font:inherit;border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.8125rem;line-height:1.4;display:inline-flex}.filter-table-pill{cursor:pointer}.filter-table-pill:hover{background:var(--filter-table-pill-bg,light-dark(#1a66d61f,#6ea8fe29));border-color:currentColor}.filter-table-pill-clear{color:var(--filter-table-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));background:0 0}.filter-table-pill-clear:hover{background:0 0}.filter-table-saved{flex:0 14rem;align-items:center;gap:.25rem;min-width:9rem;display:flex}.filter-table-saved>:first-child{flex:1;min-width:0}.filter-table-save{align-items:center;gap:.375rem;display:flex}.filter-table-save .filter-table-input{width:12rem}.filter-table-chip-remove{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.filter-table-chip-remove:hover{background:0 0}.filter-table-multi{gap:.375rem;min-width:0;display:grid}.filter-table-form{--filter-table-label-width:9rem;--filter-table-label-gap:1rem;gap:1.25rem;max-width:40rem;display:grid}.filter-table-fieldset{border:none;gap:.5rem;min-width:0;margin:0;padding:0;display:grid}.filter-table-fieldset+.filter-table-fieldset{border-top:1px solid var(--filter-table-border,var(--border,light-dark(#d0d0d0,#3a3e45)));padding-top:1.25rem}.filter-table-legend{float:left;width:100%;padding:0 0 0 calc(var(--filter-table-label-width) + var(--filter-table-label-gap));box-sizing:border-box;color:var(--filter-table-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));letter-spacing:.04em;text-transform:uppercase;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.filter-table-field{grid-template-columns:var(--filter-table-label-width) minmax(0, 1fr);align-items:start;gap:var(--filter-table-label-gap);display:grid}.filter-table-label{padding-top:calc(.375rem + 1px)}.filter-table-form-actions{border-top:1px solid var(--filter-table-border,var(--border,light-dark(#d0d0d0,#3a3e45)));justify-content:flex-end;gap:.5rem;padding-top:1.25rem;display:flex}.filter-table-button{align-items:center;gap:.375rem;display:inline-flex}.filter-table-button-primary{border-color:var(--filter-table-accent,var(--primary,light-dark(#1a66d6,#6ea8fe)));background:var(--filter-table-accent,var(--primary,light-dark(#1a66d6,#6ea8fe)));color:light-dark(#fff,#10141a);font-weight:600}.filter-table-button-primary:hover{filter:brightness(1.1);background:var(--filter-table-accent,var(--primary,light-dark(#1a66d6,#6ea8fe)))}@media (width<=640px){.filter-table-field{grid-template-columns:1fr;gap:.25rem}.filter-table-label{padding-top:0}.filter-table-legend{padding-left:0}}.search-bar{align-items:center;display:flex;position:relative}.search-bar-input{box-sizing:border-box;border:1px solid var(--search-bar-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--search-bar-bg,var(--surface,light-dark(#fff,#1d2024)));width:100%;color:inherit;font:inherit;border-radius:.375rem;padding:.5rem 2.4rem}.search-bar-icon{color:var(--search-bar-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));pointer-events:none;position:absolute;left:.8rem}.search-bar-clear{width:28px;height:28px;color:var(--search-bar-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;right:.4rem}.search-bar-clear:hover{background:var(--search-bar-hover-bg,var(--surface-hover,light-dark(#f5f5f5,#292d33)));color:inherit}.search-bar-shortcut{border:1px solid var(--search-bar-border,var(--border,light-dark(#d0d0d0,#3a3e45)));background:var(--search-bar-hover-bg,var(--surface-hover,light-dark(#f5f5f5,#292d33)));color:var(--search-bar-muted,var(--text-secondary,light-dark(#616161,#9b9da5)));pointer-events:none;user-select:none;border-radius:6px;padding:.15rem .4rem;font-family:inherit;font-size:.75rem;position:absolute;right:.7rem}@media (pointer:coarse){.search-bar-shortcut{display:none}}:root{color-scheme:dark;--bg:#101214;--surface:#191c1f;--surface-2:#22262a;--text:#eef0f2;--muted:#a0a7ad;--border:#30363b;--input-bg:#15181a;--button-bg:#95cf43;--button-text:#101507;--accent:#a6b7a2;--danger:#ff8a80;--shadow:0 1px 2px #0006, 0 12px 32px -12px #0009;--radius:14px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}.page{min-height:100vh;padding-left:236px}.sidebar{z-index:20;background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:236px;padding:1.25rem .85rem;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:.7rem;padding:0 .45rem 1.4rem;display:flex}.sidebar-brand strong{letter-spacing:-.02em;font-size:1.05rem;display:block}.sidebar-nav{flex-direction:column;gap:.35rem;padding-top:1.25rem;display:flex}.sidebar-nav a{color:var(--muted);border:1px solid #0000;border-radius:10px;align-items:center;gap:.7rem;padding:.7rem .75rem;font-size:.92rem;font-weight:650;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:flex}.sidebar-nav a:hover,.sidebar-nav a:focus-visible{color:var(--text);background:var(--surface-2);border-color:var(--border)}.sidebar-nav a.active{color:var(--text);background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:.6rem;margin-top:auto;padding:1rem .45rem 0;display:flex}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:650;display:block;overflow:hidden}.language-select{width:100%;padding:.35rem .5rem;font-size:.85rem}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;min-height:69px;padding:.75rem 1rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.75rem;display:flex}.brand h1{letter-spacing:-.02em;margin:0;font-size:1.25rem}main{flex-direction:column;gap:1rem;margin:0;padding:1rem;display:flex}.add-book-page{flex-direction:column;gap:1rem;width:min(100%,960px);margin-inline:auto;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem}.dialog-backdrop{z-index:50;background:#000000b3;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{width:min(960px,100%);max-height:calc(100vh - 2rem);overflow-y:auto}.controls{flex-direction:column;gap:.9rem;display:flex}input{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:10px;width:100%;padding:.6rem .75rem;font-size:.95rem}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent);outline:none}.clearable-input{min-width:0;display:block;position:relative}.clearable-input input{padding-right:2.3rem}.clearable-input input[type=number]::-webkit-outer-spin-button,.clearable-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.clearable-input input[type=number]{-moz-appearance:textfield;appearance:textfield}.clearable-input input[type=date]{padding-right:4rem}.input-clear{z-index:2;width:1.5rem;height:1.5rem;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;line-height:1;display:grid;position:absolute;top:50%;right:.45rem;transform:translateY(-50%)}.input-clear:hover{background:var(--surface-2);color:var(--text)}.input-clear:active{background:var(--surface-2);color:var(--text);transform:translateY(-50%)}.topbar .search-bar{--search-bar-border:var(--border);--search-bar-bg:var(--surface);--search-bar-muted:var(--muted);--search-bar-hover-bg:var(--surface-2);flex:1;max-width:560px;font-size:1rem}.controls-row{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}button,a.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:.45rem;padding:.55rem .9rem;font-size:.92rem;font-weight:650;text-decoration:none;transition:transform 50ms,filter .15s,background .15s;display:inline-flex}button:active,a.btn:active{transform:translateY(1px)}button:disabled,a.btn:disabled{opacity:.6;cursor:wait}.primary{background:var(--button-bg);color:var(--button-text);border-color:var(--button-bg)}.primary:hover{filter:brightness(1.06)}.ghost{color:var(--text);border-color:var(--border);background:0 0}.ghost:hover{background:var(--surface-2)}.secondary{background:color-mix(in srgb, var(--accent) 14%, var(--surface-2));color:color-mix(in srgb, var(--accent) 60%, var(--text));border-color:color-mix(in srgb, var(--accent) 32%, var(--border))}.secondary:hover{background:color-mix(in srgb, var(--accent) 22%, var(--surface-2))}.save-another{background:color-mix(in srgb, var(--button-bg) 18%, var(--surface-2));color:color-mix(in srgb, var(--button-bg) 75%, var(--text));border-color:color-mix(in srgb, var(--button-bg) 42%, var(--border))}.save-another:hover{background:color-mix(in srgb, var(--button-bg) 26%, var(--surface-2))}.danger-ghost{color:var(--muted);border-color:var(--border);background:0 0;padding:.4rem .7rem;font-size:.85rem}.danger-ghost:hover{color:var(--danger);border-color:var(--danger)}.icon-btn{justify-content:center;width:34px;height:34px;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h2{letter-spacing:-.01em;margin:0;font-size:1.1rem}.form-panel h2{margin-bottom:.25rem}.hint{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.dialog-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dialog-heading .hint{margin-top:.25rem;margin-bottom:0}.dialog-heading .clear{flex:none;position:static}.muted{color:var(--muted)}.form-grid{grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.75rem;display:grid}.form-grid-4{grid-template-columns:repeat(4,1fr);margin-top:.6rem}.add-book-acquisition-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.6rem}.form-grid label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.form-grid label span em{color:var(--danger);font-style:normal}.field-group{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.field-label{color:var(--muted);font-size:.85rem;font-weight:600}select{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:10px;width:100%;padding:.6rem .75rem;font-size:.95rem}.small{font-size:.85rem}.multi-select{position:relative}.multi-select summary{border:1px solid var(--border);background:var(--input-bg);height:44px;min-height:44px;color:var(--text);cursor:pointer;white-space:nowrap;scrollbar-width:none;border-radius:10px;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.3rem;padding:.6rem 2rem .6rem .75rem;font-size:.95rem;font-weight:500;list-style:none;display:flex;overflow:auto hidden}.multi-select summary::-webkit-scrollbar{display:none}.multi-select summary>span:not(.multi-select-chip){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.multi-select-chip{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;align-items:center;gap:.2rem;max-width:100%;padding:.15rem .25rem .15rem .55rem;font-size:.82rem;display:inline-flex}.multi-select-chip>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.multi-select-chip-remove{width:1.2rem;height:1.2rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:inline-flex}.multi-select-chip-remove:hover{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text)}.multi-select summary::-webkit-details-marker{display:none}.multi-select summary:after{content:"⌄";color:var(--muted);font-size:1rem;position:absolute;right:.75rem}.multi-select-options{z-index:5;border:1px solid var(--border);background:var(--surface-2);max-height:180px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:.25rem;padding:.4rem;display:flex;position:absolute;top:calc(100% + .35rem);left:0;right:0;overflow-y:auto}.multi-select>p{z-index:5;border:1px solid var(--border);background:var(--surface-2);box-shadow:var(--shadow);border-radius:10px;margin:0;padding:.8rem;position:absolute;top:calc(100% + .35rem);left:0;right:0}.multi-select-filter{z-index:1;padding:.45rem .6rem;font-size:.9rem;position:sticky;top:0}.multi-select-empty{margin:0;padding:.2rem .5rem}.select-option{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:.45rem .5rem;font-size:.9rem;font-weight:550;display:block}.select-option:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.select-option[aria-selected=true]{font-weight:700}.create-row{text-align:left;width:100%;font:inherit;border:1px dashed var(--border);color:color-mix(in srgb, var(--accent) 60%, var(--text));cursor:pointer;background:0 0;border-radius:7px;padding:.45rem .5rem;font-size:.9rem;font-weight:600;display:block}.create-row:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:var(--accent)}.form-grid .check-item{color:var(--text);cursor:pointer;border-radius:7px;flex-direction:row;align-items:center;gap:.4rem;padding:.45rem .5rem;font-weight:550;display:flex}.check-item:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.check-item input{width:auto;accent-color:var(--accent)}.inline-create{gap:.5rem;display:flex}.inline-create input,.inline-create>.clearable-input{flex:1}.catalog-grid{grid-template-columns:1fr;gap:1rem;display:grid}.catalog-section{min-width:0}.catalog-section-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.9rem;display:flex}.catalog-count{border:1px solid var(--border);min-width:1.65rem;height:1.65rem;color:var(--muted);border-radius:999px;place-items:center;padding:0 .4rem;font-size:.8rem;font-weight:650;display:grid}.catalog-section-header h3{margin:0;font-size:.95rem}.manage-list{flex-direction:column;gap:.4rem;max-height:260px;margin:.75rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.catalog-table-wrap{max-height:260px;margin-top:.75rem;overflow:auto}.catalog-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.86rem}.catalog-table th{z-index:1;background:var(--surface-2);color:var(--muted);letter-spacing:.04em;text-align:left;text-transform:uppercase;padding:.4rem .45rem;font-size:.72rem;font-weight:650;position:sticky;top:0}.catalog-table th:nth-child(2),.catalog-table td:nth-child(2){width:4rem}.catalog-table th:last-child,.catalog-table td:last-child{text-align:right;width:7.25rem}.catalog-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.2rem .45rem}.catalog-table tbody tr:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.catalog-table-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.catalog-table-books{color:var(--muted);font-variant-numeric:tabular-nums}.catalog-section>.inline-create,.catalog-section>.catalog-table-wrap,.catalog-section>.muted{margin-left:0;margin-right:0}.catalog-section>.inline-create{margin-top:0}.catalog-section .inline-create button:disabled{cursor:not-allowed}@media (width>=1001px){main.catalog-page-layout{height:calc(100vh - 69px);min-height:520px}.catalog-page-layout .catalog-grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));min-height:0}.catalog-page-layout .catalog-section{flex-direction:column;min-height:0;display:flex}.catalog-page-layout .catalog-table-wrap{flex:1;min-height:0;max-height:none;margin-top:.75rem}}.multi-select[open] summary{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent)}.multi-select[open] summary:after{content:"⌃"}.manage-row{border:1px solid var(--border);background:var(--input-bg);border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem .6rem;font-size:.9rem;display:flex}.manage-actions{align-items:center;gap:.4rem;display:inline-flex}.small-btn{padding:.35rem .65rem;font-size:.82rem}.catalog-table .manage-actions{justify-content:flex-end;gap:.25rem}.catalog-table .small-btn{padding:.25rem .45rem;font-size:.76rem}.catalog-table .catalog-rename-btn{justify-content:center;padding:.25rem}.catalog-table .danger-ghost{padding:.25rem}.span-2{grid-column:span 2}.form-actions{justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.error{background:color-mix(in srgb, var(--danger) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger);border-radius:10px;padding:.6rem .8rem;font-size:.9rem}.library-head{justify-content:space-between;align-items:baseline;gap:1rem;padding:0;display:flex}.breadcrumb{align-items:center;gap:.5rem;margin:0;padding:0;font-size:.9rem;display:flex}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--text);text-decoration:underline}.breadcrumb-separator{color:var(--muted);user-select:none}.breadcrumb-current{color:var(--text);font-weight:650}.library-head p{margin:0;font-size:.9rem}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.book-table,.data-table{border-collapse:collapse;width:100%;min-width:960px;font-size:.9rem}.compact-table .data-table{min-width:0}.book-table thead th,.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:.7rem .8rem;font-size:.75rem;font-weight:750}.book-table tbody td,.data-table tbody td{border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere;padding:.7rem .8rem}.reading-table .data-table tbody td{padding-block:.3rem}.book-table tbody tr:last-child td,.data-table tbody tr:last-child td{border-bottom:none}.book-table tbody tr:hover,.data-table tbody tr:hover{background:color-mix(in srgb, var(--surface-2) 55%, transparent)}.data-table-wrap.table-wrap{padding:0;overflow:visible}.data-table-wrap.table-wrap .data-table-toolbar{padding:.6rem .8rem 0}.data-table-wrap.table-wrap .data-table-scroll{border-radius:0 0 var(--radius) var(--radius);overflow-x:auto}.data-table-customizer-option input[type=checkbox]{width:auto;accent-color:var(--accent);margin:0;padding:0}.data-table tbody td:last-child,.cell-actions{text-align:right;white-space:nowrap}.data-table .cell-actions{justify-content:flex-end;gap:.35rem;display:inline-flex}.cell-title{font-weight:550}.book-title-cell,.cell-subtitle{display:block}.cell-subtitle{color:var(--muted);font-size:.875em}.book-link{color:inherit;text-decoration:none}.book-link:hover{text-decoration:underline}.book-page{flex-direction:column;gap:1.25rem;display:flex}.book-page-head{align-items:flex-start;gap:1.25rem;display:flex}.book-page-heading{flex-direction:column;gap:.35rem;min-width:0;display:flex}.book-page-heading h2,.book-page-heading p{margin:0}.book-page-subtitle{color:var(--muted);font-size:1.05rem}.book-page-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.book-page-read{align-items:center;gap:.4rem;margin-right:.5rem;display:inline-flex}.book-description{white-space:pre-line;margin:0}.book-details{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.9rem 1.25rem;margin:0;display:grid}.book-details dt{color:var(--muted);font-size:.85rem}.book-details dd{margin:.15rem 0 0}.damages{color:var(--danger)}.page-note-list{flex-direction:column;gap:.4rem;display:flex}.page-note-row{grid-template-columns:minmax(7rem,11rem) minmax(0,1fr) auto;align-items:center;gap:.4rem;display:grid}.page-note-empty{margin:0}.cell-notes{flex-direction:column;gap:.15rem;margin:0;padding-left:1.1rem;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.status{white-space:nowrap;font-size:.85rem;font-weight:500}.status-owned{color:var(--accent)}.status-disposed{color:var(--muted)}.status-unknown{color:#ffd88a}.empty{text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted);flex-direction:column;align-items:center;gap:.6rem;padding:2.5rem 1.5rem;display:flex}.empty h3{color:var(--text);margin:.4rem 0 0}.empty p{margin:0 0 .6rem}.skeleton{border:1px solid var(--border);background:linear-gradient(100deg, var(--surface) 30%, var(--surface-2) 50%, var(--surface) 70%);background-size:200% 100%;border-radius:10px;height:52px;animation:1.2s infinite shimmer}.skeleton-row{margin:.6rem}.skeleton-row:first-child{margin-top:.6rem}@keyframes shimmer{to{background-position:-200% 0}}.spin{animation:.9s linear infinite spin}@keyframes spin{to{rotate:360deg}}@media (width<=640px){.page{padding-left:0}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:auto;padding:.75rem 1rem 0;position:static}.sidebar-brand{border-bottom:none;padding:0 0 .75rem}.sidebar-nav{flex-direction:row;gap:.35rem;padding:0 0 .75rem;overflow-x:auto}.sidebar-nav a{white-space:nowrap}.sidebar-footer{padding:.75rem 0}.topbar{min-height:64px;padding:.75rem 1rem}.topbar .search-bar{max-width:none}main{padding:.75rem .75rem 2rem}.form-grid,.catalog-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.controls-row{flex-direction:column;align-items:stretch}.controls-row .primary{justify-content:center}}.location-list-section .catalog-table-wrap{max-height:70vh}.location-list-tools{align-items:center;gap:.5rem;display:flex}.location-table th:nth-child(2),.location-table td:nth-child(2){width:13rem}.location-table th:nth-child(3),.location-table td:nth-child(3){text-align:right;width:4.5rem}.location-table th:nth-child(4),.location-table td:nth-child(4){width:6.5rem}.location-name{align-items:center;gap:.3rem;min-width:0;display:flex}.location-name-text{min-width:0}.location-table .location-name-text strong,.location-full-path,.location-parent{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.location-table .location-name-text strong{font-weight:600}.location-full-path{color:var(--muted);font-size:.75rem}.location-toggle,.location-toggle-spacer{flex:none;width:1.35rem;height:1.35rem}.location-toggle{color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid}.location-toggle:hover{background:var(--surface-2);color:var(--text)}.location-toggle svg{transition:transform .15s}.location-toggle.open svg{transform:rotate(90deg)}.location-child-count{border:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:0 .35rem;font-size:.7rem}.location-parent-select{width:100%;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:.25rem .45rem;font-size:.82rem}.location-parent-select.top-level{color:var(--muted)}.location-table tr:hover .location-parent-select,.location-parent-select:focus-visible{border-color:var(--border);background:var(--surface-2)}.location-parent-select option{background:var(--surface-2);color:var(--text)}@media (width<=640px){.location-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.location-table tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;display:grid}.location-table td{border-bottom:0}.location-table tbody td:nth-child(n){width:auto}.location-table td:nth-child(2){grid-area:2/1/auto/-1;padding-top:0;padding-left:2.2rem}.location-table .location-parent-select{border-color:var(--border);background:var(--surface-2)}}.book-form-grid>label,.book-form-grid>.field-group{grid-column:1/-1;grid-template-columns:minmax(9rem,1fr) minmax(0,2fr);align-items:center;column-gap:.9rem;display:grid}.book-form-grid>label>span,.book-form-grid>.field-group>.field-label{text-align:right;grid-column:1}.book-form-grid>label>input,.book-form-grid>label>.clearable-input,.book-form-grid>.field-group>:not(.field-label),.book-form-grid>.field-group>.form-grid{grid-column:2}.user-create-grid>label:not(.check-item){grid-column:1/-1;grid-template-columns:minmax(9rem,1fr) minmax(0,2fr);align-items:center;column-gap:.9rem;display:grid}.user-create-grid>label:not(.check-item)>span{text-align:right;grid-column:1}.user-create-grid>label:not(.check-item)>input,.user-create-grid>label:not(.check-item)>.clearable-input{grid-column:2}.location-create-grid{grid-template-columns:1fr}.location-create-grid>label{grid-template-columns:minmax(9rem,1fr) minmax(0,2fr);align-items:center;column-gap:.9rem;display:grid}.location-create-grid>label:not(.check-item)>span{text-align:right;grid-column:1}.location-create-grid>label:not(.check-item)>input,.location-create-grid>label:not(.check-item)>.clearable-input,.location-create-grid>label:not(.check-item)>select{grid-column:2}.user-create-grid>.check-item{grid-column:1/-1;grid-template-columns:minmax(9rem,1fr) minmax(0,2fr);column-gap:.9rem;display:grid}.user-admin-toggle{grid-column:2;align-items:center;gap:.4rem;display:inline-flex}@media (width<=640px){.book-form-grid>label,.book-form-grid>.field-group,.user-create-grid>label:not(.check-item),.location-create-grid>label:not(.check-item),.user-create-grid>.check-item{grid-template-columns:1fr}.user-admin-toggle,.book-form-grid>label>span,.book-form-grid>label>input,.book-form-grid>label>.clearable-input,.book-form-grid>.field-group>.field-label,.book-form-grid>.field-group>:not(.field-label),.book-form-grid>.field-group>.form-grid,.user-create-grid>label:not(.check-item)>span,.user-create-grid>label:not(.check-item)>input,.user-create-grid>label:not(.check-item)>.clearable-input,.location-create-grid>label:not(.check-item)>span,.location-create-grid>label:not(.check-item)>input,.location-create-grid>label:not(.check-item)>.clearable-input,.location-create-grid>label:not(.check-item)>select{grid-column:1}.user-create-grid>label:not(.check-item)>span,.location-create-grid>label:not(.check-item)>span{text-align:left}}.read-checkbox{width:auto;accent-color:var(--accent);cursor:pointer;margin:0;padding:0}.reading-controls{flex-direction:row;align-items:center;gap:1rem}.reading-progress{background:var(--surface-2);border-radius:999px;flex:1;height:8px;overflow:hidden}.reading-progress-bar{background:var(--accent);height:100%;transition:width .2s}.segmented{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:.25rem;min-inline-size:0;margin:0;padding:.2rem;display:inline-flex}.segmented button{padding:.35rem .75rem}.reading-table .data-table td:first-child,.reading-table .data-table th:first-child{width:1%}.reading-table .data-table tbody td:last-child{text-align:left}.auth-page{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100vh;padding:2rem 1rem;display:flex}.auth-brand{letter-spacing:-.03em;font-size:1.5rem;font-weight:750}.auth-card{width:min(100%,400px);padding:1.75rem}.auth-card h1{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.25rem}.auth-card .hint{margin-bottom:0}.auth-fields{flex-direction:column;gap:.9rem;margin:1.4rem 0;display:flex}.auth-fields label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.auth-fields label span em{color:var(--danger);font-style:normal}.auth-card .error{margin:0 0 1rem}.auth-card button[type=submit]{justify-content:center;width:100%;padding-block:.7rem}.auth-footer .language-select{width:auto}
