html {
  font-size: 19px;
}

html,
body,
button,
input,
select,
textarea {
  font-family: "Aptos", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.hover-shadow:hover { box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important; transition: box-shadow .15s ease; }
.border-dashed { border: 2px dashed #ced4da !important; }
.rendered { font-size: 0.95rem; line-height: 1.5; }
table.table-sm code { font-size: 0.78rem; }

/* === Frontpage profesional (home.html + partials) === */

.home-header {
  background: linear-gradient(135deg, var(--app-accent) 0%, var(--app-accent-soft) 100%);
  color: #fff;
  border-radius: .5rem;
  padding: 1rem 1.25rem;
}
.home-header h1, .home-header p, .home-header .small { color: #fff; }
.home-header .opacity-75 { opacity: .85 !important; }
.home-header a.chip-transicion {
  display: inline-block;
  background: rgba(255,255,255,.18);
  color: #fff;
  padding: .2rem .6rem;
  border-radius: 1rem;
  border: 1px solid rgba(255,255,255,.25);
  white-space: nowrap;
}
.home-header a.chip-transicion:hover { background: rgba(255,255,255,.28); }
.home-header .btn-light { color: var(--app-accent-dark); font-weight: 600; }

.kpi-card { border-left: 4px solid var(--bs-primary); transition: transform .12s, box-shadow .15s; }
.kpi-card:hover { transform: translateY(-2px); box-shadow: 0 .4rem .8rem rgba(0,0,0,.08); }
.kpi-card.kpi-critical { border-left-color: var(--bs-danger); }
.kpi-card.kpi-warning  { border-left-color: var(--bs-warning); }
.kpi-card.kpi-info     { border-left-color: var(--bs-info); }
.kpi-card.kpi-primary  { border-left-color: var(--bs-primary); }
.kpi-card.kpi-success  { border-left-color: var(--bs-success); }
.kpi-card .kpi-value {
  font-size: clamp(2.55rem, 7vw, 4.1rem);
  font-weight: 700;
  line-height: 1;
}
.kpi-card .kpi-label {
  font-size: .93rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #6c757d;
  font-weight: 700;
}

.kpi-card-mini { border-left: 3px solid #dee2e6; transition: all .15s ease-in-out; }
.kpi-card-mini:hover { background-color: #f8f9fa; transform: translateY(-1px); }
.kpi-card-mini.kpi-critical { border-left-color: var(--bs-danger); }
.kpi-card-mini.kpi-warning  { border-left-color: var(--bs-warning); }
.kpi-card-mini.kpi-info     { border-left-color: var(--bs-info); }
.kpi-card-mini.kpi-success  { border-left-color: var(--bs-success); }

.worker-card-live { transition: transform .12s, box-shadow .15s; }
.worker-card-live:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.1); }
.worker-card-live .headline-value {
  font-size: clamp(1.95rem, 5.4vw, 2.8rem);
  font-weight: 700;
  line-height: 1;
  color: var(--app-accent-dark);
}

.activity-feed-row { border-bottom: 1px solid #f1f1f1; }
.activity-feed-row:last-child { border-bottom: 0; }
.activity-feed-row a:hover { background-color: #f8f9fa; }

/* Fichas de Mi Acusete: prioridad dinámica + antecedentes de la causa. */
.causas-priorizadas {
  gap: 1rem;
}

.causas-priorizadas > .list-group-item.causa-priorizada {
  display: grid !important;
  grid-template-columns: 3.75rem minmax(0, 1fr);
  padding: 0 !important;
  overflow: hidden;
  border: 2px solid #8fa4b8 !important;
  border-radius: .65rem !important;
  background: #fff;
  box-shadow: 0 .25rem .65rem rgba(31, 41, 55, .14);
}

.causa-prioridad-numero,
.causa-prioridad-rol {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1;
}

.causa-prioridad-numero {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  align-self: stretch;
  padding: 1rem .35rem;
  border-right: 2px solid #8fa4b8;
  background: var(--app-accent-dark);
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.causa-prioridad-contenido {
  display: block;
  min-width: 0;
  padding: 1rem 1.1rem;
  background: #fff;
}

.causa-prioridad-rol {
  margin: -1rem -1.1rem 1rem;
  padding: .8rem 1.1rem;
  color: #fff;
  text-transform: uppercase;
}

.causa-prioridad-rol-urgente-atrasada {
  background: var(--bs-danger);
}

.causa-prioridad-rol-urgente {
  background: var(--bs-primary);
}

.causa-prioridad-rol-atrasada {
  background: var(--bs-warning);
  color: #332701;
}

.causa-prioridad-rol-al-dia {
  background: var(--bs-success);
}

.causas-priorizadas > .causa-priorizada:hover .causa-prioridad-contenido {
  background: #f7fafc;
}

/* === Responsividad Agresiva para iPhone / Mobile === */
* { box-sizing: border-box; }

body {
  overflow-x: hidden;
  width: 100vw;
  font-size: 1.08rem;
  line-height: 1.6;
  color: #243447;
}

.small {
  font-size: 1rem !important;
}

.badge {
  font-size: 0.94rem;
}

@media (max-width: 768px) {
  html {
    font-size: 16px;
  }
  .home-header {
    flex-direction: column;
    align-items: stretch !important;
    padding: 0.75rem !important;
    margin-left: -5px; /* Ajuste fino para centrar visualmente */
    margin-right: -5px;
  }
  .home-header h1 {
    font-size: 1.1rem !important;
    white-space: normal; /* Permitir que el título rompa en dos líneas */
  }
  .home-header .d-flex.gap-2 {
    width: 100%;
    flex-direction: column; /* Botones uno debajo de otro para máximo ancho */
    gap: 0.5rem !important;
  }
  .home-header .btn {
    width: 100%;
    text-align: center;
    font-size: 0.9rem;
    padding: 0.6rem;
  }
  
  .kpi-card .kpi-value {
    font-size: 2rem;
  }

  .causas-priorizadas > .list-group-item.causa-priorizada {
    grid-template-columns: 3rem minmax(0, 1fr);
  }

  .causa-prioridad-numero {
    padding: .75rem .25rem;
    font-size: 1.25rem;
  }

  .causa-prioridad-rol {
    font-size: 1.25rem;
  }

  .causa-prioridad-contenido {
    padding: .75rem;
  }

  /* Forzar que nada sea más ancho que la pantalla */
  .container, .container-fluid, main {
    max-width: 100vw !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    overflow-x: hidden;
  }

  /* Tablas con scroll interno para que no empujen el layout */
  .table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  img, table, video, canvas {
    max-width: 100% !important;
  }
}
