/* ============================================================
   Copiloto de Ficha — Centro Médico Carampangue
   Borrador clínico transitorio. Identidad CMC: navy + teal.
   Montserrat (títulos) + Inter (cuerpo). Una sola página.
   ============================================================ */
:root{
  --aqua:#4FBECE; --aqua-deep:#2E9FB0; --blue:#1172AB; --navy:#0F3F68; --navy-deep:#0A2E4D;
  --coral:#F2825E; --coral-bg:#FCEBE3;
  --ink:#0A1A28; --muted:#5B6672; --faint:#93A1AD; --line:#E6E9EE; --line-soft:#EEF2F5;
  --bg:#F3F6F9; --card:#ffffff; --card-soft:#FAFCFD;
  --green:#1f9d6b; --green-bg:#e7f7f0; --amber:#c98a14; --amber-bg:#fdf4e3;
  --red:#d94c4c; --red-bg:#fdecec;
  --r-sm:10px; --r:16px; --r-lg:20px; --r-pill:999px;
  --sh-sm:0 1px 2px rgba(10,26,40,.06),0 1px 3px rgba(10,26,40,.08);
  --sh-md:0 4px 12px rgba(10,26,40,.08),0 2px 4px rgba(10,26,40,.06);
  --sh-lg:0 12px 32px rgba(10,26,40,.12),0 4px 8px rgba(10,26,40,.06);
  --grad-navy:linear-gradient(160deg,var(--navy-deep) 0%,var(--navy) 52%,var(--blue) 100%);
  --font-display:'Montserrat',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;
  font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--aqua);color:#fff}

/* ===== Header ===== */
.hero{position:relative;overflow:hidden;background:var(--grad-navy);color:#fff;
  border-bottom:3px solid var(--aqua);padding:20px 24px}
.hero::after{content:"";position:absolute;right:-60px;top:-80px;width:320px;height:320px;
  background:radial-gradient(circle at center,rgba(79,190,206,.30),transparent 62%);pointer-events:none}
.hero-in{display:flex;align-items:center;gap:16px;max-width:1400px;margin:0 auto;position:relative;z-index:1;flex-wrap:wrap}
.hero img{height:40px;width:auto;border-radius:8px;background:#fff;padding:5px}
.hero-txt h1{font-size:20px;font-weight:800}
.hero-txt p{margin:3px 0 0;color:rgba(255,255,255,.82);font-size:12.5px}
.hero-pills{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;
  padding:5px 11px;border-radius:var(--r-pill);background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);color:#fff;white-space:nowrap}
.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.pill.on .dot{background:#5ee6a8}
.pill.off .dot{background:#f2a05e}

/* ===== Layout ===== */
.wrap{max-width:1400px;margin:0 auto;padding:20px 24px 60px;
  display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}
@media (max-width:1000px){.wrap{grid-template-columns:1fr;padding:16px}}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-sm)}
.card-pad{padding:16px 18px}
.card + .card{margin-top:16px}

.eyebrow{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;
  color:var(--aqua-deep);display:flex;align-items:center;gap:7px;margin-bottom:10px}
.eyebrow::before{content:"";width:14px;height:2px;border-radius:2px;background:var(--aqua)}

/* ===== Banner transitorio ===== */
.transito{display:flex;gap:10px;align-items:flex-start;background:var(--amber-bg);
  border:1px solid #f0dcae;border-radius:var(--r-sm);padding:11px 14px;color:#7a5a10;
  font-size:12.5px;line-height:1.45;margin-bottom:16px}
.transito b{color:#5f4708}

/* ===== Paciente ===== */
.pac-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:4px}
.field label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.field input{border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 11px;
  font:inherit;background:var(--card-soft);color:var(--ink);min-width:120px}
.field input:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px #E6F6F8}
.field.grow{flex:1;min-width:180px}
.field.grow input{width:100%}

/* ===== Botones ===== */
.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);
  border-radius:var(--r-sm);padding:8px 14px;font-size:13px;font-weight:600;
  transition:all var(--ease) .15s;display:inline-flex;align-items:center;gap:7px}
.btn:hover{border-color:var(--aqua);background:var(--card-soft)}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.primary:hover{background:var(--blue);border-color:var(--blue)}
.btn.teal{background:var(--aqua-deep);color:#fff;border-color:var(--aqua-deep)}
.btn.teal:hover{background:var(--aqua)}
.btn.ghost{background:transparent}
.btn.sm{padding:5px 10px;font-size:12px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.copied{background:var(--green-bg)!important;border-color:var(--green)!important;color:var(--green)!important}

/* ===== Atajos (agrupados por tipo) ===== */
.atajos{display:flex;flex-wrap:wrap;gap:7px}
.atajo-grupo{display:flex;align-items:flex-start;gap:10px;padding:7px 0;
  border-top:1px solid var(--line-soft)}
.atajo-grupo:first-child{border-top:0;padding-top:0}
.atajo-tag{flex:0 0 74px;font-size:10.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;color:var(--faint);padding-top:6px}
@media (max-width:640px){
  .atajo-grupo{flex-direction:column;gap:5px}
  .atajo-tag{flex:none;padding-top:0}
}

/* Badge GES en el copilot */
.aviso.ges{background:#EEF6FF;color:#12456f;border:1px solid #bcd9f2}
.atajo{border:1px dashed var(--aqua-deep);background:#E6F6F8;color:#0d5c6a;
  border-radius:var(--r-pill);padding:5px 12px;font-size:12px;font-weight:600;
  transition:all var(--ease) .12s}
.atajo:hover{background:var(--aqua);color:#fff;border-style:solid}
.hint{font-size:11.5px;color:var(--faint);margin-top:8px}

/* ===== Ordenar con IA ===== */
.ia-box textarea{width:100%;min-height:90px;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:11px;font:inherit;resize:vertical;background:var(--card-soft);line-height:1.5}
.ia-box textarea:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px #E6F6F8}
.ia-actions{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
.aviso{font-size:12px;padding:8px 11px;border-radius:var(--r-sm);line-height:1.4}
.aviso.warn{background:var(--amber-bg);color:#7a5a10;border:1px solid #f0dcae}
.aviso.ok{background:var(--green-bg);color:#0d6b45;border:1px solid #bce8d3}

/* ===== Secciones ===== */
.grupo-tit{font-family:var(--font-display);font-size:12px;font-weight:800;color:var(--navy);
  text-transform:uppercase;letter-spacing:.08em;margin:18px 0 8px;padding-bottom:5px;
  border-bottom:1px solid var(--line-soft)}
.sec{margin-bottom:12px}
.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.sec-head label{font-size:12.5px;font-weight:700;color:var(--ink)}
.sec textarea{width:100%;min-height:52px;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:9px 11px;font:inherit;resize:vertical;background:var(--card);line-height:1.5;
  transition:border-color var(--ease) .12s}
.sec textarea:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px #E6F6F8}
.sec textarea.filled{background:#fbfdff}

.footer-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;
  border-top:1px solid var(--line-soft)}

/* ===== Sidebar: fichas recientes ===== */
.side{position:sticky;top:20px}
@media (max-width:1000px){.side{position:static}}
.ficha-item{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 12px;
  margin-bottom:9px;cursor:pointer;transition:all var(--ease) .12s;background:var(--card)}
.ficha-item:hover{border-color:var(--aqua);box-shadow:var(--sh-sm)}
.ficha-item.active{border-color:var(--aqua-deep);background:#F3FBFC}
.ficha-item .nom{font-weight:700;font-size:13.5px;color:var(--ink)}
.ficha-item .meta{font-size:11.5px;color:var(--muted);margin-top:3px;display:flex;justify-content:space-between;gap:8px}
.ttl{display:inline-flex;align-items:center;gap:5px;font-weight:600}
.ttl.warn{color:var(--amber)}
.ttl.ok{color:var(--green)}
.side-empty{font-size:12.5px;color:var(--faint);text-align:center;padding:20px 10px}

/* Briefing resultado */
.brief{margin-top:12px;font-size:12.5px;background:var(--card-soft);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:10px 12px;line-height:1.5}
.brief .b-nom{font-weight:700}
.brief .b-cita{padding:3px 0;border-top:1px dashed var(--line);color:var(--muted)}
.brief-copy{margin-top:8px}

.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--navy);color:#fff;padding:11px 20px;border-radius:var(--r-pill);
  font-size:13px;font-weight:600;box-shadow:var(--sh-lg);opacity:0;pointer-events:none;
  transition:all var(--ease) .25s;z-index:50}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===== Dictado (micrófono) ===== */
.sec-acc{display:flex;align-items:center;gap:6px}
.btn.mic{border-color:var(--line);background:var(--card)}
.btn.mic:hover{border-color:var(--aqua);background:#E6F6F8}
.btn.mic.rec{background:var(--red-bg);border-color:var(--red);color:var(--red);
  animation:pulso 1.1s ease-in-out infinite}
.btn.mic.busy{background:var(--amber-bg);border-color:var(--amber);color:var(--amber)}
@keyframes pulso{0%,100%{opacity:1}50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.btn.mic.rec{animation:none}}

/* ===== Escalas (modal) ===== */
.modal-back{position:fixed;inset:0;background:rgba(10,26,40,.55);z-index:60;
  display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}
.modal{background:var(--card);border-radius:var(--r);box-shadow:var(--sh-lg);
  width:100%;max-width:560px;padding:18px 20px;max-height:88vh;overflow:auto}
.modal-head{display:flex;align-items:center;justify-content:space-between;
  font-family:var(--font-display);font-size:17px;margin-bottom:6px}
.esc-items{display:flex;flex-direction:column;gap:9px;margin:12px 0}
.esc-item{border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:9px 11px;background:var(--card-soft)}
.esc-check{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;cursor:pointer;line-height:1.4}
.esc-check input{margin-top:2px;flex:0 0 auto}
.esc-lbl{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px;color:var(--muted)}
.esc-item select{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:inherit;background:#fff}
.esc-res{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#EEF6FF;
  border:1px solid #bcd9f2;border-radius:var(--r-sm);padding:12px 14px;color:#12456f;font-size:13.5px}
.esc-pt{font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1;color:var(--navy)}
