.book-card{position:relative;touch-action:pan-y}
.book-card[data-dragging]{transition:none!important;cursor:grabbing;user-select:none;-webkit-user-select:none;z-index:5;box-shadow:-10px 14px 30px #17242c30;will-change:transform,opacity}
.book-card[data-dragging] *{pointer-events:none}
.vault-pick{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:5px;background:var(--paper,#f6f4ed);cursor:pointer}
.vault-pick input{width:16px;height:16px;accent-color:#687f54;cursor:pointer}
.vault-selection,.vault-undo{position:sticky;bottom:14px;z-index:8;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0;padding:12px 14px;border:1px solid color-mix(in srgb,var(--ink) 24%,transparent);border-radius:7px;background:color-mix(in srgb,var(--surface,#f6f4ed) 97%,transparent);box-shadow:0 12px 30px #17242c1f;font-size:12px}
.vault-selection[hidden],.vault-undo[hidden],.vault-removed[hidden]{display:none!important}
.vault-selection>span,.vault-undo>span{font:500 12px var(--serif);color:var(--ink);margin-right:auto}
.vault-selection button,.vault-undo button{min-height:38px}
.vault-selection .danger{background:#f3e2df;border-color:#c99288;color:#7b3d33}
html[data-scene-theme=night] .vault-selection .danger{background:#4b2d2a;border-color:#8f5a51;color:#f1d8d3}
.vault-handles{margin:12px 0}
.vault-handle-list{display:grid;gap:8px;margin:8px 0}
.vault-handle{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 11px;border:1px solid var(--line);border-radius:5px;background:color-mix(in srgb,var(--paper,#f6f4ed) 94%,transparent)}
.vault-handle strong{font:500 13px var(--serif);color:var(--ink)}
.vault-handle small{font-size:10px;color:var(--muted)}
.vault-handle .actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.vault-handle .actions button{padding:6px 10px;font-size:11px;min-height:32px}
.vault-removed{margin:16px 0;padding:10px 12px;border:1px dashed var(--line);border-radius:6px;background:color-mix(in srgb,var(--paper,#f6f4ed) 90%,transparent)}
.vault-removed summary{cursor:pointer;font:500 12px var(--serif);color:var(--ink)}
.vault-removed-actions{display:flex;justify-content:flex-end;margin-top:8px}
.vault-removed-actions button{padding:5px 10px;font-size:11px}
.vault-removed-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:11px}
.vault-removed-row:first-child{border-top:0}
.vault-removed-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.vault-removed-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.vault-removed-row button{padding:5px 9px;font-size:11px}
@media(max-width:640px){.vault-selection,.vault-undo{position:static;align-items:stretch}.vault-selection>span,.vault-undo>span{width:100%;margin:0}.vault-selection button,.vault-undo button{flex:1;min-width:110px}.vault-removed-row{grid-template-columns:1fr auto}.vault-removed-row small{grid-column:1/-1}.vault-handle .actions{margin-left:0}}
@media(prefers-reduced-motion:reduce){.book-card[data-dragging]{transform:none!important;box-shadow:none}}
html[data-motion=quiet] .book-card[data-dragging]{transform:none!important;box-shadow:none}
