/* Base styles */ :root { /* Modern Color Palette */ --primary: #4F46E5; /* Indigo 600 */ --primary-light: #818CF8; --primary-dark: #4338CA; --secondary: #64748B; /* Slate 500 */ --success: #10B981; /* Emerald 500 */ --warning: #F59E0B; /* Amber 500 */ --danger: #EF4444; /* Red 500 */ --info: #3B82F6; /* Blue 500 */ /* Neutral Colors */ --background: #F8FAFC; /* Slate 50 */ --card-bg: #FFFFFF; --text-primary: #1E293B; /* Slate 800 */ --text-secondary: #64748B; /* Slate 500 */ --border-color: #E2E8F0; /* Slate 200 */ --hover-bg: #F1F5F9; /* Slate 100 */ /* Shadows */ --card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --hover-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* Transitions */ --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* Border Radius */ --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; line-height: 1.6; color: var(--text-primary); background-color: var(--background); margin: 0; padding: 0; } .container { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } @media (min-width: 576px) { .container { max-width: 540px; } } @media (min-width: 768px) { .container { max-width: 720px; } } @media (min-width: 992px) { .container { max-width: 960px; } } @media (min-width: 1200px) { .container { max-width: 1140px; } } /* Common utility classes */ .text-center { text-align: center; } .mt-3 { margin-top: 1rem; } .mb-3 { margin-bottom: 1rem; } .py-3 { padding-top: 1rem; padding-bottom: 1rem; } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.3s ease-out; } /* Status Badges */ .status-badge { padding: 0.25rem 0.75rem; border-radius: var(--radius-md); font-size: 0.75rem; font-weight: 500; display: inline-flex; align-items: center; gap: 0.25rem; } .bg-success, .completed, .leave-approved { background-color: var(--success); color: white; } .bg-warning, .ongoing, .leave-pending { background-color: var(--warning); color: white; } .bg-danger, .leave-rejected { background-color: var(--danger); color: white; } .bg-info, .upcoming { background-color: var(--info); color: white; } /* Form styles */ .form-group { margin-bottom: 1rem; } .form-control { padding: 0.625rem 0.875rem; border-radius: var(--radius-md); border: 1px solid var(--border-color); transition: var(--transition); font-size: 0.875rem; } .form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1); } /* Button styles */ .btn { display: inline-flex; align-items: center; justify-content: center; font-weight: 500; padding: 0.5rem 1rem; border-radius: var(--radius-md); transition: var(--transition); gap: 0.5rem; font-size: 0.875rem; line-height: 1.25rem; } .btn-primary { background-color: var(--primary); color: white; border: none; } .btn-primary:hover { background-color: var(--primary-dark); transform: translateY(-1px); } /* Modern Card Styles */ .content-card { background-color: var(--card-bg); border-radius: var(--radius-lg); box-shadow: var(--card-shadow); padding: 1.5rem; margin-bottom: 1.5rem; transition: var(--transition); border: 1px solid var(--border-color); } .content-card:hover { transform: translateY(-2px); box-shadow: var(--hover-shadow); } /* Print Styles */ @media print { .btn-primary, .modal, .modal-backdrop { display: none !important; } .content-card { box-shadow: none; border: 1px solid #ddd; } } /* Tables */ .table { width: 100%; border-collapse: separate; border-spacing: 0; } .table th { background-color: var(--hover-bg); padding: 1rem; font-weight: 600; text-align: left; color: var(--text-primary); border-bottom: 2px solid var(--border-color); } .table td { padding: 1rem; border-bottom: 1px solid var(--border-color); color: var(--text-secondary); } .table tr:hover td { background-color: var(--hover-bg); } /* Responsive Design */ @media (max-width: 1200px) { .container { padding-right: 12px; padding-left: 12px; } .content-card { padding: 1.25rem; } } @media (max-width: 992px) { .container { padding-right: 10px; padding-left: 10px; } .content-card { padding: 1rem; } .btn { padding: 0.4rem 0.8rem; font-size: 0.8rem; } } @media (max-width: 768px) { .container { padding-right: 8px; padding-left: 8px; } .content-card { padding: 0.875rem; margin-bottom: 1rem; } .form-control { padding: 0.5rem 0.75rem; font-size: 0.8rem; } .table th, .table td { padding: 0.75rem; font-size: 0.875rem; } .status-badge { padding: 0.2rem 0.5rem; font-size: 0.7rem; } } @media (max-width: 576px) { .container { padding-right: 6px; padding-left: 6px; } .content-card { padding: 0.75rem; } .btn { padding: 0.35rem 0.7rem; font-size: 0.75rem; } .form-control { padding: 0.4rem 0.6rem; font-size: 0.75rem; } .table { display: block; overflow-x: auto; white-space: nowrap; } .table th, .table td { padding: 0.5rem; font-size: 0.8rem; } } @media (max-width: 375px) { .container { padding-right: 4px; padding-left: 4px; } .content-card { padding: 0.625rem; } .btn { padding: 0.3rem 0.6rem; font-size: 0.7rem; } .form-control { padding: 0.35rem 0.5rem; font-size: 0.7rem; } .table th, .table td { padding: 0.4rem; font-size: 0.75rem; } .status-badge { padding: 0.15rem 0.4rem; font-size: 0.65rem; } } @media (max-width: 320px) { .container { padding-right: 3px; padding-left: 3px; } .content-card { padding: 0.5rem; } .btn { padding: 0.25rem 0.5rem; font-size: 0.65rem; } .form-control { padding: 0.3rem 0.4rem; font-size: 0.65rem; } .table th, .table td { padding: 0.3rem; font-size: 0.7rem; } .status-badge { padding: 0.1rem 0.3rem; font-size: 0.6rem; } } /* Enhanced Responsive Styles */ /* Mobile-first approach for better performance */ /* Responsive layout containers */ .container { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } @media (min-width: 576px) { .container { max-width: 540px; } } @media (min-width: 768px) { .container { max-width: 720px; } } @media (min-width: 992px) { .container { max-width: 960px; } } @media (min-width: 1200px) { .container { max-width: 1140px; } } /* Responsive tables */ .table-responsive-sm { overflow-x: auto; -webkit-overflow-scrolling: touch; } /* Table adjustments for small screens */ @media (max-width: 576px) { .table th, .table td { padding: 0.5rem 0.25rem; font-size: 0.75rem; } .table-responsive-sm { border: 0; } } /* Responsive form controls */ .form-control { width: 100%; } /* Responsive card adjustments */ @media (max-width: 576px) { .card { margin-bottom: 0.75rem; } .card-body { padding: 0.75rem; } .card-title { font-size: 1.1rem; margin-bottom: 0.5rem; } } /* Responsive spacing utilities */ @media (max-width: 576px) { .px-sm-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; } .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } .p-sm-1 { padding: 0.25rem !important; } .mx-sm-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; } .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } .m-sm-1 { margin: 0.25rem !important; } } /* Adjustments for modals on small screens */ @media (max-width: 576px) { .modal-dialog { margin: 0.5rem; max-width: calc(100% - 1rem); } .modal-body { padding: 0.75rem; } .modal-footer { padding: 0.5rem; } .modal-header { padding: 0.75rem; } } /* Responsive image sizing */ .img-fluid { max-width: 100%; height: auto; } /* Responsive flex utilities */ .d-sm-flex { display: flex !important; } @media (max-width: 576px) { .flex-sm-column { flex-direction: column !important; } .justify-content-sm-center { justify-content: center !important; } .align-items-sm-center { align-items: center !important; } } /* Enhanced responsive grid system */ .row { display: flex; flex-wrap: wrap; margin-right: -15px; margin-left: -15px; } @media (max-width: 576px) { .row { margin-right: -10px; margin-left: -10px; } [class*="col-"] { padding-right: 10px; padding-left: 10px; } } /* Responsive utilities for text */ @media (max-width: 576px) { .text-sm-center { text-align: center !important; } .text-sm-left { text-align: left !important; } .text-sm-right { text-align: right !important; } } /* Print styles */ @media print { .no-print { display: none !important; } .container { width: 100% !important; max-width: none !important; } body { font-size: 12pt; } a[href]:after { content: " (" attr(href) ")"; } }