/* FitnessOS — Components */

/* Card section heading with a leading stroke icon (no emoji) */
.viz-head { display:flex; align-items:center; gap:8px; font-size:16px; font-weight:800; color:var(--txt); margin-bottom:14px; letter-spacing:-0.2px; }
.viz-ic { color:var(--c1); display:inline-flex; align-items:center; }

/* ══ CARDS ═══════════════════════════════════════════════════════ */
.card{
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:var(--r14);
  padding:20px;
  margin:0 16px 12px;
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  position:relative;overflow:hidden;
  animation:entryIn 0.3s var(--ease) both;
}
[data-theme="arctic"] .card{background:var(--card-bg2);box-shadow:0 1px 8px rgba(0,0,0,0.06);}
.card-tap{cursor:pointer;touch-action:manipulation;transition:transform 0.14s var(--ease),opacity 0.14s;}
.card-tap:active{transform:scale(0.975);opacity:0.85;}
.card-solid{
  background:var(--bg3);border:1px solid var(--border);
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .card-solid{background:var(--pc-ffffff);box-shadow:0 2px 12px rgba(0,0,0,0.07);}
.card-glow{border-color:var(--border2);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,0.06);}
.card-grad-border{
  background:var(--bg3);
  border:1px solid rgba(var(--c1-rgb),0.25);
  box-shadow:0 0 0 1px rgba(var(--c1-rgb),0.08) inset,var(--ds2);
}
[data-theme="arctic"] .card-grad-border{background:var(--pc-ffffff);}

/* ══ STATS ROW ═══════════════════════════════════════════════════ */
.stats-row{display:flex;gap:10px;padding:0 16px;margin-bottom:14px;}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;margin-bottom:14px;}

.stat{
  background:var(--bg3);border-radius:var(--r16);
  padding:14px 10px;text-align:center;flex:1;
  border:1px solid var(--border);
  transition:border-color 0.18s,transform 0.14s;
}
[data-theme="arctic"] .stat{background:var(--pc-ffffff);box-shadow:0 1px 6px rgba(0,0,0,0.06);}
.stat:active{transform:scale(0.96);}
.stat-v{
  font-size:24px;font-weight:800;
  font-variant-numeric:tabular-nums;
  color:var(--txt);letter-spacing:-0.5px;
}
.stat-l{
  font-size: 11px;letter-spacing:0.08em;
  text-transform:uppercase;font-weight:700;
  color:var(--txt3);margin-top:5px;
}
.stat-accent .stat-v{
  background:var(--grad);-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent;
}

/* ══ BUTTONS ═════════════════════════════════════════════════════ */
.btn{
  display:block;width:100%;padding:15px 20px;
  border-radius:var(--r12);font-size:16px;font-weight:800;
  cursor:pointer;
  transition:transform 0.18s var(--spring),opacity 0.14s var(--ease),box-shadow 0.2s var(--ease);
  touch-action:manipulation;-webkit-appearance:none;
  text-align:center;line-height:1;min-height:52px;
  letter-spacing:0.01em;
  text-transform:none;
  -webkit-font-smoothing:antialiased;
}
.btn:active{transform:scale(0.97);opacity:0.92;}
.btn:active{transform:scale(0.96);opacity:0.88;}
.btn-primary{
  background:var(--grad);color:var(--on-accent);
  box-shadow:0 4px 20px rgba(var(--c1-rgb),0.3),0 1px 4px rgba(0,0,0,0.2);
}
.btn-primary:active{box-shadow:0 2px 10px rgba(var(--c1-rgb),0.2);}
.btn-secondary{
  background:var(--bg3);color:var(--c1);
  border:1.5px solid rgba(var(--c1-rgb),0.25);
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .btn-secondary{background:var(--pc-ffffff);}
.btn-ghost{
  background:transparent;color:var(--txt2);
  border:1px solid var(--border);
}
.btn-danger{
  background:rgba(255,68,68,0.1);color:var(--pc-ff4444);
  border:1px solid rgba(255,68,68,0.25);
}
.btn-sm{
  padding:9px 18px;font-size:12px;
  border-radius:var(--r8);display:inline-block;
  width:auto;min-height:40px;
}
.btn-row{display:flex;gap:10px;padding:0 16px;margin-bottom:14px;}
.btn-row .btn{flex:1;}

/* ══ INPUTS ══════════════════════════════════════════════════════ */
.field{
  width:100%;padding:14px 16px;
  background:var(--bg3);
  border:1px solid var(--border);
  border-radius:var(--r14,14px);
  font-size:16px;color:var(--txt);
  -webkit-appearance:none;outline:0;
  transition:border-color 0.18s,box-shadow 0.18s;
}
[data-theme="arctic"] .field{background:var(--pc-f7f7f9);border-color:rgba(0,0,0,0.1);}
.field:focus{
  border-color:var(--c1);
  box-shadow:0 0 0 3px rgba(var(--c1-rgb),0.14);
}
.field-label{
  font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:0.09em;color:var(--txt3);
  margin-bottom:7px;display:block;
}
.field-wrap{margin-bottom:16px;}
.field-row{display:flex;gap:10px;}
.field-row .field-wrap{flex:1;}
.select-wrap{position:relative;}
.select-wrap::after{
  content:'▾';position:absolute;right:14px;
  top:50%;transform:translateY(-50%);
  color:var(--txt3);pointer-events:none;font-size:13px;
}
select.field{padding-right:36px;cursor:pointer;}

/* ══ SET ROWS ════════════════════════════════════════════════════ */
.set-row{
  display:grid;grid-template-columns:38px 1fr auto 1fr 48px;
  gap:8px;padding:10px 0;border-bottom:1px solid var(--border);
  align-items:center;
}
.set-row:last-of-type{border-bottom:none;}
.set-num{
  width:38px;height:38px;border-radius:50%;
  background:var(--bg4);display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:var(--txt3);
  transition:background 0.2s,color 0.2s;
}
.set-num.done{background:rgba(16,185,129,0.18);color:var(--pc-10b981);}
.set-x{font-size:14px;color:var(--txt3);text-align:center;}
.set-inp{
  background:var(--bg3);border:1.5px solid var(--border);
  border-radius:var(--r12);padding:0 4px;
  font-size:18px;font-weight:700;text-align:center;color:var(--txt);
  -webkit-appearance:none;width:100%;min-width:0;
  touch-action:manipulation;height:54px;
  transition:border-color 0.18s,box-shadow 0.18s;
}
[data-theme="arctic"] .set-inp{color:var(--pc-1c1c1e);}
.set-inp:focus{
  outline:0;border-color:var(--c1);
  box-shadow:0 0 0 3px rgba(var(--c1-rgb),0.12);
}
.set-check{
  width:46px;height:46px;border-radius:50%;
  background:var(--bg4);border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;touch-action:manipulation;-webkit-appearance:none;
  transition:background 0.2s,border-color 0.2s,transform 0.18s var(--spring);
  font-size:18px;color:var(--txt3);
}
.set-check.done{background:linear-gradient(135deg,var(--pc-10b981),var(--pc-059669));border-color:var(--pc-10b981);color:var(--pc-ffffff);box-shadow:0 2px 12px rgba(16,185,129,0.35);}
.set-check.pr{background:linear-gradient(135deg,var(--pc-ffd700),var(--pc-f59e0b));border-color:var(--pc-ffd700);box-shadow:0 2px 14px rgba(255,215,0,0.45);}
.set-check:active{transform:scale(0.87);}
.set-row.done{
  background:rgba(16,185,129,0.06);
  border-radius:10px;padding-left:4px;padding-right:4px;
  animation:setDoneGlow 0.4s var(--spring) both;
}
@keyframes setDoneGlow{
  0%{background:rgba(16,185,129,0.25);}
  100%{background:rgba(16,185,129,0.06);}
}
.set-row.pr{
  background:rgba(255,215,0,0.08);
  border-radius:10px;padding-left:4px;padding-right:4px;
  animation:prRowFlash 0.55s var(--spring) both;
}
@keyframes prRowFlash{
  0%{background:rgba(255,215,0,0.38);}
  60%{background:rgba(255,215,0,0.18);}
  100%{background:rgba(255,215,0,0.08);}
}

/* ══ MUSCLE CHIP ══════════════════════════════════════════════════ */
.muscle-chip{
  display:inline-flex;align-items:center;
  font-size:11px;font-weight:700;
  color:var(--c1);
  background:rgba(var(--c1-rgb),0.12);
  border:1px solid rgba(var(--c1-rgb),0.2);
  border-radius:20px;padding:3px 10px;
}

/* ══ EXERCISE CARDS ══════════════════════════════════════════════ */
.ex-card{
  background:var(--bg3);border-radius:var(--r20);
  margin:0 16px 12px;overflow:hidden;
  border:1px solid var(--border);
  box-shadow:var(--ds1);
  animation:entryIn 0.3s var(--ease) both;
}
[data-theme="arctic"] .ex-card{background:var(--pc-ffffff);box-shadow:0 2px 10px rgba(0,0,0,0.07);}
.ex-card-hdr{
  display:flex;align-items:center;gap:14px;
  padding:16px;cursor:pointer;touch-action:manipulation;
  transition:background 0.15s;
}
.ex-card-hdr:active{background:rgba(255,255,255,0.04);}
.ex-card-body{padding:0 16px 16px;border-top:1px solid var(--border);}
.ex-icon{
  width:46px;height:46px;border-radius:50%;
  background:linear-gradient(135deg,rgba(var(--c1-rgb),0.15),rgba(var(--c2-rgb),0.1));
  display:flex;align-items:center;justify-content:center;
  font-size:22px;flex-shrink:0;
  transition:background 0.35s var(--ease),box-shadow 0.35s;
}
.ex-icon.done{
  background:var(--grad);
  box-shadow:0 2px 14px rgba(255,69,58,0.35);
}
.ex-name{font-size:16px;font-weight:700;color:var(--txt);letter-spacing:-0.2px;}
.ex-muscles{font-size:12px;color:var(--txt3);margin-top:2px;}
.ex-progress{font-size:12px;font-weight:700;color:var(--txt3);margin-left:auto;white-space:nowrap;}
.ex-warn{
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:700;
  color:var(--pc-f5c842);background:rgba(245,200,66,0.1);
  border-radius:20px;padding:3px 10px;margin-top:4px;
  border:1px solid rgba(245,200,66,0.2);
}
.ex-prev{
  font-size:12px;color:var(--c1);
  background:rgba(var(--c1-rgb),0.09);
  padding:7px 12px;border-radius:var(--r8);margin-bottom:8px;
  border:1px solid rgba(var(--c1-rgb),0.15);
  font-weight:600;
}
.ex-suggest{
  font-size:12px;color:var(--txt2);
  background:var(--bg4);
  padding:8px 12px;border-radius:var(--r8);
  margin-bottom:10px;line-height:1.55;
  border-left:2px solid var(--c1);
}
.ex-cue{
  font-size:12px;color:var(--txt3);font-style:italic;
  line-height:1.55;margin-bottom:10px;
  padding:8px 12px;background:var(--bg4);border-radius:var(--r8);
}
.ex-cue-inline{
  font-size:12px;color:var(--txt3);font-style:italic;
  line-height:1.5;margin-bottom:10px;padding:0 2px;
}
.ex-add-set{
  display:flex;align-items:center;justify-content:center;gap:7px;
  width:100%;padding:11px;
  background:var(--bg4);border-radius:var(--r12);
  font-size:13px;font-weight:600;color:var(--txt2);
  cursor:pointer;touch-action:manipulation;-webkit-appearance:none;
  margin-top:10px;transition:background 0.15s,color 0.15s;
  border:1px solid var(--border);
}
.ex-add-set:active{background:var(--bg3);color:var(--c1);}
.ex-swap{
  display:inline-flex;align-items:center;gap:4px;
  font-size:12px;font-weight:600;color:var(--c1);
  cursor:pointer;touch-action:manipulation;padding:4px 0;
  opacity:0.85;
}
.ex-swap:active{opacity:1;}

/* ══ PR BADGE ════════════════════════════════════════════════════ */
.pr-badge{
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:800;
  color:var(--pc-ffd700);background:rgba(255,215,0,0.1);
  border:1px solid rgba(255,215,0,0.3);
  border-radius:20px;padding:3px 10px;
  animation:prPop 0.48s var(--spring) both;
  box-shadow:0 0 12px rgba(255,215,0,0.2);
}

/* ══ REST TIMER ══════════════════════════════════════════════════ */
#rest-sheet { border-top: 3px solid var(--c4) ; padding-bottom: env(safe-area-inset-bottom, 0px); }
.rest-inner{padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px));text-align:center;}
.rest-title-label{
  font-size:11px;font-weight:700;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--txt3);margin-bottom:16px;
}
.rest-handle{
  width:32px;height:4px;background:var(--bg4);
  border-radius:2px;margin:12px auto 22px;
}
.rest-ring-wrap{width:140px;height:140px;margin:0 auto 18px;position:relative;}
.rest-ring-wrap svg{transform:rotate(-90deg);}
.rest-count{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.rest-count-num{font-size:40px;font-weight:900;font-family:var(--font-display-nums);font-variant-numeric:tabular-nums;color:var(--txt);}
.rest-count-label{font-size: 11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--txt3);}
.rest-label{font-size:14px;color:var(--txt3);margin-bottom:22px;}
.rest-btns{display:flex;gap:10px;justify-content:center;}
.rest-btn{
  padding:10px 22px;border-radius:var(--r12);
  background:var(--bg3);border:1px solid var(--border);
  font-size:14px;font-weight:700;color:var(--txt);
  cursor:pointer;touch-action:manipulation;-webkit-appearance:none;
  transition:background 0.15s,transform 0.12s;min-height:44px;
  box-shadow:var(--ds1);
}
.rest-btn:active{background:var(--bg4);transform:scale(0.96);}
#rest-countdown { font-family: var(--font-display-nums); }
.rest-btn.skip{color:var(--c1);border-color:rgba(var(--c1-rgb),0.25);}

/* ══ READINESS HERO ══════════════════════════════════════════════ */
.readiness-card{
  margin:0 16px 14px;border-radius:var(--r20);
  background:var(--bg3);border:1px solid var(--border);
  padding:22px;position:relative;overflow:hidden;
  box-shadow:var(--ds2);
}
[data-theme="arctic"] .readiness-card{background:var(--pc-ffffff);box-shadow:0 2px 16px rgba(0,0,0,0.08);}
.readiness-card::before{
  content:'';position:absolute;top:-80px;right:-80px;
  width:240px;height:240px;border-radius:50%;
  background:var(--grad);opacity:0.06;pointer-events:none;
}
.readiness-card::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 70% 60% at 5% 110%,rgba(var(--c1-rgb),0.08),transparent 60%);
  pointer-events:none;
}
.readiness-score{
  font-size:68px;font-weight:900;letter-spacing:-4px;
  font-variant-numeric:tabular-nums;
  background:var(--grad);-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent;
  line-height:1;display:inline-block;
  filter:drop-shadow(0 0 20px rgba(var(--c1-rgb),0.3));
}
.readiness-label{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:700;
  padding:4px 12px;border-radius:20px;
  margin-top:8px;letter-spacing:0.02em;
}
.rl-peak{background:rgba(var(--c3-rgb),0.14);color:var(--success-text,var(--c3));border:1px solid rgba(var(--c3-rgb),0.25);}
.rl-ready{background:rgba(var(--c1-rgb),0.12);color:var(--c1);border:1px solid rgba(var(--c1-rgb),0.22);}
.rl-moderate{background:rgba(245,200,66,0.12);color:var(--pc-f5c842);border:1px solid rgba(245,200,66,0.22);}
.rl-rest{background:rgba(255,68,68,0.12);color:var(--pc-ff4444);border:1px solid rgba(255,68,68,0.22);}
.readiness-msg{font-size:14px;color:var(--txt2);margin-top:12px;line-height:1.65;}
.readiness-metrics{
  display:flex;gap:0;margin-top:18px;
  border-top:1px solid var(--border);padding-top:16px;
}
.readiness-metric{flex:1;text-align:center;}
.readiness-metric+.readiness-metric{border-left:1px solid var(--border);}
.readiness-metric-v{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--txt);}
.readiness-metric-l{font-size: 11px;color:var(--txt3);text-transform:uppercase;letter-spacing:0.07em;margin-top:3px;font-weight:600;}
.readiness-log-btn{
  display:flex;align-items:center;justify-content:center;gap:7px;
  width:100%;margin-top:16px;padding:11px;
  background:rgba(var(--c1-rgb),0.08);
  border:1px solid rgba(var(--c1-rgb),0.2);
  border-radius:var(--r12);font-size:13px;font-weight:600;color:var(--c1);
  cursor:pointer;touch-action:manipulation;-webkit-appearance:none;
  transition:background 0.15s;
}
.readiness-log-btn:active{background:rgba(var(--c1-rgb),0.14);}
.readiness-quote{
  margin:0 16px 14px;
  padding:14px 18px;
  background:var(--bg3);border-radius:var(--r16);
  border-left:3px solid var(--c2);
  font-size:13px;color:var(--txt2);font-style:italic;line-height:1.65;
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .readiness-quote{background:var(--pc-ffffff);box-shadow:0 1px 6px rgba(0,0,0,0.06);}

/* ══ ACTIVITY RINGS ══════════════════════════════════════════════ */
.rings-section{padding:0 16px 4px;margin-bottom:4px;}
.rings-row{display:flex;gap:8px;justify-content:center;}
.ring-wrap{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1;}
.ring-outer{position:relative;width:76px;height:76px;}
.ring-svg{width:76px;height:76px;transform:rotate(-90deg);}
.ring-track{fill:none;stroke:var(--bg4);stroke-width:6.5;}
.ring-prog{fill:none;stroke-linecap:round;stroke-width:6.5;transition:stroke-dashoffset 1s var(--ease);}
.ring-center{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.ring-pct{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;color:var(--txt);}
.ring-sub{font-size: 11px;font-weight:600;color:var(--txt3);line-height:1;}
.ring-label{font-size:11px;font-weight:600;color:var(--txt2);text-align:center;letter-spacing:-0.1px;}

/* ══ PILLS ═══════════════════════════════════════════════════════ */
.pill{
  padding:7px 14px;border-radius:20px;font-size:13px;font-weight:600;
  white-space:nowrap;border:1px solid var(--border);
  background:var(--bg3);color:var(--txt2);
  cursor:pointer;touch-action:manipulation;-webkit-appearance:none;
  transition:background 0.15s,border-color 0.15s,color 0.15s;
  display:inline-block;
}
.pill.on{
  background:rgba(var(--c1-rgb),0.14);
  border-color:rgba(var(--c1-rgb),0.35);
  color:var(--c1);
}
.pill-row{display:flex;gap:8px;padding:8px 16px;overflow-x:auto;}

/* ══ MUSCLE CHIPS ════════════════════════════════════════════════ */
.mchip{
  display:inline-block;padding:5px 12px;border-radius:20px;
  font-size:12px;font-weight:600;white-space:nowrap;
  border:1px solid transparent;letter-spacing:-0.1px;
}
.mchip-fresh{background:rgba(16,185,129,0.12);color:var(--pc-10b981);border-color:rgba(16,185,129,0.2);}
.mchip-recovering{background:rgba(245,200,66,0.12);color:var(--pc-f5c842);border-color:rgba(245,200,66,0.2);}
.mchip-sore{background:rgba(255,107,53,0.12);color:var(--pc-ff6b35);border-color:rgba(255,107,53,0.2);}
.mchips-wrap{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px;margin-bottom:14px;}

/* ══ BADGES ══════════════════════════════════════════════════════ */
.badge{
  display:inline-block;font-size:11px;font-weight:700;
  padding:3px 10px;border-radius:20px;letter-spacing:0.01em;
}
.badge-c1{background:rgba(var(--c1-rgb),0.12);color:var(--c1);}
.badge-green{background:rgba(16,185,129,0.12);color:var(--pc-10b981);}
.badge-red{background:rgba(255,68,68,0.12);color:var(--pc-ff4444);}
.badge-amber{background:rgba(245,200,66,0.12);color:var(--pc-f5c842);}
.badge-purple{background:rgba(var(--c2-rgb),0.12);color:var(--c2);}

/* ══ TOGGLE ══════════════════════════════════════════════════════ */
.toggle-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:15px 0;border-bottom:1px solid var(--border);
}
.toggle-info{flex:1;}
.toggle-label{font-size:15px;font-weight:600;color:var(--txt);}
.toggle-sub{font-size:13px;color:var(--txt3);margin-top:2px;}
.toggle{
  width:50px;height:30px;border-radius:15px;
  background:var(--bg4);border:none;cursor:pointer;
  position:relative;flex-shrink:0;
  transition:background 0.24s var(--ease);
  touch-action:manipulation;-webkit-appearance:none;
}
.toggle::after{
  content:'';position:absolute;top:2px;left:2px;
  width:26px;height:26px;border-radius:50%;
  background:var(--pc-ffffff);box-shadow:0 2px 6px rgba(0,0,0,0.35);
  transition:transform 0.24s var(--spring);
}
.toggle.on{background:var(--accent);box-shadow:0 0 12px rgba(var(--c1-rgb),0.3);}
.toggle.on::after{transform:translateX(20px);}

/* ══ SLIDER ══════════════════════════════════════════════════════ */
.slider-wrap{margin-bottom:20px;}
.slider-header{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;}
.slider-val{font-size:28px;font-weight:900;color:var(--c1);font-variant-numeric:tabular-nums;letter-spacing:-1px;}
.slider-unit{font-size:14px;color:var(--txt3);}
.slider-name{font-size:13px;color:var(--txt2);font-weight:600;}
input[type="range"]{
  -webkit-appearance:none;width:100%;height:5px;
  background:var(--bg4);border-radius:3px;outline:0;cursor:pointer;
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;width:24px;height:24px;border-radius:50%;
  background:var(--grad);cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,0.3),0 0 0 4px rgba(var(--c1-rgb),0.15);
  transition:transform 0.15s var(--spring);
}
input[type="range"]::-webkit-slider-thumb:active{transform:scale(1.15);}
input[type="range"]::-moz-range-thumb{
  width:24px;height:24px;border-radius:50%;
  background:var(--grad);cursor:pointer;border:none;
}
.slider-labels{display:flex;justify-content:space-between;margin-top:5px;}
.slider-labels span{font-size:11px;color:var(--txt3);}

/* ══ AI MESSAGE ══════════════════════════════════════════════════ */
.ai-msg{
  background:var(--bg3);
  border-left:3px solid var(--c2);
  border-radius:var(--r16);padding:14px 16px;
  margin:0 16px 12px;
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .ai-msg{background:var(--pc-ffffff);box-shadow:0 1px 6px rgba(0,0,0,0.06);}
.ai-msg-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.ai-msg-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.09em;color:var(--c2);}
.ai-msg-text{font-size:14px;color:var(--txt2);line-height:1.65;}

/* ══ ONBOARDING OPTIONS ══════════════════════════════════════════ */
.ob-opt{
  padding:16px 18px;border-radius:var(--r16);
  background:var(--bg3);border:1.5px solid var(--border);
  cursor:pointer;display:flex;align-items:center;gap:14px;
  margin-bottom:10px;transition:border-color 0.18s,background 0.18s,transform 0.12s;
  touch-action:manipulation;-webkit-appearance:none;
  width:100%;text-align:left;color:var(--txt);
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .ob-opt{background:var(--pc-ffffff);}
.ob-opt:active{transform:scale(0.975);}
.ob-opt.sel{
  background:rgba(var(--c1-rgb),0.08);
  border-color:var(--c1);
  box-shadow:0 0 0 3px rgba(var(--c1-rgb),0.1);
}
.ob-opt-icon{font-size:28px;flex-shrink:0;width:42px;text-align:center;}
.ob-opt-info{flex:1;}
.ob-opt-title{font-size:15px;font-weight:700;color:var(--txt);}
.ob-opt-sub{font-size:13px;color:var(--txt3);margin-top:2px;}
.ob-opt-check{
  width:22px;height:22px;border-radius:50%;
  border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:background 0.18s,border-color 0.18s;
  font-size:11px;color:transparent;
}
.ob-opt.sel .ob-opt-check{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
/* Consent row — same width/rhythm as .ob-opt so it reads as part of the list */
.ob-ack{
  display:flex;align-items:center;gap:14px;
  width:100%;margin-top:12px;padding:14px 18px;min-height:56px;
  border-radius:var(--r16);background:var(--bg3);
  border:1.5px solid var(--border);
  font-size:14px;font-weight:600;line-height:1.4;color:var(--txt);
  cursor:pointer;touch-action:manipulation;
  transition:border-color 0.18s,background 0.18s;
}
.ob-ack.on{border-color:var(--accent);background:rgba(var(--c1-rgb),0.08);}
.ob-ack.err{border-color:var(--danger);box-shadow:0 0 0 3px rgba(255,69,58,0.15);}

/* ══ EXPLORE GRID ════════════════════════════════════════════════ */
.explore-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;margin-bottom:20px;}
.explore-card{
  background:var(--bg3);border-radius:var(--r20);
  padding:18px 16px;cursor:pointer;touch-action:manipulation;
  border:1px solid var(--border);
  transition:transform 0.14s var(--ease),border-color 0.18s,box-shadow 0.18s;
  -webkit-appearance:none;color:var(--txt);text-align:left;
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .explore-card{background:var(--pc-ffffff);}
.explore-card:active{transform:scale(0.95);}
.explore-card:hover{border-color:var(--border2);box-shadow:var(--ds2);}
.explore-icon{font-size:28px;margin-bottom:12px;}
.explore-title{font-size:14px;font-weight:700;color:var(--txt);letter-spacing:-0.2px;}
.explore-sub{font-size:12px;color:var(--txt2);margin-top:3px;line-height:1.45;}
.explore-card-icon{font-size:28px;margin-bottom:10px;}
.explore-card-t{font-size:14px;font-weight:700;color:var(--txt);letter-spacing:-0.2px;}
.explore-card-s{font-size:12px;color:var(--txt2);margin-top:3px;line-height:1.45;}

/* ══ BAR CHARTS ══════════════════════════════════════════════════ */
.bar-chart-wrap{padding:0 16px;margin-bottom:8px;}
.bar-chart{display:flex;align-items:flex-end;height:80px;gap:5px;}
.bar{flex:1;background:var(--bg4);border-radius:5px 5px 0 0;min-height:4px;transition:height 0.45s var(--ease);}
.bar.cur{background:var(--grad);}
.bar-labels{display:flex;padding:4px 16px 0;}
.bar-labels span{flex:1;text-align:center;font-size: 11px;color:var(--txt3);}

/* ══ CALENDAR ════════════════════════════════════════════════════ */
.cal{padding:0 16px 16px;}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-month{font-size:16px;font-weight:700;color:var(--txt);letter-spacing:-0.3px;}
.cal-nav{
  width:34px;height:34px;border-radius:50%;
  background:var(--bg3);border:1px solid var(--border);cursor:pointer;
  touch-action:manipulation;display:flex;align-items:center;justify-content:center;
  color:var(--txt2);font-size:15px;-webkit-appearance:none;
  transition:background 0.15s;
}
.cal-nav:active{background:var(--bg4);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-day-name{font-size: 11px;color:var(--txt3);text-align:center;padding:4px 0;font-weight:700;letter-spacing:0.02em;}
.cal-day{
  aspect-ratio:1;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;color:var(--txt3);position:relative;
  cursor:pointer;touch-action:manipulation;transition:background 0.12s;
}
.cal-day:active{background:var(--bg3);}
.cal-day.today{font-weight:800;color:var(--txt);}
.cal-day.today::before{
  content:'';position:absolute;inset:2px;
  border-radius:50%;border:1.5px solid var(--c1);
}
.cal-day.wkt{color:var(--txt);font-weight:600;}
.cal-day.wkt::after{
  content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);
  width:5px;height:5px;border-radius:50%;background:var(--accent);
}
.cal-day.wkt.rest-day::after{background:var(--pc-f5c842);}

/* ══ ACHIEVEMENTS ════════════════════════════════════════════════ */
.achieve-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;margin-bottom:14px;}
.achieve-card{
  background:var(--bg3);border-radius:var(--r16);
  padding:16px;text-align:center;
  border:1px solid var(--border);
  transition:transform 0.14s,border-color 0.18s;
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .achieve-card{background:var(--pc-ffffff);}
.achieve-card.unlocked{border-color:rgba(255,215,0,0.4);background:rgba(255,215,0,0.04);box-shadow:0 4px 16px rgba(255,215,0,0.12);}
.achieve-card:active{transform:scale(0.95);}
.achieve-icon{font-size:30px;margin-bottom:8px;filter:grayscale(1) opacity(0.25);}
.achieve-card.unlocked .achieve-icon{filter:none;opacity:1;animation:pulse 2.5s ease-in-out infinite;}
.achieve-name{font-size:13px;font-weight:700;color:var(--txt);}
.achieve-desc{font-size:11px;color:var(--txt3);margin-top:4px;line-height:1.4;}

/* ══ SUPPLEMENT CARDS ════════════════════════════════════════════ */
.supp-card{
  display:flex;align-items:center;gap:14px;
  padding:16px;background:var(--bg3);
  border-radius:var(--r16);margin:0 16px 10px;
  border:1px solid var(--border);
  box-shadow:var(--ds1);
  animation:entryIn 0.28s var(--ease) both;
}
[data-theme="arctic"] .supp-card{background:var(--pc-ffffff);}
.supp-card.due{border-color:rgba(var(--c1-rgb),0.25);box-shadow:0 0 0 1px rgba(var(--c1-rgb),0.08) inset;}
.supp-icon{font-size:26px;flex-shrink:0;}
.supp-info{flex:1;min-width:0;}
.supp-name{font-size:15px;font-weight:700;color:var(--txt);}
.supp-timing{font-size:12px;color:var(--txt3);margin-top:2px;}
.supp-taken{font-size:12px;color:var(--success-text,var(--c3));margin-top:2px;font-weight:600;}
.supp-warn{font-size:12px;color:var(--caution);margin-top:4px;}
.supp-mark{
  padding:8px 14px;border-radius:var(--r12);
  background:var(--bg-elev,var(--bg3));
  border:1px solid rgba(var(--accent-rgb),0.35);
  font-size:13px;font-weight:700;color:var(--accent-text);
  cursor:pointer;touch-action:manipulation;-webkit-appearance:none;
  flex-shrink:0;min-height:44px;
  transition:background 0.15s,transform 0.12s;
}
.supp-mark:active{background:rgba(var(--accent-rgb),0.12);transform:scale(0.96);}

/* ══ WATER TRACKER ═══════════════════════════════════════════════ */
.water-grid{display:flex;gap:10px;flex-wrap:wrap;padding:0 16px;}
.water-drop{
  width:44px;height:44px;border-radius:50%;
  cursor:pointer;touch-action:manipulation;
  transition:transform 0.2s var(--spring),background 0.2s,border-color 0.2s;
  -webkit-appearance:none;background:transparent;
  border:2px solid var(--border2);padding:0;
}
.water-drop.filled{background:var(--accent);border-color:var(--accent);box-shadow:0 2px 10px rgba(var(--c1-rgb),0.35);}
.water-drop:active{transform:scale(0.82);}

/* ══ MACRO BARS ══════════════════════════════════════════════════ */
.macro-bar-wrap{margin-bottom:14px;}
.macro-bar-row{display:flex;justify-content:space-between;margin-bottom:5px;}
.macro-bar-name{font-size:13px;font-weight:600;color:var(--txt);}
.macro-bar-val{font-size:13px;color:var(--txt3);font-variant-numeric:tabular-nums;}
.macro-bar{height:7px;background:var(--bg4);border-radius:4px;overflow:hidden;}
.macro-bar-fill{height:100%;border-radius:4px;transition:width 0.55s var(--ease);}
.macro-protein{background:linear-gradient(90deg,var(--pc-10b981),var(--pc-059669));}
.macro-carbs{background:linear-gradient(90deg,var(--pc-3b82f6),var(--pc-2563eb));}
.macro-fat{background:linear-gradient(90deg,var(--pc-f5c842),var(--pc-e8a020));}

/* ══ THEME SWATCHES ══════════════════════════════════════════════ */
.theme-swatches{display:flex;gap:10px;padding:0 16px;flex-wrap:wrap;margin-bottom:14px;}
.theme-swatch{
  width:50px;height:50px;border-radius:50%;
  cursor:pointer;touch-action:manipulation;
  border:3px solid transparent;
  transition:border-color 0.18s,transform 0.15s var(--spring);
  box-shadow:var(--ds1);
}
.theme-swatch.on{border-color:var(--c1);transform:scale(1.1);box-shadow:0 0 16px rgba(var(--c1-rgb),0.35);}
.theme-swatch:active{transform:scale(0.9);}
.theme-label{text-align:center;font-size: 11px;font-weight:600;color:var(--txt3);margin-top:5px;}
.theme-item{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;touch-action:manipulation;}

/* ══ SPINNER ═════════════════════════════════════════════════════ */
.spinner{
  width:26px;height:26px;
  border:2.5px solid var(--bg4);
  border-top-color:var(--c1);
  border-radius:50%;animation:spin 0.7s linear infinite;
}

/* ══ EMPTY STATE ═════════════════════════════════════════════════ */
.empty{text-align:center;padding:52px 24px;}
.empty-icon{font-size:52px;margin-bottom:14px;opacity:0.5;}
.empty-title{font-size:18px;font-weight:700;color:var(--txt);margin-bottom:8px;letter-spacing:-0.3px;}
.empty-sub{font-size:14px;color:var(--txt3);margin-bottom:28px;line-height:1.55;max-width:260px;margin-left:auto;margin-right:auto;}

/* ══ BODY MAP ════════════════════════════════════════════════════ */
.bodymap-wrap{position:relative;display:flex;justify-content:center;padding:16px;}
.bodymap-toggle{
  display:flex;background:var(--bg3);border-radius:var(--r12);
  padding:3px;gap:3px;margin:0 auto 16px;
  width:fit-content;border:1px solid var(--border);
}
.bodymap-toggle-btn{
  padding:8px 22px;border-radius:var(--r8);
  font-size:13px;font-weight:600;color:var(--txt3);
  cursor:pointer;touch-action:manipulation;-webkit-appearance:none;
  background:none;transition:all 0.2s var(--ease);
}
.bodymap-toggle-btn.on{
  background:var(--grad);color:var(--on-accent);
  box-shadow:0 2px 8px rgba(var(--c1-rgb),0.3);
}
.muscle-tooltip{
  position:absolute;background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--r12);padding:10px 14px;
  font-size:13px;color:var(--txt);min-width:160px;
  box-shadow:var(--ds3);z-index:10;pointer-events:none;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}

/* ══ MEASUREMENT GRID ════════════════════════════════════════════ */
.meas-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;margin-bottom:14px;}
.meas-card{
  background:var(--bg3);border-radius:var(--r16);
  padding:14px;border:1px solid var(--border);
  cursor:pointer;touch-action:manipulation;
  transition:border-color 0.18s,transform 0.14s;
  box-shadow:var(--ds1);
}
[data-theme="arctic"] .meas-card{background:var(--pc-ffffff);}
.meas-card:active{transform:scale(0.97);}
.meas-v{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--txt);letter-spacing:-0.5px;}
.meas-l{font-size: 11px;color:var(--txt3);text-transform:uppercase;letter-spacing:0.07em;margin-top:3px;font-weight:700;}
.meas-delta{font-size:12px;margin-top:4px;font-weight:600;}
.meas-delta.up{color:var(--success-text,var(--c3));}.meas-delta.down{color:var(--danger,var(--c4));}

/* ══ INSIGHT CARD ════════════════════════════════════════════════ */
.insight-card{
  margin:0 16px 10px;padding:16px;
  background:var(--bg3);border-radius:var(--r16);
  border:1px solid var(--border);box-shadow:var(--ds1);
  animation:entryIn 0.3s var(--ease) both;
}
[data-theme="arctic"] .insight-card{background:var(--pc-ffffff);}
.insight-icon{font-size:22px;margin-bottom:8px;}
.insight-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.09em;color:var(--c1);margin-bottom:5px;}
.insight-text{font-size:14px;color:var(--txt2);line-height:1.65;}

/* ══ SUPPLEMENT TIMELINE ══════════════════════════════════════════ */
.supp-timeline{padding:0 16px;margin-bottom:20px;}
.supp-time-group{margin-bottom:20px;}
.supp-time-label{
  font-size: 11px;font-weight:700;text-transform:uppercase;
  letter-spacing:0.1em;color:var(--txt3);
  margin-bottom:10px;display:flex;align-items:center;gap:8px;
}
.supp-time-label::after{content:'';flex:1;height:1px;background:var(--border);}
.supp-time-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--border);
}
.supp-time-item:last-child{border-bottom:none;}

/* ══ FINISH MODAL ════════════════════════════════════════════════ */
.finish-stats{
  display:flex;gap:0;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:16px 0;margin:16px 0;
}
.finish-stat{flex:1;text-align:center;}
.finish-stat+.finish-stat{border-left:1px solid var(--border);}
.finish-stat-icon{font-size:18px;margin-bottom:4px;}
.finish-stat-v{font-size:22px;font-weight:900;color:var(--c1);font-variant-numeric:tabular-nums;letter-spacing:-0.5px;}
.finish-stat-l{font-size: 11px;color:var(--txt3);text-transform:uppercase;letter-spacing:0.09em;margin-top:4px;font-weight:700;}
.finish-pr-list{
  background:rgba(255,215,0,0.07);
  border:1px solid rgba(255,215,0,0.22);
  border-radius:var(--r12);
  padding:10px 14px;margin:4px 0 10px;
}
.finish-pr-item{
  font-size:13px;font-weight:700;color:var(--pc-ffd700);
  padding:4px 0;display:flex;align-items:center;gap:8px;
  border-bottom:1px solid rgba(255,215,0,0.1);
}
.finish-pr-item:last-child{border-bottom:none;}

/* ══ PROGRESS CHART ══════════════════════════════════════════════ */
.chart-wrap{padding:0 16px;margin-bottom:16px;overflow:hidden;}
.chart-svg{width:100%;display:block;}

/* ══ WARMUP / CARDIO CARD ════════════════════════════════════════ */
.warmup-card{
  margin:0 16px 14px;padding:16px;
  background:var(--bg3);border-radius:var(--r16);
  border:1px solid var(--border);box-shadow:var(--ds1);
}
[data-theme="arctic"] .warmup-card{background:var(--pc-ffffff);}
.warmup-title{
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:0.09em;
  color:var(--c1);margin-bottom:12px;
}
.warmup-item{
  display:flex;align-items:center;gap:10px;
  padding:7px 0;border-bottom:1px solid var(--border);
  font-size:14px;color:var(--txt2);
}
.warmup-item:last-child{border-bottom:none;}
.warmup-item-icon{font-size:17px;width:24px;text-align:center;}

/* ── Active Workout ── */
.wkt-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--bg) 90%, transparent);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
}
.wkt-progress-bar-wrap { height: 3px; background: var(--bg4); }
.wkt-progress-bar { height: 100%; background: var(--grad); transition: width 0.4s var(--ease); border-radius: 0 2px 2px 0; }

.ex-card {
  background: var(--bg3);
  border: 1.5px solid var(--border);
  border-radius: var(--r20);
  margin-bottom: 14px;
  overflow: hidden;
  transition: border-color 0.3s, background 0.3s;
}
.ex-card.done {
  border-color: var(--success);
  background: rgba(48,209,88,0.04);
}
.ex-card-header {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 14px 12px;
  border-bottom: 1px solid var(--border);
}

.set-row {
  display: grid;
  grid-template-columns: 20px minmax(0,1.45fr) 8px minmax(0,1.15fr) 8px 40px 44px;
  gap: 3px;
  align-items: center;
  padding: 4px 6px;
  min-height: 52px;
  border-bottom: 1px solid var(--border);
  position: relative;
  white-space: nowrap;
  overflow: hidden;
}
.set-row:last-child { border-bottom: none; }
.set-row.done { background: rgba(48,209,88,0.06); }
.set-row.pr { background: rgba(255,214,10,0.08); }

.set-num {
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--bg4); border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: var(--txt3);
  flex-shrink: 0;
}
.set-row.done .set-num { background: rgba(48,209,88,0.2); border-color: var(--success); color: var(--success); }

.set-inputs { display: flex; align-items: center; justify-content: center; gap: 4px; }

.set-inp {
  background: var(--bg4); border: 1px solid var(--border);
  border-radius: 10px; color: var(--txt); font-size: 17px;
  font-weight: 700; text-align: center; padding: 8px 4px;
  touch-action: manipulation; font-variant-numeric: tabular-nums;
  -webkit-appearance: none; appearance: none;
  transition: border-color 0.18s, background 0.18s;
}
.set-inp:focus { border-color: var(--c1); background: rgba(var(--c1-rgb),0.06); outline: 0; }
.set-row.done .set-inp { border-color: rgba(48,209,88,0.3); background: rgba(48,209,88,0.06); }

.set-check {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--bg4); border: 2px solid var(--border);
  color: var(--txt3); font-size: 14px; font-weight: 700;
  cursor: pointer; touch-action: manipulation;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.2s var(--spring); flex-shrink: 0;
}
.set-check.done { background: var(--success); border-color: var(--success); color: var(--pc-ffffff); }
.set-check:active { transform: scale(0.96); }

@keyframes prBounce {
  0% { transform: scale(0) translateY(4px); opacity: 0; }
  70% { transform: scale(1.15) translateY(-2px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 1; }
}

/* ── Progress bar ── */
.prog-bar-wrap { height: 6px; background: var(--bg4); border-radius: 3px; overflow: hidden; }
.prog-bar { height: 100%; background: var(--grad); border-radius: 3px; transition: width 0.5s var(--ease); }

/* ── Warmup section ── */
.warmup-section { padding: 0 16px 14px; }

/* ── Range input ── */
input[type="range"] {
  -webkit-appearance: none; appearance: none;
  width: 100%; height: 4px; border-radius: 2px;
  background: var(--bg4); outline: 0; accent-color: var(--accent);
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; width: 20px; height: 20px;
  border-radius: 50%; background: var(--accent); cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

/* ── Explore card aliases ── */
.explore-card-title { font-size: 14px; font-weight: 700; color: var(--txt); }
.explore-card-sub { font-size: 12px; color: var(--txt3); margin-top: 4px; }

/* ── P4 module contract ── */
.mod-lede {
  padding: 12px 16px 0;
  font-size: 12px;
  color: var(--txt3);
  line-height: 1.45;
  margin: 0;
}
.mod-section-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--txt3);
  padding: 0 16px;
  margin-top: 24px;
  margin-bottom: 10px;
}
.mod-list {
  background: var(--bg3);
  border-top: 1px solid var(--border);
}
.mod-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 16px;
  cursor: pointer;
  touch-action: manipulation;
  border-bottom: 1px solid var(--border);
}
.mod-row__icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--bg3);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.mod-row__text { flex: 1; min-width: 0; }
.mod-row__title { font-size: 14px; font-weight: 700; color: var(--txt); }
.mod-row__sub { font-size: 11px; color: var(--txt3); margin-top: 1px; }
.mod-row__badge {
  font-size: 11px;
  font-weight: 700;
  color: var(--c1);
  background: rgba(var(--c1-rgb), 0.12);
  padding: 3px 8px;
  border-radius: 8px;
  flex-shrink: 0;
}
.mod-row__chev { font-size: 16px; color: var(--txt3); flex-shrink: 0; }
.mod-spacer { height: 30px; }
.mod-chip-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  padding: 0 16px 12px;
}
.mod-chip {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--txt2);
  cursor: pointer;
  touch-action: manipulation;
}
.mod-chip.on {
  border-color: var(--c1);
  background: rgba(var(--c1-rgb), 0.15);
  color: var(--c1);
}
/* Exercise library equipment filter — one horizontally scrolling row */
.browse-eq {
  display: flex; gap: 8px; overflow-x: auto; padding: 0 16px 12px;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.browse-eq::-webkit-scrollbar { display: none; }
.browse-eq .mod-chip { flex: 0 0 auto; white-space: nowrap; padding: 9px 14px; min-height: 36px; font-size: 12px; }
.mod-metric {
  background: var(--bg4);
  border-radius: 14px;
  padding: 14px;
  border: 1px solid var(--border);
}
.mod-metric__label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--txt3);
  margin-bottom: 6px;
}
.mod-metric__value {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.1;
}
.mod-metric__sub {
  font-size: 11px;
  color: var(--txt3);
  margin-top: 4px;
}

/* Shared list rows — search, recent, browse */
.list-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 13px 16px;
  min-height: 48px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  touch-action: manipulation;
  font: inherit;
}
.list-row:active { background: var(--bg3); }
.list-row__icon {
  flex-shrink: 0;
  width: 36px;
  text-align: center;
  font-size: 22px;
  color: var(--txt3);
  line-height: 1;
}
.list-row__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.list-row__title {
  font-size: 14px;
  font-weight: 700;
  color: var(--txt);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.list-row__sub {
  font-size: 11px;
  color: var(--txt3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.list-row__badge {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 10px;
  white-space: nowrap;
}
.list-row__chev {
  flex-shrink: 0;
  font-size: 16px;
  color: var(--txt3);
  margin-left: 4px;
}
