.brand-row,.brand-identity,.account-menu{display:flex;align-items:center}.brand-row{justify-content:space-between;gap:24px}.brand-identity{gap:14px}.account-menu{gap:18px;text-align:right}.button-ghost{background:transparent;color:#fff;border:1px solid #8db1c4;border-radius:8px;padding:8px 12px;cursor:pointer}.button-ghost:hover{background:rgba(255,255,255,.1)}
.auth-page{min-height:100vh;background:linear-gradient(135deg,var(--navy) 0 42%,var(--page) 42%)}.auth-shell{width:min(980px,calc(100% - 32px));min-height:100vh;margin:auto;display:grid;grid-template-columns:1fr minmax(340px,440px);align-items:center;gap:72px}.auth-brand{color:#fff}.auth-brand .eyebrow{color:#7bddf4}.auth-brand h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.08;margin:.5rem 0 1rem}.auth-brand p:last-child{color:#d2e4ed;max-width:520px}.auth-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px;box-shadow:0 22px 70px rgba(16,21,27,.18)}.auth-card h2{margin:.25rem 0;color:var(--navy);font-size:1.8rem}.form-intro{margin-top:.35rem;color:var(--muted)}.auth-form{display:grid;gap:9px;margin-top:24px}.auth-form label{font-weight:700;margin-top:5px}.auth-form input{width:100%;border:1px solid #aebbc4;border-radius:8px;padding:11px 12px;font:inherit}.auth-form input:focus{outline:3px solid rgba(0,181,226,.25);border-color:#007da5}.button-primary{border:0;border-radius:8px;padding:12px 16px;margin-top:14px;background:var(--navy);color:#fff;font:inherit;font-weight:800;cursor:pointer}.button-primary:hover{background:#00547d}.alert{border-radius:8px;padding:11px 13px;margin-top:18px}.alert-error{background:#fbe9ea;border:1px solid #e6b8bc;color:#7f1d25}.field-help{font-size:.86rem;color:var(--muted);margin:0 0 4px}
@media(max-width:760px){.auth-page{background:var(--page)}.auth-shell{grid-template-columns:1fr;align-content:center;gap:24px;padding:32px 0}.auth-brand{color:var(--navy)}.auth-brand .brand-mark{border-color:var(--navy)}.auth-brand .eyebrow{color:#007caa}.auth-brand p:last-child{color:var(--muted)}.account-menu>span{display:none}}
@media(max-width:460px){.auth-card{padding:24px}.brand-row{gap:12px}.brand-identity strong{font-size:.9rem}}

/* Sistema visual institucional V2 */
:root{--navy-900:#002b45;--navy-800:#003b5c;--navy-700:#07577d;--cyan-500:#00b5e2;--cyan-100:#dff6fc;--surface:#fff;--page-soft:#f3f6f8;--border-soft:#dbe4e9;--ink:#18242d;--muted-ink:#62717c;--success:#19704f;--warning:#9a6511;--shadow:0 16px 42px rgba(0,43,69,.09)}
button,input{font:inherit}.institution-lockup{display:flex;align-items:center;gap:18px;min-width:0}.institution-logo{display:block;max-width:180px;height:48px;object-fit:contain}.institution-logo-faculty{max-width:150px}.brand-fallback{font-size:1.35rem;font-weight:900;letter-spacing:.12em}.brand-divider{display:block;width:1px;height:42px;background:currentColor;opacity:.32}.faculty-fallback{font-size:.73rem;line-height:1.05;letter-spacing:.03em}.faculty-fallback strong{font-size:.91rem}.brand-home{color:#fff;text-decoration:none}
.topbar,.account-menu{display:flex;align-items:center}.topbar{min-height:78px;justify-content:space-between;gap:24px}.account-menu{gap:18px;text-align:right}.account-copy strong,.account-copy small{display:block}.account-copy small{color:#cce1eb}.primary-nav{background:#fff;border-bottom:1px solid var(--border-soft);box-shadow:0 4px 12px rgba(0,43,69,.04)}.nav-scroll{display:flex;gap:30px;overflow:auto}.nav-link{position:relative;padding:14px 2px;color:#4e606c;text-decoration:none;font-weight:700;white-space:nowrap}.nav-link.is-active{color:var(--navy-800)}.nav-link.is-active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--cyan-500);border-radius:3px 3px 0 0}.nav-link.is-disabled{opacity:.62;cursor:default}
.auth-page{background:radial-gradient(circle at 10% 15%,rgba(0,181,226,.18),transparent 28%),linear-gradient(120deg,var(--navy-900),var(--navy-800) 48%,var(--page-soft) 48%)}.auth-shell{width:min(1040px,calc(100% - 40px));grid-template-columns:1fr minmax(360px,440px);gap:92px}.auth-brand .institution-lockup{margin-bottom:64px}.auth-brand h1{font-size:clamp(2.25rem,4.3vw,3.8rem);letter-spacing:-.035em}.auth-brand>p:last-child{font-size:1.08rem}.auth-card{border-radius:20px;padding:38px 40px;box-shadow:0 24px 80px rgba(0,32,51,.2)}.auth-card h2{font-size:1.9rem;letter-spacing:-.02em}.auth-form{gap:18px;margin-top:28px}.field-group{display:grid;gap:7px}.auth-form label{font-weight:750;color:#263842;margin:0}.auth-form input{border-radius:10px;padding:12px 14px;transition:border-color .18s,box-shadow .18s}.auth-form input:focus{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 4px rgba(0,181,226,.16)}.password-field{position:relative}.password-field input{padding-right:50px}.password-toggle{position:absolute;right:6px;top:50%;translate:0 -50%;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:8px;background:transparent;color:#536b79;cursor:pointer}.password-toggle:hover{background:#edf5f8;color:var(--navy-800)}.password-toggle:focus-visible{outline:3px solid rgba(0,181,226,.28)}.eye-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.eye-pupil{transform-origin:center;transition:transform .2s}.eye-slash{stroke-dasharray:24;stroke-dashoffset:0;transition:stroke-dashoffset .22s}.password-toggle[aria-pressed="true"] .eye-slash{stroke-dashoffset:24}.password-toggle[aria-pressed="true"] .eye-pupil{transform:scale(1.18)}.button-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:transform .16s,background .16s}.button-primary:hover:not(:disabled){transform:translateY(-1px)}.auth-support{margin:24px 0 0;padding-top:20px;border-top:1px solid var(--border-soft);text-align:center;font-size:.84rem;color:var(--muted-ink)}
.page-content{padding-top:34px;padding-bottom:56px}.dashboard-welcome{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.dashboard-welcome h1{color:var(--navy-800);font-size:clamp(1.8rem,3vw,2.55rem);letter-spacing:-.03em;margin:.25rem 0}.dashboard-welcome p:last-child{margin:0;color:var(--muted-ink)}.dashboard-welcome .button-primary{flex:0 0 auto}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.metric-card{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--border-soft);border-radius:14px;padding:18px;box-shadow:0 7px 22px rgba(0,43,69,.045)}.metric-icon{flex:0 0 auto;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.25rem;font-weight:900}.metric-card span,.metric-card strong,.metric-card small{display:block}.metric-card span{font-size:.83rem;color:var(--muted-ink);font-weight:700}.metric-card strong{font-size:1.8rem;line-height:1.12;color:var(--ink)}.metric-card small{font-size:.72rem;color:#81909a}.metric-amber .metric-icon{background:#fff2d9;color:var(--warning)}.metric-blue .metric-icon{background:var(--cyan-100);color:#007caa}.metric-green .metric-icon{background:#e3f3ec;color:var(--success)}.metric-navy .metric-icon{background:#e4edf2;color:var(--navy-800)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.8fr);gap:24px}.dashboard-sidebar{display:grid;gap:24px}.panel{background:#fff;border:1px solid var(--border-soft);border-radius:16px;padding:24px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:start;justify-content:space-between;gap:18px}.panel h2{margin:.15rem 0;color:var(--navy-800);font-size:1.22rem}.text-muted{color:#8b98a1;font-size:.8rem}.status-dot{font-size:.72rem;color:var(--success);font-weight:800}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#27a678;margin-right:6px}.empty-state{min-height:300px;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;color:var(--muted-ink)}.empty-state h3{color:var(--ink);margin:15px 0 4px}.empty-state p{max-width:420px;margin:0;font-size:.9rem}.empty-illustration{position:relative;width:78px;height:66px;border:2px solid #bed0da;border-radius:9px;background:#f5f9fb}.empty-illustration:before{content:"";position:absolute;left:10px;right:10px;top:15px;border-top:2px solid #d5e2e8}.empty-illustration span{display:block;width:42px;border-top:3px solid #d5e2e8;margin:10px auto}.calendar-empty{display:flex;align-items:center;gap:16px;margin-top:22px;padding:16px;border-radius:12px;background:#f5f8fa}.calendar-empty p{margin:0;font-size:.86rem;color:var(--muted-ink)}.calendar-date{flex:0 0 52px;border:1px solid #cbd9e0;border-radius:8px;overflow:hidden;text-align:center;background:#fff}.calendar-date small,.calendar-date strong{display:block}.calendar-date small{background:var(--navy-800);color:#fff;font-size:.65rem;padding:3px}.calendar-date strong{font-size:1.28rem;padding:4px}.quick-actions h2{margin-bottom:15px}.quick-actions button{width:100%;display:flex;align-items:center;gap:10px;border:0;border-top:1px solid var(--border-soft);padding:13px 4px;background:transparent;color:#546773;text-align:left}.rules-strip{display:flex;flex-wrap:wrap;gap:1px;margin-top:24px;border:1px solid var(--border-soft);border-radius:12px;overflow:hidden;background:var(--border-soft)}.rules-strip span{flex:1 1 180px;background:#fff;padding:12px 16px}.rules-strip small,.rules-strip strong{display:block}.rules-strip small{font-size:.7rem;color:var(--muted-ink)}.rules-strip strong{font-size:.85rem;color:var(--navy-800)}
@media(max-width:960px){.auth-shell{gap:48px}.metrics-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.dashboard-sidebar{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.auth-page{background:var(--page-soft)}.auth-shell{grid-template-columns:1fr;align-content:center;gap:24px;padding:32px 0}.auth-brand{color:var(--navy-800)}.auth-brand .institution-lockup{margin-bottom:26px}.auth-brand>p:last-child{color:var(--muted-ink)}.topbar{min-height:68px}.account-copy{display:none}.institution-logo{height:38px}.brand-divider{height:34px}.dashboard-welcome{align-items:start;flex-direction:column}.dashboard-sidebar{grid-template-columns:1fr}}
@media(max-width:520px){.auth-card{padding:26px 22px}.metrics-grid{grid-template-columns:1fr}.page-content{padding-top:24px}.brand-home .faculty-fallback,.brand-home .brand-divider{display:none}.panel{padding:19px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Experiencia de acceso institucional V3 */
.auth-page{position:relative;isolation:isolate;overflow-x:hidden;background:var(--page-soft)}
.auth-page:before{content:"";position:fixed;z-index:-2;inset:0 31% 0 0;background-image:linear-gradient(105deg,rgba(0,43,69,.96),rgba(0,59,92,.84) 55%,rgba(0,59,92,.62)),url("../images/login-architecture.webp");background-size:cover;background-position:center;clip-path:polygon(0 0,100% 0,76% 100%,0 100%)}
.auth-page:after{content:"";position:fixed;z-index:-1;width:540px;height:540px;left:-170px;bottom:-270px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 64px rgba(0,181,226,.035),0 0 0 128px rgba(255,255,255,.025);pointer-events:none}
.auth-brand{animation:auth-copy-in .7s cubic-bezier(.2,.7,.2,1) both}.auth-brand .institution-lockup{animation:auth-copy-in .55s .05s cubic-bezier(.2,.7,.2,1) both}.auth-brand .eyebrow{animation:auth-copy-in .55s .12s cubic-bezier(.2,.7,.2,1) both}.auth-brand h1{animation:auth-copy-in .65s .18s cubic-bezier(.2,.7,.2,1) both}.auth-brand>p:last-child{animation:auth-copy-in .65s .25s cubic-bezier(.2,.7,.2,1) both}.auth-card{position:relative;overflow:hidden;animation:auth-card-in .65s .12s cubic-bezier(.2,.7,.2,1) both}.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--navy-800),var(--cyan-500))}.auth-card:after{content:"";position:absolute;width:150px;height:150px;right:-92px;top:-92px;border-radius:50%;background:rgba(0,181,226,.07);pointer-events:none}.auth-form .field-group{transition:opacity .18s,transform .18s}.auth-form.is-submitting .field-group{opacity:.68}.login-submit{position:relative;min-height:50px;overflow:hidden}.login-submit-arrow{transition:transform .2s,opacity .2s}.login-submit:hover:not(:disabled) .login-submit-arrow{transform:translateX(4px)}.login-submit-spinner{display:none;width:19px;height:19px;border:2px solid rgba(255,255,255,.42);border-top-color:#fff;border-radius:50%;animation:login-spin .7s linear infinite}.is-submitting .login-submit-arrow{display:none}.is-submitting .login-submit-spinner{display:inline-block}.is-submitting .login-submit{opacity:1;background:var(--navy-700);cursor:wait}.login-progress{min-height:1.25rem;margin:-7px 0 0;text-align:center;color:var(--muted-ink);font-size:.8rem}.auth-card .alert{animation:alert-in .28s ease-out both}
@keyframes auth-copy-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes auth-card-in{from{opacity:0;transform:translateX(28px) scale(.985)}to{opacity:1;transform:none}}@keyframes login-spin{to{transform:rotate(360deg)}}@keyframes alert-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:760px){.auth-page:before{position:absolute;inset:0 0 auto;height:430px;clip-path:polygon(0 0,100% 0,100% 74%,0 100%);background-position:center 42%}.auth-page:after{display:none}.auth-brand{color:#fff;min-height:330px}.auth-brand .eyebrow{color:#7bddf4}.auth-brand>p:last-child{color:#d1e4ed}.auth-shell{align-content:start}.auth-card{margin-top:-20px}}
@media(prefers-reduced-motion:reduce){.auth-brand,.auth-brand .institution-lockup,.auth-brand .eyebrow,.auth-brand h1,.auth-brand>p:last-child,.auth-card,.auth-card .alert{animation:none}.login-submit-spinner{animation-duration:1.2s}}

/* Entrada progresiva al tablero tras la autenticación */
.dashboard-welcome{animation:dashboard-rise .45s ease-out both}.metrics-grid .metric-card{animation:dashboard-rise .45s ease-out both}.metrics-grid .metric-card:nth-child(1){animation-delay:.06s}.metrics-grid .metric-card:nth-child(2){animation-delay:.11s}.metrics-grid .metric-card:nth-child(3){animation-delay:.16s}.metrics-grid .metric-card:nth-child(4){animation-delay:.21s}.dashboard-grid>.panel{animation:dashboard-rise .48s .2s ease-out both}.dashboard-sidebar .panel{animation:dashboard-rise .48s ease-out both}.dashboard-sidebar .panel:nth-child(1){animation-delay:.25s}.dashboard-sidebar .panel:nth-child(2){animation-delay:.3s}.rules-strip{animation:dashboard-rise .45s .34s ease-out both}@keyframes dashboard-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.dashboard-welcome,.metrics-grid .metric-card,.dashboard-grid>.panel,.dashboard-sidebar .panel,.rules-strip{animation:none}}

/* Variante monocromática del escudo sobre fondos institucionales oscuros. */
.auth-brand .institution-logo-buap,.brand-home .institution-logo-buap{width:54px;height:54px;filter:brightness(0) invert(1)}
@media(max-width:760px){.auth-brand .institution-logo-buap,.brand-home .institution-logo-buap{width:44px;height:44px}}

/* Jerarquía de identidad institucional. */
.auth-brand .institution-logo-buap{width:72px;height:72px}.auth-brand .institution-lockup{gap:22px}.auth-brand .brand-divider{height:58px}.auth-brand .faculty-fallback{font-size:.9rem;line-height:1.12}.auth-brand .faculty-fallback strong{font-size:1.18rem}.auth-brand h1{max-width:540px;font-size:clamp(2.15rem,3.6vw,3.2rem);line-height:1.06}
@media(max-width:760px){.auth-brand .institution-logo-buap{width:58px;height:58px}.auth-brand .brand-divider{height:48px}.auth-brand .faculty-fallback{font-size:.78rem}.auth-brand .faculty-fallback strong{font-size:1.02rem}.auth-brand h1{font-size:clamp(1.85rem,8vw,2.25rem);line-height:1.08}}

/* Validación propia, accesible y coherente con la identidad visual. */
[hidden]{display:none!important}.alert-rich{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border-radius:11px;margin-top:20px;text-align:left}.alert-rich .alert-icon{flex:0 0 26px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;font-weight:900;line-height:1}.alert-rich strong,.alert-rich p{display:block}.alert-rich strong{font-size:.9rem;line-height:1.3}.alert-rich p{margin:3px 0 0;font-size:.82rem;line-height:1.45}.alert-error{background:#fcedee;border:1px solid #e7b8bd;color:#7f1d25}.alert-error .alert-icon{background:#a5262f;color:#fff}.alert-validation{background:#fff6e5;border:1px solid #efd29c;color:#6f4a0e}.alert-validation .alert-icon{background:#a46b0c;color:#fff}.field-error{margin:0;color:#98242d;font-size:.79rem;font-weight:650;line-height:1.4}.field-error:before{content:"";display:inline-block;width:5px;height:5px;margin:0 7px 2px 1px;border-radius:50%;background:#b62d37}.field-group.has-error label{color:#7f1d25}.field-group.has-error input{border-color:#b62d37;background:#fffafb}.field-group.has-error input:focus{border-color:#a5262f;box-shadow:0 0 0 4px rgba(165,38,47,.13)}.field-group.has-error .password-toggle{color:#8c3037}.auth-form input,.login-submit{min-height:50px}.auth-card:has(.alert-rich:not([hidden])) .form-intro{margin-bottom:0}
@media(max-width:520px){.alert-rich{padding:12px}.alert-rich .alert-icon{flex-basis:24px;width:24px;height:24px}.alert-rich p{font-size:.8rem}.auth-form{gap:16px}.auth-support{margin-top:20px;padding-top:17px}}

/* Avisos de cierre de sesión claros y de una sola aparición. */
.alert-session-notice{position:relative;padding-right:48px;overflow:hidden;transition:opacity .22s,transform .22s,margin .22s,padding .22s,max-height .22s}.alert-session-security{background:#eaf6fa;border:1px solid #acd8e7;color:#174f68}.alert-session-security .alert-icon{background:var(--navy-800);color:#fff}.alert-session-success{background:#e9f6f0;border:1px solid #b7decc;color:#155f45}.alert-session-success .alert-icon{background:#19704f;color:#fff}.alert-icon-svg svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.alert-session-notice.has-auto-dismiss:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:currentColor;opacity:.24;transform-origin:left;animation:session-alert-countdown 7s linear forwards}.alert-session-success.has-auto-dismiss:after{animation-duration:4.5s}.alert-session-notice.has-auto-dismiss:hover:after,.alert-session-notice.has-auto-dismiss:focus-within:after{animation-play-state:paused}.alert-session-notice.is-dismissing{opacity:0;transform:translateY(-7px);margin-top:0;padding-top:0;padding-bottom:0;max-height:0;border-width:0}@keyframes session-alert-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:360px){.auth-shell{width:min(100% - 20px,1040px)}.auth-card{padding:24px 18px}.auth-brand{padding-inline:4px;min-height:315px}.auth-brand .institution-lockup{gap:13px}.auth-brand .institution-logo-buap{width:52px;height:52px}.auth-brand .brand-divider{height:43px}.auth-brand .faculty-fallback strong{font-size:.94rem}.auth-brand h1{font-size:1.78rem}.auth-brand>p:last-child{font-size:.96rem}.auth-card h2{font-size:1.7rem}.form-intro{font-size:.94rem}}
@supports(height:100svh){.auth-shell{min-height:100svh}}

/* Superficie táctil mínima para mostrar u ocultar la contraseña. */
.password-toggle{right:3px;width:44px;height:44px}.password-field input{padding-right:52px}

/* Mensajes funcionales consistentes y una entrada visual serena. */
.alert-validation{background:#fcedee;border-color:#e7b8bd;color:#7f1d25}
.alert-validation .alert-icon{background:#a5262f;color:#fff}
.auth-card .alert{animation:alert-soft-in .4s cubic-bezier(.2,.7,.2,1) both}
@keyframes alert-soft-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.auth-card .alert{animation:none}}

/* Módulos operativos y administrativos */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button-link{text-decoration:none}.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid #b8c9d2;border-radius:9px;background:#fff;color:var(--navy-800);font:inherit;font-weight:800;cursor:pointer}.button-secondary:hover{background:#f1f6f8}.text-button,.back-link{border:0;background:transparent;color:#007da5;font:inherit;font-weight:750;text-decoration:none;cursor:pointer}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:26px}.page-heading h1{margin:.25rem 0 .35rem;color:var(--navy-800);font-size:clamp(1.9rem,3.5vw,2.65rem);line-height:1.1;letter-spacing:-.035em}.page-heading p:last-child,.section-intro{margin:0;color:var(--muted-ink)}.compact-heading{align-items:center}.back-link{display:inline-block;margin-bottom:20px}.draft-indicator,.mock-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:#edf4f7;color:#536975;font-size:.76rem;font-weight:800}.mock-badge:before,.draft-indicator:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cyan-500)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;margin-bottom:18px}.search-control{flex:1;max-width:390px}.search-control input,.form-grid input,.form-grid select,.form-grid textarea,.block-label textarea,.agenda-filters select,.setting-card input{width:100%;border:1px solid #bdcbd3;border-radius:9px;background:#fff;padding:11px 13px;color:var(--ink);font:inherit}.search-control input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.block-label textarea:focus,.agenda-filters select:focus,.setting-card input:focus{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(0,181,226,.14)}.filter-group{display:flex;gap:7px;overflow:auto}.filter-chip{white-space:nowrap;border:1px solid #d2dde2;border-radius:999px;background:#fff;color:#526671;padding:8px 11px;font:inherit;font-size:.78rem;font-weight:750;cursor:pointer}.filter-chip span{display:inline-grid;place-items:center;min-width:21px;height:21px;margin-left:4px;border-radius:999px;background:#edf3f6}.filter-chip.is-selected{border-color:var(--navy-800);background:var(--navy-800);color:#fff}.data-panel{padding:0;overflow:hidden}.data-panel>.panel-heading{padding:22px 24px}.responsive-table{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:12px 15px;background:#f5f8fa;color:#657984;text-align:left;font-size:.7rem;letter-spacing:.045em;text-transform:uppercase}.data-table td{padding:15px;border-top:1px solid var(--border-soft);vertical-align:middle;font-size:.86rem}.data-table td strong,.data-table td small{display:block}.data-table td strong{color:#243640}.data-table td small{margin-top:3px;color:#7b8b94}.status-pill{display:inline-flex;align-items:center;white-space:nowrap;padding:5px 9px;border-radius:999px;font-size:.7rem;font-weight:850}.status-amber{background:#fff1d8;color:#86570a}.status-blue{background:#dff4fb;color:#006f91}.status-violet{background:#eee8f8;color:#67438d}.status-green{background:#e2f3eb;color:#146a4a}.status-red{background:#fcedee;color:#90232c}.status-navy{background:#e5eef3;color:var(--navy-800)}.progress-track{display:inline-block;width:74px;height:6px;margin-right:7px;border-radius:999px;background:#e4ebef;overflow:hidden;vertical-align:middle}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--navy-800),var(--cyan-500))}.icon-button{min-width:36px;height:36px;border:1px solid #d4dfe4;border-radius:8px;background:#fff;color:var(--navy-800);font:inherit;font-weight:900;cursor:pointer}.icon-button:hover{background:#edf5f8}.filter-empty{text-align:center;padding:40px}.filter-empty h3{margin:0;color:var(--navy-800)}.filter-empty p{margin:5px 0;color:var(--muted-ink)}
.wizard-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start}.wizard-steps{padding:12px;position:sticky;top:20px}.wizard-step{width:100%;display:flex;gap:12px;align-items:center;padding:13px;border:0;border-radius:10px;background:transparent;color:#5e717c;text-align:left;font:inherit;cursor:pointer}.wizard-step>span:first-child{flex:0 0 31px;height:31px;display:grid;place-items:center;border:1px solid #cad7dd;border-radius:50%;font-size:.78rem;font-weight:900}.wizard-step strong,.wizard-step small{display:block}.wizard-step strong{font-size:.86rem}.wizard-step small{font-size:.71rem;color:#83919a}.wizard-step.is-active{background:#e8f4f8;color:var(--navy-800)}.wizard-step.is-active>span:first-child{border-color:var(--navy-800);background:var(--navy-800);color:#fff}.wizard-step.is-complete>span:first-child{border-color:#19704f;background:#19704f;color:#fff}.wizard-card{padding:30px}.wizard-card h2,.agenda-filters h2,.section-heading-row h2{margin:.25rem 0;color:var(--navy-800)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:25px}.form-grid label,.block-label,.agenda-filters label,.setting-card{display:grid;gap:7px;color:#30434e;font-size:.84rem;font-weight:750}.field-wide{grid-column:1/-1}.availability-note,.info-callout,.sync-card{display:flex;gap:12px;align-items:flex-start;border-radius:11px;padding:14px}.availability-note{grid-column:1/-1;background:#e8f4f8;color:var(--navy-800)}.availability-note>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#19704f;color:#fff;font-weight:900}.availability-note p,.info-callout p,.sync-card p{margin:3px 0 0;font-size:.8rem}.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 0}.check-card{display:flex;align-items:center;gap:11px;padding:15px;border:1px solid #d4dfe4;border-radius:10px;color:#344853;font-weight:700;cursor:pointer}.check-card:has(input:checked){border-color:#00a4cf;background:#effafd}.check-card input,.check-row input{accent-color:var(--navy-800);width:18px;height:18px}.block-label{margin-top:20px}.info-callout{margin-top:22px;background:#eef5f8;border-left:4px solid var(--cyan-500);color:#29424f}.review-placeholder{min-height:290px;display:grid;place-items:center;align-content:center;text-align:center;border:1px dashed #bfcfd7;border-radius:12px;background:#f8fafb;padding:35px}.review-placeholder>span{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#e0f3ea;color:#19704f;font-size:1.4rem;font-weight:900}.review-placeholder h3{margin:14px 0 3px}.review-placeholder p{max-width:480px;margin:0;color:var(--muted-ink)}.wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px;padding-top:20px;border-top:1px solid var(--border-soft)}.wizard-actions>span{color:#71818b;font-size:.78rem;font-weight:750}
.agenda-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px;align-items:start}.agenda-filters{display:grid;gap:18px}.agenda-filters fieldset{display:grid;gap:10px;padding:15px;border:1px solid var(--border-soft);border-radius:10px}.agenda-filters legend{padding:0 6px;color:#324650;font-weight:800;font-size:.82rem}.check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;font-size:.78rem!important}.venue-dot{width:9px;height:9px;border-radius:50%;background:var(--venue-color)}.sync-card{background:#f1f5f7}.sync-card>span{font-size:1.3rem;color:var(--navy-800)}.agenda-panel{padding:26px}.timeline{margin-top:20px}.timeline-event{display:grid;grid-template-columns:54px 5px minmax(0,1fr) 38px;gap:17px;align-items:center;padding:19px 0;border-top:1px solid var(--border-soft)}.timeline-event time{border:1px solid #cbd9e0;border-radius:9px;overflow:hidden;text-align:center;background:#fff}.timeline-event time small,.timeline-event time strong{display:block}.timeline-event time small{padding:3px;background:var(--navy-800);color:#fff;font-size:.62rem}.timeline-event time strong{padding:5px;font-size:1.3rem}.timeline-line{align-self:stretch;border-radius:999px;background:var(--event-color)}.timeline-event h3{margin:3px 0;color:#243640;font-size:1rem}.timeline-event p,.event-weekday{margin:0;color:#72838d;font-size:.78rem}
.agenda-heading{align-items:center}.agenda-view-switch{display:inline-flex;padding:3px;border:1px solid #cad8df;border-radius:10px;background:#f2f6f8}.agenda-view-switch button{min-height:34px;padding:6px 12px;border:0;border-radius:7px;background:transparent;color:#5f737e;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.agenda-view-switch button.is-active{background:var(--navy-800);color:#fff;box-shadow:0 3px 8px rgba(0,43,69,.15)}.week-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 13px}.week-calendar-toolbar>strong{color:var(--navy-800);font-size:.9rem}.week-calendar-navigation{display:flex;align-items:center;gap:7px}.week-calendar-navigation .button-secondary{min-height:36px;padding:7px 12px;font-size:.76rem}.week-calendar-scroll{overflow:auto;border:1px solid #ccd9df;border-radius:12px;background:#fff}.week-calendar-scroll:focus{outline:3px solid rgba(0,181,226,.18);outline-offset:2px}.week-calendar-grid{min-width:920px;display:grid;grid-template-columns:150px repeat(7,minmax(105px,1fr))}.week-calendar-corner,.week-calendar-day-heading,.week-calendar-venue,.week-calendar-cell{border-right:1px solid #dce5e9;border-bottom:1px solid #dce5e9}.week-calendar-corner,.week-calendar-day-heading{position:sticky;top:0;z-index:2;background:#f4f7f9}.week-calendar-corner{left:0;z-index:3;display:flex;align-items:center;padding:11px 13px;color:#5e727d;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.week-calendar-day-heading{display:grid;grid-template-columns:1fr auto;align-items:center;padding:8px 10px;color:#60737e}.week-calendar-day-heading span{font-size:.68rem;font-weight:850;text-transform:uppercase}.week-calendar-day-heading strong{color:var(--navy-800);font-size:1.05rem}.week-calendar-day-heading small{grid-column:1/-1;font-size:.62rem;text-transform:uppercase}.week-calendar-day-heading.is-today{background:#e6f6fb}.week-calendar-venue{position:sticky;left:0;z-index:1;min-height:98px;display:flex;align-items:center;gap:8px;padding:12px;background:#f9fbfc}.week-calendar-venue strong{font-size:.78rem;line-height:1.25;color:#304650}.week-calendar-cell{min-height:98px;padding:6px;background:#fff}.week-calendar-cell.is-today{background:#f3fbfd}.week-calendar-event{display:block;margin-bottom:5px;padding:7px 8px;border-left:4px solid var(--event-color);border-radius:7px;background:#edf5f8;color:#263e4a;text-decoration:none;box-shadow:0 1px 2px rgba(0,43,69,.06)}.week-calendar-event:hover{background:#e2f1f6;box-shadow:0 4px 10px rgba(0,43,69,.1)}.week-calendar-event time,.week-calendar-event span{display:block}.week-calendar-event time{color:#006f92;font-size:.62rem;font-weight:850}.week-calendar-event span{margin-top:2px;font-size:.69rem;font-weight:780;line-height:1.25}.calendar-help{margin:10px 0 0;color:#7a8b94;font-size:.7rem}.sync-card.sync-enabled{background:#e5f4ed}.sync-card.sync-enabled>span{color:#14704e}.sync-card.sync-ready{background:#e8f6fa}.sync-card.sync-ready>span{color:#007da5}.sync-card.sync-pending{background:#fff4df}.sync-card.sync-pending>span{color:#8a5a08}
.availability-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.availability-summary article{display:flex;align-items:center;gap:12px;padding:14px 17px;border:1px solid var(--border-soft);border-radius:12px;background:#fff}.summary-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;font-weight:900}.summary-icon.success{background:#e2f3eb;color:#19704f}.summary-icon.warning{background:#fff1d8;color:#9a6511}.summary-icon.info{background:#dff4fb;color:#007da5}.availability-summary strong,.availability-summary small{display:block}.availability-summary strong{font-size:1.3rem}.availability-summary small{color:#71818b}.venue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.venue-card header,.venue-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.venue-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--venue-color) 13%,white);color:var(--venue-color);font-size:1.25rem;font-weight:900}.venue-code{margin:18px 0 2px;color:#70828c;font-size:.72rem;font-weight:750}.venue-card h2{margin:0;color:var(--navy-800);font-size:1.15rem}.venue-card dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.venue-card dl div{padding:12px;border-radius:9px;background:#f4f7f9}.venue-card dt{color:#73848e;font-size:.68rem}.venue-card dd{margin:3px 0 0;color:#2f424d;font-size:.82rem;font-weight:800}.venue-card footer{padding-top:15px;border-top:1px solid var(--border-soft)}
.admin-tabs{display:flex;gap:5px;margin-bottom:18px;overflow:auto;border-bottom:1px solid #cfdbe1}.admin-tabs button{white-space:nowrap;padding:12px 15px;border:0;border-bottom:3px solid transparent;background:transparent;color:#657883;font:inherit;font-size:.83rem;font-weight:800;cursor:pointer}.admin-tabs button.is-active{border-color:var(--cyan-500);color:var(--navy-800)}.admin-tab{min-height:410px}.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.section-heading-row p:last-child{margin:.25rem 0 0;color:var(--muted-ink)}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.setting-card{padding:16px;border:1px solid var(--border-soft);border-radius:11px;background:#fbfcfd}.setting-card small{color:#7c8c95;font-weight:500}.mock-notice{display:flex;gap:10px;align-items:center;margin-top:18px;padding:13px;border-radius:9px;background:#fff5df;color:#755010;font-size:.79rem}.approval-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:13px;align-items:center}.approval-flow article{min-height:190px;padding:20px;border:1px solid var(--border-soft);border-radius:12px;background:#fbfcfd}.approval-flow article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy-800);color:#fff;font-weight:900}.approval-flow small,.approval-flow strong{display:block}.approval-flow small{margin-top:15px;color:#007da5;font-weight:800}.approval-flow strong{margin-top:2px;color:#263a45}.approval-flow p{color:#71828c;font-size:.8rem}.approval-flow>i{color:#7ba5b8;font-style:normal;font-size:1.3rem}.holiday-list,.admin-venue-list{display:grid;gap:10px}.holiday-list article,.admin-venue-list article{display:flex;align-items:center;gap:14px;padding:13px;border:1px solid var(--border-soft);border-radius:10px}.holiday-list article>div,.admin-venue-list article>div{flex:1}.holiday-list strong,.holiday-list p,.admin-venue-list strong,.admin-venue-list small{display:block;margin:0}.holiday-list p,.admin-venue-list small{color:#75868f;font-size:.78rem}.dashboard-request-list{margin-top:14px}.dashboard-request-list article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--border-soft)}.dashboard-request-list strong,.dashboard-request-list small{display:block}.dashboard-request-list strong{font-size:.85rem}.dashboard-request-list small{color:#7c8c95;font-size:.72rem}.request-initial{width:39px;height:39px;display:grid;place-items:center;border-radius:10px;background:#e6f2f6;color:var(--navy-800);font-weight:900}.quick-actions a{width:100%;display:flex;align-items:center;gap:10px;border-top:1px solid var(--border-soft);padding:13px 4px;color:#546773;text-decoration:none;font-size:.86rem}.quick-actions a:hover{color:var(--navy-800)}
@media(max-width:900px){.wizard-layout,.agenda-layout{grid-template-columns:1fr}.wizard-steps{position:static;display:flex;overflow:auto}.wizard-step{min-width:180px}.approval-flow{grid-template-columns:1fr}.approval-flow>i{transform:rotate(90deg);justify-self:center}.venue-grid{grid-template-columns:1fr}}
@media(max-width:700px){.page-heading,.section-heading-row{align-items:flex-start;flex-direction:column}.page-heading .button-primary,.page-heading .button-secondary{width:100%}.toolbar{align-items:stretch;flex-direction:column}.search-control{max-width:none}.availability-summary{grid-template-columns:1fr}.form-grid,.settings-grid,.option-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.responsive-table{overflow:visible}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{padding:14px;border-top:1px solid var(--border-soft)}.data-table td{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:6px 0;border:0}.data-table td:before{content:attr(data-label);color:#71838d;font-size:.7rem;font-weight:800;text-transform:uppercase}.data-table td:not([data-label]){display:flex;justify-content:flex-end}.data-panel>.panel-heading{align-items:flex-start}.dashboard-request-list article{grid-template-columns:40px minmax(0,1fr)}.dashboard-request-list .status-pill{grid-column:2}.holiday-list article,.admin-venue-list article{align-items:flex-start;flex-wrap:wrap}.admin-venue-list article>div{min-width:55%}}
@media(max-width:420px){.page-content{width:min(100% - 20px,1120px)}.panel,.wizard-card,.agenda-panel{padding:19px}.wizard-layout{gap:14px}.wizard-steps{padding:8px}.wizard-step{min-width:160px;padding:10px}.timeline-event{grid-template-columns:48px 4px minmax(0,1fr)}.timeline-event .icon-button{display:none}.venue-card dl{grid-template-columns:1fr}.wizard-actions{flex-wrap:wrap}.wizard-actions>span{order:-1;width:100%;text-align:center}.filter-group{padding-bottom:4px}}

/* Mensajes funcionales de los módulos internos. */
.module-alert{position:relative;display:flex;align-items:flex-start;gap:10px;margin:0 0 18px;padding:13px 48px 13px 15px;border:1px solid;border-radius:11px;font-size:.86rem;line-height:1.45;overflow:hidden;transition:opacity .22s,transform .22s,margin .22s,padding .22s}
.module-alert strong{flex:0 0 auto}.module-alert span{min-width:0}
.module-alert.alert-success{background:#e8f5ef;border-color:#b8dece;color:#155f45}
.module-alert.alert-error{background:#fcedee;border-color:#e7b8bd;color:#7f1d25}
.module-alert-dismiss{position:absolute;right:9px;top:8px;width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:currentColor;font:inherit;font-size:1.2rem;line-height:1;cursor:pointer}.module-alert-dismiss:hover{background:rgba(0,43,69,.08)}.module-alert-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:1px}.module-alert.has-auto-dismiss:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:currentColor;opacity:.28;transform-origin:left;animation:module-alert-countdown 5.5s linear forwards}.module-alert.has-auto-dismiss:hover:after,.module-alert.has-auto-dismiss:focus-within:after{animation-play-state:paused}.module-alert.is-dismissing{opacity:0;transform:translateY(-7px);margin-bottom:0;padding-top:0;padding-bottom:0;max-height:0;border-width:0}@keyframes module-alert-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:520px){.module-alert{display:grid;gap:3px}}

/* Expediente y flujo real de revisiones. */
.review-observation{grid-column:1/-1;margin-top:8px;padding:12px 14px;border:1px solid #efc8cc;border-left:4px solid #a92938;border-radius:9px;background:#fff6f7;color:#4c252a}.review-observation>strong{display:block;margin-bottom:5px;color:#8f2130;font-size:.78rem}.review-observation>p{margin:0!important;color:#4c252a!important;font-size:.8rem!important;line-height:1.55}
.request-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:22px;align-items:start}.request-detail-main,.request-detail-side{display:grid;gap:22px}.detail-card{padding:27px}.progress-copy{color:#667b87;font-size:.77rem;font-weight:800}.detail-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:23px 0}.detail-list div{padding:13px;border-radius:10px;background:#f4f7f9}.detail-list dt{color:#748690;font-size:.7rem}.detail-list dd{margin:4px 0 0;color:#283d48;font-size:.86rem;font-weight:800}.detail-copy{padding-top:18px;border-top:1px solid var(--border-soft)}.detail-copy h3{margin:0 0 6px;color:var(--navy-800);font-size:.9rem}.detail-copy p{margin:0 0 17px;color:#5f727d;font-size:.88rem;line-height:1.65}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.tag-list span{padding:7px 10px;border-radius:999px;background:#e8f4f8;color:var(--navy-800);font-size:.75rem;font-weight:800}.tag-list small{color:var(--muted-ink)}.submit-card{background:linear-gradient(145deg,#fff,#f0f8fb)}.submit-card p:last-of-type{color:var(--muted-ink);font-size:.84rem;line-height:1.55}.submit-card form,.submit-card button{width:100%}.review-stage-list,.history-list{display:grid;margin-top:17px}.review-stage-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:14px 0;border-top:1px solid var(--border-soft)}.review-stage-list article>span{font-size:.83rem;font-weight:800;color:#304651}.review-stage-list article>small,.review-stage-list article>p{grid-column:1/-1;color:#788994;font-size:.74rem}.review-stage-list article>p{margin:4px 0 0}.history-list article{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;padding:10px 0}.history-list article>span{width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--cyan-500);box-shadow:0 0 0 4px #e5f6fa}.history-list strong,.history-list small{display:block}.history-list strong{color:#344a55;font-size:.8rem}.history-list small{margin-top:3px;color:#82909a;font-size:.7rem}
.draft-submit-reminder{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;padding:18px 20px;border:1px solid #d9949b;border-left:6px solid #a5262f;border-radius:13px;background:#fff2f3;color:#59262c;box-shadow:0 10px 24px rgba(127,29,37,.08)}.draft-submit-reminder-copy{display:flex;align-items:flex-start;gap:13px;min-width:0}.draft-submit-reminder-icon{flex:0 0 31px;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#a5262f;color:#fff;font-size:1rem;font-weight:950}.draft-submit-reminder-copy>div>strong{display:block;color:#851f29}.draft-submit-reminder-copy p{max-width:830px;margin:5px 0 0;font-size:.84rem;line-height:1.55}.draft-submit-reminder-copy p strong{display:inline;color:inherit}.draft-submit-reminder-actions{display:grid;grid-template-columns:max-content max-content;align-items:stretch;gap:9px;flex:0 0 auto}.draft-submit-reminder-actions.is-single-action{grid-template-columns:max-content}.draft-submit-reminder-actions form{margin:0}.draft-submit-reminder-actions .button-primary,.draft-submit-reminder-actions .button-secondary{height:100%;min-height:42px;margin:0;white-space:nowrap}.draft-reservation-note{display:block;max-width:170px;margin-top:6px;color:#98242d;font-size:.7rem;font-weight:800;line-height:1.35}
#documentos-adicionales{scroll-margin-top:24px}.floating-back-to-top{--scroll-progress:0;position:fixed;right:clamp(14px,2vw,28px);bottom:calc(18px + env(safe-area-inset-bottom));z-index:80;width:50px;height:50px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:rgba(0,43,69,.94);color:#fff;cursor:pointer;box-shadow:0 9px 24px rgba(0,43,69,.28);opacity:0;visibility:hidden;transform:translateY(16px) scale(.88);pointer-events:none;transition:opacity .34s ease,transform .38s cubic-bezier(.22,.61,.36,1),visibility .34s,background-color .2s ease}.floating-back-to-top svg{width:46px;height:46px;overflow:visible}.back-to-top-track,.back-to-top-progress{fill:none;stroke-width:3}.back-to-top-track{stroke:rgba(255,255,255,.24)}.back-to-top-progress{stroke:var(--cyan-500);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--scroll-progress));transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .22s cubic-bezier(.22,.61,.36,1)}.back-to-top-arrow{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s ease;transform-origin:50% 50%}.floating-back-to-top.is-visible{visibility:visible;pointer-events:auto}.floating-back-to-top.is-visible.is-ready{opacity:1;transform:none}.floating-back-to-top:hover{background:#006a8d;transform:translateY(-2px)}.floating-back-to-top:hover .back-to-top-arrow{transform:translateY(-2px)}.floating-back-to-top:focus-visible{outline:3px solid rgba(0,181,226,.45);outline-offset:3px}
.review-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.review-work-card header{display:flex;justify-content:space-between;gap:18px}.review-work-card h2{margin:12px 0 3px}.review-work-card header p{margin:0;color:var(--muted-ink);font-size:.78rem}.icon-button.button-link{display:inline-grid;place-items:center;padding:0}.review-work-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.review-work-card dl div{padding:11px;border-radius:9px;background:#f4f7f9}.review-work-card dt{font-size:.68rem;color:#73858f}.review-work-card dd{margin:3px 0 0;font-size:.81rem;font-weight:800}.review-resolution-form{display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--border-soft)}.review-resolution-form label{display:grid;gap:6px;color:#344955;font-size:.78rem;font-weight:800}.review-resolution-form select,.review-resolution-form textarea{width:100%;padding:10px 11px;border:1px solid #bdcbd3;border-radius:9px;font:inherit}.review-resolution-form .button-primary,.review-work-card>form>.button-primary{width:100%}.assigned-notice{padding:12px;border-radius:9px;background:#f3f6f8;color:#627580;font-size:.8rem}
.dashboard-request-list>a{display:block;color:inherit;text-decoration:none}.dashboard-request-list>a:hover article{background:#f7fafb}.calendar-empty.button-link{color:inherit;text-decoration:none}
@media(max-width:920px){.request-detail-grid{grid-template-columns:1fr}.request-detail-side{grid-template-columns:repeat(2,minmax(0,1fr))}.submit-card{grid-column:1/-1}.review-queue{grid-template-columns:1fr}}
@media(max-width:680px){.detail-list{grid-template-columns:1fr 1fr}.request-detail-side{grid-template-columns:1fr}.submit-card{grid-column:auto}}
@media(max-width:820px){.draft-submit-reminder{align-items:stretch;flex-direction:column}.draft-submit-reminder-actions{grid-template-columns:1fr 1fr}.draft-submit-reminder-actions.is-single-action{grid-template-columns:1fr}.draft-submit-reminder-actions>*{width:100%}}
@media(max-width:920px){.floating-back-to-top.is-visible.is-ready.is-at-top{opacity:.68;transform:scale(.94)}}
@media(max-width:520px){.draft-submit-reminder{gap:15px;padding:15px 14px;border-left-width:5px}.draft-submit-reminder-copy{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px}.draft-submit-reminder-icon{width:28px;height:28px;font-size:.9rem}.draft-submit-reminder-copy>div>strong{font-size:.95rem;line-height:1.35}.draft-submit-reminder-copy p{margin-top:7px;font-size:.82rem;line-height:1.6}.draft-submit-reminder-copy p>b:first-child{display:block;margin-bottom:4px;color:#7f1d25;font-size:.87rem}.draft-submit-reminder-actions{grid-template-columns:1fr;gap:8px}.draft-submit-reminder-actions form,.draft-submit-reminder-actions .button-primary,.draft-submit-reminder-actions .button-secondary{width:100%}.draft-submit-reminder-actions .button-primary,.draft-submit-reminder-actions .button-secondary{display:flex;align-items:center;justify-content:center;min-height:46px}}
@media(max-width:520px){.floating-back-to-top{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:46px;height:46px}.floating-back-to-top svg{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.floating-back-to-top,.back-to-top-progress,.back-to-top-arrow{transition:none}}
@media(max-width:440px){.detail-list,.review-work-card dl{grid-template-columns:1fr}.detail-card{padding:19px}}
.admin-create-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:24px;padding:18px;border:1px solid var(--border-soft);border-radius:12px;background:#f8fafb}.admin-create-grid label,.document-upload-form label{display:grid;gap:6px;color:#344955;font-size:.78rem;font-weight:800}.admin-create-grid input,.admin-create-grid select,.document-upload-form input,.document-upload-form select{width:100%;padding:10px 11px;border:1px solid #bdcbd3;border-radius:9px;background:#fff;font:inherit}.admin-create-grid .button-primary{align-self:end;margin:0}.holiday-list form,.admin-venue-list form{margin-left:auto}.holiday-list .button-secondary,.admin-venue-list .button-secondary,.data-table form .button-secondary{min-height:36px;padding:7px 10px;font-size:.75rem}.document-upload-form{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:12px;align-items:end;margin:18px 0;padding:15px;border-radius:11px;background:#f5f8fa}.document-upload-form .button-primary{margin:0}.document-list{display:grid}.document-list>a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 2px;border-top:1px solid var(--border-soft);color:#324955;text-decoration:none}.document-list strong,.document-list small{display:block}.document-list small{margin-top:3px;color:#7b8c95;font-size:.72rem}.document-list>a>span{color:#007da5;font-size:.76rem;font-weight:800}.submit-card>.button-secondary{width:100%;margin-top:10px}
.table-note{display:block;margin-top:4px;color:#748791;font-size:.7rem}.admin-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:8px;flex-wrap:wrap}.admin-actions>form{margin:0}
@media(max-width:700px){.admin-actions{justify-content:flex-start}.data-table td[data-label="Acciones"]{display:block}.data-table td[data-label="Acciones"]:before{display:block;margin-bottom:8px}.admin-create-grid{grid-template-columns:1fr}.admin-venue-list .admin-actions{width:100%}}
.notification-list{padding:0;overflow:hidden}.notification-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start;padding:18px 20px;border-top:1px solid var(--border-soft)}.notification-item:first-child{border-top:0}.notification-item.is-unread{background:#f0f9fc}.notification-dot{width:9px;height:9px;margin-top:7px;border-radius:50%;background:#b9c7ce}.notification-item.is-unread .notification-dot{background:var(--cyan-500);box-shadow:0 0 0 4px rgba(0,181,226,.13)}.notification-item strong{color:var(--navy-800)}.notification-item p{margin:3px 0;color:#4f626d}.notification-item small{color:#7b8c95}.notification-actions{display:flex;align-items:center;gap:10px}.notification-actions form{margin:0}@media(max-width:620px){.notification-item{grid-template-columns:auto minmax(0,1fr)}.notification-actions{grid-column:2;flex-wrap:wrap}}
@media(max-width:700px){.agenda-heading,.week-calendar-toolbar{align-items:stretch;flex-direction:column}.agenda-view-switch{width:100%}.agenda-view-switch button{flex:1}.week-calendar-toolbar>strong{order:-1}.week-calendar-navigation{justify-content:space-between}.week-calendar-navigation .button-secondary{flex:1}.calendar-help{font-size:.74rem}.week-calendar-grid{min-width:840px;grid-template-columns:130px repeat(7,minmax(100px,1fr))}}
@media(max-width:800px){.admin-create-grid{grid-template-columns:1fr 1fr}.document-upload-form{grid-template-columns:1fr}}
@media(max-width:520px){.admin-create-grid{grid-template-columns:1fr}}

/* Claridad de filtros, avance proporcional y validaciones del asistente. */
.filter-chip span{color:#405762}.filter-chip.is-selected span{background:#fff;color:var(--navy-800)}
.filter-chip{display:inline-flex;align-items:center;text-decoration:none}
.request-date{width:39px;height:43px;display:grid;place-items:center;align-content:center;border-radius:9px;background:#e6f2f6;color:var(--navy-800);line-height:1}.request-date small{font-size:.55rem;font-weight:900;letter-spacing:.05em}.request-date strong{margin-top:3px;font-size:1rem}
progress.progress-track{appearance:none;-webkit-appearance:none;border:0;background:#e4ebef}
progress.progress-track::-webkit-progress-bar{border-radius:999px;background:#e4ebef}
progress.progress-track::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,var(--navy-800),var(--cyan-500))}
progress.progress-track::-moz-progress-bar{border-radius:999px;background:linear-gradient(90deg,var(--navy-800),var(--cyan-500))}
.availability-note.is-invalid{border:1px solid #e2b7bc;background:#fcedee;color:#842630}.availability-note.is-invalid>span{background:#a22d37}
.wizard-inline-warning{display:flex;align-items:flex-start;gap:9px;margin:0 0 18px;padding:13px 15px;border:1px solid #e2b7bc;border-radius:11px;background:#fcedee;color:#842630;font-size:.83rem;line-height:1.45}.wizard-inline-warning[hidden]{display:none}.wizard-inline-warning strong{flex:0 0 auto}
.policy-confirmation:has(input[aria-invalid="true"]){border-color:#cf5b65;background:#fff2f3;box-shadow:0 0 0 3px rgba(162,45,55,.09)}
.local-draft-notice{border-color:#b7d7e3;background:#edf8fb;color:var(--navy-800)}.local-draft-notice a{color:#006f91;font-weight:850}
.local-draft-choice{align-items:center;justify-content:space-between;gap:20px;border-color:#a9d2e1;background:#edf8fb;color:var(--navy-800)}.local-draft-choice>div:first-child{min-width:0}.local-draft-choice strong,.local-draft-choice span{display:block}.local-draft-choice span{margin-top:3px;color:#456774;font-size:.82rem}.local-draft-actions{display:flex;flex:0 0 auto;gap:9px}.local-draft-actions .button-primary{min-height:44px;margin:0}.wizard-layout.is-awaiting-draft-choice{opacity:.58;filter:saturate(.7);transition:opacity .18s,filter .18s}
@media(max-width:760px){.local-draft-choice{align-items:stretch;flex-direction:column}.local-draft-actions{display:grid;grid-template-columns:1fr}.local-draft-actions .button-primary,.local-draft-actions .button-secondary{width:100%}}

/* Entrada consistente para todos los módulos internos. */
.module-shell>*>*{backface-visibility:hidden}.module-shell>*{animation:module-section-in .5s cubic-bezier(.2,.7,.2,1) both}.module-shell>*:nth-child(2){animation-delay:.05s}.module-shell>*:nth-child(3){animation-delay:.1s}.module-shell>*:nth-child(4){animation-delay:.15s}.admin-tab.is-tab-entering{animation:module-tab-in .32s cubic-bezier(.2,.7,.2,1) both}
@keyframes module-section-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes module-tab-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

/* Administración compacta y paneles fuera de tablas o contenedores. */
.admin-tab{min-height:0}.admin-flow-panel .section-heading-row{max-width:780px;margin-bottom:18px}.admin-flow-panel .approval-flow article{min-height:145px}.admin-users-table{border:1px solid var(--border-soft);border-radius:12px}.admin-users-table .admin-actions{flex-wrap:nowrap}.admin-users-table .button-secondary{min-height:38px;padding:8px 11px;font-size:.74rem}.holiday-range-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;margin-bottom:10px}.form-help{margin:0 0 20px;color:var(--muted-ink);font-size:.76rem}
.admin-user-toolbar{margin:-4px 0 18px;border:1px solid var(--border-soft);border-radius:12px;background:#f8fafb;overflow:hidden}.admin-user-toolbar .search-control{flex:0 0 clamp(320px,31vw,440px);max-width:none;min-width:320px}.admin-user-toolbar .filter-group{flex:1;min-width:0;max-width:100%;padding-bottom:5px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.admin-user-toolbar .filter-chip{flex:0 0 auto}.section-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.section-heading-actions form{margin:0}.credential-download-note{margin:-5px 0 18px;padding:12px 14px;border-left:4px solid #9a670b;border-radius:9px;background:#fff6e4;color:#65470f;font-size:.78rem;line-height:1.5}.credential-download-note strong{display:block;margin-bottom:2px;color:#563b08}
.admin-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100vh - 48px);padding:0;border:0;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 28px 90px rgba(0,32,51,.28);overflow:auto}.admin-dialog-compact{width:min(520px,calc(100% - 32px))}.admin-dialog::backdrop{background:rgba(0,32,51,.62);backdrop-filter:blur(3px)}.admin-dialog[open]{animation:dialog-in .28s cubic-bezier(.2,.7,.2,1) both}.admin-dialog-form{padding:27px}.admin-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:19px;border-bottom:1px solid var(--border-soft)}.admin-dialog-heading h2{margin:.22rem 0;color:var(--navy-800);font-size:1.42rem}.admin-dialog-heading p:last-child{max-width:510px;margin:0;color:var(--muted-ink);font-size:.84rem}.dialog-close{flex:0 0 40px;width:40px;height:40px;border:1px solid #cad7dd;border-radius:50%;background:#f7fafb;color:var(--navy-800);font:inherit;font-size:1.45rem;line-height:1;cursor:pointer}.dialog-close:hover{background:#eaf4f7}.admin-dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.admin-dialog-grid label{display:grid;gap:6px;color:#344955;font-size:.8rem;font-weight:800}.admin-dialog-grid input,.admin-dialog-grid select{width:100%;padding:11px 12px;border:1px solid #bdcbd3;border-radius:9px;background:#fff;color:var(--ink);font:inherit}.admin-dialog-grid input:focus,.admin-dialog-grid select:focus{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(0,181,226,.14)}.dialog-field-wide{grid-column:1/-1}.admin-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:19px;border-top:1px solid var(--border-soft)}.admin-dialog-actions .button-primary{margin:0}@keyframes dialog-in{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}

/* Punto intermedio específico para tablet. */
@media(max-width:1024px){.page-content{padding-top:28px}.nav-scroll{gap:20px}.topbar{gap:16px}.admin-tabs{scrollbar-width:thin}.admin-tab{padding:22px}.approval-flow article{padding:17px}.holiday-range-form{grid-template-columns:1fr 1fr}.holiday-range-form .button-primary{width:100%}}
@media(min-width:701px) and (max-width:900px){.admin-users-table{overflow:visible;border:0}.admin-users-table .data-table thead{display:none}.admin-users-table .data-table,.admin-users-table .data-table tbody,.admin-users-table .data-table tr,.admin-users-table .data-table td{display:block;width:100%}.admin-users-table .data-table tbody{display:grid;gap:13px}.admin-users-table .data-table tr{padding:16px;border:1px solid var(--border-soft);border-radius:12px;background:#fff}.admin-users-table .data-table td{display:grid;grid-template-columns:125px minmax(0,1fr);gap:12px;padding:6px 0;border:0}.admin-users-table .data-table td:before{content:attr(data-label);color:#71838d;font-size:.69rem;font-weight:850;text-transform:uppercase}.admin-users-table .data-table td[data-label="Acciones"]{display:block;padding-top:12px}.admin-users-table .data-table td[data-label="Acciones"]:before{display:block;margin-bottom:8px}.admin-users-table .admin-actions{justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:700px){.module-shell>*{animation-duration:.4s}.section-heading-row>.button-primary{width:100%}.section-heading-actions{display:grid;width:100%;grid-template-columns:1fr}.section-heading-actions>*,.section-heading-actions form .button-secondary{width:100%}.admin-user-toolbar .search-control{flex-basis:auto;min-width:0;width:100%}.admin-dialog{width:calc(100% - 20px);max-height:calc(100vh - 20px);border-radius:14px}.admin-dialog-form{padding:21px}.admin-dialog-grid{grid-template-columns:1fr}.dialog-field-wide{grid-column:auto}.admin-dialog-actions{flex-direction:column-reverse}.admin-dialog-actions .button-primary,.admin-dialog-actions .button-secondary{width:100%}.holiday-range-form{grid-template-columns:1fr}.admin-users-table .admin-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.module-shell>*,.admin-tab.is-tab-entering,.admin-dialog[open]{animation:none}}

/* Descripciones opcionales en el catálogo y selector de espacios. */
.admin-dialog-grid textarea{width:100%;min-height:86px;padding:11px 12px;border:1px solid #bdcbd3;border-radius:9px;background:#fff;color:var(--ink);font:inherit;resize:vertical}.admin-dialog-grid textarea:focus{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(0,181,226,.14)}.optional-label{color:#788a94;font-size:.74rem;font-weight:600}.venue-description{color:#637782!important;line-height:1.4}.custom-select-option>span,.custom-select-option>small{display:block}.custom-select-option>small{margin-top:2px;color:#71838d;font-size:.73rem;font-weight:500;line-height:1.3}.custom-select-option.has-description{min-height:58px}.custom-select-option.is-selected>small{color:#d3e9f2}
.admin-toggle-field{display:flex!important;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:11px;padding:13px;border:1px solid #d4e0e5;border-radius:11px;background:#f7fafb}.admin-toggle-field input{width:18px!important;height:18px;margin:2px 0 0;accent-color:var(--navy-800)}.admin-toggle-field span,.admin-toggle-field strong,.admin-toggle-field small{display:block}.admin-toggle-field small{margin-top:3px;color:#6f818b;font-weight:500}.venue-location-badge{width:max-content;margin-top:6px!important;padding:3px 7px;border-radius:999px;background:#fff2d9;color:#82550c!important;font-weight:800!important}

/* Selectores institucionales: reemplazan la apariencia nativa sin perder accesibilidad. */
.app-page select{appearance:none;-webkit-appearance:none;min-height:44px;padding-right:44px!important;border-color:#b8c9d2!important;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23003B5C' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 13px center!important;background-size:18px 18px!important;color:var(--ink);font-weight:650;cursor:pointer;transition:border-color .18s,box-shadow .18s,background-color .18s}
.app-page select:hover:not(:disabled){border-color:#7fa9bb!important;background-color:#fafdfe!important}.app-page select:focus,.app-page select:focus-visible{outline:0;border-color:var(--cyan-500)!important;box-shadow:0 0 0 3px rgba(0,181,226,.15)!important}.app-page select:open{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23003B5C' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 14 5-5 5 5'/%3E%3C/svg%3E")!important}.app-page select:required:invalid{color:#6f7f88}.app-page select:disabled{background-color:#edf2f4!important;color:#81909a;cursor:not-allowed;opacity:1}.app-page select option,.app-page select optgroup{background:#fff;color:#203641;font:inherit}.app-page select option{padding:10px}.app-page select option:checked{background:#e7f4f8;color:var(--navy-800);font-weight:800}
@media(max-width:700px){.app-page select{min-height:48px;background-position:right 14px center!important}}

/* Dropdown institucional reutilizable en todos los módulos. */
.custom-select-native{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0;pointer-events:none}.custom-select{position:relative;width:100%;min-width:0}.custom-select-trigger{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;border:1px solid #b8c9d2;border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-weight:700;text-align:left;cursor:pointer;transition:border-color .18s,box-shadow .18s,background-color .18s}.custom-select-trigger:hover{border-color:#7fa9bb;background:#fafdfe}.custom-select-trigger:focus-visible,.custom-select.is-open .custom-select-trigger{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(0,181,226,.15)}.custom-select-icon{flex:0 0 18px;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23003B5C' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .18s}.custom-select.is-open .custom-select-icon{transform:rotate(180deg)}.custom-select-menu{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 7px);max-width:100%;max-height:104px;overflow-y:auto;padding:5px;border:1px solid #c2d2da;border-radius:12px;background:#fff;box-shadow:0 16px 38px rgba(0,43,69,.2);scrollbar-width:thin;scrollbar-color:#8fb4c4 transparent}.custom-select-menu[hidden]{display:none}.custom-select-menu::-webkit-scrollbar{width:8px}.custom-select-menu::-webkit-scrollbar-thumb{border:2px solid #fff;border-radius:999px;background:#8fb4c4}.custom-select-option{width:100%;min-height:43px;display:block;padding:10px 12px;border:0;border-radius:8px;background:#fff;color:#263d48;font:inherit;font-size:.86rem;font-weight:700;text-align:left;cursor:pointer}.custom-select-option:hover,.custom-select-option:focus-visible{outline:0;background:#edf7fa;color:var(--navy-800)}.custom-select-option.is-selected{background:var(--navy-800);color:#fff}.custom-select-option.is-selected:hover,.custom-select-option.is-selected:focus-visible{background:#00547c;color:#fff}
.custom-select.is-invalid .custom-select-trigger{border-color:#c44b56;box-shadow:0 0 0 3px rgba(196,75,86,.12)}.custom-select-trigger:disabled{background:#edf2f4;color:#81909a;cursor:not-allowed}.custom-select-option:disabled{color:#9ba8ae;cursor:not-allowed}
@media(max-width:700px){.custom-select-trigger{min-height:48px}.custom-select-menu{max-height:108px}}

/* Confirmación protectora para operaciones destructivas. */
.admin-dialog-grid input[type="color"]{min-height:46px;padding:5px;cursor:pointer}.confirmation-dialog{text-align:center}.confirmation-dialog .admin-dialog-form{padding:30px}.confirmation-symbol{width:54px;height:54px;display:grid;place-items:center;margin:0 auto 16px;border-radius:50%;background:#fcedee;color:#9a2831;font-size:1.45rem;font-weight:900;box-shadow:0 0 0 8px rgba(154,40,49,.07)}.confirmation-dialog h2{margin:.3rem 0;color:var(--navy-800);font-size:1.42rem}.confirmation-dialog #confirmation-message{max-width:430px;margin:0 auto;color:var(--muted-ink);font-size:.88rem;line-height:1.6}.confirmation-dialog .admin-dialog-actions{justify-content:center;margin-top:24px}.button-danger{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #922832;border-radius:9px;background:#a52f39;color:#fff;font:inherit;font-weight:850;cursor:pointer;transition:background .18s,box-shadow .18s}.button-danger:hover{background:#8f222c}.button-danger:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(165,47,57,.2)}
@media(max-width:700px){.confirmation-dialog .admin-dialog-actions{flex-direction:column-reverse}.confirmation-dialog .button-danger,.confirmation-dialog .button-secondary{width:100%}}

/* Autorización obligatoria antes de solicitar un espacio. */
.policy-card{margin-top:22px;border:1px solid #cbd8df;border-radius:14px;background:#fff;overflow:hidden}.policy-card>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;background:var(--navy-800);color:#fff}.policy-card>header span{display:block;color:#8ce0f3;font-size:.67rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.policy-card>header h3{margin:2px 0 0;font-size:1rem}.policy-card>header small{flex:0 0 auto;color:#c7e0eb;font-size:.7rem}.policy-scroll{max-height:350px;overflow-y:auto;padding:5px 19px;background:#fff;scrollbar-width:thin;scrollbar-color:#82adbf #eef3f5}.policy-scroll:focus{outline:3px solid rgba(0,181,226,.16);outline-offset:-3px}.policy-scroll::-webkit-scrollbar{width:9px}.policy-scroll::-webkit-scrollbar-track{background:#eef3f5}.policy-scroll::-webkit-scrollbar-thumb{border:2px solid #eef3f5;border-radius:999px;background:#82adbf}.policy-scroll article{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:15px 0;border-bottom:1px solid var(--border-soft)}.policy-scroll article>span{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#e8f4f8;color:var(--navy-800);font-size:.75rem;font-weight:900}.policy-scroll article strong{display:block;color:#293e49;font-size:.86rem}.policy-scroll article p{margin:4px 0 0;color:#526771;font-size:.81rem;line-height:1.62}.policy-end{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:#166949;font-size:.78rem}.policy-end>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#e1f3ea;font-weight:900}.policy-scroll-help{margin:0;padding:10px 17px;border-top:1px solid #d7e2e7;background:#f5f8fa;color:#637680;font-size:.73rem;font-weight:750}.policy-card:has(.policy-scroll.is-read) .policy-scroll-help{background:#e9f6f0;color:#17684a}.policy-confirmation{display:flex;align-items:flex-start;gap:13px;margin-top:16px;padding:15px 16px;border:1px solid #cbd8df;border-radius:12px;background:#fff;cursor:pointer}.policy-confirmation:has(input:checked){border-color:#2d8b69;background:#edf8f3;box-shadow:0 0 0 3px rgba(45,139,105,.08)}.policy-confirmation input{flex:0 0 20px;width:20px;height:20px;margin:2px 0 0;accent-color:var(--navy-800)}.policy-confirmation input[aria-disabled="true"]{opacity:.48;cursor:not-allowed}.policy-confirmation strong,.policy-confirmation small{display:block}.policy-confirmation strong{color:#2a3f4a;font-size:.86rem}.policy-confirmation small{margin-top:3px;color:#6e7f88;font-size:.75rem;line-height:1.45}.data-confirmation{margin-top:18px;background:#f8fafb}
@media(max-width:700px){.policy-card>header{align-items:flex-start;flex-direction:column;gap:5px}.policy-scroll{max-height:310px;padding-inline:14px}.policy-scroll article{grid-template-columns:27px minmax(0,1fr)}.policy-confirmation{padding:14px}}

/* Vista confidencial de agenda para profesores solicitantes. */
.agenda-layout.agenda-list-only{grid-template-columns:minmax(0,1fr)}.agenda-list-only .agenda-panel{width:100%;max-width:920px;margin-inline:auto}

/* Resultado mínimo de disponibilidad sin revelar eventos ajenos. */
.availability-feedback{grid-column:1/-1;padding:13px 15px;border:1px solid;border-radius:11px;font-size:.82rem;font-weight:800}.availability-feedback.is-checking{border-color:#c8d9e1;background:#f3f7f9;color:#536c78}.availability-feedback.is-available{border-color:#abd8c5;background:#e9f6f0;color:#176448}.availability-feedback.is-unavailable,.availability-feedback.is-error{border-color:#e2b7bc;background:#fcedee;color:#842630}
.availability-feedback.is-pending{border-color:#e6c886;background:#fff7e5;color:#74500d}.custom-location-field{padding:14px;border:1px solid #c9dce4;border-radius:11px;background:#f4f9fb}.custom-location-field small{color:#617783;font-weight:500}
.inline-expedient-editor{scroll-margin-top:24px}.inline-expedient-form{display:grid;gap:18px;margin-top:22px}.inline-option-fieldset{min-width:0;margin:0;padding:16px;border:1px solid var(--border-soft);border-radius:12px}.inline-option-fieldset legend{padding:0 7px;color:var(--navy-800);font-size:.82rem;font-weight:850}.inline-editor-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:10px}.inline-editor-actions .button-primary,.inline-editor-actions .button-secondary{min-width:180px;min-height:48px;margin:0}.authority-other-field{margin-top:4px;padding:16px;border-radius:10px;background:#f5f8fa}.authority-other-field small{color:var(--muted-ink);font-size:.74rem;font-weight:500}.authority-other-field textarea{width:100%;border:1px solid #bdcbd3;border-radius:9px;background:#fff;padding:11px 13px;color:var(--ink);font:inherit}.authority-other-field textarea:focus{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(0,181,226,.14)}[data-expedient-summary]{scroll-margin-top:24px}.is-cancel-return{animation:cancel-return-highlight .8s ease-out both}@keyframes cancel-return-highlight{0%{box-shadow:0 0 0 4px rgba(0,181,226,.2),var(--shadow);transform:translateY(2px)}100%{box-shadow:var(--shadow);transform:none}}@media(prefers-reduced-motion:reduce){.is-cancel-return{animation:none}}@media(max-width:700px){.inline-editor-actions{flex-direction:column-reverse}.inline-editor-actions .button-primary,.inline-editor-actions .button-secondary{width:100%}}

/* Identidad SIGEA y crédito institucional. */
.auth-brand{text-align:left}.auth-brand h1{max-width:590px;text-align:left;text-wrap:balance}.auth-brand h1 span{display:block}.auth-tagline{max-width:540px;margin:0;color:#d2e4ed;font-size:1.08rem;animation:auth-copy-in .65s .25s cubic-bezier(.2,.7,.2,1) both}.auth-credit{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin:30px 0 0!important;padding-top:15px;border-top:1px solid rgba(255,255,255,.24);color:rgba(255,255,255,.78)!important;font-size:.72rem!important;line-height:1.35;letter-spacing:.015em;animation:auth-copy-in .65s .31s cubic-bezier(.2,.7,.2,1) both}.auth-credit span{white-space:nowrap;text-transform:uppercase;letter-spacing:.08em;font-size:.6rem;font-weight:800}.auth-credit strong{color:#fff;font-weight:700}
.app-page{min-height:100vh;display:flex;flex-direction:column}.app-page .page-content{flex:1}.system-footer{margin-top:auto;border-top:1px solid #cfdde4;background:#fff;color:#536a76}.system-footer:before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--navy-800),var(--cyan-500))}.system-footer-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:15px}.system-footer-product{display:flex;align-items:baseline;gap:11px}.system-footer-product strong{color:var(--navy-800);font-size:.92rem;letter-spacing:.08em}.system-footer-product span{font-size:.72rem}.system-footer p{display:flex;align-items:baseline;gap:7px;margin:0;text-align:right;font-size:.73rem}.system-footer p span{color:#71838d}.system-footer p strong{color:var(--navy-800)}
@media(max-width:760px){.auth-brand h1 span{display:inline}.auth-brand h1 span+span:before{content:" "}.auth-tagline{color:#d1e4ed}.auth-credit{margin-top:22px!important;padding-top:12px}.system-footer-inner{align-items:flex-start;flex-direction:column;gap:8px}.system-footer-product{align-items:flex-start;flex-direction:column;gap:2px}.system-footer p{text-align:left}}
@media(max-width:520px){.auth-credit{display:grid;gap:3px;margin-top:16px!important;padding:8px 11px;border-top:0;border-left:2px solid rgba(123,221,244,.72);border-radius:0 8px 8px 0;background:linear-gradient(90deg,rgba(0,43,69,.58),rgba(0,43,69,.12));text-shadow:0 1px 3px rgba(0,31,49,.72)}.system-footer{margin-top:18px}.system-footer-inner{padding-block:14px}.system-footer-product span{font-size:.68rem}.system-footer p{display:grid;gap:1px}}
@media(prefers-reduced-motion:reduce){.auth-tagline,.auth-credit{animation:none}}

/* Acceso móvil SIGEA: identidad concentrada sobre la fotografía institucional. */
.auth-mobile-identity,.auth-kicker-mobile{display:none}
@media(max-width:760px){
    .auth-page:has(.auth-login-card){min-height:100svh;background:var(--navy-900)}
    .auth-page:has(.auth-login-card):before{position:fixed;inset:0;height:auto;clip-path:none;background-image:linear-gradient(180deg,rgba(0,43,69,.82),rgba(0,43,69,.94)),url("../images/login-architecture.webp");background-position:center;background-size:cover}
    .auth-shell:has(.auth-login-card){width:100%;min-height:100svh;place-items:center;align-content:center;padding:24px 16px}
    .auth-shell:has(.auth-login-card) .auth-brand{display:none}
    .auth-login-card{width:min(100%,420px);margin:0;padding:25px 24px 23px;border:1px solid rgba(255,255,255,.76);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 24px 65px rgba(0,25,40,.34);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
    .auth-login-card:before{height:3px;background:linear-gradient(90deg,var(--navy-800),var(--cyan-500),var(--navy-800))}
    .auth-login-card:after{width:118px;height:118px;right:-75px;top:-75px}
    .auth-mobile-identity{display:flex;align-items:center;justify-content:center;gap:13px;margin:0 auto 13px;color:var(--navy-800)}
    .auth-mobile-identity img{display:block;width:68px;height:68px;object-fit:contain}
    .auth-mobile-identity span{padding-left:13px;border-left:1px solid #b7c7d0;font-size:.72rem;line-height:1.12;letter-spacing:.025em}
    .auth-mobile-identity strong{display:block;font-size:.9rem}
    .auth-kicker-desktop{display:none}.auth-kicker-mobile{display:inline}
    .auth-login-card>.eyebrow{margin:0;text-align:center;color:#007da5;letter-spacing:.16em}
    .auth-login-card h2{margin:.18rem 0 0;text-align:center;font-size:1.82rem}
    .auth-login-card .form-intro{max-width:330px;margin:.35rem auto 0;text-align:center;font-size:.91rem;line-height:1.45}
    .auth-login-card .auth-form{margin-top:21px}
    .auth-login-card .auth-support{font-size:.78rem;line-height:1.45}
}
@media(max-width:420px){
    .auth-shell:has(.auth-login-card){padding:16px 12px}
    .auth-login-card{padding:22px 20px 19px}
    .auth-mobile-identity{gap:11px;margin-bottom:10px}
    .auth-mobile-identity img{width:62px;height:62px}
    .auth-mobile-identity span{padding-left:11px}
    .auth-login-card h2{font-size:1.7rem}
    .auth-login-card .auth-form{gap:14px;margin-top:18px}
    .auth-login-card .auth-support{margin-top:16px;padding-top:14px}
}
@media(max-width:340px){.auth-login-card .auth-support{display:none}}

/* Refinamiento móvil del resumen, solicitudes y selector de agenda. */
.request-detail-link>span{display:none}.request-detail-link>b{font-weight:900}.agenda-venue-toggle{display:none}.agenda-venue-options-wrap{display:grid;grid-template-rows:1fr}.agenda-venue-options-clip{min-height:0}
@media(max-width:700px){
    .module-shell .metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:6px;border:1px solid var(--border-soft);border-radius:16px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
    .module-shell .metrics-grid .metric-card{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:start;gap:9px;min-height:98px;padding:12px 10px;border:0;border-radius:0;background:#fff;box-shadow:none}
    .module-shell .metrics-grid .metric-card:nth-child(-n+2){border-bottom:1px solid var(--border-soft)}
    .module-shell .metrics-grid .metric-card:nth-child(odd){border-right:1px solid var(--border-soft)}
    .module-shell .metrics-grid .metric-icon{width:36px;height:36px;border-radius:10px;font-size:1.05rem}
    .module-shell .metrics-grid .metric-card>div:last-child{min-width:0}
    .module-shell .metrics-grid .metric-card span{font-size:.74rem;line-height:1.2}
    .module-shell .metrics-grid .metric-card strong{font-size:1.45rem}
    .module-shell .metrics-grid .metric-card small{font-size:.65rem;line-height:1.25}
    .dashboard-request-list article{padding:12px 0}
    .dashboard-request-list .status-pill{grid-column:2;width:max-content;max-width:100%;justify-self:start;padding:4px 9px}
    .data-panel .requests-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:0;overflow:hidden}
    .data-panel .requests-table td{display:block;width:auto;padding:10px 13px;border:0}
    .data-panel .requests-table td:before{display:block;margin-bottom:3px}
    .data-panel .requests-table .request-cell-identity{grid-column:1/-1;padding-bottom:9px;background:#f5f8fa}
    .data-panel .requests-table .request-cell-event{grid-column:1/-1;padding-block:12px}
    .data-panel .requests-table .request-cell-date,.data-panel .requests-table .request-cell-status{border-top:1px solid var(--border-soft)}
    .data-panel .requests-table .request-cell-status .status-pill{width:max-content;max-width:100%;justify-self:start}
    .data-panel .requests-table .request-cell-progress{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(80px,1fr) auto;align-items:center;gap:10px;border-top:1px solid var(--border-soft)}
    .data-panel .requests-table .request-cell-progress:before{margin:0}
    .data-panel .requests-table .request-cell-progress .progress-track{width:100%;margin:0}
    .data-panel .requests-table .request-cell-progress small{margin:0}
    .data-panel .requests-table .request-cell-action{grid-column:1/-1;display:block;padding:0 13px 13px}
    .data-panel .requests-table .request-detail-link{width:100%;height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;border:0;background:#edf5f8;color:var(--navy-800)}
    .data-panel .requests-table .request-detail-link>span{display:inline;font-size:.76rem;font-weight:850}
    .js .agenda-venue-toggle{width:100%;min-height:58px;display:grid;grid-template-columns:36px minmax(0,1fr) 32px;align-items:center;gap:11px;padding:9px 10px;border:1px solid #b9cdd6;border-radius:12px;background:linear-gradient(145deg,#fff,#f3f8fa);color:var(--navy-800);text-align:left;box-shadow:0 3px 10px rgba(0,43,69,.045);cursor:pointer;transition:border-color .22s,box-shadow .22s,background-color .22s}
    .js .agenda-venue-toggle:hover{border-color:#7fa9bb;background:#f7fbfc}
    .js .agenda-venue-toggle:focus-visible{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(0,181,226,.17)}
    .js .agenda-venue-picker.is-open .agenda-venue-toggle{border-color:#7faec0;background:#f7fbfc;box-shadow:0 0 0 3px rgba(0,181,226,.09)}
    .agenda-venue-filter-icon,.agenda-venue-chevron{display:grid;place-items:center;border-radius:9px}
    .agenda-venue-filter-icon{width:36px;height:36px;background:#e2f3f8;color:#006f91}
    .agenda-venue-filter-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
    .agenda-venue-toggle-copy strong,.agenda-venue-toggle-copy small{display:block}
    .agenda-venue-toggle-copy strong{font-size:.82rem;line-height:1.25}
    .agenda-venue-toggle-copy small{margin-top:2px;color:#657985;font-size:.7rem;font-weight:700}
    .agenda-venue-chevron{width:32px;height:32px;background:#fff;color:#456674;box-shadow:inset 0 0 0 1px #d5e1e6;transition:transform .28s cubic-bezier(.2,.75,.25,1),background-color .2s,color .2s}
    .agenda-venue-chevron svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
    .agenda-venue-picker.is-open .agenda-venue-chevron{transform:rotate(180deg);background:var(--navy-800);color:#fff}
    .agenda-venue-options-wrap{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .3s cubic-bezier(.2,.75,.25,1),opacity .2s ease}
    .js .agenda-venue-options-wrap{grid-template-rows:0fr;opacity:0}
    .js .agenda-venue-picker.is-open .agenda-venue-options-wrap{grid-template-rows:1fr;opacity:1}
    .agenda-venue-options-clip{min-height:0;overflow:hidden}
    .agenda-venue-picker .agenda-venue-options{max-height:230px;margin:8px 0 0;padding:8px;overflow:auto;border-color:#cad9e0;background:#fbfcfd;transition:margin-top .3s cubic-bezier(.2,.75,.25,1)}
    .js .agenda-venue-picker:not(.is-open) .agenda-venue-options{margin-top:0}
    .agenda-venue-picker .check-row{min-height:42px;padding:7px 8px;border-radius:8px;transition:background-color .16s,color .16s}
    .agenda-venue-picker .check-row:hover{background:#edf6f9;color:var(--navy-800)}
}
@media(max-width:360px){
    .module-shell .metrics-grid .metric-card{grid-template-columns:32px minmax(0,1fr);gap:7px;padding-inline:8px}
    .module-shell .metrics-grid .metric-icon{width:32px;height:32px}
    .data-panel .requests-table .request-cell-date,.data-panel .requests-table .request-cell-status{padding-inline:11px}
}

/* Catálogo de espacios compacto y desplegable en teléfono. */
.venue-mobile-summary{display:none}.venue-card-details{display:grid;grid-template-rows:1fr;opacity:1}.venue-card-details-inner{min-height:0}
@media(max-width:700px){
    .module-shell .availability-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:6px;border:1px solid var(--border-soft);border-radius:15px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
    .module-shell .availability-summary article{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:7px;min-height:78px;padding:10px 8px;border:0;border-radius:0;background:#fff}
    .module-shell .availability-summary article+article{border-left:1px solid var(--border-soft)}
    .module-shell .availability-summary .summary-icon{width:32px;height:32px;border-radius:9px}
    .module-shell .availability-summary strong{font-size:1.35rem;line-height:1}
    .module-shell .availability-summary small{margin-top:4px;font-size:.67rem;line-height:1.18}
    .venue-grid{gap:10px}
    .venue-grid .venue-card{padding:0;border-radius:14px;overflow:hidden}
    .js .venue-card .venue-desktop-heading{display:none}
    .js .venue-mobile-summary{width:100%;min-height:84px;display:grid;grid-template-columns:40px minmax(0,1fr) 32px;grid-template-rows:auto auto;align-items:center;gap:5px 11px;padding:11px 12px;border:0;background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:background-color .2s,box-shadow .2s}
    .js .venue-mobile-summary:hover{background:#f8fbfc}
    .js .venue-mobile-summary:focus-visible{outline:0;box-shadow:inset 0 0 0 3px rgba(0,181,226,.2)}
    .venue-mobile-summary>.venue-symbol{grid-column:1;grid-row:1/3;width:40px;height:40px}
    .venue-mobile-copy{grid-column:2;grid-row:1;min-width:0}
    .venue-mobile-copy strong,.venue-mobile-copy small{display:block}
    .venue-mobile-copy strong{color:var(--navy-800);font-size:.9rem;line-height:1.25}
    .venue-mobile-copy small{margin-top:3px;color:#71838d;font-size:.66rem;font-weight:700}
    .venue-mobile-summary>.status-pill{grid-column:2;grid-row:2;width:max-content;justify-self:start;padding:3px 8px;font-size:.65rem}
    .venue-card-chevron{grid-column:3;grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#f1f6f8;color:#456674;transition:transform .28s cubic-bezier(.2,.75,.25,1),background-color .2s,color .2s}
    .venue-card-chevron svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
    .venue-card.is-open .venue-card-chevron{transform:rotate(180deg);background:var(--navy-800);color:#fff}
    .venue-card-details{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .3s cubic-bezier(.2,.75,.25,1),opacity .2s ease}
    .js .venue-card-details{grid-template-rows:0fr;opacity:0}
    .js .venue-card.is-open .venue-card-details{grid-template-rows:1fr;opacity:1}
    .venue-card-details-inner{min-height:0;overflow:hidden;padding:0 14px 14px;transition:padding-bottom .3s cubic-bezier(.2,.75,.25,1)}
    .js .venue-card:not(.is-open) .venue-card-details-inner{padding-bottom:0}
    .venue-card .venue-description{margin:0 0 12px;padding-top:13px;border-top:1px solid var(--border-soft);font-size:.77rem}
    .venue-grid .venue-card dl{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 13px}
    .venue-grid .venue-card dl div{padding:10px}
    .venue-grid .venue-card footer{padding-top:11px}
    .venue-grid .venue-card footer .button-secondary{width:100%}
}
@media(max-width:360px){
    .module-shell .availability-summary article{grid-template-columns:1fr;justify-items:center;gap:5px;text-align:center}
    .module-shell .availability-summary small{font-size:.63rem}
}

/* Cierre responsive V1: operación completa desde teléfono. */
.header-actions{display:flex;align-items:center;gap:12px}.mobile-nav-toggle,.logout-short{display:none}
@media(max-width:760px){
    .site-header{position:relative;z-index:100}.topbar{min-height:66px}.header-actions{gap:8px}.account-menu{gap:8px}.button-ghost{min-height:44px;padding:9px 11px}.logout-full{display:none}.logout-short{display:inline}.mobile-nav-toggle{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid #8db1c4;border-radius:9px;background:transparent;color:#fff;cursor:pointer}.mobile-nav-toggle>span:first-child,.mobile-nav-toggle>span:first-child:before,.mobile-nav-toggle>span:first-child:after{display:block;width:20px;height:2px;border-radius:999px;background:currentColor;transition:transform .18s,opacity .18s}.mobile-nav-toggle>span:first-child{position:relative}.mobile-nav-toggle>span:first-child:before,.mobile-nav-toggle>span:first-child:after{content:"";position:absolute;left:0}.mobile-nav-toggle>span:first-child:before{top:-6px}.mobile-nav-toggle>span:first-child:after{top:6px}.mobile-nav-toggle[aria-expanded="true"]>span:first-child{background:transparent}.mobile-nav-toggle[aria-expanded="true"]>span:first-child:before{top:0;transform:rotate(45deg)}.mobile-nav-toggle[aria-expanded="true"]>span:first-child:after{top:0;transform:rotate(-45deg)}.mobile-nav-toggle:focus-visible{outline:3px solid rgba(123,221,244,.45);outline-offset:2px}
    .js .primary-nav:not(.is-open){display:none}.primary-nav{border-bottom:0;box-shadow:0 15px 28px rgba(0,32,51,.22)}.nav-scroll{display:grid;gap:3px;padding-block:8px;overflow:visible}.nav-link{min-height:46px;display:flex;align-items:center;padding:10px 13px;border-radius:9px;color:#38525f}.nav-link.is-active{background:#e5f4f8}.nav-link.is-active:after{display:none}.nav-link:focus-visible{outline:3px solid rgba(0,181,226,.25);outline-offset:-2px}
    .page-content{padding-top:24px;padding-bottom:36px}.page-heading{gap:17px;margin-bottom:21px}.page-heading h1{font-size:clamp(1.8rem,9vw,2.25rem);overflow-wrap:anywhere}.page-heading p:last-child,.section-intro{line-height:1.55}.back-link{min-height:44px;display:inline-flex;align-items:center}.dashboard-welcome{gap:18px;margin-bottom:21px}.dashboard-welcome .button-primary{width:100%;min-height:48px}.metrics-grid{gap:11px;margin-bottom:18px}.metric-card{min-height:88px;padding:15px}.panel-heading{flex-wrap:wrap}.panel-heading .text-button{min-height:44px;display:inline-flex;align-items:center}.rules-strip{margin-top:18px}
    .toolbar{padding:13px}.filter-group{width:100%;padding-bottom:5px;scroll-snap-type:x proximity}.filter-chip{min-height:44px;scroll-snap-align:start}.search-control input,.form-grid input,.form-grid select,.form-grid textarea,.block-label textarea,.agenda-filters select,.setting-card input,.admin-create-grid input,.admin-create-grid select,.document-upload-form input,.document-upload-form select,.admin-dialog-grid input,.admin-dialog-grid select,.admin-dialog-grid textarea,.review-resolution-form select,.review-resolution-form textarea{font-size:16px}.button-primary,.button-secondary,.text-button,.icon-button{min-height:44px}.icon-button{min-width:44px}
    .wizard-steps{scroll-snap-type:x mandatory;scrollbar-width:thin}.wizard-step{min-width:152px;scroll-snap-align:center}.wizard-card{min-width:0}.policy-scroll{max-height:min(310px,48vh)}.review-placeholder{min-height:220px;padding:26px 18px}.wizard-actions button{flex:1;min-width:0}.availability-note,.info-callout,.sync-card{padding:13px}.check-card{min-height:50px}.custom-select-menu{max-height:220px}
    .data-panel{border:0;background:transparent;box-shadow:none;overflow:visible}.data-panel>.panel-heading{padding:0 2px 12px}.data-table tbody{display:grid;gap:12px}.data-table tr{border:1px solid var(--border-soft);border-radius:12px;background:#fff;box-shadow:0 6px 18px rgba(0,43,69,.045)}.data-table td:first-child{padding-top:0}.data-table td:last-child{padding-bottom:0}.data-table td:not([data-label]) .icon-button{width:100%}
    .agenda-panel{min-width:0}.agenda-view-switch button{min-height:44px}.timeline-event{grid-template-columns:48px 4px minmax(0,1fr) 44px;gap:10px}.timeline-event .icon-button{display:inline-grid}.week-calendar-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}.calendar-help{line-height:1.5}.agenda-filters fieldset{max-height:260px;overflow:auto}
    .notification-item{padding:16px 15px}.notification-actions{width:100%;gap:8px}.notification-actions .button-secondary{min-height:44px}.notification-actions form{flex:1}.notification-actions .text-button{width:100%;justify-content:flex-start}
    .review-work-card header{flex-wrap:wrap}.review-work-card header .status-pill{margin-left:auto}.detail-card .panel-heading{align-items:flex-start}.document-upload-form input[type="file"]{min-width:0}.document-list>a{align-items:flex-start}.holiday-list form,.admin-venue-list form{margin-left:0}.holiday-list .button-secondary,.admin-venue-list .button-secondary,.data-table form .button-secondary,.admin-users-table .button-secondary{min-height:44px}.admin-tabs{scroll-snap-type:x proximity}.admin-tabs button{min-height:46px;scroll-snap-align:start}.admin-dialog{max-height:calc(100dvh - 20px)}
}
@media(max-width:420px){
    .topbar{width:calc(100% - 20px)}.brand-home .institution-logo-buap{width:42px;height:42px}.header-actions{gap:6px}.account-menu{gap:6px}.mobile-nav-toggle,.button-ghost{min-width:42px;height:42px;min-height:42px}.page-heading .draft-indicator{max-width:100%}.data-table td{grid-template-columns:92px minmax(0,1fr)}.wizard-actions{gap:9px}.wizard-actions button{padding-inline:10px}.timeline-event{grid-template-columns:44px 4px minmax(0,1fr);gap:9px}.timeline-event .icon-button{grid-column:3;width:100%;margin-top:3px}.document-list>a{align-items:stretch;flex-direction:column}.document-list>a>span{min-height:44px;display:flex;align-items:center}.admin-actions{display:grid;grid-template-columns:1fr;width:100%}.admin-actions>*{width:100%}.admin-actions .button-secondary{width:100%}.holiday-list article>form,.holiday-list article>form .button-secondary{width:100%}.system-footer-product span{line-height:1.45}
}

/* Identidad y jerarquía del expediente. */
.app-brand-copy{display:none}.logout-button{border-color:#a9212b;background:#a9212b;color:#fff;box-shadow:0 4px 12px rgba(89,15,21,.2);transition:background-color .18s,border-color .18s,transform .18s}.logout-button:hover{border-color:#8f1720;background:#8f1720;transform:translateY(-1px)}.logout-button:focus-visible{outline:3px solid rgba(255,255,255,.48);outline-offset:2px}.expedient-heading-main{min-width:0}.expedient-back-link{display:inline-flex;align-items:center;gap:8px;min-height:42px;margin-bottom:23px;padding:8px 13px;border:1px solid #c6d7df;border-radius:10px;background:#fff;color:var(--navy-800);box-shadow:0 5px 14px rgba(0,43,69,.06);transition:border-color .18s,box-shadow .18s,transform .18s}.expedient-back-link:hover{border-color:#8eb4c5;box-shadow:0 8px 18px rgba(0,43,69,.1);transform:translateY(-1px)}.expedient-back-link:focus-visible{outline:3px solid rgba(0,181,226,.22);outline-offset:2px}.expedient-back-link>span{font-size:1.05rem}.expedient-identity{padding-left:15px;border-left:4px solid var(--cyan-500)}.expedient-identity .eyebrow{margin-bottom:7px}
@media(max-width:760px){
    .brand-home{display:flex;align-items:center;gap:9px;min-width:0}.brand-home .institution-lockup{flex:0 0 auto}.app-brand-copy{display:grid;min-width:0;line-height:1.05}.app-brand-copy strong{color:#fff;font-size:.9rem;letter-spacing:.09em}.app-brand-copy small{max-width:96px;margin-top:3px;color:#c8dce7;font-size:.58rem;line-height:1.15}.logout-button{min-width:auto;padding-inline:10px;font-size:.75rem;white-space:nowrap}.expedient-heading{gap:15px}.expedient-heading-main{width:100%}.expedient-back-link{margin-bottom:22px}.expedient-identity{padding-left:13px}.expedient-heading>.status-pill{margin-left:17px}
}
@media(max-width:360px){
    .app-brand-copy small{display:none}.app-brand-copy strong{font-size:.84rem}.logout-button{padding-inline:8px;font-size:.69rem}.expedient-heading>.status-pill{margin-left:0}
}

/* Auditoría final: selectores amplios y bandeja compacta de revisiones. */
.wizard-pane .custom-select-menu{max-height:min(360px,55vh)}
.auth-support a{color:var(--navy-800);font-weight:800;text-decoration-thickness:1px;text-underline-offset:3px}
.review-page-heading{align-items:flex-end}.review-total{display:flex;align-items:baseline;gap:6px;padding:9px 14px;border-radius:999px;background:#e5f4f8;color:var(--navy-800);font-size:.78rem;font-weight:800}.review-total strong{font-size:1.15rem}.review-toolbar{display:flex;align-items:center;gap:18px;margin-bottom:18px;padding:14px}.review-toolbar label{flex:1}.review-toolbar input{width:100%;min-height:44px;padding:10px 13px;border:1px solid #bdcbd3;border-radius:10px;font:inherit}.review-toolbar input:focus{outline:0;border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(0,181,226,.14)}.review-toolbar small{color:var(--muted-ink)}
.review-queue{gap:14px}.review-work-card{padding:0;overflow:visible}.review-work-card>summary{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(210px,.75fr) 42px;align-items:center;gap:16px;min-height:126px;padding:18px 20px;cursor:pointer;list-style:none}.review-work-card>summary::-webkit-details-marker{display:none}.review-work-card>summary:hover{background:#f8fbfc}.review-work-card>summary:focus-visible{outline:3px solid rgba(0,181,226,.25);outline-offset:-3px}.review-card-identity{display:flex;align-items:flex-start;gap:12px;min-width:0}.review-card-identity>div{min-width:0}.review-work-card h2{margin:7px 0 3px;color:var(--navy-800);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-work-card p{margin:0;color:var(--muted-ink);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-work-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.review-work-card dl div{min-width:0;padding:9px;border-radius:8px;background:#f4f7f9}.review-work-card dt{font-size:.64rem;color:#73858f}.review-work-card dd{margin:2px 0 0;font-size:.75rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-card-toggle{display:grid;place-items:center;width:40px;height:40px;border:1px solid #c5d4db;border-radius:10px;color:var(--navy-800);transition:transform .2s,background-color .2s,color .2s}.review-work-card[open] .review-card-toggle{transform:rotate(180deg);background:var(--navy-800);color:#fff}.review-card-body{display:grid;grid-template-rows:0fr;opacity:0;border-top:1px solid transparent;transition:grid-template-rows .24s ease,opacity .18s ease,border-color .18s}.review-card-body>div{overflow:hidden;padding:0 20px}.review-work-card[open] .review-card-body{grid-template-rows:1fr;opacity:1;border-top-color:var(--border-soft)}.review-work-card[open] .review-card-body>div{padding-top:18px;padding-bottom:20px}.review-card-actions{display:flex;justify-content:flex-end;margin-bottom:14px}
@media(max-width:1100px){.review-work-card>summary{grid-template-columns:minmax(0,1fr) 42px}.review-work-card>summary dl{grid-column:1/-1}.review-card-toggle{grid-column:2;grid-row:1}.review-card-identity{grid-column:1;grid-row:1}}
@media(max-width:700px){.review-page-heading{align-items:flex-start}.review-toolbar{align-items:stretch;flex-direction:column}.review-toolbar input{font-size:16px}.review-work-card>summary{grid-template-columns:minmax(0,1fr) 42px;min-height:0;padding:16px}.review-card-identity{display:grid;gap:8px}.review-work-card>summary dl{grid-template-columns:1fr}.review-card-body>div{padding-inline:16px}.wizard-pane .custom-select-menu{max-height:min(320px,50vh)}}
.review-queue{align-items:start}

/* Revisiones en cuadrícula: las operaciones viven en modales y no alteran la bandeja. */
.review-work-card{flex-direction:column}
.review-queue{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px}.review-work-card{display:flex;min-width:0;min-height:270px;padding:19px;border-radius:12px;overflow:hidden}.review-card-stage{display:flex;min-height:30px;align-items:center;justify-content:center}.review-card-stage .status-pill{display:inline-flex;min-height:28px;align-items:center;justify-content:center;padding-inline:13px;line-height:1;text-align:center}.review-card-identity{display:block;min-width:0;margin:16px 0 14px;text-align:center}.review-work-card .review-card-identity h2{display:-webkit-box;min-height:2.5em;margin:0;color:var(--navy-800);font-size:1.02rem;line-height:1.25;white-space:normal;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.review-work-card .review-card-identity p{margin:7px 0 3px;color:#607580;font-size:.76rem;font-weight:850;white-space:normal}.review-card-identity small{display:block;min-height:1.35em;color:var(--muted-ink);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-work-card>dl{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 17px}.review-work-card>dl div{min-width:0;padding:10px;border-radius:8px;background:#f4f7f9}.review-work-card>dl dt{color:#73858f;font-size:.64rem}.review-work-card>dl dd{margin:3px 0 0;font-size:.75rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-open-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;margin:auto auto 0;padding:8px 15px;border:1px solid #b7cad3;border-radius:9px;background:#fff;color:var(--navy-800);font:inherit;font-size:.78rem;font-weight:850;cursor:pointer;transition:border-color .18s,background-color .18s,color .18s,transform .18s}.review-open-button:hover{border-color:var(--navy-800);background:var(--navy-800);color:#fff;transform:translateY(-1px)}.review-open-button:focus-visible{outline:3px solid rgba(0,181,226,.22);outline-offset:2px}
.review-dialog{width:min(720px,calc(100% - 32px))}.review-dialog .admin-dialog-heading{align-items:flex-start}.review-dialog .admin-dialog-heading h2{overflow-wrap:anywhere}.review-dialog-summary{display:flex;align-items:flex-end;gap:16px;margin:20px 0}.review-dialog-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:1;gap:10px;margin:0}.review-dialog-summary dl div{padding:11px;border-radius:9px;background:#f4f7f9}.review-dialog-summary dt{color:#73858f;font-size:.68rem}.review-dialog-summary dd{margin:3px 0 0;color:#2e424d;font-size:.81rem;font-weight:800}.review-expedient-link{display:inline-flex;min-height:40px;align-items:center;gap:7px;padding:8px 2px;color:var(--navy-800);font-size:.78rem;font-weight:850;text-decoration:none}.review-expedient-link:hover{text-decoration:underline;text-underline-offset:4px}.review-dialog .review-resolution-form{margin-top:0}.review-dialog .assigned-notice{margin-top:18px}
@media(max-width:1120px){.review-queue{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.review-queue{grid-template-columns:1fr}.review-work-card{min-height:250px}.review-dialog-summary{align-items:stretch;flex-direction:column}.review-dialog-summary dl{width:100%;grid-template-columns:1fr}.review-expedient-link{align-self:flex-end}.review-dialog .admin-dialog-form{padding:20px}}

/* Los modales aíslan la interacción y el desplazamiento de la página de fondo. */
html.has-open-dialog,body.has-open-dialog{overflow:hidden;overscroll-behavior:none}
.review-work-card>dl dd.review-schedule{display:grid;gap:1px;white-space:normal;overflow:visible;line-height:1.35}.review-schedule time{display:block}.review-schedule span{color:#7a8d97;font-weight:600}.review-dialog-summary dl{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.review-dialog-summary dl{grid-template-columns:1fr}}

/* Acciones visualmente equilibradas en administración y solicitudes. */
.module-shell .request-create-actions{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(290px,1.2fr);align-items:stretch;gap:9px;width:min(100%,520px)}
.module-shell .dashboard-welcome{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
.module-shell .dashboard-welcome>div:first-child{min-width:0}
.module-shell .dashboard-welcome>.request-create-actions{justify-self:end}
.module-shell .request-create-actions .button-primary,.module-shell .request-create-actions .button-secondary{width:100%;min-height:44px;height:100%;margin:0;padding:9px 13px;justify-content:center;gap:9px;text-align:center;font-size:.88rem;white-space:nowrap}
.module-shell .admin-heading-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:min(100%,470px)}
.module-shell .admin-heading-actions>*,.module-shell .admin-heading-actions form,.module-shell .admin-heading-actions button{width:100%;height:100%;margin:0}
.module-shell .admin-actions-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:8px;width:100%;min-width:330px}
.module-shell .admin-actions-three>*,.module-shell .admin-actions-three form,.module-shell .admin-actions-three button{width:100%;height:100%;min-height:48px;margin:0}
@media(max-width:980px){.module-shell .admin-heading-actions{width:100%}}
@media(max-width:700px){.module-shell .request-create-actions,.module-shell .admin-heading-actions,.module-shell .admin-actions-three{grid-template-columns:1fr;min-width:0;width:100%}.module-shell .dashboard-welcome>.request-create-actions{justify-self:stretch}.module-shell .request-create-actions .button-primary,.module-shell .request-create-actions .button-secondary{white-space:normal}}

/* La cabecera de Solicitudes conserva ambas acciones en una sola fila de escritorio. */
@media(min-width:981px){.module-shell .page-heading>.section-heading-actions.request-create-actions{display:grid;flex:0 0 520px;min-width:520px;width:520px;grid-template-columns:minmax(170px,.8fr) minmax(290px,1.2fr);flex-wrap:nowrap}}
@media(min-width:701px) and (max-width:980px){.module-shell .page-heading{align-items:flex-start;flex-direction:column}.module-shell .page-heading>.section-heading-actions.request-create-actions{display:grid;min-width:0;width:min(100%,520px);grid-template-columns:minmax(170px,.8fr) minmax(290px,1.2fr);flex-wrap:nowrap}}

.wizard-secondary-actions{display:flex;align-items:center;gap:9px}
@media(max-width:420px){.wizard-secondary-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}}

.request-cancel-brand{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-5px 0 23px;padding-bottom:18px;border-bottom:1px solid var(--border-soft);text-align:left}.request-cancel-brand .institution-lockup{gap:10px}.request-cancel-brand .institution-logo{height:35px;max-width:112px}.request-cancel-brand .institution-logo-buap{width:42px;height:42px}.request-cancel-brand>span{display:grid;flex:0 0 auto;padding-left:14px;border-left:1px solid #cad7dd;color:var(--navy-800)}.request-cancel-brand>span strong{font-size:1rem;letter-spacing:.08em}.request-cancel-brand>span small{color:var(--muted-ink);font-size:.68rem}.request-cancel-dialog #request-cancel-message{max-width:430px;margin:0 auto;color:var(--muted-ink);font-size:.88rem;line-height:1.6}
.admin-requests-table{border:1px solid var(--border-soft);border-radius:12px}.admin-requests-table .button-danger,.admin-requests-table .button-secondary{min-height:38px;padding:8px 11px;font-size:.74rem;white-space:nowrap}.request-cancellation-reason{max-width:360px;margin-top:7px!important;padding:7px 9px;border-left:3px solid #a52f39;background:#fff5f5;color:#6f3035!important;line-height:1.45}.request-cancellation-reason b{display:inline}.cancellation-preservation-note{display:grid;gap:4px;margin:20px 0;padding:14px 15px;border:1px solid #d7c38d;border-radius:11px;background:#fff8e8;color:#6c5117;font-size:.8rem;line-height:1.5}.cancellation-preservation-note strong{color:#5d4210}.admin-dialog-form>.block-label{display:grid;gap:7px;color:#344955;font-size:.8rem;font-weight:800}.admin-dialog-form>.block-label small{color:#71838d;font-weight:500}.admin-dialog-form>.block-label textarea{resize:vertical}
@media(max-width:520px){.request-cancel-brand{align-items:flex-start;flex-direction:column}.request-cancel-brand>span{padding:0;border-left:0}.request-cancel-brand .institution-logo{max-width:105px}.request-cancel-dialog .admin-dialog-form{padding:24px 20px}}

.event-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px}.event-meta-row .personal-invitation-badge{margin-top:0}.personal-invitation-badge{display:inline-flex;align-items:center;gap:5px;width:max-content;margin-top:5px;padding:3px 8px;border:1px solid #75cbe2;border-radius:999px;background:#e7f8fc;color:#005f7d;font-size:.68rem;font-weight:900;letter-spacing:.01em}.timeline-event.is-personally-invited{position:relative;margin:9px 0;padding:16px 14px;border:1px solid #b8e6f1;border-left:6px solid var(--cyan-500);border-radius:12px;background:linear-gradient(100deg,rgba(0,181,226,.12),#fff 72%);box-shadow:0 5px 14px rgba(0,84,112,.08)}.timeline-event.is-personally-invited>time{box-shadow:0 3px 8px rgba(0,43,69,.1)}.week-calendar-event.is-personally-invited{position:relative;outline:2px solid #00a9d6;outline-offset:-1px;background:linear-gradient(145deg,#e3f8fd,#f7fdff);box-shadow:0 4px 12px rgba(0,105,135,.2)}.calendar-invitation-badge{display:inline-flex!important;align-items:center;width:max-content;margin:4px 0 3px!important;padding:2px 6px;border-radius:999px;background:var(--navy-800);color:#fff!important;font-size:.53rem!important;font-weight:950!important;line-height:1.35!important;letter-spacing:.045em;text-transform:uppercase;box-shadow:0 2px 5px rgba(0,43,69,.22)}.week-calendar-event.is-personally-invited:hover{background:#d8f1f7;box-shadow:0 6px 15px rgba(0,105,135,.25)}
.personal-invitation-notice{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding:16px 18px;border:1px solid #65c9e3;border-left:6px solid var(--cyan-500);border-radius:12px;background:linear-gradient(110deg,#e4f8fd,#fff 74%);color:var(--navy-800);box-shadow:0 7px 20px rgba(0,105,135,.09)}.personal-invitation-notice>span{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--navy-800);color:#fff;font-size:1.15rem}.personal-invitation-notice strong,.personal-invitation-notice small{display:block}.personal-invitation-notice strong{font-size:.94rem}.personal-invitation-notice small{margin-top:3px;color:#526d79;font-size:.78rem;line-height:1.45}
@media(max-width:480px){.timeline-event.is-personally-invited{padding:14px 10px;column-gap:9px}.timeline-event.is-personally-invited .personal-invitation-badge{white-space:nowrap}.timeline-event.is-personally-invited .icon-button{margin-right:0}}

.help-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:22px;padding:30px 34px;border-radius:18px;background:linear-gradient(125deg,var(--navy-800),#006a8d);color:#fff;box-shadow:var(--shadow)}.help-hero .eyebrow{color:#73ddf5}.help-hero h1{margin:.25rem 0;font-size:clamp(1.8rem,4vw,2.65rem);letter-spacing:-.035em}.help-hero p:last-child{max-width:650px;margin:0;color:#d6edf4;line-height:1.6}.help-hero-mark{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid rgba(255,255,255,.28);border-radius:14px;background:rgba(255,255,255,.1)}.help-hero-mark span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--cyan-500);font-size:1.2rem;font-weight:950}.help-hero-mark strong{letter-spacing:.08em}.help-section-nav{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:28px;padding:13px}.help-section-nav a{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 13px;border-radius:9px;color:var(--navy-800);font-size:.8rem;font-weight:850;text-decoration:none}.help-section-nav a:hover{background:#e8f6fa}.help-section-nav span{min-width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#dff4fa;color:#00779c;font-size:.68rem}.help-section{margin-top:30px;scroll-margin-top:20px}.help-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px;padding:0 4px}.help-section-heading h2{margin:.2rem 0 0;color:var(--navy-800);font-size:1.35rem}.help-section-heading>span{color:#718590;font-size:.76rem;font-weight:800}.help-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.help-topic-card{display:grid;grid-template-rows:auto auto 1fr;gap:17px;padding:22px;overflow:hidden}.help-topic-copy h3{margin:.25rem 0 .4rem;color:var(--navy-800);font-size:1.08rem}.help-topic-copy>p:last-child{margin:0;color:#667a85;font-size:.84rem;line-height:1.55}.help-video{aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;border:1px dashed #a9cad6;border-radius:12px;background:linear-gradient(145deg,#edf7fa,#f9fcfd)}.help-video iframe{width:100%;height:100%;border:0}.help-video-placeholder{text-align:center;padding:20px;color:#5e7580}.help-video-placeholder>span{width:44px;height:44px;display:grid;place-items:center;margin:0 auto 10px;padding-left:3px;border-radius:50%;background:var(--navy-800);color:#fff}.help-video-placeholder strong,.help-video-placeholder small{display:block}.help-video-placeholder strong{color:var(--navy-800);font-size:.86rem}.help-video-placeholder small{max-width:300px;margin:5px auto 0;font-size:.72rem;line-height:1.45}.help-steps{padding-top:15px;border-top:1px solid var(--border-soft)}.help-steps>strong{color:#38505b;font-size:.8rem}.help-steps ol{display:grid;gap:9px;margin:11px 0 0;padding-left:25px}.help-steps li{padding-left:3px;color:#607580;font-size:.78rem;line-height:1.5}.help-steps li::marker{color:#008bb5;font-weight:900}.help-flow-note{display:flex;align-items:flex-start;gap:16px;margin-top:28px;background:#eef8f5}.help-flow-note>span{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#19704f;color:#fff;font-weight:950}.help-flow-note h2{margin:.2rem 0;color:var(--navy-800);font-size:1.05rem}.help-flow-note p:last-child{margin:0;color:#5e746e;font-size:.82rem;line-height:1.55}
@media(max-width:760px){.help-hero{align-items:flex-start;padding:25px 22px}.help-hero-mark{display:none}.help-topic-grid{grid-template-columns:1fr}.help-section-nav{display:grid;grid-template-columns:1fr 1fr}.help-section-nav a{background:#f3f8fa}.help-topic-card{padding:19px}.help-section-heading{align-items:flex-start}}
@media(max-width:420px){.help-section-nav{grid-template-columns:1fr}.help-hero{padding:22px 19px}.help-flow-note{padding:18px}}

.help-accordion{display:grid;gap:12px}.help-topic-accordion{padding:0;overflow:hidden}.help-topic-accordion>summary{display:grid;grid-template-columns:112px minmax(0,1fr) 38px;align-items:center;gap:17px;padding:19px 22px;cursor:pointer;list-style:none}.help-topic-accordion>summary::-webkit-details-marker{display:none}.help-topic-accordion>summary:hover{background:#f5fafc}.help-topic-accordion[open]>summary{background:linear-gradient(90deg,#e9f8fc,#fff);border-bottom:1px solid #d7e5eb}.help-section-number{display:inline-flex;justify-content:center;padding:6px 9px;border-radius:999px;background:var(--navy-800);color:#fff;font-size:.7rem;font-weight:900;white-space:nowrap}.help-summary-copy strong,.help-summary-copy small{display:block}.help-summary-copy strong{color:var(--navy-800);font-size:1rem}.help-summary-copy small{margin-top:4px;color:#697d88;font-size:.78rem;line-height:1.45}.help-summary-chevron{position:relative;width:32px;height:32px;border:1px solid #cbdce3;border-radius:50%}.help-summary-chevron:before,.help-summary-chevron:after{content:"";position:absolute;left:9px;right:9px;top:15px;border-top:2px solid var(--navy-800)}.help-summary-chevron:after{transform:rotate(90deg);transition:transform .2s ease}.help-topic-accordion[open] .help-summary-chevron:after{transform:rotate(0)}.help-topic-body{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:24px;padding:22px}.help-topic-body .help-video{align-self:start}.help-topic-body .help-steps{padding:3px 0 0;border-top:0}.help-topic-body .help-steps>strong{font-size:.88rem;color:var(--navy-800)}.help-topic-body .help-steps ol{gap:12px;margin-top:14px}.help-topic-body .help-steps li{font-size:.82rem}.help-topic-body .help-steps li::marker{font-size:.9rem}.help-topic-grid{grid-template-columns:1fr}
@media(max-width:760px){.help-topic-accordion>summary{grid-template-columns:1fr 34px;gap:9px 12px;padding:17px}.help-section-number{grid-column:1;width:max-content}.help-summary-copy{grid-column:1}.help-summary-chevron{grid-column:2;grid-row:1/3;align-self:center}.help-topic-body{grid-template-columns:1fr;padding:17px}.help-topic-body .help-video{max-width:100%}}
@media(max-width:420px){.help-summary-copy strong{font-size:.94rem}.help-summary-copy small{font-size:.75rem}.help-topic-body{gap:18px;padding:14px}}

.help-video-list{display:grid;gap:14px;align-self:start}.help-video.has-video{position:relative}.help-video-number{position:absolute;z-index:1;top:8px;left:8px;padding:4px 7px;border-radius:999px;background:rgba(0,43,69,.9);color:#fff;font-size:.64rem;font-weight:900}.help-official-access,.help-bookmark-tip{display:flex;align-items:flex-start;gap:12px;margin-top:14px;padding:14px;border-radius:11px}.help-official-access{border:1px solid #b8dfeb;background:#eef9fc}.help-bookmark-tip{border-left:4px solid #f4b41a;background:#fff8e7}.help-official-access>span,.help-bookmark-tip>span{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-weight:950}.help-official-access>span{background:var(--navy-800);color:#fff}.help-bookmark-tip>span{background:#f4b41a;color:#493400}.help-official-access p,.help-bookmark-tip p{margin:4px 0 10px;color:#5d737e;font-size:.77rem;line-height:1.5}.help-official-access .button-link{width:max-content;min-height:38px;padding:8px 12px;font-size:.74rem}.help-bookmark-tip kbd{display:inline-block;min-width:23px;padding:2px 5px;border:1px solid #cbd5da;border-bottom-width:2px;border-radius:5px;background:#fff;color:#304550;font:inherit;font-size:.7rem;font-weight:900;text-align:center}
@media(max-width:420px){.help-official-access,.help-bookmark-tip{padding:12px}.help-official-access>span,.help-bookmark-tip>span{display:none}.help-official-access .button-link{width:100%;text-align:center}}

/* Estados de error con identidad institucional y acciones de recuperación claras. */
.error-state{position:relative;max-width:820px;margin:clamp(28px,6vh,70px) auto;padding:clamp(28px,5vw,54px);border:1px solid #d3e1e7;border-radius:20px;background:#fff;text-align:center;box-shadow:0 22px 55px rgba(0,43,69,.12);overflow:hidden}.error-state:before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,var(--navy-800),var(--cyan-500))}.error-state-code{position:absolute;top:20px;right:24px;color:#dbe8ed;font-size:clamp(3rem,9vw,6rem);font-weight:950;line-height:1;letter-spacing:-.07em}.error-state-icon{position:relative;width:82px;height:82px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;background:#e8f7fb;color:#007da3}.error-state .eyebrow{position:relative}.error-state h1{position:relative;margin:8px 0 12px;color:var(--navy-800);font-size:clamp(1.75rem,5vw,2.55rem);letter-spacing:-.035em}.error-state-message{max-width:610px;margin:0 auto;color:#405965;font-size:1rem;font-weight:750;line-height:1.55}.error-state-hint{max-width:590px;margin:10px auto 0;color:#70838d;font-size:.86rem;line-height:1.6}.error-state-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:27px}.error-state-actions a{min-width:170px;justify-content:center;text-decoration:none}.error-state-detail{max-width:590px;margin:20px auto 0;padding:12px;border-radius:9px;background:#f3f7f9;text-align:left}.error-state-detail summary{color:#4d6570;font-size:.75rem;font-weight:850;cursor:pointer}.error-state-detail code{display:block;margin-top:8px;color:#7a3333;font-size:.72rem;overflow-wrap:anywhere}.auth-page .error-state{align-self:center;width:min(100%,620px);margin:30px;padding:clamp(25px,4vw,45px)}
@media(max-width:700px){.error-state{margin:12px auto;padding:35px 20px 25px}.error-state-code{top:17px;right:18px;font-size:3.3rem}.error-state-icon{width:70px;height:70px}.error-state-icon svg{width:52px;height:52px}.error-state-actions{display:grid}.error-state-actions a{width:100%}.auth-page .error-state{width:auto;margin:16px}}

/* Espera visible durante el aval final y la sincronización con Google Calendar. */
html.has-process-overlay,body.has-process-overlay{overflow:hidden;overscroll-behavior:none}.calendar-process-overlay{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,31,49,.76);backdrop-filter:blur(5px)}.calendar-process-overlay[hidden]{display:none}.calendar-process-card{width:min(100%,560px);padding:38px 34px;border:1px solid rgba(255,255,255,.55);border-radius:20px;background:#fff;text-align:center;box-shadow:0 28px 75px rgba(0,20,34,.35)}.calendar-process-spinner{height:66px;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:18px}.calendar-process-spinner span{width:14px;height:14px;border-radius:50%;background:var(--cyan-500);animation:calendar-process-pulse 1.15s ease-in-out infinite}.calendar-process-spinner span:nth-child(2){animation-delay:.14s}.calendar-process-spinner span:nth-child(3){animation-delay:.28s}.calendar-process-card h2{margin:7px 0 9px;color:var(--navy-800);font-size:1.55rem}.calendar-process-card>p:not(.eyebrow){max-width:440px;margin:0 auto;color:#617681;font-size:.88rem;line-height:1.55}.calendar-process-card>small{display:block;margin-top:19px;color:#788b94;font-size:.72rem}.calendar-process-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:25px 0 0;padding:0;list-style:none}.calendar-process-steps li{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid #d7e2e7;border-radius:10px;color:#71838d;text-align:left;transition:border-color .2s,background-color .2s,color .2s}.calendar-process-steps span{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#e7eef1;font-size:.72rem;font-weight:900}.calendar-process-steps strong{font-size:.75rem}.calendar-process-steps li.is-active{border-color:#69cee7;background:#e9f9fc;color:var(--navy-800)}.calendar-process-steps li.is-active span{background:var(--navy-800);color:#fff}@keyframes calendar-process-pulse{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-12px);opacity:1}}
@media(max-width:520px){.calendar-process-card{padding:30px 19px}.calendar-process-steps{grid-template-columns:1fr}.calendar-process-card h2{font-size:1.32rem}}
@media(prefers-reduced-motion:reduce){.calendar-process-spinner span{animation:none;opacity:1}.calendar-process-steps li{transition:none}}
.time-period-hint{grid-column:1/-1;display:flex;align-items:center;gap:9px;margin:-4px 0 0;color:#526975;font-size:.78rem;line-height:1.45}.time-period-hint>span:first-child{display:inline-grid;flex:0 0 21px;width:21px;height:21px;place-items:center;border:1px solid #9bb6c3;border-radius:50%;color:#006f91;font-size:.72rem;font-weight:900}.time-period-hint strong{color:#304b5a}
.certificate-template-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:4px 0 22px;padding:15px 16px;border:1px solid #a9cbd8;border-radius:11px;background:#eef8fb;color:#294653}.certificate-template-callout[hidden]{display:none}.certificate-template-callout strong{display:block;color:var(--navy-800)}.certificate-template-callout p{max-width:640px;margin:4px 0 0;font-size:.79rem;line-height:1.5}.certificate-template-callout .button-secondary{flex:0 0 auto}.certificate-request-card{border-top:4px solid var(--cyan-500)}.certificate-file-actions{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:15px;margin:20px 0}.certificate-upload-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:12px}.certificate-upload-form label{display:grid;gap:6px;color:#30434e;font-size:.8rem;font-weight:800}.certificate-upload-form input{width:100%;padding:9px;border:1px solid #bdcbd3;border-radius:9px;background:#fff}.certificate-preview{margin-top:20px;padding:17px;border:1px solid #d4e0e5;border-radius:12px;background:#f8fafb}.certificate-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.certificate-preview-heading strong,.certificate-preview-heading small{display:block}.certificate-preview-heading small,.certificate-coordinator small,.certificate-collaborators small{margin-top:3px;color:#6d808a;font-size:.75rem}.certificate-coordinator{margin:18px 0 0}.certificate-coordinator>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:15px;padding:13px 14px;border-radius:9px;background:#e7f4f8}.certificate-coordinator dt{color:#55707e;font-size:.73rem;font-weight:850;text-transform:uppercase}.certificate-coordinator dd{margin:0;color:#203943;font-weight:800}.certificate-collaborators{margin-top:18px}.certificate-collaborators h3{margin:0 0 9px;color:var(--navy-800);font-size:.95rem}.certificate-collaborators ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;counter-reset:collaborator}.certificate-collaborators li{counter-increment:collaborator;padding:10px 12px;border:1px solid #d8e2e7;border-radius:9px;background:#fff}.certificate-collaborators li:before{content:counter(collaborator) ". ";color:#71838d;font-weight:800}.certificate-collaborators li strong,.certificate-collaborators li small{display:inline}.certificate-collaborators li small:before{content:" · "}@media(max-width:700px){.certificate-template-callout,.certificate-preview-heading{align-items:stretch;flex-direction:column}.certificate-template-callout .button-secondary{width:100%}.certificate-file-actions,.certificate-upload-form{grid-template-columns:1fr}.certificate-collaborators ol{grid-template-columns:1fr}}

/* Confirmación y lectura adaptable de los archivos que forman parte del expediente. */
.certificate-identity-rule{display:grid;gap:4px;margin:16px 0;padding:13px 14px;border-left:4px solid var(--cyan-500);border-radius:9px;background:#eef8fb;color:#405d69}.certificate-identity-rule strong,.certificate-identity-rule span,.certificate-identity-rule small{display:block}.certificate-identity-rule strong{color:var(--navy-800);font-size:.8rem}.certificate-identity-rule span{font-weight:850;overflow-wrap:anywhere}.certificate-identity-rule small{color:#607985;overflow-wrap:anywhere;word-break:break-word}.certificate-identity-rule p{margin:4px 0 0;font-size:.76rem;line-height:1.5}.certificate-organizer{margin:18px 0 0}.certificate-organizer>div{display:grid;grid-template-columns:minmax(110px,.3fr) minmax(0,1fr);align-items:start;gap:15px;padding:13px 14px;border-radius:9px;background:#e7f4f8}.certificate-organizer dt{color:#55707e;font-size:.73rem;font-weight:850;text-transform:uppercase}.certificate-organizer dd{min-width:0;margin:0;color:#203943;font-weight:800}.certificate-organizer dd strong,.certificate-organizer dd small{display:block}.certificate-organizer dd small{margin-top:4px;color:#6d808a;font-size:.75rem;overflow-wrap:anywhere;word-break:break-word}.certificate-preview>.module-alert{margin-top:18px}.certificate-collaborators ol{grid-template-columns:1fr}.certificate-person{display:grid;gap:4px}.certificate-person strong,.certificate-person small{line-height:1.35}
.submit-lock-note{display:grid;gap:3px;margin:14px 0 4px;padding:12px 13px;border-left:4px solid var(--cyan-500);border-radius:8px;background:#eaf7fa;color:#49616d}.submit-lock-note strong{color:var(--navy-800);font-size:.78rem}.submit-lock-note span{font-size:.75rem;line-height:1.5}.document-upload-form .button-secondary{margin:0}.certificate-file-identity{min-width:0}.certificate-file-identity strong{overflow-wrap:anywhere}.certificate-coordinator>div{grid-template-columns:minmax(110px,.3fr) minmax(0,1fr);align-items:start}.certificate-coordinator dd{min-width:0}.certificate-coordinator dd strong,.certificate-coordinator dd small{display:block}.certificate-coordinator dd small,.certificate-person small{overflow-wrap:anywhere;word-break:break-word}.certificate-collaborators li{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:9px;counter-increment:none}.certificate-collaborators li:before,.certificate-collaborators li small:before{content:none}.certificate-collaborator-number{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#e4f2f6;color:#486674;font-size:.72rem;font-weight:900}.certificate-person{min-width:0}.certificate-person strong,.certificate-person small{display:block}.certificate-person small{margin-top:4px}
.submit-card form[data-final-submit-form]{display:grid;gap:12px;margin-top:14px}.submit-review-confirmation{margin:0;text-align:left}.submit-card .button-primary:disabled{background:#9aabb3;color:#edf2f4;cursor:not-allowed;box-shadow:none;opacity:.78}
@media(max-width:700px){.certificate-organizer>div,.certificate-coordinator>div{grid-template-columns:1fr;gap:7px}.certificate-preview-heading .button-link{width:100%;justify-content:center}.certificate-collaborators ol{grid-template-columns:1fr}}
@media(max-width:440px){.certificate-preview{padding:13px}.certificate-collaborators li{grid-template-columns:26px minmax(0,1fr);padding:10px}.certificate-collaborator-number{width:23px;height:23px}.submit-lock-note{padding:11px}}

.schedule-options{min-width:0;margin:0;padding:0;border:0}.schedule-options legend{padding:0;margin-bottom:9px;color:#30434e;font-size:.84rem;font-weight:750}.schedule-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .schedule-choice{display:flex;align-items:center;gap:11px;min-width:0;padding:14px;border:1px solid #cbd9e0;border-radius:11px;background:#fff;cursor:pointer}.schedule-choice:has(input:checked){border-color:#007da5;background:#eff9fc;box-shadow:inset 0 0 0 1px #007da5}.schedule-choice:focus-within{outline:3px solid rgba(0,181,226,.22);outline-offset:2px}.form-grid .schedule-choice input{flex:0 0 18px;width:18px;height:18px;padding:0;margin:0;accent-color:#007da5;box-shadow:none}.schedule-choice strong,.schedule-choice small{display:block}.schedule-choice small{margin-top:3px;color:#657984;font-size:.76rem;font-weight:500;line-height:1.45}.schedule-summary{display:flex;gap:12px;margin:0;padding:16px 18px;border:1px solid #cce7ee;border-left:4px solid #008bb3;border-radius:11px;background:#edf8fb;color:#003b5c}.schedule-summary-icon{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:50%;background:#007da5;color:#fff;font-weight:800}.schedule-summary-copy{min-width:0}.schedule-summary-copy>strong{font-size:.88rem}.schedule-summary-copy>p{margin:5px 0 7px;font-size:.88rem;line-height:1.55;font-weight:650}.schedule-summary-copy>small{display:block;color:#486674;font-size:.78rem;line-height:1.6}.schedule-summary details{margin-top:12px;padding-top:10px;border-top:1px solid #c9e2ea}.schedule-summary summary{width:fit-content;color:#006b89;font-size:.8rem;font-weight:750;cursor:pointer}.schedule-summary summary:focus-visible{outline:2px solid #007da5;outline-offset:4px}.schedule-summary ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 26px;max-height:210px;overflow:auto;margin:12px 0 0;padding-left:22px;font-size:.8rem;color:#486674}.schedule-summary[hidden],.schedule-options[hidden]{display:none}
.availability-note>span{flex:0 0 27px;min-width:27px;aspect-ratio:1;line-height:1;font-size:16px}.availability-note>div{flex:1;min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.schedule-choice-grid{grid-template-columns:1fr}.schedule-summary{padding:14px}.schedule-summary ol{grid-template-columns:1fr}}
