/* ============================================
   agendamento Corporativo - Estilos personalizados
   ============================================ */

html, body { height: 100%; }
body { font-family: 'Inter', ui-sans-serif, system-ui, sans-serif; }

/* Toast animations */
@keyframes slide-in { from { transform: translateX(100%); opacity: 0 } to { transform: translateX(0); opacity: 1 } }
.toast { animation: slide-in 0.3s ease-out }

/* Modal fade */
@keyframes fade-in { from { opacity: 0 } to { opacity: 1 } }
.modal-backdrop { animation: fade-in 0.2s ease-out }

/* Spinner */
.spinner { border: 3px solid #e5e7eb; border-top-color: #2563eb; border-radius: 50%; animation: spin 0.8s linear infinite }
@keyframes spin { to { transform: rotate(360deg) } }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 500; transition: all 0.15s; cursor: pointer; border: 1px solid transparent; line-height: 1.25rem; }
.btn:disabled { opacity: 0.5; pointer-events: none }
.btn-sm { padding: 0.375rem 0.75rem; font-size: 0.8125rem; }
.btn-lg { padding: 0.625rem 1.25rem; font-size: 0.9375rem; }
.btn-primary { background: #2563eb; color: white }
.btn-primary:hover { background: #1d4ed8 }
.btn-secondary { background: white; color: #374151; border: 1px solid #d1d5db }
.btn-secondary:hover { background: #f9fafb }
.btn-danger { background: #dc2626; color: white }
.btn-danger:hover { background: #b91c1c }
.btn-success { background: #16a34a; color: white }
.btn-success:hover { background: #15803d }
.btn-ghost { background: transparent; color: #374151 }
.btn-ghost:hover { background: #f3f4f6 }

/* Inputs */
.input, .select, .textarea { display: block; width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #d1d5db; border-radius: 0.375rem; font-size: 0.875rem; background: white; color: #111827; line-height: 1.25rem; }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 1px #2563eb }
.input:disabled, .select:disabled, .textarea:disabled { background: #f3f4f6; cursor: not-allowed; }
.label { display: block; font-size: 0.875rem; font-weight: 500; color: #374151; margin-bottom: 0.25rem }

/* Cartões */
.card { background: white; border-radius: 0.5rem; border: 1px solid #e5e7eb; box-shadow: 0 1px 2px rgba(0,0,0,0.05) }
.card-hover { transition: all 0.2s; }
.card-hover:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); border-color: #c7d2fe; }

/* Badges */
.badge { display: inline-flex; align-items: center; padding: 0.125rem 0.5rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 500; }
.badge-blue { background: #dbeafe; color: #1e40af; }
.badge-green { background: #dcfce7; color: #166534; }
.badge-red { background: #fee2e2; color: #991b1b; }
.badge-yellow { background: #fef9c3; color: #854d0e; }
.badge-gray { background: #f3f4f6; color: #374151; }
.badge-indigo { background: #e0e7ff; color: #3730a3; }

/* Grid semanal */
.grid-semana { display: grid; gap: 1px; background: #e5e7eb; border: 1px solid #e5e7eb; border-radius: 0.5rem; overflow: hidden; }
.grid-cell { background: white; padding: 0.25rem; min-height: 28px; font-size: 0.75rem; }
.grid-cell-header { background: #f9fafb; font-weight: 600; padding: 0.5rem; text-align: center; }
.grid-cell-time { background: #f9fafb; font-weight: 500; padding: 0.5rem; text-align: right; color: #6b7280; }
.grid-cell-free { cursor: pointer; transition: background 0.1s; }
.grid-cell-free:hover { background: #eff6ff; }
.grid-cell-busy { background: #dbeafe; color: #1e40af; cursor: default; font-weight: 500; overflow: hidden; }
.grid-cell-busy:hover { background: #bfdbfe; }

/* Tags participantes */
.tag { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.5rem; background: #e0e7ff; color: #3730a3; border-radius: 9999px; font-size: 0.75rem; }
.tag-remove { cursor: pointer; color: #6366f1; font-weight: 700; }
.tag-remove:hover { color: #312e81; }

/* Tabelas */
.table { width: 100%; border-collapse: collapse; }
.table thead { background: #f9fafb; }
.table th { text-align: left; font-size: 0.75rem; font-weight: 600; color: #374151; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.75rem 1rem; border-bottom: 1px solid #e5e7eb; }
.table td { padding: 0.75rem 1rem; border-bottom: 1px solid #f3f4f6; font-size: 0.875rem; color: #111827; }
.table tbody tr:hover { background: #f9fafb; }

/* Tabs */
.tab { padding: 0.75rem 1rem; font-size: 0.875rem; font-weight: 500; color: #6b7280; border-bottom: 2px solid transparent; cursor: pointer; transition: all 0.15s; }
.tab:hover { color: #374151; }
.tab-active { color: #2563eb; border-bottom-color: #2563eb; }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #f3f4f6; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Animação "ao vivo" para reuniões em andamento */
@keyframes pulse-ao-vivo {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
