/* Library overlay (dark, matches the camera app). */
.lib-root{position:absolute;inset:0;z-index:26;display:flex;flex-direction:column;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) calc(12px + env(safe-area-inset-left,0px));background:#07080d;color:#fff}
.lib-root button,.lib-root select{min-height:44px;min-width:44px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.1);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.lib-root button:disabled{opacity:.4;cursor:not-allowed}
.lib-root :focus-visible{outline:3px solid #fff;outline-offset:2px}
.lib-top{display:flex;align-items:center;gap:8px;flex:none}.lib-title{flex:1;margin:0;font-size:19px;font-weight:800}
.lib-tabs{display:flex;gap:6px;overflow-x:auto;flex:none}.lib-tabs button{flex:0 0 auto}
.lib-tabs button.is-active,.lib-root button[aria-pressed=true]:not(.lib-fav):not(.lib-open),.lib-primary{background:linear-gradient(135deg,#8b5cf6,#ec4899 48%,#f43f5e);border-color:transparent}
.lib-status{margin:0;font-size:12px;color:rgba(255,255,255,.6);flex:none}
.lib-banners{flex:none;display:flex;flex-direction:column;gap:6px}.lib-warn,.lib-note{margin:0;font-size:12px;line-height:1.5}.lib-warn{padding:10px 12px;border-radius:12px;background:rgba(244,63,94,.18);border:1px solid rgba(244,63,94,.5);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lib-note{color:rgba(255,255,255,.6)}
.lib-grid{flex:1 1 auto;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;align-content:start;padding-bottom:12px}
.lib-card{position:relative;display:flex;flex-direction:column;gap:4px}.lib-card.is-selected .lib-open{outline:3px solid #ec4899}
.lib-open{position:relative;padding:0!important;aspect-ratio:3/4;border-radius:14px!important;overflow:hidden;background:#161922!important}
.lib-open img{width:100%;height:100%;object-fit:cover;display:block}.lib-card.no-thumb .lib-open::after{content:"미리보기 없음";position:absolute;inset:0;display:grid;place-items:center;font-size:11px;color:rgba(255,255,255,.6)}
.lib-badge{position:absolute;left:6px;bottom:6px;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.65);font-size:11px}.lib-unsaved{background:#f43f5e}
.lib-check{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.6);border:2px solid #fff;display:grid;place-items:center;font-size:15px}
.lib-fav{position:absolute!important;right:4px;top:4px;min-width:44px!important;width:44px;padding:0!important;background:rgba(0,0,0,.45)!important;border-color:transparent!important;font-size:20px}
.lib-card:has(.lib-check) .lib-fav{top:36px}
.lib-meta{display:flex;flex-direction:column;font-size:11px;color:rgba(255,255,255,.7);line-height:1.35}
.lib-project .lib-open{aspect-ratio:1/1}.lib-empty{grid-column:1/-1;margin:24px 0;text-align:center;color:rgba(255,255,255,.6);font-size:14px}
.lib-bar{flex:none;display:flex;gap:8px;align-items:center}.lib-count{flex:1;text-align:center;font-size:13px}.lib-danger{background:rgba(244,63,94,.3)!important;border-color:#f43f5e!important}
.lib-foot{flex:none;display:flex;gap:8px}.lib-foot button{flex:1}
.lib-storage{flex:none;max-height:42vh;overflow:auto;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.07);display:flex;flex-direction:column;gap:6px}.lib-storage h3{margin:6px 0 2px;font-size:13px}
.lib-row{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}
@media (prefers-reduced-motion:reduce){.lib-root *{transition:none!important;animation:none!important}}
.lib-root button,.lib-root select{white-space:nowrap}.lib-top{gap:6px}.lib-top button,.lib-top select{padding:0 10px}.lib-title{font-size:17px;min-width:0;overflow:hidden;text-overflow:ellipsis}
