@font-face{font-family:'Fraunces';src:url('fonts/fraunces.woff2') format('woff2');font-weight:300 900;font-display:swap;font-style:normal}
@font-face{font-family:'HankenG';src:url('fonts/hanken.woff2') format('woff2');font-weight:300 800;font-display:swap;font-style:normal}
:root{
    /* Superficies y texto — PRO claro (neutros con leve tinte verde) */
    --bg:#eef2ef; --surface:#ffffff; --surface-2:#eef3f0;
    --ink:#0f1a15; --ink-soft:#33413a; --muted:#5c6f64; --faint:#93a29a;
    --border:#e4ebe6; --border-strong:#d3ddd6;
    /* Marca PRO: verde esmeralda profundo (contrasta sobre blanco) + acento cálido */
    --accent:#0aa06a; --accent-dark:#0c8f63; --accent-soft:#e2f3ea; --accent-ring:rgba(10,160,106,.24);
    /* Tiles de acción / chips / pista (idénticos al mockup PRO) */
    --tile:#ffffff; --tile-line:#e7ede9; --ic-bg:#e2f3ea; --ic-fg:#0aa06a; --chip:#eef3f0; --track-c:#e6ede9; --tabbg:#ffffffe8;
    --primary-bg:linear-gradient(160deg,#0aa06a,#0c8f63); --primary-line:transparent;
    --primary-glow:0 12px 24px -12px rgba(10,160,106,.55);
    --primary-ic-bg:rgba(255,255,255,.24); --primary-ic-fg:#ffffff; --primary-fg:#ffffff;
    --gold:#c8901f; --gold-soft:#f7edd6;
    --danger:#c14237; --danger-soft:#fbecea; --warn:#c8901f;
    --btn-fg:#ffffff;
    /* Formas */
    --radius:18px; --radius-sm:12px; --radius-lg:24px;
    --shadow-sm:0 1px 2px rgba(20,35,28,.05);
    --shadow:0 1px 2px rgba(20,35,28,.04),0 10px 28px -14px rgba(20,35,28,.20);
    --shadow-lg:0 18px 48px -18px rgba(20,35,28,.30);
    --font-display:'Fraunces',Georgia,'Times New Roman',serif;
    --font-body:'HankenG',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --tabbar-h:62px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
    margin:0; background:var(--bg); color:var(--ink);
    font:16px/1.55 var(--font-body);
    font-feature-settings:"tnum" 1; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
    min-height:100vh;
}
a{color:var(--accent-dark);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1000px;margin:0 auto;padding:0 1.15rem;width:100%}
.narrow{max-width:420px}
h1{font-family:var(--font-display);font-size:2.05rem;font-weight:600;letter-spacing:-.01em;margin:1.4rem 0 1rem;line-height:1.08}
h2{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:-.005em;margin:.2rem 0 .6rem;line-height:1.15}
h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 .7rem;font-weight:700}
.muted{color:var(--muted)}
p{margin:.2rem 0 .8rem}
hr{border:0;border-top:1px solid var(--border);margin:1.2rem 0}
footer.wrap{padding:2rem 1.15rem;color:var(--faint);font-size:.85rem}

/* ===== Barra superior ===== */
.topbar{background:rgba(255,255,255,.85);backdrop-filter:saturate(1.6) blur(10px);
    -webkit-backdrop-filter:saturate(1.6) blur(10px);
    border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}
.topbar-in{display:flex;align-items:center;gap:1rem;height:60px}
.brand{font-family:var(--font-display);font-weight:600;font-size:1.22rem;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;
    display:inline-flex;align-items:center;gap:.45rem}
.brand::before{content:"";width:.62rem;height:.62rem;border-radius:50%;
    background:linear-gradient(135deg,var(--accent),#2fc79a);box-shadow:0 0 0 3px var(--accent-soft)}
.brand:hover{text-decoration:none}
.mainnav{display:flex;gap:.2rem;flex:1;align-items:center}
.mainnav-link{padding:.45rem .8rem;border-radius:99px;color:var(--muted);font-size:.94rem;font-weight:600;
    white-space:nowrap;transition:background .15s,color .15s}
.mainnav-link:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}
.mainnav-link.active{color:var(--accent-dark);background:var(--accent-soft)}
.user{display:flex;gap:.55rem;align-items:center;font-size:.9rem;white-space:nowrap;margin-left:auto}
.user-name{color:var(--ink-soft);font-weight:600;max-width:11rem;overflow:hidden;text-overflow:ellipsis}
.user-out{color:var(--muted)}
.user-out:hover{color:var(--danger)}

/* ===== Subnav de pills ===== */
.subnav{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:60px;z-index:20}
.subnav-in{display:flex;gap:.15rem;padding:.4rem .5rem}
.pill{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.2rem;
    padding:.35rem .15rem;border-radius:.75rem;font-size:.62rem;font-weight:600;line-height:1.1;
    color:var(--muted);background:transparent;border:1px solid transparent;transition:color .15s,background .15s}
.pill-ic{display:flex;align-items:center;justify-content:center;height:1.3rem}
.pill-ic svg{width:1.3rem;height:1.3rem;display:block}
.pill-lbl{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill:hover{color:var(--ink);text-decoration:none}
.pill.active{color:var(--accent);background:var(--accent-soft)}

/* ===== Barra inferior (móvil) ===== */
.tabbar{display:none}

/* ===== Hero / countdown ===== */
.hero{position:relative;margin:1.5rem 0 1.3rem;display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;
    background:linear-gradient(135deg,var(--surface) 0%,var(--accent-soft) 100%);border:1px solid var(--border);
    border-radius:var(--radius-lg);padding:1.6rem 1.85rem;box-shadow:var(--shadow);overflow:hidden}
.hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
    background:linear-gradient(var(--gold),var(--accent))}
.hero-count{display:flex;flex-direction:column;gap:.05rem}
.hero-eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--gold)}
.big-number{font-family:var(--font-display);font-size:4.6rem;font-weight:600;line-height:.92;
    letter-spacing:-.02em;color:var(--accent-dark)}
.hero-label{color:var(--muted);font-size:.95rem;font-weight:600}
.hero-date{color:var(--ink-soft);font-size:.86rem;font-weight:600;margin-top:.15rem}
.hero-hello{color:var(--ink-soft);font-size:1.08rem;line-height:1.4;margin:0;font-weight:500;flex:1;min-width:11rem}
.hero-hello strong{color:var(--ink);font-weight:700}

/* ===== Accesos rápidos (Hoy) ===== */
.quick-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:.55rem;margin:0 0 1.3rem}
.qa-btn{display:flex;flex-direction:column;align-items:center;gap:.42rem;padding:.75rem .3rem;
    background:var(--tile);border:1px solid var(--tile-line);border-radius:1rem;
    color:var(--ink);font-size:.7rem;font-weight:600;text-align:center;line-height:1.15;
    transition:transform .1s ease,box-shadow .15s}
.qa-btn:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow)}
.qa-btn:active{transform:translateY(0)}
.qa-ico{width:2.05rem;height:2.05rem;border-radius:.7rem;display:grid;place-items:center;
    background:var(--ic-bg);color:var(--ic-fg);font-size:1.2rem;line-height:1}
.qa-ico svg{width:1.2rem;height:1.2rem;stroke-width:1.9;display:block}
@media(max-width:640px){.quick-actions{grid-template-columns:repeat(3,1fr)}}

/* ===== Tutorial flotante (coach-marks) ===== */
.tour-ov{position:fixed;inset:0;z-index:9998}
.tour-hl{position:fixed;z-index:9999;border-radius:12px;pointer-events:none;
    box-shadow:0 0 0 3px var(--accent),0 0 0 9999px rgba(6,10,8,.72);transition:all .25s ease}
.tour-pop{position:fixed;z-index:10000;max-width:320px;width:calc(100vw - 24px);
    background:var(--surface);color:var(--ink);border:1px solid var(--border-strong);border-radius:16px;
    padding:1rem 1.15rem;box-shadow:var(--shadow-lg);transition:top .2s ease,left .2s ease}
.tour-pop .tour-t{font-family:var(--font-body);font-weight:800;font-size:1.05rem;margin-bottom:.3rem;color:var(--ink)}
.tour-pop .tour-x{color:var(--ink-soft);font-size:.92rem;line-height:1.5}
.tour-pop .tour-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:1rem}
.tour-pop .tour-dots{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}
.tour-pop .tour-skip{background:none;border:0;color:var(--muted);font:inherit;font-size:.85rem;cursor:pointer;padding:.3rem .2rem}
.tour-pop .tour-next{background:var(--accent);color:var(--btn-fg);border:0;border-radius:99px;
    padding:.5rem 1.1rem;font-weight:700;font-size:.9rem;cursor:pointer}

/* ===== Anillos de actividad (estilo Apple) en Hoy ===== */
.rings-card{padding:1.25rem 1.35rem}
.rings{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;justify-content:center}
.rings-visual{flex:0 0 auto}
.rings-svg{width:180px;height:180px;display:block}
.ring-track,.ring-prog{fill:none;stroke-width:7;stroke-linecap:round}
.ring-track{stroke:color-mix(in srgb,currentColor 15%,transparent)}
.ring-prog{stroke:currentColor;transition:stroke-dashoffset .7s cubic-bezier(.4,0,.2,1)}
.ring-food{color:#0aa06a}
.ring-sport{color:#e5484d}
.ring-sleep{color:#6d5ae6}
.ring-water{color:#2a86d6}
:root[data-theme="dark"] .ring-food{color:#46e39a}
:root[data-theme="dark"] .ring-sport{color:#ff6b6b}
:root[data-theme="dark"] .ring-sleep{color:#9a8bff}
:root[data-theme="dark"] .ring-water{color:#55b3ff}
.rings-legend{display:flex;flex-direction:column;gap:.85rem;flex:1 1 170px;min-width:160px}
.ring-item{display:flex;align-items:center;gap:.65rem}
.ring-dot{width:.85rem;height:.85rem;border-radius:50%;background:currentColor;flex:0 0 auto;
    box-shadow:0 0 0 4px color-mix(in srgb,currentColor 16%,transparent)}
.ring-txt{display:flex;flex-direction:column;line-height:1.12;min-width:0}
.ring-lbl{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.ring-pct{color:currentColor}
.ring-val{font-family:var(--font-body);font-weight:800;font-variant-numeric:tabular-nums lining-nums;
    color:var(--ink);font-size:1.08rem}
.ring-val small{font-size:.78rem;font-weight:600;color:var(--muted)}
.ring-val.over{color:var(--danger)}

/* ===== Resumen de sueño (Bienestar) ===== */
.sleep-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.sleep-big{font-family:var(--font-body);font-size:2.1rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);
    font-variant-numeric:tabular-nums lining-nums;margin:.3rem 0 .1rem;line-height:1}
.sleep-goal{display:flex;align-items:center;gap:.45rem;font-size:.85rem;margin-top:.5rem;white-space:nowrap}
.sleep-summary .bar{margin-top:.7rem}
.sleep-stats{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.9rem}
.sleep-stats>div{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);
    padding:.6rem .75rem;display:flex;flex-direction:column;gap:.15rem}
.sleep-stats strong{font-size:1.05rem;color:var(--ink);font-variant-numeric:tabular-nums lining-nums}
.sleep-stats .muted{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
.sleep-goal-edit{margin-top:.85rem}
.sleep-goal-edit summary{cursor:pointer;font-size:.85rem;list-style:none}
.sleep-goal-edit summary::-webkit-details-marker{display:none}
.sleep-goal-edit summary::before{content:"⚙ ";opacity:.7}

/* ===== Cabecera de página con selector de día compacto ===== */
.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1.4rem 0 1rem}
.page-head h1{margin:0}
.day-pick{margin:0}
.day-pick input[type=date]{border:1px solid var(--border);background:var(--surface);color:var(--ink);
    border-radius:99px;padding:.42rem .85rem;font:600 .85rem var(--font-body);cursor:pointer}

/* ===== Acciones rápidas de Comidas (arriba) ===== */
.food-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:0 0 1.15rem}
.food-act{border:1px solid var(--tile-line);background:var(--tile);color:var(--ink);border-radius:1rem;
    padding:.7rem .35rem;display:flex;flex-direction:column;align-items:center;gap:.42rem;text-align:center;
    font-size:.7rem;font-weight:600;line-height:1.15;cursor:pointer;
    transition:transform .1s ease,border-color .15s,box-shadow .15s}
.food-act:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.food-act:active{transform:translateY(0)}
.food-act .fa-ic{width:2.05rem;height:2.05rem;border-radius:.7rem;display:grid;place-items:center;background:var(--ic-bg);color:var(--ic-fg)}
.food-act .fa-ic svg{width:1.15rem;height:1.15rem;stroke-width:1.9}
.food-act.primary{background:var(--primary-bg);color:var(--primary-fg);border-color:var(--primary-line);box-shadow:var(--primary-glow)}
.food-act.primary .fa-ic{background:var(--primary-ic-bg);color:var(--primary-ic-fg)}
@media(max-width:360px){.food-actions{grid-template-columns:repeat(2,1fr)}}

/* ===== Tarjeta de calorías (Comidas) — copiada del mockup PRO ===== */
.kcal-card{padding:1.15rem 1.2rem;border-radius:1.25rem}
.kcal-top{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-top:.25rem}
.eyebrow{display:block;font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.08em;
    text-transform:uppercase;color:var(--muted)}
.kcal-big{font-family:var(--font-body);font-size:2.3rem;font-weight:800;line-height:1;letter-spacing:-.03em;
    color:var(--ink);font-variant-numeric:tabular-nums lining-nums;display:flex;align-items:baseline;gap:.1rem}
.kcal-target{font-size:.9rem;font-weight:600;color:var(--muted);letter-spacing:0}
.kcal-pct{font-family:var(--font-body);font-size:.85rem;font-weight:800;color:var(--accent);
    font-variant-numeric:tabular-nums;line-height:1}
.kcal-pct.over{color:var(--danger)}
.kcal-card .bar{height:.55rem;border-radius:1rem;background:var(--track-c);margin-top:.7rem}
.kcal-card .bar>span{border-radius:1rem;background:var(--accent)}
.macro-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.85rem}
.macro-chip{background:var(--chip);border:1px solid var(--border);border-radius:.85rem;padding:.55rem .4rem;text-align:center}
.mc-val{display:block;font-family:var(--font-body);font-size:1.02rem;font-weight:800;color:var(--ink);
    font-variant-numeric:tabular-nums lining-nums}
.mc-val i{font-style:normal;font-size:.72rem;font-weight:600;color:var(--faint);margin-left:.05rem}
.mc-lbl{display:block;font-size:.68rem;font-weight:600;color:var(--muted);margin-top:.15rem}
.water-card{border-radius:1.25rem}
.water-card .water-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.6rem}
.water-card .stat-value{margin-top:.3rem}

/* ===== Cards + grid ===== */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
    box-shadow:var(--shadow);padding:1.25rem;margin:0 0 1.15rem}
.grid{display:grid;gap:1.15rem;grid-template-columns:repeat(3,1fr);margin-bottom:.2rem}
.grid.two{grid-template-columns:repeat(2,1fr)}
.stat .stat-value{font-family:var(--font-body);font-size:2.05rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);
    font-variant-numeric:tabular-nums lining-nums}
.stat .stat-value .muted{font-family:var(--font-body);font-size:.9rem;font-weight:600}

/* ===== Progress bar ===== */
.bar{height:9px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin:.55rem 0}
.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#2fc79a);border-radius:99px;
    transition:width .4s ease}
.bar.over span{background:linear-gradient(90deg,#e07a4f,var(--danger))}

/* ===== Lists ===== */
.list{list-style:none;margin:0;padding:0}
.list li{padding:.45rem 0;border-bottom:1px solid var(--border)}
.list li:last-child{border-bottom:0}

/* ===== Checklist ===== */
.checklist{list-style:none;margin:0;padding:0}
.checklist li{display:flex;align-items:center;gap:.85rem;padding:.6rem 0;border-bottom:1px solid var(--border)}
.checklist li:last-child{border-bottom:0}
.checklist li.inactive{opacity:.5}
.checklist li.done strong{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--border-strong);text-decoration-thickness:1.5px}
.checklist li.done .supp-product{color:var(--muted);text-decoration:line-through}
.checklist li.done .grow{opacity:.8}
.checklist .grow{flex:1}
.checklist strong{display:block;font-weight:650}
.checklist .muted{font-size:.85rem}
.checklist .actions{display:flex;gap:.6rem}
.check{width:32px;height:32px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface);
    color:var(--btn-fg);font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
    flex:0 0 auto;transition:all .15s}
.check:hover{border-color:var(--accent)}
.check.on{background:var(--accent);border-color:var(--accent);box-shadow:0 2px 8px -2px var(--accent-ring)}
.check.ghost{cursor:default}

/* ===== Tables ===== */
.table{width:100%;border-collapse:collapse;font-size:.94rem}
.table th{text-align:left;color:var(--muted);font-weight:700;font-size:.72rem;
    text-transform:uppercase;letter-spacing:.06em;padding:.45rem .5rem;border-bottom:1px solid var(--border)}
.table td{padding:.55rem .5rem;border-bottom:1px solid var(--border)}
.table tr:last-child td{border-bottom:0}
.table tbody tr{transition:background .12s}
.table tbody tr:hover{background:var(--surface-2)}

/* ===== Forms ===== */
label{display:block;margin:0 0 .8rem;font-size:.88rem;color:var(--muted);font-weight:600}
input,select,textarea{width:100%;margin-top:.3rem;padding:.62rem .7rem;font:inherit;font-size:16px;color:var(--ink);
    background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);
    transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:var(--faint)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.check-label{display:flex;align-items:center;gap:.55rem}
.check-label input{width:auto;margin:0}
.notif-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.notif-row .check-label{margin:0}
.notif-at{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--muted);white-space:nowrap}
.hour-sel{width:auto!important;margin:0!important;padding:.3rem .5rem;min-width:0}
.inline-form{display:flex;flex-wrap:wrap;gap:.55rem;align-items:flex-end;margin-top:.7rem}
.inline-form input,.inline-form select{width:auto;flex:1;min-width:110px;margin-top:0}
.inline-form label{margin:0}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
    background:var(--accent);color:var(--btn-fg);border:0;border-radius:var(--radius-sm);
    padding:.65rem 1.2rem;font:inherit;font-weight:700;cursor:pointer;
    box-shadow:0 2px 10px -3px var(--accent-ring);transition:background .15s,transform .05s,box-shadow .15s}
.btn:hover{background:var(--accent-dark);text-decoration:none;box-shadow:0 4px 14px -3px var(--accent-ring)}
.btn:active{transform:translateY(1px)}
.btn.small{padding:.48rem .9rem;font-size:.9rem}
.btn.ghost{background:var(--surface);color:var(--accent-dark);border:1px solid var(--border-strong);box-shadow:none}
.btn.ghost:hover{background:var(--surface-2);border-color:var(--accent)}
.btn.danger{background:var(--danger);color:#fff}
.btn.danger:hover{background:#a5372e}
.link{background:none;border:0;color:var(--accent-dark);cursor:pointer;font:inherit;font-weight:600;
    padding:0;text-decoration:none}
.link:hover{text-decoration:underline}
.link.danger{color:var(--danger)}
button.link{display:inline}

/* ===== "Hoy toca" (plan del día) ===== */
.today-plan{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
    border-left:4px solid var(--accent)}
.today-plan .stat-value{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}
.today-plan h3{margin-bottom:.2rem}

/* ===== Recordatorios (avisos in-app) ===== */
.reminders{border-left:4px solid var(--accent)}
.reminder-list{list-style:none;margin:0;padding:0}
.reminder-list li{border-bottom:1px solid var(--border)}
.reminder-list li:last-child{border-bottom:0}
.reminder-list a{display:flex;align-items:center;gap:.7rem;padding:.6rem .1rem;color:var(--ink)}
.reminder-list a:hover{text-decoration:none;color:var(--accent-dark)}
.rem-ico{font-size:1.25rem;flex:0 0 auto;width:1.7rem;text-align:center}
.rem-go{color:var(--faint);font-size:1.3rem;font-weight:700;flex:0 0 auto}

/* ===== Nutrición: grupos de comida y buscador ===== */
.meal-group{margin:.7rem 0}
.meal-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;
    border-bottom:2px solid var(--border);padding-bottom:.25rem;margin-bottom:.1rem}
.meal-group-head strong{font-size:.95rem}
.meal-row{display:flex;align-items:center;gap:.6rem}
.food-search{position:relative;margin:.5rem 0}
.food-results{position:absolute;left:0;right:0;top:100%;z-index:15;background:var(--surface);
    border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);
    max-height:280px;overflow-y:auto;margin-top:.2rem}
.food-item{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);
    padding:.55rem .7rem;font:inherit;cursor:pointer;color:var(--ink)}
.food-item:last-child{border-bottom:0}
.food-item:hover{background:var(--surface-2)}
#qr{width:100%;border-radius:var(--radius-sm);overflow:hidden}

/* ===== Guía de medición ===== */
.measure-illustration{display:flex;justify-content:center;margin:.6rem 0 .3rem}
.measure-illustration svg{width:100%;max-width:320px;height:auto}

/* ===== Logros / medallas ===== */
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem;margin-top:.4rem}
.ach{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem;padding:.9rem .55rem;
    border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);opacity:.5;filter:grayscale(1)}
.ach.done{opacity:1;filter:none;background:var(--surface);border-color:#cfe6d8;box-shadow:var(--shadow-sm)}
.ach-ico{font-size:2rem;line-height:1}
.ach-title{font-weight:800;font-size:.88rem}
.ach-sub{font-size:.73rem;color:var(--muted);line-height:1.2}
.ach.done .ach-sub{color:var(--accent-dark);font-weight:700}

/* ===== Badges (estado / categorías) ===== */
.badge{display:inline-block;border-radius:999px;padding:.14rem .6rem;font-size:.78rem;font-weight:700;
    vertical-align:middle;line-height:1.3}
.badge.ok{background:var(--accent-soft);color:var(--accent-dark)}
.badge.low{background:#eaf1fb;color:#2c5aa0}
.badge.warn{background:#fbf1dc;color:#9a6a12}
.badge.high{background:var(--danger-soft);color:var(--danger)}

/* ===== Video ===== */
.video{position:relative;padding-top:56.25%;border-radius:var(--radius-sm);overflow:hidden;margin:.7rem 0;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ===== Photos ===== */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.85rem}
.gallery figure{margin:0;background:var(--surface);border-radius:var(--radius-sm);overflow:hidden;
    border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.photo-locked{width:100%;aspect-ratio:3/4;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:.4rem;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);
    color:var(--muted);font-size:1.9rem}
.photo-locked span{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.gallery figcaption{display:flex;justify-content:space-between;align-items:center;gap:.4rem;
    padding:.45rem .6rem;font-size:.78rem;color:var(--muted)}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-top:.9rem}
.compare figure{margin:0}
.compare img{width:100%;border-radius:var(--radius-sm);border:1px solid var(--border)}
.compare figcaption{font-size:.82rem;color:var(--muted);margin-top:.35rem;text-align:center}

/* ===== Details ===== */
details.card summary{cursor:pointer;font-weight:700;list-style:none}
details.card summary::-webkit-details-marker{display:none}
details.card summary::before{content:"＋ ";color:var(--accent)}
details.card[open] summary::before{content:"− "}
details.card[open] summary{margin-bottom:.9rem}

/* ===== Flash ===== */
.flash{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #cfe9e0;
    padding:.7rem 1rem;border-radius:var(--radius-sm);margin:1rem 0;font-weight:600}
.flash.error{background:var(--danger-soft);color:var(--danger);border-color:#f2cec9}

/* ===== Auth ===== */
.auth-body{display:flex;min-height:100vh;align-items:center;
    background:radial-gradient(120% 90% at 50% -10%,#e6f4ee 0%,var(--bg) 55%)}
.auth-card{width:100%}
.brand-big{font-family:var(--font-display);text-align:center;font-size:2.2rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.2rem}
.brand-slogan{text-align:center;color:var(--accent-dark,#1f8a70);font-weight:600;margin:0 0 1.2rem}
.auth-card .card{box-shadow:var(--shadow-lg)}

/* ===== Exercise library grid ===== */
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.85rem;margin-top:.8rem}
.ex-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--radius-sm);overflow:hidden;color:var(--ink);box-shadow:var(--shadow-sm);
    transition:transform .12s,box-shadow .15s,border-color .15s}
.ex-card:hover{text-decoration:none;border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}
.ex-thumb-wrap{aspect-ratio:1/1;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ex-thumb{width:100%;height:100%;object-fit:cover}
.ex-noimg{font-size:1.8rem;opacity:.4}
.ex-name{padding:.55rem .65rem 0;font-weight:650;font-size:.9rem;line-height:1.25}
.ex-meta{padding:0 .65rem .65rem;font-size:.76rem;color:var(--muted)}
.ex-media{width:100%;max-width:420px;border-radius:var(--radius-sm);border:1px solid var(--border);margin:.6rem 0;background:#fff}

/* ===== Suplementos ===== */
.checklist li{flex-wrap:wrap}
.supp-product{color:var(--accent-dark);font-weight:650}
.supp-edit{flex-basis:100%;margin-top:.5rem}
.supp-edit>summary{font-size:.82rem;color:var(--muted);cursor:pointer;list-style:none}
.supp-edit>summary::-webkit-details-marker{display:none}
.supp-edit>summary::before{content:"✎ ";}
.supp-edit[open]{padding:.7rem .9rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}
.supp-edit form{margin-top:.6rem}

/* Calendario (suplementos / medicación) */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;margin:.6rem 0 .3rem}
.cal-head{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);padding:.15rem 0}
.cal-day{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
    border:1px solid var(--border);border-radius:9px;color:var(--ink);font-size:.9rem;text-decoration:none;background:var(--surface)}
.cal-day:hover{border-color:var(--accent);text-decoration:none}
.cal-day.today{border-color:var(--accent);font-weight:800}
.cal-day.sel{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}
.cal-dot{position:absolute;bottom:.3rem;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--accent)}
.cal-day.sel .cal-dot{background:#fff}

/* ===== Entrenos: celdas editables ===== */
.table input.cell{width:5.2rem;margin:0;padding:.38rem .45rem;text-align:center}
.table input.cell-sm{width:3.4rem}
.table input.cell-note{width:9rem;text-align:left}
.set-actions{display:flex;gap:.6rem;white-space:nowrap}
.set-actions form{display:inline}

/* ===== Ayuno ===== */
.fast-clock{font-family:var(--font-display);font-size:3rem;font-weight:600;letter-spacing:-.005em;margin:.4rem 0;
    font-variant-numeric:tabular-nums;color:var(--accent-dark)}
.fast-stage{font-size:1.1rem;font-weight:700}
.fast-next{margin-top:.3rem}
.fast-timeline{list-style:none;margin:.4rem 0 0;padding:0}
.fast-timeline li{display:flex;gap:.8rem;padding:.55rem 0;border-bottom:1px solid var(--border);opacity:.5}
.fast-timeline li:last-child{border-bottom:0}
.fast-timeline li.done{opacity:1}
.fast-timeline li.done .fast-h{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}
.fast-h{flex:0 0 auto;min-width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;
    border:2px solid var(--border-strong);border-radius:50%;font-size:.8rem;font-weight:700}
.fast-ico{font-size:1.2rem;background:var(--surface-2)}
.fast-timeline li.done .fast-ico{background:var(--accent-soft);border-color:#bfe6d2}
.fast-t{display:flex;flex-direction:column}
.fast-t .muted{font-size:.85rem}

/* ===== Líquidos ===== */
.quick-drinks{display:flex;flex-wrap:wrap;gap:.55rem}
.quick-drinks form{display:inline}

/* ===== Cabecera de tarjeta con acción ===== */
.card-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.card-head h3{margin:0}

/* ===== Entreno guiado (pantalla completa) ===== */
.gx{position:fixed;inset:0;z-index:100;background:#f4f6f8;display:flex;flex-direction:column}
.gx[hidden]{display:none}
.gx-close{position:absolute;top:.7rem;left:.7rem;z-index:3;background:rgba(255,255,255,.7);border:0;border-radius:50%;
    width:2.6rem;height:2.6rem;font-size:1.3rem;line-height:1;color:#24303c;cursor:pointer;display:flex;align-items:center;justify-content:center}
.gx-counter{position:absolute;top:1.15rem;left:50%;transform:translateX(-50%);z-index:3;font-weight:700;color:var(--muted);font-size:.95rem}
.gx-elapsed{position:absolute;top:1.02rem;right:.9rem;z-index:3;font-weight:700;color:var(--accent-dark);
    font-size:.92rem;font-variant-numeric:tabular-nums;background:rgba(255,255,255,.72);border-radius:999px;padding:.2rem .65rem}
.gx-elapsed[hidden]{display:none}
.gx-media{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden}
.gx-media img{max-width:100%;max-height:100%;object-fit:contain}
.gx-media.rest{opacity:.45;filter:grayscale(.4)}
.gx-noimg{font-size:4rem;opacity:.3}
.gx-info{flex:0 0 auto;max-height:62vh;overflow-y:auto;padding:1rem 1.2rem calc(1.3rem + env(safe-area-inset-bottom));
    background:var(--surface);box-shadow:0 -6px 24px rgba(0,0,0,.07);border-radius:20px 20px 0 0}
.gx-name{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.gx-rest-label{font-size:1.4rem;font-weight:800}
.gx-sub{color:var(--muted);font-size:.9rem;margin:.2rem 0 .3rem}
.gx-timer{font-size:3.1rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1.05;margin:.1rem 0}
.gx-timer.big{font-size:4.2rem;color:var(--accent-dark)}
.gx-sets{display:flex;flex-direction:column;gap:.4rem;margin:.5rem 0 .2rem}
.gx-set{display:flex;align-items:center;gap:.5rem;font-size:.92rem}
.gx-set>span{flex:0 0 auto;min-width:4.6rem;font-weight:600}
.gx-in{width:5rem;margin:0;padding:.45rem;text-align:center}
.gx-set.done{opacity:1}
.gx-set.done>span{color:var(--accent-dark);text-decoration:line-through;text-decoration-thickness:1.5px}
.gx-save{border:0;background:var(--border-strong);border-radius:9px;width:2.4rem;height:2.4rem;flex:0 0 auto;cursor:pointer;font-size:1rem;color:#fff}
.gx-set.done .gx-save{background:var(--accent)}
.gx-set.err .gx-in{border-color:var(--danger);outline:1px solid var(--danger)}
.gx-primary{display:block;width:100%;margin-top:.8rem;background:var(--accent);color:var(--btn-fg);border:0;border-radius:13px;
    padding:.95rem;font:inherit;font-weight:700;font-size:1.05rem;cursor:pointer}
.gx-primary:hover{background:var(--accent-dark)}
.gx-ghost{background:var(--bg);border:1px solid var(--border-strong);border-radius:13px;padding:.95rem 1.1rem;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.gx-rest-btns{display:flex;gap:.6rem;align-items:stretch;flex-wrap:wrap;justify-content:center}
.gx-rest-btns .gx-primary{margin-top:0;flex:1;min-width:8rem}

/* Barra de descanso (cuenta atrás sobre la vista del ejercicio) */
.gx-rest{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;
    padding:1.5rem;background:rgba(244,246,248,.96);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.gx-rest[hidden]{display:none}
.gx-rest-inner{text-align:center;width:100%;max-width:420px}
.gx-rest .gx-timer.big{margin:.2rem 0 .1rem}
.gx-rest-sub{color:var(--muted);margin:.3rem 0 1.1rem;font-size:1rem}

/* Chip informativo del descanso configurado */
.gx-restchip{display:inline-block;background:var(--accent-soft);color:var(--accent-dark);
    border-radius:999px;padding:.25rem .8rem;font-size:.82rem;font-weight:650;margin:.1rem 0 .3rem}

/* Superserie en el guiado */
.gx-ss-tag{display:inline-block;background:var(--gold-soft,#f6ecd2);color:var(--gold-ink,#8a6414);
    border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:700;margin-bottom:.35rem}
.gx-ss-chain{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:.5rem}
.gx-ss-chip{font-size:.82rem;font-weight:650;color:var(--muted);background:var(--bg);
    border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem}
.gx-ss-chip.on{color:var(--accent-dark);background:var(--accent-soft);border-color:var(--accent)}
.gx-ss-arrow{color:var(--muted);font-size:.8rem}

/* Superseries en la tabla y el editor */
.badge.ss-badge{background:var(--gold-soft,#f6ecd2);color:var(--gold-ink,#8a6414);vertical-align:middle}
.ss-row>td:first-child{border-left:3px solid var(--gold,#b8862b)}
.ss-list{list-style:none;padding:0;margin:.4rem 0 .7rem;display:flex;flex-direction:column;gap:.35rem}
.ss-list li{display:flex;align-items:center;gap:.6rem}
.ss-list .grow{flex:1}
.ss-list label{display:flex;align-items:center;gap:.35rem;margin:0}
.ss-list input{margin:0}

/* Chat coach IA */
.coach-log{display:flex;flex-direction:column;gap:.6rem;max-height:52vh;overflow-y:auto;padding:.2rem}
.coach-msg{display:flex}
.coach-msg.me{justify-content:flex-end}
.coach-bubble{max-width:85%;padding:.55rem .8rem;border-radius:14px;line-height:1.4;font-size:.95rem}
.coach-msg.bot .coach-bubble{background:var(--surface-2,var(--surface));border:1px solid var(--border);border-bottom-left-radius:4px}
.coach-msg.me .coach-bubble{background:var(--accent);color:var(--btn-fg);border-bottom-right-radius:4px}
.coach-bubble.typing{letter-spacing:.15em;color:var(--muted)}
.coach-suggest{display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0 .3rem}
.coach-form{display:flex;gap:.5rem;margin-top:.6rem}
.coach-form input{flex:1;margin:0}
.coach-form .btn{margin:0}
.coach-disclaimer{font-size:.78rem;margin:.5rem 0 0}

/* Estimación de macros por IA */
.ai-estimate{background:var(--accent-soft);border:1px solid var(--accent-ring);border-radius:12px;padding:.7rem .8rem;margin-bottom:.6rem}
.ai-estimate>label{display:block;font-weight:650;font-size:.9rem;color:var(--accent-dark);margin-bottom:.4rem}
.ai-estimate-row{display:flex;gap:.5rem;align-items:stretch}
.ai-estimate-row input{flex:1;margin:0}
.ai-estimate-row .btn{margin:0;white-space:nowrap}
.ai-estimate-msg{margin:.5rem 0 0;font-size:.85rem}
.ai-estimate-msg.error{color:var(--danger,#c0392b)}
.or-sep{display:flex;align-items:center;text-align:center;color:var(--muted);font-size:.8rem;margin:.2rem 0 .6rem}
.or-sep::before,.or-sep::after{content:"";flex:1;border-top:1px solid var(--border)}
.or-sep span{padding:0 .6rem}

/* Asistente de bienvenida (onboarding) */
.ob-wizard,.ob-final{max-width:560px;margin:0 auto}
.ob-lead{font-size:1.08rem;color:var(--ink);margin:.2rem 0 1rem}
.ob-features{list-style:none;padding:0;margin:1rem 0;display:flex;flex-direction:column;gap:.6rem}
.ob-features li{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.6rem .8rem;font-size:.95rem}
.ob-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem}
.ob-nav .btn{margin:0}
.ob-step h2{margin-top:.4rem}
.ob-targets{display:flex;gap:1.5rem;justify-content:center;margin:.6rem 0 1rem}
.ob-target{display:flex;flex-direction:column;align-items:center}
.ob-t-num{font-family:var(--font-display,inherit);font-size:2.4rem;font-weight:700;line-height:1;color:var(--accent)}
.ob-t-lbl{font-size:.82rem;color:var(--muted)}
.ob-list{margin:.4rem 0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.4rem}
.ob-list li{line-height:1.4}
.ob-plan{text-align:center}
.ob-supps{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.ob-supp{display:flex;align-items:center;gap:.6rem;justify-content:space-between;
    padding:.5rem .1rem;border-top:1px solid var(--line,#e7e2d6)}
.ob-supp:first-child{border-top:0}
.ob-supp-info{line-height:1.35}
.ob-supp form{flex:0 0 auto}
.auto-targets-row{margin:.5rem 0 .2rem}
.auto-targets-row .check-label{font-size:.9rem}
.week-proj{background:var(--accent-soft,#eaf5ef);border-radius:12px;padding:.7rem .8rem;margin:.4rem 0 .8rem}
.week-proj-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:.5rem}
.week-proj-item{display:flex;flex-direction:column;align-items:center;text-align:center;
    background:var(--card,#fff);border-radius:10px;padding:.5rem .3rem;line-height:1.25}
.week-proj-item .wp-days{font-weight:700;font-size:.82rem}
.week-proj-item .wp-date{font-weight:700;color:var(--accent-dark,#1f8a70);font-size:.95rem}
.week-proj-item .wp-w{font-size:.72rem}
.wp-note{margin:.5rem 0 0;font-size:.82rem}
.rest-days{display:flex;flex-wrap:wrap;gap:.4rem}
.rest-day{background:var(--chip,#f2efe6);border-radius:999px;padding:.28rem .7rem;font-size:.85rem;margin:0}
.rest-day input{margin-right:.25rem}
.ai-photo-row{margin:.5rem 0 .1rem}
/* Recetas / menú */
.menu-day{margin:.6rem 0}
.menu-day h4{margin:.2rem 0 .4rem}
.menu-meals{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.menu-meal{display:flex;flex-direction:column;border:1px solid var(--line,#e7e2d6);border-radius:12px;overflow:hidden;
    text-decoration:none;color:inherit;background:var(--card,#fff);transition:transform .1s}
.menu-meal:hover{transform:translateY(-2px)}
.menu-meal img{width:100%;height:96px;object-fit:cover;background:var(--chip,#f2efe6)}
.menu-meal-info{padding:.45rem .55rem;display:flex;flex-direction:column;gap:.1rem;line-height:1.25}
.menu-mt{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-dark,#1f8a70);font-weight:700}
.menu-name{font-weight:600;font-size:.9rem}
.recipe-hero{width:100%;max-height:260px;object-fit:cover;border-radius:12px;background:var(--chip,#f2efe6)}
.recipe-macros{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.6rem 0}
.recipe-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.4rem 0}
.recipe-ings,.shop-list{list-style:none;padding:0;margin:.3rem 0}
.recipe-ings li{padding:.25rem 0;border-bottom:1px solid var(--line,#eee)}
.ing-qty{font-weight:700;color:var(--accent-dark,#1f8a70);margin-right:.3rem}
.recipe-steps{margin:.3rem 0 .3rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}
.shop-list li{padding:.15rem 0}
.shop-list li.bought{opacity:.5;text-decoration:line-through}
.shop-list li.shop-cat{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;
    color:var(--accent-dark,#1f8a70);margin:.6rem 0 .1rem;padding:.1rem 0;border-bottom:1px solid var(--line,#e7e2d6)}
.shop-list li.shop-cat:first-child{margin-top:0}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.4rem .8rem}
.feature-grid .check-label{font-size:.92rem}
.micros-box{margin:.5rem 0}
.micros-box summary{cursor:pointer;color:var(--accent-dark,#1f8a70);font-weight:600;font-size:.9rem}
.micro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.micro{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--chip,#f2efe6);border-radius:10px;padding:.5rem .2rem;line-height:1.3}
.micro-lbl{font-size:.78rem;color:var(--muted,#7a8595)}
.micro-val{font-weight:800;font-size:1.05rem}
.micro-val.over{color:var(--danger,#c14237)}
.micro-val.good{color:var(--accent-dark,#1f8a70)}
.micro-warn{color:var(--danger,#c14237);font-size:.85rem;margin:.4rem 0 0}
@media (max-width:420px){ .micro-grid{grid-template-columns:repeat(2,1fr)} }
:root[data-theme="dark"] .micro{background:#0f1713}
/* Tabla de series del entreno: en móvil, una tarjeta por serie (evita tabla ancha) */
@media (max-width:560px){
    .sets-table thead{display:none}
    .sets-table, .sets-table tbody{display:block}
    .sets-table tr{display:block;border:1px solid var(--border,#e7e2d6);border-radius:12px;padding:.5rem .8rem;margin-bottom:.6rem;background:var(--card,#fff)}
    .sets-table td{display:flex;justify-content:space-between;align-items:center;gap:.8rem;border:0;padding:.3rem 0;text-align:right}
    .sets-table td::before{content:attr(data-label);font-weight:700;color:var(--muted,#7a8595);font-size:.8rem;text-align:left;white-space:nowrap}
    .sets-table td:first-child{display:block;text-align:left;font-weight:700;font-size:1rem;border-bottom:1px solid var(--border,#e7e2d6);padding-bottom:.4rem;margin-bottom:.25rem}
    .sets-table td:first-child::before{display:none}
    .sets-table td.set-actions{justify-content:flex-end;gap:1.2rem;padding-top:.4rem}
    .sets-table td.set-actions::before{display:none}
    .sets-table input.cell{width:6.5rem}
    .sets-table input.cell-note{width:100%;max-width:60%}
}
.menu-meal-wrap{display:flex;flex-direction:column}
.menu-meal-wrap .swap-meal{border:0;background:none;color:var(--muted,#7a8595);font-size:.8rem;cursor:pointer;padding:.2rem;text-align:center}
.menu-meal-wrap .swap-meal:hover{color:var(--accent-dark,#1f8a70)}
.challenge-list{list-style:none;padding:0;margin:.3rem 0;display:flex;flex-direction:column;gap:.6rem}
.challenge{display:flex;gap:.6rem;align-items:center}
.challenge .ch-ico{font-size:1.3rem;flex:0 0 auto}
.challenge .ch-body{flex:1}
.challenge .ch-top{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem;margin-bottom:.2rem}
.challenge.done .ch-title{text-decoration:line-through;opacity:.65}
/* Escala de ánimo/energía */
.scale-row{display:flex;gap:.4rem;flex-wrap:wrap}
.scale-btn{cursor:pointer}
.scale-btn input{position:absolute;opacity:0;width:0;height:0}
.scale-btn span{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;
    font-size:1.4rem;border:2px solid var(--line,#e7e2d6);border-radius:50%;background:var(--card,#fff);transition:.1s}
.scale-btn input:checked+span{border-color:var(--accent,#1f8a70);background:var(--accent-soft,#eaf5ef);transform:scale(1.08)}
/* Hábitos */
.habit-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.1rem}
.habit{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--line,#eee)}
.habit .habit-toggle{background:none;border:0;font-size:1.5rem;cursor:pointer;line-height:1}
.habit .habit-ico{font-size:1.2rem}
.habit.done .grow{opacity:.7}
.habit-check{margin:0}
/* HIIT */
.hiit-controls{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.6rem 0}
.hiit-run{text-align:center}
.hiit-phase{font-size:1.2rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.hiit-time{font-size:3.4rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.hiit-run.ph-work{background:var(--accent-soft,#eaf5ef)}
.hiit-run.ph-work .hiit-phase{color:var(--accent-dark,#1f8a70)}
.hiit-run.ph-rest{background:#eaf1fb}
.hiit-run.ph-prep{background:#fbf1dc}
.hiit-run.ph-done{background:var(--accent-soft,#eaf5ef)}
/* Respiración */
.breathe-stage{display:flex;justify-content:center;align-items:center;height:240px}
.breathe-circle{width:150px;height:150px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 50% 40%, #7fd0b8, #1f8a70);color:#fff;font-weight:700;text-align:center;
    box-shadow:0 8px 30px rgba(31,138,112,.35)}
.breathe-meta{text-align:center;color:var(--muted,#7a8595);margin-top:.4rem}
:root[data-theme="dark"] .hiit-run.ph-rest{background:#1b2740}
:root[data-theme="dark"] .hiit-run.ph-prep{background:#2c2617}
:root[data-theme="dark"] .scale-btn span{background:#0f1713}
.person-list{list-style:none;padding:0;margin:.3rem 0}
.person-list li{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--line,#eee)}
.person-list .grow{flex:1 1 40%;font-weight:600}
.ing-for{display:block;margin:.2rem 0 .5rem;font-size:.9rem}
.ing-for select{margin-top:.2rem}
:root[data-theme="dark"] .menu-meal{background:#0f1713}
.menu-sync-row{display:flex;flex-direction:column;gap:.15rem;background:var(--accent-soft,#eaf5ef);border-radius:10px;padding:.5rem .7rem}
:root[data-theme="dark"] .menu-sync-row{background:#16241d}
.pain-banner{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;
    background:#fbf1dc;border:1px solid #e6cf95;border-radius:12px;padding:.6rem .8rem;margin:.2rem 0 .8rem}
.pain-banner>div{flex:1;min-width:200px;line-height:1.35}
.pain-banner form{flex:0 0 auto}
:root[data-theme="dark"] .pain-banner{background:#2c2617;border-color:#5a4a23}
:root[data-theme="dark"] .week-proj{background:#16241d}
:root[data-theme="dark"] .week-proj-item{background:#0f1713}

/* Panel: resumen de la semana */
.week-card{display:block;text-decoration:none;color:inherit}
.week-card:hover{border-color:var(--accent)}
.week-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;text-align:center}
.wk-stat{display:flex;flex-direction:column;gap:.15rem;padding:.3rem 0}
.wk-num{font-family:var(--font-display,inherit);font-size:1.7rem;font-weight:700;line-height:1;color:var(--ink)}
.wk-num.good{color:var(--accent)}
.wk-num.up{color:var(--gold,#b8862b)}
.wk-den{font-size:1rem;color:var(--muted);font-weight:600}
.wk-lbl{font-size:.78rem;color:var(--muted)}

/* Comidas favoritas (1 toque) */
.fav-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.fav-chip{display:flex;align-items:stretch;border:1px solid var(--border-strong);border-radius:12px;overflow:hidden;background:var(--surface)}
.fav-chip:hover{border-color:var(--accent)}
.fav-log-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;background:none;border:0;cursor:pointer;padding:.4rem .7rem;text-align:left;color:var(--ink)}
.fav-log-btn:hover{background:var(--accent-soft)}
.fav-name{font-weight:650;font-size:.92rem}
.fav-macros{font-size:.76rem;color:var(--muted)}
.fav-del{display:flex}
.fav-x{background:none;border:0;border-left:1px solid var(--border);color:var(--muted);cursor:pointer;padding:0 .55rem;font-size:1.1rem;line-height:1}
.fav-x:hover{background:var(--danger-soft,#fde8e8);color:var(--danger,#c0392b)}

/* Editor de rutinas propias */
.ritem-list li.ritem{align-items:flex-start}
.ritem-fields{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}
.ritem-fields label{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted);gap:.15rem;margin:0}
.ritem-fields input{width:4.5rem;margin:0;padding:.3rem .45rem;font-size:.9rem}
.ritem-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;white-space:nowrap}
.ritem-actions .link[disabled]{opacity:.3;pointer-events:none}

/* Selección de objetivo al empezar el guiado */
.gx-goals{display:flex;flex-direction:column;gap:.6rem;margin-top:.9rem}
.gx-goal{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;
    background:var(--surface-2);border:1.5px solid var(--border-strong);border-radius:14px;
    padding:.85rem 1.1rem;cursor:pointer;font:inherit;transition:border-color .15s,background .15s}
.gx-goal:hover{border-color:var(--accent);background:var(--accent-soft)}
.gx-goal:active{transform:scale(.99)}
.gx-goal-name{font-weight:800;font-size:1.1rem;color:var(--ink);letter-spacing:-.01em}
.gx-goal-note{font-size:.85rem;color:var(--muted)}

/* Aviso de récord (toast) dentro del guiado */
.gx-toast{position:absolute;top:calc(3.6rem + env(safe-area-inset-top));left:50%;z-index:8;
    transform:translateX(-50%) translateY(-8px);background:linear-gradient(135deg,#12805e,#17a074);color:#fff;
    font-weight:700;padding:.6rem 1.15rem;border-radius:999px;box-shadow:0 10px 28px -8px rgba(0,0,0,.45);
    opacity:0;transition:opacity .25s,transform .25s;white-space:nowrap;max-width:92%;text-align:center}
.gx-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.gx-toast[hidden]{display:none}
.gx-set.pr{outline:2px solid var(--accent);outline-offset:1px;border-radius:8px}
.gx-set.pr .gx-save{background:var(--accent)}

/* Pesos rápidos (chips que rellenan el campo de peso) */
.wchips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.4rem 0 .2rem}
.wchips-lbl{font-size:.82rem;color:var(--muted);font-weight:600;margin-right:.15rem}
.wchip{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:999px;
    padding:.3rem .75rem;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;color:var(--ink);transition:all .12s}
.wchip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}
.wchip:active{transform:scale(.96)}
.gx-wchips{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:.6rem 0 .1rem}
.gx-wchips-lbl{font-size:.82rem;color:var(--muted);font-weight:600;width:100%}
.gx-wchip{background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;
    padding:.45rem .85rem;font:inherit;font-size:.98rem;font-weight:700;cursor:pointer;color:var(--ink)}
.gx-wchip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}
.gx-wchip:active{transform:scale(.96)}
.gx-in-sm{width:3.4rem}
.gx-suggest{background:var(--accent-soft);color:var(--accent-dark);border-radius:10px;padding:.4rem .75rem;
    font-size:.9rem;font-weight:600;margin:.3rem 0}
.gx-suggest-why{color:var(--muted);font-weight:600;font-size:.85rem}
.gx-survey{margin-bottom:.9rem;text-align:center}
.gx-survey-q{font-weight:700;margin-bottom:.45rem}
.gx-survey-opts{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.gx-survey-btn{background:var(--bg);border:1.5px solid var(--border-strong);border-radius:999px;
    padding:.55rem 1rem;font:inherit;font-weight:700;cursor:pointer;color:var(--ink)}
.gx-survey-btn:hover{border-color:var(--accent)}
.gx-survey-btn.on{background:var(--accent);border-color:var(--accent);color:var(--btn-fg)}

/* ===== Equipo en casa (resaltado) ===== */
.ex-thumb-wrap{position:relative}
.ex-card.home{background:var(--accent-soft);border-color:#bfe6d2}
.ex-card.home .ex-meta{color:#2e7d5b}
.ex-card.home:hover{border-color:var(--accent)}
.home-badge{position:absolute;top:.35rem;right:.35rem;background:var(--accent);color:var(--btn-fg);border-radius:50%;
    width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;font-size:.8rem;
    box-shadow:0 1px 4px rgba(0,0,0,.25)}
.home-tag{display:inline-block;background:var(--accent-soft);color:var(--accent-dark);border:1px solid #bfe6d2;
    border-radius:999px;padding:.2rem .75rem;font-size:.82rem;font-weight:650}

/* ===== Perfil: equipamiento ===== */
.equip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.3rem .9rem;margin:.5rem 0 .9rem}
.equip-item{display:flex;flex-direction:column;gap:.25rem}
.equip-detail{margin:0}

/* ===== Selector de ejercicios ===== */
.pick-list{max-height:360px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);margin:.5rem 0}
.pick-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-bottom:1px solid var(--border);cursor:pointer}
.pick-item:last-child{border-bottom:0}
.pick-item input{width:auto;margin:0;flex:0 0 auto}
.pick-thumb{width:36px;height:36px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px;overflow:hidden;border:1px solid var(--border)}
.pick-thumb img{width:100%;height:100%;object-fit:cover}
.pick-name{flex:1;font-size:.9rem;font-weight:650;display:flex;flex-direction:column;line-height:1.2}
.pick-name .muted{font-weight:400;font-size:.78rem}
.pick-home{opacity:.85}
.pick-item:has(input:checked){background:var(--accent-soft)}

/* ===== Catálogo de rutinas (tarjetas visuales) ===== */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin:.8rem 0 1.2rem}
.cat-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--radius);overflow:hidden;color:var(--ink);box-shadow:var(--shadow);
    transition:transform .12s,box-shadow .15s,border-color .15s}
.cat-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--accent)}
.cat-cover{aspect-ratio:16/10;background-size:cover;background-position:center;display:flex;
    align-items:center;justify-content:center;position:relative}
.cat-cover.ph{background:linear-gradient(135deg,#12805e,#17a074)}
.cat-cover span{font-size:2.8rem}
.cat-hidden{position:absolute;top:.5rem;right:.5rem;background:rgba(0,0,0,.55);color:#fff;font-size:.72rem;
    padding:.1rem .55rem;border-radius:999px}
.cat-body{padding:.7rem .8rem;display:flex;flex-direction:column;gap:.15rem}
.cat-body strong{font-size:1rem;letter-spacing:-.01em}
.cat-body .muted{font-size:.82rem}

/* Detalle de rutina */
.preset-detail-head{display:flex;gap:1.1rem;align-items:flex-start;flex-wrap:wrap}
.preset-cover{width:120px;height:120px;flex:0 0 auto;border-radius:var(--radius-sm);background-size:cover;
    background-position:center;display:flex;align-items:center;justify-content:center}
.preset-cover.ph{background:linear-gradient(135deg,#12805e,#17a074)}
.preset-cover span{font-size:3rem}

/* Planificador semanal */
.week-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}
.week-day{display:flex;flex-direction:column;gap:.25rem;margin:0}
.week-day>span{font-weight:600;font-size:.85rem;color:var(--ink)}
.week-day select{margin:0}

/* ===== Ayuno: chips ===== */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.2rem 0 .8rem}
.chip{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:999px;padding:.42rem .85rem;
    font:inherit;font-size:.88rem;cursor:pointer;color:var(--ink);font-weight:600;transition:all .15s}
.chip:hover{border-color:var(--accent)}
.chip.on{background:var(--accent);border-color:var(--accent);color:var(--btn-fg)}
.fast-goal{margin:.8rem 0;padding:.7rem .9rem;background:var(--surface-2);border-radius:var(--radius-sm);border:1px solid var(--border)}
.fast-adjust{margin-top:.8rem}
.fast-adjust>summary{font-size:.85rem;color:var(--muted);cursor:pointer}
.fast-adjust .inline-form{margin-top:.5rem}

/* ===== Responsive ===== */
@media (max-width:720px){
    /* Cambia a barra inferior tipo app */
    .mainnav{display:none}
    .topbar-in{height:56px;gap:.6rem}
    .subnav{top:56px}
    .user-name{display:none}
    .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:40;
        left:.6rem;right:.6rem;bottom:calc(.55rem + env(safe-area-inset-bottom));
        background:var(--tabbg);backdrop-filter:saturate(1.6) blur(12px);
        -webkit-backdrop-filter:saturate(1.6) blur(12px);
        border:1px solid var(--border);border-radius:1.35rem;box-shadow:var(--shadow-lg);
        padding:.5rem .3rem}
    .tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.18rem;
        color:var(--muted);font-weight:650;padding:.2rem 0;text-decoration:none;
        min-width:0;transition:color .15s}
    .tab:hover{text-decoration:none}
    .tab-ico{line-height:1;display:flex;align-items:center;justify-content:center;height:1.4rem}
    .tab-ico svg{width:1.4rem;height:1.4rem;display:block}
    .tab-lbl{font-size:.58rem;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .tab.active{color:var(--accent)}
    /* Deja hueco para la barra flotante */
    body{padding-bottom:calc(var(--tabbar-h) + 1.2rem + env(safe-area-inset-bottom))}
    .gx{padding-bottom:0}
}
@media (max-width:640px){
    .grid,.grid.two{grid-template-columns:1fr}
    .row{grid-template-columns:1fr}
    .compare{grid-template-columns:1fr}
    .hero{padding:1.3rem 1.4rem;gap:1rem}
    .big-number{font-size:3.3rem}
    h1{font-size:1.5rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===================== MODO OSCURO ===================== */
:root[data-theme="dark"]{
    --bg:#0e1512; --surface:#18211d; --surface-2:#131b17;
    --ink:#eaf3ee; --ink-soft:#c4d2cb; --muted:#8ba298; --faint:#6f857b;
    --border:#26332d; --border-strong:#33453c;
    --accent:#46e39a; --accent-dark:#5eeaa8; --accent-soft:#16281f; --accent-ring:rgba(70,227,154,.30);
    /* Tiles de acción / chips / pista (idénticos al mockup PRO oscuro) */
    --tile:#161f1b; --tile-line:#26332d; --ic-bg:#12241b; --ic-fg:#46e39a; --chip:#131b17; --track-c:#20302a; --tabbg:#141c18e6;
    --primary-bg:linear-gradient(160deg,#173a2b,#12241b); --primary-line:#2b6b4f;
    --primary-glow:0 0 0 1px rgba(70,227,154,.15),0 12px 26px -14px rgba(70,227,154,.55);
    --primary-ic-bg:#12241b; --primary-ic-fg:#46e39a; --primary-fg:#eaf3ee;
    --gold:#f2c14e; --gold-soft:#2c2617;
    --danger:#e0685c; --danger-soft:#2e1b19; --warn:#f2c14e;
    --btn-fg:#08130d;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);
    --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px -14px rgba(0,0,0,.6);
    --shadow-lg:0 18px 48px -18px rgba(0,0,0,.7);
}
:root[data-theme="dark"] .topbar{background:rgba(16,22,19,.85)}
:root[data-theme="dark"] .hero{background:linear-gradient(135deg,#16201b 0%,var(--accent-soft) 100%)}
:root[data-theme="dark"] .gx{background:#14170f}
:root[data-theme="dark"] .gx-info{background:var(--surface)}
:root[data-theme="dark"] .gx-media,:root[data-theme="dark"] .ex-thumb-wrap,:root[data-theme="dark"] .pick-thumb,
:root[data-theme="dark"] .gallery img,:root[data-theme="dark"] .ex-media{background:#e9ece3}
:root[data-theme="dark"] .gx-rest{background:rgba(20,23,15,.96)}
:root[data-theme="dark"] .cat-cover.ph,:root[data-theme="dark"] .preset-cover.ph{background:linear-gradient(135deg,#1c6b52,#2b8f6f)}
:root[data-theme="dark"] .flash{background:var(--accent-soft);border-color:#2c4a3b}
:root[data-theme="dark"] .badge.low{background:#1b2740;color:#9cc0ff}
:root[data-theme="dark"] .badge.warn{background:#2c2617;color:#e9c877}
:root[data-theme="dark"] .auth-body{background:radial-gradient(120% 90% at 50% -10%,#1d2b23 0%,var(--bg) 55%)}
.theme-toggle{background:none;border:0;cursor:pointer;font-size:1.1rem;padding:.2rem .4rem;border-radius:8px;line-height:1}
.theme-toggle:hover{background:var(--surface-2)}

/* --- Selector de idioma con banderas --- */
.lang-toggle{display:inline-flex;gap:.15rem;padding:.15rem;border-radius:999px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.lang-toggle .lt-flag{display:inline-flex;align-items:center;justify-content:center;
  width:1.9rem;height:1.55rem;font-size:1rem;line-height:1;border-radius:999px;
  text-decoration:none;filter:grayscale(.55);opacity:.7;transition:filter .15s,opacity .15s,background .15s}
.lang-toggle .lt-flag:hover{opacity:1;filter:grayscale(0)}
.lang-toggle .lt-flag.is-active{opacity:1;filter:grayscale(0);background:rgba(255,255,255,.16);
  box-shadow:0 1px 3px rgba(0,0,0,.25)}
/* Variante sobre fondo claro (dentro de la app) */
.lang-toggle.on-light{background:var(--accent-soft);border-color:var(--border)}
.lang-toggle.on-light .lt-flag.is-active{background:#fff}

/* --- Editor de planes (admin) --- */
.plan-card summary{line-height:1.6}
.plan-form{margin-top:.6rem}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.6rem;margin-bottom:.6rem}
.plan-feats{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .8rem;margin:.8rem 0}
.plan-feats legend{font-size:.85rem;font-weight:600;padding:0 .4rem}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.25rem .8rem}
.feat-grid .check-label{font-size:.9rem;margin:0}

/* ===== Safe areas para app nativa (Capacitor) / PWA (viewport-fit=cover) =====
   La barra superior debe bajar por debajo del notch/isla dinámica, la subnav
   acompañarla, y hay que respetar los laterales (notch en horizontal).
   Va al final del archivo para ganar por cascada a las reglas previas. */
.topbar{ padding-top: env(safe-area-inset-top); }
.subnav{ top: calc(60px + env(safe-area-inset-top)); }
@media (max-width:720px){
    /* mismo breakpoint que el override existente ".subnav{top:56px}" */
    .subnav{ top: calc(56px + env(safe-area-inset-top)); }
}

/* Márgenes laterales seguros (notch en horizontal; 0 en vertical) */
body{
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
}
/* OJO: NO poner "html,body{overflow-x:hidden}" aquí. En iOS/WebKit, combinado con los
   fondos position:fixed del login (.auth-bg/.auth-shade), descuadra el viewport y desplaza
   el contenido hacia la derecha. Si hiciera falta cortar scroll horizontal, hazlo con
   overflow-x:clip en EL contenedor concreto que se desborde, nunca global en html/body. */

/* Botón "atrás" en pantallas de auth (login/registro) */
.auth-back{position:fixed;top:calc(.8rem + env(safe-area-inset-top));left:.9rem;z-index:3;
  display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;
  border-radius:50%;background:rgba(16,22,19,.55);backdrop-filter:saturate(1.4) blur(8px);
  -webkit-backdrop-filter:saturate(1.4) blur(8px);border:1px solid rgba(255,255,255,.18);
  color:#eaf3ee;font-size:1.4rem;line-height:1;text-decoration:none}
.auth-back:hover{background:rgba(16,22,19,.78);text-decoration:none}

/* Ocultar UI específica de PWA/navegador cuando corre dentro de la app nativa (Capacitor) */
.is-app #installCard, .is-app #notifUnsupported{display:none!important}

/* Elementos visibles solo dentro de la app nativa */
.app-only{display:none}
.is-app .app-only{display:block}
