/* ============================================ Bewerbungs-Tracker - Custom Styles ============================================ */ /* Base styles */ * { box-sizing: border-box; } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Custom scrollbar for dark mode */ .dark ::-webkit-scrollbar { width: 8px; height: 8px; } .dark ::-webkit-scrollbar-track { background: #374151; } .dark ::-webkit-scrollbar-thumb { background: #6b7280; border-radius: 4px; } .dark ::-webkit-scrollbar-thumb:hover { background: #8b94a3; } /* Light mode scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #a1a1a1; } /* Modal backdrop animation */ .fixed.inset-0.bg-black.bg-opacity-50 { animation: fadeIn 0.2s ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* Modal content animation */ .fixed.inset-0 > div > div { animation: slideIn 0.3s ease-out; } @keyframes slideIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } /* Table hover effect */ .tbody tr:hover { transition: background-color 0.15s ease; } /* Focus styles for inputs */ input:focus, textarea:focus, select:focus { outline: none; box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); } /* Dark mode focus */ .dark input:focus, .dark textarea:focus, .dark select:focus { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3); } /* Button focus */ button:focus { outline: none; box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); } /* Loading spinner for buttons */ button.loading { position: relative; pointer-events: none; } button.loading::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 16px; height: 16px; border: 2px solid transparent; border-top-color: currentColor; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: translate(-50%, -50%) rotate(360deg); } } /* Status badges */ .status-badge { display: inline-block; padding: 4px 8px; border-radius: 9999px; font-size: 12px; font-weight: 500; } /* Table cell wrapping */ .table-cell-wrap { white-space: normal; word-wrap: break-word; } /* Responsive adjustments */ @media (max-width: 768px) { /* Make filter section stack on mobile */ #filterForm { flex-direction: column; align-items: stretch; } #filterForm > div { margin-bottom: 1rem; } /* Adjust buttons on mobile */ #filterForm .flex.space-x-2, #filterForm .ml-auto, #filterForm > div:last-child { margin-bottom: 0 !important; } /* Make table scroll horizontally on mobile */ .overflow-hidden { overflow-x: auto; } table { min-width: 768px; } /* Adjust modal width on mobile */ .max-w-lg { max-width: 90vw; margin: 0 5vw; } .max-w-md { max-width: 90vw; margin: 0 5vw; } } /* Print styles */ @media print { .no-print { display: none !important; } body { background: white; color: black; } .dark body { background: white; color: black; } } /* Header shadow */ header { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } /* Card shadows */ .bg-white, .bg-gray-800 { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1); } /* Utility classes */ .truncate-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .truncate-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }