/* Bridge styles to make legacy .form-control inputs match the new UI Applies generous padding, border, and focus states. */ /* Base inputs */ .form-control, input.form-control, select.form-control, textarea.form-control, .form-select { display: block; width: 100%; min-height: 2.5rem; /* consistent tap target */ padding: 0.625rem 0.875rem; /* py-2.5 px-3.5 */ border: 1px solid #E2E8F0; /* border-light */ border-radius: 0.5rem; /* rounded-lg */ background: #FFFFFF; /* card-light */ color: #2D3748; /* text-light */ line-height: 1.5; } .form-control:focus, .form-select:focus { outline: none; border-color: #4A90E2; /* primary */ box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.35); /* focus ring */ } /* Placeholder colors */ .form-control::placeholder { color: #A0AEC0; } .dark .form-control::placeholder { color: #718096; } /* Textarea */ textarea.form-control { min-height: 6rem; resize: vertical; } /* Sizes */ .form-control.form-control-sm { min-height: 2.25rem; padding: 0.5rem 0.75rem; } .form-control.form-control-lg { min-height: 2.875rem; padding: 0.75rem 1rem; } /* Dark mode */ .dark .form-control, .dark .form-select, .dark input.form-control, .dark select.form-control, .dark textarea.form-control { background: #2D3748; /* card-dark */ color: #E2E8F0; /* text-dark */ border-color: #4A5568; /* border-dark */ } .dark .form-control:focus, .dark .form-select:focus { border-color: #4A90E2; box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.45); } /* Input groups often remove radii; keep padding generous */ .input-group .form-control { padding-top: 0.625rem; padding-bottom: 0.625rem; } /* ============================= Minimal tokens (fallbacks) ============================= */ :root { --color-primary: #3B82F6; --color-primary-600: #2563EB; --color-bg: #F7F9FB; --color-card: #FFFFFF; --color-border: #E2E8F0; --color-text: #1F2937; --radius-md: 0.5rem; --shadow-md: 0 8px 24px rgba(0,0,0,0.08); } .dark { --color-bg: #0F172A; --color-card: #1F2937; --color-border: #4A5568; --color-text: #E2E8F0; } /* ============================= Buttons ============================= */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.5rem 0.875rem; border-radius: var(--radius-md); border: 1px solid transparent; font-weight: 600; line-height: 1.25; cursor: pointer; } .btn:focus { outline: none; box-shadow: 0 0 0 3px rgba(59,130,246,0.35); } .btn-primary { color: #fff; background-color: var(--color-primary); border-color: var(--color-primary); } .btn-primary:hover { background-color: var(--color-primary-600); border-color: var(--color-primary-600); } .btn-secondary { color: var(--color-text); background-color: var(--color-card); border-color: var(--color-border); } .btn-secondary:hover { background-color: #F3F4F6; } .btn-ghost { color: var(--color-text); background-color: transparent; border-color: transparent; } .btn-ghost:hover { background-color: rgba(148,163,184,0.15); } .btn-sm { padding: 0.375rem 0.625rem; font-size: 0.875rem; } .btn-lg { padding: 0.625rem 1rem; font-size: 1rem; } .btn[disabled], .btn.disabled { opacity: .6; cursor: not-allowed; } /* ============================= Focus ring utility ============================= */ .focus-ring { outline: none; box-shadow: 0 0 0 3px rgba(59,130,246,0.35); } /* ============================= Table enhancements ============================= */ .table { width: 100%; border-collapse: separate; border-spacing: 0; } .table thead th { position: sticky; top: 0; background: var(--color-card); z-index: 1; } .table thead th, .table tbody td { padding: 1rem; border-bottom: 1px solid var(--color-border); } .table-zebra tbody tr:nth-child(odd) { background-color: rgba(148,163,184,0.07); } .dark .table-zebra tbody tr:nth-child(odd) { background-color: rgba(148,163,184,0.12); } .table-compact thead th, .table-compact tbody td { padding: 0.625rem 0.75rem; } .table-number { text-align: right; } /* ============================= Badge chips ============================= */ .chip { display: inline-flex; align-items: center; padding: 0.125rem 0.5rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; line-height: 1; border: 1px solid transparent; white-space: nowrap; } .chip-neutral { background: #F1F5F9; color: #334155; } .dark .chip-neutral { background: #1F2937; color: #E5E7EB; border-color: #374151; } .chip-success { background: #DCFCE7; color: #166534; } .dark .chip-success { background: rgba(16,185,129,0.15); color: #34D399; } .chip-warning { background: #FEF3C7; color: #92400E; } .dark .chip-warning { background: rgba(245,158,11,0.15); color: #F59E0B; } .chip-danger { background: #FEE2E2; color: #991B1B; } .dark .chip-danger { background: rgba(239,68,68,0.15); color: #F87171; } /* ============================= Cards & helpers ============================= */ .card { background: var(--color-card); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-md); } .page-bg { background: var(--color-bg); }