/* =============================================
   ClinData — styles.css  v2
   ============================================= */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root {
    --bg-base:        #f0f4f8;
    --bg-surface:     #ffffff;
    --bg-surface-2:   #f8fafc;
    --bg-sidebar:     #0f172a;
    --bg-sidebar-hover: #1e293b;
    --bg-sidebar-active: #1e40af;
    --text-primary:   #0f172a;
    --text-secondary: #475569;
    --text-muted:     #94a3b8;
    --brand:          #0ea5e9;
    --brand-dark:     #0369a1;
    --brand-light:    #e0f2fe;
    --accent:         #1d4ed8;
    --accent-hover:   #1e40af;
    --border:         #e2e8f0;
    --border-medium:  #cbd5e1;
    --success:        #22c55e;
    --warning:        #f59e0b;
    --error:          #ef4444;
    --triage-rojo:    #dc2626;
    --triage-naranja: #ea580c;
    --triage-amarillo:#ca8a04;
    --triage-verde:   #16a34a;
    --triage-azul:    #2563eb;
    --navbar-h:       58px;
    --sidebar-w:      224px;
    --radius:         8px;
    --radius-lg:      12px;
    --shadow-sm:      0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);
    --shadow:         0 4px 6px rgba(0,0,0,.07),0 2px 4px rgba(0,0,0,.05);
    --shadow-md:      0 10px 15px rgba(0,0,0,.08),0 4px 6px rgba(0,0,0,.05);
    --font: 'IBM Plex Sans', system-ui, sans-serif;
    --mono: 'IBM Plex Mono', monospace;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:14px;}
body{font-family:var(--font);background:var(--bg-base);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;}

/* ===== LOGIN ===== */
.login-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0f172a;z-index:1000;overflow:hidden;}
.login-bg-art{position:absolute;inset:0;pointer-events:none;}
.bg-circle{position:absolute;border-radius:50%;opacity:.07;background:var(--brand);}
.bg-circle.c1{width:600px;height:600px;top:-200px;right:-100px;}
.bg-circle.c2{width:400px;height:400px;bottom:-150px;left:-100px;}
.bg-circle.c3{width:250px;height:250px;top:50%;left:30%;}
.login-card{position:relative;z-index:1;width:440px;background:#1e293b;border:1px solid #334155;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 25px 50px rgba(0,0,0,.5);}
.login-brand{background:linear-gradient(135deg,#0c4a6e 0%,#0369a1 100%);padding:28px 32px;display:flex;align-items:center;gap:14px;border-bottom:1px solid rgba(255,255,255,.1);}
.login-brand h1{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.4px;}
.login-brand p{font-size:12px;color:rgba(255,255,255,.65);margin-top:2px;}
.login-form-wrap{padding:28px 32px;}
.login-form-wrap h2{font-size:18px;font-weight:600;color:#f1f5f9;margin-bottom:4px;}
.login-subtitle{font-size:13px;color:#94a3b8;margin-bottom:20px;}
.login-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:10px 14px;border-radius:var(--radius);font-size:13px;display:flex;align-items:center;gap:8px;margin-bottom:16px;}
.login-error.hidden{display:none;}
.login-form-wrap .form-group{margin-bottom:14px;}
.login-form-wrap label{display:block;font-size:12.5px;font-weight:500;color:#94a3b8;margin-bottom:6px;}
.login-form-wrap input{width:100%;background:#0f172a;border:1px solid #334155;border-radius:var(--radius);padding:10px 14px;font-size:14px;font-family:var(--font);color:#f1f5f9;outline:none;transition:border-color .15s;}
.login-form-wrap input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,165,233,.2);}
.input-password-wrap{position:relative;}
.input-password-wrap input{padding-right:44px;}
.toggle-pass{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#64748b;padding:0;display:flex;}
.btn-login{width:100%;background:var(--brand);color:#fff;border:none;border-radius:var(--radius);padding:12px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;margin-top:8px;}
.btn-login:hover{background:var(--brand-dark);}
.btn-login:active{transform:scale(.98);}
.login-demo-info{margin-top:18px;padding-top:16px;border-top:1px solid #334155;font-size:12px;color:#64748b;}
.demo-title{font-weight:600;margin-bottom:8px;color:#94a3b8;}
.demo-row{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.demo-role{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10.5px;font-weight:600;color:#fff;}
.role-medico-pill{background:#1d4ed8;}
.role-enfermero-pill{background:#0891b2;}
.role-admin-pill{background:#6d28d9;}
.login-demo-info code{font-family:var(--mono);background:#0f172a;padding:2px 6px;border-radius:4px;color:#7dd3fc;font-size:11px;}

/* ===== APP SHELL ===== */
.app-shell{display:flex;flex-direction:column;height:100vh;}
.app-shell.hidden{display:none;}
.hidden{display:none!important;}

/* NAVBAR */
.navbar{height:var(--navbar-h);background:#0f172a;border-bottom:1px solid #1e293b;display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0;z-index:100;}
.navbar-brand{display:flex;align-items:center;gap:10px;}
.brand-name{font-size:17px;font-weight:700;color:#f1f5f9;letter-spacing:-.3px;}
.brand-tagline{font-size:12px;color:#64748b;border-left:1px solid #334155;padding-left:10px;margin-left:4px;}
.navbar-right{display:flex;align-items:center;gap:12px;}
.user-badge{display:flex;align-items:center;gap:10px;background:#1e293b;padding:6px 12px 6px 6px;border-radius:20px;border:1px solid #334155;}
.user-avatar{width:28px;height:28px;background:var(--brand);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;}
.user-info{display:flex;flex-direction:column;line-height:1.2;}
.user-info span:first-child{font-size:12.5px;font-weight:500;color:#e2e8f0;}
.role-badge{font-size:10.5px;color:#94a3b8;}
.btn-logout{background:transparent;border:1px solid #334155;color:#94a3b8;padding:6px 12px;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;font-family:var(--font);transition:all .15s;}
.btn-logout:hover{background:#1e293b;color:#f1f5f9;border-color:#475569;}

/* BODY */
.app-body{flex:1;display:flex;overflow:hidden;}

/* SIDEBAR */
.sidebar{width:var(--sidebar-w);background:var(--bg-sidebar);display:flex;flex-direction:column;border-right:1px solid #1e293b;flex-shrink:0;}
.sidebar-nav{padding:12px 8px;display:flex;flex-direction:column;gap:2px;flex:1;}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:transparent;border:none;border-radius:var(--radius);color:#94a3b8;font-size:13px;font-family:var(--font);font-weight:500;cursor:pointer;text-align:left;transition:background .12s,color .12s;width:100%;}
.nav-item svg{flex-shrink:0;}
.nav-item:hover{background:var(--bg-sidebar-hover);color:#e2e8f0;}
.nav-item.active{background:var(--bg-sidebar-active);color:#fff;}
.sidebar-footer{padding:12px 16px;border-top:1px solid #1e293b;}
.auto-save-indicator{display:flex;align-items:center;gap:7px;font-size:11px;color:#64748b;}
.save-dot{width:7px;height:7px;border-radius:50%;background:var(--success);transition:background .3s;}

/* MAIN */
main{flex:1;overflow-y:auto;padding:28px 32px;}
.section{display:none;}
.section.active{display:block;}

/* SECTION HEADER */
.section-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px;}
.section-header h2{font-size:20px;font-weight:700;color:var(--text-primary);letter-spacing:-.3px;}
.section-subtitle{font-size:13px;color:var(--text-secondary);margin-top:3px;}
.header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0;}

/* BUTTONS */
.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:9px 16px;font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .12s,transform .1s;white-space:nowrap;}
.btn-primary:hover{background:var(--accent-hover);}
.btn-primary:active{transform:scale(.98);}
.btn-primary.btn-large{padding:12px 24px;font-size:14px;}
.btn-secondary{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-medium);border-radius:var(--radius);padding:9px 16px;font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .12s;white-space:nowrap;}
.btn-secondary:hover{background:var(--bg-surface-2);color:var(--text-primary);}
.btn-back{background:none;border:none;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;gap:6px;font-size:13px;font-family:var(--font);margin-bottom:6px;padding:0;transition:color .12s;}
.btn-back:hover{color:var(--text-primary);}

/* SEARCH */
.search-bar{display:flex;align-items:center;gap:10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:0 14px;margin-bottom:20px;color:var(--text-muted);transition:border-color .15s;}
.search-bar:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,165,233,.12);}
.search-bar input{flex:1;border:none;outline:none;padding:10px 0;font-size:14px;font-family:var(--font);color:var(--text-primary);background:transparent;}

/* PATIENT LIST */
.patient-list{display:flex;flex-direction:column;gap:8px;}
.patient-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:all .15s;}
.patient-card:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-1px);}
.patient-avatar{width:42px;height:42px;background:linear-gradient(135deg,var(--brand) 0%,var(--accent) 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0;}
.patient-info{flex:1;min-width:0;}
.patient-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.patient-meta{font-size:12.5px;color:var(--text-secondary);}
.patient-allergy-tag{font-size:11.5px;color:#b45309;background:#fef3c7;border:1px solid #fde68a;padding:2px 8px;border-radius:4px;display:inline-block;margin-top:4px;}
.dot{margin:0 4px;color:var(--border-medium);}
.patient-stats{display:flex;gap:20px;flex-shrink:0;}
.stat-item{display:flex;flex-direction:column;align-items:center;}
.stat-value{font-size:15px;font-weight:600;color:var(--text-primary);}
.stat-value.last-date{font-size:12px;font-weight:500;color:var(--text-secondary);}
.stat-label{font-size:10.5px;color:var(--text-muted);}
.patient-arrow{color:var(--text-muted);flex-shrink:0;}
.btn-add-queue{background:#f0fdf4;border:1px solid #86efac;color:#15803d;border-radius:var(--radius);padding:5px 10px;font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .12s;}
.btn-add-queue:hover{background:#dcfce7;}

/* FORM CARD */
.form-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;}
.form-card-body{padding:24px;}
.form-card-footer{padding:16px 24px;background:var(--bg-surface-2);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;}
.form-group.full{grid-column:1/-1;}
.form-group label{font-size:12.5px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px;}
.required{color:var(--error);}
.form-group input,.form-group select,.form-group textarea{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius);padding:9px 12px;font-size:14px;font-family:var(--font);color:var(--text-primary);outline:none;transition:border-color .15s,box-shadow .15s;width:100%;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,165,233,.12);}
.form-group textarea{resize:vertical;min-height:80px;}

/* ===== FILA DE CONSULTA ===== */
.consult-queue-list{display:flex;flex-direction:column;gap:10px;}
.consult-queue-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm);}
.queue-number{width:32px;height:32px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;}
.queue-patient-avatar{width:38px;height:38px;background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0;}
.queue-body{flex:1;min-width:0;}
.queue-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px;}
.queue-meta{font-size:12.5px;color:var(--text-secondary);margin-bottom:4px;}
.queue-reason{font-size:13px;color:var(--text-secondary);font-style:italic;}
.queue-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.queue-time{font-size:12px;color:var(--text-muted);font-family:var(--mono);}
.new-badge{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;}
.return-badge{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;}
.new-badge-sm{background:#eff6ff;color:#1d4ed8;font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:3px;margin-left:4px;}
.waiting-tag{font-size:12px;color:var(--text-muted);padding:5px 10px;}

/* ===== PATIENT FULL CARD ===== */
.patient-full-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:24px;box-shadow:var(--shadow-sm);}
.pfc-header{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border);}
.pfc-avatar{width:52px;height:52px;background:linear-gradient(135deg,var(--brand),var(--accent));border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0;}
.pfc-name{font-size:17px;font-weight:700;color:var(--text-primary);margin-bottom:6px;}
.pfc-row{display:flex;flex-wrap:wrap;gap:6px;}
.pfc-tag{background:var(--bg-surface-2);border:1px solid var(--border);padding:3px 10px;border-radius:20px;font-size:12.5px;color:var(--text-secondary);}
.pfc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.pfc-item{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;}
.pfc-item.pfc-alert{background:#fef2f2;border-color:#fca5a5;}
.pfc-item.pfc-nota{background:#fefce8;border-color:#fde047;}
.pfc-item.full-span{grid-column:1/-1;}
.pfc-item-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
.pfc-item-value{font-size:13px;color:var(--text-primary);line-height:1.4;}

/* ===== CONSULT HISTORY ===== */
.consultations-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.consultations-header h3{font-size:15px;font-weight:600;color:var(--text-primary);}
.consult-count{font-size:12px;color:var(--text-muted);background:var(--bg-surface-2);border:1px solid var(--border);padding:3px 10px;border-radius:20px;}
.consultation-list{display:flex;flex-direction:column;gap:8px;}
.consult-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;align-items:stretch;cursor:pointer;overflow:hidden;transition:all .15s;box-shadow:var(--shadow-sm);}
.consult-card:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-1px);}
.consult-card-left{padding:14px 16px;background:var(--bg-surface-2);border-right:1px solid var(--border);min-width:160px;display:flex;flex-direction:column;justify-content:center;gap:4px;}
.consult-number{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;}
.consult-date{font-size:12px;color:var(--text-secondary);}
.consult-card-body{flex:1;padding:12px 16px;display:flex;flex-direction:column;gap:6px;justify-content:center;}
.consult-field{display:flex;gap:8px;align-items:baseline;}
.consult-field-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;min-width:80px;}
.consult-field-value{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.consult-card-right{padding:12px 14px;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:6px;min-width:90px;}
.consult-author{font-size:11px;color:var(--text-muted);text-align:right;}
.status-active{background:#eff6ff;color:#1d4ed8;font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:3px;}
.status-closed{background:#f0fdf4;color:#15803d;font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:3px;}
.attach-count-badge{background:#f5f3ff;color:#6d28d9;font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:3px;margin-left:2px;}
.triage-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;margin-top:2px;}
.triage-badge.triage-rojo{background:var(--triage-rojo);}
.triage-badge.triage-naranja{background:var(--triage-naranja);}
.triage-badge.triage-amarillo{background:var(--triage-amarillo);}
.triage-badge.triage-verde{background:var(--triage-verde);}
.triage-badge.triage-azul{background:var(--triage-azul);}

/* ===== MEDICAL RECORD ===== */
.triage-alert-banner{border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;font-size:13px;font-weight:500;border:1px solid;}
.triage-banner-rojo{background:#fef2f2;border-color:#fca5a5;color:var(--triage-rojo);}
.triage-banner-naranja{background:#fff7ed;border-color:#fdba74;color:var(--triage-naranja);}
.triage-banner-amarillo{background:#fefce8;border-color:#fde047;color:var(--triage-amarillo);}
.triage-banner-verde{background:#f0fdf4;border-color:#86efac;color:var(--triage-verde);}
.triage-banner-azul{background:#eff6ff;border-color:#93c5fd;color:var(--triage-azul);}

/* Record summary bar */
.record-summary-bar{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:18px;}
.rsb-label{font-size:11px;font-weight:700;color:#0369a1;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;}
.rsb-items{display:flex;flex-direction:column;gap:7px;}
.rsb-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-secondary);}
.rsb-item span{font-size:16px;flex-shrink:0;}
.rsb-item.rsb-warn{color:#b45309;}
.rsb-item.rsb-nota{color:#854d0e;}

.record-form-wrap{display:flex;flex-direction:column;gap:14px;}
.record-section-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.record-section-title{padding:11px 18px;background:var(--bg-surface-2);border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:8px;}
.record-icon{font-size:15px;}
.field-hint{font-size:11.5px;font-weight:400;color:var(--text-muted);margin-left:4px;}
.tag-cie{margin-left:auto;background:var(--brand-light);color:var(--brand-dark);font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.4px;}
.tag-green{background:#f0fdf4;color:#166534;}
.record-section-card textarea{width:100%;border:none;outline:none;padding:14px 18px;font-size:13.5px;font-family:var(--font);color:var(--text-primary);resize:vertical;min-height:90px;background:transparent;line-height:1.6;}
.record-section-card textarea:disabled{background:var(--bg-surface-2);color:var(--text-secondary);cursor:not-allowed;}
.record-form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px;}
.readonly-note{font-size:13px;color:var(--text-muted);font-style:italic;padding:12px 0;}

/* Suggestions */
.suggestions-box{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);margin:0 18px;}
.suggestion-item{padding:9px 14px;cursor:pointer;font-size:13px;color:var(--text-primary);transition:background .1s;border-bottom:1px solid var(--border);}
.suggestion-item:last-child{border-bottom:none;}
.suggestion-item:hover{background:var(--brand-light);}
.preview-box{margin:8px 18px 12px;padding:10px 14px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text-secondary);line-height:1.6;}
.preview-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-right:8px;}
.abbr-valid{background:#dcfce7;color:#15803d;padding:1px 5px;border-radius:3px;font-weight:600;cursor:help;}
.abbr-invalid{background:#fee2e2;color:var(--triage-rojo);padding:1px 5px;border-radius:3px;font-weight:600;cursor:help;text-decoration:underline wavy;}

/* Attachments */
.attachments-wrap{padding:14px 18px;}
.attachments-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.attach-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius);}
.attach-icon{font-size:22px;flex-shrink:0;}
.attach-info{flex:1;min-width:0;}
.attach-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.attach-meta{font-size:11.5px;color:var(--text-muted);}
.attach-actions{display:flex;gap:6px;flex-shrink:0;}
.attach-btn{background:var(--bg-surface);border:1px solid var(--border-medium);color:var(--text-secondary);border-radius:var(--radius);padding:4px 10px;font-size:12px;font-family:var(--font);cursor:pointer;text-decoration:none;transition:all .12s;}
.attach-btn:hover{background:var(--brand-light);border-color:var(--brand);color:var(--brand-dark);}
.attach-btn.attach-delete:hover{background:#fef2f2;border-color:#fca5a5;color:var(--error);}
.attach-drop-zone{border:2px dashed var(--border-medium);border-radius:var(--radius-lg);padding:28px;text-align:center;color:var(--text-muted);transition:all .15s;cursor:pointer;}
.attach-drop-zone:hover,.attach-drop-zone.drag-over{border-color:var(--brand);background:var(--brand-light);color:var(--brand-dark);}
.attach-drop-zone p{font-size:13.5px;margin:8px 0 4px;}
.attach-hint{font-size:12px!important;color:var(--text-muted)!important;}
.attach-browse-label{color:var(--brand);font-weight:600;cursor:pointer;text-decoration:underline;}

/* ===== TRIAGE ===== */
.triage-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;}
.triage-card{margin:0;}
.triage-card.full-width{grid-column:1/-1;}
.triage-card-title{padding:12px 20px;background:var(--bg-surface-2);border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:8px;}
.triage-card .form-grid{padding:20px;gap:14px;}
.symptoms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 20px 4px;}
.symptom-check{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:12.5px;color:var(--text-secondary);transition:all .12s;}
.symptom-check:hover{background:var(--brand-light);border-color:var(--brand);}
.symptom-check input[type="checkbox"]{width:15px;height:15px;cursor:pointer;accent-color:var(--accent);flex-shrink:0;}
.symptom-check.red-flag{border-color:#fca5a5;}
.triage-actions{display:flex;justify-content:center;margin-bottom:24px;}
.triage-result{background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-md);margin-bottom:20px;}
.triage-result-rojo{border-color:var(--triage-rojo);}
.triage-result-naranja{border-color:var(--triage-naranja);}
.triage-result-amarillo{border-color:var(--triage-amarillo);}
.triage-result-verde{border-color:var(--triage-verde);}
.triage-result-azul{border-color:var(--triage-azul);}
.triage-result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:16px;}
.triage-level-badge{display:flex;align-items:center;gap:14px;padding:12px 20px;border-radius:var(--radius);color:#fff;}
.triage-rojo{background:var(--triage-rojo);}
.triage-naranja{background:var(--triage-naranja);}
.triage-amarillo{background:var(--triage-amarillo);}
.triage-verde{background:var(--triage-verde);}
.triage-azul{background:var(--triage-azul);}
.triage-level-badge span{font-size:28px;}
.triage-level-num{font-size:11px;font-weight:600;opacity:.85;text-transform:uppercase;letter-spacing:.5px;}
.triage-level-label{font-size:20px;font-weight:700;}
.triage-wait{text-align:right;}
.triage-wait-label{font-size:12px;color:var(--text-muted);}
.triage-wait-time{font-size:22px;font-weight:700;color:var(--text-primary);}
.triage-description{font-size:14px;color:var(--text-secondary);margin-bottom:16px;line-height:1.5;}
.triage-flags{margin-bottom:16px;}
.flags-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;}
.flags-list{display:flex;flex-wrap:wrap;gap:6px;}
.flag-tag{background:#fef3c7;color:#92400e;border:1px solid #fde68a;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;}
.triage-vitals-summary{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0;border-top:1px solid var(--border);margin-bottom:16px;}
.triage-vitals-summary span{font-size:13px;color:var(--text-secondary);}
.triage-vitals-summary b{color:var(--text-primary);}
.triage-result-actions{display:flex;justify-content:flex-end;gap:10px;}
.triage-queue{display:flex;flex-direction:column;gap:8px;}
.triage-queue-card{background:var(--bg-surface);border:1px solid var(--border);border-left:4px solid var(--border-medium);border-radius:var(--radius-lg);padding:16px 20px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-sm);}
.triage-queue-rojo{border-left-color:var(--triage-rojo);}
.triage-queue-naranja{border-left-color:var(--triage-naranja);}
.triage-queue-amarillo{border-left-color:var(--triage-amarillo);}
.triage-queue-verde{border-left-color:var(--triage-verde);}
.triage-queue-azul{border-left-color:var(--triage-azul);}
.triage-level-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;flex-shrink:0;}
.triage-circle-rojo{background:var(--triage-rojo);}
.triage-circle-naranja{background:var(--triage-naranja);}
.triage-circle-amarillo{background:var(--triage-amarillo);}
.triage-circle-verde{background:var(--triage-verde);}
.triage-circle-azul{background:var(--triage-azul);}
.triage-queue-body{flex:1;}
.triage-queue-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px;}
.triage-queue-meta{font-size:12.5px;color:var(--text-secondary);margin-bottom:4px;}
.triage-queue-label{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:4px;color:#fff;display:inline-block;}
.triage-queue-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;}
.triage-queue-time{font-size:12px;color:var(--text-muted);font-family:var(--mono);}
.btn-attend{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:6px 14px;font-size:12.5px;font-weight:600;font-family:var(--font);cursor:pointer;transition:background .12s;}
.btn-attend:hover{background:var(--accent-hover);}
.btn-dismiss{background:transparent;color:var(--text-muted);border:1px solid var(--border-medium);border-radius:var(--radius);padding:5px 12px;font-size:12px;font-family:var(--font);cursor:pointer;transition:all .12s;}
.btn-dismiss:hover{color:var(--error);border-color:var(--error);background:#fef2f2;}

/* ===== ADMIN ===== */
.user-table-wrap{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.user-table{width:100%;border-collapse:collapse;}
.user-table thead{background:var(--bg-surface-2);}
.user-table th{padding:12px 18px;text-align:left;font-size:11.5px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);}
.user-table td{padding:14px 18px;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text-primary);}
.user-table tr:last-child td{border-bottom:none;}
.user-table tr:hover td{background:var(--bg-surface-2);}
.username-code{font-family:var(--mono);background:var(--bg-surface-2);padding:2px 8px;border-radius:4px;font-size:12px;}
.role-pill{display:inline-block;padding:3px 10px;border-radius:4px;font-size:11.5px;font-weight:600;color:#fff;}
.table-actions{display:flex;gap:6px;align-items:center;}
.btn-table-edit{background:var(--brand-light);color:var(--brand-dark);border:1px solid #bae6fd;border-radius:var(--radius);padding:5px 12px;font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .12s;}
.btn-table-edit:hover{background:#bae6fd;}
.btn-table-delete{background:#fef2f2;color:var(--error);border:1px solid #fca5a5;border-radius:var(--radius);padding:5px 12px;font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .12s;}
.btn-table-delete:hover{background:#fee2e2;}
.self-label{font-size:12px;color:var(--text-muted);font-style:italic;}

/* ===== COLLAPSIBLE SECTIONS ===== */
.record-section-collapse-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px 8px;margin-left:auto;display:flex;align-items:center;justify-content:center;font-size:16px;transition:color .2s;flex-shrink:0;}
.record-section-collapse-btn:hover{color:var(--text-primary);}
.record-section-title{display:flex;align-items:center;width:100%;}
.record-section-body{overflow:hidden;transition:max-height .3s ease,opacity .3s ease;opacity:1;}
.record-section-card.collapsed .record-section-body{max-height:0;opacity:0;overflow:hidden;}
.record-section-card.collapsed .record-section-collapse-btn::before{content:'▶';}
.record-section-card:not(.collapsed) .record-section-collapse-btn::before{content:'▼';}

/* ===== MODALES ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-card{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:0 20px 40px rgba(0,0,0,.2);width:100%;max-width:440px;overflow:hidden;display:flex;flex-direction:column;max-height:90vh;}
.modal-card-wide{max-width:620px;}
.modal-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.modal-header h3{font-size:16px;font-weight:600;color:var(--text-primary);}
.modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:var(--radius);transition:color .12s;display:flex;}
.modal-close:hover{color:var(--text-primary);}
.modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;flex:1;}
.modal-body .form-grid{gap:14px;}
.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;background:var(--bg-surface-2);flex-shrink:0;}
.modal-patient-name{font-size:16px;font-weight:600;color:var(--text-primary);}

/* EMPTY STATE */
.empty-state{padding:48px 24px;text-align:center;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:14px;}
.empty-state p{font-size:14px;}

/* TOAST */
.toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:var(--radius);font-size:13.5px;font-weight:500;color:#fff;box-shadow:var(--shadow-md);transform:translateY(8px);opacity:0;transition:all .25s ease;z-index:9999;}
.toast-show{transform:translateY(0);opacity:1;}
.toast-success{background:#166534;}
.toast-error{background:#991b1b;}
.toast-info{background:#1e40af;}

/* SCROLLBAR */
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted);}

/* RESPONSIVE */
@media(max-width:900px){.triage-form-grid{grid-template-columns:1fr;}.symptoms-grid{grid-template-columns:1fr 1fr;}.patient-stats{display:none;}.brand-tagline{display:none;}.pfc-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){main{padding:16px;}.form-grid{grid-template-columns:1fr;}.form-group.full{grid-column:1;}.sidebar{width:56px;}.nav-item span{display:none;}.nav-item{justify-content:center;}}
/* =============================================
   ClinData — Estilos NOM-004-SSA3-2012 v3
   Expediente Clínico Electrónico
   ============================================= */

/* ===== ETIQUETA NOM ===== */
.nom-section-label{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;padding:14px 0 10px;border-bottom:2px solid var(--brand-light);margin-bottom:16px;}
.nom-tag{margin-left:auto;background:#eff6ff;color:#1d4ed8;font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.4px;border:1px solid #bfdbfe;}

/* ===== TABS DEL EXPEDIENTE ===== */
.record-tabs{display:flex;gap:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden;margin-bottom:0;box-shadow:var(--shadow-sm);}
.record-tab{flex:1;padding:11px 16px;background:var(--bg-surface-2);border:none;border-right:1px solid var(--border);border-bottom:2px solid transparent;font-size:13px;font-weight:500;font-family:var(--font);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:all .15s;white-space:nowrap;}
.record-tab:last-child{border-right:none;}
.record-tab:hover{background:var(--bg-surface);color:var(--text-primary);}
.record-tab.active{background:var(--bg-surface);color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.record-tab-content{display:none;}
.record-tab-content.active{display:flex;flex-direction:column;gap:14px;}

/* ===== BLOQUES DEL EXPEDIENTE ===== */
.record-block{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.record-block-header{display:flex;align-items:center;gap:14px;padding:14px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid var(--border);}
.record-block-icon{font-size:22px;flex-shrink:0;}
.record-block-title{font-size:14px;font-weight:700;color:var(--text-primary);}
.record-block-subtitle{font-size:11px;color:var(--text-muted);margin-top:2px;font-family:var(--mono);}
.record-block-body{padding:16px;display:flex;flex-direction:column;gap:12px;}

/* ===== SECCIONES DENTRO DE BLOQUES ===== */
.record-section-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.record-section-title{padding:9px 16px;background:var(--bg-surface-2);border-bottom:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.record-section-card textarea{width:100%;border:none;outline:none;padding:12px 16px;font-size:13px;font-family:var(--font);color:var(--text-primary);resize:vertical;min-height:80px;background:transparent;line-height:1.6;}
.record-section-card textarea:disabled{background:var(--bg-surface-2);color:var(--text-secondary);cursor:not-allowed;}
.record-section-card input[type="text"]:not(.apnp-detail):not(.med-input):not(.sistema-item input):not(.segmento-item input){width:calc(100% - 32px);margin:0 16px 12px;border:1px solid var(--border-medium);border-radius:var(--radius);padding:8px 10px;font-size:13px;font-family:var(--font);color:var(--text-primary);outline:none;transition:border-color .15s;}
.record-section-card input[type="text"]:focus,.record-section-card input[type="number"]:focus{border-color:var(--brand);box-shadow:0 0 0 2px rgba(14,165,233,.1);}

/* ===== APNP — GRID ===== */
.apnp-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:14px 16px 0;border-bottom:1px solid var(--border);}
.apnp-item{padding:10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
.apnp-item:nth-child(even){border-right:none;}
.apnp-item:nth-last-child(-n+2){border-bottom:none;}
.apnp-label{font-size:11.5px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;display:block;margin-bottom:6px;}
.apnp-radios{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:6px;}

/* Mayúsculas para campos de enfermedades */
#pp-deg,#pp-neo,#pp-ets{text-transform:uppercase;}
.apnp-radios label{display:flex;align-items:center;gap:4px;font-size:12.5px;color:var(--text-secondary);cursor:pointer;}
.apnp-radios input[type="radio"]{accent-color:var(--accent);cursor:pointer;}
.apnp-detail{width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;font-size:12px;font-family:var(--font);color:var(--text-primary);outline:none;transition:border-color .15s;background:var(--bg-surface-2);}
.apnp-detail:focus{border-color:var(--brand);background:var(--bg-surface);}

/* ===== APP — GRID ===== */
.app-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px;}
.app-grid .form-group{display:flex;flex-direction:column;gap:5px;}
.app-grid textarea{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:12.5px;font-family:var(--font);resize:vertical;outline:none;color:var(--text-primary);transition:border-color .15s;}
.app-grid textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px rgba(14,165,233,.1);}

/* ===== PADECIMIENTO ACTUAL ===== */
.padecimiento-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px;}
.padecimiento-grid .form-group{display:flex;flex-direction:column;gap:5px;}
.padecimiento-grid .full-col{grid-column:1/-1;}
.padecimiento-grid textarea{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:12.5px;font-family:var(--font);resize:vertical;outline:none;color:var(--text-primary);transition:border-color .15s;}
.padecimiento-grid textarea:focus{border-color:var(--brand);}

/* ===== REVISIÓN POR SISTEMAS ===== */
.sistemas-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;}
.sistema-item{display:flex;flex-direction:column;gap:4px;}
.sistema-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;}
.sistema-item input{border:1px solid var(--border);border-radius:var(--radius);padding:7px 10px;font-size:12.5px;font-family:var(--font);outline:none;color:var(--text-primary);transition:border-color .15s;}
.sistema-item input:focus{border-color:var(--brand);box-shadow:0 0 0 2px rgba(14,165,233,.1);}

/* ===== SIGNOS VITALES ===== */
.vitales-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:14px 16px;}
.vitales-grid.compact{grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 14px;}
.vital-item{display:flex;flex-direction:column;gap:5px;}
.vital-item label{font-size:11px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:4px;text-transform:uppercase;letter-spacing:.3px;}
.vital-unit{font-size:10px;color:var(--text-muted);font-weight:400;text-transform:none;}
.vital-item input{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:13.5px;font-family:var(--mono);font-weight:500;color:var(--text-primary);outline:none;text-align:center;transition:border-color .15s,box-shadow .15s;}
.vital-item input:focus{border-color:var(--brand);box-shadow:0 0 0 2px rgba(14,165,233,.12);}
.vital-item input:disabled{background:var(--bg-surface-2);cursor:not-allowed;}
.imc-field{background:var(--bg-surface-2)!important;font-size:11.5px!important;font-weight:600;color:var(--accent)!important;}

/* ===== EXPLORACIÓN POR SEGMENTOS ===== */
.exploracion-segmentos{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px;}
.segmento-item{display:flex;flex-direction:column;gap:5px;}
.segmento-item.full-col{grid-column:1/-1;}
.segmento-label{font-size:11.5px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;}
.segmento-item textarea{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:12.5px;font-family:var(--font);resize:vertical;outline:none;color:var(--text-primary);transition:border-color .15s;}
.segmento-item textarea:focus{border-color:var(--brand);}

/* ===== DIAGNÓSTICO ===== */
.diagnostico-tipos{display:flex;flex-direction:column;gap:12px;padding:14px 16px;}
.diagnostico-tipos .form-group{display:flex;flex-direction:column;gap:6px;}
.diagnostico-tipos textarea{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:13px;font-family:var(--font);resize:vertical;min-height:70px;outline:none;color:var(--text-primary);transition:border-color .15s;}
.diagnostico-tipos textarea:focus{border-color:var(--brand);}

/* ===== PRONÓSTICO ===== */
.pronostico-wrap{padding:14px 16px;display:flex;flex-direction:column;gap:10px;}
.pronostico-radios,.destino-radios{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px;}
.pronostico-opt{display:flex;align-items:center;gap:6px;padding:6px 14px;border:1.5px solid var(--border-medium);border-radius:20px;font-size:12.5px;color:var(--text-secondary);cursor:pointer;transition:all .12s;font-family:var(--font);}
.pronostico-opt:hover{border-color:var(--accent);color:var(--accent);}
.pronostico-opt input[type="radio"]{display:none;}
.pronostico-opt:has(input:checked){border-color:var(--accent);background:var(--brand-light);color:var(--accent);font-weight:600;}
.opt-bueno:has(input:checked){border-color:#16a34a;background:#f0fdf4;color:#15803d;}
.opt-reservado:has(input:checked){border-color:#d97706;background:#fffbeb;color:#b45309;}
.opt-grave:has(input:checked){border-color:#ea580c;background:#fff7ed;color:#c2410c;}
.opt-critico:has(input:checked){border-color:#dc2626;background:#fef2f2;color:#b91c1c;}
.pronostico-wrap textarea{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:12.5px;font-family:var(--font);resize:vertical;outline:none;color:var(--text-primary);}
.pronostico-wrap textarea:focus{border-color:var(--brand);}

/* ===== MEDICAMENTOS ===== */
.btn-add-med{margin-left:auto;background:#f0fdf4;border:1px solid #86efac;color:#15803d;border-radius:var(--radius);padding:5px 11px;font-size:11.5px;font-weight:600;font-family:var(--font);cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .12s;white-space:nowrap;}
.btn-add-med:hover{background:#dcfce7;border-color:#4ade80;}
.medicamentos-list{padding:12px 16px;display:flex;flex-direction:column;gap:8px;}
.med-empty{font-size:12.5px;color:var(--text-muted);font-style:italic;text-align:center;padding:16px 0;}
.med-row{display:flex;align-items:flex-start;gap:10px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;}
.med-num{width:22px;height:22px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;margin-top:6px;}
.med-fields{flex:1;display:grid;grid-template-columns:1fr .8fr .5fr .4fr .5fr .5fr;gap:6px;}
.med-input{border:1px solid var(--border);border-radius:var(--radius);padding:7px 8px;font-size:12.5px;font-family:var(--font);color:var(--text-primary);outline:none;transition:border-color .15s;width:100%;}
.med-input:focus{border-color:var(--brand);}
.med-delete{background:transparent;border:1px solid transparent;border-radius:var(--radius);padding:6px;cursor:pointer;color:var(--text-muted);transition:all .12s;flex-shrink:0;margin-top:2px;}
.med-delete:hover{color:var(--error);background:#fef2f2;border-color:#fca5a5;}
.tratamiento-libre-wrap{}
.tratamiento-libre-wrap textarea{min-height:70px;}

/* ===== INDICACIONES ===== */
.indicaciones-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px;}
.indicaciones-grid .form-group{display:flex;flex-direction:column;gap:5px;}
.indicaciones-grid input{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:12.5px;font-family:var(--font);color:var(--text-primary);outline:none;transition:border-color .15s;}
.indicaciones-grid input:focus{border-color:var(--brand);}

/* ===== TIPO DE NOTA BADGE ===== */
.tipo-nota-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10.5px;font-weight:600;background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe;margin-bottom:2px;}

/* ===== FORM-GROUPS WITHIN RECORD BLOCKS ===== */
.form-group {
    position: relative;
}

.form-group .apnp-label{font-size:11.5px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}

/* ===== CIE-10 AUTOCOMPLETADO ===== */
.autocomplete-wrapper { position: relative; }
.autocomplete-hint {
    position: absolute;
    top: 8px;
    left: 10px;
    right: 10px;
    color: #6b7280;
    font-style: italic;
    font-size: 13px;
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0.6;
}
.suggestions-box {
    background: white;
    border: 1px solid #ccc;
    border-top: none;
    border-radius: 0 0 4px 4px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    display: none;
    max-height: 240px;
    overflow-y: auto;
    z-index: 10000;
}

.suggestion-item {
    padding: 8px 12px;
    cursor: pointer;
    font-size: 13px;
    color: #333;
    transition: background-color 0.1s ease;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
}

.suggestion-item:last-child {
    border-bottom: none;
}

.suggestion-item:hover,
.suggestion-item.active {
    background-color: #f5f5f5;
}

.sugg-code {
    font-weight: 700;
    min-width: 50px;
    padding: 2px 6px;
    border-radius: 2px;
    font-size: 11px;
    flex-shrink: 0;
}

.sugg-code.sugg-abrev {
    background: #d4edda;
    color: #155724;
}

.sugg-code.sugg-cie {
    background: #cfe2ff;
    color: #084298;
}

.sugg-text {
    flex: 1;
    font-size: 13px;
    color: #333;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sugg-text mark {
    background: #fff3cd;
    color: #333;
    font-weight: 600;
    padding: 0 2px;
}

.diagnosticos-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0;
}

.pfc-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: #e0e7ff;
    border: 1px solid #c7d2fe;
    border-radius: var(--radius);
    font-size: 12.5px;
    color: #3730a3;
}

.pfc-tag b {
    font-weight: 700;
    white-space: nowrap;
}

.pfc-tag span {
    font-weight: 600;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.pfc-tag span:hover {
    opacity: 1;
}

/* ===== RESPONSIVE RECORD ===== */
@media(max-width:1100px){
    .vitales-grid{grid-template-columns:repeat(3,1fr);}
    .vitales-grid.compact{grid-template-columns:repeat(4,1fr);}
    .med-fields{grid-template-columns:1fr .7fr .5fr .5fr;}.med-input.med-freq,.med-input.med-dur{display:none;}
}
@media(max-width:900px){
    .apnp-grid{grid-template-columns:1fr;}
    .apnp-item{border-right:none;}
    .apnp-item:nth-child(even){border-right:none;}
    .app-grid{grid-template-columns:1fr;}
    .padecimiento-grid{grid-template-columns:1fr;}
    .padecimiento-grid .full-col{grid-column:1;}
    .sistemas-grid{grid-template-columns:1fr;}
    .vitales-grid{grid-template-columns:repeat(2,1fr);}
    .vitales-grid.compact{grid-template-columns:repeat(3,1fr);}
    .exploracion-segmentos{grid-template-columns:1fr;}
    .segmento-item.full-col{grid-column:1;}
    .indicaciones-grid{grid-template-columns:1fr;}
    .med-fields{grid-template-columns:1fr .7fr;}.med-input.med-conc,.med-input.med-dosis,.med-input.med-via,.med-input.med-freq,.med-input.med-dur{display:none;}
    .record-tab{font-size:11.5px;padding:9px 10px;gap:4px;}
    .diagnostico-tipos{gap:8px;}
}
/* ===== ESTILOS AHF ESTRUCTURADO (heredados de interfaz propia) ===== */
.rec-sub-body { display: flex; flex-direction: column; gap: 10px; }
.rec-field { display: flex; flex-direction: column; gap: 4px; }
.rec-field label {
    font-size: 11px; font-weight: 600; color: var(--text-muted);
    text-transform: uppercase; letter-spacing: .04em;
}
.rec-field input[type="text"],
.rec-field input[type="number"] {
    width: 100%; border: 1px solid var(--border-medium); border-radius: var(--radius);
    padding: 7px 10px; font-size: 13px; font-family: var(--font);
    color: var(--text-primary); background: var(--bg-surface); outline: none;
    text-transform: uppercase; height: 34px;
}
.rec-field input[type="text"]:focus,
.rec-field input[type="number"]:focus {
    border-color: var(--brand); box-shadow: 0 0 0 2px rgba(14,165,233,.1);
}
.rec-field input:disabled { background: var(--bg-surface-2); color: var(--text-secondary); cursor: not-allowed; }
.rec-field textarea {
    width: 100%; border: 1px solid var(--border-medium); border-radius: var(--radius);
    padding: 7px 10px; font-size: 13px; font-family: var(--font);
    color: var(--text-primary); background: var(--bg-surface); outline: none;
    text-transform: uppercase; resize: vertical; min-height: 58px; line-height: 1.5;
}
.rec-field textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(14,165,233,.1); }
.rec-field textarea:disabled { background: var(--bg-surface-2); color: var(--text-secondary); cursor: not-allowed; }
.rec-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rec-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }

@media (max-width: 900px) {
    .rec-grid2 { grid-template-columns: 1fr; }
    .rec-grid3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
    .rec-grid3 { grid-template-columns: 1fr; }
}
