/* ObraLog VPS - Custom Styles v3 */

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: #9ca3af; }

/* Base */
:root { color-scheme: light; }
body { color: #111827; background: #f3f4f6; }
button, input, select, textarea { font: inherit; }

/* Focus styles */
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(79, 70, 229, .28); outline-offset: 2px; }

/* Animations */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideDown { from { opacity: 0; max-height: 0; } to { opacity: 1; max-height: 1000px; } }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

.animate-fade-in { animation: fadeIn 0.4s ease-out; }
.animate-slide-up { animation: slideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.animate-slide-down { animation: slideDown 0.5s ease-in-out; overflow: hidden; }
.animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

/* Spinner */
.spinner { border: 3px solid #e5e7eb; border-top: 3px solid #4f46e5; border-radius: 50%; width: 24px; height: 24px; animation: spin 0.8s linear infinite; display: inline-block; }
.spinner-sm { width: 16px; height: 16px; border-width: 2px; }

/* Transition helpers */
.transition-all { transition: all 0.2s ease; }
.transition-colors { transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease; }

/* Company badge dynamic colors */
.company-badge-0 { background-color: #eef2ff; color: #3730a3; border-color: #c7d2fe; }
.company-badge-1 { background-color: #f3e8ff; color: #6b21a8; border-color: #d8b4fe; }
.company-badge-2 { background-color: #fce7f3; color: #9d174d; border-color: #fbcfe8; }
.company-badge-3 { background-color: #cffafe; color: #155e75; border-color: #a5f3fc; }
.company-badge-4 { background-color: #ffe4e6; color: #9f1239; border-color: #fecdd3; }
.company-badge-5 { background-color: #fef3c7; color: #92400e; border-color: #fde68a; }
.company-badge-6 { background-color: #d1fae5; color: #065f46; border-color: #a7f3d0; }

/* User role badges */
.role-badge-EMPRESA { background-color: #dbeafe; color: #1d4ed8; }
.role-badge-PREFEITURA { background-color: #f3e8ff; color: #7c3aed; }
.role-badge-admin { background-color: #fef3c7; color: #d97706; }
.role-badge-prefeitura { background-color: #f3e8ff; color: #7c3aed; }
.role-badge-empresa { background-color: #dbeafe; color: #1d4ed8; }

/* User avatar colors */
.avatar-EMPRESA { background-color: #3b82f6; }
.avatar-PREFEITURA { background-color: #a855f7; }
.avatar-admin { background-color: #f59e0b; }
.avatar-prefeitura { background-color: #a855f7; }
.avatar-empresa { background-color: #3b82f6; }

/* Print */
@media print {
  .no-print { display: none !important; }
  body { background: white !important; font-size: 10pt; }
  .shadow-sm, .shadow, .shadow-md, .shadow-lg, .shadow-xl, .shadow-2xl { box-shadow: none !important; }
  .bg-gray-50, .bg-gray-100 { background-color: #f9fafb !important; -webkit-print-color-adjust: exact; }
  .bg-indigo-600 { background-color: #4f46e5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .bg-gray-900 { background-color: #1f2937 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .text-white { color: white !important; }
  @page { margin: 1.5cm; }
}

/* Responsive: mobile nav */
@media (max-width: 768px) {
  header nav { width: 100%; overflow-x: auto; padding-bottom: 2px; }
  header nav button { white-space: nowrap; }
}
