:root{--color-primary:#6366f1;--color-primary-hover:#4f46e5;--color-primary-light:#6366f11a;--color-secondary:#0f172a;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-info:#06b6d4;--color-bg-base:#f8fafc;--color-bg-surface:#fff;--color-bg-sidebar:#0f172a;--color-bg-sidebar-active:#1e293b;--color-text-main:#0f172a;--color-text-muted:#64748b;--color-text-light:#94a3b8;--color-border:#e2e8f0;--font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg-base);color:var(--color-text-main);-webkit-font-smoothing:antialiased;line-height:1.5}.app-layout{min-height:100vh;display:flex}.main-content{background-color:var(--color-bg-base);flex-direction:column;flex:1;min-width:0;display:flex}.page-body{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:1.75rem 2rem}.panel-card{background:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.5rem}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1.15rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-outline{border-color:var(--color-border);color:var(--color-text-main);background:#fff}.btn-outline:hover{background:#f1f5f9}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-success{background:var(--color-success);color:#fff}.btn-sm{padding:.35rem .65rem;font-size:.8rem}.badge{letter-spacing:.3px;text-transform:uppercase;border-radius:9999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-pro{color:#4f46e5;background:linear-gradient(135deg,#6366f126 0%,#8b5cf626 100%);border:1px solid #6366f14d}.badge-enterprise{color:#059669;background:linear-gradient(135deg,#10b98126 0%,#05966926 100%);border:1px solid #10b9814d}.badge-free{color:#64748b;background:#f1f5f9;border:1px solid #cbd5e1}.badge-active{color:#059669;background:#ecfdf5}.badge-suspended{color:#dc2626;background:#fef2f2}.badge-expired{color:#d97706;background:#fffbeb}.table-responsive{overflow-x:auto}.sa-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.sa-table th{color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;background:#f8fafc;padding:.85rem 1rem;font-weight:600}.sa-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:1rem}.sa-table tbody tr:hover{background-color:#f8fafc}.form-input,.form-select,.form-textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-main);background:#fff;outline:none;padding:.6rem .85rem;font-family:inherit;font-size:.875rem;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);background:#fff;width:100%;max-width:580px;max-height:90vh;animation:.2s cubic-bezier(.16,1,.3,1) modalScale;overflow-y:auto}@keyframes modalScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:.3s ease-in-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
