:root{--primary: #1e3a8a;--primary-hover: #1e40af;--primary-light: #eff6ff;--secondary: #0f172a;--accent: #2563eb;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #06b6d4;--bg-main: #f8fafc;--card-bg: #ffffff;--text-main: #1e293b;--text-muted: #64748b;--border-color: #e2e8f0;--font-heading: "Outfit", sans-serif;--font-body: "Inter", sans-serif}body{font-family:var(--font-body);color:var(--text-main);background-color:var(--bg-main);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6,.brand-font{font-family:var(--font-heading)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.card-saas{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 16px #0f172a0a;transition:all .2s ease-in-out}.card-saas:hover{box-shadow:0 8px 24px #0f172a12}.card-stat{border:1px solid var(--border-color);border-radius:12px;background:#fff;padding:.9rem 1rem;display:flex;align-items:center;gap:.75rem;width:100%;height:100%;min-height:85px;transition:transform .2s ease,box-shadow .2s ease}.card-stat:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0f172a0f}.card-stat .stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.badge-status{padding:.35em .75em;font-size:.75rem;font-weight:600;border-radius:50rem;text-transform:uppercase;letter-spacing:.5px}.badge-active,.badge-paid,.badge-admitted{background-color:#d1fae5;color:#047857}.badge-pending,.badge-partial,.badge-registered{background-color:#fef3c7;color:#b45309}.badge-cancelled,.badge-inactive{background-color:#fee2e2;color:#b91c1c}.table-responsive{width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}.table-responsive::-webkit-scrollbar{height:8px}.table-responsive::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.table-responsive::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#94a3b8}.table-saas{width:100%;min-width:680px;border-collapse:separate;border-spacing:0}.table-saas th,.table-saas td{white-space:nowrap}.table-saas thead th{background-color:#f8fafc;color:#475569;font-weight:600;font-size:.825rem;text-transform:uppercase;letter-spacing:.5px;padding:.85rem 1rem;border-bottom:2px solid var(--border-color)}.table-saas tbody td{padding:.85rem 1rem;vertical-align:middle;border-bottom:1px solid #f1f5f9;font-size:.9rem;color:var(--text-main)}.table-saas tbody tr{transition:background-color .15s ease}.table-saas tbody tr:hover{background-color:#f8fafc}.col-lg-6 .table-saas,.table-saas-compact{min-width:480px}.btn-primary-saas{background-color:var(--primary);border-color:var(--primary);color:#fff;font-weight:500;border-radius:8px;padding:.5rem 1.15rem;transition:all .2s ease}.btn-primary-saas:hover,.btn-primary-saas:focus{background-color:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 4px 12px #1e3a8a40;color:#fff}.btn-secondary-saas{background-color:#f1f5f9;border-color:#cbd5e1;color:#334155;font-weight:500;border-radius:8px}.btn-secondary-saas:hover{background-color:#e2e8f0;color:#0f172a}.modal{background:#0f172ab8!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important;transition:opacity .2s cubic-bezier(.16,1,.3,1)!important}.modal.fade .modal-dialog{transform:scale(.95) translateY(-8px);transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .2s ease-out}.modal.show .modal-dialog{transform:scale(1) translateY(0)}.modal-dialog{margin:1.75rem auto}.modal-content{border:1px solid rgba(255,255,255,.18)!important;border-radius:18px!important;box-shadow:0 25px 50px -12px #0f172a59,0 0 0 1px #0f172a14!important;overflow:hidden;background-color:#fff}.modal-header{padding:1.15rem 1.5rem!important;border-bottom:1px solid rgba(0,0,0,.08)!important}.modal-header.bg-primary{background:linear-gradient(135deg,#1e3a8a,#2563eb)!important;border-bottom:none!important}.modal-header.bg-dark{background:linear-gradient(135deg,#0f172a,#1e293b)!important;border-bottom:none!important}.modal-header.bg-success{background:linear-gradient(135deg,#047857,#10b981)!important;border-bottom:none!important}.modal-header .modal-title{font-size:1.125rem;font-weight:700;letter-spacing:-.01em}.modal-header .btn-close{opacity:.85;transition:all .2s ease;border-radius:50%;padding:.5rem}.modal-header .btn-close:hover{opacity:1;transform:scale(1.1)}.modal-header .btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.modal-body{padding:1.5rem!important;max-height:calc(85vh - 130px);overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#f8fafc}.modal-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.modal-footer{padding:1rem 1.5rem!important;border-top:1px solid #f1f5f9!important;background:#f8fafc!important;gap:.75rem}.modal-backdrop-custom{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f172abf!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important;z-index:1050;animation:modalFadeIn .2s cubic-bezier(.16,1,.3,1)}.modal-content-custom{border-radius:18px!important;border:1px solid rgba(255,255,255,.2)!important;box-shadow:0 25px 60px -15px #0f172a66,0 0 0 1px #0f172a14!important;animation:modalPopIn .25s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{opacity:0;transform:scale(.95) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.toast-container-fixed{position:fixed;top:1.25rem;right:1.25rem;z-index:9999}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media print{body *{visibility:hidden}.printable-area,.printable-area *{visibility:visible}.printable-area{position:absolute;left:0;top:0;width:100%}.no-print{display:none!important}}
