:root{
  --bg:#0F0F0D;
  --surface:#181815;
  --surface-2:#23231F;
  --text:#F5F5F2;
  --text-dim:#A1A19A;
  --moss:#8DA55A;
  --moss-dim:#6E8A47;
  --moss-pressed:#6E8A47;
  --amber:#F6A623;
  --amber-pressed:#C9860F;
  --success:#6FC46A;
  --warning:#F4C460;
  --error:#E25555;
  --error-pressed:#B93F3F;
  --border:#2A2A24;

  --font-display:'Bebas Neue',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'JetBrains Mono',monospace;

  --radius-button:16px;
  --radius-card:20px;
  --radius-image:12px;
  --radius-badge:12px;
  --radius-input:16px;

  --shadow-soft:0px 4px 12px rgba(0,0,0,0.25);
  --shadow-floating:0px 8px 24px rgba(0,0,0,0.35);

  --space-1:8px;
  --space-2:16px;
  --space-3:24px;
  --space-4:32px;
  --space-5:48px;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{background:var(--bg); color:var(--text); font-family:'Inter',system-ui,sans-serif; min-height:100vh; padding-bottom:80px;}
::selection{background:var(--moss); color:var(--bg);}

header{padding:20px 20px 8px;}
.eyebrow{display:none;}

.home-topbar{display:flex; align-items:center; justify-content:flex-end; margin-bottom:14px;}
.bell-btn{width:38px; height:38px; border-radius:50%; background:var(--surface); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; font-size:16px; padding:0;}

.home-greeting-row{display:flex; align-items:flex-start; justify-content:flex-start; gap:40px;}
.home-greeting-text{flex:0 1 auto; min-width:0; max-width:55%;}
.greeting-sub{font-family:'Inter',sans-serif; font-size:13px; color:var(--text-dim);}
.greeting-name{font-family:var(--font-display); font-size:30px; color:var(--text); line-height:1.1;}
.greeting-tagline{font-family:'Inter',sans-serif; font-size:13px; color:var(--text); margin-top:2px;}

.home-workout-card{background:var(--surface); border-radius:var(--radius-card); padding:14px; margin:0 20px 14px;}
.home-workout-card.idle{text-align:center;}
.hwc-idle-title{font-family:var(--font-display); font-size:20px; color:var(--text);}
.hwc-idle-sub{font-size:12px; color:var(--text-dim); margin:6px 0 12px;}
.hwc-row{display:flex; justify-content:space-between; gap:10px;}
.hwc-label{font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--moss); margin-bottom:4px;}
.hwc-title{font-family:var(--font-display); font-size:22px; color:var(--text); line-height:1.1;}
.hwc-sub{font-size:12px; color:var(--text-dim); margin-top:2px;}
.hwc-elapsed{font-size:12px; color:var(--moss);}
.hwc-thumb{width:48px; height:48px; border-radius:var(--radius-image); background:var(--surface-2); color:var(--moss); flex-shrink:0; display:flex; align-items:center; justify-content:center; overflow:hidden;}
.hwc-thumb svg{width:26px; height:26px;}
.hwc-thumb img{width:100%; height:100%; object-fit:contain;}
.hwc-actions-row{display:flex; gap:10px; align-items:center;}
.hwc-upnext-divider{height:1px; background:var(--border); margin:14px 0;}
.hwc-upnext-row{display:flex; align-items:center; gap:12px;}
.hwc-upnext-thumb{width:44px; height:44px; border-radius:var(--radius-image); background:var(--surface-2); color:var(--moss); overflow:hidden; flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.hwc-upnext-thumb img{width:100%; height:100%; object-fit:cover;}
.hwc-upnext-thumb svg{width:22px; height:22px;}
.hwc-upnext-info{flex:1; min-width:0;}
.hwc-upnext-label{font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--moss); margin-bottom:2px;}
.hwc-upnext-name{font-family:var(--font-display); font-size:15px; color:var(--text);}
.hwc-upnext-meta{font-size:12px; color:var(--text-dim); margin-top:1px;}
.hwc-progress-track{height:6px; background:var(--surface-2); border-radius:16px; overflow:hidden; margin:10px 0 12px;}
.hwc-progress-fill{height:100%; background:var(--moss); transition:width .3s ease;}
.hwc-completed-row{display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-dim); margin:4px 0 14px;}
.hwc-completed-row svg{width:14px; height:14px; color:var(--moss); flex-shrink:0;}
.hwc-summary-stats{display:flex; margin-bottom:16px;}
.hwc-summary-stat{flex:1; text-align:center;}
.hwc-summary-stat:not(:last-child){border-right:1px solid var(--border);}
.hwc-summary-num{font-family:var(--font-display); font-size:18px; color:var(--text);}
.hwc-summary-lbl{font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); margin-top:2px;}
.hwc-summary-btn{width:100%; display:flex; align-items:center; justify-content:center; gap:8px; border-radius:var(--radius-button); padding:12px; font-weight:700; font-size:13px; cursor:pointer; font-family:'Inter',sans-serif; margin-bottom:8px; text-transform:uppercase; letter-spacing:.02em; box-sizing:border-box;}
.hwc-summary-btn:last-child{margin-bottom:0;}
.hwc-summary-btn svg{width:16px; height:16px; flex-shrink:0;}
.hwc-summary-btn.primary{background:var(--moss); color:var(--bg); border:none;}
.hwc-summary-btn.secondary{background:var(--surface-2); color:var(--text); border:1px solid var(--border);}
.hwc-btn{width:100%; background:var(--moss); color:var(--bg); border:none; border-radius:var(--radius-button); padding:11px; font-weight:600; font-size:13px; cursor:pointer; font-family:'Inter',sans-serif;}

.header-logo-wrap{
  width: 160px;
  height: 190px;
  overflow: hidden;
  border-radius: 12px;
  flex-shrink: 0;
  margin-bottom: -55px;
  margin-top: -50px;
  margin-left: auto;
  margin-right: auto;
  background-image: url('icons/mascot/waving.png');
  background-size: 200% auto;
  background-position: 65% 30%;
  background-repeat: no-repeat;
}

.view-all-link{font-size:11px; color:var(--moss); font-weight:500; text-decoration:none; cursor:pointer;}

.focus-tip-card{background:var(--surface-2); border-radius:var(--radius-card); padding:12px; display:flex; align-items:center; gap:10px; margin:0 0 20px;}
.ftc-thumb{width:36px; height:36px; border-radius:10px; background:var(--surface); flex-shrink:0;}
.ftc-thumb{
  width: 72px;
  height: 72px;
  background-color: transparent;
  background-image: url('icons/mascot/focus-tip.png');
  background-size: 180% auto;
  background-repeat: no-repeat;
  background-position: top center;
  border-radius: 0;
  flex-shrink: 0;
}
.ftc-thumb img{ display:none; }
.focus-tip-card{ align-items: center; }
.ftc-body{flex:1; min-width:0;}
.ftc-label{font-size:10px; color:var(--moss); text-transform:uppercase; letter-spacing:.06em; margin-bottom:2px;}
.ftc-text{font-size:12px; color:var(--text); line-height:1.4;}

.quick-access-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-bottom:20px;}
.quick-access-tile{background:var(--surface); border:none; border-radius:var(--radius-button); padding:12px 4px; text-align:center; font-family:'Inter',sans-serif; font-size:10px; font-weight:500; color:var(--text); cursor:pointer;}
.quick-access-tile.qa-dashed{background:transparent; border:1px dashed var(--border);}
.qa-icon{display:block; font-size:18px; margin-bottom:4px;}
.qa-icon svg, .tab-icon svg{width:20px; height:20px; display:block;}
.qa-icon{color:var(--moss); display:flex; justify-content:center; margin-bottom:4px;}
.tab-icon{color:var(--text-dim); display:flex; justify-content:center;}
.tab-btn.active .tab-icon{color:var(--moss);}
.quick-access-tile{display:flex; flex-direction:column; align-items:center; justify-content:center;}
.tab-btn{display:flex; flex-direction:column; align-items:center; justify-content:center;}

.bottom-tab-bar{position:fixed; left:0; right:0; bottom:0; display:flex; justify-content:space-around; background:var(--surface); border-top:1px solid var(--border); padding:8px 0 calc(8px + env(safe-area-inset-bottom)); z-index:60;}
.tab-btn{background:none; border:none; display:flex; flex-direction:column; align-items:center; gap:2px; color:var(--text-dim); font-family:'Inter',sans-serif; font-size:9px; font-weight:600; cursor:pointer; padding:2px 10px;}
.tab-btn.active{color:var(--moss);}
.tab-icon{font-size:18px;}

main{padding:24px 20px 0;}
.section-title{font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-dim); margin:0 0 10px; display:flex; justify-content:space-between; align-items:center;}
.empty{border:1px dashed var(--border); border-radius:12px; padding:24px 16px; text-align:center; color:var(--text-dim); font-size:14px; line-height:1.5;}

.finish-modal{position:fixed; inset:0; background:rgba(0,0,0,0.85); display:none; align-items:center; justify-content:center; z-index:110; padding:24px;}
.finish-modal.open{display:flex;}
.finish-modal-content{background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:24px 20px; max-width:340px; width:100%; position:relative;}
.finish-title{font-family:'Oswald',sans-serif; font-size:20px; font-weight:700; text-transform:uppercase; text-align:center; margin-bottom:16px;}
.finish-stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); border:1px solid var(--border); border-radius:10px; overflow:hidden; margin-bottom:14px;}
.finish-stat{background:var(--surface-2); padding:12px; text-align:center;}
.finish-stat-num{font-family:'JetBrains Mono',monospace; font-size:20px; font-weight:700; color:var(--amber);}
.finish-stat-lbl{font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); margin-top:2px;}
.finish-pr-title{font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--amber); margin-bottom:8px; font-weight:600;}
.finish-pr-item{font-size:13px; padding:6px 0; border-top:1px solid var(--border);}
#finishModal{z-index:260;}

.workout-complete-card{
  max-width:360px;
  padding:24px 20px 20px;
  background:linear-gradient(145deg, #1A1A15, #12120F);
  border-color:rgba(141,165,90,.55);
}

.workout-complete-hero{
  min-height:150px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:6px 0 12px;
}

.workout-complete-copy{
  position:relative;
  z-index:1;
}

.workout-complete-eyebrow{
  color:var(--text-dim);
  font-family:var(--font-display);
  font-size:15px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.workout-complete-title{
  color:var(--text);
  font-family:var(--font-display);
  font-size:30px;
  line-height:.95;
  text-transform:uppercase;
}

.workout-complete-copy p{
  max-width:175px;
  margin:14px 0 0;
  color:var(--text-dim);
  font-size:12px;
  line-height:1.45;
}

.workout-complete-mascot{
  width:135px;
  height:135px;
  object-fit:contain;
  align-self:flex-end;
}

.workout-complete-stats{
  margin-top:8px;
  border-color:rgba(141,165,90,.35);
}

.workout-save-btn{
  width:100%;
  margin-top:14px;
  min-height:48px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.workout-share-btn{
  width:100%;
  margin-top:8px;
  min-height:44px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
  color:var(--text);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  cursor:pointer;
}

.profile-modal-content{max-height:85vh; overflow-y:auto;}
.profile-section-title{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-dim); margin:18px 0 8px; display:flex; justify-content:space-between; align-items:center;}
.profile-section-title:first-of-type{margin-top:0;}
.profile-hint{font-size:12px; color:var(--text-dim); line-height:1.5; margin-top:-2px; margin-bottom:10px;}

.profile-name-input{width:100%;}
.profile-menu{display:flex; flex-direction:column; gap:8px;}
.pmi-arrow{color:var(--text-dim); font-size:18px;}
.profile-subheader{display:flex; align-items:center; gap:12px; margin-bottom:16px;}
.profile-back-btn{background:none; border:none; color:var(--moss); font-size:13px; font-weight:600; cursor:pointer; padding:0; flex-shrink:0;}
.help-footer{margin-top:20px; padding-top:14px; border-top:1px solid var(--border); text-align:center; font-size:11px; color:var(--text-dim); line-height:1.6;}
.help-footer-card{margin-top:16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:16px; text-align:center; font-size:12px; color:var(--text-dim); line-height:1.5;}

.profile-avatar-wrap{position:relative; width:96px; height:96px; margin:8px auto 14px;}
.profile-avatar{width:96px; height:96px; border-radius:50%; overflow:hidden; border:2px solid var(--moss); background:var(--surface-2);}
.profile-avatar img{width:100%; height:100%; object-fit:cover;}
.profile-avatar-edit{position:absolute; bottom:0; right:0; width:30px; height:30px; border-radius:50%; background:var(--moss); color:var(--bg); border:2px solid var(--bg); display:flex; align-items:center; justify-content:center; cursor:pointer;}
.profile-avatar-edit svg{width:15px; height:15px;}
.profile-name{text-align:center; font-family:var(--font-display); font-size:22px; color:var(--text); margin-top:4px;}
.profile-tagline{text-align:center; font-size:12px; color:var(--text-dim); margin-top:2px; margin-bottom:14px;}
.profile-edit-btn{display:block; margin:0 auto; background:none; border:1px solid var(--moss); color:var(--moss); border-radius:20px; padding:8px 20px; font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; cursor:pointer;}

.equipment-icon-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:8px;}
.equip-tile{position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:14px 6px 10px; cursor:pointer; color:var(--text-dim); box-sizing:border-box;}
.equip-tile.active{border-color:var(--moss); color:var(--moss); background:rgba(138,154,91,0.1);}
.equip-tile-icon{width:26px; height:26px;}
.equip-tile-icon svg{width:100%; height:100%;}
.equip-tile-label{font-size:10px; font-weight:600; text-align:center; line-height:1.25; text-transform:uppercase; letter-spacing:.01em; color:var(--text);}
.equip-tile-check{position:absolute; top:6px; right:6px; width:15px; height:15px; border-radius:50%; background:var(--moss); color:var(--bg); display:none; align-items:center; justify-content:center;}
.equip-tile-check svg{width:9px; height:9px;}
.equip-tile.active .equip-tile-check{display:flex;}

.settings-field-row{display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px; margin-bottom:8px;}
.settings-field-label{font-size:13px; color:var(--text); font-weight:500;}

.toggle-row{display:flex; align-items:center; gap:12px; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:12px 14px; margin-bottom:8px; box-sizing:border-box;}
.toggle-row-icon{width:36px; height:36px; border-radius:50%; background:rgba(138,154,91,0.16); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.toggle-row-icon svg{width:17px; height:17px;}
.toggle-row-label{flex:1; font-size:13px; font-weight:600; color:var(--text);}
.toggle-switch{position:relative; display:inline-block; width:42px; height:24px; flex-shrink:0;}
.toggle-switch input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer;}
.toggle-switch-track{position:absolute; inset:0; background:var(--surface-2); border:1px solid var(--border); border-radius:999px; transition:background .15s ease, border-color .15s ease; pointer-events:none;}
.toggle-switch-track::before{content:''; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:var(--text-dim); transition:transform .15s ease, background .15s ease;}
.toggle-switch input:checked + .toggle-switch-track{background:var(--moss); border-color:var(--moss);}
.toggle-switch input:checked + .toggle-switch-track::before{transform:translateX(18px); background:var(--bg);}
.toggle-switch input:disabled{cursor:default;}

.select-row{display:flex; align-items:center; gap:12px; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:12px 14px; margin-bottom:8px; cursor:pointer; text-align:left; box-sizing:border-box;}
.select-row-label{flex:1; font-size:13px; color:var(--text); font-weight:500;}
.select-row-check{width:18px; height:18px; color:var(--moss); flex-shrink:0; visibility:hidden;}
.select-row.active .select-row-check{visibility:visible;}

.data-privacy-note{display:flex; align-items:center; gap:12px; background:rgba(138,154,91,0.1); border:1px solid var(--moss); border-radius:var(--radius-card); padding:14px; margin-bottom:16px; font-size:12px; color:var(--text); line-height:1.4;}
.data-privacy-icon{width:22px; height:22px; color:var(--moss); flex-shrink:0;}
.data-privacy-icon svg{width:100%; height:100%;}

.about-paw-logo{width:64px; height:64px; margin:0 auto 10px; color:var(--moss);}
.about-version{font-size:11px; color:var(--text-dim); margin-top:6px; font-family:'JetBrains Mono',monospace;}

.rest-picker-wrap{position:relative; height:132px; margin-bottom:16px;}
.rest-picker-highlight{position:absolute; top:44px; left:0; right:0; height:44px; background:var(--surface); border:1px solid var(--border); border-radius:12px; pointer-events:none; z-index:0;}
.rest-picker{position:relative; height:132px; overflow-y:scroll; scroll-snap-type:y mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; -ms-overflow-style:none; z-index:1;}
.rest-picker::-webkit-scrollbar{display:none;}
.rest-picker-pad{height:44px; flex-shrink:0;}
.rest-picker-item{height:44px; display:flex; align-items:center; justify-content:center; scroll-snap-align:center; font-family:'JetBrains Mono',monospace; font-size:15px; color:var(--text-dim); cursor:pointer; transition:color .15s ease, font-size .15s ease, font-weight .15s ease;}
.rest-picker-item.active{color:var(--moss); font-weight:700; font-size:20px;}

.ex-icon-wrap{width:54px; height:54px; border-radius:10px; background:var(--surface-2); border:1px solid var(--border); flex-shrink:0; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.ex-icon-wrap svg{width:44px; height:44px;}

.eim-header-row{display:flex; align-items:center; justify-content:space-between;}
.eim-fav-btn{background:none; border:none; color:var(--text-dim); cursor:pointer; padding:4px; display:flex;}
.eim-fav-btn svg{width:22px; height:22px; fill:none;}
.eim-category-badge{display:inline-block; background:var(--surface-2); color:var(--moss); font-size:11px; font-weight:700; padding:4px 10px; border-radius:var(--radius-badge); margin-top:6px; text-transform:uppercase; letter-spacing:.03em;}
.eim-mini-card{background:var(--surface); border-radius:var(--radius-card); padding:12px;}
.eim-mini-card-title{font-size:10px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em; margin-bottom:6px;}
.eim-rom-text{font-size:11px; color:var(--text); line-height:1.4;}
.eim-safety{display:flex; gap:10px; align-items:flex-start; background:rgba(226,85,85,0.1); border:1px solid rgba(226,85,85,0.3); border-radius:var(--radius-card); padding:12px; margin-top:16px;}
.eim-safety-icon{color:var(--error); flex-shrink:0; margin-top:1px;}
.eim-safety-icon svg{width:16px; height:16px;}
.eim-safety-text{font-size:11px; color:var(--text); line-height:1.5;}

.eim-equipment-row{display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; margin-top:14px;}
.eim-equipment-pill{background:var(--surface-2); color:var(--text-dim); font-size:11px; font-weight:600; padding:5px 10px; border-radius:var(--radius-badge);}
.eim-facts-row{display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin:14px 0; align-items:stretch;}
.eim-fact-card{background:var(--surface); border-radius:var(--radius-card); padding:10px 8px; text-align:center;}
.eim-fact-label{font-size:9px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em; margin-bottom:4px;}
.eim-fact-value{font-size:12px; font-weight:700; color:var(--text);}
.eim-fact-primary-value{font-size:14px; font-weight:700; color:var(--text); margin-top:4px; display:flex; align-items:center; justify-content:center;}
.eim-fact-list{list-style:none; margin:4px 0 0; padding:0; text-align:left;}
.eim-fact-list li{display:flex; align-items:center; gap:6px; font-size:11px; color:var(--text); margin-bottom:4px; line-height:1.3;}
.eim-fact-list li:last-child{margin-bottom:0;}
.eim-fact-rest{display:flex; flex-direction:column; align-items:center; gap:2px; margin-top:4px;}
.eim-fact-rest-value{font-family:'JetBrains Mono',monospace; font-size:18px; font-weight:700; color:var(--text);}
.eim-fact-rest-unit{font-size:9px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em;}
.eim-step-list{list-style:none; margin:0; padding:0;}
.eim-step-list li{display:flex; gap:10px; margin-bottom:12px; font-size:13px; color:var(--text); line-height:1.5;}
.eim-step-num{flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--moss); color:var(--bg); font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center;}
.eim-bordered-box{border:1px solid var(--border); border-radius:var(--radius-card); padding:12px; margin-top:14px;}
.eim-bordered-box-title{font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em; margin-bottom:8px; font-weight:700;}
.eim-tips-list{list-style:none; margin:0; padding:0;}
.eim-tips-list li{display:flex; gap:8px; font-size:12px; color:var(--text); margin-bottom:6px; line-height:1.4;}
.eim-tips-list li::before{content:'✓'; color:var(--moss); font-weight:700; flex-shrink:0;}
.eim-muscles-row{display:flex; gap:12px; align-items:flex-start;}
.eim-muscles-col{flex:1; display:flex; flex-direction:column; gap:16px; min-width:0;}
.eim-muscle-item-label{font-size:12px; font-weight:700; color:var(--text); text-transform:uppercase; letter-spacing:.03em; display:flex; align-items:center; gap:6px; margin-bottom:6px;}
.eim-muscle-item-label.primary{color:var(--error);}
.eim-muscle-item-label.secondary{color:var(--amber);}
.eim-muscle-item-value{font-size:16px; font-weight:700; color:var(--text); margin-bottom:4px; display:flex; align-items:center;}
.eim-muscle-item-desc{font-size:12px; color:var(--text-dim); line-height:1.45;}
.eim-muscles-col .eim-fact-list li{font-size:12px; margin-bottom:6px;}
.eim-muscle-diagram-placeholder{flex:0 0 130px; width:130px; height:150px; border:1px dashed var(--border); border-radius:var(--radius-card); display:flex; align-items:center; justify-content:center; color:var(--text-dim); font-size:11px; text-align:center; padding:12px; box-sizing:border-box;}
.eim-muscle-diagram{flex:0 0 130px; width:130px; height:150px; border-radius:var(--radius-card); background:var(--surface); object-fit:contain; cursor:pointer;}
.eim-mistake-card{display:flex; align-items:center; gap:10px; border:1px solid var(--border); border-radius:var(--radius-card); padding:12px; margin-bottom:8px;}
.eim-mistake-icon{color:var(--amber); flex-shrink:0; display:flex;}
.eim-mistake-icon svg{width:18px; height:18px;}
.eim-mistake-text{flex:1; font-size:12px; color:var(--text); line-height:1.4;}
.eim-mistake-x{color:var(--error); flex-shrink:0; display:flex;}
.eim-mistake-x svg{width:18px; height:18px;}
.eim-safety-list{list-style:none; margin:0; padding:0;}
.eim-safety-list li{display:flex; gap:8px; font-size:12px; color:var(--text); margin-bottom:6px; line-height:1.4;}
.eim-safety-list li::before{content:'⚠'; color:var(--amber); flex-shrink:0;}
.eim-alt-intro{font-size:11px; color:var(--text-dim); line-height:1.4; margin-bottom:16px;}
.eim-alt-section{margin-bottom:20px;}
.eim-alt-section-title{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:var(--moss);}
.eim-alt-section-sub{font-size:11px; color:var(--text-dim); margin:2px 0 10px 20px;}
.eim-alt-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.eim-alt-card{display:flex; flex-direction:column; background:var(--surface); border:none; border-radius:var(--radius-card); padding:0; overflow:hidden; cursor:pointer; text-align:left;}
.eim-alt-card-imgwrap{position:relative; width:100%; aspect-ratio:1/1; background:var(--surface-2); display:flex; align-items:center; justify-content:center;}
.eim-alt-card-imgwrap img{width:100%; height:100%; object-fit:cover;}
.eim-alt-card-imgwrap svg{width:32px; height:32px; color:var(--moss);}
.eim-alt-card-arrow{position:absolute; top:6px; right:6px; width:22px; height:22px; border-radius:50%; background:rgba(15,15,13,0.7); color:var(--text); display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0;}
.eim-alt-card-name{font-size:12px; font-weight:700; color:var(--text); padding:8px 8px 0;}
.eim-alt-card-muscles{display:flex; flex-wrap:wrap; gap:8px; padding:6px 8px 10px;}
.eim-alt-card-muscle{display:flex; align-items:center; font-size:10px; color:var(--text-dim);}
.eim-alt-info{display:flex; gap:8px; align-items:flex-start; background:var(--surface); border-radius:var(--radius-card); padding:12px; font-size:11px; color:var(--text-dim); line-height:1.4;}
.eim-alt-info svg{flex-shrink:0; color:var(--moss); margin-top:1px; width:16px; height:16px;}
.eim-alt-info strong{color:var(--moss); font-weight:700;}

.eim-equipment-item{display:flex; flex-direction:column; align-items:center; gap:6px; width:64px;}
.eim-equipment-icon{width:28px; height:28px; color:var(--text-dim);}
.eim-equipment-icon svg{width:100%; height:100%; fill:none;}
.eim-equipment-label{font-size:10px; color:var(--text-dim); text-align:center; line-height:1.3;}
.eim-fact-dot{display:inline-block; width:6px; height:6px; border-radius:50%; margin-right:4px; flex-shrink:0;}
.eim-fact-dot.primary{background:var(--error);}
.eim-fact-dot.secondary{background:var(--amber);}
.eim-fact-clock{width:16px; height:16px; color:var(--text-dim); flex-shrink:0;}

.plan-grid{display:flex; flex-direction:column; gap:8px; margin-bottom:8px;}
.wl-search-input{width:100%; margin-bottom:10px;}
.wl-card{display:flex; align-items:flex-start; gap:12px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px; cursor:pointer; text-align:left;}
.wl-card.active{border-color:var(--moss); background:rgba(138,154,91,0.1);}
.wl-card-icon{font-size:22px; flex-shrink:0; margin-top:2px;}
.wl-card-body{flex:1; min-width:0;}
.wl-card-title{font-family:'Inter',sans-serif; font-weight:600; font-size:14px; color:var(--text);}
.wl-card-sub{font-size:11px; color:var(--text-dim); margin-top:2px;}
.wl-card-count{font-size:10px; color:var(--moss); margin-top:4px; text-transform:uppercase; letter-spacing:.03em;}
.wl-card-progress{margin-top:10px;}
.wl-card-progress-label{font-size:10px; color:var(--moss); font-weight:600; text-transform:uppercase; letter-spacing:.02em;}
.wl-card-progress-track{width:100%; height:5px; border-radius:3px; background:var(--surface-2); margin-top:5px; overflow:hidden;}
.wl-card-progress-fill{height:100%; background:var(--moss); border-radius:3px;}
.wl-card-right{flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:8px;}
.wl-card-duration{display:flex; align-items:center; gap:4px; background:var(--surface-2); color:var(--text-dim); font-size:10px; font-weight:600; padding:4px 8px; border-radius:var(--radius-badge); white-space:nowrap;}
.wl-card-duration svg{width:11px; height:11px; flex-shrink:0;}
.wl-card-chevron{color:var(--text-dim); display:flex;}
.wl-card-chevron svg{width:16px; height:16px;}
.new-workout-form{display:none; gap:8px; margin-bottom:14px;}
.new-workout-form input{flex:1;}
.new-workout-form button{background:var(--moss); color:var(--bg); border:none; border-radius:8px; padding:0 16px; font-weight:600; font-size:13px; cursor:pointer; flex-shrink:0;}
.plan-btn{background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:10px; padding:12px 10px; font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; text-align:left; cursor:pointer;}
.plan-btn.full-width{grid-column:1 / -1;}
.plan-btn.full-width{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:var(--moss);
  border:none;
  color:var(--bg);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.03em;
  border-radius:var(--radius-button);
  padding:14px;
}
.plan-btn.active{background:rgba(138,154,91,0.16); border-color:var(--moss); color:var(--moss);}

.wl-card{position:relative;}
.wl-card-icon{color:var(--moss);}
.wl-card-icon svg{width:22px; height:22px; display:block;}

.wd-bottom-bar{position:fixed; left:0; right:0; bottom:0; display:flex; gap:10px; align-items:center; padding:14px 20px calc(20px + env(safe-area-inset-bottom, 0px)); background:linear-gradient(to top, var(--bg) 55%, transparent); z-index:210;}
.wd-start-btn{flex:1; display:flex; align-items:center; justify-content:center; gap:10px; background:var(--moss); color:var(--bg); border:none; border-radius:var(--radius-button); padding:16px; font-family:'Oswald',sans-serif; font-size:15px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; box-shadow:var(--shadow-floating);}
.wd-start-btn svg{width:20px; height:20px; flex-shrink:0;}
.wd-fab-restart-inline{width:52px; height:52px; flex-shrink:0; border-radius:50%; background:var(--amber); color:var(--bg); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--shadow-floating);}
.wd-fab-restart-inline svg{width:20px; height:20px;}
.wd-fab-stop-inline{width:52px; height:52px; flex-shrink:0; border-radius:50%; background:var(--error); color:#fff; border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--shadow-floating);}
.wd-fab-stop-inline svg{width:20px; height:20px;}
.wd-fab-edit-inline{width:52px; height:52px; flex-shrink:0; border-radius:50%; background:var(--moss); color:var(--bg); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--shadow-floating);}
.wd-fab-edit-inline svg{width:20px; height:20px;}
#wdExerciseList{padding-bottom:90px;}

#restartWorkoutModal{
  z-index:260;
}

.restart-workout-modal-content{
  max-width:320px;
  text-align:center;
}

.restart-workout-message{
  margin:0;
  line-height:1.5;
}

.restart-workout-actions{
  display:flex;
  gap:10px;
  margin-top:18px;
}

.restart-workout-actions button{
  flex:1;
}

.wl-sticky-head{
  position:sticky;
  top:0;
  z-index:10;
  background:var(--bg);
  margin:0 -20px;
  padding:0 20px 10px;
}

.workouts-page-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.workouts-page-header .page-heading{
  margin-bottom:2px;
}

.page-subheading{font-size:12px; color:var(--text-dim); margin-bottom:16px;}

.wl-quick-row{display:flex; align-items:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-button); padding:4px; margin-bottom:14px;}
.wl-quick-btn{flex:1; display:flex; align-items:center; justify-content:center; gap:6px; background:none; border:none; color:var(--moss); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; padding:10px 6px; cursor:pointer; border-radius:calc(var(--radius-button) - 4px);}
.wl-quick-btn svg{width:16px; height:16px; flex-shrink:0;}
.wl-quick-divider{width:1px; align-self:stretch; background:var(--border); margin:6px 0;}

.exercise-library-shortcut{
  margin-top:1px;
  padding:8px 12px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--moss);
  display:flex;
  align-items:center;
  gap:6px;
  border-radius:var(--radius-button);
  cursor:pointer;
  flex-shrink:0;
}

.exercise-library-shortcut svg{
  width:17px;
  height:17px;
  flex-shrink:0;
}

.exercise-library-shortcut span{
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
  white-space:nowrap;
}

#libraryWorkoutPickerModal{
  z-index:270;
}

.exercise-library-header{
  position:sticky;
  top:-20px;
  z-index:15;
  margin:-20px -20px 12px;
  padding:20px 20px 12px;
  background:var(--bg);
}

.exercise-library-count{
  margin:-8px 0 14px;
  color:var(--moss);
  font-size:12px;
  text-align:center;
}

.exercise-library-search{
  height:44px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 13px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
}

.exercise-library-search svg{
  width:18px;
  height:18px;
  color:var(--text-dim);
  flex-shrink:0;
}

.exercise-library-search input{
  width:100%;
  border:none;
  outline:none;
  background:transparent;
  color:var(--text);
  font:inherit;
}

.exercise-library-filters{
  display:flex;
  gap:8px;
  margin-top:12px;
  overflow-x:auto;
  scrollbar-width:none;
}

.exercise-library-filter{
  flex:0 0 auto;
  border:1px solid var(--border);
  border-radius:18px;
  padding:7px 12px;
  background:var(--surface);
  color:var(--text-dim);
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}

.exercise-library-filter.active{
  border-color:var(--moss);
  background:var(--moss);
  color:var(--bg);
}

.exercise-library-list{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding-bottom:18px;
}

.exercise-library-row{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:68px;
  padding:9px 10px;
  border-bottom:1px solid rgba(255,255,255,.06);
  cursor:pointer;
}

.exercise-library-image{
  width:62px;
  height:50px;
  border-radius:8px;
  overflow:hidden;
  background:var(--surface);
  flex-shrink:0;
}

.exercise-library-image img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.exercise-library-info{
  min-width:0;
  flex:1;
}

.exercise-library-name{
  color:var(--text);
  font-size:13px;
  font-weight:700;
}

.exercise-library-muscles{
  margin-top:4px;
  color:var(--moss);
  font-size:11px;
}

.exercise-library-add{
  width:34px;
  height:34px;
  flex-shrink:0;
  border:1px solid var(--moss);
  border-radius:50%;
  background:transparent;
  color:var(--moss);
  font-size:23px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}

.exercise-library-add svg{
  width:16px;
  height:16px;
}

.exercise-library-add.added{
  background:var(--moss);
  color:var(--bg);
  border-color:var(--moss);
}

.library-workout-choice{
  width:100%;
  margin-top:9px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
  color:var(--text);
  text-align:left;
  font-weight:700;
  cursor:pointer;
}

.wd-exercise-row{display:flex; align-items:center; gap:12px; width:100%; background:var(--surface); border:none; border-radius:var(--radius-card); padding:12px 14px; margin-bottom:8px; cursor:pointer; text-align:left;}
.wd-exercise-thumb{width:44px; height:44px; border-radius:var(--radius-image); background:var(--surface-2); flex-shrink:0; overflow:hidden;}
.wd-exercise-thumb img{width:100%; height:100%; object-fit:contain;}
.wd-exercise-info{flex:1; min-width:0;}
.wd-exercise-name{font-size:14px; font-weight:700; color:var(--text);}
.wd-exercise-meta{font-size:12px; margin-top:3px;}
.wd-exercise-meta-target{color:var(--moss);}
.wd-exercise-meta-sep{color:var(--text-dim); margin:0 4px;}
.wd-exercise-meta-rest{color:var(--text-dim);}

.wd-editex-name-input{display:block; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:12px 14px; margin-bottom:16px; font-family:'Inter',sans-serif; font-size:15px; font-weight:700; color:var(--text); box-sizing:border-box;}
.wd-editex-name-input:disabled{opacity:.6;}

.wd-editex-row{display:flex; align-items:center; gap:10px; width:100%; background:var(--surface); border-radius:var(--radius-card); padding:10px 14px; margin-bottom:8px; cursor:pointer;}
.wd-editex-num{width:16px; text-align:center; font-size:13px; font-weight:700; color:var(--text-dim); flex-shrink:0;}
.wd-editex-thumb{width:44px; height:44px; border-radius:var(--radius-image); background:var(--surface-2); flex-shrink:0; overflow:hidden;}
.wd-editex-thumb img{width:100%; height:100%; object-fit:contain;}
.wd-editex-name{flex:1; min-width:0;}
.wd-editex-title{font-size:13px; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.wd-editex-target{font-size:11px; margin-top:2px;}
.wd-editex-remove{background:none; border:none; color:var(--error); cursor:pointer; padding:4px 6px; flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.wd-editex-remove svg{width:18px; height:18px;}
.wd-editex-row.dragging{box-shadow:var(--shadow-floating); position:relative; z-index:5; touch-action:none;}

.wd-editex-save-btn{background:none; border:none; color:var(--moss); font-family:'Oswald',sans-serif; font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; cursor:pointer; padding:0; width:auto;}

.wd-add-exercise-outline-btn{display:block; width:100%; background:none; border:1.5px solid var(--moss); color:var(--moss); border-radius:var(--radius-button); padding:14px; font-family:'Inter',sans-serif; font-weight:700; font-size:13px; text-align:center; cursor:pointer; box-sizing:border-box; margin-top:4px;}

.wd-editex-tip{display:flex; gap:10px; align-items:flex-start; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px; margin-top:16px;}
.wd-editex-tip-icon{width:18px; height:18px; flex-shrink:0; color:var(--amber); margin-top:1px;}
.wd-editex-tip-title{font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:4px;}
.wd-editex-tip-body{font-size:12px; color:var(--text-dim); line-height:1.5;}

.wd-exset-label{display:block; font-size:11px; color:var(--text-dim); margin:12px 0 6px; text-transform:uppercase; letter-spacing:.05em;}

.wd-menu-sheet{display:none; position:absolute; top:56px; right:20px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:8px; z-index:220; min-width:190px; flex-direction:column; gap:6px; box-shadow:var(--shadow-floating);}
.wd-menu-sheet.open{display:flex;}
.wd-menu-sheet .settings-row{color:var(--text); font-family:'Inter',sans-serif; font-size:13px; font-weight:600;}

.logging-header-row{display:flex; gap:14px; align-items:flex-start; margin-top:10px;}
.logging-muscle-thumb{width:96px; height:96px; flex-shrink:0; border-radius:var(--radius-image); background:var(--surface); overflow:hidden; cursor:pointer;}
.logging-muscle-thumb img{width:100%; height:100%; object-fit:cover;}
.logging-header-info{flex:1; min-width:0;}
.logging-header-info .logging-ex-name{margin-top:0;}
.logging-ex-name{font-size:22px; font-weight:700; color:var(--text); margin-top:10px;}
.logging-subtitle{font-size:13px; color:var(--text-dim); margin-top:6px;}
.logging-muscle-row{display:flex; align-items:center; gap:8px; margin-top:8px;}
.logging-muscle-icon{width:18px; height:18px; flex-shrink:0; display:flex;}
.logging-muscle-icon svg{width:18px; height:18px;}
.logging-muscle-icon.primary{color:var(--moss);}
.logging-muscle-icon.secondary{color:var(--amber);}
.logging-muscle-text{font-size:13px; color:var(--text-dim); line-height:1.4;}
.logging-muscle-text.primary{color:var(--moss);}
.logging-muscle-text.secondary{color:var(--amber);}
.logging-muscle-text strong{color:var(--text); font-weight:700;}
.logging-cards-row{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px;}
.logging-metric-card{background:var(--surface); border-radius:var(--radius-card); padding:12px 8px; display:flex; flex-direction:column; align-items:center; gap:8px;}
.logging-metric-label{font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.04em;}
.logging-metric-unit{font-size:12px; color:var(--text-dim); font-weight:600;}
.logging-log-btn{display:flex; align-items:center; justify-content:center; gap:8px;}
.logging-set-label{margin-top:16px;}

.wu-card{display:flex; gap:14px; align-items:flex-start; background:var(--surface); border-radius:var(--radius-card); padding:16px; margin-top:6px;}
.wu-card-icon{width:40px; height:40px; border-radius:50%; background:rgba(138,154,91,0.16); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.wu-card-icon svg{width:20px; height:20px;}
.wu-card-body{flex:1; min-width:0;}
.wu-card-title{font-size:15px; font-weight:700; color:var(--text);}
.wu-card-duration{font-size:12px; font-weight:600; color:var(--moss); margin:2px 0 6px;}
.wu-card-desc{font-size:12px; color:var(--text-dim); line-height:1.5; margin-top:4px;}
.wu-card-duration-badge{flex-shrink:0; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--surface-2); border-radius:var(--radius-card); padding:8px 10px; font-family:'JetBrains Mono',monospace; font-size:15px; font-weight:700; color:var(--text); line-height:1.1;}
.wu-card-duration-badge span{font-family:'Oswald',sans-serif; font-size:8px; font-weight:600; color:var(--text-dim); letter-spacing:.05em; margin-top:2px;}
.wu-focus-row{display:flex; gap:8px; margin-bottom:4px;}
.wu-focus-chip{flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:10px 6px; cursor:pointer; color:var(--text-dim); font-size:10px; font-weight:600;}
.wu-focus-chip svg{width:18px; height:18px;}
.wu-focus-chip.active{border-color:var(--moss); background:rgba(138,154,91,0.12); color:var(--moss);}
.wu-row{display:flex; align-items:center; gap:12px; background:var(--surface); border-radius:var(--radius-card); padding:10px 14px; margin-bottom:8px; cursor:default;}
.wu-row.wu-row-clickable{cursor:pointer;}
.wu-row-num{width:20px; height:20px; border-radius:50%; background:var(--surface-2); color:var(--text-dim); font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.wu-row-thumb{width:40px; height:40px; border-radius:50%; background:var(--surface-2); flex-shrink:0; overflow:hidden; display:flex; align-items:center; justify-content:center; color:var(--text-dim);}
.wu-row-thumb img{width:100%; height:100%; object-fit:contain;}
.wu-row-thumb svg{width:20px; height:20px;}
.wu-row-info{flex:1; min-width:0;}
.wu-row-title{font-size:13px; font-weight:700; color:var(--text);}
.wu-row-sub{font-size:11px; color:var(--text-dim); margin-top:2px; display:flex; align-items:center; gap:4px;}
.wu-row-sub svg{width:10px; height:10px; flex-shrink:0;}
.wu-row-arrow{color:var(--text-dim); flex-shrink:0; display:flex;}
.wu-row-arrow svg{width:16px; height:16px;}
.wu-tip-box{display:flex; gap:10px; align-items:flex-start; background:rgba(138,154,91,0.1); border:1px solid rgba(138,154,91,0.3); border-radius:var(--radius-card); padding:12px; margin-top:14px;}
.wu-tip-icon{color:var(--amber); flex-shrink:0; font-size:14px;}
.wu-tip-label{font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--moss); margin-bottom:2px;}
.wu-tip-text{font-size:11px; color:var(--text-dim); line-height:1.4;}
.wu-skip-btn{background:none; border:none; color:var(--text-dim); font-size:13px; font-weight:600; padding:12px; cursor:pointer; text-align:center; width:100%;}
.wu-cta-btn{display:block; width:80%; max-width:340px; margin:0 auto; background:var(--moss); border:none; color:var(--bg); font-family:'Oswald',sans-serif; font-size:16px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; text-align:center; border-radius:var(--radius-button); padding:18px; cursor:pointer;}
.wu-intro-actions{position:fixed; left:0; right:0; bottom:0; background:var(--bg); border-top:1px solid var(--border); padding:14px 20px calc(20px + env(safe-area-inset-bottom, 0px)); z-index:20;}
#wuIntroScreen, #cdIntroScreen{padding-bottom:130px;}

.wd-add-ex-search-row{margin-bottom:10px;}
.wd-add-ex-search-wrap{position:relative;}
.wd-add-ex-search-icon{position:absolute; left:12px; top:50%; transform:translateY(-50%); width:17px; height:17px; color:var(--text-dim); pointer-events:none;}
.wd-add-ex-search-wrap input{padding-left:38px;}
.wd-add-ex-list{display:flex; flex-direction:column; gap:8px; padding-top:6px;}
.wd-add-ex-row{display:flex; align-items:center; gap:12px; width:100%; background:var(--surface); border:none; border-radius:var(--radius-card); padding:10px 12px; text-align:left; cursor:pointer;}
.wd-add-ex-thumb{width:52px; height:52px; border-radius:var(--radius-image); background:var(--surface-2); flex-shrink:0; overflow:hidden;}
.wd-add-ex-thumb img{width:100%; height:100%; object-fit:contain; pointer-events:none;}
.wd-add-ex-info{flex:1; min-width:0;}
.wd-add-ex-name{font-size:14px; font-weight:700; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.wd-add-ex-muscles{font-size:11px; color:var(--moss); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.wd-add-ex-plus{width:32px; height:32px; border-radius:50%; background:var(--moss); color:var(--bg); border:none; display:flex; align-items:center; justify-content:center; flex-shrink:0; cursor:pointer;}
.wd-add-ex-plus svg{width:16px; height:16px;}
.wd-add-ex-plus.added{background:var(--surface-2); color:var(--moss);}

.eim-carousel{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; border-radius:var(--radius-card); background:var(--surface); width:100%; height:220px; min-width:0; flex-shrink:0;}
.eim-carousel::-webkit-scrollbar{display:none;}
.eim-carousel-slide{flex:0 0 100%; width:100%; height:220px; scroll-snap-align:center; display:flex; align-items:center; justify-content:center;}
.eim-carousel-slide img{max-width:100%; max-height:200px; object-fit:contain; display:block; cursor:pointer;}
.eim-carousel-dots{display:flex; justify-content:center; gap:6px; margin:8px 0 14px;}
.eim-carousel-dot{width:6px; height:6px; border-radius:50%; background:var(--surface-2); transition:width .15s, border-radius .15s;}
.eim-carousel-dot.active{background:var(--moss); width:16px; border-radius:3px;}
.eim-info-list{margin-bottom:14px;}
.eim-info-row{display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--border);}
.eim-info-row:last-child{border-bottom:none;}
.eim-info-icon{width:16px; height:16px; color:var(--text-dim); flex-shrink:0; display:flex;}
.eim-info-icon svg{width:100%; height:100%;}
.eim-info-label{font-size:12px; color:var(--text-dim); flex:1;}
.eim-info-value{font-size:12px; color:var(--text); font-weight:600;}

.eim-var-columns{display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; margin-top:10px;}
.eim-var-col{border-radius:var(--radius-card); padding:8px 6px; background:var(--surface);}
.eim-var-col.easier{border:1px solid rgba(138,154,91,0.4);}
.eim-var-col.harder{border:1px solid rgba(226,85,85,0.4);}
.eim-var-col.standard{border:1px solid var(--moss); background:rgba(138,154,91,0.08);}
.eim-var-col-title{font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; margin-bottom:8px; display:flex; align-items:center; justify-content:center; gap:3px;}
.eim-var-col.easier .eim-var-col-title{color:var(--moss);}
.eim-var-col.harder .eim-var-col-title{color:var(--error);}
.eim-var-col.standard .eim-var-col-title{color:var(--moss);}
.eim-var-item{display:flex; flex-direction:column; align-items:center; gap:4px; margin-bottom:8px; cursor:pointer; background:none; border:none; width:100%; padding:0;}
.eim-var-item img{width:34px; height:34px; object-fit:contain; border-radius:6px; background:var(--surface-2);}
.eim-var-item-name{font-size:9px; color:var(--text); line-height:1.2; text-align:center;}
.eim-var-standard{display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; background:none; border:none; width:100%;}
.eim-var-standard img{width:56px; height:56px; object-fit:contain; border-radius:8px; background:var(--surface-2);}
.eim-var-standard-name{font-size:10px; color:var(--text); font-weight:600; text-align:center;}

.eim-tabs{display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:14px; margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px; overflow-x:auto; min-height:52px; position:sticky; z-index:15; background:var(--bg);}
.eim-tab{flex:0 0 auto; min-width:56px; min-height:44px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:none; border:none; color:var(--text-dim); font-size:9.5px; line-height:1.3; font-family:inherit; font-weight:600; text-transform:uppercase; letter-spacing:.02em; padding:8px 10px; cursor:pointer; border-bottom:2px solid transparent; white-space:nowrap;}
.eim-tab-icon{width:16px; height:16px; min-width:16px; min-height:16px; display:flex; flex-shrink:0;}
.eim-tab-icon svg{width:16px; height:16px; display:block;}
.eim-tab.active{color:var(--moss); border-bottom-color:var(--moss);}
.eim-muscle-badge{display:inline-block; background:var(--surface-2); color:var(--moss); font-size:12px; font-weight:600; padding:6px 14px; border-radius:var(--radius-badge);}

.pho-latest-img{width:100%; max-height:440px; border-radius:var(--radius-image); object-fit:cover; cursor:pointer; display:block;}
.pho-latest-empty{width:100%; min-height:160px; border-radius:var(--radius-image); border:1px dashed var(--border); display:flex; align-items:center; justify-content:center; color:var(--text-dim); font-size:13px;}

.prog-header-row{display:flex; align-items:center; justify-content:space-between; margin-bottom:2px;}
.prog-calendar-btn{width:38px; height:38px; border-radius:50%; background:var(--surface); border:1px solid var(--border); color:var(--moss); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; padding:0;}
.prog-calendar-btn svg{width:18px; height:18px;}
.page-info-btn{width:38px; height:38px; border-radius:50%; background:var(--surface); border:1px solid var(--border); color:var(--moss); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; padding:0;}
.page-info-btn svg{width:18px; height:18px;}

.prog-subtabs{display:flex; gap:6px; margin-bottom:16px; overflow-x:auto; background:var(--surface); border-radius:var(--radius-button); padding:4px;}
.prog-subtab{flex:1; background:none; border:none; color:var(--text-dim); font-size:12px; font-weight:600; padding:9px 10px; cursor:pointer; border-radius:calc(var(--radius-button) - 4px); white-space:nowrap;}
.prog-subtab.active{color:var(--bg); background:var(--moss);}

.body-subtabs{display:flex; gap:6px; margin-bottom:0; overflow-x:auto; background:var(--surface); border-radius:var(--radius-button); padding:4px;}
.body-subtab{flex:1; background:none; border:none; color:var(--text-dim); font-size:12px; font-weight:600; padding:9px 10px; cursor:pointer; border-radius:calc(var(--radius-button) - 4px); white-space:nowrap;}
.body-subtab.active{color:var(--bg); background:var(--moss);}
.body-sticky-head{position:sticky; top:113px; z-index:15; background:var(--bg); margin:0 -20px 18px; padding:0 20px 18px;}

.kstat-add-btn{width:30px; height:30px; border-radius:50%; background:var(--surface-2); border:1px solid var(--border); color:var(--moss); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; padding:0;}
.kstat-add-btn svg{width:15px; height:15px;}

.md-range-tabs{display:flex; gap:6px; background:var(--surface); border-radius:var(--radius-button); padding:4px; margin-bottom:18px;}
.md-range-tab{flex:1; background:none; border:none; color:var(--text-dim); font-size:12px; font-weight:700; padding:9px 6px; cursor:pointer; border-radius:calc(var(--radius-button) - 4px);}
.md-range-tab.active{color:var(--bg); background:var(--moss);}
.md-current-value{font-family:var(--font-display); font-size:32px; color:var(--text);}
.md-delta{font-size:13px; font-weight:700; color:var(--moss); margin-top:2px;}
.md-delta.down{color:var(--error);}
.md-delta.neutral{color:var(--text-dim); font-weight:500;}
.md-period-label{font-size:12px; color:var(--text-dim); margin-top:1px;}
.md-summary-row{display:flex; justify-content:space-between; align-items:center; padding:9px 0; border-bottom:1px solid var(--border); font-size:13px;}
.md-summary-row:last-child{border-bottom:none; padding-bottom:0;}
.md-summary-row span:first-child{color:var(--text-dim);}
.md-summary-row span:last-child{color:var(--text); font-weight:700;}

.kstat-picker-row{display:flex; align-items:center; gap:12px; padding:11px 4px; border-bottom:1px solid var(--border); cursor:pointer;}
.kstat-picker-row:last-child{border-bottom:none;}
.kstat-picker-icon{width:30px; height:30px; border-radius:50%; background:var(--surface-2); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.kstat-picker-icon svg{width:15px; height:15px;}
.kstat-picker-label{flex:1; font-size:13px; color:var(--text);}
.kstat-picker-check{width:20px; height:20px; color:var(--moss); flex-shrink:0;}
.kstat-picker-row.active .kstat-picker-label{color:var(--moss); font-weight:600;}

.bstat-row{display:flex; align-items:center; gap:12px; background:var(--surface); border-radius:var(--radius-card); padding:14px; margin-bottom:8px;}
.bstat-icon{width:38px; height:38px; border-radius:50%; background:rgba(138,154,91,0.16); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.bstat-icon svg{width:19px; height:19px;}
.bstat-info{flex:1; min-width:0;}
.bstat-value{font-size:15px; font-weight:700; color:var(--text);}
.bstat-delta{font-size:11px; color:var(--moss); margin-top:2px;}
.bstat-delta.down{color:var(--error);}
.bstat-delta.neutral{color:var(--text-dim);}
.bstat-spark{width:80px; height:32px; flex-shrink:0;}

.bci-date{font-size:12px; color:var(--text-dim); margin-bottom:10px;}
.bci-row{display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--border); cursor:pointer;}
.bci-row:last-child{border-bottom:none; padding-bottom:0;}
.bci-icon{width:30px; height:30px; border-radius:50%; background:rgba(138,154,91,0.16); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.bci-icon svg{width:15px; height:15px;}
.bci-label{flex:1; font-size:13px; color:var(--text-dim);}
.bci-value{font-size:13px; font-weight:700; color:var(--text);}

.ow-stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:20px;}
.ow-stat-tile{background:var(--surface); border-radius:var(--radius-card); padding:12px 6px; text-align:center;}
.ow-stat-icon{color:var(--moss); display:flex; justify-content:center; margin-bottom:6px;}
.ow-stat-icon svg{width:18px; height:18px;}
.ow-stat-value{font-family:var(--font-display); font-size:20px; color:var(--text);}
.ow-stat-label{font-size:9px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em; margin-top:2px;}

.ow-card{background:var(--surface); border-radius:var(--radius-card); padding:14px; margin-bottom:14px;}
.ow-card-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
.ow-card-title{font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--text);}
.ow-card-title-btn{display:flex; align-items:center; gap:4px; background:none; border:none; padding:0; cursor:pointer;}
.ow-card-title-chevron{width:13px; height:13px; color:var(--text-dim); flex-shrink:0;}

.ow-dropdown{position:relative; flex-shrink:0;}
.ow-dropdown-btn{display:flex; align-items:center; gap:4px; font-size:10px; font-weight:600; color:var(--text-dim); background:var(--surface-2); border:none; border-radius:var(--radius-badge); padding:5px 10px; cursor:pointer; font-family:'Inter',sans-serif;}
.ow-dropdown-btn svg{width:11px; height:11px; flex-shrink:0;}
.ow-dropdown-menu{display:none; position:absolute; top:calc(100% + 6px); right:0; background:var(--surface-2); border:1px solid var(--border); border-radius:12px; overflow:hidden; z-index:8; min-width:120px; box-shadow:var(--shadow-floating);}
.ow-dropdown-menu.open{display:block;}
.ow-dropdown-item{display:block; width:100%; text-align:left; background:none; border:none; color:var(--text); font-size:12px; font-weight:500; padding:10px 14px; cursor:pointer; font-family:'Inter',sans-serif;}
.ow-dropdown-item:active{background:var(--surface);}
.ow-dropdown-item.active{color:var(--moss); font-weight:700;}

.ow-dropdown-stack{display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex-shrink:0;}
.ow-dropdown-btn.pill-lg{font-size:13px; font-weight:500; color:var(--text); background:var(--surface-2); border:1px solid var(--border); border-radius:20px; padding:9px 14px; gap:8px;}
.ow-dropdown-btn.pill-lg svg{width:13px; height:13px; color:var(--text);}
.ow-measure-prefix{color:var(--text-dim); font-weight:400;}
.ow-measure-value{color:var(--text); font-weight:700;}

.ow-compare-row{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px;}
.ow-compare-block.right{text-align:right;}
.ow-compare-value{font-family:var(--font-display); font-size:22px; color:var(--text);}
.ow-compare-label{font-size:11px; color:var(--text-dim); margin-top:2px;}
.ow-compare-delta{font-size:18px; font-weight:700; color:var(--moss);}
.ow-compare-delta.down{color:var(--error);}
.ow-compare-delta.neutral{color:var(--text-dim);}

.volume-chart-wrap{position:relative; height:180px;}
.volume-peak-badge{position:absolute; top:0; right:8px; background:var(--moss); color:var(--bg); font-size:11px; font-weight:700; padding:4px 9px; border-radius:12px 12px 12px 2px;}

.frequency-chart-wrap{height:150px;}
.freq-drill-back{font-size:11px; font-weight:600; color:var(--moss); cursor:pointer; margin-bottom:8px;}

#pageInfoModal{z-index:300;}
#weekPickerModal{z-index:300;}
.wp-cal-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.wp-cal-nav{background:var(--surface-2); border:none; color:var(--text); width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.wp-cal-nav svg{width:14px; height:14px;}
.wp-cal-header span{font-size:14px; font-weight:700; color:var(--text);}
.wp-cal-daynames{display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:10px; color:var(--text-dim); margin-bottom:4px;}
.wp-cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:2px 0;}
.wp-cal-day{aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--text); cursor:pointer;}
.wp-cal-day.other-month{color:var(--text-dim); opacity:.35;}
.wp-cal-day.today{font-weight:700; color:var(--moss);}
.wp-cal-day.in-range{background:rgba(138,154,91,0.18);}
.wp-cal-day.selected{background:var(--moss); color:var(--bg); font-weight:700; border-radius:50%;}
.page-info-body{font-size:13px; color:var(--text-dim); line-height:1.5;}
.page-info-item{margin-bottom:12px;}
.page-info-item:last-child{margin-bottom:0;}
.page-info-label{color:var(--moss); font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.03em; margin-bottom:2px;}

.mb-body-row{display:flex; align-items:center; gap:14px;}
.mb-silhouette{color:var(--moss); flex-shrink:0; width:40px; opacity:.55;}
.mb-silhouette svg{width:100%; display:block;}
.mb-list{flex:1; min-width:0;}
.mb-row{display:flex; align-items:center; gap:10px; margin-bottom:8px;}
.mb-row:last-child{margin-bottom:0;}
.mb-label{width:70px; font-size:12px; color:var(--text); flex-shrink:0;}
.mb-bar-track{flex:1; height:8px; background:var(--surface-2); border-radius:16px; overflow:hidden;}
.mb-bar-fill{height:100%; background:var(--moss);}
.mb-pct{width:34px; text-align:right; font-size:11px; color:var(--text-dim); flex-shrink:0;}

.pr-row{display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--border);}
.pr-row:last-child{border-bottom:none; padding-bottom:0;}
.pr-icon{width:44px; height:44px; border-radius:var(--radius-image); background:var(--surface-2); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0; overflow:hidden;}
.pr-icon img{width:100%; height:100%; object-fit:contain;}
.pr-icon svg{width:24px; height:24px;}
.pr-info{flex:1; min-width:0;}
.pr-name{font-size:13px; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:flex; align-items:center; gap:6px;}
.pr-detail{font-size:11px; color:var(--text-dim); margin-top:1px;}
.pr-date{font-size:11px; color:var(--text-dim); flex-shrink:0;}
.pr-new-badge{background:var(--moss); color:var(--bg); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:2px 6px; border-radius:8px; flex-shrink:0;}

.prp-row{display:flex; align-items:center; gap:10px; background:var(--surface); border-radius:var(--radius-card); padding:10px 12px; margin-bottom:8px; cursor:pointer;}
.prp-info{flex:1; min-width:0;}
.prp-name{font-size:13px; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.prp-detail-row{display:flex; align-items:center; gap:8px; margin-top:3px; flex-wrap:wrap;}
.prp-weight{font-size:12px; color:var(--moss); font-weight:600;}
.prp-badge{font-size:9px; font-weight:600; color:var(--moss); border:1px solid var(--moss); border-radius:8px; padding:2px 7px;}
.prp-date{font-size:11px; color:var(--text-dim); flex-shrink:0; text-align:right; white-space:nowrap;}

.expr-tabs{display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:18px;}
.expr-tab{flex:1; background:none; border:none; color:var(--text-dim); font-size:13px; font-weight:600; padding:10px 6px; cursor:pointer; border-bottom:2px solid transparent;}
.expr-tab.active{color:var(--moss); border-bottom-color:var(--moss);}

.expr-about-facts{display:flex; flex-direction:column; gap:10px; background:var(--surface); border-radius:var(--radius-card); padding:14px;}

.sd-hero{display:flex; align-items:center; gap:12px; background:var(--surface); border-radius:var(--radius-card); padding:14px; margin-bottom:18px;}
.sd-hero-icon{width:48px; height:48px; border-radius:var(--radius-image); background:var(--surface-2); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.sd-hero-icon svg{width:26px; height:26px;}
.sd-hero-info{flex:1; min-width:0;}
.sd-hero-name{font-size:16px; font-weight:700; color:var(--text);}
.sd-hero-date{font-size:12px; color:var(--text-dim); margin-top:2px;}

.sd-ex-row{display:flex; align-items:center; gap:10px; background:var(--surface); border-radius:var(--radius-card); padding:12px; margin-bottom:8px; cursor:pointer;}
.sd-ex-number{width:20px; font-size:12px; font-weight:700; color:var(--text-dim); flex-shrink:0; text-align:center;}
.sd-ex-info{flex:1; min-width:0;}
.sd-ex-name{font-size:13px; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.sd-ex-meta{font-size:11px; color:var(--text-dim); margin-top:2px;}
.sd-ex-weight{font-size:11px; color:var(--text-dim); margin-top:1px;}
.sd-ex-trend{text-align:right; flex-shrink:0;}
.sd-ex-volume{font-size:13px; font-weight:700; color:var(--text);}
.sd-ex-volume-label{font-size:10px; color:var(--text-dim); margin-top:1px;}

.sd-notes-card{background:var(--surface); border-radius:var(--radius-card); padding:14px; font-size:13px; color:var(--text-dim); line-height:1.5;}

.exlist-row{display:flex; align-items:center; gap:12px; background:var(--surface); border-radius:var(--radius-card); padding:12px; margin-bottom:8px; cursor:pointer;}
.exlist-info{flex:1; min-width:0;}
.exlist-name{font-size:14px; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.exlist-meta{font-size:11px; color:var(--text-dim); margin-top:2px;}
.exlist-volume{font-size:11px; color:var(--text-dim); margin-top:1px;}
.exlist-trend{text-align:right; flex-shrink:0;}
.exlist-pct{font-size:15px; font-weight:700; color:var(--moss);}
.exlist-pct.down{color:var(--error);}
.exlist-pct.neutral{color:var(--text-dim);}
.exlist-pct-sub{font-size:10px; color:var(--text-dim); margin-top:1px;}

.exov-best-card{background:var(--surface); border-radius:var(--radius-card); padding:14px; margin-bottom:18px;}
.exov-best-label{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); margin-bottom:8px;}
.exov-best-row{display:flex; align-items:flex-start; justify-content:space-between;}
.exov-best-value{font-family:var(--font-display); font-size:24px; color:var(--text);}
.exov-best-date{font-size:12px; color:var(--text-dim); margin-top:2px;}

.exov-summary-row{display:flex; align-items:center; gap:10px; font-size:13px;}
.exov-summary-icon{width:22px; height:22px; color:var(--moss); flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.exov-summary-icon svg{width:16px; height:16px;}
.exov-summary-label{flex:1; color:var(--text-dim);}
.exov-summary-value{color:var(--text); font-weight:700;}

.exhist-controls-row{display:flex; gap:8px; margin-bottom:14px;}
.exhist-controls-row .ow-dropdown{flex:1;}
.exhist-controls-row .ow-dropdown-btn{width:100%; justify-content:space-between;}
.exhist-pr-toggle{flex-shrink:0; background:var(--surface-2); border:1px solid var(--border); color:var(--text); font-size:13px; font-weight:600; border-radius:20px; padding:9px 14px; cursor:pointer;}
.exhist-pr-toggle.active{background:var(--moss); color:var(--bg); border-color:var(--moss);}

.exdet-sticky-head{position:sticky; top:-20px; z-index:16; background:var(--bg); margin:-20px -20px 0; padding:20px 20px 0;}
.exdet-sticky-btn{position:sticky; bottom:0;}

.exhist-row{background:var(--surface); border-radius:var(--radius-card); padding:12px; margin-bottom:8px;}
.exhist-head{display:flex; align-items:center; justify-content:space-between; gap:8px;}
.exhist-date{font-size:13px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:6px;}
.exhist-pr-badge{font-size:9px; font-weight:700; color:var(--bg); background:var(--moss); border-radius:6px; padding:2px 6px;}
.exhist-best{font-size:14px; font-weight:700; color:var(--text); flex-shrink:0;}
.exhist-setcount{font-size:11px; color:var(--text-dim); margin-top:2px;}
.exhist-chips{display:flex; gap:6px; margin-top:8px; flex-wrap:wrap;}
.exhist-chip{font-size:11px; color:var(--text-dim); background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:4px 9px;}
.exhist-chip.best{color:var(--moss); border-color:var(--moss); background:rgba(138,154,91,0.12); font-weight:700;}

.ex-prog-thumb{width:44px; height:44px; border-radius:var(--radius-image); background:var(--surface-2); flex-shrink:0; overflow:hidden; display:flex; align-items:center; justify-content:center; color:var(--moss);}
.ex-prog-thumb img{width:100%; height:100%; object-fit:contain;}
.ex-prog-thumb svg{width:24px; height:24px;}

.wh-row{display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--border); cursor:pointer;}
.wh-row:last-child{border-bottom:none; padding-bottom:0;}
.wh-icon{width:32px; height:32px; border-radius:50%; background:rgba(138,154,91,0.16); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.wh-icon svg{width:16px; height:16px;}
.wh-info{flex:1; min-width:0;}
.wh-name{font-size:13px; font-weight:600; color:var(--text);}
.wh-meta{font-size:11px; color:var(--text-dim); margin-top:1px;}
.wh-volume{font-size:12px; font-weight:700; color:var(--text); flex-shrink:0;}

.tw-date-range{display:block; width:100%; text-align:center; color:var(--moss); font-size:13px; font-weight:600; margin-top:-8px; background:none; border:none; cursor:pointer; padding:6px; font-family:'Inter',sans-serif;}
.tw-date-range:active{opacity:.7;}

#thisWeekPage .wss-topbar{position:sticky; top:-20px; z-index:16; background:var(--bg); margin:-20px -20px 14px; padding:20px 20px 10px;}
#sessionDetailPage .wss-topbar{position:sticky; top:-20px; z-index:16; background:var(--bg); margin:-20px -20px 14px; padding:20px 20px 10px;}

.tw-workout-row{display:flex; align-items:center; gap:12px; background:var(--surface); border-radius:var(--radius-card); padding:12px 14px; margin-bottom:8px; cursor:pointer;}
.tw-workout-icon{width:44px; height:44px; border-radius:var(--radius-image); background:var(--surface-2); color:var(--moss); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.tw-workout-icon svg{width:24px; height:24px;}
.tw-workout-info{flex:1; min-width:0;}
.tw-workout-name{font-size:13px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:6px;}
.tw-dot{width:6px; height:6px; border-radius:50%; background:var(--moss); flex-shrink:0;}
.tw-workout-meta{font-size:11px; color:var(--text-dim); margin-top:1px;}
.tw-workout-stats{text-align:right; flex-shrink:0;}
.tw-workout-volume{font-size:13px; font-weight:700; color:var(--moss);}
.tw-workout-duration{font-size:11px; color:var(--text-dim); margin-top:1px;}
.tw-chevron{color:var(--text-dim); flex-shrink:0; display:flex;}
.tw-chevron svg{width:16px; height:16px;}

.tw-table{background:var(--surface); border-radius:var(--radius-card); padding:4px 14px; overflow:hidden; flex-shrink:0;}
.tw-table-head{display:grid; grid-template-columns:1.6fr 0.7fr 1fr; font-size:10px; text-transform:uppercase; letter-spacing:.03em; color:var(--text-dim); padding:10px 0; border-bottom:1px solid var(--border);}
.tw-table-row{display:grid; grid-template-columns:1.6fr 0.7fr 1fr; font-size:12px; color:var(--text); padding:10px 0; border-bottom:1px solid var(--border);}
.tw-table-row:last-child{border-bottom:none;}
.tw-table-head span:nth-child(2), .tw-table-row span:nth-child(2){text-align:center;}
.tw-table-head span:nth-child(3), .tw-table-row span:nth-child(3){text-align:right;}

.tw-highlights-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
.tw-highlight-tile{background:var(--surface); border-radius:var(--radius-card); padding:14px 8px; text-align:center;}
.tw-highlight-icon{color:var(--moss); display:flex; justify-content:center; margin-bottom:8px;}
.tw-highlight-icon svg{width:20px; height:20px;}
.tw-highlight-value{font-family:var(--font-display); font-size:20px; color:var(--text);}
.tw-highlight-label{font-size:10px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em; margin-top:2px;}
.tw-highlight-sub{font-size:10px; color:var(--text-dim); margin-top:4px;}
.tw-highlight-sub.positive{color:var(--moss);}
.tw-highlights-grid.four{grid-template-columns:repeat(4,1fr);}
.tw-highlights-grid.four .tw-highlight-tile{padding:12px 4px;}
.tw-highlights-grid.four .tw-highlight-label{font-size:9px;}

.ow-dropdown.standalone{display:inline-block;}
.frequency-chart-wrap.tall{height:220px; margin-top:6px;}

.wf-avg-num{font-family:var(--font-display); font-size:26px; color:var(--moss);}
.wf-avg-unit{font-size:14px; color:var(--text); font-weight:600;}

.wf-days-card{background:var(--surface); border-radius:var(--radius-card); padding:14px;}
.wf-days-header, .wf-days-row{display:grid; grid-template-columns:1.4fr repeat(7,1fr); align-items:center; gap:4px;}
.wf-days-header{font-size:10px; color:var(--text-dim); text-transform:uppercase; padding-bottom:10px; text-align:center;}
.wf-days-header span:first-child{text-align:left;}
.wf-days-row{padding:8px 0;}
.wf-days-rowlabel{font-size:11px; color:var(--text-dim);}
.wf-days-dot-wrap{display:flex; justify-content:center;}
.wf-days-dot{width:14px; height:14px; border-radius:50%; background:var(--surface-2);}
.wf-days-dot.active{background:var(--moss);}
.wf-days-legend{display:flex; align-items:center; gap:6px; font-size:11px; color:var(--text-dim); margin-top:8px; padding-top:10px; border-top:1px solid var(--border);}
.wf-days-legend .wf-days-dot{width:8px; height:8px;}
.wf-days-legend span.spacer{width:12px;}

.training-row{display:flex; justify-content:space-between; align-items:center; background:var(--surface); border-radius:var(--radius-card); padding:12px 14px; margin-bottom:8px;}
.training-name{font-size:13px; font-weight:600; color:var(--text);}
.training-stats{font-size:12px; color:var(--text-dim);}

.settings-row{display:flex; align-items:center; gap:12px; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px; margin-bottom:8px; cursor:pointer; text-decoration:none; box-sizing:border-box; text-align:left;}
.settings-row-icon{flex-shrink:0; width:38px; height:38px; border-radius:50%; background:rgba(138,154,91,0.16); color:var(--moss); display:flex; align-items:center; justify-content:center;}
.settings-row-icon svg{width:18px; height:18px;}
.settings-row-body{flex:1; min-width:0; display:flex; flex-direction:column;}
.settings-row-title{font-family:'Inter',sans-serif; font-size:13px; font-weight:600; color:var(--text);}
.settings-row-sub{font-size:11px; color:var(--text-dim); margin-top:2px;}
.settings-row-danger .settings-row-title{color:var(--error);}
.settings-row-danger{border-color:var(--error);}
.settings-row-svg-icon{width:18px; height:18px; flex-shrink:0; color:var(--text-dim);}
.wd-menu-sheet .settings-row-danger{color:var(--error);}
.wd-menu-sheet .settings-row-danger .settings-row-svg-icon{color:var(--error);}

.danger-btn{display:block; width:100%; background:var(--error); color:var(--bg); border:none; border-radius:var(--radius-button); padding:14px; font-family:'Inter',sans-serif; font-weight:700; font-size:13px; text-align:center; cursor:pointer; box-sizing:border-box;}
.danger-btn:active{background:var(--error-pressed);}

.faq-item{margin-bottom:8px;}
.faq-question{display:flex; align-items:center; justify-content:space-between; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:12px 14px; color:var(--text); font-size:13px; font-weight:600; cursor:pointer; text-align:left;}
.faq-chevron{color:var(--text-dim); transition:transform .2s ease;}
.faq-question.open .faq-chevron{transform:rotate(90deg);}
.faq-answer{background:var(--surface-2); border-radius:0 0 var(--radius-card) var(--radius-card); padding:12px 14px; font-size:12px; color:var(--text-dim); line-height:1.5; margin-top:-1px;}
.faq-answer p{margin:0;}

.about-hero{text-align:center; margin-bottom:16px;}
.about-wordmark{font-family:var(--font-display); font-size:24px; color:var(--text);}
.about-wordmark span{color:var(--moss);}
.about-tagline{font-size:12px; color:var(--text-dim); margin-top:4px;}

.recap-nav{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;}
.recap-nav-btn{background:var(--surface-2); border:none; color:var(--text); width:28px; height:28px; border-radius:50%; font-size:16px; cursor:pointer;}
.recap-nav-month{font-size:12px; color:var(--text-dim); font-weight:600;}

.compare-selectors{display:flex; align-items:center; gap:8px; margin-bottom:14px;}
.compare-selectors select{flex:1; background:var(--surface-2); border:1px solid var(--border); color:var(--text); border-radius:var(--radius-input); padding:8px;}
.compare-photos{display:flex; gap:8px; margin-bottom:14px;}
.compare-photo-col{flex:1; text-align:center;}
.compare-photo-img{width:100%; border-radius:var(--radius-image); background:var(--surface-2); min-height:120px; object-fit:cover;}
.compare-photo-label{font-size:11px; color:var(--text-dim); margin-top:4px;}
.compare-stat-row{display:flex; justify-content:space-between; font-size:12px; color:var(--text); padding:6px 0; border-bottom:1px solid var(--border);}
.compare-arrow.down{color:var(--moss);}
.compare-arrow.up{color:var(--error);}

.checkin-section{margin-top:16px; padding-top:14px; border-top:1px solid var(--border);}
.checkin-title{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-dim); margin-bottom:8px;}
.checkin-row{display:flex; align-items:center; gap:12px;}
.checkin-thumb{width:56px; height:56px; border-radius:10px; object-fit:cover; border:1px solid var(--border); cursor:pointer;}
.checkin-placeholder{width:56px; height:56px; border-radius:10px; border:1px dashed var(--border); display:flex; align-items:center; justify-content:center; color:var(--text-dim); font-size:22px; flex-shrink:0;}
.checkin-btn{background:var(--surface-2); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:10px 14px; font-size:13px; font-weight:600; cursor:pointer;}
.photo-strip{display:flex; gap:8px; margin-top:12px; overflow-x:auto; padding-bottom:4px;}
.photo-strip-item{flex-shrink:0; text-align:center;}
.photo-strip-item img, .photo-strip-item .ph-empty{width:48px; height:48px; border-radius:8px; object-fit:cover; border:1px solid var(--border); cursor:pointer;}
.photo-strip-item .ph-empty{display:flex; align-items:center; justify-content:center; color:var(--text-dim); font-size:11px; border-style:dashed;}
.photo-strip-item .ph-label{font-size:10px; color:var(--text-dim); margin-top:4px; font-family:'JetBrains Mono',monospace;}
.photo-strip-add{width:48px; height:48px; border-radius:8px; border:1px dashed var(--moss); background:none; color:var(--moss); font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.photo-modal{position:fixed; inset:0; background:rgba(0,0,0,0.85); display:none; align-items:center; justify-content:center; z-index:100; padding:24px;}
.photo-modal.open{display:flex;}
.photo-modal-content{display:flex; flex-direction:column; align-items:center; gap:14px; max-width:100%;}
.photo-modal img{max-width:100%; max-height:70vh; border-radius:12px; display:block;}
.photo-modal-noimg{width:220px; height:220px; max-width:70vw; max-height:40vh; border-radius:12px; border:1px dashed var(--text-dim); display:flex; align-items:center; justify-content:center; color:var(--text-dim); font-size:13px; text-align:center; padding:16px;}
.photo-modal-label{font-family:'Oswald',sans-serif; font-size:18px; font-weight:600; text-transform:uppercase; color:var(--text); letter-spacing:.02em;}
.photo-modal-stats{display:flex; flex-direction:column; align-items:center; gap:10px; width:260px; max-width:80vw;}
.photo-modal-stats .checkin-metrics{width:100%;}
.photo-modal-close{position:absolute; top:20px; right:20px; background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:50%; width:36px; height:36px; font-size:16px; cursor:pointer;}

.plan-group{margin-bottom:18px;}
.plan-group-header{margin-bottom:8px;}
.plan-group-header-top{display:flex; justify-content:space-between; align-items:flex-start; gap:10px;}
.plan-group-title{font-family:'Oswald',sans-serif; font-size:15px; font-weight:600; text-transform:uppercase; letter-spacing:.02em;}
.plan-group-focus{font-size:12px; color:var(--text-dim); margin-top:2px;}
.group-edit-btn{background:none; border:none; color:var(--text-dim); font-size:12px; text-decoration:underline; cursor:pointer; padding:2px 0; flex-shrink:0;}
.group-edit-btn-delete{color:var(--error); font-weight:600;}

.template-editor{background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:12px; margin-bottom:10px;}
.template-row{display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap;}
.template-row input{background:var(--surface-2); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:9px; font-size:13px; width:100%;}
.template-row .t-name{flex:1.6; min-width:110px;}
.template-row .t-target{flex:1.1; min-width:80px;}
.template-row .t-weight{flex:0.7; min-width:56px;}
.template-row .t-remove{background:none; border:none; color:var(--error); font-size:16px; cursor:pointer; padding:0 6px; flex-shrink:0;}
.drag-handle{color:var(--text-dim); font-size:18px; cursor:grab; touch-action:none; flex-shrink:0; display:flex; align-items:center; padding:0 4px; user-select:none;}
.template-row.dragging{opacity:0.4; background:var(--surface-2); border-radius:8px;}
.template-add-row{border-top:1px dashed var(--border); padding-top:10px; margin-top:2px;}
.template-add-row .t-add{background:var(--moss); color:var(--bg); border:none; border-radius:8px; padding:0 14px; font-weight:600; font-size:13px; cursor:pointer; flex-shrink:0;}
.template-actions{display:flex; gap:8px; margin-top:6px;}
.template-actions button{flex:1; border-radius:8px; padding:10px; font-weight:600; font-size:13px; cursor:pointer; border:none; font-family:'Oswald',sans-serif; text-transform:uppercase;}
.template-save{background:var(--moss); color:var(--bg);}
.template-cancel{background:var(--surface-2); color:var(--text-dim);}

.rep-tap-panel{padding-top:2px;}
.rep-tap-setlabel{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px;}
.rep-tap-panel .qa-weight{margin-bottom:10px;}
.rep-tap-btn{width:100%; background:var(--moss); border:none; border-radius:12px; padding:18px; cursor:pointer; color:var(--bg); text-align:center;}
.rep-tap-btn:active{background:var(--moss-dim);}
.rep-tap-btn:disabled{opacity:0.6;}
.rep-tap-count{font-family:'Oswald',sans-serif; font-size:17px; font-weight:600; text-transform:uppercase; letter-spacing:.02em;}
.rep-tap-slash{display:none;}
.rep-tap-hint{font-size:11px; text-transform:uppercase; letter-spacing:.06em; margin-top:2px; font-weight:600;}

.checklist-item{display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:10px 14px; margin-bottom:8px; cursor:pointer;}
.checklist-item.done{border-color:var(--moss); background:rgba(138,154,91,0.1);}
.checkbox{width:20px; height:20px; border-radius:6px; border:2px solid var(--text-dim); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.checklist-item.done .checkbox{background:var(--moss); border-color:var(--moss);}
.checkbox svg{display:none; width:12px; height:12px;}
.checklist-item.done .checkbox svg{display:block;}
.checklist-label-wrap{flex:1; min-width:0;}
.checklist-label{font-size:14px;}
.checklist-detail{font-size:11px; color:var(--text-dim); margin-top:2px; line-height:1.4;}
.checklist-item.done .checklist-label{color:var(--text-dim); text-decoration:line-through;}
.checklist-item.done .checklist-detail{color:var(--text-dim); opacity:0.6;}

.reset-app-warning{font-size:11px; color:var(--error); line-height:1.5; margin-bottom:8px; text-align:center;}

.muscle-filter-row{display:flex; gap:6px; overflow-x:auto; padding-bottom:8px; margin-bottom:8px;}
.muscle-filter-chip{flex-shrink:0; background:var(--surface-2); border:1px solid var(--border); color:var(--text-dim); border-radius:16px; padding:6px 12px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; cursor:pointer; white-space:nowrap;}
.muscle-filter-chip.active{background:rgba(138,154,91,0.16); border-color:var(--moss); color:var(--moss);}

.exercise-card{background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:14px 16px; margin-bottom:10px;}
.exercise-row{display:flex; gap:12px; align-items:center; cursor:pointer;}
.exercise-info{flex:1; min-width:0;}
.exercise-name{font-weight:600; font-size:15px;}
.exercise-target{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--amber); margin-top:2px;}
.exercise-note{font-size:11px; color:var(--text-dim); margin-top:1px;}
.tally{display:flex; align-items:center; gap:6px; margin-top:6px;}
.tally svg{display:block;}
.tally-count{font-family:'JetBrains Mono',monospace; color:var(--text-dim); font-size:12px;}
.exercise-meta{text-align:right; font-family:'JetBrains Mono',monospace; color:var(--text-dim); font-size:12px; flex-shrink:0;}
.exercise-side{display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex-shrink:0;}
.exercise-complete-btn{background:none; border:1px solid var(--moss); color:var(--moss); font-size:11px; font-weight:600; padding:4px 9px; border-radius:6px; cursor:pointer; white-space:nowrap;}
.exercise-complete-btn.done{background:var(--moss); color:var(--bg); border-color:var(--moss);}
.exercise-card.completed{opacity:0.55;}

.exercise-image-modal-content{max-width:420px; width:100%; max-height:88vh; overflow-y:auto; text-align:left; box-sizing:border-box;}
#exerciseImageModal{z-index:230;}
.exercise-image-modal-img{max-width:100%; max-height:40vh; border-radius:12px; display:block; margin:14px 0;}
.exercise-image-modal-label{margin-top:0; padding-right:40px; font-family:'Inter',sans-serif; font-weight:700; font-size:19px; color:var(--text); text-align:left;}
.eim-muscle-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px;}
.eim-muscle-tag{background:var(--surface-2); color:var(--text-dim); font-size:11px; font-weight:600; padding:5px 10px; border-radius:var(--radius-badge); border:1px solid var(--border);}
.eim-section-title{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); margin:16px 0 8px; font-weight:600;}
.eim-list{margin:0; padding-left:20px; font-size:13px; line-height:1.6; color:var(--text);}
.eim-list li{margin-bottom:4px;}
.eim-list li::marker{color:var(--moss);}
.eim-empty{font-size:12px; color:var(--text-dim); font-style:italic;}

.plan-group-title-row{display:flex; align-items:center; gap:8px;}
.plan-group-rename-btn{background:none; border:none; color:var(--text-dim); font-size:14px; cursor:pointer; padding:0;}
.plan-group-rename-form{display:flex; gap:6px; margin-top:4px;}
.plan-group-rename-form input{flex:1; padding:8px; font-size:13px;}
.plan-group-rename-save, .plan-group-rename-cancel{border:none; border-radius:6px; padding:8px 12px; font-size:12px; font-weight:600; cursor:pointer; flex-shrink:0;}
.plan-group-rename-save{background:var(--moss); color:var(--bg);}
.plan-group-rename-cancel{background:var(--surface-2); color:var(--text-dim);}

.wd-rename-form{margin:-4px 0 14px;}

.quick-add{display:none; margin-top:12px; padding-top:12px; border-top:1px solid var(--border);}
.quick-add.open{display:block;}
.quick-add-row{display:flex; gap:8px;}
.quick-add-row input{background:var(--surface-2); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:10px; font-family:'JetBrains Mono',monospace; font-size:14px; width:100%;}
.quick-add-row button{background:var(--moss); color:var(--bg); border:none; border-radius:8px; padding:0 16px; font-family:'Oswald',sans-serif; font-weight:600; font-size:13px; text-transform:uppercase; cursor:pointer; flex-shrink:0;}
.set-item{display:flex; justify-content:space-between; align-items:center; padding:6px 0; font-family:'JetBrains Mono',monospace; font-size:13px; gap:8px;}
.set-item .val{color:var(--text);}
.set-actions{display:flex; gap:4px; flex-shrink:0;}
.del-btn{background:none; border:none; color:var(--error); font-size:12px; font-family:'Inter',sans-serif; padding:4px 6px; cursor:pointer;}
.edit-btn{background:none; border:none; color:var(--moss); font-size:12px; font-family:'Inter',sans-serif; padding:4px 6px; cursor:pointer;}
.set-item input{padding:6px 8px; font-size:13px; width:64px;}
.set-item .edit-save, .set-item .edit-cancel{background:var(--moss); color:var(--bg); border:none; border-radius:6px; padding:6px 10px; font-size:12px; font-weight:600; cursor:pointer; font-family:'Inter',sans-serif;}
.set-item .edit-cancel{background:var(--surface-2); color:var(--text-dim);}
.exercise-prev{font-size:11px; color:var(--text-dim); margin-top:4px; font-family:'JetBrains Mono',monospace;}
.exercise-prev b{color:var(--amber); font-weight:600;}

.rest-bar{position:fixed; left:16px; right:16px; bottom:20px; background:var(--moss); color:var(--bg); border-radius:12px; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; box-shadow:0 6px 18px rgba(0,0,0,0.35); transform:translateY(20px); opacity:0; pointer-events:none; transition:transform .2s ease, opacity .2s ease; z-index:40;}
.rest-bar.show{transform:translateY(0); opacity:1; pointer-events:auto;}
.rest-info{display:flex; flex-direction:column;}
.rest-info .rest-label-text{font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:600;}
.rest-info .rest-time-text{font-family:'JetBrains Mono',monospace; font-size:20px; font-weight:700;}
.rest-skip{background:rgba(21,20,15,0.2); border:none; color:var(--bg); border-radius:8px; padding:8px 14px; font-weight:600; font-size:12px; cursor:pointer;}

.checkin-metrics{display:flex; gap:8px; margin-top:10px;}
.checkin-metrics input{font-family:'JetBrains Mono',monospace; font-size:14px; flex:1; min-width:0;}
.checkin-metrics button{background:var(--moss); color:var(--bg); border:none; border-radius:8px; padding:0 14px; font-weight:600; font-size:13px; cursor:pointer; flex-shrink:0;}
.checkin-saved-metrics{display:flex; gap:14px; margin-top:8px; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-dim);}
.checkin-saved-metrics b{color:var(--amber);}

.history-item{display:flex; justify-content:space-between; align-items:center; padding:12px 16px; background:var(--surface); border:1px solid var(--border); border-radius:12px; margin-bottom:8px;}
.history-date{font-weight:600; font-size:14px;}
.history-sub{font-size:12px; color:var(--text-dim); margin-top:2px;}
.history-vol{font-family:'JetBrains Mono',monospace; color:var(--amber); font-size:14px;}

.progress-history-list{display:flex; flex-direction:column; gap:8px;}
.progress-history-row{display:flex; align-items:center; gap:12px; background:var(--surface-2); border:1px solid var(--border); border-radius:10px; padding:8px 12px; cursor:pointer;}
.progress-history-row img, .progress-history-noimg{width:44px; height:44px; border-radius:8px; object-fit:cover; flex-shrink:0;}
.progress-history-noimg{display:flex; align-items:center; justify-content:center; font-size:9px; color:var(--text-dim); border:1px dashed var(--border); text-align:center;}
.progress-history-label{font-weight:600; font-size:13px;}
.progress-history-stats{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--text-dim); margin-top:2px;}

.recap-modal-content{max-width:400px; width:100%; max-height:88vh; overflow-y:auto; box-sizing:border-box; text-align:left;}
.recap-empty{font-size:12px; color:var(--text-dim); font-style:italic; text-align:left;}
.recap-section-title{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-dim); margin:20px 0 8px; font-weight:600; text-align:left;}

.recap-hero{display:flex; align-items:flex-start; justify-content:space-between; gap:10px;}
.recap-eyebrow{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--moss); font-weight:700;}
.recap-month-title{font-family:var(--font-display); font-size:26px; color:var(--text); line-height:1.1; margin-top:2px;}
.recap-hero-tagline{font-size:13px; color:var(--text-dim); line-height:1.5; margin-top:8px;}
.recap-hero-mascot{width:76px; height:76px; flex-shrink:0;}
.recap-hero-mascot img{width:100%; height:100%; object-fit:contain;}

.recap-stats-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:20px;}
.recap-stat-tile{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px;}
.recap-stat-tile-icon{color:var(--moss); margin-bottom:8px;}
.recap-stat-tile-icon svg{width:20px; height:20px;}
.recap-stat-tile-num{font-family:var(--font-display); font-size:22px; color:var(--text);}
.recap-stat-tile-lbl{font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-dim); margin-top:2px;}

.recap-cal-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px;}
.recap-cal-month{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-dim); text-align:center; margin-bottom:10px;}
.recap-cal-weekdays{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:6px;}
.recap-cal-weekdays div{font-size:10px; color:var(--text-dim); text-align:center;}
.recap-cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
.recap-cal-cell{aspect-ratio:1; display:flex; align-items:center; justify-content:center;}
.recap-cal-dot{width:70%; height:70%; border-radius:50%; border:1.5px solid var(--border);}
.recap-cal-cell.trained .recap-cal-dot{background:var(--moss); border-color:var(--moss);}
.recap-cal-streak{display:flex; align-items:center; gap:6px; justify-content:center; margin-top:12px; padding-top:12px; border-top:1px solid var(--border); font-size:12px; color:var(--text-dim);}
.recap-cal-streak svg{width:15px; height:15px; color:var(--amber); flex-shrink:0;}
.recap-cal-streak b{color:var(--text);}

.recap-wins-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:4px 14px;}
.recap-win-row{display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--border);}
.recap-win-row:last-child{border-bottom:none;}
.recap-win-icon{width:36px; height:36px; border-radius:50%; background:rgba(216,162,74,0.16); color:var(--amber); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.recap-win-icon svg{width:18px; height:18px;}
.recap-win-body{flex:1; min-width:0;}
.recap-win-label{font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--moss); margin-bottom:2px;}
.recap-win-value{font-size:13px; font-weight:600; color:var(--text); line-height:1.4;}

.recap-muscle-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px;}
.recap-muscle-row{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
.recap-muscle-row:last-child{margin-bottom:0;}
.recap-muscle-label{width:70px; flex-shrink:0; font-size:12px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em;}
.recap-muscle-track{flex:1; height:8px; background:var(--surface-2); border-radius:6px; overflow:hidden;}
.recap-muscle-fill{height:100%; background:var(--moss); border-radius:6px;}
.recap-muscle-pct{width:32px; flex-shrink:0; text-align:right; font-size:12px; color:var(--text); font-weight:600;}

.recap-progress-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px;}
.recap-progress-row{display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--border);}
.recap-progress-name{flex:1; font-size:13px; color:var(--text);}
.recap-progress-delta{font-size:13px; font-weight:700; font-family:'JetBrains Mono',monospace;}
.recap-progress-delta.up{color:var(--moss);}
.recap-progress-delta.down{color:var(--error);}
.recap-progress-delta.neutral{color:var(--text);}
.recap-progress-vs{font-size:11px; color:var(--text-dim); width:56px; text-align:right; flex-shrink:0;}
.recap-view-progress-btn{width:100%; display:flex; align-items:center; justify-content:center; gap:6px; background:none; border:none; color:var(--moss); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; padding:14px 0 2px; cursor:pointer; font-family:'Inter',sans-serif;}
.recap-view-progress-btn svg{width:16px; height:16px;}

.recap-says-card{display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); padding:14px; margin-top:20px;}
.recap-says-avatar{width:42px; height:42px; border-radius:50%; overflow:hidden; flex-shrink:0; background:var(--surface-2);}
.recap-says-avatar img{width:100%; height:100%; object-fit:contain;}
.recap-says-body{flex:1; min-width:0;}
.recap-says-label{font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--moss); margin-bottom:3px;}
.recap-says-text{font-size:12px; color:var(--text-dim); line-height:1.5;}
.recap-share-btn{width:100%; display:flex; align-items:center; justify-content:center; gap:8px; background:var(--moss); color:var(--bg); border:none; border-radius:var(--radius-button); padding:13px; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.02em; cursor:pointer; margin-top:12px; font-family:'Inter',sans-serif;}
.recap-share-btn svg{width:16px; height:16px;}

input, .exercise-input{background:var(--surface-2); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:12px; font-family:'Inter',sans-serif; font-size:15px; width:100%;}
input:focus{outline:2px solid var(--moss); outline-offset:-1px;}
input[type=number]{font-family:'JetBrains Mono',monospace;}
button.primary{background:var(--moss); color:var(--bg); border:none; border-radius:8px; padding:14px; font-family:'Oswald',sans-serif; font-weight:600; font-size:15px; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; width:100%;}
button.primary:active{background:var(--moss-dim);}

.toast{position:fixed; top:16px; left:50%; transform:translateX(-50%) translateY(-60px); background:var(--moss); color:var(--bg); padding:10px 18px; border-radius:20px; font-size:13px; font-weight:600; transition:transform .25s ease; z-index:50;}
.toast.show{transform:translateX(-50%) translateY(0);}

.fullscreen-overlay{display:none; position:fixed; inset:0; background:var(--bg); z-index:200; padding:20px; overflow-y:auto; flex-direction:column;}
.img-lightbox{display:none; position:fixed; inset:0; background:rgba(0,0,0,0.92); z-index:400; align-items:center; justify-content:center; padding:24px;}
.img-lightbox.open{display:flex;}
.img-lightbox img{max-width:100%; max-height:100%; object-fit:contain; border-radius:var(--radius-card);}
.img-lightbox-close{position:absolute; top:20px; right:20px; width:36px; height:36px; border-radius:50%; background:var(--surface); border:none; color:var(--text); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.wd-sticky-head{position:sticky; top:-20px; z-index:15; background:var(--bg); margin:-20px -20px 14px; padding:20px 20px 10px;}
.wd-fixed-bottom-btn{position:fixed; left:20px; right:20px; bottom:20px; z-index:15;}
#wdEditExercisesScreen{padding-bottom:88px;}
.fullscreen-overlay.open{display:flex;}
.wss-topbar{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
#exerciseInfoPage .wss-topbar{position:sticky; top:-20px; z-index:16; background:var(--bg); margin:-20px -20px 14px; padding:20px 20px 10px;}
#wuIntroScreen .wss-topbar, #cdIntroScreen .wss-topbar{position:sticky; top:-20px; z-index:16; background:var(--bg); margin:-20px -20px 14px; padding:20px 20px 10px;}
.wss-back-btn{background:var(--surface); border:none; color:var(--text); width:34px; height:34px; border-radius:50%; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; flex-shrink:0;}
.wss-title{font-family:var(--font-display); font-size:20px; color:var(--text); text-align:center; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}

.wss-progress-text{font-size:12px; color:var(--text-dim); margin-bottom:6px;}
.wss-progress-track{height:6px; background:var(--surface-2); border-radius:16px; overflow:hidden; margin-bottom:16px;}
.wss-progress-fill{height:100%; background:var(--moss); transition:width .3s ease;}

.wss-current-card{background:var(--surface); border-radius:var(--radius-card); padding:14px; margin-bottom:12px;}
.wss-label{font-size:10px; color:var(--moss); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px;}
.wss-ex-name{font-family:var(--font-display); font-size:22px; color:var(--text);}
.wss-ex-meta{font-size:12px; color:var(--text-dim); margin-top:2px;}
.wss-muscle-tag{display:inline-block; background:var(--surface-2); color:var(--moss); font-size:9px; font-weight:600; padding:3px 8px; border-radius:var(--radius-badge); margin-top:8px;}

.wss-upnext-card{display:flex; align-items:center; gap:10px; background:var(--surface); border-radius:var(--radius-card); padding:12px; margin-bottom:12px;}
.wss-upnext-thumb{width:36px; height:36px; border-radius:10px; background:var(--surface-2); flex-shrink:0;}
.wss-upnext-label{font-size:9px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.05em;}
.wss-upnext-name{font-size:12px; color:var(--text); font-weight:600;}

.wss-timer-card{background:var(--surface); border-radius:var(--radius-card); padding:14px; text-align:center; margin-bottom:12px;}
.wss-timer-label{font-size:10px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.05em;}
.wss-timer-value{font-family:var(--font-mono); font-size:20px; color:var(--text); margin-top:4px;}

.wss-tip-row{display:flex; align-items:center; gap:10px; background:var(--surface-2); border-radius:var(--radius-card); padding:12px; margin-bottom:16px;}
.wss-tip-thumb{width:32px; height:32px; border-radius:10px; background:var(--surface); flex-shrink:0;}
.wss-tip-text{font-size:12px; color:var(--text); line-height:1.4;}

#focusTipCard{ margin-top: 20px; }

.logging-complete-btn{width:100%; background:none; border:1px solid var(--border); color:var(--text); border-radius:var(--radius-button); padding:11px; font-weight:600; font-size:13px; cursor:pointer; font-family:'Inter',sans-serif; margin-bottom:8px;}

.wss-actions{display:flex; gap:8px; margin-top:auto; padding-top:16px;}
.wss-skip-btn{background:var(--surface); color:var(--text-dim); border:none; border-radius:var(--radius-button); padding:11px 16px; font-weight:600; font-size:13px; cursor:pointer; font-family:'Inter',sans-serif;}

.logging-set-label{font-size:11px; color:var(--moss); font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px;}
.logging-field-label{font-size:10px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px;}
.logging-stepper-row{display:flex; align-items:center; justify-content:space-between; gap:5px; margin-bottom:10px;}
.logging-stepper-btn{width:40px; height:40px; border-radius:50%; background:var(--surface-2); color:var(--text); border:none; font-size:18px; cursor:pointer;}
.logging-stepper-value{font-family:var(--font-display); font-size:32px; color:var(--text);}
.logging-chip-row{display:flex; gap:6px; margin-bottom:16px; flex-wrap:wrap;}
.logging-chip{background:var(--surface-2); color:var(--text-dim); font-size:11px; padding:5px 10px; border-radius:var(--radius-badge); border:none; cursor:pointer;}
.logging-chip.active{background:var(--moss); color:var(--bg); font-weight:600;}
.logging-rest-row{display:flex; justify-content:space-between; font-size:12px; color:var(--text-dim); margin-bottom:14px;}
.logging-history-row{display:flex; justify-content:space-between; font-size:12px; color:var(--text); padding:6px 0; border-bottom:1px solid var(--border);}

.app-page{display:none; padding-bottom:100px; box-sizing:border-box;}
.app-page.active{display:block;}
#workoutsPage, #progressPage{padding:24px 20px 100px;}
#progressPage .prog-sticky-head{position:sticky; top:0; z-index:20; background:var(--bg); margin:-24px -20px 0; padding:24px 20px 14px;}
#progressPage .prog-sticky-head .prog-subtabs{margin-bottom:0;}
.page-heading{font-family:var(--font-display); font-size:26px; color:var(--text); margin-bottom:16px;}

.logging-rest-change-btn{background:none; border:none; color:var(--moss); font-size:12px; font-weight:600; cursor:pointer; padding:0;}

.finish-modal.tab-page{background:var(--bg); display:block; padding:0; overflow-y:auto; z-index:1;}
.finish-modal.tab-page .finish-modal-content{max-width:none; width:100%; min-height:100%; border-radius:0; border:none; max-height:none; overflow-y:visible; padding:24px 20px 100px; box-sizing:border-box;}
.finish-modal.tab-page .photo-modal-close{display:none;}

.rest-screen-body{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;}
.rest-screen-label{font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px;}
.rest-screen-time{font-family:var(--font-display); font-size:44px; color:var(--amber); margin-bottom:16px;}
.rest-screen-ring{
  --rest-progress:0deg;
  width:140px;
  height:140px;
  border-radius:50%;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  isolation:isolate;
}

.rest-screen-ring::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:conic-gradient(
    from 0deg,
    var(--amber) 0deg var(--rest-progress),
    var(--surface-2) var(--rest-progress) 360deg
    );
}

.rest-screen-ring::after{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:50%;
  background:var(--bg);
}

.rest-screen-ring-inner{
  width:100px;
  height:100px;
  border-radius:16px;
  background:var(--surface);
  position:relative;
  z-index:1;
}
.rest-screen-message{background:var(--surface); border-radius:var(--radius-card); padding:14px; font-size:13px; color:var(--text); line-height:1.5; margin-bottom:16px;}

.logging-sticky-header{
  position:sticky;
  top:-20px;
  z-index:20;
  background:var(--bg);
  margin:-20px -20px 18px;
  padding:20px 20px 10px;
}

.logging-workout-bar{
  margin:0;
}

.mood-label{font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.05em; margin:16px 0 8px;}
.mood-row{display:flex; justify-content:space-between; margin-bottom:16px;}
.mood-btn{background:none; border:none; font-size:22px; opacity:.4; cursor:pointer; border-radius:50%; padding:4px;}
.mood-btn.active{opacity:1; background:var(--moss);}

.wd-title-group{display:flex; align-items:center; justify-content:center; gap:6px; flex:1; overflow:hidden;}
.wd-title-edit-btn{background:none; border:none; color:var(--text-dim); flex-shrink:0; padding:2px; cursor:pointer; display:flex;}
.wd-title-edit-btn svg{width:15px; height:15px;}
.wd-title-group .wss-title{flex:0 1 auto; min-width:0;}

.exercise-picker{display:flex; gap:10px; overflow-x:auto; padding-bottom:8px; margin-bottom:10px; border-bottom:1px dashed var(--border);}
.exercise-picker-chip{flex-shrink:0; width:88px; text-align:center; cursor:pointer; background:none; border:none; padding:0;}
.exercise-picker-chip img{width:72px; height:72px; border-radius:10px; background:var(--surface-2); border:1px solid var(--border); object-fit:contain; padding:4px; display:block; margin:0 auto; pointer-events:none; -webkit-touch-callout:none; -webkit-user-select:none; user-select:none;}
.exercise-picker-chip .epc-label{display:block; font-size:10px; color:var(--text-dim); margin-top:4px; line-height:1.2; pointer-events:none;}

#wdAddExMuscleRow{
  display:flex;
  flex-shrink:0;
  gap:8px;
  margin-bottom:20px;
  overflow-x:auto;
  overflow-y:visible;
  padding:6px 0 14px;
  height:auto;
  min-height:36px;
  -webkit-overflow-scrolling:touch;
}
#wdAddExMuscleRow .muscle-filter-chip{
  background:var(--surface-2);
  color:var(--text-dim);
  border:none;
  border-radius:16px;
  padding:8px 14px;
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
  flex-shrink:0;
  line-height:1.2;
}
#wdAddExMuscleRow .muscle-filter-chip.active{
  background:var(--moss);
  color:var(--bg);
}

#wdAddExPicker{
  margin-top: 10px;
}

#wdMuscleFilterRow{
  display:flex;
  flex-shrink:0;
  gap:8px;
  overflow-x:auto;
  overflow-y:visible;
  padding:6px 0 14px;
  height:auto;
  min-height:36px;
  margin-bottom:14px;
  -webkit-overflow-scrolling:touch;
}
#wdMuscleFilterRow .muscle-filter-chip{
  background:var(--surface-2);
  color:var(--text-dim);
  border:none;
  border-radius:16px;
  padding:8px 14px;
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
  flex-shrink:0;
  line-height:1.2;
}
#wdMuscleFilterRow .muscle-filter-chip.active{
  background:var(--moss);
  color:var(--bg);
}

/* ---------- motion ---------- */
.app-page.active{animation: pageFadeIn .25s ease;}
@keyframes pageFadeIn{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }

.mascot-wave{animation: mascotWave 3.5s ease-in-out infinite; transform-origin: bottom center; display:inline-block;}
@keyframes mascotWave{ 0%,100%{transform:rotate(0deg);} 50%{transform:rotate(-4deg);} }

@keyframes tabIconBounce{ 0%{transform:scale(1);} 40%{transform:scale(1.35);} 100%{transform:scale(1);} }
.tab-icon-bounce{animation: tabIconBounce .35s ease;}

@keyframes prPopIn{ 0%{transform:scale(0.85); opacity:0;} 60%{transform:scale(1.05); opacity:1;} 100%{transform:scale(1);} }
@keyframes prGlow{ 0%,100%{box-shadow:0 0 0 rgba(141,165,90,0);} 50%{box-shadow:0 0 14px rgba(141,165,90,0.35);} }
.finish-pr-item{animation: prPopIn .4s ease, prGlow 1.8s ease-in-out 1; position:relative;}

.plan-btn, .hwc-btn, .checkin-btn, .settings-row, button.primary, .wl-card, .quick-access-tile, .muscle-filter-chip{transition: transform .1s ease;}
.plan-btn:active, .hwc-btn:active, .checkin-btn:active, .settings-row:active, .tab-btn:active, button.primary:active, .wl-card:active, .quick-access-tile:active, .muscle-filter-chip:active{transform: scale(0.97);}

.auth-screen{display:none; position:fixed; inset:0; background:var(--bg); z-index:99998; align-items:center; justify-content:center; padding:24px; overflow-y:auto;}
.auth-screen.open{display:flex;}
.auth-card{width:100%; max-width:360px; margin:auto; display:flex; flex-direction:column; align-items:center; text-align:center;}
.auth-logo{width:96px; height:auto; object-fit:contain; margin-bottom:6px;}
.auth-wordmark{font-family:var(--font-display); font-weight:400; font-size:34px; letter-spacing:.01em; color:var(--text);}
.auth-wordmark span{color:var(--moss);}
.auth-title{font-family:'Oswald',sans-serif; font-weight:600; font-size:20px; color:var(--text); margin-top:18px;}
.auth-subtitle{font-family:var(--font-body); font-size:13px; color:var(--text-dim); margin-top:4px; line-height:1.5;}
.auth-field{width:100%; text-align:left; margin-top:16px;}
.auth-label{display:block; font-family:var(--font-body); font-size:12px; font-weight:600; color:var(--text-dim); margin-bottom:6px;}
.auth-input{width:100%; box-sizing:border-box; background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:var(--radius-input); padding:13px 14px; font-family:var(--font-body); font-size:14px;}
.auth-input:focus{outline:none; border-color:var(--moss);}
.auth-error{width:100%; text-align:left; font-family:var(--font-body); font-size:12.5px; color:var(--error); margin-top:14px; line-height:1.5;}
.auth-error.auth-success{color:var(--success);}
.auth-submit-btn{margin-top:18px;}
.auth-submit-btn:disabled{opacity:.6;}
.auth-switch-btn{background:none; border:none; color:var(--moss); font-family:var(--font-body); font-size:13px; font-weight:600; margin-top:16px; cursor:pointer; padding:4px;}
.auth-forgot-btn{align-self:flex-end; background:none; border:none; color:var(--text-dim); font-family:var(--font-body); font-size:12.5px; font-weight:600; margin-top:10px; cursor:pointer; padding:2px;}

.offline-banner{display:none; position:fixed; top:0; left:0; right:0; z-index:99997; background:var(--warning); color:var(--bg); text-align:center; font-family:var(--font-body); font-size:12.5px; font-weight:600; padding:8px 12px; box-sizing:border-box;}
.offline-banner.show{display:block;}

@media (prefers-reduced-motion: reduce){
  .quick-add, .toast{transition:none;}
  .app-page.active, .finish-pr-item, .mascot-wave, .tab-icon-bounce{animation:none !important;}
  .plan-btn:active, .hwc-btn:active, .checkin-btn:active, .settings-row:active, .tab-btn:active, button.primary:active, .wl-card:active, .quick-access-tile:active, .muscle-filter-chip:active{transform:none;}
}