
#ff2SafeLibrary .ff2-lib-card{ cursor:pointer; }
.libmodal{ position:fixed; inset:0; z-index:9998; display:flex; align-items:flex-start; justify-content:center; padding:40px 18px; overflow:auto; background:rgba(20,28,38,0.55); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); opacity:0; pointer-events:none; transition:opacity .2s; }
.libmodal.open{ opacity:1; pointer-events:auto; }
.libmodal-sheet{ position:relative; width:100%; max-width:440px; background:#fff; border-radius:24px; padding:24px 22px 22px; box-shadow:0 24px 60px rgba(0,0,0,0.3); margin:auto; transform:translateY(12px); transition:transform .2s; }
.libmodal.open .libmodal-sheet{ transform:none; }
.libmodal-x{ position:absolute; top:13px; right:13px; width:32px; height:32px; border-radius:50%; border:none; background:#f0f2ef; color:#5a6b5a; font-size:0.85rem; font-weight:700; cursor:pointer; line-height:1; }
.lib-head{ display:flex; gap:13px; align-items:center; margin-bottom:4px; padding-right:30px; }
.lib-head-icon{ width:50px; height:50px; border-radius:15px; display:flex; align-items:center; justify-content:center; font-size:1.6rem; background:var(--ff-sage-lt,#e8f4e9); flex-shrink:0; }
.lib-head-kicker{ font-size:0.64rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:var(--brown,#7a6b5d); }
.lib-head-title{ font-family:Georgia,serif; font-size:1.3rem; color:var(--navy,#2c3e5c); }
.lib-head-line{ font-size:0.86rem; color:#5b6470; line-height:1.55; margin:8px 0 16px; }
.lib-add-row{ display:flex; gap:8px; margin-bottom:18px; }
.lib-add-row input{ flex:1; min-width:0; padding:11px 13px; border:1.5px solid rgba(36,52,71,0.15); border-radius:12px; font-size:0.92rem; font-family:inherit; color:var(--char,#2d2d2d); }
.lib-add-btn{ background:linear-gradient(135deg,#36a852,#67c878); color:#fff; border:none; border-radius:12px; padding:0 18px; font-size:0.88rem; font-weight:800; cursor:pointer; font-family:inherit; white-space:nowrap; }
.lib-sugg-label, .lib-saved-label{ font-size:0.68rem; font-weight:800; letter-spacing:0.07em; text-transform:uppercase; color:var(--brown,#7a6b5d); margin:0 0 9px; }
.lib-saved-label{ margin-top:18px; }
.lib-sugg{ display:flex; flex-wrap:wrap; gap:7px; }
.lib-sugg-opt{ background:#fff; border:1px dashed rgba(54,168,82,0.45); border-radius:50px; padding:6px 12px; font-size:0.8rem; font-weight:700; color:#2e6b34; cursor:pointer; font-family:inherit; }
.lib-sugg-opt:hover{ background:rgba(54,168,82,0.08); }
.lib-list{ display:flex; flex-direction:column; gap:8px; }
.lib-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; background:#f6f8f5; border:1px solid #e6ede4; border-radius:12px; padding:10px 14px; font-size:0.92rem; font-weight:600; color:var(--char,#2d2d2d); }
.lib-rm{ background:transparent; border:none; color:#b0b8ae; font-size:0.85rem; cursor:pointer; padding:2px 4px; }
.lib-rm:hover{ color:#c05050; }
.lib-empty{ font-size:0.85rem; color:#8a857d; background:#f8f8f6; border:1px dashed rgba(36,52,71,0.12); border-radius:12px; padding:14px; text-align:center; }
.lib-foot{ font-size:0.72rem; color:#8a857d; margin:16px 0 0; text-align:center; line-height:1.5; }
