*{box-sizing:border-box}body{font-family:Sora,sans-serif;background:#f1f5f9;margin:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.stat-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 3px #00000014}.btn-primary{background:#4f46e5;color:#fff;border:none;border-radius:10px;padding:10px 20px;font-family:Sora;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.btn-primary:hover{background:#4338ca;transform:translateY(-1px)}.btn-secondary{background:#fff;color:#374151;border:1px solid #e5e7eb;border-radius:10px;padding:10px 20px;font-family:Sora;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.btn-secondary:hover{background:#f9fafb}.btn-danger{background:#fee2e2;color:#dc2626;border:none;border-radius:10px;padding:8px 16px;font-family:Sora;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-danger:hover{background:#fecaca}.input{width:100%;border:1px solid #e2e8f0;border-radius:10px;padding:10px 14px;font-family:Sora;font-size:14px;outline:none;transition:border .2s;background:#fff}.input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}select.input{cursor:pointer}.card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 1px 3px #00000014;margin-bottom:20px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-green{background:#d1fae5;color:#065f46}.badge-red{background:#fee2e2;color:#991b1b}.badge-yellow{background:#fef3c7;color:#92400e}.badge-gray{background:#f1f5f9;color:#475569}.badge-blue{background:#dbeafe;color:#1e40af}.badge-orange{background:#ffedd5;color:#c2410c}.badge-indigo{background:#e0e7ff;color:#3730a3}.sidebar-link{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:4px;border:none;background:none;width:100%;text-align:left}.sidebar-link:hover{background:#ffffff12;color:#fff}.sidebar-link.active{background:#4f46e5;color:#fff;box-shadow:0 4px 15px #4f46e566}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:#fff;border-radius:20px;padding:28px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003}.label{display:block;font-size:12px;font-weight:600;color:#64748b;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.field{margin-bottom:16px}.sidebar{width:240px;background:#0d1b2a;min-height:100vh;position:fixed;left:0;top:0;z-index:50;display:flex;flex-direction:column;padding:24px 16px;transition:transform .3s}.main-content{margin-left:240px;padding:28px;min-height:100vh}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0;padding:16px}}.table-row{display:grid;padding:12px 16px;align-items:center;border-bottom:1px solid #f1f5f9;font-size:14px}.table-row:hover{background:#fafafa}.alert-mora{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:14px 16px;display:flex;align-items:flex-start;gap:10px}.price-calc{background:linear-gradient(135deg,#0d1b2a,#1e3a5f);border-radius:14px;padding:20px;color:#fff;margin-top:16px}.cuota-row{display:grid;grid-template-columns:50px 1fr 1fr 1fr auto;gap:8px;align-items:center;padding:10px 12px;border-radius:10px;margin-bottom:6px}.contrato-text{font-size:13px;line-height:1.7;color:#1f2937}.contrato-text h3{font-size:15px;font-weight:700;margin:16px 0 6px}.tag-input-wrap{border:1px solid #e2e8f0;border-radius:10px;padding:8px 12px;background:#fff;min-height:44px}.offline-banner{background:#fef3c7;border-bottom:1px solid #fcd34d;color:#92400e;font-size:13px;font-weight:600;padding:8px 16px;text-align:center}.spinner{border:3px solid #f3f3f3;border-top:3px solid #4F46E5;border-radius:50%;width:24px;height:24px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media print{.sidebar,.no-print,button{display:none!important}.main-content{margin:0;padding:0}}
