/* Perfiles de rol: colores alineados con el panel, también sin utilidades del CDN. */
.role-card,.role-profile-view { --role-bg:#fff; --role-subtle:#f8fafc; --role-border:#e2e8f0; --role-text:#0f172a; --role-muted:#475569; --role-accent:#0f766e; --role-active:#ccfbf1; background:var(--role-bg); color:var(--role-text); }
.dark .role-card,.dark .role-profile-view { --role-bg:#141f2e; --role-subtle:#111a26; --role-border:#334155; --role-text:#f1f5f9; --role-muted:#94a3b8; --role-accent:#5eead4; --role-active:#134e4a; }
/* Tarjetas de perfil con ancho máximo y la descripción sangrada bajo el nombre (decisiones 2026-10-15-2210 y
   2026-10-16-1608). */
.role-cards { display:grid; grid-template-columns:repeat(auto-fill,300px); gap:16px; }
.role-cards > p { grid-column:1 / -1; }
@media (max-width:639px) { .role-cards { grid-template-columns:1fr; } }
.role-card { --role-card-icon:32px; --role-card-gap:12px; --role-shadow:0 10px 40px #0f172a0a; display:flex; flex-direction:column; text-align:left; padding:0; border:1px solid var(--role-border); border-radius:20px; box-shadow:var(--role-shadow); transition:border-color .15s,box-shadow .15s; min-width:0; overflow:hidden; }
.dark .role-card { --role-shadow:0 10px 40px #00000040; }
.role-card:hover { border-color:var(--role-accent); box-shadow:0 12px 32px #0f172a14; }
.dark .role-card:hover { box-shadow:0 12px 32px #00000066; }
.role-card-open { display:flex; flex-direction:column; gap:6px; padding:20px 20px 16px; text-align:left; flex:1; min-width:0; background:transparent; color:inherit; cursor:pointer; }
.role-card-heading { display:flex; align-items:center; gap:var(--role-card-gap); min-width:0; }
.role-card-open:focus-visible,.role-card-count:focus-visible,.role-profile-view button:focus-visible { outline:3px solid var(--role-accent); outline-offset:-3px; }
.role-profile-view button:focus-visible { outline-offset:3px; }
.role-symbol { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:14px; background:var(--role-active); color:var(--role-accent); font-size:22px; flex-shrink:0; }
.role-card .role-symbol { width:var(--role-card-icon); height:var(--role-card-icon); border-radius:10px; font-size:15px; }
.role-card-name { font-family:'Outfit',sans-serif; font-size:16px; font-weight:700; line-height:1.3; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.role-card-description { margin-left:calc(var(--role-card-icon) + var(--role-card-gap)); color:var(--role-muted); font-size:12px; line-height:1.5; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; overflow:hidden; }
.role-card-count { display:flex; align-items:center; gap:6px; border-top:1px solid var(--role-border); padding:10px 20px; width:100%; color:var(--role-muted); background:var(--role-subtle); text-align:left; font-weight:650; cursor:pointer; }
.role-card-count:hover { color:var(--role-accent); }
.role-profile-view { padding:0; border:1px solid var(--role-border); border-radius:20px; width:min(780px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); font-size:14px; margin:auto; overflow:auto; box-shadow:0 24px 80px #0004; }
.role-detail-header { display:flex; gap:16px; padding:24px 24px 16px; align-items:flex-start; }
.role-detail-header>div { flex:1; min-width:0; }
.role-detail-header h2 { font-size:23px; font-weight:750; margin:0 0 6px; overflow-wrap:anywhere; }
.role-detail-header p { color:var(--role-muted); line-height:1.6; margin:0; overflow-wrap:anywhere; }
.role-detail-actions { padding:0 24px 20px; display:flex; gap:10px; border-bottom:1px solid var(--role-border); }
.role-detail-actions button { padding:8px 14px; border:1px solid var(--role-border); border-radius:9px; font-weight:650; background:var(--role-subtle); }
#btnSaveRole,#btnEditRole { background:#0f766e; color:white; border-color:#0f766e; }
#btnDeleteRole { color:#be123c; margin-left:auto; }
.dark #btnDeleteRole { color:#fda4af; }
.role-detail-content { padding:24px; display:grid; gap:24px; }
.role-section h3 { font-size:16px; font-weight:750; margin:0 0 14px; }
.role-section label:not(.role-option):not(.permission-check) { display:block; font-size:12px; font-weight:650; margin:14px 0 6px; color:var(--role-muted); }
.role-section input,.role-section textarea { display:block; box-sizing:border-box; width:100%; padding:10px 12px; border-radius:10px; border:1px solid var(--role-border); background:var(--role-bg); color:var(--role-text); font:inherit; }
.role-section input:disabled,.role-section textarea:disabled { background:var(--role-subtle); opacity:1; }
.role-section-help { color:var(--role-muted); line-height:1.6; margin:0 0 16px; }
.role-icons { display:flex; flex-wrap:wrap; gap:8px; }
.role-icon-option { border:1px solid var(--role-border); border-radius:10px; background:var(--role-subtle); padding:12px 8px; min-width:74px; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:11px; }
.role-icon-option i { font-size:20px; }
.role-icon-option[aria-pressed=true],.permission-chip[aria-pressed=true] { color:var(--role-accent); background:var(--role-active); border-color:var(--role-accent); }
.permission-module,.root-permission { border:1px solid var(--role-border); padding:18px; border-radius:14px; margin-top:12px; }
.permission-module-heading { display:flex; gap:12px; align-items:center; }
.permission-module-heading>i { font-size:18px; color:var(--role-muted); }
.permission-module-heading>div { flex:1; }
.permission-module h4 { margin:0 0 4px; font-size:14px; font-weight:750; }
.permission-module p,.root-permission p { color:var(--role-muted); font-size:12px; line-height:1.6; margin:0; }
.module-switch { width:38px; height:22px; border-radius:20px; background:#94a3b8; padding:3px; flex-shrink:0; }
.module-switch span { display:block; width:16px; height:16px; border-radius:50%; background:white; transition:transform .15s; }
.module-switch[aria-checked=true] { background:#0f766e; }
.module-switch[aria-checked=true] span { transform:translateX(16px); }
.module-count { display:block; font-size:11px; color:var(--role-muted); margin:12px 0; }
.permission-chips { display:flex; flex-wrap:wrap; gap:8px; }
.permission-chip { padding:8px 12px; border:1px solid var(--role-border); background:var(--role-subtle); border-radius:22px; font-weight:650; font-size:12px; }
.permission-chip i { margin-right:5px; }
.permission-descriptions { display:grid; gap:7px; margin-top:14px; }
.root-permission { display:flex; align-items:center; gap:16px; background:var(--role-subtle); }
.root-permission>div { flex:1; }
.root-permission strong { color:var(--role-accent); display:block; margin-bottom:6px; }
.root-permission.is-active { border-color:var(--role-accent); background:var(--role-active); }
.role-profile-view button { cursor:pointer; }
.role-profile-view button:disabled { cursor:default; }
.role-profile-view [hidden] { display:none!important; }
@media(max-width:480px) { .role-detail-header,.role-detail-content { padding:16px; } .role-detail-actions { padding:0 16px 16px; } .permission-module,.root-permission { padding:14px; } .role-detail-header h2 { font-size:20px; } }

.role-profile-view { width:min(900px,100%); max-height:none; box-shadow:none; margin:0 auto; overflow:visible; }
#adminDirectory[hidden],#roleProfileView[hidden],#roleReadInfo[hidden],#roleEditInfo[hidden] { display:none!important; }
.role-profile-view [hidden] { display:none!important; }
.permission-chip.is-active { color:var(--role-accent); background:var(--role-active); border-color:var(--role-accent); }
#roleReadInfo p { margin:8px 0; line-height:1.6; overflow-wrap:anywhere; }
#roleReadDescription { color:var(--role-muted); }
.role-icon-read { display:flex; gap:10px; align-items:center; }
.role-icon-read i { color:var(--role-accent); font-size:22px; }
.access-form-error { color:#be123c; font-size:13px; line-height:1.5; margin:10px 24px; }
.access-form-error:empty { display:none; }
.dark .access-form-error { color:#fda4af; }

/* Alta de personas y contraseñas temporales (decisión 2026-10-13-1900). */
#personCreateView[hidden],#personCreateForm[hidden],#personCreated[hidden] { display:none!important; }
.person-create-warning { margin:8px 0 0; padding:10px 12px; border-radius:10px; background:#fef3c7; color:#78350f; font-size:12px; line-height:1.5; }
.dark .person-create-warning { background:#451a03; color:#fde68a; }
.person-create-warning i { margin-right:4px; }
.person-create-actions { display:flex; gap:10px; flex-wrap:wrap; }
.person-create-actions button { padding:8px 14px; border:1px solid var(--role-border, #cbd5e1); border-radius:9px; font-weight:650; background:var(--role-subtle, transparent); cursor:pointer; }
#btnCreatePerson,#btnCreatedDone,.temporary-password [data-action=reveal-done] { background:#0f766e; color:white; border-color:#0f766e; }
.person-create-actions button:disabled { opacity:.6; cursor:default; }
#personCreateView .access-form-error { margin:0; }
.temporary-password { border:1px solid #0f766e; background:#f0fdfa; border-radius:14px; padding:16px; display:grid; gap:10px; line-height:1.5; }
.dark .temporary-password { background:#042f2e; border-color:#5eead4; }
.temporary-password p { margin:0; }
.temporary-password-value { display:block; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:20px; letter-spacing:.06em; padding:10px 12px; border-radius:10px; background:#fff; color:#0f172a; user-select:all; overflow-wrap:anywhere; }
.dark .temporary-password-value { background:#0f172a; color:#f1f5f9; }
.temporary-password-copied:empty { display:none; }
.temporary-password-copied { color:#0f766e; font-size:12px; }
.dark .temporary-password-copied { color:#5eead4; }
.person-flag { display:inline-flex; align-items:center; gap:5px; padding:3px 8px; border-radius:20px; background:#fef3c7; color:#78350f; font-size:11px; font-weight:650; }
.dark .person-flag { background:#451a03; color:#fde68a; }
.person-profile .temporary-password { margin-top:12px; }
.person-profile .temporary-password button:not([data-action=reveal-done]) { background:transparent; }

/* Elegir roles y permisos sueltos de una persona: tarjetas y módulos (decisión 2026-10-15-2210); el ancho máximo de
   las tarjetas, de la 2026-10-16-1608. */
.role-options { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),300px)); gap:8px; }
.role-option { --role-bg:#fff; --role-subtle:#f8fafc; --role-border:#e2e8f0; --role-text:#0f172a; --role-muted:#475569; --role-accent:#0f766e; --role-active:#ccfbf1; position:relative; display:flex; align-items:flex-start; gap:10px; padding:10px 34px 10px 10px; border:1px solid var(--role-border); border-radius:12px; background:var(--role-bg); color:var(--role-text); cursor:pointer; min-width:0; transition:border-color .15s,background .15s; }
.dark .role-option { --role-bg:#141f2e; --role-subtle:#111a26; --role-border:#334155; --role-text:#f1f5f9; --role-muted:#94a3b8; --role-accent:#5eead4; --role-active:#134e4a; }
.role-option:hover { border-color:var(--role-accent); }
.role-option.is-selected,.role-option:has(input:checked) { border-color:var(--role-accent); background:var(--role-active); box-shadow:inset 0 0 0 1px var(--role-accent); }
.role-option input { position:absolute; top:10px; right:10px; width:16px; height:16px; accent-color:#0f766e; margin:0; }
.role-option:has(input:focus-visible) { outline:3px solid var(--role-accent); outline-offset:2px; }
.role-option:has(input:disabled) { cursor:default; opacity:.7; }
.role-option .role-symbol { width:32px; height:32px; border-radius:9px; font-size:15px; }
.role-option-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.role-option-name { font-family:'Outfit',sans-serif; font-weight:700; font-size:13px; overflow-wrap:anywhere; }
.role-option-description { color:var(--role-muted); font-size:11px; line-height:1.45; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden; }
.person-permissions { --role-subtle:#f8fafc; --role-border:#e2e8f0; --role-muted:#475569; --role-accent:#0f766e; --role-active:#ccfbf1; }
.dark .person-permissions { --role-subtle:#111a26; --role-border:#334155; --role-muted:#94a3b8; --role-accent:#5eead4; --role-active:#134e4a; }
.person-permissions .permission-module,.person-permissions .root-permission { padding:12px; margin-top:8px; }
.person-permissions .module-count { margin:8px 0; }
.person-permissions .permission-descriptions { margin-top:10px; gap:4px; }
.permission-check { display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.permission-check input { width:14px; height:14px; margin:0; accent-color:#0f766e; }
.permission-check i { margin-right:0; }
.permission-check:has(input:checked) { color:var(--role-accent); background:var(--role-active); border-color:var(--role-accent); }
.permission-check:has(input:focus-visible) { outline:3px solid var(--role-accent); outline-offset:2px; }
#personCreateView .role-options { margin-top:4px; }
.person-profile .person-permissions p { margin:0; }

/* Administración: pestañas Personas y Perfiles, encabezado de cada sección y la lista de personas (decisión
   2026-10-16-1645-administracion-con-pestanas-y-lista-de-personas.md). Aquí y no en Tailwind, para que las pruebas
   sin el CDN midan el acomodo. */
.admin-layout { --role-bg:#fff; --role-subtle:#f8fafc; --role-border:#e2e8f0; --role-text:#0f172a; --role-muted:#475569; --role-accent:#0f766e; --role-active:#ccfbf1; display:grid; grid-template-columns:208px minmax(0,1fr); gap:32px; align-items:start; color:var(--role-text); }
.dark .admin-layout { --role-bg:#141f2e; --role-subtle:#111a26; --role-border:#334155; --role-text:#f1f5f9; --role-muted:#94a3b8; --role-accent:#5eead4; --role-active:#134e4a; }
#adminDirectory[hidden],#personDetailView[hidden],.admin-panel[hidden] { display:none!important; }
.admin-sidebar { position:sticky; top:0; padding-right:24px; border-right:1px solid var(--role-border); min-height:100%; }
.admin-sidebar-title { display:flex; align-items:center; gap:10px; font-family:'Outfit',sans-serif; font-size:18px; font-weight:700; margin:4px 0 20px; }
.admin-sidebar-title i { color:var(--role-muted); font-size:16px; }
.admin-tabs { display:flex; flex-direction:column; gap:4px; }
.admin-tabs [role=tab] { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:12px; font-size:14px; font-weight:650; color:var(--role-muted); background:transparent; text-align:left; cursor:pointer; }
.admin-tabs [role=tab] i { width:16px; text-align:center; font-size:14px; }
.admin-tabs [role=tab]:hover { background:var(--role-subtle); color:var(--role-text); }
.admin-tabs [role=tab][aria-selected=true] { background:var(--role-active); color:var(--role-accent); }
.admin-tabs [role=tab]:focus-visible { outline:3px solid var(--role-accent); outline-offset:2px; }
.admin-main { min-width:0; display:grid; gap:20px; align-content:start; }
.admin-panels { min-width:0; display:grid; gap:20px; }
/* Los detalles (rol, persona, alta) van en la columna de la barra lateral, alineados a la izquierda. */
.admin-main .role-profile-view { box-sizing:border-box; margin:0; width:100%; max-width:960px; }
.admin-panel { display:grid; gap:16px; min-width:0; }
.admin-readonly { display:flex; align-items:center; gap:8px; margin:0; padding:10px 14px; border-radius:12px; background:var(--role-subtle); border:1px solid var(--role-border); color:var(--role-muted); font-size:12px; }
.admin-section-header { display:flex; align-items:center; gap:14px; min-width:0; }
.admin-section-icon { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px; background:var(--role-active); color:var(--role-accent); font-size:17px; flex-shrink:0; }
.admin-section-titles { flex:1; min-width:0; }
.admin-section-titles h2 { margin:0; font-family:'Outfit',sans-serif; font-size:22px; font-weight:700; line-height:1.2; color:var(--role-text); }
.admin-section-titles p { margin:2px 0 0; font-size:13px; color:var(--role-muted); line-height:1.4; }
.admin-action { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; padding:9px 16px; border-radius:12px; background:#0f766e; color:#fff; font-size:13px; font-weight:700; box-shadow:0 1px 2px #0f172a14; cursor:pointer; white-space:nowrap; }
.admin-action:hover { background:#115e59; }
.admin-action:focus-visible { outline:3px solid var(--role-accent); outline-offset:2px; }
.admin-help { font-size:12px; color:var(--role-muted); }
.admin-help summary { display:inline-flex; align-items:center; gap:6px; cursor:pointer; font-weight:650; list-style:none; }
.admin-help summary::-webkit-details-marker { display:none; }
.admin-help summary:hover { color:var(--role-accent); }
.admin-help summary:focus-visible { outline:3px solid var(--role-accent); outline-offset:2px; border-radius:6px; }
.admin-help p { margin:8px 0 0; max-width:640px; line-height:1.6; }
.admin-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.admin-search { position:relative; flex:1 1 240px; min-width:0; display:block; }
.admin-search i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--role-muted); font-size:13px; pointer-events:none; }
.admin-search input,.admin-select { box-sizing:border-box; width:100%; padding:9px 12px 9px 34px; border-radius:12px; border:1px solid var(--role-border); background:var(--role-bg); color:var(--role-text); font:inherit; font-size:13px; }
.admin-select { width:auto; max-width:100%; padding-left:12px; flex:0 1 220px; }
.admin-search input:focus,.admin-select:focus { outline:none; border-color:var(--role-accent); box-shadow:0 0 0 3px #14b8a633; }
.admin-count { margin-left:auto; color:var(--role-muted); font-size:12px; white-space:nowrap; }
.admin-empty { margin:0; padding:24px; text-align:center; border:1px dashed var(--role-border); border-radius:16px; color:var(--role-muted); font-size:13px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* La lista de personas: tabla en escritorio, tarjetas por debajo de 640 px. */
.people-table { width:100%; border-collapse:separate; border-spacing:0; background:var(--role-bg); border:1px solid var(--role-border); border-radius:16px; overflow:hidden; font-size:13px; }
.people-table thead th { text-align:left; padding:10px 16px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--role-muted); background:var(--role-subtle); border-bottom:1px solid var(--role-border); }
.people-table td { padding:12px 16px; border-bottom:1px solid var(--role-border); vertical-align:middle; }
.people-table tbody tr:last-child td { border-bottom:0; }
.people-row { cursor:pointer; transition:background .15s; }
.people-row:hover { background:var(--role-subtle); }
.people-cell-person { width:38%; }
.people-cell-go { width:1%; color:var(--role-muted); font-size:12px; }
.people-cell-label { display:none; }
.person-open { display:flex; align-items:center; gap:12px; min-width:0; max-width:100%; padding:0; background:transparent; color:inherit; text-align:left; cursor:pointer; border-radius:10px; }
.person-open:focus-visible { outline:3px solid var(--role-accent); outline-offset:4px; }
.person-avatar { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:36px; height:36px; border-radius:50%; background:var(--role-active); color:var(--role-accent); font-family:'Outfit',sans-serif; font-weight:700; font-size:13px; }
.person-avatar-lg { width:48px; height:48px; font-size:17px; }
.person-names { display:flex; flex-direction:column; min-width:0; }
.person-name { display:flex; align-items:center; gap:8px; font-weight:700; color:var(--role-text); overflow-wrap:anywhere; }
.person-username { color:var(--role-muted); font-size:12px; overflow-wrap:anywhere; }
.person-names .person-flag { align-self:flex-start; margin-top:4px; }
.person-you { padding:1px 7px; border-radius:20px; background:var(--role-subtle); border:1px solid var(--role-border); color:var(--role-muted); font-size:10px; font-weight:700; }
.person-role-chips { display:inline-flex; flex-wrap:wrap; gap:6px; align-items:center; vertical-align:middle; }
.person-role-chip { display:inline-block; max-width:100%; line-height:1.5; padding:2px 10px; border-radius:20px; background:var(--role-active); color:var(--role-accent); font-size:12px; font-weight:650; overflow-wrap:anywhere; }
/* Un nombre o un perfil largo sin espacios parte donde haga falta y no ensancha la pestaña: los hijos de las
   cuadrículas y las celdas pueden encogerse por debajo de su contenido. */
.admin-main > *,.admin-panels > *,.admin-panel > *,.people-table td,.person-role-chips { min-width:0; }
.person-role-chips { max-width:100%; }
.person-none,.person-loose { color:var(--role-muted); font-size:12px; }
@media (max-width:639px) {
  .people-table,.people-table tbody { display:block; border:0; background:transparent; border-radius:0; overflow:visible; }
  .people-table thead { display:none; }
  .people-table tbody { display:grid; gap:10px; }
  .people-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 8px; padding:14px; border:1px solid var(--role-border); border-radius:16px; background:var(--role-bg); }
  .people-table td { display:block; padding:0; border:0; width:auto; }
  .people-cell-person { grid-column:1; grid-row:1; }
  .people-cell-go { grid-column:2; grid-row:1; align-self:center; }
  .people-cell-roles { grid-column:1 / -1; }
}

/* El detalle de una persona: el marco del detalle del rol, con «Volver a Personas» arriba, el encabezado con sus
   acciones en el mismo renglón y una sección con título por cosa (roles, permisos sueltos, lo que puede). */
#personDetail .person-profile { border:0; padding:0; background:transparent; font-size:13px; border-radius:0; }
.person-back { display:inline-flex; align-items:center; gap:8px; margin:20px 24px 0; padding:6px 10px; border-radius:9px; background:transparent; color:var(--role-muted); font-size:12px; font-weight:650; cursor:pointer; }
.person-back:hover { color:var(--role-accent); background:var(--role-subtle); }
.person-back:disabled { opacity:.6; cursor:default; }
.person-back + .role-detail-header { padding-top:12px; }
.person-detail-header { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:12px 24px 20px; border-bottom:1px solid var(--role-border); }
.person-detail-titles { flex:1 1 220px; min-width:0; }
.person-detail-titles h2 { margin:0; font-family:'Outfit',sans-serif; font-size:23px; font-weight:750; line-height:1.2; overflow-wrap:anywhere; }
.person-detail-titles p { margin:4px 0 0; color:var(--role-muted); font-size:13px; overflow-wrap:anywhere; }
.person-badges { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.person-detail-actions { display:flex; flex-wrap:wrap; gap:8px; margin-left:auto; }
.person-action { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid var(--role-border); border-radius:9px; background:var(--role-subtle); color:var(--role-text); font-size:13px; font-weight:650; cursor:pointer; white-space:nowrap; }
.person-action:hover { border-color:var(--role-accent); }
.person-action.is-primary { background:#0f766e; color:#fff; border-color:#0f766e; }
.person-action.is-primary:hover { background:#115e59; }
.person-action:disabled { opacity:.6; cursor:default; }
.person-detail-body { padding:24px; display:grid; gap:28px; }
.person-detail-body > .access-form-error { margin:0; }
.person-detail-body > .temporary-password { margin:0; }
.person-section h3 { display:flex; align-items:center; gap:10px; margin:0 0 12px; font-family:'Outfit',sans-serif; font-size:16px; font-weight:700; }
.person-section .role-section-help { margin:-4px 0 12px; font-size:12px; }
.person-section h3 i { color:var(--role-accent); font-size:14px; }
.person-section fieldset { margin:0; padding:0; border:0; min-width:0; }
.person-section .permission-module:first-child,.person-section .root-permission:first-child { margin-top:0; }
.person-empty { margin:0; padding:14px 16px; border:1px dashed var(--role-border); border-radius:12px; color:var(--role-muted); }
.role-option.is-read { cursor:default; padding-right:10px; }
.role-option.is-read:hover { border-color:var(--role-accent); }
.person-role-chip i { margin-right:4px; }
@media (max-width:480px) {
  .person-back { margin:14px 16px 0; }
  .person-detail-header { padding:10px 16px 16px; }
  .person-detail-body { padding:16px; }
  .person-detail-titles h2 { font-size:20px; }
  .person-detail-actions { margin-left:0; width:100%; }
  .person-action { flex:1 1 auto; justify-content:center; }
}

/* Por debajo de 768 px las pestañas van arriba, en una fila. */
@media (max-width:767px) {
  .admin-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
  .admin-sidebar { position:static; padding-right:0; border-right:0; border-bottom:1px solid var(--role-border); min-height:0; }
  .admin-sidebar-title { display:none; }
  .admin-tabs { flex-direction:row; gap:0; overflow-x:auto; scrollbar-width:none; }
  .admin-tabs [role=tab] { border-radius:0; border-bottom:2px solid transparent; padding:10px 14px; white-space:nowrap; }
  .admin-tabs [role=tab][aria-selected=true] { background:transparent; border-bottom-color:var(--role-accent); }
  .admin-section-titles h2 { font-size:19px; }
}
@media (max-width:480px) {
  .admin-section-header { flex-wrap:wrap; }
  .admin-section-titles { flex-basis:calc(100% - 54px); }
  .admin-action { width:100%; justify-content:center; }
  .admin-count { margin-left:0; }
}
