:root{--bg:#f5f6f8;--surface:#fff;--text:#1b1f24;--text-muted:#5b6472;--border:#dde1e6;--accent:#2f6feb;--accent-text:#fff;--danger:#c0392b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14171c;--surface:#1d2127;--text:#eef1f5;--text-muted:#9aa4b2;--border:#2b3038;--accent:#5b93f5;--accent-text:#0c1220}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}button{cursor:pointer;font-family:inherit}#root{min-height:100vh}.app{max-width:72rem;margin:0 auto;padding:0 1.25rem 3rem}.app__header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1.25rem 0;display:flex}.app__header h1{margin:0;font-size:1.4rem}.app__brand{align-items:center;gap:.6rem;display:flex}.app__logo{width:2.1rem;height:2.1rem}.app__header nav{flex-wrap:wrap;gap:.5rem;display:flex}.app__header nav button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:.5rem 1rem;font-size:.9rem}.app__header nav button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.app__auth{align-items:center;display:flex}.app__user{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.app__user button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:.35rem .8rem;font-size:.85rem}.app__avatar{border-radius:50%;width:1.75rem;height:1.75rem}.landing{justify-content:center;align-items:center;min-height:70vh;padding:2rem 0;display:flex}.landing__card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:1rem;width:100%;max-width:28rem;padding:2.5rem 2rem}.landing__logo{filter:drop-shadow(0 8px 16px #00000040);width:6rem;height:6rem;margin:0 auto 1rem;display:block}.landing__title{margin:0 0 .75rem;font-size:1.75rem}.landing__subtitle{color:var(--text-muted);margin:0 0 1.75rem;line-height:1.5}.landing__actions{flex-direction:column;align-items:stretch;gap:.75rem;display:flex}.landing__actions .btn-primary{padding:.75rem 1.5rem}.landing__guest{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:.75rem 1.5rem;font-size:.95rem}.landing__hint{color:var(--text-muted);margin:1.25rem 0 0;font-size:.85rem}.sign-in-prompt{background:var(--surface);border:1px solid var(--border);text-align:center;color:var(--text-muted);border-radius:.75rem;padding:2rem}.sign-in-prompt .btn-primary{margin-top:.75rem}.app__error{color:var(--danger);border:1px solid var(--danger);background:#c0392b1f;border-radius:.5rem;margin-bottom:1.5rem;padding:.75rem 1rem}.home{grid-template-columns:20rem 1fr;align-items:start;gap:2rem;display:grid}@media (width<=60rem){.home{grid-template-columns:1fr}}.body-diagram{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1rem;position:sticky;top:1rem;box-shadow:0 1px 2px #0000000f}.body-diagram__toggle{justify-content:center;gap:.5rem;margin-bottom:.75rem;display:flex}.body-diagram__toggle button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:999px;padding:.35rem 1.1rem;transition:background .15s,border-color .15s,box-shadow .15s}.body-diagram__toggle button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.body-diagram__hint{text-align:center;color:var(--text-muted);margin:.75rem 0 0;font-size:.9rem}.body-diagram__figure{background:radial-gradient(ellipse 65% 55% at 50% 40%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%);max-width:18rem;margin:0 auto}.body-diagram__figure svg.rbh{filter:drop-shadow(0 3px 6px #00000026)}.body-diagram__figure svg.rbh polygon{transition:fill .25s,filter .15s}.body-diagram__figure svg.rbh polygon:hover{filter:brightness(1.2) drop-shadow(0 0 5px color-mix(in srgb, var(--accent) 60%, transparent));cursor:pointer}@media (width<=30rem){.body-diagram{position:static}.body-diagram__figure{max-width:11rem}}.search-filter{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.search-filter input[type=search]{flex:12rem}.search-filter input,.search-filter select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:.5rem;padding:.5rem .6rem;font-size:.9rem}.home__count{color:var(--text-muted);margin:0 0 .75rem;font-size:.9rem}.exercise-list{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;display:grid}.exercise-list__empty{color:var(--text-muted);text-align:center;padding:2rem 0}.exercise-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;display:flex;position:relative;overflow:hidden}.exercise-card__main{text-align:left;color:inherit;background:0 0;border:none;flex-direction:column;align-items:stretch;width:100%;padding:0;display:flex}.exercise-card__thumb{aspect-ratio:4/3;object-fit:cover;background:var(--bg);width:100%}.exercise-card__thumb--placeholder{color:var(--text-muted);justify-content:center;align-items:center;font-size:.85rem;display:flex}.exercise-card__info{padding:.75rem .9rem}.exercise-card__info h3{margin:0 0 .25rem;font-size:1rem}.exercise-card__meta{color:var(--text-muted);text-transform:capitalize;margin:0;font-size:.8rem}.favorite-btn{border:1px solid var(--border);background:var(--surface);width:2.2rem;height:2.2rem;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;display:flex;position:absolute;top:.5rem;right:.5rem}.favorite-btn--active{color:#e8b800;border-color:#e8b800}.youtube-btn{border:1px solid var(--border);background:var(--surface);color:red;border-radius:50%;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:.9rem;line-height:1;text-decoration:none;display:flex;position:absolute;top:.5rem;left:.5rem}.youtube-link{color:red;border:1px solid red;border-radius:.5rem;align-items:center;gap:.4rem;margin-top:.5rem;padding:.4rem .9rem;font-size:.9rem;text-decoration:none;display:inline-flex}.favorite-btn--wide{border-radius:.5rem;gap:.4rem;width:auto;height:auto;margin-top:1rem;padding:.6rem 1.2rem;font-size:1rem;position:static}.modal-backdrop{z-index:10;background:#00000080;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:.75rem;width:100%;max-width:40rem;padding:1.5rem;position:relative}.modal__close{color:var(--text-muted);background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute;top:.75rem;right:.75rem}.modal__images{gap:.5rem;margin:1rem 0;display:flex;overflow-x:auto}.modal__images img{border-radius:.5rem;height:12rem}.modal__facts{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem;margin:1rem 0;display:grid}.modal__facts strong{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.75rem;display:block}.modal__facts p{text-transform:capitalize;margin:.15rem 0 0}.modal__instructions ol{padding-left:1.2rem}.modal__instructions li{margin-bottom:.5rem}.btn-primary{background:var(--accent);color:var(--accent-text);border:1px solid var(--accent);border-radius:.5rem;padding:.5rem 1rem;font-size:.9rem}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.programs__header,.program-detail__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.program-detail__header h2{flex:auto;margin:0}.programs__header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.programs__header-actions button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:.5rem;padding:.5rem 1rem;font-size:.9rem}.programs__list{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;display:grid}.ai-generate{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;margin-bottom:1rem;padding:1rem 1.25rem}.ai-generate__hint{color:var(--text-muted);margin:0 0 .75rem;font-size:.85rem}.ai-generate__textarea{resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:.5rem;margin-bottom:.5rem;padding:.6rem .75rem}.ai-generate__quota{color:var(--text-muted);margin:0 0 .75rem;font-size:.8rem}.program-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;position:relative;overflow:hidden}.program-card__main{text-align:left;width:100%;color:inherit;background:0 0;border:none;padding:1rem 2.5rem 1rem 1rem;display:block}.program-card__main h3{margin:0 0 .25rem;font-size:1.05rem}.program-card__delete{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--danger);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:flex;position:absolute;top:.5rem;right:.5rem}.program-detail__days{flex-direction:column;gap:1.25rem;display:flex}.program-day{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1rem 1.25rem}.program-day__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.program-day__header h3{margin:0}.program-day__controls{align-items:center;gap:.35rem;display:flex}.program-day__controls button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:.5rem;padding:.3rem .6rem}.program-day__delete{color:var(--danger);border-color:var(--danger)!important}.program-exercise-list{flex-direction:column;gap:.5rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.program-exercise{border:1px solid var(--border);border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.program-exercise__main{text-align:left;min-width:12rem;color:inherit;cursor:pointer;background:0 0;border:none;flex:auto;align-items:center;gap:.75rem;padding:0;display:flex}.program-exercise__main:disabled{cursor:default;opacity:.7}.program-exercise__thumb{object-fit:cover;background:var(--bg);border-radius:.4rem;flex-shrink:0;width:3.5rem;height:3.5rem}.program-exercise__thumb--placeholder{color:var(--text-muted);text-align:center;justify-content:center;align-items:center;font-size:.6rem;display:flex}.program-exercise__info{flex-direction:column;gap:.15rem;display:flex}.program-exercise__name{font-weight:600}.program-exercise__meta{color:var(--text-muted);font-size:.85rem}.program-exercise__controls{align-items:center;gap:.25rem;margin-left:auto;display:flex}.program-exercise__controls button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:.4rem;padding:.2rem .5rem}.program-exercise__remove{color:var(--danger)}.program-day__actions{flex-wrap:wrap;gap:.5rem;display:flex}.program-day__actions button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:.5rem;padding:.45rem .9rem;font-size:.9rem}.program-day__manual{margin-top:.75rem}.program-day__pending-form{background:var(--bg);border-radius:.5rem;flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding:.75rem;display:flex}.program-day__pending-name{flex:100%;margin:0;font-weight:600}.program-day__pending-form label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.program-day__pending-form input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:.4rem;width:6rem;padding:.4rem .5rem}.auto-generate{background:var(--bg);border-radius:.5rem;margin-top:.75rem;padding:.9rem}.auto-generate__fields{flex-direction:column;gap:.9rem;margin-bottom:.9rem;display:flex}.auto-generate fieldset{border:1px solid var(--border);border-radius:.5rem;padding:.6rem .8rem}.auto-generate legend{color:var(--text-muted);padding:0 .3rem;font-size:.8rem}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.4rem;display:grid}.checkbox-option{text-transform:capitalize;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.auto-generate__row{flex-wrap:wrap;gap:1rem;display:flex}.auto-generate__row label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.auto-generate__row select,.auto-generate__row input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:.4rem;padding:.4rem .5rem}.auto-generate__preview{border-top:1px solid var(--border);margin-top:.9rem;padding-top:.9rem}.modal--picker{max-width:64rem}.picker-layout{grid-template-columns:14rem 1fr;align-items:start;gap:1.5rem;display:grid}.picker-layout .body-diagram{position:static}@media (width<=40rem){.picker-layout{grid-template-columns:1fr}}.modal__picker-list{max-height:28rem;margin-top:.75rem;overflow-y:auto}.app__footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);margin-top:3rem;padding-top:1.5rem;font-size:.85rem}.app__footer-links{justify-content:center;align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.app__footer-links button{color:var(--accent);background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.legal-page{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;max-width:42rem;margin:0 auto;padding:1.5rem 2rem 2rem}.legal-page h2{margin-top:0}.legal-page h3{margin-bottom:.4rem}.legal-page p,.legal-page li{color:var(--text);line-height:1.55}.legal-page__updated{color:var(--text-muted);margin-top:-.5rem;font-size:.85rem}.legal-page__inline-link{color:var(--accent);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.consent-banner{background:var(--surface);border:1px solid var(--border);z-index:20;border-radius:.75rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:40rem;margin:0 auto;padding:1rem 1.25rem;display:flex;position:fixed;bottom:1rem;left:1rem;right:1rem;box-shadow:0 .5rem 1.5rem #00000040}.consent-banner p{color:var(--text);flex:16rem;margin:0;font-size:.9rem}.consent-banner__link{color:var(--accent);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.consent-banner__actions{flex-shrink:0;gap:.5rem;display:flex}.consent-banner__actions button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:.5rem;padding:.4rem 1rem;font-size:.85rem}.ad-slot{text-align:center;margin:1.5rem 0}.ad-slot--footer{margin:1rem 0 0}
