/* ── RESET & ROOT ────────────────────────────────────────────────── */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Backgrounds — dark glass */
  --bg:          #09090f;
  --bg2:         rgba(255,255,255,.06);
  --bg3:         rgba(255,255,255,.09);
  --bg4:         rgba(255,255,255,.13);

  /* Text */
  --text:        #f5f5f7;
  --text2:       #aeaeb2;
  --text3:       #636366;

  /* Accent — Apple blue */
  --accent:      #ff6b35;
  --accent2:     rgba(255,107,53,.15);
  --accent-glow: rgba(255,107,53,.30);

  /* System */
  --danger:      #ff453a;
  --success:     #32d74b;
  --warning:     #ffd60a;

  /* Borders */
  --border:      rgba(255,255,255,.08);
  --border2:     rgba(255,255,255,.14);
  --border3:     rgba(255,255,255,.22);

  /* Blur */
  --blur:        blur(24px) saturate(180%);
  --blur-light:  blur(12px) saturate(160%);

  /* Radius */
  --r-sm:  8px;
  --r-md:  12px;
  --r-lg:  18px;
  --r-xl:  24px;
}

/* ── BASE ────────────────────────────────────────────────────────── */
body{
  font-family: -apple-system, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', sans-serif;
  background: #09090f;
  color: var(--text);
  min-height: 100vh;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  background-image:
    radial-gradient(ellipse 70% 50% at 15% 10%,  rgba(255,80,30,.35) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 85% 80%,  rgba(220,50,20,.25) 0%, transparent 55%),
    radial-gradient(ellipse 40% 30% at 60% 40%,  rgba(255,140,0,.15) 0%, transparent 50%),
    radial-gradient(ellipse 60% 50% at 30% 70%,  rgba(180,30,30,.10) 0%, transparent 50%);
  background-attachment: fixed;
}
h1{font-size:22px;font-weight:600;letter-spacing:-.3px}
h2{font-size:15px;font-weight:500;color:var(--accent)}
h3{font-size:12px;font-weight:500;letter-spacing:.5px;color:var(--text2);text-transform:uppercase}

/* ── LAYOUT ─────────────────────────────────────────────────────── */
.app{display:flex;min-height:100vh}

.sidebar{
  width:220px;
  background: rgba(255,255,255,.05);
  backdrop-filter: var(--blur);
  -webkit-backdrop-filter: var(--blur);
  border-right: 1px solid rgba(255,255,255,.1);
  padding: 24px 0;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}
.logo{padding:0 20px 24px;border-bottom:1px solid var(--border);margin-bottom:16px}
.logo-title{
  font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;
  color:var(--accent);font-family:-apple-system,sans-serif;
}
.logo-sub{font-size:10px;color:var(--text3);letter-spacing:.5px;margin-top:3px}

.nav-section{
  padding:8px 20px 4px;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--text3);font-weight:600;
}
.nav-item{
  padding:9px 20px;cursor:pointer;font-size:13px;font-weight:400;
  color:var(--text2);border-radius:0;
  transition:all .18s;position:relative;
}
.nav-item:hover{color:var(--text);background:rgba(255,255,255,.05)}
.nav-item.active{
  color:var(--accent);background:rgba(255,107,53,.12);
}
.nav-item.active::before{
  content:'';position:absolute;left:0;top:20%;bottom:20%;
  width:3px;background:var(--accent);border-radius:0 2px 2px 0;
}

.main{flex:1;overflow-y:auto;max-height:100vh}
.page{padding:32px;display:none}
.page.active{display:block}

/* ── GLASS CARDS ─────────────────────────────────────────────────── */
.card{
  background: rgba(255,255,255,.07);
  backdrop-filter: var(--blur);
  -webkit-backdrop-filter: var(--blur);
  border: 1px solid rgba(255,255,255,.12);
  border-top: 1px solid rgba(255,255,255,.18);
  border-radius: var(--r-lg);
  padding: 20px;
  margin-bottom: 16px;
  box-shadow:
    0 8px 32px rgba(0,0,0,.4),
    0 1px 0 rgba(255,255,255,.1) inset,
    0 -1px 0 rgba(0,0,0,.2) inset;
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}

.metric{
  background: rgba(255,255,255,.08);
  backdrop-filter: var(--blur);
  -webkit-backdrop-filter: var(--blur);
  border: 1px solid rgba(255,255,255,.13);
  border-top: 1px solid rgba(255,255,255,.2);
  border-radius: var(--r-md);
  padding: 18px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0,0,0,.35), 0 1px 0 rgba(255,255,255,.1) inset;
}
.metric-val{font-size:28px;font-weight:600;color:var(--accent);margin-bottom:4px;letter-spacing:-.5px}
.metric-label{font-size:10px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;font-weight:500}

/* ── BUTTONS ─────────────────────────────────────────────────────── */
.btn{
  background: rgba(255,255,255,.07);
  border: 1px solid var(--border2);
  color: var(--text);
  padding: 9px 18px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  border-radius: var(--r-sm);
  transition: all .18s;
  font-family: -apple-system, sans-serif;
  letter-spacing: -.1px;
}
.btn:hover{background:rgba(255,255,255,.12);border-color:var(--border3)}
.btn:active{transform:scale(.97)}

.btn-primary{
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 0 20px var(--accent-glow);
}
.btn-primary:hover{background:#ff8555;border-color:#ff8555;box-shadow:0 0 28px rgba(255,107,53,.4)}

.btn-sm{padding:5px 12px;font-size:12px}
.btn-danger{border-color:rgba(255,69,58,.5);color:var(--danger);background:rgba(255,69,58,.08)}
.btn-danger:hover{background:rgba(255,69,58,.15)}

.btn-ai{
  background:rgba(255,107,53,.12);border:1px solid rgba(255,107,53,.4);
  color:var(--accent);padding:10px 20px;cursor:pointer;font-size:13px;
  font-weight:500;border-radius:var(--r-md);transition:all .18s;
  font-family:-apple-system,sans-serif;display:flex;align-items:center;gap:8px;
}
.btn-ai:hover{background:rgba(255,107,53,.2)}
.btn-ai:disabled{opacity:.4;cursor:not-allowed}

/* ── FORMS ──────────────────────────────────────────────────────── */
.input{
  background: var(--bg3);
  backdrop-filter: var(--blur-light);
  -webkit-backdrop-filter: var(--blur-light);
  border: 1px solid var(--border2);
  color: var(--text);
  padding: 10px 14px;
  border-radius: var(--r-sm);
  font-size: 14px;
  width: 100%;
  font-family: -apple-system, sans-serif;
  transition: border-color .18s, box-shadow .18s;
}
.input:focus{
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-glow);
}
select.input{cursor:pointer}
.label{font-size:11px;color:var(--text3);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px;display:block;font-weight:600}
.form-group{margin-bottom:16px}

/* ── TAGS ───────────────────────────────────────────────────────── */
.tag{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10px;letter-spacing:.5px;text-transform:uppercase;font-weight:600}
.tag-green{background:rgba(50,215,75,.12);color:var(--success);border:1px solid rgba(50,215,75,.25)}
.tag-amber{background:rgba(255,107,53,.12);color:var(--accent);border:1px solid rgba(255,107,53,.25)}
.tag-red{background:rgba(255,69,58,.12);color:var(--danger);border:1px solid rgba(255,69,58,.25)}
.tag-gray{background:var(--bg3);color:var(--text2);border:1px solid var(--border)}
.tag-ai{background:rgba(255,107,53,.15);color:var(--accent);border:1px solid rgba(255,107,53,.35)}

/* ── WEEK GRID ──────────────────────────────────────────────────── */
.divider{border:none;border-top:1px solid var(--border);margin:20px 0}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day-cell{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r-sm);padding:8px 4px;text-align:center;
  cursor:pointer;transition:all .18s;min-height:60px;
}
.day-cell:hover{border-color:var(--border3);background:var(--bg4)}
.day-cell.active-day{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}
.day-cell.strength{background:rgba(255,107,53,.08);border-color:rgba(255,107,53,.25)}
.day-cell.hic{background:rgba(50,215,75,.06);border-color:rgba(50,215,75,.2)}
.day-cell.endurance{background:rgba(94,92,230,.08);border-color:rgba(94,92,230,.25)}
.day-cell.rest{background:rgba(255,255,255,.02)}
.day-cell.easy{background:rgba(255,214,10,.06);border-color:rgba(255,214,10,.2)}
.day-name{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.day-type{font-size:10px;margin-top:4px;font-weight:500}

/* ── TABLE ──────────────────────────────────────────────────────── */
.table{width:100%;border-collapse:collapse}
.table th{font-size:10px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;padding:8px 12px;border-bottom:1px solid var(--border);text-align:left;font-weight:600}
.table td{padding:9px 12px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
.table tr:hover td{background:rgba(255,255,255,.03)}

/* ── PROGRESS ───────────────────────────────────────────────────── */
.progress-bar{background:var(--bg3);border-radius:20px;height:6px;margin-top:4px}
.progress-fill{height:100%;border-radius:20px;background:var(--accent);transition:width .5s;box-shadow:0 0 8px var(--accent-glow)}

/* ── BLOCK TIMELINE ─────────────────────────────────────────────── */
.block-timeline{display:flex;gap:4px;margin:12px 0}
.block-week{
  flex:1;height:34px;border-radius:var(--r-sm);display:flex;
  align-items:center;justify-content:center;font-size:9px;
  letter-spacing:.5px;text-transform:uppercase;cursor:pointer;
  transition:all .18s;font-weight:600;
}
.bw-normal{background:rgba(255,107,53,.1);color:var(--accent);border:1px solid rgba(255,107,53,.2)}
.bw-heavy{background:rgba(255,107,53,.30);color:#fff;border:1px solid rgba(255,107,53,.6);box-shadow:0 0 12px var(--accent-glow)}
.bw-easy{background:rgba(255,214,10,.1);color:var(--warning);border:1px solid rgba(255,214,10,.25)}
.bw-active{border:2px solid var(--accent) !important;box-shadow:0 0 16px var(--accent-glow) !important}

/* ── RM ─────────────────────────────────────────────────────────── */
.badge{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
.scroll-x{overflow-x:auto}
.rm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rm-card{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r-md);padding:16px;
  box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.rm-lift{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);margin-bottom:8px;font-weight:600}
.rm-val{font-size:24px;font-weight:600;color:var(--accent);letter-spacing:-.5px}
.rm-unit{font-size:12px;color:var(--text3);margin-left:4px}
.pct-table{width:100%;margin-top:12px}
.pct-table td{padding:3px 0;font-size:12px}
.pct-label{color:var(--text3);width:60px}
.pct-val{color:var(--text);font-weight:500}
.pct-bar-wrap{padding:0 12px}
.pct-bar{height:3px;background:var(--accent);border-radius:20px;box-shadow:0 0 6px var(--accent-glow)}

/* ── LOG ────────────────────────────────────────────────────────── */
.log-entry{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r-md);padding:12px 16px;margin-bottom:8px;
  display:flex;align-items:center;gap:16px;
  transition:background .18s;
}
.log-entry:hover{background:var(--bg4)}
.log-date{font-size:11px;color:var(--text3);width:80px;flex-shrink:0;font-weight:500}
.log-type{flex-shrink:0}
.log-detail{flex:1;font-size:13px;color:var(--text2)}
.log-detail span{color:var(--text3);font-size:11px}
.log-feeling{font-size:10px;color:var(--text3);margin-left:8px;font-weight:500}
.log-rpe{
  display:inline-flex;width:26px;height:26px;border-radius:8px;
  font-size:11px;font-weight:700;align-items:center;justify-content:center;flex-shrink:0;
}

/* ── MODAL ──────────────────────────────────────────────────────── */
.modal{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  z-index:200;align-items:center;justify-content:center;
}
.modal-box{
  background:rgba(28,28,30,.95);
  backdrop-filter:var(--blur);
  -webkit-backdrop-filter:var(--blur);
  border:1px solid var(--border2);
  border-radius:var(--r-xl);
  padding:28px;
  max-width:520px;width:90%;
  box-shadow:0 24px 64px rgba(0,0,0,.5);
}
.modal-title{font-size:17px;font-weight:600;margin-bottom:20px}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}

/* ── PLAN CARDS ─────────────────────────────────────────────────── */
.plan-card{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r-md);margin-bottom:12px;overflow:hidden;
}
.plan-card-header{
  background:rgba(255,255,255,.04);padding:10px 16px;
  display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--border);
}
.plan-card-title{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--accent);font-weight:600}
.plan-card-sub{font-size:11px;color:var(--text3)}
.plan-note-coach{
  background:rgba(255,107,53,.08);border:1px solid rgba(255,107,53,.2);
  border-radius:var(--r-sm);padding:10px 14px;margin-bottom:12px;
  font-size:13px;color:var(--text2);
}
.plan-table{width:100%;border-collapse:collapse}
.plan-table th{font-size:9px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;padding:8px 12px;border-bottom:1px solid var(--border);text-align:left;font-weight:600}
.plan-table td{padding:9px 12px;border-bottom:1px solid var(--border);font-size:12px;vertical-align:middle}
.plan-kg{color:var(--accent);font-size:14px;font-weight:600}
.plan-sets{color:var(--text2);font-weight:500}
.plan-rec{color:var(--text3);font-size:11px}
.plan-badge-hic{background:rgba(50,215,75,.12);color:var(--success);border:1px solid rgba(50,215,75,.25);padding:2px 8px;border-radius:20px;font-size:9px;letter-spacing:.5px;font-weight:600}
.plan-badge-end{background:rgba(94,92,230,.12);color:#5e5ce6;border:1px solid rgba(94,92,230,.25);padding:2px 8px;border-radius:20px;font-size:9px;letter-spacing:.5px;font-weight:600}
.plan-badge-rest{background:var(--bg4);color:var(--text3);border:1px solid var(--border);padding:2px 8px;border-radius:20px;font-size:9px;letter-spacing:.5px;font-weight:600}
.plan-loading{display:flex;align-items:center;gap:10px;padding:20px;color:var(--text3);font-size:12px}

/* ── TODAY ──────────────────────────────────────────────────────── */
.today-card{
  background:var(--bg2);backdrop-filter:var(--blur-light);
  -webkit-backdrop-filter:var(--blur-light);
  border:1px solid var(--border);border-radius:var(--r-xl);
  padding:24px;text-align:center;
  box-shadow:0 8px 32px rgba(0,0,0,.3);
}
.today-phase{font-size:12px;color:var(--accent);letter-spacing:2px;text-transform:uppercase;font-weight:600}
.today-title{font-size:26px;font-weight:700;margin:8px 0;letter-spacing:-.5px}
.today-sub{font-size:13px;color:var(--text2)}

/* ── HIC LIBRARY ────────────────────────────────────────────────── */
.hic-session{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r-md);padding:14px 16px;margin-bottom:8px;
}
.hic-name{font-size:13px;font-weight:600;color:var(--text)}
.hic-desc{font-size:12px;color:var(--text3);margin-top:4px;line-height:1.6}

/* ── ACCORDION ──────────────────────────────────────────────────── */
.week-accordion{margin-bottom:6px;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.week-accordion-header{
  background:rgba(255,255,255,.04);padding:12px 16px;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;user-select:none;
  transition:background .15s;
}
.week-accordion-header:hover{background:rgba(255,255,255,.07)}
.week-accordion-body{display:none;border-top:1px solid var(--border)}
.week-accordion-body.open{display:block}
.day-accordion{border-bottom:1px solid var(--border)}
.day-accordion-header{padding:10px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:12px;transition:background .15s}
.day-accordion-header:hover{background:rgba(255,255,255,.04)}
.day-accordion-body{display:none;padding:0 16px 16px}
.day-accordion-body.open{display:block}
.day-type-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}

/* ── FLEX UTILS ─────────────────────────────────────────────────── */
.flex{display:flex;align-items:center}
.flex-between{display:flex;align-items:center;justify-content:space-between}
.flex-center{display:flex;align-items:center;justify-content:center}
.gap-8{gap:8px}
.mt-16{margin-top:16px}
.mb-8{margin-bottom:8px}
.mb-16{margin-bottom:16px}
.text-muted{color:var(--text3)}
.text-accent{color:var(--accent)}

/* ── RPE ────────────────────────────────────────────────────────── */
.rpe-btn{
  width:34px;height:34px;border-radius:8px;border:1px solid var(--border2);
  background:var(--bg3);color:var(--text2);font-size:11px;font-weight:600;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  transition:all .15s;-webkit-tap-highlight-color:transparent;margin:2px;
}
.rpe-btn.selected{border-width:2px;color:#fff}
.rpe-1,.rpe-2,.rpe-3{background:rgba(50,215,75,.1);border-color:rgba(50,215,75,.3)}
.rpe-1.selected,.rpe-2.selected,.rpe-3.selected{background:var(--success);border-color:var(--success)}
.rpe-4,.rpe-5,.rpe-6{background:rgba(255,214,10,.08);border-color:rgba(255,214,10,.3)}
.rpe-4.selected,.rpe-5.selected,.rpe-6.selected{background:var(--warning);border-color:var(--warning);color:#000}
.rpe-7,.rpe-8{background:rgba(255,149,0,.08);border-color:rgba(255,149,0,.3)}
.rpe-7.selected,.rpe-8.selected{background:#ff9500;border-color:#ff9500}
.rpe-9,.rpe-10{background:rgba(255,69,58,.08);border-color:rgba(255,69,58,.3)}
.rpe-9.selected,.rpe-10.selected{background:var(--danger);border-color:var(--danger)}
.feeling-btn{
  padding:7px 12px;border-radius:20px;border:1px solid var(--border2);
  background:var(--bg3);color:var(--text2);font-size:11px;font-weight:500;
  cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;
}
.feeling-btn.selected{border-color:var(--accent);color:var(--accent);background:rgba(255,107,53,.1)}

/* ── RETEST ─────────────────────────────────────────────────────── */
.retest-bar{display:flex;gap:4px;margin-bottom:20px}
.retest-bar-step{flex:1;height:3px;border-radius:20px;background:var(--border2);transition:background .3s}
.retest-bar-step.done{background:var(--accent);box-shadow:0 0 6px var(--accent-glow)}
.lift-retest-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-md);padding:16px;margin-bottom:10px;display:flex;align-items:center;gap:12px}
.lift-retest-card .lrc-name{flex:1;font-size:13px;font-weight:500}
.lift-retest-card .lrc-old{font-size:11px;color:var(--text3)}
.lift-retest-card .lrc-arrow{color:var(--accent);font-size:16px}

/* ── CHART ──────────────────────────────────────────────────────── */
.chart-wrap{position:relative;width:100%;height:200px;margin:12px 0}
.chart-svg{width:100%;height:100%}

/* ── ANNUAL PLAN v2 ─────────────────────────────────────────────── */
.annual-tl{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-bottom:16px}
.atl-month{
  border-radius:var(--r-sm);cursor:pointer;transition:all .15s;
  -webkit-tap-highlight-color:transparent;min-height:64px;
  display:flex;flex-direction:column;align-items:center;
  justify-content:space-between;padding:8px 3px 6px;
  border:1px solid transparent;background:var(--bg3);
}
.atl-month:active{transform:scale(.92)}
.atl-month:hover{border-color:var(--border3) !important}
.atl-month .atl-name{font-size:8px;color:var(--text3);letter-spacing:.5px;text-transform:uppercase;font-weight:600}
.atl-month .atl-weeks{display:flex;flex-direction:column;gap:2px;width:100%;margin-top:4px}
.atl-month .atl-week{height:4px;border-radius:2px;width:100%}
.atl-month.is-today{border-width:2px !important;box-shadow:0 0 12px var(--accent-glow)}
.atl-month.is-empty{border-color:var(--border)}
.annual-legend{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.al-item{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text3);font-weight:500}
.al-dot{width:8px;height:8px;border-radius:50%}
.annual-state-v2{
  background:rgba(255,107,53,.05);backdrop-filter:var(--blur-light);
  -webkit-backdrop-filter:var(--blur-light);
  border:1px solid rgba(255,107,53,.15);border-radius:var(--r-md);
  padding:14px 18px;margin-bottom:16px;display:flex;gap:20px;flex-wrap:wrap;
}
.asv2-item .asv2-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.asv2-item .asv2-val{font-size:15px;margin-top:3px;font-weight:600}

/* ── PLAN SHEET ─────────────────────────────────────────────────── */
.psheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:300;display:none}
.psheet-overlay.open{display:block}
.psheet{
  position:fixed;bottom:0;left:0;right:0;
  background:rgba(20,20,30,.75);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  border-radius:20px 20px 0 0;
  border-top:1px solid var(--border2);
  z-index:301;transform:translateY(100%);
  transition:transform .32s cubic-bezier(.4,0,.2,1);
  padding:0 0 env(safe-area-inset-bottom);max-height:92vh;overflow-y:auto;
}
.psheet.open{transform:translateY(0)}
.psheet-handle{width:36px;height:4px;background:var(--border2);border-radius:2px;margin:12px auto 0}
.psheet-header{padding:18px 20px 14px;border-bottom:1px solid var(--border)}
.psheet-title{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text3);font-weight:600}
.psheet-month{font-size:22px;font-weight:700;color:var(--text);margin-top:3px;letter-spacing:-.3px}
.psheet-body{padding:18px 20px}
.psheet-section{margin-bottom:20px}
.psheet-label{font-size:10px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;margin-bottom:10px;font-weight:600}
.psheet-actions{padding:14px 20px 18px;border-top:1px solid var(--border)}

.proto-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.proto-btn{
  padding:14px 10px;border-radius:var(--r-md);cursor:pointer;
  border:1.5px solid transparent;transition:all .15s;
  -webkit-tap-highlight-color:transparent;text-align:center;
}
.proto-btn.selected{border-width:2px}
.proto-btn .pb-dot{width:10px;height:10px;border-radius:50%;margin:0 auto 8px}
.proto-btn .pb-name{font-size:12px;font-weight:600}

.week-stepper{display:flex;align-items:center;gap:20px;justify-content:center;padding:8px 0}
.week-stepper button{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--border2);
  background:var(--bg3);color:var(--text);font-size:22px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;-webkit-tap-highlight-color:transparent;
}
.week-stepper button:hover{background:var(--bg4);border-color:var(--border3)}
.week-stepper button:active{transform:scale(.92)}
.week-stepper .ws-val{font-size:30px;font-weight:700;color:var(--accent);min-width:60px;text-align:center;letter-spacing:-.5px}
.week-stepper .ws-unit{font-size:11px;color:var(--text3);font-weight:500}

.days-picker{display:flex;gap:4px}
.day-pip{
  flex:1;height:38px;border-radius:var(--r-sm);border:1px solid var(--border2);
  background:var(--bg3);color:var(--text3);font-size:9px;text-transform:uppercase;
  letter-spacing:.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .15s;-webkit-tap-highlight-color:transparent;font-weight:600;
}
.day-pip:active{transform:scale(.9)}
.day-pip.on{border-width:1.5px;font-weight:700}

.ew-pills{display:flex;gap:6px;flex-wrap:wrap}
.ew-pill{
  padding:8px 14px;border-radius:20px;border:1px solid var(--border2);
  background:var(--bg3);color:var(--text2);font-size:11px;font-weight:500;
  cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;
}
.ew-pill.selected{border-color:var(--accent);color:var(--accent);background:rgba(255,107,53,.1)}

.equip-grid{display:flex;flex-direction:column;gap:8px}
.equip-btn{
  padding:14px 16px;border-radius:var(--r-md);cursor:pointer;
  border:1.5px solid var(--border2);background:var(--bg3);
  transition:all .15s;-webkit-tap-highlight-color:transparent;
  display:flex;align-items:center;gap:14px;
}
.equip-btn.selected{border-color:var(--accent);background:rgba(255,107,53,.08);box-shadow:0 0 12px rgba(255,107,53,.15)}
.equip-btn .eq-dot{width:10px;height:10px;border-radius:50%;background:var(--border2);flex-shrink:0;transition:all .15s}
.equip-btn.selected .eq-dot{background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}
.equip-btn .eq-label{font-size:13px;font-weight:500;color:var(--text)}
.equip-btn .eq-sub{font-size:10px;color:var(--text3);margin-top:2px}

.btn-genera{
  width:100%;padding:16px;
  background:linear-gradient(135deg, #ff6b35, #ff4500);
  border:none;color:#fff;font-size:14px;font-weight:700;
  letter-spacing:.5px;border-radius:var(--r-md);cursor:pointer;
  font-family:-apple-system,sans-serif;transition:all .2s;
  -webkit-tap-highlight-color:transparent;text-transform:uppercase;
  margin-bottom:10px;box-shadow:0 4px 24px var(--accent-glow);
}
.btn-genera:active{transform:scale(.98);box-shadow:0 2px 12px var(--accent-glow)}
.btn-genera:disabled{opacity:.4;cursor:not-allowed}

/* ── BOTTOM NAVIGATION ──────────────────────────────────────────── */
.bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;
  height:60px;
  background:rgba(255,255,255,.06);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  border-top:1px solid var(--border);z-index:50;align-items:stretch;
  padding-bottom:env(safe-area-inset-bottom);
}
.bottom-nav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;cursor:pointer;color:var(--text3);font-size:9px;letter-spacing:.5px;
  text-transform:uppercase;font-weight:600;
  transition:color .15s;-webkit-tap-highlight-color:transparent;min-height:44px;
}
.bottom-nav-item.active{color:var(--accent)}
.bottom-nav-item svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5}
.bottom-nav-more{
  position:fixed;bottom:60px;left:0;right:0;
  background:rgba(28,28,30,.96);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  border-top:1px solid var(--border);display:none;flex-direction:column;
  z-index:49;padding:8px 0;padding-bottom:env(safe-area-inset-bottom);
}
.bottom-nav-more.open{display:flex}
.bottom-nav-more-item{
  padding:13px 24px;font-size:14px;color:var(--text2);cursor:pointer;
  font-weight:400;-webkit-tap-highlight-color:transparent;
}
.bottom-nav-more-item:hover{background:rgba(255,255,255,.05)}
.bottom-nav-more-item.active{color:var(--accent)}

/* ── MOBILE RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .sidebar{display:none}
  .bottom-nav{display:flex !important}
  .main{max-height:calc(100vh - 60px);padding-bottom:60px}
  .page{padding:16px 16px 24px}
  h1{font-size:19px}
  h2{font-size:15px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr !important;gap:12px}
  .card{padding:14px;border-radius:var(--r-md)}
  #dash-metrics{grid-template-columns:1fr 1fr !important}
  .scroll-x,.plan-table,.table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .plan-table th,.plan-table td,.table th,.table td{white-space:nowrap;padding:8px 10px}
  .btn,.btn-primary{min-height:44px;padding:10px 16px}
  .btn-sm{min-height:36px}
  .today-card{padding:20px;border-radius:var(--r-lg)}
  .today-title{font-size:22px}
  .week-grid{gap:3px}
  .day-cell{min-height:48px;padding:6px 2px;border-radius:6px}
  .day-name{font-size:8px}
  .block-timeline{gap:2px}
  .block-week{font-size:8px;height:28px}
  .plan-card-header{padding:8px 12px}
  .flex-between{flex-wrap:wrap;gap:8px}
  .hic-session{padding:10px 12px}
  .log-entry{flex-wrap:wrap;gap:8px;padding:10px 12px}
  .log-date{width:auto}
  .log-type{width:auto}
  .rm-grid{grid-template-columns:1fr 1fr !important}
  .page{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
}
