/* My plan: compact exercise cards and a focused replacement picker. */
.plan-cards{display:grid;gap:11px}
.plan-card{border:1px solid #71916b55;border-radius:16px;background:linear-gradient(120deg,#efffc00d,#ffffff03);overflow:hidden}
.plan-card.is-custom{border-color:#b3d66b85}
.plan-card-info{display:flex;align-items:center;gap:13px;width:100%;padding:13px 13px 11px;text-align:left;background:none;color:#f3f7ed}
.plan-card-photo{display:block;width:70px;height:70px;object-fit:cover;object-position:center;border-radius:11px;background:#f2f3e9;flex:none}
.plan-card-photo.no-photo{display:grid;place-items:center;background:#ffffff10;color:#bfd7ae}
.plan-card-photo .icon{width:30px;height:30px}
.plan-card-info>span:not(.plan-card-photo){flex:1;min-width:0}
.plan-card-info small{display:block;font-size:9px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:#bdd99f;margin-bottom:5px}
.plan-card-info strong{display:block;font-size:15px;line-height:1.3;letter-spacing:-.25px}
.plan-card-number{display:block;font-size:11px;color:#b4cbb9;margin-top:5px}
.plan-card-info>.icon{width:14px;height:14px;flex:none;color:#b2c7a1}
.plan-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #76916c30;padding:0 10px 0 15px;min-height:45px}
.plan-card-bottom>span{font-size:11px;color:#d3e1ca}
.plan-card-bottom i{font-style:normal;color:#86a07b;padding:0 4px}
.plan-replace{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px;min-height:44px;font-size:12px;font-weight:700;background:none;color:#d3f78a;flex:none}
.plan-replace .icon{width:17px;height:17px}
.plan-replace:hover{color:#f2ffd1}
.plan-card button:focus-visible{outline:2px solid var(--lime);outline-offset:-4px;border-radius:10px}
.plan-additions{margin-top:14px}
.plan-additions .plan-card-info{gap:10px;padding:10px}
.plan-additions .plan-card-photo{width:56px;height:56px}
.plan-additions .plan-card-bottom{padding-inline:10px}

.plan-swap-dialog{width:min(520px,calc(100vw - 32px));max-width:none;height:min(820px,calc(100dvh - 60px));max-height:calc(100dvh - 40px);padding:0;margin:auto;border:1px solid #74906899;border-radius:24px;background:#0a3024;color:#f3f6ec;box-shadow:0 30px 90px #00180a66;overflow:hidden}
.plan-swap-dialog[open]{display:flex;flex-direction:column}
.plan-swap-dialog::backdrop{background:#00190fc2;backdrop-filter:blur(5px)}
.swap-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:23px 22px 18px;flex:none}
.swap-header h2{font-size:27px;line-height:1.15;letter-spacing:-.7px;margin:6px 0 0;outline:0}
.swap-header .icon-button{width:38px;height:38px;flex:none;border:1px solid #718e6e88;border-radius:12px;background:#ffffff07;color:#e9f1e4}
.swap-current{display:flex;align-items:center;gap:12px;margin:0 22px 17px;padding:11px 13px;border:1px solid #92ac7350;background:#e7f5c10a;border-radius:13px;flex:none}
.swap-current-photo{width:47px;height:47px;display:block;object-fit:cover;object-position:center;background:#f1f3e8;border-radius:8px;flex:none}
.swap-current-photo.no-photo{display:grid;place-items:center;background:#ffffff14}
.swap-current>span{min-width:0}.swap-current strong{display:block;font-size:13px;line-height:1.4}.swap-current small{display:block;font-size:10px;color:#b9ceb0;line-height:1.6}
.swap-controls{padding:0 22px 12px;flex:none;border-bottom:1px solid #6f8c6540}
.swap-search{display:block}
.swap-search input{width:100%;min-height:45px;border:1px solid #86a37588;border-radius:11px;background:#06271d;color:#f3f7eb;padding:12px 14px;font:inherit;font-size:14px;box-sizing:border-box;appearance:none}
.swap-search input::placeholder{color:#a8c1aa;opacity:1}
.swap-categories{display:flex;gap:6px;overflow-x:auto;padding:12px 0 3px;scrollbar-width:thin;scrollbar-color:#6c885b transparent}
.swap-categories button{white-space:nowrap;flex:none;min-height:36px;padding:8px 13px;border:1px solid #7d966166;border-radius:30px;background:none;color:#cfe0c5;font:inherit;font-size:11px;font-weight:650}
.swap-categories button[aria-pressed="true"]{background:var(--lime);border-color:var(--lime);color:#123320}
.swap-results{flex:1;min-height:100px;overflow-y:auto;overscroll-behavior:contain;padding:13px 22px 17px;display:flex;flex-direction:column;gap:8px}
.swap-option{display:flex;align-items:center;gap:12px;padding:11px;width:100%;min-height:83px;flex:none;border:1px solid #77936555;border-radius:13px;background:#ffffff06;color:#edf4e6;text-align:left;font:inherit}
.swap-option:hover:not(:disabled){background:#e9f9ce10;border-color:#badc91}
.swap-option[aria-pressed="true"]{background:#d2f78b14;border-color:#c6eb76;box-shadow:inset 0 0 0 1px #c6eb7644}
.swap-option:disabled{opacity:.55;cursor:default}
.swap-photo{display:block;width:59px;height:59px;object-fit:cover;object-position:center;border-radius:9px;background:#f3f5e9;flex:none}
.swap-photo.no-photo{display:grid;place-items:center;background:#ffffff12;color:#c0d4ae}.swap-photo .icon{width:25px;height:25px}
.swap-option>span:not(.swap-photo):not(.swap-radio){flex:1;min-width:0}
.swap-option strong{display:block;font-size:13px;line-height:1.35}
.swap-option small{display:block;font-size:10px;line-height:1.5;color:#b2caab;margin-top:4px}
.swap-option em{display:block;font-size:9px;color:#c9d9b6;font-style:normal;margin-top:3px}
.swap-radio{display:grid;place-items:center;flex:none;width:21px;height:21px;border:1px solid #78936b;border-radius:50%;font-size:13px;font-weight:800;color:#173820}
.swap-option[aria-pressed="true"] .swap-radio{background:var(--lime);border-color:var(--lime)}
.swap-option:disabled .swap-radio{visibility:hidden}
.swap-empty{font-size:13px;line-height:1.6;text-align:center;color:#c1d3b6;padding:25px 7px}
.swap-footer{flex:none;padding:14px 22px 17px;border-top:1px solid #77976166;background:#0b2b20}
#swap-selection{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:3px 12px;font-size:11px;color:#c1d4b3;margin-bottom:10px;min-height:17px}
#swap-selection strong{font-size:13px;color:#f0f6e6}
.swap-footer .primary{width:100%;min-height:48px;font-size:14px;font-weight:800}
.swap-footer .primary:disabled{background:#36563b;color:#a9bea0;opacity:.7;cursor:default;box-shadow:none}
.swap-original{display:block;background:none;color:#d4e8b3;padding:10px 8px 2px;margin:0 auto;font:inherit;font-size:11px;min-height:36px;text-decoration:underline;text-underline-offset:3px}
.swap-note{font-size:9px;line-height:1.5;color:#aabd9f;text-align:center;margin:9px 0 0}
#swap-error{font-size:12px;line-height:1.5;color:#ffc5ad;margin:0 0 10px}
.plan-swap-dialog button:focus-visible,.swap-search input:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.plan-swap-dialog{width:100%;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);margin:24px 0 0;border-radius:24px 24px 0 0;border-bottom:0}.swap-header{padding:20px 18px 14px}.swap-header h2{font-size:25px}.swap-current{margin:0 18px 14px}.swap-controls{padding-inline:18px}.swap-results{padding-inline:18px}.swap-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom))}}
@media(max-width:359px){.plan-card-info{gap:10px}.plan-card-photo{width:60px;height:60px}.plan-card-info strong{font-size:14px}.plan-card-bottom>span{font-size:10px}.swap-header,.swap-controls,.swap-results,.swap-footer{padding-inline:14px}.swap-current{margin-inline:14px}.swap-photo{width:51px;height:51px}.swap-option{gap:10px}}
