/* Documentos de la clínica: membrete, hoja, editor y firma (23-oct-2026, Fase BT) */
.cd-nav{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px;}
.cd-nav button{border:1px solid var(--border); background:var(--panel); padding:8px 14px; border-radius:999px; font:inherit; font-size:13px; font-weight:600; color:var(--ink-soft); cursor:pointer;}
.cd-nav button.active{background:var(--accent); border-color:var(--accent); color:#fff;}
.cd-grid{display:grid; grid-template-columns:minmax(300px,420px) 1fr; gap:22px; align-items:start;}
@media (max-width:980px){.cd-grid{grid-template-columns:1fr;}}
.cd-card{background:var(--panel); border:1px solid var(--border); border-radius:16px; padding:18px 20px; margin-bottom:16px;}
.cd-card h4{margin:0 0 12px; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); font-weight:800;}
.cd-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px;}
.cd-row > .cd-f{flex:1 1 120px; min-width:0;}
.cd-f label{display:block; font-size:12px; font-weight:700; color:var(--ink-soft); margin-bottom:4px;}
.cd-f input[type=text],.cd-f input[type=number],.cd-f select,.cd-f textarea{width:100%; padding:8px 10px; border:1px solid var(--border); border-radius:9px; font:inherit; font-size:13px; background:var(--panel); color:var(--ink); box-sizing:border-box;}
.cd-f textarea{resize:vertical; min-height:60px;}
.cd-f input[type=color]{width:100%; height:36px; padding:2px; border:1px solid var(--border); border-radius:9px; background:var(--panel);}
.cd-f small{display:block; font-size:11px; color:var(--ink-faint); margin-top:3px;}
.cd-seg{display:inline-flex; background:var(--panel-2); border:1px solid var(--border); border-radius:10px; padding:3px; gap:2px;}
.cd-seg button{border:none; background:none; padding:6px 12px; border-radius:7px; font:inherit; font-size:12.5px; font-weight:600; color:var(--ink-soft); cursor:pointer;}
.cd-seg button.active{background:var(--accent); color:#fff;}
.cd-img{display:flex; align-items:center; gap:10px; padding:10px; border:1px dashed var(--border); border-radius:12px; margin-bottom:10px; background:var(--panel-2);}
.cd-img .th{flex:none; width:72px; height:44px; border-radius:7px; background:#fff center/contain no-repeat; border:1px solid var(--border);}
.cd-img .nm{flex:1; min-width:0; font-size:12.5px;} .cd-img .nm b{display:block; font-size:13px;}
.cd-prev-wrap{position:sticky; top:12px;}
.cd-prev-box{background:#e9ecf4; border:1px solid var(--border); border-radius:16px; padding:14px; overflow:hidden;}
.cd-prev-cap{font-size:12px; color:var(--ink-faint); margin:8px 2px 0; text-align:center;}
.cd-scale{transform-origin:top left;}
.cd-actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:6px;}

/* ---- editor rico ---- */
.cd-tb{display:flex; gap:4px; flex-wrap:wrap; padding:6px; border:1px solid var(--border); border-bottom:none; border-radius:10px 10px 0 0; background:var(--panel-2);}
.cd-tb button{border:1px solid transparent; background:none; width:32px; height:30px; border-radius:7px; cursor:pointer; color:var(--ink); font-size:13px;}
.cd-tb button:hover{background:#fff; border-color:var(--border);}
.cd-tb .sep{width:1px; background:var(--border); margin:3px 4px;}
.cd-ed{min-height:260px; max-height:52vh; overflow:auto; border:1px solid var(--border); border-radius:0 0 10px 10px; padding:14px 16px; background:#fff; font-size:14px; line-height:1.55; outline:none;}
.cd-ed:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(109,91,246,.12);}
.cd-ed h3{font-size:15px; margin:14px 0 6px;} .cd-ed p{margin:0 0 8px;} .cd-ed table{border-collapse:collapse; width:100%;} .cd-ed td,.cd-ed th{border:1px solid #cfd4e4; padding:4px 7px;}
.cd-vars{display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 2px;}
.cd-vars button{border:1px solid var(--border); background:var(--panel); border-radius:999px; padding:3px 10px; font-size:11.5px; font-weight:600; color:var(--accent); cursor:pointer;}

/* ---- firma ---- */
.cd-firma-canvas{width:100%; max-width:420px; height:150px; border:1px dashed #b8bdd6; border-radius:12px; background:#fff; touch-action:none; cursor:crosshair; display:block;}
.cd-firma-img{max-height:90px; max-width:280px; display:block; margin:6px 0; border:1px solid var(--border); border-radius:8px; padding:4px; background:#fff;}

/* ---- tarjetas de tipo + lista en el expediente ---- */
.cd-tipos{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; margin-bottom:18px;}
.cd-tipo{display:flex; gap:10px; align-items:center; text-align:left; padding:12px 14px; border:1px solid var(--border); border-radius:14px; background:var(--panel); cursor:pointer; font:inherit; transition:.15s;}
.cd-tipo:hover{border-color:var(--accent); transform:translateY(-2px); box-shadow:0 10px 22px -14px rgba(16,20,37,.3);}
.cd-tipo i{flex:none; width:36px; height:36px; border-radius:11px; background:#eef0ff; color:#4b3fc9; display:flex; align-items:center; justify-content:center;}
.cd-tipo b{display:block; font-size:13px; color:var(--ink);} .cd-tipo span{font-size:11.5px; color:var(--ink-faint);}
.cd-lista-row{display:flex; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--border);}
.cd-lista-row:last-child{border-bottom:none;}
.cd-lista-row .info{flex:1; min-width:0;} .cd-lista-row .info b{display:block; font-size:13.5px;} .cd-lista-row .info span{font-size:12px; color:var(--ink-faint);}
.cd-folio{font-variant-numeric:tabular-nums; font-weight:700; font-size:12px; color:var(--accent);}

/* ---- modal editor / visor ---- */
.cd-modal-wide{max-width:1280px !important; width:96vw;}
.cd-editor-grid{display:grid; grid-template-columns:minmax(360px,1fr) minmax(320px,.9fr); gap:20px;}
@media (max-width:1000px){.cd-editor-grid{grid-template-columns:1fr;}}

/* ---- la HOJA (vista previa y base de impresión) ---- */
.dp-sheet{position:relative; background:#fff; box-shadow:0 6px 22px -8px rgba(16,20,37,.35); overflow:hidden; color:#111; box-sizing:border-box;}
.dp-sheet *{box-sizing:border-box;}
.dp-fondo{position:absolute; inset:0; background-repeat:no-repeat; background-position:center; background-size:100% 100%; pointer-events:none;}
.dp-enc,.dp-pie{position:absolute; left:0; right:0; z-index:2;}
.dp-enc{top:0;} .dp-pie{bottom:0;}
.dp-enc img,.dp-pie img{display:block; height:auto;}
.dp-enc-texto{padding:9mm var(--der) 0 var(--izq);}
.dp-enc-texto .nom{font-size:1.45em; font-weight:800; color:var(--acc); line-height:1.15;}
.dp-enc-texto .lin{font-size:.82em; color:#444; white-space:pre-line; margin-top:2px;}
.dp-enc-texto .reg{height:0; border-top:1.6px solid var(--acc); margin-top:5px;}
.dp-pie-texto{padding:0 var(--der) 7mm var(--izq); font-size:.78em; color:#555; text-align:center; white-space:pre-line;}
.dp-cuerpo{position:relative; z-index:1;}
.dp-titulo{font-size:1.35em; margin:0 0 .7em; color:var(--acc); text-align:center; font-weight:800;}
.dp-texto{text-align:left;}
.dp-texto p{margin:0 0 .65em;} .dp-texto h2{font-size:1.2em; margin:1em 0 .4em;} .dp-texto h3{font-size:1.05em; margin:.9em 0 .35em; color:var(--acc);} .dp-texto h4{margin:.8em 0 .3em;}
.dp-texto ul,.dp-texto ol{margin:0 0 .7em 1.3em; padding:0;} .dp-texto blockquote{margin:0 0 .7em; padding-left:.8em; border-left:3px solid #ccd;}
.dp-texto table{border-collapse:collapse; width:100%; margin:.4em 0 .8em;} .dp-texto td,.dp-texto th{border:1px solid #9aa; padding:3px 6px; font-size:.92em;}
.dp-firma{margin-top:1.6em; break-inside:avoid; page-break-inside:avoid; display:flex; gap:6mm; align-items:flex-end; justify-content:space-between;}
.dp-firmante{flex:1 1 55%; text-align:center; min-width:0;}
.dp-firmante .atte{margin-bottom:.4em;}
.dp-firmante img{max-height:22mm; max-width:60mm; display:block; margin:0 auto;}
.dp-firmante .linea{border-top:1px solid #111; margin:1mm auto 1.5mm; width:80%;}
.dp-firmante .nm{font-weight:700;} .dp-firmante .cr{font-size:.86em; color:#333; line-height:1.35;}
.dp-verif{flex:0 0 auto; width:56mm; border:1px solid #9aa; border-radius:2mm; padding:2.5mm; display:flex; gap:2.5mm; align-items:center; font-size:.68em; line-height:1.3; color:#222; background:#fff;}
.dp-verif .qr{flex:none; width:19mm; height:19mm;} .dp-verif .qr svg{width:100%; height:100%; display:block;}
.dp-verif .qr.ph{border:1px dashed #99a; display:flex; align-items:center; justify-content:center; font-size:.9em; color:#889; text-align:center;}
.dp-verif b{display:block; font-size:1.05em;} .dp-verif .cod{font-family:ui-monospace,Menlo,monospace; letter-spacing:.03em;}
.dp-marca{position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center; pointer-events:none; font-size:34mm; font-weight:900; letter-spacing:.05em; color:rgba(200,30,30,.10); transform:rotate(-32deg);}
.dp-flow{width:100%; border-collapse:collapse;} .dp-flow td{padding:0; vertical-align:top;}
#doc-print-root{display:none;}
@media print{
  body.doc-printing > *:not(#doc-print-root){display:none !important;}
  body.doc-printing #doc-print-root{display:block !important;}
  body.doc-printing{background:#fff !important; margin:0 !important;}
  body.doc-printing .dp-fondo.fx,body.doc-printing .dp-enc.fx,body.doc-printing .dp-pie.fx,body.doc-printing .dp-marca.fx{position:fixed;}
  body.doc-printing .dp-fondo.fx{top:0; left:0; right:0; bottom:0;}
  body.doc-printing .dp-sheet{box-shadow:none; overflow:visible;}
  body.doc-printing, body.doc-printing *{-webkit-print-color-adjust:exact; print-color-adjust:exact;}
}
