:root{--primary:#2563eb;--primary-dark:#1d4ed8;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-600:#4b5563;--gray-700:#374151;--gray-900:#111827}.page{background:radial-gradient(circle at 88% 0,#d4af3724,#0000 28rem),linear-gradient(145deg,#f8f7f2 0%,#f5f7f3 55%,#eef3ee 100%);min-height:100%;padding:38px 36px 84px}.compliance-hero{border-bottom:1px solid #e1e6df;align-items:flex-end;padding:12px 0 26px}.compliance-eyebrow{color:#99732f;letter-spacing:.16em;text-transform:uppercase;margin-bottom:9px;font-size:.7rem;font-weight:850;display:inline-block}.compliance-hero h1{color:#10231b;letter-spacing:-.065em;font-size:clamp(2.8rem,5vw,4.35rem);font-weight:900;line-height:.98}.compliance-hero p{color:#718078;margin-top:11px;font-size:1rem}.compliance-hero-action{justify-content:center;align-items:center;min-height:46px;text-decoration:none;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:0 16px 24px -18px #17362a;color:#fff!important;background:#17362a!important;border:1px solid #17362a!important;border-radius:12px!important;padding:12px 18px!important;font-size:.78rem!important;font-weight:850!important}.compliance-hero-action:hover{transform:translateY(-2px);box-shadow:0 20px 28px -18px #17362a}.compliance-explainer{background:#ffffffe6;border-color:#e1e6df;border-radius:18px;margin-top:22px;box-shadow:0 24px 46px -38px #17362a}.compliance-explainer h2,.table-header h2{color:#17362a;letter-spacing:-.035em}.compliance-filters{background:#f8faf7;border-color:#e1e6df;border-radius:14px}.filter-group select,.filter-group input,.filter-buttons .btn-primary,.filter-reset{border-radius:11px}.filter-group input{color:#17362a;min-height:42px;font:inherit;background:#fff;border:1px solid #dfe5df;border-radius:11px;padding:10px 12px}.filter-group input:focus{border-color:#b68a2e;outline:none;box-shadow:0 0 0 3px #b68a2e24}.compliance-dashboard-card,.chart-container,.compliance-table-section{border-color:#e1e6df;border-radius:18px;box-shadow:0 24px 46px -38px #17362a}@media (max-width:768px){.page{padding:24px 16px 60px}.compliance-hero{flex-direction:column;align-items:flex-start}.compliance-hero-action{width:100%;margin-top:12px}}.table-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border-radius:.875rem;margin:1.5rem 0;overflow:hidden;box-shadow:0 8px 32px #0000001a}.requirements-table{border-collapse:collapse;width:100%;font-size:.95rem}.requirements-table thead{color:#fff;text-transform:capitalize;letter-spacing:.5px;background:linear-gradient(135deg,#1f2937 0%,#111827 100%);border-bottom:1px solid #ffffff26;font-size:.85rem;font-weight:600}.requirements-table th{text-align:left;border-bottom:none;padding:1.25rem;color:#fff!important;font-weight:600!important}.requirements-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s;position:relative}.requirements-table th.sortable:hover{background:#2563eb1a;padding-left:1.5rem}.requirements-table tbody tr{border-bottom:1px solid var(--gray-200);transition:all .2s;position:relative}.requirements-table tbody tr:hover{background:#2563eb05;box-shadow:inset 0 0 10px #2563eb0d}.requirements-table tbody tr:last-child{border-bottom:none}.requirements-table tr.row-cumpliendo{border-left:4px solid var(--success)}.requirements-table tr.row-pendiente{border-left:4px solid var(--danger)}.requirements-table tr.row-en_proceso{border-left:4px solid var(--warning)}.requirements-table tr.row-parcial{border-left:4px solid #8b5cf6}.requirements-table tr.row-no_aplica{border-left:4px solid var(--gray-400);opacity:.7}.requirements-table td{vertical-align:middle;padding:1.25rem 1.5rem}.col-codigo strong{color:var(--gray-900);letter-spacing:-.3px;margin-bottom:.5rem;font-size:1.05rem;font-weight:700;display:block}.col-codigo .text-muted{background:var(--gray-100);color:var(--gray-600);text-transform:uppercase;letter-spacing:.3px;border-radius:.25rem;margin:0;padding:.25rem .75rem;font-size:.8rem;font-weight:500;display:inline-block}.col-descripcion p{color:var(--gray-700);margin:0;font-weight:500;line-height:1.6}.col-estado{text-align:center}.estado-select{border:2px solid var(--gray-300);cursor:pointer;text-transform:uppercase;letter-spacing:.3px;background:#fff;border-radius:.5rem;min-width:150px;padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:all .2s}.estado-select:hover{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.estado-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb33}.estado-select.estado-cumpliendo,.estado-select.estado-cumple{border-color:var(--success);color:#065f46;background:#d1fae5}.estado-select.estado-pendiente{border-color:var(--danger);color:#991b1b;background:#fee2e2}.estado-select.estado-en_proceso{border-color:var(--warning);color:#92400e;background:#fef3c7}.estado-select.estado-parcial{color:#5b21b6;background:#ede9fe;border-color:#8b5cf6}.estado-select.estado-no_aplica{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-700)}.col-responsable{color:var(--gray-600);font-weight:500}.col-acciones{text-align:center;white-space:nowrap}.action-btn{border:2px solid var(--primary);color:var(--primary);cursor:pointer;letter-spacing:.3px;background:#fff;border-radius:.5rem;margin:0 .375rem;padding:.625rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.action-btn:hover{background:var(--primary);color:#fff;box-shadow:0 4px 12px #2563eb40}.action-btn:active{transform:scale(.98)}@media (max-width:1024px){.requirements-table{font-size:.9rem}.requirements-table th,.requirements-table td{padding:.875rem}.estado-select{min-width:120px;padding:.625rem .75rem}.action-btn{margin:.25rem;padding:.5rem .75rem;font-size:.75rem}}@media (max-width:768px){.requirements-table{font-size:.85rem}.requirements-table th{padding:.75rem;font-size:.75rem}.requirements-table td{padding:.75rem}.col-codigo strong{font-size:.95rem}.col-codigo .text-muted{padding:.25rem .5rem;font-size:.75rem}.col-descripcion p{font-size:.9rem}.estado-select{min-width:110px;padding:.5rem .625rem;font-size:.8rem}.action-btn{margin:.25rem;padding:.5rem .625rem;font-size:.7rem}.col-responsable,.requirements-table th:nth-child(4){display:none}}.requirements-table th:focus,.estado-select:focus,.action-btn:focus{outline:3px solid var(--primary);outline-offset:2px}.requirements-table tbody.loading tr{opacity:.6;pointer-events:none}.table-empty{text-align:center;color:var(--gray-600);padding:3rem 1.5rem}.table-empty i{color:var(--gray-300);margin-bottom:1rem;font-size:3rem;display:block}.table-empty h3{color:var(--gray-900);margin:1rem 0 .5rem;font-size:1.1rem}.table-empty p{margin:0;font-size:.95rem}.modal-detail{max-width:700px;max-height:85vh;overflow-y:auto}.modal-detail .modal-header{color:#fff;border-bottom:3px solid var(--primary);z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#0f1419 0%,#1a2844 100%);padding:2rem;position:sticky;top:0}.modal-detail .header-info h2{margin:0 0 .5rem;font-size:1.4rem;font-weight:700}.modal-detail .header-subtitle{opacity:.9;margin:0;font-size:.9rem;font-weight:500}.detail-body{padding:1.5rem}.requirement-section{border-bottom:1px solid var(--gray-200);margin-bottom:2rem;padding-bottom:1.5rem}.requirement-section:last-of-type{border-bottom:none}.requirement-section h3{color:var(--gray-900);align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.1rem;font-weight:600;display:flex}.requirement-text{color:var(--gray-700);margin:.5rem 0 1rem;font-size:.95rem;line-height:1.6}.requirement-description{color:var(--gray-700);background:var(--gray-50);border-left:3px solid var(--primary);border-radius:.375rem;margin:0;padding:.75rem;font-size:.95rem;line-height:1.6}.requirement-details{background:var(--gray-50);border-left:3px solid var(--primary);border-radius:.5rem;padding:1rem}.requirement-details p{color:var(--gray-700);margin:0 0 1rem;font-size:.9rem;line-height:1.6}.requirement-details p:last-child{margin-bottom:0}.details-subsection{border-top:1px solid var(--gray-300);margin-top:1rem;padding-top:1rem}.details-subsection h4{color:var(--gray-900);margin:0 0 .75rem;font-size:.9rem;font-weight:600}.details-subsection ul{margin:0;padding-left:1.5rem;list-style:none}.details-subsection li{color:var(--gray-600);margin:.4rem 0;padding-left:1.5rem;font-size:.85rem;line-height:1.5;position:relative}.details-subsection li:before{content:"✓";color:var(--success);font-weight:700;position:absolute;left:0}.status-info{background:var(--gray-50);border-radius:.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding:1rem;display:grid}.status-item{flex-direction:column;gap:.5rem;display:flex}.status-item label{color:var(--gray-600);text-transform:uppercase;letter-spacing:.3px;font-size:.85rem;font-weight:600}.status-item span{color:var(--gray-900);font-size:.95rem}.status-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:.375rem;width:fit-content;padding:.5rem .75rem;font-size:.85rem;font-weight:600;display:inline-block}.status-badge.cumpliendo,.status-badge.cumple{color:#065f46;border:1px solid var(--success);background:#d1fae5}.status-badge.pendiente{color:#991b1b;border:1px solid var(--danger);background:#fee2e2}.status-badge.en_proceso{color:#92400e;border:1px solid var(--warning);background:#fef3c7}.status-badge.parcial{color:#5b21b6;background:#ede9fe;border:1px solid #8b5cf6}.status-badge.no_aplica{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.status-badge.requiere_revision{color:#831843;background:#fce7f3;border:1px solid #ec4899}.modal-detail .modal-actions{border-top:1px solid var(--gray-200);justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.modal-detail .modal-actions button{flex:1;max-width:180px}@media (max-width:768px){.modal-detail{max-width:95vw}.modal-detail .modal-header{padding:1rem}.modal-detail .header-info h2{font-size:1.1rem}.detail-body{padding:1rem}.requirement-section{margin-bottom:1.5rem;padding-bottom:1rem}.details-subsection ul{padding-left:1rem}.details-subsection li{padding-left:1rem;font-size:.8rem}.status-info{grid-template-columns:1fr;gap:.75rem}.modal-detail .modal-actions{flex-direction:column}.modal-detail .modal-actions button{max-width:none}}
