#auth-gate{position:fixed;inset:0;z-index:1000;background:linear-gradient(145deg,#063b82,#031f4c);display:grid;place-items:center;padding:20px}.auth-card{width:min(100%,430px);background:#fff;border-radius:18px;box-shadow:0 25px 65px #001d4890;padding:30px;display:grid;gap:12px;color:#173d73}.auth-card img{width:130px;height:90px;object-fit:contain;margin:auto}.auth-card h1{text-align:center;color:#062e69;margin:0;font-size:25px}.auth-card p{text-align:center;margin:0 0 8px;color:#6684a6}.auth-card form{display:grid;gap:14px}.auth-card label{display:grid;gap:5px;font-size:12px;font-weight:800}.auth-card input{width:100%;border:1px solid #dbe6f1;border-radius:8px;padding:12px;font:inherit}.auth-card button{margin-top:5px;min-height:43px;cursor:pointer}.auth-card #auth-error{color:#b4233d;background:#fff0f2;border-radius:8px;padding:10px;text-align:left}.sidebar nav a[hidden],.notification-badge[hidden]{display:none!important}.auth-card img[hidden]{display:none!important}
.notification-menu{position:fixed;right:0;top:48px;z-index:120;width:min(390px,calc(100vw - 24px));max-height:min(620px,calc(100vh - 88px));display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid #dbe6f1;border-radius:12px;box-shadow:0 16px 44px #062e6940;color:#173d73}.notification-menu[hidden]{display:none}.notification-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px 11px}.notification-head strong{font-size:15px;color:#062e69}.notification-mark-all,.notification-tab,.notification-read{border:0;background:transparent;color:#0756bd;font:inherit;cursor:pointer;touch-action:manipulation}.notification-mark-all{min-height:36px;padding:6px 8px;font-size:11px;font-weight:800;white-space:nowrap}.notification-mark-all:disabled{color:#91a5bc;cursor:default}.notification-tabs{display:flex;gap:8px;padding:0 16px 10px;border-bottom:1px solid #e3edf6}.notification-tab{min-height:36px;padding:7px 12px;border-radius:18px;font-size:12px;font-weight:800}.notification-tab[aria-selected="true"]{background:#eaf3ff;color:#0756bd}.notification-list{overflow-y:auto;overscroll-behavior:contain;padding:0 12px 8px}.notification-item{position:relative;display:flex;align-items:center;gap:8px;border-bottom:1px solid #edf2f7;padding:8px 2px}.notification-item:last-child{border-bottom:0}.notification-item.is-unread:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#f59a16}.notification-link{flex:1;min-width:0;display:grid;gap:3px;padding:7px 4px;color:#173d73;text-decoration:none}.notification-link b{font-size:12px;color:#062e69}.notification-link span{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.notification-link time{font-size:10px;color:#7b94b1}.notification-item[data-level="attention"] .notification-link b{color:#b96800}.notification-read{min-height:40px;padding:7px 8px;border-radius:7px;font-size:10px;font-weight:800;white-space:nowrap}.notification-read:hover,.notification-mark-all:hover:not(:disabled){background:#eef5fc}.notification-empty{margin:0;padding:24px 12px;text-align:center;color:#6684a6;font-size:12px}.notification-item:focus-within,.notification-tab:focus-visible,.notification-mark-all:focus-visible,.notification-read:focus-visible{outline:2px solid #3485dc;outline-offset:1px;border-radius:8px}
.notification-error{margin:4px 14px 8px;padding:8px 10px;border-radius:7px;background:#fff0f2;color:#a52d41;font-size:11px}
@media(max-width:850px){.topbar{position:relative;z-index:1000}.notification-menu,.notification-menu:not([hidden]){position:fixed;top:calc(58px + env(safe-area-inset-top, 0px) + 8px);left:12px;right:12px;width:auto;max-height:calc(100dvh - 84px - env(safe-area-inset-top, 0px));z-index:2000}.notification-list{max-height:calc(100dvh - 190px - env(safe-area-inset-top, 0px))}.notification-read{min-height:44px}.notification-tab{min-height:40px}}
.auth-input-wrap{position:relative;display:block}.auth-input-wrap input{padding-right:46px!important}.auth-password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;min-height:36px!important;margin:0!important;padding:7px;border:0;background:transparent;color:#4774a5;border-radius:50%;display:grid;place-items:center;cursor:pointer}.auth-password-toggle:hover{background:#eef5fc;color:#0756bd}.auth-password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-password-toggle .eye-hide{display:none}.auth-password-toggle.is-visible .eye-show{display:none}.auth-password-toggle.is-visible .eye-hide{display:block}
/* Keep the eye glyphs on the same fixed box; toggling visibility must not shift the control. */
.auth-password-toggle{box-sizing:border-box;transform:translateY(-50%);transition:color .15s ease,background-color .15s ease}
.auth-password-toggle svg{position:absolute;inset:8px;width:20px;height:20px;display:block;transition:opacity .14s ease,visibility 0s linear .14s}
.auth-password-toggle .eye-show{visibility:visible;opacity:1;transition-delay:0s}
.auth-password-toggle .eye-hide{visibility:hidden;display:block;opacity:0}
.auth-password-toggle.is-visible .eye-show{visibility:hidden;display:block;opacity:0}
.auth-password-toggle.is-visible .eye-hide{visibility:visible;opacity:1;transition-delay:0s}
.delete-code-backdrop{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px;background:#062e6970}
.delete-code-dialog{width:min(100%,440px);padding:24px;background:#fff;border:1px solid #dbe6f1;border-radius:14px;box-shadow:0 20px 60px #001d4850;color:#173d73}
.delete-code-dialog h2{margin:0 0 12px;color:#062e69;font-size:20px}
.delete-code-dialog p{margin:8px 0;color:#6684a6;line-height:1.5;overflow-wrap:anywhere}
.delete-code-dialog label{display:block;margin:18px 0 7px;font-size:12px;font-weight:800}
.delete-code-input{box-sizing:border-box;width:100%;height:44px;padding:10px 12px;border:1px solid #dbe6f1;border-radius:8px;font:16px Nunito,Arial,sans-serif;letter-spacing:.12em;color:#173d73}
.delete-code-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.delete-code-actions button{min-width:120px}
@media(max-width:600px){.delete-code-backdrop{padding:14px}.delete-code-dialog{padding:20px}.delete-code-actions button{min-width:0;flex:1}}

.notification-view-all{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:7px}.notification-view-all:hover{background:#eef5fc}
.notification-history-card{display:grid;gap:14px}.notification-page-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap;padding:10px 0}.notification-page-toolbar label{display:grid;gap:6px;color:#6684a6;font-size:12px;font-weight:800}.notification-page-toolbar input,.notification-page-toolbar select{height:40px;min-width:190px;border:1px solid #dbe6f1;border-radius:8px;padding:8px 11px;color:#173d73;background:#fff;font:13px Nunito,Arial,sans-serif}.notification-page-toolbar .notification-search{flex:1 1 260px}.notification-page-toolbar .notification-search input{width:100%;box-sizing:border-box}.notification-clear-history{margin-left:auto}.notification-history-summary{display:flex;gap:18px;flex-wrap:wrap;color:#6684a6;font-size:12px;font-weight:800}.notification-history-list{display:grid}.notification-history-row{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid #e8eef5;min-width:0}.notification-history-row:last-child{border-bottom:0}.notification-history-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#b7c5d6}.notification-history-row.is-unread .notification-history-dot{background:#f59a16}.notification-history-link{display:grid;gap:4px;min-width:0;flex:1;color:#173d73;text-decoration:none}.notification-history-link strong{font-size:13px;color:#062e69}.notification-history-link span{font-size:12px;overflow-wrap:anywhere}.notification-history-link time{font-size:11px;color:#7b94b1}.notification-history-row[data-level="attention"] .notification-history-link strong{color:#b96800}.notification-history-status{font-size:11px;color:#6684a6;white-space:nowrap}.notification-delete{margin:0;min-width:96px;min-height:36px;padding:8px 16px}.notification-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e8eef5;padding-top:12px;color:#6684a6;font-size:12px}.notification-pagination>div{display:flex;align-items:center;gap:10px}.notification-pagination .filter-button{min-height:36px}.notification-pagination .filter-button:disabled{opacity:.45;cursor:not-allowed}.notification-retention-note{margin:0;color:#6684a6;font-size:11px}.notification-history-row .notification-read{min-height:36px}.notification-history-row:focus-within,.notification-history-row button:focus-visible{outline:2px solid #3485dc;outline-offset:1px;border-radius:8px}@media(max-width:760px){.notification-page-toolbar{align-items:stretch}.notification-page-toolbar label,.notification-page-toolbar input,.notification-page-toolbar select{width:100%;min-width:0;box-sizing:border-box}.notification-clear-history{margin:0;width:100%}.notification-history-row{align-items:flex-start;flex-wrap:wrap}.notification-history-link{flex-basis:calc(100% - 24px)}.notification-history-status{margin-left:21px}.notification-history-row .notification-read{margin-left:auto}.notification-delete{margin-left:auto}.notification-pagination{align-items:flex-start;flex-direction:column}.notification-pagination>div{width:100%;justify-content:space-between}}

/* Notificaciones: acciones arriba a la derecha y filtros ordenados. */
.notification-page-toolbar{display:grid;gap:12px;padding:10px 0}
.notification-toolbar-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}
.notification-toolbar-actions .notification-clear-history{margin-left:0}
.notification-toolbar-actions button{min-height:40px}
.notification-toolbar-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.notification-toolbar-filters label{display:grid;gap:6px;min-width:0;color:#6684a6;font-size:12px;font-weight:800}
.notification-toolbar-filters .notification-search{grid-column:span 2}
.notification-toolbar-filters input,.notification-toolbar-filters select{width:100%;min-width:0;height:40px;box-sizing:border-box;border:1px solid #dbe6f1;border-radius:8px;padding:8px 11px;color:#173d73;background:#fff;font:13px Nunito,Arial,sans-serif}
.notification-priority{padding:4px 8px;border-radius:999px;background:#eef5fc;color:#557391;font-size:10px;font-weight:800;white-space:nowrap}
.notification-priority.is-attention{background:#fff1d7;color:#9a5400}
.notification-history-row .notification-delete{flex:none}
@media(max-width:760px){.notification-toolbar-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.notification-toolbar-filters .notification-search{grid-column:1/-1}.notification-toolbar-actions{align-items:stretch}.notification-toolbar-actions button{flex:1 1 100%;width:100%}.notification-history-row .notification-priority{margin-left:21px}}
@media(max-width:480px){.notification-toolbar-filters{grid-template-columns:1fr}}
#auth-gate{isolation:isolate;overflow:hidden}
#auth-gate::before{content:"";position:absolute;z-index:-1;inset:-3%;background-image:linear-gradient(145deg,rgba(6,59,130,.60),rgba(3,31,76,.72)),var(--auth-background-image,none);background-size:cover;background-position:center;transform:scale(1);animation:login-background-drift 26s ease-in-out infinite alternate}
#auth-gate .auth-card{position:relative;z-index:1}
@keyframes login-background-drift{to{transform:scale(1.07)}}
@media(prefers-reduced-motion:reduce){#auth-gate::before{animation:none}}

/* User create/edit password visibility: accessible 44px target. */
.admin-form .auth-input-wrap input{padding-right:52px!important}
.admin-form .auth-password-toggle{width:44px!important;height:44px!important;min-height:44px!important;right:2px}
.admin-form .auth-password-toggle svg{inset:12px}
.auth-password-toggle:focus-visible{outline:2px solid #0756bd;outline-offset:2px}
.password-requirements{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 16px;margin:-8px 0 2px;padding:0;list-style:none;color:#8493a6;font-size:12px;font-weight:700}
.password-requirements li{display:flex;align-items:center;gap:8px;min-height:22px;transition:color .15s ease}
.password-requirements li::before{content:"";box-sizing:border-box;width:17px;height:17px;flex:none;border:1.5px solid #aab5c2;border-radius:50%;display:grid;place-items:center;font-size:11px;line-height:1;color:transparent}
.password-requirements li.is-valid{color:#17834b}
.password-requirements li.is-valid::before{content:"✓";border-color:#17834b;background:#e7f6ed;color:#17834b;font-weight:900}
@media(max-width:600px){.password-requirements{grid-template-columns:1fr}}
.password-requirements{grid-column:1/3;width:auto;max-width:none;justify-self:stretch}
.admin-form[data-ext-profile] .password-requirements{grid-column:2/4}
.auth-password-toggle svg{inset:0!important;margin:auto;overflow:visible}
.admin-form .auth-password-toggle svg{inset:0!important}
.password-requirements{grid-column:1/3;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 16px}
.auth-input-wrap input{width:100%;box-sizing:border-box}
@media(max-width:850px){.password-requirements,.admin-form[data-ext-profile] .password-requirements{grid-column:1/-1;grid-template-columns:1fr}}
