*{margin:0;padding:0;box-sizing:border-box}body{font-family:Nunito Sans,sans-serif;background:#f1f5f9;color:#1e293b;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:3px}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .25s ease-out both}.sidebar{width:240px;height:100vh;background:linear-gradient(180deg,#1e1548,#2d1f6e,#1e1548);color:#fff;position:fixed;left:0;top:0;z-index:50;display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand{font-size:15px;font-weight:800;letter-spacing:-.3px}.sidebar-sub{font-size:10px;color:#a78bfa;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-top:2px}.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.sidebar-section{font-size:9px;font-weight:700;color:#a78bfa;letter-spacing:1.5px;text-transform:uppercase;padding:14px 12px 5px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:#e0d6ff;transition:all .15s;margin-bottom:1px}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#7c3aed4d;color:#fff;font-weight:700;border-left:3px solid #a78bfa}.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.1)}.main{margin-left:240px;padding:22px 26px;min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{font-size:22px;font-weight:800;color:#0f172a;letter-spacing:-.5px}.card{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:18px}.card-shadow{box-shadow:0 1px 3px #0000000f}.stat-card{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .15s}.stat-card:hover{border-color:#7c3aed;box-shadow:0 4px 12px #7c3aed1a;transform:translateY(-1px)}.stat-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}.stat-value{font-size:22px;font-weight:800;font-family:Source Code Pro,monospace;color:#0f172a;line-height:1.1}.stat-label{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.4px}.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.btn-primary{background:#6c3bd1;color:#fff}.btn-primary:hover{background:#5b2cbd}.btn-danger{background:#dc2626;color:#fff}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary:hover{background:#e2e8f0}.btn-sm{padding:5px 10px;font-size:12px}.btn-xs{padding:3px 8px;font-size:11px;border-radius:6px}.btn-success{background:#16a34a;color:#fff}.btn-warning{background:#d97706;color:#fff}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead th{padding:9px 12px;text-align:left;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid #e2e8f0;background:#f8fafc;position:sticky;top:0;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}thead th:hover{color:#6c3bd1}thead th .sort-arrow{margin-left:3px;font-size:10px;opacity:.4}thead th.sorted .sort-arrow{opacity:1;color:#6c3bd1}tbody td{padding:9px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}tbody tr{transition:background .1s}tbody tr:hover{background:#faf8ff}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:#f5f0ff}.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.3px}.badge-active,.badge-paid,.badge-approved{background:#dcfce7;color:#16a34a}.badge-suspended,.badge-pending,.badge-unpaid{background:#fef3c7;color:#d97706}.badge-disconnected,.badge-rejected,.badge-overdue{background:#fee2e2;color:#dc2626}.badge-home{background:#ede9fe;color:#7c3aed}.badge-corporate{background:#fae8ff;color:#a21caf}.form-group{margin-bottom:12px}.form-label{display:block;font-size:12px;font-weight:700;color:#374151;margin-bottom:3px}.form-input,.form-select{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;font-family:inherit;outline:none;transition:border .15s}.form-input:focus,.form-select:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:0 12px}.search-box input{border:none;outline:none;padding:8px 0;font-size:13px;font-family:inherit;flex:1;background:transparent}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:9999}.modal{background:#fff;border-radius:16px;width:90%;max-width:640px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 25px 50px #0003}.modal-lg{max-width:900px}.modal-header{padding:16px 22px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-header h3{font-size:16px;font-weight:800}.modal-body{padding:22px;overflow-y:auto;flex:1}.modal-footer{padding:14px 22px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.chart-card{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:18px}.chart-title{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:12px}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1548,#3b2875,#2d1f6e);position:relative;overflow:hidden}.login-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.login-card{background:#fff;border-radius:16px;padding:34px;width:380px;box-shadow:0 25px 50px #00000040;position:relative;z-index:1}.login-logo{text-align:center;margin-bottom:26px}.login-logo h2{font-size:20px;font-weight:900;color:#0f172a}.login-logo p{font-size:11px;color:#6c3bd1;font-weight:700;letter-spacing:1px;text-transform:uppercase}@media (max-width:768px){.login-bg{background:#fff;align-items:flex-start;padding:0;overflow:visible}.login-bg:before{display:none}.login-card{box-shadow:none;border-radius:0;width:100%;max-width:none;padding:46px 26px 28px;margin-top:7vh}.login-logo{margin-bottom:34px}}.mono{font-family:Source Code Pro,monospace}.text-muted{color:#64748b}.text-sm{font-size:12px}.empty{text-align:center;padding:40px;color:#94a3b8}.spinner{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#6c3bd1;border-radius:50%;animation:spin .6s linear infinite;margin:40px auto}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b;margin-bottom:16px}.breadcrumb a{color:#6c3bd1;cursor:pointer;font-weight:600;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.tab-bar{display:flex;gap:2px;background:#f1f5f9;border-radius:8px;padding:3px;margin-bottom:18px}.tab{padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:#64748b;transition:all .15s}.tab.active{background:#fff;color:#0f172a;box-shadow:0 1px 2px #0000000f}.detail-grid{display:grid;grid-template-columns:140px 1fr;gap:0;font-size:13px}.detail-grid dt{padding:7px 0;font-weight:700;color:#64748b;border-bottom:1px solid #f1f5f9}.detail-grid dd{padding:7px 0;border-bottom:1px solid #f1f5f9;font-weight:500}.version-tag{position:fixed;bottom:6px;right:10px;font-size:10px;color:#94a3b8;font-weight:600;z-index:40}
