:root {
    --purple-primary: #6C2BD9;
    --purple-light: #9B59B6;
    --purple-dark: #4A1A8A;
    --purple-bg: #F3E8FF;
    --purple-gradient: linear-gradient(135deg, #6C2BD9 0%, #9B59B6 100%);
    --gold: #FFD700;
}

body { background: #f5f0fa; min-height: 100vh; display: flex; flex-direction: column; }
.card { border-radius: 12px; overflow: hidden; border: none; box-shadow: 0 4px 15px rgba(108,43,217,0.08); }
.card:hover { box-shadow: 0 8px 30px rgba(108,43,217,0.12); }

.bg-purple { background: var(--purple-gradient) !important; }
.bg-purple-dark { background: var(--purple-dark) !important; }
.text-purple { color: var(--purple-primary) !important; }
.btn-purple { background: var(--purple-gradient); color: white; border: none; padding: 10px 24px; border-radius: 10px; font-weight: 600; transition: all 0.3s; }
.btn-purple:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(108,43,217,0.3); color: white; }
.btn-purple:disabled { opacity: 0.6; transform: none; }

.btn-group .btn-check:checked + .btn { background-color: #6C2BD9; color: white; border-color: #6C2BD9; }
.btn-group .btn { font-size: 0.8rem; min-width: 40px; }
.btn-group .btn:hover { background-color: #e9ecef; }

.table-purple thead { background: var(--purple-gradient); color: white; }
.table-purple thead th { font-weight: 600; padding: 12px 16px; border: none; }
.table-purple tbody tr:hover { background: var(--purple-bg); }

.navbar-brand i { margin-right: 8px; }
footer { margin-top: auto; border-top: 1px solid #dee2e6; }

.radio-group-vertical .btn-group { display: flex; flex-wrap: wrap; gap: 4px; }
.radio-group-vertical .btn-group .btn { flex: 1; min-width: 35px; max-width: 45px; }

.bg-purple-soft { background: var(--purple-bg); color: var(--purple-primary); padding: 6px 14px; border-radius: 20px; font-weight: 500; }

.spinner-border.text-purple { color: var(--purple-primary) !important; }

@keyframes slideIn {
    from { transform: translateX(100px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f0e8f8; border-radius: 10px; }
::-webkit-scrollbar-thumb { background: var(--purple-primary); border-radius: 10px; }

@media print { .navbar, footer, .btn { display: none !important; } .card { box-shadow: none !important; border: 1px solid #ddd; } }

@media (max-width: 768px) { .btn-group .btn { font-size: 0.7rem; min-width: 30px; padding: 4px 6px; } }