/* ===== GOOGLE FONTS ===== */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Lato:ital,wght@0,300;0,400;0,700;1,400&display=swap');

/* ===== VARIABLES TACUARITA AZUL ===== */
:root {
  --navy:        #24273D;
  --navy-light:  #353761;
  --navy-lighter:#4A4D7A;
  --navy-pale:   #EAEBF3;
  --gold:        #C9A84C;
  --gold-light:  #F0DFA0;
  --bg:          #F0F1F8;
  --bg-card:     #FFFFFF;
  --bg-hover:    #F5F6FB;
  --text:        #1A1C2E;
  --text-muted:  #6B7280;
  --border:      #DDE0EE;
  --success:     #2D7A4F;
  --danger:      #C0392B;
  --warning:     #D68910;
  --info:        #2471A3;
  --sidebar-w:   268px;
  --radius:      10px;
  --radius-lg:   14px;
  --shadow:      0 2px 12px rgba(36,39,61,.08);
  --shadow-lg:   0 8px 32px rgba(36,39,61,.14);
  --transition:  all 0.18s ease;
}

/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:'Lato',sans-serif;background:var(--bg);color:var(--text);line-height:1.55;min-height:100vh}
a{cursor:pointer;text-decoration:none}
input,select,textarea,button{font-family:'Lato',sans-serif;font-size:1rem}
button{cursor:pointer}
h1,h2,h3,h4,h5,.brand-font{font-family:'Oswald',sans-serif;letter-spacing:.01em}

/* ===== UTILIDADES ===== */
.hidden{display:none!important}
.text-muted{color:var(--text-muted);font-size:.875rem}
.text-success{color:var(--success)}
.text-danger{color:var(--danger)}
.text-warning{color:var(--warning)}
.fw-bold{font-weight:700}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}

/* ===== BOTONES ===== */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.58rem 1.15rem;border-radius:8px;border:none;font-weight:600;font-family:'Lato',sans-serif;transition:var(--transition);white-space:nowrap;font-size:.9rem}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-light);transform:translateY(-1px);box-shadow:0 4px 12px rgba(36,39,61,.25)}
.btn-secondary{background:var(--gold);color:var(--navy)}
.btn-secondary:hover{background:#b8962f}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{background:#a93226}
.btn-ghost{background:transparent;color:var(--text);border:1.5px solid var(--border)}
.btn-ghost:hover{background:var(--bg-hover);border-color:var(--navy-pale)}
.btn-sm{padding:.32rem .75rem;font-size:.82rem}
.btn-xs{padding:.18rem .5rem;font-size:.75rem;border-radius:6px}
.btn-full{width:100%;justify-content:center}
.btn-icon{background:none;border:none;padding:.38rem;border-radius:7px;color:var(--text-muted);font-size:1.05rem;line-height:1;transition:var(--transition)}
.btn-icon:hover{background:var(--bg-hover);color:var(--text)}

/* ===== LOGIN ===== */
#login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-lighter) 60%,#2a4a3a 100%);padding:1rem}
.login-card{background:#fff;border-radius:var(--radius-lg);padding:2.5rem;width:100%;max-width:390px;box-shadow:var(--shadow-lg);text-align:center}
.login-logo{display:flex;justify-content:center;margin-bottom:.75rem}
.login-logo-icon{width:100px;height:100px;border-radius:18px;overflow:hidden;box-shadow:0 4px 18px rgba(36,39,61,.35);display:flex;align-items:center;justify-content:center;background:var(--navy)}
.login-logo-icon img{width:90px;height:90px;display:block;object-fit:contain}
.login-card h1{font-family:'Oswald',sans-serif;font-size:1.7rem;color:var(--navy);margin-bottom:.2rem;letter-spacing:.05em}
.login-tagline{color:var(--text-muted);margin-bottom:1.75rem;font-size:.875rem;font-style:italic}
.error-msg{color:var(--danger);font-size:.875rem;margin-bottom:.75rem;padding:.5rem;background:#fde8e8;border-radius:6px}

/* ===== APP LAYOUT ===== */
#app{display:flex;min-height:100vh}

/* ===== SIDEBAR ===== */
#sidebar{width:var(--sidebar-w);background:var(--navy);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:200;transition:transform .25s ease;overflow-y:auto;overflow-x:hidden}
#sidebar.collapsed{transform:translateX(calc(-1 * var(--sidebar-w)))}
.sidebar-header{display:flex;align-items:center;gap:.85rem;padding:1.2rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}
.sidebar-brand{flex:1;min-width:0}
.sidebar-name{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.05rem;color:#fff;letter-spacing:.08em;line-height:1.1}
.sidebar-tagline{font-size:.65rem;color:rgba(255,255,255,.5);font-style:italic;letter-spacing:.02em;line-height:1.2;margin-top:.15rem}
.sidebar-close{color:rgba(255,255,255,.5);margin-left:auto;flex-shrink:0;font-size:1.2rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.sidebar-close:hover,.sidebar-close:active{color:#fff;background:rgba(255,255,255,.15)}
.sidebar-user-info{padding:.75rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.15)}
.sidebar-user-name{font-size:.825rem;font-weight:700;color:#fff}
.sidebar-user-role{font-size:.72rem;color:var(--gold-light);margin-top:.1rem}
#main-nav{flex:1;padding:.5rem 0}
.nav-section-label{font-size:.65rem;font-weight:700;letter-spacing:.12em;color:rgba(255,255,255,.3);padding:.75rem 1.25rem .25rem;text-transform:uppercase}
.nav-item{display:flex;align-items:center;gap:.75rem;padding:.68rem 1.25rem;color:rgba(255,255,255,.7);transition:var(--transition);border-left:3px solid transparent;font-size:.875rem;font-weight:500}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-item.active{background:rgba(255,255,255,.12);color:#fff;border-left-color:var(--gold)}
.nav-icon{font-size:1rem;width:1.4rem;text-align:center;flex-shrink:0}
.sidebar-footer{padding:.85rem 1.1rem;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0}
.sidebar-footer .btn-ghost{color:rgba(255,255,255,.65);border-color:rgba(255,255,255,.2);width:100%;justify-content:center;font-size:.82rem}
.sidebar-footer .btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff}

/* ===== MAIN WRAPPER ===== */
#main-wrapper{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-height:100vh;transition:margin-left .25s ease}
#main-wrapper.full-width{margin-left:0}

/* ===== TOP BAR ===== */
#top-bar{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.75rem;padding:.7rem 1.35rem;box-shadow:0 1px 6px rgba(36,39,61,.06)}
#top-bar h2{flex:1;font-family:'Oswald',sans-serif;font-size:1.15rem;color:var(--navy);font-weight:600;letter-spacing:.03em}
#alert-badge-container{display:flex;gap:.5rem;align-items:center}

/* ===== CONTENT ===== */
#content{flex:1;padding:1.5rem;max-width:1260px;width:100%;margin:0 auto;padding-bottom:5rem}

/* ===== SECTIONS ===== */
.section{display:none}
.section.active{display:block}
.section-title{font-family:'Oswald',sans-serif;font-size:1.3rem;color:var(--navy);font-weight:600;margin-bottom:1.25rem;padding-bottom:.5rem;border-bottom:2px solid var(--navy-pale);display:flex;align-items:center;gap:.5rem}

/* ===== CARDS ===== */
.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:1.25rem;transition:var(--transition)}
.card:hover{box-shadow:0 4px 20px rgba(36,39,61,.1)}
.card-header{padding:.9rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.card-header h3{font-family:'Oswald',sans-serif;font-size:1rem;font-weight:600;color:var(--navy);letter-spacing:.02em}
.card-body{padding:1.25rem}

/* ===== STATS GRID ===== */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:1rem;margin-bottom:1.35rem}
.stat-card{background:#fff;border-radius:var(--radius);padding:1.15rem 1.25rem;border:1px solid var(--border);box-shadow:var(--shadow);border-top:3px solid var(--navy);transition:var(--transition)}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(36,39,61,.1)}
.stat-card.gold{border-top-color:var(--gold)}
.stat-card.success{border-top-color:var(--success)}
.stat-card.danger{border-top-color:var(--danger)}
.stat-card.warning{border-top-color:var(--warning)}
.stat-icon{font-size:1.5rem;margin-bottom:.5rem}
.stat-value{font-family:'Oswald',sans-serif;font-size:1.6rem;font-weight:700;color:var(--navy);line-height:1}
.stat-label{font-size:.775rem;color:var(--text-muted);margin-top:.25rem;font-weight:500}

/* ===== ALERTAS ===== */
#alerts-container{margin-bottom:1.1rem}
.alert-section{margin-bottom:.65rem}
.alert-section h4{font-size:.78rem;color:var(--text-muted);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.alert-cards{display:flex;flex-wrap:wrap;gap:.4rem}
.alert-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .75rem;border-radius:20px;font-size:.79rem;font-weight:600;font-family:'Lato',sans-serif}
.alert-pill.urgent{background:#fde8e8;color:#c0392b;border:1px solid #f5c6c6}
.alert-pill.warning{background:#fef3e2;color:#d68910;border:1px solid #f9d49b}
.alert-pill.info{background:#e8f4fd;color:#2471a3;border:1px solid #aed6f1}

/* ===== DASH GRID ===== */
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem}
.dash-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.25rem;border-bottom:1px solid var(--border);font-size:.875rem}
.dash-row:last-child{border-bottom:none}
.dash-row .label{color:var(--text-muted)}
.dash-row .value{font-weight:700;font-family:'Oswald',sans-serif;font-size:.95rem}

/* ===== ÚLTIMAS ACCIONES ===== */
.last-action-item{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;border-bottom:1px solid var(--border);font-size:.85rem}
.last-action-item:last-child{border-bottom:none}
.la-icon{width:32px;height:32px;border-radius:50%;background:var(--navy-pale);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}
.la-text{flex:1}
.la-horse{font-weight:700;color:var(--navy)}
.la-detail{color:var(--text-muted);font-size:.78rem}
.la-date{font-size:.75rem;color:var(--text-muted);white-space:nowrap}

/* ===== FINANZAS ===== */
.fin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;gap:.75rem;flex-wrap:wrap}
.month-nav{display:flex;align-items:center;gap:.75rem}
.month-label{font-family:'Oswald',sans-serif;font-weight:600;font-size:1.05rem;color:var(--navy);min-width:155px;text-align:center}
.fin-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.25rem}
.fin-summary-card{border-radius:var(--radius);padding:1.25rem;text-align:center}
.fin-summary-card.ingreso{background:linear-gradient(135deg,#e8f8f0,#d4f0e2);border:1px solid #a9dfbf}
.fin-summary-card.gasto{background:linear-gradient(135deg,#fde8e8,#fad4d4);border:1px solid #f5b7b1}
.fin-summary-card.balance{background:linear-gradient(135deg,#eaf3fb,#d4e9f7);border:1px solid #aed6f1}
.fin-summary-card .fs-label{font-size:.78rem;color:var(--text-muted);margin-bottom:.3rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.fin-summary-card .fs-value{font-family:'Oswald',sans-serif;font-size:1.5rem;font-weight:700}
.fin-summary-card.ingreso .fs-value{color:var(--success)}
.fin-summary-card.gasto .fs-value{color:var(--danger)}
.fin-summary-card.balance .fs-value{color:var(--info)}
.tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:2px solid var(--border)}
.tab{padding:.5rem 1.25rem;background:none;border:none;color:var(--text-muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px;transition:var(--transition);font-family:'Lato',sans-serif;font-size:.875rem}
.tab.active{color:var(--navy);border-bottom-color:var(--navy)}
.tab:hover{color:var(--navy)}
.transaccion-item{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.25rem;background:#fff;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:.45rem;transition:var(--transition)}
.transaccion-item:hover{border-color:var(--navy-pale);box-shadow:var(--shadow)}
.ti-left{display:flex;align-items:center;gap:.75rem}
.ti-badge{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.ti-badge.ingreso{background:#e8f8f0}
.ti-badge.gasto{background:#fde8e8}
.ti-desc{font-weight:600;font-size:.875rem}
.ti-meta{font-size:.775rem;color:var(--text-muted)}
.ti-monto{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.05rem}
.ti-monto.ingreso{color:var(--success)}
.ti-monto.gasto{color:var(--danger)}
.ti-actions{display:flex;gap:.2rem;margin-left:.5rem}

/* ===== CATEGORY BAR CHART ===== */
.cat-breakdown{margin-top:1.25rem}
.cat-breakdown h4{font-family:'Oswald',sans-serif;font-size:.95rem;color:var(--navy);margin-bottom:.75rem;letter-spacing:.02em}
.cat-item{margin-bottom:.6rem}
.cat-label-row{display:flex;justify-content:space-between;margin-bottom:.2rem;font-size:.8rem}
.cat-name{font-weight:600;color:var(--text)}
.cat-amount{color:var(--text-muted)}
.cat-bar-bg{height:7px;background:var(--border);border-radius:4px;overflow:hidden}
.cat-bar-fill{height:100%;border-radius:4px;transition:width .5s ease;background:var(--navy)}
.cat-bar-fill.ingreso{background:var(--success)}
.cat-bar-fill.gasto{background:var(--danger)}

/* ===== INVERSIONES ===== */
.inv-summary{background:var(--navy);color:#fff;border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1.25rem;display:flex;gap:2rem;flex-wrap:wrap}
.inv-stat .inv-stat-label{font-size:.78rem;opacity:.6;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.inv-stat .inv-stat-value{font-family:'Oswald',sans-serif;font-size:1.5rem;font-weight:700}
.inversion-item{background:#fff;border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.25rem;margin-bottom:.45rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;transition:var(--transition)}
.inversion-item:hover{border-color:var(--navy-pale);box-shadow:var(--shadow)}
.inv-body .inv-desc{font-weight:700;margin-bottom:.2rem;font-size:.9rem}
.inv-body .inv-meta{font-size:.8rem;color:var(--text-muted)}
.inv-right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}
.inv-monto{font-family:'Oswald',sans-serif;font-size:1.15rem;font-weight:700;color:var(--navy)}
.estado-badge{display:inline-block;padding:.15rem .6rem;border-radius:12px;font-size:.73rem;font-weight:700}
.estado-badge.pendiente{background:#fef3e2;color:#d68910}
.estado-badge.en-proceso{background:#e8f4fd;color:#2471a3}
.estado-badge.completado{background:#e8f8f0;color:#1e8449}

/* ===== HORSE GRID ===== */
.horse-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.1rem}
.horse-card{background:#fff;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;transition:var(--transition);border-left:3px solid transparent}
.horse-card:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(36,39,61,.1);border-left-color:var(--navy)}
.horse-card.archived{opacity:.58;border-left-color:var(--border)}
.hc-header{padding:.9rem 1.25rem;background:var(--bg-hover);display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--border)}
.hc-name{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.05rem;color:var(--navy)}
.hc-badges{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.2rem}
.badge{display:inline-block;padding:.13rem .52rem;border-radius:11px;font-size:.7rem;font-weight:700}
.badge-sexo{background:#e8f4fd;color:#1a5276}
.badge-pelaje{background:#fef3e2;color:#7d6608}
.badge-caracter{background:#f9ebea;color:#922b21}
.badge-archived{background:#f0f0f4;color:#6b7280}
.badge-gold{background:var(--gold-light);color:#7d6608}
.hc-body{padding:.9rem 1.25rem}
.hc-info-row{display:flex;justify-content:space-between;font-size:.835rem;padding:.22rem 0;border-bottom:1px solid var(--border)}
.hc-info-row:last-child{border-bottom:none}
.hc-info-row .key{color:var(--text-muted)}
.hc-info-row .val{font-weight:600;text-align:right}
.hc-alerts{padding:.6rem 1.25rem;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.3rem}
.hc-footer{padding:.7rem 1.25rem;border-top:1px solid var(--border);display:flex;gap:.4rem;flex-wrap:wrap}

/* ===== SECCIÓN TOOLBAR ===== */
.section-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap}
.toolbar-right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.search-box{display:flex;align-items:center;gap:.5rem;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);padding:.42rem .85rem;min-width:220px;transition:var(--transition)}
.search-box:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(36,39,61,.1)}
.search-box input{border:none;outline:none;width:100%;background:none;font-size:.875rem}
.toggle-label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-muted);cursor:pointer}

/* ===== FORMS ===== */
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:.845rem;font-weight:700;margin-bottom:.35rem;color:var(--text)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.58rem .85rem;border:1.5px solid var(--border);border-radius:8px;background:#fff;color:var(--text);transition:var(--transition);-webkit-appearance:none;appearance:none}
.pass-wrapper{position:relative;display:flex;align-items:center}
.pass-wrapper input{flex:1;padding-right:2.5rem}
.pass-toggle{position:absolute;right:.55rem;background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;padding:.2rem;color:var(--text-muted);transition:.15s}
.pass-toggle:hover{color:var(--navy)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(36,39,61,.1)}
.form-group textarea{resize:vertical;min-height:80px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-divider{border:none;border-top:1px solid var(--border);margin:1rem 0}
.form-hint{font-size:.79rem;color:var(--text-muted);margin-bottom:.75rem;font-style:italic}
.radio-group{display:flex;gap:.75rem;margin-top:.25rem}
.radio-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.9rem;font-weight:600}
.radio-card-label{display:flex;align-items:center;gap:.5rem;flex:1;padding:.65rem 1rem;border:2px solid var(--border);border-radius:10px;cursor:pointer;font-size:.9rem;font-weight:600;transition:.15s;background:#fff}
.radio-card-label:has(input:checked){border-color:var(--navy);background:var(--navy-pale);color:var(--navy)}
.radio-card-label input{accent-color:var(--navy)}
.box-counter{display:inline-flex;align-items:center;gap:.4rem;background:#f0f4ff;border:1.5px solid #c7d2fe;border-radius:8px;padding:.35rem .85rem;color:var(--navy);font-weight:600}

/* ===== MODALS ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(26,28,46,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto;backdrop-filter:blur(2px)}
.modal{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.modal-lg{max-width:680px}
.modal-sm{max-width:390px}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.35rem;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-hover);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.modal-header h3{font-family:'Oswald',sans-serif;font-size:1.1rem;font-weight:600;color:var(--navy)}
.modal-tabs{display:flex;border-bottom:2px solid var(--border);flex-shrink:0}
.mtab{flex:1;padding:.65rem;border:none;background:none;color:var(--text-muted);font-weight:700;font-size:.845rem;border-bottom:3px solid transparent;margin-bottom:-2px;transition:var(--transition);font-family:'Lato',sans-serif}
.mtab.active{color:var(--navy);border-bottom-color:var(--navy);background:var(--bg-hover)}
.modal-body{flex:1;overflow-y:auto;padding:1.35rem}
.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.35rem;border-top:1px solid var(--border);flex-shrink:0}
.mtab-content{display:none}
.mtab-content.active{display:block}

/* ===== SANIDAD ===== */
.sanidad-section{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}
.sanidad-section:last-child{border-bottom:none;margin-bottom:0}
.sanidad-section h4{font-family:'Oswald',sans-serif;font-size:.95rem;font-weight:600;color:var(--navy);margin-bottom:.75rem}

/* ===== DETALLE CABALLO ===== */
.detalle-section{margin-bottom:1.5rem}
.detalle-section h4{font-family:'Oswald',sans-serif;font-size:.82rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}
.detalle-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem}
.detalle-row{display:flex;flex-direction:column;padding:.35rem 0}
.detalle-row .dk{font-size:.75rem;color:var(--text-muted);font-weight:600}
.detalle-row .dv{font-weight:700;font-size:.875rem;color:var(--text)}
.historial-table{width:100%;border-collapse:collapse;font-size:.845rem;margin-top:.5rem}
.historial-table th{text-align:left;padding:.5rem .75rem;background:var(--bg-hover);border-bottom:2px solid var(--border);font-size:.76rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.historial-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border)}
.historial-table tr:last-child td{border-bottom:none}
.historial-table tr:hover td{background:var(--bg-hover)}
.add-event-btn{margin-top:.5rem;font-size:.8rem}

/* ===== USUARIOS ===== */
.usuario-card{background:#fff;border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.25rem;margin-bottom:.45rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:var(--transition)}
.usuario-card:hover{border-color:var(--navy-pale);box-shadow:var(--shadow)}
.uc-left{display:flex;align-items:center;gap:.85rem}
.uc-avatar{width:44px;height:44px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Oswald',sans-serif;font-weight:700;font-size:1rem;flex-shrink:0}
.uc-nombre{font-weight:700;font-size:.9rem}
.uc-meta{font-size:.78rem;color:var(--text-muted);margin-top:.1rem}
.role-badge{display:inline-block;padding:.2rem .65rem;border-radius:12px;font-size:.72rem;font-weight:700}
.role-badge.duena{background:#f9ebea;color:#922b21}
.role-badge.empleado{background:#e8f4fd;color:#1a5276}
.role-badge.propietario{background:#e8f8f0;color:#1e8449}
.role-badge.veterinario{background:#f3e8ff;color:#7c3aed}

/* ===== VETERINARIA ===== */
.vet-horse-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1rem;overflow:hidden;transition:.2s}
.vet-horse-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);border-color:#a5b4fc}
.vet-card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:linear-gradient(135deg,#1e3a5f 0%,#2d5a8e 100%);color:#fff;gap:1rem;flex-wrap:wrap}
.vet-horse-info{display:flex;align-items:center;gap:.85rem}
.vet-horse-avatar{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;flex-shrink:0}
.vet-horse-name{font-size:1.1rem;font-weight:700;line-height:1.2}
.vet-horse-meta{font-size:.78rem;opacity:.8;margin-top:.15rem}
.vet-card-body{padding:1rem 1.25rem}
.vet-quick-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:.85rem}
.vet-stat{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;padding:.6rem .85rem;text-align:center}
.vet-stat-label{display:block;font-size:.72rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}
.vet-stat-val{display:block;font-size:.88rem;font-weight:700;color:var(--navy)}
.vet-alertas{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}
.vet-alerta-chip{background:#fff3cd;border:1.5px solid #ffc107;color:#856404;border-radius:20px;padding:.2rem .75rem;font-size:.78rem;font-weight:600}
.vet-quick-actions{display:flex;flex-wrap:wrap;gap:.4rem;padding-top:.75rem;border-top:1px solid var(--border)}
@media(max-width:768px){.vet-quick-stats{grid-template-columns:repeat(2,1fr)}}

/* ===== FARMACIA / INSUMOS ===== */
.ins-summary-bar{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}
.ins-sum-chip{display:flex;align-items:center;gap:.65rem;background:#f0f4ff;border:1.5px solid #c7d2fe;border-radius:12px;padding:.55rem 1rem}
.ins-sum-chip.danger{background:#fef2f2;border-color:#fca5a5}
.ins-sum-chip.accent{background:#f5f3ff;border-color:#c4b5fd}
.iss-icon{font-size:1.4rem}
.iss-val{font-size:1.1rem;font-weight:700;color:var(--navy);line-height:1}
.iss-label{font-size:.72rem;color:var(--text-muted);margin-top:.1rem}

.ins-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);margin-bottom:.85rem;padding:1rem 1.25rem;transition:.15s}
.ins-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.08);border-color:#a5b4fc}
.ins-card-low{border-left:4px solid var(--danger);background:#fffafa}
.ins-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.65rem;gap:1rem}
.ins-nombre{font-size:1.05rem;font-weight:700;color:var(--navy)}
.ins-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.25rem}
.ins-tipo-badge{font-size:.7rem;font-weight:700;padding:.15rem .55rem;border-radius:8px;background:#e0e7ff;color:#3730a3;text-transform:capitalize}
.ins-prov{font-size:.76rem;color:var(--text-muted)}
.ins-stock-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem}
.ins-stock-numbers{display:flex;align-items:baseline;gap:.4rem}
.ins-stock-val{font-size:1.35rem;font-weight:800;color:var(--navy)}
.ins-stock-total{font-size:.78rem;color:var(--text-muted)}
.ins-costo{font-size:.78rem;font-weight:600;color:#7c3aed;background:#f5f3ff;padding:.15rem .55rem;border-radius:8px;border:1px solid #c4b5fd}
.ins-costo.sin-precio{color:#92400e;background:#fffbeb;border-color:#fcd34d}
.ins-bar-bg{height:8px;background:#e2e8f0;border-radius:99px;margin-bottom:.65rem;overflow:hidden}
.ins-bar-fill{height:100%;background:linear-gradient(90deg,#4f46e5,#7c3aed);border-radius:99px;transition:width .4s}
.ins-bar-low{background:linear-gradient(90deg,#ef4444,#f97316)}
.ins-notas{font-size:.78rem;color:var(--text-muted);font-style:italic;margin-bottom:.5rem}
.ins-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--border)}
.ins-card-agotado{border-left:4px solid #dc2626;background:#fff5f5;opacity:.9}
.ins-agotado-badge{font-size:.7rem;font-weight:700;background:#dc2626;color:#fff;padding:.15rem .55rem;border-radius:8px;vertical-align:middle}
.ins-bajo-badge{font-size:.7rem;font-weight:700;background:#f59e0b;color:#fff;padding:.15rem .55rem;border-radius:8px;vertical-align:middle}
.stock-alert-badge{display:inline-flex;align-items:center;gap:.35rem;background:#fef3c7;border:1.5px solid #f59e0b;color:#92400e;border-radius:20px;padding:.25rem .85rem;font-size:.78rem;font-weight:700;cursor:pointer;transition:.15s}
.stock-alert-badge:hover{background:#fde68a}

/* ===== PENSIONES ===== */
.pension-row{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1.25rem;border-bottom:1px solid var(--border);font-size:.875rem}
.pension-row:last-child{border-bottom:none}
.pr-name{font-weight:700;font-size:.875rem}
.pr-detail{color:var(--text-muted);font-size:.77rem}
.pr-right{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.pago-badge{display:inline-block;padding:.18rem .6rem;border-radius:12px;font-size:.72rem;font-weight:700}
.pago-badge.pagado{background:#e8f8f0;color:#1e8449}
.pago-badge.pendiente{background:#fef3e2;color:#d68910}
.pago-badge.vencido{background:#fde8e8;color:#c0392b}

/* ===== CONCURSOS ===== */
.concurso-item{background:#fff;border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.25rem;margin-bottom:.45rem;transition:var(--transition);border-left:3px solid var(--gold)}
.concurso-item:hover{box-shadow:var(--shadow);border-left-color:var(--navy)}
.con-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}
.con-nombre{font-family:'Oswald',sans-serif;font-weight:700;font-size:1rem;color:var(--navy)}
.con-fecha{font-size:.8rem;color:var(--text-muted)}
.con-meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.82rem;color:var(--text-muted);margin-bottom:.4rem}
.con-meta span{display:flex;align-items:center;gap:.25rem}
.resultado-badge{display:inline-block;padding:.2rem .65rem;border-radius:12px;font-size:.73rem;font-weight:700}
.resultado-badge.primero{background:#fff8e1;color:#c49a00;border:1px solid #f9d49b}
.resultado-badge.segundo{background:#f3f3f3;color:#666;border:1px solid #ddd}
.resultado-badge.tercero{background:#fdf0e8;color:#c0622b;border:1px solid #f5c6a0}
.resultado-badge.participo{background:#e8f4fd;color:#2471a3;border:1px solid #aed6f1}
.resultado-badge.otro{background:#f5f5f5;color:#6b7280;border:1px solid #e0e0e0}
.con-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.25rem}
.con-stat-card{background:var(--navy);color:#fff;border-radius:var(--radius);padding:1rem 1.25rem;text-align:center}
.con-stat-card .cs-val{font-family:'Oswald',sans-serif;font-size:1.4rem;font-weight:700}
.con-stat-card .cs-label{font-size:.75rem;opacity:.65;text-transform:uppercase;letter-spacing:.05em}

/* ===== ACTIVIDADES ===== */
.actividad-item{background:#fff;border-radius:var(--radius);border:1px solid var(--border);padding:.85rem 1.25rem;margin-bottom:.4rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;transition:var(--transition)}
.actividad-item:hover{border-color:var(--navy-pale);box-shadow:var(--shadow)}
.act-icon{width:38px;height:38px;border-radius:50%;background:var(--navy-pale);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.act-body{flex:1;min-width:0}
.act-tipo{font-weight:700;font-size:.875rem;color:var(--navy)}
.act-meta{font-size:.78rem;color:var(--text-muted);margin-top:.1rem}
.act-monto{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.1rem;color:var(--success);white-space:nowrap}

/* ===== AGENDA ===== */
.agenda-filter-bar{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}
.agenda-filter{padding:.35rem .85rem;border-radius:20px;border:1.5px solid var(--border);background:#fff;font-size:.82rem;font-weight:600;cursor:pointer;transition:var(--transition);color:var(--text-muted)}
.agenda-filter.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.agenda-event{display:flex;align-items:center;gap:.85rem;padding:.8rem 1.25rem;background:#fff;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:.4rem;border-left:3px solid var(--border);transition:var(--transition)}
.agenda-event:hover{box-shadow:var(--shadow)}
.agenda-event.vencido{border-left-color:var(--danger);background:#fffafa}
.agenda-event.esta-semana{border-left-color:var(--warning);background:#fffdf5}
.agenda-event.este-mes{border-left-color:var(--gold);background:#fffef5}
.agenda-event.futuro{border-left-color:var(--success);background:#f7fff9}
.ae-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.ae-icon.vencido{background:#fde8e8}
.ae-icon.esta-semana{background:#fef3e2}
.ae-icon.este-mes{background:var(--gold-light)}
.ae-icon.futuro{background:#e8f8f0}
.ae-body{flex:1}
.ae-horse{font-weight:700;font-size:.875rem;color:var(--navy)}
.ae-tipo{font-size:.8rem;color:var(--text-muted)}
.ae-right{text-align:right}
.ae-date{font-weight:700;font-size:.875rem;color:var(--text)}
.ae-days{font-size:.75rem;margin-top:.1rem}
.ae-days.vencido{color:var(--danger)}
.ae-days.esta-semana{color:var(--warning)}
.ae-days.este-mes{color:var(--gold)}
.ae-days.futuro{color:var(--success)}

/* ===== REPORTES ===== */
.rep-year-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.rep-year-label{font-family:'Oswald',sans-serif;font-size:1.4rem;font-weight:700;color:var(--navy);min-width:80px;text-align:center}
.rep-table{width:100%;border-collapse:collapse;font-size:.875rem;margin-bottom:1.5rem}
.rep-table th{text-align:left;padding:.65rem 1rem;background:var(--navy);color:#fff;font-family:'Oswald',sans-serif;font-size:.82rem;letter-spacing:.04em}
.rep-table td{padding:.58rem 1rem;border-bottom:1px solid var(--border)}
.rep-table tr:hover td{background:var(--bg-hover)}
.rep-table tr:last-child td{background:var(--bg-hover);font-weight:700;font-family:'Oswald',sans-serif}
.rep-section-title{font-family:'Oswald',sans-serif;font-size:1rem;font-weight:600;color:var(--navy);margin:1.5rem 0 .75rem;border-bottom:2px solid var(--navy-pale);padding-bottom:.4rem}
.rep-total-bar{background:var(--navy);color:#fff;border-radius:var(--radius);padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}
.rep-total-bar .rt-item{text-align:center}
.rep-total-bar .rt-val{font-family:'Oswald',sans-serif;font-size:1.35rem;font-weight:700}
.rep-total-bar .rt-label{font-size:.72rem;opacity:.65;text-transform:uppercase;letter-spacing:.05em}

/* ===== VISTA PROPIETARIO ===== */
.propietario-header{background:linear-gradient(135deg,var(--navy),var(--navy-lighter));color:#fff;border-radius:var(--radius);padding:1.5rem;margin-bottom:1.25rem}
.propietario-header h2{font-family:'Oswald',sans-serif;font-size:1.35rem;margin-bottom:.2rem}
.propietario-header p{opacity:.75;font-size:.875rem}
.pago-card{background:#fff;border-radius:var(--radius);border:2px solid var(--border);padding:1.5rem;margin-bottom:1rem;transition:var(--transition)}
.pago-card.pendiente{border-color:var(--warning)}
.pago-card.pagado{border-color:var(--success)}
.pago-monto{font-family:'Oswald',sans-serif;font-size:2.1rem;font-weight:700;color:var(--navy)}

/* ===== INFO BOX ===== */
.info-box{background:#e8f4fd;border:1px solid #aed6f1;border-radius:8px;padding:.85rem 1rem;margin-bottom:1rem;font-size:.875rem;color:#1a5276}
.info-box.warning{background:#fef3e2;border-color:#f9d49b;color:#7d5a00}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--navy);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:.875rem;z-index:9999;animation:toastIn .25s ease;max-width:320px}
.toast.success{background:var(--success)}
.toast.error{background:var(--danger)}
@keyframes toastIn{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}

/* ===== EMPTY STATE ===== */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}
.empty-state .es-icon{font-size:2.75rem;margin-bottom:.75rem;opacity:.6}
.empty-state p{font-size:.9rem}

/* ===== MOBILE BOTTOM NAV ===== */
#mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:58px;background:var(--navy);z-index:300;align-items:center;justify-content:space-around;padding:0 .5rem;border-top:1px solid rgba(255,255,255,.1)}
.mob-nav-btn{display:flex;flex-direction:column;align-items:center;gap:.18rem;padding:.4rem .75rem;border:none;background:none;color:rgba(255,255,255,.55);cursor:pointer;transition:var(--transition);border-radius:8px;font-size:.6rem;font-weight:700;letter-spacing:.04em;font-family:'Lato',sans-serif}
.mob-nav-btn .mn-icon{font-size:1.2rem}
.mob-nav-btn.active{color:#fff;background:rgba(255,255,255,.12)}
.mob-nav-btn:hover{color:#fff}

/* ===== PRINT ===== */
@media print{
  #sidebar,#top-bar,#mobile-nav,.section-toolbar,.btn,#alerts-container{display:none!important}
  #main-wrapper{margin-left:0!important}
  body{background:#fff}
  .card{box-shadow:none;border:1px solid #ccc}
  .rep-table th{background:var(--navy)!important;-webkit-print-color-adjust:exact}
}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  #sidebar{transform:translateX(calc(-1 * var(--sidebar-w)))}
  #sidebar.open{transform:translateX(0)}
  #main-wrapper{margin-left:0!important}
  .dash-grid{grid-template-columns:1fr}
  .fin-summary-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .detalle-grid{grid-template-columns:1fr}
  .horse-grid{grid-template-columns:1fr}
  .con-summary{grid-template-columns:1fr}
  #content{padding:1rem;padding-bottom:5rem}
  .modal{max-width:100%;margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;align-self:flex-end}
  .modal-overlay{align-items:flex-end;padding:0}
  .modal-lg{max-width:100%}
  .section-toolbar{flex-direction:column;align-items:stretch}
  .toolbar-right{justify-content:space-between}
  .fin-header{flex-direction:column;gap:.75rem;align-items:stretch}
  #mobile-nav{display:flex}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .fin-summary-grid{grid-template-columns:repeat(3,1fr)}
}

#sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:400}
#sidebar-overlay.visible{display:block}
#sidebar{z-index:450}
body.sidebar-open #mobile-nav{display:none!important}
.sidebar-close-mobile{display:none;width:100%;margin-bottom:.5rem;background:rgba(255,255,255,.1)!important;color:#fff!important;font-size:1rem}
@media(max-width:768px){.sidebar-close-mobile{display:block}}

/* ===== SERVICIOS VETERINARIOS ===== */
.vetserv-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);margin-bottom:.85rem;overflow:hidden;transition:box-shadow .18s}
.vetserv-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08)}
.vetserv-pendiente{border-left:4px solid #f59e0b}
.vetserv-card-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid var(--border-light);gap:.5rem;flex-wrap:wrap}
.vetserv-card-body{padding:.7rem 1rem}
.vetserv-card-footer{display:flex;gap:.5rem;padding:.6rem 1rem;background:#f8fafc;flex-wrap:wrap}

/* Agenda label */
#nav-label-agenda { display: none; }
.role-badge.profesor { background: #ecfdf5; color: #065f46; }

/* ===== DOCUMENTOS ===== */
.docs-grid{display:flex;flex-direction:column;gap:.6rem}
.doc-card{display:flex;align-items:center;gap:.75rem;background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem}
.doc-thumb{width:56px;height:56px;object-fit:cover;border-radius:6px;cursor:pointer;flex-shrink:0;border:1px solid var(--border)}
.doc-icon-pdf{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:2rem;background:#fee2e2;border-radius:6px;cursor:pointer;flex-shrink:0}
.doc-info{flex:1;min-width:0}
.doc-nombre{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-fecha{font-size:.75rem;color:var(--text-muted)}
.doc-desc{font-size:.8rem;color:var(--text-secondary);margin-top:.15rem}
.doc-actions{display:flex;flex-direction:column;gap:.3rem;flex-shrink:0}
@media(max-width:768px){.doc-card{flex-wrap:wrap}.doc-actions{flex-direction:row}}

/* ===== SERVICIOS RECURRENTES ===== */
.recurrente-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-bottom:1px solid var(--border)}
.recurrente-item:last-child{border-bottom:none}
.recurrente-icon{font-size:1.4rem;width:36px;text-align:center;flex-shrink:0}
.recurrente-body{flex:1;min-width:0}
.recurrente-tipo{font-weight:700;font-size:.9rem}
.recurrente-meta{font-size:.8rem;color:var(--text-secondary)}

/* ===== GASTO DETALLE PANEL ===== */
.gasto-detalle-panel{background:#fafafa;border:1.5px solid var(--border);border-radius:10px;padding:.85rem 1rem;margin-bottom:.75rem}
.gasto-detalle-title{font-weight:700;font-size:.9rem;margin-bottom:.65rem;color:var(--navy)}

/* ===== SUMINISTROS DEL ESTABLECIMIENTO ===== */
.sum-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);margin-bottom:.7rem;overflow:hidden;transition:box-shadow .18s}
.sum-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.07)}
.sum-agotado{opacity:.7;border-color:#fecaca}
.sum-main{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem}
.sum-info{flex:1;min-width:0}
.sum-nombre{font-weight:700;font-size:.95rem;margin-bottom:.2rem}
.sum-meta{font-size:.8rem;color:var(--text-secondary);margin-bottom:.2rem}
.sum-stock-area{text-align:center;flex-shrink:0;min-width:64px}
.sum-stock-num{font-size:1.8rem;font-weight:800;line-height:1}
.sum-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;padding:.5rem 1rem .7rem;border-top:1px solid var(--border-light);background:#fafafa}

/* ===== HISTORIAL CLÍNICO TABS ===== */
.modal-xl { max-width: 860px; }
.consulta-card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: .75rem; }
.consulta-card-header { display: flex; gap: .75rem; align-items: flex-start; justify-content: space-between; }
.consulta-fecha-badge { background: var(--navy); color: #fff; border-radius: 8px; padding: .25rem .65rem; font-size: .78rem; font-weight: 700; white-space: nowrap; flex-shrink: 0; }
.consulta-badge { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; border-radius: 10px; padding: .1rem .45rem; font-size: .72rem; font-weight: 700; }
.consulta-arch-chip { display: inline-flex; align-items: center; gap: .3rem; background: #f8fafc; border: 1px solid var(--border); border-radius: 6px; padding: .2rem .5rem; font-size: .75rem; cursor: pointer; color: var(--navy); }
.consulta-arch-chip:hover { background: #eff6ff; }

/* Vitals bar */
.cv-vitals-bar { display: flex; gap: .75rem; flex-wrap: wrap; background: #f8fafc; border: 1px solid var(--border); border-radius: 10px; padding: .75rem 1rem; margin-bottom: 1rem; }
.cv-vital { display: flex; flex-direction: column; gap: .2rem; min-width: 90px; }
.cv-vital label { font-size: .75rem; font-weight: 700; color: var(--text-muted); }
.cv-vital input, .cv-vital select { padding: .3rem .45rem; border: 1.5px solid var(--border); border-radius: 7px; font-size: .85rem; width: 100%; }

/* Fármacos table */
.cv-block { margin-top: 1.25rem; }
.cv-block-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .65rem; }
.cv-block-header h4 { margin: 0; font-size: .92rem; color: var(--navy); }
.cv-farmaco-thead { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr auto; gap: .4rem; padding: .25rem 0; font-size: .72rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; }
.cv-farmaco-row { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr auto; gap: .4rem; align-items: center; padding: .3rem 0; border-bottom: 1px solid var(--border-light); }
.cv-farmaco-row input { padding: .3rem .45rem; border: 1.5px solid var(--border); border-radius: 7px; font-size: .83rem; }
.cv-arch-chip { display: flex; align-items: center; gap: .5rem; background: #f8fafc; border: 1.5px solid var(--border); border-radius: 8px; padding: .4rem .65rem; max-width: 160px; }

/* Libreta photo box */
.libreta-foto-box { border: 2px dashed var(--border); border-radius: 8px; padding: .5rem; text-align: center; min-height: 80px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; }

/* Responsive */
@media (max-width: 640px) {
  .modal-xl { max-width: 100%; }
  .cv-farmaco-thead, .cv-farmaco-row { grid-template-columns: 1fr 1fr; }
  .cv-farmaco-thead span:nth-child(n+3) { display: none; }
}

/* ===== TABLA RESUMEN SANITARIO ===== */
.san-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.san-table thead th { padding: .6rem .75rem; background: #f8fafc; font-size: .78rem; font-weight: 700; color: var(--text-muted); text-align: center; border-bottom: 2px solid var(--border); text-transform: uppercase; letter-spacing: .03em; }
.san-table thead th:first-child { text-align: left; }
.san-table tbody tr { border-bottom: 1px solid var(--border-light); transition: background .15s; }
.san-table tbody tr:hover { background: #f8fafc; }
.san-table td { padding: .55rem .75rem; vertical-align: middle; text-align: center; }
.san-table td:first-child { text-align: left; }
.san-cell { font-size: .8rem; line-height: 1.3; }
.san-cell span { display: block; font-size: .72rem; color: var(--text-muted); }
.san-cell.ok { color: #166534; }
.san-cell.ok span { color: #166534; }
.san-cell.por-vencer { color: #854d0e; }
.san-cell.por-vencer span { color: #854d0e; }
.san-cell.vencida { color: #991b1b; font-weight: 700; }
.san-cell.vencida span { color: #991b1b; }
.san-cell.positiva { color: #991b1b; font-weight: 700; }
.san-cell.sin-datos { color: #94a3b8; }
.san-cell.sin-datos span { color: #94a3b8; }

/* ===== FEED SPLIT PREVIEW (in modal) ===== */
.feed-split-preview { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: .75rem 1rem; margin-top: .5rem; font-size: .82rem; }
.feed-split-title { font-weight: 700; color: #166534; margin-bottom: .5rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
.feed-split-row { display: flex; justify-content: space-between; align-items: center; padding: .25rem 0; border-bottom: 1px solid #dcfce7; }
.feed-split-row:last-child { border-bottom: none; }
.feed-split-row.total { font-weight: 700; margin-top: .25rem; padding-top: .35rem; border-top: 2px solid #bbf7d0; }
.feed-split-label { color: #374151; }
.feed-split-label.mis { color: #166534; }
.feed-split-label.otros { color: #1e40af; }
.feed-split-label small { color: #6b7280; font-size: .75rem; }
.feed-split-value { font-weight: 600; font-size: .9rem; }

/* ===== FEED BREAKDOWN PANEL (in finanzas list) ===== */
.feed-breakdown-panel { background: linear-gradient(135deg,#f0fdf4,#eff6ff); border: 1px solid #bbf7d0; border-radius: 12px; padding: 1rem 1.25rem; margin: 1rem 0; }
.fbp-title { font-weight: 700; font-size: .9rem; color: #1e3a5f; margin-bottom: .75rem; }
.fbp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: .75rem; }
.fbp-col { background: white; border-radius: 8px; padding: .75rem; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.fbp-col.mis { border-top: 3px solid #22c55e; }
.fbp-col.otros { border-top: 3px solid #3b82f6; }
.fbp-col-title { font-weight: 700; font-size: .8rem; color: #374151; margin-bottom: .5rem; }
.fbp-row { display: flex; justify-content: space-between; font-size: .82rem; padding: .2rem 0; color: #6b7280; }
.fbp-row.total { font-weight: 700; color: #1f2937; border-top: 1px solid #e5e7eb; margin-top: .25rem; padding-top: .35rem; font-size: .9rem; }
.fbp-footer { font-size: .78rem; color: #6b7280; text-align: center; }
@media (max-width: 600px) { .fbp-grid { grid-template-columns: 1fr; } }

/* ===== TAREAS FIJAS ===== */
.tf-panel { background: #fff; border: 1.5px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 1.25rem; }
.tf-header { display: flex; justify-content: space-between; align-items: center; padding: .75rem 1.1rem; background: linear-gradient(90deg,#f0f4ff,#e8f5e9); border-bottom: 1px solid var(--border); flex-wrap: wrap; gap: .5rem; }
.tf-title { font-weight: 800; font-size: .95rem; color: var(--navy); }
.tf-fecha { font-size: .78rem; color: var(--text-muted); font-style: italic; }
.tf-empty { padding: 1.25rem; text-align: center; color: var(--text-muted); font-size: .87rem; }
.btn-link { background: none; border: none; color: var(--navy); cursor: pointer; font-size: inherit; text-decoration: underline; padding: 0; }
.tf-cards { padding: .6rem .75rem; display: flex; flex-direction: column; gap: .55rem; }

/* Tarjeta individual */
.tf-card { background: #f8fafc; border: 1px solid var(--border-light); border-radius: 10px; overflow: hidden; }
.tf-card-main { display: flex; gap: .75rem; padding: .75rem 1rem; align-items: flex-start; flex-wrap: wrap; }
.tf-card-info { flex: 1; min-width: 180px; }
.tf-card-titulo { font-weight: 700; font-size: .9rem; color: var(--navy); margin-bottom: .2rem; }
.tf-card-desc { font-size: .8rem; color: var(--text-muted); margin-bottom: .35rem; line-height: 1.4; }
.tf-card-tags { display: flex; gap: .4rem; flex-wrap: wrap; }
.tf-tag { font-size: .7rem; font-weight: 600; padding: .1rem .45rem; border-radius: 20px; }
.tf-tag.cat { background: var(--navy-pale); color: var(--navy); }
.tf-tag.freq { background: #f0fdf4; color: #166534; }
.tf-card-asign { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: .35rem; justify-content: center; }
.tf-card-actions { display: flex; gap: .25rem; padding: .3rem .75rem .5rem; justify-content: flex-end; border-top: 1px solid var(--border-light); background: #f1f5f9; }

/* Fila por empleado */
.tf-emp-row { display: flex; align-items: center; gap: .5rem; background: #fff; border: 1px solid var(--border-light); border-radius: 8px; padding: .45rem .65rem; transition: .15s; }
.tf-emp-row.done { background: #f0fdf4; border-color: #bbf7d0; }
.tf-emp-nombre { font-size: .85rem; font-weight: 600; color: var(--text); min-width: 70px; }
.tf-badge { font-size: .72rem; font-weight: 600; padding: .15rem .5rem; border-radius: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px; }
.tf-badge.done { background: #dcfce7; color: #166534; }
.tf-badge.pend { background: #fef9c3; color: #854d0e; }
.tf-badge.recl { background: #dbeafe; color: #1e40af; }
.tf-badge.libre { background: #f3f4f6; color: #6b7280; }

/* Libre — sin asignar */
.tf-libre-block { background: #fffbeb; border: 1px dashed #fbbf24; border-radius: 8px; padding: .6rem .75rem; }
.tf-libre-btns { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .5rem; }
.btn-soy-yo { background: var(--navy); color: #fff; border: none; border-radius: 20px; padding: .35rem .85rem; font-size: .8rem; font-weight: 700; cursor: pointer; transition: .15s; }
.btn-soy-yo:hover { opacity: .85; }

/* Barra de progreso */
.tf-progress-bar-wrap { height: 6px; background: #e5e7eb; margin: 0; }
.tf-progress-bar { height: 100%; background: linear-gradient(90deg,#22c55e,#16a34a); transition: width .4s; }
.tf-progress-label { font-size: .72rem; color: var(--text-muted); text-align: right; padding: .25rem .85rem .4rem; }

/* Modal gestión */
.gtf-item { display: flex; align-items: flex-start; gap: .75rem; padding: .8rem 0; border-bottom: 1px solid var(--border-light); }
.gtf-item:last-child { border-bottom: none; }
.gtf-item-info { flex: 1; }
.gtf-item-titulo { font-weight: 700; font-size: .9rem; color: var(--navy); }
.gtf-item-meta { font-size: .78rem; color: var(--text-muted); margin-top: .15rem; }
.gtf-item-desc { font-size: .78rem; color: var(--text-muted); margin-top: .2rem; font-style: italic; }

/* Selector días */
.tf-dia-check { display: flex; align-items: center; gap: .3rem; font-size: .82rem; font-weight: 600; color: var(--text); cursor: pointer; background: #f1f5f9; padding: .35rem .6rem; border-radius: 6px; }
.tf-dia-check input { accent-color: var(--navy); }
@media (max-width:600px) { .tf-card-main { flex-direction: column; } .tf-card-asign { width: 100%; } }

/* ===== MODAL CABALLO REDISEÑO ===== */
.cab-tip { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: .55rem .85rem; font-size: .82rem; color: #1e40af; margin-bottom: .85rem; }
.req-star { color: var(--danger); font-weight: 700; margin-left: .15rem; }
