/*
 * Personalizacion visual ROVI Ingenieria para osTicket
 * Proyecto: Sistema de Tickets TI - STI-PD-002
 * Mantener este archivo separado facilita actualizaciones futuras de osTicket.
 */
:root {
  --rovi-azul: #0F5485;
  --rovi-azul-oscuro: #05203B;
  --rovi-azul-profundo: #00629D;
  --rovi-azul-claro: #EAF4FA;
  --rovi-gris: #757574;
  --rovi-gris-claro: #EAEAEA;
  --rovi-borde: #d7e2ea;
  --rovi-verde: #2e9d56;
  --rovi-amarillo: #f4b000;
  --rovi-rojo: #c9332b;
}

html, body {
  background: #f5f8fa !important;
  color: #263238;
}

#container {
  border: 1px solid var(--rovi-borde) !important;
  box-shadow: 0 12px 34px rgba(0, 59, 92, .10);
  border-radius: 8px;
  overflow: hidden;
}

#header {
  background: linear-gradient(90deg, #ffffff 0%, #f7fbfe 55%, #e9f6fd 100%) !important;
  border-bottom: 4px solid var(--rovi-azul) !important;
}

#header #logo img {
  max-height: 75px;
  object-fit: contain;
}

#nav, ul#nav {
  background: var(--rovi-azul-oscuro) !important;
  border-bottom: 0 !important;
}

#nav li a, ul#nav li a {
  color: #ffffff !important;
  font-weight: 600;
  text-shadow: none !important;
}

#nav li a:hover, #nav li a.active, ul#nav li a:hover, ul#nav li a.active {
  background: var(--rovi-azul) !important;
  color: #ffffff !important;
}

#content {
  background: #ffffff !important;
}

a { color: var(--rovi-azul); }
a:hover { color: var(--rovi-azul-oscuro); }

.button, input[type=button], input[type=submit], button, .action-button {
  border-radius: 6px !important;
  border: 1px solid var(--rovi-azul-profundo) !important;
  background: var(--rovi-azul) !important;
  color: #ffffff !important;
  font-weight: 600;
}

.button:hover, input[type=button]:hover, input[type=submit]:hover, button:hover, .action-button:hover {
  background: var(--rovi-azul-oscuro) !important;
}

.green.button, .green.button:hover {
  background: var(--rovi-verde) !important;
  border-color: #257944 !important;
}

#landing_page .main-content, .thread-body, .ticket_info, .infoTable, .form_table {
  border-color: var(--rovi-borde) !important;
}

#landing_page h1, h1, h2, h3 {
  color: var(--rovi-azul-oscuro);
}

.rovi-hero {
  padding: 24px 28px;
  margin-bottom: 18px;
  background: linear-gradient(135deg, var(--rovi-azul-claro), #ffffff);
  border-left: 6px solid var(--rovi-azul);
  border-radius: 10px;
}

.rovi-hero h1 {
  margin-top: 0;
  font-size: 28px;
  color: var(--rovi-azul-oscuro);
}

.rovi-hero p {
  font-size: 15px;
  line-height: 1.55;
}

.rovi-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
  margin: 18px 0;
}

.rovi-card {
  border: 1px solid var(--rovi-borde);
  border-radius: 10px;
  padding: 16px;
  background: #ffffff;
}

.rovi-card strong {
  color: var(--rovi-azul-oscuro);
}

.rovi-badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--rovi-azul-claro);
  color: var(--rovi-azul-oscuro);
  font-size: 12px;
  font-weight: 700;
}

#footer {
  background: #ffffff !important;
  border-top: 1px solid var(--rovi-borde) !important;
  color: var(--rovi-gris) !important;
}

#poweredBy {
  display: none !important;
}

#msg_notice, .notice-banner { border-left: 5px solid var(--rovi-azul) !important; }
#msg_warning, .warning-banner { border-left: 5px solid var(--rovi-amarillo) !important; }
#msg_error, .error-banner { border-left: 5px solid var(--rovi-rojo) !important; }

/* Panel de agentes */
#sub_nav a.active, #sub_nav a:hover,
#content .tabs a.active, #content .tabs a:hover {
  border-color: var(--rovi-azul) !important;
  color: var(--rovi-azul-oscuro) !important;
}

table.list thead th, table.dashboard-stats thead th {
  background: var(--rovi-azul-oscuro) !important;
  color: #fff !important;
}

@media (max-width: 760px) {
  #container { border-radius: 0; }
  .rovi-hero { padding: 18px; }
  #header #logo img { max-width: 230px; }
}

/* ROVI - Modificaciones seguridad, urgencia y encuesta */
.rovi-login-instructions {
    color: #333;
    line-height: 1.45;
}
.rovi-login-note,
.rovi-help-text {
    color: #666;
    font-size: 12px;
    margin-top: 4px;
}
.rovi-forgot-password {
    margin-left: 12px;
}
.rovi-survey-box {
    border-left: 5px solid #0F5485;
    background: #EAF3FA;
    padding: 14px 16px;
    margin: 12px 0 18px;
    width: 760px;
}
.rovi-survey-table th {
    text-align: left;
    width: 260px;
    vertical-align: top;
}
.rovi-survey-table h2 {
    color: #0F5485;
    margin: 10px 0;
}


/* ------------------------------------------------------------------
   ROVI Corrección 06 - Identidad corporativa y analíticos
   Manual ROVI: Azul #0F5485, Marino #05203B, Secundario #00629D,
   Gris #757574, Gris claro #EAEAEA. Tipografía: Roboto Condensed.
   ------------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@300;400;700&display=swap');

html, body, input, select, textarea, button, table {
  font-family: 'Roboto Condensed', 'Arial Narrow', Arial, sans-serif !important;
}

body, #content, .thread-body, .form_table, .ticket_info, table, td, th, p, label {
  color: #111111 !important;
}

#header #logo img,
#logo img {
  max-height: 82px !important;
  max-width: 300px !important;
  object-fit: contain !important;
}

#header {
  min-height: 92px !important;
  background: linear-gradient(90deg, #ffffff 0%, #ffffff 58%, #EAEAEA 100%) !important;
  border-bottom: 5px solid #0F5485 !important;
}

/* Menús desplegables: texto negro legible sobre fondo claro */
#nav li.inactive > ul,
ul#nav li.inactive > ul {
  background: #ffffff !important;
  border: 1px solid #d8d8d8 !important;
  box-shadow: 0 8px 18px rgba(5,32,59,0.18) !important;
}

#nav li.inactive > ul li a,
#nav li.inactive:hover > ul li a,
ul#nav li.inactive > ul li a,
ul#nav li.inactive:hover > ul li a,
#nav .inactive li a,
ul#nav .inactive li a {
  color: #111111 !important;
  background-color: #ffffff !important;
  text-shadow: none !important;
  font-weight: 600 !important;
}

#nav li.inactive > ul li a:hover,
#nav li.inactive:hover > ul li a:hover,
ul#nav li.inactive > ul li a:hover,
ul#nav li.inactive:hover > ul li a:hover,
#nav .inactive li a:hover,
ul#nav .inactive li a:hover {
  color: #000000 !important;
  background-color: #EAEAEA !important;
  text-decoration: none !important;
}

.action-dropdown ul li > a,
.noclick-dropdown ul li > a,
.customQ-dropdown ul li > a,
.customQ-dropdown li > span {
  color: #111111 !important;
  text-shadow: none !important;
}

.action-dropdown ul li > a:hover,
.noclick-dropdown ul li > a:hover,
.customQ-dropdown ul li:hover > a,
.customQ-dropdown li:hover > span {
  color: #000000 !important;
  background-color: #EAEAEA !important;
}

.rovi-page-title,
.rovi-analytics h1,
.rovi-analytics h2,
.rovi-analytics h3 {
  color: #0F5485 !important;
  letter-spacing: .01em;
}

.rovi-analytics {
  font-family: 'Roboto Condensed', 'Arial Narrow', Arial, sans-serif;
  color: #111;
}
.rovi-analytics .rovi-analytics-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-left: 8px solid #0F5485;
  background: linear-gradient(90deg, #ffffff 0%, #f4f8fb 64%, #EAEAEA 100%);
  padding: 18px 20px;
  margin-bottom: 18px;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(5,32,59,.08);
}
.rovi-analytics .rovi-analytics-header img {
  width: 150px;
  max-height: 75px;
  object-fit: contain;
}
.rovi-analytics .rovi-analytics-header p {
  margin: 4px 0 0;
  color: #555;
}
.rovi-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin: 14px 0 22px;
}
.rovi-kpi {
  background: #fff;
  border: 1px solid #d7e2ea;
  border-top: 5px solid #0F5485;
  border-radius: 8px;
  padding: 14px 16px;
  box-shadow: 0 4px 12px rgba(5,32,59,.06);
}
.rovi-kpi .label {
  color: #757574;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.rovi-kpi .value {
  color: #05203B;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.1;
}
.rovi-kpi.open { border-top-color: #00629D; }
.rovi-kpi.closed { border-top-color: #757574; }
.rovi-kpi.urgent { border-top-color: #c9332b; }
.rovi-analytics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 18px;
}
.rovi-panel {
  border: 1px solid #d7e2ea;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(5,32,59,.06);
}
.rovi-panel h2 {
  margin: 0;
  padding: 12px 14px;
  background: #05203B;
  color: #ffffff !important;
  font-size: 18px;
}
.rovi-panel table {
  width: 100%;
  border-collapse: collapse;
}
.rovi-panel th,
.rovi-panel td {
  padding: 9px 10px;
  border-bottom: 1px solid #EAEAEA;
  vertical-align: top;
}
.rovi-panel th {
  background: #f7f9fb;
  color: #05203B !important;
  text-align: left;
}
.rovi-panel tr:hover td {
  background: #f7fbfe !important;
}
.rovi-bar {
  display: inline-block;
  min-width: 4px;
  height: 10px;
  background: #0F5485;
  border-radius: 99px;
  vertical-align: middle;
  margin-right: 6px;
}
.rovi-filter {
  margin: 0 0 14px;
  padding: 10px 12px;
  background: #EAEAEA;
  border-radius: 6px;
}
.rovi-filter select,
.rovi-filter input[type=submit] {
  margin-left: 6px;
}
.rovi-muted { color: #757574 !important; font-size: 12px; }
.rovi-small { font-size: 12px; }
@media (max-width: 760px) {
  .rovi-analytics .rovi-analytics-header { display: block; }
  .rovi-analytics .rovi-analytics-header img { margin-top: 10px; }
}

/* ROVI Corrección 07 - clasificación, departamentos y evaluación */
.rovi-classification-box {
  width: 800px;
  margin: 14px 0;
  border: 1px solid var(--rovi-borde);
  border-left: 6px solid var(--rovi-azul);
  background: #fbfdff;
  border-radius: 8px;
  padding: 10px 14px;
}
.rovi-classification-box h2 {
  margin: 0 0 8px;
  color: var(--rovi-azul) !important;
  font-size: 18px;
}
.rovi-classification-box table th {
  width: 190px;
  text-align: left;
  color: var(--rovi-azul-oscuro) !important;
}
.rovi-department-select,
#rovi_subcategory_code,
#rovi_problem_type_code,
#rovi_request_nature,
#topicId,
#priorityId {
  min-width: 320px;
  max-width: 520px;
}
.rovi-rate-button {
  padding: 3px 8px !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
}
.rovi-rated-badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  background: #D5F5E3;
  color: #145A32 !important;
  font-weight: 700;
  font-size: 12px;
}
.rovi-survey-box a { font-weight: 700; }
@media (max-width: 860px) {
  .rovi-classification-box, .rovi-survey-box { width: auto !important; }
  .rovi-department-select,
  #rovi_subcategory_code,
  #rovi_problem_type_code,
  #rovi_request_nature,
  #topicId,
  #priorityId { width: 100%; min-width: 0; }
}


/* ------------------------------------------------------------------
   ROVI Corrección 11 - Legibilidad en menú y analíticos
   - Pestaña activa uniforme: fondo Azul ROVI y texto blanco.
   - Títulos/etiquetas de KPI con texto blanco sobre fondo gris.
   - Tabla de últimos tickets clasificados con desplazamiento horizontal.
   ------------------------------------------------------------------ */

/* Barra superior del panel de agentes: pestaña activa siempre legible */
#nav li.active > a,
ul#nav li.active > a,
#nav li a.active,
ul#nav li a.active,
#nav .active a,
ul#nav .active a {
  background: #0F5485 !important;
  color: #ffffff !important;
  text-shadow: none !important;
  border-radius: 8px 8px 0 0 !important;
}

#nav li.active > a:hover,
ul#nav li.active > a:hover,
#nav li a.active:hover,
ul#nav li a.active:hover,
#nav .active a:hover,
ul#nav .active a:hover {
  background: #00629D !important;
  color: #ffffff !important;
}

/* Submenús desplegables: conservar texto negro cuando el fondo es claro */
#nav ul li a,
ul#nav ul li a,
#sub_nav ul li a,
.action-dropdown ul li a,
.customQ-dropdown ul li a {
  color: #111111 !important;
  text-shadow: none !important;
}

#nav ul li a:hover,
ul#nav ul li a:hover,
#sub_nav ul li a:hover,
.action-dropdown ul li a:hover,
.customQ-dropdown ul li a:hover {
  color: #000000 !important;
  background: #EAEAEA !important;
}

/* KPIs: los títulos ya no quedan gris sobre gris */
.rovi-kpi .label,
.rovi-kpi-grid .label {
  display: inline-block !important;
  background: #757574 !important;
  color: #ffffff !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  line-height: 1.2 !important;
}

/* Mejora de lectura de paneles y tablas de analíticos */
.rovi-panel h2 {
  background: #05203B !important;
  color: #ffffff !important;
}

.rovi-panel-wide {
  grid-column: 1 / -1;
}

.rovi-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid #EAEAEA;
}

.rovi-table-scroll table,
.rovi-recent-table {
  min-width: 1180px;
  width: max-content;
  border-collapse: collapse;
}

.rovi-recent-table th,
.rovi-recent-table td {
  white-space: nowrap;
}

.rovi-recent-table td:nth-child(4),
.rovi-recent-table td:nth-child(5),
.rovi-recent-table td:nth-child(6),
.rovi-recent-table td:nth-child(7),
.rovi-recent-table td:nth-child(9),
.rovi-recent-table td:nth-child(11) {
  white-space: normal;
  min-width: 120px;
  max-width: 190px;
}

.rovi-table-scroll:focus {
  outline: 2px solid #0F5485;
  outline-offset: -2px;
}

.rovi-table-scroll::-webkit-scrollbar {
  height: 10px;
}
.rovi-table-scroll::-webkit-scrollbar-track {
  background: #EAEAEA;
}
.rovi-table-scroll::-webkit-scrollbar-thumb {
  background: #0F5485;
  border-radius: 999px;
}
