/* Ufanisi Point Custom Color Scheme */ /* Dark Green: #14532D */ .main-sidebar { background-color: #14532D !important; } .main-header.navbar { background-color: #14532D !important; } .main-footer { background-color: #14532D !important; } /* Off-White Background: #F7F7F7 */ .content-wrapper { background-color: #F7F7F7 !important; } /* Disabled button styling */ .btn:disabled { opacity: 0.6; cursor: not-allowed; } /* Global Button Styles for Consistency */ .btn-success { background-color: #28a745; border-color: #28a745; color: #fff; transition: all 0.2s ease; } .btn-success:hover { background-color: #218838; border-color: #1e7e34; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(0,0,0,0.2); } .btn-info { background-color: #0d6efd; border-color: #0d6efd; color: #fff; } .btn-info:hover { background-color: #0b5ed7; border-color: #0a58ca; } .btn-warning { background-color: #fd7e14; border-color: #fd7e14; color: #fff; } .btn-warning:hover { background-color: #e8590c; border-color: #d54e07; } .btn-danger { background-color: #dc3545; border-color: #dc3545; color: #fff; } .btn-danger:hover { background-color: #c82333; border-color: #bd2130; } .btn-secondary { background-color: #6c757d; border-color: #6c757d; color: #fff; } .btn-secondary:hover { background-color: #5a6268; border-color: #545b62; } /* White Cards: #FFFFFF - already default */ /* Dark Text: #111827 */ h1, h2, h3, h4, h5, h6, .card-title, .navbar-brand, .brand-link { color: #111827 !important; } /* Muted Text: #6B7280 */ .text-muted, .card-subtitle, .form-text { color: #6B7280 !important; } /* Success: #16A34A */ .text-success, .alert-success { color: #16A34A !important; } .alert-success { background-color: #DCFCE7 !important; border-color: #16A34A !important; } /* Warning: #F59E0B */ .text-warning, .alert-warning { color: #F59E0B !important; } .alert-warning { background-color: #FEF3C7 !important; border-color: #F59E0B !important; } /* Danger: #DC2626 */ .btn-danger, .text-danger, .alert-danger { background-color: #DC2626 !important; border-color: #DC2626 !important; color: #FFFFFF !important; } .alert-danger { background-color: #FEE2E2 !important; border-color: #DC2626 !important; } /* Info: #2563EB */ .text-info, .alert-info { color: #2563EB !important; } .alert-info { background-color: #DBEAFE !important; border-color: #2563EB !important; } /* Sidebar active */ .nav-sidebar .nav-link.active { background-color: #22C55E !important; color: #FFFFFF !important; } /* Cards with green accent */ .card { border-left: 4px solid #22C55E !important; box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important; } /* App Card: standardized card design */ .app-card { border-radius: 10px !important; } .app-card .card-body { padding: 16px !important; } /* Modal content standardization */ .modal-content { border-radius: 10px !important; } /* Form controls */ .form-control:focus { border-color: #22C55E !important; box-shadow: 0 0 0 0.2rem rgba(34, 197, 94, 0.25) !important; } /* Action Card: for client management forms */ .action-card { text-align: center; border-radius: 12px; } .action-card:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08); } .action-card label { text-align: left; display: block; max-width: 420px; margin: 0 auto 0.25rem; } .action-card .form-control, .action-card .form-select { max-width: 420px; width: 100%; margin: 0 auto; } .action-card textarea.form-control { height: 80px; resize: vertical; } /* Action buttons and forms */ .action-form-container { /* display: none; handled in HTML */ } .action-form-card { background-color: #ffffff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 24px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); text-align: center; } .action-form-card label { text-align: left; display: block; max-width: 420px; margin: 0 auto 0.25rem; } .action-form-card .form-control, .action-form-card .form-select { max-width: 420px; width: 100%; margin: 0 auto; } .action-form-card textarea { height: 75px; resize: vertical; } .form-header { font-size: 1.25rem; font-weight: 700; color: #111827; margin-bottom: 1rem; border-bottom: 2px solid #22C55E; padding-bottom: 0.5rem; } .action-form-card .mb-2 { margin-bottom: 0.75rem !important; } .action-form-card .mb-3 { margin-bottom: 1rem !important; } /* KPI Cards: consistent sizing and layout */ .kpi-card { min-height: 140px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; transition: all 0.2s ease; } .kpi-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.1); } .kpi-card .kpi-icon { font-size: 1.8rem; margin-bottom: 8px; } .kpi-card .kpi-label { font-size: 0.85rem; color: #6B7280; } .kpi-card .kpi-value { font-size: 1.8rem; font-weight: 700; margin-top: 6px; color: #111827; } .kpi-placeholder { visibility: hidden; } /* KPI Grid Container */ .kpi-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; /* Mobile: 1 column */ } @media (min-width: 768px) { .kpi-grid { grid-template-columns: repeat(2, 1fr); /* Tablet: 2 columns */ } } @media (min-width: 992px) { .kpi-grid { grid-template-columns: repeat(4, 1fr); /* Desktop: 4 columns */ } } /* Table styling */ .table thead th { background-color: #F7F7F7 !important; color: #111827 !important; border-bottom: 2px solid #22C55E !important; font-weight: 600 !important; } .table tbody td { padding: 0.75rem 1rem !important; /* Increased padding */ } .table tbody tr:hover { background-color: #ecfdf5 !important; /* Soft hover */ } .table .badge { font-size: 0.75rem !important; padding: 0.25rem 0.5rem !important; } /* DataTable Enhancements */ table.dataTable tbody tr { height: 44px; } table.dataTable tbody tr:nth-child(even) { background: #f9fafb; } table.dataTable tbody tr:hover { background: #ecfdf5; } /* DataTables Search */ .dataTables_wrapper .dataTables_filter { text-align: right !important; margin-bottom: 1rem !important; } .dataTables_wrapper .dataTables_filter input { border: 1px solid #D1D5DB !important; border-radius: 0.375rem !important; padding: 0.5rem 0.75rem !important; } .dataTables_wrapper .dataTables_filter label { font-weight: 500 !important; } /* DataTables Pagination */ .dataTables_wrapper .dataTables_paginate .paginate_button { padding: 6px 10px; margin: 0 2px; border-radius: 4px; border: 1px solid #d1d5db; text-decoration: none; color: #14532d; background-color: #FFFFFF !important; } .dataTables_wrapper .dataTables_paginate .paginate_button:hover { background: #22c55e !important; color: #fff !important; border-color: #22c55e !important; } .dataTables_wrapper .dataTables_paginate .paginate_button.current { background: #22c55e !important; color: #FFFFFF !important; border-color: #22C55E !important; } /* Fix DataTables pagination button width */ .dataTables_paginate { display: flex; justify-content: flex-end; gap: 6px; margin-top: 10px; } .dataTables_paginate .paginate_button { display: inline-flex !important; align-items: center; justify-content: center; padding: 6px 10px !important; min-width: auto !important; width: auto !important; white-space: nowrap; border-radius: 4px; } .dataTables_paginate .paginate_button a { padding: 0 !important; } /* Visual Hierarchy & Spacing */ .content-header { margin-bottom: 2rem !important; } .card { margin-bottom: 2rem !important; } .main-footer { margin-top: 3rem !important; padding: 1rem !important; } /* Ensure high contrast */ body { color: #111827; background-color: #F7F7F7; } html { overflow-y: scroll; } /* Sidebar Enhancements */ .main-sidebar { background-color: #14532D !important; /* Darker green */ padding: 0.25rem 0 !important; /* Further reduced vertical padding */ } /* Ledger summary cards */ .summary-cards { display: flex; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; } .summary-cards .card-summary { flex: 1 1 160px; background: #ffffff; border: 1px solid #e6e9ec; border-radius: 8px; padding: 12px 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); } .summary-cards .card-summary .label { font-size: 0.85rem; color: #6B7280; } .summary-cards .card-summary .value { font-size: 1.25rem; font-weight: 700; margin-top: 6px; color: #111827; } .summary-cards .card-summary.net { border-left: 4px solid #16A34A; } .summary-cards .card-summary.gross { border-left: 4px solid #0d6efd; } .summary-cards .card-summary.fees { border-left: 4px solid #6b7280; } /* Filter panel */ .filter-panel { background: #fff; border: 1px solid #e6e9ec; border-radius: 8px; padding: 12px; margin-bottom: 1rem; } .filter-panel .row > .col { display: flex; flex-direction: column; gap: 6px; } /* Button tweaks */ .btn-apply { background-color: #0d6efd; border-color: #0d6efd; color: #fff; } .btn-apply:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(13,110,253,0.12); } .btn-reset { background: transparent; border: 1px solid #d1d5db; color: #111827; } /* Empty state */ .empty-state { text-align: center; padding: 28px; border: 1px dashed #e6e9ec; border-radius: 8px; background: #fbfbfb; color: #6b7280; } .sidebar .nav-link { color: #FFFFFF !important; padding: 0.75rem 1rem !important; margin: 0.25rem 0 !important; border-radius: 0.375rem !important; transition: background-color 0.3s ease !important; } .sidebar .nav-link:hover { background-color: #22C55E !important; color: #FFFFFF !important; } .sidebar .nav-link.active { background-color: #16A34A !important; /* Lighter green */ color: #FFFFFF !important; font-weight: bold !important; border-left: 4px solid #22C55E !important; /* Left border indicator */ } .sidebar .user-panel { padding: 1rem !important; border-bottom: 1px solid #22C55E !important; } .sidebar .user-panel .info a { font-size: 0.8rem !important; /* Even smaller font */ color: #F7F7F7 !important; /* Muted off-white */ } /* Top Navigation Bar */ .main-header.navbar { background-color: #16A34A !important; /* Slightly lighter green */ border-bottom: 2px solid #22C55E !important; height: 56px !important; /* Slim height */ padding: 0 1rem !important; } .navbar-nav.ml-auto { margin-left: auto !important; } .navbar-nav .nav-link { color: #FFFFFF !important; padding: 0.5rem 1rem !important; } .navbar-nav .nav-link:hover { background-color: #22C55E !important; border-radius: 0.375rem !important; } /* Content Area */ .content-wrapper { background-color: #FFFFFF !important; margin-top: 0 !important; } /* Clients Page Header */ .content-header { background-color: #F7F7F7 !important; padding: 1.5rem !important; border-bottom: 1px solid #E5E7EB !important; /* Subtle divider */ display: flex !important; justify-content: space-between !important; align-items: center !important; margin-top: 0 !important; margin-bottom: 2rem !important; } .content-header h1 { font-size: 2rem !important; font-weight: 600 !important; margin: 0 !important; } .btn-primary.float-end { background-color: #22C55E !important; border-color: #22C55E !important; color: #FFFFFF !important; padding: 0.75rem 1.5rem !important; border-radius: 0.5rem !important; font-weight: 500 !important; transition: background-color 0.3s ease !important; } .btn-primary.float-end:hover { background-color: #16A34A !important; border-color: #16A34A !important; } .btn-primary.float-end:before { content: "+ "; /* Optional icon */ } /* New Layout Styles */ .app-layout { display: flex !important; min-height: 100vh !important; } /* Main content */ .main-content { flex: 1 !important; padding: 20px !important; background: #f9fafb !important; padding-top: 80px !important; min-height: calc(100vh - 60px) !important; } /* Topbar */ .topbar { height: 64px !important; background: #22C55E !important; color: white !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 20px !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 1050 !important; } .navbar-left { display: flex; align-items: center; } .navbar-left .brand { font-weight: bold; font-size: 18px; } .navbar-center { flex: 1; display: flex; justify-content: center; } .nav-container { background: #16A34A; border-radius: 999px; padding: 0.25rem 0.5rem; display: flex; gap: 0.5rem; } .nav-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 999px; color: white; text-decoration: none; transition: background-color 0.2s; } @media (max-width: 767px) { .nav-item span { display: none; } .nav-item { padding: 0.5rem; } } .nav-item:hover { background: rgba(255, 255, 255, 0.1); } .nav-item.active { background: white; color: #22C55E; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .navbar-right { display: flex; align-items: center; } .topbar a { color: white; text-decoration: none; } /* User Dropdown */ .user-dropdown .user-btn:hover { background: rgba(255,255,255,0.1) !important; border-radius: 4px !important; } .user-menu a:hover { background: #F7F7F7 !important; } .user-menu a:last-child:hover { background: #FEE2E2 !important; } /* Client Management Cards */ .card.app-card.shadow-sm { box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important; } .card-header.bg-light { background-color: #F8F9FA !important; border-bottom: 1px solid #E9ECEF !important; } .form-label.fw-semibold { font-weight: 600 !important; color: #111827 !important; } .btn-sm { padding: 0.375rem 0.75rem !important; border-radius: 0.375rem !important; } /* Typography and Spacing */ h1, h2 { margin-bottom: 15px; } .section { margin-bottom: 25px; } /* Dashboard Cards */ .card { border-radius: 8px; transition: transform 0.2s; } .card:hover { transform: translateY(-2px); } /* Report Cards: standardized for reports landing page */ .report-card { max-width: 280px; margin: 0 auto; transition: transform 0.2s, box-shadow 0.2s; cursor: pointer; } .report-card:hover { transform: translateY(-4px); box-shadow: 0 8px 16px rgba(0,0,0,0.15); } .report-card .card-body { text-align: center; padding: 20px; } .report-card .report-icon { font-size: 3rem; margin-bottom: 1rem; color: #22C55E; } .report-card .card-title { font-size: 1.25rem; font-weight: 600; margin-bottom: 0.5rem; } .report-card .card-text { color: #6B7280; margin-bottom: 1rem; } .report-card .btn { margin-top: 0.5rem; border-radius: 8px; } /* Standardized Action Buttons */ .action-btn { background-color: #22C55E; color: white; padding: 0.5rem 1rem; border-radius: 8px; text-decoration: none; display: inline-block; border: none; font-weight: 500; text-align: center; transition: background-color 0.2s, box-shadow 0.2s; cursor: pointer; margin-right: 0.5rem; } .action-btn:hover { background-color: #16A34A; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .action-btn:focus { outline: 2px solid #22C55E; outline-offset: 2px; } .action-btn-secondary { background-color: #3B82F6; } .action-btn-secondary:hover { background-color: #2563EB; } .modal-narrow { width: 40%; max-width: none; } .modal-left .modal-dialog { margin-left: 5%; margin-right: auto; transform: translateX(0); } .modal-right .modal-dialog { margin-left: auto; margin-right: 5%; transform: translateX(0); } /* Improved Tables */ .table-container { overflow-x: auto; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .table { margin-bottom: 0; border-collapse: separate; border-spacing: 0; } .table thead th { position: sticky; top: 0; background: #FFFFFF; z-index: 10; border-bottom: 2px solid #22C55E; padding: 12px 16px; font-weight: 600; text-align: left; } .table tbody td { padding: 12px 16px; border-bottom: 1px solid #E5E7EB; } .table tbody tr:hover { background: #F9FAFB; } .table .text-end { text-align: right; } /* Empty State */ .empty-state { text-align: center; padding: 3rem; color: #6B7280; } .empty-state .empty-icon { font-size: 4rem; margin-bottom: 1rem; opacity: 0.5; } .empty-state h3 { margin-bottom: 0.5rem; } .empty-state p { margin-bottom: 1rem; } /* Client Statement Enhancements */ .client-info-card { background: linear-gradient(135deg, #22C55E 0%, #16A34A 100%); color: white; } .client-info-card .card-body { padding: 24px; } .client-info-card .client-avatar { width: 60px; height: 60px; background: rgba(255,255,255,0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; margin-right: 16px; } .client-summary { display: flex; align-items: center; } .client-summary h5 { margin: 0; font-size: 1.5rem; } .client-summary p { margin: 0; opacity: 0.9; } /* Metric Cards for Summaries */ .metric-card { text-align: center; padding: 20px; } .metric-card .metric-icon { font-size: 2.5rem; color: #22C55E; margin-bottom: 1rem; } .metric-card .metric-value { font-size: 2rem; font-weight: 700; color: #111827; margin-bottom: 0.5rem; } .metric-card .metric-label { font-size: 0.9rem; color: #6B7280; text-transform: uppercase; letter-spacing: 0.5px; } /* Responsive Grid for Reports */ .reports-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; } @media (min-width: 576px) { .reports-grid { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 768px) { .reports-grid { grid-template-columns: repeat(3, 1fr); } } /* Form Enhancements for Reports */ .report-form .form-control { font-size: 16px; } .report-form .btn { padding: 12px 24px; font-size: 16px; } /* Form Card: centered, bank-grade container for all admin forms */ .form-card { max-width: 600px; margin: 0 auto; background: #FFFFFF; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); padding: 24px; border: none; } /* Form Header: large title and subtitle */ .form-header { text-align: center; margin-bottom: 24px; } .form-header .form-title { font-size: 24px; font-weight: 700; color: #111827; margin-bottom: 8px; } .form-header .form-subtitle { font-size: 16px; color: #6B7280; } /* Form Section: grouped fields with title */ .form-section { margin-bottom: 24px; } .form-section .section-title { font-size: 18px; font-weight: 600; color: #111827; margin-bottom: 16px; border-bottom: 1px solid #E5E7EB; padding-bottom: 8px; } /* Form Group: individual field wrapper */ .form-group { margin-bottom: 16px; } .form-group label { display: block; font-size: 14px; font-weight: 500; color: #111827; margin-bottom: 6px; } .form-group .required { color: #DC2626; } /* Form Control: standardized inputs */ .form-control { width: 100%; height: 48px; border-radius: 8px; border: 1px solid #D1D5DB; padding: 12px 16px; font-size: 15px; color: #111827; background: #FFFFFF; transition: border-color 0.2s, box-shadow 0.2s; } .form-control:focus { border-color: #22C55E; box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.1); outline: none; } .form-control.error { border-color: #DC2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1); } .form-control::placeholder { color: #9CA3AF; } /* Form Actions: button container */ .form-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; padding-top: 16px; border-top: 1px solid #E5E7EB; } /* Button overrides for forms */ .form-actions .btn-primary { background: #22C55E; border: none; padding: 12px 24px; border-radius: 8px; font-size: 15px; font-weight: 600; } .form-actions .btn-secondary { background: transparent; border: 1px solid #D1D5DB; color: #6B7280; padding: 12px 24px; border-radius: 8px; font-size: 15px; font-weight: 600; } .form-actions .btn-secondary:hover { background: #F9FAFB; color: #111827; } /* Progress Indicator for multi-step forms */ .progress-indicator { display: flex; justify-content: center; margin-bottom: 24px; } .progress-step { width: 12px; height: 12px; border-radius: 50%; background: #E5E7EB; margin: 0 6px; transition: background 0.2s; } .progress-step.active { background: #22C55E; } /* Error Messages */ .field-error { color: #DC2626; font-size: 14px; margin-top: 4px; display: block; } /* Print Watermark Styles */ @media print { body::before { content: "UFANISI POINT"; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-45deg); font-size: 72px; color: rgba(0, 0, 0, 0.1); z-index: -1; pointer-events: none; font-weight: bold; } body::after { content: ""; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 150px; height: 150px; background-image: url('img/logo.jpg'); background-repeat: no-repeat; background-size: contain; opacity: 0.1; z-index: -1; pointer-events: none; } .no-print { display: none !important; } .card { border: none !important; box-shadow: none !important; } } /* Optional Hardening for Bootstrap Grid Consistency */ .row { --bs-gutter-x: 1.5rem; --bs-gutter-y: 1.5rem; } /* Tighter Table Spacing for Responsiveness */ table th, table td { white-space: nowrap; font-size: 0.85rem; padding: 0.5rem; } /* Ensure Cards Use Full Width */ .card { width: 100%; max-width: 100%; } /* Login Page Brand Visibility */ .login-logo { position: relative; padding: 10px; z-index: 1; } .login-logo strong { color: #000; font-weight: 300; font-size: 1.5em; } .login-logo img { filter: brightness(1) invert(0); /* Show original logo for better visibility */ } /* Enhanced login card styling */ .login-box .card { border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); } /* Increase login card width for better content accommodation */ .login-box { width: 400px; max-width: 95%; } /* Modal Card Design Standard - matches form-card styling */ .modal .modal-content { background: #FFFFFF; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); border: none; padding: 0; /* Remove default padding, handle in modal-body */ } .modal .modal-header { border-bottom: 1px solid #E5E7EB; padding: 24px 24px 16px 24px; background: transparent; border-radius: 12px 12px 0 0; } .modal .modal-title { font-size: 20px; font-weight: 700; color: #111827; margin: 0; text-align: center; } .modal .modal-subtitle { font-size: 14px; color: #6B7280; margin: 8px 0 0 0; text-align: center; } .modal .modal-body { padding: 24px; color: #111827; } .modal .modal-footer { border-top: 1px solid #E5E7EB; padding: 16px 24px 24px 24px; background: transparent; border-radius: 0 0 12px 12px; display: flex; justify-content: flex-end; gap: 12px; } .modal .modal-footer .btn { padding: 12px 24px; border-radius: 8px; font-size: 15px; font-weight: 600; } .modal .modal-footer .btn-primary { background: #22C55E; border: none; } .modal .modal-footer .btn-secondary { background: transparent; border: 1px solid #D1D5DB; color: #6B7280; } .modal .modal-footer .btn-secondary:hover { background: #F9FAFB; } /* Responsive Styles for Mobile Devices */ /* For screens smaller than 768px (tablets and phones) */ @media (max-width: 767.98px) { /* Adjust login box for mobile */ .login-box { margin: 5% auto; width: 90%; max-width: 400px; } .login-logo img { max-width: 60px !important; height: auto; } .login-logo strong { font-size: 1.2rem; } /* Adjust card padding */ .card-body { padding: 1rem; } /* Adjust button sizes */ .btn { font-size: 0.9rem; padding: 0.5rem 1rem; } /* Adjust form inputs */ .form-control { font-size: 0.9rem; } /* Adjust alert messages */ .alert { font-size: 0.85rem; padding: 0.5rem; } } /* For screens smaller than 576px (phones) */ @media (max-width: 575.98px) { /* Further reduce sizes for small phones */ .login-box { width: 95%; margin: 2% auto; } .login-logo img { max-width: 60px !important; } .login-logo strong { font-size: 1rem; } .card-body { padding: 0.75rem; } .btn { font-size: 0.85rem; padding: 0.4rem 0.8rem; } .form-control { font-size: 0.85rem; padding: 0.4rem 0.6rem; } /* Adjust topbar for admin on mobile */ .topbar { padding: 0.5rem; } .brand img { height: 30px !important; } .brand { font-size: 1rem; } /* Adjust navigation items */ .nav-item { padding: 0.5rem; font-size: 0.9rem; } /* Adjust content wrapper */ .content-wrapper { margin-left: 0 !important; margin-top: 60px; /* Account for fixed topbar */ } /* Adjust tables for mobile */ .table-responsive { font-size: 0.8rem; } .table td, .table th { padding: 0.25rem; } /* Adjust modals for mobile */ .modal-dialog { margin: 0.5rem; max-width: none; } .modal-content { border-radius: 0; } } /* General responsive utilities */ @media (max-width: 991.98px) { /* Adjust for tablets */ .content-header h1 { font-size: 1.5rem; } .breadcrumb { font-size: 0.85rem; } }