/* =============================================================
   IMR Tickets — Portal Cliente  ·  REDISEÑO v1.0 (Handoff Jun 2026)
   DM Sans · Primary #1a56a5 · Teal #0d7d72
   Reemplaza el tema Material v3.0. Mapeo de selectores conservado.
   Semáforo del cliente (sem-badge / tr.sem-*) preservado para semaforo.js.
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&display=swap');

:root {
  --imr-font:           'DM Sans', 'Helvetica Neue', system-ui, sans-serif;
  --imr-primary:        #1a56a5;
  --imr-primary-dark:   #0c2d5e;
  --imr-primary-light:  #eff6ff;
  --imr-teal:           #0d7d72;
  --imr-teal-light:     #e6f7f5;
  --imr-success:        #16a34a;
  --imr-success-light:  #f0fdf4;
  --imr-warning:        #d97706;
  --imr-warning-light:  #fffbeb;
  --imr-error:          #dc2626;
  --imr-error-dark:     #b91c1c;
  --imr-error-light:    #fef2f2;
  --imr-purple:         #7c3aed;
  --imr-text:           #0f172a;
  --imr-text-2:         #475569;
  --imr-text-muted:     #94a3b8;
  --imr-border:         #e2e8f0;
  --imr-border-light:   #f1f5f9;
  --imr-bg:             #f1f5f9;
  --imr-surface:        #ffffff;
  --imr-shadow-sm:  0 1px 3px rgba(15, 23, 42, 0.07);
  --imr-shadow-md:  0 4px 20px rgba(26, 86, 165, 0.12);
  --imr-r-sm:   7px;
  --imr-r-md:   10px;
  --imr-r-lg:   12px;
  --imr-r-xl:   14px;
  --imr-r-full: 9999px;
  /* Semáforo */
  --sem-green:    #16a34a;
  --sem-yellow:   #d97706;
  --sem-orange:   #ea580c;
  --sem-red:      #dc2626;
  --sem-critical: #7c3aed;
}

/* =============================================================
   BASE
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; }
body, input, select, textarea, button {
  font-family: var(--imr-font) !important;
  -webkit-font-smoothing: antialiased;
}
body { background: var(--imr-bg) !important; color: var(--imr-text) !important; }

/* =============================================================
   CONTAINER
   ============================================================= */
#container {
  background: var(--imr-surface) !important;
  width: calc(100% - 48px) !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  box-shadow: var(--imr-shadow-sm) !important;
  border-radius: 0 0 var(--imr-r-lg) var(--imr-r-lg) !important;
}

/* =============================================================
   HEADER — App bar con gradiente de marca IMR (portal cliente)
   ============================================================= */
#header {
  background: linear-gradient(120deg, #0c2d5e 0%, #1a56a5 60%, #0d7d72 100%) !important;
  min-height: 68px !important;
  padding: 0 28px !important;
  position: relative !important;
}
#header .pull-right p {
  color: rgba(255,255,255,.92) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding-top: 16px !important;
}
#header .pull-right a {
  color: #fff !important;
  background: rgba(255,255,255,.14) !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: var(--imr-r-full) !important;
  padding: 4px 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: background .2s !important;
}
#header .pull-right a:hover {
  background: rgba(255,255,255,.25) !important;
  border-bottom: 1px solid rgba(255,255,255,.28) !important;
  margin-bottom: 0 !important;
}
#header #logo img { filter: brightness(0) invert(1) !important; max-height: 42px !important; }

/* =============================================================
   NAVEGACIÓN
   ============================================================= */
#nav {
  background: var(--imr-surface) !important;
  border-top: none !important;
  border-bottom: 1px solid var(--imr-border) !important;
  box-shadow: var(--imr-shadow-sm) !important;
  height: auto !important;
  min-height: 44px !important;
  padding: 0 16px !important;
  margin: 0 !important;
  overflow: visible !important;
  white-space: nowrap !important;
}
#nav li a {
  color: var(--imr-text-2) !important;
  background-image: none !important;
  background-color: transparent !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  height: 40px !important;
  line-height: 40px !important;
  padding: 0 14px !important;
  margin: 0 2px !important;
  border-bottom: 2px solid transparent !important;
  transition: color .15s !important;
}
#nav li a:hover {
  background-color: transparent !important;
  color: var(--imr-primary) !important;
  border-bottom: 2px solid transparent !important;
}
#nav li a.active {
  background-color: transparent !important;
  color: var(--imr-primary) !important;
  font-weight: 700 !important;
  border-bottom: 2px solid var(--imr-primary) !important;
}
/* Nav pill para "Abrir nuevo Ticket" */
#nav li a.new {
  background: var(--imr-teal) !important;
  color: #fff !important;
  font-weight: 600 !important;
  border-radius: var(--imr-r-sm) !important;
  padding: 0 18px !important;
  height: 32px !important;
  line-height: 32px !important;
  margin: 4px 0 4px 10px !important;
  border-bottom: none !important;
}
#nav li a.new:hover { background: #0a665d !important; color: #fff !important; }

/* =============================================================
   CONTENT
   ============================================================= */
#content { padding: 24px !important; margin: 0 !important; min-height: 420px !important; }

/* =============================================================
   LANDING / ACTION CARDS
   ============================================================= */
#landing_page .sidebar { padding: 0 0 0 20px !important; }

.front-page-button {
  background: var(--imr-surface) !important;
  border: 1px solid var(--imr-border) !important;
  border-radius: var(--imr-r-xl) !important;
  box-shadow: var(--imr-shadow-sm) !important;
  padding: 22px 20px !important;
  margin-bottom: 16px !important;
  transition: box-shadow .2s, transform .2s !important;
}
.front-page-button:hover { box-shadow: var(--imr-shadow-md) !important; transform: translateY(-2px) !important; }

/* CTA primario — Abrir Ticket (teal) */
.front-page-button a.blue.button {
  background: var(--imr-teal) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  padding: 13px 22px !important;
  border-radius: var(--imr-r-sm) !important;
  box-shadow: none !important;
  border: none !important;
  transition: background .2s, transform .15s !important;
  margin-bottom: 4px !important;
}
.front-page-button a.blue.button:hover { background: #0a665d !important; transform: translateY(-1px) !important; }

/* Secundario — Ver Estado (outline azul) */
.front-page-button a.green.button {
  background: transparent !important;
  color: var(--imr-primary) !important;
  border: 1.5px solid var(--imr-primary) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 11px 22px !important;
  border-radius: var(--imr-r-sm) !important;
  box-shadow: none !important;
  transition: all .2s !important;
}
.front-page-button a.green.button:hover {
  background: var(--imr-primary-light) !important;
  color: var(--imr-primary-dark) !important;
  border-color: var(--imr-primary-dark) !important;
}

/* HERO del portal (landing) */
#landing_page .imr-hero {
  background: linear-gradient(120deg, #0c2d5e 0%, #1a56a5 60%, #0d7d72 100%);
  border-radius: var(--imr-r-lg);
  padding: 40px 36px 32px;
  margin-bottom: 22px;
  text-align: center;
  color: #fff;
}
#landing_page .imr-hero h1 { color:#fff !important; font-size:28px !important; font-weight:800 !important; letter-spacing:-0.5px; margin:0 0 8px; }
#landing_page .imr-hero p { color:rgba(255,255,255,.82); font-size:15px; margin:0 auto 22px; max-width:560px; line-height:1.5; }
#landing_page .imr-hero .search-form { margin:0 auto !important; max-width:620px; }
#landing_page .imr-hero .search-form form { display:flex; gap:8px; }
#landing_page .imr-hero .search { flex:1 1 auto; min-width:0 !important; background:#fff !important; border-color:transparent !important; }
#landing_page .imr-hero .button { border-radius:var(--imr-r-full) !important; padding:0 22px !important; }

/* Sidebar oculto en la landing — las action cards lo reemplazan (handoff) */
#landing_page .sidebar { display:none !important; }
#landing_page .main-content { width:100% !important; float:none !important; margin:0 !important; }

/* Grid de 3 action cards */
.imr-hero-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:26px; }

/* Helper: tarjetas de acción del portal (hero) — para index.inc.php */
.imr-action-card {
  background:#fff; border:1px solid var(--imr-border); border-radius:var(--imr-r-lg);
  box-shadow:var(--imr-shadow-sm); padding:22px 20px; text-align:center; text-decoration:none;
  display:block; transition:box-shadow .2s, transform .2s; color:var(--imr-text) !important;
}
.imr-action-card:hover { box-shadow:var(--imr-shadow-md); transform:translateY(-3px); }
.imr-action-card .ico { font-size:30px; display:block; margin-bottom:10px; }
.imr-action-card .t { display:block; font-size:16px; font-weight:700; color:var(--imr-text) !important; margin-bottom:4px; }
.imr-action-card .d { display:block; font-size:12px; color:var(--imr-text-2) !important; line-height:1.5; }

/* =============================================================
   SEARCH
   ============================================================= */
.search-form { margin-bottom: 24px !important; }
.search-form .search, .searchbar .search, input[name="keywords"] {
  border-radius: var(--imr-r-full) !important;
  border: 1.5px solid var(--imr-border) !important;
  padding: 11px 20px !important;
  font-size: 14px !important;
  background: #fafbfd !important;
  width: 100% !important;          /* theme.css fija 400px → fluido */
  max-width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color .2s, box-shadow .2s !important;
}
.search-form .search:focus, .searchbar .search:focus, input[name="keywords"]:focus {
  border-color: var(--imr-primary) !important;
  box-shadow: 0 0 0 3px rgba(26,86,165,.08) !important;
  outline: none !important;
}

/* =============================================================
   BOTONES
   ============================================================= */
.button, .button:visited, input[type=submit], button[type=submit] {
  border-radius: var(--imr-r-sm) !important;
  font-family: var(--imr-font) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  transition: background .2s !important;
  border: none !important;
  cursor: pointer !important;
}
.blue.button, .blue.button:visited { background-color: var(--imr-primary) !important; color: #fff !important; }
.blue.button:hover { background-color: var(--imr-primary-dark) !important; }
.green.button, .green.button:visited { background-color: var(--imr-teal) !important; color: #fff !important; }
.green.button:hover { background-color: #0a665d !important; }
.red.button { background-color: var(--imr-error) !important; color: #fff !important; }
.red.button:hover { background-color: var(--imr-error-dark) !important; }

/* =============================================================
   FORMULARIOS
   ============================================================= */
input[type=text], input[type=email], input[type=password],
input[type=tel], input[type=search], input[type=url],
input[type=number], select, textarea {
  border: 1.5px solid var(--imr-border) !important;
  border-radius: 8px !important;
  padding: 9px 13px !important;
  font-family: var(--imr-font) !important;
  font-size: 13px !important;
  color: var(--imr-text) !important;
  background: #fff !important;
  transition: border-color .2s, box-shadow .2s !important;
  outline: none !important;
}
input[type=text]:focus, input[type=email]:focus,
input[type=password]:focus, select:focus, textarea:focus {
  border-color: var(--imr-primary) !important;
  box-shadow: 0 0 0 3px rgba(26,86,165,.08) !important;
}

/* =============================================================
   TICKET TABLE (handoff: header claro, zebra, hover)
   ============================================================= */
#ticketTable, table.list {
  width: 100% !important;
  border-collapse: collapse !important;
  border-radius: var(--imr-r-md) !important;
  overflow: hidden !important;
  font-size: 13px !important;
}
#ticketTable th, table.list th {
  background: #f8fafc !important;
  color: var(--imr-text-2) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  padding: 10px 14px !important;
  border: none !important;
  border-bottom: 1.5px solid var(--imr-border) !important;
  white-space: nowrap !important;
}
#ticketTable th a, table.list th a { color: var(--imr-text-2) !important; text-decoration: none !important; }
#ticketTable td, table.list td {
  border-color: var(--imr-border-light) !important;
  padding: 11px 14px !important;
  vertical-align: middle !important;
  font-size: 13px !important;
  color: var(--imr-text) !important;
}
#ticketTable tbody tr, table.list tbody tr {
  border-bottom: 1px solid var(--imr-border-light) !important;
  transition: background .12s !important;
}
#ticketTable tbody tr:nth-child(even), table.list tbody tr.alt { background: #fafbfc !important; }
#ticketTable tbody tr:hover, table.list tbody tr:hover { background: var(--imr-border-light) !important; }
#ticketTable { display: block !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; }

/* =============================================================
   STATUS
   ============================================================= */
.status-open, .statusOpen     { color: var(--imr-primary) !important; font-weight: 600 !important; }
.status-closed, .statusClosed { color: var(--imr-text-2) !important; }
.status-overdue               { color: var(--imr-error) !important; font-weight: 700 !important; }

/* =============================================================
   SEMÁFORO — preservado para semaforo.js
   ============================================================= */
.sem-badge {
  display: inline-block !important;
  width: 10px !important; height: 10px !important;
  border-radius: 50% !important;
  margin-right: 6px !important;
  vertical-align: middle !important;
  flex-shrink: 0 !important;
  box-shadow: 0 0 0 2px rgba(255,255,255,.6) !important;
}
tr.sem-green  td:first-child { border-left: 4px solid var(--sem-green) !important; }
tr.sem-yellow td:first-child { border-left: 4px solid var(--sem-yellow) !important; }
tr.sem-orange td:first-child { border-left: 4px solid var(--sem-orange) !important; }
tr.sem-red    td:first-child { border-left: 4px solid var(--sem-red) !important; }
tr.sem-critical td:first-child { border-left: 4px solid var(--sem-critical) !important; }
tr.sem-critical { background: #ede9fe !important; }
.sem-badge.green    { background: var(--sem-green) !important; }
.sem-badge.yellow   { background: var(--sem-yellow) !important; }
.sem-badge.orange   { background: var(--sem-orange) !important; }
.sem-badge.red      { background: var(--sem-red) !important; }
.sem-badge.critical { background: var(--sem-critical) !important; }

/* =============================================================
   LOGIN BOX
   ============================================================= */
#clientLogin {
  border: 1px solid var(--imr-border) !important;
  border-radius: var(--imr-r-xl) !important;
  box-shadow: var(--imr-shadow-sm) !important;
  background: var(--imr-surface) !important;
  padding: 28px 28px 24px !important;
}
#clientLogin strong { color: var(--imr-error) !important; }

/* =============================================================
   ALERTAS / MENSAJES
   ============================================================= */
#msg_notice, .notice {
  background: var(--imr-success-light) !important;
  border: 1px solid #bbf7d0 !important;
  border-left: 4px solid var(--imr-success) !important;
  border-radius: var(--imr-r-md) !important;
  color: #15803d !important;
  padding: 12px 16px !important; margin: 12px 0 !important;
}
#msg_warning, .warning-banner, .warning {
  background: var(--imr-warning-light) !important;
  border: 1px solid #fde68a !important;
  border-left: 4px solid var(--imr-warning) !important;
  border-radius: var(--imr-r-md) !important;
  color: #92400e !important;
  padding: 12px 16px !important; margin: 12px 0 !important;
}
#msg_error, .error-banner {
  background: var(--imr-error-light) !important;
  border: 1px solid #fecaca !important;
  border-left: 4px solid var(--imr-error) !important;
  border-radius: var(--imr-r-md) !important;
  color: var(--imr-error-dark) !important;
  padding: 12px 16px !important; margin: 12px 0 !important;
}

/* =============================================================
   TIPOGRAFÍA
   ============================================================= */
h1 { color: var(--imr-text) !important; font-weight: 800 !important; font-size: 24px !important; letter-spacing: -0.5px !important; }
h2 { color: var(--imr-text) !important; font-weight: 700 !important; font-size: 18px !important; }
h3 { color: var(--imr-text) !important; font-weight: 700 !important; font-size: 16px !important; }
a, .link { color: var(--imr-primary) !important; text-decoration: none !important; }
a:hover  { color: var(--imr-primary-dark) !important; border-bottom-color: var(--imr-primary) !important; }

/* =============================================================
   SIDEBAR CONTENT BOX
   ============================================================= */
.sidebar .content {
  border: 1px solid var(--imr-border) !important;
  border-radius: var(--imr-r-lg) !important;
  background: var(--imr-primary-light) !important;
  padding: 16px !important;
}

/* =============================================================
   BASE DE CONOCIMIENTO
   ============================================================= */
#kb > li {
  background: none !important;
  border-bottom: 1px solid var(--imr-border) !important;
  padding: 14px 8px !important;
}
#kb > li h4 a { color: var(--imr-primary) !important; font-size: 14px !important; font-weight: 600 !important; }
#faq ol li a {
  background: none !important;
  color: var(--imr-text) !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid var(--imr-border) !important;
}
#faq ol li a:hover { background: var(--imr-primary-light) !important; color: var(--imr-primary-dark) !important; }

/* =============================================================
   THREAD / TICKET DETAIL
   ============================================================= */
.thread-body { padding: 0 4px !important; line-height: 1.7 !important; }

/* =============================================================
   FOOTER
   ============================================================= */
#footer {
  width: calc(100% - 48px) !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  background: var(--imr-primary-dark) !important;
  border-top: 3px solid var(--imr-teal) !important;
  color: rgba(255,255,255,.72) !important;
  padding: 20px 28px !important;
  border-radius: 0 0 var(--imr-r-lg) var(--imr-r-lg) !important;
  text-align: center !important;
}
#footer p { color: rgba(255,255,255,.72) !important; margin: 0 0 6px 0 !important; font-size: 12px !important; }
#footer a { color: var(--imr-teal) !important; }
#footer #poweredBy {
  text-indent: 0 !important; width: auto !important; height: auto !important; background: none !important;
  font-size: 11px !important; font-weight: 400 !important; display: inline-block !important;
  margin-top: 4px !important; opacity: .6 !important;
}

/* =============================================================
   PAGINACIÓN
   ============================================================= */
.pagenav a, .pagelink {
  background: var(--imr-surface) !important;
  border: 1px solid var(--imr-border) !important;
  border-radius: var(--imr-r-sm) !important;
  color: var(--imr-primary) !important;
  padding: 4px 9px !important;
  font-size: 12px !important;
  transition: background .15s !important;
}
.pagenav a:hover, .pagelink:hover { background: var(--imr-primary-light) !important; }

/* =============================================================
   SCROLLBAR
   ============================================================= */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: var(--imr-bg); }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }

/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width: 1024px) {
  #container, #footer { width: calc(100% - 24px) !important; }
  #content { padding: 16px !important; }
}
@media (max-width: 768px) {
  /* Guarda de overflow horizontal en todo el portal */
  html, body { max-width: 100% !important; overflow-x: hidden !important; }
  #container, #footer { width: 100% !important; max-width: 100% !important; border-radius: 0 !important; }

  /* Header: apilar logo + acciones (los floats heredados desbordaban) */
  #header { min-height: auto !important; padding: 10px 16px !important; }
  #header .pull-left, #header #logo { float: none !important; display: block !important; }
  #header #logo img { max-height: 32px !important; }
  #header .pull-right, #header .flush-right { float: none !important; display: block !important; text-align: left !important; }
  #header .pull-right p, #header .flush-right p { padding-top: 8px !important; font-size: 12px !important; line-height: 1.6 !important; width: auto !important; max-width: 100% !important; }

  /* Nav: scroll horizontal contenido (no ensancha el container) */
  #nav { overflow-x: auto !important; max-width: 100% !important; -webkit-overflow-scrolling: touch !important; }
  #nav li a { font-size: 12px !important; padding: 0 10px !important; height: 38px !important; line-height: 38px !important; }
  #nav li a.new { padding: 0 12px !important; margin-left: 4px !important; }

  #content { padding: 12px !important; }

  /* Landing — theme.css fija .main-content:565px → fluido en móvil */
  .main-content { width: 100% !important; max-width: 100% !important; }
  #landing_page .main-content { width: 100% !important; max-width: 100% !important; }
  #landing_page .imr-hero { padding: 28px 20px 24px !important; }
  #landing_page .imr-hero h1 { font-size: 22px !important; word-break: break-word !important; }
  #landing_page .imr-hero p { font-size: 13px !important; }
  #landing_page .imr-hero .search-form form { flex-direction: column !important; }
  #landing_page .imr-hero .button { padding: 11px 18px !important; }
  .front-page-button { padding: 16px !important; }
  .imr-hero-actions { grid-template-columns: 1fr !important; }

  /* Tablas: scroll en vez de desbordar */
  #ticketTable, table.list { display: block !important; overflow-x: auto !important; max-width: 100% !important; }
}
@media (max-width: 480px) {
  #nav li a span, #nav li a { font-size: 11px !important; padding: 0 8px !important; }
  h1 { font-size: 20px !important; }
  #ticketTable td, #ticketTable th { padding: 8px 10px !important; font-size: 12px !important; }
}

/* =============================================================
   BASE DE CONOCIMIENTO — Card grid 3 columnas (Handoff Jun 2026)
   Aplica a include/client/kb-categories.inc.php (página pública kb/index.php)
   Reutiliza tokens IMR. NO redefine #kb > li existente: usa #kb.imr-kb-grid
   para activar la rejilla solo cuando el markup nuevo está presente.
   ============================================================= */

/* Encabezado de la sección KB */
.imr-kb-head { margin: 0 0 18px; }
.imr-kb-head h1 {
  font-size: 22px !important;
  color: var(--imr-primary-dark) !important;
  font-weight: 700 !important;
  margin: 0 0 4px !important;
}
.imr-kb-head p {
  color: var(--imr-text-2) !important;
  font-size: 13px !important;
  margin: 0 !important;
}

/* Rejilla — neutraliza el list-item vertical solo en modo grid */
ul#kb.imr-kb-grid {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
ul#kb.imr-kb-grid > li.imr-kb-card {
  list-style: none !important;
  background: var(--imr-surface) !important;
  border: 1px solid var(--imr-border) !important;
  border-bottom: 1px solid var(--imr-border) !important;
  border-radius: var(--imr-r-lg) !important;
  box-shadow: var(--imr-shadow-sm) !important;
  padding: 18px 18px 16px !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s, transform .2s, border-color .2s;
}
ul#kb.imr-kb-grid > li.imr-kb-card:hover {
  box-shadow: var(--imr-shadow-md) !important;
  transform: translateY(-3px);
  border-color: var(--imr-primary) !important;
}

/* Cabecera de la tarjeta: icono + título + conteo */
.imr-kb-card .imr-kb-card-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
}
.imr-kb-card .imr-kb-ico {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: var(--imr-r-md);
  background: var(--imr-primary-light);
  color: var(--imr-primary) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
}
.imr-kb-card .imr-kb-ico i { margin: 0; line-height: 1; }

/* Acentos semánticos por categoría (clases derivadas del nombre) */
.imr-kb-card.cat-sap     .imr-kb-ico { background: var(--imr-primary-light); color: var(--imr-primary) !important; }
.imr-kb-card.cat-pepperi .imr-kb-ico { background: var(--imr-teal-light);    color: var(--imr-teal) !important; }
.imr-kb-card.cat-ventas  .imr-kb-ico { background: var(--imr-success-light); color: var(--imr-success) !important; }
.imr-kb-card.cat-qlik     .imr-kb-ico { background: #f3e8ff;                  color: var(--imr-purple) !important; }

.imr-kb-card .imr-kb-titlewrap { min-width: 0; flex: 1 1 auto; }
.imr-kb-card h4 {
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
}
.imr-kb-card h4 a {
  color: var(--imr-text) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.imr-kb-card:hover h4 a { color: var(--imr-primary) !important; }

/* Badge de conteo de artículos */
.imr-kb-card .imr-kb-count {
  display: inline-block;
  margin-top: 4px;
  font-size: 11px;
  font-weight: 600;
  color: var(--imr-text-2) !important;
  background: var(--imr-border-light);
  border-radius: var(--imr-r-full);
  padding: 2px 9px;
}

/* Descripción breve (clamp a 3 líneas) */
.imr-kb-card .imr-kb-desc {
  color: var(--imr-text-2) !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
  margin: 0 0 12px !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.imr-kb-card .imr-kb-desc p { margin: 0 !important; }

/* Subcategorías y FAQs destacadas dentro de la tarjeta */
.imr-kb-card .imr-kb-subs { margin: 0 0 10px; }
.imr-kb-card .imr-kb-subs a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px !important;
  color: var(--imr-primary) !important;
  padding: 2px 0;
}
.imr-kb-card .imr-kb-subs i { color: var(--imr-text-muted) !important; }

.imr-kb-card .imr-kb-faqs { margin-top: auto; border-top: 1px solid var(--imr-border-light); padding-top: 10px; }
.imr-kb-card .popular-faq {
  display: flex;
  align-items: baseline;
  gap: 7px;
  font-size: 12.5px;
  padding: 4px 0;
}
.imr-kb-card .popular-faq i { color: var(--imr-text-muted) !important; flex: 0 0 auto; }
.imr-kb-card .popular-faq a { color: var(--imr-text-2) !important; text-decoration: none !important; }
.imr-kb-card .popular-faq a:hover { color: var(--imr-primary) !important; }

/* Barra de filtros superior (browse by topic) en una tarjeta clara */
.imr-kb-grid-wrap .searchbar { margin-bottom: 0 !important; }

/* Responsive */
@media (max-width: 980px) {
  ul#kb.imr-kb-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  ul#kb.imr-kb-grid { grid-template-columns: 1fr; }
}
