/* Portal de Colaboradores y Clientes — estilos autocontenidos.
   Prefijo "acunaportal-" en todo para no chocar con el tema activo. */

:root{
  --acuna-portal-color:#0f5f78;
  --acuna-portal-color-dark:#084b61;
  --acuna-portal-color-soft:#eaf5f8;
  --acuna-portal-accent:#17a2b8;
  --acuna-portal-ink:#1b1e2b;
  --acuna-portal-ink-light:#5c6270;
  --acuna-portal-border:#e2e4e9;
  --acuna-portal-bg:#f7f8fa;
  --acuna-portal-white:#ffffff;
  --acuna-portal-danger:#a13a2c;
  --acuna-portal-success:#1e7a4c;
}

.acunaportal-wrap{
  width:min(94%, 1280px);
  max-width:1280px;
  margin:0 auto;
  padding:clamp(1.25rem,3vw,2.75rem) 0 5rem;
  box-sizing:border-box;
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color:var(--acuna-portal-ink);
  line-height:1.6;
}

.acunaportal-header{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; flex-wrap:wrap;
  padding-bottom:1.5rem; margin-bottom:2rem;
  border-bottom:1px solid var(--acuna-portal-border);
}
.acunaportal-header h1{ margin:0; font-size:1.6rem; }
.acunaportal-eyebrow{ font-size:.8rem; font-weight:600; color:var(--acuna-portal-color); text-transform:uppercase; letter-spacing:.04em; margin:0 0 .4em; }

.acunaportal-btn{
  display:inline-flex; align-items:center; gap:.5em;
  padding:.7em 1.4em; border-radius:8px; font-weight:700; font-size:.9rem;
  border:1px solid var(--acuna-portal-color); cursor:pointer;
  background:var(--acuna-portal-color); color:#fff; text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease; box-shadow:0 5px 16px rgba(15,95,120,.16);
}
.acunaportal-btn:hover{ background:var(--acuna-portal-color-dark); border-color:var(--acuna-portal-color-dark); color:#fff; transform:translateY(-1px); box-shadow:0 8px 20px rgba(15,95,120,.20); }
.acunaportal-btn-ghost{ background:#fff; color:var(--acuna-portal-color); border-color:var(--acuna-portal-color); box-shadow:none; }
.acunaportal-btn-ghost:hover{ background:var(--acuna-portal-color-soft); color:var(--acuna-portal-color-dark); border-color:var(--acuna-portal-color); }
.acunaportal-btn-danger{ background:transparent; color:var(--acuna-portal-danger); border-color:var(--acuna-portal-danger); padding:.5em 1em; font-size:.8rem; }
.acunaportal-btn-danger:hover{ background:rgba(161,58,44,.06); color:var(--acuna-portal-danger); }

.acunaportal-dashboard-grid{display:flex;flex-direction:column;gap:1.25rem;align-items:stretch;width:100%;}
.acunaportal-dashboard-grid > .acunaportal-block{margin-bottom:0;width:100%;box-sizing:border-box;}
.acunaportal-dashboard-grid > .acunaportal-block:first-child{width:100%;}
.acunaportal-dashboard-grid > .acunaportal-block.acunaportal-full{width:100%;}
.acunaportal-block{
  background:var(--acuna-portal-white);
  border:1px solid var(--acuna-portal-border);
  border-radius:8px;
  padding:clamp(1rem,2vw,1.5rem);
  margin-bottom:1.5rem; box-shadow:0 8px 24px rgba(27,30,43,.045); width:100%; box-sizing:border-box;
}
.acunaportal-block h2{ margin:0 0 1rem; font-size:1.2rem; }
.acunaportal-empty{ color:var(--acuna-portal-ink-light); font-size:.9rem; }

.acunaportal-item{ border-left:3px solid var(--acuna-portal-color); padding-left:1rem; margin-bottom:1.5rem; }
.acunaportal-item:last-child{ margin-bottom:0; }
.acunaportal-item-date{ font-size:.78rem; color:var(--acuna-portal-ink-light); }
.acunaportal-item-title{ margin:.25em 0 .4em; font-size:1.05rem; }
.acunaportal-item-body p{ margin:0; color:var(--acuna-portal-ink-light); font-size:.92rem; }
.acunaportal-item-actions{ display:flex; gap:.6rem; margin-top:.75rem; flex-wrap:wrap; }
.acunaportal-item-action{
  display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:.55em 1em; border:1px solid var(--acuna-portal-color);
  border-radius:8px; font-size:.82rem; font-weight:700; color:var(--acuna-portal-color);
  text-decoration:none; background:#fff; cursor:pointer; transition:.15s ease;
}
.acunaportal-item-action:hover{ border-color:var(--acuna-portal-color-dark); background:var(--acuna-portal-color); color:#fff; text-decoration:none; transform:translateY(-1px); }


.acunaportal-doc-list{ list-style:none; margin:0; padding:0; }
.acunaportal-doc-list li{ padding:.6em 0; border-bottom:1px solid var(--acuna-portal-border); font-size:.92rem; }
.acunaportal-doc-list li:last-child{ border-bottom:none; }
.acunaportal-doc-list a{ color:var(--acuna-portal-color); font-weight:600; text-decoration:none; }
.acunaportal-doc-list a:hover{ text-decoration:underline; }

.acunaportal-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.acunaportal-field{ display:flex; flex-direction:column; gap:.4em; }
.acunaportal-field.full{ grid-column:1/-1; }
.acunaportal-field label{ font-size:.85rem; font-weight:600; }
.acunaportal-field .req{ color:var(--acuna-portal-color); }
.acunaportal-field input,
.acunaportal-field select,
.acunaportal-field textarea{
  padding:.75em .9em; border:1px solid var(--acuna-portal-border); border-radius:6px;
  font-family:inherit; font-size:.95rem; background:#fff; color:var(--acuna-portal-ink); line-height:1.45; min-height:44px;
}
.acunaportal-field textarea{ min-height:120px; resize:vertical; }
.acunaportal-field input:focus,
.acunaportal-field select:focus,
.acunaportal-field textarea:focus{ outline:2px solid var(--acuna-portal-color); outline-offset:1px; }
.acunaportal-checkbox-row{ display:flex; align-items:flex-start; gap:.6em; grid-column:1/-1; }
.acunaportal-checkbox-row input{ width:auto; margin-top:.3em; }
.acunaportal-checkbox-row label{ font-weight:400; font-size:.88rem; }

.acunaportal-msg{ padding:.85em 1.1em; border-radius:6px; margin-bottom:1.5rem; font-size:.88rem; }
.acunaportal-msg-success{ background:#e8f6ee; color:var(--acuna-portal-success); border:1px solid var(--acuna-portal-success); }
.acunaportal-msg-error{ background:#fbe9e7; color:var(--acuna-portal-danger); border:1px solid var(--acuna-portal-danger); }

.acunaportal-hp{ position:absolute; left:-9999px; }

@media (max-width:640px){
  .acunaportal-form-grid{ grid-template-columns:1fr; }
  .acunaportal-header{ flex-direction:column; align-items:flex-start; }
}

.acunaportal-field select{color-scheme:light; appearance:auto; white-space:normal;}
.acunaportal-field select option{color:#1b1e2b;background:#fff;padding:.6rem;}
.acunaportal-topnav{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:.9rem;}
.acunaportal-topnav .acunaportal-btn{min-height:40px;}
.acunaportal-quick-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem;}
.acunaportal-helper{margin:-.35rem 0 1rem;color:var(--acuna-portal-ink-light);font-size:.9rem;}
.acunaportal-quick-links .acunaportal-item-action{width:100%;}
.acunaportal-doc-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
@media (max-width:900px){.acunaportal-dashboard-grid > .acunaportal-block,.acunaportal-dashboard-grid > .acunaportal-block:first-child{width:100%;}}
@media (max-width:640px){
  .acunaportal-wrap{padding-top:1rem;}
  .acunaportal-header{flex-direction:column;align-items:stretch;}
  .acunaportal-header .acunaportal-btn{width:100%;}
  .acunaportal-form-grid{grid-template-columns:1fr;}
  .acunaportal-block{border-radius:10px;}
  .acunaportal-item-actions{flex-direction:column;align-items:stretch;}
  .acunaportal-item-actions .acunaportal-item-action,.acunaportal-item-actions .acunaportal-btn-danger{width:100%;box-sizing:border-box;text-align:center;}
}

/* Presentación horizontal de los elementos dentro de cada sección.
   La sección ocupa todo el ancho; sus elementos se distribuyen en fila y
   saltan a la siguiente línea cuando el espacio no alcanza. */
.acunaportal-dashboard-grid > .acunaportal-block:not(:has(.acunaportal-form-grid)) > .acunaportal-item,
.acunaportal-dashboard-grid > .acunaportal-block > .acunaportal-item {
  display:flex;
  flex-direction:column;
  min-width:0;
  margin:0;
  padding:1rem 1.1rem;
  border:1px solid var(--acuna-portal-border);
  border-left:3px solid var(--acuna-portal-color);
  border-radius:8px;
  background:#fff;
  box-sizing:border-box;
}

/* Cada conjunto de artículos se comporta como una fila horizontal responsive. */
.acunaportal-dashboard-grid > .acunaportal-block {
  display:block;
}
.acunaportal-dashboard-grid > .acunaportal-block > .acunaportal-item + .acunaportal-item {
  margin-top:0;
}

/* Agrupación visual automática para los artículos: usamos el propio bloque
   como contenedor y permitimos varias columnas en pantallas grandes. */
.acunaportal-dashboard-grid > .acunaportal-block:has(> .acunaportal-item) {
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
.acunaportal-dashboard-grid > .acunaportal-block:has(> .acunaportal-item) > h2,
.acunaportal-dashboard-grid > .acunaportal-block:has(> .acunaportal-item) > .acunaportal-empty,
.acunaportal-dashboard-grid > .acunaportal-block:has(> .acunaportal-item) > .acunaportal-msg {
  grid-column:1 / -1;
}

@media (min-width:760px){
  .acunaportal-dashboard-grid > .acunaportal-block:has(> .acunaportal-item) {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (min-width:1180px){
  .acunaportal-dashboard-grid > .acunaportal-block:has(> .acunaportal-item) {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

/* Documentos y enlaces rápidos también quedan horizontales. */
.acunaportal-doc-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:.75rem;
}
.acunaportal-doc-list li{
  min-width:0;
  margin:0;
  padding:.8rem 1rem;
  border:1px solid var(--acuna-portal-border);
  border-bottom:1px solid var(--acuna-portal-border);
  border-radius:8px;
  background:#fff;
  box-sizing:border-box;
}

.acunaportal-quick-links{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.75rem;
}

@media (max-width:640px){
  .acunaportal-dashboard-grid > .acunaportal-block:has(> .acunaportal-item){
    grid-template-columns:1fr;
  }
  .acunaportal-doc-list{grid-template-columns:1fr;}
  .acunaportal-quick-links{grid-template-columns:1fr;}
}


/* Contenedor centrado tipo caja: aprovecha bien la pantalla sin ocuparla completa. */
@media (min-width: 1440px){
  .acunaportal-wrap{ width:min(92%, 1320px); }
}
@media (max-width: 640px){
  .acunaportal-wrap{ width:calc(100% - 24px); padding-left:0; padding-right:0; }
}
