/* App del paciente: columna de celular, barra inferior con círculo central */
.hilo .node.pac{color:var(--navy)}
.who2.pac{color:var(--navy)}
.papp{max-width:460px;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--bg);position:relative;display:flex;flex-direction:column}
@media (min-width:600px){body:has(.papp){background:#E9ECE6}.papp{border-left:1px solid var(--line);border-right:1px solid var(--line);box-shadow:0 0 60px rgba(18,33,47,.06)}}
.pa-login{background:#fff}
.pa-field{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff}
.pa-field input{border:0;outline:0;font-size:18px;font-weight:700;width:100%;background:none}
.pa-code{width:56px;height:62px;border:1px solid var(--line);border-radius:14px;text-align:center;font-size:24px!important;font-weight:800;background:#fff;outline:0}
.pa-code:focus{border-color:var(--med)}
.pa-cta{justify-content:center;padding:14px 16px;font-size:15px;border-radius:14px}
.pa-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));background:rgba(244,245,241,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.pa-top .av{width:40px;height:40px}
.pa-main{flex:1;padding:16px 16px calc(120px + env(safe-area-inset-bottom));overscroll-behavior:contain}
.pa-card{padding:16px}
.pa-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px}
.pa-3{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}
.pa-stat{padding:12px}
.pa-stat .v{font-size:18px;font-weight:800;letter-spacing:-.02em;margin-top:2px}
.pa-meal{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--line2)}
.pa-meal:last-child{border-bottom:0}
.pa-check{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;flex:none;background:#fff;color:#fff;transition:all .2s cubic-bezier(.2,.8,.2,1)}
.pa-check svg{width:15px;height:15px;stroke-width:2.6}
.pa-meal.on .pa-check{background:var(--ok);border-color:var(--ok)}
.pa-check:disabled{cursor:default}
.pa-check:not(:disabled):active{transform:scale(.9)}
.pa-meal.just .pa-check{animation:paPop .42s cubic-bezier(.2,.8,.2,1)}
.pa-meal.just .pa-check svg,.pa-set.just svg{stroke-dasharray:24;stroke-dashoffset:24;animation:paTick .32s .06s cubic-bezier(.2,.8,.2,1) forwards}
.pa-set.just{animation:paPop .42s cubic-bezier(.2,.8,.2,1)}
@keyframes paPop{0%{transform:scale(.82)}100%{transform:scale(1)}}
@keyframes paTick{to{stroke-dashoffset:0}}
.pa-tags{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:8px}
.pa-kcal{font-weight:800;font-size:14px;white-space:nowrap;text-align:right;line-height:1.2;font-variant-numeric:tabular-nums}
.pa-kcal span{display:block;font-size:11px;font-weight:600;color:var(--soft)}
.pa-meal:not(.on) .pa-check:disabled{border-style:dashed}
.pa-vaso{width:22px;height:30px;border-radius:4px 4px 7px 7px;border:2px solid #CFE3F3;background:#fff;transition:background .2s}
.pa-vaso.on{background:#7FB8E3;border-color:#7FB8E3}
.pa-cita{background:var(--navy);color:#fff;border-color:var(--navy)}
.pa-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.pa-week div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border-radius:14px;background:#fff;border:1px solid var(--line);position:relative}
.pa-week span{font-size:11px;font-weight:700;color:var(--soft)}
.pa-week b{font-size:15px}
.pa-week .on{background:var(--ink);border-color:var(--ink);color:#fff}
.pa-week .on span{color:rgba(255,255,255,.7)}
.pa-week i{width:5px;height:5px;border-radius:50%;background:var(--ok);position:absolute;bottom:5px}
.pa-week .past{opacity:.75}
.pa-food{display:flex;align-items:center;gap:12px;width:100%;padding:12px 4px;border-bottom:1px solid var(--line2)}
.pa-food:hover{background:#FAFBF8}
.pa-food:last-of-type{border-bottom:0}
.pa-food:active{background:#F4F6F1}
.pa-food .pa-add{width:30px;height:30px;border-radius:50%;background:#E8F1F9;color:var(--med);display:grid;place-items:center;flex:none}
.pa-food .pa-add .i{width:16px;height:16px;stroke-width:2.4}
.pa-empty{padding:20px 4px;text-align:center}
.pa-ex{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line2)}
.pa-ex:last-child{border-bottom:0}
.pa-set{width:34px;height:34px;border-radius:10px;border:1.5px solid var(--line);font-weight:800;font-size:13px;color:var(--muted);display:grid;place-items:center;background:#fff;transition:all .2s cubic-bezier(.2,.8,.2,1)}
.pa-set:active{transform:scale(.92)}
.pa-set.on{background:var(--food);border-color:var(--food);color:#fff}
.pa-set svg{width:16px;height:16px;stroke-width:2.6}
.pa-peso{display:flex;align-items:baseline;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:18px;padding:18px}
.pa-peso input{border:0;outline:0;font-size:48px!important;font-weight:800;width:150px;text-align:right;letter-spacing:-.03em;background:none}
.pa-peso span{font-size:20px;font-weight:800;color:var(--muted)}
.pa-fotos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pa-fotos > *{aspect-ratio:3/4;border-radius:12px;position:relative;overflow:hidden}
.pa-fotos div{background:#D5DCD0}
.pa-fotos div:nth-child(2){background:#D1DAE1}
.pa-fotos div:nth-child(3){background:#DED6C9}
.pa-fotos div svg{position:absolute;inset:auto 0 0;width:100%;height:82%;fill:rgba(255,255,255,.55)}
.pa-fotos div span{position:absolute;left:6px;bottom:6px;font-size:10.5px;font-weight:800;background:rgba(255,255,255,.9);border-radius:6px;padding:2px 6px}
.pa-fotos button .i{width:20px;height:20px}
.pa-fotos button{border:1.5px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);font-size:11px;font-weight:700;background:#fff}
.pa-logros{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pa-logros .card{padding:12px;display:flex;flex-direction:column;gap:2px}
.pa-logros b{font-size:18px;letter-spacing:-.02em}
.pa-quick{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 8px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;font-size:14px;transition:transform .18s cubic-bezier(.2,.8,.2,1),background .18s}
.pa-quick:active{transform:scale(.97);background:#FAFBF8}
.pa-quick .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center}
.pa-quick .ic .i{width:22px;height:22px}
.pa-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(460px,100%);z-index:30;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:8px 6px calc(18px + env(safe-area-inset-bottom))}
.pa-nav button{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:700;color:var(--soft);padding:4px 0}
.pa-nav button .i{width:22px;height:22px}
.pa-nav button.on{color:var(--ink)}
.pa-plus span{width:58px;height:58px;border-radius:50%;background:var(--med);color:#fff;display:grid;place-items:center;margin:-30px auto 0;border:4px solid #fff;box-shadow:0 8px 20px rgba(47,134,198,.35);transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.pa-plus span .i{width:26px;height:26px;stroke-width:2.2}
.pa-plus:active span{transform:scale(.94)}

/* cita */
.pa-cita .pa-cita-si{background:#fff;border-color:#fff;color:var(--ink)}
.pa-cita .pa-cita-no{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.pa-citaok{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;padding:7px 12px;border-radius:10px;background:rgba(255,255,255,.14)}
.pa-citaok .i{width:15px;height:15px;color:#A9D952}
/* entreno terminado */
.pa-fin{width:100%}
.pa-fin:disabled{opacity:1;background:#EDF4E6;border-color:#EDF4E6;color:#3E7419;cursor:default}
/* gráfica de peso */
.pa-chart{width:100%;height:auto;display:block;overflow:visible}
.pa-line{stroke-dasharray:1;stroke-dashoffset:1;animation:paDraw 1s .1s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes paDraw{to{stroke-dashoffset:0}}
/* peso: el input manda, sin spinners */
.pa-peso{cursor:text}
.pa-peso:focus-within{border-color:var(--med)}
/* tarjetas tocables */
.papp .pa-card[onclick]{transition:transform .18s cubic-bezier(.2,.8,.2,1)}
.papp .pa-card[onclick]:active{transform:scale(.985)}
.pa-nav button{transition:color .18s}
.pa-nav button:not(.pa-plus):active .i{transform:scale(.9)}
.pa-nav button .i{transition:transform .18s cubic-bezier(.2,.8,.2,1)}
/* la cabecera y la barra no se mueven con el rebote */
html:has(.papp),body:has(.papp){overscroll-behavior:none}
/* el aviso flota arriba de la barra inferior */
body:has(.papp) .toast{bottom:calc(112px + env(safe-area-inset-bottom));width:max-content;max-width:min(420px,calc(100% - 32px));line-height:1.35}
/* en el celular los modales son hojas que suben desde abajo */
@media (max-width:600px){
  body:has(.papp) .scrim{align-items:flex-end;padding:0}
  body:has(.papp) .modal{width:100%;border-radius:22px 22px 0 0;max-height:88vh;max-height:88dvh;padding-bottom:calc(8px + env(safe-area-inset-bottom));animation:paSheet .36s cubic-bezier(.2,.8,.2,1);overscroll-behavior:contain}
  body:has(.papp) .modal::before{content:"";display:block;width:36px;height:5px;border-radius:3px;background:#DADFD6;margin:8px auto -6px}
  body:has(.papp) .modal .pad{padding:18px 20px 16px}
}
@keyframes paSheet{from{transform:translateY(100%)}}
.pa-food[hidden],.pa-empty[hidden]{display:none}

/* ---------- Asistente de Global Med ---------- */
.pa-ia{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.06em;line-height:1;padding:3px 6px;border-radius:6px;background:var(--med-bg);color:var(--med)}
.pa-asis-av{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;color:#fff;background:linear-gradient(140deg,#3E97D6 0%,#2F86C6 45%,#133252 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.pa-asis-av .i{width:21px;height:21px;stroke-width:1.8}
.pa-asis-card{background:linear-gradient(180deg,#F3F8FC 0%,#fff 70%);border-color:#DCE8F2}
.pa-asis-head{display:flex;align-items:center;gap:12px;width:100%;text-align:left}
.pa-asis-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pa-asis-chips button{padding:8px 12px;border-radius:99px;background:#fff;border:1px solid #CFE0EE;color:var(--med);font-weight:700;font-size:13px;transition:transform .16s cubic-bezier(.2,.8,.2,1),background .16s}
.pa-asis-chips button:active{transform:scale(.96);background:var(--med-bg)}
.pa-swap{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:2px 8px;border-radius:99px;background:var(--med-bg);font-size:12px;font-weight:700;color:var(--med);white-space:nowrap}
.pa-swap .i{width:13px;height:13px;stroke-width:2.4}
.pa-swap:active{opacity:.6}
.pa-asis-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid #DCE8F2;border-radius:16px;background:linear-gradient(180deg,#F3F8FC,#fff);font-size:14px;transition:transform .16s cubic-bezier(.2,.8,.2,1)}
.pa-asis-row:active{transform:scale(.985)}
.pa-asis-row > .i{width:18px;height:18px;color:var(--soft);flex:none}
.pa-asis-row .xs{display:block;margin-top:1px}

.modal:has(.pa-asis){width:min(460px,100%);height:min(780px,88vh);display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
@media (max-width:600px){body:has(.papp) .modal:has(.pa-asis){height:92vh;height:92dvh;max-height:92dvh;padding-bottom:0}}
.pa-asis{flex:1;min-height:0;display:flex;flex-direction:column;background:#fff}
.pa-asis-top{display:flex;align-items:center;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--line2)}
.pa-asis-body{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 14px 18px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.pa-asis-day{align-self:center;font-size:11px;font-weight:700;color:var(--soft);padding:2px 0}
.pa-msg{max-width:88%;padding:11px 14px;border-radius:18px;font-size:14.5px;line-height:1.45;animation:paMsg .34s cubic-bezier(.2,.8,.2,1) both;overflow-wrap:anywhere}
.pa-msg.me{align-self:flex-end;background:var(--med);color:#fff;border-bottom-right-radius:6px;font-weight:600}
.pa-msg.bot{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:6px;color:var(--ink);box-shadow:0 1px 2px rgba(18,33,47,.04)}
.pa-msg > * + *{margin-top:9px}
.pa-alist{display:flex;flex-direction:column;border:1px solid var(--line2);border-radius:12px;overflow:hidden;background:#FAFBF8}
.pa-alist div{display:flex;flex-direction:column;gap:1px;padding:9px 12px;border-bottom:1px solid var(--line2)}
.pa-alist div:last-child{border-bottom:0}
.pa-alist b{font-size:13.5px;line-height:1.3}
.pa-alist span{font-size:12.5px;line-height:1.4;color:var(--muted)}
.pa-aok{display:flex;gap:9px;align-items:flex-start}
.pa-aok .i{width:20px;height:20px;flex:none;color:#fff;background:var(--ok);border-radius:50%;padding:4px;stroke-width:3;margin-top:0}
.pa-msg.typing{display:flex;gap:5px;padding:15px 16px}
.pa-msg.typing i{width:7px;height:7px;border-radius:50%;background:var(--soft);animation:paDot 1.1s infinite cubic-bezier(.2,.8,.2,1)}
.pa-msg.typing i:nth-child(2){animation-delay:.15s}
.pa-msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes paDot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@keyframes paMsg{from{opacity:0;transform:translateY(8px)}}
.pa-asis-foot{border-top:1px solid var(--line2);background:#fff;padding:10px 12px calc(14px + env(safe-area-inset-bottom))}
.pa-asis-opts{display:flex;flex-wrap:wrap;gap:8px;max-height:32vh;max-height:32dvh;overflow-y:auto;overscroll-behavior:contain;padding:2px}
.pa-asis-opts:empty{display:none}
.pa-asis-opts.in .pa-opt{animation:paMsg .3s cubic-bezier(.2,.8,.2,1) both}
.pa-asis-opts.in .pa-opt:nth-child(2){animation-delay:.03s}
.pa-asis-opts.in .pa-opt:nth-child(3){animation-delay:.06s}
.pa-asis-opts.in .pa-opt:nth-child(4){animation-delay:.09s}
.pa-asis-opts.in .pa-opt:nth-child(5){animation-delay:.12s}
.pa-asis-opts.in .pa-opt:nth-child(n+6){animation-delay:.15s}
.pa-opt{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:9px 13px;border-radius:99px;border:1px solid #CFE0EE;background:#fff;color:var(--med);font-weight:700;font-size:13.5px;line-height:1.25;text-align:left;transition:transform .16s cubic-bezier(.2,.8,.2,1),background .16s}
.pa-opt:active{transform:scale(.97);background:var(--med-bg)}
.pa-opt.act{background:var(--med);border-color:var(--med);color:#fff}
.pa-opt.act:active{background:#2A78B2}
.pa-opt.ghost{border-color:var(--line);color:var(--muted)}
.pa-opt .i{width:15px;height:15px;flex:none;stroke-width:2.4}
.pa-asis-in{display:flex;align-items:center;gap:8px;margin-top:10px;background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:4px 4px 4px 16px}
.pa-asis-in input{flex:1;min-width:0;border:0;background:none;outline:0;font-size:16px;color:var(--ink)}
.pa-asis-in input::placeholder{color:var(--soft)}
.pa-asis-in button{width:36px;height:36px;border-radius:50%;background:#D5DBD2;color:#fff;display:grid;place-items:center;flex:none}
.pa-asis-in button .i{width:17px;height:17px}
@media (prefers-reduced-motion:reduce){.pa-msg,.pa-asis-opts.in .pa-opt{animation:none}.pa-msg.typing i{animation:none;opacity:.6}}
