html, body { height: 100%; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(100, 116, 139, .35); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: rgba(100, 116, 139, .55); }

.dark ::-webkit-scrollbar-thumb { background: rgba(148, 163, 184, .25); }
.dark ::-webkit-scrollbar-thumb:hover { background: rgba(148, 163, 184, .45); }

.input-base {
    @apply w-full rounded-lg border border-slate-300 dark:border-slate-700 bg-white dark:bg-slate-900 px-3.5 py-2.5 text-sm text-slate-900 dark:text-slate-100 placeholder:text-slate-400 focus:outline-none focus:ring-2 focus:ring-brand-500/40 focus:border-brand-500;
}

/* type="search" no WebKit aplica padding/decoration próprios que cortam o 1º caractere.
   Neutralizamos para que o input se comporte como um text comum. */
.input-base[type="search"] {
    -webkit-appearance: none;
    appearance: none;
}
.input-base[type="search"]::-webkit-search-decoration,
.input-base[type="search"]::-webkit-search-cancel-button,
.input-base[type="search"]::-webkit-search-results-button,
.input-base[type="search"]::-webkit-search-results-decoration {
    -webkit-appearance: none;
    display: none;
}

/* Padronização visual de <select> em todas as plataformas (iOS/Android/Desktop) —
   remove o chevron nativo e desenha uma seta SVG consistente. */
.select-base {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: 2.25rem;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2364748b'%3e%3cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.06l3.71-3.83a.75.75 0 111.08 1.04l-4.25 4.39a.75.75 0 01-1.08 0L5.21 8.27a.75.75 0 01.02-1.06z' clip-rule='evenodd'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem 1rem;
}
.dark .select-base {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2394a3b8'%3e%3cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.06l3.71-3.83a.75.75 0 111.08 1.04l-4.25 4.39a.75.75 0 01-1.08 0L5.21 8.27a.75.75 0 01.02-1.06z' clip-rule='evenodd'/%3e%3c/svg%3e");
}
/* No mobile evita zoom automático do iOS quando o input recebe foco (font-size < 16px causa zoom) */
@media (max-width: 640px) {
    .input-base { font-size: 16px; }
}

.pg-spinner { display: inline-block; vertical-align: -3px; }
.pg-loading { pointer-events: none; }
.pg-loading > * { display: inline-flex; align-items: center; }

@keyframes pg-spin { to { transform: rotate(360deg); } }
.animate-spin { animation: pg-spin 0.7s linear infinite; }
