*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Forge Elite OS v2.0 normalized design tokens */
  /* Primitives: raw palette values only. */
  --color-carbon-950:#080807;
  --color-carbon-900:#0d0d0b;
  --color-carbon-980:#050504;
  --color-graphite-850:#151513;
  --color-graphite-800:#1b1b18;
  --color-charcoal-760:#22221e;
  --color-charcoal-720:#292923;
  --color-silver-500:#9d9a90;
  --color-silver-400:#b7b2a6;
  --color-ivory-100:#f4efe4;
  --color-ivory-200:#e8dfcf;
  --color-gold-500:#b9934a;
  --color-gold-400:#d0ad62;
  --color-success-500:#74a879;
  --color-warning-500:#c79a4a;
  --color-danger-500:#c3655d;
  --color-info-500:#8fa5b8;

  /* Semantics: component-facing source of truth. */
  --text-primary:var(--color-ivory-100);
  --text-secondary:var(--color-ivory-200);
  --text-muted:var(--color-silver-500);
  --text-subtle:rgba(232,223,207,.56);
  --surface-base:var(--color-carbon-950);
  --surface-depth:var(--color-carbon-980);
  --surface-raised:var(--color-graphite-850);
  --surface-card:var(--color-graphite-800);
  --surface-soft:var(--color-charcoal-760);
  --surface-inset:var(--color-carbon-900);
  --accent:var(--color-gold-500);
  --accent-strong:var(--color-gold-400);
  --accent-soft:rgba(185,147,74,.14);
  --status-success:var(--color-success-500);
  --status-warning:var(--color-warning-500);
  --status-danger:var(--color-danger-500);
  --status-info:var(--color-info-500);

  /* Compatibility aliases: retained for existing modules during phased migration. */
  --bg:var(--surface-base);
  --panel:var(--surface-raised);
  --card:var(--surface-card);
  --card2:var(--surface-soft);
  --neon:var(--accent-strong);
  --cyan:var(--status-info);
  --orange:var(--status-warning);
  --red:var(--status-danger);
  --muted:var(--text-muted);
  --white:var(--text-primary);
  --border:rgba(232,223,207,.13);

  /* Spacing scale */
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;

  /* Shape scale */
  --radius:16px;
  --radius-sm:10px;
  --radius-xs:6px;
  --radius-lg:22px;
  --radius-pill:999px;

  /* Borders and elevation */
  --border-subtle:rgba(244,239,228,.09);
  --border-medium:rgba(244,239,228,.15);
  --border-strong:rgba(208,173,98,.34);
  --border-accent-soft:rgba(208,173,98,.28);
  --border-accent-muted:rgba(208,173,98,.32);
  --scrollbar-accent:var(--border-strong);
  --scrollbar-accent-hover:rgba(208,173,98,.52);
  --shadow-soft:0 16px 44px rgba(0,0,0,.26);
  --shadow-card:0 12px 32px rgba(0,0,0,.22);
  --shadow-focus:0 0 0 3px rgba(208,173,98,.24);
  --elevation-1:var(--shadow-card);
  --elevation-2:var(--shadow-soft);

  /* Interaction and motion */
  --focus-color:var(--accent-strong);
  --focus-ring:0 0 0 3px var(--border-accent-soft);
  --motion-fast:150ms;
  --motion-medium:220ms;
  --motion-slow:320ms;
  --ease-standard:cubic-bezier(.2,.8,.2,1);
  --ease-spring:cubic-bezier(.16,1,.3,1);
  --opacity-disabled:.46;
  --opacity-muted:.68;
}
html{
  scroll-behavior:smooth;
  scrollbar-color:var(--scrollbar-accent) var(--surface-base);
  scrollbar-width:thin;
}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:
    radial-gradient(circle at 16% -8%,rgba(185,147,74,.1),transparent 30rem),
    radial-gradient(circle at 88% 0%,rgba(143,165,184,.055),transparent 34rem),
    linear-gradient(180deg,var(--surface-inset) 0%,var(--surface-base) 46%,var(--surface-depth) 100%);
  color:var(--text-primary);
  min-height:100vh;
  font-size:14px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body::-webkit-scrollbar{width:10px}
body::-webkit-scrollbar-track{background:var(--surface-base)}
body::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(208,173,98,.42),rgba(244,239,228,.16));
  border:2px solid var(--surface-base);
  border-radius:var(--radius-pill);
}
body::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-accent-hover)}
.app-header{
  background:linear-gradient(180deg,rgba(21,21,19,.96),rgba(8,8,7,.92));
  border-bottom:1px solid var(--border-medium);
  box-shadow:0 18px 44px rgba(0,0,0,.24);
  padding:var(--space-5) clamp(var(--space-4),4vw,var(--space-8)) var(--space-3);
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:saturate(125%) blur(14px);
}
.header-label{
  font-size:10px;
  font-weight:800;
  letter-spacing:2px;
  color:var(--text-subtle);
  text-transform:uppercase;
  margin-bottom:var(--space-1);
}
h1.header-title,h2.section-heading{margin:0;padding:0}
h1.header-title{
  font-size:clamp(21px,2.8vw,30px);
  font-weight:900;
  color:var(--text-primary);
  line-height:1.2;
  margin-bottom:var(--space-2);
  letter-spacing:.015em;
}
.header-profile{
  font-size:12px;
  color:var(--text-muted);
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-1) var(--space-3);
  align-items:center;
  max-width:1120px;
}
.header-profile .sep{color:var(--border-medium);margin:0 var(--space-1)}
.header-profile .dot-red{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--status-danger);
  box-shadow:0 0 0 3px rgba(195,101,93,.14);
  display:inline-block;
  margin-right:3px;
}
.tab-nav{
  background:linear-gradient(180deg,rgba(21,21,19,.94),rgba(13,13,11,.9));
  border:1px solid var(--border-medium);
  border-radius:var(--radius-lg);
  box-shadow:0 14px 38px rgba(0,0,0,.22);
  display:flex;
  overflow-x:auto;
  gap:var(--space-1);
  scrollbar-width:thin;
  scrollbar-color:var(--border-accent-muted) transparent;
  -ms-overflow-style:none;
  position:sticky;
  top:92px;
  z-index:99;
  margin:var(--space-4) auto 0;
  padding:var(--space-2);
  width:min(1280px,calc(100% - clamp(var(--space-6),8vw,80px)));
  backdrop-filter:saturate(125%) blur(12px);
}
.tab-nav::-webkit-scrollbar{height:6px}
.tab-nav::-webkit-scrollbar-track{background:transparent}
.tab-nav::-webkit-scrollbar-thumb{background:var(--border-accent-soft);border-radius:var(--radius-pill)}
.tab-btn{
  flex:0 0 auto;
  padding:10px 16px;
  font-size:12px;
  font-weight:800;
  color:var(--text-muted);
  background:transparent;
  border:1px solid transparent;
  border-radius:var(--radius-pill);
  cursor:pointer;
  white-space:nowrap;
  min-height:40px;
  letter-spacing:.025em;
  transition:
    color var(--motion-fast) var(--ease-standard),
    background-color var(--motion-fast) var(--ease-standard),
    border-color var(--motion-fast) var(--ease-standard),
    box-shadow var(--motion-fast) var(--ease-standard);
}
.tab-btn.active{
  color:var(--text-primary);
  background:linear-gradient(180deg,rgba(185,147,74,.26),rgba(185,147,74,.11));
  border-color:var(--border-strong);
  box-shadow:inset 0 1px 0 rgba(244,239,228,.1),0 10px 22px rgba(0,0,0,.22);
}
.tab-btn:hover:not(.active){
  color:var(--text-secondary);
  background:rgba(244,239,228,.065);
  border-color:var(--border-medium);
}
.tab-content{
  display:none;
  width:min(1280px,100%);
  margin:0 auto;
  padding:var(--space-8) clamp(var(--space-4),4vw,var(--space-8)) 96px;
}
.tab-content.active{display:block}
.card{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-raised));
  border:1px solid var(--border-medium);
  border-radius:var(--radius-lg);
  box-shadow:var(--elevation-1);
  padding:var(--space-5);
  margin-bottom:var(--space-4);
  transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard);
}
.card:hover{border-color:var(--border-strong);box-shadow:var(--elevation-2)}
.card-title{
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:var(--space-3);
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:14px;
}
.stat-card{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:var(--space-3) var(--space-2);
  text-align:center;
}
.stat-val{
  font-size:18px;
  font-weight:800;
  color:var(--accent-strong);
  line-height:1;
  margin-bottom:2px;
}
.stat-label{
  font-size:10px;
  color:var(--text-muted);
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.week-scroll{
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:none;
  padding-bottom:4px;
  margin-bottom:4px;
}
.week-scroll::-webkit-scrollbar{display:none}
.day-card{
  flex:0 0 140px;
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:var(--space-4);
}
.day-name{
  font-size:11px;
  font-weight:800;
  letter-spacing:1px;
  color:var(--muted);
  margin-bottom:6px;
}
.day-activity{
  font-size:12px;
  font-weight:600;
  color:var(--white);
  margin-bottom:4px;
  line-height:1.3;
}
.badge{
  display:inline-block;
  font-size:9px;
  font-weight:800;
  padding:4px 9px;
  border-radius:var(--radius-pill);
  letter-spacing:.07em;
  text-transform:uppercase;
  border:1px solid var(--border-subtle);
  background:rgba(244,239,228,.045);
  color:var(--text-muted);
}
.coach-note{
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  border-radius:var(--radius);
  padding:var(--space-4);
  margin-bottom:var(--space-4);
}
.coach-note-title{
  font-size:11px;
  font-weight:800;
  letter-spacing:1px;
  color:var(--accent-strong);
  margin-bottom:var(--space-2);
}
.coach-note p{
  font-size:13px;
  color:var(--text-secondary);
  line-height:1.6;
}
.form-group{margin-bottom:var(--space-4)}
.form-label{
  font-size:11px;
  font-weight:800;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.07em;
  margin-bottom:var(--space-2);
  display:block;
}
.form-input,.form-select{
  width:100%;
  background:var(--surface-inset);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:12px 14px;
  color:var(--text-primary);
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  outline:none;
  transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard);
}
.form-input::placeholder{color:var(--text-subtle)}
.form-input:focus,.form-select:focus{border-color:var(--focus-color);box-shadow:var(--focus-ring);background:var(--surface-depth)}
.form-select option{background:var(--surface-card);color:var(--text-primary)}
.calc-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:12px 0;
}
.calc-item{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:var(--space-3);
  text-align:center;
}
.calc-val{font-size:16px;font-weight:800;color:var(--accent-strong)}
.calc-lbl{font-size:10px;color:var(--text-muted);margin-top:2px}
.btn-primary{
  width:100%;
  background:linear-gradient(180deg,var(--accent-strong),var(--accent));
  color:var(--surface-base);
  border:1px solid rgba(244,239,228,.16);
  border-radius:var(--radius-pill);
  padding:12px 16px;
  font-family:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard);
  letter-spacing:.04em;
  box-shadow:0 12px 26px rgba(0,0,0,.24);
}
.btn-primary:hover{opacity:.94;transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0)}
.btn-primary:disabled,.btn-send:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;transform:none}
.day-selector{
  display:flex;
  overflow-x:auto;
  scrollbar-width:none;
  gap:6px;
  margin-bottom:14px;
  padding-bottom:2px;
}
.day-selector::-webkit-scrollbar{display:none}
.day-btn{
  flex:0 0 auto;
  padding:7px 12px;
  border-radius:20px;
  font-size:11px;
  font-weight:700;
  border:1px solid var(--border-subtle);
  background:var(--surface-card);
  color:var(--text-muted);
  cursor:pointer;
  white-space:nowrap;
  transition:all .2s;
}
.day-btn.active{
  background:var(--accent-soft);
  border-color:var(--border-strong);
  color:var(--accent-strong);
}
.workout-panel{display:none}
.workout-panel.active{display:block}
.section-label{
  font-size:10px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:6px;
  padding:5px 10px;
  border-radius:20px;
  display:inline-block;
}
.label-cyan{background:rgba(143,165,184,.13);color:var(--status-info)}
.label-orange{background:rgba(199,154,74,.13);color:var(--status-warning)}
.ex-table{width:100%;border-collapse:separate;border-spacing:0;margin:10px 0;overflow:hidden}
.ex-table th{
  font-size:10px;
  font-weight:700;
  letter-spacing:.5px;
  color:var(--text-muted);
  text-align:left;
  padding:6px 8px;
  border-bottom:1px solid var(--border-subtle);
  text-transform:uppercase;
}
.ex-table td{
  padding:9px 8px;
  border-bottom:1px solid var(--border-subtle);
  font-size:13px;
  vertical-align:middle;
}
.ex-table tr:hover td{background:rgba(244,239,228,.025)}
.ex-table tr:last-child td{border-bottom:none}
.ex-table .ex-name{font-weight:700;color:var(--text-primary)}
.ex-table .ex-sets,.ex-table .ex-reps{color:var(--accent-strong);font-weight:800;text-align:center}
.ex-table .ex-rest{color:var(--muted);font-size:12px;text-align:center}
.ex-expand-btn{
  background:none;
  border:1px solid var(--border-subtle);
  border-radius:4px;
  color:var(--muted);
  cursor:pointer;
  font-size:11px;
  padding:2px 6px;
  transition:all .2s;
}
.ex-expand-btn:hover{border-color:var(--border-strong);color:var(--accent-strong)}
.ex-detail{
  display:none;
  background:rgba(244,239,228,.04);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  padding:10px 12px;
  margin:2px 0 6px;
  font-size:12px;
  color:var(--text-muted);
  line-height:1.6;
}
.ex-detail.open{display:block}
.overload-box{
  background:rgba(116,168,121,.08);
  border:1px solid rgba(116,168,121,.24);
  border-radius:var(--radius);
  padding:12px 14px;
  margin:12px 0;
}
.overload-title{
  font-size:10px;
  font-weight:800;
  letter-spacing:1px;
  color:var(--status-success);
  text-transform:uppercase;
  margin-bottom:6px;
}
.tip-text{
  font-size:11px;
  color:var(--muted);
  text-align:center;
  margin-top:8px;
}
.week-tabs{
  display:flex;
  gap:6px;
  margin-bottom:14px;
  flex-wrap:wrap;
}
.week-tab-btn{
  padding:7px 14px;
  border-radius:20px;
  font-size:11px;
  font-weight:700;
  border:1px solid var(--border-subtle);
  background:var(--surface-card);
  color:var(--muted);
  cursor:pointer;
  transition:all .2s;
}
.week-tab-btn.active{
  background:var(--accent-soft);
  border-color:var(--border-strong);
  color:var(--accent-strong);
}
.run-panel{display:none}
.run-panel.active{display:block}
.run-session{
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:12px 14px;
  margin-bottom:10px;
}
.run-header{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
  flex-wrap:wrap;
}
.run-day{
  font-size:11px;
  font-weight:700;
  color:var(--muted);
  letter-spacing:.5px;
  text-transform:uppercase;
}
.run-title{
  font-size:13px;
  font-weight:600;
  color:var(--text-primary);
  margin-bottom:2px;
}
.run-desc{
  font-size:12px;
  color:var(--text-muted);
  line-height:1.5;
}
.macro-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:14px;
}
.macro-card{
  border-radius:var(--radius-sm);
  padding:10px 8px;
  text-align:center;
}
.macro-card.protein{background:rgba(116,168,121,.08);border:1px solid rgba(116,168,121,.24)}
.macro-card.carbs{background:rgba(143,165,184,.09);border:1px solid rgba(143,165,184,.24)}
.macro-card.fats{background:rgba(255,140,0,.08);border:1px solid rgba(255,140,0,.2)}
.macro-val{font-size:18px;font-weight:800;line-height:1}
.macro-val.protein{color:var(--status-success)}
.macro-val.carbs{color:var(--status-info)}
.macro-val.fats{color:var(--orange)}
.macro-lbl{font-size:10px;color:var(--muted);margin:3px 0;font-weight:500}
.macro-sub{font-size:9px;color:var(--muted);line-height:1.4}
.toggle-row{
  display:flex;
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:20px;
  overflow:hidden;
  margin-bottom:14px;
}
.toggle-btn{
  flex:1;
  padding:9px 10px;
  font-size:11px;
  font-weight:700;
  border:none;
  background:none;
  color:var(--muted);
  cursor:pointer;
  transition:all .2s;
  text-align:center;
}
.toggle-btn.active{
  background:var(--accent-soft);
  color:var(--accent-strong);
}
.meal-card{
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:12px 14px;
  margin-bottom:10px;
}
.meal-time{
  font-size:10px;
  font-weight:700;
  letter-spacing:.5px;
  color:var(--muted);
  text-transform:uppercase;
  margin-bottom:4px;
}
.meal-name{
  font-size:13px;
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:6px;
}
.meal-foods{
  font-size:12px;
  color:var(--text-muted);
  line-height:1.6;
}
.meal-protein{
  font-size:11px;
  font-weight:700;
  color:var(--status-success);
  margin-top:6px;
}
.target-box{
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  border-radius:var(--radius);
  padding:12px 14px;
  margin-bottom:14px;
}
.target-title{
  font-size:11px;
  font-weight:800;
  letter-spacing:.5px;
  color:var(--accent-strong);
  margin-bottom:6px;
  text-transform:uppercase;
}
.target-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  font-size:12px;
  color:var(--text-muted);
}
.target-item strong{color:var(--text-primary)}
.recovery-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:14px;
}
.recovery-card{
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:12px;
}
.recovery-title{
  font-size:11px;
  font-weight:700;
  margin-bottom:8px;
}
.recovery-list{
  list-style:none;
}
.recovery-list li{
  font-size:12px;
   color:var(--text-muted);
  padding:3px 0;
  display:flex;
  align-items:flex-start;
  gap:6px;
  line-height:1.4;
}
.check-icon{color:var(--status-info);font-style:normal;flex-shrink:0}
.warn-icon{color:var(--orange);font-style:normal;flex-shrink:0}
.protocol-card{
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:14px;
  margin-bottom:10px;
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.protocol-icon{font-size:20px;flex-shrink:0}
.protocol-title{
  font-size:13px;
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:4px;
}
.protocol-desc{
  font-size:12px;
  color:var(--text-muted);
  line-height:1.5;
}
.phases-scroll{
  display:flex;
  gap:10px;
  overflow-x:auto;
  scrollbar-width:none;
  margin-bottom:14px;
  padding-bottom:4px;
}
.phases-scroll::-webkit-scrollbar{display:none}
.phase-card{
  flex:0 0 220px;
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:14px;
}
.phase-header{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.phase-circle{
  width:32px;
  height:32px;
  border-radius:50%;
  border:2px solid var(--accent-strong);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  font-weight:800;
  color:var(--accent-strong);
  flex-shrink:0;
}
.phase-weeks{
  font-size:10px;
  font-weight:700;
  color:var(--muted);
  letter-spacing:.5px;
  text-transform:uppercase;
}
.phase-desc{
  font-size:12px;
  color:var(--text-muted);
  line-height:1.5;
  margin-bottom:10px;
}
.milestone-label{
  font-size:10px;
  font-weight:700;
  letter-spacing:.5px;
  color:var(--muted);
  text-transform:uppercase;
  margin-bottom:6px;
}
.milestone-list{
  list-style:none;
}
.milestone-list li{
  font-size:11px;
  color:var(--text-muted);
  padding:3px 0;
  display:flex;
  align-items:flex-start;
  gap:5px;
  line-height:1.4;
}
.milestone-list li::before{content:"\2192";color:var(--accent-strong);flex-shrink:0}
.final-note{
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  border-radius:var(--radius);
  padding:16px;
  font-size:13px;
  color:var(--text-secondary);
  line-height:1.6;
}
.tracker-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:12px;
  margin-bottom:14px;
}
.tracker-table th{
  font-size:10px;
  font-weight:800;
  color:var(--text-muted);
  text-align:left;
  padding:7px 8px;
  border-bottom:1px solid var(--border-subtle);
  text-transform:uppercase;
  letter-spacing:.5px;
}
.tracker-table td{
  padding:10px 8px;
  border-bottom:1px solid var(--border-subtle);
  color:var(--text-muted);
}
.tracker-table tr:hover td{background:rgba(244,239,228,.025)}
.tracker-table .no-data{
  text-align:center;
  color:var(--text-muted);
  font-style:italic;
  padding:var(--space-6);
}
.btn-add{
  width:100%;
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-strong);
  border-radius:var(--radius-pill);
  padding:11px 14px;
  color:var(--accent-strong);
  font-family:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  transition:background-color var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard);
  margin-bottom:14px;
}
.btn-add:hover{background:var(--accent-soft);box-shadow:var(--elevation-1);transform:translateY(-1px)}
.weekly-summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:14px;
}
.summary-card{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:var(--space-3);
  text-align:center;
  box-shadow:var(--elevation-1);
}
.summary-val{
  font-size:20px;
  font-weight:800;
  color:var(--accent-strong);
}
.summary-lbl{font-size:10px;color:var(--muted);margin-top:2px}
.google-btn{
  width:100%;
  background:#fff;
  color:#444;
  border:none;
  border-radius:var(--radius-sm);
  padding:11px 14px;
  font-family:inherit;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition:opacity .2s;
}
.google-btn:hover{opacity:.9}
.google-icon{
  width:18px;height:18px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.18 1.48-4.97 2.31-8.16 2.31-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(5,5,4,.78);
  z-index:200;
  align-items:center;
  justify-content:center;
  padding:16px;
}
.modal-overlay.open{display:flex}
.modal{
  background:linear-gradient(180deg,var(--surface-raised),var(--surface-base));
  border:1px solid var(--border-strong);
  border-radius:var(--radius-lg);
  box-shadow:0 28px 80px rgba(0,0,0,.46);
  padding:var(--space-6);
  width:100%;
  max-width:460px;
  max-height:80vh;
  overflow-y:auto;
}
.modal-title{
  font-size:18px;
  font-weight:900;
  color:var(--text-primary);
  margin-bottom:var(--space-5);
  letter-spacing:.02em;
}
.modal-close{
  float:right;
  background:rgba(244,239,228,.06);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-pill);
  color:var(--text-muted);
  font-size:18px;
  cursor:pointer;
  margin-top:-2px;
  transition:color var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard);
}
.modal-close:hover{background:rgba(244,239,228,.1);border-color:var(--border-medium);color:var(--text-primary)}
.swipe-hint{
  font-size:11px;
  color:var(--muted);
  text-align:right;
  margin-bottom:6px;
  font-style:italic;
}
.section-heading{
  font-size:clamp(22px,3vw,34px);
  font-weight:900;
  color:var(--text-primary);
  margin-bottom:var(--space-2);
  letter-spacing:.01em;
}
.section-sub{
  font-size:13px;
  color:var(--text-muted);
  margin-bottom:var(--space-5);
  max-width:720px;
  line-height:1.6;
}
.rest-day-card{
  background:rgba(195,101,93,.08);
  border:1px solid rgba(195,101,93,.24);
  border-radius:var(--radius-lg);
  padding:40px 20px;
  text-align:center;
}
.rest-emoji{font-size:48px;margin-bottom:12px}
.rest-title{font-size:18px;font-weight:800;color:var(--white);margin-bottom:6px}
.rest-desc{font-size:13px;color:var(--muted);line-height:1.6}
.hiit-card{
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:12px 14px;
  margin-bottom:10px;
}
.hiit-title{font-size:13px;font-weight:800;color:var(--accent-strong);margin-bottom:6px}
.hiit-list{list-style:none}
.hiit-list li{font-size:12px;color:var(--text-muted);padding:3px 0;display:flex;gap:6px;line-height:1.4}
.hiit-list li::before{content:"\2022";color:var(--accent-strong);flex-shrink:0}
.api-key-row{display:flex;gap:8px;margin-bottom:6px}
.api-key-row .form-input{flex:1}
.api-key-note{font-size:10px;color:var(--muted);margin-bottom:14px}
.quick-prompts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.quick-btn{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-pill);
  color:var(--text-secondary);
  font-size:11px;
  font-weight:800;
  padding:7px 13px;
  cursor:pointer;
  transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard);
}
.quick-btn:hover{background:var(--accent-soft);border-color:var(--border-strong);color:var(--accent-strong)}
.chat-window{
  background:var(--surface-inset);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  height:320px;
  overflow-y:auto;
  padding:12px;
  margin-bottom:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.chat-empty{color:var(--muted);font-size:12px;text-align:center;margin:auto}
.msg-user{
  align-self:flex-end;
  max-width:80%;
  background:linear-gradient(180deg,var(--accent-strong),var(--accent));
  color:var(--surface-base);
  border-radius:16px 16px 4px 16px;
  padding:8px 12px;
  font-size:13px;
  font-weight:600;
}
.msg-ai-wrap{align-self:flex-start;max-width:85%}
.msg-ai-label{font-size:10px;color:var(--muted);margin-bottom:3px}
.msg-ai{
  background:var(--surface-raised);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm) var(--radius) var(--radius) var(--radius);
  padding:10px 12px;
  font-size:13px;
  color:var(--text-primary);
  line-height:1.6;
}
.msg-time{font-size:9px;color:var(--muted);margin-top:2px;text-align:right}
.chat-input-row{display:flex;gap:8px}
.chat-input-row .form-input{flex:1}
.btn-send{
  background:linear-gradient(180deg,var(--accent-strong),var(--accent));
  color:var(--surface-base);
  border:1px solid rgba(244,239,228,.16);
  border-radius:var(--radius-pill);
  padding:10px 16px;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  white-space:nowrap;
}
.btn-send:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}
.typing-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1s infinite}
.typing-dot:nth-child(2){animation-delay:.2s}
.typing-dot:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.2}40%{opacity:1}}
.float-coach-btn{
  position:fixed;
  bottom:20px;
  right:16px;
  background:linear-gradient(180deg,var(--accent-strong),var(--accent));
  color:var(--surface-base);
  border:none;
  border-radius:30px;
  padding:10px 18px;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  box-shadow:0 12px 32px rgba(0,0,0,.32);
  z-index:90;
  transition:all .2s;
}
.float-coach-btn:hover{transform:translateY(-1px)}

.analytics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
.an-card{background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));border:1px solid var(--border-subtle);border-radius:var(--radius);padding:12px;text-align:center;box-shadow:var(--elevation-1)}
.an-val{font-size:22px;font-weight:800;color:var(--accent-strong)}
.an-lbl{font-size:10px;color:var(--muted);margin-top:3px}
.chart-box{background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;margin-bottom:12px}
.chart-title{font-size:12px;font-weight:900;color:var(--text-primary);margin-bottom:10px;letter-spacing:.04em;text-transform:uppercase}
.adherence-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
.adhere-day{
  background:var(--surface-inset);
  border:1px solid var(--border-subtle);
  border-radius:6px;
  padding:8px 4px;
  text-align:center;
  cursor:pointer;
  transition:all .2s;
}
.adhere-day.hit{background:rgba(116,168,121,.16);border-color:rgba(116,168,121,.34)}
.adhere-day.miss{background:rgba(195,101,93,.12);border-color:rgba(195,101,93,.3)}
.adhere-day-name{font-size:9px;color:var(--muted);font-weight:700}
.adhere-day-icon{font-size:14px;margin-top:2px}
.pr-list{list-style:none}
.pr-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:9px 0;
  border-bottom:1px solid var(--border-subtle);
  font-size:13px;
}
.pr-item:last-child{border-bottom:none}
.pr-label{color:var(--muted)}
.pr-val{font-weight:800;color:var(--accent-strong)}
.btn-report{
  width:100%;
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  border-radius:var(--radius-pill);
  padding:11px;
  color:var(--accent-strong);
  font-family:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  transition:background-color var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard);
  margin-bottom:10px;
}
.btn-report:hover{background:rgba(185,147,74,.2);box-shadow:var(--elevation-1);transform:translateY(-1px)}
.report-output{
  background:var(--surface-raised);
  border:1px solid var(--border-strong);
  border-radius:var(--radius);
  padding:14px;
  font-size:13px;
  color:var(--text-secondary);
  line-height:1.7;
  white-space:pre-wrap;
  display:none;
}

.toast{
  position:fixed;
  bottom:20px;
  left:50%;
  transform:translateX(-50%) translateY(80px);
  background:linear-gradient(180deg,var(--accent-strong),var(--accent));
  color:var(--surface-base);
  font-weight:800;
  font-size:13px;
  padding:11px 22px;
  border-radius:var(--radius-pill);
  box-shadow:0 18px 42px rgba(0,0,0,.34);
  z-index:300;
  transition:transform .3s;
  pointer-events:none;
}
.toast.show{transform:translateX(-50%) translateY(0)}

@keyframes phSlideUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes phPulse{
  0%,100%{transform:scale(1);opacity:.7}
  50%{transform:scale(1.8);opacity:0}
}
@keyframes phShimmer{
  0%{background-position:-200% 0}
  100%{background-position:200% 0}
}
@keyframes phRingFill{
  from{stroke-dashoffset:var(--ring-c)}
}
@keyframes phDotBounce{
  0%,80%,100%{opacity:.3;transform:scale(.7)}
  40%{opacity:1;transform:scale(1)}
}
@keyframes phFabIn{
  from{opacity:0;transform:translateY(12px) scale(.8)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.ic{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  vertical-align:middle;
  line-height:1;
}
.ic svg{width:100%;height:100%}

#overviewContent{
  max-width:1180px;
  margin:0 auto;
  padding:var(--space-2) 0 80px;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:var(--space-5);
}
#overviewContent > *{
  grid-column:1 / -1;
  animation:phSlideUp .5s cubic-bezier(.22,1,.36,1) both;
}
#overviewContent > *:nth-child(1){animation-delay:0ms}
#overviewContent > *:nth-child(2){animation-delay:60ms}
#overviewContent > *:nth-child(3){animation-delay:120ms}
#overviewContent > *:nth-child(4){animation-delay:180ms}
#overviewContent > *:nth-child(5){animation-delay:240ms}
#overviewContent > *:nth-child(6){animation-delay:300ms}
#overviewContent > *:nth-child(7){animation-delay:360ms}
#overviewContent > *:nth-child(8){animation-delay:420ms}

.ph-section-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:14px;
}
.ph-section-title{
  font-size:13px;
  font-weight:900;
  color:var(--white);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.executive-dashboard{
  margin-bottom:var(--space-5);
}
.executive-dashboard .ph-section-title{
  margin:0;
}
.ed-updated{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:999px;
  border:1px solid var(--border-strong);
  background:var(--accent-soft);
  color:var(--accent-strong);
  font-size:10px;
  font-weight:800;
  letter-spacing:.7px;
  text-transform:uppercase;
}
.ed-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--space-3);
}
.ed-card{
  min-height:112px;
  height:100%;
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:var(--space-4);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:border-color .18s ease, transform .18s ease;
}
.ed-card:focus-visible{
  outline:2px solid var(--focus-color);
  outline-offset:2px;
}
.ed-card:hover{
  border-color:var(--border-strong);
  transform:translateY(-1px);
}
.ed-card-label{
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.6px;
  line-height:1.25;
  text-transform:uppercase;
}
.ed-card-value{
  color:var(--white);
  font-size:20px;
  font-weight:800;
  line-height:1.18;
  overflow-wrap:anywhere;
}
.ed-card-meta{
  align-self:flex-start;
  border-radius:999px;
  padding:3px 8px;
  font-size:10px;
  font-weight:800;
  line-height:1.2;
}
.ed-badge-positive{background:rgba(0,224,101,.1);color:#00e065}
.ed-badge-steady{background:var(--accent-soft);color:var(--accent-strong)}
.ed-badge-alert{background:rgba(255,68,68,.12);color:#ff8888}

@media (max-width:760px){
  .ed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
  .ed-grid{grid-template-columns:1fr}
  .ed-card{min-height:92px}
}

.executive-report{
  margin-bottom:var(--space-5);
}
.er-details{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  overflow:hidden;
}
.er-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:58px;
  padding:12px 14px;
  cursor:pointer;
  list-style:none;
}
.er-summary::-webkit-details-marker{display:none}
.er-summary:focus-visible{
  outline:2px solid var(--focus-color);
  outline-offset:-2px;
}
.er-kicker{
  display:block;
  color:var(--accent-strong);
  font-size:10px;
  font-weight:800;
  letter-spacing:.7px;
  line-height:1.2;
  text-transform:uppercase;
}
.er-title{
  display:block;
  color:var(--white);
  font-size:16px;
  font-weight:800;
  line-height:1.2;
}
.er-summary-meta{
  border:1px solid var(--border-strong);
  border-radius:999px;
  color:var(--accent-strong);
  background:var(--accent-soft);
  font-size:10px;
  font-weight:800;
  padding:4px 10px;
  text-transform:uppercase;
}
.er-content{
  border-top:1px solid var(--border-subtle);
}
.er-body{
  padding:var(--space-4);
}
.er-period{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  margin-bottom:12px;
}
.er-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.er-wide{grid-column:1 / -1}
.er-card{
  height:100%;
  min-height:112px;
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  background:var(--surface-soft);
  padding:var(--space-4);
}
.er-card:focus-visible{
  outline:2px solid var(--focus-color);
  outline-offset:2px;
}
.er-card-title{
  color:var(--white);
  font-size:13px;
  font-weight:800;
  margin:0 0 8px;
}
.er-card p{
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  margin:0;
}
.er-list{
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  margin:0;
  padding-left:16px;
}
.er-list li + li{
  margin-top:5px;
}
.er-empty{
  color:var(--muted);
  font-size:12px;
  padding:14px;
}

@media (max-width:560px){
  .er-grid{grid-template-columns:1fr}
  .er-summary{align-items:flex-start}
}

.ph-hero{
  background:linear-gradient(135deg,var(--surface-depth),var(--surface-card) 58%,var(--surface-inset));
  border:1px solid var(--border-strong);
  border-radius:var(--radius-lg);
  padding:var(--space-8);
  margin-bottom:var(--space-5);
  position:relative;
  overflow:hidden;
  box-shadow:var(--elevation-2);
}
.ph-hero::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--accent-strong),transparent);
  opacity:.9;
}
.ph-hero::after{
  content:'';
  position:absolute;
  top:-50px;right:-50px;
  width:260px;height:260px;
  background:radial-gradient(circle,rgba(208,173,98,.13) 0%,transparent 68%);
  pointer-events:none;
}
.ph-hero-top{margin-bottom:20px;position:relative;z-index:1}
.ph-hero-greet{
  font-size:34px;
  font-weight:900;
  color:var(--white);
  line-height:1.15;
  letter-spacing:.01em;
}
.ph-hero-date{
  font-size:12px;
  color:var(--text-muted);
  margin-top:var(--space-2);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ph-hero-week-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:12px;
}
.ph-hero-week-pill{
  font-size:10px;
  font-weight:700;
  color:var(--accent-strong);
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  padding:3px 10px;
  border-radius:20px;
  letter-spacing:.6px;
  white-space:nowrap;
  flex-shrink:0;
}
.ph-hero-week-bar{
  flex:1;
  height:6px;
  background:rgba(244,239,228,.08);
  border-radius:3px;
  overflow:hidden;
}
.ph-hero-week-fill{
  height:100%;
  background:linear-gradient(90deg,var(--accent),var(--accent-strong));
  border-radius:3px;
  transition:width .8s cubic-bezier(.22,1,.36,1);
}
.ph-hero-week-pct{
  font-size:12px;
  font-weight:800;
  color:var(--accent-strong);
  flex-shrink:0;
}

.ph-hero-mission{
  background:rgba(244,239,228,.045);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:var(--space-5);
  margin-bottom:var(--space-5);
  position:relative;
  z-index:1;
}
.ph-hero-mission-label{
  font-size:10px;
  font-weight:900;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}
.ph-hero-mission-name{
  font-size:22px;
  font-weight:900;
  color:var(--white);
  line-height:1.3;
}
.ph-hero-mission-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}
.ph-hm-tag{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:12px;
  font-weight:500;
  color:var(--text-secondary);
  background:var(--surface-inset);
  border:1px solid var(--border-subtle);
  padding:4px 10px;
  border-radius:8px;
}
.ph-hero-motive{
  font-size:13px;
  color:var(--text-subtle);
  margin-bottom:16px;
  font-style:italic;
  position:relative;
  z-index:1;
}
.ph-hero-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:16px 24px;
  background:linear-gradient(180deg,var(--accent-strong),var(--accent));
  color:var(--surface-depth);
  border:1px solid rgba(244,239,228,.18);
  border-radius:var(--radius-sm);
  font-size:15px;
  font-weight:800;
  font-family:inherit;
  letter-spacing:.5px;
  cursor:pointer;
  transition:all .2s;
  position:relative;
  z-index:1;
  overflow:hidden;
}
.ph-hero-cta:hover{
  background:linear-gradient(180deg,var(--color-ivory-200),var(--accent-strong));
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(208,173,98,.24);
}
.ph-hero-cta:active{transform:translateY(0) scale(.97)}
.ph-hero-done{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px;
  background:rgba(0,224,101,.08);
  border:1px solid rgba(0,224,101,.2);
  border-radius:14px;
  color:#00e065;
  font-size:14px;
  font-weight:700;
  position:relative;
  z-index:1;
}
.ph-hero-rest{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px;
  text-align:center;
  color:var(--muted);
  font-size:13px;
  font-style:italic;
  background:rgba(255,255,255,.03);
  border-radius:14px;
  position:relative;
  z-index:1;
}

.ph-workout{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  padding:var(--space-6);
  margin-bottom:var(--space-5);
  transition:border-color .3s;
}
.ph-workout:hover{border-color:var(--border-strong)}
.ph-wk-header{
  margin-bottom:18px;
}
.ph-wk-title-row{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:8px;
}
.ph-wk-icon{
  width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);
  color:var(--accent-strong);
  flex-shrink:0;
}
.ph-wk-title{
  font-size:17px;
  font-weight:900;
  color:var(--white);
}
.ph-wk-sub{
  font-size:12px;
  color:var(--muted);
  margin-top:2px;
}
.ph-wk-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  font-weight:700;
  padding:5px 12px;
  border-radius:20px;
  letter-spacing:.3px;
}
.ph-wk-done{
  background:rgba(0,224,101,.12);
  color:#00e065;
  border:1px solid rgba(0,224,101,.25);
}
.ph-wk-pending{
  background:rgba(255,220,0,.08);
  color:#ffdc00;
  border:1px solid rgba(255,220,0,.2);
}
.ph-wk-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:16px;
}
.ph-wk-stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  padding:12px 8px;
  background:var(--surface-inset);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  text-align:center;
}
.ph-wk-stat-val{
  font-size:16px;
  font-weight:800;
  color:var(--white);
}
.ph-wk-stat-lbl{
  font-size:10px;
  color:var(--muted);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.3px;
}
.ph-wk-progress-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.ph-wk-progress-bar{
  flex:1;
  height:6px;
  background:rgba(244,239,228,.08);
  border-radius:3px;
  overflow:hidden;
}
.ph-wk-progress-fill{
  height:100%;
  background:linear-gradient(90deg,var(--accent),var(--accent-strong));
  border-radius:3px;
  transition:width .8s cubic-bezier(.22,1,.36,1);
}
.ph-wk-progress-pct{
  font-size:12px;
  font-weight:800;
  color:var(--accent-strong);
  flex-shrink:0;
}
.ph-wk-exercises{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:18px;
}
.ph-ex-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  background:rgba(244,239,228,.035);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  transition:all .2s;
}
.ph-ex-card:hover{
  background:rgba(244,239,228,.055);
  border-color:var(--border-medium);
  transform:translateX(4px);
}
.ph-ex-thumb{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  border-radius:10px;
  flex-shrink:0;
}
.ph-ex-num{
  font-size:14px;
  font-weight:800;
  color:var(--accent-strong);
}
.ph-ex-info{flex:1;min-width:0}
.ph-ex-name{
  font-size:13px;
  font-weight:700;
  color:var(--white);
}
.ph-ex-detail{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  color:var(--muted);
  margin-top:2px;
}
.ph-ex-action{flex-shrink:0}
.badge-gym,.badge-peak{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--border-strong)}
.badge-run,.badge-green{background:rgba(116,168,121,.13);color:var(--status-success);border-color:rgba(116,168,121,.28)}
.badge-outdoor,.badge-orange,.badge-yellow{background:rgba(199,154,74,.13);color:var(--status-warning);border-color:rgba(199,154,74,.28)}
.badge-swim{background:rgba(143,165,184,.13);color:var(--status-info);border-color:rgba(143,165,184,.28)}
.badge-light,.badge-rest{background:rgba(244,239,228,.07);color:var(--text-muted);border-color:var(--border-subtle)}

.ph-wk-actions{
  display:flex;
  gap:10px;
}
.ph-btn-primary{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 20px;
  background:linear-gradient(180deg,var(--accent-strong),var(--accent));
  color:var(--surface-depth);
  border:1px solid rgba(244,239,228,.16);
  border-radius:12px;
  font-size:13px;
  font-weight:700;
  font-family:inherit;
  cursor:pointer;
  transition:all .2s;
}
.ph-btn-primary:hover{background:linear-gradient(180deg,var(--color-ivory-200),var(--accent-strong));transform:translateY(-1px)}
.ph-btn-primary:active{transform:scale(.97)}
.ph-btn-ghost{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:13px 20px;
  background:var(--surface-inset);
  color:var(--white);
  border:1px solid var(--border);
  border-radius:12px;
  font-size:13px;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  transition:all .2s;
}
.ph-btn-ghost:hover{background:rgba(244,239,228,.08);border-color:var(--border-strong)}
.ph-btn-ghost:active{transform:scale(.97)}

.ph-rings-section{margin-bottom:var(--space-5)}
.ph-rings-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
}
.ph-ring-card{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:16px 8px 14px;
  text-align:center;
  transition:all .25s;
}
.ph-ring-card:hover{
  border-color:var(--border-strong);
  transform:translateY(-3px);
}
.ph-ring-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:8px;
}
.ring-svg{display:block}
.ring-fill{
  transition:stroke-dashoffset 1.2s cubic-bezier(.22,1,.36,1);
}
.ph-ring-inner{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
}
.ph-ring-val{
  font-size:13px;
  font-weight:800;
  color:var(--white);
}
.ph-ring-label{
  font-size:10px;
  color:var(--muted);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.3px;
}

.ph-coach{
  background:linear-gradient(135deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  padding:var(--space-6);
  margin-bottom:var(--space-5);
}
.ph-coach-inner{}
.ph-coach-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.ph-coach-avatar{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);
  border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);
  color:var(--accent-strong);
  flex-shrink:0;
}
.ph-coach-name{
  font-size:14px;
  font-weight:700;
  color:var(--white);
}
.ph-coach-sub{
  font-size:11px;
  color:var(--muted);
  margin-top:1px;
}
.ph-coach-bubble{
  background:rgba(244,239,228,.045);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:14px 16px;
  margin-bottom:12px;
  position:relative;
}
.ph-coach-msg{
  font-size:13px;
  color:var(--text-secondary);
  line-height:1.6;
}
.ph-coach-dots{
  display:flex;
  gap:4px;
  margin-top:8px;
}
.ph-coach-dots span{
  width:5px;height:5px;
  border-radius:50%;
  background:var(--accent-strong);
  opacity:.3;
  animation:phDotBounce 1.4s ease-in-out infinite;
}
.ph-coach-dots span:nth-child(2){animation-delay:.2s}
.ph-coach-dots span:nth-child(3){animation-delay:.4s}
.ph-coach-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.ph-coach-chip{
  font-size:11px;
  color:var(--muted);
  background:var(--surface-inset);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  padding:6px 10px;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  transition:all .2s;
  cursor:default;
}
.ph-coach-chip.active{
  color:var(--accent-strong);
  background:var(--accent-soft);
  border-color:var(--border-strong);
}

.ph-timeline{margin-bottom:var(--space-5)}
.ph-tl-streak{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:12px;
  font-weight:700;
  color:var(--accent-strong);
}
.ph-tl-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:6px;
}
.ph-tl-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  position:relative;
  padding-top:14px;
}
.ph-tl-line{
  position:absolute;
  top:24px;
  left:-50%;
  right:50%;
  height:2px;
  background:var(--border-subtle);
  z-index:0;
}
.ph-tl-item:first-child .ph-tl-line{display:none}
.ph-tl-dot{
  width:28px;height:28px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface-soft);
  border:2px solid var(--border-subtle);
  position:relative;
  z-index:1;
  transition:all .3s;
  color:var(--muted);
}
.ph-tl-pulse{
  width:8px;height:8px;
  border-radius:50%;
  background:var(--accent-strong);
  position:relative;
}
.ph-tl-pulse::after{
  content:'';
  position:absolute;
  inset:-4px;
  border-radius:50%;
  background:var(--accent-strong);
  animation:phPulse 2s ease-in-out infinite;
}
.ph-tl-content{text-align:center;margin-top:2px}
.ph-tl-day{
  font-size:10px;
  font-weight:700;
  color:var(--muted);
  letter-spacing:.5px;
}
.ph-tl-date{
  font-size:9px;
  color:rgba(255,255,255,.3);
  margin-top:1px;
}
.ph-tl-activity{
  font-size:9px;
  color:rgba(255,255,255,.4);
  margin-top:3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:80px;
}

.ph-tl-done .ph-tl-dot{
  background:rgba(0,224,101,.12);
  border-color:#00e065;
  color:#00e065;
  box-shadow:0 0 10px rgba(0,224,101,.15);
}
.ph-tl-done .ph-tl-line{background:#00e065}
.ph-tl-done .ph-tl-day{color:#00e065}

.ph-tl-missed .ph-tl-dot{
  background:rgba(255,68,68,.08);
  border-color:rgba(255,68,68,.3);
}
.ph-tl-missed .ph-tl-line{background:rgba(255,68,68,.3)}
.ph-tl-missed .ph-tl-day{color:var(--red)}

.ph-tl-current .ph-tl-dot{
  border-color:var(--accent-strong);
  box-shadow:0 0 14px rgba(208,173,98,.24);
}
.ph-tl-current .ph-tl-day{color:var(--accent-strong);font-weight:800}
.ph-tl-current .ph-tl-line{background:var(--border)}

.ph-tl-upcoming .ph-tl-dot{opacity:.5}
.ph-tl-upcoming .ph-tl-day{opacity:.5}

.ph-qa{margin-bottom:var(--space-5)}
.ph-qa-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
.ph-qa-btn{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px;
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  cursor:pointer;
  transition:all .25s;
  font-family:inherit;
  text-align:left;
  color:var(--white);
  width:100%;
}
.ph-qa-btn:hover{
  border-color:var(--border-strong);
  background:rgba(244,239,228,.045);
  transform:translateY(-2px);
}
.ph-qa-btn:active{transform:scale(.97)}
.ph-qa-ic{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface-inset);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  flex-shrink:0;
}
.ph-qa-info{flex:1;min-width:0}
.ph-qa-label{
  font-size:13px;
  font-weight:700;
  color:var(--white);
}
.ph-qa-desc{
  font-size:11px;
  color:var(--muted);
  margin-top:2px;
}
.ph-qa-arr{
  color:var(--muted);
  display:flex;
  opacity:.5;
  transition:opacity .2s, transform .2s;
}
.ph-qa-btn:hover .ph-qa-arr{
  opacity:1;
  transform:translateX(3px);
}

.ph-profile{margin-bottom:var(--space-5)}
.ph-profile-edit{
  display:flex;
  align-items:center;
  gap:4px;
  background:none;
  border:1px solid var(--border);
  border-radius:8px;
  padding:5px 12px;
  color:var(--muted);
  font-size:11px;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  transition:all .2s;
}
.ph-profile-edit:hover{
  color:var(--white);
  border-color:var(--border-strong);
  background:var(--accent-soft);
}
.ph-profile-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.ph-profile-card{
  background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));
  border:1px solid var(--border-subtle);
  border-radius:var(--radius);
  padding:16px 12px;
  text-align:center;
  transition:all .25s;
}
.ph-profile-card:hover{
  transform:translateY(-2px);
  border-color:var(--border-strong);
}

@media (min-width:1120px){
  #overviewContent .ph-workout,
  #overviewContent .ph-coach,
  #overviewContent .ph-qa{grid-column:span 7}
  #overviewContent .ph-rings-section,
  #overviewContent .ph-timeline,
  #overviewContent .fe-checkin-prompt{grid-column:span 5}
  #overviewContent .ph-profile{grid-column:1 / -1}
}
.ph-pc-ic{
  display:flex;
  justify-content:center;
  margin-bottom:8px;
}
.ph-pc-val{
  font-size:16px;
  font-weight:800;
  color:var(--white);
  margin-bottom:3px;
}
.ph-pc-label{
  font-size:10px;
  color:var(--muted);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.5px;
}

.ph-fab-wrap{
  position:fixed;
  bottom:80px;
  right:20px;
  z-index:200;
}
.ph-fab-btn{
  width:56px;height:56px;
  border-radius:50%;
  background:var(--accent-strong);
  border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:0 4px 20px rgba(208,173,98,.3);
  transition:all .3s;
  position:relative;
  z-index:2;
  color:var(--surface-base);
}
.ph-fab-btn:hover{
  transform:scale(1.08);
  box-shadow:0 6px 28px rgba(208,173,98,.36);
}
.ph-fab-icon{
  display:flex;align-items:center;justify-content:center;
  position:absolute;
  transition:all .3s;
}
.ph-fab-icon-plus{opacity:1;transform:rotate(0deg)}
.ph-fab-icon-x{opacity:0;transform:rotate(-90deg)}
.ph-fab-wrap.open .ph-fab-icon-plus{opacity:0;transform:rotate(90deg)}
.ph-fab-wrap.open .ph-fab-icon-x{opacity:1;transform:rotate(0deg)}

.ph-fab-menu{
  position:absolute;
  bottom:68px;
  right:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  pointer-events:none;
  opacity:0;
}
.ph-fab-wrap.open .ph-fab-menu{
  pointer-events:auto;
  opacity:1;
}
.ph-fab-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  color:var(--white);
  font-size:13px;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  white-space:nowrap;
  transition:all .2s;
  opacity:0;
  transform:translateY(10px) scale(.9);
}
.ph-fab-wrap.open .ph-fab-item{
  opacity:1;
  transform:translateY(0) scale(1);
}
.ph-fab-wrap.open .ph-fab-item:nth-child(1){transition-delay:.05s}
.ph-fab-wrap.open .ph-fab-item:nth-child(2){transition-delay:.1s}
.ph-fab-wrap.open .ph-fab-item:nth-child(3){transition-delay:.15s}
.ph-fab-wrap.open .ph-fab-item:nth-child(4){transition-delay:.2s}
.ph-fab-wrap.open .ph-fab-item:nth-child(5){transition-delay:.25s}
.ph-fab-item:hover{
  background:rgba(255,255,255,.08);
  border-color:var(--accent-strong);
  transform:translateX(-4px) !important;
}

.ph-bottom-nav{
  position:fixed;
  bottom:0;left:0;right:0;
  height:64px;
  background:rgba(10,15,46,.95);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--border);
  display:flex;
  justify-content:space-around;
  align-items:center;
  z-index:150;
  padding:0 8px;
}
.ph-bn-btn{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  padding:6px 12px;
  background:none;
  border:none;
  color:var(--muted);
  font-family:inherit;
  cursor:pointer;
  transition:all .2s;
  border-radius:10px;
  min-width:56px;
}
.ph-bn-btn:hover{color:var(--white)}
.ph-bn-btn.active{color:var(--accent-strong)}
.ph-bn-ic{display:flex;align-items:center;justify-content:center}
.ph-bn-label{
  font-size:10px;
  font-weight:600;
  letter-spacing:.2px;
}

.fe-modal .modal{max-width:600px;max-height:90vh;overflow-y:auto}
.fe-log-modal{width:100%}
.fe-log-heading{margin-bottom:16px}
.fe-log-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;color:var(--text-primary)}
.fe-log-date{font-size:12px;color:var(--muted);margin-top:4px}
.fe-log-progress{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.fe-log-progress-bar{flex:1;height:6px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden}
.fe-log-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-strong));border-radius:3px;transition:width .5s ease}
.fe-log-progress-pct{font-size:12px;font-weight:800;color:var(--accent-strong);flex-shrink:0}

.fe-ex-log-card{
  background:var(--surface-card);
  border:1px solid var(--border-subtle);
  border-radius:14px;
  padding:16px;
  margin-bottom:12px;
  transition:border-color .3s;
}
.fe-ex-log-card:hover{border-color:var(--border-strong)}
.fe-ex-log-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.fe-ex-log-num{
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);
  border-radius:8px;
  font-size:14px;font-weight:800;color:var(--accent-strong);flex-shrink:0;
}
.fe-ex-log-info{flex:1;min-width:0}
.fe-ex-log-name{font-size:14px;font-weight:700;color:var(--text-primary)}
.fe-ex-log-muscle{font-size:11px;color:var(--muted);margin-top:1px}
.fe-ex-log-status{
  font-size:10px;font-weight:700;color:var(--muted);
  padding:3px 10px;border-radius:12px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
  letter-spacing:.3px;
}
.fe-status-done{color:var(--status-success);background:rgba(116,168,121,.12);border-color:rgba(116,168,121,.24)}
.fe-status-partial{color:var(--status-warning);background:rgba(199,154,74,.12);border-color:rgba(199,154,74,.24)}

.fe-ex-prev{
  background:rgba(255,255,255,.03);
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:10px;
}
.fe-ex-prev-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.fe-ex-prev-val{font-size:12px;color:var(--status-info);font-weight:600}
.fe-ex-prev-notes{font-size:11px;color:var(--muted);margin-top:3px;font-style:italic}

.fe-ex-suggest{
  display:flex;align-items:center;gap:6px;
  font-size:11px;color:var(--accent-strong);font-weight:600;
  margin-bottom:10px;
}

.fe-ex-sets{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.fe-set-row{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.04);
  border-radius:10px;
  transition:all .2s;
}
.fe-set-row.completed{
  background:rgba(0,224,101,.06);
  border-color:rgba(0,224,101,.15);
}
.fe-set-num{font-size:11px;font-weight:700;color:var(--muted);width:40px;flex-shrink:0}
.fe-set-inputs{display:flex;gap:8px;flex:1}
.fe-set-weight,.fe-set-reps{
  width:70px;
  padding:6px 8px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  color:var(--text-primary);
  font-size:13px;font-weight:600;font-family:inherit;
  text-align:center;
}
.fe-set-weight:focus,.fe-set-reps:focus{border-color:var(--focus-color);outline:none}
.fe-set-check{
  width:32px;height:32px;
  border-radius:50%;
  border:2px solid var(--border);
  background:none;
  color:var(--muted);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:all .2s;
  flex-shrink:0;
}
.fe-set-check.checked,.fe-set-row.completed .fe-set-check{
   background:rgba(116,168,121,.15);
   border-color:var(--status-success);
   color:var(--status-success);
}

.fe-ex-rpe{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.fe-rpe-label{font-size:11px;font-weight:700;color:var(--muted);width:30px}
.fe-rpe-select{
  flex:1;padding:6px 8px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
   color:var(--text-primary);font-size:12px;font-family:inherit;
}
.fe-ex-notes-row{margin-bottom:4px}
.fe-ex-notes-input{
  width:100%;padding:6px 10px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
   color:var(--text-primary);font-size:12px;font-family:inherit;
  box-sizing:border-box;
}
.fe-ex-notes-input:focus{border-color:var(--focus-color);outline:none}

.fe-finish-btn{
  width:100%;padding:16px;
  background:var(--accent-strong);color:var(--surface-base);
  border:none;border-radius:14px;
  font-size:15px;font-weight:800;font-family:inherit;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:10px;
  transition:all .2s;
  margin-top:16px;
}
.fe-finish-btn:hover{opacity:.94;transform:translateY(-2px);box-shadow:0 8px 24px rgba(208,173,98,.22)}

.fe-complete{text-align:center;padding:30px 0}
.fe-complete-icon{
  width:80px;height:80px;margin:0 auto 20px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(116,168,121,.12);border-radius:50%;color:var(--status-success);
  animation:phSlideUp .6s ease;
}
.fe-complete-title{font-size:22px;font-weight:800;color:var(--text-primary);margin-bottom:8px}
.fe-complete-motive{font-size:13px;color:var(--muted);font-style:italic;margin-bottom:24px}
.fe-complete-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px;
}
.fe-complete-stat{
  background:var(--surface-card);border:1px solid var(--border-subtle);
  border-radius:12px;padding:14px 8px;
}
.fe-cs-val{font-size:18px;font-weight:800;color:var(--text-primary)}
.fe-cs-lbl{font-size:10px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.3px}
.fe-complete-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;
  background:rgba(244,239,228,.06);color:var(--text-primary);
  border:1px solid var(--border-subtle);border-radius:12px;
  font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;
  transition:all .2s;
}
.fe-complete-btn:hover{background:rgba(244,239,228,.1);border-color:var(--border-strong)}

.fe-checkin-prompt{margin-bottom:20px}
.fe-ci-prompt-inner{
  display:flex;align-items:center;gap:14px;
  padding:16px 18px;
  background:linear-gradient(135deg,rgba(167,139,250,.06),rgba(143,165,184,.06));
  border:1px solid rgba(167,139,250,.2);
  border-radius:14px;
  cursor:pointer;
  transition:all .2s;
}
.fe-ci-prompt-inner:hover{border-color:rgba(167,139,250,.4);transform:translateY(-1px)}
.fe-ci-prompt-icon{color:#a78bfa;flex-shrink:0}
.fe-ci-prompt-text{flex:1}
.fe-ci-prompt-title{font-size:13px;font-weight:700;color:var(--white)}
.fe-ci-prompt-desc{font-size:11px;color:var(--muted);margin-top:2px}
.fe-ci-prompt-btn{
  width:36px;height:36px;border-radius:50%;
  background:rgba(167,139,250,.12);border:none;
  color:#a78bfa;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;flex-shrink:0;
}
.fe-ci-prompt-btn:hover{background:rgba(167,139,250,.2);transform:scale(1.1)}

.fe-checkin-modal{max-width:480px}
.fe-ci-intro{font-size:12px;color:var(--muted);margin-bottom:16px}
.fe-range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:2px}
input[type="range"]{
  -webkit-appearance:none;width:100%;height:6px;
  background:rgba(255,255,255,.08);border-radius:3px;outline:none;
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;
  border-radius:50%;background:var(--accent-strong);cursor:pointer;
  border:2px solid var(--surface-base);
}

.fe-analytics-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:18px;
  margin-top:14px;
}
.fe-an-title{
  display:flex;align-items:center;gap:8px;
  font-size:14px;font-weight:700;color:var(--white);
  margin-bottom:14px;
}
.fe-vol-chart{
  display:flex;align-items:flex-end;gap:6px;
  height:100px;padding:0 4px;
}
.fe-vol-bar-wrap{
  flex:1;display:flex;flex-direction:column;align-items:center;
  height:100%;justify-content:flex-end;
}
.fe-vol-bar{
  width:100%;max-width:28px;
  background:linear-gradient(180deg,var(--accent-strong),var(--status-info));
  border-radius:4px 4px 0 0;
  transition:height .6s ease;
  min-height:4px;
}
.fe-vol-val{font-size:9px;color:var(--muted);margin-top:4px}
.fe-vol-label{font-size:9px;color:var(--muted)}

.fe-freq-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.fe-freq-stat{
  text-align:center;
  padding:12px 8px;
  background:rgba(255,255,255,.03);
  border-radius:10px;
}
.fe-freq-val{font-size:20px;font-weight:800;color:var(--white)}
.fe-freq-lbl{font-size:10px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.3px}

.fe-wt-grid{display:flex;flex-direction:column;gap:6px}
.fe-wt-item{
  display:flex;justify-content:space-between;
  padding:8px 12px;
  background:rgba(255,255,255,.03);
  border-radius:8px;
}
.fe-wt-date{font-size:12px;color:var(--muted)}
.fe-wt-val{font-size:13px;font-weight:700;color:var(--white)}

.fe-pr-grid{display:flex;flex-direction:column;gap:8px}
.fe-pr-card{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.05);
  border-radius:10px;
}
.fe-pr-ic{flex-shrink:0}
.fe-pr-info{flex:1;min-width:0}
.fe-pr-type{font-size:12px;color:var(--muted)}
.fe-pr-val{font-size:15px;font-weight:800;color:var(--white)}
.fe-pr-date{font-size:10px;color:var(--muted)}

.fe-overload-grid{display:flex;flex-direction:column;gap:8px}
.fe-overload-card{
  padding:12px 14px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.05);
  border-radius:10px;
}
.fe-ol-name{font-size:13px;font-weight:700;color:var(--white);margin-bottom:8px}
.fe-ol-compare{display:flex;align-items:center;gap:12px;justify-content:center}
.fe-ol-prev,.fe-ol-cur{text-align:center}
.fe-ol-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}
.fe-ol-val{font-size:15px;font-weight:800;color:var(--white)}
.fe-ol-arrow{
  font-size:13px;font-weight:800;
  padding:4px 10px;border-radius:8px;
}
.fe-ol-arrow.positive{color:#00e065;background:rgba(0,224,101,.1)}
.fe-ol-arrow.negative{color:var(--red);background:rgba(255,68,68,.1)}
.fe-ol-arrow.neutral{color:var(--muted);background:rgba(255,255,255,.04)}

.fe-ci-grid{display:flex;flex-direction:column;gap:8px}
.fe-ci-row{display:flex;align-items:center;gap:10px}
.fe-ci-label{font-size:12px;color:var(--muted);width:80px;flex-shrink:0}
.fe-ci-bar-wrap{flex:1;height:6px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden}
.fe-ci-bar,.gcmd-progress-fill,.ri-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}
.fe-ci-val{font-size:12px;font-weight:700;color:var(--white);width:40px;text-align:right;flex-shrink:0}

.fe-progress-tl{display:flex;flex-direction:column;gap:2px}
.fe-ptl-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.04);
}
.fe-ptl-item:last-child{border-bottom:none}
.fe-ptl-dot{
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);
  border-radius:8px;color:var(--accent-strong);flex-shrink:0;
}
.fe-ptl-content{flex:1;min-width:0}
.fe-ptl-title{font-size:13px;font-weight:700;color:var(--white)}
.fe-ptl-detail{font-size:11px;color:var(--muted);margin-top:2px}
.fe-ptl-date{font-size:10px;color:rgba(255,255,255,.3);margin-top:3px}

@media (max-width:600px){
  .app-header{padding:var(--space-4) var(--space-4) var(--space-2)}
  .header-title{font-size:20px}
  .header-profile{font-size:11px;gap:var(--space-1) var(--space-2)}
  .tab-nav{
    top:80px;
    margin:var(--space-2) auto 0;
    width:calc(100% - var(--space-6));
    border-radius:var(--radius);
    padding:6px;
  }
  .tab-content{padding:var(--space-6) var(--space-4) 88px}

  .ph-hero{padding:20px 16px;border-radius:14px}
  .ph-hero-greet{font-size:24px}
  .ph-hero-mission-name{font-size:15px}
  .ph-hero-cta{padding:14px 20px;font-size:14px;border-radius:12px}

  .ph-workout{padding:16px;border-radius:14px}
  .ph-wk-stats{gap:8px}
  .ph-wk-stat-val{font-size:14px}
  .ph-wk-icon{width:38px;height:38px}

  .ph-rings-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .ph-ring-card{padding:12px 6px 10px;border-radius:12px}
  .ph-ring-val{font-size:12px}

  .ph-coach{padding:16px;border-radius:14px}

  .ph-tl-grid{gap:3px}
  .ph-tl-dot{width:24px;height:24px}
  .ph-tl-activity{display:none}

  .ph-qa-grid{grid-template-columns:1fr;gap:8px}
  .ph-qa-btn{padding:14px;border-radius:12px}

  .ph-profile-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .ph-profile-card{padding:12px 8px;border-radius:12px}
  .ph-pc-val{font-size:14px}

  .ph-fab-wrap{bottom:76px;right:14px}
  .ph-fab-btn{width:50px;height:50px}

  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .day-card{flex:0 0 120px;padding:10px}
  .coach-note p{font-size:12px}
  .form-grid{grid-template-columns:1fr !important}
}

@media (max-width:380px){
  .ph-hero-greet{font-size:22px}
  .ph-rings-grid{grid-template-columns:repeat(3,1fr)}
  .ph-profile-grid{grid-template-columns:repeat(2,1fr)}
  .header-profile{display:none}
  .tab-nav{top:70px;width:calc(100% - var(--space-4))}
  .tab-btn{padding:10px 12px;font-size:11px;min-height:42px}
  .ph-tl-dot{width:22px;height:22px}
  .ph-tl-day{font-size:9px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}

:focus-visible{
  outline:2px solid var(--focus-color);
  outline-offset:2px;
  box-shadow:var(--focus-ring);
}
.modal-close{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.ex-expand-btn{min-width:44px}.ex-expand-btn,.day-btn,.quick-btn{min-height:44px}


#onboardingOverlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(10,15,46,0.97);
  display:flex;align-items:center;justify-content:center;
  padding:16px;overflow-y:auto;
}

.ob-panel{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  width:100%;max-width:480px;
  padding:24px 20px;
  position:relative;
}

.ob-progress{
  height:4px;background:var(--border);border-radius:2px;
  margin-bottom:12px;overflow:hidden;
}
.ob-progress-fill{
  height:100%;background:var(--accent-strong);border-radius:2px;
  transition:width 0.35s ease;
}

.ob-dots{
  display:flex;gap:6px;justify-content:center;margin-bottom:20px;
}
.ob-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--border);transition:background 0.3s;
}
.ob-dot-active{background:var(--accent-strong);}
.ob-dot-done{background:var(--status-info);}

.ob-step{animation:obFadeIn 0.25s ease}
@keyframes obFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.ob-welcome{text-align:center;padding:8px 0}
.ob-logo{font-size:48px;line-height:1;margin-bottom:8px}
.ob-brand{
  font-size:10px;font-weight:800;letter-spacing:3px;
  color:var(--muted);text-transform:uppercase;margin-bottom:16px;
}
.ob-title{
  font-size:22px;font-weight:800;color:var(--white);
  line-height:1.25;margin-bottom:12px;
}
.ob-subtitle{
  font-size:14px;color:var(--muted);line-height:1.6;
  margin-bottom:16px;
}
.ob-time-est{
  font-size:12px;color:var(--status-info);font-weight:600;
  margin-bottom:24px;
}

.ob-step-title{
  font-size:18px;font-weight:800;color:var(--white);
  margin-bottom:6px;line-height:1.3;
}
.ob-step-sub{
  font-size:13px;color:var(--muted);margin-bottom:18px;line-height:1.5;
}

.ob-btn-primary{
  display:block;width:100%;
  background:var(--accent-strong);color:var(--surface-base);
  border:none;border-radius:var(--radius-sm);
  padding:14px;font-size:15px;font-weight:800;
  cursor:pointer;text-align:center;
  transition:opacity 0.2s,transform 0.1s;
  min-height:44px;
}
.ob-btn-primary:hover{opacity:0.9;}
.ob-btn-primary:active{transform:scale(0.98);}

.ob-btn-back{
  background:transparent;border:1px solid var(--border);
  color:var(--muted);border-radius:var(--radius-sm);
  padding:10px 16px;font-size:13px;font-weight:600;
  cursor:pointer;transition:border-color 0.2s,color 0.2s;
  min-height:44px;
}
.ob-btn-back:hover{border-color:var(--white);color:var(--white);}

.ob-btn-next{
  background:var(--accent-strong);color:var(--surface-base);
  border:none;border-radius:var(--radius-sm);
  padding:10px 24px;font-size:14px;font-weight:800;
  cursor:pointer;transition:opacity 0.2s;
  min-height:44px;
}
.ob-btn-next:hover{opacity:0.9;}

.ob-nav{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:20px;gap:12px;
}

.ob-goal-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px;
  margin-bottom:4px;
}
.ob-goal-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 10px;
  text-align:left;cursor:pointer;transition:border-color 0.2s,background 0.2s;
  min-height:44px;
}
.ob-goal-card:hover,.ob-level-card:hover,.ob-equip-card:hover,.ob-coach-card:hover,.profile-checkbox:hover{border-color:var(--focus-color);}
.ob-btn-primary:focus-visible,.ob-btn-back:focus-visible,.ob-btn-next:focus-visible,.ob-goal-card:focus-visible,.ob-level-card:focus-visible,.ob-equip-card:focus-visible,.ob-coach-card:focus-visible,.ob-btn-back-bp:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px;}
.ob-goal-card.ob-card-selected,.ob-level-card.ob-card-selected,.ob-equip-card.ob-card-selected,.ob-coach-card.ob-card-selected{border-color:var(--accent-strong);background:var(--accent-soft);}

.ob-level-grid{
  display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:4px;
}
.ob-level-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:14px 16px;
  text-align:left;cursor:pointer;transition:border-color 0.2s,background 0.2s;
  display:flex;align-items:flex-start;gap:12px;min-height:44px;
}

.ob-equip-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px;
  margin-bottom:4px;
}
.ob-equip-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 10px;
  text-align:left;cursor:pointer;transition:border-color 0.2s,background 0.2s;
  min-height:44px;
}

.ob-coach-grid{
  display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:4px;
}
.ob-coach-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 16px;
  text-align:left;cursor:pointer;transition:border-color 0.2s,background 0.2s;
  display:flex;align-items:flex-start;gap:12px;min-height:44px;
}

.ob-card-icon{font-size:18px;line-height:1;margin-bottom:4px;flex-shrink:0;}
.ob-card-label{font-size:13px;font-weight:700;color:var(--white);margin-bottom:2px;}
.ob-card-desc{font-size:11px;color:var(--muted);line-height:1.4;}
.ob-card-outcome{
  font-size:10px;color:var(--accent-strong);font-weight:600;
  margin-top:4px;text-transform:uppercase;letter-spacing:0.5px;
}

.ob-avail-form{display:flex;flex-direction:column;gap:14px;margin-bottom:4px;}
.ob-field{display:flex;flex-direction:column;gap:5px;}
.ob-label{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;}
.ob-select,.ob-input{
  background:var(--card);color:var(--white);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:10px 12px;font-size:14px;font-family:inherit;
  min-height:44px;width:100%;
}
.ob-select:focus,.ob-input:focus{
  outline:2px solid var(--focus-color);outline-offset:2px;border-color:var(--focus-color);
}

.ob-blueprint{padding:4px 0;}
.ob-bp-header{text-align:center;margin-bottom:20px;}
.ob-bp-logo{font-size:36px;line-height:1;margin-bottom:4px;}
.ob-bp-brand{
  font-size:9px;font-weight:800;letter-spacing:3px;
  color:var(--muted);text-transform:uppercase;margin-bottom:6px;
}
.ob-bp-title{font-size:18px;font-weight:800;color:var(--accent-strong);}

.ob-bp-score-wrap{
  display:flex;align-items:center;gap:16px;
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:14px;margin-bottom:16px;
}
.ob-bp-score-ring{flex-shrink:0;}
.ob-bp-score-title{font-size:13px;font-weight:700;color:var(--white);margin-bottom:4px;}
.ob-bp-score-sub{font-size:11px;color:var(--muted);line-height:1.4;}

.ob-bp-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;
}
.ob-bp-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:10px 12px;
}
.ob-bp-card-icon{font-size:16px;margin-bottom:4px;}
.ob-bp-card-title{
  font-size:10px;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:0.5px;margin-bottom:5px;
}
.ob-bp-card-body{font-size:12px;color:var(--white);line-height:1.5;}
.ob-bp-outcome{font-size:10px;color:var(--accent-strong);}

.ob-bp-section-title{
  font-size:10px;font-weight:800;color:var(--muted);
  text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;
}
.ob-bp-priorities{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px;margin-bottom:10px;
}
.ob-bp-priority{
  display:flex;align-items:flex-start;gap:10px;
  font-size:13px;color:var(--white);line-height:1.4;
  padding:6px 0;border-bottom:1px solid var(--border);
}
.ob-bp-priority:last-child{border-bottom:none;padding-bottom:0;}
.ob-bp-pri-num{
  width:20px;height:20px;flex-shrink:0;
  background:var(--accent-strong);color:var(--surface-base);
  border-radius:50%;font-size:11px;font-weight:800;
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:1px;
}

.ob-bp-start{
  background:var(--card);border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);padding:12px;margin-bottom:16px;
}
.ob-bp-start-val{font-size:13px;color:var(--accent-strong);font-weight:700;}

.ob-btn-launch{margin-bottom:10px;}
.ob-btn-back-bp{
  width:100%;text-align:center;
  background:transparent;border:1px solid var(--border);
  color:var(--muted);border-radius:var(--radius-sm);
  padding:10px;font-size:13px;cursor:pointer;
  min-height:44px;
}
.ob-btn-back-bp:hover{border-color:var(--white);color:var(--white);}

.profile-checkbox-group{
  display:grid;grid-template-columns:repeat(2,1fr);gap:6px;
}
.profile-checkbox{
  display:flex;align-items:center;gap:8px;
  font-size:13px;color:var(--white);cursor:pointer;
  padding:8px 10px;border:1px solid var(--border);
  border-radius:var(--radius-sm);background:var(--card);
  transition:border-color 0.2s;min-height:44px;
}
.profile-checkbox input{
  width:16px;height:16px;accent-color:var(--accent-strong);
  cursor:pointer;flex-shrink:0;
}

@media (max-width:420px){
  .ob-goal-grid,.ob-equip-grid{grid-template-columns:1fr;}
  .ob-bp-grid{grid-template-columns:1fr;}
  .profile-checkbox-group{grid-template-columns:1fr;}
}

.phase-card-active{border-color:var(--accent-strong);box-shadow:0 0 0 1px var(--accent-strong);}
.phase-card-past{opacity:0.7;}
.badge-current{
  font-size:9px;font-weight:800;letter-spacing:.06em;
  background:var(--accent-soft);color:var(--accent-strong);
  padding:3px 8px;border-radius:10px;
}
.run-week-block{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px;margin-bottom:10px;
}
.run-week-block.run-week-current{border-color:var(--accent-strong);box-shadow:0 0 0 1px rgba(208,173,98,.14);}
.run-week-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:10px;flex-wrap:wrap;gap:6px;
}
.run-week-title{font-size:13px;font-weight:700;color:var(--white);}
.run-week-meta{font-size:11px;color:var(--muted);}


.exec-hero{
  background:linear-gradient(135deg,var(--surface-depth),var(--surface-card));
  border:1px solid var(--border-strong);
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:12px;
  position:relative;
  overflow:hidden;
}
.exec-hero::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(208,173,98,.08),transparent 60%);
  pointer-events:none;
}
.exec-hero-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.exec-hero-score-wrap{display:flex;align-items:flex-end;gap:12px}
.exec-hero-score{font-size:52px;font-weight:900;line-height:1;color:var(--accent-strong);letter-spacing:-2px}
.exec-hero-score-label{font-size:11px;color:var(--muted);margin-bottom:6px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.exec-hero-grade{
  font-size:28px;font-weight:900;
  border:2px solid currentColor;
  border-radius:8px;
  padding:4px 10px;
  line-height:1;
  margin-bottom:6px;
}
.exec-hero-kpis{display:flex;gap:8px;flex-wrap:wrap}
.exec-hero-kpi{
  background:rgba(244,239,228,.04);
  border:1px solid var(--border-subtle);
  border-radius:8px;
  padding:8px 12px;
  text-align:center;
  min-width:70px;
  flex:1;
}
.exec-hero-kpi-val{font-size:16px;font-weight:800;color:var(--white)}
.exec-hero-kpi-lbl{font-size:9px;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.4px}
.exec-hero-summary{
  font-size:13px;color:var(--text-secondary);line-height:1.6;
  background:rgba(244,239,228,.04);
  border-radius:8px;padding:10px 12px;
  border-left:3px solid var(--accent-strong);
  margin-top:12px;
}
.exec-hero-priority{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--accent-soft);border:1px solid var(--border-strong);
  border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700;
  color:var(--accent-strong);margin-top:8px;
}

.radar-wrap{display:flex;justify-content:center;align-items:center;flex-direction:column;gap:12px}
.radar-legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.radar-legend-item{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}
.radar-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

.exec-timeline{list-style:none;padding:0;margin:0;position:relative}
.exec-timeline::before{
  content:'';position:absolute;left:18px;top:0;bottom:0;
  width:1px;background:linear-gradient(180deg,transparent,var(--border-strong),transparent);
}
.etl-item{
  display:flex;gap:var(--space-3);margin-bottom:var(--space-4);position:relative;
  animation:phSlideUp var(--motion-medium) var(--ease-standard) both;
}
.etl-icon-wrap{
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:15px;z-index:1;
  border:1px solid var(--border-strong);
  background:var(--surface-card);
  box-shadow:0 0 0 4px var(--surface-base),var(--elevation-1);
}
.etl-body{flex:1;min-width:0}
.etl-title{font-size:13px;font-weight:800;color:var(--text-primary)}
.etl-detail{font-size:12px;color:var(--text-muted);margin-top:3px;line-height:1.5}
.etl-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}
.etl-impact{
  font-size:9px;font-weight:700;padding:2px 7px;
  border-radius:10px;text-transform:uppercase;letter-spacing:.4px;
}
.etl-impact.high{background:rgba(116,168,121,.14);color:var(--status-success)}
.etl-impact.medium{background:rgba(199,154,74,.14);color:var(--status-warning)}
.etl-impact.low{background:rgba(143,165,184,.12);color:var(--status-info)}
.etl-cat{font-size:9px;color:var(--text-muted);background:rgba(244,239,228,.06);padding:2px 7px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill)}

.exec-ai-section{
  border:1px solid var(--border-subtle);
  border-radius:8px;margin-bottom:8px;overflow:hidden;
}
.exec-ai-section-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 12px;cursor:pointer;
  background:rgba(244,239,228,.035);
  font-size:12px;font-weight:700;color:var(--white);
  user-select:none;
}
.exec-ai-section-header:hover{background:rgba(244,239,228,.06)}
.exec-ai-section-body{
  padding:0 12px;max-height:0;overflow:hidden;
  transition:max-height .35s ease,padding .35s ease;
  font-size:12px;color:var(--text-secondary);line-height:1.7;
}
.exec-ai-section-body.open{max-height:400px;padding:10px 12px}
.exec-ai-chevron{transition:transform .3s;font-size:10px}
.exec-ai-chevron.open{transform:rotate(180deg)}

.bottleneck-card{
  background:rgba(255,68,68,.06);border:1px solid rgba(255,68,68,.2);
  border-radius:10px;padding:12px;margin-bottom:8px;
}
.bottleneck-card.amber{background:rgba(255,140,0,.06);border-color:rgba(255,140,0,.2)}
.bottleneck-card.green{background:rgba(0,224,101,.05);border-color:rgba(0,224,101,.15)}
.bn-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.bn-title{font-size:12px;font-weight:700;color:var(--white)}
.bn-severity-badge{font-size:9px;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase}
.bn-severity-badge.critical{background:rgba(255,68,68,.3);color:#ff6666}
.bn-severity-badge.moderate{background:rgba(255,140,0,.25);color:#ff8c00}
.bn-severity-badge.low{background:rgba(0,224,101,.2);color:#00e065}
.bn-severity-bar{height:4px;background:rgba(255,255,255,.08);border-radius:2px;margin-bottom:8px;overflow:hidden}
.bn-severity-fill{height:100%;border-radius:2px;transition:width .6s ease}
.bn-desc{font-size:11px;color:var(--text-muted);margin-bottom:6px}
.bn-rec{font-size:11px;color:#c0d0e8;font-style:italic}
.bn-gain{font-size:11px;font-weight:700;color:#00e065;margin-top:4px}

.opportunity-rings{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:12px}
.opp-ring-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}
.opp-ring-label{font-size:10px;color:var(--muted);font-weight:600;text-align:center}
.opp-ring-val{font-size:18px;font-weight:800;color:var(--accent-strong);text-align:center}

.goal-cmd-card{
  background:rgba(244,239,228,.035);border:1px solid var(--border-subtle);
  border-radius:10px;padding:12px;margin-bottom:8px;
}
.gcmd-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.gcmd-title{font-size:13px;font-weight:700;color:var(--white)}
.gcmd-risk{font-size:9px;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase}
.gcmd-risk.green{background:rgba(116,168,121,.18);color:var(--status-success)}
.gcmd-risk.amber{background:rgba(199,154,74,.15);color:var(--status-warning)}
.gcmd-risk.red{background:rgba(198,101,93,.18);color:var(--status-danger)}
.gcmd-progress-bar{height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden;margin-bottom:8px}
.gcmd-meta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.gcmd-meta-item{font-size:10px;color:var(--muted)}
.gcmd-meta-item strong{color:var(--white);font-size:11px}
.gcmd-action{
  font-size:11px;color:var(--accent-strong);
  background:var(--accent-soft);border:1px solid var(--border-strong);
  border-radius:6px;padding:6px 10px;
}

.forecast-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.forecast-card{
  background:rgba(244,239,228,.035);border:1px solid var(--border-subtle);
  border-radius:10px;padding:10px 12px;
}
.fc-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.fc-val{font-size:16px;font-weight:800;color:var(--white)}
.fc-sub{font-size:10px;color:var(--muted);margin-top:2px}
.forecast-confidence{
  margin-top:10px;display:flex;align-items:center;gap:8px;
  font-size:11px;color:var(--muted);
}
.forecast-conf-bar{flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.forecast-conf-fill{height:100%;background:var(--accent-strong);border-radius:2px;transition:width .6s}

.heatmap-wrap{margin-bottom:16px}
.heatmap-title{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.heatmap-toggle{display:flex;gap:6px;margin-bottom:10px}
.hm-toggle-btn{
  font-size:10px;padding:3px 10px;border-radius:10px;
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  color:var(--muted);cursor:pointer;font-family:inherit;font-weight:600;
}
.hm-toggle-btn.active{background:var(--accent-soft);border-color:var(--border-strong);color:var(--accent-strong)}
.hm-grid{display:flex;flex-wrap:wrap;gap:3px}
.hm-cell{
  width:14px;height:14px;border-radius:3px;
  background:rgba(255,255,255,.05);
  transition:background .2s;
}
.hm-cell.hit{background:var(--status-success)}
.hm-cell.partial{background:var(--status-warning)}
.hm-cell.miss{background:rgba(198,101,93,.4)}
.hm-cell.recovery-high{background:var(--status-success)}
.hm-cell.recovery-mid{background:var(--status-warning)}
.hm-cell.recovery-low{background:rgba(198,101,93,.5)}
.hm-day-labels{display:flex;gap:3px;margin-bottom:3px}
.hm-day-label{width:14px;text-align:center;font-size:7px;color:var(--muted)}

.pb-card{
  background:rgba(244,239,228,.035);border:1px solid var(--border-subtle);
  border-radius:10px;padding:12px;margin-bottom:8px;
}
.pb-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pb-name{font-size:12px;font-weight:700;color:var(--white)}
.pb-badge{font-size:9px;padding:2px 7px;border-radius:10px;font-weight:700;text-transform:uppercase}
.pb-badge.improving{background:rgba(116,168,121,.18);color:var(--status-success)}
.pb-badge.plateau{background:rgba(255,140,0,.2);color:#ff8c00}
.pb-badge.new{background:rgba(143,165,184,.13);color:var(--status-info)}
.pb-stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.pb-stat{font-size:10px;color:var(--muted)}
.pb-stat strong{color:var(--white);font-size:12px;display:block}
.pb-sparkline-wrap{height:32px;overflow:hidden}

.recovery-intel-score{
  display:flex;align-items:center;gap:16px;margin-bottom:14px;
  background:rgba(244,239,228,.035);border:1px solid var(--border-subtle);border-radius:10px;padding:12px;
}
.ri-score-circle{
  width:60px;height:60px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:3px solid var(--accent-strong);flex-shrink:0;
}
.ri-score-num{font-size:22px;font-weight:900;color:var(--accent-strong);line-height:1}
.ri-score-lbl{font-size:8px;color:var(--muted);text-transform:uppercase}
.ri-summary{font-size:12px;color:var(--text-secondary);line-height:1.6}
.recovery-intel-bars{display:flex;flex-direction:column;gap:8px}
.ri-bar-row{display:flex;align-items:center;gap:10px}
.ri-bar-label{font-size:11px;color:var(--muted);width:80px;flex-shrink:0}
.ri-bar-track{flex:1;height:6px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.ri-bar-val{font-size:11px;font-weight:700;color:var(--white);width:28px;text-align:right}
.ri-trend{font-size:11px;margin-left:4px}

.action-tabs{display:flex;gap:6px;margin-bottom:12px}
.action-tab-btn{
  font-size:11px;padding:5px 12px;border-radius:16px;
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  color:var(--muted);cursor:pointer;font-family:inherit;font-weight:600;
}
.action-tab-btn.active{background:var(--accent-soft);border-color:var(--border-strong);color:var(--accent-strong)}
.action-panel{display:none}
.action-panel.active{display:block}
.action-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 0;border-bottom:1px solid rgba(30,45,90,.5);
}
.action-item:last-child{border-bottom:none}
.action-checkbox{
  width:18px;height:18px;border-radius:4px;
  border:2px solid rgba(143,165,184,.4);
  background:transparent;cursor:pointer;
  flex-shrink:0;margin-top:1px;appearance:none;
  -webkit-appearance:none;transition:all .2s;
}
.action-checkbox:checked{
  background:var(--status-info);border-color:var(--status-info);
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 6l3 3 5-5' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-size:80%;background-repeat:no-repeat;background-position:center;
}
.action-body{flex:1;min-width:0}
.action-title{font-size:12px;font-weight:700;color:var(--white)}
.action-meta{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap;align-items:center}
.action-priority{
  font-size:9px;font-weight:700;padding:2px 7px;
  border-radius:10px;text-transform:uppercase;
}
.action-priority.high{background:rgba(198,101,93,.18);color:var(--status-danger)}
.action-priority.medium{background:rgba(255,140,0,.15);color:#ff8c00}
.action-priority.low{background:rgba(116,168,121,.15);color:var(--status-success)}
.action-duration{font-size:10px;color:var(--muted)}
.action-benefit{font-size:10px;color:var(--accent-strong);font-style:italic}


.explain-details{margin-top:10px;border-top:1px solid rgba(255,255,255,0.06);padding-top:8px}
.explain-summary{font-size:10px;color:var(--muted);cursor:pointer;list-style:none;letter-spacing:.5px}
.explain-summary::-webkit-details-marker{display:none}
.explain-body{font-size:11px;color:var(--text-muted);line-height:1.65;margin-top:6px;padding:8px;background:rgba(255,255,255,0.03);border-radius:6px}

.decision-card{padding:4px 0}
.decision-main{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
.decision-icon{font-size:28px;flex-shrink:0;line-height:1}
.decision-body{flex:1;min-width:0}
.decision-label{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:2px}
.decision-verdict{font-size:22px;font-weight:900;letter-spacing:-0.5px;line-height:1.1}
.decision-reason{font-size:12px;color:var(--text-muted);margin-top:4px;line-height:1.5}
.decision-conf{text-align:right;flex-shrink:0}
.decision-conf-num{font-size:26px;font-weight:900;line-height:1}
.decision-conf-lbl{font-size:9px;color:var(--muted);text-align:center}
.decision-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.dpill{font-size:10px;padding:3px 10px;border-radius:12px;background:rgba(255,255,255,0.07);color:var(--text-muted);font-weight:600}
.dpill-risk-low{background:rgba(116,168,121,.15);color:var(--status-success)}
.dpill-risk-moderate{background:rgba(255,140,0,.15);color:#ff8c00}
.dpill-risk-high{background:rgba(255,68,68,.2);color:#ff4444}
.decision-rec{font-size:12px;color:var(--white);line-height:1.6;padding:8px 10px;background:var(--accent-soft);border-left:2px solid var(--accent-strong);border-radius:0 6px 6px 0}

.readiness-card{}
.readiness-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:12px}
.readiness-score-wrap{text-align:center;flex-shrink:0}
.readiness-score-num{font-size:36px;font-weight:900;line-height:1}
.readiness-score-unit{font-size:16px;font-weight:700}
.readiness-status{font-size:11px;font-weight:700;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}
.readiness-summary{flex:1;min-width:0}
.readiness-priority{font-size:13px;font-weight:800;color:var(--white);margin-bottom:4px}
.readiness-conf{font-size:11px;color:var(--muted);margin-bottom:4px}
.readiness-limiter{font-size:11px;color:#ff8c00}
.readiness-goals{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}
@media(max-width:420px){.readiness-goals{grid-template-columns:1fr}}
.rd-goal{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;background:rgba(255,255,255,0.04);border-radius:8px;text-align:center}
.rd-goal-icon{font-size:16px}
.rd-goal-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.rd-goal-val{font-size:11px;font-weight:700;color:var(--white)}
.readiness-comps{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.rd-comp-row{display:flex;align-items:center;gap:8px}
.rd-comp-name{font-size:11px;color:var(--text-muted);width:90px;flex-shrink:0}
.rd-comp-bar{flex:1;height:6px;background:rgba(255,255,255,0.07);border-radius:3px;overflow:hidden}
.rd-comp-fill,.risk-bar-fill,.hb-fill{height:100%;border-radius:3px;transition:width .4s}
.rd-comp-val{font-size:11px;color:var(--white);width:20px;text-align:right;flex-shrink:0}
.readiness-improvement{font-size:11px;color:#c8f000;margin-top:4px;font-style:italic}

.priorities-list{display:flex;flex-direction:column;gap:10px}
.priority-item{display:flex;align-items:flex-start;gap:10px;padding:10px;background:rgba(255,255,255,0.04);border-radius:10px}
.priority-rank{font-size:22px;font-weight:900;flex-shrink:0;line-height:1.1;width:26px;text-align:center}
.priority-body{flex:1;min-width:0}
.priority-title{font-size:13px;font-weight:800;color:var(--white);margin-bottom:3px}
.priority-reason{font-size:11px;color:var(--text-muted);margin-bottom:6px;line-height:1.5}
.priority-meta{display:flex;gap:6px;flex-wrap:wrap}
.priority-tag{font-size:9px;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,0.08);color:var(--text-muted);font-weight:600}
.priority-tag-diff{background:var(--accent-soft);color:var(--accent-strong)}
.priority-roi{text-align:center;flex-shrink:0;min-width:36px}
.priority-roi{font-size:20px;font-weight:900;line-height:1}
.priority-roi-lbl{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}

.risk-index{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:10px;background:rgba(255,255,255,0.04);border-radius:10px}
.risk-index-score{font-size:36px;font-weight:900;flex-shrink:0;line-height:1}
.risk-index-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.risk-index-status{font-size:13px;font-weight:800;margin-top:2px}
.risk-row{margin-bottom:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.05)}
.risk-row:last-of-type{border-bottom:none}
.risk-row-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.risk-name{font-size:12px;font-weight:700;color:var(--white);flex:1}
.risk-urgency{font-size:10px;font-weight:700;text-transform:uppercase}
.risk-score{font-size:14px;font-weight:900;min-width:28px;text-align:right}
.risk-bar-wrap{height:5px;background:rgba(255,255,255,0.07);border-radius:3px;overflow:hidden;margin-bottom:5px}
.risk-explanation{font-size:11px;color:var(--text-muted);margin-bottom:3px}
.risk-action{font-size:11px;color:var(--text-muted);font-style:italic}

.health-breakdown{margin-top:10px}
.health-breakdown-title{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.hb-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.hb-name{font-size:10px;color:var(--text-muted);width:110px;flex-shrink:0}
.hb-bar{flex:1;height:5px;background:rgba(255,255,255,0.07);border-radius:3px;overflow:hidden}
.hb-pct{font-size:10px;color:var(--white);width:28px;text-align:right;flex-shrink:0}

.opp-card{padding:10px;background:rgba(255,255,255,0.04);border-radius:10px;margin-bottom:8px}
.opp-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.opp-card-name{font-size:13px;font-weight:800;color:var(--white)}
.opp-card-pct{font-size:16px;font-weight:900}
.opp-card-meta{display:flex;gap:8px;flex-wrap:wrap}
.opp-tag{font-size:9px;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,0.08);color:var(--text-muted);font-weight:600}
.opp-benefit{font-size:11px;color:var(--text-muted);margin-top:4px;line-height:1.4}


.adaptive-summary-card,.adaptive-recovery-card,.adaptive-running-card,.adaptive-nutrition-card{background:rgba(244,239,228,.04);border:1px solid var(--border-subtle);border-radius:12px;padding:14px}
.adaptive-decision-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.adaptive-decision-badge{font-size:12px;font-weight:800;padding:4px 12px;border-radius:20px;letter-spacing:.5px}
.adaptive-conf{font-size:11px;color:var(--text-subtle)}
.adaptive-reason{font-size:12px;color:var(--text-muted);margin-bottom:8px;line-height:1.4}
.adaptive-adjustments{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:8px}
.adaptive-adj-row{display:flex;justify-content:space-between;background:rgba(244,239,228,.04);border-radius:6px;padding:4px 8px}
.adaptive-adj-lbl{font-size:11px;color:var(--text-subtle)}
.adaptive-adj-val{font-size:11px;font-weight:700}
.adaptive-benefit{font-size:11px;color:#c8f000;margin-bottom:4px}
.adaptive-review,.adaptive-recovery-conf,.adaptive-running-conf,.adaptive-nutrition-conf{font-size:10px;color:var(--text-subtle);margin-bottom:6px}

.adaptive-prog-list{display:flex;flex-direction:column;gap:8px}
.adaptive-prog-item{background:rgba(244,239,228,.04);border:1px solid var(--border-subtle);border-radius:8px;padding:10px}
.adaptive-prog-header,.plateau-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.adaptive-prog-name{font-size:12px;font-weight:700;color:var(--white)}
.adaptive-prog-action{font-size:11px;font-weight:700}
.adaptive-prog-detail{font-size:11px;color:var(--text-muted);margin-bottom:2px}
.adaptive-prog-conf,.etl-date,.cm-hero-trigger{font-size:10px;color:var(--text-subtle)}
.adaptive-prog-general{font-size:11px;color:var(--text-subtle);margin-top:6px;padding:6px;background:rgba(244,239,228,.035);border-radius:6px}

.plateau-none{display:flex;align-items:center;gap:8px;padding:10px;background:rgba(0,224,101,0.06);border-radius:8px}
.plateau-list{display:flex;flex-direction:column;gap:8px}
.plateau-item{background:rgba(244,239,228,.04);border:1px solid var(--border-subtle);border-radius:8px;padding:10px}
.plateau-type{font-size:12px;font-weight:700;color:var(--white)}
.plateau-sev{font-size:11px;font-weight:700}
.plateau-detail{font-size:11px;color:var(--text-muted);margin-bottom:4px}
.plateau-action{font-size:11px;color:#c8f000;font-style:italic}

.adaptive-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}
.adaptive-day-card{background:rgba(244,239,228,.04);border:1px solid var(--border-subtle);border-radius:6px;padding:6px 4px;text-align:center}
.adaptive-day-name{font-size:10px;font-weight:800;margin-bottom:2px}
.adaptive-day-label{font-size:9px;color:var(--text-muted);line-height:1.2}
.adaptive-day-overlay{font-size:9px;font-weight:700;margin-top:2px}
.adaptive-week-summary{font-size:11px;color:var(--text-subtle);padding:6px;background:rgba(244,239,228,.035);border-radius:6px}

.adaptive-recovery-level{font-size:16px;font-weight:900;margin-bottom:4px}
.adaptive-recovery-protocol{font-size:12px;color:var(--white);margin-bottom:8px;font-weight:600}
.adaptive-recovery-actions{margin:0 0 8px 16px;padding:0}
.adaptive-recovery-actions li{font-size:11px;color:var(--text-muted);margin-bottom:3px;line-height:1.4}
.adaptive-recovery-sleep{font-size:11px;color:var(--text-muted);margin-bottom:4px}

.adaptive-running-decision{font-size:14px;font-weight:800;color:var(--white);margin-bottom:6px}
.adaptive-running-adj{font-size:12px;margin-bottom:6px}
.adaptive-running-reason{font-size:11px;color:var(--text-muted);margin-bottom:4px;line-height:1.4}

.adaptive-nutrition-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;padding:6px 8px;background:rgba(244,239,228,.04);border-radius:6px}
.adaptive-nut-lbl{font-size:11px;color:var(--text-subtle);width:50px;flex-shrink:0}
.adaptive-nut-val{font-size:13px;font-weight:800;width:60px}
.adaptive-nut-target{font-size:11px;color:var(--text-muted)}
.adaptive-nutrition-reason{font-size:11px;color:var(--text-muted);margin-bottom:4px;line-height:1.4}

/* ============================================================
   SPRINT 4 — MEMBER PLATFORM STYLES
   ============================================================ */

.ph-readiness-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;margin:12px 0;text-align:center}
.ph-readiness-label{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}
.ph-readiness-score{font-size:36px;font-weight:900;line-height:1}
.ph-readiness-score span{font-size:16px;font-weight:600;opacity:.6}
.ph-readiness-status{font-size:12px;font-weight:700;margin:4px 0 12px}
.ph-readiness-bars{display:flex;flex-direction:column;gap:5px;text-align:left}
.ph-readiness-bar-row{display:flex;align-items:center;gap:8px}
.ph-readiness-bar-lbl{font-size:10px;color:var(--text-muted);width:52px;flex-shrink:0}
.ph-readiness-bar-track{flex:1;height:5px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}
.ph-readiness-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}
.ph-readiness-bar-val{font-size:10px;color:var(--text-muted);width:14px;text-align:right}

.ph-highlights-strip{margin:12px 0}
.ph-highlights-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ph-highlight-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .15s}
.ph-highlight-card:hover{background:rgba(255,255,255,.07)}
.ph-highlight-icon{font-size:22px;flex-shrink:0}
.ph-highlight-label{font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase}
.ph-highlight-val{font-size:12px;font-weight:700;color:var(--text-primary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ach-header{background:linear-gradient(135deg,var(--accent-soft),rgba(143,165,184,.06));border:1px solid var(--border-strong);border-radius:16px;padding:20px;text-align:center;margin:12px 0 16px}
.ach-count{font-size:48px;font-weight:900;color:var(--accent-strong);line-height:1}
.ach-count span{font-size:20px;font-weight:600;opacity:.5}
.ach-count-label{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin-top:2px}
.ach-progress-bar{height:6px;background:rgba(255,255,255,.08);border-radius:3px;margin:10px 0 4px;overflow:hidden}
.ach-progress-fill{height:100%;background:var(--accent-strong);border-radius:3px;transition:width .5s ease}
.ach-pct-label{font-size:10px;color:var(--text-muted)}
.ach-section-title{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin:16px 0 8px;padding:0 12px}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;padding:0 12px}
.ach-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:14px;padding:14px 10px;text-align:center;transition:background .15s}
.ach-unlocked{border-color:var(--border-strong);background:var(--accent-soft)}
.ach-locked{opacity:.45}
.ach-icon{font-size:26px;margin-bottom:6px}
.ach-icon-locked{font-size:20px;opacity:.4}
.ach-title{font-size:11px;font-weight:700;color:var(--text-primary);margin-bottom:3px}
.ach-desc{font-size:10px;color:var(--text-muted);line-height:1.35}
.ach-date{font-size:9px;color:var(--text-subtle);margin-top:5px}

.journal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 12px 8px}
.journal-header-title{font-size:16px;font-weight:800;color:var(--text-primary)}
.journal-new-btn{background:var(--accent-strong);color:var(--surface-base);border:none;border-radius:20px;padding:7px 16px;font-size:12px;font-weight:700;cursor:pointer}
.journal-new-btn:hover{opacity:.85}
.journal-empty,.cm-empty{text-align:center;padding:48px 24px;background:var(--surface-card);border:1px dashed var(--border-medium);border-radius:var(--radius-lg)}
.journal-empty-icon,.cm-empty-icon{font-size:40px;margin-bottom:12px}
.journal-empty-msg{font-size:13px;color:var(--text-muted);margin-bottom:16px;line-height:1.5}
.journal-list{display:flex;flex-direction:column;gap:8px;padding:0 12px 24px}
.journal-entry{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:14px;padding:14px}
.journal-entry-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.journal-mood{font-size:20px;flex-shrink:0;line-height:1.2}
.journal-entry-meta{flex:1;min-width:0}
.journal-entry-title{font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-entry-date{font-size:10px;color:var(--text-subtle);margin-top:1px}
.journal-entry-actions{display:flex;gap:6px;flex-shrink:0}
.journal-edit-btn,.journal-del-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;border-radius:4px;opacity:.6;transition:opacity .15s}
.journal-edit-btn:hover,.journal-del-btn:hover{opacity:1}
.journal-entry-body{font-size:12px;color:var(--text-muted);line-height:1.5}

.journal-editor-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;align-items:flex-end;justify-content:center}
.journal-editor-overlay.open{display:flex}
.journal-editor{background:var(--surface-card);border-radius:20px 20px 0 0;padding:20px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;position:relative}
.journal-editor-close{position:absolute;top:14px;right:14px;background:rgba(244,239,228,.08);border:none;color:var(--text-muted);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.journal-editor-heading{font-size:16px;font-weight:800;color:var(--text-primary);margin-bottom:16px}

.prog-chart-box{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:14px;padding:14px;margin:8px 12px}
.prog-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.prog-chart-title{font-size:12px;font-weight:700;color:var(--text-primary)}
.prog-chart-delta{font-size:12px;font-weight:700}
.prog-chart-svg{width:100%;height:auto;display:block;border-radius:6px;overflow:visible}
.prog-chart-footer{display:flex;justify-content:space-between;font-size:9px;color:var(--text-subtle);margin-top:4px}
.prog-empty{font-size:12px;color:var(--text-muted);text-align:center;padding:var(--space-4);border:1px dashed var(--border-subtle);border-radius:var(--radius)}
.prog-pr-list{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.prog-pr-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.prog-pr-name{font-size:12px;color:var(--text-muted);flex:1}
.prog-pr-vals{display:flex;gap:6px}
.prog-pr-badge{background:var(--accent-soft);color:var(--accent-strong);font-size:10px;font-weight:700;padding:3px 8px;border-radius:20px}
.prog-pr-badge-cyan{background:rgba(143,165,184,.13);color:var(--status-info)}

.settings-section{margin:16px 12px}
.settings-section-title{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin-bottom:8px}
.settings-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:14px;padding:14px;margin-bottom:8px}
.settings-row{display:flex;align-items:center;gap:12px}
.settings-row-info{flex:1;min-width:0}
.settings-row-label{font-size:13px;font-weight:700;color:var(--text-primary);margin-bottom:2px}
.settings-row-desc{font-size:11px;color:var(--text-muted);line-height:1.4}
.settings-btn{border:none;border-radius:20px;padding:8px 18px;font-size:12px;font-weight:700;cursor:pointer;flex-shrink:0}
.settings-btn-primary{background:var(--accent-strong);color:var(--surface-base)}
.settings-btn-primary:hover{opacity:.85}
.settings-btn-danger{background:rgba(198,102,90,.15);color:var(--status-danger);border:1px solid rgba(198,102,90,.3)}
.settings-btn-danger:hover{background:rgba(198,102,90,.25)}
.settings-about{text-align:center;padding:20px}
.settings-about-logo{font-size:32px;margin-bottom:8px}
.settings-about-name{font-size:16px;font-weight:900;color:var(--text-primary);margin-bottom:2px}
.settings-about-ver{font-size:11px;color:var(--text-muted);margin-bottom:8px}
.settings-about-desc{font-size:11px;color:var(--text-subtle);line-height:1.5}

.tl2-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-4) var(--space-3);border-bottom:1px solid var(--border-subtle)}
.tl2-header-title{font-size:17px;font-weight:900;color:var(--text-primary)}
.tl2-count{font-size:11px;color:var(--text-muted);background:rgba(244,239,228,.06);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:4px 10px}
.tl2-empty{text-align:center;padding:48px 24px;font-size:13px;color:var(--text-muted);background:var(--surface-card);border:1px dashed var(--border-medium);border-radius:var(--radius-lg)}
.tl2-feed{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-4) var(--space-6)}
.tl2-item{display:flex;align-items:flex-start;gap:12px;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius);background:linear-gradient(180deg,var(--surface-card),var(--surface-inset))}
.tl2-item:last-child{border-bottom:none}
.tl2-item-icon{font-size:18px;flex-shrink:0;margin-top:1px;color:var(--accent-strong)}
.tl2-item-body{flex:1;min-width:0}
.tl2-item-msg{font-size:12px;color:var(--text-secondary);line-height:1.5;word-break:break-word}
.tl2-item-date{font-size:10px;color:var(--text-subtle);margin-top:3px}

.pt-head{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--space-5) var(--space-4) var(--space-3);border-bottom:1px solid var(--border-subtle)}
.pt-head h2{margin:0;color:var(--text-primary);font-size:18px;line-height:1.2;font-weight:900}
.pt-head p{margin:4px 0 0;color:var(--text-muted);font-size:12px;line-height:1.5}
.pt-filters{display:flex;gap:8px;overflow-x:auto;padding:0 var(--space-4) var(--space-4)}
.pt-filter{border:1px solid var(--border-subtle);background:var(--surface-inset);color:var(--text-muted);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;white-space:nowrap;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}
.pt-filter.active,.pt-filter:focus-visible{border-color:var(--border-strong);color:var(--accent-strong);background:var(--accent-soft);outline:none}
.pt-list{list-style:none;margin:0;padding:0 var(--space-4) var(--space-6);position:relative}
.pt-list::before{content:"";position:absolute;left:calc(var(--space-4) + 5px);top:8px;bottom:var(--space-6);width:1px;background:linear-gradient(180deg,var(--border-strong),var(--border-subtle),transparent)}
.pt-item{display:flex;gap:var(--space-3);padding:var(--space-3);margin-bottom:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius);background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));box-shadow:var(--elevation-1);transition:border-color var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}
.pt-item:hover{border-color:var(--border-medium);transform:translateY(-1px);box-shadow:var(--elevation-2)}
.pt-item:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px;border-radius:var(--radius);box-shadow:var(--focus-ring)}
.pt-dot{width:10px;height:10px;border-radius:50%;background:var(--accent-strong);box-shadow:0 0 0 4px var(--surface-card),0 0 0 5px var(--border-strong);margin-top:6px;flex-shrink:0;z-index:1}
.pt-body{flex:1;min-width:0}
.pt-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pt-title{color:var(--text-primary);font-size:13px;font-weight:900;line-height:1.35;overflow-wrap:anywhere}
.pt-cat{color:var(--accent-strong);font-size:10px;font-weight:800;background:var(--accent-soft);border:1px solid var(--border-strong);border-radius:999px;padding:3px 8px;white-space:nowrap}
.pt-meta{color:var(--text-subtle);font-size:10px;margin-top:4px}
.pt-body p{color:var(--text-secondary);font-size:12px;line-height:1.5;margin:7px 0 0}
.pt-empty{color:var(--text-muted);text-align:center;padding:34px 12px;background:var(--surface-card);border:1px dashed var(--border-medium);border-radius:var(--radius)}

.cm-empty-msg{font-size:13px;color:var(--text-muted);line-height:1.5;margin-bottom:4px}
.cm-hero{background:linear-gradient(135deg,var(--surface-card),var(--surface-inset));border:1px solid var(--border-strong);border-radius:16px;padding:18px;margin:12px}
.cm-hero-decision{font-size:20px;font-weight:900;color:var(--accent-strong);margin-bottom:6px}
.cm-hero-meta{display:flex;gap:12px;margin-bottom:8px}
.cm-hero-conf{font-size:11px;font-weight:700;color:var(--text-subtle);background:rgba(244,239,228,.06);padding:3px 10px;border-radius:20px}
.cm-hero-gain{font-size:11px;font-weight:700;color:var(--accent-strong);background:var(--accent-soft);padding:3px 10px;border-radius:20px}
.cm-hero-reason{font-size:12px;color:var(--text-muted);line-height:1.5;margin-bottom:6px}
.cm-section{margin:0 12px 16px}
.cm-section-title{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--text-subtle);text-transform:uppercase;margin-bottom:8px}
.cm-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cm-day{background:rgba(244,239,228,.04);border:1px solid var(--border-subtle);border-radius:8px;padding:6px 4px;text-align:center}
.cm-day-today{border-color:var(--border-strong);background:var(--accent-soft)}
.cm-day-act{font-size:9px;font-weight:700;color:var(--text-muted);word-break:break-word;line-height:1.2}
.cm-day-note{font-size:8px;color:var(--text-subtle);margin-top:3px}
.cm-targets-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cm-target{background:rgba(244,239,228,.04);border:1px solid var(--border-subtle);border-radius:10px;padding:10px 6px;text-align:center}
.cm-target-val{font-size:14px;font-weight:800;color:var(--text-primary);margin-bottom:2px}
.cm-target-lbl{font-size:9px;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em}
.cm-advice{background:rgba(244,239,228,.04);border-left:3px solid var(--accent-strong);border-radius:0 10px 10px 0;padding:12px;font-size:12px;color:var(--text-muted);line-height:1.5}
.cm-plateau-list{display:flex;flex-direction:column;gap:6px}
.cm-plateau-item{background:rgba(255,68,68,.08);border:1px solid rgba(255,68,68,.2);border-radius:10px;padding:10px}
.cm-plateau-type{font-size:11px;font-weight:700;color:#ff8888;margin-bottom:4px}
.cm-plateau-rec{font-size:11px;color:var(--text-muted);line-height:1.4}
.cm-memory-list{display:flex;flex-direction:column;gap:6px}
.cm-memory-item{background:rgba(244,239,228,.035);border:1px solid var(--border-subtle);border-radius:10px;padding:10px}
.cm-memory-decision{font-size:12px;font-weight:700;color:var(--text-primary);margin-bottom:2px}
.cm-memory-meta{font-size:10px;color:var(--text-subtle);margin-bottom:4px}
.cm-memory-reason{font-size:11px;color:var(--text-muted);line-height:1.4}

.scheduler-shell{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4)}
.scheduler-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--border-strong);background:linear-gradient(135deg,var(--surface-depth),var(--surface-card));border-radius:var(--radius-lg);box-shadow:var(--elevation-1)}
.scheduler-hero h2{font-size:21px;margin:0 0 var(--space-1);color:var(--text-primary);font-weight:900;letter-spacing:.03em}
.scheduler-hero p{margin:0;color:var(--text-muted);font-size:12px;line-height:1.55;max-width:680px}
.scheduler-badge{font-size:11px;font-weight:900;color:var(--accent-strong);background:var(--accent-soft);border:1px solid var(--border-strong);border-radius:999px;padding:6px 11px;white-space:nowrap}
.scheduler-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.scheduler-panel{background:linear-gradient(180deg,var(--surface-card),var(--surface-inset));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--elevation-1)}
.scheduler-panel h3{margin:0 0 var(--space-3);color:var(--text-primary);font-size:13px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.scheduler-list{display:flex;flex-direction:column;gap:var(--space-3)}
.scheduler-item{display:grid;grid-template-columns:74px minmax(0,1fr);gap:var(--space-3);align-items:center;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius);background:rgba(244,239,228,.035);transition:border-color var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}
.scheduler-item:hover{border-color:var(--border-medium);transform:translateY(-1px);box-shadow:var(--elevation-1)}
.scheduler-item:focus-visible,.scheduler-action:focus-visible,.scheduler-reminder button:focus-visible,.scheduler-reminder select:focus-visible,.scheduler-reminder input:focus-visible,.scheduler-timer-btn:focus-visible,.timer-controls button:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px;box-shadow:var(--focus-ring)}
.scheduler-time{font-size:11px;font-weight:900;color:var(--accent-strong);font-variant-numeric:tabular-nums}
.scheduler-title{font-size:13px;font-weight:900;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scheduler-meta{font-size:10px;color:var(--text-muted);margin-top:3px;line-height:1.4}
.scheduler-empty,.scheduler-loading{padding:var(--space-5);color:var(--text-muted);border:1px dashed var(--border-medium);border-radius:var(--radius);font-size:12px;background:var(--surface-inset);text-align:center;line-height:1.5}
.scheduler-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.scheduler-action{min-height:68px;text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius);background:rgba(244,239,228,.035);color:var(--text-primary);padding:var(--space-3);opacity:.78}
.scheduler-action span{display:block;font-size:12px;font-weight:900}.scheduler-action small{display:block;margin-top:4px;color:var(--text-muted);font-size:10px}
.scheduler-reminder{margin-top:var(--space-2)}.scheduler-reminder-panel{margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius);background:linear-gradient(180deg,var(--accent-soft),var(--surface-inset))}
.scheduler-reminder-status{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-muted);font-size:10px}.scheduler-reminder-status strong{color:var(--text-primary)}
.scheduler-reminder-row,.scheduler-reminder-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.scheduler-reminder-row label,.scheduler-reminder-custom label{display:grid;gap:4px;color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.scheduler-reminder select,.scheduler-reminder input{background:var(--surface-inset);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:10px;padding:7px 8px}
.scheduler-reminder button{border:1px solid var(--border-subtle);border-radius:999px;background:var(--surface-card);color:var(--text-primary);font-size:10px;font-weight:800;padding:7px 10px;min-height:32px}.scheduler-reminder button:hover{border-color:var(--border-strong);color:var(--accent-strong);background:var(--accent-soft)}
.scheduler-reminder-custom{display:none;margin-top:7px}.scheduler-reminder-custom.active{display:block}
@media(max-width:720px){
  .pt-head,.tl2-header{padding-left:var(--space-3);padding-right:var(--space-3)}
  .pt-filters,.pt-list,.tl2-feed{padding-left:var(--space-3);padding-right:var(--space-3)}
  .pt-item,.tl2-item{padding:var(--space-3)}
  .scheduler-shell{padding:var(--space-3);gap:var(--space-3)}
  .scheduler-grid,.scheduler-action-grid{grid-template-columns:1fr}
  .scheduler-hero{align-items:flex-start;flex-direction:column;padding:var(--space-4)}
  .scheduler-panel{padding:var(--space-4)}
  .scheduler-item{grid-template-columns:64px minmax(0,1fr);min-height:58px}
  .scheduler-reminder button{min-height:36px}
}

.scheduler-timer-btn{margin-top:8px;border:1px solid var(--border-strong);border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:10px;font-weight:900;padding:6px 10px}
.timer-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center}
.timer-ring{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent-strong) calc(var(--timer-progress)*1%),rgba(244,239,228,.08) 0);position:relative}
.timer-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--surface-inset)}.timer-ring span{position:relative;font-size:12px;font-weight:900;color:var(--text-primary)}
.timer-title{font-size:13px;font-weight:900;color:var(--text-primary)}.timer-phase{font-size:10px;color:var(--text-muted);text-transform:capitalize;margin-top:2px}
.timer-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:7px;font-size:10px;color:var(--text-muted)}
.timer-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.timer-controls button{border:1px solid var(--border-subtle);border-radius:999px;background:var(--surface-card);color:var(--text-primary);font-size:10px;font-weight:800;padding:6px 9px}.timer-controls button:hover{border-color:var(--border-strong);color:var(--accent-strong);background:var(--accent-soft)}
.timer-empty{color:var(--text-muted);font-size:12px}
