:root{--sap-primary:#6c47ff;--sap-primary-hover:#5536d4;--sap-primary-soft:#6c47ff14;--sap-secondary:#10b981;--sap-danger:#ef4444;--sap-warning:#f59e0b;--sap-info:#3b82f6;--sidebar-bg:#0f0e1a;--sidebar-text:#c4c4d4;--sidebar-active:#6c47ff2e;--sidebar-active-text:#fff;--sidebar-hover:#ffffff0d;--sidebar-width:240px;--sidebar-width-collapsed:60px;--bg-page:#f8f8fc;--bg-card:#fff;--bg-muted:#f1f0f7;--border:#e5e4ef;--border-light:#eeecfc;--text-primary:#1a1730;--text-secondary:#5c5a7a;--text-muted:#9896b0;--status-active:#10b981;--status-inactive:#9ca3af;--status-suspended:#f59e0b;--status-provisioning:#6c47ff;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius:10px;--radius-sm:6px;--radius-lg:16px;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 12px 32px #0000001f;--topbar-h:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:14px}body{font-family:var(--font);background:var(--bg-page);color:var(--text-primary);line-height:1.6}.sap-layout{min-height:100vh;display:flex}.sap-sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);z-index:100;flex-direction:column;transition:width .2s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sap-main{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;transition:margin-left .2s;display:flex}.sap-logo{border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:20px 16px 16px;display:flex}.sap-logo-icon{background:var(--sap-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.sap-logo-text{color:#fff;letter-spacing:.02em;font-size:13px;font-weight:700;line-height:1.2}.sap-logo-sub{color:var(--sidebar-text);font-size:10px;font-weight:400}.sap-nav{flex:1;padding:12px 0;overflow-y:auto}.sap-nav::-webkit-scrollbar{width:4px}.sap-nav::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.sap-nav-group{margin-bottom:4px}.sap-nav-group-label{color:#ffffff4d;letter-spacing:.08em;text-transform:uppercase;padding:8px 16px 4px;font-size:10px;font-weight:600}.sap-nav-item{color:var(--sidebar-text);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;margin:1px 8px;padding:9px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sap-nav-item:hover{background:var(--sidebar-hover);color:#fff}.sap-nav-item.active{background:var(--sidebar-active);color:var(--sidebar-active-text)}.sap-nav-item-icon{text-align:center;flex-shrink:0;width:20px;font-size:16px}.sap-nav-badge{background:var(--sap-primary);color:#fff;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.sap-sidebar-user{border-top:1px solid #ffffff0f;align-items:center;gap:10px;padding:12px 16px;display:flex}.sap-sidebar-avatar{background:var(--sap-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.sap-sidebar-name{color:#fff;font-size:12px;font-weight:600}.sap-sidebar-role{color:var(--sidebar-text);font-size:10px}.sap-topbar{height:var(--topbar-h);background:var(--bg-card);border-bottom:1px solid var(--border);z-index:50;box-shadow:var(--shadow);align-items:center;gap:12px;padding:0 24px;display:flex;position:sticky;top:0}.sap-topbar-title{color:var(--text-primary);flex:1;font-size:15px;font-weight:700}.sap-topbar-subtitle,.sap-breadcrumb{color:var(--text-muted);font-size:12px}.sap-breadcrumb span{color:var(--text-secondary)}.sap-content{flex:1;padding:24px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-header h3{color:var(--text-primary);font-size:14px;font-weight:700}.card-body{padding:20px}.card-body.no-pad{padding:0}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--stat-accent,var(--sap-primary));height:3px;position:absolute;top:0;left:0;right:0}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:11px;font-weight:600}.stat-value{color:var(--text-primary);font-size:28px;font-weight:800;line-height:1}.stat-sub{color:var(--text-muted);margin-top:6px;font-size:11px}.stat-icon{opacity:.12;font-size:24px;position:absolute;top:16px;right:16px}.btn{border-radius:var(--radius-sm);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;white-space:nowrap;border:1.5px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 16px;line-height:1;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--sap-primary);color:#fff;border-color:var(--sap-primary)}.btn-primary:hover:not(:disabled){background:var(--sap-primary-hover);border-color:var(--sap-primary-hover)}.btn-secondary{background:var(--sap-primary-soft);color:var(--sap-primary);border-color:var(--sap-primary-soft)}.btn-secondary:hover:not(:disabled){background:#6c47ff24}.btn-ghost{color:var(--text-secondary);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-muted)}.btn-danger{background:var(--sap-danger);color:#fff;border-color:var(--sap-danger)}.btn-success{background:var(--sap-secondary);color:#fff;border-color:var(--sap-secondary)}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{padding:12px 24px;font-size:14px}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table thead tr{border-bottom:2px solid var(--border)}.data-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:700}.data-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);padding:12px 16px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bg-muted)}.data-table .name-cell{font-weight:600}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:99px;align-items:center;padding:2px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-success{color:#059669;background:#10b9811f}.badge-warning{color:#d97706;background:#f59e0b1f}.badge-danger{color:#dc2626;background:#ef44441f}.badge-info{color:#2563eb;background:#3b82f61f}.badge-muted{color:#6b7280;background:#9ca3af26}.badge-purple{color:var(--sap-primary);background:#6c47ff1f}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-group label .required{color:var(--sap-danger);margin-left:2px}.form-control{border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:13px;font-family:var(--font);color:var(--text-primary);background:var(--bg-card);outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.form-control:focus{border-color:var(--sap-primary);box-shadow:0 0 0 3px var(--sap-primary-soft)}.form-control::placeholder{color:var(--text-muted)}.form-grid{gap:16px;display:grid}.form-grid-2{grid-template-columns:repeat(2,1fr)}.form-grid-3{grid-template-columns:repeat(3,1fr)}.form-hint{color:var(--text-muted);margin-top:4px;font-size:11px}.form-error{color:var(--sap-danger);margin-top:4px;font-size:11px}.toast-container{z-index:9999;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);min-width:280px;max-width:400px;box-shadow:var(--shadow-lg);align-items:flex-start;gap:10px;padding:14px 16px;animation:.25s toastIn;display:flex}.toast-success{border-left:4px solid var(--sap-secondary)}.toast-error{border-left:4px solid var(--sap-danger)}.toast-info{border-left:4px solid var(--sap-info)}.toast-warning{border-left:4px solid var(--sap-warning)}.toast-icon{font-size:18px}.toast-body{flex:1}.toast-title{color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:700}.toast-msg{color:var(--text-secondary);font-size:12px}.toast-close{cursor:pointer;color:var(--text-muted);padding:0 4px;font-size:16px}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-header h1{color:var(--text-primary);font-size:20px;font-weight:800}.page-header-actions{align-items:center;gap:8px;display:flex}.page-sub{color:var(--text-muted);margin-top:2px;font-size:13px}.empty-state{text-align:center;color:var(--text-muted);padding:48px 24px}.empty-state-icon{margin-bottom:12px;font-size:40px}.empty-state h3{color:var(--text-secondary);margin-bottom:6px;font-size:15px;font-weight:700}.empty-state p{font-size:13px}.skeleton{background:linear-gradient(90deg, var(--bg-muted) 25%, var(--border) 50%, var(--bg-muted) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toggle{width:40px;height:22px;display:inline-block;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:var(--border);border-radius:22px;transition:all .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle input:checked+.toggle-slider{background:var(--sap-primary)}.toggle input:checked+.toggle-slider:before{transform:translate(18px)}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.flex{display:flex}.flex-center{align-items:center;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.text-muted{color:var(--text-muted)}.text-sm{font-size:12px}.fw-700{font-weight:700}.divider{border:none;border-top:1px solid var(--border);margin:20px 0}@media (width<=768px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}
