/* Job Tracker — Tailwind custom styles */
.flash-message { animation: fadeIn 0.3s ease-in; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
#timer-running { animation: pulse 2s infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.8; } }
#timer-display { font-family: 'Courier New', monospace; font-size: 1.1rem; min-width: 80px; text-align: center; }
.quick-action { cursor: pointer; transition: transform 0.15s, box-shadow 0.15s; }
.quick-action:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.stat-card { height: 100%; display: flex; flex-direction: column; justify-content: center; }
.stat-card .stat-value { font-size: 1.8rem; font-weight: 700; line-height: 1.2; }
.stat-card .stat-label { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; }
.badge-fixed { background-color: #3273dc; color: white; }
.badge-hourly { background-color: #23d160; color: white; }
.todo-item { display: flex; align-items: center; padding: 0.5rem 0; border-bottom: 1px solid rgba(0,0,0,0.05); }
.todo-item:last-child { border-bottom: none; }
.todo-item.completed .todo-text { text-decoration: line-through; opacity: 0.5; }
.activity-item { border-left: 3px solid #d1d5db; padding-left: 1rem; margin-bottom: 0.75rem; }
.activity-item.time-log { border-left-color: #3273dc; }
.receipt-thumb { max-width: 100px; max-height: 80px; object-fit: cover; border-radius: 4px; cursor: pointer; }
.is-archived { opacity: 0.6; }
.is-archived:hover { opacity: 1; }
