*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#f8fafc;
  --surface:#ffffff;
  --surface2:#f1f5f9;
  --border:#e2e8f0;
  --text:#0f172a;
  --muted:#64748b;
  --faint:#cbd5e1;
  --blue:#1a2035;
  --blue2:#2d3a52;
  --green:#10b981;
  --green2:#059669;
  --orange:#f59e0b;
  --orange2:#d97706;
  --purple:#6366f1;
  --purple2:#818cf8;
  --red:#ef4444;
  --yellow:#f59e0b;
  --cyan:#06b6d4;
  --accent:#1a2035;
  --r:12px;
  --sh:0 1px 3px rgba(0,0,0,0.07),0 1px 2px rgba(0,0,0,0.05);
  --sh2:0 4px 16px rgba(0,0,0,0.10);
}
body{background:var(--bg);color:var(--text);font-family:'Sora',sans-serif;max-width:480px;margin:0 auto;min-height:100vh;overflow-x:hidden;padding-bottom:112px;touch-action:pan-x pan-y}

/* ─── LOGIN SCREEN ─── */
#loginScreen{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f172a 0%,#1a2035 50%,#0f172a 100%);padding:28px}
#loginScreen.hidden{display:none}
#loadingScreen{position:fixed;inset:0;z-index:190;display:flex;align-items:center;justify-content:center;background:var(--bg)}
#loadingScreen.hidden{display:none}
.spinner{width:30px;height:30px;border:2.5px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.login-logo{width:66px;height:66px;margin-bottom:14px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.35))}
.login-logo svg{width:100%;height:100%;display:block}
.login-appname{font-size:32px;font-weight:800;color:#ffffff;letter-spacing:-0.5px;margin-bottom:4px}
.login-tagline{color:rgba(255,255,255,.38);font-size:12px;text-align:center;line-height:1.5;margin-bottom:28px}
.login-card{background:rgba(255,255,255,.06);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:22px 18px;width:100%;max-width:360px}
.login-card-title{color:rgba(255,255,255,.7);font-size:13px;font-weight:600;margin-bottom:14px;text-align:center}
.login-input{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:15px;font-family:'Sora',sans-serif;padding:11px 13px;outline:none;transition:border-color .2s;margin-bottom:8px}
.login-input::placeholder{color:rgba(255,255,255,.22)}
.login-input:focus{border-color:rgba(255,255,255,.3)}
.login-btn{width:100%;padding:12px;border-radius:10px;border:none;font-size:13px;font-weight:700;cursor:pointer;font-family:'Sora',sans-serif;transition:all .2s;margin-bottom:8px}
.login-btn.primary{background:#ffffff;color:#0f172a;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.login-btn.secondary{background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.1)}
.login-btn:active{transform:scale(.98)}
.login-error{color:#fca5a5;font-size:12px;text-align:center;margin-bottom:8px;min-height:14px;font-weight:500}
.login-divider{display:flex;align-items:center;gap:10px;margin:3px 0 8px;color:rgba(255,255,255,.15);font-size:11px}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.08)}
.login-guest{color:rgba(255,255,255,.3);font-size:12px;text-align:center;cursor:pointer;text-decoration:underline;font-weight:500;display:block;margin-top:10px}
.user-btn{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:5px 11px;font-size:10px;font-weight:700;color:var(--muted);cursor:pointer;max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ─── HEADER ─── */
.header{background:var(--surface);border-bottom:1px solid var(--border);padding:calc(env(safe-area-inset-top) + 14px) max(20px, env(safe-area-inset-right)) 12px max(20px, env(safe-area-inset-left));position:sticky;top:0;z-index:30;box-shadow:var(--sh)}
.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.app-brand{display:flex;align-items:center;gap:9px}
.app-logo{width:28px;height:28px;flex-shrink:0;display:block}
.app-name{font-size:19px;font-weight:800;color:var(--blue);letter-spacing:-0.3px}
.header-badges{display:flex;gap:6px;align-items:center}
.xp-badge{background:var(--text);color:#fff;border-radius:8px;padding:4px 10px;font-size:11px;font-weight:700;font-family:'JetBrains Mono',monospace;display:flex;align-items:center;gap:4px}
.streak-badge{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:4px 10px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:4px}
.sync-indicator{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:4px 8px;font-size:10px;font-weight:700;color:var(--muted);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sync-indicator.saving{color:var(--blue);border-color:var(--border)}
.sync-indicator.saved{color:var(--green2);border-color:#bbf7d0;background:#f0fdf4;animation:savedPop .3s ease}
@keyframes savedPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}
.sync-indicator.offline,.sync-indicator.error{color:var(--red);border-color:#fecaca;background:#fef2f2}
.sync-indicator.hidden{display:none}
.level-bar-wrap{background:var(--bg);border-radius:4px;height:4px;overflow:hidden;position:relative}
.level-bar-fill{height:100%;border-radius:4px;background:var(--text);transition:width 0.5s ease}
.level-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.level-name{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px}
.level-xp{font-size:10px;color:var(--muted);font-family:'JetBrains Mono',monospace}

/* ─── HABITS BAR ─── */
.habits-section{margin:12px 14px 0;background:var(--surface);border-radius:var(--r);padding:12px 12px 8px;border:1px solid var(--border);box-shadow:var(--sh)}
.habits-title{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}
.habits-scroll-wrap{position:relative}
.habits-scroll-wrap::after{content:'';position:absolute;right:0;top:0;bottom:8px;width:28px;background:linear-gradient(to right,transparent,var(--surface));pointer-events:none}
.habits-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.habits-row::-webkit-scrollbar{display:none}
.habit-chip{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;padding:7px 9px;border-radius:8px;border:1px solid var(--border);background:var(--bg);transition:all 0.2s;min-width:54px}
.habit-chip.done{border-color:var(--green2);background:#f0fdf4}
.habit-chip:active{transform:scale(0.94)}
.habit-emoji{font-size:18px;line-height:1}
.habit-label{font-size:9px;font-weight:600;color:var(--muted);letter-spacing:0.3px;text-align:center;white-space:nowrap}
.habit-chip.done .habit-label{color:var(--green2)}
.water-count{font-size:10px;font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--cyan)}
.habit-chip.done .water-count{color:var(--green2)}

/* ─── SETTINGS BTN ─── */
.settings-btn{background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:10px;transition:background 0.18s;line-height:1;color:var(--blue);display:flex;align-items:center}
.settings-btn:active{background:var(--bg);transform:scale(0.92)}
.settings-btn.active{background:var(--blue);color:#fff}

/* ─── CONTENT ─── */
.content{padding:14px 16px 0}

/* ─── SECTION HEADER ─── */
.sec-head{margin-bottom:14px}
.sec-title{font-size:18px;font-weight:800;margin-bottom:3px}
.sec-sub{font-size:12px;color:var(--muted);line-height:1.5}
.sec-sub span{color:var(--blue);font-weight:600}

/* ─── STAT CARDS ─── */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.stat-card{background:var(--surface);border-radius:var(--r);padding:14px;border:1px solid var(--border);box-shadow:var(--sh)}
.stat-card.accent{background:var(--text);border-color:transparent}
.stat-card.accent .stat-label,.stat-card.accent .stat-val,.stat-card.accent .stat-sub{color:#fff!important}
.stat-label{font-size:9px;font-weight:700;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:6px}
.stat-val{font-size:26px;font-weight:800;font-family:'JetBrains Mono',monospace;color:var(--text);line-height:1}
.stat-sub{font-size:11px;color:var(--muted);margin-top:4px;font-weight:500}
.stat-bar{height:3px;background:var(--bg);border-radius:3px;overflow:hidden;margin-top:8px}
.stat-bar-fill{height:100%;border-radius:3px;background:var(--text);transition:width 0.5s ease}
.stat-card.accent .stat-bar{background:rgba(255,255,255,0.15)}
.stat-card.accent .stat-bar-fill{background:#ffffff}

/* ─── REHAB PROGRESS ─── */
.rehab-timeline{background:var(--surface);border-radius:var(--r);padding:16px;margin-bottom:12px;border:1px solid var(--border);box-shadow:var(--sh)}
.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.timeline-title{font-size:14px;font-weight:700}
.timeline-badge{background:var(--surface2);color:var(--muted);border-radius:8px;padding:3px 8px;font-size:10px;font-weight:700}
.phase-dots{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}
.phase-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);background:var(--bg);position:relative;cursor:default;transition:all 0.3s;flex-shrink:0}
.phase-dot.done{background:var(--green);border-color:transparent}
.phase-dot.today{background:var(--text);border-color:transparent;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 6px rgba(26,32,53,0.4)}50%{box-shadow:0 0 14px rgba(26,32,53,0.7)}}
.decay-warning{background:#FEF2F2;border:1px solid #FECACA;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:12px;color:#991B1B;display:flex;align-items:center;gap:8px}
.decay-warning.hidden{display:none}

/* ─── CARDS ─── */
.card{background:var(--surface);border-radius:var(--r);padding:14px;margin-bottom:8px;border:1px solid var(--border);box-shadow:var(--sh);transition:border-color 0.2s}
.card.completed{border-color:#bbf7d0;background:#f0fdf4}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.card-info{display:flex;align-items:center;gap:10px}
.card-emoji{font-size:22px;line-height:1;flex-shrink:0}
.card-name{font-size:13px;font-weight:700;color:var(--text);line-height:1.2}
.card.completed .card-name{color:var(--green2)}
.card-desc{font-size:11px;color:var(--muted);margin-top:2px}
.card-badge{background:var(--bg);color:var(--muted);font-weight:700;font-size:11px;border-radius:6px;padding:3px 8px;font-family:'JetBrains Mono',monospace;border:1px solid var(--border);white-space:nowrap;flex-shrink:0;transition:all 0.2s}
.card.completed .card-badge{background:#dcfce7;color:var(--green2);border-color:#bbf7d0}

/* ─── SET BUTTONS ─── */
.sets-grid{display:flex;flex-wrap:wrap;gap:5px}
.set-btn{padding:6px 11px;border-radius:7px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;font-size:11px;font-family:'Sora',sans-serif;font-weight:600;transition:all 0.15s;user-select:none;display:flex;align-items:center;gap:5px}
.set-btn.done{background:var(--text);border-color:var(--text);color:#ffffff}
.set-btn:active{transform:scale(0.93)}

/* ─── PUSH CARD ─── */
.push-sets{display:flex;flex-direction:column;gap:6px}
.push-set-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border-radius:10px;border:1.5px solid var(--border);transition:all 0.2s}
.push-set-row.done{background:var(--surface2);border-color:var(--border)}
.check-btn{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.2s}
.check-btn.done{background:var(--text);border-color:transparent}
.push-set-label{color:var(--muted);font-size:11px;font-weight:600;width:54px;flex-shrink:0}
.reps-input{background:var(--surface);border:1.5px solid var(--border);border-radius:8px;color:var(--text);font-size:15px;font-weight:700;width:60px;padding:5px 8px;text-align:center;outline:none;font-family:'JetBrains Mono',monospace}
.reps-input:focus{border-color:var(--blue)}
.push-unit{color:var(--muted);font-size:11px;font-weight:600}
.del-btn{margin-left:auto;background:none;border:none;color:var(--faint);cursor:pointer;font-size:14px;padding:2px 6px;line-height:1;transition:color 0.2s}
.del-btn:active{color:var(--red)}
.add-set-btn{width:100%;margin-top:6px;padding:9px;background:none;border:1.5px dashed var(--border);border-radius:10px;color:var(--muted);cursor:pointer;font-size:12px;font-family:'Sora',sans-serif;font-weight:600;transition:all 0.2s}
.add-set-btn:active{background:var(--bg)}
.push-total{background:var(--bg);color:var(--muted);font-family:'JetBrains Mono',monospace;font-weight:800;font-size:16px;border-radius:8px;padding:4px 10px;border:1px solid var(--border);min-width:40px;text-align:center;transition:all 0.3s;flex-shrink:0}
.push-total.active{background:var(--surface2);color:var(--text);border-color:var(--border)}

/* ─── WEEK SELECTOR ─── */
.week-bar{display:flex;gap:5px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}
.week-bar::-webkit-scrollbar{display:none}
.week-btn{flex:1;min-width:56px;padding:7px 4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:10px;cursor:pointer;font-family:'Sora',sans-serif;font-weight:600;text-align:center;transition:all 0.15s;line-height:1.4;white-space:nowrap}
.week-btn span{display:block;font-size:12px;font-weight:800;margin-bottom:2px}
.week-btn.active{background:var(--text);color:#fff;border-color:var(--text);box-shadow:var(--sh2)}

/* ─── INFO BOX ─── */
.info-box{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;margin-bottom:12px;font-size:12px;color:var(--text);font-weight:500;display:flex;align-items:center;gap:8px;line-height:1.5}

/* ─── COMPLETE BANNER ─── */
.complete-banner{text-align:center;padding:16px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;margin-top:8px;color:var(--green2);font-weight:700;font-size:14px;animation:popIn 0.4s ease}
@keyframes popIn{0%{transform:scale(0.92);opacity:0}100%{transform:scale(1);opacity:1}}

/* ─── XP POP ─── */
.xp-pop{position:fixed;top:38%;left:50%;background:var(--blue);color:#fff;border-radius:12px;padding:12px 24px;font-weight:700;font-size:15px;z-index:200;pointer-events:none;white-space:nowrap;box-shadow:0 8px 28px rgba(26,32,53,0.35);animation:xpFloat 1.6s cubic-bezier(0.22,1,0.36,1) forwards}
@keyframes xpFloat{0%{opacity:0;transform:translate(-50%,8px) scale(0.85)}15%{opacity:1;transform:translate(-50%,0) scale(1)}78%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-28px) scale(0.96)}}

/* ─── ACHIEVEMENTS ─── */
.achieve-wrap{position:relative;margin-bottom:4px}
.achieve-wrap::after{content:'';position:absolute;right:0;top:0;bottom:10px;width:28px;background:linear-gradient(to right,transparent,var(--bg));pointer-events:none;z-index:1}
.achieve-scroll{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
.achieve-scroll::-webkit-scrollbar{display:none}
.achieve-chip{flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 10px;display:flex;align-items:center;gap:6px;opacity:0.35;transition:all 0.2s}
.achieve-chip.earned{opacity:1;border-color:var(--text);background:var(--surface);box-shadow:var(--sh)}
.achieve-chip .ach-name{font-size:10px;font-weight:700;color:var(--muted);white-space:nowrap}
.achieve-chip.earned .ach-name{color:var(--text)}

.week-rehab-bar{background:var(--surface);border-radius:var(--r);padding:13px;margin-bottom:11px;border:1px solid var(--border);box-shadow:var(--sh)}
.wrb-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.wrb-title{font-size:12px;font-weight:700}
.wrb-badge{font-size:11px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--text)}
.wrb-badge.goal{color:var(--green2)}
.wrb-dots{display:flex;gap:6px}
.wrb-dot{flex:1;height:8px;border-radius:4px;background:var(--bg);border:1.5px solid var(--border);transition:all .3s}
.wrb-dot.done{background:var(--green);border-color:transparent}
.wrb-dot.bonus{background:var(--text);border-color:transparent}
.wrb-dot.target{border-color:var(--text);border-style:dashed}
.wrb-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:9px;color:var(--muted);font-weight:600}
.danger-zone{background:var(--surface);border-radius:var(--r);padding:14px;margin-bottom:12px;border:1.5px solid #FECACA}
.danger-title{font-size:10px;font-weight:700;color:var(--red);letter-spacing:1px;text-transform:uppercase;margin-bottom:10px}
.danger-btns{display:flex;gap:7px;flex-wrap:wrap}
.danger-btn{flex:1;min-width:110px;padding:10px 14px;border-radius:9px;border:1.5px solid #FECACA;background:#FEF2F2;color:var(--red);font-size:11px;font-weight:700;cursor:pointer;font-family:'Sora',sans-serif;transition:all .2s}
.danger-btn:active{background:#FEE2E2}
/* ─── TIMER OVERLAY ─── */
.timer-overlay{position:fixed;inset:0;background:rgba(15,23,42,0.96);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;backdrop-filter:blur(12px)}
.timer-overlay.hidden{display:none}
.timer-ring-wrap{position:relative;width:180px;height:180px;margin-bottom:20px}
.timer-svg{transform:rotate(-90deg)}
.timer-track{fill:none;stroke:rgba(255,255,255,0.08);stroke-width:8}
.timer-progress{fill:none;stroke:url(#tGrad);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 0.9s linear}
.timer-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.timer-secs{font-family:'JetBrains Mono',monospace;font-size:52px;font-weight:700;color:#fff;line-height:1}
.timer-slabel{color:rgba(255,255,255,0.4);font-size:11px;letter-spacing:2px;margin-top:4px;font-weight:600}
.timer-exname{color:rgba(255,255,255,0.7);font-size:14px;font-weight:600;margin-bottom:20px;text-align:center;padding:0 30px;max-width:300px}
.timer-skip{background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.15);border-radius:12px;color:rgba(255,255,255,0.6);font-size:13px;padding:12px 30px;cursor:pointer;font-family:'Sora',sans-serif;font-weight:600;letter-spacing:0.5px;transition:all 0.2s}
.timer-skip:active{background:rgba(255,255,255,0.15)}

/* ─── REST TOAST ─── */
.rest-toast{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 16px);left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 18px;z-index:50;display:flex;align-items:center;gap:12px;min-width:240px;box-shadow:var(--sh2);animation:slideUp 0.3s ease}
.rest-toast.hidden{display:none}
@keyframes slideUp{from{transform:translateX(-50%) translateY(16px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}
.rest-label{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:1px;text-transform:uppercase}
.rest-secs{color:var(--text);font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:800;min-width:36px;display:block}
.rest-bar-wrap{flex:1;background:var(--bg);border-radius:4px;height:5px;overflow:hidden}
.rest-bar-fill{height:100%;border-radius:4px;background:var(--text);transition:width 1s linear}
.rest-skip-btn{background:none;border:none;color:var(--faint);cursor:pointer;font-size:16px;line-height:1;padding:4px;transition:color 0.2s}
.rest-skip-btn:active{color:var(--red)}

/* ─── MODAL ─── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px);animation:fadeIn 0.2s ease}
.modal-overlay.hidden{display:none}
.modal{background:var(--surface);border-radius:18px;padding:26px 24px;width:100%;max-width:400px;box-shadow:0 12px 40px rgba(0,0,0,0.22);animation:modalPop 0.32s cubic-bezier(0.34,1.3,0.5,1)}
.modal h3{font-size:18px;font-weight:800;margin-bottom:7px;line-height:1.3}
.modal p{color:var(--muted);font-size:13px;line-height:1.6;margin-bottom:20px}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes modalPop{0%{opacity:0;transform:scale(0.9) translateY(12px)}100%{opacity:1;transform:scale(1) translateY(0)}}
.modal-btns{display:flex;gap:8px}
.modal-btn{flex:1;padding:12px;border-radius:10px;border:none;font-size:13px;font-weight:700;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.2s}
.modal-btn.primary{background:var(--text);color:#fff}
.modal-btn.secondary{background:var(--bg);color:var(--muted);border:1px solid var(--border)}
.modal-btn.danger{background:var(--red);color:#fff}


/* ─── GENERAL EXERCISES ─── */
.exercise-group{margin-bottom:16px}
.group-title{font-size:13px;font-weight:800;color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:0.5px}
.group-icon{font-size:16px}

/* ─── KG / PR TRACKING ─── */
.kg-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface2);border-radius:8px;margin-bottom:8px}
.kg-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;flex-shrink:0}
.kg-input{width:62px;background:var(--surface);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:15px;font-weight:800;font-family:'JetBrains Mono',monospace;padding:4px 8px;text-align:center;outline:none}
.kg-input:focus{border-color:var(--text)}
.kg-unit{font-size:11px;font-weight:700;color:var(--muted);flex-shrink:0}
.pr-badge{margin-left:auto;font-size:10px;font-weight:800;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px 8px;white-space:nowrap}
.pr-badge.empty{color:var(--faint);border-color:var(--faint)}

/* ─── AI CHAT ─── */
.ai-fab{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 72px);right:16px;width:46px;height:46px;border-radius:50%;background:var(--text);color:#fff;border:none;font-size:20px;cursor:pointer;z-index:25;box-shadow:var(--sh2);display:flex;align-items:center;justify-content:center;transition:transform .15s}
.ai-fab:active{transform:scale(.92)}
.ai-overlay{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,0.45);display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(4px);animation:fadeIn .2s ease}
.ai-overlay.hidden{display:none}
.ai-panel{position:relative;width:100%;max-width:480px;background:var(--surface);border-radius:20px 20px 0 0;max-height:85vh;display:flex;flex-direction:column;animation:aiUp .32s cubic-bezier(0.22,1,0.36,1)}
.ai-panel::before{content:'';position:absolute;top:8px;left:50%;transform:translateX(-50%);width:38px;height:4px;border-radius:3px;background:var(--faint)}
@keyframes aiUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.ai-header{padding:22px 18px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.ai-header-title{font-size:15px;font-weight:800;line-height:1.2}
.ai-header-sub{font-size:11px;color:var(--muted);margin-top:2px}
.ai-messages{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.ai-msg{max-width:86%;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.ai-msg.user{background:var(--text);color:#fff;align-self:flex-end;border-radius:12px 12px 2px 12px}
.ai-msg.ai{background:var(--surface2);color:var(--text);align-self:flex-start;border-radius:2px 12px 12px 12px;border:1px solid var(--border)}
.ai-msg.thinking{color:var(--muted);font-style:italic;background:transparent;border:none;padding-left:0}
.ai-input-row{padding:10px 14px calc(env(safe-area-inset-bottom) + 10px);border-top:1px solid var(--border);display:flex;gap:8px;align-items:flex-end}
.ai-input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;font-family:'Sora',sans-serif;padding:9px 12px;outline:none;resize:none;max-height:100px;overflow-y:auto}
.ai-input:focus{border-color:var(--text)}
.ai-send{width:38px;height:38px;border-radius:10px;background:var(--text);color:#fff;border:none;cursor:pointer;font-size:17px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-suggestions{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 10px}
.ai-chip{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;font-family:'Sora',sans-serif;white-space:nowrap}
.ai-chip:active{background:var(--surface2)}

/* ─── BOTTOM NAV ─── */
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:var(--surface);border-top:1px solid var(--border);display:flex;padding:7px max(18px,env(safe-area-inset-right)) max(9px,calc(env(safe-area-inset-bottom) - 8px)) max(18px,env(safe-area-inset-left));gap:6px;z-index:30;box-shadow:0 -1px 0 var(--border)}
.nav-btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:46px;padding:5px 4px;border-radius:10px;border:none;background:transparent;cursor:pointer;font-family:'Sora',sans-serif;transition:all 0.18s}
.nav-btn .nav-icon{display:flex;align-items:center;justify-content:center;color:var(--blue);transition:all 0.18s}
.nav-btn .nav-label{font-size:9px;font-weight:600;color:var(--muted);letter-spacing:0.3px;text-transform:uppercase;transition:color 0.18s}
.nav-btn.active{background:var(--blue)}
.nav-btn.active .nav-label{color:#ffffff}
.nav-btn.active .nav-icon{color:#ffffff;transform:scale(1.08)}
.nav-btn:active:not(.active){background:var(--surface2)}
.settings-btn:focus-visible{outline:none}

/* ─── DAILY SUMMARY ─── */
.daily-summary{background:var(--text);border-radius:var(--r);padding:16px;margin-bottom:12px;color:#fff;position:relative;overflow:hidden}
.daily-summary::before{content:'';position:absolute;inset:0}
.ds-title{font-size:11px;font-weight:700;opacity:0.7;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:4px}
.ds-value{font-size:32px;font-weight:800;font-family:'JetBrains Mono',monospace;margin-bottom:2px}
.ds-sub{font-size:12px;opacity:0.7}

.settings-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:15px;box-shadow:var(--sh)}
.settings-card-title{font-size:13px;font-weight:800;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--border)}
.settings-row:first-of-type{border-top:0;padding-top:0}
.settings-meta{min-width:0}
.settings-label{font-size:12px;font-weight:700;color:var(--text)}
.settings-help{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.4}
.settings-control{flex-shrink:0;min-width:0;max-width:150px}
.settings-input,.settings-select{width:100%;min-width:0;box-sizing:border-box;background:var(--bg);border:1.5px solid var(--border);border-radius:10px;color:var(--text);font-size:13px;font-weight:700;font-family:'Sora',sans-serif;padding:9px 10px;outline:none}
.settings-input[type="time"]{-webkit-appearance:none;appearance:none;text-align:left}
.settings-input:focus,.settings-select:focus{border-color:var(--blue)}
.settings-toggle{width:48px;height:28px;border:1.5px solid var(--border);border-radius:999px;background:var(--bg);position:relative;cursor:pointer;transition:all .2s}
.settings-toggle::after{content:'';position:absolute;width:20px;height:20px;left:3px;top:2.5px;border-radius:50%;background:var(--surface);box-shadow:0 2px 8px rgba(26,29,46,.16);transition:all .2s}
.settings-toggle.on{background:var(--text);border-color:transparent}
.settings-toggle.on::after{transform:translateX(20px)}
.settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.settings-action{padding:11px 10px;border-radius:11px;border:1.5px solid var(--border);background:var(--bg);color:var(--text);font-size:12px;font-weight:800;cursor:pointer;font-family:'Sora',sans-serif}
.settings-action.primary{background:var(--text);border-color:transparent;color:#fff}

/* ─── CHARTS / STATS ─── */
.chart-card{background:var(--surface);border-radius:var(--r);padding:16px;margin-bottom:12px;border:1px solid var(--border);box-shadow:var(--sh)}
.chart-title{font-size:13px;font-weight:800;margin-bottom:3px}
.chart-sub{font-size:11px;color:var(--muted);margin-bottom:14px}
.chart-wrap{overflow:hidden;border-radius:8px}
.bar-labels{display:flex;justify-content:space-between;margin-top:6px}
.bar-label{font-size:9px;color:var(--muted);font-weight:600;text-align:center;flex:1}
.bar-label.today{color:var(--blue);font-weight:800}
.empty-chart{text-align:center;padding:24px 0;color:var(--faint);font-size:13px;font-weight:600}
.summary-row{display:flex;gap:8px;margin-bottom:12px}
.sum-card{flex:1;background:var(--surface);border-radius:12px;padding:12px;border:1px solid var(--border);text-align:center}
.sum-val{font-size:24px;font-weight:800;font-family:'JetBrains Mono',monospace;color:var(--text)}
.sum-lbl{font-size:9px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-top:3px}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-month{font-size:14px;font-weight:800;color:var(--text)}
.cal-nav-btn{width:32px;height:32px;border-radius:9px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.cal-nav-btn:active{background:var(--surface2)}
.cal-nav-btn.disabled,.cal-nav-btn:disabled{opacity:.3;cursor:default;pointer-events:none}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-head{text-align:center;font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding-bottom:2px}
.cal-cell{aspect-ratio:1;border-radius:8px;background:var(--bg);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--muted)}
.cal-cell.empty{background:transparent;border:none}
.cal-cell.done{background:var(--green);border-color:transparent;color:#fff}
.cal-cell.today{border-color:var(--text);border-width:2px;color:var(--text)}
.cal-cell.done.today{color:#fff}

/* Unified MAXER */
.screen-lock{position:fixed;inset:0;z-index:220;background:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 26px;color:#fff}
.screen-lock.hidden{display:none}
.pin-logo{font-size:46px;margin-bottom:16px;filter:drop-shadow(0 0 22px rgba(239,68,68,.65))}
.pin-title{font-size:24px;font-weight:800;margin-bottom:6px}
.pin-sub{font-size:13px;color:rgba(255,255,255,.55);text-align:center;min-height:22px;margin-bottom:30px;line-height:1.5}
.pin-dots{display:flex;gap:13px;margin-bottom:30px}
.pin-dot{width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,.16);transition:.15s}
.pin-dot.filled{background:rgba(255,255,255,0.8)}
.pin-dot.error{background:#FCA5A5}
.pin-pad{display:grid;grid-template-columns:repeat(3,76px);gap:12px}
.pin-key{width:76px;height:76px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.08);color:#fff;font-size:22px;font-weight:800;cursor:pointer;font-family:'Sora',sans-serif}
.pin-key:active{transform:scale(.94);background:rgba(255,255,255,.14)}
.pin-key.ghost{background:transparent;border:0;pointer-events:none}
.pin-key.del{background:transparent;border:0;color:rgba(255,255,255,.65);font-size:18px}
.pin-link{border:0;background:transparent;color:rgba(255,255,255,.55);font-size:13px;font-weight:700;margin-top:20px;padding:10px;cursor:pointer;font-family:'Sora',sans-serif}
.modal-large{width:100%;max-width:440px;max-height:88vh;overflow-y:auto}
.sheet-overlay{position:fixed;inset:0;z-index:90;background:rgba(26,29,46,.48);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:.2s}
.sheet-overlay.open{opacity:1;pointer-events:auto}
.sheet-panel{width:100%;max-width:480px;background:var(--surface);border-radius:24px 24px 0 0;box-shadow:var(--sh2);padding:18px 18px calc(env(safe-area-inset-bottom) + 24px);transform:translateY(100%);transition:.25s}
.sheet-overlay.open .sheet-panel{transform:translateY(0)}
.sheet-handle{width:38px;height:4px;background:var(--border);border-radius:99px;margin:0 auto 14px}
.journal-toolbar{display:flex;gap:7px;align-items:center;margin-bottom:12px;overflow-x:auto;padding-bottom:2px}
.seg-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--muted);border-radius:11px;padding:9px 10px;font-size:11px;font-weight:800;cursor:pointer;font-family:'Sora',sans-serif;white-space:nowrap}
.seg-btn.active{background:var(--text);border-color:transparent;color:#fff}
.month-nav{display:flex;align-items:center;gap:6px;margin-left:auto}
.month-nav button{width:34px;height:34px;border-radius:11px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:18px;font-weight:800}
.month-name{font-size:12px;font-weight:800;color:var(--text);min-width:118px;text-align:center;text-transform:capitalize}
.journal-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.journal-stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px;box-shadow:var(--sh)}
.journal-stat-num{font-size:24px;font-weight:800;font-family:'JetBrains Mono',monospace;color:var(--text)}
.journal-stat-label{font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.8px;margin-top:3px}
.weekdays,.journal-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.weekdays span{text-align:center;font-size:10px;font-weight:800;color:var(--muted);padding:4px 0}
.day-card{min-height:78px;border:1px solid var(--border);background:var(--surface);border-radius:12px;box-shadow:var(--sh);padding:8px 7px;text-align:left;display:flex;flex-direction:column;gap:5px;overflow:hidden;cursor:pointer;font-family:'Sora',sans-serif}
.day-card.empty{visibility:hidden;pointer-events:none}
.day-card.today{background:var(--text);color:#fff;border-color:transparent}
.day-card.past:not(.has):not(.today){background:rgba(255,255,255,.55);box-shadow:none}
.day-num{font-size:13px;font-weight:800}
.day-text{font-size:10px;color:var(--muted);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}
.day-card.today .day-text,.day-card.today .day-hint{color:rgba(255,255,255,.86)}
.day-hint{font-size:10px;color:var(--faint);margin-top:auto}
.entry-dot{width:6px;height:6px;border-radius:50%;background:var(--green);margin-left:auto}
.journal-list{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh);overflow:hidden}
.journal-row{border:0;border-bottom:1px solid var(--border);background:transparent;width:100%;min-height:54px;padding:0 14px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;font-family:'Sora',sans-serif}
.journal-row:last-child{border-bottom:0}
.journal-row-date{width:54px;font-size:12px;font-weight:800;color:var(--muted)}
.journal-row.today .journal-row-date{color:var(--blue)}
.journal-row-text{flex:1;min-width:0;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-empty{color:var(--faint)}
.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.year-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh);padding:11px;text-align:left;cursor:pointer}
.mini-title{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--muted);letter-spacing:.6px;margin-bottom:8px}
.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.mini-day{aspect-ratio:1;border-radius:3px;background:var(--bg)}
.mini-day.has{background:var(--blue)}
.mini-day.today{outline:2px solid var(--text);outline-offset:1px}
.mini-count{font-size:10px;color:var(--muted);font-weight:700;margin-top:8px}
.entry-textarea{width:100%;height:132px;border:1.5px solid var(--border);border-radius:14px;background:var(--bg);outline:none;padding:13px 14px;color:var(--text);resize:none;font-size:15px;line-height:1.6;font-family:'Sora',sans-serif}
.entry-textarea:focus{border-color:var(--blue);background:#fff}
.sheet-actions{display:flex;gap:9px;align-items:center;margin-top:14px}
.minimum-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.minimum-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px;box-shadow:var(--sh)}
.minimum-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.minimum-emoji{font-size:22px}
.minimum-title{font-size:13px;font-weight:800}
.minimum-desc{font-size:10px;color:var(--muted);line-height:1.4;margin-top:2px}
.minimum-state{margin-left:auto;font-size:10px;font-weight:800;border-radius:99px;padding:5px 8px;background:var(--bg);color:var(--muted)}
.minimum-state.minimum,.minimum-state.complete{background:#F0FDF4;color:var(--green2)}
.minimum-state.skipped{background:#F8FAFC;color:var(--muted)}
.minimum-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.mini-action{border:1.5px solid var(--border);border-radius:10px;background:var(--bg);padding:9px 6px;font-size:10px;font-weight:800;color:var(--text);cursor:pointer;font-family:'Sora',sans-serif}
.mini-action.done{background:var(--text);border-color:transparent;color:#fff}
.nonzero-banner{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.nonzero-title{font-size:16px;font-weight:800;margin-bottom:3px}
.nonzero-sub{font-size:12px;color:var(--muted);line-height:1.5}
.save-day-btn{width:100%;border:0;border-radius:14px;background:var(--text);color:#fff;padding:14px;font-size:14px;font-weight:800;cursor:pointer;font-family:'Sora',sans-serif;margin:10px 0 14px;box-shadow:var(--sh)}
.rescue-grid{display:grid;grid-template-columns:1fr;gap:8px}
.rescue-btn{border:1.5px solid var(--border);background:var(--bg);border-radius:13px;padding:12px;text-align:left;font-size:13px;font-weight:800;color:var(--text);cursor:pointer;font-family:'Sora',sans-serif}

.print-view{display:none}
@media(max-width:420px){.nav-btn .nav-label{font-size:8px}.pin-pad{grid-template-columns:repeat(3,72px)}.pin-key{width:72px;height:72px}.year-grid{grid-template-columns:repeat(2,1fr)}}

/* ─── RECOMPOSICIÓN FÍSICA ─── */
.recomp-hero{background:linear-gradient(135deg,#1e3a5f,#0f4c81);border-radius:var(--r);padding:16px;margin-bottom:12px;color:#fff;position:relative;overflow:hidden}
.recomp-hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='20'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.recomp-hero-title{font-size:11px;font-weight:700;opacity:.65;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:3px}
.recomp-hero-val{font-size:30px;font-weight:800;font-family:'JetBrains Mono',monospace;line-height:1}
.recomp-hero-sub{font-size:12px;opacity:.65;margin-top:3px}
.recomp-metrics-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px}
.recomp-metric{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 10px;text-align:center;box-shadow:var(--sh)}
.recomp-metric-val{font-size:20px;font-weight:800;font-family:'JetBrains Mono',monospace;color:var(--blue);line-height:1}
.recomp-metric-lbl{font-size:9px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-top:4px}
.recomp-form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.recomp-form-title{font-size:12px;font-weight:800;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.recomp-input-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.recomp-field{display:flex;flex-direction:column;gap:4px}
.recomp-label{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}
.recomp-input{background:var(--bg);border:1.5px solid var(--border);border-radius:10px;color:var(--text);font-size:16px;font-weight:700;font-family:'JetBrains Mono',monospace;padding:10px 12px;outline:none;text-align:center;width:100%;transition:border-color .2s}
.recomp-input:focus{border-color:var(--blue)}
.recomp-save-btn{width:100%;padding:12px;border-radius:12px;border:none;background:linear-gradient(135deg,#1e3a5f,#0f4c81);color:#fff;font-size:13px;font-weight:800;cursor:pointer;font-family:'Sora',sans-serif;transition:all .2s;box-shadow:0 4px 14px rgba(30,58,95,.35)}
.recomp-save-btn:active{transform:scale(.97)}
.recomp-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.recomp-chart-title{font-size:13px;font-weight:800;margin-bottom:2px}
.recomp-chart-sub{font-size:11px;color:var(--muted);margin-bottom:12px}
.deficit-card{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.deficit-title{font-size:13px;font-weight:800;color:#0369a1;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.deficit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.deficit-stat{background:#fff;border-radius:10px;padding:10px;text-align:center;border:1px solid #bae6fd}
.deficit-stat-val{font-size:20px;font-weight:800;font-family:'JetBrains Mono',monospace;color:#0369a1;line-height:1}
.deficit-stat-lbl{font-size:9px;color:#0369a1;font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-top:3px;opacity:.7}
.deficit-tip{background:#fff;border-radius:10px;padding:10px 12px;font-size:12px;color:#0c4a6e;line-height:1.5;border:1px solid #bae6fd}
.plan-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.plan-title{font-size:13px;font-weight:800;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.plan-week-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.plan-week-row:last-child{border-bottom:0;padding-bottom:0}
.plan-week-num{width:36px;height:36px;border-radius:50%;background:var(--text);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}
.plan-week-content{flex:1}
.plan-week-title{font-size:12px;font-weight:800;color:var(--text);margin-bottom:2px}
.plan-week-desc{font-size:11px;color:var(--muted);line-height:1.4}
.measures-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.measures-title{font-size:13px;font-weight:800;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.measures-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px}
.progress-towards{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:var(--sh)}
.goal-bar-row{margin-bottom:10px}
.goal-bar-label{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:var(--text);margin-bottom:5px}
.goal-bar-track{height:8px;background:var(--bg);border-radius:8px;overflow:hidden}
.goal-bar-fill{height:100%;border-radius:8px;transition:width .5s ease}

/* ─── REHAB MEJORADO ─── */
.rehab-warmup{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:13px;margin-bottom:12px}
.rehab-warmup-title{font-size:11px;font-weight:800;color:var(--text);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.warmup-list{display:flex;flex-direction:column;gap:6px}
.warmup-item{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);font-weight:600}
.warmup-item-emoji{font-size:16px;flex-shrink:0}
.rehab-tip{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:12px;color:var(--muted);line-height:1.5;display:flex;gap:8px;align-items:flex-start}
.rehab-phase-badge{display:inline-block;background:var(--text);color:#fff;border-radius:8px;padding:3px 10px;font-size:10px;font-weight:800;margin-bottom:10px}
@media print{body{background:#fff}.header,.habits-section,.bottom-nav,.content,.modal-overlay,.screen-lock,.sheet-overlay{display:none!important}.print-view{display:block!important;padding:36px;font-family:'Sora',sans-serif}.print-month-title{font-size:30px;font-weight:800;text-transform:capitalize;margin-bottom:8px}.print-year{font-size:15px;color:#888;margin-bottom:26px}.print-row{display:flex;gap:14px;align-items:baseline;padding:10px 0;border-bottom:1px solid #eee}.print-day-wk{font-size:11px;text-transform:uppercase;color:#aaa;min-width:30px}.print-day-num{font-size:13px;font-weight:800;color:#888;min-width:24px}.print-day-txt{font-size:14px;color:#111;line-height:1.5}.print-empty{color:#ccc;font-style:italic}}
