body.pnl{background:var(--bg)}
body.con-modal{overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tx3{color:var(--tx3)}

/* acceso */
.login{min-height:calc(100vh - 34px);display:grid;place-items:center;padding:24px var(--gut);background:var(--ink2)}
.login-c{width:100%;max-width:400px;background:#fff;border-radius:22px;padding:30px 26px;display:grid;justify-items:start}
.login-c h1{font-size:1.7rem;font-weight:800;margin:14px 0 2px}
.login-c .sub{margin-bottom:20px;color:var(--tx2)}
.login-c .campo{width:100%}
.login-c .seg{margin:0}
.login-c .nota{margin:12px 0 0}

/* estructura */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 34px);background:linear-gradient(90deg,var(--ink2) 248px,var(--bg) 248px)}
.lado{background:var(--ink2);color:#C3CFDA;display:flex;flex-direction:column;gap:22px;padding:22px 14px 18px;position:sticky;top:0;height:100vh;overflow-y:auto}
.lado>.marca-cli{padding:0 8px}
.tabs{display:grid;gap:2px}
.tabs button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#B7C3CE;padding:11px 12px;border-radius:10px;font-weight:600;font-size:.97rem;cursor:pointer;text-align:left;min-height:44px}
.tabs svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabs button:hover{background:rgba(255,255,255,.05);color:#fff}
.tabs button[aria-current=page]{background:rgba(255,255,255,.09);color:#fff;box-shadow:inset 3px 0 0 var(--coral)}
.tab-n{margin-left:auto;background:var(--coral-b);color:#fff;font-size:.74rem;font-weight:800;min-width:22px;height:22px;border-radius:99px;display:grid;place-items:center;padding:0 6px}
.lado-pie{margin-top:auto;display:grid;gap:12px;padding:0 6px}
.quien{display:grid;gap:6px;font-size:.8rem;color:#8E9CAA}
.seg-osc{background:rgba(255,255,255,.06);margin:0}
.seg-osc button{color:#A9B6C2;min-height:34px;padding:.35em .8em;font-size:.86rem}
.seg-osc button[aria-pressed=true]{background:#fff;color:var(--ink)}
.btn-salir{justify-self:start;background:transparent;border:0;color:#A9B6C2;font-weight:600;cursor:pointer;padding:4px 0}
.btn-salir:hover{color:#fff;text-decoration:underline}
.area{padding:22px clamp(16px,2.6vw,40px) 48px;min-width:0}
.area-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 20px;flex-wrap:wrap;margin-bottom:18px}
.area-cab h1{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.2rem);font-weight:800;margin:0}
.area-cab .sub{margin:4px 0 0;font-size:.95rem}
.area-acc{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.nav-f{display:flex;gap:6px;align-items:center}
.nav-f input{width:auto;min-height:38px;padding:.3em .6em}
.btn-ic{min-height:38px;width:38px;padding:0;font-size:1.3rem;line-height:1}
.btn-xs{min-height:32px;padding:.25em .75em;font-size:.84rem}
a.btn-ic.wa,.btn-ic.wa{display:inline-grid;place-items:center;width:34px;height:34px;min-height:34px;border-radius:50%;color:#1F8F5F;border:1.5px solid #BFE3D0;background:#fff}
.btn-ic.wa:hover{background:#E8F6EE}
.btn-ic.wa svg,.btn-wa svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
@media (max-width:900px){
  .app{grid-template-columns:1fr;background:var(--bg)}
  .lado{position:sticky;top:0;z-index:40;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px}
  .lado>.marca-cli img{width:28px;height:28px}.lado>.marca-cli b{font-size:1rem}.lado>.marca-cli small{font-size:.66rem}
  .tabs{order:3;width:100%;display:flex;overflow-x:auto;gap:4px;scrollbar-width:none;margin:0 -12px;padding:0 12px;width:calc(100% + 24px)}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{width:auto;flex:none;padding:8px 12px;min-height:40px;font-size:.92rem}
  .tabs button[aria-current=page]{box-shadow:inset 0 -3px 0 var(--coral)}
  .tabs svg{width:18px;height:18px}
  .lado-pie{margin:0 0 0 auto;display:flex;align-items:center;gap:10px;padding:0}
  .quien span{display:none}
  .lado-pie .marca-agua{display:none}
  .area{padding-top:16px}
}
@media (max-width:420px){.lado-pie .btn-salir{display:none}}
.pie-panel{display:none}
@media (max-width:900px){.pie-panel{display:flex;justify-content:center;padding:18px 0 4px}}

/* cifras */
.stats{display:flex;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:18px;overflow:hidden}
.stats>div{flex:1 1 130px;padding:14px 18px;border-right:1px solid var(--line);display:grid;gap:0}
.stats>div:last-child{border-right:0}
.stats b{font-family:var(--f-h);font-size:1.7rem;line-height:1.1;color:var(--ink)}
.stats span{font-size:.84rem;color:var(--tx3);font-weight:600}
.stats .aviso b{color:var(--coral-b)}
@media (max-width:560px){.stats>div{flex-basis:33%;padding:10px 12px;border-bottom:1px solid var(--line)}.stats b{font-size:1.35rem}}

/* listas por agenda */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px;align-items:start}
.col{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.col-cab{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.col-cab b{font-family:var(--f-h);font-size:1.1rem}
.col-cab>span:not(.dot):not(.col-n){font-size:.84rem;color:var(--tx3)}
.col-n{margin-left:auto;font-size:.84rem;font-weight:700;color:var(--tx2)}
.dot{width:12px;height:12px;border-radius:50%;flex:none;display:inline-block}
.lista{list-style:none;margin:0;padding:0}
.it{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);position:relative}
.it:last-child{border-bottom:0}
.it::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--c,transparent)}
.it-h{display:grid;line-height:1.15}
.it-h b{font-family:var(--f-h);font-size:1.15rem}
.it-h span{font-size:.74rem;color:var(--tx3)}
.it-b{display:grid;gap:2px;min-width:0}
.it-b>span{font-size:.88rem;color:var(--tx2);overflow:hidden;text-overflow:ellipsis}
.it-b .it-o{font-size:.78rem;color:var(--tx3)}
.it-n{border:0;background:none;padding:0;font-weight:700;font-size:1rem;color:var(--ink);text-align:left;cursor:pointer;justify-self:start}
.it-n:hover{color:var(--teal-d);text-decoration:underline}
.it-a{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.sem{font-weight:700;color:var(--coral-bh)}
.it.e-cancelada,.it.e-reprogramada{opacity:.55}
.it.e-cancelada .it-n{text-decoration:line-through}
.it.e-asistio .it-h b{color:var(--ok)}
.it.hueco{background:repeating-linear-gradient(135deg,#fff,#fff 8px,#FFF4F2 8px,#FFF4F2 16px)}
.it.hueco::before{background:var(--coral)}
.it.hueco .it-b b{color:var(--coral-bh)}
.it.bloq{background:var(--sf2)}
.it.bloq .it-b b{color:var(--tx2)}
.linea-ahora{position:relative;height:0;border-top:2px solid var(--coral);margin:0 16px;list-style:none}
.linea-ahora span{position:absolute;top:-11px;left:0;background:var(--coral-b);color:#fff;font-size:.72rem;font-weight:700;padding:.1em .6em;border-radius:99px;box-shadow:0 0 0 0 rgba(232,102,90,.55);animation:latir 1.6s ease-out infinite}
@keyframes latir{0%{box-shadow:0 0 0 0 rgba(232,102,90,.55)}70%{box-shadow:0 0 0 9px rgba(232,102,90,0)}100%{box-shadow:0 0 0 0 rgba(232,102,90,0)}}
.vacio{color:var(--tx3);padding:18px 16px;margin:0}
@media (max-width:560px){.it{grid-template-columns:60px minmax(0,1fr);padding:12px}.it-h span{white-space:nowrap}.it-a{grid-column:1/-1;justify-content:flex-start}.ctrl .it-a,.recs .rec-a{grid-column:1/-1}}

/* semana */
.leyenda{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px;font-size:.84rem;color:var(--tx2)}
.leyenda span{display:inline-flex;align-items:center;gap:6px}
.leyenda i{width:12px;height:12px;border-radius:3px;display:inline-block}
.l-hueco{background:repeating-linear-gradient(135deg,#fff,#fff 3px,var(--coral) 3px,var(--coral) 5px);border:1px solid var(--coral)}
.l-bloq{background:#D9E0E6}
.g{display:grid;grid-template-columns:62px minmax(0,1fr);background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.g-dias{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.g-cab{height:52px;display:flex;align-items:center;justify-content:center;gap:6px;border-bottom:1px solid var(--line);font-size:.86rem;color:var(--tx3);font-weight:600}
.g-cab b{font-family:var(--f-h);font-size:1.3rem;color:var(--ink)}
.g-hoy .g-cab{background:var(--blush)}
.g-hoy .g-cab b{color:var(--coral-bh)}
.g-eje .g-cuerpo{position:relative}
.g-eje span{position:absolute;right:8px;transform:translateY(-50%);font-size:.7rem;color:var(--tx3);white-space:nowrap}
.g-eje span:first-child{transform:none}
.g-dia{border-left:1px solid var(--line);min-width:0}
.g-cuerpo{position:relative;display:flex}
.g-lineas{position:absolute;inset:0;pointer-events:none}
.g-lineas i{position:absolute;left:0;right:0;border-top:1px solid #EEF1F4}
.g-carril{position:relative;flex:1.6;cursor:copy;min-width:0}
.g-carril+.g-carril{flex:1;border-left:1px dashed var(--line)}
.g-fuera{position:absolute;left:0;right:0;background:repeating-linear-gradient(135deg,#F7F9FA,#F7F9FA 6px,#F0F3F5 6px,#F0F3F5 12px);cursor:default}
.g-bloq{position:absolute;left:2px;right:2px;background:#E3E8EC;border-radius:6px;font-size:.7rem;color:var(--tx2);padding:4px 6px;overflow:hidden;cursor:default}
.g-c{position:absolute;left:2px;right:2px;border:0;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 14%,#fff);border-radius:6px;padding:2px 5px;font-size:.72rem;line-height:1.25;text-align:left;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink);z-index:1}
.g-c b{font-weight:800}
.g-c:hover{filter:brightness(.96);z-index:2}
.g-c.e-asistio{background:color-mix(in srgb,var(--c) 26%,#fff)}
.g-c.e-no_asistio{background:#fff;border-left-style:dotted;color:var(--tx3)}
.g-c.g-hueco{background:repeating-linear-gradient(135deg,#fff,#fff 4px,#FDE3DF 4px,#FDE3DF 8px);border:1px dashed var(--coral);color:var(--coral-bh);font-weight:700}
.g-ahora{position:absolute;left:0;right:0;border-top:2px solid var(--coral);z-index:3;pointer-events:none}
.g-ahora::before{content:"";position:absolute;left:-5px;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--coral)}
.dias-m{display:flex;gap:8px;overflow-x:auto;margin-bottom:14px;padding-bottom:4px}
.dia-m{flex:none;display:grid;justify-items:center;width:64px;padding:8px 4px;border-radius:14px;border:1.5px solid var(--line2);background:#fff;cursor:pointer;line-height:1.2}
.dia-m span{font-size:.76rem;color:var(--tx3);font-weight:600}.dia-m b{font-family:var(--f-h);font-size:1.35rem}.dia-m em{font-style:normal;font-size:.72rem;color:var(--teal-d);font-weight:700}
.dia-m[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.dia-m[aria-pressed=true] span,.dia-m[aria-pressed=true] em{color:#BFE9DF}

/* recordatorios */
.rec-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);gap:18px;margin-bottom:18px;align-items:stretch}
.rec-prog{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:grid;gap:10px;align-content:start}
.rec-prog b{font-family:var(--f-h);font-size:1.15rem}
.barra{height:10px;border-radius:99px;background:var(--sf2);overflow:hidden}
.barra i{display:block;height:100%;background:var(--teal);border-radius:99px;transition:width .4s}
.rec-prog .nota{margin:0}
.mejora{border:1.5px dashed var(--line2);border-radius:16px;padding:16px 18px;display:grid;gap:6px;align-content:start;background:#FBFCFD}
.mejora b{font-family:var(--f-h);font-size:1.1rem}
.mejora p{margin:0;font-size:.92rem;color:var(--tx2)}
.chip-mejora{justify-self:start;background:#EDE9FF;color:#4B3BC4}
.recs{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.rec{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 16px;border-bottom:1px solid var(--line);position:relative}
.rec:last-child{border-bottom:0}
.rec::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;background:var(--c)}
.rec.ok{background:#FAFCFB}
.rec-b{display:grid;gap:4px;min-width:0}
.rec-b>span{font-size:.88rem;color:var(--tx2)}
.rec-est{display:flex;gap:6px;flex-wrap:wrap}
.rec details summary{cursor:pointer;color:var(--teal-d);font-size:.85rem;font-weight:600;width:max-content}
.rec pre{white-space:pre-wrap;font-family:var(--f-b);font-size:.88rem;background:#EFEAE2;border-radius:4px 12px 12px 12px;padding:10px 12px;margin:8px 0 0;max-width:560px}
.rec-a{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:900px){.rec-top{grid-template-columns:1fr}}
@media (max-width:560px){.rec{grid-template-columns:54px minmax(0,1fr)}.rec-a{grid-column:1/-1;justify-content:flex-start}}

/* pacientes */
.barra-h{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.buscar{position:relative;flex:1 1 280px;max-width:520px}
.buscar svg{position:absolute;left:12px;top:50%;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:var(--tx3);stroke-width:2;stroke-linecap:round}
.buscar input{padding-left:38px}
.tabla{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.tabla th{text-align:left;font-size:.8rem;color:var(--tx3);font-weight:700;padding:12px 14px;border-bottom:1px solid var(--line);background:#FBFCFD}
.tabla td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:.93rem;vertical-align:middle}
.tabla tr:last-child td{border-bottom:0}
.tabla tbody tr{cursor:pointer}
.tabla tbody tr:hover td{background:#FAFBFC}
.tabla td:first-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.td-a{text-align:right}
.ir{color:var(--teal-d);font-weight:600;font-size:.88rem;white-space:nowrap}
@media (max-width:700px){
  .tabla,.tabla tbody,.tabla tr,.tabla td{display:block}
  .tabla thead{display:none}
  .tabla tr{padding:12px 14px;border-bottom:1px solid var(--line)}
  .tabla td{border:0;padding:2px 0;display:flex;gap:8px}
  .tabla td[data-l]:not(:first-child)::before{content:attr(data-l);color:var(--tx3);font-size:.8rem;min-width:96px}
  .td-a{display:none!important}
}

/* controles */
.ctrl{display:grid;gap:18px}
.ctrl-g{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.ctrl-g h2{font-size:1.1rem;padding:14px 16px;margin:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.ctrl-g h2 span{font-family:var(--f-b);font-size:.8rem;background:var(--sf2);color:var(--tx2);border-radius:99px;padding:.1em .6em}
.ctrl-g.toca h2{background:var(--blush)}
.ctrl-g.toca h2 span{background:var(--coral-b);color:#fff}
.ctrl-g.pronto h2{background:var(--mint)}
.ctrl .it{grid-template-columns:minmax(0,1fr) auto}
.ctrl-g.toca .it::before{background:var(--coral)}
.ctrl-g.pronto .it::before{background:var(--teal)}
.ctrl-g.paso .it::before{background:var(--line2)}

/* resumen */
.res-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tarjeta-p{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px;min-width:0}
.tarjeta-p h2{font-size:1.15rem;margin-bottom:14px}
.tarjeta-p.ancha{grid-column:1/-1}
@media (max-width:1100px){.res-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.res-g{grid-template-columns:1fr}}
.bh{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.bh li{display:grid;gap:4px}
.bh li>span{font-size:.86rem;color:var(--tx2)}
.bh li>div{display:flex;align-items:center;gap:8px}
.bh i{display:block;height:12px;border-radius:0 6px 6px 0;background:var(--ink);min-width:3px}
.bh b{font-size:.86rem}
.bv{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(8px,2vw,28px);align-items:end;height:220px;padding-top:20px;border-bottom:1px solid var(--line2)}
.bv-c{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;position:relative}
.bv-c b{font-size:.82rem;color:var(--tx2)}
.bv-c>span{position:absolute;bottom:-24px;font-size:.8rem;color:var(--tx3);font-weight:600}
.bv-c.sel>span{color:var(--ink)}
.bv-p{width:min(100%,64px);display:flex;flex-direction:column-reverse;border-radius:6px 6px 0 0;overflow:hidden;min-height:2px}
.bv-p i{display:block;min-height:0}
.s-a{background:var(--teal-d)}.s-n{background:var(--coral)}.s-c{background:#C9D2D9}.s-p{background:#A9D8CE}
.tarjeta-p .leyenda{margin:34px 0 4px}
.tarjeta-p .nota{margin:8px 0 0}

/* ajustes */
.aj{display:grid;gap:18px;max-width:1200px}
.aj-ags{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:18px}
.aj-ag h3{display:flex;align-items:center;gap:8px}
.aj-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
@media (max-width:560px){.aj-2{grid-template-columns:1fr}}
.aj-dias{display:grid;gap:8px;margin-bottom:10px}
.aj-dia{display:grid;grid-template-columns:120px minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}
.aj-dia input[type=time]{min-height:40px;padding:.3em .5em;min-width:0}
@media (max-width:480px){.aj-dia{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.aj-dia .chk{grid-column:1/-1}}
.chk{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.92rem;cursor:pointer}
.chk input{width:18px;height:18px;min-height:0;accent-color:var(--teal-d)}
.aj-t{border-top:1px solid var(--line);padding:12px 0}
.aj-t summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.aj-t summary span{font-size:.86rem;color:var(--tx3)}
.aj-t form{padding-top:14px}
.aj-chk{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.aj-bloq{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 12px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.aj-bloq .btn{margin-bottom:14px}
.peligro{border-color:#F1C8C2}

/* modal */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}
.modal-fondo{position:absolute;inset:0;background:rgba(14,24,35,.55)}
.modal-c{position:relative;background:#fff;border-radius:20px;width:100%;max-width:620px;max-height:calc(100vh - 32px);overflow-y:auto;padding:24px clamp(18px,3vw,30px);outline:none}
.modal.ancho .modal-c{max-width:920px}
.modal-x{position:absolute;right:12px;top:10px;width:40px;height:40px;border:0;background:transparent;font-size:1.8rem;line-height:1;color:var(--tx3);cursor:pointer;border-radius:50%}
.modal-x:hover{background:var(--sf2);color:var(--ink)}
.modal-c h2{font-size:1.5rem;padding-right:40px}
.modal-c .sub{margin-bottom:14px}
.det{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:0 0 18px}
.det div{display:grid;gap:2px}
.det dt{font-size:.8rem;color:var(--tx3);font-weight:600}
.det dd{margin:0;font-weight:600}
@media (max-width:520px){.det{grid-template-columns:1fr}}
.det-acc{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.repro-p{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:10px;margin-bottom:14px;background:var(--bg)}
.det-nota{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.det-nota .campo{flex:1 1 260px;margin:0}
.det-pie{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.nc-horas{display:flex;flex-wrap:wrap;gap:8px}
.hora{min-height:40px;padding:.35em .8em;border-radius:10px;border:1.5px solid var(--line2);background:#fff;font-weight:600;font-size:.9rem;cursor:pointer}
.hora:hover{border-color:var(--ink)}
.hora[aria-pressed=true]{background:var(--coral-b);border-color:var(--coral-b);color:#fff}
.nc-res{list-style:none;margin:6px 0;padding:0;display:grid;gap:4px}
.nc-res button{width:100%;display:flex;justify-content:space-between;gap:10px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;cursor:pointer}
.nc-res button:hover{border-color:var(--ink)}
.nc-res span{color:var(--tx3);font-size:.86rem}
.nc-sel{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--mint)}
.ficha{display:grid;gap:18px}
.f-cab{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;padding-right:36px}
.f-cab .sub{margin:0}
.f-acc{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.f-sem{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.f-sem .sem-n{font-family:var(--f-h);font-weight:800;font-size:2.8rem;line-height:.9;letter-spacing:-.04em;display:flex;align-items:baseline;gap:6px}
.f-sem .sem-n small{font-size:.4em;color:var(--tx2)}
.f-sem .sem-n i{font-style:normal;font-size:.32em;color:var(--coral-b);font-weight:700}
.sem-cifra{display:flex;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;align-items:flex-end}
.sem-tri{display:block;margin-top:6px;font-weight:600;color:var(--tx2);font-size:.92rem}
.sem-fpp span{display:block;font-size:.82rem;color:var(--tx3);font-weight:600}
.sem-fpp b{font-family:var(--f-h);font-size:1.2rem}
.f-sug{border-radius:14px;padding:14px 16px;background:var(--blush);display:grid;gap:4px}
.f-sug.agendada,.f-sug.hecha{background:var(--mint)}
.f-sug b{font-family:var(--f-h);font-size:1.08rem}
.f-sug .chip{justify-self:start}
.f-enl{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.f-enl code{display:block;font-size:.8rem;color:var(--tx2);word-break:break-all;margin-top:2px}
.f-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:700px){.f-2{grid-template-columns:1fr}}
.f-2 h3{font-size:1.02rem}
.hist{list-style:none;margin:0;padding:0}
.hist li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.hist li:last-child{border-bottom:0}
.hist li>span:first-child{color:var(--tx3);white-space:nowrap}
.hist-btn li{cursor:pointer;border-radius:8px}
.hist-btn li:hover{background:var(--bg)}
@media (max-width:520px){.hist li{grid-template-columns:1fr auto}.hist li>span:first-child{grid-column:1/-1}}

/* ===== v2 ===== */
.av{display:inline-grid;place-items:center;width:38px;height:38px;flex:none;border-radius:12px;background:color-mix(in srgb,var(--av) 16%,#fff);color:color-mix(in srgb,var(--av) 80%,#000);font-weight:800;font-size:.86rem;letter-spacing:.02em}
.av-g{width:56px;height:56px;border-radius:16px;font-size:1.15rem}
.av-s{width:28px;height:28px;border-radius:8px;font-size:.7rem;margin-right:8px;vertical-align:middle}
.orden{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--tx3);margin-left:auto}
.orden select{width:auto;min-height:38px;padding:.3em .6em}
.seg button small{color:var(--tx3);font-weight:600;margin-left:2px}
.plist{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.pl-cab,.pl-row{display:grid;grid-template-columns:minmax(220px,2.2fr) minmax(170px,1.3fr) minmax(150px,1.1fr) 110px 20px;gap:16px;align-items:center;padding:12px 18px}
.pl-cab{font-size:.78rem;font-weight:700;color:var(--tx3);background:#FBFCFD;border-bottom:1px solid var(--line)}
.pl-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer;font:inherit;color:inherit}
.pl-row:last-child{border-bottom:0}
.pl-row:hover{background:#FAFBFC}
.pl-row:hover .pl-ir{color:var(--ink);transform:translateX(2px)}
.pl-p{display:flex;align-items:center;gap:12px;min-width:0}
.pl-n{display:grid;min-width:0}
.pl-n b{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-n small{font-size:.8rem;color:var(--tx3)}
.pl-s{display:grid;gap:5px;font-size:.86rem;color:var(--tx2)}
.mini{display:block;height:6px;border-radius:99px;background:var(--sf2);overflow:hidden;max-width:160px}
.mini i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blush2),var(--coral))}
.pl-c{font-size:.9rem;color:var(--tx2)}
.pl-c b{color:var(--ink)}
.pl-w{font-size:.88rem;color:var(--tx2);font-variant-numeric:tabular-nums}
.pl-ir{font-size:1.4rem;color:var(--tx3);transition:transform .15s}
@media (max-width:760px){.pl-cab{display:none}.pl-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:12px 14px}.pl-s,.pl-c{grid-column:1;padding-left:50px}.pl-w{display:none}.pl-ir{grid-row:1/span 3;grid-column:2}}

/* expediente */
.modal.ancho .modal-c{max-width:1040px}
.exp{display:grid;gap:16px}
.exp-cab{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;padding-right:36px;min-width:0}
.exp{min-width:0}
@media (max-width:520px){.av-g{width:44px;height:44px;font-size:.95rem}.exp-cab .f-acc{width:100%}}
.exp-id{flex:1 1 220px;min-width:0}
.exp-id h2{margin:0 0 2px}
.exp-id .sub{margin:0 0 8px}
.exp-chips{display:flex;gap:6px;flex-wrap:wrap}
.chip-sem{background:var(--blush);color:var(--coral-bh)}
.chip-alto{background:var(--bad-bg);color:var(--bad)}
.chip-med{background:var(--mint);color:var(--teal-d)}
.chip-on{background:var(--mint);color:var(--teal-d)}
button.chip{border:0;cursor:pointer;font-family:inherit}
.exp-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none;min-width:0;max-width:100%}
.exp-tabs::-webkit-scrollbar{display:none}
.exp-tabs button{flex:none;border:0;background:none;padding:10px 12px;font-weight:600;font-size:.93rem;color:var(--tx2);cursor:pointer;border-bottom:3px solid transparent;display:inline-flex;align-items:center;gap:6px}
.exp-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--coral)}
.exp-tabs .tab-n{margin:0;min-width:20px;height:20px;font-size:.7rem}
.exp-cuerpo{display:grid;gap:16px;min-height:200px}
.f-box{border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:grid;gap:10px;align-content:start}
.f-box h3{font-size:1rem;margin:0}
.f-box-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.f-box-cab h3{margin:0}
.res-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:760px){.res-2{grid-template-columns:1fr}}
.alertas{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.alertas li{padding:8px 10px 8px 12px;border-radius:10px;font-size:.9rem;border-left:3px solid}
.al-rojo{background:var(--bad-bg);border-color:var(--bad)!important;color:#7E2A22}
.al-ambar{background:var(--warn-bg);border-color:#E0A526!important;color:#6B4708}
.al-azul{background:#EAF0F6;border-color:#5B7FA6!important;color:#2F4B69}
.ok-linea{margin:0;color:var(--ok);font-weight:600}
.signos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.signos div{background:var(--bg);border-radius:10px;padding:8px 10px;display:grid}
.signos span{font-size:.74rem;color:var(--tx3);font-weight:600}
.signos b{font-family:var(--f-h);font-size:1.12rem}
.signos .alto{background:var(--bad-bg)}
.signos .alto b{color:var(--bad)}
.f-nota{margin:0;font-size:.92rem;color:var(--tx2);background:var(--bg);border-radius:10px;padding:8px 10px}
.med-chips{display:flex;flex-wrap:wrap;gap:6px}
.f-form{display:grid;gap:12px}
.f-form>summary{list-style:none;justify-self:start}
.f-form>summary::-webkit-details-marker{display:none}
.f-form[open]>summary{margin-bottom:2px}
.grid-f{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px;align-items:end;border:1px solid var(--line);border-radius:14px;padding:14px;background:#FBFCFD}
.grid-f .ancho{grid-column:1/-1}
.grid-f .ancho2{grid-column:span 2}
.grid-f .chk{margin-bottom:14px}
.hist-f .grid-f{border:0;padding:0;background:none}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:760px){.grid-f{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-f .ancho2{grid-column:1/-1}}
.hist-f{display:grid;gap:12px}
.hist-f fieldset{border:1px solid var(--line);border-radius:14px;padding:12px 14px 2px;margin:0}
.hist-f legend{font-weight:700;font-size:.92rem;padding:0 6px}
.fila-b{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.graf-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:700px){.graf-2{grid-template-columns:1fr}}
.graf{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:4px}
.graf b{font-size:.9rem}
.graf svg{width:100%;height:auto}
.g-lin{fill:none;stroke:var(--teal-d);stroke-width:2.2;stroke-linejoin:round}
.g-pt{fill:#fff;stroke:var(--teal-d);stroke-width:2}
.g-umb{stroke:var(--coral);stroke-dasharray:4 4;stroke-width:1.4}
.g-umb-t{fill:var(--coral-bh);font-size:10px}
.g-ax{fill:var(--tx3);font-size:10px}
.graf-ult{font-size:.84rem;color:var(--tx3)}
.cons{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cons li{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:8px}
.cons-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.cons-h span{color:var(--tx3);font-size:.88rem;flex:1}
.subir{display:grid;gap:10px;border:1.5px dashed var(--line2);border-radius:14px;padding:12px;background:#FBFCFD}
.subir-zona{display:flex;gap:12px;align-items:center;cursor:pointer}
.subir-zona input{width:auto;min-height:0;border:0;padding:0;max-width:240px;font-size:.86rem}
.subir-zona span{display:grid}
.subir-zona small{color:var(--tx3)}
.subir-op{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto auto;gap:0 12px;align-items:end}
.subir-op .chk,.subir-op .btn{margin-bottom:14px}
@media (max-width:760px){.subir-op{grid-template-columns:1fr}}
.aviso-gris{margin:0;padding:10px 12px;border-radius:10px;background:var(--sf2);color:var(--tx2);font-size:.9rem}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.gal figure{margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;display:grid}
.gal figure.comp{border-color:#9ED3C6;box-shadow:0 0 0 2px var(--mint)}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#060809}
.gal .pdf{display:grid;place-items:center;aspect-ratio:4/3;background:var(--sf2);font-weight:800;color:var(--tx2)}
.gal figcaption{padding:8px 10px;display:grid;gap:2px;font-size:.84rem}
.gal figcaption span{color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gal-acc{display:flex;gap:4px;align-items:center;justify-content:space-between;margin-top:4px}
.est{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.est li{border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:grid;gap:6px}
.est-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.est-h span:last-child{color:var(--tx3);font-size:.86rem}
.est-acc{display:flex;gap:6px;flex-wrap:wrap}
.chip.est-pedido{background:var(--warn-bg);color:var(--warn)}
.chip.est-recibido{background:#EAF0F6;color:#33506B}
.chip.est-revisado{background:var(--ok-bg);color:var(--ok)}
.res-f{display:grid;gap:8px}
.meds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.meds li{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:6px;align-content:start}
.meds li.inact{opacity:.6}
.meds p{margin:0;font-size:.9rem;color:var(--tx2)}
.med-h{display:flex;justify-content:space-between;gap:8px;align-items:center}
.med-acc{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.f-hist summary{cursor:pointer;color:var(--teal-d);font-weight:600;margin:4px 0 10px}
.avisos{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.avisos li{display:flex;gap:12px;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 12px;border-left:3px solid #E0A526}
.avisos li.av-interno{border-left-color:#5B7FA6}
.av-b{display:grid;gap:3px}
.av-b span:last-child{font-size:.84rem;color:var(--tx3)}
.av-b .chip{justify-self:start}
.av-acc{display:flex;gap:6px;align-items:center;flex:none}
.aviso-f{margin-bottom:4px}
.cobro-res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}
.cobro-res div{background:var(--bg);border-radius:12px;padding:10px 12px;display:grid}
.cobro-res span{font-size:.78rem;color:var(--tx3);font-weight:600}
.cobro-res b{font-family:var(--f-h);font-size:1.25rem}
.rojo{color:var(--bad)}
.tabla-cob tbody tr,.tabla-ing tbody tr{cursor:default}
.tabla-ing tbody tr{cursor:pointer}
.td-b{text-align:right}
.chip.pago-ok{background:var(--ok-bg);color:var(--ok)}
.chip.pago-par{background:var(--warn-bg);color:var(--warn)}
.btn-cobrar{background:#FFF4E5;color:#8A5A00;border-color:#F3D19B}
.btn-cobrar:hover{border-color:#8A5A00}
@media (max-width:700px){.tabla-cob,.tabla-cob tbody,.tabla-cob tr,.tabla-cob td{display:block}.tabla-cob thead{display:none}.tabla-cob tr{padding:10px 12px;border-bottom:1px solid var(--line)}.tabla-cob td{border:0;padding:2px 0;display:flex;gap:8px}.tabla-cob td[data-l]::before{content:attr(data-l);color:var(--tx3);font-size:.8rem;min-width:80px}.td-b{text-align:left}
  .tabla-ing,.tabla-ing tbody,.tabla-ing tr,.tabla-ing td{display:block}.tabla-ing thead{display:none}.tabla-ing tr{padding:10px 12px;border-bottom:1px solid var(--line)}.tabla-ing td{border:0;padding:2px 0;display:flex;gap:8px;align-items:center}.tabla-ing td[data-l]:not(:first-child)::before{content:attr(data-l);color:var(--tx3);font-size:.8rem;min-width:80px}}
/* ingresos */
.ing-rango{display:flex;gap:6px;align-items:center}
.ing-rango input{width:auto;min-height:38px;padding:.3em .5em}
.bd{display:flex;align-items:flex-end;gap:3px;height:180px;border-bottom:1px solid var(--line2);padding-top:10px}
.bd-c{flex:1;height:100%;display:flex;align-items:flex-end;min-width:0}
.bd-c i{display:block;width:100%;background:var(--teal);border-radius:4px 4px 0 0;min-height:2px}
.bd-c.hoy i{background:var(--coral)}
.bd-c:hover i{background:var(--teal-d)}
.bd-ej{display:flex;justify-content:space-between;font-size:.78rem;color:var(--tx3);margin-top:6px;gap:8px}
.saldos{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.saldos li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.saldos li:last-child{border-bottom:0}
.saldos li>div{display:grid}
.saldos span{font-size:.84rem;color:var(--tx3)}
.movs{list-style:none;margin:0;padding:0}
.movs li{display:grid;grid-template-columns:80px minmax(0,1fr) auto 100px 80px auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.movs li:last-child{border-bottom:0}
.mv-f{color:var(--tx3)}
.mv-p{display:grid;min-width:0}
.mv-p small{color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-m{text-align:right;font-variant-numeric:tabular-nums}
.mv-q{color:var(--tx3);font-size:.82rem}
@media (max-width:700px){.movs li{grid-template-columns:minmax(0,1fr) auto;gap:2px 10px}.mv-f{grid-column:1/-1;font-size:.8rem}.mv-q,.movs .chip{display:none}}
/* avisos del día */
.avisos-hoy{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.avisos-hoy h2{font-size:1.1rem;padding:14px 16px;margin:0;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;background:#FFF8E8}
.avisos-hoy h2 span{font-family:var(--f-b);font-size:.8rem;background:#E0A526;color:#fff;border-radius:99px;padding:.1em .6em}
.avisos-hoy .it::before{background:#E0A526}
.avisos-hoy .it.av-interno::before{background:#5B7FA6}
.exp,.exp-cuerpo,.ficha{grid-template-columns:minmax(0,1fr)}
.f-box,.subir,.f-form,.res-2>section{grid-template-columns:minmax(0,1fr);min-width:0}
.subir-zona{flex-wrap:wrap;min-width:0}
.subir-zona input{max-width:100%}
.subir-zona{position:relative}
.subir-zona input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.subir-zona:focus-within .btn{outline:3px solid var(--teal);outline-offset:2px}
.sz-t{display:grid}
.saldos .mas,.movs .mas{display:block;border:0;padding:6px 0 0}
.mas summary{cursor:pointer;color:var(--teal-d);font-weight:600;font-size:.9rem}
.mas ul{list-style:none;margin:8px 0 0;padding:0}
.movs .mas li{display:grid}
.res-g .tarjeta-p{align-self:start}
.bh b{white-space:nowrap}

/* v3: bloqueos por día de la semana */
.bq-dias{border:0;padding:0;margin:0 0 14px;min-width:0}
.bq-dias legend{font-size:.82rem;font-weight:600;color:var(--tx2);margin-bottom:6px;padding:0}
.bq-sem{display:flex;gap:6px;flex-wrap:wrap}
.bq-sem label{position:relative;cursor:pointer}
.bq-sem input{position:absolute;opacity:0;width:1px;height:1px}
.bq-sem span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);font-weight:700;font-size:.85rem;color:var(--tx2);background:var(--sf)}
.bq-sem input:checked + span{background:var(--ink, #1B2A3A);border-color:var(--ink, #1B2A3A);color:#fff}
.bq-sem input:focus-visible + span{outline:2px solid var(--coral);outline-offset:2px}
.bq-fin{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.85rem;color:var(--tx2);cursor:pointer}
.bq-fin input{width:18px;height:18px;min-height:0;padding:0;margin:0;flex:none;accent-color:var(--ink)}
.aj-bloq .bq-dias{grid-column:1/-1}
.aj-bloq input:disabled{opacity:.45}
/* v3: rótulo del mes que se ve en Resumen */
.mes-rel{align-self:center;font-size:.85rem;font-weight:700;color:var(--tx2);padding:0 6px;white-space:nowrap}
.ok-paso{margin:0 0 6px;font-size:.85rem;font-weight:700;color:var(--teal-d)}
@media (max-width:640px){.mes-rel{display:none}}
