/* CRM - Conecta · estilos. Sin frameworks, sin fuentes externas. */
:root{
  --bg:#F1F5FA;--sf:#fff;--sf2:#EDF2F9;--hd:#E7EEF8;--inset:#F4F7FB;--ln:#DFE6F0;--ink:#0F1C3F;--mu:#5A6684;
  --br:#1C4B8F;--br-h:#143086;--br-ink:#fff;--br-s:#E5EDF8;--lk:#286998;
  --ac:#EE8B28;--ac-ink:#7A3A00;--ac-s:#FDEFDC;--wn:#F3B244;--wn-s:#FDF3DB;
  --dg:#CB5514;--dg-ink:#9C3D0A;--dg-s:#FBE8DD;
  --ok:#384A33;--ok-s:#E7F0DE;--ok-sol:#8FAE78;
  --ring:rgba(28,75,143,.28);--shade:rgba(15,28,63,.45);
  --sh:0 1px 2px rgba(15,28,63,.05),0 10px 30px rgba(15,28,63,.06);
  --r:20px;--rs:14px;--tab:66px;
  --sa-b:env(safe-area-inset-bottom,0px);--sa-t:env(safe-area-inset-top,0px);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#0A1022;--sf:#131E3A;--sf2:#1B2A4D;--hd:#1A2851;--inset:#0E1630;--ln:#2A3A63;--ink:#E9EEFA;--mu:#98A5C6;
  --br:#3A74C4;--br-h:#4C86D6;--br-ink:#fff;--br-s:#172A52;--lk:#8DB8F0;
  --ac:#EE8B28;--ac-ink:#F7B873;--ac-s:rgba(238,139,40,.16);--wn:#F3B244;--wn-s:rgba(243,178,68,.14);
  --dg:#E0733A;--dg-ink:#F7A47C;--dg-s:rgba(203,85,20,.2);
  --ok:#B8D3A0;--ok-s:rgba(143,174,120,.17);--ok-sol:#8FAE78;
  --ring:rgba(141,184,240,.35);--shade:rgba(0,0,0,.6);--sh:0 0 0 1px rgba(255,255,255,.03);
  color-scheme:dark;}}
:root[data-theme=dark]{
  --bg:#0A1022;--sf:#131E3A;--sf2:#1B2A4D;--hd:#1A2851;--inset:#0E1630;--ln:#2A3A63;--ink:#E9EEFA;--mu:#98A5C6;
  --br:#3A74C4;--br-h:#4C86D6;--br-ink:#fff;--br-s:#172A52;--lk:#8DB8F0;
  --ac:#EE8B28;--ac-ink:#F7B873;--ac-s:rgba(238,139,40,.16);--wn:#F3B244;--wn-s:rgba(243,178,68,.14);
  --dg:#E0733A;--dg-ink:#F7A47C;--dg-s:rgba(203,85,20,.2);
  --ok:#B8D3A0;--ok-s:rgba(143,174,120,.17);--ok-sol:#8FAE78;
  --ring:rgba(141,184,240,.35);--shade:rgba(0,0,0,.6);--sh:0 0 0 1px rgba(255,255,255,.03);
  color-scheme:dark;}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--bg);color:var(--ink);font:400 calc(clamp(16.5px,15.2px + .3vw,19px) * var(--fs,1))/1.45 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;touch-action:manipulation}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
a{color:var(--lk)}
h1,h2,h3,p{margin:0}
[hidden]{display:none!important}
.i{width:1.25em;height:1.25em;flex:none;display:inline-block;vertical-align:-.22em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-variant-numeric:tabular-nums}

/* ---------- Carga inicial ---------- */
.boot{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:22px}
.boot img{border-radius:20px;animation:pop .5s ease both}
.boot-bar{width:96px;height:4px;border-radius:4px;background:var(--ln);overflow:hidden;position:relative}
.boot-bar::after{content:"";position:absolute;inset:0;width:40%;background:var(--br);border-radius:4px;animation:bar 1.1s ease-in-out infinite}
@keyframes bar{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
@keyframes pop{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}

/* ---------- Estructura ---------- */
.shell{min-height:100dvh}
.rail{display:none}
.main{min-width:0;padding-bottom:calc(var(--tab) + var(--sa-b) + 92px)}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:calc(var(--sa-t) + 10px) clamp(14px,4vw,28px) 10px;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
.top h1{font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem);font-weight:750;letter-spacing:-.02em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .sub{display:block;font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--mu)}
.page{padding:6px clamp(14px,4vw,28px) 24px;max-width:1280px;margin:0 auto;animation:in .24s ease both}
@keyframes in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.icon-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--ink);flex:none;transition:background .15s,transform .1s}
.icon-btn:hover{background:var(--sf2)}
.icon-btn:active{transform:scale(.92)}
.icon-btn .i{width:1.4em;height:1.4em}

.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);height:calc(var(--tab) + var(--sa-b));padding-bottom:var(--sa-b);background:color-mix(in srgb,var(--sf) 90%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);border-top:1px solid var(--ln)}
.tabs a,.rail a.nav{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--mu);font-size:.72rem;font-weight:600;position:relative;transition:color .15s}
.tabs a .i{width:1.55em;height:1.55em}
.tabs .dot,.rail .dot{position:absolute;top:8px;left:calc(50% + 8px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--dg);color:#fff;font-size:.7rem;font-weight:700;display:grid;place-items:center}

.fab{position:fixed;right:clamp(16px,4vw,28px);bottom:calc(var(--tab) + var(--sa-b) + 16px);z-index:25;width:60px;height:60px;border-radius:50%;background:var(--ac);color:#2A1300;display:grid;place-items:center;box-shadow:0 10px 26px rgba(238,139,40,.45);transition:transform .15s}
.fab:active{transform:scale(.92)}
.fab .i{width:1.7em;height:1.7em;stroke-width:2.4}

@media (min-width:960px){
  .shell{display:grid;grid-template-columns:260px minmax(0,1fr)}
  .rail{display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100dvh;padding:22px 16px;border-right:1px solid var(--ln);background:var(--sf)}
  .rail .brand{display:flex;align-items:center;gap:12px;padding:6px 10px 20px;font-weight:750;line-height:1.15}
  .rail .brand img{width:44px;height:44px;border-radius:12px}
  .rail .brand small{display:block;font-weight:500;color:var(--mu);font-size:.78rem}
  .rail a.nav{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 14px;border-radius:14px;font-size:1rem;position:relative}
  .rail a.nav:hover{background:var(--sf2)}
  .rail .dot{position:static;margin-left:auto}
  .rail .grow{flex:1}
  .rail .me{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:var(--sf2)}
  .rail .me b{display:block;font-size:.92rem;line-height:1.2}
  .rail .me span{font-size:.78rem;color:var(--mu)}
  .tabs{display:none}
  .main{padding-bottom:40px}
  .top{padding-top:24px}
  .fab{bottom:28px;width:auto;height:56px;padding:0 24px 0 18px;border-radius:28px;grid-auto-flow:column;gap:8px;font-weight:700}
}

/* ---------- Componentes ---------- */
.card{background:var(--sf);border-radius:var(--r);box-shadow:var(--sh);padding:clamp(16px,3vw,22px)}
.card+.card,.stack>*+*{margin-top:14px}
.card h2,.h2{font-size:1.02rem;font-weight:700;margin-bottom:10px;letter-spacing:-.01em}
.muted{color:var(--mu)}
.small{font-size:.86rem}
.sec{display:flex;align-items:center;justify-content:space-between;margin:22px 4px 10px;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;color:var(--mu)}
.sec .n{font-weight:700}
.sec.late{color:var(--dg-ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 20px;border-radius:var(--rs);font-weight:650;background:var(--br);color:var(--br-ink);transition:transform .1s,background .15s,opacity .15s;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--br-h)}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn.soft{background:var(--br-s);color:var(--br)}
.btn.soft:hover{background:var(--sf2)}
.btn.ghost{background:transparent;color:var(--lk)}
.btn.ghost:hover{background:var(--sf2)}
.btn.ok{background:var(--ok-s);color:var(--ok);box-shadow:inset 0 0 0 1.5px var(--ok-sol)}
.btn.warn{background:var(--ac);color:#2A1300}
.btn.danger{background:var(--dg-s);color:var(--dg-ink)}
.btn.block{width:100%}
.btn.sm{min-height:42px;padding:0 14px;font-size:.92rem;border-radius:12px}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.soft{color:var(--lk)}}
:root[data-theme=dark] .btn.soft{color:var(--lk)}
.row-btns{display:flex;gap:8px;flex-wrap:wrap}
.grid2{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}

.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}
.badge.late{background:var(--dg-s);color:var(--dg-ink)}
.badge.now{background:var(--ac-s);color:var(--ac-ink)}
.badge.soon{background:var(--br-s);color:var(--br)}
.badge.done{background:var(--ok-s);color:var(--ok)}
.badge.none{background:var(--sf2);color:var(--mu)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .badge.soon{color:var(--lk)}}
:root[data-theme=dark] .badge.soon{color:var(--lk)}

.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:750;font-size:.98rem;background:var(--br-s);color:var(--br);letter-spacing:.02em}
.avatar.lg{width:68px;height:68px;font-size:1.4rem}
.avatar.c1{background:#E5EDF8;color:#1C4B8F}.avatar.c2{background:#FDEFDC;color:#9C3D0A}.avatar.c3{background:#E7F0DE;color:#384A33}.avatar.c4{background:#FDF3DB;color:#8A5A00}.avatar.c5{background:#E3EEF4;color:#286998}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .avatar.c1,:root:not([data-theme=light]) .avatar.c2,:root:not([data-theme=light]) .avatar.c3,:root:not([data-theme=light]) .avatar.c4,:root:not([data-theme=light]) .avatar.c5{background:var(--sf2);color:var(--ink)}}
:root[data-theme=dark] .avatar.c1,:root[data-theme=dark] .avatar.c2,:root[data-theme=dark] .avatar.c3,:root[data-theme=dark] .avatar.c4,:root[data-theme=dark] .avatar.c5{background:var(--sf2);color:var(--ink)}

/* Listas */
.list{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
.item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--sf);border-radius:var(--r);box-shadow:var(--sh);text-decoration:none;color:inherit;transition:transform .12s,background .15s;content-visibility:auto;contain-intrinsic-size:auto 76px}
a.item:active,button.item:active{transform:scale(.985)}
.item .grow{flex:1;min-width:0}
.item b{display:block;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .meta{font-size:.84rem;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item.active{box-shadow:inset 0 0 0 2px var(--br)}
.item .chev{color:var(--mu)}
.rem{background:var(--sf);border-radius:var(--r);box-shadow:var(--sh);padding:14px 16px 12px;transition:opacity .25s,transform .25s,max-height .3s;overflow:hidden}
.rem.out{opacity:0;transform:translateX(30px)}
.rem-h{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;width:100%;text-align:left}
.rem-h .grow{flex:1;min-width:0}
.rem-h b{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rem-h .meta{font-size:.86rem;color:var(--mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rem-a{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.rem-a .btn{flex:1 1 auto}
.rem-a .btn.go{flex:2 1 120px}
.rem{position:relative}
.rem::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:0 4px 4px 0;background:var(--br)}
.rem.late::before{background:var(--dg)}
.rem.now::before{background:var(--ac)}

.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat{padding:14px 12px;border-radius:var(--r);background:var(--sf);box-shadow:var(--sh);text-align:left;color:inherit;text-decoration:none;display:block}
.stat b{display:block;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.2rem);font-weight:780;line-height:1;letter-spacing:-.03em}
.stat span{font-size:.8rem;color:var(--mu);font-weight:600}
.stat.late b{color:var(--dg)}.stat.now b{color:var(--ac)}.stat.soon b{color:var(--lk)}

.hello{padding:2px 4px 14px}
.hello h2{font-size:clamp(1.3rem,1.05rem + 1.2vw,1.8rem);font-weight:760;letter-spacing:-.02em}
.empty{text-align:center;padding:38px 20px;color:var(--mu)}
.empty .big{width:76px;height:76px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:var(--br-s);color:var(--br)}
.empty .big .i{width:2.2em;height:2.2em}
.empty b{display:block;color:var(--ink);font-size:1.08rem;margin-bottom:4px}
.banner{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:var(--r);background:var(--ac-s);color:var(--ac-ink);margin-bottom:14px}
.banner .grow{flex:1;font-size:.92rem;font-weight:550}

/* Búsqueda y filtros */
.search{position:relative;margin:4px 0 12px}
.search .i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--mu);pointer-events:none}
.search input{width:100%;min-height:54px;padding:0 48px 0 46px;border-radius:999px;border:1.5px solid transparent;background:var(--sf);box-shadow:var(--sh);outline:0;font-size:1.02rem}
.search input:focus{border-color:var(--br);box-shadow:0 0 0 4px var(--ring)}
.search .clr{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--mu)}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 2px 10px}
.chip{flex:none;min-height:40px;padding:0 16px;border-radius:999px;background:var(--sf);color:var(--ink);font-weight:600;font-size:.92rem;box-shadow:inset 0 0 0 1.5px var(--ln);display:inline-flex;align-items:center;gap:6px;transition:background .15s,color .15s}
.chip[aria-pressed=true],.chip.on{background:var(--br);color:var(--br-ink);box-shadow:none}
.chip.q{min-height:44px}
.chip .i{width:1.05em;height:1.05em}
.letter{font-size:.78rem;font-weight:800;color:var(--lk);letter-spacing:.08em;margin:14px 6px 6px}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}

/* Paciente */
.phead{display:flex;gap:16px;align-items:center}
.phead h2{font-size:clamp(1.3rem,1.1rem + 1vw,1.7rem);font-weight:780;letter-spacing:-.02em;line-height:1.15;margin:0;word-break:break-word}
.phead .meta{color:var(--mu);font-size:.92rem;margin-top:2px}
.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:16px}
.next{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:var(--sf2);margin-bottom:12px}
.next .grow{flex:1}
.next b{display:block;font-size:1.1rem}
.next.late{background:var(--dg-s)}.next.now{background:var(--ac-s)}
.when{display:flex;flex-wrap:wrap;gap:8px}
.kv{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.kv dt{font-size:.78rem;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.kv dd{margin:0;white-space:pre-wrap;word-break:break-word}
.kv dd.none{color:var(--mu)}
.tl{position:relative;display:grid;gap:12px;margin:0;padding:0;list-style:none}
.tl li{position:relative;padding:12px 14px 12px 16px;background:var(--sf2);border-radius:16px;border-left:4px solid var(--br)}
.tl .d{font-size:.8rem;font-weight:700;color:var(--mu)}
.tl .p{font-weight:700;margin:1px 0}
.tl .n{white-space:pre-wrap;word-break:break-word;font-size:.95rem}
.tl .x{position:absolute;right:4px;top:4px}
.sechead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sechead h2{margin:0}

/* Formularios */
.fld{display:grid;gap:7px;margin-bottom:16px;align-content:start}
.fld>label,.lbl{font-size:.9rem;font-weight:700;color:var(--mu)}
.in,.fld input,.fld select,.fld textarea{width:100%;min-height:56px;padding:14px 16px;border-radius:var(--rs);border:1.5px solid var(--ln);background:var(--sf);outline:0;font-size:1rem;transition:border-color .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
.fld select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.fld textarea{min-height:128px;resize:vertical;line-height:1.5}
.in:focus,.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--br);box-shadow:0 0 0 4px var(--ring)}
.fld .hint{font-size:.8rem;color:var(--mu)}
.fld .err,.err{color:var(--dg-ink);font-weight:600;font-size:.9rem}
.pw{position:relative}.fld .pw input{padding-right:52px}.pw button{position:absolute;right:4px;top:4px;width:44px;height:44px;display:grid;place-items:center;color:var(--mu)}
.yn{display:flex;gap:8px}
.seg{display:flex;background:var(--sf2);border-radius:14px;padding:4px;gap:4px}
.seg button{flex:1;min-height:42px;border-radius:11px;font-weight:650;font-size:.92rem;color:var(--mu);display:flex;align-items:center;justify-content:center;gap:6px}
.seg button[aria-pressed=true]{background:var(--sf);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}

.menu{display:grid;gap:2px}
.mi{display:flex;align-items:center;gap:14px;width:100%;min-height:58px;padding:8px 6px;border-radius:14px;text-align:left;text-decoration:none;color:inherit;transition:background .12s}
.mi:hover{background:var(--sf2)}
.mi .ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--br-s);color:var(--br);flex:none}
.mi .grow{flex:1;min-width:0}
.mi b{display:block;font-weight:650}
.mi span.s{font-size:.84rem;color:var(--mu)}
.mi .chev{color:var(--mu)}
.mi .ic.o{background:var(--ac-s);color:var(--ac-ink)}.mi .ic.g{background:var(--ok-s);color:var(--ok)}.mi .ic.d{background:var(--dg-s);color:var(--dg-ink)}
.switch{position:relative;width:54px;height:32px;border-radius:16px;background:var(--ln);flex:none;transition:background .2s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.switch[aria-checked=true]{background:var(--br)}
.switch[aria-checked=true]::after{transform:translateX(22px)}

.fedit{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--sf2);border-radius:14px;margin-bottom:8px}
.fedit.hid{opacity:.55}
.fedit .grow{flex:1;min-width:0}
.fedit b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fedit .icon-btn{width:40px;height:40px}

details.faq{border-bottom:1px solid var(--ln);padding:2px 0}
details.faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:54px;font-weight:650;gap:10px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"";width:10px;height:10px;border-right:2.5px solid var(--mu);border-bottom:2.5px solid var(--mu);transform:rotate(45deg);transition:transform .2s;margin-right:4px;flex:none}
details.faq[open] summary::after{transform:rotate(-135deg)}
details.faq .ans{padding:0 0 14px;color:var(--mu);line-height:1.55}
details.faq .ans b{color:var(--ink)}

/* Login */
.login{min-height:100dvh;display:grid;place-items:center;padding:24px 18px calc(24px + var(--sa-b))}
.login-box{width:100%;max-width:420px;animation:in .3s ease both}
.login-logo{display:grid;justify-items:center;gap:12px;text-align:center;margin-bottom:26px}
.login-logo img{width:88px;height:88px;border-radius:24px;box-shadow:0 14px 34px rgba(22,105,122,.35)}
.login-logo h1{font-size:1.5rem;font-weight:780;letter-spacing:-.02em;line-height:1.15}
.login-logo p{color:var(--mu)}
.login .corner{position:fixed;top:calc(var(--sa-t) + 10px);right:12px}

/* Hoja (modal) */
.ov{position:fixed;inset:0;z-index:60;background:var(--shade);display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease both}
.sheet{width:100%;max-width:560px;max-height:92dvh;overflow:auto;overscroll-behavior:contain;background:var(--bg);border-radius:26px 26px 0 0;padding:8px clamp(16px,4vw,26px) calc(22px + var(--sa-b));animation:up .28s cubic-bezier(.2,.9,.3,1) both}
.sheet .grab{width:42px;height:5px;border-radius:3px;background:var(--ln);margin:6px auto 14px}
.sheet h2{font-size:1.25rem;font-weight:760;letter-spacing:-.01em;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.sheet .foot{display:flex;gap:10px;margin-top:6px}
.sheet .foot .btn{flex:1}
@media (min-width:640px){.ov{align-items:center}.sheet{border-radius:26px;padding-top:22px}.sheet .grab{display:none}}
@keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.qa{display:grid;gap:10px}
.qa .mi{background:var(--sf);box-shadow:var(--sh)}

.toast{position:fixed;left:50%;translate:-50% 0;bottom:calc(var(--tab) + var(--sa-b) + 18px);z-index:80;max-width:min(92vw,460px);padding:13px 18px;border-radius:16px;background:var(--ink);color:var(--bg);font-weight:600;font-size:.94rem;display:flex;align-items:center;gap:12px;animation:up .25s ease both;box-shadow:0 12px 32px rgba(0,0,0,.28)}
.toast.err{background:var(--dg);color:#fff}
.toast button{color:inherit;font-weight:800;text-decoration:underline}
@media (min-width:960px){.toast{bottom:28px}}

.lock{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:18px;text-align:center;padding:24px;background:var(--bg)}
.lock img{width:88px;height:88px;border-radius:24px}

.tour .dots{display:flex;gap:6px;justify-content:center;margin:12px 0 16px}
.tour .dots i{width:8px;height:8px;border-radius:50%;background:var(--ln);transition:all .2s}
.tour .dots i.on{width:22px;border-radius:4px;background:var(--br)}
.tour .art{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;background:var(--br-s);color:var(--br);margin:6px auto 14px}
.tour .art .i{width:2.4em;height:2.4em}
.tour p{color:var(--mu);text-align:center;margin-bottom:6px}
.tour h2{justify-content:center;text-align:center}

.skel{border-radius:var(--r);background:linear-gradient(90deg,var(--sf2) 25%,var(--ln) 37%,var(--sf2) 63%);background-size:300% 100%;animation:sh 1.3s ease infinite}
@keyframes sh{0%{background-position:100% 50%}100%{background-position:0 50%}}
.skel.l{height:76px}.skel.s{height:22px;width:40%;margin:20px 4px 10px;border-radius:8px}
.offline{position:sticky;top:0;z-index:50;background:var(--wn);color:#3a2800;text-align:center;font-weight:700;font-size:.85rem;padding:6px}
.more{display:flex;justify-content:center;padding:14px}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.tabs,.rail,.fab,.top .icon-btn{display:none}}

/* ---------- Ficha reformulada ---------- */
.fgrid{display:grid;gap:4px 18px;grid-template-columns:minmax(0,1fr)}
.fgrid .wide{grid-column:1/-1}
@media (min-width:640px){.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.facts{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fact{display:flex;flex-direction:column;gap:5px;text-align:left;padding:16px 18px;border-radius:18px;background:var(--sf2);min-height:84px;transition:background .15s,transform .1s;box-shadow:inset 0 0 0 1.5px transparent}
.fact:hover{background:var(--br-s)}
.fact:active{transform:scale(.99)}
.fact.wide{grid-column:1/-1}
.fact .fl{font-size:.78rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}
.fact .fl em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:650;color:var(--ac-ink);background:var(--ac-s);border-radius:999px;padding:1px 8px;margin-left:6px;font-size:.72rem}
.fact .fv{font-size:1.1rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.fact .fv.none{color:var(--mu);font-size:.98rem;opacity:.8}
.addbox{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;margin-top:14px;padding:18px 20px;border-radius:18px;border:2px dashed var(--ac);color:var(--ac-ink);background:var(--ac-s);text-align:left;transition:transform .1s,background .15s}
.addbox:hover{background:color-mix(in srgb,var(--ac) 22%,transparent)}
.addbox:active{transform:scale(.99)}
.addbox .i{width:1.7em;height:1.7em;flex:none}
.addbox span{display:grid;gap:1px}
.addbox b{font-size:1.05rem}
.addbox small{font-size:.84rem;opacity:.85}
.xrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;align-items:start;padding:14px 14px 0;margin-top:12px;border-radius:18px;background:var(--sf2)}
.xrow .fld:nth-child(1),.xrow .fld:nth-child(2){grid-column:1}
.xrow .icon-btn{grid-column:2;grid-row:1;color:var(--dg)}
.next.none{background:var(--sf2)}
.next .btn+.btn{margin-left:2px}
.next{flex-wrap:wrap}
.psum{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.tl .p{font-size:1.15rem;font-weight:750;letter-spacing:-.01em;margin:2px 0 3px}
.tl li{padding:14px 52px 14px 18px}
.pk-sel{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pk-list{margin-top:8px}
.pk-list .item{box-shadow:none;background:var(--sf2);padding:10px 14px}
.chip .pdel{margin-left:2px;margin-right:-8px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center}
.chip .pdel .i{width:1em;height:1em}
.fact .fl em{display:inline-block;white-space:nowrap;margin-top:2px}

/* teclado abierto en el celular: se esconde el menú y el botón + para ganar espacio */
html.kbd .tabs,html.kbd .fab{display:none}
html.kbd .main{padding-bottom:28px}
.consult{border-top:4px solid var(--ac)}
.consult h2{display:flex;align-items:center;gap:8px;font-size:1.15rem}
.step .badge,.step .btn{flex:none}
.fld textarea{overflow-y:auto}

/* ================= Jerarquía v1.2 ================= */
.page.narrow{max-width:980px}
.page.ficha-page{max-width:1180px}

/* bloque con encabezado propio: título y contenido se distinguen */
.panel{background:var(--sf);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;border:1px solid var(--ln)}
.panel-h{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--hd);border-bottom:1px solid var(--ln)}
.panel-h .pi{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--br);color:var(--br-ink);flex:none}
.panel-h .pi .i{width:1.15em;height:1.15em}
.panel-h .pt{flex:1;min-width:0}
.panel-h h2{margin:0;font-size:1.12rem;font-weight:780;letter-spacing:-.015em;line-height:1.2}
.panel-h small{display:block;color:var(--mu);font-size:.82rem;margin-top:1px}
.panel-b{padding:18px}
.stack>.panel+.panel,.ficha-main>.panel+.panel{margin-top:0}
.panel.consult .pi{background:var(--ac);color:#2A1300}
.panel.consult{border-color:color-mix(in srgb,var(--ac) 45%,var(--ln))}

/* ficha */
.ficha{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
.ficha-main,.ficha-side{display:grid;gap:18px;align-content:start;min-width:0}
@media (min-width:1000px){.ficha{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.hero{grid-column:1/-1}}
.hero{border-radius:var(--r);padding:clamp(18px,3vw,26px);color:#fff;background:linear-gradient(135deg,#143086 0%,#1C4B8F 55%,#286998 100%);box-shadow:0 14px 34px rgba(20,48,134,.28)}
.hero-top{display:flex;align-items:center;gap:16px}
.hero-id{flex:1;min-width:0}
.hero h2{font-size:clamp(1.45rem,1.15rem + 1.2vw,2rem);font-weight:800;letter-spacing:-.025em;line-height:1.1;word-break:break-word}
.hero p{margin:4px 0 0;color:rgba(255,255,255,.82);font-size:.95rem}
.hero p.hero-c{font-size:.9rem;color:rgba(255,255,255,.7);word-break:break-word}
.hero .avatar{background:rgba(255,255,255,.18);color:#fff}
.hero-act{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:18px}
.btn.glass{background:rgba(255,255,255,.16);color:#fff}
.btn.glass:hover{background:rgba(255,255,255,.26)}
.btn.wa{background:#E7F0DE;color:#2B3A27}
.btn.wa:hover{background:#F2F8EC}
.icon-btn.glass{color:#fff}
.icon-btn.glass:hover{background:rgba(255,255,255,.18)}

/* dentro de los bloques, lo "chico" se ve hundido respecto al fondo del bloque */
.next{background:var(--inset);border:1px solid var(--ln)}
.next.late{background:var(--dg-s);border-color:transparent}.next.now{background:var(--ac-s);border-color:transparent}
.fact{background:var(--inset);border:1px solid var(--ln)}
.fact:hover{background:var(--br-s);border-color:var(--br)}
.facts{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
.fact.wide{grid-column:1/-1}
.tl li{background:var(--inset);border:1px solid var(--ln);border-left:4px solid var(--br)}
.xrow{background:var(--inset);border:1px solid var(--ln)}
.fedit{background:var(--inset);border:1px solid var(--ln)}
.panel .rem{box-shadow:none;border:1px solid var(--ln);background:var(--inset)}
.panel .rem::before{top:14px;bottom:14px}
.psum{margin-bottom:14px}

/* lista de pacientes: un solo bloque con filas */
.plist-page .search{margin:0 0 12px}
.filters{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.filters .chips{padding:0;flex:1}
.filters .count{flex:none;font-size:.88rem;font-weight:650;color:var(--mu);padding-top:10px}
.plist{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.prow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 18px;text-decoration:none;color:inherit;border-top:1px solid var(--ln);transition:background .12s;content-visibility:auto;contain-intrinsic-size:auto 72px}
a.prow:hover{background:var(--sf2)}
a.prow:active{background:var(--br-s)}
.prow.head,.prow.head+.letter-row{border-top:0}
.prow.head{display:none;background:var(--hd);padding-top:11px;padding-bottom:11px;font-size:.74rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mu)}
.letter-row{padding:7px 18px;font-size:.76rem;font-weight:800;letter-spacing:.09em;color:var(--lk);background:var(--inset);border-top:1px solid var(--ln)}
.plist>.letter-row:first-of-type{border-top:0}
.pc-name{display:flex;align-items:center;gap:14px;min-width:0}
.pc-name .avatar{width:44px;height:44px;font-size:.92rem}
.nm{display:grid;min-width:0;gap:1px}
.nm b{font-weight:700;font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm small,.pc-tr small{color:var(--mu);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm .s-d{display:none}
.pc-tr{display:none}
.pc-nx{display:flex;justify-content:flex-end}
.pc-nx .dash{color:var(--mu);opacity:.5}
.prow .chev{display:none}
@media (min-width:760px){
  .prow{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(130px,.7fr) 22px;padding:14px 20px}
  .prow.head{display:grid}
  .nm .s-m{display:none}.nm .s-d{display:block}
  .pc-tr{display:grid;min-width:0;gap:1px}
  .pc-tr b{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .prow .chev{display:block;color:var(--mu)}
  .letter-row{padding:7px 20px}
}

/* buscador: el ícono no pisa el texto (también dentro de hojas y formularios) */
.search input,.fld .search input{padding:0 48px 0 48px;min-height:54px;border-radius:999px;border:1.5px solid var(--ln);background:var(--sf)}
.fld .search input:focus,.search input:focus{border-color:var(--br);box-shadow:0 0 0 4px var(--ring)}
.search .i{z-index:1}
.fld .search{margin:0}

.hero .avatar,.hero .avatar.c1,.hero .avatar.c2,.hero .avatar.c3,.hero .avatar.c4,.hero .avatar.c5{background:rgba(255,255,255,.18)!important;color:#fff!important}
.next-act{display:flex;gap:8px}
.next .grow{min-width:140px}
@media (max-width:520px){
  .panel-h small{display:none}
  .panel-h{padding:12px 14px}.panel-b{padding:14px}
  .next-act{flex:1 1 100%}.next-act .btn{flex:1}
}

@media (max-width:759px){
  .filters{flex-direction:column;gap:2px;margin-bottom:12px}
  .filters .chips{gap:7px}
  .filters .chip{min-height:38px;padding:0 13px;font-size:.88rem}
  .filters .count{padding:6px 4px 0;font-size:.82rem}
  .panel-h h2{white-space:nowrap}
}

/* ================= v2.0: historia clínica, guía, letra grande ================= */
html{font-size:calc(100% * var(--fs,1))}
html[data-fs="2"]{--fs:1.15}
html[data-fs="3"]{--fs:1.3}

.sig{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding:7px 11px;border-radius:10px;background:var(--ok-s);color:var(--ok);font-size:.84rem;line-height:1.35}
.sig .i{flex:none;margin-top:1px}
.sig.u{background:var(--ac-s);color:var(--ac-ink)}
.tl .add{margin:10px 0 0 6px;padding:10px 12px;border-left:3px solid var(--ac);background:var(--sf);border-radius:0 10px 10px 0}
.tl .add .d{color:var(--ac-ink)}
.tl li{padding-right:18px}
.li-act{margin:8px 0 -4px -10px}
.chk{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:var(--inset);border:1.5px solid var(--ln);margin:2px 0 12px;cursor:pointer}
.chk input{width:26px;height:26px;flex:none;margin:1px 0 0;accent-color:var(--br)}
.chk span{display:grid;gap:2px}.chk small{color:var(--mu);font-size:.84rem}
.hcnote{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:12px 14px;border-radius:14px;background:var(--ac-s);color:var(--ac-ink);font-size:.9rem;line-height:1.4}
.hcnote .i{flex:none;margin-top:2px}
.audit{display:grid;gap:8px}
.arow{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--inset);border:1px solid var(--ln)}
.arow .ai{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--br-s);color:var(--br);flex:none}
.arow .grow{min-width:0}.arow b{display:block;font-size:.95rem}.arow small{color:var(--mu);font-size:.8rem}

.guide-link{display:flex;align-items:center;gap:14px;width:100%;margin-top:16px;padding:14px 16px;border-radius:18px;background:var(--ac-s);color:var(--ac-ink);text-align:left;border:1.5px dashed var(--ac)}
.guide-link>span{flex:1;display:grid}.guide-link small{opacity:.85;font-size:.84rem}
.sheet.guide{max-width:620px}
.gsteps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.gstep{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;background:var(--sf);border:1px solid var(--ln)}
.gn{width:44px;height:44px;border-radius:50%;background:var(--br);color:var(--br-ink);display:grid;place-items:center;font-weight:800;font-size:1.25rem;flex:none}
.gt{flex:1;min-width:0}.gt b{display:block;font-size:1.06rem}.gt p{margin:3px 0 0;color:var(--mu);font-size:.9rem;line-height:1.4}
.gi{color:var(--br);flex:none}.gi .i{width:2em;height:2em}
.gafter{margin-top:20px;padding:16px;border-radius:20px;background:var(--hd)}
.gafter h3{margin:0 0 12px;font-size:1.05rem;display:flex;gap:8px;align-items:center}
.gafter .gstep{background:var(--sf)}
.gafter .gn{background:var(--ok-sol);color:#233020}
@media (max-width:520px){.gi{display:none}}

.gt p b{display:inline;font-size:inherit;color:var(--ink)}
.panel-h .pt{overflow:hidden}.panel-h h2{overflow:hidden;text-overflow:ellipsis}

/* ================= v2.1: un color por función ================= */
:root{--c-blue:#1C4B8F;--c-orange:#EE8B28;--c-gold:#F3B244;--c-green:#8FAE78;--c-teal:#286998;--c-red:#CB5514;--c-navy:#143086;
  --pc:#1C4B8F;--pcs:#E4ECF8;--pci:#fff;--pct:#1C4B8F}
.t-blue{--pc:#1C4B8F;--pcs:#E4ECF8;--pci:#fff;--pct:#1C4B8F}
.t-orange{--pc:#EE8B28;--pcs:#FDEEDA;--pci:#2A1300;--pct:#9C4A00}
.t-gold{--pc:#F3B244;--pcs:#FDF2D8;--pci:#2E2000;--pct:#7A5200}
.t-green{--pc:#8FAE78;--pcs:#E7F0DE;--pci:#1F2B1C;--pct:#384A33}
.t-teal{--pc:#286998;--pcs:#E0EDF5;--pci:#fff;--pct:#1F5A86}
.t-red{--pc:#CB5514;--pcs:#FBE8DD;--pci:#fff;--pct:#9C3D0A}
.t-navy{--pc:#143086;--pcs:#E3E8F7;--pci:#fff;--pct:#143086}
@media (prefers-color-scheme:dark){
:root:not([data-theme=light]) .t-blue{--pc:#3A74C4;--pcs:rgba(58,116,196,.2);--pct:#8DB8F0}
:root:not([data-theme=light]) .t-orange{--pcs:rgba(238,139,40,.17);--pct:#F7B873}
:root:not([data-theme=light]) .t-gold{--pcs:rgba(243,178,68,.15);--pct:#F6CD76}
:root:not([data-theme=light]) .t-green{--pcs:rgba(143,174,120,.18);--pct:#B8D3A0}
:root:not([data-theme=light]) .t-teal{--pc:#3A86B8;--pcs:rgba(40,105,152,.28);--pct:#8DB8F0}
:root:not([data-theme=light]) .t-red{--pc:#E0733A;--pcs:rgba(203,85,20,.22);--pct:#F7A47C}
:root:not([data-theme=light]) .t-navy{--pc:#4C68D6;--pcs:rgba(76,104,214,.2);--pct:#A9B8F5}}
:root[data-theme=dark] .t-blue{--pc:#3A74C4;--pcs:rgba(58,116,196,.2);--pct:#8DB8F0}
:root[data-theme=dark] .t-orange{--pcs:rgba(238,139,40,.17);--pct:#F7B873}
:root[data-theme=dark] .t-gold{--pcs:rgba(243,178,68,.15);--pct:#F6CD76}
:root[data-theme=dark] .t-green{--pcs:rgba(143,174,120,.18);--pct:#B8D3A0}
:root[data-theme=dark] .t-teal{--pc:#3A86B8;--pcs:rgba(40,105,152,.28);--pct:#8DB8F0}
:root[data-theme=dark] .t-red{--pc:#E0733A;--pcs:rgba(203,85,20,.22);--pct:#F7A47C}
:root[data-theme=dark] .t-navy{--pc:#4C68D6;--pcs:rgba(76,104,214,.2);--pct:#A9B8F5}

/* bloques: franja de color arriba, encabezado teñido, ícono en el color de la función */
.panel{border-top:4px solid var(--pc)}
.panel-h{background:var(--pcs);border-bottom:1px solid color-mix(in srgb,var(--pc) 22%,var(--ln))}
.panel-h .pi{background:var(--pc);color:var(--pci)}
.panel-h h2{color:var(--pct);font-size:1.18rem}
.panel-h small{color:var(--mu)}
.plist{border-top:4px solid var(--pc)}
.prow.head{background:var(--pcs);color:var(--pct)}

/* navegación: cada sección tiene su color, siempre visible */
.tabs a.nav,.rail a.nav{position:relative}
.nav .ni{display:grid;place-items:center;width:42px;height:30px;border-radius:15px;color:var(--pc);transition:background .15s}
.nav .ni .i{width:1.5em;height:1.5em}
.tabs a.nav{gap:3px;font-size:.78rem}
.tabs a.nav .nl{color:var(--mu);font-weight:650}
.tabs a.nav[aria-current=page] .ni{background:var(--pcs)}
.tabs a.nav[aria-current=page] .nl{color:var(--pct);font-weight:800}
.tabs a.nav[aria-current=page]::before{content:"";position:absolute;top:0;width:36px;height:4px;border-radius:0 0 5px 5px;background:var(--pc)}
.tabs .dot,.rail .dot{background:var(--c-red)}
@media (min-width:960px){
  .rail a.nav{gap:12px;padding:9px 12px;font-size:1.02rem;font-weight:650;color:var(--ink)}
  .rail a.nav .ni{width:40px;height:40px;border-radius:12px;background:var(--pcs)}
  .rail a.nav .nl{color:var(--ink)}
  .rail a.nav[aria-current=page]{background:var(--pcs)}
  .rail a.nav[aria-current=page] .ni{background:var(--pc);color:var(--pci)}
  .rail a.nav[aria-current=page] .nl{color:var(--pct);font-weight:800}
}

/* encabezado de la página: ícono de color + título + una línea que explica para qué sirve */
.top .ti{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--pc);color:var(--pci);flex:none}
.top .ti .i{width:1.4em;height:1.4em}
.top h1{display:grid;gap:0;line-height:1.15}
.top h1 .sub{font-size:.88rem;font-weight:500;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* inicio: tres números, cada uno en su color */
.stats{gap:12px}
.stat{display:grid;gap:2px;padding:16px 16px 14px;background:var(--pcs);border:1px solid color-mix(in srgb,var(--pc) 28%,transparent);border-top:4px solid var(--pc);box-shadow:none}
.stat .i{width:1.5em;height:1.5em;color:var(--pct);margin-bottom:4px}
.stat b{color:var(--pct);font-size:clamp(1.9rem,1.4rem + 1.8vw,2.6rem)}
.stat span{color:var(--ink);font-weight:650;font-size:.9rem}

/* próximo contacto: tarjeta propia, del color de la urgencia */
.next{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:0;padding:18px 20px;border-radius:var(--r);background:var(--pcs);border:1px solid color-mix(in srgb,var(--pc) 35%,transparent);border-left:6px solid var(--pc)}
.next .ni{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--pc);color:var(--pci);flex:none}
.next .ni .i{width:1.5em;height:1.5em}
.next .grow{flex:1;min-width:150px;display:grid;gap:1px}
.next .grow b{font-size:1.45rem;letter-spacing:-.02em;color:var(--ink)}
.next .grow .muted{font-size:.9rem;font-weight:600}
.next .when-t{font-weight:800;color:var(--pct);font-size:.98rem}
.next.none{border-left-color:var(--pc)}
.next .next-act{display:flex;gap:8px;flex-wrap:wrap}
.ficha>.hero,.ficha>.next{grid-column:1/-1}

/* botones por función */
.btn.hc{background:var(--c-gold);color:#2E2000;font-weight:800;box-shadow:0 6px 18px rgba(243,178,68,.45)}
.btn.hc:hover{background:#F6C05E}
.btn.gold{background:var(--c-gold);color:#2E2000;font-weight:750}
.btn.gold:hover{background:#F6C05E}
.hero .btn.wa{background:#8FAE78;color:#16210F;font-weight:750}
.hero .btn.wa:hover{background:#A0BD8A}
.mi .ic.y{background:#FDF2D8;color:#7A5200}
.mi .ic.t{background:#E0EDF5;color:#1F5A86}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .mi .ic.y{background:rgba(243,178,68,.16);color:#F6CD76}:root:not([data-theme=light]) .mi .ic.t{background:rgba(40,105,152,.28);color:#8DB8F0}}
:root[data-theme=dark] .mi .ic.y{background:rgba(243,178,68,.16);color:#F6CD76}
:root[data-theme=dark] .mi .ic.t{background:rgba(40,105,152,.28);color:#8DB8F0}

/* letra: sin mayúsculas ni rótulos diminutos; todo se lee de corrido */
.fact .fl{text-transform:none;letter-spacing:0;font-size:.92rem;font-weight:700;color:var(--pct)}
.sec,.prow.head,.kv dt{text-transform:none;letter-spacing:0}
.prow.head{font-size:.88rem}
.fact{min-height:88px}
.fact .fv{font-size:1.15rem}
.tl .p{font-size:1.22rem}
.tl .d{font-size:.88rem}

/* detalles que ordenan */
.panel .panel-b .stack>.rem{border-left-width:1px}
.card.apar h2{font-size:1.1rem}

.rem.soon::before{background:var(--c-teal)}
.keys{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.key{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--pcs)}
.key .ni{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--pc);color:var(--pci);flex:none}
.key b{display:block;color:var(--pct);font-size:.98rem}.key small{color:var(--mu);font-size:.84rem}
@media (max-width:759px){.top .btn{display:none}}

/* ================= v2.2: turnos, cumpleaños, importación ================= */
.agtabs{max-width:460px;margin-bottom:14px}
.agtabs button{gap:8px;min-height:48px;font-size:1rem}
.apnav{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.apnav .apt{flex:1;min-width:0;text-align:center}
.apnav .apt b{display:block;font-size:1.3rem;letter-spacing:-.02em;text-transform:capitalize}
.apnav .apt small{color:var(--mu);font-size:.88rem}
.dstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:16px}
.dchip{display:grid;justify-items:center;gap:1px;padding:8px 2px 6px;border-radius:16px;background:var(--sf);border:1.5px solid var(--ln);min-height:72px;--pc:#286998;--pci:#fff}
.dchip small{font-size:.74rem;color:var(--mu);font-weight:650;text-transform:capitalize}
.dchip b{font-size:1.2rem}
.dchip i{font-style:normal;min-width:20px;height:20px;border-radius:10px;background:var(--pc);color:var(--pci);font-size:.74rem;font-weight:800;display:grid;place-items:center;padding:0 5px;margin-top:2px}
.dchip i.z{background:transparent}
.dchip.now b{color:var(--c-teal)}
.dchip[aria-pressed=true]{background:var(--pc);border-color:var(--pc);color:var(--pci)}
.dchip[aria-pressed=true] small,.dchip[aria-pressed=true] b{color:var(--pci)}
.dchip[aria-pressed=true] i{background:var(--pci);color:var(--pc)}
.ap{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;padding:16px;background:var(--sf);border:1px solid var(--ln);border-left:6px solid var(--c-orange);border-radius:var(--r)}
.ap.st-confirmed{border-left-color:var(--c-green)}
.ap.st-done{border-left-color:var(--c-blue);opacity:.85}
.ap.st-cancelled,.ap.st-noshow{border-left-color:var(--c-red);opacity:.65}
.ap-t{display:grid;align-content:start;text-align:center;min-width:64px}
.ap-t b{font-size:1.5rem;letter-spacing:-.02em;color:var(--c-teal)}
.ap-t small{color:var(--mu);font-size:.8rem}
.ap-m{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;min-width:0}
.ap-n{font-weight:750;font-size:1.1rem;color:var(--ink);text-decoration:none;flex:1 1 100%}
.ap-m>span:not(.badge){color:var(--mu);flex:1;min-width:0}
.ap-a{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.aprow{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--inset);border:1px solid var(--ln);margin-bottom:8px}
.aprow:last-child{margin-bottom:0}
.aprow .grow{flex:1;min-width:0}.aprow b{display:block}.aprow small{color:var(--mu);font-size:.84rem}
.aprow .at{font-weight:800;font-size:1.1rem;color:var(--c-teal);min-width:54px}
.aptm{margin-top:12px}.aptm>b{display:block;margin:0 0 8px;color:var(--mu);font-size:.9rem}
.prow[data-go]{cursor:pointer}.prow[data-go]:hover{background:var(--sf2)}
.dict{display:flex;gap:8px;align-items:center;margin:2px 2px 0;color:var(--mu);font-size:.84rem}
.dict .i{width:1.1em;height:1.1em;flex:none}
.imp-h{margin:18px 0 8px;font-size:1.02rem}
.filebtn{position:relative;overflow:hidden;cursor:pointer}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.maps{display:grid;gap:8px}
.mapr{display:grid;grid-template-columns:1fr minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px;border-radius:14px;background:var(--inset);border:1px solid var(--ln)}
.mapr span{display:grid;min-width:0}.mapr small{color:var(--mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mapr select{width:100%;min-height:46px;border-radius:12px;border:1.5px solid var(--ln);background:var(--sf);padding:0 10px}
@media (max-width:520px){.mapr{grid-template-columns:1fr}.ap-t b{font-size:1.3rem}}
