.generic-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-overflow-scrolling:auto}.generic-modal__backdrop{position:fixed;inset:0;background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.generic-modal__content{position:relative;background-color:#fff;border-radius:1rem;box-shadow:0 25px 50px -12px #00000040;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:hidden;width:100%;z-index:10001}.generic-modal__content--sm{max-width:24rem}.generic-modal__content--md{max-width:32rem}.generic-modal__content--lg{max-width:48rem}.generic-modal__content--xl{max-width:64rem}.generic-modal__content--2xl{max-width:80rem}.generic-modal__content--max-height{height:calc(100vh - 2rem)}.generic-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.generic-modal__title{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0}.generic-modal__close-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:none;color:#6b7280;border-radius:.5rem;cursor:pointer;transition:all .2s ease-in-out}.generic-modal__close-btn:hover{background-color:#f3f4f6;color:#374151}.generic-modal__close-btn svg{width:1.25rem;height:1.25rem}.generic-modal__close-btn--no-header{position:absolute;top:1rem;right:1rem;z-index:10}.generic-modal__body{flex:1;overflow-y:auto;padding:1.5rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;will-change:scroll-position}body.modal-open{overflow:hidden!important;width:100%}.generic-modal__body--no-header{padding:2rem}.generic-modal__body--max-height{max-height:calc(100vh - 8rem)}@media(max-width:768px){.generic-modal__header{padding:1rem}.generic-modal__title{font-size:1.25rem}.generic-modal__body{padding:1rem}.generic-modal__body--no-header{padding:1.5rem}}@media(max-width:480px){.generic-modal{padding:0}.generic-modal__content{max-height:100dvh;height:100dvh;border-radius:0}.generic-modal__content--max-height{height:100dvh}.generic-modal__header{padding:.75rem 1rem}.generic-modal__title{font-size:1rem}.generic-modal__body{padding:.75rem}}[data-theme=dark] .generic-modal__content{background-color:#2c2c2e}[data-theme=dark] .generic-modal__header{border-bottom-color:#ffffff1a}[data-theme=dark] .generic-modal__title{color:#f5f5f7}[data-theme=dark] .generic-modal__close-btn{color:#8e8e93}[data-theme=dark] .generic-modal__close-btn:hover{background-color:#3a3a3c;color:#f5f5f7}.audit-table-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--table-border-color, #d1d5db);flex-wrap:wrap}.audit-table-head__title{font-size:1rem;font-weight:600;color:var(--t1);margin:0 0 2px}.audit-table-head__sub{font-size:.8125rem;color:var(--t2);margin:0}.audit-table-head__right{display:flex;align-items:center;gap:.75rem}.audit-count-badge{background:var(--bg);border:1px solid var(--border-strong, #d1d5db);border-radius:20px;padding:4px 14px;font-size:.8125rem;color:var(--t2);font-weight:500}.audit-btn-export{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#52ac83;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s;white-space:nowrap}.audit-btn-export:hover{background:#429970}.audit-filters{flex-shrink:0;min-height:0;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-strong, #d1d5db);flex-wrap:wrap;background:var(--bg)}[data-theme=dark] .audit-filters{background:#ffffff05}.audit-filter-label{font-size:.875rem;color:var(--t2);font-weight:500}.audit-select,.audit-search{padding:.75rem 2rem .75rem .75rem;border:1px solid var(--border-strong, #d1d5db);border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--t1);background:var(--bg-card);cursor:pointer;font-family:inherit;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 24 24' stroke='%236b7280' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px 2px #0000000a;min-width:160px}.audit-select:focus,.audit-search:focus{border-color:#52ac83;box-shadow:0 0 0 2px #52ac8326}.audit-search{width:240px}.audit-search::placeholder{color:#9ca3af}.audit-date-input{padding:.75rem;border:1px solid var(--border-strong, #d1d5db);border-radius:.5rem;font-size:.875rem;font-weight:500;color:var(--t1);background:var(--bg-card);font-family:inherit;outline:none;cursor:text;transition:border-color .15s,box-shadow .15s;min-width:130px;box-shadow:inset 0 1px 2px #0000000a}.audit-date-input:focus{border-color:#52ac83;box-shadow:0 0 0 2px #52ac8326}[data-theme=dark] .audit-date-input{background:#1c1c1e;border-color:#ffffff1a;color:#f5f5f7;color-scheme:dark}.audit-filter-date-sep{font-size:.875rem;color:var(--t2);flex-shrink:0;font-weight:500}.audit-filter-clear{font-size:.875rem;color:#52ac83;background:transparent;border:none;cursor:pointer;padding:.75rem .5rem;text-decoration:underline;font-family:inherit;font-weight:500}.audit-filter-clear:hover{color:#429970}.audit-table-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain}@media(max-width:768px){.audit-table-wrap{touch-action:pan-x pan-y}}.audit-table{width:100%;border-collapse:collapse}.audit-table thead th{font-size:.75rem;color:var(--t2);font-weight:600;padding:.625rem .875rem;text-align:left;letter-spacing:.04em;border-bottom:1px solid var(--table-border-color, #d1d5db);background:var(--bg);white-space:nowrap;text-transform:uppercase}.audit-table thead th:first-child{border-radius:var(--r, 12px) 0 0 0}.audit-table thead th:last-child{border-radius:0 var(--r, 12px) 0 0}.audit-table th:nth-child(1),.audit-table td:nth-child(1){width:100%}.audit-table th:nth-child(2),.audit-table td:nth-child(2),.audit-table th:nth-child(3),.audit-table td:nth-child(3),.audit-table th:nth-child(4),.audit-table td:nth-child(4),.audit-table th:nth-child(5),.audit-table td:nth-child(5){width:1px;white-space:nowrap}.audit-table tbody td{padding:.75rem .875rem;font-size:.8125rem;color:var(--t1);border-bottom:1px solid var(--border-strong, #d1d5db);vertical-align:middle}.audit-table tbody tr:last-child td{border-bottom:none}.audit-table tbody tr:hover td{background:var(--bg)}.audit-table-actions{display:flex;align-items:center;justify-content:flex-end}.audit-table-actions button.view{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.4375rem .75rem;background-color:var(--bg-card);border:1px solid var(--border-strong, #e2e8f0);border-radius:.5rem;color:var(--t2, #475569);font-size:.8125rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s ease;white-space:nowrap}.audit-table-actions button.view:hover{background-color:#e2e8f0;border-color:#cbd5e1;color:#334155}.audit-table-actions .view-icon{width:1rem;height:1rem;flex-shrink:0}.audit-user-cell{display:flex;align-items:center;gap:.625rem}.audit-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:700;flex-shrink:0}.audit-avatar--0{background:#dbeafe;color:#1e40af}.audit-avatar--1{background:#dcfce7;color:#15803d}.audit-avatar--2{background:#fef3c7;color:#92400e}.audit-avatar--3{background:#ede9fe;color:#6d28d9}.audit-avatar--4{background:#fee2e2;color:#991b1b}.audit-user-name{font-weight:500;color:var(--t1)}.audit-module-badge{display:inline-flex;align-items:center;font-size:.75rem;color:var(--t1);background:var(--bg);border:1px solid var(--border-strong, #d1d5db);padding:.25rem .625rem;border-radius:9999px;white-space:nowrap;font-weight:500}.audit-action-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500;white-space:nowrap}.audit-action--crear{background:#dcfce7;color:#15803d}.audit-action--editar{background:#dbeafe;color:#1e40af}.audit-action--estado{background:#fef3c7;color:#92400e}.audit-action--roles{background:#ede9fe;color:#6d28d9}.audit-action--auth{background:#e0f2fe;color:#0369a1}.audit-action--password{background:#fff1f2;color:#be123c}.audit-action--eliminar{background:#fee2e2;color:#991b1b}.audit-status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.audit-status-badge:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0}.audit-status--exitoso{background:#dcfce7;color:#15803d}.audit-status--exitoso:before{background:#22c55e}.audit-status--fallido{background:#fee2e2;color:#991b1b}.audit-status--fallido:before{background:#ef4444}.audit-cell--datetime{font-size:.8125rem;color:#6b7280;white-space:nowrap}.audit-cell--ip{font-family:Fira Code,Courier New,monospace;font-size:.75rem;color:#6b7280}.audit-cell--desc{font-size:.875rem;max-width:260px;line-height:1.4;color:#374151}.audit-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--bg);border:2px dashed var(--border-strong, #d1d5db);border-radius:12px;margin:1.5rem}.audit-table-empty__icon{margin-bottom:.75rem;color:var(--t2);display:flex;align-items:center;justify-content:center}.audit-table-empty__title{font-size:1.125rem;font-weight:600;color:#374151;margin:0 0 .5rem}.audit-table-empty__desc{font-size:.875rem;color:#6b7280;margin:0}.audit-pagination{flex-shrink:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.375rem;margin-top:1.5rem}.audit-pagination__info{font-size:.75rem;color:var(--t2, #6b7280);margin-left:.5rem}.audit-pagination__btns{display:flex;gap:.25rem}.audit-pagination__btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border-radius:6px;border:1px solid var(--border-strong, #d1d5db);background:var(--bg-card);color:var(--t1);font-size:.8125rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s ease}.audit-pagination__btn:hover:not(.audit-pagination__btn--active):not(:disabled){border-color:#52ac83;color:#52ac83}.audit-pagination__btn--active{background:#52ac83;color:#fff;border-color:#52ac83}.audit-pagination__btn--nav{color:var(--t1);gap:.3rem;width:auto;height:auto;padding:.375rem .625rem;white-space:nowrap}.audit-pagination__btn--nav svg{width:.8125rem;height:.8125rem}.audit-pagination__btn--nav:disabled{opacity:.4;cursor:not-allowed}.audit-pagination__dots{display:flex;align-items:center;justify-content:center;padding:0 .25rem;font-size:.8125rem;color:var(--t2);-webkit-user-select:none;user-select:none}@media(max-width:768px){.audit-table-head{padding:.625rem .875rem;gap:.5rem}.audit-table-head__right{flex-wrap:wrap}.audit-filters{padding:.625rem .875rem;gap:.5rem}.audit-table{min-width:620px}.audit-table thead th,.audit-table tbody td{padding:.5rem .625rem}.audit-table thead th{font-size:.6875rem}.audit-table tbody td{font-size:.75rem}.audit-user-cell{max-width:180px;min-width:0;overflow:hidden}.audit-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-search{width:100%}.audit-select,.audit-date-input{min-width:0}.audit-btn-export{width:100%;justify-content:center}}@media(max-width:480px){.audit-table thead th,.audit-table tbody td{padding:.375rem .5rem}.audit-table thead th{font-size:.625rem}.audit-table tbody td{font-size:.6875rem}.audit-avatar{width:26px;height:26px;font-size:.5625rem}.audit-user-cell{max-width:140px}.audit-pagination__btn--nav{font-size:0;padding:.5rem;gap:0;width:auto;height:auto}.audit-pagination__btn--nav svg{width:1rem;height:1rem}}[data-theme=dark] .audit-table-head__title{color:#f5f5f7}[data-theme=dark] .audit-table-head__sub{color:#8e8e93}[data-theme=dark] .audit-count-badge{background:#ffffff0f;border-color:#ffffff1a;color:#8e8e93}[data-theme=dark] .audit-select,[data-theme=dark] .audit-search{background:#1c1c1e;border-color:#ffffff1a;color:#f5f5f7}[data-theme=dark] .audit-search::placeholder{color:#6e6e73}[data-theme=dark] .audit-table thead th{background:var(--bg);border-bottom-color:var(--border-strong)}[data-theme=dark] .audit-table tbody td{color:#d1d5db;border-bottom-color:#ffffff0a}[data-theme=dark] .audit-table tbody tr:hover td{background:var(--bg)}[data-theme=dark] .audit-user-name{color:#f5f5f7}[data-theme=dark] .audit-module-badge{background:#ffffff12;border-color:#ffffff1a;color:#d1d5db}[data-theme=dark] .audit-action--crear{background:#15803d33;color:#86efac}[data-theme=dark] .audit-action--editar{background:#1e40af33;color:#93c5fd}[data-theme=dark] .audit-action--estado{background:#92400e33;color:#fcd34d}[data-theme=dark] .audit-action--roles{background:#6d28d933;color:#c4b5fd}[data-theme=dark] .audit-action--auth{background:#0369a133;color:#7dd3fc}[data-theme=dark] .audit-action--password{background:#be123c33;color:#fda4af}[data-theme=dark] .audit-action--eliminar{background:#991b1b33;color:#fca5a5}[data-theme=dark] .audit-status--exitoso{background:#15803d26;color:#86efac}[data-theme=dark] .audit-status--fallido{background:#991b1b26;color:#fca5a5}[data-theme=dark] .audit-cell--datetime,[data-theme=dark] .audit-cell--ip{color:#8e8e93}[data-theme=dark] .audit-cell--desc{color:#d1d5db}.audit-table-empty--error{background:#fff5f5;border-color:#fecaca}.audit-table-empty--error .audit-table-empty__title{color:#991b1b}.audit-table-empty--error .audit-table-empty__desc{color:#b91c1c}[data-theme=dark] .audit-table-actions button.view{background-color:#ffffff0d;border-color:#ffffff1a;color:#8e8e93}[data-theme=dark] .audit-table-actions button.view:hover{background-color:#48484a;border-color:#ffffff26;color:#f5f5f7}[data-theme=dark] .audit-table-empty{background:#ffffff05;border-color:#ffffff14}[data-theme=dark] .audit-table-empty__title{color:#d1d5db}[data-theme=dark] .audit-table-empty__desc{color:#8e8e93}[data-theme=dark] .audit-table-empty--error{background:#991b1b1a;border-color:#ef444433}[data-theme=dark] .audit-table-empty--error .audit-table-empty__title,[data-theme=dark] .audit-table-empty--error .audit-table-empty__desc{color:#fca5a5}[data-theme=dark] .audit-pagination__info{color:#8e8e93}[data-theme=dark] .audit-pagination__btn{background:#2c2c2e;border-color:#ffffff1a;color:#d1d1d6}[data-theme=dark] .audit-pagination__btn:hover:not(.audit-pagination__btn--active):not(:disabled){border-color:#52ac834d;color:#52ac83}[data-theme=dark] .audit-pagination__btn--active{background:#52ac83;border-color:#52ac83;color:#fff}[data-theme=dark] .audit-pagination__dots{color:#6e6e73}.audit-modal{display:flex;flex-direction:column;gap:1.5rem}.audit-modal__header{display:flex;align-items:center;gap:1rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-strong, #d1d5db)}.audit-modal__avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;flex-shrink:0}.audit-modal__user-info{min-width:0;flex:1}.audit-modal__user-name{font-size:1.0625rem;font-weight:600;color:var(--t1);margin:0 0 .5rem;overflow-wrap:break-word}.audit-modal__badges{display:flex;flex-wrap:wrap;gap:.5rem}.audit-modal__info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem;background:var(--bg);border:1px solid var(--border-strong, #d1d5db);border-radius:8px}.audit-modal__info-item{display:flex;flex-direction:column;gap:.25rem}.audit-modal__label{font-size:.75rem;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.04em}.audit-modal__value{font-size:.9375rem;font-weight:600;color:var(--t1)}.audit-modal__changes{display:flex;flex-direction:column;gap:.75rem}.audit-modal__no-changes{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--bg);border:1px solid var(--border-strong, #d1d5db);border-left:3px solid #f59e0b;border-radius:8px;color:var(--t2)}.audit-modal__no-changes svg{flex-shrink:0;color:#f59e0b;margin-top:1px}.audit-modal__no-changes-title{font-size:.875rem;font-weight:600;color:var(--t1);margin:0 0 .2rem}.audit-modal__no-changes-desc{font-size:.8125rem;color:var(--t2);margin:0}.audit-drawer__no-data{padding:.75rem 1rem;background:var(--bg);border:1px dashed var(--border-strong, #d1d5db);border-radius:8px;font-size:.8125rem;color:var(--t2);font-style:italic;text-align:center}.audit-drawer__value-block{margin-top:0}.audit-drawer__value-label{font-size:.75rem;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.audit-data-box{background:var(--bg);border:1px solid var(--border-strong, #d1d5db);border-radius:8px;overflow:hidden}.audit-data-box--empty{padding:.75rem 1rem;font-size:.8125rem;color:var(--t2);font-style:italic}.audit-data-box__row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.5rem .875rem;border-bottom:1px solid var(--border-strong, #d1d5db);font-size:.8125rem}.audit-data-box__row:last-child{border-bottom:none}.audit-data-box__key{color:var(--t2);flex-shrink:0;min-width:100px}.audit-data-box__val{color:var(--t1);font-weight:600;text-align:right;word-break:break-word}.audit-record-pdf-btn{display:flex;align-items:center;gap:.4rem;padding:.45rem .875rem;border-radius:.5rem;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;border:1px solid #fecaca;background-color:#fef2f2;color:#dc2626;white-space:nowrap;flex-shrink:0;position:relative}.audit-record-pdf-btn svg{width:1rem;height:1rem}.audit-record-pdf-btn:hover:not(:disabled){background-color:#fee2e2;border-color:#fca5a5;color:#b91c1c}.audit-record-pdf-btn:disabled{opacity:.6;cursor:not-allowed}.audit-record-pdf-btn.loading{padding-right:2.5rem}.audit-record-pdf-btn.loading:after{content:"";position:absolute;right:.75rem;width:.875rem;height:.875rem;border:2px solid transparent;border-top-color:#dc2626;border-radius:50%;animation:audit-spin 1s linear infinite}@keyframes audit-spin{to{transform:rotate(360deg)}}@media(max-width:480px){.audit-modal__info-grid{grid-template-columns:1fr}.audit-data-box__row{flex-direction:column;align-items:flex-start;gap:.125rem}.audit-data-box__key{min-width:0}.audit-data-box__val{text-align:left;word-break:break-all}}
