/* SOS Care Now — Custom styles layered on top of Tailwind */ :root { --brand-50: #eff6ff; --brand-100: #dbeafe; --brand-500: #3b82f6; --brand-600: #2563eb; --brand-700: #1d4ed8; --brand-900: #1e3a8a; } html, body { height: 100%; background-color: #f8fafc; font-family: 'Inter', system-ui, -apple-system, sans-serif; color: #0f172a; } /* Sidebar */ .sidebar { background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%); } .sidebar-link { display: flex; align-items: center; gap: 0.75rem; padding: 0.625rem 1rem; border-radius: 0.5rem; color: #cbd5e1; font-weight: 500; transition: all 0.15s ease; cursor: pointer; } .sidebar-link:hover { background-color: rgba(255, 255, 255, 0.06); color: #fff; } .sidebar-link.active { background-color: var(--brand-600); color: #fff; box-shadow: 0 4px 14px -2px rgba(37, 99, 235, 0.6); } /* Cards */ .card { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04); } /* Inputs */ .input, .select, textarea.input { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #cbd5e1; border-radius: 0.5rem; background-color: #fff; font-size: 0.875rem; transition: border-color 0.15s ease, box-shadow 0.15s ease; } .input:focus, .select:focus, textarea.input:focus { outline: none; border-color: var(--brand-500); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15); } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 0.5rem; font-weight: 500; font-size: 0.875rem; transition: all 0.15s ease; cursor: pointer; border: 1px solid transparent; white-space: nowrap; } .btn-primary { background-color: var(--brand-600); color: #fff; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.1); } .btn-primary:hover { background-color: var(--brand-700); } .btn-primary:disabled { background-color: #cbd5e1; cursor: not-allowed; } .btn-secondary { background-color: #fff; color: #0f172a; border-color: #cbd5e1; } .btn-secondary:hover { background-color: #f1f5f9; } .btn-danger { background-color: #dc2626; color: #fff; } .btn-danger:hover { background-color: #b91c1c; } .btn-ghost { background-color: transparent; color: #64748b; } .btn-ghost:hover { background-color: #f1f5f9; color: #0f172a; } .btn-sm { padding: 0.25rem 0.625rem; font-size: 0.8125rem; } /* Tables */ .table-wrap { overflow-x: auto; border-radius: 0.75rem; } .table { width: 100%; border-collapse: collapse; } .table th { text-align: left; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: #64748b; padding: 0.75rem 1rem; background-color: #f8fafc; border-bottom: 1px solid #e2e8f0; } .table td { padding: 0.75rem 1rem; font-size: 0.875rem; border-bottom: 1px solid #f1f5f9; } .table tr:last-child td { border-bottom: none; } .table tbody tr:hover { background-color: #fafbfc; } /* Badges */ .badge { display: inline-flex; align-items: center; padding: 0.125rem 0.625rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; } .badge-green { background-color: #dcfce7; color: #166534; } .badge-blue { background-color: #dbeafe; color: #1d4ed8; } .badge-red { background-color: #fee2e2; color: #991b1b; } .badge-amber { background-color: #fef3c7; color: #92400e; } .badge-slate { background-color: #e2e8f0; color: #334155; } .badge-emerald { background-color: #d1fae5; color: #065f46; } /* Toggle (on-call switch) */ .toggle { position: relative; width: 44px; height: 24px; background-color: #cbd5e1; border-radius: 9999px; cursor: pointer; transition: background-color 0.2s ease; flex-shrink: 0; } .toggle::after { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; background-color: #fff; border-radius: 9999px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); transition: transform 0.2s ease; } .toggle.on { background-color: #10b981; } .toggle.on::after { transform: translateX(20px); } /* Modal */ .modal-backdrop { position: fixed; inset: 0; background-color: rgba(15, 23, 42, 0.5); backdrop-filter: blur(2px); z-index: 50; display: flex; align-items: center; justify-content: center; padding: 1rem; } .modal { background-color: #fff; border-radius: 1rem; max-width: 720px; width: 100%; max-height: 90vh; overflow-y: auto; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } /* Stat tile */ .stat { padding: 1.25rem; background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; } .stat-label { font-size: 0.75rem; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; } .stat-value { font-size: 1.875rem; font-weight: 700; color: #0f172a; margin-top: 0.25rem; } /* Calendar custom event styles */ .fc-event { cursor: pointer; } .event-travel { opacity: 0.55; } .event-completed { opacity: 0.65; } .event-completed .fc-event-title { text-decoration: line-through; } /* Match card */ .match-card { border: 1px solid #e2e8f0; border-radius: 0.75rem; padding: 1rem; background: #fff; transition: all 0.15s ease; cursor: pointer; } .match-card:hover { border-color: var(--brand-500); box-shadow: 0 4px 12px -2px rgba(59, 130, 246, 0.15); } .match-card.selected { border-color: var(--brand-600); background: linear-gradient(180deg, #eff6ff 0%, #fff 30%); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15); } /* Toast */ .toast { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 100; padding: 0.875rem 1.25rem; border-radius: 0.75rem; color: #fff; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); font-weight: 500; font-size: 0.875rem; max-width: 420px; } .toast-success { background-color: #16a34a; } .toast-error { background-color: #dc2626; } .toast-info { background-color: #0f172a; } /* Loader */ .spinner { width: 1.25rem; height: 1.25rem; border: 2px solid #e2e8f0; border-top-color: var(--brand-600); border-radius: 50%; animation: spin 0.6s linear infinite; display: inline-block; } @keyframes spin { to { transform: rotate(360deg); } } [x-cloak] { display: none !important; } /* Login */ .login-bg { background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 50%, #06b6d4 100%); }