/* ============================================================
   style.css — BiT App Frontend
   Design System SaaS moderno
   ============================================================ */

/* ---------- Reset & Base ---------- */
* {
    box-sizing: border-box;
}

/* ---------- Animação de entrada ---------- */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in {
    animation: fadeIn 0.3s ease-out forwards;
}

/* ---------- Utilitários de estado ---------- */
/* .hidden é fornecido pelo Tailwind — não sobrescrever com !important */

/* ---------- Input Focus Ring (Design System) ---------- */
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: #06b6d4;
    box-shadow: 0 0 0 2px rgba(6, 182, 212, 0.15);
}

/* ---------- Button Base ---------- */
.btn-primary {
    background-color: #06b6d4;
    color: #020617;
    font-weight: 700;
    border-radius: 1rem;
    padding: 0.75rem 1.5rem;
    transition: all 0.15s ease;
}
.btn-primary:hover {
    background-color: #22d3ee;
}
.btn-primary:active {
    transform: scale(0.98);
}
.btn-primary:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-secondary {
    background-color: transparent;
    color: #94a3b8;
    font-weight: 700;
    border: 1px solid #334155;
    border-radius: 1rem;
    padding: 0.75rem 1.5rem;
    transition: all 0.15s ease;
}
.btn-secondary:hover {
    color: #fff;
    border-color: #475569;
}

/* ---------- Card Component ---------- */
.card {
    background-color: rgba(15, 23, 42, 0.6);
    border: 1px solid #1e293b;
    border-radius: 1rem;
    padding: 1.5rem;
    transition: border-color 0.2s ease;
}
.card:hover {
    border-color: rgba(6, 182, 212, 0.4);
}

/* ---------- Badge Component ---------- */
.badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
    border: 1px solid;
}

/* ---------- Mood buttons ---------- */
.mood-btn.selected {
    border-color: #06b6d4; /* cyan-500 */
    background-color: #1e293b; /* slate-800 */
}

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

::-webkit-scrollbar-track {
    background: #020617; /* slate-950 */
}

::-webkit-scrollbar-thumb {
    background: #334155; /* slate-700 */
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: #475569; /* slate-600 */
}

/* ---------- Seleção de texto ---------- */
::selection {
    background-color: #06b6d4;
    color: #020617;
}

/* ---------- Loader spinner (usado durante chamadas à API) ---------- */
.loader {
    width: 20px;
    height: 20px;
    border: 2px solid #334155;
    border-top-color: #06b6d4;
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
    display: inline-block;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ---------- Accessibility: Reduced Motion ---------- */
@media (prefers-reduced-motion: reduce) {
    .animate-fade-in {
        animation: none;
    }
    .loader {
        animation-duration: 1.5s;
    }
}

/* ---------- Responsive Typography ---------- */
@media (max-width: 640px) {
    h1 { font-size: 1.5rem; }
    h2 { font-size: 1.25rem; }
}
