/* SavingsBot - Custom Styles (emerald / green "savings" theme) */

* { -webkit-tap-highlight-color: transparent; }
html { scroll-behavior: smooth; }

body {
    background:
        radial-gradient(ellipse at top right, rgba(16, 185, 129, 0.10) 0%, transparent 50%),
        radial-gradient(ellipse at bottom left, rgba(6, 78, 59, 0.08) 0%, transparent 50%),
        #ecfdf5;
    min-height: 100vh;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }

.q-input {
    width: 100%;
    padding: 1rem 1.25rem;
    font-size: 1.15rem;
    font-weight: 700;
    border: 2px solid #a7f3d0;
    border-radius: 1rem;
    background: white;
    color: #022c22;
    transition: all 0.2s;
    direction: rtl;
    text-align: right;
}
.q-input::placeholder { color: #6ee7b7; font-weight: 400; font-size: 1rem; }
.q-input:focus {
    outline: none;
    border-color: #10b981;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.15);
}

/* Upload slots */
.drop-zone {
    border: 3px dashed #6ee7b7;
    border-radius: 1.25rem;
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    padding: 1.5rem 1rem; text-align: center; cursor: pointer;
    transition: all 0.2s ease;
}
.drop-zone:hover { border-color: #059669; background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%); }
.drop-zone.filled { border-style: solid; border-color: #16a34a; background: #f0fdf4; }
.drop-zone.dragging { border-color: #059669; background: #a7f3d0; }

/* Loader */
.loader-overlay {
    position: fixed; inset: 0;
    background: rgba(2, 44, 34, 0.85);
    backdrop-filter: blur(8px);
    z-index: 9999; display: none;
    align-items: center; justify-content: center; flex-direction: column;
    gap: 1.5rem; color: white;
}
.loader-overlay.active { display: flex; }
.loader-spinner {
    width: 64px; height: 64px;
    border: 5px solid rgba(16, 185, 129, 0.2);
    border-top-color: #10b981; border-radius: 50%;
    animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.loader-text { font-size: 1.2rem; font-weight: 700; text-align: center; max-width: 340px; }

.error-msg { color: #dc2626; font-size: 0.9rem; font-weight: 600; margin-top: 0.5rem; display: none; }
.error-msg.show { display: block; }

@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 30px rgba(245, 158, 11, 0.4); }
    50% { box-shadow: 0 0 60px rgba(245, 158, 11, 0.8); }
}
.animate-pulse-glow { animation: pulse-glow 3s ease-in-out infinite; }

@keyframes gradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}
.animate-gradient { background-size: 200% auto; animation: gradient 8s ease infinite; }

@media (max-width: 640px) {
    .q-input { font-size: 1.05rem; padding: 0.875rem 1rem; }
}
