*{box-sizing:border-box}body{margin:0;background:#f4f6f9;font-family:Arial,sans-serif;color:#343a40}.layout{display:flex;min-height:100vh}.sidebar{width:230px;background:#1f2937;color:#fff;padding:22px 16px;flex-shrink:0}.brand{margin-bottom:28px}.brand strong{display:block;font-size:20px}.brand span{font-size:13px;color:#9ca3af}.menu{width:100%;display:block;border:0;background:transparent;text-align:left;padding:12px 14px;border-radius:8px;color:#d1d5db;margin-bottom:8px;cursor:pointer;font-size:15px}.menu.active,.menu:hover{background:#007bff;color:#fff}.page{flex:1;padding:24px}.container{max-width:1180px;margin:0 auto}.header{background:#fff;border-left:4px solid #007bff;padding:18px 22px;border-radius:10px;box-shadow:0 1px 3px #0000001f;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.header h1{margin:0;font-size:25px;font-weight:700}.header p{margin:4px 0 0;color:#6c757d}.btn-primary,.btn-save,.btn-cancel,.btn-mini{border:0;cursor:pointer;font-weight:700;border-radius:6px}.btn-primary{background:#007bff;color:#fff;padding:10px 16px}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.alert-info{background:#e7f1ff;border-left:4px solid #007bff;color:#084298;padding:10px 14px;border-radius:6px;font-size:14px;margin-bottom:14px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.card{color:#fff;padding:15px 17px;border-radius:8px;box-shadow:0 1px 3px #00000026}.card span{display:block;font-size:13px}.card strong{display:block;margin-top:7px;font-size:28px}.card.info{background:#17a2b8}.card.success{background:#28a745}.card.warning{background:#ffc107;color:#212529}.card.danger{background:#dc3545}.table-card,.form-card,.progress-card{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000001f;overflow:hidden;margin-bottom:18px}.form-card,.progress-card{padding:20px}.form-card h2{margin:0 0 18px;font-size:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-group label{display:block;font-size:13px;font-weight:700;color:#495057;margin-bottom:6px}.form-group input,.filters input,.filters select{width:100%;height:40px;border:1px solid #ced4da;border-radius:6px;padding:0 12px;font-size:14px}.check-field{display:flex;align-items:center;gap:8px;font-weight:700;color:#495057}.form-actions{display:flex;gap:10px;margin-top:18px}.btn-save{background:#28a745;color:#fff;padding:10px 18px}.btn-cancel{background:#6c757d;color:#fff;padding:10px 18px}.btn-mini{background:#007bff;color:#fff;padding:6px 10px;font-size:12px;margin-right:6px}.danger-mini{background:#dc3545}.table-header{padding:15px 16px;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;align-items:center;gap:14px}.table-header h2{margin:0;font-size:18px}.filters{display:flex;gap:10px;min-width:360px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#343a40;color:#fff;font-size:12px;text-transform:uppercase}th,td{padding:10px;border-bottom:1px solid #dee2e6;text-align:left;vertical-align:top}tr:hover{background:#f8f9fa}.row-new{background:#fff3cd;font-weight:600}.row-error{background:#fff5f5}.ruc{font-weight:700;color:#007bff;white-space:nowrap}.asunto{max-width:320px}.observacion{max-width:220px;color:#6c757d}.actions-cell{white-space:nowrap}.badge-ok,.badge-error,.badge-new,.badge-no{display:inline-block;padding:5px 9px;border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap}.badge-ok{background:#28a745;color:#fff}.badge-error{background:#dc3545;color:#fff}.badge-new{background:#ffc107;color:#212529}.badge-no{background:#e9ecef;color:#495057}.empty{padding:24px;text-align:center;color:#6c757d}.pagination{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;font-size:14px;border-top:1px solid #dee2e6}.pagination button{border:1px solid #ced4da;background:#fff;padding:6px 12px;border-radius:5px;margin:0 6px;cursor:pointer}.pagination button:disabled{opacity:.5;cursor:not-allowed}.progress-top{display:flex;justify-content:space-between;margin-bottom:10px}.progress-bar{width:100%;height:10px;background:#e9ecef;border-radius:999px;overflow:hidden;margin-bottom:14px}.progress-fill{height:100%;background:#007bff;transition:width .4s ease}.progress-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.progress-grid div{background:#f8f9fa;border-radius:6px;padding:10px}.progress-grid span{display:block;font-size:12px;color:#6c757d}.progress-grid strong{font-size:18px}@media(max-width:1000px){.layout{flex-direction:column}.sidebar{width:auto}.cards,.form-grid,.progress-grid{grid-template-columns:repeat(2,1fr)}.table-header,.pagination{flex-direction:column;align-items:stretch}.filters{min-width:auto;flex-direction:column}}body{background:#f3f4f6;color:#111827}.sidebar{background:linear-gradient(180deg,#030712,#111827);border-right:1px solid #1f2937}.brand strong{color:#f9fafb;letter-spacing:.3px}.brand span{color:#9ca3af}.menu{color:#cbd5e1;border:1px solid transparent}.menu.active,.menu:hover{background:#111827;border-color:#374151;color:#fff}.header{border-left:4px solid #111827}th{background:#111827;color:#f9fafb}.btn-outline-primary,.btn-outline-success,.btn-outline-danger,.btn-outline-secondary{background:transparent;border:1px solid;cursor:pointer;font-weight:700;border-radius:7px;padding:9px 14px;transition:all .2s ease}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{background:#0d6efd;color:#fff}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{background:#198754;color:#fff}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{background:#dc3545;color:#fff}.btn-outline-secondary{color:#4b5563;border-color:#6b7280}.btn-outline-secondary:hover{background:#374151;color:#fff}.btn-mini{padding:6px 10px;font-size:12px;margin-right:6px}.modal-backdrop{position:fixed;inset:0;background:#030712b8;display:flex;align-items:center;justify-content:center;z-index:999;padding:20px}.modal-card{width:100%;max-width:760px;background:#fff;border-radius:14px;box-shadow:0 24px 80px #00000059;padding:22px;animation:modalIn .18s ease-out}.modal-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid #e5e7eb;padding-bottom:14px;margin-bottom:18px}.modal-header h2{margin:0;font-size:22px;color:#111827}.modal-header p{margin:4px 0 0;color:#6b7280}.modal-close{border:1px solid #d1d5db;background:transparent;color:#374151;width:34px;height:34px;border-radius:8px;font-size:24px;line-height:1;cursor:pointer}.modal-close:hover{background:#111827;color:#fff}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e5e7eb;padding-top:16px;margin-top:18px}.form-group input,.filters input,.filters select{border-color:#d1d5db}.form-group input:focus,.filters input:focus,.filters select:focus{outline:none;border-color:#111827;box-shadow:0 0 0 3px #1118271f}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:700px){.modal-card{max-height:90vh;overflow-y:auto}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.header-actions{display:flex;gap:10px;align-items:center}@media(max-width:700px){.header-actions{width:100%;flex-direction:column;align-items:stretch}.header-actions button{width:100%}}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:.2s ease;position:relative}.sortable:hover{background:#111827;color:#60a5fa}.sortable span{margin-left:6px;font-size:10px}
