/* Soler Gestión - estilos (basados en el prototipo). */
:root{
  --bg:#FFFFFF; --surface:#FFFFFF; --ink:#2F2A24; --muted:#6F6559; --line:#ECE5D9;
  --accent:#DABC8C; --on-accent:#2F2A24; --accent-strong:#8A6428; --accent-soft:#F7F0E2;
  --bronze:#9A6B2E; --on-bronze:#FFFFFF;
  --good:#3C6B41; --good-soft:#E3EEDF; --bad:#B3261E; --bad-soft:#F8DDD9; --idle:#F1ECE3;
  color-scheme:light;
  --fd:'Bricolage Grotesque',system-ui,sans-serif; --fb:'DM Sans',system-ui,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:14px;line-height:1.45;padding:12px 16px}
h1,h2,h3{font-family:var(--fd);margin:0;text-wrap:balance;font-weight:700}
h3{font-size:17px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:8px 12px;z-index:100}
.skip:focus{left:8px;top:8px}

.app{display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;max-width:1600px;margin:0 auto}
.app.nomenu{grid-template-columns:minmax(0,1fr)}
.app.nomenu .side{display:none}
@media(max-width:860px){.app{grid-template-columns:minmax(0,1fr)}}
.mainwrap{min-width:0}
.side{display:flex;flex-direction:column;gap:6px;position:sticky;top:8px;align-self:start}
@media(max-width:860px){.side{position:static}}
.brand{padding:4px 4px 14px}
.brand b{font-family:var(--fd);font-size:26px;letter-spacing:.02em;display:block;color:var(--accent-strong)}
.brand span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;color:var(--ink);font-weight:500}
.nav .ico{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--idle);color:var(--muted);flex:none}
.nav .ico svg{display:block}
.nav:hover{background:var(--accent-soft)}
.nav[aria-current="page"]{background:var(--accent);color:var(--on-accent)}
.nav[aria-current="page"] .ico{background:rgba(255,255,255,.45);color:var(--on-accent)}
.nav .soon{margin-left:auto;font-size:12px;color:var(--muted)}
a:focus-visible,.nav:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}

.topbar{display:flex;gap:10px;align-items:center;padding-block:8px;margin-bottom:14px;position:sticky;top:0;background:var(--bg);z-index:5;border-bottom:1px solid var(--line);flex-wrap:wrap}
.uchip{font-size:13px;color:var(--muted)}
.uchip b{color:var(--ink)}
.grow{flex:1}
.top{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin-bottom:16px}
.top h1{font-size:30px}
.top p{margin:2px 0 0;color:var(--muted)}
.acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:9px;font:inherit;font-weight:500;display:inline-flex;align-items:center;gap:6px;justify-content:center}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}
.btn.sm{padding:4px 10px;font-size:12px}
.btn.dng{color:var(--bad);border-color:var(--bad)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:hover:not(:disabled){filter:brightness(.96)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
.panel>h3{margin-bottom:10px}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:640px}
th{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
td.n,th.n{font-variant-numeric:tabular-nums;text-align:right}
td.acc{white-space:nowrap;text-align:right}
td.acc .btn{margin-left:4px}
tr.off td{color:var(--muted)}
select,input[type=text],input[type=password],input[type=number],input[type=date],input[type=search]{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 9px;max-width:100%;min-width:0;width:100%}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:700}
.pill.ok{background:var(--good-soft);color:var(--good)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.n{background:var(--idle);color:var(--muted)}.pill.warn{background:var(--accent-soft);color:var(--ink)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;align-items:end}
.toolbar .fg{min-width:150px}
.fg{display:grid;gap:4px;font-size:12px;color:var(--muted);min-width:0}
.fg>span{font-weight:500}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.chk{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink)}
.chk input{width:18px;height:18px;accent-color:var(--accent-strong)}
.empty{display:grid;place-items:center;gap:8px;padding:34px 12px;color:var(--muted);text-align:center}
.alertbar{background:var(--bad-soft);color:var(--bad);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-weight:500}
.infobar{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin-bottom:12px}
.fg .infobar{margin:0}
.esp{color:var(--muted);font-size:13px}
.form{display:grid;gap:12px}
.err{color:var(--bad);font-size:13px;min-height:1em}
.hint{color:var(--muted);font-size:12px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:500;z-index:200;max-width:90vw}

.sedesel{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.sedesel select{font-weight:700;color:var(--ink);width:auto}

.subtabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:14px}
.subtabs button{all:unset;cursor:pointer;padding:9px 14px;font-weight:500;color:var(--muted);border-bottom:3px solid transparent}
.subtabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent);font-weight:700}
.subtabs button:focus-visible{outline:2px solid var(--accent-strong)}

.pgbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--muted)}

.login{min-height:80vh;display:grid;place-items:center}
.loginc{width:min(440px,100%);display:grid;gap:12px}
.loginc h1{font-size:26px}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.modgrid{display:grid;gap:6px}

dialog{border:1px solid var(--line);border-radius:14px;padding:0;color:var(--ink);background:var(--surface);width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 24px)}
dialog::backdrop{background:rgba(47,42,36,.45)}
dialog .dlg{padding:18px;display:grid;gap:14px;overflow:auto}
dialog .dlg-acts{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.tmp{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:22px;letter-spacing:.06em;background:var(--accent-soft);border:1px dashed var(--accent-strong);border-radius:10px;padding:12px;text-align:center;user-select:all;overflow-wrap:anywhere}
.checks{display:grid;gap:6px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:0}
.checks legend{font-size:12px;color:var(--muted);padding:0 4px}

/* Tablas con scroll interno: sombras laterales indican que hay más contenido */
.scrollhint{display:none;margin:0 0 6px;font-size:12px;color:var(--muted)}
.scroll{background:
  linear-gradient(to right,var(--surface) 30%,transparent) left center/40px 100% no-repeat local,
  linear-gradient(to left,var(--surface) 30%,transparent) right center/40px 100% no-repeat local,
  radial-gradient(farthest-side at 0 50%,rgba(47,42,36,.28),transparent) left center/12px 100% no-repeat scroll,
  radial-gradient(farthest-side at 100% 50%,rgba(47,42,36,.28),transparent) right center/12px 100% no-repeat scroll}

/* Listas y parámetros */
.lista{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.lista li{display:flex;gap:6px;align-items:center}
.lista li input{flex:1}
.lista li.fin{color:var(--muted);font-size:12px}
.addrow{display:flex;gap:6px}
.addrow input{flex:1}
.cfgsec{display:grid;gap:12px}

@media(max-width:600px){
  .top h1{font-size:24px}body{padding:8px 12px}
  .btn,.btn.sm{padding:8px 14px;font-size:14px}
  select,input[type=text],input[type=password],input[type=number],input[type=date],input[type=time],input[type=search]{font-size:16px}
  .scrollhint{display:block}
  td.acc{white-space:normal}
}
/* Blancos táctiles de 44 px: celulares, tablets (hasta 1024 px) y cualquier pantalla táctil. Con mouse en escritorio queda compacto. */
@media(max-width:1024px),(pointer:coarse){
  .btn,.btn.sm,.toolbar .btn.sm,a.btn{min-height:44px;min-width:44px}
  .subtabs button{min-height:44px;display:inline-flex;align-items:center}
  .chk{min-height:44px}
  .chk input{width:22px;height:22px}
  select,input[type=text],input[type=password],input[type=number],input[type=date],input[type=time],input[type=search]{min-height:44px}
  .nav{min-height:44px}
  details.panel>summary{min-height:44px;padding-block:10px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Barra permanente de sesion de propietario */
.ownerbar{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;background:var(--ink);color:var(--bg);padding:10px 16px;margin:-12px -16px 12px;font-weight:700;text-align:center}
.ownerbar .sh{display:none}
.ownerbar .btn{background:var(--accent);border-color:var(--accent);color:var(--on-accent);text-decoration:none}
.ownerbar:not([hidden])~.app-wrap .topbar{top:var(--obh,0px)}
tr.prop td{background:var(--accent-soft)}
tr.prop td:first-child{box-shadow:inset 4px 0 0 var(--accent-strong)}
tr.purga td{background:var(--idle)}
tr.purga td:first-child{box-shadow:inset 4px 0 0 var(--muted)}
/* Cartel de ambiente de pruebas */
.testbar{background:var(--accent-soft);color:var(--ink);border:1px dashed var(--accent-strong);border-radius:10px;padding:8px 14px;margin:0 auto 10px;max-width:1600px;text-align:center;font-weight:700}
/* Pantallas de Fase 1 */
.panel.form{margin-bottom:14px}
.pill{white-space:nowrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:grid;gap:2px}
.kpi b{font-family:var(--fd);font-size:26px;font-variant-numeric:tabular-nums}
.kpi span{font-size:12px;color:var(--muted)}
select.est{font-weight:700;width:auto;min-width:130px}
select.est.ok{background:var(--good-soft);color:var(--good)}
select.est.bad{background:var(--bad-soft);color:var(--bad)}
select.est.warn{background:var(--accent-soft)}
select.est.n{background:var(--idle)}
details.panel>summary{cursor:pointer}
.toolbar .btn.sm{align-self:end}
@media(min-width:1025px) and (pointer:fine){.toolbar .btn.sm{min-height:34px}}
.toolbar .fg:first-child{flex:1 1 240px}
.acts .btn{white-space:nowrap}
@media(max-width:600px){.acts .btn{white-space:normal;max-width:100%}}
dl dt{font-size:12px}
input[readonly]{background:var(--idle)}
/* Panel de plataforma */
.pnav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pnav a.nav{display:inline-flex}
.codigo{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;overflow-wrap:anywhere;word-break:break-all;background:var(--accent-soft);border:1px dashed var(--accent-strong);border-radius:10px;padding:10px;user-select:all}
.uso{font-variant-numeric:tabular-nums;white-space:nowrap}
.uso.cerca{font-weight:700;color:var(--bad)}
.obs{white-space:pre-wrap;overflow-wrap:anywhere;min-width:140px}
.sub{display:block;font-size:12px;color:var(--muted)}
@media(max-width:600px){
  .ownerbar{margin:-8px -12px 8px;flex-wrap:nowrap;gap:8px;padding:4px 12px;font-size:13px;justify-content:space-between;text-align:left}
  .ownerbar .btn{padding:4px 12px;white-space:nowrap}
  .ownerbar .lg{display:none}
  .ownerbar .sh{display:inline}
  .ownerbar .btn{min-height:44px}
  a.btn{min-height:44px}
}

/* Agenda: título de sede cuando se ven varias sedes */
tr.sedegrp th{background:var(--accent-soft);color:var(--ink);font-size:12px;letter-spacing:.06em;padding:6px 10px}
th{position:relative}

/* Grilla semanal de horarios del profesional (días en columnas, horas en filas). En pantallas angostas se muestra la lista por día. */
.hora-sel{min-width:0}

/* ===== Hito 3: botón de siguiente paso, menú Más, avisos, llamar al siguiente (prototipo de Romi: docs\prototipos-h3) ===== */
:root{--llamar:#7A5220;--terminar:#2F2A24;--llego:#DABC8C;--amb-soft:#FDF0D0;--amb:#7A4B00}
.sp{cursor:pointer;border:2px solid transparent;border-radius:10px;font:inherit;font-weight:700;font-size:14px;min-height:40px;min-width:104px;padding:6px 14px;display:inline-flex;gap:8px;align-items:center;justify-content:center;white-space:nowrap}
.sp svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sp.llego{background:var(--llego);color:#2F2A24}
.sp.llamar{background:var(--llamar);color:#fff}
.sp.terminar{background:var(--terminar);color:#fff}
.sp:hover:not(:disabled){filter:brightness(1.08)}
.sp[aria-busy=true],.sp:disabled,.sp[aria-disabled=true]{opacity:.6;cursor:progress}
.sp[aria-disabled=true]{cursor:not-allowed}
.sp:focus-visible{outline:3px solid #2F2A24;outline-offset:2px}
.sp.llamar:focus-visible{outline-color:var(--llamar)}
.fin-txt{color:var(--muted);font-size:13px}
.acc2{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.mas-btn{min-height:40px;min-width:44px}
@media(pointer:coarse),(max-width:1024px){.sp{min-height:44px}.mas-btn{min-height:44px}}
.menu-mas{position:fixed;z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(47,42,36,.18);min-width:230px;padding:6px;display:grid;max-width:calc(100vw - 16px)}
.menu-mas button{all:unset;cursor:pointer;padding:10px 12px;min-height:44px;box-sizing:border-box;border-radius:8px;display:flex;align-items:center;color:var(--ink)}
.menu-mas button:hover,.menu-mas button:focus-visible{background:var(--accent-soft)}
.menu-mas button:focus-visible{outline:2px solid var(--accent-strong)}
.menu-mas hr{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}
.menu-mas .dng{color:var(--bad)}
.pill.ll{background:var(--amb-soft);color:var(--amb)}
tr.e-llamado td:first-child{box-shadow:inset 5px 0 0 var(--llamar)}
tr.e-espera td:first-child{box-shadow:inset 5px 0 0 var(--accent)}
tr.e-hecho td{color:var(--muted)}
.toast.undo{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 16px;overflow:hidden;bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.toast.undo button{all:unset;cursor:pointer;color:#DABC8C;font-weight:700;text-decoration:underline;padding:10px 14px;min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center}
.toast.undo button:focus-visible{outline:3px solid #fff}
.toast.undo .t{position:absolute;left:0;bottom:0;height:3px;background:#DABC8C;width:100%;animation:cuenta 6s linear forwards}
@keyframes cuenta{to{width:0}}
@media(prefers-reduced-motion:reduce){.toast.undo .t{animation:none!important;width:100%}}
.msg{border-radius:12px;padding:12px 14px;display:grid;gap:8px;max-width:640px;margin:6px 0 10px}
.msg.ambar{background:var(--amb-soft);color:#2F2A24;border:1px solid #C9A25A}
.msg.rojo{background:var(--bad-soft);color:var(--bad)}
.msg.info{background:var(--accent-soft)}
.siguiente{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px;position:sticky;top:48px;z-index:4;background:var(--bg);padding-block:6px}
.siguiente .sp{min-height:56px;font-size:18px;padding:8px 22px}
.siguiente .info{color:var(--muted)}
.sin{font-weight:700;color:var(--amb)}
/* Agenda en tarjetas en celular (hasta 600 px): sin deslizar de costado, con el botón principal a lo ancho */
@media(max-width:600px){
  .scrollwrap:has(table.agenda) .scrollhint{display:none}
  table.agenda{min-width:0!important}
  table.agenda thead{display:none}
  table.agenda tbody,table.agenda tr{display:block}
  table.agenda tr:not(.sedegrp){display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px;border:1px solid var(--line);border-radius:14px;margin-bottom:10px}
  table.agenda tr.sedegrp{display:block}
  table.agenda tr.sedegrp th{display:block}
  table.agenda td{border:0;padding:0;display:block;min-width:0}
  table.agenda td.c-hora{font-family:var(--fd);font-size:26px;grid-column:1;grid-row:1}
  table.agenda td.c-estado{grid-column:2;grid-row:1;justify-self:end;text-align:right}
  table.agenda td.c-pac{grid-column:1/-1;grid-row:2;font-size:16px}
  table.agenda td.c-prof{grid-column:1;grid-row:3;color:var(--muted)}
  table.agenda td.c-cons{grid-column:2;grid-row:3;justify-self:end}
  table.agenda td.c-cons::before{content:'Consul. ';color:var(--muted)}
  table.agenda td.c-trat,table.agenda td.c-obs{display:none}
  table.agenda td.c-acc{grid-column:1/-1;grid-row:4;margin-top:6px}
  table.agenda .acc2{justify-content:stretch;flex-wrap:nowrap}
  table.agenda .acc2 .sp{flex:1;min-height:48px}
  table.agenda td.c-acc{white-space:normal}
}

/* ===== Hito 3: Sala de espera, indicador de monitor y enlaces ===== */
.sala{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
@media(max-width:900px){.sala{grid-template-columns:1fr}}
.fila-e{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--line);min-height:56px}
.fila-e[aria-selected=true]{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent-strong)}
.fila-e .hora{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px;text-align:right;min-width:62px}
.fila-e .n{font-weight:700;font-size:16px;display:block}
.fila-e:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}
.prev{background:#1D1A16;color:#FBF6EC;border-radius:12px;aspect-ratio:16/9;padding:14px;display:grid;grid-template-columns:1.4fr 1fr;gap:10px;font-size:12px;position:relative;overflow:hidden}
.prev.centrado{display:grid;place-content:center;text-align:center}
.prev b.n3{font:700 64px/1 var(--fd);color:#DABC8C;display:block}
.prev b.n3.chica{font-size:26px}
.prev .c{border:2px solid #DABC8C;border-radius:10px;padding:8px}
.prev .cons{letter-spacing:.12em;color:#CFC6B6}
.prev .nom{font:700 24px var(--fd)}
.prev .prof{color:#CFC6B6;font-size:13px}
.prev .ant{margin-top:6px;color:#CFC6B6}
.prev .lst div{border-bottom:1px solid #4A4238;padding:3px 0;font-size:13px}
.prev .lst .tt{color:#DABC8C;letter-spacing:.14em;font-weight:700}
.prev .mini,.prev .mini2{position:absolute;right:8px;bottom:6px;color:#CFC6B6;font-size:11px}
.prev .mini2{position:static;margin-top:6px}
.prev:fullscreen{aspect-ratio:auto;font-size:2.2vw;padding:3vw}
.nota{font-size:13px;color:var(--muted);margin:6px 0 0}
.ind-fila{margin-bottom:6px}
.semaforo{display:inline-flex;align-items:center;gap:8px;font-weight:700;border-radius:99px;padding:3px 12px 3px 8px}
.semaforo i{width:14px;height:14px;display:inline-block;flex:none}
.semaforo.v{background:var(--good-soft);color:var(--good)}.semaforo.v i{background:var(--good);border-radius:50%}
.semaforo.a{background:var(--amb-soft);color:var(--amb)}.semaforo.a i{background:#B8730A;border-radius:3px;transform:rotate(45deg) scale(.85)}
.semaforo.r{background:var(--bad-soft);color:var(--bad)}.semaforo.r i{background:var(--bad);clip-path:polygon(50% 0,100% 100%,0 100%)}
.semaforo.g{background:var(--idle);color:var(--muted)}.semaforo.g i{background:var(--muted);border-radius:50%}
.mon-row{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.mon-row .acts{justify-content:flex-end}
.enlace-nuevo{display:grid;gap:10px}
.codigo-enlace{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;overflow-wrap:anywhere;word-break:break-all;background:var(--accent-soft);border:1px dashed var(--accent-strong);border-radius:10px;padding:10px;user-select:all}
.kbd{font:12px ui-monospace,Consolas,monospace;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 6px;background:#fff}

/* ===== Fase 2 / Hito 1: Caja y cobrar (prototipo de Romi: docs\prototipos-f2) ===== */
.f2{--bad:#9C2018}
.f2 .btn,.f2 .btn.sm,.f2 .chipb,.f2 select,.f2 input[type=text],.f2 input[type=date]{min-height:44px}
.btn.xl{min-height:56px;font-size:18px;padding:10px 24px;font-weight:700}
.btn[aria-busy=true]{opacity:.7;cursor:progress}
.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.f2 .btn:focus-visible,.chipb:focus-visible,.mini-btn:focus-visible,.link:focus-visible,.res button:focus-visible{outline:3px solid #2F2A24;outline-offset:2px}
.estadocaja{display:inline-flex;align-items:center;gap:8px;font-weight:700;border-radius:99px;padding:4px 14px 4px 10px}
.estadocaja i{width:14px;height:14px;display:inline-block;flex:none}
.estadocaja.ab{background:var(--good-soft);color:var(--good)}.estadocaja.ab i{background:var(--good);border-radius:50%}
.estadocaja.ce{background:var(--idle);color:var(--muted)}.estadocaja.ce i{background:var(--muted);border-radius:3px}
.estadocaja.vi{background:var(--amb-soft);color:var(--amb)}.estadocaja.vi i{background:#B8730A;transform:rotate(45deg) scale(.8);border-radius:3px}
.msg{max-width:680px}
.msg.rojo b,.msg.rojo span{color:var(--bad)}
.msg.ok{background:var(--good-soft);color:var(--good)}
.msg .acts{display:flex;gap:8px;flex-wrap:wrap}
.cobrar{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
@media(max-width:900px){.cobrar{grid-template-columns:minmax(0,1fr)}}
.buscar{display:grid;gap:8px}
.buscar input{font-size:18px;min-height:48px;padding:8px 12px}
.res{display:grid;gap:6px;margin-top:4px}
.res:empty{display:none}
.res button{all:unset;cursor:pointer;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:48px;display:flex;justify-content:space-between;gap:10px;align-items:center;overflow-wrap:anywhere}
.res button:hover,.res button[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent)}
.pac-elegido{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--accent-soft);border-radius:12px;padding:10px 12px;min-width:0}
.pac-elegido b{font-family:var(--fd);font-size:22px;overflow-wrap:anywhere}
.linea{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:12px;margin-top:10px;background:var(--surface)}
.linea .cab{display:flex;justify-content:space-between;align-items:center;gap:8px}
.grupo{display:grid;gap:6px}
.grupo>legend,.grupo>.lg{font-size:12px;font-weight:500;color:var(--muted);padding:0}
fieldset.grupo{border:0;margin:0;padding:0;min-width:0}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chipb{cursor:pointer;border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:6px 14px;font:inherit;font-weight:500;display:inline-flex;align-items:center;gap:6px;min-width:64px;justify-content:center}
.chipb[aria-pressed=true]{background:#2F2A24;border-color:#2F2A24;color:#fff;font-weight:700}
.chipb[aria-pressed=true]::before{content:"\2713";font-weight:700}
.monto{display:flex;align-items:center;gap:8px;border:2px solid var(--line);border-radius:12px;padding:0 14px;background:#fff;min-height:64px}
.monto:focus-within{border-color:#2F2A24}
.monto span{font-size:26px;color:var(--muted);font-family:var(--fd)}
.monto input{border:0;outline:0;font-size:32px;font-family:var(--fd);font-weight:700;min-height:56px;padding:0;background:transparent;font-variant-numeric:tabular-nums;width:100%}
.monto input:focus-visible{outline:0}
.resumen{position:sticky;top:64px;display:grid;gap:10px}
.resumen .tot{font-family:var(--fd);font-size:36px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.resumen dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:14px}
.resumen dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.link{all:unset;cursor:pointer;color:var(--accent-strong);font-weight:700;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center;padding:0 4px}
.barra-movil{display:none}
.toast.est{position:static;transform:none;display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:10px 16px;margin:6px 0;max-width:100%;overflow-wrap:anywhere}
.toast.est .btn{color:#fff;border-color:#fff;background:transparent}
.exito:empty{display:none}
@media(max-width:700px){
 .resumen{position:static}
 .resumen .btn.xl{display:none}
 .barra-movil{display:flex;position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));gap:10px;align-items:center;margin-top:12px;z-index:3}
 .barra-movil .tt{font-family:var(--fd);font-size:22px;font-weight:700;line-height:1}
 .barra-movil .tt small{display:block;font:500 12px var(--fb);color:var(--muted)}
 .barra-movil .btn{flex:1;min-height:52px;font-size:17px}
 .f2 .acts .btn{flex:1}
}
.cfg-caja{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:12px;margin-bottom:12px}
.fila-cfg{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.fila-cfg>*:nth-child(n+3){grid-column:1/-1}
.fila-cfg input[type=text]{font-size:16px}
.fila-cfg .uso{font-size:13px;color:var(--muted)}
.fila-cfg.off input[type=text]{color:var(--muted)}
.fila-cfg>div:last-child{display:flex;gap:10px;align-items:center;justify-content:flex-start;flex-wrap:wrap}
.orden{display:flex;flex-direction:row}
.mini-btn{all:unset;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border-radius:8px;font-size:14px}
.mini-btn:hover{background:var(--accent-soft)}
.mini-btn[aria-disabled=true]{opacity:.3;cursor:default}
.sw{display:inline-flex;align-items:center;gap:8px;cursor:pointer;min-height:44px}
.sw input{width:22px;height:22px;accent-color:#3C6B41}
.defecto{font-size:12px;font-weight:700;background:var(--accent-soft);border-radius:99px;padding:2px 10px;white-space:nowrap}
.dlr{margin:0;display:grid;grid-template-columns:1fr auto;gap:2px 12px}
.dlr dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
table.tc{min-width:0}
table.tc tfoot th,table.tc tfoot td{border-top:2px solid var(--line)}
@media print{
 #root,.toast,.skip,noscript{display:none!important}
 dialog{position:static!important;border:0;width:100%;max-height:none}
 dialog::backdrop{display:none}
 dialog .dlg-acts{display:none}
}
.f2 .dlg-acts .btn{white-space:normal;text-align:center}
.f2 table.tc td,.f2 table.tc th{overflow-wrap:anywhere}
dialog .dlg{min-width:0}

/* ===== Fase 2 / Hito 2: Corregir, Pagos en la ficha y edición simultánea (prototipo de Romi: docs\prototipos-f2) ===== */
.pill.cor{background:var(--idle);color:var(--ink);border:1px solid var(--line)}
.pill.ed{background:var(--accent-soft);color:var(--ink)}
tr.corr td{color:var(--muted)}
.tach{text-decoration:line-through;text-decoration-thickness:1.5px}
.vinculo{display:block;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.vinculo b{color:var(--ink)}
.acc-dos{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}
.corregir{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media(max-width:760px){.corregir{grid-template-columns:minmax(0,1fr)}}
.antes-ahora{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:14px;margin:0}
.antes-ahora dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.antes-ahora.cambio dd:last-child{font-weight:700}
.motivos{display:flex;gap:6px;flex-wrap:wrap}
.chip-m{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:4px 14px;min-height:44px;font:inherit}
.chip-m:hover{background:var(--accent-soft)}
.chip-m:focus-visible{outline:3px solid #2F2A24;outline-offset:2px}
dialog.ancho{width:min(860px,calc(100vw - 24px))}
dialog.ancho .dlg{overflow:visible}
.sin-cambio{font-size:13px;color:var(--muted)}
.tot-periodo{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;background:var(--accent-soft);border-radius:12px;padding:10px 14px;margin:0 0 12px}
.tot-periodo .tot{font-family:var(--fd);font-size:30px;font-weight:700;font-variant-numeric:tabular-nums}
.tarjeta-pago{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:4px;background:var(--surface);min-width:0;overflow-wrap:anywhere}
.tarjeta-pago.off{background:var(--idle)}
.tarjeta-pago .l1{display:flex;justify-content:space-between;gap:8px;font-weight:700}
.tarjeta-pago h4{margin:0;font:inherit;font-weight:700}
.conflicto{border-radius:12px;background:var(--amb-soft);border:1px solid #C9A25A;padding:10px 14px;display:grid;gap:8px;margin:4px 0 8px;color:#2F2A24}
.conflicto .acts{display:flex;gap:8px;flex-wrap:wrap}
.fila-cfg [aria-invalid=true]{border-color:#7A4B00;border-width:2px}
.pgs-cab{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.pgs-cab .fg{min-width:150px;flex:0 1 220px}
@media(max-width:700px){
 dialog.ancho{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:0}
 .corregir .resumen{position:static}
 .pgs-cab .fg{flex:1 1 100%}
 /* Movimientos: cada cobro es una tarjeta */
 .cobros-wrap .scrollhint{display:none!important}
 .cobros-wrap table.cobros{min-width:0!important}
 .cobros-wrap table.cobros thead{display:none}
 .cobros-wrap table.cobros,.cobros-wrap table.cobros tbody{display:block}
 .cobros-wrap table.cobros tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"pac pac tot" "est est est" "hora nro nro" "det det det" "acc acc acc";gap:2px 10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--surface)}
 .cobros-wrap table.cobros tr.off,.cobros-wrap table.cobros tr.corr{background:var(--idle)}
 .cobros-wrap table.cobros td{display:block;border:0;padding:0;min-width:0}
 .cobros-wrap table.cobros td.c-pac{grid-area:pac;font-weight:700}
 .cobros-wrap table.cobros td.c-est{grid-area:est}
 .cobros-wrap table.cobros td.c-est:empty{display:none}
 .cobros-wrap table.cobros td.c-tot{grid-area:tot;font-weight:700;text-align:right}
 .cobros-wrap table.cobros td.c-hora{grid-area:hora;color:var(--muted)}
 .cobros-wrap table.cobros td.c-nro{grid-area:nro;color:var(--muted)}
 .cobros-wrap table.cobros td.c-det{grid-area:det}
 .cobros-wrap table.cobros td.c-acc{grid-area:acc;margin-top:6px}
 .cobros-wrap table.cobros td.c-acc:empty{display:none}
 .cobros-wrap table.cobros td.c-acc .acc-dos{justify-content:stretch}
 .cobros-wrap table.cobros td.c-acc .btn{flex:1}
}
.cobros tr:focus-visible,.cobros tr:focus{outline:3px solid #2F2A24;outline-offset:-3px}

/* ===== Fase 2 / Hito 3: Liquidar, Ajustes, Mi liquidación, imprimibles y Resumen de correcciones (prototipo de Romi: docs\prototipos-f2) ===== */
:root{--ef:#2F2A24;--ef-on:#fff}
textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 9px;width:100%;min-width:0;max-width:100%;resize:vertical}
.f2 textarea{min-height:88px}
/* regla del dueño: cada dato en una sola línea */
table.tc th,table.tc td,.hoja th,.hoja td{white-space:nowrap}
table.tc td .sub{display:inline;margin-left:8px}
td.corto{max-width:22ch;overflow:hidden;text-overflow:ellipsis}
.hoja td.libre,table.tc tr.det-fila td{white-space:normal}
.liq-lista{display:grid;gap:10px}
.liq-fila{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:12px 14px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto;gap:10px 18px;align-items:center}
.liq-fila.viejo{border-color:#C9A25A;background:#FFFBF0}
.liq-fila.neg{background:var(--idle)}
.liq-quien b{font-family:var(--fd);font-size:18px;display:block}
.liq-quien .sub{display:block;font-size:12px;color:var(--muted)}
.liq-medios{display:grid;gap:2px;font-size:13px;margin:0}
.liq-medios div{display:flex;justify-content:space-between;gap:10px}
.liq-medios dt{color:var(--muted)}.liq-medios dd{margin:0;font-variant-numeric:tabular-nums}
.liq-medios .ef dt,.liq-medios .ef dd{color:var(--ink);font-weight:700}
.liq-quien .sub,.liq-medios dt,.liq-medios dd,.liq-neto .lbl{white-space:nowrap}
.liq-neto{text-align:right;display:grid;gap:6px;justify-items:end}
.liq-neto .lbl{font-size:12px;color:var(--muted)}
.liq-neto .monto-g{font-family:var(--fd);font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap}
.liq-neto .monto-g.neg{color:var(--bad)}
.liq-pie{grid-column:1/-1;display:flex;gap:6px 16px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:8px}
.liq-pie:empty{display:none}
.liq-pie b{color:var(--ink)}
.tag-v{display:inline-flex;align-items:center;gap:6px;background:var(--amb-soft);color:var(--amb);border:1px solid #C9A25A;border-radius:99px;padding:2px 10px;font-weight:700;font-size:12px;margin-top:2px;white-space:nowrap}
.tag-v::before{content:"";width:9px;height:9px;background:#B8730A;transform:rotate(45deg);display:inline-block}
.tag-rojo{display:inline-flex;align-items:center;gap:6px;background:var(--bad-soft);color:var(--bad);border-radius:99px;padding:2px 10px;font-weight:700;font-size:12px;margin-top:2px;white-space:nowrap}
.tag-rojo::before{content:"!";font-weight:700}
@media(max-width:860px){
 .liq-fila{grid-template-columns:minmax(0,1fr)}
 .liq-neto{text-align:left;justify-items:stretch}
 .liq-neto .btn{width:100%;min-height:52px;font-size:17px}
}
.resumen-total{display:flex;gap:12px 28px;flex-wrap:wrap;background:var(--accent-soft);border-radius:12px;padding:10px 14px;margin:0 0 12px;align-items:baseline}
.resumen-total .tot{font-family:var(--fd);font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}
.resumen-total small{display:block;font-size:12px;color:var(--muted)}
tr.nosuma td{color:var(--muted)}
dialog.conf-liq{width:min(560px,calc(100vw - 24px))}
.conf-liq .quien{font-size:15px;margin:0}
.conf-liq .quien b{font-family:var(--fd);font-size:20px}
.ef-caja{background:var(--ef);color:var(--ef-on);border-radius:14px;padding:14px 16px;display:grid;gap:2px}
.ef-caja .l{font-size:14px;font-weight:500}
.ef-caja .v{font-family:var(--fd);font-size:40px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.05}
.ef-caja.cero{background:var(--idle);color:var(--ink);border:1px solid var(--line)}
.neto-g{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-top:2px solid var(--ink);padding-top:8px}
.neto-g b{font-family:var(--fd);font-size:26px;font-variant-numeric:tabular-nums}
.irrev{border:2px solid var(--bad);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink);display:flex;gap:10px;align-items:center}
.irrev svg{flex:none;width:22px;height:22px;color:var(--bad)}
.irrev b{color:var(--bad)}
.btn.liq{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700;min-height:52px;font-size:17px}
.btn.liq:focus-visible{outline:3px solid var(--accent-strong);outline-offset:2px}
.dlg-acts.dos{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
@media(max-width:560px){.dlg-acts.dos{grid-template-columns:1fr}.dlg-acts.dos .btn.liq{order:-1}.ef-caja .v{font-size:34px}}
/* Ajustes */
.aj-form{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
@media(max-width:860px){.aj-form{grid-template-columns:minmax(0,1fr)}}
.signo{display:inline-grid;grid-template-columns:1fr 1fr;border:2px solid var(--line);border-radius:12px;overflow:hidden}
.signo button{all:unset;cursor:pointer;box-sizing:border-box;min-height:48px;padding:6px 16px;text-align:center;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px}
.signo button[aria-pressed=true]{background:var(--ink);color:#fff}
.signo button[aria-pressed=true]::before{content:"\2713"}
.signo button[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.signo button:focus-visible{outline:3px solid var(--accent-strong);outline-offset:-3px}
@media(max-width:560px){.signo{display:grid}}
.efecto{border-left:5px solid var(--ink);background:var(--accent-soft);border-radius:0 12px 12px 0;padding:10px 14px;font-size:15px;margin:0}
.efecto.menos{border-left-color:var(--bad)}.efecto.mas{border-left-color:var(--good)}
.efecto b{font-family:var(--fd);font-size:20px}
.contador{font-size:12px;color:var(--muted);text-align:right}
.contador.mal{color:var(--bad);font-weight:700}
.par-av{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}
.par-av .caja{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.par-av .caja .l{font-size:12px;color:var(--muted)}
.par-av .caja b{font-family:var(--fd);font-size:20px;font-variant-numeric:tabular-nums}
.par-av .caja.men b{color:var(--bad)}.par-av .caja.mas b{color:var(--good)}
.par-av .fl{font-size:24px;color:var(--muted)}
@media(max-width:560px){.par-av{grid-template-columns:minmax(0,1fr)}.par-av .fl{transform:rotate(90deg);justify-self:center}}
.pill.par{background:var(--idle);color:var(--ink);border:1px solid var(--line)}
.pill.liqd{background:var(--ink);color:#fff}
.pill.pend{background:var(--amb-soft);color:var(--amb)}
.neg-t{color:var(--bad);font-weight:700}.pos-t{color:var(--good);font-weight:700}
/* Mi liquidación */
.ml-pend{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:14px}
.ml-pend .k{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.ml-pend .k.g{background:var(--accent-soft);border-color:var(--accent)}
.ml-pend .k span{font-size:12px;color:var(--muted);display:block}
.ml-pend .k b{font-family:var(--fd);font-size:30px;font-variant-numeric:tabular-nums;line-height:1.1}
.ml-hist{display:grid;gap:8px}
.ml-hist details{border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ml-hist summary{list-style:none;cursor:pointer;padding:10px 14px;min-height:56px;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.ml-hist summary::-webkit-details-marker{display:none}
.ml-hist summary .t{font-family:var(--fd);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.ml-hist details[open]>summary{border-bottom:1px solid var(--line);background:var(--accent-soft);border-radius:12px 12px 0 0}
.ml-hist .cuerpo{padding:10px 14px;display:grid;gap:10px}
/* Resumen de correcciones */
.marca{display:inline-flex;align-items:center;gap:6px;background:var(--amb-soft);color:var(--amb);border:1px solid #C9A25A;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:700;white-space:nowrap}
.marca::before{content:"\25B2";font-size:10px}
tr.marcada td:first-child{box-shadow:inset 4px 0 0 #B8730A}
.rc-det{background:var(--accent-soft)}
.rc-det td{padding:10px 14px}
.umbral{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:10px 0 0}
/* tablas que en celular pasan a tarjetas (una línea por dato) */
.tt-wrap .scroll{overflow-x:auto}
@media(max-width:700px){
 .tt-wrap .scroll{overflow:visible}
 table.tt{min-width:0}
 table.tt thead,table.tt caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 table.tt,table.tt tbody,table.tt tfoot{display:block}
 table.tt tr{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--surface)}
 table.tt td,table.tt th{display:block;border:0;padding:0;min-width:0}
 table.tt td:empty{display:none}
 table.tt td.acc{flex:1 1 100%;display:flex;gap:6px;margin-top:6px;text-align:left}
 table.tt td.acc .btn{flex:1;margin:0}
 table.tt tr.det-fila{display:block;background:var(--accent-soft)}
 table.tt tr.det-fila td{display:block}
 table.tt tr.nosuma{background:var(--idle)}
 table.tt tr.marcada{border-color:#C9A25A;background:#FFFBF0}
}
/* Imprimibles (pantalla: hoja A4) */
dialog.imprimible{width:min(230mm,calc(100vw - 24px))}
.hoja{width:210mm;max-width:100%;margin:12px auto;background:#fff;color:#000;border:1px solid var(--line);box-shadow:0 2px 14px rgba(47,42,36,.12);padding:14mm;font-size:12pt;line-height:1.35;position:relative;overflow:hidden}
.hoja h1{font-size:20pt;margin:0}
.hoja h2{font-size:13pt;margin:14px 0 4px;font-family:var(--fd)}
.hoja .enc{display:flex;justify-content:space-between;gap:10px;border-bottom:2px solid #000;padding-bottom:6px;margin-bottom:8px}
.hoja .enc small{display:block;font-size:10pt}
.hoja table{min-width:0;font-size:11pt}
.hoja th{color:#000;border-bottom:1.5px solid #000;font-size:9pt}
.hoja td{border-bottom:1px solid #999;padding:4px 8px}
.hoja tfoot td,.hoja tfoot th{border-top:2px solid #000;border-bottom:0;font-weight:700;font-size:11pt;text-transform:none;letter-spacing:0}
.hoja .tablewrap{overflow-x:auto}
.hoja .dos-col{display:grid;grid-template-columns:1fr 1fr;gap:6mm}
.hoja .datos{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0;font-size:11pt}
.hoja .datos dt{color:#333;font-weight:700}.hoja .datos dd{margin:0}
.hoja .efectivo-box{border:3px solid #000;padding:8px 12px;margin:10px 0;display:flex;justify-content:space-between;align-items:baseline;font-weight:700;font-size:13pt}
.hoja .efectivo-box b{font-size:20pt}
.hoja .firmas{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:12mm;margin-top:22mm}
.hoja .firmas div{border-top:1px solid #000;padding-top:3px;font-size:10pt;text-align:center}
.hoja .pie{margin-top:8mm;font-size:9pt;color:#333;border-top:1px solid #999;padding-top:4px}
.sello-repr{display:inline-block;border:3px solid #000;padding:2px 10px;font-weight:700;letter-spacing:.08em;font-size:12pt}
.aviso-hoja{border:2px solid #000;padding:6px 10px;margin:8px 0;font-weight:700;font-size:11pt}
.marca-agua{display:none}
.hoja.demo .marca-agua{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center;font-family:var(--fd);font-weight:700;font-size:64pt;letter-spacing:.05em;color:rgba(0,0,0,.09);transform:rotate(-28deg);text-align:center;line-height:1}
.demo-banda{display:none;border:2px dashed #000;text-align:center;font-weight:700;letter-spacing:.2em;padding:3px;margin-bottom:6px;font-size:11pt}
.hoja.demo .demo-banda{display:block}
.barra-imp{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
@media(max-width:700px){.hoja{padding:12px;font-size:11pt}.hoja .dos-col,.hoja .firmas{grid-template-columns:1fr}.hoja table{font-size:10pt}}
@media print{
 @page{size:A4;margin:12mm}
 html,body{background:#fff!important;padding:0!important;max-width:none!important}
 dialog.imprimible{width:auto;max-width:none;overflow:visible}
 dialog.imprimible .dlg{padding:0;overflow:visible}
 dialog.imprimible .dlg>h2{display:none}
 .hoja{width:auto;margin:0;border:0;box-shadow:none;padding:0;font-size:11pt;overflow:visible}
 .hoja tr,.hoja .firmas,.hoja .efectivo-box{break-inside:avoid}
 .hoja thead{display:table-header-group}
 .hoja *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .hoja.demo .marca-agua{color:rgba(0,0,0,.12)}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.det-fila .dlr dt{white-space:nowrap}
@media print{body:has(dialog.imprimible[open]) dialog:not(.imprimible){display:none!important}}

/* ===== Feedback 1, paquete P1 (Agenda): barra de filtros, MultiSelect, seis estados, menú Más, formulario de turno (prototipo de Romi: docs\prototipos-f3) ===== */
:root{--cancel:#2F2A24}
.link{min-height:44px}
.leyenda{font-size:12px;color:var(--muted)}
.leyenda:empty{display:none}

/* Estados: siempre ícono + texto + color */
.pill.est{display:inline-flex;align-items:center;gap:5px;font-size:13px}
.pill .ic{width:14px;height:14px;flex:none}
.pill.e-prog{background:var(--idle);color:var(--muted)}
.pill.e-ing{background:var(--accent-soft);color:var(--ink);border:1px solid var(--accent)}
.pill.e-cur{background:var(--amb-soft);color:var(--amb)}
.pill.e-ok{background:var(--good-soft);color:var(--good)}
.pill.e-aus{background:var(--bad-soft);color:#9C2018}
.pill.e-can{background:#fff;color:var(--cancel);border:1px dashed var(--muted)}
.pill.e-otro{background:var(--idle);color:var(--ink)}
.hs{color:var(--muted);font-size:13px;margin-left:6px;white-space:nowrap}
tr.f-fin td{color:var(--muted)}
tr.f-aus td:first-child{box-shadow:inset 5px 0 0 #9C2018}
tr.f-can td:first-child{box-shadow:inset 5px 0 0 var(--muted)}
tr.f-can td.c-pac b{font-weight:500}

/* Encabezado con la jornada a la derecha */
.top .acts{gap:10px}
.jor-acc{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* Barra de filtros: una sola fila */
.filtros{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;margin:0 0 6px}
.filtros .fg{min-width:0}
.filtros .fecha{display:flex;gap:4px;align-items:flex-end}
.filtros .fecha .fg{width:142px}
.filtros .btn{min-height:44px}
.filtros .fecha .btn{min-width:44px;padding:0 10px}
.filtros .q{flex:1 1 150px;min-width:140px}
.filtros .ms{flex:1 1 130px;min-width:130px;max-width:190px}
.filtros input[type=search],.filtros input[type=date]{min-height:44px;font-size:15px}
.filtros-pie{display:flex;gap:12px;align-items:center;margin:0 0 10px;font-size:13px;color:var(--muted);min-height:24px}
.mas-filtros-b{display:none!important}

/* Selección múltiple (patrón único para todos los filtros de lista) */
.ms{position:relative;display:grid;gap:4px;font-size:12px;color:var(--muted)}
.ms>.lbl{font-weight:500}
.ms-btn{all:unset;box-sizing:border-box;cursor:pointer;min-height:44px;width:100%;border:1px solid #8C8173;border-radius:8px;background:#fff;color:var(--ink);font:15px var(--fb);padding:0 10px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.ms-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-btn svg{width:16px;height:16px;flex:none}
.ms-btn[aria-expanded=true]{border-color:var(--ink);background:var(--accent-soft)}
.ms-btn.act{border-color:var(--ink);font-weight:700}
.ms-btn:disabled{opacity:.6;cursor:progress}
.ms-btn:focus-visible,.ms-op:focus-within,.dia:focus-visible,.hora:focus-visible{outline:3px solid #2F2A24;outline-offset:2px}
.ms-panel{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-width:320px;max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(47,42,36,.18);padding:6px;display:grid;color:var(--ink);font-size:15px}
.ms-panel[hidden]{display:none}
.ms-titulo{display:none}
.ms-vacio{margin:0;padding:10px 12px;color:var(--muted)}
.ms-op{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 10px;border-radius:8px;cursor:pointer}
.ms-op:hover{background:var(--accent-soft)}
.ms-op input{width:22px;height:22px;accent-color:#2F2A24;flex:none;margin:0}
.ms-op .ic{width:16px;height:16px;flex:none}
.ms-todos{border-bottom:1px solid var(--line);border-radius:8px 8px 0 0;font-weight:700;margin-bottom:4px}
.ms-pie{display:none;gap:8px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:4px;padding-top:6px}
.ms-fondo{display:none}
@media(max-width:600px){
 .ms.abierto .ms-fondo{display:block;position:fixed;inset:0;background:rgba(47,42,36,.45);z-index:19}
 .ms.abierto .ms-panel{position:fixed;left:0;right:0;bottom:0;top:auto;max-width:none;width:auto;border-radius:16px 16px 0 0;padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));max-height:70vh;overflow:auto;z-index:20}
 .ms.abierto .ms-pie{display:flex}
 .ms.abierto .ms-titulo{display:block;margin:2px 4px 6px;font:700 16px var(--fb)}
 .ms-op{min-height:48px}
 /* Filtros: fecha y paciente siempre a la vista; estado, consultorio y profesional plegados */
 .filtros{display:grid;grid-template-columns:1fr 1fr}
 .filtros>*{grid-column:1/-1;min-width:0;flex:none}
 .filtros .fecha{display:grid;grid-template-columns:44px 1fr 44px auto;align-items:end;gap:4px;order:0}
 .filtros .fecha .fg{width:auto}
 .filtros .q{order:1}
 .mas-filtros-b{display:inline-flex!important;order:2;justify-content:space-between;width:100%}
 .filtros .ms{grid-column:auto;order:3}
 .filtros .ms.completo{grid-column:1/-1}
 .filtros:not(.ver-extra) .extra{display:none}
}

/* Tabla de la agenda */
table.agenda3 th,table.agenda3 td{vertical-align:middle}
table.agenda3 th.c-cons,table.agenda3 td.c-cons{width:64px;min-width:64px;max-width:64px;text-align:center;padding-left:6px;padding-right:6px}
table.agenda3 td.c-cons{font-weight:700;font-variant-numeric:tabular-nums}
table.agenda3 th abbr{text-decoration:none;cursor:help}
table.agenda3 td.una{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.agenda3 td.dash{color:var(--muted)}
table.agenda3 td.c-pac,table.agenda3 td.c-est{white-space:nowrap}
table.agenda3 .sp,table.agenda3 .mas-btn{min-height:44px}
table.agenda3 .acc2{flex-wrap:nowrap}
@media(min-width:601px){table.agenda3 th,table.agenda3 td{padding-left:8px;padding-right:8px}}
.mas-btn{border:1px solid #8C8173}

/* Menú Más (con submenú «Cambiar estado»); en celular sube desde abajo */
.menu-fondo,.menu-mas .mm-titulo{display:none}
.menu-mas .sub{display:grid;border-left:3px solid var(--accent);margin:2px 0 4px 10px;padding-left:4px;font-size:inherit;color:inherit}
.menu-mas .sub[hidden]{display:none}
.menu-mas .sub .ic{width:14px;height:14px;margin-right:8px;flex:none}
.menu-mas button[aria-haspopup]{justify-content:space-between;gap:10px}
.menu-mas .actual{font-weight:700}
.menu-mas .actual::after{content:"actual";margin-left:auto;padding-left:12px;font-size:12px;color:var(--muted);font-weight:500}
.menu-mas button:focus-visible{outline:3px solid #2F2A24;outline-offset:-3px}
@media(max-width:600px){
 .menu-fondo{display:block;position:fixed;inset:0;background:rgba(47,42,36,.45);z-index:59}
 .menu-mas{left:0!important;right:0!important;top:auto!important;bottom:0!important;max-width:none;border-radius:16px 16px 0 0;max-height:70vh;overflow:auto;padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px))}
 .menu-mas .mm-titulo{display:block;margin:2px 4px 6px;font:700 16px var(--fb)}
 .menu-mas button{min-height:48px}
}

/* Formulario de turno: días y horas del horario del profesional */
.fturno{display:grid;gap:14px;max-width:760px}
.fturno .fg>span,.fturno legend{font-size:12px;font-weight:500;color:var(--muted)}
fieldset.grp{border:0;margin:0;padding:0;min-width:0;display:grid;gap:6px}
fieldset.grp legend{padding:0}
.sel-turno{display:grid;gap:14px}
.dias,.horas{display:flex;flex-wrap:wrap;gap:6px}
.dia,.hora{box-sizing:border-box;cursor:pointer;border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;font:500 15px var(--fb);padding:4px 12px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;min-height:44px;line-height:1.2}
.dia small{font-size:12px;color:var(--muted);font-weight:500}
.dia[aria-pressed=true],.hora[aria-pressed=true]{background:#2F2A24;border-color:#2F2A24;color:#fff;font-weight:700}
.dia[aria-pressed=true] small{color:#fff}
.dia[aria-pressed=true]::before,.hora[aria-pressed=true]::before{content:"\2713 ";font-weight:700}
.dias .btn.sm,.horas .btn.sm{min-height:44px}
.cons-auto{display:flex;align-items:center;gap:10px;min-height:44px;background:var(--accent-soft);border-radius:10px;padding:0 12px}
.cons-auto b{font-family:var(--fd);font-size:18px}
.sin-horario{border:1px solid #C9A25A;background:var(--amb-soft);border-radius:12px;padding:12px 14px;display:grid;gap:8px;color:var(--ink)}
.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.fturno select,.fturno input[type=text]{min-height:44px;font-size:15px}
.cargando-sk{display:grid;gap:8px}
.cargando-sk i{display:block;height:44px;border-radius:8px;background:linear-gradient(90deg,var(--idle),#fff,var(--idle));background-size:200% 100%;animation:sk 1.4s linear infinite}
@keyframes sk{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.cargando-sk i{animation:none!important}}

/* ---------- Profesionales (P3): tabla de 5 columnas y tarjetas en celular ---------- */
.pe{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:99px;font:700 13px var(--fb);white-space:nowrap}
.pe i{font-style:normal;font-weight:800}
.pe-ok{background:var(--good-soft);color:var(--good)}
.pe-warn{background:var(--amb-soft);color:var(--amb)}
.pe-bad{background:var(--bad-soft);color:var(--bad)}
.pe-n{background:var(--idle);color:var(--muted)}
table.tp{width:100%;min-width:0;border-collapse:collapse}
table.tp th{text-align:left;font:700 13px var(--fb);letter-spacing:0;text-transform:none;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}
table.tp td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
table.tp td.nom b{font-size:16px}
table.tp td.acc,table.tp th.acc{text-align:right}
table.tp .btn,.prof44 .btn,.prof44 select,.prof44 input[type=search],.prof44 input[type=text]{min-height:44px}
@media(max-width:600px){
 table.tp thead{position:absolute;left:-999px}
 table.tp,table.tp tbody,table.tp tr,table.tp td{display:block}
 table.tp tr{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}
 table.tp td{border:0;padding:0;min-width:0;overflow-wrap:anywhere}
 table.tp tr{grid-template-columns:repeat(2,minmax(0,1fr))}
 table.tp .pe,table.tp .pill{white-space:normal;max-width:100%}
 table.tp td.nom{grid-column:1/-1}
 table.tp td[data-t]::before{content:attr(data-t);display:block;font:500 12px var(--fb);color:var(--muted);margin-bottom:2px}
 table.tp td.acc{grid-column:1/-1;text-align:left}
 table.tp td.acc .btn{width:100%}
}
.enlace-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:48px;border:1px solid var(--line);border-radius:12px;padding:0 14px;background:var(--surface);color:var(--ink);text-decoration:none;font:700 14px var(--fb);margin-top:14px;cursor:pointer}
.enlace-fila:hover{background:var(--accent-soft)}

/* ---------- Configuración agrupada (P5): menú lateral, una página por vez ---------- */
.cfgx{display:grid;grid-template-columns:272px minmax(0,1fr);gap:18px;align-items:start}
.cfgx .btn,.cfgx select,.cfgx input[type=text],.cfgx input[type=search],.cfgx input[type=number],.cfgx input[type=date],.cfgx input[type=password]{min-height:44px}
.cfgx .btn.sm{min-height:44px}
.cfgx .chk{min-height:44px}
.cfg-nav{position:sticky;top:64px;display:grid;gap:12px;max-height:calc(100vh - 80px);overflow:auto;padding-right:2px;align-content:start}
.cfg-bus input{width:100%}
.cfg-grupos{display:grid;gap:10px}
.cfg-g{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.cfg-g>h2{font:700 12px var(--fb);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:6px 8px 4px}
.cfg-i{all:unset;box-sizing:border-box;cursor:pointer;width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border-radius:10px;color:var(--ink);font:500 15px var(--fb)}
.cfg-i:hover{background:var(--accent-soft)}
.cfg-i[aria-current=page]{background:var(--accent);color:var(--on-accent);font-weight:700}
.cfg-i:focus-visible{outline:3px solid #2F2A24;outline-offset:2px}
.cfg-i .sg{font:700 11px var(--fb);background:var(--amb-soft);color:var(--amb);border-radius:6px;padding:2px 6px;white-space:nowrap}
.cfg-i .nv{font:700 11px var(--fb);background:#fff;color:var(--ink);border:1px solid var(--ink);border-radius:6px;padding:1px 5px}
.cfg-i mark{background:var(--accent);color:var(--ink);border-radius:3px}
.cfg-i[aria-current=page] mark{background:#fff}
.cfg-res{font-size:13px;color:var(--muted);margin:0 8px}
.cfg-res:empty{display:none}
.cfg-vacio{padding:16px;text-align:center;color:var(--muted);display:grid;gap:8px;justify-items:center}
.cfg-pg{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:calc(100vh - 150px)}
.cfg-pg>header h2{font-size:24px}
.cfg-pg>header h2:focus-visible{outline:3px solid #2F2A24;outline-offset:3px}
.cfg-pg>header p{margin:2px 0 0;color:var(--muted)}
.cfg-ruta{font-size:13px}
.cfg-back{display:none;justify-self:start}
.cfg-bar{position:sticky;bottom:8px;margin-top:auto;z-index:5;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--ink);color:#fff;border-radius:12px;padding:10px 14px;box-shadow:0 -4px 18px rgba(47,42,36,.2)}
.cfg-bar b{color:#fff}
.cfg-bar-t{display:grid;gap:2px}
.cfg-err{color:#FFD9D4;font-weight:500}
.cfg-err:empty{display:none}
.cfg-bar .lin{display:flex;gap:10px;flex-wrap:wrap}
.cfg-bar .btn{border-color:#fff}
.cfg-bar .btn.pri{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.cfg-bar .btn:not(.pri){background:transparent;color:#fff}
.cfg-bar .btn:focus-visible{outline:3px solid #fff;outline-offset:2px}
.cfg-ok{color:var(--good);font-weight:700}
.cfg-ok:empty{display:none}
@media(max-width:700px){
 .cfgx{grid-template-columns:minmax(0,1fr)}
 .cfgx[data-vista=detalle] .cfg-nav{display:none}
 .cfgx[data-vista=lista] .cfg-pg{display:none}
 .cfg-nav{position:static;max-height:none;overflow:visible}
 .cfg-back{display:inline-flex}
 .cfg-bar{position:fixed;left:8px;right:8px;bottom:8px}
 .cfgx[data-vista=detalle] .cfg-pg{padding-bottom:96px;min-height:0}
}

/* Errores en línea por campo (formularios con campoV) */
.fg .err-campo{font-weight:500;min-height:0}
.fg [aria-invalid=true]{border-color:var(--bad);border-width:2px}
.fg .err-campo:empty{display:none}

/* Filtros activos de la Agenda y de la lista de cobros */
.ms-btn.act,.filtros input.filtro-act{background:var(--accent-soft)}
.filtros input.filtro-act{border-color:var(--ink);font-weight:700}
.filtros-pie .link{min-height:32px}
.chip-filtro{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ink);background:var(--accent-soft);color:var(--ink);border-radius:99px;padding:2px 4px 2px 12px;font-weight:600}
.chip-filtro button{all:unset;cursor:pointer;min-width:32px;min-height:32px;display:inline-grid;place-items:center;border-radius:99px;font-weight:700}
.chip-filtro button:hover{background:var(--line)}
.chip-filtro button:focus-visible{outline:3px solid #2F2A24;outline-offset:2px}
.cobros-filtro{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:0 0 10px}
.filtros-pie{flex-wrap:wrap}
