/* Full Rep — chartreuse / aqua. Homepage layout and shared color treatment. */
@font-face { font-family:Anton; src:url('./anton.ttf') format('truetype'); font-display:swap; font-weight:400; }
:root { --bg:#111217; --surface:#272838; --surface2:#303142; --line:#444657; --text:#eafff5; --dim:#b8bacb; --faint:#b8bacb; --accent:#e4ff1a; --energy:#e4ff1a; --ink:#111217; --gold:#e4ff1a; color-scheme:dark; }
[hidden] { display:none !important; }
.btn-primary,.btn-auth-primary,#duelSendBtn,#duelResultDone,.follow-btn,.tab.active,.fr-cta-btn,.voice-toggle.on,#endBtn,#resumeBtn,.notif-badge { color:var(--ink); }
.tabbar { background:var(--bg); border:1px solid var(--line); }
.tab { color:var(--dim); }
.tab.active { background:transparent; color:var(--accent); position:relative; }
.tab.active::after { content:''; position:absolute; bottom:1px; left:24%; right:24%; height:3px; background:var(--accent); border-radius:4px; }
.week-bar.filled { background:#b1e4e3; }
.week-bar.today-bar { background:var(--accent); }
.session-row .reps,.stat-card .num,.lb-reps,.lb-entry-reps { color:var(--accent); }
.rank-card,.duel-vs,.duel-result-score { background:var(--surface); }
.follow-btn.following,.challenge-btn,.lb-back-btn,.lb-viewall,.quick-goal input { color:var(--text); }
.tracking-status.ready { background:var(--accent); color:var(--ink); }
#repCount,#summaryReps { color:var(--accent); }
#trackingWarn { color:var(--ink); background:var(--text); }
.safety-sheet { background:var(--bg); color:var(--text); }
.safety-sheet select,.safety-sheet textarea { background:var(--surface); color:var(--text); border-color:var(--line); }
#reminderTime { color:var(--text); background:var(--surface); }
#startScreen { padding:22px 22px calc(110px + env(safe-area-inset-bottom)); padding-top:calc(22px + env(safe-area-inset-top)); }
#startScreen > * { max-width:1120px; width:100%; flex-shrink:0; }
#startScreen .top-row { margin:0; padding-bottom:20px; border-bottom:1px solid var(--line); }
#startScreen .wordmark img { width:42px !important; height:32px !important; border-radius:0; object-fit:contain; }
#startScreen .wordmark { gap:12px !important; }
#startScreen .wordmark img { content:url('./symbol.svg'); }
.home-nav { display:none; }
#startScreen .hero { margin:30px 0 20px; }
#startScreen .hero h1 { font-family:Anton,sans-serif; font-size:clamp(29px,7.7vw,60px); font-weight:400; letter-spacing:-.025em; line-height:1.12; }
#startScreen .hero-copy { font-size:20px; margin:6px 0 0; line-height:1.3; max-width:none; }
.home-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
#startScreen .today-card { grid-row:1; margin:0; padding:22px; border-radius:14px; background:var(--surface); --surface:#272838; --line:#444657; --text:#eafff5; --dim:#b8bacb; --faint:#b8bacb; --accent:#e4ff1a; }
.today-row { justify-content:space-between; }
#startScreen .today-row .micro { font-size:11px; font-weight:700; color:var(--dim); }
.home-count-row { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:12px 0 18px; }
.home-count { display:flex; flex-direction:column; min-width:0; }
#todayReps { font:400 clamp(76px,24vw,110px)/1 Anton,sans-serif; letter-spacing:-.035em; color:var(--accent); overflow-wrap:anywhere; }
.count-label { font:400 29px/1.2 Anton,sans-serif; }
.home-goal { flex-shrink:0; font-size:12px; color:var(--dim); }
.home-goal strong { display:block; font:400 28px/1.5 Anton,sans-serif; color:var(--text); white-space:nowrap; }
#homeGoalReps { color:var(--accent); }
.home-goal i { font-style:normal; color:var(--dim); }
.home-progress { display:flex; gap:12px; align-items:center; }
#startScreen .goal-bar-outer { margin:0; height:16px; background:#444553; flex:1; border-radius:20px; overflow:hidden; }
#startScreen .goal-bar { height:100%; background:var(--accent); border-radius:20px; }
#homeGoalPercent { font-size:12px; font-weight:800; min-width:30px; }
.home-goal-caption { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:10px 0 12px; }
#startScreen .goal-caption { margin:0; font-size:12px; color:#b1e4e3; line-height:1.5; }
#startScreen .goal-caption b { color:var(--text); }
#editHomeGoal { background:none; border:none; color:#b1e4e3; font-size:12px; white-space:nowrap; padding:8px 0 8px 8px; min-height:44px; }
#editHomeGoal span { font-size:20px; margin-left:4px; }
#startScreen .cta-dock { position:static; transform:none; width:100%; max-width:none; margin:0; padding:0; }
#startScreen .cta-dock::before { display:none; }
#startScreen #startBtn { width:100%; max-width:none; font:400 25px/1.2 Anton,sans-serif; text-align:center; border-radius:9px; padding:16px 20px; min-height:60px; letter-spacing:.01em; box-shadow:none; }
#startBtn::after { content:'→'; font:400 30px/1 sans-serif; }
.home-stats { grid-row:2; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:18px 6px; border-radius:12px; background:var(--surface); }
.home-stats > div { display:flex; flex-direction:column; gap:5px; padding:0 10px; border-right:1px solid #53576a; min-width:0; }
.home-stats > div:last-child { border:0; }
.home-stats strong { font:400 21px/1.2 Anton,sans-serif; overflow-wrap:anywhere; }
.home-stats > div > span { color:var(--dim); font-size:10px; }
.home-week { grid-row:3; background:#b1e4e3; color:#11393d; border-radius:12px; padding:18px 18px 12px; }
.home-week-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.home-week h2 { font:400 22px/1.3 Anton,sans-serif; margin:0; }
#homeActiveDays { font-size:12px; color:#17383c; }
.home-week-bars { display:flex; gap:12px; height:125px; padding-top:28px; }
.home-week-col { flex:1; min-width:0; display:flex; flex-direction:column; align-items:stretch; }
.home-bar-track { flex:1; display:flex; align-items:flex-end; border-bottom:1px solid #74b9bb; }
.home-bar { width:100%; background:#80c6c8; border-radius:4px 4px 0 0; position:relative; min-height:3px; }
.home-bar.is-today { background:#127475; }
.home-bar > span { position:absolute; bottom:100%; left:50%; transform:translateX(-50%); padding-bottom:3px; font:400 14px/1.2 Anton,sans-serif; color:#12383c; }
.home-day { text-align:center; padding-top:8px; font-size:12px; }
#startScreen .setup-list { grid-row:4; order:initial; margin:0; padding:0 18px; background:var(--surface); border-radius:12px; align-self:start; }
#startScreen .setup-toggle { padding:18px 0; margin:0; font-size:14px; min-height:56px; }
.setup-item { display:grid; grid-template-columns:30px 1fr; gap:8px 12px; padding:20px 0; align-items:start; }
.setup-item .n { width:30px; color:var(--accent); background:#303142; }
.setup-item-text { padding-top:3px; }
.setup-item p { font-size:14px; }
.setup-item img { grid-column:1/-1; width:100%; max-width:none; height:auto; aspect-ratio:360/170; margin-top:8px; border-radius:12px; filter:none; }
.setup-list.collapsed .setup-item { display:none; }
#startScreen .camera-note { order:initial; border-top:1px solid var(--line); padding-top:16px; margin:16px 0 0; font-size:11px; }
#startScreen #loadStatus { margin-top:12px; order:initial; }
#startScreen #loadStatus:empty { display:none; }
#startScreen #cameraSettingsBtn { order:initial; }
@media(min-width:800px) {
 #startScreen { padding:28px 36px 50px; }
 #startScreen .top-row { padding:0 12px 24px; }
 .home-nav { display:flex; margin-left:80px; gap:40px; align-self:stretch; }
 .home-nav button { position:relative; color:var(--dim); background:none; border:0; padding:8px 0; font-size:16px; font-weight:800; }
 .home-nav button[aria-current] { color:var(--text); }
 .home-nav button[aria-current]::after { content:''; position:absolute; bottom:-24px; left:-6px; right:-6px; height:3px; background:var(--accent); }
 #startScreen .hero { margin:38px 0 24px; }
 #startScreen .hero-copy { font-size:26px; }
 .home-grid { grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); gap:14px; align-items:start; }
 #startScreen .today-card { grid-column:1; grid-row:1/3; padding:28px; align-self:stretch; display:flex; flex-direction:column; }
 .home-count-row { flex:1; margin:18px 0 24px; }
 .home-count { flex-direction:row; align-items:baseline; gap:20px; }
 #todayReps { font-size:clamp(90px,10vw,140px); }
 .count-label { font-size:clamp(26px,3vw,42px); }
 .home-goal strong { font-size:34px; }
 .home-goal { font-size:14px; }
 #startScreen .goal-bar-outer { height:20px; }
 #startScreen .goal-caption,#editHomeGoal { font-size:15px; }
 #startScreen #startBtn { font-size:32px; min-height:72px; }
 .home-week { grid-column:2; grid-row:1; padding:24px; }
 .home-week h2 { font-size:28px; }
 #homeActiveDays { font-size:14px; }
 .home-week-bars { height:230px; padding-top:40px; gap:14px; }
 .home-bar > span { font-size:18px; }
 .home-day { font-size:14px; padding-top:12px; }
 #startScreen .setup-list { grid-column:2; grid-row:2; }
 .home-stats { grid-column:1/-1; grid-row:3; padding:24px 8px; }
 .home-stats > div { padding:0 28px; }
 .home-stats strong { font-size:32px; }
 .home-stats > div > span { font-size:16px; }
 body:has(#startScreen.active) .tabbar { display:none; }
}
@media(max-width:374px) {
 #startScreen { padding-left:14px; padding-right:14px; }
 #startScreen .today-card { padding:16px; }
 #startScreen .hero h1 { font-size:28px; }
 .home-count-row { gap:8px; }
 .home-goal strong { font-size:24px; }
 .home-stats strong { font-size:18px; }
 .home-stats > div { padding:0 7px; }
 .home-week-bars { gap:8px; }
}
@media(max-width:799px) {
 #startScreen .top-row { padding-bottom:14px; }
 #startScreen .hero { margin:22px 0 16px; }
 #startScreen .today-card { padding:18px; }
 .home-count-row { margin:10px 0 14px; }
 #todayReps { font-size:90px; }
 .count-label { font-size:26px; }
 .home-goal-caption { margin:6px 0; }
 #startScreen #startBtn { padding:12px 18px; min-height:54px; }
 .home-stats { padding:15px 6px; }
}
@media(min-width:800px) {
 #startScreen .today-card { align-self:start; min-height:386px; }
}
