:root{
    --azul:#0f3d5e;
    --azul2:#173f5f;
    --amarillo:#f9b233;
    --gris:#f4f6f8;
    --texto:#1d2733;
    --ok:#1f7a3f;
    --danger:#a62424;
}
*{box-sizing:border-box}
body{font-family:Arial, sans-serif;background:var(--gris);margin:0;color:var(--texto)}
header{background:var(--azul);color:white;padding:16px 30px}
header h2{margin:0}
nav{background:var(--azul2);padding:10px 30px;display:flex;gap:10px;flex-wrap:wrap}
nav a{color:white;text-decoration:none;font-weight:bold;padding:8px 10px;border-radius:6px}
nav a:hover{background:rgba(255,255,255,.12)}
.container{padding:28px;max-width:1280px;margin:auto}
.card{background:white;padding:22px;border-radius:12px;box-shadow:0 3px 12px rgba(0,0,0,.08);margin-bottom:20px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.metric{background:#fff;padding:18px;border-radius:12px;box-shadow:0 3px 12px rgba(0,0,0,.08)}
.metric strong{font-size:30px;color:var(--azul)}
input,select,textarea{padding:10px;width:100%;margin-bottom:12px;border:1px solid #ccc;border-radius:7px;font-family:Arial}
textarea{min-height:76px}
button,.btn{background:var(--amarillo);border:none;padding:10px 16px;border-radius:7px;color:#222;font-weight:bold;cursor:pointer;text-decoration:none;display:inline-block;margin:2px}
.btn-sec{background:#e8edf3}
.btn-danger{background:#ffdddd;color:#850000}
.btn-blue{background:#0f3d5e;color:#fff}
.btn-ok{background:#ddffe8;color:#065b22}
table{width:100%;border-collapse:collapse;background:white;border-radius:10px;overflow:hidden}
th,td{padding:10px;border-bottom:1px solid #ddd;text-align:left;vertical-align:top}
th{background:var(--azul);color:white}
.alert{background:#ffe8e8;color:#8a0000;padding:10px;margin-bottom:15px;border-radius:6px}
.ok{background:#e9ffe8;color:#166000;padding:10px;margin-bottom:15px;border-radius:6px}
.warn{background:#fff6d9;color:#765600;padding:10px;margin-bottom:15px;border-radius:6px}
.badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#eef2f7;font-size:12px;font-weight:bold}
.badge-ok{background:#daf7e5;color:#0b6330}
.badge-warn{background:#fff1c7;color:#6c4a00}
.badge-danger{background:#ffdada;color:#7a1111}
hr{border:0;border-top:1px solid #ddd;margin:22px 0}
.small{font-size:12px;color:#677}
.print-only{display:none}
pre{background:#f0f3f7;padding:14px;border-radius:8px;white-space:pre-wrap}
@media print{
    nav,header,.no-print,.btn,button{display:none!important}
    body{background:white}
    .container{padding:0;max-width:100%}
    .card{box-shadow:none;border:1px solid #ddd}
    .print-only{display:block}
}


/* Ajustes V6.1: impresión profesional */
.doc-header{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-start;
}
.doc-brand h1,.doc-brand h2{margin:0 0 6px 0}
.doc-meta{text-align:right;font-size:13px;color:#445}
.doc-section-title{
    background:#eef3f8;
    padding:8px 10px;
    border-left:5px solid var(--azul);
    font-weight:bold;
    margin:18px 0 10px;
}
.signature-box{
    margin-top:45px;
    text-align:center;
}
.signature-line{
    border-top:1px solid #333;
    width:280px;
    margin:0 auto 8px;
}
.rx-watermark{
    position:absolute;
    right:30px;
    top:25px;
    font-size:56px;
    color:rgba(15,61,94,.08);
    font-weight:bold;
}
.two-col{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
@media print{
    @page { margin: 12mm; }
    .card{page-break-inside:avoid}
    table{font-size:12px}
    .doc-header{display:flex}
    .two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
}


/* V6.3 Catálogos y formularios médicos */
.inline-actions{display:flex;gap:6px;flex-wrap:wrap}
.form-section{border:1px solid #dde5ef;border-radius:12px;padding:16px;margin-bottom:16px;background:#fbfdff}
.med-row{border:1px solid #dfe8f2;border-radius:12px;padding:14px;margin-bottom:14px;background:#fff}
.help{font-size:12px;color:#667;margin-top:-8px;margin-bottom:10px}
.search-pill{background:#eef3f8;border-radius:999px;padding:7px 10px;display:inline-block;margin:3px;font-size:12px}


/* V6.4 Reportes */
.report-filter{
    background:#fbfdff;
    border:1px solid #dfe8f2;
    border-radius:12px;
    padding:16px;
    margin-bottom:18px;
}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}
.kpi-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 3px 12px rgba(0,0,0,.08)}
.kpi-card strong{font-size:28px;color:var(--azul);display:block}


/* V6.5 Agenda */
.calendar-day{
    background:#fff;
    border:1px solid #dfe8f2;
    border-radius:12px;
    padding:14px;
    min-height:120px;
}
.calendar-day h4{margin:0 0 8px 0;color:var(--azul)}
.cita-item{
    border-left:4px solid var(--azul);
    background:#f7fbff;
    padding:8px;
    border-radius:8px;
    margin-bottom:8px;
    font-size:13px;
}
.cita-status-PROGRAMADA{border-left-color:#0f3d5e}
.cita-status-CONFIRMADA{border-left-color:#1f7a3f}
.cita-status-ATENDIDA{border-left-color:#5b6470}
.cita-status-CANCELADA{border-left-color:#a62424;background:#fff5f5}
.cita-status-NO_ASISTIO{border-left-color:#b87800;background:#fff9e8}


/* V6.6 Documentos y consentimientos */
.doc-card{
    border:1px solid #dfe8f2;
    border-radius:12px;
    padding:14px;
    background:#fff;
    margin-bottom:12px;
}
.file-chip{
    display:inline-block;
    padding:6px 10px;
    background:#eef3f8;
    border-radius:999px;
    font-size:12px;
    margin:3px 4px 3px 0;
}
.consent-box{
    border:1px dashed #b8c7d8;
    padding:16px;
    border-radius:12px;
    background:#fbfdff;
    line-height:1.55;
}


/* V6.8 Calidad y validaciones */
.error-page{max-width:760px;margin:40px auto;background:#fff;border-radius:14px;padding:28px;box-shadow:0 4px 18px rgba(0,0,0,.12)}
.error-code{font-size:42px;font-weight:bold;color:#a62424;margin-bottom:8px}
.check-row-ok{background:#f3fff6}
.check-row-warn{background:#fffaf0}
.check-row-danger{background:#fff4f4}
.required:after{content:" *";color:#a62424;font-weight:bold}


/* V6.9 UX comercial */
.hero{
    background:linear-gradient(135deg,#0f3d5e,#1c6a93);
    color:white;
    border-radius:18px;
    padding:28px;
    margin-bottom:20px;
    box-shadow:0 8px 24px rgba(0,0,0,.16);
}
.hero h1{margin:0 0 8px;font-size:32px}
.hero p{margin:0;color:#e9f6ff}
.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:20px}
.quick-card{
    background:#fff;
    border:1px solid #dfe8f2;
    border-radius:14px;
    padding:18px;
    box-shadow:0 4px 14px rgba(0,0,0,.07);
    transition:.16s ease;
}
.quick-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.12)}
.quick-card h3{margin:0 0 8px;color:var(--azul)}
.quick-card p{font-size:13px;color:#667;min-height:34px}
.quick-card a{margin-top:8px}
.empty-state{
    background:#fbfdff;
    border:1px dashed #b8c7d8;
    border-radius:12px;
    padding:18px;
    text-align:center;
    color:#667;
}
.breadcrumb{
    font-size:13px;
    color:#667;
    margin-bottom:14px;
}
.breadcrumb a{color:var(--azul);font-weight:bold;text-decoration:none}
.action-bar{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    margin-top:10px;
}
.status-strip{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:10px;
}
.status-item{
    background:#f7fbff;
    border-left:4px solid var(--azul);
    padding:10px;
    border-radius:8px;
    font-size:13px;
}
@media(max-width:760px){
    nav{gap:5px;padding:8px}
    nav a{font-size:12px;padding:7px}
    .container{padding:14px}
    .hero{padding:20px}
    .hero h1{font-size:25px}
}


/* V7.0 Centro de ayuda y presentación */
.help-card{
    background:#fff;
    border:1px solid #dfe8f2;
    border-radius:14px;
    padding:18px;
    margin-bottom:14px;
}
.help-card h3{margin-top:0;color:var(--azul)}
.step-number{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--azul);
    color:white;
    width:28px;
    height:28px;
    border-radius:50%;
    font-weight:bold;
    margin-right:8px;
}
.feature-list li{margin-bottom:8px}
.commercial-quote{
    font-size:22px;
    line-height:1.35;
    color:var(--azul);
    font-weight:bold;
    background:#eef8ff;
    border-left:6px solid var(--azul);
    padding:18px;
    border-radius:10px;
}
.module-pill{
    display:inline-block;
    padding:8px 11px;
    border-radius:999px;
    background:#eef3f8;
    margin:4px;
    font-size:13px;
    font-weight:bold;
}
