/* ============================================
   Gebyar Pajak Sumut 2026 - Shared Styles
   ============================================ */

/* Root Variables */
:root {
    --primary: #1754cf;
    --primary-dark: #0f3a9e;
    --secondary: #FFC82E;
    --navy-blue: #1A2E4C;
    --navy-light: #1e293b;
    --background-light: #f6f6f8;
    --background-dark: #111621;
    --success: #10b981;
    --danger: #ef4444;
    --warning: #fbbf24;
}

/* Speed Lines Effect */
.speed-lines {
    background-image: repeating-linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.03) 0px,
        rgba(255, 255, 255, 0.03) 2px,
        transparent 2px,
        transparent 12px
    );
}

.speed-lines-blue {
    background-image: repeating-linear-gradient(
        45deg,
        rgba(23, 84, 207, 0.03) 0px,
        rgba(23, 84, 207, 0.03) 2px,
        transparent 2px,
        transparent 12px
    );
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Dark mode scrollbar */
.dark ::-webkit-scrollbar-track {
    background: #1e293b;
}

.dark ::-webkit-scrollbar-thumb {
    background: #475569;
}

/* Clip Path Utilities */
.clip-diagonal {
    clip-path: polygon(0 0, 100% 0, 95% 100%, 0% 100%);
}

.clip-diagonal-reverse {
    clip-path: polygon(5% 0, 100% 0, 100% 100%, 0% 100%);
}

/* Font Speed Style */
.font-speed {
    font-style: italic;
}

/* Spinning Wheel Animation */
.spinning {
    animation: spin 3s cubic-bezier(0.25, 1, 0.5, 1) infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(1800deg); }
}

/* Pulse Animation */
@keyframes pulse-glow {
    0%, 100% {
        box-shadow: 0 0 20px rgba(255, 200, 46, 0.4);
    }
    50% {
        box-shadow: 0 0 40px rgba(255, 200, 46, 0.8);
    }
}

.pulse-glow {
    animation: pulse-glow 2s ease-in-out infinite;
}

/* Gradient Backgrounds */
.bg-gradient-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
}

.bg-gradient-navy {
    background: linear-gradient(135deg, var(--navy-blue) 0%, #0f172a 100%);
}

/* Card Hover Effects */
.card-hover {
    transition: all 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

/* Button Effects */
.btn-primary {
    background: var(--primary);
    color: white;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(23, 84, 207, 0.4);
}

.btn-secondary {
    background: var(--secondary);
    color: var(--navy-blue);
    transition: all 0.3s ease;
}

.btn-secondary:hover {
    background: #e6b400;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 200, 46, 0.4);
}

/* Form Focus States */
.form-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(23, 84, 207, 0.1);
}

/* Status Badges */
.badge-success {
    background: rgba(16, 185, 129, 0.1);
    color: var(--success);
}

.badge-warning {
    background: rgba(251, 191, 36, 0.1);
    color: var(--warning);
}

.badge-danger {
    background: rgba(239, 68, 68, 0.1);
    color: var(--danger);
}

/* Table Row Hover */
.table-row-hover:hover {
    background: rgba(23, 84, 207, 0.02);
}

/* Loading Spinner */
.spinner {
    border: 3px solid rgba(23, 84, 207, 0.1);
    border-top: 3px solid var(--primary);
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: spinner 0.8s linear infinite;
}

@keyframes spinner {
    to { transform: rotate(360deg); }
}

/* Toast Notification */
.toast {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 16px 24px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    transform: translateY(100px);
    opacity: 0;
    transition: all 0.3s ease;
    z-index: 9999;
}

.toast.show {
    transform: translateY(0);
    opacity: 1;
}

/* Responsive Utilities */
@media (max-width: 768px) {
    .mobile-menu {
        display: block;
    }
    
    .desktop-menu {
        display: none;
    }
}
