/* Custom styles for GAS Remote Launcher */

:root {
    --bg-main: #0f172a;
    --card-bg: #1e293b;
    --accent: #3b82f6;
}

body {
    -webkit-tap-highlight-color: transparent;
    overscroll-behavior-y: none;
}

/* Animations */
@keyframes slideUp {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

@keyframes scaleIn {
    from { transform: scale(0.95); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

@keyframes pulse-soft {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.05); opacity: 0.8; }
}

.animate-slide-up {
    animation: slideUp 0.3s ease-out forwards;
}

.animate-scale-in {
    animation: scaleIn 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.pulse-active {
    animation: pulse-soft 2s infinite ease-in-out;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.1);
    border-radius: 10px;
}

/* Utilities */
.glass {
    background: rgba(30, 41, 59, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.card-shadow {
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
}

/* Active Nav State */
.nav-active {
    color: #3b82f6 !important;
}

/* Color Palette Selectors */
.color-swatch {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.color-swatch.selected {
    transform: scale(1.1);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
}

/* GAS Card Icon Backgrounds */
.icon-bg-blue { background: rgba(59, 130, 246, 0.15); color: #3b82f6; }
.icon-bg-green { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.icon-bg-purple { background: rgba(139, 92, 246, 0.15); color: #8b5cf6; }
.icon-bg-pink { background: rgba(236, 72, 153, 0.15); color: #ec4899; }
.icon-bg-orange { background: rgba(245, 158, 11, 0.15); color: #f59e0b; }
.icon-bg-magenta { background: rgba(217, 70, 239, 0.15); color: #d946ef; }
.icon-bg-slate { background: rgba(100, 116, 139, 0.15); color: #64748b; }

/* Loading Spinner */
.loading-dots:after {
    content: '.';
    animation: dots 1.5s steps(5, end) infinite;
}

@keyframes dots {
    0%, 20% { content: '.'; }
    40% { content: '..'; }
    60% { content: '...'; }
    80%, 100% { content: ''; }
}
