.collage-library-toolbar{margin:0 0 1.25rem;padding:16px 18px;border:1px solid var(--wb-line);border-radius:16px;background:var(--wb-surface)}
.collage-library-buttons,.collage-selected-template,.collage-selected-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.collage-library-buttons .button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.collage-library-buttons svg{width:18px;height:18px}
.collage-selected-template{margin-top:14px;padding-top:12px;border-top:1px solid var(--wb-line);justify-content:space-between}
.collage-selected-template>span{flex:1;min-width:0;display:grid;gap:3px}.collage-selected-template small{color:var(--wb-muted);font-size:.72rem}.collage-selected-template strong{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collage-library-status{font-size:.75rem;color:var(--wb-muted);line-height:1.6;margin:8px 0 0;overflow-wrap:anywhere}.collage-library-status:empty{display:none}
.collage-library-status.is-error,.collage-dialog-error{color:#ad354d}
.collage-token-buttons{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.collage-token-buttons .button{min-height:44px}
.collage-library-dialog{position:fixed;inset:0;margin:auto;width:min(700px,calc(100% - 48px));max-height:calc(100dvh - 64px);box-sizing:border-box;overflow:auto;padding:24px;border:1px solid var(--wb-line);border-radius:22px;background:var(--paper-solid,#f8fafd);color:var(--wb-text);font:inherit;box-shadow:0 24px 80px rgba(20,35,55,.2)}
.collage-library-dialog::backdrop{background:rgba(20,30,45,.42)}
.collage-library-dialog>header,.collage-library-dialog form>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.collage-library-dialog h2{font-size:1.25rem;letter-spacing:-.02em;margin:0}.collage-library-dialog h3{font-size:.93rem;line-height:1.5;margin:0;overflow-wrap:anywhere}
.collage-library-dialog p{font-size:.82rem;line-height:1.65;color:var(--wb-muted);overflow-wrap:anywhere}
.collage-library-dialog small{font-size:.73rem;color:var(--wb-muted)}
.collage-library-dialog .collage-library-status.is-error,.collage-library-dialog .collage-dialog-error{color:#ad354d}
.collage-library-dialog .button{min-height:44px}.collage-library-dialog .collage-dialog-close{flex:none;width:44px;min-width:44px;font-size:22px;padding:4px 10px;border-radius:50%;line-height:1}
.collage-library-dialog label{display:block;font-size:.85rem;margin:18px 0 8px}
.collage-library-dialog input{box-sizing:border-box;width:100%;min-height:44px;padding:11px 12px;font:inherit;border:1px solid var(--wb-line);border-radius:10px;background:var(--wb-secondary);color:var(--wb-text)}
.collage-library-dialog footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:22px}
.collage-library-browser[open]{display:flex;flex-direction:column}.collage-library-browser>header{flex-shrink:0;margin-bottom:16px}.collage-library-browser>header p{margin:6px 0 0}
.collage-library-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.collage-library-heading small{padding:3px 9px;border:1px solid var(--wb-line);border-radius:20px;font-variant-numeric:tabular-nums;white-space:nowrap}
.collage-library-tools{display:flex;gap:8px;flex-shrink:0}.collage-library-dialog .collage-library-search{position:relative;flex:1;margin:0}.collage-library-search svg{position:absolute;left:12px;top:13px;width:18px;height:18px;color:var(--wb-muted);pointer-events:none}.collage-library-search input{padding-left:38px;font-size:.85rem}
.collage-library-browser>.collage-library-status{flex-shrink:0;margin:8px 2px 12px}.collage-library-tools>.button{flex-shrink:0;min-width:72px}
.collage-library-list{display:grid;align-content:start;gap:10px;overflow:auto;overscroll-behavior:contain;min-height:0;max-height:440px;padding:1px 4px 1px 1px;scrollbar-width:thin}
.collage-library-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--wb-line);border-radius:14px;background:var(--wb-surface)}
.collage-library-item.is-current{border-color:var(--wb-accent);background:var(--paper-tint,var(--wb-secondary))}.collage-library-item-body{min-width:0}.collage-library-item-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}
.collage-template-current{font-size:.66rem;line-height:1.5;padding:2px 6px;color:var(--wb-accent);border:1px solid currentColor;border-radius:5px;white-space:nowrap}
.collage-library-item p{font-size:.76rem;margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
.collage-library-item-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.collage-library-item-actions .button{padding:8px 12px}.collage-library-item-actions .collage-template-delete{width:44px;padding:10px;background:transparent;border-color:transparent;color:var(--wb-muted)}.collage-template-delete svg{width:18px;height:18px;vertical-align:middle}.collage-library-item-actions .collage-template-delete:hover{color:#ad354d;background:var(--wb-secondary)}
.collage-template-preview{width:64px;height:82px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--wb-secondary)}
.collage-template-paper{position:relative;width:46px;max-height:72px;overflow:hidden;border:3px solid #fff;box-shadow:0 2px 7px rgba(24,42,61,.14);background:#fff}
.collage-template-tiles{height:100%;display:grid;grid-template-columns:repeat(var(--preview-columns),1fr);gap:1px;position:absolute;inset:0}.collage-template-tiles i{background:#aab7ca}.collage-template-tiles i:nth-child(3n){background:#cad4df}.collage-template-tiles i:nth-child(3n + 2){background:#8297b2}
.collage-template-copy{position:absolute;top:45%;left:14%;width:72%;height:3px;background:var(--preview-ink);box-shadow:0 6px 0 var(--preview-ink);opacity:.85}.collage-template-corner{position:absolute;top:3px;left:3px;width:10px;height:2px;background:#fff}
.collage-library-dialog .collage-library-footer{flex-shrink:0;display:block;border-top:1px solid var(--wb-line);padding-top:14px;margin-top:16px}.collage-library-footer p{font-size:.75rem;margin:0}.collage-library-footer .button{margin-top:10px;font-size:.75rem}
.collage-library-empty{padding:38px 12px;text-align:center;min-height:120px}.collage-library-empty strong{font-size:.95rem}.collage-library-empty p{margin:8px 0 16px}
.collage-dialog-error:empty{display:none}.collage-library-save-dialog{width:min(440px,calc(100% - 32px))}
.collage-library-dialog input:focus-visible,.collage-library-dialog button:focus-visible{outline:3px solid var(--wb-accent);outline-offset:3px}
@media(max-width:540px){.collage-library-toolbar{padding:14px}.collage-library-buttons .button{flex:1;padding-inline:10px;font-size:.85rem}.collage-selected-template{gap:10px}.collage-selected-template>span{flex-basis:100%}.collage-selected-actions{width:100%}.collage-selected-actions .button{flex:1;min-height:44px;padding:8px;font-size:.78rem}.collage-library-dialog{padding:18px;width:calc(100% - 24px);max-height:calc(100dvh - 40px);border-radius:20px}.collage-library-dialog h2{font-size:1.18rem}.collage-library-heading{gap:8px}.collage-library-heading small{font-size:.68rem}.collage-library-item{grid-template-columns:52px minmax(0,1fr);gap:10px;padding:12px}.collage-template-preview{width:52px;height:68px}.collage-template-paper{width:36px;max-height:58px}.collage-library-item-actions{grid-column:2;justify-content:flex-end;margin-top:-2px}.collage-library-item-actions .button.primary{min-width:76px}.collage-library-list{gap:8px;max-height:none}.collage-library-item h3{font-size:.9rem}.collage-library-browser>.collage-library-status{font-size:.72rem}.collage-library-footer p{font-size:.72rem}}
@media(prefers-reduced-motion:no-preference){.collage-library-dialog[open]{animation:collage-dialog-appear 180ms cubic-bezier(.22,1,.36,1)}.collage-library-dialog .button{transition:background 120ms,color 120ms,transform 120ms}.collage-library-dialog .button:active{transform:scale(.97)}@keyframes collage-dialog-appear{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}}