/* Motor de formularios DSC — estilo con la paleta del portal (azul UBB #003366, verde #007A76 / #00A19C). */
:root{--bg:#EEF4F5;--surf:#fff;--ink:#0F172A;--muted:#475569;--line:rgba(15,23,42,.14);--brand:#003366;--acc:#007A76;--acc2:#00A19C;--err:#B42318;--errbg:#FEF3F2;--chip:#E6F4F3;--r:12px}
@media (prefers-color-scheme:dark){:root{--bg:#0B1220;--surf:#111A2E;--ink:#E2E8F0;--muted:#94A3B8;--line:rgba(255,255,255,.14);--brand:#0A2A4A;--acc:#00A19C;--acc2:#00A19C;--err:#F97066;--errbg:#2A1215;--chip:#0F2A2E}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,"Helvetica Neue",Arial,sans-serif}
a{color:var(--acc)}
.mf-wrap{max-width:860px;margin:0 auto;padding:0 16px}
.mf-top{background:var(--brand);color:#fff}
.mf-top .mf-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding-top:14px;padding-bottom:14px}
.mf-marca{color:#fff;text-decoration:none;font-weight:700;line-height:1.2}.mf-marca small{display:block;font-weight:400;opacity:.8;font-size:13px}
.mf-prueba{background:#FFE066;color:#1F2A44;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600}
.mf-main{padding-top:28px;padding-bottom:40px}
h1{font-size:28px;line-height:1.2;margin:0 0 8px}
h2{font-size:18px;margin:0 0 12px}
.mf-intro{color:var(--muted);margin:0 0 20px}
.mf-sesion{background:var(--chip);border-radius:var(--r);padding:10px 14px;margin:0 0 16px;font-size:14px}
.mf-seccion{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin:0 0 16px}
.mf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.mf-campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.mf-grupo,.mf-campo:has(textarea){grid-column:1/-1}
fieldset.mf-campo{border:0;padding:0;margin:0}
label,legend{font-weight:600;font-size:15px}
legend{padding:0;margin-bottom:6px}
.mf-req{color:var(--err)}.mf-opc{color:var(--muted);font-weight:400;font-size:13px}
input:not([type]),input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=time],input[type=password],select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px}
textarea{resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,.mf-terminos:focus-visible{outline:3px solid var(--acc2);outline-offset:2px}
[aria-invalid=true]{border-color:var(--err)!important}
.mf-op{display:flex;align-items:flex-start;gap:10px;font-weight:400;padding:6px 0;cursor:pointer}
.mf-op input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--acc);flex:none}
.mf-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.mf-ayuda{color:var(--muted);font-size:14px;margin:0}
.mf-error{color:var(--err);font-size:14px;font-weight:600;margin:0}
.mf-aviso{background:var(--chip);border-radius:var(--r);padding:12px 16px;margin:0 0 16px}
.mf-aviso--error{background:var(--errbg);color:var(--err);border:1px solid var(--err)}
.mf-aviso:focus{outline:3px solid var(--acc2);outline-offset:2px}
.mf-terminos{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14px;color:var(--muted);margin-bottom:10px}
.mf-acepto{font-weight:600}
.mf-acciones{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}
.mf-acciones--dos form{display:inline}
.mf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border-radius:999px;border:0;background:var(--acc);color:#fff;font:600 16px/1 inherit;font-family:inherit;text-decoration:none;cursor:pointer}
.mf-btn:hover{filter:brightness(1.08)}
.mf-btn--sec{background:transparent;color:var(--acc);border:2px solid var(--acc)}
.mf-btn--chico{min-height:36px;padding:6px 14px;font-size:14px}
.mf-nota{color:var(--muted);font-size:14px}
.mf-trampa{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.mf-resumen{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8px 16px;margin:0}
.mf-resumen dt{color:var(--muted);font-weight:600}.mf-resumen dd{margin:0;overflow-wrap:anywhere}
.mf-ok-term{color:var(--acc);font-weight:600}
.mf-hecho{text-align:center;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:36px 20px}
.mf-hecho__ic{width:64px;height:64px;border-radius:50%;background:var(--acc);color:#fff;font-size:34px;line-height:64px;margin:0 auto 12px}
.mf-codigo{font-size:18px}
.mf-pie{color:var(--muted);font-size:14px;padding-bottom:32px}
.mf-lista li{margin:6px 0}
.mf-panelbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-size:14px}
.mf-chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.mf-chips li{background:var(--surf);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:14px}
.mf-chips a[aria-current]{font-weight:700}
.mf-tabla{overflow-x:auto;background:var(--surf);border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.mf-tag{display:inline-block;border-radius:999px;padding:1px 8px;font-size:12px;margin-left:6px}.mf-tag--err{background:var(--errbg);color:var(--err)}
.mf-historial{padding-left:18px;font-size:14px}.mf-historial time{color:var(--muted)}
.mf-login{max-width:360px}
[hidden]{display:none!important}
@media (max-width:640px){.mf-grid,.mf-cols,.mf-resumen{grid-template-columns:minmax(0,1fr)}h1{font-size:24px}.mf-seccion{padding:16px}.mf-acciones--dos{flex-direction:column-reverse;align-items:stretch}.mf-acciones--dos .mf-btn{width:100%}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== Panel de administración (v2, 30 oct 2026) ===== */
body.pa{display:grid;grid-template-columns:230px minmax(0,1fr);grid-template-rows:auto 1fr;min-height:100vh}
.pa-top{grid-column:1/-1;background:var(--brand);color:#fff;display:flex;align-items:center;gap:14px;padding:10px 20px;flex-wrap:wrap}
.pa-marca{color:#fff;text-decoration:none;font-weight:700;font-size:16px;margin-right:auto}.pa-marca small{font-weight:400;opacity:.75;margin-left:8px;font-size:13px}
.pa-quien{display:flex;align-items:center;gap:12px;font-size:14px}.pa-quien span small{display:block;opacity:.75;font-size:12px}
.pa-salir{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
.pa-nav{background:var(--surf);border-right:1px solid var(--line);padding:14px 10px;display:flex;flex-direction:column;gap:2px}
.pa-nav a{padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none}.pa-nav a.on{background:var(--chip);color:var(--acc);font-weight:700}
.pa-nav a:hover{background:var(--chip)}
.pa-main{padding:22px 26px 40px;min-width:0}
.pa-main h1{font-size:24px}.pa-main h2{font-size:16px}
.pa-sub{color:var(--muted);margin:0 0 14px}
.pa-card{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:16px;margin:0 0 14px}
.pa-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.pa-acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pa-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.pa-kpi{text-decoration:none;color:var(--ink);display:block}.pa-kpi b{display:block;font-size:30px;color:var(--brand)}.pa-kpi span{color:var(--muted)}
@media (prefers-color-scheme:dark){.pa-kpi b{color:#9fd8d5}}
.pa-kpi--al b{color:var(--err)}
.pa-dos{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}
.pa-dos--det{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.pa-tabla{overflow-x:auto;padding:4px 8px}.pa-tabla td,.pa-tabla th{white-space:nowrap}.pa-tabla .pa-envuelve{white-space:normal;min-width:160px}
.pa-tabla tr.pa-atrasada td{background:var(--errbg)}.pa-inactiva td{opacity:.6}
.pa-cod{font-family:Menlo,Consolas,monospace;font-weight:700;color:var(--brand);text-decoration:none;white-space:nowrap}
@media (prefers-color-scheme:dark){.pa-cod{color:#9fd8d5}}
.pa-t{display:inline-block;white-space:nowrap;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600}
.pa-t--nueva{background:#E0EAFF;color:#1F4FC4}.pa-t--proceso{background:#FFFAEB;color:#B54708}.pa-t--ok{background:var(--chip);color:var(--acc)}.pa-t--gris{background:#F2F4F7;color:#475467}.pa-t--err{background:var(--errbg);color:var(--err)}
.pa-fila{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.pa-fila span:nth-child(2){flex:1}
.pa-barra{display:grid;grid-template-columns:52px 1fr 30px;gap:8px;align-items:center;font-size:13px}.pa-barra meter{width:100%;height:12px}
.pa-h2-sep{margin-top:16px}
.pa-filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:10px}
.pa-filtros label{display:flex;flex-direction:column;font-size:13px;gap:4px;font-weight:600}.pa-filtros input,.pa-filtros select{min-height:38px;padding:6px 10px;width:auto}
.pa-pags{display:flex;gap:16px;justify-content:center;margin:10px 0}
.pa-form{display:flex;flex-direction:column;gap:12px}.pa-form label{display:flex;flex-direction:column;gap:5px}.pa-form label.mf-op{flex-direction:row}
.pa-form--2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.pa-ancho{grid-column:1/-1}
.pa-inline{display:inline}.pa-inline-form{flex-direction:row;align-items:flex-end;flex-wrap:wrap}
.pa-hist{list-style:none;padding:0;margin:0;font-size:14px}.pa-hist li{padding:8px 0;border-bottom:1px solid var(--line)}.pa-hist time{color:var(--muted);margin-right:4px}
.pa-hist blockquote{margin:6px 0 0;padding:8px 12px;background:var(--bg);border-left:3px solid var(--acc2);border-radius:4px;white-space:normal}
.pa-quien-ev{color:var(--muted);font-size:12px}
.pa-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:14px 0;flex-wrap:wrap}
.pa-tabs a{padding:8px 14px;border-radius:8px 8px 0 0;color:var(--muted);text-decoration:none}.pa-tabs a.on{background:var(--surf);border:1px solid var(--line);border-bottom-color:var(--surf);color:var(--acc);font-weight:700;margin-bottom:-1px}
.pa-editor-campos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.pa-editor-campos>div:last-child{position:sticky;top:14px}
.pa-sec__cab{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pa-campo{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:6px 0;background:var(--surf)}
.pa-campo small{display:block;color:var(--muted);font-size:12px}.pa-campo.on{border:2px solid var(--acc2)}
.pa-mini{display:flex;gap:2px;flex:none}
.pa-ico{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surf);color:var(--ink);text-decoration:none;cursor:pointer;font:inherit}
.pa-ico:hover{background:var(--chip)}.pa-ico--err{color:var(--err)}
.pa-agregar{display:block;border:2px dashed var(--acc2);border-radius:8px;padding:8px;text-align:center;color:var(--acc);font-weight:600;text-decoration:none;margin-top:8px}
.pa-editor{border:2px solid var(--acc2)}
.pa-avanzado summary{cursor:pointer;color:var(--acc);font-weight:600;margin:4px 0}.pa-avanzado[open]{display:flex;flex-direction:column;gap:12px}
.pa-permisos{border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.pa-nuevo summary{cursor:pointer;font-weight:700;color:var(--acc)}.pa-nuevo[open] summary{margin-bottom:12px}
.pa-estados li{margin:4px 0}
.mf-aviso--ok{background:var(--chip);color:var(--acc);font-weight:600}
.mf-aviso--vista{background:#FFFAEB;color:#B54708}
.mf-aviso ul{margin:6px 0 0;padding-left:18px}
code{background:var(--chip);padding:2px 6px;border-radius:6px}
@media (max-width:900px){body.pa{grid-template-columns:1fr}.pa-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.pa-nav a{white-space:nowrap}
 .pa-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pa-dos,.pa-dos--det,.pa-editor-campos,.pa-form--2,.pa-permisos{grid-template-columns:minmax(0,1fr)}.pa-main{padding:16px}}

/* Acceso (30 oct 2026): datos de la sesión bloqueados y elección «con cuenta / sin cuenta». */
input[readonly],textarea[readonly]{background:var(--chip);color:var(--muted);cursor:not-allowed}
.mf-ayuda--sesion{color:var(--acc);font-weight:600}
.mf-opciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:640px){.mf-opciones{grid-template-columns:minmax(0,1fr)}}
.mf-tabla table th{text-align:left;padding:8px 12px;vertical-align:top;width:34%}.mf-tabla table td{white-space:normal}
/* Mis solicitudes (solicitante) */
.mf-mis{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px}
.mf-mis__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;color:var(--ink);text-decoration:none}
.mf-mis__item:hover{border-color:var(--acc)}
.mf-mis__t{font-weight:600;min-width:0;overflow-wrap:anywhere}
.mf-mis__m{grid-column:1/-1;color:var(--muted);font-size:14px}
.mf-volver{margin:0 0 8px;font-size:14px}
.mf-hist{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.mf-hist li{border-left:3px solid var(--line);padding:2px 0 2px 12px}
.mf-hist time{display:block;color:var(--muted);font-size:13px}
.mf-hist--respuesta{border-left-color:var(--acc)!important}
.mf-hist blockquote{margin:6px 0 0;background:var(--chip);border-radius:10px;padding:10px 12px;overflow-wrap:anywhere}
details.mf-seccion summary{cursor:pointer}
details.mf-seccion[open] summary{margin-bottom:12px}

/* Recuadro «Cómo entrar» antes del inicio de sesión de la Universidad (2 nov 2026). */
.mf-ingreso{background:var(--surf);border:1px solid var(--line);border-left:5px solid var(--acc);border-radius:var(--r);padding:18px 20px;margin:16px 0}
.mf-ingreso h2{margin:0 0 8px}
.mf-ingreso ol{margin:0 0 14px;padding-left:22px}.mf-ingreso li{margin:4px 0}
.mf-ingreso .mf-btn span{margin-left:8px}
.mf-ingreso__nota{color:var(--muted);font-size:14px;margin:12px 0 0}
.mf-seccion .mf-ingreso{border:0;border-left:4px solid var(--acc);padding:4px 0 4px 14px;margin:8px 0 0;border-radius:0}

/* Pie del sitio (pt-foot, de dsc-footer-v1.css): pegado al fondo aunque la página sea corta (2 nov 2026). */
body:not(.pa){min-height:100vh;display:flex;flex-direction:column}body:not(.pa) .mf-main{flex:1 0 auto;width:100%}body:not(.pa)>.mf-top,body:not(.pa)>.pt-foot{flex:none}
/* El pie trae style="height:52px" en el logo, pero la política de seguridad de los formularios (CSP style-src 'self') bloquea estilos en línea: el tamaño va aquí. */
.pt-foot__brand img{height:52px;width:auto}
