@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.btn-primary,.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;padding:12px 20px;background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;box-shadow:0 2px 8px #7c3aed4d}.btn-primary:disabled,.primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary:hover:not(:disabled),.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #7c3aed66}.btn-secondary,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;padding:12px 20px;background:#fff;border:1px solid #E5E7EB;color:#1f2937}.btn-secondary:disabled,.secondary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary:hover:not(:disabled),.secondary-btn:hover:not(:disabled){border-color:#7c3aed;color:#7c3aed}.btn-add,.add-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;padding:12px 20px;background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;box-shadow:0 2px 8px #7c3aed4d}.btn-add:disabled,.add-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-add:hover:not(:disabled),.add-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #7c3aed66}.btn-icon,.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:transparent;color:#6b7280;cursor:pointer;transition:all .2s ease}.btn-icon:hover,.icon-btn:hover{background:#f9fafb}.btn-icon.edit:hover,.icon-btn.edit:hover{color:#7c3aed;background:#7c3aed1a}.btn-icon.toggle:hover,.icon-btn.toggle:hover{color:#d97706;background:#d977061a}.btn-icon.delete:hover,.icon-btn.delete:hover{color:#ef4444;background:#ef44441a}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#1f2937;margin-bottom:8px}.form-group .form-hint{display:block;font-size:.75rem;color:#6b7280;margin-top:4px}.form-input,input.form-input,select.form-input,textarea.form-input{width:100%;padding:.75rem 1rem;border:1px solid #E5E7EB;border-radius:8px;font-size:.9375rem;color:#1f2937;background:#fff;transition:all .2s ease}.form-input:focus,input.form-input:focus,select.form-input:focus,textarea.form-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.form-input::placeholder,input.form-input::placeholder,select.form-input::placeholder,textarea.form-input::placeholder{color:#6b7280}.form-input:disabled,input.form-input:disabled,select.form-input:disabled,textarea.form-input:disabled{opacity:.6;cursor:not-allowed;background:#f9fafb}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;margin-top:8px;border-top:1px solid #E5E7EB}.code-input{text-transform:uppercase;letter-spacing:1px;font-weight:600}.form-hint{display:block;font-size:.6875rem;color:#6b7280;margin-top:4px}.card{background:#fff;border-radius:16px;border:1px solid #E5E7EB;box-shadow:0 2px 8px #0000000d}.card.card-hover{transition:all .2s ease}.card.card-hover:hover{box-shadow:0 4px 12px #00000014}.table-container{background:#fff;border-radius:16px;border:1px solid #E5E7EB;box-shadow:0 2px 8px #0000000d;overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:#f9fafb}.data-table thead th{padding:14px 20px;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#6b7280;border-bottom:1px solid #E5E7EB}.data-table thead th:last-child{text-align:right}.data-table tbody tr{border-bottom:1px solid #E5E7EB;transition:background .2s ease}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:#7c3aed05}.data-table tbody tr.inactive-row{background:#6b728008}.data-table tbody tr.inactive-row td{color:#6b7280}.data-table tbody td{padding:16px 20px;font-size:.875rem;color:#1f2937;vertical-align:middle}.data-table tbody td:last-child{text-align:right}.status-pill{display:inline-block;padding:6px 12px;border-radius:9999px;font-size:.75rem;font-weight:600}.status-pill.active{background:#10b9811a;color:#10b981}.status-pill.inactive{background:#6b72801a;color:#6b7280}.status-pill.pending{background:#d977061a;color:#d97706}.status-pill.danger{background:#ef44441a;color:#ef4444}.code-badge{display:inline-block;padding:6px 12px;background:#7c3aed1a;color:#7c3aed;border-radius:6px;font-size:13px;font-weight:600;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace}.loading-state{flex-direction:column;display:flex;align-items:center;justify-content:center;padding:80px 40px;color:#6b7280}.loading-state .spinner{width:40px;height:40px;border:3px solid #E5E7EB;border-top-color:#7c3aed;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-state p{margin:0;font-size:.875rem}.empty-state{text-align:center;padding:60px 32px;background:#fff;border-radius:16px;border:1px solid #E5E7EB;box-shadow:0 2px 8px #0000000d}.empty-state .empty-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 20px;background:#7c3aed1a;border-radius:50%;color:#7c3aed}.empty-state h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 8px}.empty-state p{font-size:.875rem;color:#6b7280;margin:0 0 24px}.empty-state-card{text-align:center;padding:60px 32px;background:#fff;border-radius:16px;border:1px solid #E5E7EB;box-shadow:0 2px 8px #0000000d}.empty-state-card .empty-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 20px;background:#7c3aed1a;border-radius:50%;color:#7c3aed}.empty-state-card h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 8px}.empty-state-card p{font-size:.875rem;color:#6b7280;margin:0 0 24px}.content-header{padding:32px 32px 24px;background:linear-gradient(135deg,#f8f7ff,#f3f0ff);border-bottom:1px solid #E5E7EB}.content-header .header-row{display:flex;align-items:center;justify-content:space-between;gap:24px}@media (max-width: 767px){.content-header .header-row{flex-direction:column;align-items:flex-start}}.content-header h1{font-size:1.75rem;font-weight:700;color:#1f2937;margin:0 0 8px}.content-header p{font-size:.9375rem;color:#6b7280;margin:0}.content-body{padding:24px 32px}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:400;animation:fadeIn .15s ease}.modal-content{background:#fff;border-radius:16px;box-shadow:0 6px 16px #0000001a;max-width:90vw;max-height:90vh;overflow:auto;animation:slideUp .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid #E5E7EB}.modal-header h2{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0}.modal-header .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:#6b7280;cursor:pointer;transition:all .2s ease}.modal-header .close-btn:hover{background:#f9fafb;color:#1f2937}.modal-body{padding:24px}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid #E5E7EB;background:#f9fafb}.stats-row{display:flex;gap:20px;margin-bottom:24px}@media (max-width: 767px){.stats-row{flex-direction:column}}.stat-card{display:flex;align-items:center;gap:16px;background:#fff;border-radius:16px;border:1px solid #E5E7EB;box-shadow:0 2px 8px #0000000d;padding:20px 24px;flex:1}.stat-card .stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:#7c3aed1a;color:#7c3aed}.stat-card.active .stat-icon{background:#10b9811a;color:#10b981}.stat-card.inactive .stat-icon{background:#6b72801a;color:#6b7280}.stat-card .stat-content{display:flex;flex-direction:column}.stat-card .stat-content .stat-value{font-size:1.75rem;font-weight:700;color:#1f2937;line-height:1}.stat-card .stat-content .stat-label{font-size:13px;color:#6b7280;margin-top:4px}.items-grid,.partners-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.actions-cell{display:flex;justify-content:flex-end;gap:8px}.tabs{display:flex;gap:0;border-bottom:1px solid #E5E7EB;background:#fff;overflow-x:auto}.tabs .tab{padding:16px 24px;font-size:.875rem;font-weight:500;color:#6b7280;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tabs .tab:hover{color:#1f2937;background:#f9fafb}.tabs .tab.active{color:#7c3aed;border-bottom-color:#7c3aed}.spinner{width:40px;height:40px;border:3px solid #E5E7EB;border-top-color:#7c3aed;border-radius:50%;animation:spin 1s linear infinite}.spinner.spinner-sm{width:16px;height:16px;border-width:2px}.spinner.spinner-lg{width:60px;height:60px;border-width:4px}.spinner.spinner-white{border-color:#ffffff4d;border-top-color:#fff}.warning-box{padding:16px;background:#d9770614;border:1px solid rgba(217,119,6,.3);border-radius:8px;color:#d97706;font-size:.875rem}.warning-box.danger{background:#ef444414;border-color:#ef44444d;color:#ef4444}.warning-box.success{background:#10b98114;border-color:#10b9814d;color:#10b981}.warning-box.info{background:#3b82f614;border-color:#3b82f64d;color:#3b82f6}.text-muted{color:#6b7280}.text-primary{color:#7c3aed}.text-success{color:#10b981}.text-warning{color:#d97706}.text-danger{color:#ef4444}.font-mono{font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace}.font-semibold{font-weight:600}.font-bold{font-weight:700}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#f9fafb}
