���� ������������������������������������ /** * Main Application Styles */ /* Import Google Fonts */ @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap'); /* Theme Variables */ :root { --primary: #000000; --primary-hover: #1a1a1a; --primary-light: rgba(0, 0, 0, 0.05); --text-dark: #000000; --text-light: #ffffff; --border-color: #e0e0e0; --background-light: #f8f9fa; --background-white: #ffffff; --danger: #dc3545; --success: #28a745; --warning: #ffc107; --info: #17a2b8; } /* Base Styles */ body { font-family: 'Open Sans', sans-serif; color: var(--text-dark); background-color: var(--background-light); line-height: 1.5; } /* Typography */ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: 'Poppins', sans-serif; font-weight: 600; line-height: 1.2; margin-bottom: 1rem; } /* Ensure Font Awesome icons use correct font */ .fa { font-family: 'FontAwesome' !important; } /* Buttons */ .btn-custom { display: inline-flex; align-items: center; justify-content: center; padding: 0.5rem 1rem; font-size: 0.9rem; font-weight: 500; line-height: 1.5; border-radius: 0.25rem; transition: all 0.2s ease-in-out; cursor: pointer; white-space: nowrap; text-decoration: none; min-width: 100px; } .btn-custom-primary { background-color: var(--primary); color: var(--text-light); border: 1px solid var(--primary); } .btn-custom-primary:hover { background-color: var(--primary-hover); border-color: var(--primary-hover); } .btn-custom-secondary { background-color: var(--background-white); color: var(--text-dark); border: 1px solid var(--border-color); } .btn-custom-secondary:hover { background-color: var(--background-light); } .btn-custom-danger { background-color: var(--danger); color: var(--text-light); border: 1px solid var(--danger); } .btn-custom-danger:hover { background-color: darken(var(--danger), 10%); } /* Forms */ .form-control { display: block; width: 100%; padding: 0.375rem 0.75rem; font-size: 0.9rem; line-height: 1.5; color: var(--text-dark); background-color: var(--background-white); border: 1px solid var(--border-color); border-radius: 0.25rem; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .form-control:focus { border-color: var(--primary); outline: 0; box-shadow: 0 0 0 0.2rem var(--primary-light); } .form-label { margin-bottom: 0.5rem; font-weight: 500; color: var(--text-dark); } /* Tables */ .table { width: 100%; margin-bottom: 1rem; color: var(--text-dark); vertical-align: top; border-color: var(--border-color); } .table > :not(caption) > * > * { padding: 0.5rem; border-bottom-width: 1px; } .table > thead { background-color: var(--background-light); vertical-align: bottom; } /* Utilities */ .text-primary { color: var(--primary) !important; } .text-danger { color: var(--danger) !important; } .text-success { color: var(--success) !important; } .text-warning { color: var(--warning) !important; } .text-info { color: var(--info) !important; } .bg-primary { background-color: var(--primary) !important; } .bg-danger { background-color: var(--danger) !important; } .bg-success { background-color: var(--success) !important; } .bg-warning { background-color: var(--warning) !important; } .bg-info { background-color: var(--info) !important; } /* Scrollbars */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--background-light); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--primary-hover); } /* Vendor Assignment Styles */ .vendor-missing-highlight { animation: vendor-highlight-pulse 2s ease-in-out infinite; background-color: rgba(255, 193, 7, 0.2) !important; border: 2px solid var(--warning) !important; border-radius: 4px !important; } .vendor-unassigned { background-color: rgba(255, 193, 7, 0.1) !important; border-color: var(--warning) !important; color: #856404 !important; } .vendor-unassigned:focus { border-color: var(--warning) !important; box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25) !important; } @keyframes vendor-highlight-pulse { 0% { background-color: rgba(255, 193, 7, 0.2); } 50% { background-color: rgba(255, 193, 7, 0.4); } 100% { background-color: rgba(255, 193, 7, 0.2); } } /* Alert Container Styles */ .alert-container { position: relative; z-index: 1040; /* Below modals but above other content */ margin-bottom: 1rem; } .alert-container .alert { margin-bottom: 0; white-space: pre-line; /* Preserve line breaks in alert messages */ } /* Ensure body scrolling is preserved */ body:not(.modal-open) { overflow: auto !important; padding-right: 0 !important; } /* Responsive Utilities */ @media (max-width: 768px) { .btn-custom { width: 100%; margin-bottom: 0.5rem; } .table-responsive { margin: 0 -15px; padding: 0 15px; width: calc(100% + 30px); } }