/* ════════════════════════════════════════════════════════════════════
   admin.css — Estilos compartidos de las vistas de administración
   ════════════════════════════════════════════════════════════════════

   Prefijos incluidos:
     .cadm-   GestionSectores, GestionAplicaciones, CategoriasHerramientas,
              GestionInvestigaciones (Index + Form)
     .hadm-   GestionHerramientas/Index
     .hadf-   GestionHerramientas/Form
     .mjur-   MarcoJuridico (Index + Form)
     .cadf-   CategoriasHerramientas/Form
     .faqadm- Faq/Index
     .faqform-Faq/Form
     .secadm- Secciones/Index
     .secform-Secciones/Form
   ════════════════════════════════════════════════════════════════════ */


/* ── Tooltip genérico para botones icon-only (editar/eliminar de los
   CRUD admin) — usa [data-tooltip], CSS puro, sin JS. ─────────────── */
[data-tooltip] { position: relative; }
[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 7px);
  left: 50%;
  transform: translate(-50%, 4px);
  background: var(--dark);
  color: #fff;
  font-size: .7rem;
  font-weight: 600;
  line-height: 1;
  padding: .35rem .6rem;
  border-radius: 5px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease;
  z-index: 30;
}
[data-tooltip]::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translate(-50%, 3px);
  border: 5px solid transparent;
  border-top-color: var(--dark);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease;
  z-index: 30;
}
[data-tooltip]:hover::after, [data-tooltip]:focus-visible::after,
[data-tooltip]:hover::before, [data-tooltip]:focus-visible::before {
  opacity: 1; visibility: visible; transform: translate(-50%, 0);
}

/* ── .cadm- ── Page Header ────────────────────────────────────────── */
.cadm-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.cadm-page-header__inner { max-width:1100px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem }
.cadm-page-header__inner.cadm--lg  { max-width:1280px }
.cadm-page-header__inner.cadm--sm  { max-width:900px }
.cadm-page-header__inner.cadm--xs  { max-width:750px }
.cadm-page-header__inner.cadm--xxs { max-width:700px }
.cadm-header-left { display:flex; flex-direction:column; gap:.25rem }
.cadm-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0; padding:0; list-style:none }
.cadm-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.cadm-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.cadm-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.cadm-breadcrumb a:hover { text-decoration:underline }
.cadm-breadcrumb li:last-child { color:#374151; font-weight:500 }
.cadm-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.cadm-page-title i { color:var(--primary) }
.cadm-page-sub { font-size:.79rem; color:#6b7280; margin:0 }

/* ── .cadm- ── Body ───────────────────────────────────────────────── */
.cadm-body { max-width:1100px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.cadm-body.cadm--lg  { max-width:1280px }
.cadm-body.cadm--sm  { max-width:900px }
.cadm-body.cadm--xs  { max-width:750px }
.cadm-body.cadm--xxs { max-width:700px }

/* ── .cadm- ── Alerts ─────────────────────────────────────────────── */
.cadm-alert { display:flex; align-items:center; gap:.6rem; border-radius:8px; padding:.7rem 1rem; margin-bottom:1.25rem; font-size:.85rem; font-weight:600 }
.cadm-alert--ok   { background:#f0fdf4; border:1px solid #86efac; color:#15803d }
.cadm-alert--err  { background:#fef2f2; border:1px solid #fca5a5; color:#dc2626 }
.cadm-alert--warn { background:#fffbeb; border:1px solid #fcd34d; color:#b45309 }

/* ── .cadm- ── Toolbar ────────────────────────────────────────────── */
.cadm-toolbar { display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; flex-wrap:wrap }
.cadm-search-wrap { flex:1; min-width:200px; position:relative }
.cadm-search-wrap i { position:absolute; left:.75rem; top:50%; transform:translateY(-50%); color:#9ca3af; font-size:.8rem }
.cadm-search-input { width:100%; padding:.45rem .75rem .45rem 2.1rem; border:1.5px solid var(--gray-border); border-radius:7px; font-size:.83rem; font-family:inherit; background:#f9fafb; transition:border-color .18s }
.cadm-search-input:focus { outline:none; border-color:var(--primary); background:#fff }
.cadm-filter-select { padding:.45rem .75rem; border:1.5px solid var(--gray-border); border-radius:7px; font-size:.82rem; font-family:inherit; background:#f9fafb; cursor:pointer }
.cadm-filter-select:focus { outline:none; border-color:var(--primary) }

/* ── .cadm- ── Panel ──────────────────────────────────────────────── */
.cadm-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.cadm-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; display:flex; align-items:center; justify-content:space-between; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.cadm-panel__count { background:rgba(255,255,255,.2); border-radius:20px; padding:.15rem .65rem; font-size:.7rem }

/* ── .cadm- ── Table ──────────────────────────────────────────────── */
.cadm-table { width:100%; border-collapse:collapse }
.cadm-table thead th { background:var(--gray-bg); padding:.65rem 1rem; font-size:.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--gray-border); text-align:left }
.cadm-table tbody tr { border-bottom:1px solid var(--gray-border); transition:background .15s }
.cadm-table tbody tr:last-child { border-bottom:none }
.cadm-table tbody tr:hover { background:#fafafa }
.cadm-table td { padding:.7rem 1rem; font-size:.82rem; color:#374151; vertical-align:middle }

/* ── .cadm- ── Cell elements ──────────────────────────────────────── */
.cadm-orden { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; background:rgba(191,9,9,.08); border:1px solid rgba(191,9,9,.2); border-radius:50%; font-size:.74rem; font-weight:700; color:var(--primary) }
.cadm-emoji-preview { font-size:1.4rem; display:inline-block }
.cadm-color-dot { display:inline-block; width:14px; height:14px; border-radius:50%; border:1px solid rgba(0,0,0,.1); vertical-align:middle; margin-right:.35rem }
.cadm-nombre { font-weight:600; color:var(--dark) }
.cadm-titulo { font-weight:700; color:var(--dark); font-size:.85rem; line-height:1.4 }
.cadm-autor  { font-size:.76rem; color:#6b7280 }
.cadm-univ   { font-size:.76rem; color:#4b5563; display:flex; align-items:center; gap:.25rem }
.cadm-anio   { font-weight:800; color:#374151; font-size:.85rem }
.cadm-entidad  { font-size:.76rem; color:#6b7280 }
.cadm-finalidad { font-size:.76rem; color:#4b5563; line-height:1.5; max-width:300px }
.cadm-sector-badge { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:600; padding:.2rem .65rem; border-radius:20px; background:rgba(191,9,9,.06); color:var(--primary); border:1px solid rgba(191,9,9,.15) }
.cadm-techs { display:flex; flex-wrap:wrap; gap:.25rem }
.cadm-tech-tag { font-size:.65rem; padding:.15rem .45rem; border-radius:4px; background:var(--gray-bg); border:1px solid var(--gray-border); color:#6b7280 }

/* ── .cadm- ── Action buttons ─────────────────────────────────────── */
.cadm-actions { display:flex; gap:.4rem; flex-wrap:wrap }
.cadm-btn-edit, .cadm-btn-del, .cadm-btn-info { display:inline-flex; align-items:center; justify-content:center; padding:.4rem .55rem; border-radius:5px; font-size:.8rem; font-weight:600; cursor:pointer; border:1.5px solid; text-decoration:none; transition:all .18s; background:transparent }
.cadm-btn-edit { color:var(--primary); border-color:var(--primary) }
.cadm-btn-edit:hover { background:var(--primary); color:#fff }
.cadm-btn-del { color:var(--primary); border-color:var(--primary) }
.cadm-btn-info { color:var(--blue); border-color:var(--blue) }
.cadm-btn-info:hover { background:var(--blue); color:#fff }
.cadm-btn-del:hover { background:var(--primary); color:#fff }
.cadm-btn-new { display:inline-flex; align-items:center; gap:.45rem; padding:.5rem 1.1rem; background:#fff; color:var(--primary); border:1.5px solid var(--primary); border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:all .18s }
.cadm-btn-new:hover { background:var(--primary); color:#fff }

/* ── .cadm- ── Empty state ────────────────────────────────────────── */
.cadm-empty { text-align:center; padding:3rem 1rem; color:#9ca3af }
.cadm-empty i { font-size:2.5rem; display:block; margin-bottom:.75rem; color:#d1d5db }

/* ── .cadm- ── Pagination ─────────────────────────────────────────── */
.cadm-pagination { display:flex; align-items:center; justify-content:space-between; padding:.75rem 1.25rem; border-top:1px solid var(--gray-border); background:#fafafa; flex-wrap:wrap; gap:.5rem }
.cadm-pagination__info  { font-size:.79rem; color:#6b7280 }
.cadm-pagination__links { display:flex; gap:.35rem; align-items:center }
.cadm-page-btn { display:inline-flex; align-items:center; gap:.3rem; padding:.3rem .7rem; border:1.5px solid var(--gray-border); border-radius:5px; font-size:.78rem; font-weight:600; text-decoration:none; color:#374151; background:#fff; transition:all .18s; cursor:pointer }
.cadm-page-btn:hover { border-color:var(--primary); color:var(--primary) }
.cadm-page-btn.active { background:var(--primary); color:#fff; border-color:var(--primary) }
.cadm-page-btn:disabled, .cadm-page-btn[disabled] { opacity:.4; pointer-events:none }

/* ── .cadm- ── Form card ──────────────────────────────────────────── */
.cadm-form-card  { background:#fff; border:1px solid var(--gray-border); border-radius:10px; padding:1.75rem; box-shadow:0 1px 4px rgba(0,0,0,.05) }
.cadm-form-title { font-size:.85rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.07em; margin:0 0 1.25rem; padding-bottom:.75rem; border-bottom:1px solid var(--gray-border) }
.cadm-form-divider { border:none; border-top:1px solid var(--gray-border); margin:1.75rem 0 1.25rem }
.cadm-field       { margin-bottom:1.1rem }
.cadm-label       { display:block; font-size:.8rem; font-weight:600; color:#374151; margin-bottom:.35rem }
.cadm-label span  { color:var(--primary) }
.cadm-input, .cadm-select, .cadm-textarea { width:100%; padding:.5rem .75rem; border:1.5px solid var(--gray-border); border-radius:7px; font-size:.86rem; color:var(--dark); background:#f9fafb; font-family:inherit; transition:border-color .18s,box-shadow .18s }
.cadm-input:focus, .cadm-select:focus, .cadm-textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(191,9,9,.07); background:#fff }
.cadm-textarea    { resize:vertical; min-height:90px; line-height:1.55 }
.cadm-hint        { font-size:.73rem; color:#9ca3af; margin-top:.25rem }
.cadm-row-2       { display:grid; grid-template-columns:1fr 1fr; gap:1rem }
.cadm-actions-form { display:flex; gap:.75rem; margin-top:1.5rem; flex-wrap:wrap }
.cadm-btn-save    { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.35rem; background:var(--primary); color:#fff; border:none; border-radius:6px; font-size:.85rem; font-weight:700; cursor:pointer; transition:opacity .18s }
.cadm-btn-save:hover { opacity:.88 }
.cadm-btn-cancel  { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.1rem; background:#fff; color:#374151; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.85rem; font-weight:600; text-decoration:none; transition:border-color .18s }
.cadm-btn-cancel:hover { border-color:var(--primary); color:var(--primary) }
.cadm-field-error { color:#dc2626; font-size:.75rem; margin-top:.2rem }
.cadm-color-preview     { display:inline-block; width:20px; height:20px; border-radius:4px; border:1px solid var(--gray-border); vertical-align:middle; margin-left:.4rem }
.cadm-color-preview--lg { width:28px; height:28px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1.5px var(--gray-border); display:inline-block; vertical-align:middle; margin-left:.5rem; transition:background .2s }

@media (max-width:600px) { .cadm-row-2 { grid-template-columns:1fr } }

/* ── .cadm-combo ── combobox buscable (input + lista filtrable), usado
   cuando el listado de opciones es demasiado grande para un <select> nativo
   navegable (p.ej. Entidad en GestionAplicaciones, sincronizada desde la
   plataforma de cumplimiento) ──────────────────────────────────────── */
.cadm-combo        { position:relative }
.cadm-combo__list  { display:none; position:absolute; z-index:20; top:calc(100% + 4px); left:0; right:0; max-height:260px; overflow-y:auto; background:#fff; border:1.5px solid var(--gray-border); border-radius:7px; box-shadow:0 8px 20px rgba(0,0,0,.1); padding:.3rem 0 }
.cadm-combo__list.is-open { display:block }
.cadm-combo__item  { padding:.5rem .75rem; font-size:.86rem; color:var(--dark); cursor:pointer }
.cadm-combo__item:hover, .cadm-combo__item.is-active { background:#f9fafb; color:var(--primary) }
.cadm-combo__empty { padding:.5rem .75rem; font-size:.8rem; color:#9ca3af }


/* ════════════════════════════════════════════════════════════════════
   .hadm-  GestionHerramientas/Index
   ════════════════════════════════════════════════════════════════════ */
.hadm-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.hadm-page-header__inner { max-width:1100px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem }
.hadm-header-left { display:flex; flex-direction:column; gap:.25rem }
.hadm-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0; padding:0; list-style:none }
.hadm-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.hadm-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.hadm-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.hadm-breadcrumb a:hover { text-decoration:underline }
.hadm-breadcrumb li:last-child { color:#374151; font-weight:500 }
.hadm-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.hadm-page-title i { color:var(--primary) }
.hadm-page-sub { font-size:.79rem; color:#6b7280; margin:0 }
.hadm-body { max-width:1100px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.hadm-alert { display:flex; align-items:center; gap:.6rem; border-radius:8px; padding:.7rem 1rem; margin-bottom:1.25rem; font-size:.85rem; font-weight:600 }
.hadm-alert--ok  { background:#f0fdf4; border:1px solid #86efac; color:#15803d }
.hadm-alert--err { background:#fef2f2; border:1px solid #fca5a5; color:#dc2626 }
.hadm-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.65rem; margin-bottom:1rem }
.hadm-toolbar-left  { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap }
.hadm-toolbar-right { display:flex; align-items:center; gap:.5rem }
.hadm-toolbar-label { font-size:.76rem; font-weight:600; color:#6b7280; white-space:nowrap }
.hadm-sel { padding:.38rem .7rem; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.82rem; color:#374151; background:#fff; cursor:pointer; font-family:inherit; transition:border-color .18s }
.hadm-sel:focus { outline:none; border-color:var(--primary) }
.hadm-sel-cat { min-width:220px }
.hadm-sel-tam { min-width:100px }
.hadm-info-count { font-size:.78rem; color:#6b7280; white-space:nowrap }
.hadm-info-count strong { color:var(--dark) }
.hadm-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.hadm-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; display:flex; align-items:center; justify-content:space-between; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.hadm-panel__count { background:rgba(255,255,255,.2); border-radius:20px; padding:.15rem .65rem; font-size:.7rem }
.hadm-table { width:100%; border-collapse:collapse }
.hadm-table thead th { background:var(--gray-bg); padding:.65rem 1rem; font-size:.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--gray-border); text-align:left }
.hadm-table tbody tr { border-bottom:1px solid var(--gray-border); transition:background .15s }
.hadm-table tbody tr:last-child { border-bottom:none }
.hadm-table tbody tr:hover { background:#fafafa }
.hadm-table td { padding:.7rem 1rem; font-size:.83rem; color:#374151; vertical-align:middle }
.hadm-cat-badge { display:inline-flex; align-items:center; gap:.3rem; padding:.2rem .5rem; border-radius:4px; font-size:.72rem; font-weight:600; background:rgba(191,9,9,.07); color:var(--primary); white-space:nowrap }
.hadm-nombre { font-weight:600; color:var(--dark) }
.hadm-url { font-size:.75rem; color:#6b7280; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block }
.hadm-color-dot { display:inline-block; width:12px; height:12px; border-radius:50%; border:1px solid rgba(0,0,0,.1); vertical-align:middle; margin-right:.3rem }
.hadm-tag { display:inline-block; padding:.1rem .4rem; border-radius:3px; font-size:.68rem; font-weight:600; background:#f3f4f6; color:#6b7280; margin:.1rem .1rem 0 0 }
.hadm-actions { display:flex; gap:.4rem }
.hadm-btn-edit, .hadm-btn-del { display:inline-flex; align-items:center; justify-content:center; padding:.4rem .55rem; border-radius:5px; font-size:.8rem; font-weight:600; cursor:pointer; border:1.5px solid; text-decoration:none; transition:all .18s }
.hadm-btn-edit { color:var(--primary); border-color:var(--primary); background:transparent }
.hadm-btn-edit:hover { background:var(--primary); color:#fff }
.hadm-btn-del  { color:var(--primary); border-color:var(--primary); background:transparent }
.hadm-btn-del:hover  { background:var(--primary); color:#fff }
.hadm-btn-new { display:inline-flex; align-items:center; gap:.45rem; padding:.5rem 1.1rem; background:#fff; color:var(--primary); border:1.5px solid var(--primary); border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:all .18s }
.hadm-btn-new:hover { background:var(--primary); color:#fff }
.hadm-empty { text-align:center; padding:3rem 1rem; color:#9ca3af }
.hadm-empty i { font-size:2.5rem; display:block; margin-bottom:.75rem; color:#d1d5db }
.hadm-pager { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; padding:.85rem 1.25rem; border-top:1px solid var(--gray-border); background:var(--gray-bg) }
.hadm-pager__info { font-size:.78rem; color:#6b7280 }
.hadm-pager__info strong { color:var(--dark) }
.hadm-pager__pages { display:flex; align-items:center; gap:.25rem }
.hadm-pager__btn { display:inline-flex; align-items:center; justify-content:center; min-width:32px; height:32px; padding:0 .4rem; border-radius:5px; font-size:.78rem; font-weight:600; text-decoration:none; border:1.5px solid var(--gray-border); background:#fff; color:#374151; transition:all .18s; cursor:pointer }
.hadm-pager__btn:hover:not(.disabled) { border-color:var(--primary); color:var(--primary) }
.hadm-pager__btn.active { background:var(--primary); color:#fff; border-color:var(--primary) }
.hadm-pager__btn.disabled { opacity:.4; pointer-events:none }
.hadm-pager__ellipsis { font-size:.78rem; color:#9ca3af; padding:0 .2rem }

/* Carga masiva */
.hadm-upload-panel{background:#fff;border:1px solid var(--gray-border);border-radius:10px;margin-bottom:1.5rem;overflow:hidden}
.hadm-upload-head{background:var(--primary);color:#fff;padding:.7rem 1.25rem;display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-user-select:none;user-select:none}
.hadm-upload-head:hover{background:var(--primary-dark)}
.hadm-upload-body{padding:1.25rem;display:none}
.hadm-upload-body.open{display:block}
.hadm-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
@media(max-width:600px){.hadm-upload-grid{grid-template-columns:1fr}}
.hadm-upload-zone{border:2px dashed var(--gray-border);border-radius:8px;padding:1.25rem;text-align:center;cursor:pointer;transition:border-color .18s;position:relative}
.hadm-upload-zone:hover,.hadm-upload-zone.drag{border-color:var(--primary);background:rgba(191,9,9,.03)}
.hadm-upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.hadm-upload-icon{font-size:1.6rem;color:#9ca3af;margin-bottom:.4rem}
.hadm-upload-label{font-size:.82rem;font-weight:600;color:#374151}
.hadm-upload-sub{font-size:.73rem;color:#9ca3af;margin-top:.2rem}
.hadm-upload-preview{background:#f9fafb;border:1px solid var(--gray-border);border-radius:7px;padding:.85rem 1rem;font-size:.82rem;display:none}
.hadm-upload-preview.visible{display:block}
.hadm-upload-preview__name{font-weight:700;color:var(--dark);margin-bottom:.3rem}
.hadm-upload-preview__meta{color:#6b7280;font-size:.78rem}
.hadm-mode-group{display:flex;flex-direction:column;gap:.65rem}
.hadm-mode-label{font-size:.8rem;font-weight:600;color:#374151;margin-bottom:.35rem}
.hadm-radio-opt{display:flex;align-items:flex-start;gap:.6rem;padding:.65rem .85rem;border:1.5px solid var(--gray-border);border-radius:7px;cursor:pointer;transition:border-color .18s}
.hadm-radio-opt:has(input:checked){border-color:var(--primary);background:rgba(191,9,9,.04)}
.hadm-radio-opt input{margin-top:.1rem;accent-color:var(--primary);flex-shrink:0}
.hadm-radio-opt__text strong{font-size:.83rem;color:#1f2937;display:block}
.hadm-radio-opt__text span{font-size:.74rem;color:#6b7280}
.hadm-radio-warn{font-size:.73rem;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:.45rem .75rem;margin-top:.5rem;display:none}
.hadm-radio-warn.visible{display:block}
.hadm-upload-actions{display:flex;align-items:center;gap:.75rem;margin-top:1rem;flex-wrap:wrap}
.hadm-btn-upload{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.35rem;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:opacity .18s}
.hadm-btn-upload:hover{opacity:.88}
.hadm-btn-upload:disabled{opacity:.45;cursor:not-allowed}
.hadm-btn-plantilla{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--primary);text-decoration:none}
.hadm-btn-plantilla:hover{text-decoration:underline}
.hadm-upload-result{margin-top:.85rem;padding:.7rem 1rem;border-radius:7px;font-size:.84rem;font-weight:600;display:none}
.hadm-upload-result.ok{display:flex;align-items:center;gap:.5rem;background:#f0fdf4;border:1px solid #86efac;color:#15803d}
.hadm-upload-result.err{display:block;background:#fef2f2;border:1px solid #fca5a5;color:#dc2626}
.hadm-upload-result.err ul{margin:.4rem 0 0;padding-left:1.1rem;font-weight:400}


/* ════════════════════════════════════════════════════════════════════
   .hadf-  GestionHerramientas/Form
   ════════════════════════════════════════════════════════════════════ */
.hadf-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.hadf-page-header__inner { max-width:800px; margin:0 auto; padding:0 1.5rem }
.hadf-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0 0 .3rem; padding:0; list-style:none }
.hadf-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.hadf-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.hadf-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.hadf-breadcrumb a:hover { text-decoration:underline }
.hadf-breadcrumb li:last-child { color:#374151; font-weight:500 }
.hadf-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.hadf-page-sub { font-size:.79rem; color:#6b7280; margin:.1rem 0 0 }
.hadf-body { max-width:800px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.hadf-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.hadf-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.hadf-panel__body { padding:1.75rem }
.hadf-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }
.hadf-grid-full { grid-column:1/-1 }
.hadf-field { display:flex; flex-direction:column; gap:.3rem }
.hadf-label { font-size:.78rem; font-weight:600; color:#374151 }
.hadf-label span { color:var(--primary) }
.hadf-input, .hadf-select { padding:.5rem .75rem; border:1px solid var(--gray-border); border-radius:6px; font-size:.88rem; color:#212529; background:#fff; transition:border-color .2s,box-shadow .2s; font-family:inherit }
.hadf-input:focus, .hadf-select:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(191,9,9,.1) }
.hadf-textarea { padding:.5rem .75rem; border:1px solid var(--gray-border); border-radius:6px; font-size:.88rem; color:#212529; background:#fff; font-family:inherit; resize:vertical; min-height:80px; transition:border-color .2s,box-shadow .2s }
.hadf-textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(191,9,9,.1) }
.hadf-hint { font-size:.72rem; color:#9ca3af }
.hadf-val-error { font-size:.75rem; color:var(--primary) }
.hadf-tags-group { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.2rem }
.hadf-tag-check { display:none }
.hadf-tag-label { display:inline-flex; align-items:center; gap:.3rem; padding:.25rem .65rem; border-radius:20px; font-size:.76rem; font-weight:600; cursor:pointer; border:1.5px solid var(--gray-border); background:#fff; color:#374151; -webkit-user-select:none; user-select:none; transition:all .18s }
.hadf-tag-check:checked + .hadf-tag-label { background:var(--primary); color:#fff; border-color:var(--primary) }
.hadf-color-preview { display:inline-block; width:20px; height:20px; border-radius:4px; border:1px solid var(--gray-border); vertical-align:middle; margin-left:.4rem }
.hadf-section-divider { grid-column:1/-1; border-top:1px dashed var(--gray-border); margin:.3rem 0 }
.hadf-section-label { grid-column:1/-1; font-size:.7rem; font-weight:700; color:#9ca3af; text-transform:uppercase; letter-spacing:.08em; margin-bottom:-.5rem }
.hadf-btn-row { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid var(--gray-border) }
.hadf-btn-save   { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.4rem; background:var(--primary); color:#fff; border:none; border-radius:6px; font-size:.88rem; font-weight:700; cursor:pointer }
.hadf-btn-cancel { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.1rem; background:#fff; color:#374151; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.88rem; font-weight:600; text-decoration:none }
@media (max-width:640px) {
    .hadf-grid-2 { grid-template-columns:1fr }
    .hadf-grid-full, .hadf-section-label, .hadf-section-divider { grid-column:1 }
}


/* ════════════════════════════════════════════════════════════════════
   .mjur-  MarcoJuridico (Index + Form)
   ════════════════════════════════════════════════════════════════════ */
.mjur-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.mjur-page-header__inner { max-width:1280px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem }
.mjur-header-left { display:flex; flex-direction:column; gap:.25rem }
.mjur-header-actions { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap }
.mjur-header-actions .mjur-pdf-mensaje { margin:0 }
.mjur-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0; padding:0; list-style:none }
.mjur-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.mjur-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.mjur-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.mjur-breadcrumb a:hover { text-decoration:underline }
.mjur-breadcrumb li:last-child { color:#374151; font-weight:500 }
.mjur-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0; line-height:1.2 }
.mjur-page-title i { color:var(--primary) }
.mjur-page-sub { font-size:.79rem; color:#6b7280; margin:0 }
.mjur-body { max-width:1280px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.mjur-alert { display:flex; align-items:center; gap:.6rem; background:#f0fdf4; border:1px solid #86efac; color:#15803d; border-radius:8px; padding:.7rem 1rem; margin-bottom:1.25rem; font-size:.85rem; font-weight:600 }
.mjur-alert i { font-size:1rem }
.mjur-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.mjur-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; display:flex; align-items:center; justify-content:space-between; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.mjur-panel__count { background:rgba(255,255,255,.2); border-radius:20px; padding:.15rem .65rem; font-size:.7rem }
.mjur-panel__body { padding:1.75rem }
.mjur-table { width:100%; border-collapse:collapse }
.mjur-table thead th { background:var(--gray-bg); padding:.65rem 1rem; font-size:.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--gray-border); white-space:nowrap; text-align:left }
.mjur-table tbody tr { border-bottom:1px solid var(--gray-border); transition:background .15s }
.mjur-table tbody tr:last-child { border-bottom:none }
.mjur-table tbody tr:hover { background:#fafafa }
.mjur-table td { padding:.8rem 1rem; font-size:.84rem; color:#374151; vertical-align:middle }
.mjur-badge { display:inline-flex; align-items:center; border:1.5px solid var(--primary); color:var(--primary); font-size:.58rem; font-weight:800; padding:.15rem .5rem; border-radius:3px; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap }
.mjur-numero { font-weight:700; color:var(--dark); font-size:.82rem; white-space:nowrap }
.mjur-titulo { font-size:.82rem; color:#374151; max-width:340px; line-height:1.4 }
.mjur-activo-on  { color:#16a34a; font-size:.78rem; font-weight:700 }
.mjur-activo-off { color:#dc2626; font-size:.78rem; font-weight:700 }
.mjur-actions { display:flex; gap:.4rem; white-space:nowrap }
.mjur-btn-edit, .mjur-btn-del { display:inline-flex; align-items:center; justify-content:center; padding:.4rem .55rem; border-radius:5px; font-size:.8rem; font-weight:600; cursor:pointer; border:1.5px solid; text-decoration:none; transition:all .18s }
.mjur-btn-edit { color:var(--primary); border-color:var(--primary); background:transparent }
.mjur-btn-edit:hover { background:var(--primary); color:#fff }
.mjur-btn-del  { color:var(--primary); border-color:var(--primary); background:transparent }
.mjur-btn-del:hover  { background:var(--primary); color:#fff }
.mjur-btn-new { display:inline-flex; align-items:center; gap:.45rem; padding:.5rem 1.1rem; background:#fff; color:var(--primary); border:1.5px solid var(--primary); border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:all .18s }
.mjur-btn-new:hover { background:var(--primary); color:#fff }
.mjur-empty { text-align:center; padding:3rem 1rem; color:#9ca3af }
.mjur-empty i { font-size:2.5rem; display:block; margin-bottom:.75rem; color:#d1d5db }
.mjur-orden { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; background:var(--gray-bg); border:1px solid var(--gray-border); border-radius:50%; font-size:.74rem; font-weight:700; color:#6b7280 }
/* Form-specific */
.mjur-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }
.mjur-grid-full { grid-column:1/-1 }
.mjur-field { display:flex; flex-direction:column; gap:.3rem }
.mjur-label { font-size:.78rem; font-weight:600; color:#374151; letter-spacing:.02em }
.mjur-label span { color:var(--primary); margin-left:2px }
.mjur-input, .mjur-select, .mjur-textarea { padding:.5rem .75rem; border:1px solid var(--gray-border); border-radius:6px; font-size:.88rem; color:#212529; background:#fff; transition:border-color .2s,box-shadow .2s; font-family:inherit }
.mjur-input:focus, .mjur-select:focus, .mjur-textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(191,9,9,.1) }
.mjur-textarea { resize:vertical; min-height:90px }
.mjur-hint { font-size:.72rem; color:#9ca3af }
.mjur-val-error { font-size:.75rem; color:var(--primary); margin-top:.15rem }
.mjur-toggle-row { display:flex; align-items:center; justify-content:space-between; padding:.75rem 0 }
.mjur-toggle-label { font-size:.88rem; font-weight:600; color:#212529 }
.mjur-toggle-sub   { font-size:.75rem; color:#6c757d }
.mjur-switch { position:relative; width:44px; height:24px; flex-shrink:0 }
.mjur-switch input { opacity:0; width:0; height:0 }
.mjur-switch__slider { position:absolute; inset:0; background:#d1d5db; border-radius:24px; cursor:pointer; transition:background .25s }
.mjur-switch__slider::before { content:''; position:absolute; width:18px; height:18px; background:#fff; border-radius:50%; top:3px; left:3px; transition:transform .25s; box-shadow:0 1px 3px rgba(0,0,0,.2) }
.mjur-switch input:checked + .mjur-switch__slider { background:#16a34a }
.mjur-switch input:checked + .mjur-switch__slider::before { transform:translateX(20px) }
.mjur-btn-row { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid var(--gray-border) }
.mjur-btn-save   { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.4rem; background:var(--primary); color:#fff; border:none; border-radius:6px; font-size:.88rem; font-weight:700; cursor:pointer; transition:background .2s }
.mjur-btn-save:hover { background:var(--primary-dark) }
.mjur-btn-cancel { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.1rem; background:#fff; color:#374151; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.88rem; font-weight:600; text-decoration:none; transition:border-color .18s }
.mjur-btn-cancel:hover { border-color:#6b7280 }
.mjur-badge-preview { display:inline-flex; align-items:center; border:1.5px solid var(--primary); color:var(--primary); font-size:.6rem; font-weight:800; padding:.18rem .55rem; border-radius:3px; text-transform:uppercase; letter-spacing:.07em }
@media (max-width:768px) { .mjur-page-header__inner { flex-direction:column; align-items:flex-start } .mjur-body { padding:0 1rem 2rem } }
@media (max-width:640px) { .mjur-grid-2 { grid-template-columns:1fr } .mjur-grid-full { grid-column:auto } }

/* ── PDF de normas jurídicas (Fase 6) ──────────────────────────────────── */
.mjur-pdf-upload-row { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap }
.mjur-pdf-input { flex:1; min-width:220px; font-size:.82rem; color:#374151 }
.mjur-pdf-spin { width:14px; height:14px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:mjur-pdf-spin .7s linear infinite; display:none; margin-right:.2rem }
.mjur-pdf-spin.show { display:inline-block }

.mjur-doc { display:inline-flex; align-items:center; gap:.3rem; font-size:.76rem; font-weight:700; white-space:nowrap }
.mjur-doc-ninguno    { color:#9ca3af }
.mjur-doc-pendiente  { color:#b45309 }
.mjur-doc-procesando { color:#2563eb }
.mjur-doc-procesado  { color:#16a34a }
.mjur-doc-error      { color:#dc2626 }
.mjur-doc-count { font-size:.72rem; font-weight:600; color:#6b7280; margin-left:.15rem }
@keyframes mjur-pdf-spin { to { transform:rotate(360deg) } }
.mjur-pdf-mensaje { font-size:.78rem; margin:.5rem 0 0; min-height:1.1em }
.mjur-pdf-mensaje--ok    { color:#16a34a }
.mjur-pdf-mensaje--error { color:var(--primary) }
.mjur-pdf-list { display:flex; flex-direction:column; gap:.6rem }
.mjur-pdf-item { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.65rem .85rem; border:1px solid var(--gray-border); border-radius:8px; background:#fff }
.mjur-pdf-item__main { display:flex; flex-direction:column; gap:.2rem; min-width:0 }
.mjur-pdf-item__nombre { font-size:.83rem; font-weight:700; color:var(--dark); overflow-wrap:anywhere }
.mjur-pdf-item__meta { font-size:.71rem; color:#6c757d }
.mjur-pdf-estado { display:inline-flex; align-items:center; gap:.3rem; font-size:.66rem; font-weight:700; padding:.2rem .6rem; border-radius:20px; white-space:nowrap; text-transform:uppercase; letter-spacing:.04em }
.mjur-pdf-estado--pendiente  { background:#f3f4f6; color:#6b7280; border:1px solid var(--gray-border) }
.mjur-pdf-estado--procesando { background:#fffbeb; color:#d97706; border:1px solid #fcd34d }
.mjur-pdf-estado--procesado  { background:#f0fdf4; color:#16a34a; border:1px solid #86efac }
.mjur-pdf-estado--error      { background:#fef2f2; color:#b91c1c; border:1px solid #fca5a5 }
.mjur-pdf-item__actions { display:flex; align-items:center; gap:.5rem; flex-shrink:0 }
.mjur-btn-reproc { display:inline-flex; align-items:center; gap:.3rem; padding:.25rem .6rem; border-radius:5px; font-size:.7rem; font-weight:600; cursor:pointer; border:1.5px solid var(--primary); color:var(--primary); background:transparent; white-space:nowrap; transition:all .18s }
.mjur-btn-reproc:hover:not(:disabled) { background:var(--primary); color:#fff }
.mjur-btn-reproc:disabled { opacity:.45; cursor:not-allowed }


/* ════════════════════════════════════════════════════════════════════
   .cadf-  CategoriasHerramientas/Form
   ════════════════════════════════════════════════════════════════════ */
.cadf-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.cadf-page-header__inner { max-width:700px; margin:0 auto; padding:0 1.5rem }
.cadf-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0 0 .3rem; padding:0; list-style:none }
.cadf-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.cadf-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.cadf-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.cadf-breadcrumb a:hover { text-decoration:underline }
.cadf-breadcrumb li:last-child { color:#374151; font-weight:500 }
.cadf-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.cadf-page-sub { font-size:.79rem; color:#6b7280; margin:.1rem 0 0 }
.cadf-body { max-width:700px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.cadf-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.cadf-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.cadf-panel__body { padding:1.75rem }
.cadf-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }
.cadf-grid-full { grid-column:1/-1 }
.cadf-field { display:flex; flex-direction:column; gap:.3rem }
.cadf-label { font-size:.78rem; font-weight:600; color:#374151 }
.cadf-label span { color:var(--primary) }
.cadf-input { padding:.5rem .75rem; border:1px solid var(--gray-border); border-radius:6px; font-size:.88rem; color:#212529; background:#fff; transition:border-color .2s,box-shadow .2s; font-family:inherit }
.cadf-input:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(191,9,9,.1) }
.cadf-hint { font-size:.72rem; color:#9ca3af }
.cadf-val-error { font-size:.75rem; color:var(--primary) }
.cadf-color-preview { display:inline-block; width:20px; height:20px; border-radius:4px; border:1px solid var(--gray-border); vertical-align:middle; margin-left:.4rem }
.cadf-btn-row { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid var(--gray-border) }
.cadf-btn-save   { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.4rem; background:var(--primary); color:#fff; border:none; border-radius:6px; font-size:.88rem; font-weight:700; cursor:pointer }
.cadf-btn-cancel { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.1rem; background:#fff; color:#374151; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.88rem; font-weight:600; text-decoration:none }


/* ════════════════════════════════════════════════════════════════════
   .faqadm-  Faq/Index
   ════════════════════════════════════════════════════════════════════ */
.faqadm-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.faqadm-page-header__inner { max-width:1280px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem }
.faqadm-header-left { display:flex; flex-direction:column; gap:.25rem }
.faqadm-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0; padding:0; list-style:none }
.faqadm-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.faqadm-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.faqadm-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.faqadm-breadcrumb a:hover { text-decoration:underline }
.faqadm-breadcrumb li:last-child { color:#374151; font-weight:500 }
.faqadm-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.faqadm-page-title i { color:var(--primary) }
.faqadm-page-sub { font-size:.79rem; color:#6b7280; margin:0 }
.faqadm-body { max-width:1280px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.faqadm-alert { display:flex; align-items:center; gap:.6rem; background:#f0fdf4; border:1px solid #86efac; color:#15803d; border-radius:8px; padding:.7rem 1rem; margin-bottom:1.25rem; font-size:.85rem; font-weight:600 }
.faqadm-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.faqadm-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; display:flex; align-items:center; justify-content:space-between; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.faqadm-panel__count { background:rgba(255,255,255,.2); border-radius:20px; padding:.15rem .65rem; font-size:.7rem }
.faqadm-filtros { padding:.75rem 1.25rem; background:var(--gray-bg); border-bottom:1px solid var(--gray-border); display:flex; gap:.75rem; flex-wrap:wrap; align-items:center }
.faqadm-filter-input, .faqadm-filter-select { padding:.4rem .75rem; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.82rem; font-family:inherit; background:#fff; color:var(--dark) }
.faqadm-filter-input { min-width:200px; flex:1 }
.faqadm-filter-select { min-width:220px }
.faqadm-table { width:100%; border-collapse:collapse }
.faqadm-table thead th { background:var(--gray-bg); padding:.65rem 1rem; font-size:.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--gray-border); white-space:nowrap; text-align:left }
.faqadm-table tbody tr { border-bottom:1px solid var(--gray-border); transition:background .15s }
.faqadm-table tbody tr:last-child { border-bottom:none }
.faqadm-table tbody tr:hover { background:#fafafa }
.faqadm-table td { padding:.75rem 1rem; font-size:.84rem; color:#374151; vertical-align:top }
.faqadm-pregunta { font-size:.83rem; font-weight:600; color:var(--dark); max-width:340px; line-height:1.4 }
.faqadm-seccion-badge { display:inline-flex; align-items:center; background:rgba(191,9,9,.07); border:1px solid rgba(191,9,9,.18); color:var(--primary); font-size:.63rem; font-weight:700; padding:.18rem .55rem; border-radius:4px; white-space:nowrap }
.faqadm-ref { font-size:.74rem; color:#6b7280; font-style:italic }
.faqadm-activo-on  { color:#16a34a; font-size:.78rem; font-weight:700 }
.faqadm-activo-off { color:#dc2626; font-size:.78rem; font-weight:700 }
.faqadm-actions { display:flex; gap:.4rem; white-space:nowrap }
.faqadm-btn-edit, .faqadm-btn-del { display:inline-flex; align-items:center; justify-content:center; padding:.4rem .55rem; border-radius:5px; font-size:.8rem; font-weight:600; cursor:pointer; border:1.5px solid; text-decoration:none; transition:all .18s }
.faqadm-btn-edit { color:var(--primary); border-color:var(--primary); background:transparent }
.faqadm-btn-edit:hover { background:var(--primary); color:#fff }
.faqadm-btn-del  { color:var(--primary); border-color:var(--primary); background:transparent }
.faqadm-btn-del:hover  { background:var(--primary); color:#fff }
.faqadm-btn-new { display:inline-flex; align-items:center; gap:.45rem; padding:.5rem 1.1rem; background:#fff; color:var(--primary); border:1.5px solid var(--primary); border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:all .18s }
.faqadm-btn-new:hover { background:var(--primary); color:#fff }
.faqadm-empty { text-align:center; padding:3rem 1rem; color:#9ca3af }
.faqadm-empty i { font-size:2.5rem; display:block; margin-bottom:.75rem; color:#d1d5db }
.faqadm-orden { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; background:var(--gray-bg); border:1px solid var(--gray-border); border-radius:50%; font-size:.74rem; font-weight:700; color:#6b7280 }
@media (max-width:768px) { .faqadm-page-header__inner { flex-direction:column; align-items:flex-start } .faqadm-body { padding:0 1rem 2rem } }


/* ════════════════════════════════════════════════════════════════════
   .faqform-  Faq/Form
   ════════════════════════════════════════════════════════════════════ */
.faqform-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.faqform-page-header__inner { max-width:1000px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem }
.faqform-header-left { display:flex; flex-direction:column; gap:.25rem }
.faqform-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0; padding:0; list-style:none }
.faqform-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.faqform-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.faqform-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.faqform-breadcrumb a:hover { text-decoration:underline }
.faqform-breadcrumb li:last-child { color:#374151; font-weight:500 }
.faqform-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.faqform-page-title i { color:var(--primary) }
.faqform-page-sub { font-size:.79rem; color:#6b7280; margin:0 }
.faqform-body { max-width:1000px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.faqform-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.faqform-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; display:flex; align-items:center; gap:.5rem }
.faqform-panel__body { padding:1.75rem }
.faqform-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }
.faqform-grid-full { grid-column:1/-1 }
.faqform-field { display:flex; flex-direction:column; gap:.3rem }
.faqform-label { font-size:.78rem; font-weight:600; color:#374151; letter-spacing:.02em }
.faqform-label span { color:var(--primary); margin-left:2px }
.faqform-input, .faqform-select, .faqform-textarea { padding:.5rem .75rem; border:1px solid var(--gray-border); border-radius:6px; font-size:.88rem; color:#212529; background:#fff; transition:border-color .2s,box-shadow .2s; font-family:inherit }
.faqform-input:focus, .faqform-select:focus, .faqform-textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(191,9,9,.1) }
.faqform-textarea { resize:vertical; min-height:120px }
.faqform-hint { font-size:.72rem; color:#9ca3af }
.faqform-val-error { font-size:.75rem; color:var(--primary); margin-top:.15rem }
.faqform-toggle-row { display:flex; align-items:center; justify-content:space-between; padding:.75rem 0 }
.faqform-toggle-label { font-size:.88rem; font-weight:600; color:#212529 }
.faqform-toggle-sub   { font-size:.75rem; color:#6c757d }
.faqform-switch { position:relative; width:44px; height:24px; flex-shrink:0 }
.faqform-switch input { opacity:0; width:0; height:0 }
.faqform-switch__slider { position:absolute; inset:0; background:#d1d5db; border-radius:24px; cursor:pointer; transition:background .25s }
.faqform-switch__slider::before { content:''; position:absolute; width:18px; height:18px; background:#fff; border-radius:50%; top:3px; left:3px; transition:transform .25s; box-shadow:0 1px 3px rgba(0,0,0,.2) }
.faqform-switch input:checked + .faqform-switch__slider { background:#16a34a }
.faqform-switch input:checked + .faqform-switch__slider::before { transform:translateX(20px) }
.faqform-btn-row { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid var(--gray-border) }
.faqform-btn-save   { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.4rem; background:var(--primary); color:#fff; border:none; border-radius:6px; font-size:.88rem; font-weight:700; cursor:pointer; transition:background .2s }
.faqform-btn-save:hover { background:var(--primary-dark) }
.faqform-btn-cancel { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.1rem; background:#fff; color:#374151; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.88rem; font-weight:600; text-decoration:none; transition:border-color .18s }
.faqform-btn-cancel:hover { border-color:#6b7280 }
@media (max-width:640px) { .faqform-grid-2 { grid-template-columns:1fr } .faqform-grid-full { grid-column:auto } }


/* ════════════════════════════════════════════════════════════════════
   .secadm-  Secciones/Index
   ════════════════════════════════════════════════════════════════════ */
.secadm-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.secadm-page-header__inner { max-width:900px; margin:0 auto; padding:0 1.5rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem }
.secadm-header-left { display:flex; flex-direction:column; gap:.25rem }
.secadm-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0; padding:0; list-style:none }
.secadm-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.secadm-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.secadm-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.secadm-breadcrumb a:hover { text-decoration:underline }
.secadm-breadcrumb li:last-child { color:#374151; font-weight:500 }
.secadm-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.secadm-page-title i { color:var(--primary) }
.secadm-page-sub { font-size:.79rem; color:#6b7280; margin:0 }
.secadm-body { max-width:900px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.secadm-alert { display:flex; align-items:center; gap:.6rem; border-radius:8px; padding:.7rem 1rem; margin-bottom:1.25rem; font-size:.85rem; font-weight:600 }
.secadm-alert--ok  { background:#f0fdf4; border:1px solid #86efac; color:#15803d }
.secadm-alert--err { background:#fef2f2; border:1px solid #fca5a5; color:#dc2626 }
.secadm-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.secadm-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; display:flex; align-items:center; justify-content:space-between; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.secadm-panel__count { background:rgba(255,255,255,.2); border-radius:20px; padding:.15rem .65rem; font-size:.7rem }
.secadm-table { width:100%; border-collapse:collapse }
.secadm-table thead th { background:var(--gray-bg); padding:.65rem 1rem; font-size:.72rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--gray-border); text-align:left }
.secadm-table tbody tr { border-bottom:1px solid var(--gray-border); transition:background .15s }
.secadm-table tbody tr:last-child { border-bottom:none }
.secadm-table tbody tr:hover { background:#fafafa }
.secadm-table td { padding:.75rem 1rem; font-size:.84rem; color:#374151; vertical-align:middle }
.secadm-orden { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; background:rgba(191,9,9,.08); border:1px solid rgba(191,9,9,.2); border-radius:50%; font-size:.74rem; font-weight:700; color:var(--primary) }
.secadm-nombre { font-weight:600; color:var(--dark) }
.secadm-actions { display:flex; gap:.4rem }
.secadm-btn-edit, .secadm-btn-del { display:inline-flex; align-items:center; justify-content:center; padding:.4rem .55rem; border-radius:5px; font-size:.8rem; font-weight:600; cursor:pointer; border:1.5px solid; text-decoration:none; transition:all .18s }
.secadm-btn-edit { color:var(--primary); border-color:var(--primary); background:transparent }
.secadm-btn-edit:hover { background:var(--primary); color:#fff }
.secadm-btn-del  { color:var(--primary); border-color:var(--primary); background:transparent }
.secadm-btn-del:hover  { background:var(--primary); color:#fff }
.secadm-btn-new { display:inline-flex; align-items:center; gap:.45rem; padding:.5rem 1.1rem; background:#fff; color:var(--primary); border:1.5px solid var(--primary); border-radius:6px; font-size:.82rem; font-weight:700; text-decoration:none; transition:all .18s }
.secadm-btn-new:hover { background:var(--primary); color:#fff }
.secadm-empty { text-align:center; padding:3rem 1rem; color:#9ca3af }
.secadm-empty i { font-size:2.5rem; display:block; margin-bottom:.75rem; color:#d1d5db }


/* ════════════════════════════════════════════════════════════════════
   .secform-  Secciones/Form
   ════════════════════════════════════════════════════════════════════ */
.secform-page-header { background:#fff; border-bottom:1px solid var(--gray-border); border-left:4px solid var(--primary); padding:1.25rem 0 1.1rem }
.secform-page-header__inner { max-width:700px; margin:0 auto; padding:0 1.5rem; display:flex; flex-direction:column; gap:.25rem }
.secform-breadcrumb { display:flex; align-items:center; gap:.35rem; font-size:.8rem; color:var(--gray-text); margin:0; padding:0; list-style:none }
.secform-breadcrumb li { display:flex; align-items:center; gap:.35rem }
.secform-breadcrumb li+li::before { content:'/'; color:var(--gray-border); font-size:.75rem }
.secform-breadcrumb a { color:var(--primary); text-decoration:none; font-weight:500; display:inline-flex; align-items:center; gap:.3rem }
.secform-breadcrumb a:hover { text-decoration:underline }
.secform-breadcrumb li:last-child { color:#374151; font-weight:500 }
.secform-page-title { font-size:1.25rem; font-weight:800; color:var(--dark); margin:0 }
.secform-page-title i { color:var(--primary) }
.secform-page-sub { font-size:.79rem; color:#6b7280; margin:0 }
.secform-body { max-width:700px; margin:1.75rem auto; padding:0 1.5rem 3rem }
.secform-panel { background:#fff; border:1px solid var(--gray-border); border-radius:10px; overflow:hidden }
.secform-panel__head { background:var(--primary); color:#fff; padding:.75rem 1.25rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; display:flex; align-items:center; gap:.5rem }
.secform-panel__body { padding:1.75rem }
.secform-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }
.secform-grid-full { grid-column:1/-1 }
.secform-field { display:flex; flex-direction:column; gap:.3rem }
.secform-label { font-size:.78rem; font-weight:600; color:#374151; letter-spacing:.02em }
.secform-label span { color:var(--primary); margin-left:2px }
.secform-input { padding:.5rem .75rem; border:1px solid var(--gray-border); border-radius:6px; font-size:.88rem; color:#212529; background:#fff; transition:border-color .2s,box-shadow .2s; font-family:inherit }
.secform-input:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(191,9,9,.1) }
.secform-hint { font-size:.72rem; color:#9ca3af }
.secform-val-error { font-size:.75rem; color:var(--primary); margin-top:.15rem }
.secform-btn-row { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid var(--gray-border) }
.secform-btn-save   { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.4rem; background:var(--primary); color:#fff; border:none; border-radius:6px; font-size:.88rem; font-weight:700; cursor:pointer; transition:background .2s }
.secform-btn-save:hover { background:var(--primary-dark) }
.secform-btn-cancel { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.1rem; background:#fff; color:#374151; border:1.5px solid var(--gray-border); border-radius:6px; font-size:.88rem; font-weight:600; text-decoration:none; transition:border-color .18s }
.secform-btn-cancel:hover { border-color:#6b7280 }
@media (max-width:640px) { .secform-grid-2 { grid-template-columns:1fr } .secform-grid-full { grid-column:auto } }

/* ── A11Y: contraste de bordes de controles interactivos (WCAG 1.4.11 AA) ── */
.cadm-search-input, .cadm-filter-select, .cadm-page-btn,
.cadm-input, .cadm-select, .cadm-textarea, .cadm-btn-cancel,
.hadm-sel, .hadm-pager__btn,
.hadf-input, .hadf-select, .hadf-textarea, .hadf-tag-label, .hadf-btn-cancel,
.mjur-input, .mjur-select, .mjur-textarea, .mjur-btn-cancel,
.cadf-input, .cadf-btn-cancel,
.faqadm-filter-input, .faqadm-filter-select,
.faqform-input, .faqform-select, .faqform-textarea, .faqform-btn-cancel,
.secform-input, .secform-btn-cancel {
  border-color: var(--control-border);
}
