/* ============================================================
   KANSŌ — sistema visual
   Consola personal: papel cálido, tinta, un acento sobrio.
   Grotesca para texto · monoespaciada para datos. Sin emojis.
   ============================================================ */

:root{
  /* superficies */
  --bg:#E4E2DB;          /* entorno alrededor de la app */
  --paper:#F5F4EF;       /* columna de la app */
  --card:#FFFFFF;        /* tarjetas */
  --sunk:#F2F1EB;        /* campos hundidos / pistas */

  /* tinta */
  --ink:#1C1B18;
  --ink-2:#56554D;
  --ink-3:#8C8A80;
  --ink-4:#B6B4A9;

  /* líneas */
  --line:#E2E0D7;
  --line-2:#ECEAE2;

  /* acento único: azul petróleo apagado */
  --accent:#37618E;
  --accent-2:#2C4E73;
  --accent-weak:rgba(55,97,142,.10);
  --accent-weak-2:rgba(55,97,142,.18);

  --safe-t:env(safe-area-inset-top,0px);
  --safe-b:env(safe-area-inset-bottom,0px);
  --ease:cubic-bezier(.22,1,.36,1);

  --sans:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  display:flex;justify-content:center;align-items:stretch;
}

/* columna de app ----------------------------------------------------------- */
#app{
  position:relative;
  width:100%;max-width:432px;
  height:100dvh;
  background:var(--paper);
  display:flex;flex-direction:column;
  overflow:hidden;
}
@media(min-width:480px){
  body{padding:22px 0;}
  #app{
    height:calc(100dvh - 44px);
    border-radius:22px;
    box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 22px 60px -24px rgba(28,27,24,.35),0 2px 10px rgba(28,27,24,.06);
    border:1px solid var(--line);
  }
}

/* mono micro-etiqueta (kicker) reutilizable -------------------------------- */
.kick{
  font-family:var(--mono);
  font-size:10px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-3);
}

/* ===================== HEADER (slim) ===================== */
header{
  flex-shrink:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(14px + var(--safe-t)) 22px 13px;
  border-bottom:1px solid var(--line);background:var(--paper);
}
header .mark{
  font-family:var(--mono);font-size:11px;font-weight:600;
  letter-spacing:.26em;color:var(--ink);text-transform:uppercase;
}
.gear{
  width:32px;height:32px;border-radius:9px;cursor:pointer;
  background:transparent;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2);
  transition:all .16s var(--ease);
}
.gear:active{transform:scale(.9) rotate(40deg);background:var(--ink);color:var(--paper);border-color:var(--ink);}
.gear svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

/* saludo (en Inicio) */
.home-greet{margin-bottom:16px;}
.home-greet .sub{font-size:12.5px;font-weight:500;color:var(--ink-3);letter-spacing:.01em;}
.home-greet .main{font-size:25px;font-weight:600;letter-spacing:-.025em;line-height:1.1;margin-top:3px;color:var(--ink);}
.home-status{display:flex;align-items:center;gap:7px;margin-top:8px;
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--ink-2);text-transform:uppercase;}
.home-status .dot{color:var(--ink-4);}

/* anillos */
.rings{display:flex;gap:10px;flex-shrink:0;}
.rw{position:relative;width:42px;height:42px;cursor:default;}
.rw svg{transform:rotate(-90deg);display:block;}
.ring-bg{fill:none;stroke:var(--line);stroke-width:3;}
.ring-fill{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;
  transition:stroke-dashoffset .9s var(--ease);}
.ring-lbl{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.04em;
  color:var(--ink-2);
}

/* ===================== INSIGHT (smart stack) ===================== */
.insight{
  flex-shrink:0;margin:14px 22px 0;
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:13px 15px;
}
.ins-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.ins-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);position:relative;}
.ins-dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--accent);
  opacity:.4;animation:ping 2.4s var(--ease) infinite;}
@keyframes ping{0%{transform:scale(.6);opacity:.5}70%,100%{transform:scale(1.5);opacity:0}}
.ins-text{font-size:13.5px;line-height:1.5;color:var(--ink-2);transition:opacity .4s;}
.ins-text b{color:var(--ink);font-weight:600;}

/* ===================== STRIP ===================== */
.strip{
  flex-shrink:0;display:flex;margin:14px 22px 0;
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  overflow:hidden;
}
.sc{
  flex:1;padding:11px 6px;text-align:center;
  border-right:1px solid var(--line-2);
}
.sc:last-child{border-right:none;}
.sc-v{display:block;font-family:var(--mono);font-size:17px;font-weight:600;
  color:var(--ink);line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
.sc-l{display:block;font-family:var(--mono);font-size:8.5px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);margin-top:5px;}

/* ===================== NAV ===================== */
nav{
  flex-shrink:0;display:flex;gap:2px;
  padding:14px 22px 0;
}
.tab{
  flex:1;text-align:center;cursor:pointer;user-select:none;
  padding:0 2px 11px;position:relative;
  transition:color .2s var(--ease);
}
.tab .ti{
  display:block;font-family:var(--mono);font-size:9px;font-weight:500;
  letter-spacing:.1em;color:var(--ink-4);margin-bottom:4px;
  transition:color .2s var(--ease);
}
.tab .tl{
  display:block;font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--ink-3);
  transition:color .2s var(--ease);
}
.tab .tl.jp{font-weight:500;}
.tab::after{
  content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:2px;
  background:var(--accent);border-radius:2px;transform:scaleX(0);
  transition:transform .26s var(--ease);
}
.tab.active .ti{color:var(--accent);}
.tab.active .tl{color:var(--ink);}
.tab.active::after{transform:scaleX(1);}
nav{border-bottom:1px solid var(--line);}

/* ===================== PANELS ===================== */
main{flex:1;overflow:hidden;position:relative;}
.panel{
  display:none;position:absolute;inset:0;overflow-y:auto;
  padding:18px 22px calc(28px + var(--safe-b));
  -webkit-overflow-scrolling:touch;
}
.panel.active{display:block;animation:fade .3s var(--ease);}
@keyframes fade{from{transform:translateY(8px)}to{transform:translateY(0)}}
::-webkit-scrollbar{width:0;height:0;}

/* ===================== CARD ===================== */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:17px 17px;margin-bottom:12px;
}
.ct{
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);
  margin-bottom:14px;
}
.ct .badge{
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.04em;
  color:var(--accent);background:var(--accent-weak);white-space:nowrap;
  padding:2px 8px;border-radius:99px;
}

/* ===================== PROGRESS ===================== */
.pr{margin-bottom:13px;}
.pr:last-child{margin-bottom:0;}
.ph{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px;}
.pn{font-size:13px;font-weight:500;color:var(--ink-2);}
.pv{font-family:var(--mono);font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.pv b{color:var(--ink);font-weight:600;}
.pb{height:6px;background:var(--sunk);border-radius:99px;overflow:hidden;}
.pf{height:100%;border-radius:99px;background:var(--accent);
  transition:width .8s var(--ease);}

/* ===================== MACRO GRID ===================== */
.mgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:16px;}
.mbox{background:var(--sunk);border:1px solid var(--line-2);border-radius:13px;
  padding:13px 8px;text-align:center;}
.mbox-val{display:block;font-family:var(--mono);font-size:21px;font-weight:600;
  line-height:1.1;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.mbox-lbl{display:block;font-family:var(--mono);font-size:8.5px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);margin-top:6px;}
.mbox-obj{font-family:var(--mono);font-size:10px;color:var(--ink-3);margin-top:3px;}
/* (PRESETS / pgrid eliminado — Nutrición usa slots + buscador) */

/* ===================== DAY PILLS ===================== */
.dpills{display:flex;gap:6px;margin-bottom:16px;overflow-x:auto;padding-bottom:2px;}
.dp{
  flex-shrink:0;padding:7px 13px;border-radius:9px;cursor:pointer;
  background:var(--sunk);border:1px solid var(--line-2);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.04em;
  color:var(--ink-3);text-transform:uppercase;
  transition:all .2s var(--ease);
}
.dp.a{background:var(--ink);border-color:var(--ink);color:var(--paper);}

.daytype{display:flex;align-items:center;gap:10px;}
.daytype .dt-tag{
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent);
  border:1px solid var(--accent-weak-2);border-radius:6px;padding:3px 8px;
}
.daytype .dt-name{font-size:15px;font-weight:600;color:var(--ink);}

/* ===================== EXERCISE TABLE ===================== */
.ex-hdr,.ex-row{display:grid;grid-template-columns:1fr 52px 52px 30px;gap:8px;align-items:center;}
.ex-hdr{padding:0 0 9px;border-bottom:1px solid var(--line);}
.ex-hl{font-family:var(--mono);font-size:8.5px;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-4);text-align:center;}
.ex-hl:first-child{text-align:left;}
.ex-row{padding:11px 0;border-bottom:1px solid var(--line-2);}
.ex-row:last-child{border-bottom:none;}
.ex-name{font-size:13.5px;font-weight:500;color:var(--ink);}
.ex-sets{font-family:var(--mono);font-size:10px;color:var(--ink-3);margin-top:2px;letter-spacing:.02em;}
.ex-inp{
  width:100%;text-align:center;background:var(--sunk);border:1px solid var(--line-2);
  border-radius:8px;padding:7px 2px;color:var(--ink);
  font-family:var(--mono);font-size:12px;font-weight:500;
  transition:border-color .15s,background .15s;
}
.ex-inp::placeholder{color:var(--ink-4);}
.ex-inp:focus{outline:none;border-color:var(--accent);background:var(--card);}
.ex-ck{
  width:28px;height:28px;border-radius:8px;margin:auto;cursor:pointer;
  background:var(--sunk);border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  transition:all .22s var(--ease);
}
.ex-ck svg{width:13px;height:13px;stroke:var(--paper);stroke-width:3;fill:none;
  stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);
  transition:all .22s var(--ease);}
.ex-ck.d{background:var(--accent);border-color:var(--accent);}
.ex-ck.d svg{opacity:1;transform:scale(1);}

/* ===================== PB ROWS ===================== */
.pb-row{display:flex;justify-content:space-between;align-items:center;
  padding:11px 0;border-bottom:1px solid var(--line-2);}
.pb-row:last-child{border-bottom:none;}
.pb-name{font-size:13.5px;font-weight:500;color:var(--ink-2);}
.pb-val{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums;}
.pb-val .u{color:var(--ink-3);font-size:11px;font-weight:400;}

/* ===================== MEALS ===================== */
/* proteína destacada */
.prot-hero{background:var(--accent-weak);border:1px solid var(--accent-weak-2);border-radius:13px;
  padding:14px;margin-bottom:13px;}
.ph-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px;}
.ph-lbl{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);}
.ph-val{font-family:var(--mono);font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.ph-val .u{font-size:11px;font-weight:400;color:var(--ink-3);letter-spacing:0;}
.ph-bar{height:8px;background:var(--card);border-radius:99px;overflow:hidden;}
.ph-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .7s var(--ease);}
.ph-rest{font-family:var(--mono);font-size:10px;color:var(--accent-2);margin-top:8px;letter-spacing:.02em;}

/* presupuesto: barra */
.bud-track{height:6px;background:var(--card);border-radius:99px;overflow:hidden;margin-top:9px;}
.bud-bar{height:100%;border-radius:99px;background:var(--accent);transition:width .7s var(--ease);}

/* momentos del día */
.slot{padding:6px 0 12px;border-bottom:1px solid var(--line);}
.slot:last-child{border-bottom:none;padding-bottom:0;}
.slot:first-child{padding-top:0;}
.slot-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px;}
.slot-name{font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.slot-kc{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.slot-empty{font-family:var(--mono);font-size:11px;color:var(--ink-4);padding:5px 0;}
.slot-add{display:inline-flex;align-items:center;gap:5px;margin-top:7px;
  background:transparent;border:1px dashed var(--line);border-radius:9px;padding:7px 12px;cursor:pointer;
  color:var(--ink-3);font-family:var(--sans);font-size:12px;font-weight:500;transition:all .16s var(--ease);}
.slot-add .plus{font-family:var(--mono);font-size:13px;line-height:1;}
.slot-add:active{border-color:var(--accent);color:var(--accent);background:var(--sunk);}

/* buscador de alimentos */
.food-results{max-height:46vh;overflow-y:auto;margin:4px 0 8px;-webkit-overflow-scrolling:touch;}
.food-sec{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-4);margin:13px 0 6px;}
.food-sec:first-child{margin-top:4px;}
.food-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line-2);cursor:pointer;}
.food-row:active{opacity:.6;}
.food-info{flex:1;min-width:0;}
.food-name{display:block;font-size:13.5px;font-weight:500;color:var(--ink);}
.food-star{color:var(--accent);font-size:10px;margin-right:5px;}
.food-macros{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:2px;letter-spacing:.02em;}
.food-macros b{color:var(--ink-2);font-weight:600;}
.food-del{background:none;border:none;color:var(--ink-4);cursor:pointer;padding:5px;line-height:0;border-radius:6px;flex-shrink:0;}
.food-del:active{color:var(--warn);}
.food-del svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;}
.food-plus{width:20px;height:20px;color:var(--accent);flex-shrink:0;}
.food-plus svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;}
.food-create{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;
  background:transparent;border:1px dashed var(--line);border-radius:10px;padding:11px;cursor:pointer;
  color:var(--accent);font-family:var(--sans);font-size:13px;font-weight:600;transition:all .16s var(--ease);}
.food-create .plus{font-family:var(--mono);font-size:15px;line-height:1;}
.food-create:active{background:var(--accent-weak);}

.meal-item{display:flex;align-items:center;gap:12px;padding:11px 0;
  border-bottom:1px solid var(--line-2);}
.meal-item:last-child{border-bottom:none;}
.meal-mark{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;}
.meal-body{flex:1;min-width:0;}
.meal-name{font-size:13.5px;font-weight:500;color:var(--ink);}
.meal-info{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:2px;letter-spacing:.02em;}
.meal-info b{color:var(--ink-2);font-weight:600;}
.meal-del{background:none;border:none;color:var(--ink-4);cursor:pointer;
  padding:6px;line-height:0;border-radius:6px;transition:color .15s,background .15s;}
.meal-del:hover{color:var(--accent-2);background:var(--accent-weak);}
.meal-del svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;}

/* ===================== PRESETS ===================== */
/* ===================== PRESETS ===================== */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.preset{
  position:relative;cursor:pointer;border-radius:13px;padding:14px;
  background:var(--sunk);border:1px solid var(--line-2);
  transition:all .18s var(--ease);
}
.preset:active{transform:scale(.97);background:var(--card);border-color:var(--line);}
.preset-name{display:block;font-size:13.5px;font-weight:600;color:var(--ink);
  margin-bottom:6px;padding-right:16px;line-height:1.25;}
.preset-info{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.02em;}
.preset-info b{color:var(--accent-2);font-weight:600;}
.preset-del{position:absolute;top:8px;right:8px;background:none;border:none;
  color:var(--ink-4);cursor:pointer;padding:4px;line-height:0;border-radius:5px;}
.preset-del:hover{color:var(--accent-2);}
.preset-del svg{width:11px;height:11px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;}
.preset-add{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  border:1px dashed var(--line);background:transparent;border-radius:13px;
  min-height:64px;cursor:pointer;color:var(--ink-3);
  font-size:12.5px;font-weight:500;transition:all .18s var(--ease);
}
.preset-add .plus{font-family:var(--mono);font-size:17px;font-weight:400;line-height:1;color:var(--ink-3);}
.preset-add:active{background:var(--sunk);border-color:var(--accent);color:var(--accent);}


/* ===================== HEALTH BOXES ===================== */
.hgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.hbox{background:var(--sunk);border:1px solid var(--line-2);border-radius:14px;
  padding:14px 12px;text-align:center;}
.hbox-lbl{display:block;font-family:var(--mono);font-size:9px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);margin-bottom:8px;}
.hbox-val{display:block;font-family:var(--mono);font-size:25px;font-weight:600;
  line-height:1;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.hbox-val.word{font-size:15px;letter-spacing:0;}
.hbox-ctrl{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:12px;}
/* sueño tocable */
.hbox.tap{cursor:pointer;transition:background .15s var(--ease);}
.hbox.tap:active{background:var(--accent-weak);border-color:var(--accent-weak-2);}
.hbox-sub{font-family:var(--mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);margin-top:12px;}

/* segmented (momento del suplemento) */
.seg{display:flex;gap:5px;background:var(--sunk);border:1px solid var(--line-2);border-radius:10px;padding:4px;}
.seg-b{flex:1;padding:8px 4px;border:none;background:transparent;border-radius:7px;cursor:pointer;
  font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink-3);letter-spacing:-.01em;
  transition:all .16s var(--ease);}
.seg-b.active{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(28,27,24,.08);}
.seg-goal .seg-b{font-size:11.5px;padding:8px 2px;}

/* ajustes: nota + cálculo */
.set-note{font-size:11.5px;line-height:1.45;color:var(--ink-3);margin:-4px 0 12px;}
.set-calc{display:flex;flex-direction:column;gap:3px;background:var(--accent-weak);
  border:1px solid var(--accent-weak-2);border-radius:12px;padding:12px 14px;margin:4px 0 4px;}
.set-calc-l{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent-2);}
.set-calc-v{font-family:var(--mono);font-size:14px;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.set-calc-v b{color:var(--ink);font-weight:600;font-size:16px;}

/* cálculo de sueño */
.sleep-calc{text-align:center;font-family:var(--mono);font-size:20px;font-weight:600;color:var(--ink);
  margin:4px 0 16px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}

/* peso vs meta */
.wg-row{display:flex;align-items:center;gap:10px;}
.wg-cur,.wg-tgt,.wg-diff{flex:1;text-align:center;}
.wg-v{display:block;font-family:var(--mono);font-size:22px;font-weight:600;color:var(--ink);line-height:1;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.wg-l{display:block;font-family:var(--mono);font-size:8px;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-4);margin-top:6px;}
.wg-arrow{width:16px;height:16px;color:var(--ink-4);flex-shrink:0;}
.wg-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
.wg-diff .wg-v{color:var(--accent);}
.wg-diff.ok .wg-v{color:var(--aw-exercise);}
.wg-check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:0 auto;}
.wg-check svg{width:20px;height:20px;stroke:var(--aw-exercise);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.wg-pace{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:13px;padding-top:12px;
  border-top:1px solid var(--line-2);text-align:center;letter-spacing:.02em;}

/* suplementos por grupo */
.sup-group{margin-bottom:14px;}
.sup-group:last-child{margin-bottom:0;}
.sup-gh{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-4);margin-bottom:8px;}
.cb{
  width:32px;height:32px;border-radius:9px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);color:var(--ink-2);
  font-family:var(--mono);font-size:14px;line-height:0;
  display:flex;align-items:center;justify-content:center;
  transition:all .16s var(--ease);
}
.cb:active{transform:scale(.9);background:var(--ink);color:var(--paper);border-color:var(--ink);}

/* ===================== WATER ===================== */
.wbtns{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:13px;}
.wb{
  padding:10px 4px;border-radius:10px;cursor:pointer;
  background:var(--accent-weak);border:1px solid var(--accent-weak-2);color:var(--accent-2);
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.02em;
  transition:all .18s var(--ease);
}
.wb:active{transform:scale(.93);background:var(--accent);color:#fff;border-color:var(--accent);}

/* ===================== SUPPLEMENTS ===================== */
.sup-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;}
.sup-wrap{position:relative;border-radius:11px;overflow:hidden;}
.sup-del-bg{position:absolute;right:0;top:0;bottom:0;width:74px;
  background:var(--accent-2);display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:#fff;border-radius:11px;}
.sup-item{
  position:relative;z-index:1;display:flex;align-items:center;gap:11px;
  background:var(--card);border:1px solid var(--line);border-radius:11px;
  padding:12px 14px;cursor:pointer;user-select:none;
  font-size:13.5px;font-weight:500;color:var(--ink);
  transition:transform .3s var(--ease),background .2s,border-color .2s;
}
.sup-check{width:18px;height:18px;border-radius:6px;flex-shrink:0;
  border:1.5px solid var(--line);background:var(--sunk);
  display:flex;align-items:center;justify-content:center;transition:all .25s var(--ease);}
.sup-check svg{width:10px;height:10px;stroke:var(--paper);stroke-width:3;fill:none;
  stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .2s;}
.sup-item.d{background:var(--accent-weak);border-color:var(--accent-weak-2);}
.sup-item.d .sup-check{background:var(--accent);border-color:var(--accent);}
.sup-item.d .sup-check svg{opacity:1;}
.sup-name{flex:1;}
.sup-stock{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.04em;
  color:var(--ink-4);}
.sup-stock.low{color:var(--accent-2);}
.sup-add-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:6px;
  background:transparent;border:1px dashed var(--line);border-radius:11px;
  padding:11px;cursor:pointer;color:var(--ink-3);
  font-family:var(--sans);font-size:12.5px;font-weight:500;
  transition:all .18s var(--ease);
}
.sup-add-btn .plus{font-family:var(--mono);font-size:15px;line-height:1;}
.sup-add-btn:active{border-color:var(--accent);color:var(--accent);}

/* ===================== CHART ===================== */
.chart-wrap{margin-top:4px;}
.svg-chart{width:100%;display:block;overflow:visible;}
.chart-line{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.chart-dot{fill:var(--accent);}
.chart-label{font-family:var(--mono);font-size:9px;fill:var(--ink-3);}
.chart-empty{font-family:var(--mono);font-size:10px;fill:var(--ink-4);letter-spacing:.04em;}

/* ===================== JP ===================== */
.streak-hero{text-align:center;padding:8px 0 2px;}
.streak-num{display:block;font-family:var(--mono);font-size:64px;font-weight:600;
  letter-spacing:-.04em;color:var(--ink);line-height:.9;font-variant-numeric:tabular-nums;}
.streak-lbl{display:block;font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-top:12px;}
.streak-warn{display:inline-block;margin-top:13px;font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.04em;padding:5px 11px;border-radius:99px;
  background:var(--sunk);border:1px solid var(--line-2);color:var(--ink-3);}
.streak-warn.ok{background:rgba(94,138,107,.13);border-color:rgba(94,138,107,.28);color:var(--aw-exercise);}
.streak-warn.risk{background:rgba(176,71,60,.1);border-color:rgba(176,71,60,.28);color:var(--warn);}
.streak-warn.grace{background:rgba(184,137,59,.12);border-color:rgba(184,137,59,.3);color:var(--set-warm);}

/* inmersión por tipo */
.imm-kinds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:14px;}
.imm-k{padding:7px 13px;border-radius:9px;cursor:pointer;
  background:var(--sunk);border:1px solid var(--line-2);color:var(--ink-3);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.02em;transition:all .16s var(--ease);}
.imm-k.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.imm-break{margin-top:14px;}
.imm-break-grid{display:flex;flex-direction:column;gap:10px;}
.imm-bk-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px;
  font-size:12px;color:var(--ink-2);}
.imm-bk-v{font-family:var(--mono);font-size:11px;color:var(--ink-3);}
.imm-bk-bar{height:5px;background:var(--sunk);border-radius:99px;overflow:hidden;}
.imm-bk-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .6s var(--ease);}

/* editor de tareas JP */
.jt-edit-list{display:flex;flex-direction:column;gap:12px;margin:8px 0 10px;}
.jt-erow{display:grid;grid-template-columns:1fr 48px 34px;gap:8px;align-items:center;}
.jt-erow .jt-es{grid-column:1 / -1;}
.jt-erow .fi{padding:10px 11px;font-size:13px;}
.jt-erow .jt-et{text-align:center;}

.jptasks{display:flex;flex-direction:column;gap:9px;}
.jt{display:flex;align-items:center;gap:13px;cursor:pointer;user-select:none;
  background:var(--sunk);border:1px solid var(--line-2);border-radius:13px;
  padding:14px 15px;transition:all .22s var(--ease);}
.jt:active{transform:scale(.985);}
.jt.d{background:var(--accent-weak);border-color:var(--accent-weak-2);}
.jck{width:22px;height:22px;border-radius:7px;flex-shrink:0;
  border:1.5px solid var(--line);background:var(--card);
  display:flex;align-items:center;justify-content:center;transition:all .25s var(--ease);}
.jck svg{width:12px;height:12px;stroke:var(--paper);stroke-width:3;fill:none;
  stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:all .25s var(--ease);}
.jt.d .jck{background:var(--accent);border-color:var(--accent);}
.jt.d .jck svg{opacity:1;transform:scale(1);}
.jt-body{flex:1;}
.jt-name{font-size:14px;font-weight:600;color:var(--ink);}
.jt-sub{font-size:11.5px;color:var(--ink-3);margin-top:2px;}
.jt-tag{font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-4);}

.imm-box{text-align:center;padding:2px 0;}
.imm-lbl{display:block;font-family:var(--mono);font-size:9px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px;}
.imm-time{display:block;font-family:var(--mono);font-size:46px;font-weight:600;
  letter-spacing:-.02em;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums;}

.hmap-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;}
.hmap-dl{font-family:var(--mono);font-size:8px;color:var(--ink-4);text-align:center;
  font-weight:500;letter-spacing:.04em;}
.hmap{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.hd{aspect-ratio:1;border-radius:5px;background:var(--sunk);border:1px solid var(--line-2);
  transition:background .3s var(--ease);}
.hd.on{background:var(--accent);border-color:var(--accent);}

/* ===================== BUTTONS ===================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 18px;border-radius:11px;border:1px solid transparent;cursor:pointer;
  font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:-.01em;
  transition:all .18s var(--ease);
}
.btn:active{transform:scale(.96);}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-accent{background:var(--accent);color:#fff;}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink-2);}
.btn-row{display:flex;gap:9px;flex-wrap:wrap;}

/* ===================== MODAL ===================== */
.mo{
  display:none;position:fixed;inset:0;z-index:500;
  background:rgba(28,27,24,.32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  align-items:flex-end;justify-content:center;
}
.mo.open{display:flex;}
.md{
  width:100%;max-width:432px;background:var(--paper);
  border-radius:22px 22px 0 0;border-top:1px solid var(--line);
  padding:18px 22px calc(22px + var(--safe-b));
  animation:sUp .38s var(--ease);
}
@media(min-width:480px){.md{border-radius:20px;margin-bottom:22px;border:1px solid var(--line);}}
@keyframes sUp{from{transform:translateY(110%)}to{transform:translateY(0)}}
.md-handle{width:34px;height:4px;background:var(--line);border-radius:99px;margin:0 auto 16px;}
.md-title{font-size:17px;font-weight:600;letter-spacing:-.02em;margin-bottom:18px;}
.fg{margin-bottom:13px;}
.fl{display:block;font-family:var(--mono);font-size:9.5px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px;}
.fi{
  width:100%;background:var(--card);border:1px solid var(--line);border-radius:11px;
  padding:12px 14px;color:var(--ink);font-family:var(--sans);font-size:14px;
  transition:border-color .15s;
}
.fi::placeholder{color:var(--ink-4);}
.fi:focus{outline:none;border-color:var(--accent);}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:11px;}

/* ===================== TOAST ===================== */
.toast{
  position:fixed;left:50%;bottom:calc(26px + var(--safe-b));z-index:600;
  transform:translateX(-50%) translateY(14px);
  background:var(--ink);color:var(--paper);
  border-radius:11px;padding:11px 18px;
  font-size:13px;font-weight:500;letter-spacing:-.01em;
  opacity:0;pointer-events:none;white-space:nowrap;max-width:90vw;
  box-shadow:0 12px 30px -8px rgba(28,27,24,.5);
  transition:all .35s var(--ease);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ===================== EMPTY ===================== */
.empty{text-align:center;padding:26px 16px;color:var(--ink-4);}
.empty .e-mark{font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-4);}
.empty .e-text{font-size:13px;color:var(--ink-3);margin-top:8px;line-height:1.5;}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
input[type=number]{-moz-appearance:textfield;}

/* ============================================================
   APPLE WATCH (módulo Salud)
   Tres tonos armónicos (misma luminosidad/croma, distinto matiz)
   ============================================================ */
:root{
  --aw-move:#B26A4B;      /* clay  */
  --aw-exercise:#5E8A6B;  /* sage  */
  --aw-stand:#4A72A6;     /* azul  */
}

/* estado conectar / vinculando */
.watch-connect{text-align:center;display:flex;flex-direction:column;align-items:center;gap:9px;padding:24px 18px;}
.aw-glyph{display:inline-flex;align-items:center;justify-content:center;color:var(--ink);}
.aw-watch-ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.aw-glyph.big{width:54px;height:54px;border-radius:16px;background:var(--sunk);border:1px solid var(--line);}
.aw-glyph.big .aw-watch-ico{width:28px;height:28px;}
.aw-glyph.big.pulse{animation:awpulse 1.1s var(--ease) infinite;}
@keyframes awpulse{0%,100%{box-shadow:0 0 0 0 var(--accent-weak-2)}50%{box-shadow:0 0 0 7px transparent}}
.aw-c-title{font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--ink);}
.aw-c-sub{font-size:12.5px;line-height:1.5;color:var(--ink-3);max-width:30ch;}

/* cabecera conectado */
.aw-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-bottom:15px;margin-bottom:15px;border-bottom:1px solid var(--line-2);}
.aw-id{display:flex;align-items:center;gap:11px;min-width:0;}
.aw-id .aw-glyph{width:38px;height:38px;border-radius:11px;background:var(--sunk);
  border:1px solid var(--line);flex-shrink:0;}
.aw-title{font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--ink);}
.aw-status{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;
  color:var(--ink-3);margin-top:3px;letter-spacing:.02em;}
.aw-dot{width:6px;height:6px;border-radius:50%;background:var(--aw-exercise);flex-shrink:0;
  box-shadow:0 0 0 0 rgba(94,138,107,.5);animation:awlive 2.2s var(--ease) infinite;}
@keyframes awlive{0%{box-shadow:0 0 0 0 rgba(94,138,107,.45)}70%,100%{box-shadow:0 0 0 5px rgba(94,138,107,0)}}
.aw-sync{display:flex;align-items:center;gap:6px;flex-shrink:0;cursor:pointer;
  background:var(--sunk);border:1px solid var(--line);border-radius:9px;padding:7px 11px;
  font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.04em;color:var(--ink-2);
  transition:all .16s var(--ease);}
.aw-sync:active{transform:scale(.95);background:var(--ink);color:var(--paper);border-color:var(--ink);}
.aw-sync-ico{font-size:14px;line-height:1;display:inline-block;}
.aw-sync.spin .aw-sync-ico{animation:awspin .9s linear infinite;}
@keyframes awspin{to{transform:rotate(360deg);}}

/* anillos */
.aw-rings{display:flex;align-items:center;gap:18px;margin-bottom:16px;}
.aw-ring-svg{width:104px;height:104px;flex-shrink:0;}
.awt,.awf{fill:none;stroke-width:9;stroke-linecap:round;}
.awt.move{stroke:var(--aw-move);opacity:.16;}
.awt.exercise{stroke:var(--aw-exercise);opacity:.16;}
.awt.stand{stroke:var(--aw-stand);opacity:.16;}
.awf.move{stroke:var(--aw-move);}
.awf.exercise{stroke:var(--aw-exercise);}
.awf.stand{stroke:var(--aw-stand);}
.awf{transition:stroke-dashoffset 1s var(--ease);}
.aw-legend{display:flex;flex-direction:column;gap:11px;flex:1;}
.aw-leg{display:flex;align-items:center;gap:9px;}
.aw-leg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.aw-leg-dot.move{background:var(--aw-move);}
.aw-leg-dot.exercise{background:var(--aw-exercise);}
.aw-leg-dot.stand{background:var(--aw-stand);}
.aw-leg-l{display:block;font-size:11px;font-weight:500;color:var(--ink-3);}
.aw-leg-v{display:block;font-family:var(--mono);font-size:12px;color:var(--ink-3);margin-top:1px;font-variant-numeric:tabular-nums;}
.aw-leg-v b{color:var(--ink);font-weight:600;font-size:13px;}

/* métricas */
.aw-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.aw-tile{background:var(--sunk);border:1px solid var(--line-2);border-radius:11px;
  padding:11px 6px;text-align:center;}
.aw-tile-l{display:block;font-family:var(--mono);font-size:8px;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);}
.aw-tile-v{display:block;font-family:var(--mono);font-size:17px;font-weight:600;color:var(--ink);
  line-height:1.1;margin-top:5px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
.aw-tile-u{display:block;font-family:var(--mono);font-size:8px;color:var(--ink-4);margin-top:2px;letter-spacing:.04em;}

/* pie */
.aw-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;
  padding-top:12px;border-top:1px solid var(--line-2);
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);}
.watch-connect .aw-foot{justify-content:center;border:none;margin-top:6px;padding-top:0;}
.aw-unlink{background:none;border:none;cursor:pointer;font-family:var(--mono);font-size:9px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);padding:2px 0;
  text-decoration:underline;text-underline-offset:2px;}
.aw-unlink:active{color:var(--accent-2);}

/* ============================================================
   INICIO · componentes del dashboard
   ============================================================ */
:root{--warn:#B0473C;}
.panel .insight{margin:0;}
.insight-top{margin-bottom:12px !important;}

/* tarjeta overview (anillos + strip) */
.overview{padding-bottom:8px;}
.ov-rings{display:flex;justify-content:space-around;gap:8px;margin-bottom:14px;}
.ovr{display:flex;flex-direction:column;align-items:center;gap:7px;}
.ovr .rw{width:46px;height:46px;position:relative;}
.ovr .rw svg{transform:rotate(-90deg);display:block;width:46px;height:46px;}
.ovr-l{font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);}
.ov-strip{display:flex;border-top:1px solid var(--line-2);padding-top:6px;}

/* anillos del Watch en Inicio */
.ov-watch{display:flex;align-items:center;gap:16px;margin-bottom:14px;}
.aw-ring-svg.sm{width:90px;height:90px;flex-shrink:0;}

/* acciones rápidas */
.qk-cal{margin-bottom:14px;}
.qk-cal-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px;}
.qk-cal-v{font-family:var(--mono);font-size:19px;font-weight:600;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.qk-cal-u{font-size:11px;font-weight:400;color:var(--ink-4);letter-spacing:0;}
.qk-cal-rest{font-family:var(--mono);font-size:10px;color:var(--aw-exercise);letter-spacing:.02em;white-space:nowrap;}
.qk-cal-rest.over{color:var(--warn);}
.qk-cal-bar{height:6px;background:var(--sunk);border-radius:99px;overflow:hidden;}
.qk-cal-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .7s var(--ease);}
.qk-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding-top:13px;border-top:1px solid var(--line-2);}
.qk-lbl{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink-2);letter-spacing:.02em;}
.qk-btns{display:flex;gap:6px;}
.qk-b{padding:8px 11px;border-radius:9px;cursor:pointer;
  background:var(--accent-weak);border:1px solid var(--accent-weak-2);color:var(--accent-2);
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.02em;transition:all .16s var(--ease);}
.qk-b:active{transform:scale(.93);background:var(--accent);color:#fff;border-color:var(--accent);}
.qk-b.accent{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.qk-b.accent:active{background:var(--accent);border-color:var(--accent);}

/* mini botón en cabeceras de tarjeta */
.mini-btn{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-2);cursor:pointer;
  background:var(--sunk);border:1px solid var(--line);border-radius:7px;padding:4px 10px;
  transition:all .16s var(--ease);}
.mini-btn:active{transform:scale(.94);background:var(--ink);color:var(--paper);border-color:var(--ink);}
.badge.ok{color:var(--aw-exercise);background:rgba(94,138,107,.13);}

/* lo de hoy */
.todo-list{display:flex;flex-direction:column;}
.todo{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer;
  border-bottom:1px solid var(--line-2);transition:opacity .2s;}
.todo:last-child{border-bottom:none;}
.todo-mk{width:20px;height:20px;border-radius:6px;flex-shrink:0;
  border:1.5px solid var(--line);background:var(--sunk);
  display:flex;align-items:center;justify-content:center;}
.todo-mk svg{width:11px;height:11px;stroke:var(--paper);stroke-width:3;fill:none;
  stroke-linecap:round;stroke-linejoin:round;}
.todo.done .todo-mk{background:var(--aw-exercise);border-color:var(--aw-exercise);}
.todo-body{flex:1;min-width:0;}
.todo-l{display:block;font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.todo.done .todo-l{color:var(--ink-3);}
.todo-s{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-4);margin-top:2px;letter-spacing:.02em;}
.todo-go{width:16px;height:16px;flex-shrink:0;color:var(--ink-4);}
.todo-go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* recuperación / estrés */
.reco-top{display:flex;align-items:center;gap:16px;margin-bottom:16px;}
.reco-score{flex-shrink:0;width:78px;height:78px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:3px solid var(--line);}
.reco-score.reco-optima{border-color:var(--aw-exercise);}
.reco-score.reco-buena{border-color:var(--aw-stand);}
.reco-score.reco-media{border-color:var(--aw-move);}
.reco-score.reco-baja{border-color:var(--warn);}
.reco-num{font-family:var(--mono);font-size:26px;font-weight:600;color:var(--ink);line-height:1;letter-spacing:-.02em;}
.reco-de{font-family:var(--mono);font-size:9px;color:var(--ink-4);margin-top:2px;}
.reco-info{flex:1;min-width:0;}
.reco-band{font-size:14.5px;font-weight:600;letter-spacing:-.01em;margin-bottom:4px;}
.reco-band.reco-optima{color:var(--aw-exercise);}
.reco-band.reco-buena{color:var(--aw-stand);}
.reco-band.reco-media{color:var(--aw-move);}
.reco-band.reco-baja{color:var(--warn);}
.reco-rec{font-size:12.5px;line-height:1.45;color:var(--ink-3);}
.reco-factors{display:flex;flex-direction:column;gap:10px;}
.reco-f-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px;}
.reco-f-k{font-size:11.5px;font-weight:500;color:var(--ink-2);}
.reco-f-v{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);}
.reco-bar{height:5px;background:var(--sunk);border-radius:99px;overflow:hidden;}
.reco-fill{height:100%;border-radius:99px;background:var(--accent);transition:width .7s var(--ease);}
.reco-empty .btn{align-self:flex-start;}

/* resumen semanal */
.wk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.wk{background:var(--sunk);border:1px solid var(--line-2);border-radius:12px;
  padding:13px 8px;text-align:center;}
.wk-v{display:block;font-family:var(--mono);font-size:20px;font-weight:600;color:var(--ink);
  line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.wk-u{font-size:11px;color:var(--ink-4);font-weight:400;}
.wk-l{display:block;font-family:var(--mono);font-size:8px;font-weight:500;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-4);margin-top:7px;}

/* presupuesto de calorías */
.budget{background:var(--sunk);border:1px solid var(--line-2);border-radius:13px;
  padding:12px 14px;margin-bottom:14px;}
.bud-line{display:flex;justify-content:space-between;align-items:baseline;}
.bud-l{font-size:12.5px;font-weight:500;color:var(--ink-2);}
.bud-v{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink);}
.bud-calc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.bud-seg{display:flex;flex-direction:column;line-height:1.1;}
.bud-seg b{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
.bud-seg span{font-family:var(--mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);margin-top:2px;}
.bud-seg.act b{color:var(--aw-move);}
.bud-seg.tot b{color:var(--accent);}
.bud-op{font-family:var(--mono);font-size:13px;color:var(--ink-4);}
.bud-rest{font-family:var(--mono);font-size:11px;color:var(--aw-exercise);margin-top:9px;
  padding-top:9px;border-top:1px solid var(--line);letter-spacing:.02em;}
.bud-rest.over{color:var(--warn);}

/* tendencias */
.trend-block{margin-bottom:6px;}
.trend-block:last-child{margin-bottom:0;}
.trend-cap{font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-4);}

/* sobrecarga progresiva */
.ex-info{min-width:0;}
.ex-meta{display:flex;align-items:center;gap:8px;margin-top:2px;flex-wrap:wrap;}
.ex-prev{font-family:var(--mono);font-size:9.5px;color:var(--accent-2);letter-spacing:.02em;
  background:var(--accent-weak);padding:1px 6px;border-radius:5px;}
.ex-prev .x{font-size:8px;opacity:.7;}

/* ── ENTRENADOR (coach) ── */
:root{
  --tone-subir:#5E8A6B;     /* verde · progresar carga */
  --tone-volumen:#4A72A6;   /* azul  · progresar reps  */
  --tone-mantener:#8C8A80;  /* gris  · mantener        */
  --tone-bajar:#B0473C;     /* rojo  · descarga        */
  --tone-calibrar:#37618E;  /* acento · sin datos      */
  --set-warm:#B8893B;       /* calentamiento (ámbar)   */
  --set-drop:#7A5AA6;       /* drop set (violeta)      */
}
.coach-banner{
  display:flex;align-items:center;gap:10px;
  border:1px solid var(--line);border-radius:12px;
  padding:11px 13px;margin-bottom:14px;background:var(--sunk);
  border-left:3px solid var(--tone-mantener);
}
.coach-banner.tone-subir{border-left-color:var(--tone-subir);}
.coach-banner.tone-volumen{border-left-color:var(--tone-volumen);}
.coach-banner.tone-mantener{border-left-color:var(--tone-mantener);}
.coach-banner.tone-bajar{border-left-color:var(--tone-bajar);}
.cb-tag{font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);flex-shrink:0;}
.cb-msg{flex:1;font-size:12px;line-height:1.4;color:var(--ink-2);}
.cb-score{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink);flex-shrink:0;
  font-variant-numeric:tabular-nums;}

.coach-chip{
  font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.02em;
  border:1px solid currentColor;border-radius:6px;padding:2px 7px;cursor:pointer;
  background:transparent;line-height:1.4;transition:all .15s var(--ease);
}
.coach-chip.tone-subir{color:var(--tone-subir);}
.coach-chip.tone-volumen{color:var(--tone-volumen);}
.coach-chip.tone-mantener{color:var(--tone-mantener);}
.coach-chip.tone-bajar{color:var(--tone-bajar);}
.coach-chip.tone-calibrar{color:var(--tone-calibrar);}
.coach-chip:active{transform:scale(.93);background:currentColor;}
.coach-chip:active{color:#fff;}
.coach-chip.tone-subir:active{background:var(--tone-subir);}
.coach-chip.tone-volumen:active{background:var(--tone-volumen);}
.coach-chip.tone-mantener:active{background:var(--tone-mantener);}
.coach-chip.tone-bajar:active{background:var(--tone-bajar);}
.coach-chip.tone-calibrar:active{background:var(--tone-calibrar);}

.coach-line{
  font-size:11.5px;line-height:1.45;color:var(--ink-3);
  padding:0 0 12px 0;margin:-2px 0 0;border-bottom:1px solid var(--line-2);
}
.coach-line b{color:var(--ink);font-weight:600;}
.coach-line.tone-subir b{color:var(--tone-subir);}
.coach-line.tone-bajar b{color:var(--tone-bajar);}
.ex-row:has(+ .coach-line){border-bottom:none;}

/* ── SESIÓN ── */
.sess-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:13px 16px;margin-bottom:12px;}
.sess-bar:empty{display:none;}
.sess-lbl{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.sess-lbl.idle{color:var(--ink-3);font-weight:500;}
.sess-bar .sess-fin{padding:9px 16px;font-size:13px;}
.sess-bar.active{border-color:var(--accent-weak-2);background:var(--accent-weak);}
.sess-live{display:flex;align-items:center;gap:11px;}
.sess-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex-shrink:0;
  box-shadow:0 0 0 0 rgba(55,97,142,.5);animation:awlive 1.8s var(--ease) infinite;}
.sess-time{font-family:var(--mono);font-size:19px;font-weight:600;color:var(--ink);
  line-height:1;margin-top:2px;font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
.sess-actions{display:flex;align-items:center;gap:11px;}
.sess-vol{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink-2);letter-spacing:.02em;}
.sess-bar.done{background:rgba(94,138,107,.1);border-color:rgba(94,138,107,.28);}
.sess-mk{width:22px;height:22px;border-radius:7px;background:var(--aw-exercise);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;}
.sess-mk svg{width:12px;height:12px;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}

/* ── BLOQUE DE EJERCICIO (serie por serie) ── */
.exb{padding:15px 0;border-bottom:1px solid var(--line);}
.exb:first-child{padding-top:0;}
.exb:last-child{border-bottom:none;padding-bottom:0;}
.exb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px;}
.exb-name{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.015em;}
/* nombre tocable → abre detalle */
button.exb-name{background:none;border:none;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:3px;
  text-align:left;font-family:var(--sans);transition:color .15s;}
button.exb-name:active{color:var(--accent);}
.exb-go{width:13px;height:13px;color:var(--ink-4);display:inline-flex;}
.exb-go svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}

/* récords con fecha */
.pb-row{cursor:pointer;}
.pb-right{display:flex;align-items:center;gap:10px;}
.pb-date{font-family:var(--mono);font-size:9.5px;color:var(--ink-4);letter-spacing:.04em;}

/* detalle de ejercicio */
.exd-1rm{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px;}
.exd-1rm-main,.exd-1rm-rel{background:var(--accent-weak);border:1px solid var(--accent-weak-2);
  border-radius:13px;padding:13px 14px;}
.exd-1rm-lbl{display:block;font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent-2);}
.exd-1rm-v{display:block;font-family:var(--mono);font-size:24px;font-weight:600;color:var(--ink);
  line-height:1.1;margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.exd-1rm-v .u{font-size:11px;font-weight:400;color:var(--ink-3);letter-spacing:0;margin-left:2px;}
.exd-1rm-d{display:block;font-family:var(--mono);font-size:9px;color:var(--ink-4);margin-top:4px;letter-spacing:.04em;}
.exd-records{display:flex;flex-direction:column;gap:1px;margin-bottom:16px;}
.exd-rec{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--line-2);}
.exd-rec:last-child{border-bottom:none;}
.exd-rl{font-size:13px;font-weight:500;color:var(--ink-2);}
.exd-rv{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
.exd-rv .u{font-size:10px;font-weight:400;color:var(--ink-3);margin-left:2px;}
.exd-rd{font-family:var(--mono);font-size:10px;color:var(--ink-4);letter-spacing:.04em;min-width:46px;text-align:right;}
.exd-charts .trend-block{margin-bottom:10px;}

/* cardio / descanso */
.cardio-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;}
.cardio-total{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
.cardio-total .u{font-size:10px;font-weight:400;color:var(--ink-4);}
.cardio-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-2);}
.cardio-item:last-child{border-bottom:none;}
.cardio-add{display:grid;grid-template-columns:1fr 72px auto;gap:8px;align-items:center;margin-top:12px;
  padding-top:12px;border-top:1px solid var(--line);}
.cardio-add .fi{padding:10px 11px;font-size:13px;}
.cardio-add .btn{padding:10px 14px;font-size:13px;}
.rest-reco{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px;
  background:var(--sunk);border:1px solid var(--line-2);border-radius:13px;}
.rr-score{font-family:var(--mono);font-size:28px;font-weight:600;color:var(--ink);line-height:1;
  font-variant-numeric:tabular-nums;flex-shrink:0;}
.rr-score.reco-optima{color:var(--aw-exercise);}
.rr-score.reco-buena{color:var(--aw-stand);}
.rr-score.reco-media{color:var(--aw-move);}
.rr-score.reco-baja{color:var(--warn);}
.rr-band{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:3px;}
.rr-band.reco-optima{color:var(--aw-exercise);}
.rr-band.reco-buena{color:var(--aw-stand);}
.rr-band.reco-media{color:var(--aw-move);}
.rr-band.reco-baja{color:var(--warn);}
.rr-rec{font-size:12px;line-height:1.4;color:var(--ink-3);}

/* ── MAPA DE FUERZA ── */
.bm-focus{display:flex;flex-direction:column;gap:5px;cursor:pointer;
  background:var(--accent-weak);border:1px solid var(--accent-weak-2);border-radius:12px;
  padding:12px 14px;margin-bottom:14px;transition:opacity .15s;}
.bm-focus:active{opacity:.7;}
.bm-focus-tag{font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent-2);}
.bm-focus-msg{font-size:12.5px;line-height:1.45;color:var(--ink-2);}
.bm-focus-msg b{color:var(--ink);font-weight:600;}
.bm-wrap{display:flex;justify-content:center;padding:6px 0 10px;}
.bm-svg{width:100%;max-width:320px;height:auto;}
.bm-region{cursor:pointer;stroke:var(--card);stroke-width:1.2;transition:opacity .15s var(--ease),stroke .15s;}
.bm-region:active{opacity:.7;}
.bm-region.sel{stroke:var(--ink);stroke-width:2;}
.bm-cap{font-family:var(--mono);font-size:9px;letter-spacing:.1em;fill:var(--ink-4);text-transform:uppercase;}
.bm-detail{font-size:12.5px;color:var(--ink-3);text-align:center;padding:11px;
  background:var(--sunk);border:1px solid var(--line-2);border-radius:11px;margin-bottom:12px;line-height:1.5;}
.bm-detail b{color:var(--ink-2);font-weight:600;}
.bm-detail.active{display:flex;flex-direction:column;gap:3px;}
.bm-d-name{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.bm-d-lvl{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.02em;}
.bm-d-sub{font-family:var(--mono);font-size:10px;color:var(--ink-4);letter-spacing:.02em;}
.bm-legend{display:flex;flex-wrap:wrap;gap:9px 13px;justify-content:center;}
.bm-leg{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;font-weight:500;
  letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;}
.bm-sw{width:11px;height:11px;border-radius:3px;border:1px solid var(--line);}

/* ── RECORDATORIOS ── */
.rem-list{display:flex;flex-direction:column;}
.rem{display:flex;align-items:center;gap:12px;padding:11px 0;cursor:pointer;border-bottom:1px solid var(--line-2);}
.rem:last-child{border-bottom:none;}
.rem-ck{width:20px;height:20px;border-radius:6px;flex-shrink:0;border:1.5px solid var(--line);background:var(--sunk);
  display:flex;align-items:center;justify-content:center;}
.rem-ck svg{width:11px;height:11px;stroke:var(--paper);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.rem.done .rem-ck{background:var(--aw-exercise);border-color:var(--aw-exercise);}
.rem-text{flex:1;font-size:13.5px;font-weight:500;color:var(--ink);}
.rem.done .rem-text{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--ink-4);}
.rem-time{font-family:var(--mono);font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
/* gestor en ajustes */
.rem-mrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-2);}
.rem-mrow:last-child{border-bottom:none;}
.rem-mtext{display:block;font-size:13px;font-weight:500;color:var(--ink);}
.rem-mdays{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-4);margin-top:2px;letter-spacing:.04em;}
.rem-mdel{background:none;border:none;color:var(--ink-4);cursor:pointer;padding:5px;line-height:0;border-radius:6px;flex-shrink:0;}
.rem-mdel:active{color:var(--warn);}
.rem-mdel svg{width:15px;height:15px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.rem-days{display:flex;gap:6px;}
.rem-day{flex:1;padding:9px 0;border-radius:8px;cursor:pointer;background:var(--sunk);border:1px solid var(--line-2);
  font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink-3);transition:all .15s var(--ease);}
.rem-day.on{background:var(--accent);border-color:var(--accent);color:#fff;}

/* ── BOTÓN CALENDARIO EN INICIO ── */
.home-cal-btn{width:100%;padding:13px;border-radius:13px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);color:var(--ink-2);
  font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:-.01em;transition:all .16s var(--ease);}
.home-cal-btn:active{transform:scale(.98);background:var(--sunk);}

/* ── CALENDARIO ── */
.md-tall{max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.cal-nav{width:36px;height:36px;border-radius:10px;cursor:pointer;background:var(--sunk);border:1px solid var(--line);
  color:var(--ink);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .15s var(--ease);}
.cal-nav:active{transform:scale(.9);background:var(--ink);color:var(--paper);border-color:var(--ink);}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;}
.cal-dow span{font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.04em;color:var(--ink-4);text-align:center;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px;}
.cal-cell{aspect-ratio:1;border-radius:8px;background:var(--sunk);border:1px solid var(--line-2);cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative;transition:all .15s var(--ease);}
.cal-cell.empty{background:transparent;border:none;cursor:default;}
.cal-cell.future{opacity:.4;cursor:default;}
.cal-cell.today{border-color:var(--accent);border-width:1.5px;}
.cal-cell:not(.empty):not(.future):active{background:var(--accent-weak);}
.cal-d{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.cal-cell.today .cal-d{color:var(--accent);font-weight:700;}
.cal-dots{display:flex;gap:2px;height:5px;}
.cd{width:5px;height:5px;border-radius:50%;display:inline-block;}
.cd.gym{background:var(--accent);}
.cd.jp{background:var(--set-drop);}
.cd.food{background:var(--aw-exercise);}
.cal-legend{display:flex;gap:14px;justify-content:center;margin-bottom:6px;}
.cal-legend .bm-leg{font-size:9px;}
.cal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.cal-st{background:var(--sunk);border:1px solid var(--line-2);border-radius:12px;padding:12px 6px;text-align:center;}
.cal-st-v{display:block;font-family:var(--mono);font-size:18px;font-weight:600;color:var(--ink);line-height:1;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.cal-st-v .u{font-size:10px;font-weight:400;color:var(--ink-4);}
.cal-st-l{display:block;font-family:var(--mono);font-size:8px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);margin-top:6px;}
.cal-miles{display:flex;flex-direction:column;gap:1px;}
.cal-mile{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2);}
.cal-mile:last-child{border-bottom:none;}
.cal-mile-d{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--accent);width:24px;text-align:center;flex-shrink:0;}
.cal-mile-t{font-size:13px;color:var(--ink-2);}

/* detalle de día */
.day-body{display:flex;flex-direction:column;gap:1px;margin-bottom:8px;}
.day-item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-2);}
.day-item:last-child{border-bottom:none;}
.day-k{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);flex-shrink:0;}
.day-v{font-size:13px;color:var(--ink);text-align:right;}
.exb-meta{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-4);margin-top:3px;letter-spacing:.02em;}
.exb-vol{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink);flex-shrink:0;
  font-variant-numeric:tabular-nums;text-align:right;}
.exb-vol .u{display:block;font-size:8px;font-weight:500;color:var(--ink-4);letter-spacing:.06em;text-transform:uppercase;margin-top:1px;}
.exb-coach{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:11px;}
.exb-coach .coach-line{padding:0;margin:0;border:none;flex:1;min-width:60%;}

/* tabla de series */
.set-hdr,.set-row{display:grid;grid-template-columns:28px 1fr 1fr 1fr 34px 26px;gap:7px;align-items:center;}
.set-hdr{padding:0 0 8px;}
.set-hdr span{font-family:var(--mono);font-size:8px;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-4);text-align:center;}
.set-row{padding:6px 0;}
.set-n{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink-2);text-align:center;
  width:24px;height:24px;line-height:24px;border-radius:7px;background:var(--sunk);margin:0 auto;cursor:pointer;
  transition:transform .15s var(--ease);}
.set-n:active{transform:scale(.88);}
.set-n.warm{background:rgba(184,137,59,.16);color:var(--set-warm);}
.set-n.drop{background:rgba(122,90,166,.16);color:var(--set-drop);}
.set-row.done .set-n{background:var(--accent);color:#fff;}
.set-row.done .set-n.warm{background:var(--set-warm);color:#fff;}
.set-row.done .set-n.drop{background:var(--set-drop);color:#fff;}
.set-prev{font-family:var(--mono);font-size:10px;color:var(--ink-4);text-align:center;letter-spacing:.01em;}
.set-inp{width:100%;text-align:center;background:var(--sunk);border:1px solid var(--line-2);
  border-radius:8px;padding:8px 2px;color:var(--ink);font-family:var(--mono);font-size:13px;font-weight:500;
  transition:border-color .15s,background .15s;}
.set-inp::placeholder{color:var(--ink-4);font-weight:400;}
.set-inp:focus{outline:none;border-color:var(--accent);background:var(--card);}
.set-row.done .set-inp{background:var(--accent-weak);border-color:var(--accent-weak-2);}
.set-ck{width:28px;height:28px;border-radius:8px;margin:0 auto;cursor:pointer;
  background:var(--sunk);border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;transition:all .22s var(--ease);}
.set-ck svg{width:13px;height:13px;stroke:var(--paper);stroke-width:3;fill:none;
  stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:all .22s var(--ease);}
.set-ck.d{background:var(--accent);border-color:var(--accent);}
.set-ck.d svg{opacity:1;transform:scale(1);}
.set-del{width:24px;height:24px;border-radius:6px;margin:0 auto;cursor:pointer;background:none;border:none;
  color:var(--ink-4);display:flex;align-items:center;justify-content:center;transition:color .15s;}
.set-del:active{color:var(--tone-bajar);}
.set-del svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;}
.set-add{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:9px;
  background:transparent;border:1px dashed var(--line);border-radius:9px;padding:9px;cursor:pointer;
  color:var(--ink-3);font-family:var(--sans);font-size:12px;font-weight:500;transition:all .16s var(--ease);}
.set-add .plus{font-family:var(--mono);font-size:14px;line-height:1;}
.set-add:active{border-color:var(--accent);color:var(--accent);background:var(--sunk);}

/* ── CRONÓMETRO DE DESCANSO ── */
.rest-bar{position:fixed;left:50%;bottom:calc(18px + var(--safe-b));transform:translateX(-50%) translateY(20px);
  z-index:550;display:flex;align-items:center;gap:13px;width:calc(100% - 36px);max-width:396px;
  background:var(--ink);color:var(--paper);border-radius:15px;padding:11px 15px;
  box-shadow:0 16px 38px -10px rgba(28,27,24,.55);opacity:0;pointer-events:none;
  transition:transform .35s var(--ease);}
.rest-bar.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
.rest-ring{position:relative;width:40px;height:40px;flex-shrink:0;}
.rest-ring svg{transform:rotate(-90deg);width:40px;height:40px;}
.rr-bg{fill:none;stroke:rgba(245,244,239,.18);stroke-width:3;}
.rr-fill{fill:none;stroke:var(--paper);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset 1s linear;}
.rr-t{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:9px;font-weight:600;font-variant-numeric:tabular-nums;}
.rest-lbl{flex:1;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(245,244,239,.7);}
.rest-btns{display:flex;gap:6px;}
.rest-b{background:rgba(245,244,239,.14);border:none;color:var(--paper);border-radius:8px;
  padding:7px 10px;cursor:pointer;font-family:var(--mono);font-size:11px;font-weight:500;
  transition:all .15s var(--ease);}
.rest-b:active{transform:scale(.92);background:rgba(245,244,239,.28);}
.rest-b.skip{background:var(--paper);color:var(--ink);font-weight:600;}

/* ── ONBOARDING ── */
.onboarding{position:fixed;inset:0;z-index:700;background:var(--bg);
  display:none;align-items:center;justify-content:center;padding:20px;}
.onboarding.show{display:flex;animation:fade .3s var(--ease);}
.ob-card{width:100%;max-width:392px;background:var(--paper);border:1px solid var(--line);
  border-radius:22px;padding:26px 24px calc(20px + var(--safe-b));
  box-shadow:0 22px 60px -24px rgba(28,27,24,.4);display:flex;flex-direction:column;min-height:62vh;}
.ob-dots{display:flex;gap:7px;margin-bottom:24px;}
.ob-dot{width:26px;height:4px;border-radius:99px;background:var(--line);transition:background .3s var(--ease);}
.ob-dot.on{background:var(--accent);}
.ob-dot.done{background:var(--accent-2);}
.ob-body{flex:1;}
.ob-mark{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.2em;color:var(--ink-3);margin-bottom:12px;}
.ob-h{font-size:26px;font-weight:600;letter-spacing:-.03em;line-height:1.08;color:var(--ink);margin-bottom:9px;}
.ob-p{font-size:13.5px;line-height:1.5;color:var(--ink-3);}
.ob-choices{display:flex;flex-direction:column;gap:10px;margin-top:18px;}
.ob-choice{border:1.5px solid var(--line);border-radius:13px;padding:14px;cursor:pointer;
  transition:all .16s var(--ease);background:var(--card);}
.ob-choice.sel{border-color:var(--accent);background:var(--accent-weak);}
.ob-c-t{font-size:14px;font-weight:600;color:var(--ink);}
.ob-c-s{font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.4;}
.ob-nav{display:flex;align-items:center;justify-content:space-between;gap:11px;margin-top:22px;}
.ob-nav .btn-primary{flex:1;}
.ob-nav .btn-ghost{flex-shrink:0;}

/* ajustes */
.set-sec{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);margin:6px 0 11px;
  padding-top:13px;border-top:1px solid var(--line);}
.frow3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;}
.set-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:4px 0 16px;}
.st-l{font-size:13.5px;font-weight:600;color:var(--ink);}
.st-s{font-size:11px;color:var(--ink-3);margin-top:2px;line-height:1.4;}
.toggle{width:46px;height:27px;border-radius:99px;background:var(--line);flex-shrink:0;
  position:relative;cursor:pointer;transition:background .22s var(--ease);}
.toggle.on{background:var(--accent);}
.toggle-knob{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .22s var(--ease);}
.toggle.on .toggle-knob{transform:translateX(19px);}

/* editor de rutina */
.re-list{display:flex;flex-direction:column;gap:8px;margin:8px 0 10px;}
.re-row{display:grid;grid-template-columns:1fr 64px 34px;gap:8px;align-items:center;}
.re-row .fi{padding:10px 11px;font-size:13px;}
.re-del{width:34px;height:38px;border-radius:9px;cursor:pointer;
  background:var(--sunk);border:1px solid var(--line);color:var(--ink-3);
  display:flex;align-items:center;justify-content:center;transition:all .15s var(--ease);}
.re-del:active{background:var(--warn);color:#fff;border-color:var(--warn);}
.re-del svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.re-add{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;
  background:transparent;border:1px dashed var(--line);border-radius:11px;padding:11px;
  cursor:pointer;color:var(--ink-3);font-family:var(--sans);font-size:12.5px;font-weight:500;
  margin-bottom:4px;transition:all .16s var(--ease);}
.re-add .plus{font-family:var(--mono);font-size:15px;line-height:1;}
.re-add:active{border-color:var(--accent);color:var(--accent);}
