: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;
}


/* V7.1 Diagnóstico */
.diag-ok{background:#f2fff6;border-left:5px solid #1f7a3f}
.diag-warn{background:#fffaf0;border-left:5px solid #b87800}
.diag-error{background:#fff4f4;border-left:5px solid #a62424}
.diag-card{padding:14px;border-radius:10px;margin-bottom:12px}
.codebox{background:#101923;color:#d7f7d7;padding:14px;border-radius:10px;white-space:pre-wrap;overflow:auto;font-family:Consolas, monospace;font-size:13px}
.version-badge{display:inline-block;background:#0f3d5e;color:#fff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:bold}


/* V7.2 Producción VPS */
.prod-ok{background:#f2fff6;border-left:5px solid #1f7a3f}
.prod-warn{background:#fffaf0;border-left:5px solid #b87800}
.prod-error{background:#fff4f4;border-left:5px solid #a62424}
.prod-card{padding:14px;border-radius:10px;margin-bottom:12px}
.security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.security-item{background:#fff;border:1px solid #dfe8f2;border-radius:12px;padding:16px}


/* V7.3 Analítica y búsqueda dinámica */
.chart-box{background:#fff;border:1px solid #dfe8f2;border-radius:14px;padding:16px;margin-bottom:18px}
.bar-row{display:grid;grid-template-columns:120px 1fr 60px;gap:10px;align-items:center;margin:8px 0}
.bar-track{background:#eef3f8;border-radius:999px;height:18px;overflow:hidden}
.bar-fill{background:#0f3d5e;height:18px;border-radius:999px}
.autocomplete{position:relative}
.suggestions{position:absolute;z-index:50;background:#fff;border:1px solid #ccd6e2;border-radius:8px;width:100%;max-height:240px;overflow:auto;box-shadow:0 8px 18px rgba(0,0,0,.12)}
.suggestion-item{padding:9px;border-bottom:1px solid #eef3f8;cursor:pointer}
.suggestion-item:hover{background:#eef8ff}
.pagination{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}
.pagination a,.pagination span{padding:7px 10px;border-radius:7px;background:#eef3f8;text-decoration:none;color:#123}
.pagination .active{background:#0f3d5e;color:white}
.qr-box{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.month-day{background:#fff;border:1px solid #dfe8f2;border-radius:10px;min-height:120px;padding:8px}
.month-day strong{color:#0f3d5e}
.month-event{font-size:11px;background:#eef8ff;border-radius:6px;padding:4px;margin-top:4px}
@media(max-width:760px){.month-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:80px 1fr 40px}}

.verify-hero{background:linear-gradient(135deg,#0f3d5e,#198754);color:white;border-radius:18px;padding:28px;margin-bottom:20px}
.verify-badge{display:inline-block;background:#daf7e5;color:#0b6330;padding:8px 12px;border-radius:999px;font-weight:bold}
.verify-badge-danger{background:#ffdada;color:#7a1111}
.public-card{max-width:860px;margin:24px auto;background:#fff;border-radius:16px;padding:24px;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.cert-title{text-align:center;font-size:26px;font-weight:bold;color:var(--azul);margin:12px 0 20px;text-transform:uppercase}
.qr-mini{width:110px;height:110px;object-fit:contain}
@media print{.qr-mini{width:90px;height:90px}.cert-title{font-size:22px}}


/* V7.4.1 Certificado editable compacto */
.cert-doc{font-size:13px;line-height:1.38}
.cert-doc .cert-title{font-size:24px}
.cert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}
.cert-box{border:1px solid #d5dde8;border-radius:8px;padding:7px;background:#fbfdff}
.cert-box strong{display:block;font-size:11px;color:#0f3d5e}
.qr-print-box{text-align:center}
.qr-print-box img{width:115px;height:115px;object-fit:contain}
@media print{
    .cert-doc{font-size:11px;line-height:1.25}
    .cert-doc .card{box-shadow:none;border:0;padding:8px;margin:0}
    .cert-grid{grid-template-columns:repeat(4,1fr);gap:4px}
    .qr-print-box img{width:85px;height:85px}
    .signature-box{margin-top:20px}
}

/* V7.4.2 QR impreso en receta */
.rx-qr-print{ text-align:center; border:1px solid #d5dde8; border-radius:10px; padding:8px; background:#fff; width:145px; min-width:145px; }
.rx-qr-print img{ width:118px; height:118px; object-fit:contain; display:block; margin:0 auto 4px; }
.rx-meta-grid{ display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
@media print{
    .rx-qr-print{ width:95px; min-width:95px; padding:4px; border:1px solid #999; }
    .rx-qr-print img{ width:82px; height:82px; }
    .rx-meta-grid{ display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
    .rx-qr-print .small{ font-size:8px; line-height:1.1; }
}
/* V7.5 Receta Pro */
.rx-pro{
    font-size:13px;
    line-height:1.32;
}
.rx-header-pro{
    display:grid;
    grid-template-columns:110px 1fr 120px;
    gap:12px;
    align-items:start;
    border-bottom:3px solid #0f3d5e;
    padding-bottom:8px;
    margin-bottom:8px;
}
.rx-logo{
    max-width:100px;
    max-height:80px;
    object-fit:contain;
}
.rx-logo-inst{
    max-width:90px;
    max-height:65px;
    object-fit:contain;
}
.rx-title-pro{
    text-align:center;
}
.rx-title-pro h1{
    margin:0;
    font-size:22px;
    color:#0f3d5e;
    text-transform:uppercase;
}
.rx-subtitle{
    font-size:12px;
    color:#555;
}
.rx-patient-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
    margin:8px 0;
}
.rx-field{
    border:1px solid #d5dde8;
    border-radius:7px;
    padding:5px;
    background:#fbfdff;
}
.rx-field strong{
    display:block;
    color:#0f3d5e;
    font-size:10px;
    text-transform:uppercase;
}
.rx-copy-watermark{
    text-align:center;
    border:2px dashed #a62424;
    color:#a62424;
    font-weight:bold;
    padding:6px;
    border-radius:8px;
    margin:8px 0;
}
.rx-table-compact th,.rx-table-compact td{
    padding:5px;
    font-size:11px;
}
.rx-sign-row{
    display:grid;
    grid-template-columns:1fr 170px;
    gap:16px;
    align-items:end;
}
.rx-print-controls{
    background:#fff;
    border:1px solid #dfe8f2;
    padding:12px;
    border-radius:12px;
    margin-bottom:12px;
}
.rx-half-sheet .rx-pro{
    font-size:11px;
    line-height:1.18;
}
.rx-half-sheet .rx-header-pro{
    grid-template-columns:80px 1fr 95px;
}
.rx-half-sheet .rx-logo{
    max-width:75px;
    max-height:55px;
}
.rx-half-sheet .rx-title-pro h1{
    font-size:18px;
}
.rx-no-letterhead .rx-header-pro .rx-logo-wrap,
.rx-no-letterhead .rx-header-pro .rx-logo-inst-wrap{
    display:none;
}
.rx-no-letterhead .rx-header-pro{
    grid-template-columns:1fr;
}
@media print{
    .rx-print-controls{display:none!important}
    .rx-pro{font-size:11px;line-height:1.2}
    .rx-header-pro{grid-template-columns:85px 1fr 95px;gap:8px}
    .rx-logo{max-width:78px;max-height:58px}
    .rx-logo-inst{max-width:75px;max-height:50px}
    .rx-title-pro h1{font-size:18px}
    .rx-patient-grid{grid-template-columns:repeat(4,1fr);gap:4px}
    .rx-field{padding:4px}
    .rx-table-compact th,.rx-table-compact td{padding:3px;font-size:9px}
    .rx-qr-print{width:80px;min-width:80px;padding:3px}
    .rx-qr-print img{width:70px;height:70px}
    body.rx-media-half .container{max-width:760px}
}
