/* Holy Family E-Library (4.14.0) */
.elib-app{--el:#0f766e;--el-d:#0b5a54;--el-soft:color-mix(in srgb,#0f766e 9%,#fff);--gh:#24292f;--yt:#c4302b;--so:#1d4ed8}
.elib-app .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.elib-hero{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:center;padding:clamp(18px,3vw,30px);border-radius:22px;background:linear-gradient(135deg,var(--el-soft),#fff);border:1px solid var(--edge-l,rgba(0,0,0,.1));margin-bottom:18px}
.elib-hero h2{margin:0 0 .3em;font-family:var(--f-head);color:var(--c-dark)}
.elib-hero p{margin:0;color:var(--mute,#555)}
.elib-nums{display:flex;gap:10px;list-style:none;margin:0;padding:0}
.elib-nums li{flex:1;background:#fff;border:1px solid var(--edge-l,rgba(0,0,0,.1));border-radius:14px;padding:10px 12px;text-align:center}
.elib-nums b{display:block;font:700 1.6rem/1.1 var(--f-head);color:var(--el)}
.elib-nums span{font-size:.78rem;color:var(--mute,#555)}
.elib-search{display:flex;gap:8px;flex-wrap:wrap}
.elib-search input[type=search]{flex:1 1 280px;min-width:0;padding:13px 16px;border:1.5px solid var(--edge-l,rgba(0,0,0,.18));border-radius:14px;font:inherit;background:#fff}
.elib-search select,.elib-filters select{padding:12px 14px;border:1.5px solid var(--edge-l,rgba(0,0,0,.18));border-radius:14px;font:inherit;background:#fff}
.elib-search input:focus,.elib-search select:focus,.elib-filters select:focus,.elib-suggest input:focus,.elib-suggest select:focus{outline:3px solid color-mix(in srgb,var(--el) 35%,transparent);outline-offset:1px}
.elib-go{padding:12px 24px;border:0;border-radius:14px;background:var(--el);color:#fff;font:700 1rem/1 var(--f-body);cursor:pointer;transition:background .2s,transform .2s}
.elib-go:hover,.elib-go:focus-visible{background:var(--el-d);transform:translateY(-1px)}
.elib-go[disabled]{opacity:.6;cursor:wait;transform:none}
.elib-hint{margin:8px 2px 18px;font-size:.85rem;color:var(--mute,#666)}

.elib-results{margin:0 0 26px;padding:16px;border-radius:18px;background:#fff;border:1.5px solid var(--el)}
.elib-results h3{margin:0 0 4px;font:700 1.1rem/1.2 var(--f-head);color:var(--c-dark)}
.elib-res-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.elib-res-top button{border:0;background:none;color:var(--el);font-weight:700;cursor:pointer}
.elib-grp{margin-top:14px}
.elib-grp h4{margin:0 0 6px;font:700 .85rem/1.2 var(--f-body);text-transform:uppercase;letter-spacing:.05em;color:var(--el-d)}
.elib-grp ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.elib-grp li{padding:9px 12px;border-radius:12px;background:var(--el-soft)}
.elib-grp li a{font-weight:600;color:var(--c-dark);text-decoration:none}
.elib-grp li a:hover{text-decoration:underline}
.elib-grp li small{display:block;color:var(--mute,#555);margin-top:2px}
.elib-grp .elib-empty,.elib-grp .elib-err{margin:0;font-size:.9rem;color:var(--mute,#666)}
.elib-grp .elib-err{color:#9a3412}

.elib-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:6px 0 16px}
.elib-chips{display:flex;gap:8px;flex-wrap:wrap}
.elib-chips button{padding:8px 16px;border-radius:999px;border:1.5px solid var(--edge-l,rgba(0,0,0,.15));background:#fff;font:600 .9rem/1 var(--f-body);color:var(--c-text);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.elib-chips button:hover{border-color:var(--el)}
.elib-chips button.is-on{background:var(--el);border-color:var(--el);color:#fff}

.elib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.elib-card{display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:18px;background:#fff;border:1px solid var(--edge-l,rgba(0,0,0,.1));box-shadow:var(--lift,none);transition:transform .2s,box-shadow .2s,border-color .2s}
.elib-card:hover,.elib-card:focus-within{transform:translateY(-4px);border-color:var(--el);box-shadow:0 14px 30px -12px rgba(15,118,110,.45)}
.elib-card[hidden]{display:none}
.elib-card h3{margin:0;font:700 1.05rem/1.3 var(--f-head)}
.elib-card h3 a{color:var(--c-dark);text-decoration:none}
.elib-card p{margin:0;font-size:.9rem;color:var(--mute,#555);flex:1}
.elib-badge{align-self:flex-start;padding:3px 10px;border-radius:999px;font:700 .7rem/1.5 var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--el)}
.elib-b-github{background:var(--gh)}.elib-b-video{background:var(--yt)}.elib-b-social{background:var(--so)}
.elib-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;font-size:.78rem;color:var(--mute,#777)}
.elib-foot span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.elib-open{flex:none;padding:7px 16px;border-radius:999px;background:var(--el-soft);color:var(--el-d);font-weight:700;text-decoration:none;border:1px solid color-mix(in srgb,var(--el) 30%,transparent)}
.elib-open:hover,.elib-open:focus-visible{background:var(--el);color:#fff}
.elib-none{padding:18px;text-align:center;color:var(--mute,#555)}

.elib-suggest{margin:30px 0 14px;padding:16px 20px;border-radius:18px;background:var(--el-soft);border:1px solid color-mix(in srgb,var(--el) 25%,transparent)}
.elib-suggest summary{cursor:pointer;font-weight:700;color:var(--el-d)}
.elib-suggest form{margin-top:12px;max-width:640px}
.elib-row{margin:0 0 12px}.elib-two{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}
.elib-suggest label{display:block;font-weight:600;font-size:.9rem}
.elib-suggest input,.elib-suggest select{width:100%;margin-top:4px;padding:11px 13px;border:1.5px solid var(--edge-l,rgba(0,0,0,.18));border-radius:12px;font:inherit;background:#fff}
.elib-hp{position:absolute;left:-9999px;height:0;overflow:hidden}
#elib-msg{margin-left:10px;font-weight:600}#elib-msg.ok{color:#15803d}#elib-msg.bad{color:#b91c1c}
.elib-small,.elib-note{font-size:.8rem;color:var(--mute,#666);margin:8px 0 0}
.elib-note{margin-top:18px;padding-top:14px;border-top:1px solid var(--edge-l,rgba(0,0,0,.1))}

@media (max-width:720px){.elib-hero{grid-template-columns:1fr}.elib-two{grid-template-columns:1fr}.elib-search select,.elib-go{flex:1 1 140px}}
@media (prefers-reduced-motion:reduce){.elib-card,.elib-go{transition:none}.elib-card:hover{transform:none}}
