/*
 * THE Basket — Styles
 * Sections: Variables → Dark Mode → Layout → Header → Onboarding → Loading →
 * Nutrition Form → Profile → Questions/Buttons → Dashboard → Calendar →
 * Programme → Session → Congrats → Exercise → Chat → Programme Mensuel →
 * Nutrition Plan → Shopping → Recovery → Bilan → Navigation → Auth
 */

/* ── Reset & Variables ── */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --orange:#F97316;--orange-dark:#C2510A;--orange-light:#FFF0E6;
  --black:#0A0A0A;--gray-400:#888;--gray-200:#D4D4D4;--white:#FFFFFF;
  --bg:#F0EDE8;--radius:10px;--radius-lg:18px;
  --card-bg:#FFFFFF;--text:#0A0A0A;--text-secondary:#888;
  --border:#e0e0e0;--input-bg:#FFFFFF;--shadow:rgba(0,0,0,0.18);
}

/* ── Mode sombre ── */
[data-theme="dark"]{
  --bg:#121212;--white:#1E1E1E;--black:#F5F5F5;
  --card-bg:#1E1E1E;--text:#E0E0E0;--text-secondary:#999;
  --gray-400:#999;--gray-200:#333;--orange-light:#2A1A0A;
  --border:#333;--input-bg:#2A2A2A;--shadow:rgba(0,0,0,0.5);
}
[data-theme="dark"] body{background:var(--bg)}
[data-theme="dark"] #app{background:var(--card-bg);box-shadow:0 24px 80px var(--shadow)}
[data-theme="dark"] .hdr{background:#0A0A0A}
[data-theme="dark"] .card{background:var(--card-bg);color:var(--text)}
[data-theme="dark"] .card-title{color:var(--text)}
[data-theme="dark"] .bot-nav{background:#0A0A0A}
[data-theme="dark"] .dash-body{background:var(--bg)}
[data-theme="dark"] .q-text,.ob-wrap,.auth-wrap{color:var(--text)}
[data-theme="dark"] .q-opt{background:var(--input-bg);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .q-input{background:var(--input-bg);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .btn-ghost{color:var(--text)}
[data-theme="dark"] .auth-form input{background:var(--input-bg);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .auth-form label{color:var(--text-secondary)}
[data-theme="dark"] .auth-welcome{background:var(--orange-light)}
[data-theme="dark"] .auth-welcome-title,.auth-welcome-text{color:var(--orange)}
[data-theme="dark"] .auth-logo-title{color:var(--text)}
[data-theme="dark"] .auth-logo-sub{color:var(--text-secondary)}
[data-theme="dark"] .prog-item{background:var(--input-bg)}
[data-theme="dark"] .prog-name{color:var(--text)}
[data-theme="dark"] .prog-meta{color:var(--text-secondary)}
[data-theme="dark"] .stat-val{color:var(--text)}
[data-theme="dark"] .stat-lbl{color:var(--text-secondary)}
[data-theme="dark"] .chat-input{background:var(--input-bg);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .msg.ai{background:var(--input-bg);color:var(--text)}
[data-theme="dark"] .chat-sug{background:var(--input-bg);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .profile-row{border-color:var(--border)}
[data-theme="dark"] .profile-section{border-color:var(--border);color:var(--orange)}
[data-theme="dark"] .profile-name{color:var(--text)}
[data-theme="dark"] .profile-value{color:var(--text)}
[data-theme="dark"] .profile-label{color:var(--text-secondary)}
[data-theme="dark"] .profile-edit-section{background:var(--input-bg)}
[data-theme="dark"] .profile-edit-input,.profile-edit-select{background:var(--input-bg);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .profile-chip{background:var(--input-bg);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .recup-item{background:var(--input-bg)}
[data-theme="dark"] .nutr-meal{background:var(--input-bg);color:var(--text)}
[data-theme="dark"] .nutr-total-box{background:var(--input-bg);color:var(--text)}
[data-theme="dark"] .nutr-tab{background:var(--input-bg);color:var(--text-secondary);border-color:var(--border)}
[data-theme="dark"] .nutr-tabs{border-color:var(--border)}
[data-theme="dark"] .nutr-tab.active{background:var(--orange);color:#fff}
[data-theme="dark"] .nutr-week-day{background:var(--input-bg)}
[data-theme="dark"] .nutr-meal-chip{background:var(--card-bg);border-color:var(--border);color:var(--text)}
[data-theme="dark"] .shopping-budget{background:linear-gradient(135deg,rgba(249,115,22,0.15),rgba(249,115,22,0.08));color:#fbbf24}
[data-theme="dark"] .shopping-budget-val{color:#fbbf24}
[data-theme="dark"] .shopping-budget-lbl{color:var(--text-secondary)}
[data-theme="dark"] .ob-humor{background:linear-gradient(135deg,rgba(255,152,0,0.15),rgba(255,152,0,0.08));color:var(--text)}
[data-theme="dark"] .highlight-card{background:linear-gradient(135deg,rgba(249,115,22,0.2),rgba(249,115,22,0.08)) !important;color:#fbbf24 !important}
[data-theme="dark"] .highlight-card *{color:#fbbf24 !important}
[data-theme="dark"] .shopping-cat-title{color:var(--text);border-color:var(--border)}
[data-theme="dark"] .shopping-item{color:var(--text)}
[data-theme="dark"] .shopping-item:hover{background:var(--input-bg)}
[data-theme="dark"] .shopping-item-count{background:rgba(249,115,22,0.15)}
[data-theme="dark"] .meal-card{background:var(--input-bg)}
[data-theme="dark"] .meal-recipe{background:var(--card-bg)}
[data-theme="dark"] .meal-recipe-step{color:var(--text-secondary)}
[data-theme="dark"] .meal-title{color:var(--text)}
[data-theme="dark"] .meal-desc{color:var(--text-secondary)}
[data-theme="dark"] .nutr-day-badge.rest{background:rgba(46,125,50,0.15);color:#66bb6a}
[data-theme="dark"] .recap-header-title,[data-theme="dark"] .recap-card-title{color:#fff}
[data-theme="dark"] .recap-stat{background:var(--input-bg)}
[data-theme="dark"] .recap-session-card{background:var(--input-bg)}
[data-theme="dark"] .recap-recup-row{background:var(--input-bg)}
[data-theme="dark"] .recap-compare{background:var(--input-bg)}
[data-theme="dark"] .recap-divider{background:var(--border)}
[data-theme="dark"] .recap-tip-card{background:rgba(249,115,22,0.1);color:var(--orange)}
[data-theme="dark"] .recap-tip-warning{background:rgba(229,57,53,0.1);color:#ef5350}
[data-theme="dark"] .prog-month-train{background:rgba(249,115,22,0.15)}
[data-theme="dark"] .prog-month-club{background:rgba(59,130,246,0.15)}
[data-theme="dark"] .prog-month-rest{background:var(--input-bg)}
[data-theme="dark"] .prog-month-moved{background:rgba(120,120,120,0.2)}
[data-theme="dark"] .prog-month-received{background:rgba(139,92,246,0.2);box-shadow:inset 0 0 0 2px #8b5cf6}
[data-theme="dark"] .prog-phase-row{background:var(--input-bg)}
[data-theme="dark"] .prog-month-sum-item{background:var(--input-bg)}
[data-theme="dark"] .ex-wrap{background:var(--bg);color:var(--text)}
[data-theme="dark"] .ex-content{background:var(--card-bg)}
[data-theme="dark"] .loading-wrap{color:var(--text)}
[data-theme="dark"] .seance-wrap{background:var(--bg);color:var(--text)}
[data-theme="dark"] .seance-ex-area{background:var(--card-bg)}
[data-theme="dark"] .cal-cell.has-training{background:rgba(249,115,22,0.15)}
[data-theme="dark"] .cal-cell.has-club{background:rgba(59,130,246,0.15)}
[data-theme="dark"] .cal-cell.has-cancelled{background:rgba(220,38,38,0.15);color:#ef5350}
[data-theme="dark"] .cal-cell.has-moved{background:rgba(120,120,120,0.2)}
[data-theme="dark"] .cal-cell.has-received{background:rgba(139,92,246,0.2);color:#a78bfa}
[data-theme="dark"] .cal-nav-btn{border-color:var(--border);color:var(--text)}
[data-theme="dark"] .timer-text{color:var(--orange)}
[data-theme="dark"] .seance-steps{color:var(--text)}
[data-theme="dark"] .seance-steps-toggle{border-color:var(--border);color:var(--text-secondary)}
[data-theme="dark"] .congrats-wrap{color:var(--text)}
[data-theme="dark"] .checkbox-grid label{color:var(--text)}
[data-theme="dark"] .form-section h4{color:var(--text)}
[data-theme="dark"] .hdr{color:#fff}
[data-theme="dark"] .cal-cell{color:var(--text-secondary)}
[data-theme="dark"] .cal-cell.rest{color:#555}
[data-theme="dark"] .cal-cell.today{color:#fff}
[data-theme="dark"] .cal-hdr{color:var(--text-secondary)}
[data-theme="dark"] .prog-date{color:var(--orange)}
[data-theme="dark"] .bot-btn{color:#aaa}
[data-theme="dark"] .bot-btn.active,[data-theme="dark"] .bot-btn:hover{color:var(--orange)}
[data-theme="dark"] .seance-desc{color:var(--text-secondary)}
[data-theme="dark"] .seance-name{color:var(--text)}
[data-theme="dark"] .congrats-title{color:var(--text)}
[data-theme="dark"] .congrats-msg{color:var(--text-secondary)}
[data-theme="dark"] .ex-title{color:var(--text)}
[data-theme="dark"] .ex-desc{color:var(--text-secondary)}
[data-theme="dark"] .ex-steps li{color:var(--text-secondary)}
[data-theme="dark"] .meal-meta{color:var(--text-secondary)}
[data-theme="dark"] .meal-type{color:var(--orange)}
[data-theme="dark"] .meal-recipe-title{color:var(--orange)}
[data-theme="dark"] .shopping-item-name{color:var(--text)}
[data-theme="dark"] .shopping-cat-title{color:var(--text)}
[data-theme="dark"] .recap-focus-label,[data-theme="dark"] .recap-session-focus,[data-theme="dark"] .recap-big-val,[data-theme="dark"] .recap-macro-name,[data-theme="dark"] .recap-macro-val,[data-theme="dark"] .recap-recup-name,[data-theme="dark"] .recap-compare-val{color:var(--text)}
[data-theme="dark"] .prog-icon{background:#2a2a2a}
[data-theme="dark"] .set-tracker-label{color:var(--text)}
[data-theme="dark"] .checkbox-item{background:var(--input-bg);color:var(--text)}
[data-theme="dark"] .nutr-meal-chip{color:var(--text)}
[data-theme="dark"] .nutr-day-label{color:var(--text)}
[data-theme="dark"] .seance-ex-area{color:var(--text)}
[data-theme="dark"] .ob-humor{background:rgba(255,152,0,0.15);color:var(--text)}

/* ── Layout & Screens ── */
body{font-family:'DM Sans',sans-serif;background:var(--bg);min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px}
#app{width:100%;max-width:430px;height:min(90vh,820px);min-height:720px;background:var(--white);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,0.18)}

.screen{display:none;flex-direction:column;flex:1;overflow:hidden;min-height:0}
.screen.active{display:flex}

/* ── Header ── */
.hdr{background:var(--black);color:#fff;padding:16px 20px;display:flex;align-items:center;gap:14px;flex-shrink:0}
.hdr-logo{width:36px;height:36px;background:var(--orange);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.hdr-title{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:2px;line-height:1}
.hdr-sub{font-size:12px;color:#888;margin-top:2px}
.hdr-back{background:none;border:none;color:var(--orange);cursor:pointer;font-size:24px;padding:0;flex-shrink:0}
.hdr-theme{background:none;border:none;cursor:pointer;font-size:20px;padding:6px;line-height:1;color:#888;transition:color .15s}
.hdr-theme:hover{color:var(--orange)}
.hdr-profile{background:none;border:none;cursor:pointer;font-size:22px;padding:6px;line-height:1;color:#888;transition:color .15s}
.hdr-profile:hover{color:var(--orange)}

/* ── Onboarding ── */
.ob-wrap{padding:22px 20px;flex:1;display:flex;flex-direction:column;gap:16px;overflow-y:auto}
.progress-bar{height:3px;background:var(--gray-200);border-radius:2px;overflow:hidden;flex-shrink:0}
.progress-fill{height:100%;background:var(--orange);transition:width 0.35s ease;border-radius:2px}
.q-label{font-size:11px;color:var(--gray-400);font-weight:500;text-transform:uppercase;letter-spacing:0.5px}
.q-text{font-family:'Bebas Neue',sans-serif;font-size:23px;color:var(--black);line-height:1.2}
.q-hint{font-size:12px;color:var(--orange);font-style:italic}
.ob-humor{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-left:4px solid var(--orange);border-radius:10px;padding:12px 16px;font-size:14px;color:#333;line-height:1.5;display:none;animation:humorPop .4s ease}
.ob-humor.show{display:block}
@keyframes humorPop{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}
.ob-nav{display:flex;justify-content:space-between;align-items:center;padding-top:6px;margin-top:auto;flex-shrink:0}

/* ── Loading ── */
.loading-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;min-height:100vh;text-align:center;background:linear-gradient(180deg,#1a1a1a 0%,#111 100%)}
.loading-logo{font-size:64px;margin-bottom:12px;animation:loadBounce 2s ease-in-out infinite}
@keyframes loadBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
.loading-title{font-family:'Bebas Neue',sans-serif;font-size:36px;color:var(--orange);letter-spacing:2px;margin-bottom:6px}
.loading-subtitle{font-size:14px;color:var(--gray-400);margin-bottom:32px}
.loading-bar-wrap{width:100%;max-width:320px;height:10px;background:var(--gray-700);border-radius:10px;overflow:hidden;margin-bottom:10px;position:relative}
.loading-bar-fill{height:100%;background:linear-gradient(90deg,var(--orange),#ff8c00,var(--orange));border-radius:10px;transition:width .6s ease;width:0%;background-size:200% 100%;animation:loadShine 1.5s ease-in-out infinite}
@keyframes loadShine{0%{background-position:200% 0}100%{background-position:-200% 0}}
.loading-percent{font-family:'Bebas Neue',sans-serif;font-size:28px;color:var(--orange);margin-bottom:4px}
.loading-step{font-size:12px;color:var(--gray-400);margin-bottom:32px;min-height:18px}
.loading-humor{background:rgba(255,152,0,.1);border:1px solid rgba(255,152,0,.2);border-radius:14px;padding:16px 22px;max-width:340px;font-size:14px;color:#f5f5f5;line-height:1.6;min-height:80px;display:flex;align-items:center;justify-content:center;animation:humorFade .6s ease}
@keyframes humorFade{0%{opacity:0;transform:scale(.95)}100%{opacity:1;transform:scale(1)}}
.loading-facts{margin-top:24px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.loading-fact{background:var(--gray-700);border-radius:8px;padding:8px 14px;font-size:11px;color:var(--gray-300)}

/* ── Nutrition Questionnaire ── */
.form-section{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--black);padding:8px 0 6px;border-bottom:1px solid var(--gray-200);margin-bottom:8px}
.checkbox-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}
.checkbox-item{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg);border-radius:8px;font-size:13px;cursor:pointer;border:1.5px solid transparent;transition:all .15s}
.checkbox-item:has(input:checked){background:var(--orange-light);border-color:var(--orange);color:var(--orange-dark)}
.checkbox-item input{accent-color:var(--orange);margin:0}

/* ── Profile ── */
.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;font-family:'Bebas Neue',sans-serif;flex-shrink:0}
.profile-name{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--black)}
.profile-email{font-size:12px;color:var(--gray-400)}
.profile-section{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--orange);margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid #eee}
.profile-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f5f5f5}
.profile-label{font-size:13px;color:var(--gray-400);min-width:120px}
.profile-value{font-size:13px;color:var(--black);font-weight:500;text-align:right;flex:1}
.profile-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.profile-tag{background:#fff3e0;color:var(--orange);font-size:11px;padding:3px 10px;border-radius:20px;font-weight:500}
.profile-edit-section{background:#fafafa;border-radius:12px;padding:16px;margin-top:12px}
.profile-edit-row{margin-bottom:14px}
.profile-edit-label{font-size:12px;color:var(--gray-400);margin-bottom:4px;font-weight:500}
.profile-edit-input{width:100%;padding:10px 12px;border:1.5px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:'DM Sans',sans-serif;background:#fff;transition:border-color .2s}
.profile-edit-input:focus{border-color:var(--orange);outline:none}
.profile-edit-select{width:100%;padding:10px 12px;border:1.5px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:'DM Sans',sans-serif;background:#fff;appearance:none}
.profile-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.profile-chip{padding:8px 14px;border-radius:20px;font-size:12px;font-family:'DM Sans',sans-serif;border:1.5px solid #e0e0e0;background:#fff;cursor:pointer;transition:all .15s}
.profile-chip.sel{background:var(--orange);color:#fff;border-color:var(--orange)}
.profile-actions{display:flex;gap:10px;margin-top:20px}
.profile-btn-save{flex:1;padding:13px;border:none;border-radius:10px;background:var(--orange);color:#fff;font-size:15px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer}
.profile-btn-save:disabled{opacity:.5}
.profile-btn-logout{padding:13px 20px;border:1.5px solid #e53935;border-radius:10px;background:none;color:#e53935;font-size:14px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer}

/* ── Questions & Buttons ── */
.q-options{display:flex;flex-direction:column;gap:8px}
.q-opt{padding:11px 15px;border:1.5px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;font-size:14px;background:var(--white);color:var(--black);text-align:left;transition:all 0.15s;font-family:'DM Sans',sans-serif;width:100%;display:flex;justify-content:space-between;align-items:center}
.q-opt:hover{border-color:var(--orange);background:var(--orange-light)}
.q-opt.sel{border-color:var(--orange);background:var(--orange-light);color:var(--orange-dark);font-weight:500}
.q-opt .check{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--gray-200);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;transition:all 0.15s}
.q-opt.sel .check{background:var(--orange);border-color:var(--orange);color:#fff}
.q-input{width:100%;padding:12px 15px;border:1.5px solid var(--gray-200);border-radius:var(--radius);font-size:15px;font-family:'DM Sans',sans-serif;background:var(--white);color:var(--black)}
.q-input:focus{outline:none;border-color:var(--orange)}
.btn{padding:12px 24px;border-radius:var(--radius);border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all 0.15s;font-family:'DM Sans',sans-serif}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--orange-dark)}
.btn-ghost{background:none;border:1.5px solid var(--gray-200);color:#666}
.btn-ghost:hover{border-color:var(--orange);color:var(--orange)}
.btn-full{width:100%;padding:14px;border-radius:var(--radius);border:none;cursor:pointer;font-size:15px;font-weight:600;background:var(--orange);color:#fff;font-family:'DM Sans',sans-serif;transition:all 0.15s;margin-top:8px}
.btn-full:hover{background:var(--orange-dark)}

/* ── Dashboard ── */
.dash-body{flex:1;background:var(--bg);padding:13px;display:flex;flex-direction:column;gap:11px;overflow-y:auto}
.hidden{display:none!important}
.card{background:var(--white);border-radius:var(--radius-lg);padding:15px}
.card-title{font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:1px;color:var(--gray-400);margin-bottom:12px}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat{background:var(--bg);border-radius:var(--radius);padding:12px;text-align:center}
.stat-val{font-family:'Bebas Neue',sans-serif;font-size:26px;color:var(--orange)}
.stat-lbl{font-size:11px;color:var(--gray-400);margin-top:3px;font-weight:500}
/* ── Calendrier mensuel ── */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-nav-btn{background:none;border:1.5px solid var(--border);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:18px;color:var(--text);display:flex;align-items:center;justify-content:center;transition:all .15s}
.cal-nav-btn:hover{border-color:var(--orange);color:var(--orange)}
.cal-nav-label{font-family:'Bebas Neue',sans-serif;font-size:16px;letter-spacing:1px;color:var(--text)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.cal-hdr{font-size:10px;color:var(--gray-400);padding:4px 0;font-weight:600;text-transform:uppercase}
.cal-cell{position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;font-size:12px;color:var(--text-secondary);transition:all .15s}
.cal-cell.has-training{background:var(--orange-light);color:var(--orange);font-weight:600}
.cal-cell.has-club{background:#eff6ff;color:#3b82f6;font-weight:600}
.cal-cell.has-cancelled{background:#fef2f2;color:#dc2626;font-weight:600;text-decoration:line-through}
.cal-cell.has-moved{background:#f3f4f6;color:#666;opacity:0.7}
.cal-cell.has-received{background:#ede9fe;color:#8b5cf6;font-weight:600}
.cal-cell-clickable{cursor:pointer;transition:transform 0.1s ease, box-shadow 0.1s ease}
.cal-cell-clickable:hover{transform:scale(1.08);box-shadow:0 2px 8px rgba(0,0,0,0.12);z-index:2}
.cal-cell-clickable:active{transform:scale(0.96)}
.cal-cell.today{box-shadow:0 0 0 2px var(--orange);font-weight:700;color:var(--text)}
.cal-cell.rest{color:var(--gray-200)}
.cal-cell-num{font-size:13px;line-height:1}
.cal-cell-dot{width:5px;height:5px;border-radius:50%;margin-top:2px}
.dot-training{background:var(--orange)}
.dot-club{background:#3b82f6}
.dot-today{background:var(--orange);box-shadow:0 0 0 2px var(--orange-light)}
.cal-legend{display:flex;gap:12px;justify-content:center;margin-top:10px;font-size:11px;color:var(--text-secondary)}
.cal-legend-item{display:flex;align-items:center;gap:4px}
.cal-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.prog-date{font-size:11px;color:var(--orange);font-weight:600;margin-right:4px}
.badge-today{font-size:10px;background:var(--orange);color:#fff;padding:1px 6px;border-radius:8px;margin-left:4px}
.prog-item-past{opacity:0.5}
.prog-list{display:flex;flex-direction:column;gap:9px}
.prog-item{display:flex;align-items:center;gap:12px;padding:11px 13px;background:var(--bg);border-radius:var(--radius);cursor:pointer;border:1.5px solid transparent;transition:all 0.15s}
.prog-item:hover{border-color:var(--orange);background:var(--orange-light)}
.prog-icon{width:40px;height:40px;background:var(--black);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.prog-info{flex:1}
.prog-name{font-size:14px;font-weight:500;color:var(--black)}
.prog-meta{font-size:12px;color:var(--gray-400);margin-top:2px}
.prog-arrow{color:var(--gray-400);font-size:20px}
.start-btn{background:var(--orange);color:#fff;border:none;border-radius:var(--radius);padding:10px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap}
.start-btn-done{display:inline-flex;align-items:center;gap:5px;background:rgba(34,197,94,0.12);color:#16a34a;border:1.5px solid #16a34a;border-radius:var(--radius);padding:8px 14px;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none}
[data-theme="dark"] .start-btn-done{background:rgba(34,197,94,0.15);color:#4ade80;border-color:#4ade80}

/* ── Session ── */
.seance-wrap{flex:1;display:flex;flex-direction:column;background:var(--white);overflow:hidden}
.seance-topbar{padding:12px 16px;background:var(--bg);display:flex;align-items:center;gap:10px;flex-shrink:0}
.seance-progress-track{flex:1;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}
.seance-progress-fill{height:100%;background:var(--orange);transition:width 0.4s ease;border-radius:3px}
.seance-counter{font-size:13px;font-weight:600;color:var(--orange);white-space:nowrap}
.seance-ex-area{flex:1;display:flex;flex-direction:column;align-items:center;padding:20px;text-align:center;overflow-y:auto}
.seance-anim{font-size:90px;animation:bounce 0.9s ease-in-out infinite alternate;margin-bottom:16px}
@keyframes bounce{from{transform:translateY(0)}to{transform:translateY(-14px)}}
.seance-name{font-family:'Bebas Neue',sans-serif;font-size:30px;color:var(--black);margin-bottom:16px}
.seance-sets{width:100%;max-width:340px;margin-bottom:12px}
.seance-sets-row{display:flex;gap:20px;justify-content:center;margin-bottom:8px}
.seance-set-item{text-align:center}
.seance-set-val{font-family:'Bebas Neue',sans-serif;font-size:28px;color:var(--orange)}
.seance-set-lbl{font-size:11px;color:var(--gray-400);font-weight:500}

/* Set tracker dots */
.set-tracker{text-align:center;margin-bottom:8px}
.set-tracker-label{font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px;display:block}
.set-dots{display:flex;gap:8px;justify-content:center;margin-top:4px}
.set-dot{width:14px;height:14px;border-radius:50%;background:var(--gray-200);transition:all .3s}
.set-dot.active{background:var(--orange);box-shadow:0 0 8px rgba(249,115,22,0.4);transform:scale(1.2)}
.set-dot.done{background:var(--orange)}

/* Rest timer */
.seance-timer-zone{margin:12px 0;transition:all .3s}
.timer-wrap{display:flex;flex-direction:column;align-items:center}
.timer-svg{width:130px;height:130px;transform:rotate(-90deg)}
.timer-bg{fill:none;stroke:var(--gray-200);stroke-width:8}
.timer-circle{fill:none;stroke:var(--orange);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .9s linear}
.timer-circle.timer-ending{stroke:#ef4444;animation:pulse-timer .5s ease-in-out infinite}
@keyframes pulse-timer{0%,100%{opacity:1}50%{opacity:0.5}}
.timer-text{position:relative;margin-top:-85px;font-family:'Bebas Neue',sans-serif;font-size:42px;color:var(--orange)}
.timer-circle.timer-ending ~ .timer-text,.seance-timer-zone .timer-ending + .timer-text{color:#ef4444}
.timer-label{font-size:12px;color:var(--gray-400);font-weight:500;margin-top:-4px}
.timer-hint{font-size:12px;color:var(--text-secondary);margin-top:10px}
.btn-rest{background:#334155!important}

/* Steps in session */
.seance-steps-area{width:100%;max-width:340px;margin-top:12px}
.seance-steps-toggle{background:none;border:1.5px solid var(--border);border-radius:var(--radius);padding:8px 16px;cursor:pointer;font-size:12px;color:var(--text-secondary);font-family:'DM Sans',sans-serif;transition:all .15s;width:100%}
.seance-steps-toggle:hover{border-color:var(--orange);color:var(--orange)}
.seance-steps-list{margin-top:10px}
.seance-steps{list-style:none;text-align:left;font-size:12px;line-height:1.7;color:var(--text)}
.seance-steps li{padding:6px 0;border-bottom:1px solid var(--border);padding-left:8px}
.seance-steps li:last-child{border-bottom:none}

.seance-desc{font-size:13px;color:#666;line-height:1.65;max-width:300px}
.seance-footer{padding:16px 20px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}
.seance-skip{background:none;border:1.5px solid var(--gray-200);border-radius:var(--radius);padding:11px;cursor:pointer;font-size:13px;color:#666;font-family:'DM Sans',sans-serif;transition:all 0.15s}
.seance-skip:hover{border-color:var(--orange);color:var(--orange)}

/* ── Congratulations ── */
.congrats-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;background:var(--white)}
.congrats-emoji{font-size:72px;margin-bottom:16px;animation:pop 0.5s ease}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.2)}100%{transform:scale(1)}}
.congrats-title{font-family:'Bebas Neue',sans-serif;font-size:34px;color:var(--black);margin-bottom:10px}
.congrats-msg{font-size:14px;color:#555;line-height:1.7;margin-bottom:24px;max-width:300px}
.congrats-stars{font-size:28px;margin-bottom:20px;letter-spacing:4px}

/* ── Exercise Detail ── */
.ex-wrap{flex:1;background:var(--white);overflow-y:auto}
.ex-gif{width:100%;height:180px;background:var(--black);display:flex;align-items:center;justify-content:center}
.ex-gif-anim{font-size:80px;animation:bounce 0.9s ease-in-out infinite alternate}
.ex-content{padding:18px}
.ex-title{font-family:'Bebas Neue',sans-serif;font-size:26px;color:var(--black);margin-bottom:8px}
.ex-tags{display:flex;gap:7px;margin-bottom:14px;flex-wrap:wrap}
.tag{padding:4px 11px;border-radius:20px;font-size:12px;font-weight:500;background:var(--orange-light);color:var(--orange-dark)}
.sets-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.set-box{background:var(--bg);border-radius:var(--radius);padding:12px;text-align:center}
.set-val{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--orange)}
.set-lbl{font-size:11px;color:var(--gray-400);margin-top:3px;font-weight:500}
.ex-section{margin-bottom:16px}
.ex-section-title{font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:1px;color:var(--gray-400);margin-bottom:8px}
.ex-desc{font-size:14px;color:#555;line-height:1.75}
.ex-steps{list-style:none;display:flex;flex-direction:column;gap:8px}
.ex-steps li{display:flex;gap:10px;font-size:14px;color:#555;line-height:1.55}
.step-num{width:22px;height:22px;background:var(--orange);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;margin-top:1px}

/* ── Chat ── */
.chat-wrap{flex:1;display:flex;flex-direction:column;background:var(--bg);min-height:0}
.chat-msgs{flex:1;padding:14px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}
.msg{max-width:85%;font-size:14px;line-height:1.65;padding:11px 15px;border-radius:var(--radius-lg)}
.msg.ai{background:var(--white);color:var(--black);align-self:flex-start;border-radius:4px var(--radius-lg) var(--radius-lg) var(--radius-lg)}
.msg.user{background:var(--orange);color:#fff;align-self:flex-end;border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg)}
.dots{display:flex;gap:5px;align-items:center;padding:3px 0}
.dot{width:7px;height:7px;background:var(--orange);border-radius:50%;animation:dot 1.2s ease-in-out infinite}
.dot:nth-child(2){animation-delay:0.2s}
.dot:nth-child(3){animation-delay:0.4s}
@keyframes dot{0%,80%,100%{transform:scale(0.75);opacity:0.4}40%{transform:scale(1.2);opacity:1}}
.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}
.chat-sug{padding:6px 12px;border:1.5px solid var(--orange);border-radius:20px;font-size:12px;color:var(--orange);cursor:pointer;background:var(--white);font-family:'DM Sans',sans-serif;transition:all 0.15s}
.chat-sug:hover{background:var(--orange);color:#fff}
.chat-input-row{display:flex;gap:10px;padding:12px 14px;background:var(--white);border-top:1px solid var(--bg);flex-shrink:0}
.chat-input{flex:1;padding:11px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius);font-size:14px;font-family:'DM Sans',sans-serif;background:var(--white);color:var(--black)}
.chat-input:focus{outline:none;border-color:var(--orange)}
.chat-send{width:42px;height:42px;background:var(--orange);border:none;border-radius:var(--radius);cursor:pointer;color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.15s}
.chat-send:hover{background:var(--orange-dark)}
.chat-cursor{display:inline-block;width:2px;height:0.9em;background:var(--orange);margin-left:1px;vertical-align:text-bottom;animation:cursor-blink 0.75s step-end infinite}
@keyframes cursor-blink{50%{opacity:0}}

/* ── Programme Mensuel ── */
.prog-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px}
.prog-month-hdr{text-align:center;font-size:11px;font-weight:600;color:var(--text-secondary);padding:6px 0}
.prog-month-cell{border-radius:10px;padding:8px 4px;text-align:center;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:all .15s}
.prog-month-empty{background:transparent}
.prog-month-train{background:var(--orange-light)}
.prog-month-club{background:#dbeafe}
.prog-month-rest{background:var(--bg)}
.prog-month-moved{background:#f3f4f6;opacity:0.6}
.prog-month-received{background:#ede9fe;box-shadow:inset 0 0 0 2px #8b5cf6}
.prog-month-cancelled{background:#fef2f2;opacity:0.55;text-decoration:line-through}
.prog-month-multi{position:absolute;top:2px;right:3px;background:#F97316;color:#fff;font-size:9px;font-weight:700;padding:0 4px;border-radius:7px;line-height:1.4}
.prog-month-cell{position:relative}
.cal-cell{position:relative}
.prog-item-cancelled{opacity:0.6}
.prog-item-cancelled .prog-name, .prog-item-cancelled .prog-meta{text-decoration:line-through;text-decoration-color:#dc2626}
.prog-month-today{outline:2px solid var(--orange);outline-offset:-2px}
.prog-month-day{font-size:13px;font-weight:600;color:var(--text)}
.prog-month-icon{font-size:16px;line-height:1}
.prog-month-legend{display:flex;justify-content:center;gap:16px;margin-top:14px;flex-wrap:wrap}
.prog-month-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}
.prog-month-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.prog-month-phases{margin-top:8px}
.prog-phase-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border-radius:10px;margin-bottom:6px}
.prog-phase-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.prog-phase-label{font-size:13px;font-weight:600;color:var(--text);flex:1}
.prog-phase-dates{font-size:12px;color:var(--text-secondary)}
.prog-month-summary{display:flex;gap:10px;margin-top:16px}
.prog-month-sum-item{flex:1;background:var(--bg);border-radius:12px;padding:14px 10px;text-align:center}
.prog-month-sum-val{font-family:'Bebas Neue',sans-serif;font-size:28px;color:var(--orange);line-height:1}
.prog-month-sum-lbl{font-size:11px;color:var(--text-secondary);margin-top:4px}

/* ── Nutrition Plan ── */
.nutr-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.nutr-nav-btn{background:none;border:1.5px solid var(--gray-200);border-radius:8px;width:36px;height:36px;cursor:pointer;font-size:18px;color:var(--gray-400);display:flex;align-items:center;justify-content:center;transition:all 0.15s;font-family:'DM Sans',sans-serif}
.nutr-nav-btn:hover{border-color:var(--orange);color:var(--orange)}
.nutr-nav-btn:disabled{opacity:0.3;cursor:default}
.nutr-day-label{font-family:'Bebas Neue',sans-serif;font-size:20px;color:var(--black);text-align:center}
.nutr-day-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600;margin-left:8px}
.nutr-day-badge.train{background:var(--orange-light);color:var(--orange-dark)}
.nutr-day-badge.rest{background:#e8f5e9;color:#2e7d32}
.nutr-totals{display:flex;gap:10px;margin-bottom:14px}
.nutr-total-box{flex:1;background:var(--bg);border-radius:var(--radius);padding:10px;text-align:center}
.nutr-total-val{font-family:'Bebas Neue',sans-serif;font-size:20px;color:var(--orange)}
.nutr-total-lbl{font-size:10px;color:var(--gray-400);font-weight:500;margin-top:2px}
.nutr-dots{display:flex;justify-content:center;gap:5px;margin-bottom:12px}
.nutr-dot{width:7px;height:7px;border-radius:50%;background:var(--gray-200);transition:background 0.2s}
.nutr-dot.active{background:var(--orange)}
.meal-list{display:flex;flex-direction:column;gap:9px}
.meal-card{background:var(--bg);border-radius:var(--radius);padding:13px;cursor:pointer;border:1.5px solid transparent;transition:all 0.15s}
.meal-card:hover{border-color:var(--orange);background:var(--orange-light)}
.meal-card.open{border-color:var(--orange)}
.meal-recipe{display:none;margin-top:10px;padding:12px;background:var(--white);border-radius:8px;border-left:3px solid var(--orange)}
.meal-recipe.show{display:block}
.meal-recipe-title{font-size:12px;font-weight:700;color:var(--orange);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:8px}
.meal-recipe-step{font-size:13px;color:#444;line-height:1.6;padding:3px 0}
.meal-type{font-size:11px;color:var(--orange);font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px}
.meal-top{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.meal-emoji{font-size:24px}
.meal-title{font-size:14px;font-weight:600;color:var(--black)}
.meal-meta{font-size:12px;color:var(--gray-400)}
.meal-desc{font-size:12px;color:#666;line-height:1.5;margin-top:4px}
.meal-macro{font-size:11px;color:var(--orange);font-weight:600;margin-top:5px}

/* ── Nutrition Tabs & Week View ── */
.nutr-tabs{display:flex;gap:0;border-radius:var(--radius);overflow:hidden;border:1.5px solid var(--gray-200);margin-bottom:4px}
.nutr-tab{flex:1;padding:10px 0;border:none;background:var(--white);font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;color:var(--gray-400);cursor:pointer;transition:all .15s}
.nutr-tab.active{background:var(--orange);color:#fff}
.nutr-tab:hover:not(.active){background:var(--orange-light);color:var(--orange)}
.nutr-week-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.nutr-week-day{background:var(--bg);border-radius:var(--radius);padding:14px;cursor:pointer;border:1.5px solid transparent;transition:all .15s}
.nutr-week-day:hover{border-color:var(--orange);background:var(--orange-light)}
.nutr-week-day-today{border-color:var(--orange);background:var(--orange-light)}
.nutr-week-day-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.nutr-week-day-hdr strong{font-size:14px;color:var(--text)}
.nutr-week-day-kcal{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--orange)}
.nutr-week-day-meals{display:flex;flex-wrap:wrap;gap:6px}
.nutr-meal-chip{display:inline-block;padding:4px 10px;background:var(--white);border-radius:20px;font-size:11px;color:var(--text);border:1px solid var(--gray-200);white-space:nowrap}

/* ── Shopping List ── */
.shopping-budget{text-align:center;padding:16px;background:linear-gradient(135deg,var(--orange-light),#fff3e0);border-radius:var(--radius);margin:12px 0;color:var(--orange-dark)}
/* Carte d'en-tête orange utilisée en "Aujourd'hui" nutrition et "Récup du jour" */
.highlight-card{background:linear-gradient(135deg,var(--orange-light),#fff3e0);border-radius:12px;color:var(--orange-dark)}
.shopping-budget-val{font-family:'Bebas Neue',sans-serif;font-size:28px;color:var(--orange)}
.shopping-budget-lbl{font-size:12px;color:var(--gray-400);margin-top:2px}
.shopping-list{display:flex;flex-direction:column;gap:16px;margin-top:12px}
.shopping-cat{}
.shopping-cat-title{font-family:'Bebas Neue',sans-serif;font-size:15px;color:var(--text);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--gray-200)}
.shopping-items{display:flex;flex-direction:column;gap:4px}
.shopping-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:13px;color:var(--text);cursor:pointer;transition:background .15s}
.shopping-item:hover{background:var(--bg)}
.shopping-item:has(input:checked) .shopping-item-name{text-decoration:line-through;color:var(--gray-400)}
.shopping-check{accent-color:var(--orange);width:18px;height:18px;flex-shrink:0}
.shopping-item-name{flex:1}
.shopping-item-count{font-size:11px;color:var(--orange);font-weight:600;background:var(--orange-light);padding:2px 8px;border-radius:10px}

/* ── Recovery ── */
.recup-list{display:flex;flex-direction:column;gap:9px}
.recup-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg);border-radius:var(--radius);cursor:pointer;border:1.5px solid transparent;transition:all 0.15s}
.recup-item:hover{border-color:var(--orange);background:var(--orange-light)}

/* ── Recap (Bilan) ── */
.recap-header{text-align:center;padding:8px 0 4px}
.recap-header-emoji{font-size:36px;margin-bottom:4px}
.recap-header-title{font-family:'Bebas Neue',sans-serif;font-size:28px;color:var(--black)}
.recap-header-month{font-size:14px;color:var(--text-secondary);margin-top:2px}

.recap-card-header{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.recap-card-icon{font-size:32px;flex-shrink:0}
.recap-card-title{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--black);line-height:1.1}
.recap-card-desc{font-size:13px;color:var(--text-secondary);margin-top:2px}

.recap-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.recap-stat{background:var(--bg);border-radius:12px;padding:16px 14px;text-align:center}
.recap-stat-val{font-family:'Bebas Neue',sans-serif;font-size:32px;color:var(--orange);line-height:1}
.recap-stat-unit{font-size:18px;color:var(--text-secondary)}
.recap-stat-lbl{font-size:12px;color:var(--text-secondary);margin-top:4px;font-weight:500}

.recap-progress-section{margin-bottom:16px}
.recap-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text)}
.recap-progress-val{font-weight:600;color:var(--orange)}
.recap-progress-track{height:10px;background:var(--bg);border-radius:6px;overflow:hidden}
.recap-progress-fill{height:100%;background:var(--orange);border-radius:6px;transition:width 0.5s ease}

.recap-divider{height:1px;background:var(--gray-200);margin:20px 0}
.recap-sub-title{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--text);margin-bottom:14px}

.recap-focus-list{display:flex;flex-direction:column;gap:14px}
.recap-focus-item{display:flex;flex-direction:column;gap:6px}
.recap-focus-label{font-size:13px;font-weight:500;color:var(--text)}
.recap-focus-bar-wrap{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}
.recap-focus-bar{height:100%;background:var(--orange);border-radius:4px}
.recap-focus-val{font-size:12px;font-weight:600;color:var(--orange)}

.recap-session-list{display:flex;flex-direction:column;gap:8px}
.recap-session-card{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--bg);border-radius:12px}
.recap-session-left{display:flex;flex-direction:column;gap:2px}
.recap-session-date{font-size:12px;font-weight:600;color:var(--orange)}
.recap-session-focus{font-size:14px;font-weight:500;color:var(--text)}
.recap-session-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--text-secondary);font-weight:500}

.recap-big-stat{text-align:center;padding:20px 0;margin-bottom:16px}
.recap-big-val{font-family:'Bebas Neue',sans-serif;font-size:48px;color:var(--orange);line-height:1}
.recap-big-lbl{font-size:13px;color:var(--text-secondary);margin-top:4px}

.recap-macro-list{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}
.recap-macro-item{display:flex;flex-direction:column;gap:6px}
.recap-macro-head{display:flex;align-items:center;gap:8px;font-size:14px}
.recap-macro-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.recap-macro-name{font-weight:500;color:var(--text);flex:1}
.recap-macro-val{font-weight:600;color:var(--text)}
.recap-macro-pct{font-size:12px;color:var(--text-secondary);min-width:36px;text-align:right}
.recap-macro-track{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}
.recap-macro-fill{height:100%;border-radius:4px;transition:width 0.5s ease}

.recap-compare{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg);border-radius:12px;margin-bottom:8px}
.recap-compare-item{flex:1;text-align:center}
.recap-compare-icon{font-size:24px;margin-bottom:4px}
.recap-compare-val{font-family:'Bebas Neue',sans-serif;font-size:28px;color:var(--orange);line-height:1}
.recap-compare-lbl{font-size:11px;color:var(--text-secondary);margin-top:4px;line-height:1.3}
.recap-compare-vs{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--text-secondary)}
.recap-compare-diff{text-align:center;font-size:12px;color:var(--orange);font-weight:600}

.recap-recup-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.recap-recup-row{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--bg);border-radius:12px}
.recap-recup-emoji{font-size:24px;flex-shrink:0}
.recap-recup-name{font-size:14px;font-weight:500;color:var(--text)}
.recap-recup-dur{font-size:12px;color:var(--text-secondary);margin-top:2px}

.recap-tip-card{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:var(--orange-light);border-radius:12px;font-size:13px;color:var(--orange-dark);line-height:1.5}
.recap-tip-emoji{font-size:18px;flex-shrink:0;line-height:1.3}
.recap-tip-warning{background:#fef2f2;color:#b71c1c}

.recap-empty{text-align:center;padding:24px 16px}
.recap-empty-emoji{font-size:40px;margin-bottom:8px}
.recap-empty-text{font-size:13px;color:var(--text-secondary);line-height:1.6}

/* ── Navigation ── */
.bot-nav{display:flex;background:var(--black);flex-shrink:0}
.bot-btn{flex:1;padding:11px 0 9px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:#555;transition:color 0.15s}
.bot-btn.active,.bot-btn:hover{color:var(--orange)}
.bot-btn-icon{font-size:18px;line-height:1}
.bot-btn-lbl{font-size:10px;font-weight:500;font-family:'DM Sans',sans-serif}

/* ── Auth ── */
.auth-wrap{padding:30px 24px;flex:1;display:flex;flex-direction:column;justify-content:center;gap:0}
.auth-logo{text-align:center;margin-bottom:20px}
.auth-logo-icon{width:56px;height:56px;background:var(--orange);border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:28px}
.auth-logo-title{font-family:'Bebas Neue',sans-serif;font-size:28px;color:var(--black);margin-top:8px;letter-spacing:2px}
.auth-logo-sub{font-size:13px;color:var(--gray-400);margin-top:2px}
.auth-welcome{background:var(--orange-light);border-radius:var(--radius);padding:16px 18px;margin-bottom:18px;text-align:center}
.auth-welcome-title{font-family:'Bebas Neue',sans-serif;font-size:17px;color:var(--orange-dark);margin-bottom:6px}
.auth-welcome-text{font-size:12.5px;color:#555;line-height:1.55}
.auth-form{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.auth-field{position:relative}
.auth-field label{display:block;font-size:12px;font-weight:600;color:var(--black);margin-bottom:5px}
.auth-field input{width:100%;padding:12px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius);font-size:14px;font-family:'DM Sans',sans-serif;background:var(--white);color:var(--black);transition:border-color 0.15s}
.auth-field input:focus{outline:none;border-color:var(--orange)}
.auth-field .eye-toggle{position:absolute;right:12px;top:32px;background:none;border:none;cursor:pointer;font-size:16px;color:var(--gray-400)}
.auth-error{background:#fef2f2;color:#dc2626;padding:10px 14px;border-radius:var(--radius);font-size:13px;display:none;border:1px solid #fecaca}
.auth-success{background:#f0fdf4;color:#166534;padding:10px 14px;border-radius:var(--radius);font-size:13px;display:none;border:1px solid #bbf7d0}
.auth-btn{width:100%;padding:13px;border-radius:var(--radius);border:none;cursor:pointer;font-size:15px;font-weight:600;background:var(--orange);color:#fff;font-family:'DM Sans',sans-serif;transition:all 0.15s;margin-top:4px}
.auth-btn:hover{background:var(--orange-dark)}
.auth-btn:disabled{opacity:0.6;cursor:not-allowed}
.auth-links{text-align:center;margin-top:14px;font-size:13px;color:var(--gray-400)}
.auth-links a{color:var(--orange);cursor:pointer;text-decoration:none;font-weight:500}
.auth-links a:hover{text-decoration:underline}
.auth-divider{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--gray-400);font-size:12px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--gray-200)}
.auth-2fa-field{display:flex;gap:8px;align-items:center}
.auth-2fa-field input{text-align:center;letter-spacing:6px;font-size:18px;font-weight:600}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE (chargé en dernier pour override les règles de base)
   ══════════════════════════════════════════════════════════ */

/* ── Responsive : plein écran sur mobile / petit écran ── */
@media (max-width:600px), (max-height:740px){
  body{padding:0;align-items:stretch;justify-content:stretch}
  #app{max-width:100%;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;border-radius:0;box-shadow:none}
}

/* ── Tablette (format paysage élargi) ── */
@media (min-width:768px) and (max-width:1023px){
  #app{max-width:520px}
}

/* ── Grand écran : élargir l'app pour un usage desktop confortable ── */
@media (min-width:1024px){
  body{padding:24px}
  #app{max-width:720px;height:min(94vh,960px);border-radius:20px}
  .hdr{padding:18px 28px}
  .hdr-title{font-size:24px}
  .dash-body{padding:20px;gap:14px}
  .card{padding:20px 22px}
  .card-title{font-size:17px}
  .cal-cell{font-size:13px}
  .cal-cell-num{font-size:14px}
  .prog-month-cell{min-height:68px}
  .prog-month-day{font-size:14px}
  .prog-month-icon{font-size:18px}
  .bot-nav{padding:8px 0 6px}
  .bot-btn-icon{font-size:20px}
  .bot-btn-lbl{font-size:11px}
  .prog-item{padding:14px 16px}
  .prog-name{font-size:15px}
  .prog-meta{font-size:13px}
}

/* ── Écran très large (> 1400px) ── */
@media (min-width:1400px){
  #app{max-width:820px}
}

/* ── Safe area (iOS notch / barre de navigation) ── */
@supports (padding: env(safe-area-inset-top)){
  @media (max-width:600px){
    #app{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  }
}

/* ── Très petits écrans (iPhone SE) ── */
@media (max-width:374px){
  .dash-body{padding:10px;gap:9px}
  .card{padding:12px}
  .hdr{padding:12px 14px;gap:10px}
  .hdr-title{font-size:19px;letter-spacing:1.5px}
  .bot-btn-lbl{font-size:9px}
  .bot-btn-icon{font-size:16px}
  .prog-name{font-size:13px}
  .prog-meta{font-size:11px}
  .cal-cell-num{font-size:11px}
}

/* ── Écrans hauts ── */
@media (min-height:900px){
  #app{height:min(94vh,1000px)}
}

/* ── Paysage hauteur faible ── */
@media (max-height:500px) and (orientation:landscape){
  .hdr{padding:8px 16px}
  .hdr-title{font-size:18px}
  .bot-btn{padding:6px 0 4px}
  .dash-body{padding:10px;gap:8px}
}
