:root{
  --paper:#eee4cd;--paper2:#f7f0df;--ink:#0f3151;--olive:#394523;--olive2:#4d5b31;--gold:#a68c48;--text:#273126;--muted:#6f6a5a;--line:#cbbf9f;--danger:#9b3d34;--shadow:0 10px 28px rgba(38,45,28,.14);--radius:20px;--nav-h:76px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#182014}
body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:linear-gradient(140deg,#182014,#283018);color:var(--text)}
button,input,select{font:inherit}
a{color:inherit;text-decoration:none}
button,a,input,select,label{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e6bd49;outline-offset:3px}
button[disabled]{opacity:.58;cursor:not-allowed}
svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.svg-icon{display:inline-grid;place-items:center;width:1.25em;height:1.25em}.svg-icon svg{width:100%;height:100%}
.app-shell{min-height:100vh;max-width:1180px;margin:auto;background:radial-gradient(circle at 15% 10%,rgba(255,255,255,.45),transparent 24%),linear-gradient(180deg,var(--paper2),var(--paper));position:relative;padding-bottom:calc(var(--nav-h) + 34px);box-shadow:0 0 60px rgba(0,0,0,.26)}
.app-shell:before{content:"";position:fixed;inset:0;max-width:1180px;margin:auto;pointer-events:none;opacity:.13;background-image:radial-gradient(#776e58 .6px,transparent .7px);background-size:7px 7px}
.topbar{min-height:94px;display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:12px;padding:10px clamp(14px,3vw,30px);position:relative;z-index:10;background:linear-gradient(180deg,rgba(247,240,223,.98),rgba(247,240,223,.84));backdrop-filter:blur(10px)}
.brand{text-align:center;display:flex;flex-direction:column;line-height:1}.brand-top{font-size:14px;font-weight:850;letter-spacing:.14em;color:var(--olive)}.brand-main{font-family:"Arial Narrow",system-ui,sans-serif;font-stretch:condensed;font-size:clamp(30px,7vw,48px);font-weight:950;letter-spacing:.035em;color:var(--ink)}.brand-mark{font-size:20px;color:var(--olive);margin-top:4px}
.icon-btn{width:48px;height:48px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--olive);color:#fff;cursor:pointer;transition:.16s ease}.icon-btn:hover{background:var(--olive2);transform:translateY(-2px)}.icon-btn:active{transform:translateY(0) scale(.96)}.icon-btn .svg-icon{font-size:25px}.icon-btn.available{box-shadow:0 0 0 4px rgba(230,189,73,.28)}
.view{position:relative;z-index:2;padding:16px clamp(14px,3.6vw,42px) 28px;min-height:calc(100vh - 180px)}
.page-head{text-align:center;max-width:800px;margin:4px auto 20px}.page-head h1{margin:0;color:var(--ink);font-size:clamp(26px,5vw,42px);line-height:1.05;letter-spacing:.02em;font-weight:950}.page-head p{margin:10px auto 0;max-width:670px;color:#4f5345;font-size:clamp(15px,2.5vw,17px);line-height:1.45}
.hero-clean{height:290px;overflow:hidden;border-radius:26px;box-shadow:var(--shadow);margin:0 auto 18px;max-width:940px;background:#d8ccb0}.hero-clean img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:940px;margin:auto}.action-card{display:grid;grid-template-columns:56px 1fr 24px;align-items:center;gap:13px;min-height:112px;padding:18px;border:1px solid rgba(91,84,58,.2);border-radius:18px;background:rgba(255,251,240,.78);box-shadow:0 6px 17px rgba(53,55,37,.09);transition:.16s ease}.action-card>.svg-icon{width:50px;height:50px;border-radius:50%;padding:12px;background:var(--olive);color:#fff}.action-card strong{display:block;color:var(--ink);font-size:18px}.action-card small{display:block;color:#5d604f;line-height:1.35;margin-top:4px;font-size:14px}.action-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(53,55,37,.16);border-color:rgba(77,91,49,.5)}.action-card:hover>span:last-child{transform:translateX(3px)}
.support-mini,.support-card{max-width:940px;margin:18px auto 0;display:grid;grid-template-columns:44px 1fr 22px;gap:12px;align-items:center;padding:13px 16px;border-radius:16px;background:rgba(57,69,35,.09);border:1px solid rgba(57,69,35,.24);transition:.16s}.support-mini>.svg-icon,.support-card>.svg-icon:first-child{width:38px;height:38px;border-radius:50%;padding:9px;background:var(--olive);color:#fff}.support-mini strong,.support-card strong{display:block;color:var(--olive)}.support-mini small,.support-card small{display:block;color:#646858;margin-top:2px}.support-mini:hover,.support-card:hover{background:rgba(57,69,35,.14);transform:translateY(-2px)}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:30;width:min(1180px,100%);height:var(--nav-h);display:grid;grid-template-columns:repeat(5,1fr);background:rgba(38,52,28,.98);border-top:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}.nav-item{color:#d9dbc9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;position:relative;transition:.15s}.nav-item>.svg-icon{font-size:23px}.nav-item small{font-size:11px;font-weight:700;line-height:1.05;text-align:center;white-space:normal}.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.nav-item.active{color:#fff}.nav-item.active:after{content:"";position:absolute;bottom:5px;width:34px;height:3px;border-radius:3px;background:#e6bd49}.credit{position:fixed;z-index:31;bottom:2px;left:50%;transform:translateX(-50%);color:#e6e5dc;font-size:10px;pointer-events:none;display:none}
.menu-dialog{width:min(420px,calc(100% - 28px));border:0;border-radius:22px;padding:22px;background:var(--paper2);box-shadow:0 30px 80px rgba(0,0,0,.4)}.menu-dialog::backdrop{background:rgba(13,18,10,.62);backdrop-filter:blur(4px)}.menu-dialog h2{color:var(--ink)}.menu-dialog a,.menu-dialog button:not(.dialog-close){display:block;width:100%;padding:14px 12px;margin:6px 0;border:0;border-radius:12px;text-align:left;background:rgba(57,69,35,.08);font-weight:750}.menu-dialog a:hover{background:rgba(57,69,35,.15)}.dialog-close{float:right;border:0;background:transparent;font-size:30px;cursor:pointer}.support-link{color:var(--olive)!important}
.primary,.secondary,.mini-btn,.select-btn,.text-btn{min-height:44px;border-radius:12px;border:1px solid transparent;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:850;cursor:pointer;transition:transform .15s,background-color .15s,border-color .15s,box-shadow .15s;color:inherit}.primary{background:var(--ink);color:#fff;box-shadow:0 7px 16px rgba(15,49,81,.18)}.primary:hover{background:#16476f;transform:translateY(-2px)}.primary:active{transform:translateY(0) scale(.98)}.secondary{background:rgba(255,250,238,.78);border-color:#9f9372;color:var(--olive)}.secondary:hover{background:#fff;border-color:var(--olive2);transform:translateY(-1px)}.mini-btn{background:#f0e6cf;border-color:#cabd9c;color:var(--ink)}.mini-btn:hover{background:#fff;transform:translateX(2px)}.select-btn{background:rgba(57,69,35,.09);border-color:#a99b78;color:var(--olive)}.select-btn.selected{background:var(--olive);color:#fff}.text-btn{background:transparent;color:var(--ink);padding-inline:8px}.text-btn:hover{text-decoration:underline}.danger{color:var(--danger)!important}.compact{min-height:40px;padding:8px 12px;font-size:13px}.full{width:100%}.stack-actions{display:flex;gap:9px;flex-wrap:wrap}.file-label{position:relative;overflow:hidden;cursor:pointer}.file-label input{position:absolute;opacity:0;inset:0;cursor:pointer}
.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:900;color:var(--olive);text-transform:uppercase}.lead{font-size:17px;line-height:1.5}.badges{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.badges span{padding:5px 8px;border-radius:999px;background:rgba(57,69,35,.1);font-size:11px;font-weight:800;color:var(--olive)}.meta-line{display:flex;flex-wrap:wrap;gap:12px;color:#636556;font-size:13px;margin:8px 0}.meta-line strong{color:var(--text)}
.filters{padding:15px;border:1px solid rgba(91,84,58,.18);background:rgba(255,251,240,.68);border-radius:18px;margin-bottom:12px;box-shadow:0 4px 14px rgba(53,55,37,.06)}.search-field{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #b7aa89;border-radius:12px;padding:0 12px;min-height:48px}.search-field .svg-icon{color:var(--olive);font-size:21px}.search-field input{border:0;outline:0;width:100%;background:transparent;font-size:16px}.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.filter-grid label>span{display:block;font-size:11px;font-weight:850;color:var(--olive);margin:0 0 5px}.filter-grid select{width:100%;min-height:44px;border:1px solid #b7aa89;border-radius:10px;background:#fff;padding:7px 9px;color:var(--text)}
.selection-dock{position:sticky;top:4px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin:10px 0 14px;border-radius:14px;background:rgba(238,228,205,.94);border:1px solid #b9a982;box-shadow:0 8px 18px rgba(53,55,37,.12);backdrop-filter:blur(9px)}.selection-dock.muted{color:#696b5a}.selection-dock a:not(.primary){font-weight:850;color:var(--ink)}
.exercise-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.exercise-card{position:relative;min-width:0;display:grid;grid-template-columns:190px 1fr;background:rgba(255,251,240,.8);border:1px solid rgba(91,84,58,.18);border-radius:18px;overflow:hidden;box-shadow:0 5px 16px rgba(53,55,37,.08);transition:.16s}.exercise-card.clickable{cursor:pointer}.exercise-card.clickable:hover{transform:translateY(-3px);box-shadow:0 13px 28px rgba(53,55,37,.16);border-color:rgba(77,91,49,.46)}.exercise-thumb{width:100%;height:100%;min-height:190px;aspect-ratio:752/416;object-fit:cover;object-position:center;background:#e7dcc4}.exercise-card-body{padding:14px;min-width:0}.exercise-card-top{display:flex;justify-content:space-between;gap:8px}.exercise-card h3{margin:3px 0 5px;color:var(--ink);font-size:19px;line-height:1.15}.exercise-card p{font-size:13px;color:#5d604f;line-height:1.4}.icon-action{width:42px;height:42px;flex:0 0 42px;border-radius:50%;border:1px solid #b9aa87;background:#f7f0df;color:var(--olive);display:grid;place-items:center;cursor:pointer}.icon-action:hover,.icon-action.selected{background:var(--olive);color:#fff}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.card-actions>*{flex:1;min-width:130px}.wide{grid-column:1/-1}
.group-toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.muscle-page-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(220px,1fr);align-items:start;gap:18px}.muscle-map-wrap{position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);background:#eadfc6;border:1px solid rgba(91,84,58,.2)}.muscle-map{display:block;width:100%;height:auto}.muscle-hitlayer{position:absolute;inset:0}.muscle-hit{position:absolute;border:0;background:transparent;border-radius:12px;cursor:pointer;min-width:24px;min-height:24px}.muscle-hit:hover,.muscle-hit:focus-visible{background:rgba(230,189,73,.14);box-shadow:inset 0 0 0 2px rgba(230,189,73,.75)}.muscle-side{position:sticky;top:12px;background:rgba(255,251,240,.72);border:1px solid rgba(91,84,58,.18);padding:14px;border-radius:18px}.muscle-side h2{margin:0 0 10px;color:var(--ink)}.muscle-legend{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:12px}.muscle-legend-btn{min-height:44px;display:flex;align-items:center;padding:10px 12px;border:1px solid #b7aa89;border-radius:11px;background:#fff8e9;font-weight:800;color:var(--olive);transition:.15s}.muscle-legend-btn:hover{background:var(--olive2);color:#fff;transform:translateX(3px)}
.back-link{display:inline-flex;align-items:center;gap:5px;color:var(--olive);font-weight:850;min-height:44px;margin-bottom:8px}.exercise-detail{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:20px;align-items:start}.exercise-media,.exercise-overview{background:rgba(255,251,240,.76);border:1px solid rgba(91,84,58,.18);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.exercise-video{width:100%;display:block;aspect-ratio:752/416;background:#111;object-fit:cover}.phase-images{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#c4b897}.phase-images img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.exercise-overview{padding:20px}.exercise-overview h1{font-size:clamp(30px,4vw,46px);color:var(--ink);margin:4px 0 8px}.target-box{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.target-box>div{background:rgba(57,69,35,.08);padding:12px;border-radius:12px}.target-box small{display:block;color:#686959}.target-box strong{display:block;color:var(--ink);margin-top:3px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.lesson{background:rgba(255,251,240,.72);border:1px solid rgba(91,84,58,.16);border-radius:16px;padding:16px}.lesson h2{margin:0 0 8px;color:var(--ink);font-size:17px}.lesson p,.lesson li{font-size:14px;line-height:1.5;color:#4f5345}.lesson ul{padding-left:20px;margin:0}.safety-note{margin-top:14px;padding:14px;border-left:4px solid #b9864b;background:#f5e8cd;border-radius:10px;font-size:13px;line-height:1.45}
.program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.program-card{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:16px;background:rgba(255,251,240,.78);border:1px solid rgba(91,84,58,.18);border-radius:18px;box-shadow:0 5px 16px rgba(53,55,37,.08)}.program-visual{width:100px;height:100px;border-radius:22px;background:linear-gradient(145deg,var(--olive),var(--olive2));color:#fff;display:grid;place-content:center;text-align:center}.program-visual span{font-size:34px;font-weight:950}.program-visual small{font-weight:850;letter-spacing:.12em}.program-card h2{color:var(--ink);margin:3px 0}.program-card p{color:#575b4c;line-height:1.45}.builder-callout{margin-top:16px;background:linear-gradient(135deg,#0f3151,#16476f);color:#fff;border-radius:20px;padding:20px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.builder-callout h2{margin:4px 0}.builder-callout p{margin:4px 0;color:#e2e8ec}.builder-callout .primary{background:#fff;color:var(--ink)}.builder-callout .secondary{color:#fff;border-color:#9bb0bf;background:transparent}.resume-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;margin:0 auto 16px;max-width:940px;background:#fff5d8;border:1px solid #d9bf72;border-radius:16px}.resume-card p{margin:4px 0 0;color:#675f45}
.program-summary,.summary-grid,.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.program-summary>div,.summary-grid>div,.metric-grid>div{background:rgba(255,251,240,.78);border:1px solid rgba(91,84,58,.16);border-radius:14px;padding:14px}.program-summary small,.summary-grid small,.metric-grid small{display:block;color:#686959;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.program-summary strong,.summary-grid strong,.metric-grid strong{display:block;color:var(--ink);font-size:23px;margin-top:4px}.program-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.program-list li{display:grid;grid-template-columns:40px 90px 1fr 32px;align-items:center;gap:10px;background:rgba(255,251,240,.74);border:1px solid rgba(91,84,58,.15);border-radius:14px;padding:8px}.program-list img{width:90px;height:64px;object-fit:cover;border-radius:9px}.program-list strong{display:block;color:var(--ink)}.program-list small{display:block;color:#606353;margin-top:3px}.program-num{width:32px;height:32px;border-radius:50%;background:var(--olive);color:#fff;display:grid;place-items:center;font-weight:900}.program-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.builder-list{display:grid;gap:10px}.builder-item{display:grid;grid-template-columns:38px 96px 1fr 42px;gap:10px;align-items:center;padding:10px;background:rgba(255,251,240,.78);border:1px solid rgba(91,84,58,.16);border-radius:14px}.builder-item img{width:96px;height:72px;object-fit:cover;border-radius:8px}.builder-order{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font-weight:900}.builder-main>strong{display:block;color:var(--ink);font-size:17px}.builder-main>small{display:block;color:#646657;margin:3px 0}.builder-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:7px}.builder-fields label{font-size:10px;color:#686959;font-weight:800}.builder-fields input{width:100%;min-height:38px;border:1px solid #b8aa88;border-radius:8px;background:#fff;padding:6px 7px}.builder-controls{display:grid;gap:5px}.builder-controls button{width:40px;height:40px;border:1px solid #b8aa88;border-radius:9px;background:#fff7e6;color:var(--olive);cursor:pointer}.builder-controls button:hover{background:var(--olive);color:#fff}.builder-actions{display:flex;justify-content:space-between;gap:12px;margin-top:14px}
.session-head{display:flex;justify-content:space-between;gap:10px;background:var(--olive);color:#fff;padding:10px 14px;border-radius:12px 12px 0 0;font-weight:850}.session-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:0;background:rgba(255,251,240,.82);border-radius:0 0 20px 20px;overflow:hidden;box-shadow:var(--shadow)}.session-media{background:#151711;display:grid;place-items:center}.session-video{width:100%;aspect-ratio:752/416;display:block;object-fit:cover}.session-fallback{width:100%}.session-panel{padding:20px}.session-panel h1{margin:4px 0 6px;color:var(--ink);font-size:clamp(28px,4vw,46px)}.session-panel>p{color:#575a4d}.session-target,.exercise-timer{padding:14px;border-radius:13px;background:rgba(57,69,35,.08);margin:12px 0}.session-target small,.exercise-timer span{display:block;color:#666858}.session-target strong,.exercise-timer strong{display:block;color:var(--ink);font-size:28px;margin-top:3px}.exercise-timer{display:grid;grid-template-columns:1fr auto;align-items:center}.exercise-timer span,.exercise-timer strong{grid-column:1}.exercise-timer button{grid-column:2;grid-row:1/3}.session-controls{display:grid;gap:8px}.rest-screen{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(255,251,240,.78);border-radius:22px;box-shadow:var(--shadow);padding:26px}.rest-screen h1{font-size:clamp(76px,16vw,130px);margin:0;color:var(--ink);font-variant-numeric:tabular-nums}.rest-screen p{font-size:18px;max-width:560px}.rest-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.rest-ring{width:140px;height:14px;border-radius:999px;background:#ded2b6;margin:18px 0;overflow:hidden}.rest-ring span{display:block;width:100%;height:100%;background:var(--olive)}
.summary-grid{grid-template-columns:repeat(4,1fr)}.soft-card{background:rgba(255,251,240,.78);border:1px solid rgba(91,84,58,.17);border-radius:16px;padding:16px;margin-bottom:12px}.soft-card h2,.soft-card h3{color:var(--ink);margin-top:0}.summary-row,.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(91,84,58,.12)}.summary-row:last-child,.history-row:last-child{border-bottom:0}.history-row:hover{color:var(--ink)}.history-row small{display:block;color:#686959;margin-top:2px}.summary-actions{display:flex;gap:10px;flex-wrap:wrap}.metric-grid{grid-template-columns:repeat(3,1fr)}.activity-card{min-height:230px}.activity-bars{height:150px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;padding-top:10px}.activity-bars>div{height:100%;display:grid;grid-template-rows:1fr 22px;align-items:end;justify-items:center}.activity-bars span{width:min(34px,70%);min-height:6px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#6b7b42,var(--olive))}.activity-bars small{font-size:11px;color:#686959}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.profile-grid .soft-card{margin:0}code{background:#e6dbc1;padding:2px 5px;border-radius:5px}.empty{max-width:680px;margin:30px auto;padding:24px;text-align:center;background:rgba(255,251,240,.75);border-radius:18px;border:1px solid rgba(91,84,58,.17)}
.toast{position:fixed;z-index:80;left:50%;bottom:100px;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:var(--ink);color:#fff;padding:11px 14px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:.18s;max-width:min(480px,86vw);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){
  .app-shell{max-width:760px}.topbar{grid-template-columns:48px 1fr 48px}.hero-clean{height:260px}.home-grid,.exercise-grid,.program-grid{grid-template-columns:1fr}.exercise-card{grid-template-columns:170px 1fr}.filter-grid{grid-template-columns:repeat(2,1fr)}.muscle-page-layout{grid-template-columns:1fr}.muscle-side{position:static}.muscle-legend{grid-template-columns:repeat(2,1fr)}.exercise-detail,.session-layout{grid-template-columns:1fr}.lesson-grid{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr}.builder-fields{grid-template-columns:repeat(2,1fr)}.metric-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:560px){
  :root{--nav-h:72px}.topbar{min-height:88px;padding-inline:10px;grid-template-columns:46px 1fr 46px}.icon-btn{width:44px;height:44px}.brand-top{font-size:12px}.brand-main{font-size:36px}.view{padding:12px 10px 24px}.page-head h1{font-size:30px}.page-head p{font-size:15px}.hero-clean{height:220px;border-radius:18px}.hero-clean img{height:100%;object-position:center 28%}.home-grid{grid-template-columns:1fr}.action-card{grid-template-columns:48px 1fr 20px;min-height:98px;padding:14px}.action-card>.svg-icon{width:44px;height:44px;padding:10px}.filter-grid{grid-template-columns:1fr 1fr;gap:7px}.selection-dock{font-size:12px}.exercise-card{grid-template-columns:128px 1fr}.exercise-thumb{min-height:210px}.exercise-card-body{padding:11px}.exercise-card h3{font-size:17px}.exercise-card p{font-size:12px}.card-actions{display:grid;grid-template-columns:1fr}.card-actions>*{min-width:0}.muscle-legend{grid-template-columns:1fr 1fr}.program-card{grid-template-columns:76px 1fr;padding:12px}.program-visual{width:72px;height:72px;border-radius:16px}.program-visual span{font-size:26px}.builder-callout{grid-template-columns:1fr}.program-summary,.summary-grid,.metric-grid{grid-template-columns:repeat(2,1fr)}.program-list li{grid-template-columns:32px 66px 1fr 24px}.program-list img{width:66px;height:52px}.builder-item{grid-template-columns:30px 72px 1fr}.builder-item img{width:72px;height:58px}.builder-controls{grid-column:2/4;grid-row:2;display:flex;justify-content:flex-end}.builder-fields{grid-template-columns:1fr 1fr}.session-panel{padding:15px}.session-head{font-size:12px}.rest-screen{min-height:440px}.nav-item>.svg-icon{font-size:20px}.nav-item small{font-size:11px}.activity-bars{gap:5px}.support-card{grid-template-columns:40px 1fr 18px}
}
@media(max-width:390px){.brand-main{font-size:31px}.exercise-card{grid-template-columns:110px 1fr}.filter-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.muscle-legend{grid-template-columns:1fr}.nav-item small{font-size:10.5px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.results-status{max-width:940px;margin:-8px auto 12px;text-align:center;color:#5d604f;font-size:14px;font-weight:700}
.session-entry{display:block;margin:12px 0;padding:14px;border-radius:13px;background:rgba(15,49,81,.07);border:1px solid rgba(15,49,81,.16)}
.session-entry>span{display:block;font-weight:850;color:var(--ink);margin-bottom:7px}
.session-entry>div{display:flex;align-items:center;gap:8px}
.session-entry input{width:120px;min-height:48px;border:1px solid #9f9372;border-radius:10px;background:#fffdf6;color:var(--ink);font-size:22px;font-weight:900;padding:8px 10px}
.session-entry small{display:block;color:#626556;margin-top:7px;line-height:1.4}
.hybrid-entry{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hybrid-entry .session-entry{margin:12px 0 0}.hybrid-entry>small{grid-column:1/-1;color:#626556;line-height:1.45;padding:0 2px 10px}
.series-status{padding:10px 12px;border-radius:11px;background:#fff4cf;border:1px solid #d8bd62;color:#5e5225!important;font-weight:700;font-size:13px}
.rest-ring span{transition:width .25s linear}
.session-conflict-dialog{max-width:520px}
.session-conflict-dialog p{line-height:1.5;color:#55594b}
.conflict-actions{display:grid;gap:9px;margin-top:14px}
.danger-border{border-color:#9d5149!important;color:#7e312b!important}
[hidden]{display:none!important}
@media(max-width:560px){
  .session-entry input{width:105px;font-size:20px}
  .results-status{font-size:13px}
}

.card-stretched-link{position:absolute;inset:0;z-index:1;border-radius:18px}
.card-stretched-link:focus-visible{outline:3px solid #e6bd49;outline-offset:3px}
.exercise-card-body,.exercise-thumb{position:relative;z-index:0}
.exercise-card .icon-action,.exercise-card .card-actions{position:relative;z-index:2}

.series-pills{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.series-pills button{min-width:44px;height:44px;border-radius:999px;border:1px solid #a99b78;background:#fffaf0;color:var(--ink);font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.series-pills button:hover{background:#eee4cb;border-color:#7e714f;transform:translateY(-1px)}
.series-pills button.current{outline:3px solid #e6bd49;outline-offset:2px}
.series-pills button.done{background:var(--olive);color:#fff;border-color:var(--olive)}
.series-pills button .svg-icon{width:15px;height:15px}

/* V0.6.3 — statut des séances interrompues dans l’historique */
.history-tail{display:flex;align-items:center;gap:8px}.history-badge{font-size:11px;line-height:1;padding:5px 7px;border-radius:999px;background:#eee4cd;color:#6a3a2d;border:1px solid rgba(106,58,45,.28);white-space:nowrap}

@media(max-width:560px){.hybrid-entry{grid-template-columns:1fr}.hybrid-entry>small{grid-column:1}}


/* ==========================================================================\n   V0.7 — finition visuelle, tactile et accessibilité.\n   Architecture V0.6 et carte musculaire gelées.\n   ========================================================================== */
:root{
  --focus:#e5b93f;
  --paper-card:rgba(255,252,243,.90);
  --border-soft:rgba(75,73,53,.18);
  --shadow-soft:0 6px 20px rgba(35,42,27,.09);
  --shadow-hover:0 16px 34px rgba(30,38,24,.16);
}
body{font-size:16px;line-height:1.48;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,a{ -webkit-tap-highlight-color:transparent }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.file-label:focus-within{outline:3px solid var(--focus);outline-offset:3px}
.primary,.secondary,.mini-btn,.select-btn,.text-btn,.menu-dialog a,.menu-dialog button:not(.dialog-close){min-height:48px;font-size:14px}
.compact{min-height:44px;font-size:13px}
.icon-btn{min-width:48px;min-height:48px}
.dialog-close{min-width:48px;min-height:48px;border-radius:12px}
.dialog-close:hover{background:rgba(57,69,35,.09)}
.page-head{margin-top:10px;margin-bottom:24px}.page-head h1{letter-spacing:.01em}.page-head p{font-size:16px}
.eyebrow{font-size:12px;letter-spacing:.1em}.badges span{font-size:12px;padding:6px 9px}.meta-line{font-size:14px}
.action-card,.exercise-card,.program-card,.lesson,.soft-card,.filters,.builder-callout,.resume-card{border-color:var(--border-soft)}
.action-card,.exercise-card,.program-card{box-shadow:var(--shadow-soft)}
.action-card:hover,.exercise-card.clickable:hover,.program-card:hover{box-shadow:var(--shadow-hover)}
.action-card:active,.exercise-card:has(.card-stretched-link:active),.program-card:active{transform:translateY(0) scale(.995)}
.nav-item{min-height:72px}.nav-item small{font-size:12px;font-weight:750;letter-spacing:.01em}.nav-item>.svg-icon{font-size:24px}.nav-item:active{background:rgba(255,255,255,.12)}
.results-status{font-size:15px}
.filter-grid label>span{font-size:12px}.filter-grid select{min-height:48px;font-size:15px}.search-field{min-height:50px}
.exercise-card h3{font-size:20px}.exercise-card p{font-size:14px}.exercise-thumb{background:#e4d8be}
.card-actions>*{min-height:46px}
.icon-action{width:46px;height:46px;flex-basis:46px;transition:.15s ease}.icon-action:active{transform:scale(.94)}
.program-card{transition:.16s ease}.program-card:hover{transform:translateY(-3px)}
.lesson{background:var(--paper-card)}.lesson h2{font-size:17px}.lesson p,.lesson li{font-size:15px;line-height:1.55}
.safety-note{font-size:14px;line-height:1.55}
.builder-fields label{font-size:12px}.builder-fields input{min-height:48px;font-size:16px;padding:9px 10px}.builder-controls button{width:48px;height:48px}.builder-main>small{font-size:13px}
.builder-controls button:active{transform:scale(.95)}
.session-head{min-height:48px;align-items:center;font-size:14px}.session-panel>p{font-size:15px}.session-target small,.exercise-timer span{font-size:13px}.timer-note{grid-column:1/-1!important;color:#696b5e!important;font-size:12px!important;margin-top:7px;line-height:1.35}
.session-controls>*{min-height:50px}
.rest-actions>*{min-height:48px}.history-row small,.activity-bars small{font-size:12px}.history-badge{font-size:12px;padding:6px 8px}
.profile-grid p,.soft-card p{font-size:15px}
.muscle-legend-btn{min-height:48px;font-size:14px}
.muscle-hit:focus-visible{outline:3px solid var(--focus)!important;outline-offset:2px!important;background:rgba(229,185,63,.14)}

/* Les quatre exercices Triceps encore sans vidéo sont assumés comme séquences illustrées. */
.exercise-card:has(.badges span:last-child) .exercise-thumb{transition:filter .18s ease}

/* Desktop premium : plus d’air et composition plus éditoriale. */
@media(min-width:1100px){
  .app-shell{max-width:1280px}
  .app-shell:before{max-width:1280px}
  .bottom-nav{width:min(1280px,100%)}
  .view{padding-left:54px;padding-right:54px}
  .home-grid{max-width:1040px}.hero-clean{max-width:1040px;height:330px}
  .exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .exercise-card{grid-template-columns:210px 1fr;min-height:220px}
  .exercise-thumb{min-height:220px}
  .program-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .program-card{align-content:start}
  .lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .exercise-detail{grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:22px}
  .session-layout{grid-template-columns:minmax(0,1.35fr) minmax(380px,.65fr)}
}
@media(min-width:1360px){
  .app-shell{max-width:1320px}.app-shell:before{max-width:1320px}.bottom-nav{width:min(1320px,100%)}
}

/* Tablet : vrais contrôles tactiles et cartes équilibrées. */
@media(min-width:561px) and (max-width:900px){
  .view{padding-inline:22px}.exercise-card{grid-template-columns:190px 1fr}.exercise-thumb{min-height:200px}
  .builder-controls{grid-template-columns:repeat(3,48px);justify-content:end}.builder-controls button{width:48px;height:48px}
}

/* Mobile 390/320 : aucune miniature surdimensionnée ni texte comprimé. */
@media(max-width:560px){
  .topbar{position:sticky;top:0;z-index:25;box-shadow:0 1px 0 rgba(80,75,50,.08)}
  .brand-main{font-size:clamp(29px,9vw,36px)}
  .view{padding-inline:12px}
  .exercise-card{grid-template-columns:112px minmax(0,1fr)}
  .exercise-thumb{min-height:0;height:100%;aspect-ratio:auto;object-fit:cover}
  .exercise-card-body{padding:12px}.exercise-card h3{font-size:18px}.exercise-card p{font-size:13px}
  .badges{gap:5px}.badges span{font-size:11.5px;padding:5px 7px}
  .card-actions{grid-template-columns:1fr;display:grid}.card-actions>*{min-height:48px}
  .builder-fields label{font-size:12px}.builder-fields input{min-height:48px}
  .builder-controls button{width:48px;height:48px}
  .nav-item small{font-size:11.5px}.nav-item>.svg-icon{font-size:22px}
  .session-head{font-size:13px}.session-target strong,.exercise-timer strong{font-size:26px}
  .lesson h2{font-size:16px}.lesson p,.lesson li{font-size:14.5px}
  .page-head p{font-size:15.5px}
}
@media(max-width:390px){
  .view{padding-inline:10px}.brand-main{font-size:30px}.brand-top{font-size:12px}
  .exercise-card{grid-template-columns:96px minmax(0,1fr)}
  .exercise-card h3{font-size:17px}.exercise-card-body{padding:10px}
  .meta-line{font-size:12.5px;gap:8px}.badges span{font-size:11px}
  .bottom-nav{height:74px}.nav-item small{font-size:10.75px}
  .program-summary,.summary-grid,.metric-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:340px){
  .brand-main{font-size:27px}.topbar{grid-template-columns:44px 1fr 44px;gap:6px}
  .icon-btn{width:44px;height:44px;min-width:44px;min-height:44px}
  .exercise-card{grid-template-columns:1fr}.exercise-thumb{height:170px}.exercise-card-body{padding:12px}
  .muscle-legend{grid-template-columns:1fr}.filter-grid{grid-template-columns:1fr}
  .nav-item small{font-size:10px}.nav-item>.svg-icon{font-size:20px}
}

/* Hero : conserver les visages et la composition complète sur tablette/ordinateur. */
@media(min-width:561px){
  .hero-clean{height:auto;aspect-ratio:780/478;max-width:900px}
  .hero-clean img{object-fit:cover;object-position:center center}
}

/* ========================================================================== 
   V0.7.1 — micro-correctifs de finition uniquement.
   Moteur, modèle de données et carte musculaire V0.6.3/V0.7.0 gelés.
   ========================================================================== */
:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
}

/* Safe areas iPhone / PWA standalone bord à bord. */
.app-shell{padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 34px)}
.topbar{
  padding-top:calc(10px + var(--safe-top));
  padding-left:max(clamp(14px,3vw,30px),var(--safe-left));
  padding-right:max(clamp(14px,3vw,30px),var(--safe-right));
  min-height:calc(94px + var(--safe-top));
}
.bottom-nav{
  height:calc(var(--nav-h) + var(--safe-bottom));
  padding-bottom:var(--safe-bottom);
  padding-left:var(--safe-left);
  padding-right:var(--safe-right);
}
.toast{bottom:calc(100px + var(--safe-bottom))}

/* Le dock Explorer doit rester sous l'en-tête sticky, jamais derrière lui. */
.selection-dock a:not(.primary){
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border-radius:10px;
}
.selection-dock a:not(.primary):hover{background:rgba(57,69,35,.10)}

/* Chaque ligne de programme est une vraie cible tactile complète. */
.program-list li{position:relative;transition:background-color .15s,border-color .15s,box-shadow .15s}
.program-list li:hover{background:#fffaf0;border-color:rgba(77,91,49,.42);box-shadow:0 5px 14px rgba(53,55,37,.08)}
.program-list li>a{
  position:absolute;
  inset:0;
  z-index:2;
  min-width:44px;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-right:12px;
  border-radius:14px;
}
.program-list li>a .svg-icon{width:24px;height:24px}
.program-list li>a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

@media(max-width:560px){
  :root{--nav-h:78px}
  .topbar{
    min-height:calc(88px + var(--safe-top));
    padding-top:calc(10px + var(--safe-top));
    padding-left:max(10px,var(--safe-left));
    padding-right:max(10px,var(--safe-right));
  }
  .selection-dock{
    top:calc(88px + var(--safe-top) + 6px);
    z-index:24;
  }
  .nav-item small{font-size:12px;line-height:1.1}
  .program-list li{grid-template-columns:32px 66px 1fr;padding-right:50px;min-height:68px}
  .program-list li>a{padding-right:10px}
}

@media(max-width:390px){
  .nav-item small{font-size:11.5px}
}

/* À 320 px, aucun champ du constructeur n'est comprimé : Objectif occupe toute la ligne. */
@media(max-width:340px){
  .builder-fields{grid-template-columns:1fr}
  .builder-fields label,.builder-fields input{width:100%}
  .nav-item small{font-size:11.5px}
}

/* Corrige la cascade du hero sur grand écran : composition large mais non envahissante. */
@media(min-width:1100px){
  .hero-clean{height:330px;aspect-ratio:auto;max-width:1040px}
  .hero-clean img{object-fit:cover;object-position:center 34%}
}


/* ========================================================================== 
   V0.7.2 — micro-correctifs responsive exclusivement CSS.
   Aucun changement de moteur, de modèle de données ou de carte musculaire.
   ========================================================================== */

/* 1) Safe areas latérales : le contenu principal respecte aussi l'encoche en paysage. */
.view{
  padding-left:max(clamp(14px,3.6vw,42px),var(--safe-left));
  padding-right:max(clamp(14px,3.6vw,42px),var(--safe-right));
}

/* 2) Navigation compacte : préserver la police >= 11,5 px tout en donnant plus d'espace à S’ENTRAÎNER. */
@media(max-width:560px){
  .bottom-nav{grid-template-columns:1fr 1fr 1.30fr 1fr 1fr}
  .nav-item small{font-size:12px;line-height:1.08;letter-spacing:-.01em;max-width:100%}
}
@media(max-width:390px){
  .nav-item small{font-size:11.5px}
}

/* 3) Conserver les paddings mobiles existants tout en appliquant les safe areas latérales. */
@media(max-width:900px){
  .view{padding-left:max(22px,var(--safe-left));padding-right:max(22px,var(--safe-right))}
}
@media(max-width:560px){
  .view{padding-left:max(12px,var(--safe-left));padding-right:max(12px,var(--safe-right))}
}
@media(max-width:390px){
  .view{padding-left:max(10px,var(--safe-left));padding-right:max(10px,var(--safe-right))}
}
@media(min-width:1100px){
  .view{padding-left:max(54px,var(--safe-left));padding-right:max(54px,var(--safe-right))}
}

/* 4) Hero desktop : conserver 1040 x 330, mais privilégier les visages au cadrage. */
@media(min-width:1100px){
  .hero-clean img{object-position:center top}
}

/* V1.0 RC1 — Explorer: keep card-wide link below Favorite/Add controls. */
.exercise-card-body{z-index:auto}


/* RC30 free-distribution attribution */
.credit a{color:inherit;text-decoration:underline;text-underline-offset:2px;font-weight:800}
.distribution-notice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0;padding:15px 17px;border:1px solid rgba(72,90,48,.28);border-radius:14px;background:#f4f7ed;color:#26341c;text-decoration:none;box-shadow:0 6px 18px rgba(45,57,31,.07)}
.distribution-notice span{display:grid;gap:2px}.distribution-notice strong{font-size:.84rem;letter-spacing:.08em}.distribution-notice small{font-size:.85rem;line-height:1.45;color:#536044;overflow-wrap:anywhere}.distribution-notice:hover,.distribution-notice:focus-visible{background:#eaf0dd;color:#1e2b16;outline:3px solid var(--focus);outline-offset:2px}
.soft-card a[href^="https://www.delta-sierra.com"]{font-weight:800;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
