
/* Layout: consola de recepción de tres paneles — lista de conversaciones | chat | ficha del paciente */
:root{
  --bg:#eef2f1; --surface:#ffffff; --surface-2:#f5f8f7; --line:#d9e2e0;
  --fg:#16211f; --muted:#5d6e6a; --accent:#0f6b63; --accent-soft:#d8ece9; --on-accent:#ffffff;
  --bot:#e8eef6; --bot-fg:#27405e; --me:#0f6b63; --me-fg:#ffffff; --pat:#ffffff;
  --ok:#1f7a45; --ok-soft:#dcf0e3; --warn:#9a5b00; --warn-soft:#fbecd2; --crit:#b3261e; --crit-soft:#f9dedb;
  --almir:#6b4fa0; --ziba:#0f6b63;
  --display:"Avenir Next", system-ui, sans-serif;
  --body:"Segoe UI", system-ui, sans-serif;
  --r:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0f1514; --surface:#162020; --surface-2:#1c2827; --line:#2b3a38;
  --fg:#e5eeec; --muted:#95a8a4; --accent:#4fbcae; --accent-soft:#1d3a37; --on-accent:#08201d;
  --bot:#1d2a3a; --bot-fg:#c3d4ea; --me:#2f8f84; --me-fg:#f2fffd; --pat:#1f2b2a;
  --ok:#6fd39a; --ok-soft:#173424; --warn:#f0b35a; --warn-soft:#3a2a10; --crit:#ff8a80; --crit-soft:#3d1a18;
  --almir:#b69be6; --ziba:#4fbcae; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0f1514; --surface:#162020; --surface-2:#1c2827; --line:#2b3a38;
  --fg:#e5eeec; --muted:#95a8a4; --accent:#4fbcae; --accent-soft:#1d3a37; --on-accent:#08201d;
  --bot:#1d2a3a; --bot-fg:#c3d4ea; --me:#2f8f84; --me-fg:#f2fffd; --pat:#1f2b2a;
  --ok:#6fd39a; --ok-soft:#173424; --warn:#f0b35a; --warn-soft:#3a2a10; --crit:#ff8a80; --crit-soft:#3d1a18;
  --almir:#b69be6; --ziba:#4fbcae; color-scheme:dark}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:14px;line-height:1.45}
*{box-sizing:border-box}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app{display:grid;grid-template-columns:200px 1fr;min-height:100%}
/* barra lateral */
.nav{background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.01em;padding:0 8px;line-height:1.1}
.brand small{display:block;font-family:var(--body);font-weight:500;font-size:11.5px;color:var(--muted);margin-top:4px;letter-spacing:0}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.nav li button{width:100%;text-align:left;background:none;border:0;padding:9px 10px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;font-weight:600;color:var(--muted)}
.nav li button[aria-current="page"]{background:var(--accent-soft);color:var(--accent)}
.nav li button:disabled{cursor:default;opacity:.55}
.count{font-variant-numeric:tabular-nums;font-size:12px;background:var(--crit);color:var(--surface);border-radius:999px;padding:1px 7px}
.soon{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.who{margin-top:auto;padding:10px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.who b{display:block;color:var(--fg);font-size:13.5px}
.sample{font-size:11px;background:var(--warn-soft);color:var(--warn);padding:6px 8px;border-radius:8px;font-weight:600}
/* vista bandeja */
.main{min-width:0;display:flex;flex-direction:column}
.view{flex:1;min-height:0}
.inbox{display:grid;grid-template-columns:300px minmax(0,1fr) 300px;height:100%;min-height:640px}
.list{border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-width:0}
.list header{padding:16px 14px 10px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--line)}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:20px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:600;color:var(--muted)}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--surface);border-color:var(--fg)}
.convs{overflow:auto;flex:1}
.conv{width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:3px 8px}
.conv[aria-selected="true"]{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--accent)}
.conv .n{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv .t{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.conv .p{grid-column:1/-1;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tags{grid-column:1/-1;display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}
.tag{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;letter-spacing:.02em}
.tag.bot{background:var(--bot);color:var(--bot-fg)}
.tag.person{background:var(--warn-soft);color:var(--warn)}
.tag.crit{background:var(--crit-soft);color:var(--crit)}
.tag.almir{color:var(--almir);border:1px solid currentColor}
.tag.ziba{color:var(--ziba);border:1px solid currentColor}
/* chat */
.chat{display:flex;flex-direction:column;min-width:0;background:var(--surface-2)}
.chat-head{background:var(--surface);border-bottom:1px solid var(--line);padding:12px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.chat-head .who2{min-width:0;flex:1}
.chat-head .who2 h2{font-size:17px}
.chat-head .sub{font-size:12.5px;color:var(--muted)}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 12px;font-weight:700}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.banner{margin:10px 16px 0;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:600}
.banner.person{background:var(--warn-soft);color:var(--warn)}
.banner.crit{background:var(--crit-soft);color:var(--crit)}
.banner.bot{background:var(--bot);color:var(--bot-fg)}
.banner.mine{background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);font-weight:500}
.msgs{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:8px}
.m{max-width:72%;padding:8px 11px;border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere}
.m .h{display:block;font-size:11px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}
.m.pat{background:var(--pat);border:1px solid var(--line);align-self:flex-start}
.m.bot{background:var(--bot);color:var(--bot-fg);align-self:flex-end}
.m.me{background:var(--me);color:var(--me-fg);align-self:flex-end}
.m.me .h{color:inherit;opacity:.8}
.m.note{align-self:center;background:var(--warn-soft);color:var(--warn);font-size:12.5px;max-width:90%}
.who-lbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.75;display:block;margin-bottom:2px}
.composer{background:var(--surface);border-top:1px solid var(--line);padding:10px 16px;display:flex;flex-direction:column;gap:8px}
.quick{display:flex;gap:6px;flex-wrap:wrap}
.quick button{font-size:12px;border:1px dashed var(--line);background:var(--surface-2);border-radius:999px;padding:3px 10px;color:var(--muted);font-weight:600}
.row{display:flex;gap:8px}
.row textarea{flex:1;min-width:0;resize:none;height:42px;border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit;background:var(--surface-2);color:var(--fg)}
.row textarea:disabled{opacity:.6}
.hint{font-size:12px;color:var(--muted)}
/* ficha */
.card{background:var(--surface);border-left:1px solid var(--line);padding:16px;overflow:auto;display:flex;flex-direction:column;gap:14px;min-width:0}
.card h3{font-size:15px}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}
dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:13px}
dt{color:var(--muted)}
dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;min-width:0}
.why{background:var(--surface-2);border-radius:8px;padding:10px;font-size:13px}
.budget{border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px}
.bar{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent)}
.muted{color:var(--muted)}
/* pendientes */
#v-pend .pend{padding:20px;display:flex;flex-direction:column;gap:14px;max-width:1000px}
.pend-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}
.tasks{display:flex;flex-direction:column;gap:8px}
.task{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.task.done{opacity:.55}
.task.done .ttl{text-decoration:line-through}
.stripe{width:4px;align-self:stretch;border-radius:4px}
.ttl{font-weight:700}
.task .meta{font-size:12.5px;color:var(--muted)}
.task-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:1100px){.inbox{grid-template-columns:260px minmax(0,1fr)}.card{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}}
@media (max-width:760px){
  .app{grid-template-columns:1fr}
  .nav{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px;position:static;height:auto;overflow:visible}
  .nav ul{flex-direction:row;flex-wrap:wrap}
  .sample{display:none}
  .who{margin:0 0 0 auto;padding:0;border:0;display:flex;align-items:center;gap:8px}   /* «Salir» siempre a la vista, también en el celular */
  .who b{display:inline}
  .inbox{grid-template-columns:1fr}
  .list{max-height:320px;border-right:0}
  .m{max-width:88%}
  .task{grid-template-columns:auto 1fr}
  .task-act{grid-column:2;justify-content:flex-start}
}
@media (prefers-reduced-motion:no-preference){.m{animation:in .18s ease-out}@keyframes in{from{transform:translateY(4px)}to{transform:none}}}

/* Clinic Platform (paso 1): pantalla de entrada, aviso de modo y ajustes propios de la implementación */
.login-page{min-height:100%;display:grid;place-items:center;padding:24px}
.login-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;max-width:380px;width:100%;display:flex;flex-direction:column;gap:12px}
.login-box label{display:flex;flex-direction:column;gap:4px;font-weight:600}
.login-box input{border:1px solid var(--line);border-radius:8px;padding:9px;font:inherit;background:var(--surface-2);color:var(--fg)}
.mode{display:flex;flex-direction:column;gap:6px}
.mode .sample{margin:0}
.mode label{font-size:12.5px;display:flex;gap:6px;align-items:center;color:var(--muted);font-weight:600}
.nav li a{display:block;padding:9px 10px;border-radius:8px;font-weight:600;color:var(--muted);text-decoration:none}
.notice{padding:8px 14px;font-size:13px;background:var(--warn-soft);color:var(--warn);font-weight:600}
.notice:empty{display:none}
.empty{padding:24px;color:var(--muted)}
.card .why.crit{background:var(--crit-soft);color:var(--crit)}
.bar i{width:var(--pct,0%)}
[hidden]{display:none !important}

/* Diseño tipo WhatsApp Web: la pantalla mide exactamente la ventana y la página no se desplaza; cada zona se desplaza por su cuenta */
html,body{height:100%;margin:0;overflow:hidden}
.app{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.nav{overflow:auto;min-height:0}
.main{height:100%;min-height:0;overflow:hidden}
.view{flex:1 1 auto;min-height:0;overflow:hidden}
.inbox{height:100%;min-height:0;grid-template-rows:minmax(0,1fr)}
.list{min-height:0;overflow:hidden}
.list header{flex:none}
.convs{min-height:0;overflow-y:auto}
.chat{min-height:0;overflow:hidden}
.chat-head,.banner,.composer{flex:none}
.msgs{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.card{min-height:0;overflow-y:auto}
#v-pend{overflow-y:auto}
#v-pend .pend{min-height:0}
#v-act{overflow-y:auto}
@media (max-width:1100px){.inbox{grid-template-rows:minmax(0,1fr) minmax(0,38%)}}
@media (max-width:760px){
  html,body{height:auto;overflow:auto}
  .app{height:auto;overflow:visible}
  .main,.view,.inbox,.list,.chat{height:auto;overflow:visible}
  .inbox{grid-template-rows:none}
  .msgs{max-height:60vh}
  .convs{max-height:280px}
  .card{overflow:visible}
}

/* Avisos: notificación pequeña que desaparece sola (no ocupa espacio en la pantalla) */
.notice{position:fixed;right:16px;bottom:16px;z-index:30;max-width:340px;padding:10px 14px;border-radius:10px;font-size:13px;font-weight:600;background:var(--fg);color:var(--surface);box-shadow:0 6px 24px rgba(0,0,0,.25);pointer-events:none}

/* agenda semanal (de la maqueta aprobada) */
.ag{padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.ag-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}
.ag-ctrl{display:flex;gap:14px;flex-wrap:wrap}
.seg{display:flex;gap:4px;flex-wrap:wrap}
.ag-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--muted)}
.ag-legend span{display:inline-flex;align-items:center;gap:6px}
.lg{width:14px;height:14px;border-radius:4px;display:inline-block}
.lg.free{background:var(--ok-soft);border:1px solid var(--ok)}
.lg.conf{background:var(--accent)}
.lg.pend{background:var(--warn-soft);border:1px solid var(--warn)}
.ag-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:start}
.ag-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.ag-grid{display:grid;grid-template-columns:56px repeat(7,minmax(104px,1fr));min-width:800px;font-variant-numeric:tabular-nums}
.ag-grid .dh{position:sticky;top:0;background:var(--surface);padding:10px 6px;text-align:center;font-weight:700;border-bottom:1px solid var(--line);font-size:13px;z-index:1}
.ag-grid .dh small{display:block;font-weight:500;color:var(--muted);font-size:11.5px}
.ag-grid .dh.today{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}
.ag-grid .tm{font-size:11.5px;color:var(--muted);padding:0 6px;border-top:1px solid var(--line);display:flex;align-items:flex-start;padding-top:3px}
.cell{border-top:1px solid var(--line);border-left:1px solid var(--line);min-height:30px}
.cell.free{background:var(--ok-soft);border:0;margin:2px;border-radius:5px;display:flex;justify-content:flex-end;align-items:center;padding-right:6px;color:var(--ok);font-weight:700}
.cell.free:hover{outline:1px solid var(--ok)}
.cell.na{background:var(--surface-2)}
.cell.closed{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--surface-2) 6px 12px)}
.apt{margin:2px;border-radius:6px;padding:4px 7px;font-size:12px;line-height:1.25;text-align:left;border:0;display:flex;flex-direction:column;gap:1px;overflow:hidden;min-width:0}
.apt b{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apt.conf{background:var(--accent);color:var(--on-accent)}
.apt.pend{background:var(--warn-soft);color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}
.apt .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:middle;box-shadow:0 0 0 1.5px var(--surface-2)}
.apt .st{font-size:11px;opacity:.9;flex:0 0 auto}
.apt{min-height:0}
.apt .tag.bot{align-self:flex-start;font-size:10px;padding:1px 5px}
.apt.ntf{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.apt.bad,.apt.miss{background:var(--crit-soft);color:var(--crit);box-shadow:inset 0 0 0 1px var(--crit)}
.apt.wait{background:var(--bot);color:var(--bot-fg);box-shadow:inset 0 0 0 1px var(--bot-fg)}
.apt.done{background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.lg.ntf{background:var(--accent-soft);border:1px solid var(--accent)}
.lg.bad{background:var(--crit-soft);border:1px solid var(--crit)}
.lg.wait{background:var(--bot);border:1px solid var(--bot-fg)}
.lg.done{background:var(--surface-2);border:1px solid var(--line)}
.apt[aria-pressed="true"]{outline:2px solid var(--fg);outline-offset:1px}
.ag-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}
.ag-side .field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.ag-side input,.ag-side select{font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--fg)}
.actions{display:flex;gap:6px;flex-wrap:wrap}

.ag{height:100%;min-height:0;overflow:hidden;padding:16px 20px}
.ag-body{flex:1 1 auto;min-height:0;align-items:stretch}
.ag-scroll{min-height:0;overflow:auto}
.ag-side{min-height:0;overflow-y:auto}
.ag-grid .cell.unknown{background:var(--surface-2);color:var(--muted);text-align:center}
.apt.busy{background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.apt.mine{outline:2px solid var(--accent)}
.seg .chip{min-width:34px}
@media (max-width:1100px){.ag-body{grid-template-columns:1fr}}
@media (max-width:760px){.ag{height:auto;overflow:visible}.ag-scroll{max-height:70vh}}

.cell.free.readonly{cursor:default;color:transparent}
.cell.free.readonly:hover{outline:0}

/* Agenda: encabezado limpio (título + datos pequeños en una línea; leyenda detrás de «?»; candado con la explicación al pasar el cursor) */
.ag-head{align-items:center;flex-wrap:nowrap}
.ag-head>*{min-width:0}
.ag-scroll{position:relative}
.ag-title{display:flex;align-items:baseline;gap:8px;flex-wrap:nowrap;white-space:nowrap;flex:0 1 auto}
.ag-title h1{margin:0}
.ag-meta{font-size:11.5px;color:var(--muted)}
.ag-help{min-width:26px;padding:2px 8px;font-weight:700}
.ag-lock{font-size:11.5px;color:var(--muted);cursor:help;white-space:nowrap}
.ag-ctrl{align-items:center;gap:6px;flex-wrap:nowrap;margin-left:auto}
.ag-ctrl .chip{padding:5px 9px;font-size:12.5px;white-space:nowrap}
.ag-ctrl .seg{flex-wrap:nowrap}
@media (max-width:1250px){.ag-head{flex-wrap:wrap}.ag-ctrl{flex-wrap:wrap;margin-left:0}}
.ag-legend{padding:6px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}

/* Detalle de la cita: botones iguales a todo lo ancho, «×» pequeña arriba a la derecha */
.ag-side{position:relative}
.ag-x{position:absolute;top:8px;right:10px;width:26px;height:26px;border:0;border-radius:6px;background:none;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.ag-x:hover{background:var(--surface-2);color:var(--fg)}
.ag-stack{display:flex;flex-direction:column;gap:8px}
.ag-stack .btn{display:block;width:100%;text-align:center;text-decoration:none;color:var(--fg);font:inherit;font-weight:700;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 12px;cursor:pointer}
.ag-stack .btn:hover:not(:disabled):not(.off){background:var(--surface-2)}
.ag-stack .btn.off,.ag-stack .btn:disabled{color:var(--muted);background:var(--surface-2);opacity:.75;cursor:default}

/* Bot · Configuración (solo dueño) */
.bot-view{padding:14px 20px;display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;overflow:auto}
#bot-body{display:flex;flex-direction:column;gap:12px;max-width:820px}
.bot-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px}
.bot-card h2{margin:0;font-size:15px}
.bot-card dl{display:grid;grid-template-columns:200px 1fr;gap:6px 12px;margin:0;font-size:13px}
.bot-card dt{color:var(--muted)}.bot-card dd{margin:0;white-space:pre-line}
.bot-card input,.bot-card select,.bot-card textarea{font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--fg);width:100%}
.bot-card .field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.bot-card .btn{align-self:flex-start}
.bot-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.bot-confirm{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:10px 14px}
.bot-history{max-height:260px;overflow:auto;background:var(--surface-2);border-radius:8px;padding:8px;font-size:12px;white-space:pre-wrap}


/* Palomitas de estado del mensaje */
:root{--read:#2f80d8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--read:#6db3ff}}
.tk{margin-left:5px;font-size:11px;letter-spacing:-2px;color:var(--muted);font-weight:700}
.m.me .tk{color:var(--me-fg);opacity:.85}
.m.bot .tk{opacity:.85}
.tk.read{color:var(--read);opacity:1}
.m.me .tk.read{color:#9fd0ff}
.tk.failed{color:var(--crit);letter-spacing:0}

.brand .live{margin-top:6px;font-size:11px}.brand .live.on{color:var(--ok)}.brand .live.off{color:var(--muted)}
.task .said{margin-top:3px;font-size:13.5px;color:var(--fg)}
.m.hl{outline:3px solid var(--warn);outline-offset:2px;animation:hl 1.2s ease-out 2}@keyframes hl{from{background:var(--warn-soft)}to{background:transparent}}

.thumb-btn{display:block;padding:0;border:0;background:none;border-radius:8px;overflow:hidden;margin-bottom:4px}
.thumb{display:block;max-width:220px;max-height:220px;object-fit:cover;border-radius:8px;cursor:zoom-in}
.media-card{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);margin-bottom:4px;font-size:13px;color:var(--fg);text-decoration:none}
.media-card audio{max-width:240px}.media-link{color:var(--accent);font-weight:600}.media-doc{font-weight:600}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.82);display:grid;place-items:center;z-index:50;cursor:zoom-out}.lightbox img{max-width:94vw;max-height:92vh;border-radius:6px}

#pend-team{display:flex;flex-direction:column;gap:8px}
.eq-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.eq-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.eq-lbl{width:52px;font-size:13px;color:var(--muted)}
.task.team{grid-template-columns:5px 1fr auto}.task.team .stripe{background:var(--accent)}.task.team.done .stripe{background:var(--ok)}
.tag{display:inline-block;font-size:12px;border-radius:6px;padding:1px 7px;margin-right:4px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.tag.late{background:var(--crit-soft);color:var(--crit);border-color:var(--crit)}.tag.today{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.tag.ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}
.struck{text-decoration:line-through;color:var(--muted)}
.eq-assign{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:4px}
.eq-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px}
.eq-form .field{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--muted)}.eq-form input,.eq-form select,.eq-form textarea{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--fg)}
.eq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.eq-days,.eq-every{display:flex;gap:6px;flex-wrap:wrap}.eq-err{color:var(--crit);font-size:13px;min-height:1px}
@media (max-width:760px){.eq-grid{grid-template-columns:1fr}}
.seg .count{margin-left:6px}

/* CRM (solo administrador) */
.crm{padding:14px 20px;display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;overflow:auto}
.crm-ctrl{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.crm-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.crm-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;text-align:left;display:flex;flex-direction:column;gap:2px}
.crm-card[aria-pressed="true"]{border:2px solid var(--accent);padding:11px 13px}
.crm-cardt{font-size:12.5px;color:var(--muted);font-weight:600}
.crm-num{font-size:28px;line-height:1.1;font-weight:700}
.crm-sub{font-size:12.5px;color:var(--muted)}
.crm-listhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.crm-listhead h2{margin:0;font-size:16px}
.crm-row{display:grid;grid-template-columns:1.2fr .55fr 2.6fr .8fr 1.5fr;gap:10px;padding:10px 4px;border-top:1px solid var(--line);align-items:start;font-size:13px}
.crm-th{font-size:12px;color:var(--muted);font-weight:600;border-top:0}
.crm-row.dim{opacity:.6}
.crm-name{font-weight:600}
.crm-clinic.a{color:var(--almir);font-weight:600}.crm-clinic.z{color:var(--ziba);font-weight:600}
.crm-why{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.crm-more summary{cursor:pointer;color:var(--muted);font-size:12.5px}.crm-line{font-size:12.5px;color:var(--muted);padding-left:10px}
.crm-act{display:flex;gap:4px;flex-wrap:wrap}.crm-act .btn{padding:3px 8px;font-size:12.5px}.crm-act .btn.on{background:var(--accent);color:var(--on-accent)}
.crm-badge{font-size:12px;border-radius:6px;padding:2px 6px}.crm-badge.ok{background:var(--ok-soft);color:var(--ok)}.crm-badge.no{background:var(--warn-soft);color:var(--warn)}
.crm-formrow{display:block;grid-template-columns:none}.crm-note{display:flex;gap:6px;flex-wrap:wrap}.crm-note input{flex:1;min-width:200px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg)}
.crm-q{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.crm-q summary{cursor:pointer;color:var(--muted)}.crm-q dl{display:grid;grid-template-columns:260px 1fr;gap:4px 12px;font-size:13px}.crm-q dd{margin:0}
@media (max-width:900px){.crm-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-row{grid-template-columns:1fr}.crm-th{display:none}}
.crm-act a.btn{text-decoration:none;color:inherit}
.crm .ag-head{flex-wrap:wrap;align-items:flex-end}.crm-ctrl{margin-left:0}
.crm-banner{background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:8px 12px;font-weight:600}
/* Agenda: el aviso «Cargando la agenda…» ocupa todo el ancho (no la primera columna) y los filtros de clínica pasan a otra línea en vez de cortarse */
.ag-grid>.empty{grid-column:1/-1;padding:24px 12px;text-align:center}
@media (max-width:1250px){.ag-ctrl .seg{flex-wrap:wrap}}
@media (max-width:700px){.ag-head,.ag-title{flex-wrap:wrap;white-space:normal}.ag-ctrl{width:100%}.pend-head{align-items:stretch}}
/* Selector de clínica, arriba de todo */
.clinicbar{display:flex;align-items:center;gap:12px;padding:8px 20px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.clinicbar[hidden]{display:none}
.clinicbar-lbl{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.clinicbar .chip{padding:5px 14px;font-size:13px}
.hint.other{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:6px 10px;font-weight:600}
.budget.owed{border-color:var(--crit)}.budget.owed b{color:var(--crit)}
.crm-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.crm-desc{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.3}
.crm-clinic.none{color:var(--crit);font-weight:700}
.crm-act .btn{white-space:nowrap}
.crm-noc{font-size:11.5px;color:var(--crit);font-weight:600;margin-top:2px}
/* Nombres como enlace discreto y «Esperar hasta…» */
.plink{color:inherit;text-decoration:none;cursor:pointer}.plink:hover,.plink:focus-visible{text-decoration:underline;text-underline-offset:3px}
.nameline{display:flex;align-items:center;gap:8px}.nameline h2{margin:0}
.dl-arrow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--line);border-radius:6px;color:var(--muted);text-decoration:none;font-size:13px;line-height:1}
.dl-arrow:hover{color:var(--fg);border-color:var(--fg)}.dl-arrow[hidden]{display:none}
.esp-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}.esp-line.on{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:6px 10px;font-weight:600;justify-content:space-between}
.esp-form{display:flex;flex-direction:column;gap:8px;width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px}
.esp-quick,.esp-row,.esp-act{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.esp-row input[type=text]{flex:1;min-width:180px}.esp-row input,.esp-row select{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg)}
.esp-picked{font-size:12.5px}.esp-err{color:var(--crit);font-size:12.5px;min-height:1em}
.ag-meta.warn{color:var(--warn);background:var(--warn-soft);padding:2px 8px;border-radius:6px;font-weight:600}
.crm-from{flex-basis:100%;font-size:11.5px;color:var(--muted)}.crm-from.none{color:var(--crit);font-weight:600}
.crm-ask{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:8px 12px;font-weight:600}
.crm-act .btn.off{opacity:.55;cursor:default}
.crm-counter{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;font-size:13px;font-weight:600;white-space:pre-wrap}
.crm-res{display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;width:100%}.crm-reslbl{font-size:12.5px;font-weight:700;color:var(--muted)}
.btn.danger{color:var(--crit);border-color:var(--crit)}.btn.primary.danger{background:var(--crit);color:#fff}
.eq-results{display:flex;flex-direction:column;gap:4px;align-items:flex-start;margin-top:4px}.eq-patient{display:flex;flex-direction:column;gap:4px}

/* Rediseño · parte 1: el selector de clínica vive en el menú; el color de la clínica tiñe el menú activo y los botones principales */
.nav .clinicbar{position:static;display:block;padding:0;background:none;border:0}
.nav .clinicbar-lbl{display:block;padding:0 6px;font-size:13px;text-transform:none;letter-spacing:0;color:var(--accent)}.nav .clinicbar-lbl[hidden]{display:none}
.nav .clinicbar .seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface-2);border-radius:10px;padding:4px}
.nav .clinicbar .chip{border:0;border-radius:8px;padding:8px 6px;font-weight:650;background:transparent;text-align:center}
.nav .clinicbar .chip[aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}
#app[data-clinic="almir"]{--accent:var(--almir);--me:var(--almir);--accent-soft:color-mix(in srgb,var(--almir) 14%,var(--surface))}
#app[data-clinic="ziba"]{--accent:var(--ziba);--me:var(--ziba);--accent-soft:color-mix(in srgb,var(--ziba) 14%,var(--surface))}
:root:not([data-theme="dark"]) #app[data-clinic]{--on-accent:#ffffff}
.nav .cnt{font-size:12px;font-weight:600;color:var(--muted)}
.nav .foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.nav .foot .who{margin-top:0}
.foot-link{background:none;border:0;text-align:left;padding:9px 10px;border-radius:8px;font-weight:600;color:var(--muted)}
.foot-link[aria-current="page"]{background:var(--accent-soft);color:var(--accent)}
.status{display:flex;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;color:var(--muted)}
.status .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}
.status.off .dot{background:var(--warn)}
.ag-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* Rediseño · parte 2: Pendientes (Mi día y Por lista) */
.pend-view{padding:24px 26px;display:flex;flex-direction:column;gap:16px}
.pl-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.pl-title{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pl-title h1{margin:0;font-family:var(--display);font-size:26px}
.pl-vista{display:flex;background:var(--line);border-radius:10px;padding:4px;gap:4px}
.pl-vista button{border:0;background:transparent;border-radius:8px;padding:7px 14px;font-weight:650;color:var(--muted)}
.pl-vista button[aria-pressed="true"]{background:var(--surface);color:var(--fg)}
.pl-tools{display:flex;gap:8px}
.pl-card{background:var(--surface);border:1px solid var(--line);border-radius:14px}
.pl-top{padding:14px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.pl-ring{border-radius:50%;display:grid;place-items:center;flex:none}
.pl-ring>div{border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--display)}
.pl-ring .muted{font-size:11px;font-family:var(--body)}
.pl-strip{flex:1 1 420px;min-width:0;display:flex;gap:8px;align-items:stretch}
.pl-days{flex:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.pl-day{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;border-radius:12px;border:1px solid var(--line);background:var(--surface);min-width:0}
.pl-day small{font-size:12px;color:var(--muted);font-weight:600}.pl-day b{font-family:var(--display);font-size:19px}
.pl-day.sel{border:2px solid var(--accent);background:var(--accent-soft)}
.pl-bar{width:70%;height:6px;border-radius:999px;background:var(--bg);overflow:hidden}.pl-bar i{display:block;height:100%}
.pl-arrow{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:40px;font-size:18px}
.pl-cols{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}
.pl-col{flex:0 0 268px;background:var(--surface);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column}
.pl-ch{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.pl-ch b{flex:1;font-size:15px}
.pl-ch input{flex:1;min-width:0;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.pl-menu{position:relative}.pl-menu summary{list-style:none;cursor:pointer;padding:4px 8px;border-radius:8px;font-weight:700}
.pl-menu[open]{background:var(--bg);border-radius:8px}.pl-menu[open]>.btn{display:block;width:100%;margin-top:4px;text-align:left}
.pl-it{display:flex;gap:10px;padding:10px 14px;border-top:1px solid var(--line);align-items:flex-start}
.pl-it:first-child{border-top:0}.pl-it.dim{opacity:.35}
.pl-chk{width:20px;height:20px;border-radius:50%;border:2px solid var(--muted);background:var(--surface);flex:none;padding:0;margin-top:1px;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700}
.pl-chk.on{background:var(--accent);border-color:var(--accent)}
.pl-body{flex:1;min-width:0}.pl-body small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.pl-ttl{border:0;background:transparent;font:inherit;text-align:left;padding:0;color:var(--fg);font-weight:600;line-height:1.3;width:100%}
.pl-ttl.off{color:var(--muted);text-decoration:line-through;font-weight:500}
.pl-dt{display:inline-flex;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:650;margin-top:5px}
.pl-dt.late{background:var(--crit-soft);color:var(--crit)}.pl-dt.later{background:var(--bg);color:var(--fg)}.pl-dt.today{background:var(--accent-soft);color:var(--accent)}
.pl-panel{margin-top:10px;background:var(--surface-2);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.pl-panel p{margin:0;font-size:13px}
.pl-lbl{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.pl-opts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pl-cancel{align-self:flex-start;color:var(--crit)}
.btn.wa{background:#1f7a45;border-color:#1f7a45;color:#fff}
.pl-add{padding:10px 14px;border:0;border-top:1px solid var(--line);background:none;text-align:left;font-weight:650;color:var(--accent)}
.pl-listform{padding:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pl-listform input{flex:1 1 220px;font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px}
.pl-mydia{display:flex;flex-direction:column;gap:14px}
.pl-crm{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.pl-day-list .pl-it{padding:12px 16px;align-items:center}
.pl-sq{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}.pl-sq.eq{background:var(--accent)}.pl-sq.bot{background:var(--warn)}.pl-sq.pac{background:var(--ok)}
.pl-legend{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center}
@media (max-width:760px){.pend-view{padding:14px}.pl-col{flex-basis:84vw}}

/* Rediseño · parte 3: Seguimiento de pacientes (listas · tabla · paciente elegido) */
.sg-view{padding:22px 26px;display:flex;flex-direction:column;gap:16px}
.sg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.sg-head h1{margin:2px 0;font-family:var(--display);font-size:26px}
.sg-ctrl{display:flex;gap:10px;align-items:center}.sg-review{display:flex;align-items:center;gap:8px;font-weight:600}.sg-review input{width:18px;height:18px}
.sg-grid{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.sg-lists{flex:1 1 200px;max-width:230px;display:flex;flex-direction:column;gap:2px}
.sg-item{display:flex;flex-direction:column;gap:2px;text-align:left;border:0;background:transparent;border-radius:10px;padding:10px 12px;color:var(--fg)}
.sg-item small{color:var(--muted);font-size:12px}
.sg-item[aria-pressed="true"]{background:var(--surface);box-shadow:0 0 0 1px var(--line)}.sg-item[aria-pressed="true"] b{color:var(--accent)}
.sg-sep{border-top:1px solid var(--line);margin:8px 0}
.sg-main{flex:3 1 480px;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.sg-mh{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;gap:8px;flex-wrap:wrap}.sg-mh>b{font-size:16px}
.sg-filter{display:flex;gap:6px;flex-wrap:wrap}
.sg-filter .chip[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--surface)}
.sg-th,.sg-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.8fr) minmax(0,1.1fr) 120px;gap:12px;padding:12px 16px;align-items:start;border-top:1px solid var(--line)}
.sg-th{font-size:12px;font-weight:700;color:var(--muted)}
.sg-row{cursor:pointer;font-size:13.5px}.sg-row.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.sg-row.dim{opacity:.55}.sg-row.sg-plain{cursor:default}
.sg-name{display:flex;flex-direction:column;gap:2px;font-weight:700}.sg-name a{color:var(--fg)}.sg-name small{font-weight:400;font-size:12px}
.sg-state{display:flex;flex-direction:column;gap:3px}.sg-state small{font-size:12px}
.sg-chip{display:inline-flex;align-self:flex-start;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:650}
.sg-chip.warn{background:var(--warn-soft);color:var(--warn)}.sg-chip.neu{background:var(--bg);color:var(--fg)}.sg-chip.ok{background:var(--ok-soft);color:var(--ok)}
.sg-side{flex:1 1 280px;max-width:340px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column}
.sg-sec{padding:16px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--line)}.sg-sec:last-child{border-bottom:0}
.sg-pname{font-size:18px;font-weight:700}.sg-pname a{color:var(--fg)}
.sg-lbl{font-size:12px;font-weight:700;color:var(--muted)}
.sg-msg{background:#e7f5ec;color:#16211f;border-radius:10px;padding:10px 12px;line-height:1.45}
.sg-wide{justify-content:center}
.sg-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.sg-empty{padding:24px 16px;color:var(--muted)}
.sg-ev{display:flex;gap:8px;align-items:flex-start;font-size:13px}.sg-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;display:inline-block;background:var(--muted)}
.sg-dot.crit{background:var(--crit)}.sg-dot.ok{background:var(--ok)}.sg-dot.warn{background:var(--warn)}
@media (max-width:900px){.sg-th{display:none}.sg-row{grid-template-columns:1fr}.sg-lists{max-width:none;flex-direction:row;flex-wrap:wrap}.sg-side{max-width:none}}
.sg-head .eyebrow{text-transform:none;letter-spacing:0;font-size:13px;font-weight:500}

/* Rediseño · parte 4: Hoy */
.hy-view{padding:26px 30px;display:flex;flex-direction:column;gap:22px}
.hy-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.hy-head h1{margin:4px 0 0;font-family:var(--display);font-size:28px}.hy-date{font-weight:600}
.hy-tools{display:flex;gap:8px;flex-wrap:wrap}
.hy-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px}
.hy-kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;text-align:left;color:var(--fg)}
.hy-kpi>span:first-child{font-weight:600}.hy-kh{display:flex;align-items:center;gap:10px}.hy-kh .muted{white-space:normal;overflow-wrap:normal;word-break:normal}.hy-states{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.hy-kpi b{font-family:var(--display);font-size:30px;line-height:1.1}
.hy-cols{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.hy-agenda{flex:3 1 520px;min-width:0}.hy-right{flex:2 1 340px;min-width:0;display:flex;flex-direction:column;gap:18px}
.hy-ah{display:flex;justify-content:space-between;align-items:center;padding:16px;gap:8px}.hy-ah h2,.hy-card h2{margin:0;font-family:var(--display);font-size:17px}.hy-card>h2{padding:16px 16px 6px}
.hy-docs{display:flex;gap:6px;flex-wrap:wrap}
.hy-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line)}
.hy-time{width:52px;font-weight:700;font-variant-numeric:tabular-nums;flex:none}
.hy-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;background:var(--accent-soft);color:var(--accent)}
.hy-who{flex:1;min-width:0}.hy-who small{font-size:12px}
.hy-free{background:var(--surface-2)}
.hy-foot{padding:12px 16px;border-top:1px solid var(--line)}.hy-link{border:0;background:none;color:var(--accent);font-weight:650;padding:0}
.hy-need{display:flex;width:100%;align-items:center;gap:12px;padding:11px 16px;border:0;border-top:1px solid var(--line);background:none;text-align:left;color:var(--fg)}
.hy-pad{padding:6px 16px 16px}
.hy-week{padding-bottom:16px}.hy-week>h2{padding:16px 16px 10px}.hy-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;text-align:center}.hy-nums b{font-size:22px}.hy-nums .hy-ok{color:var(--ok)}
.hy-search{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.hy-search input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
@media (max-width:760px){.hy-view{padding:14px}}

/* Rediseño · parte 5: Bandeja (búsqueda, Bot | Yo contesto, respuestas rápidas) y ficha del paciente */
.take-legacy{display:none !important}
.bx-search{display:flex;flex-direction:column;gap:4px;margin:8px 0}.bx-search input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.list .filters .chip[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--surface)}
.bx-switch{display:flex;background:var(--bg);border-radius:10px;padding:4px;gap:4px}
.bx-switch button{border:0;border-radius:8px;padding:8px 12px;font-weight:650;background:transparent;color:var(--muted)}
.bx-switch button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}.bx-switch button:disabled{opacity:.6}
.composer .row{align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}.composer .row textarea{flex:1 1 260px}      /* en pantallas angostas la caja de escribir ocupa su renglón y los botones bajan (antes quedaba de 50 px) */
.qr{position:relative}.qr summary{list-style:none;cursor:pointer}.qr[open] .quick{position:absolute;bottom:44px;right:0;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px;z-index:6;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.qr .quick button{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:8px;text-align:left;padding:8px 10px}
.fx-sec{padding:14px 4px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.fx-sec:first-child{border-top:0}
.fx-name{font-size:17px;font-weight:700}.fx-name a{color:var(--fg)}
.fx-kv{display:flex;justify-content:space-between;gap:10px}.fx-owed{color:var(--crit);font-weight:700}
.fx-chips{display:flex;gap:6px;flex-wrap:wrap}.fx-acts{display:flex;flex-wrap:wrap;gap:6px}
a.btn{text-decoration:none;color:var(--fg)}a.btn:hover{background:var(--surface-2)}

/* Ajustes tras la primera prueba: nombre de la clínica en el menú, íconos de Hoy, ficha de paciente que se abre */
.brand-clinic{display:block;font-size:13px;font-weight:700;color:var(--accent);margin-top:2px}
.hy-kh{display:flex;align-items:center;gap:10px}.hy-kh>.muted{font-weight:600}
.hy-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none}
.hy-ic.ic-cal{background:var(--accent-soft);color:var(--accent)}.hy-ic.ic-chat{background:#dcf0e3;color:#1a5e37}.hy-ic.ic-list{background:#fbecd2;color:#7a4700}.hy-ic.ic-pers{background:#e2f0ee;color:#0a4a44}
.pac-block{display:flex;flex-direction:column;gap:6px;min-width:0}
.pac-name{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--fg);text-align:left;cursor:pointer}.pac-name:hover{color:var(--accent);text-decoration:underline}
.pac-card{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:6px 12px;font-weight:400;display:flex;flex-direction:column}
.pac-card .fx-sec:first-child{border-top:0}

/* Pendientes: columnas que bajan a filas, 5 tareas por lista, día libre en verde, notas en una línea */
.pl-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:14px;align-items:start;overflow:visible}
.pl-col{flex:none;min-width:0}
.pl-body small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-panel small,.pl-panel p{white-space:normal}
.pl-more{border:0;border-top:1px solid var(--line);background:none;text-align:left;padding:10px 14px;font-weight:650;color:var(--accent);width:100%}
.pl-free{color:var(--ok);font-weight:700}
.pl-ring .pl-free{font-size:30px;line-height:1}
/* barras de desplazamiento visibles donde algo se corta */
.ag-scroll,.sg-main,.pl-top,.pl-strip,.ag-body,.hy-agenda{scrollbar-width:auto;scrollbar-color:var(--muted) var(--bg)}
.ag-scroll::-webkit-scrollbar,.sg-main::-webkit-scrollbar,.pl-strip::-webkit-scrollbar,.ag-side::-webkit-scrollbar{height:12px;width:12px}
.ag-scroll::-webkit-scrollbar-thumb,.sg-main::-webkit-scrollbar-thumb,.pl-strip::-webkit-scrollbar-thumb,.ag-side::-webkit-scrollbar-thumb{background:var(--muted);border-radius:8px;border:2px solid var(--bg)}
.ag-scroll::-webkit-scrollbar-track,.sg-main::-webkit-scrollbar-track,.pl-strip::-webkit-scrollbar-track,.ag-side::-webkit-scrollbar-track{background:var(--bg)}
.sg-main{overflow-x:auto}
@media (max-width:900px){.pl-strip{overflow-x:auto}.pl-days{min-width:520px}}
.hy-row{align-items:flex-start}.hy-row .pl-chk{margin-top:2px}
.pl-pat .pac-name{font-weight:600;font-size:12.5px;color:var(--muted)}

/* Agenda (Día y Semana): columnas del mismo ancho, renglones iguales, citas por hora y duración, libres punteados y cerrado rayado */
.ag-grid,.ag-grid.dia{min-width:0}
.ag-grid .dh{font-size:13px}
.cell{min-height:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cell.free{background:var(--ok-soft);border:1px dashed var(--ok);margin:2px;border-radius:6px;color:var(--ok);font-weight:700;justify-content:center;padding:0}
.cell.na,.cell.closed{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--surface-2) 6px 12px)}
.cell.na{opacity:.75}
.apt{position:relative;margin:2px;min-height:0;overflow:hidden;padding:2px 6px;justify-content:center;gap:0}
.apt b,.apt span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apt .tag.bot{position:absolute;top:2px;right:3px;display:inline-block;width:auto}
.ag-grid .tm{padding-top:2px;border-top:1px solid var(--line)}
.lg.hatch{background:repeating-linear-gradient(135deg,var(--surface) 0 3px,var(--line) 3px 6px);border:1px solid var(--line)}
.lg.free{border-style:dashed}
.ag-head{flex-wrap:wrap !important;row-gap:8px}.ag-ctrl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#ag-agendar{white-space:nowrap}

/* Agenda: citas en color suave por estado (como la maqueta), rayado solo donde no hay doctor, gris liso donde hay doctor pero Dentalink no ofrece el espacio */
.apt{border:0;box-shadow:inset 0 0 0 1px transparent}
.apt.conf{background:var(--bg);color:var(--fg);box-shadow:inset 0 0 0 1px #c9d5d2}
.apt.pend{background:var(--warn-soft);color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn-soft)}
.apt.ntf{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}
.apt.wait{background:var(--bot);color:var(--bot-fg);box-shadow:inset 0 0 0 1px var(--bot)}
.apt.done{background:var(--ok-soft);color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok-soft)}
.apt.bad,.apt.miss{background:var(--crit-soft);color:var(--crit);box-shadow:inset 0 0 0 1px var(--crit-soft)}
.apt.busy{background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.apt.mine,.apt[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:0}
.apt .dot{box-shadow:none}
.cell.closed{background:repeating-linear-gradient(135deg,var(--surface) 0 6px,var(--bg) 6px 12px)}
.cell.na{background:var(--surface-2);opacity:1}
.lg.na{background:var(--surface-2);border:1px solid var(--line)}
.lg.conf{background:var(--bg);border:1px solid #c9d5d2}
.lg.done{background:var(--ok-soft);border:1px solid var(--ok-soft)}
.lg.pend{background:var(--warn-soft);border:1px solid var(--warn-soft)}
.lg.ntf{background:var(--accent-soft);border:1px solid var(--accent-soft)}
.lg.bad{background:var(--crit-soft);border:1px solid var(--crit-soft)}
.lg.wait{background:var(--bot);border:1px solid var(--bot)}

/* Hoy y Seguimiento: nada se corta. La pantalla baja con su propia barra y cada lista o panel que no quepa tiene la suya */
.hy-view{height:100%;min-height:0;overflow-y:auto;box-sizing:border-box}
.hy-agenda{max-height:calc(100vh - 250px);overflow-y:auto;min-height:0}
.hy-right>.pl-card{max-height:calc(50vh - 40px);overflow-y:auto;min-height:0}
.sg-view{height:100%;min-height:0;box-sizing:border-box;overflow:hidden}
.sg-grid{flex:1 1 auto;min-height:0;flex-wrap:nowrap;align-items:stretch}
.sg-lists,.sg-main,.sg-side{min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden}
.sg-main{overflow-x:auto}
.hy-view,.hy-agenda,.hy-right>.pl-card,.sg-lists,.sg-main,.sg-side{scrollbar-width:auto;scrollbar-color:var(--muted) var(--bg)}
.hy-view::-webkit-scrollbar,.hy-agenda::-webkit-scrollbar,.hy-right>.pl-card::-webkit-scrollbar,.sg-lists::-webkit-scrollbar,.sg-main::-webkit-scrollbar,.sg-side::-webkit-scrollbar{width:12px;height:12px}
.hy-view::-webkit-scrollbar-thumb,.hy-agenda::-webkit-scrollbar-thumb,.hy-right>.pl-card::-webkit-scrollbar-thumb,.sg-lists::-webkit-scrollbar-thumb,.sg-main::-webkit-scrollbar-thumb,.sg-side::-webkit-scrollbar-thumb{background:var(--muted);border-radius:8px;border:2px solid var(--bg)}
.hy-view::-webkit-scrollbar-track,.hy-agenda::-webkit-scrollbar-track,.hy-right>.pl-card::-webkit-scrollbar-track,.sg-lists::-webkit-scrollbar-track,.sg-main::-webkit-scrollbar-track,.sg-side::-webkit-scrollbar-track{background:var(--bg)}
@media (max-width:900px){.hy-view,.sg-view{height:auto;overflow:visible}.hy-agenda,.hy-right>.pl-card{max-height:none}.sg-grid{flex-wrap:wrap}.sg-lists,.sg-main,.sg-side{max-height:none;overflow:visible}}

/* Ventana flotante (tareas y agendar) y buscador de pacientes */
#modal-root[hidden]{display:none}
.md-shade{position:fixed;inset:0;background:rgba(22,33,31,.42);z-index:50;display:flex;justify-content:center;align-items:flex-start;padding:48px 16px 16px;overflow:auto}
.md-dialog{width:min(600px,100%);max-height:calc(100vh - 64px);background:var(--surface);border-radius:18px;box-shadow:0 24px 60px rgba(22,33,31,.28);display:flex;flex-direction:column;overflow:hidden}
.md-dialog.wide{width:min(760px,100%)}
.md-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px 0}
.md-tag{display:flex;align-items:center;gap:8px}.md-dot{width:10px;height:10px;border-radius:3px;background:#9aa8a5;display:inline-block}
.md-x{border:0;background:var(--bg);width:36px;height:36px;border-radius:10px;font-size:18px;color:var(--muted)}
.md-body{padding:6px 22px 10px;overflow-y:auto;min-height:0;flex:1 1 auto}
.md-foot{padding:14px 22px;border-top:1px solid var(--line);background:var(--surface-2);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
@media (max-width:640px){.md-shade{padding:8px}.md-dialog{max-height:calc(100dvh - 16px);border-radius:14px}.md-body,.md-foot{padding-left:14px;padding-right:14px}}
.md-body,.md-shade{scrollbar-width:auto;scrollbar-color:var(--muted) var(--bg)}
.md-body::-webkit-scrollbar{width:12px}.md-body::-webkit-scrollbar-thumb{background:var(--muted);border-radius:8px;border:2px solid var(--surface)}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 12px;font-weight:600;color:var(--fg);min-height:36px}
.pill.on{background:#efeaf7;border-color:#6b4fa0;color:#4b347a}
.tk-title input{border:0;outline:none;font-family:var(--display);font-size:24px;font-weight:700;color:var(--fg);padding:6px 0;width:100%;background:transparent}
.tk-title{display:flex;flex-direction:column;gap:4px;padding:10px 0 6px}
.tk-field{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.tk-k{width:90px;flex:none;color:var(--muted);font-weight:600;padding-top:8px}
.tk-v{flex:1;min-width:0}.tk-col{display:flex;flex-direction:column;gap:8px}.tk-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tk-date{font-size:13px;color:var(--accent);font-weight:600}
.tk-sq{width:9px;height:9px;border-radius:3px;display:inline-block;background:#9aa8a5}
.tk-av{width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:10px;font-weight:700}
.tk-v textarea,.tk-v select,.tk-v input[type=date],.tk-v input[type=number]{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);width:100%;box-sizing:border-box}
.tk-v input[type=number]{width:80px}
.tk-err{color:var(--crit);font-size:13px;min-height:1px}
.tk-chosen{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ps-box{display:flex;flex-direction:column;gap:6px}
.ps-input{display:flex;align-items:center;gap:10px;border:1.5px solid var(--accent);border-radius:10px;padding:6px 8px 6px 12px}
.ps-input input{border:0;outline:none;font:inherit;flex:1;min-width:0;background:transparent;padding:4px 0}
.ps-lens{color:var(--muted);font-size:16px}
.ps-results{border:1px solid var(--line);border-radius:10px;padding:4px;display:flex;flex-direction:column;max-height:260px;overflow-y:auto}
.ps-results:empty{display:none}
.ps-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:0;background:transparent;border-radius:8px;text-align:left;width:100%}
.ps-row.first,.ps-row:hover{background:var(--accent-soft)}
.ps-av{width:30px;height:30px;border-radius:50%;background:var(--bg);color:var(--fg);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.ps-info{flex:1;min-width:0;display:flex;flex-direction:column}.ps-info small{font-size:12px}
.ps-pick{color:var(--accent);font-weight:650;font-size:13px}
.ps-dup{margin-left:8px;background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}
.ps-none{padding:8px 12px}

/* Agenda: encabezados de día que abren la vista Día, libres con su leyenda al pasar el mouse, línea roja de la hora, panel único de la cita */
.ag-grid button.dh{border:0;border-bottom:1px solid var(--line);cursor:pointer;color:inherit}
.ag-grid button.dh:hover{background:var(--surface-2)}
.ag-grid .cell.free{cursor:pointer;color:transparent;font-size:11.5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;align-items:center;justify-content:center}
.ag-grid .cell.free::before{content:attr(data-hover);color:transparent}
.ag-grid .cell.free:hover,.ag-grid .cell.free:focus-visible{background:#fbfaff;border-color:var(--almir);outline:0}
.ag-grid .cell.free:hover::before,.ag-grid .cell.free:focus-visible::before{color:#4b347a;font-weight:650}
.now-line{align-self:start;height:2px;background:#b3261e;position:relative;z-index:3;pointer-events:none}
.now-line::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#b3261e}
.ap-head{display:flex;flex-direction:column;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ap-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding-right:30px}
.ap-name{font-size:18px;font-weight:700;color:var(--fg);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.ap-name:hover{color:#4b347a}
.ap-out{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--line);font-size:12px;color:#4b347a}
.ap-meta{font-size:13px}.ap-when{font-weight:700;font-variant-numeric:tabular-nums;margin-top:4px}.ap-when .muted{font-weight:400}
.ap-what{font-size:13px;min-height:19px}
.ap-state{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-top:4px}
.st-sel{flex:1;font:inherit;font-weight:650;border:0;border-radius:999px;padding:5px 10px;background:var(--surface-2);color:var(--fg)}
.st-sel.st-pend{color:#7a4700;background:#fbecd2}.st-sel.st-conf{color:#14602f;background:#dcf0e3}.st-sel.st-wait{color:#0a4a44;background:#d8ece9}.st-sel.st-done{color:#3c4a47;background:#e8eeec}.st-sel.st-miss{color:#8f1f18;background:#f9dedb}
.st-sel:disabled{opacity:1;cursor:default}
.ap-table{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:13px;padding:12px 0;border-bottom:1px solid var(--line);min-height:104px}
.ap-v{text-align:right;min-width:0;overflow-wrap:anywhere}.ap-v.none{color:#9aa8a5}
.ap-acts{display:flex;flex-direction:column;gap:8px;padding-top:12px}
.ap-acts .btn{justify-content:center;text-align:center;display:inline-flex;align-items:center;min-height:38px}
.ap-from{text-align:center;margin-top:-4px}
.ap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.ap-origin{display:block;margin-top:4px}
.linkbtn{border:0;background:none;padding:2px 0;font-size:13px;font-weight:600;color:#4b347a;align-self:flex-start;text-decoration:underline;cursor:pointer}
.linkbtn.danger{color:#8f1f18;text-decoration:none}.linkbtn:disabled{color:var(--muted);cursor:default}
@media (max-width:900px){.ap-table{min-height:0}}

/* Ventana para agendar */
.bk-wrap{display:flex;flex-direction:column;gap:14px}
.bk-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bk-step{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:650}
.bk-step i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);font-style:normal;font-size:12px}
.bk-step.on{color:#4b347a}.bk-step.on i{background:#6b4fa0;border-color:#6b4fa0;color:#fff}
.bk-step.done{color:var(--ok)}.bk-step.done i{border-color:var(--ok);color:var(--ok)}
.bk-arrow{color:var(--line)}
.bk-body{display:flex;flex-direction:column;gap:12px}
.bk-newrow{display:flex;align-items:center;gap:10px;margin-top:6px}
.bk-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.bk-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.bk-field input,.bk-field select{font:inherit;border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:var(--surface);color:var(--fg);min-width:0}
.bk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bk-grid .wide{grid-column:1/-1}
.bk-warn{background:#fff4d6;border:1px solid #e6c36a;color:#6b4a00;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.bk-warn[hidden]{display:none}
.bk-dup{display:flex;justify-content:space-between;align-items:center;gap:8px}
.bk-err{color:var(--crit);font-weight:600;font-size:13px}
.bk-weeklbl{flex:1;text-align:center}
.bk-days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.bk-day{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}
.bk-day small{color:var(--muted);font-size:11.5px}.bk-day.on{background:#efeaf7;border-color:#6b4fa0}.bk-day.on b,.bk-day.on small{color:#4b347a}
.bk-day.off{opacity:.55;cursor:default}
.bk-hours{display:flex;flex-direction:column;gap:10px}.bk-part{display:flex;flex-direction:column;gap:4px}
.bk-bar{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}
.bk-cell{border-radius:6px;border:1px solid transparent;padding:7px 2px;font-size:12px;font-variant-numeric:tabular-nums;text-align:center;position:relative;min-height:34px}
.bk-cell.busy{background:#e4e9e8;color:#7b8a87;cursor:default}
.bk-cell.free{background:#fff;border:1px dashed var(--ok);color:var(--ok);font-weight:650;cursor:pointer}
.bk-cell.free:hover{background:var(--ok-soft)}
.bk-cell.free.dim{opacity:.45;cursor:default}
.bk-cell.sel{background:#6b4fa0;color:#fff;border-color:#6b4fa0;font-weight:700}
.bk-cell.sel:not(:disabled){cursor:default}
.bk-cell.sel.first{overflow:visible;white-space:nowrap;z-index:2;text-align:left;padding-left:8px}
.bk-legend{display:flex;gap:14px;font-size:12px}
.bk-foot{display:contents}
.bk-sum{font-size:13px;font-weight:600;min-width:0;flex:1}
.md-foot .btn.primary,.bk-foot .btn.primary{background:#6b4fa0;border-color:#6b4fa0;color:#fff}
.md-foot .btn.primary:disabled{opacity:.5;cursor:default}
@media (max-width:640px){.bk-grid{grid-template-columns:1fr}.bk-bar{grid-template-columns:repeat(5,minmax(0,1fr))}.bk-days{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ap-grid .btn{padding:8px 6px;white-space:nowrap;font-size:13px}
.bk-cell.sel{box-shadow:5px 0 0 #6b4fa0;border-radius:0}
.bk-cell.sel:not(:has(+ .sel)){box-shadow:none;border-radius:0 6px 6px 0}
.bk-cell.sel.first{border-radius:6px 0 0 6px}.bk-cell.sel.first:not(:has(+ .sel)){border-radius:6px}
.md-foot>.tk-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;width:100%}
.md-foot>.bk-foot{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.bk-foot>.bk-err{flex-basis:100%}
.bk-foot .row,.tk-foot .tk-row{display:flex;gap:10px;align-items:center}

/* Calendario de mes, días desde hoy, leyenda con los cuadritos reales */
.cal{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface);box-shadow:0 8px 20px rgba(22,33,31,.1);max-width:320px;width:100%}
.cal-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}.cal-head b{flex:1;text-align:center}
.cal-nav{padding:4px 10px}.cal-close{border:0;background:none;font-size:18px;color:var(--muted);padding:0 4px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.cal-dow{text-align:center;font-size:11.5px;color:var(--muted);font-weight:700;padding:2px 0}
.cal-day{border:0;background:transparent;border-radius:50%;aspect-ratio:1;display:grid;place-items:center;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;color:var(--fg)}
.cal-day:hover:not(:disabled){background:#efeaf7}
.cal-day.today{background:#6b4fa0;color:#fff}.cal-day.on:not(.today){outline:2px solid #6b4fa0}.cal-day.today.on{box-shadow:0 0 0 2px #fff,0 0 0 4px #6b4fa0}
.cal-day.past{color:#b8c3c0;cursor:default}.cal-day.none{background:#e4e9e8;color:#8a9894;cursor:default}
.bk-week .row{align-items:center}.bk-calbtn{margin-left:auto}
.bk-day.today b{color:#4b347a}
.bk-key{display:inline-flex;align-items:center;gap:6px}
.bk-swatch{display:inline-block;width:22px;height:14px;border-radius:4px}
.bk-swatch.free{background:#fff;border:1px dashed var(--ok)}.bk-swatch.busy{background:#e4e9e8}.bk-swatch.sel{background:#6b4fa0}
.md-head{border-bottom:1px solid var(--line);padding-bottom:12px}.md-body{padding-top:14px}
.ag-weekbtn{border:0;background:none;padding:2px 6px;border-radius:6px;cursor:pointer;font:inherit;color:inherit}.ag-weekbtn:hover{background:var(--surface-2)}
.ag-title{position:relative}
.cal-pop{position:absolute;top:100%;left:0;z-index:30;margin-top:6px}
.brand-row{display:flex;align-items:center;gap:8px}.brand-logo{height:32px;width:32px;flex:none;display:block}
.login-logo{display:block;height:56px;width:56px;margin:0 0 8px}
.brand-row span{font-size:17px;white-space:nowrap}
.cal-day.today,.cal-day.today.none,.cal-day.today.past{background:transparent;color:#4b347a;font-weight:800;box-shadow:inset 0 0 0 2px #6b4fa0}
.cal-day.today.none{background:#e4e9e8}
.cal-day.on,.cal-day.on:not(.today){background:#6b4fa0;color:#fff;outline:0;box-shadow:none}.cal-day.today.on{box-shadow:0 0 0 2px #fff,0 0 0 4px #6b4fa0}

.cal-day.unk{border:1px dashed #c3ccc9}
.cal-legend{margin-top:8px;font-size:12px;line-height:1.35;color:#5b6a67}
.bk-week .row{scroll-margin-top:12px}.bk-err{background:#fdf0e6;border:1px solid #f0cba3;color:#7a4700;border-radius:10px;padding:10px 12px;font-size:13px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* Pendientes v2 (maqueta Maqueta_Pendientes_v2): la tarea se expande, un solo botón «Editar», pestaña Hechos y aviso con «Deshacer» */
.pl-it{cursor:pointer}.pl-it:hover{background:var(--surface-2)}.pl-it.open:hover{background:transparent}
.pl-body small.pl-ds.open{white-space:normal;overflow:visible;color:var(--fg);background:var(--surface-2);border-radius:8px;padding:8px 10px;margin-top:6px;line-height:1.45;font-size:13px}
.pl-acts{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.pl-ed{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 11px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--fg);font:600 13px inherit}
.pl-ed:hover{border-color:var(--accent);color:var(--accent)}
.pl-done{max-width:780px;overflow:hidden;padding:0}
.pl-grp{padding:10px 16px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted)}.pl-grp.foot{text-align:center;background:var(--surface);border-bottom:0}
.pl-drow{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line)}
.pl-dk{width:22px;height:22px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:13px;flex:none}
.pl-dtt{font-weight:600;text-decoration:line-through;text-decoration-color:var(--muted);color:var(--muted)}
.pl-meta{color:var(--muted);font-size:12px;margin-top:2px}
.pl-pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--muted);margin-left:6px}
.btn.sm{min-height:30px;padding:0 10px;font-size:13px}
.notice.act{pointer-events:auto}.notice.act button{border:0;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:0}
.pl-body small.pl-hist{white-space:normal;overflow:visible;color:var(--fg)}
