:root{
  --bg:#f6f1e8;
  --surface:#ffffff;
  --surface-2:#fbf8f3;
  --text:#2f2a26;
  --muted:#6f6a64;
  --primary:#8f1d3f;
  --primary-2:#b23b5b;
  --accent:#2f6f73;
  --gold:#c6a96b;
  --border:#e8ddd0;
  --shadow:0 12px 30px rgba(48,35,28,.08);
  --radius:24px;
  --sidebar-w:290px;
  --content-max:1600px;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Inter",system-ui,sans-serif;font-size:16px;line-height:1.55;overflow-x:hidden}
a{text-decoration:none}
img{max-width:100%;height:auto}
.app-shell{min-height:100vh;display:flex}
.sidebar{
  width:var(--sidebar-w);background:linear-gradient(180deg,#8f1d3f 0%,#7d1737 58%,#6f1431 100%);color:#fff;padding:18px 16px;position:fixed;inset:16px auto 16px 16px;border-radius:28px;box-shadow:0 18px 40px rgba(111,20,49,.28);z-index:1100;transition:transform .28s ease,opacity .28s ease;overflow:hidden;display:flex;flex-direction:column
}
body.sidebar-hidden .sidebar{transform:translateX(-120%)}
.sidebar-inner{height:100%;display:flex;flex-direction:column;min-height:0}
.sidebar-top{flex:0 0 auto}
.brand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.sidebar-brand{display:flex;align-items:center;gap:14px;color:#fff}
.sidebar-brand img{width:52px;height:52px;object-fit:contain;border-radius:16px;background:rgba(255,255,255,.08);padding:8px}
.brand-text h1{font-size:1.85rem;line-height:1;margin:0;font-weight:800;letter-spacing:-.04em}
.brand-text small{display:block;margin-top:6px;color:rgba(255,255,255,.82)}
.sidebar-search{margin:8px 0 18px;position:relative}
.sidebar-search input{width:100%;border:none;outline:none;border-radius:16px;padding:12px 14px 12px 42px;background:rgba(255,255,255,.12)!important;color:#fff;min-height:46px}
.sidebar-search input::placeholder{color:rgba(255,255,255,.72)}
.sidebar-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.82)}
.menu-label{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72);margin:0 6px 10px;font-weight:700}
.sidebar-menu-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px}
.sidebar-menu-scroll::-webkit-scrollbar{width:8px}
.sidebar-menu-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px}
.sidebar-menu-scroll::-webkit-scrollbar-track{background:transparent}
.sidebar-menu-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.nav-menu{display:flex;flex-direction:column;gap:8px;padding-bottom:10px}
.nav-menu a{display:flex;align-items:center;gap:12px;color:#fff;padding:13px 14px;border-radius:18px;transition:background .18s ease,transform .18s ease;font-weight:600}
.nav-menu a:hover{background:rgba(255,255,255,.10);transform:translateX(2px)}
.nav-menu a.active{background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.nav-menu i{width:22px;text-align:center;font-size:1.05rem}
.sidebar-footer{flex:0 0 auto;margin-top:14px;padding-top:16px}
.sidebar-user{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:14px;color:#fff}
.sidebar-user strong{display:block;margin-bottom:4px}
.sidebar-user small{color:rgba(255,255,255,.78)}
.sidebar-footer-btn{min-height:44px}
.main-panel{flex:1;margin-left:338px;padding:20px 20px 28px;transition:margin-left .28s ease;min-width:0;display:flex;flex-direction:column}
body.sidebar-hidden .main-panel{margin-left:20px}
.page-content{flex:1;min-width:0}
.main-panel > *{max-width:var(--content-max);margin-left:auto;margin-right:auto;width:100%}
.topbar{position:sticky;top:0;z-index:900;background:rgba(246,241,232,.85);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:20px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:10px}
.main-toolbar-title{font-weight:700;color:var(--muted)}
.icon-btn,.floating-sidebar-toggle{width:44px;height:44px;border:none;border-radius:14px;background:var(--surface);color:var(--primary);box-shadow:var(--shadow);display:grid;place-items:center}
.floating-sidebar-toggle{position:fixed;left:18px;top:18px;z-index:1150;display:none}
body.sidebar-hidden .floating-sidebar-toggle{display:grid}
.page-hero,.topbar-card,.soft-card,.hero-card,.table-shell,.content-card{background:var(--surface);border:1px solid var(--border);border-radius:26px;box-shadow:var(--shadow)}
.topbar-card,.hero-card{padding:24px 26px;margin-bottom:20px}
.page-title,.hero-title,.section-title{margin:0 0 8px;color:var(--primary);font-weight:800;letter-spacing:-.03em}
.page-title{font-size:clamp(2rem,3vw,3rem)}
.page-subtitle,.section-sub{color:var(--muted);font-size:1.05rem}
.hero-card{background:linear-gradient(135deg,var(--surface) 0%,#fff 100%)}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}
.soft-card{padding:22px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.soft-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(48,35,28,.12);border-color:#dcc7ad}
.stat-label{color:var(--muted);font-weight:700;margin-bottom:10px;font-size:1.05rem}
.stat-number{font-size:clamp(2rem,4vw,3.4rem);font-weight:800;color:var(--primary);line-height:1}
.content-card{padding:22px}
.card-chart .chart-wrap{position:relative;height:320px;max-height:320px}
.chart-wrap canvas{width:100% !important;height:100% !important}
.empty-state{display:flex;align-items:center;justify-content:center;min-height:180px;border:2px dashed var(--border);border-radius:20px;color:var(--muted);background:var(--surface-2);margin-bottom:12px}
.admin-footer{margin-top:22px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:14px 18px;color:var(--muted);text-align:center;box-shadow:var(--shadow)}
.btn-vino{background:var(--primary);border-color:var(--primary);color:#fff}.btn-vino:hover{background:#7d1737;border-color:#7d1737;color:#fff}.btn-outline-vino{border-color:var(--primary);color:var(--primary)}.btn-outline-vino:hover{background:var(--primary);color:#fff}
.bg-light-subtle{background:var(--surface-2)!important}.border{border-color:var(--border)!important}
.table{color:var(--text)}.table thead th{background:var(--primary)!important;color:#fff;border-color:transparent}.table tbody tr:hover{background:#faf6f0}
.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select,.form-control,.form-select,textarea{border-radius:14px;border:1px solid var(--border);background:#fff;color:var(--text);min-height:44px}
.preview-box,.img-thumb-placeholder{background:var(--surface-2);border:1px dashed var(--border);color:var(--muted)}
.mobile-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:1090}
/* Personas admin */
.persona-row-card,.persona-card{display:flex;align-items:center;gap:16px}
.persona-photo-wrap{width:92px;min-width:92px;height:92px;border-radius:18px;overflow:hidden;background:#f4efe7;border:1px solid var(--border);display:flex;align-items:center;justify-content:center}
.persona-photo-wrap img,.persona-avatar,.persona-thumb{width:100%;height:100%;object-fit:cover;display:block}
.persona-avatar-lg{width:140px;min-width:140px;height:140px;border-radius:24px;overflow:hidden;background:#f4efe7;border:1px solid var(--border)}
.persona-avatar-lg img{width:100%;height:100%;object-fit:cover;display:block}
.persona-meta{min-width:0;flex:1}
.persona-meta h5,.persona-meta h6,.persona-meta strong{margin:0 0 4px;word-break:break-word}
.persona-meta small,.persona-meta span,.persona-meta p{word-break:break-word}
/* Public colonia */
.hero-colonia{width:100%;max-height:320px;border-radius:28px;overflow:hidden;background:#f4efe7;border:1px solid var(--border);margin-bottom:20px}
.hero-colonia img,.cover-public{width:100%;height:320px;object-fit:cover;display:block}
.galeria-grid,.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.galeria-item{border-radius:20px;overflow:hidden;background:#f4efe7;border:1px solid var(--border)}
.galeria-item img,.gallery-grid img{width:100%;height:180px;object-fit:cover;display:block;border-radius:0}
.persona-publica{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--border);border-radius:18px;background:#fff;margin-bottom:12px}
.persona-publica-foto{width:84px;min-width:84px;height:84px;border-radius:18px;overflow:hidden;background:#f4efe7;border:1px solid var(--border)}
.persona-publica-foto img{width:100%;height:100%;object-fit:cover;display:block}
.persona-publica-info{min-width:0}
.persona-publica-info strong,.persona-publica-info span,.persona-publica-info small{word-break:break-word}
body.dark-mode{--bg:#17181c;--surface:#202227;--surface-2:#26292f;--text:#f3f4f6;--muted:#b6bcc7;--border:#30343c;--shadow:0 14px 30px rgba(0,0,0,.28)}
body.dark-mode .topbar{background:rgba(23,24,28,.82)}
body.dark-mode .hero-card{background:linear-gradient(135deg,#202227 0%, #252931 100%)}
body.dark-mode .icon-btn,body.dark-mode .floating-sidebar-toggle{background:#202227;color:#f3f4f6}
body.dark-mode .dataTables_wrapper .dataTables_filter input,body.dark-mode .dataTables_wrapper .dataTables_length select,body.dark-mode .form-control,body.dark-mode .form-select,body.dark-mode textarea{background:#2b2f36;border-color:#3a404a;color:#f3f4f6}
body.dark-mode .table tbody tr:hover{background:#2b2f36}
body.dark-mode .btn-light{background:#202227;border-color:#30343c;color:#f3f4f6}
body.dark-mode .btn-outline-vino{border-color:#d3879b;color:#f3d0d8}
body.dark-mode .btn-outline-vino:hover{background:var(--primary);color:#fff}
@media (max-width: 1199.98px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 991.98px){
  .sidebar{inset:0 auto 0 0;border-radius:0 28px 28px 0;width:290px;transform:translateX(-110%)}
  body.mobile-sidebar-open .sidebar{transform:translateX(0)}
  body.mobile-sidebar-open .mobile-backdrop{display:block}
  .main-panel,body.sidebar-hidden .main-panel{margin-left:0;padding:14px}
  .topbar{border-radius:16px}
  .topbar-right{margin-left:auto}
  .floating-sidebar-toggle{display:none!important}
  .stat-grid{grid-template-columns:1fr}
  .card-chart .chart-wrap{height:260px;max-height:260px}
}
@media (max-width: 767.98px){
  .hero-colonia img,.cover-public{height:220px}
  .persona-publica{align-items:flex-start}
  .persona-publica-foto{width:72px;min-width:72px;height:72px}
  .persona-photo-wrap{width:78px;min-width:78px;height:78px}
  .persona-avatar-lg{width:110px;min-width:110px;height:110px}
}

/* v18.5 visual refinements */
.public-wrap{max-width:1420px;margin:0 auto;padding:24px 18px 40px}
.hero-card .soft-card.content-card{height:100%}
.persona-publica{box-shadow:0 6px 16px rgba(48,35,28,.05)}
.persona-publica-info strong{font-size:1.05rem}
.galeria-item img{transition:transform .25s ease}
.galeria-item:hover img{transform:scale(1.04)}
.table-responsive{overflow-x:auto}
#tablaPersonas_wrapper .actions .btn{min-width:40px;min-height:40px;border-radius:12px}
#tablaPersonas_wrapper .img-thumb{width:64px;height:64px;border-radius:14px;object-fit:cover}
@media (max-width: 767.98px){.public-wrap{padding:16px 12px 28px}.hero-card,.soft-card.content-card{padding:18px}.page-title{font-size:1.8rem}.actions{flex-wrap:wrap}}

/* Ajustes v21: modales y menú lateral */
.modal-backdrop{z-index:1400!important}
.modal{z-index:1405!important}
.modal-dialog{z-index:1410!important}
body.modal-open .sidebar,
body.modal-open .floating-sidebar-toggle,
body.modal-open .mobile-backdrop{z-index:1080!important}
body.modal-open .topbar{z-index:850}
@media (max-width: 991.98px){
  .sidebar{max-width:calc(100vw - 24px)}
}


/* v22 modal/menu fixes */
body.modal-open .sidebar{pointer-events:none}
body.modal-open .floating-sidebar-toggle,
body.modal-open .mobile-backdrop{pointer-events:none}
.modal{z-index:2000!important}
.modal-backdrop{z-index:1990!important}
.modal-dialog{margin-top:1.5rem}
.swal2-container{z-index:3000!important}

/* v24 dashboard graphs */
.mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.mini-kpi{position:relative;overflow:hidden}
.mini-kpi::after{content:"";position:absolute;right:-18px;top:-18px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.18)}
.mini-kpi-label{font-weight:700;color:var(--muted);margin-bottom:8px}
.mini-kpi-value{font-size:2.25rem;font-weight:800;line-height:1;color:var(--primary);margin-bottom:6px}
.mini-kpi-sub{color:var(--muted);font-size:.95rem}
.mini-kpi.success{background:linear-gradient(135deg,#f6fff8 0%, #ffffff 100%)}
.mini-kpi.warning{background:linear-gradient(135deg,#fffaf0 0%, #ffffff 100%)}
.mini-kpi.info{background:linear-gradient(135deg,#f5fbff 0%, #ffffff 100%)}
.mini-kpi.danger{background:linear-gradient(135deg,#fff6f7 0%, #ffffff 100%)}
.recent-docs-list,.activity-list{display:flex;flex-direction:column;gap:12px}
.recent-doc-item,.activity-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:18px;background:var(--surface-2)}
.recent-doc-main{min-width:0;flex:1}
.recent-doc-title{font-weight:800;color:var(--primary);line-height:1.2}
.recent-doc-meta,.recent-doc-date{color:var(--muted);font-size:.95rem}
.recent-doc-side{display:flex;align-items:center;gap:8px;flex-shrink:0}
@media (max-width: 1199.98px){.mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 767.98px){.mini-grid{grid-template-columns:1fr}.recent-doc-item,.activity-item{flex-direction:column}.recent-doc-side{width:100%;justify-content:space-between}}


/* v24.2 KPI beautify */
.mini-kpi{padding:20px 22px;border-radius:28px}
.mini-kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}
.mini-kpi-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:1.55rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 10px 20px rgba(48,35,28,.08)}
.mini-kpi-label{text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}
.mini-kpi-value{font-size:3rem}
.mini-kpi-sub{display:flex;align-items:center;gap:8px;font-size:.96rem}
.mini-kpi-sub::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5}
.mini-kpi.success{border-color:#dcefe2;background:linear-gradient(135deg,#ecfbf1 0%,#ffffff 100%)}
.mini-kpi.success .mini-kpi-icon{background:linear-gradient(135deg,#1f9d63,#59c688);color:#fff}
.mini-kpi.success .mini-kpi-sub{color:#2f7f57}
.mini-kpi.warning{border-color:#f3e3b6;background:linear-gradient(135deg,#fff8e7 0%,#ffffff 100%)}
.mini-kpi.warning .mini-kpi-icon{background:linear-gradient(135deg,#d4a017,#f0c14b);color:#fff}
.mini-kpi.warning .mini-kpi-sub{color:#9a740c}
.mini-kpi.info{border-color:#d7e8f3;background:linear-gradient(135deg,#eef8ff 0%,#ffffff 100%)}
.mini-kpi.info .mini-kpi-icon{background:linear-gradient(135deg,#2f6fce,#56a5f5);color:#fff}
.mini-kpi.info .mini-kpi-sub{color:#2f69a0}
.mini-kpi.danger{border-color:#f1d7dd;background:linear-gradient(135deg,#fff0f3 0%,#ffffff 100%)}
.mini-kpi.danger .mini-kpi-icon{background:linear-gradient(135deg,#b02146,#e2557c);color:#fff}
.mini-kpi.danger .mini-kpi-sub{color:#a0314a}
@media (max-width: 767.98px){.mini-kpi-value{font-size:2.4rem}.mini-kpi-icon{width:50px;height:50px;font-size:1.3rem}}


/* v24.3 executive KPI */
.executive-kpi{position:relative;isolation:isolate;box-shadow:0 16px 38px rgba(48,35,28,.08);transition:transform .25s ease,box-shadow .25s ease;animation:kpiFadeUp .65s ease both}
.executive-kpi:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(48,35,28,.12)}
.executive-kpi::before{content:"";position:absolute;inset:auto -20px -36px auto;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.42);filter:blur(6px);z-index:-1}
.executive-kpi .mini-kpi-copy{display:flex;flex-direction:column;gap:2px}
.executive-kpi .mini-kpi-value{letter-spacing:-.04em;text-shadow:0 2px 0 rgba(255,255,255,.28)}
.mini-kpi-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}
.mini-kpi-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;font-size:.82rem;font-weight:700;line-height:1;border:1px solid transparent;background:rgba(255,255,255,.75);backdrop-filter:blur(6px)}
.mini-kpi-pill.positive{color:#1b7a4a;border-color:#cae9d6}
.mini-kpi-pill.warning{color:#8b6908;border-color:#f0dc9f}
.mini-kpi-pill.info{color:#235f98;border-color:#cfe1f4}
.mini-kpi-pill.danger{color:#972942;border-color:#efc4cf}
.mini-kpi-note{font-size:.85rem;color:var(--muted);font-weight:600}
.mini-kpi-spark{display:flex;align-items:flex-end;gap:7px;height:34px;margin-top:16px}
.mini-kpi-spark span{display:block;width:10px;border-radius:999px;background:rgba(255,255,255,.86);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 8px 18px rgba(48,35,28,.06);animation:sparkPulse 2.2s ease-in-out infinite}
.mini-kpi.success .mini-kpi-spark span{background:linear-gradient(180deg,rgba(31,157,99,.3),rgba(31,157,99,.9))}
.mini-kpi.warning .mini-kpi-spark span{background:linear-gradient(180deg,rgba(212,160,23,.28),rgba(212,160,23,.9))}
.mini-kpi.info .mini-kpi-spark span{background:linear-gradient(180deg,rgba(47,111,206,.26),rgba(47,111,206,.88))}
.mini-kpi.danger .mini-kpi-spark span{background:linear-gradient(180deg,rgba(176,33,70,.26),rgba(176,33,70,.88))}
.mini-kpi-spark span:nth-child(1){height:26%}.mini-kpi-spark span:nth-child(2){height:58%}.mini-kpi-spark span:nth-child(3){height:42%}.mini-kpi-spark span:nth-child(4){height:76%}.mini-kpi-spark span:nth-child(5){height:60%}.mini-kpi-spark span:nth-child(6){height:88%}
.mini-kpi-spark span:nth-child(2),.mini-kpi-spark span:nth-child(5){animation-delay:.25s}.mini-kpi-spark span:nth-child(3){animation-delay:.45s}.mini-kpi-spark span:nth-child(4){animation-delay:.15s}.mini-kpi-spark span:nth-child(6){animation-delay:.55s}
.delay-1{animation-delay:.05s}.delay-2{animation-delay:.12s}.delay-3{animation-delay:.19s}.delay-4{animation-delay:.26s}
@keyframes kpiFadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes sparkPulse{0%,100%{transform:scaleY(1);opacity:.95}50%{transform:scaleY(.86);opacity:.72}}
@media (max-width: 767.98px){.mini-kpi-meta{flex-direction:column;align-items:flex-start}.mini-kpi-pill{font-size:.78rem}.mini-kpi-note{font-size:.8rem}}

/* v24.4 dashboard visual pro */
.card-chart{position:relative;overflow:hidden;border:1px solid rgba(151,25,54,.08);box-shadow:0 18px 42px rgba(48,35,28,.06)}
.card-chart::before{content:"";position:absolute;inset:0 0 auto 0;height:120px;background:linear-gradient(180deg,rgba(151,25,54,.06),rgba(151,25,54,0));pointer-events:none}
.chart-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.chart-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(151,25,54,.08);color:var(--primary);font-size:.82rem;font-weight:800;letter-spacing:.02em;margin-bottom:12px}
.chart-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;font-size:.82rem;font-weight:800;line-height:1;white-space:nowrap;border:1px solid var(--border);background:#fff;box-shadow:0 10px 20px rgba(48,35,28,.05)}
.chart-chip.success{color:#1e7f4d;background:#f2fbf6;border-color:#d3ecdd}
.chart-chip.info{color:#255f98;background:#eff7ff;border-color:#d6e7f8}
.chart-chip.warning{color:#8b6908;background:#fff8e8;border-color:#f0dfa7}
.chart-chip.danger{color:#99263f;background:#fff1f4;border-color:#efc9d2}
.luxury-chart{position:relative;padding:16px 14px 10px;border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(248,245,240,.98));border:1px solid rgba(151,25,54,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 12px 22px rgba(48,35,28,.05)}
.luxury-chart canvas{position:relative;z-index:2}
.luxury-chart::after{content:"";position:absolute;right:18px;bottom:14px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(151,25,54,.08),rgba(151,25,54,0) 70%);pointer-events:none}
.glass-row{position:relative;background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(249,246,241,.95));backdrop-filter:blur(10px);box-shadow:0 10px 22px rgba(48,35,28,.05)}
.recent-doc-badge,.activity-icon{width:44px;height:44px;min-width:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#971936,#bf4968);color:#fff;font-size:1.05rem;box-shadow:0 10px 18px rgba(151,25,54,.2)}
.recent-doc-meta i,.recent-doc-date i{opacity:.75}
.activity-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.activity-item{justify-content:flex-start}
.content-card .section-title{display:flex;align-items:center;gap:10px}
.content-card .section-title::before{content:"";display:block;width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#971936,#d46a84);box-shadow:0 0 0 5px rgba(151,25,54,.08)}
@media (max-width: 991.98px){.chart-card-head{flex-direction:column;align-items:flex-start}.chart-chip{padding:8px 12px}}
@media (max-width: 767.98px){.recent-doc-badge,.activity-icon{width:40px;height:40px;min-width:40px;border-radius:12px}.chart-eyebrow{font-size:.76rem}.luxury-chart{padding:12px 10px 6px}}


.kpi-mini{display:flex;align-items:center;gap:16px;min-height:118px}.kpi-mini__icon{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:1.4rem}.kpi-mini__label{font-size:.92rem;color:#6b7280;font-weight:700}.kpi-mini__value{font-size:2rem;font-weight:800;color:#8f1d3f;line-height:1}.semaforo-badge{font-weight:700}

.role-list{display:flex;flex-direction:column;gap:12px}.role-item{border:1px solid rgba(151,25,54,.10);border-radius:18px;padding:14px 16px;background:linear-gradient(180deg,#fff,rgba(151,25,54,.02))}.permissions-wrap{border:1px solid rgba(151,25,54,.10);border-radius:20px;overflow:hidden;background:#fff}.perms-table thead th{background:#f7eef1;color:#6d1730;font-weight:800;white-space:nowrap}.perms-table td,.perms-table th{padding:14px 12px;vertical-align:middle}.perms-table tbody tr:nth-child(even){background:rgba(151,25,54,.018)}.perms-table .form-check-input{width:1.15rem;height:1.15rem;cursor:pointer}.text-bg-warning-subtle{background:rgba(255,193,7,.18)!important}.text-warning-emphasis{color:#8a5a00!important}

/* v27 alertas + credencial */
.alerts-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.alert-pill{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:22px;border:1px solid var(--border);box-shadow:0 10px 22px rgba(48,35,28,.05)}.alert-pill i{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;font-size:1.1rem;color:#fff}.alert-pill strong{display:block;font-size:1.6rem;line-height:1;color:var(--primary)}.alert-pill span{display:block;color:var(--muted);font-weight:700;font-size:.9rem}.alert-pill.danger i{background:linear-gradient(135deg,#971936,#d44a72)}.alert-pill.warning i{background:linear-gradient(135deg,#b68a0f,#efc34f)}.alert-pill.info i{background:linear-gradient(135deg,#2b6fcb,#5db2ff)}.alert-pill.secondary i{background:linear-gradient(135deg,#5f6774,#8893a1)}.alert-pill.success i{background:linear-gradient(135deg,#1f9d63,#59c688)}
.alert-list,.mini-alert-list{display:flex;flex-direction:column;gap:12px}.alert-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:20px;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#fffaf5)}.alert-row.danger{background:linear-gradient(180deg,#fff5f7,#fff)}.alert-row.warning{background:linear-gradient(180deg,#fffaf0,#fff)}.alert-row__icon{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;color:#fff;flex-shrink:0}.alert-row.danger .alert-row__icon{background:linear-gradient(135deg,#971936,#d44a72)}.alert-row.warning .alert-row__icon{background:linear-gradient(135deg,#b68a0f,#efc34f)}.alert-row__main{min-width:0;flex:1}.alert-row__title{font-weight:800;color:var(--primary)}.alert-row__meta{color:var(--muted);font-size:.92rem}.alert-row__side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;color:var(--muted);font-weight:600}
.alert-stack{display:grid;gap:18px}.stack-title{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--primary);margin-bottom:10px}.mini-alert-item{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#fffaf5)}.mini-alert-item strong{color:var(--primary)}.mini-alert-item span,.empty-inline{color:var(--muted);font-size:.92rem}
@media (max-width: 1399.98px){.alerts-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 991.98px){.alerts-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 575.98px){.alerts-strip{grid-template-columns:1fr}.alert-row{flex-direction:column;align-items:flex-start}.alert-row__side{align-items:flex-start}}
