/* ESTILOS GLOBALES */
/* Alertas contextuales reutilizadas por formularios y módulos. */
.alert-sige{display:flex;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid transparent;border-radius:13px;font-size:.82rem;line-height:1.5}
.alert-sige-primary{border-color:#bfdbfe;background:#eff6ff;color:#1e40af}
.alert-sige-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
.alert-sige-warning{border-color:#fde68a;background:#fffbeb;color:#92400e}
.alert-sige-danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.system-alert{position:fixed;z-index:120;top:18px;right:20px;left:20px;width:auto;margin:0;font-weight:600;box-shadow:0 14px 34px rgba(15,23,42,.16);transition:opacity .2s ease,transform .2s ease}
.system-alert.is-leaving{opacity:0;transform:translateY(-8px)}
.system-alert__icon{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;margin-top:2px}
.system-alert__icon svg{width:16px;height:16px;fill:currentColor;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.system-alert__content{display:grid;min-width:0;gap:7px}.system-alert__details{display:flex;flex-wrap:wrap;gap:5px 12px;margin:0}.system-alert__details div{display:flex;gap:4px}.system-alert__details dt{opacity:.72}.system-alert__details dd{margin:0;font-weight:800;overflow-wrap:anywhere}
html[data-theme=dark] .alert-sige{border-color:var(--border);background:var(--surface);color:var(--text)}
html[data-theme=dark] .alert-sige-primary{border-color:rgba(83,189,235,.38);background:rgba(83,189,235,.1);color:#53bdeb}
html[data-theme=dark] .alert-sige-success{border-color:rgba(74,222,128,.38);background:rgba(22,163,74,.1);color:#86efac}
html[data-theme=dark] .alert-sige-warning{border-color:rgba(251,191,36,.38);background:rgba(217,119,6,.1);color:#fcd34d}
html[data-theme=dark] .alert-sige-danger{border-color:rgba(248,113,113,.38);background:rgba(220,38,38,.1);color:#fca5a5}
@media(max-width:620px){.system-alert{top:12px;right:14px;left:14px;width:auto;margin:0}.alert-sige{padding:13px 14px;font-size:.78rem}}
/* Fuente: componentes/breadcrumb.php */
.breadcrumb{margin-bottom:20px}.breadcrumb ol{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none}.breadcrumb li{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:500}.breadcrumb a{color:var(--institutional-muted);text-decoration:none;transition:color .16s ease}.breadcrumb a:hover{color:var(--institutional)}.breadcrumb li[aria-current="page"]{color:var(--text);font-weight:650}.breadcrumb svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Fuente: componentes/modal.php */
.app-modal{width:min(92vw,520px);max-width:none;overflow:hidden;padding:0;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 28px 80px rgba(15,23,42,.3);color:var(--text)}
.app-modal[open]{animation:app-modal-in .2s ease-out}
.app-modal::backdrop{background:rgba(15,23,42,.58);backdrop-filter:blur(5px)}
.app-modal__head{display:flex;min-height:78px;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:var(--institutional-glass);color:#fff}
.app-modal__title{display:flex;min-width:0;align-items:center;gap:12px}
.app-modal__title>div{min-width:0}
.app-modal__title h2{margin:0;font-size:18px;font-weight:750;letter-spacing:-.02em}
.app-modal__title p{margin:3px 0 0;color:rgba(255,255,255,.62);font-size:10px}
.app-modal__icon{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(255,255,255,.09)}
.app-modal__icon svg,.app-modal__close svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app-modal--danger .app-modal__icon{border-color:rgba(248,113,113,.3);background:rgba(220,38,38,.18);color:#fca5a5}
.app-modal--warning .app-modal__icon{border-color:rgba(251,191,36,.3);background:rgba(217,119,6,.18);color:#fbbf24}
.app-modal--success .app-modal__icon{border-color:rgba(74,222,128,.3);background:rgba(22,163,74,.18);color:#86efac}
.app-modal__close{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.12);border-radius:11px;background:rgba(255,255,255,.07);color:#fff;cursor:pointer}
.app-modal__close:hover{background:rgba(255,255,255,.15)}
.app-modal__body{max-height:min(70vh,620px);overflow:auto;padding:20px;background:var(--surface)}
.app-modal__body>h3:first-child{margin-top:0}
.app-action{display:grid;gap:16px}
.app-action__notice{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--background)}
.app-action__notice>svg{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.app-action__notice strong,.app-action__notice p{display:block;margin:0}
.app-action__notice strong{font-size:13px}.app-action__notice p{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}
.app-action--danger .app-action__notice{border-color:#f1c7cd;background:#fff5f6;color:#bd3547}
.app-action__field{display:grid;gap:7px;color:var(--text);font-size:11px;font-weight:750}
.app-action__field textarea{width:100%;min-height:92px;box-sizing:border-box;resize:vertical;padding:11px 12px;border:1px solid var(--border);border-radius:11px;outline:0;background:var(--background);color:var(--text);font:inherit;font-weight:500}
.app-action__field textarea:focus{border-color:#dc4c5d;box-shadow:0 0 0 3px rgba(220,76,93,.11)}
.app-action__footer{display:flex;justify-content:flex-end;gap:9px;margin:4px -20px -20px;padding:14px 20px;border-top:1px solid var(--border);background:var(--background)}
.app-action__footer--split{justify-content:space-between}
.app-action__footer button{display:inline-flex;height:42px;align-items:center;justify-content:center;gap:7px;padding:0 16px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);cursor:pointer;font-weight:750}
.app-action__footer .app-action__primary{border-color:#ef4853;background:#ef4853;color:#fff}
.app-action__footer .app-action__primary:hover{background:#d93b47}
html[data-theme=dark] .app-action--danger .app-action__notice{border-color:rgba(239,72,83,.35);background:rgba(239,72,83,.08);color:#ff9aa3}
@keyframes app-modal-in{from{opacity:0;transform:translateY(10px) scale(.98)}}
@media(max-width:620px){.app-modal{width:calc(100vw - 28px)}.app-modal__head{min-height:72px;padding:14px 16px}.app-modal__body{padding:16px}.app-action__footer{margin:2px -16px -16px;padding:13px 16px}.app-action__footer button{flex:1}}
.app-modal__close svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Fuente: componentes/navbar.php */
.navbar{position:sticky;top:0;z-index:90;display:flex;width:82px;height:100vh;min-height:0;max-height:100vh;align-self:start;flex-direction:column;overflow:visible;border-right:1px solid var(--border);background:#f1f1f2;color:var(--primary);transition:background .25s ease,border-color .25s ease}
    html[data-theme="dark"] .navbar{background:#25282e}
    .navbar__brand{display:flex;height:var(--shell-header-height);min-height:var(--shell-header-height);align-items:center;justify-content:center;padding:8px 10px;border-bottom:1px solid var(--border)}
    .navbar__logo{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;overflow:hidden;padding:0;border:3px solid #fff;border-radius:14px;background:#fff;box-shadow:0 5px 14px rgba(33,37,43,.12);cursor:zoom-in;transition:transform .18s ease,box-shadow .18s ease}
    .navbar__logo:hover{transform:scale(1.05);box-shadow:0 7px 18px rgba(33,37,43,.17)}
    .navbar__logo:active{transform:scale(.94)}
    .navbar__logo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:11px}
    .navbar__brand>span:last-child{display:none}
    .navbar__nav{display:flex;flex:1;min-height:0;overflow:visible;padding:6px 9px}
    .navbar__menu{display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:space-evenly;margin:0;padding:0;list-style:none}
    @media(min-width:621px){.navbar__menu--grouped{justify-content:flex-start;gap:9px;padding-top:16px}}
    .navbar__menu li{position:relative}
    .navbar__separator{width:42px;height:1px;margin:5px 2px;background:#d9dade}
    .navbar__link{position:relative;display:grid;width:46px;height:43px;min-height:43px;place-items:center;margin:2px 0;padding:0;border-radius:14px;color:#777e87;text-decoration:none;transition:background .2s ease,color .2s ease,transform .16s ease,box-shadow .2s ease}
    .navbar__link>span{display:none}
    .navbar__link svg{width:21px;height:21px;flex:0 0 21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
    .navbar__link::before{position:absolute;inset:10px auto 10px -9px;width:3px;border-radius:0 4px 4px 0;background:#666c75;content:"";opacity:0;transform:scaleY(.4);transition:.2s ease}
    .navbar__link::after{position:absolute;top:50%;left:58px;z-index:100;display:block;padding:8px 11px;border-radius:9px;background:#30343a;box-shadow:0 8px 22px rgba(0,0,0,.18);color:#fff;content:attr(data-label);font-size:12px;font-weight:700;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-5px,-50%);transition:opacity .16s ease,transform .16s ease}
    .navbar__link:hover{background:#e5e5e7;color:#30343a;transform:translateY(-1px)}
    .navbar__link:hover::after,.navbar__link:focus-visible::after{opacity:1;transform:translate(0,-50%)}
    .navbar__link:hover svg{transform:scale(1.06)}
    .navbar__link:active{transform:scale(.97)}
    .navbar__link.is-active{background:var(--institutional-glass);box-shadow:0 8px 20px rgba(15,23,42,.22);color:#fff}
    .navbar__link.is-active::before{opacity:1;transform:scaleY(1)}
    .navbar__link.is-disabled{color:#b9bdc4;cursor:not-allowed;opacity:.58}
    .navbar__link.is-disabled:hover{background:transparent;color:#b9bdc4;transform:none}
    .navbar__link.is-readonly::before{top:7px;right:7px;bottom:auto;left:auto;width:6px;height:6px;border-radius:50%;background:var(--institutional-glass);opacity:.75;transform:none}
    .navbar__footer{display:flex;flex-direction:column;align-items:center;padding:5px 9px 8px;border-top:1px solid #dcdde0}
    .navbar__logout{color:var(--danger)}
    .navbar__footer>small{display:none}
    @media(max-height:670px) and (min-width:621px){.navbar__logo{width:38px;height:38px}.navbar__nav{padding-block:2px}.navbar__link{height:37px;min-height:37px;margin:0}}
    @media(max-width:620px){.navbar{position:fixed;top:auto;right:0;bottom:0;left:0;width:100%;height:calc(68px + env(safe-area-inset-bottom));max-height:none;min-height:0;align-self:auto;padding-bottom:env(safe-area-inset-bottom);overflow:hidden;border-top:1px solid var(--border);border-right:0;background:rgba(255,255,255,.96);box-shadow:0 -8px 28px rgba(15,23,42,.08);backdrop-filter:blur(16px)}html[data-theme="dark"] .navbar{background:rgba(32,35,41,.96)}.navbar__brand,.navbar__footer{display:none}.navbar__nav{width:100%;height:68px;min-height:0;overflow-x:auto;overflow-y:hidden;padding:8px 10px;scrollbar-width:none}.navbar__nav::-webkit-scrollbar{display:none}.navbar__menu{display:flex;width:max-content;min-width:100%;height:100%;align-items:center;justify-content:space-around;flex-direction:row;gap:5px;padding:0}.navbar__menu li{flex:0 0 auto}.navbar__link{width:48px;height:48px;min-height:48px;margin:0;border-radius:15px}.navbar__link::after{display:none}.navbar__link::before{top:auto;right:15px;bottom:2px;left:15px;width:auto;height:3px;border-radius:3px;transform:scaleX(.35)}.navbar__link.is-active::before{background:var(--institutional-glass);transform:scaleX(1)}.navbar__link.is-active{background:var(--institutional-soft);box-shadow:none;color:var(--institutional)}html[data-theme="dark"] .navbar__link.is-active{color:#fff}}
