:root{--purple-900:#2d1b69;--purple-800:#3a2181;--purple-700:#4a2c9a;--purple-600:#5b37b7;--purple-500:#6c42d1;--purple-400:#8b6ce0;--purple-300:#a994e8;--purple-200:#c7b8f0;--purple-100:#e8e0f8;--purple-50:#f5f2fc;--white:#fff;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--success:#059669;--success-light:#d1fae5;--warning:#d97706;--warning-light:#fef3c7;--danger:#dc2626;--danger-light:#fee2e2;--info:#2563eb;--info-light:#dbeafe;--shadow-md:0 4px 6px rgba(45,27,105,.07),0 2px 4px rgba(45,27,105,.06);--shadow-lg:0 10px 15px rgba(45,27,105,.1),0 4px 6px rgba(45,27,105,.05);--radius:.5rem;--radius-lg:.75rem;--radius-xl:1rem}
body{font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--gray-800);background:var(--gray-50)}a{color:var(--purple-700);text-decoration:none;transition:color .2s}a:hover{color:var(--purple-500)}
.btn-purple{background:var(--purple-700);color:#fff;border:none;font-weight:600;padding:.625rem 1.5rem;border-radius:var(--radius);transition:all .2s}.btn-purple:hover{background:var(--purple-800);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-purple-outline{background:transparent;color:var(--purple-700);border:2px solid var(--purple-700);font-weight:600;padding:.5rem 1.5rem;border-radius:var(--radius);transition:all .2s}.btn-purple-outline:hover{background:var(--purple-700);color:#fff}
.btn-white{background:#fff;color:var(--purple-800);font-weight:700;padding:.75rem 2rem;border-radius:var(--radius);border:none;transition:all .2s}.btn-white:hover{background:var(--gray-100);color:var(--purple-900)}
.btn-sm.btn-purple{padding:.375rem 1rem;font-size:.875rem}
.navbar-public{background:#fff;border-bottom:1px solid var(--gray-200);padding:.75rem 0}.navbar-public .navbar-brand{font-weight:700;font-size:1.35rem;color:var(--purple-800)}.navbar-public .navbar-brand i{color:var(--purple-600)}.navbar-public .nav-link{color:var(--gray-600);font-weight:500;padding:.5rem 1rem}.navbar-public .nav-link:hover{color:var(--purple-700)}
.hero-section{background:linear-gradient(135deg,var(--purple-900),var(--purple-700),var(--purple-600));color:#fff;padding:6rem 0;position:relative;overflow:hidden}.hero-section::before{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;border-radius:50%;background:rgba(255,255,255,.03)}.hero-section h1{font-size:3rem;font-weight:800;line-height:1.15;margin-bottom:1.25rem}.hero-section p.lead{font-size:1.2rem;opacity:.9;line-height:1.6;max-width:540px}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);padding:.375rem 1rem;border-radius:50px;font-size:.85rem;font-weight:500;margin-bottom:1.5rem}
.section-title{font-size:2rem;font-weight:800;color:var(--gray-900);margin-bottom:.5rem}.section-subtitle{color:var(--gray-500);font-size:1.05rem;max-width:600px;margin:0 auto 3rem}
.feature-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:2rem;transition:all .3s;height:100%}.feature-card:hover{border-color:var(--purple-200);box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.feature-icon{width:52px;height:52px;border-radius:var(--radius);background:var(--purple-50);display:flex;align-items:center;justify-content:center;color:var(--purple-700);font-size:1.4rem;margin-bottom:1.25rem}
.feature-card h5{font-weight:700;color:var(--gray-900)}.feature-card p{color:var(--gray-500);font-size:.92rem;line-height:1.55;margin-bottom:0}
.stats-section{background:var(--purple-900);color:#fff;padding:4rem 0}.stat-item h3{font-size:2.5rem;font-weight:800}.stat-item p{opacity:.75;font-size:.95rem;margin-bottom:0}
.cta-section{background:linear-gradient(135deg,var(--purple-800),var(--purple-600));color:#fff;padding:5rem 0;text-align:center}.cta-section h2{font-weight:800;font-size:2.25rem;margin-bottom:1rem}.cta-section p{opacity:.85;max-width:500px;margin:0 auto 2rem}
.footer-public{background:var(--gray-900);color:var(--gray-400);padding:3rem 0 1.5rem}.footer-public h6{color:#fff;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.footer-public a{color:var(--gray-400);font-size:.9rem;display:block;padding:.2rem 0}.footer-public a:hover{color:var(--purple-300)}.footer-bottom{border-top:1px solid var(--gray-700);margin-top:2rem;padding-top:1.5rem;font-size:.85rem}
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--purple-900),var(--purple-700))}.auth-card{background:#fff;border-radius:var(--radius-xl);padding:2.5rem;width:100%;max-width:440px;box-shadow:0 20px 25px rgba(45,27,105,.1)}.auth-card h2{font-weight:800;color:var(--gray-900);margin-bottom:.25rem}
.sidebar{width:260px;min-height:100vh;background:var(--purple-900);color:#fff;position:fixed;top:0;left:0;z-index:1030;overflow-y:auto}.sidebar-brand{padding:1.25rem 1.5rem;font-weight:700;font-size:1.15rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:.5rem}.sidebar-brand i{color:var(--purple-300)}.sidebar-brand small{font-size:.6rem;font-weight:400;color:var(--purple-400);display:block;margin-top:2px}
.sidebar-nav{list-style:none;padding:1rem 0;margin:0}.sidebar-section-label{padding:.75rem 1.5rem .375rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--purple-400);font-weight:600}
.sidebar-nav .nav-link{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.5rem;color:var(--purple-200);font-size:.9rem;font-weight:500;transition:all .2s;border-left:3px solid transparent}.sidebar-nav .nav-link:hover{color:#fff;background:rgba(255,255,255,.07)}.sidebar-nav .nav-link.active{color:#fff;background:rgba(255,255,255,.1);border-left-color:var(--purple-400)}.sidebar-nav .nav-link i{font-size:1.1rem;width:20px;text-align:center}
.main-content{margin-left:260px;min-height:100vh;background:var(--gray-50)}.top-bar{background:#fff;border-bottom:1px solid var(--gray-200);padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1020}.top-bar .page-title{font-weight:700;font-size:1.1rem;color:var(--gray-800);margin:0}.top-bar .user-avatar{width:36px;height:36px;border-radius:50%;background:var(--purple-100);color:var(--purple-700);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.content-area{padding:1.5rem}
.stat-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:1.5rem;transition:box-shadow .2s}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-card .stat-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.2rem}.stat-icon.purple{background:var(--purple-100);color:var(--purple-700)}.stat-icon.green{background:var(--success-light);color:var(--success)}.stat-icon.blue{background:var(--info-light);color:var(--info)}.stat-icon.orange{background:var(--warning-light);color:var(--warning)}.stat-card .stat-value{font-size:1.75rem;font-weight:800;color:var(--gray-900);margin:.75rem 0 .25rem}.stat-card .stat-label{font-size:.85rem;color:var(--gray-500);margin:0}
.data-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.data-card .card-header{background:#fff;border-bottom:1px solid var(--gray-200);padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.data-card .card-header h6{font-weight:700;margin:0}.data-card .table{margin-bottom:0}.data-card .table thead th{background:var(--gray-50);border-bottom:1px solid var(--gray-200);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);padding:.75rem 1rem}.data-card .table tbody td{padding:.875rem 1rem;font-size:.9rem;vertical-align:middle;border-bottom:1px solid var(--gray-100)}
.badge-status{padding:.3rem .65rem;border-radius:50px;font-size:.75rem;font-weight:600}.badge-active,.badge-completed,.badge-paid,.badge-verified{background:var(--success-light);color:var(--success)}.badge-inactive,.badge-suspended{background:var(--gray-100);color:var(--gray-500)}.badge-pending,.badge-trialing,.badge-paused,.badge-submitted,.badge-not_required{background:var(--warning-light);color:var(--warning)}.badge-failed,.badge-canceled,.badge-past_due,.badge-reversed,.badge-void,.badge-rejected{background:var(--danger-light);color:var(--danger)}.badge-credit{background:var(--success-light);color:var(--success)}.badge-debit{background:var(--danger-light);color:var(--danger)}
.form-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:2rem}.form-card .form-label{font-weight:600;font-size:.875rem;color:var(--gray-700);margin-bottom:.375rem}.form-card .form-control,.form-card .form-select{border-color:var(--gray-300);border-radius:var(--radius);padding:.625rem .875rem;font-size:.9rem}.form-card .form-control:focus,.form-card .form-select:focus{border-color:var(--purple-400);box-shadow:0 0 0 3px rgba(106,66,209,.1)}
.empty-state{text-align:center;padding:4rem 2rem}.empty-state i{font-size:3rem;color:var(--gray-300);margin-bottom:1rem}.empty-state h5{color:var(--gray-600);font-weight:700}.empty-state p{color:var(--gray-400);max-width:360px;margin:0 auto 1.5rem}
@media(max-width:991.98px){.sidebar{width:0;overflow:hidden}.sidebar.show{width:260px}.main-content{margin-left:0}.hero-section h1{font-size:2.25rem}.hero-section{padding:4rem 0}}
