.spinner {
display: none;
border: 2px solid rgba(0,0,0,0.1);
border-top: 2px solid #111827;
border-radius: 50%;
width: 16px;
height: 16px;
animation: spin 1s linear infinite;
margin-right: 8px;
}

@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

.is-loading .spinner {
display: inline-block;
}

/* Custom styling for file upload */
input[type="file"]::file-selector-button {
background-color: #D5BDAF;
color: #111827;
padding: 0.5rem 1rem;
border: none;
border-radius: 0.5rem;
cursor: pointer;
font-weight: 600;
margin-right: 1rem;
transition: background 0.2s;
}

input[type="file"]::file-selector-button:hover {
background-color: #D6CCC2;
}

/* ========================= */
/* MOBILE RESPONSIVENESS FIX */
/* ========================= */

/* Tablet Fix */
@media (max-width: 1024px) {
main .max-w-6xl {
flex-direction: column !important;
}
}

/* Mobile Fix */
@media (max-width: 768px) {

```
/* Header */
header {
    flex-direction: column;
    gap: 10px;
    text-align: center;
    padding: 12px !important;
}

header .flex.items-center {
    flex-direction: column;
    gap: 6px;
}

header .text-2xl {
    font-size: 1.2rem;
}

header img {
    height: 35px !important;
}

/* Social icons */
header .flex.gap-4 {
    justify-content: center;
    font-size: 18px;
}

/* Main layout */
main {
    padding: 10px !important;
}

main .max-w-6xl {
    gap: 15px !important;
}

/* Cards */
.rounded-2xl {
    padding: 15px !important;
}

/* Grid buttons */
.grid {
    grid-template-columns: 1fr !important;
}

/* Inputs & buttons */
input, button {
    font-size: 14px;
}

button {
    padding: 10px !important;
}

/* Carousel buttons */
#prev-slide,
#next-slide {
    width: 35px;
    height: 35px;
}

/* Footer */
footer .grid {
    grid-template-columns: 1fr !important;
    text-align: center;
    gap: 20px;
}
```

}

/* Small Mobile Fix */
@media (max-width: 480px) {

```
h2, h3 {
    font-size: 1.2rem !important;
}

p {
    font-size: 0.85rem !important;
}

.text-3xl {
    font-size: 1.5rem !important;
}

.text-xl {
    font-size: 1rem !important;
}

.w-16 {
    width: 50px;
    height: 50px;
}

input {
    padding: 10px !important;
}

.rounded-xl {
    border-radius: 12px;
}
```

}
