.full-library-tools{position:sticky;top:8px;z-index:20;display:grid;grid-template-columns:1fr auto;gap:12px;margin:18px 0;background:rgba(16,17,15,.96);backdrop-filter:blur(18px)}.full-library-tools label{display:grid;gap:6px;color:var(--muted);font-size:11px}.full-library-tools input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#080908;color:var(--text);outline:none}.full-library-tools input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(230,190,71,.1)}.full-library-groups{display:flex;gap:8px;overflow:auto;padding:2px 0 14px;scrollbar-width:thin}.full-library-groups button{white-space:nowrap;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#11120f;color:var(--muted);cursor:pointer}.full-library-groups button.active{border-color:var(--gold);background:var(--gold);color:#121009;font-weight:800}.full-library-summary{display:flex;justify-content:space-between;margin:6px 0 13px;color:var(--muted)}.full-library-summary b{color:var(--text)}.full-exercise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.full-exercise-card{padding:0;overflow:hidden}.full-exercise-visual{position:relative;height:220px;background:#090a09}.full-exercise-visual img{width:100%;height:100%;object-fit:cover;display:block}.full-exercise-visual span{position:absolute;left:12px;bottom:12px;padding:5px 9px;border:1px solid rgba(230,190,71,.5);border-radius:999px;background:rgba(6,7,6,.84);color:var(--gold);font-size:10px;font-weight:800}.full-exercise-copy{padding:18px}.full-exercise-copy h3{margin:5px 0 7px;font-size:19px}.full-exercise-copy details{margin:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.full-exercise-copy summary{padding:11px 0;color:var(--gold);font-weight:750;cursor:pointer}.catalog-technique{display:grid;gap:7px;padding-bottom:12px}.catalog-technique p{margin:0;color:var(--muted);font-size:12px}.catalog-technique b{display:block;color:var(--text);margin-bottom:2px}.catalog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.catalog-load-form{display:grid;grid-template-columns:repeat(3,1fr) minmax(130px,auto);gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.catalog-load-form.hidden{display:none}.catalog-load-form input{min-width:0;width:100%;padding:9px;border:1px solid var(--line);border-radius:7px;background:#080908;color:var(--text)}.catalog-save-feedback{grid-column:1/-1;color:var(--muted);font-size:11px;min-height:17px}.catalog-save-feedback.saved{color:var(--green);font-weight:750}.full-library-more{display:block;margin:20px auto;min-width:220px}@media(max-width:1100px){.full-exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.full-library-tools{position:static;grid-template-columns:1fr}.full-exercise-grid{grid-template-columns:1fr}.full-exercise-visual{height:260px}.catalog-actions{grid-template-columns:1fr}.catalog-load-form{grid-template-columns:repeat(3,1fr)}.catalog-load-form button{grid-column:1/-1}}
/* Sets, reps and weight each get a third of the card, labelled, with the button on its own row. */
.catalog-load-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.catalog-load-form label{display:grid;gap:4px;min-width:0}
.catalog-load-form label span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.catalog-load-form input{padding:10px 6px;text-align:center;font-size:16px;font-weight:700}
.catalog-load-form button{grid-column:1/-1}
/* Exercises without their own photo: no borrowed image, just the details. */
.full-exercise-card.no-photo{border-top:3px solid rgba(217,180,74,.5)}
.catalog-actions{grid-template-columns:1fr}
