/* Paleta de culori inspirata de logoul Romfast si design-ul modern */ :root { --primary-color: #08819c; /* Albastru principal din meniul vechi */ --secondary-color: #424242; /* Gri inchis pentru text */ --accent-color: #c01b14; /* Rosu pentru accent, link-uri etc. */ --light-gray: #f8f9fa; /* Fundaluri deschise */ --white: #ffffff; /* Dark Mode Colors */ --dark-bg: #222222; --dark-text: #cccccc; --dark-card-bg: #2a2a2a; --dark-card-border: #444444; } html, body { height: 100%; margin: 0; padding: 0; } body { font-family: 'Arial', sans-serif; color: var(--secondary-color); background: linear-gradient(to bottom, #003A4A, #005A6E) no-repeat fixed; /* Darker gradient, no repeat, fixed */ background-size: 100% 100%; transition: background 0.3s ease, color 0.3s ease; padding: 50px; /* Increased padding to reveal more body gradient */ } .page-wrapper { background-color: var(--white); /* Solid background for content area */ border: 10px solid rgba(0, 0, 0, 0.5); /* Solid milky black border */ border-radius: 20px; /* Increased border-radius for the wrapper */ overflow: hidden; /* Ensures content stays within rounded corners */ margin: 0 auto; /* Center the wrapper */ max-width: 1200px; /* Limit width for better visual */ box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); /* Add a subtle shadow */ } body.dark-mode .page-wrapper { background-color: var(--dark-card-bg); /* Dark background for content area in dark mode */ border: 10px solid rgba(0, 0, 0, 0.7); /* Darker milky black border in dark mode */ box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); /* Darker shadow in dark mode */ } html.dark-mode { /* No border on html */ } main.container { background-color: var(--white); /* White background for content in light mode */ padding: 30px; /* Add some padding */ border-radius: 0; /* No specific border-radius here, let wrapper handle it */ box-shadow: 0 0 15px rgba(0, 0, 0, 0.1); /* Subtle shadow */ } body.dark-mode main.container { background-color: var(--dark-card-bg); /* Dark background for content in dark mode */ box-shadow: 0 0 15px rgba(0, 0, 0, 0.3); /* Darker shadow */ } body.dark-mode { color: var(--dark-text); background-color: var(--dark-bg); } body.dark-mode .card { background-color: var(--dark-card-bg); border-color: var(--dark-card-border); color: var(--dark-text); /* Ensure card text is visible */ } body.dark-mode .card-title { color: var(--primary-color); /* Keep primary color for titles */ } body.dark-mode .form-control { background-color: var(--dark-card-bg); color: var(--dark-text); border-color: var(--dark-card-border); } body.dark-mode .form-control:focus { border-color: var(--primary-color); box-shadow: 0 0 0 0.25rem rgba(8, 129, 156, 0.5); } body.dark-mode .form-select { background-color: var(--dark-card-bg); color: var(--dark-text); border-color: var(--dark-card-border); } body.dark-mode .form-select option { background-color: var(--dark-card-bg); color: var(--dark-text); } body.dark-mode .navbar-dark .navbar-nav .nav-link { color: var(--dark-text); } body.dark-mode .navbar-dark .navbar-nav .nav-link.active { color: var(--white); } body.dark-mode .navbar-dark .navbar-toggler-icon { filter: invert(1); } body.dark-mode footer.bg-dark { background-color: var(--dark-card-bg) !important; color: var(--dark-text); } body.dark-mode footer.bg-dark a { color: var(--primary-color); } /* === CLASE THEME-RESPONSIVE PERSONALIZATE === */ /* Secțiuni cu fundal adaptabil la temă */ .theme-bg-section { background-color: var(--light-gray); transition: background-color 0.3s ease, color 0.3s ease; } body.dark-mode .theme-bg-section { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; } /* Carduri cu fundal adaptabil la temă */ .theme-card { background-color: var(--white); transition: background-color 0.3s ease, color 0.3s ease; border: 1px solid #ddd; } body.dark-mode .theme-card { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; border-color: var(--dark-card-border) !important; } /* Override pentru bg-light să funcționeze corect */ body.dark-mode .bg-light { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; } /* Carduri cu bg-light specifice */ body.dark-mode .card.bg-light { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; border-color: var(--dark-card-border) !important; } /* --- Componente Bootstrap Suprascrise --- */ .bg-primary { background-color: var(--primary-color) !important; } .btn-primary { background-color: var(--primary-color); border-color: var(--primary-color); } .btn-primary:hover { background-color: #066a82; /* O nuanta mai inchisa la hover */ border-color: #066a82; } .btn-outline-primary { color: var(--primary-color); border-color: var(--primary-color); } .btn-outline-primary:hover { background-color: var(--primary-color); color: var(--white); } .btn-secondary { background-color: var(--secondary-color); border-color: var(--secondary-color); } a { color: var(--accent-color); } a:hover { color: #9a1510; /* Rosu mai inchis la hover */ } .form-control:focus { border-color: var(--primary-color); box-shadow: 0 0 0 0.25rem rgba(8, 129, 156, 0.25); } /* --- Stiluri Specifice Demo --- */ .slogan { font-size: 0.9rem; color: rgba(255, 255, 255, 0.85); /* Alb-translucid pentru lizibilitate */ } /* Bara de Navigatie */ .navbar-brand img { transition: transform 0.3s ease; } .navbar-brand img:hover { transform: scale(1.1); } .nav-link { font-weight: bold; } .dropdown-item:active { background-color: var(--primary-color); } /* Header with Responsive Background Images */ header { background-color: var(--primary-color); /* Fallback color */ background-size: cover; background-position: center; background-repeat: no-repeat; border-top-left-radius: 15px; /* Rounded top-left corner for header */ border-top-right-radius: 15px; /* Rounded top-right corner for header */ /* Removed overflow: hidden to fix dropdown clipping */ /* Default mobile background - WebP with PNG fallback */ background-image: url('imagini_header/responsive/fundal-header-mobile.png'); } /* WebP support detection - modern browsers will use this */ .webp header { background-image: url('imagini_header/responsive/fundal-header-mobile.webp'); } /* Responsive backgrounds for different screen sizes */ @media (min-width: 768px) { header { background-image: url('imagini_header/responsive/fundal-header-tablet.png'); } .webp header { background-image: url('imagini_header/responsive/fundal-header-tablet.webp'); } } @media (min-width: 1200px) { header { background-image: url('imagini_header/responsive/fundal-header-desktop.png'); } .webp header { background-image: url('imagini_header/responsive/fundal-header-desktop.webp'); } } @media (min-width: 1920px) { header { background-image: url('imagini_header/responsive/fundal-header-large.png'); } .webp header { background-image: url('imagini_header/responsive/fundal-header-large.webp'); } } header.sticky-top { background-color: var(--primary-color); /* Ensure background color is applied for sticky header */ } /* Carduri */ .card { border: 1px solid #ddd; transition: box-shadow 0.3s ease, transform 0.3s ease; } .card:hover { transform: translateY(-5px); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); } .card-title { color: var(--primary-color); font-weight: bold; } /* Footer */ footer.bg-dark { background-color: #343a40 !important; border-bottom-left-radius: 15px; /* Rounded bottom-left corner for footer */ border-bottom-right-radius: 15px; /* Rounded bottom-right corner for footer */ overflow: hidden; /* Clip content to rounded corners */ } /* === EXTENDED THEME-RESPONSIVE CLASSES FOR BOOTSTRAP COMPONENTS === */ /* Alert components with theme-aware backgrounds */ .theme-alert-info, .theme-alert-warning, .theme-alert-success, .theme-alert-primary, .theme-alert-secondary { /* Light mode: inherit Bootstrap default colors */ transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; } body.dark-mode .theme-alert-info { background-color: #1e3a5f !important; color: #b3d7ff !important; border-color: #2d5a87 !important; } body.dark-mode .theme-alert-warning { background-color: #5c4a00 !important; color: #fff3cd !important; border-color: #997a00 !important; } body.dark-mode .theme-alert-success { background-color: #0a3622 !important; color: #c6f6d5 !important; border-color: #155724 !important; } body.dark-mode .theme-alert-primary { background-color: #1e3a5f !important; color: #b3d7ff !important; border-color: #2d5a87 !important; } body.dark-mode .theme-alert-secondary { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; border-color: var(--dark-card-border) !important; } /* List-group components with theme support */ .theme-list-group { background-color: var(--white); transition: background-color 0.3s ease; } .theme-list-group-item { background-color: var(--white); border-color: #dee2e6; transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; } body.dark-mode .theme-list-group { background-color: var(--dark-card-bg) !important; } body.dark-mode .theme-list-group-item { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; border-color: var(--dark-card-border) !important; } /* Breadcrumb navigation with dark mode support */ body.dark-mode .breadcrumb { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; } body.dark-mode .breadcrumb-item > a { color: var(--dark-text) !important; opacity: 0.8; } body.dark-mode .breadcrumb-item > a:hover { color: var(--dark-text) !important; opacity: 1; } body.dark-mode .breadcrumb-item.active { color: var(--dark-text) !important; } /* Dropdown menus with dark theme */ body.dark-mode .dropdown-menu { background-color: var(--dark-card-bg) !important; border-color: var(--dark-card-border) !important; box-shadow: 0 0.125rem 0.25rem rgba(255, 255, 255, 0.075) !important; } body.dark-mode .dropdown-item { color: var(--dark-text) !important; } body.dark-mode .dropdown-item:hover, body.dark-mode .dropdown-item:focus { background-color: var(--dark-card-border) !important; color: var(--dark-text) !important; } body.dark-mode .dropdown-divider { border-color: var(--dark-card-border) !important; } /* Accordion components with dark theme */ body.dark-mode .accordion { background-color: transparent !important; } body.dark-mode .accordion-item { background-color: var(--dark-card-bg) !important; border-color: var(--dark-card-border) !important; } body.dark-mode .accordion-button { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; border-color: var(--dark-card-border) !important; } body.dark-mode .accordion-button:not(.collapsed) { background-color: var(--dark-card-border) !important; color: var(--dark-text) !important; box-shadow: none !important; } body.dark-mode .accordion-body { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; } body.dark-mode .accordion-button::after { filter: invert(1); } /* Table components with dark theme */ body.dark-mode .table { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; } body.dark-mode .table > tbody > tr > td, body.dark-mode .table > thead > tr > th { background-color: var(--dark-card-bg) !important; color: var(--dark-text) !important; border-color: var(--dark-card-border) !important; } body.dark-mode .table-striped > tbody > tr:nth-of-type(odd) > td { background-color: var(--dark-card-border) !important; } body.dark-mode .table-bordered { border-color: var(--dark-card-border) !important; } body.dark-mode .table-primary { background-color: var(--primary-color) !important; color: var(--white) !important; } /* ============================================================ */ /* === RESPONSIVE MEDIA QUERIES - MOBILE-FIRST APPROACH === */ /* ============================================================ */ /* === MOBILE RESPONSIVITY (320px - 767px) === */ @media (max-width: 767px) { /* Body padding reduction for mobile screens */ body { padding: 10px !important; /* Reduced from 50px to give more usable space on mobile */ } /* Page wrapper adjustments for mobile */ .page-wrapper { border-width: 5px !important; /* Reduced from 10px for less intrusive border */ border-radius: 10px !important; /* Reduced from 20px for subtle rounding */ max-width: 100% !important; /* Ensure full width usage on mobile */ } /* Main container padding optimization */ main.container { padding: 15px !important; /* Reduced from 30px for better mobile spacing */ } /* Logo size reduction in navbar */ .navbar-brand img { height: 50px !important; /* Reduced from 70px for mobile navbar */ margin-bottom: 3px !important; /* Adjust spacing */ } /* Slogan font-size optimization */ .slogan { font-size: 0.8rem !important; /* Reduced from 0.9rem for mobile readability */ line-height: 1.2; /* Better line spacing on small screens */ } /* Typography responsive adjustments */ h1 { font-size: 1.5rem !important; /* Reduced for mobile */ } h2 { font-size: 1.3rem !important; /* Reduced for mobile */ } h3 { font-size: 1.2rem !important; /* Reduced for mobile */ } h4 { font-size: 1.1rem !important; /* Reduced for mobile */ } h5 { font-size: 1rem !important; /* Reduced for mobile */ } h6 { font-size: 0.95rem !important; /* Reduced for mobile */ } p { font-size: 0.95rem !important; /* Slightly reduced for mobile */ line-height: 1.4; /* Better readability */ } /* Card spacing optimizations */ .card { margin-bottom: 1rem !important; /* Optimized spacing between cards */ } .card-body { padding: 1rem 0.75rem !important; /* Reduced padding for mobile cards */ } .card img { max-height: 60px !important; /* Smaller card images on mobile */ } /* Card hover effects reduced for mobile */ .card:hover { transform: translateY(-2px) !important; /* Reduced from -5px */ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; } /* Button sizing for mobile */ .btn { font-size: 0.9rem !important; /* Slightly smaller text */ padding: 0.5rem 1rem !important; /* Optimized button padding */ min-height: 42px; /* Touch-friendly minimum height */ } .btn-lg { font-size: 1rem !important; padding: 0.6rem 1.2rem !important; min-height: 48px; } .btn-sm { font-size: 0.8rem !important; padding: 0.4rem 0.8rem !important; min-height: 36px; } /* Navbar adjustments for mobile */ .navbar { padding-top: 0.75rem !important; /* Reduced navbar padding */ padding-bottom: 0.75rem !important; } .navbar-brand { margin-right: 0.5rem !important; /* Reduced brand margin */ } .nav-link { font-size: 0.9rem !important; padding: 0.5rem 0.75rem !important; } /* Container adjustments for mobile */ .container { padding-left: 10px !important; /* Reduced container padding */ padding-right: 10px !important; } /* Hero section adjustments */ .row.align-items-center { text-align: center !important; /* Center align hero content on mobile */ } .col-md-8, .col-md-4 { margin-bottom: 1rem !important; /* Add spacing between columns on mobile */ } /* List adjustments for mobile */ .list-unstyled li { margin-bottom: 0.5rem !important; /* Better list spacing */ font-size: 0.9rem !important; } /* Dropdown menu improvements for mobile */ .dropdown-menu { font-size: 0.9rem !important; /* Smaller dropdown text */ min-width: 150px !important; } .dropdown-item { padding: 0.5rem 1rem !important; } /* Footer adjustments */ footer.bg-dark { padding: 1rem 0 !important; /* Reduced footer padding */ border-radius: 5px 5px 0 0 !important; /* Reduced border radius */ } footer p { font-size: 0.85rem !important; margin-bottom: 0.5rem !important; } /* Form elements optimization */ .form-control { font-size: 16px !important; /* Prevents zoom on iOS devices */ padding: 0.5rem 0.75rem !important; /* Optimized form padding */ } .form-select { font-size: 16px !important; /* Prevents zoom on iOS devices */ padding: 0.5rem 0.75rem !important; } .form-label { font-size: 0.9rem !important; margin-bottom: 0.4rem !important; } /* Table responsivity */ .table-responsive { font-size: 0.85rem !important; /* Smaller table text on mobile */ } .table th, .table td { padding: 0.5rem 0.25rem !important; font-size: 0.85rem !important; } /* Alert components spacing */ .alert { margin-bottom: 0.75rem !important; /* Reduced alert spacing */ padding: 0.5rem 0.75rem !important; /* Smaller alert padding */ font-size: 0.9rem !important; } /* Accordion adjustments */ .accordion-button { font-size: 0.9rem !important; padding: 0.75rem 1rem !important; } .accordion-body { padding: 0.75rem 1rem !important; font-size: 0.9rem !important; } /* Breadcrumb adjustments */ .breadcrumb { font-size: 0.85rem !important; padding: 0.5rem 0.75rem !important; } } /* === SMALL MOBILE DEVICES (320px - 480px) === */ @media (max-width: 480px) { /* Extra small mobile adjustments */ body { padding: 5px !important; /* Even smaller padding for very small screens */ } .page-wrapper { border-width: 3px !important; /* Minimal border for small screens */ border-radius: 8px !important; /* Subtle rounding */ } main.container { padding: 10px !important; /* Minimal container padding */ } .navbar-brand img { height: 45px !important; /* Further reduced logo for small screens */ } .slogan { font-size: 0.75rem !important; /* Even smaller slogan text */ } h1 { font-size: 1.25rem !important; } h2 { font-size: 1.15rem !important; } h3 { font-size: 1.1rem !important; } h4 { font-size: 1.05rem !important; } h5 { font-size: 1rem !important; } h6 { font-size: 0.9rem !important; } p { font-size: 0.9rem !important; line-height: 1.3; } .btn { font-size: 0.85rem !important; /* Smaller buttons */ padding: 0.4rem 0.8rem !important; min-height: 40px; } .btn-lg { font-size: 0.95rem !important; padding: 0.5rem 1rem !important; min-height: 44px; } .card-body { padding: 0.75rem 0.5rem !important; /* Minimal card padding */ } .card img { max-height: 50px !important; } .container { padding-left: 5px !important; /* Minimal container padding */ padding-right: 5px !important; } .navbar { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } .nav-link { font-size: 0.85rem !important; padding: 0.4rem 0.6rem !important; } .dropdown-menu { font-size: 0.85rem !important; } .form-control, .form-select { font-size: 16px !important; padding: 0.4rem 0.6rem !important; } } /* === TABLET RANGE (768px - 1199px) === */ @media (min-width: 768px) and (max-width: 1199px) { /* Tablet intermediate values */ body { padding: 25px !important; /* Intermediate padding for tablet */ } .page-wrapper { border-width: 8px !important; /* Intermediate border width */ border-radius: 15px !important; /* Intermediate border radius */ } main.container { padding: 25px !important; /* Intermediate container padding */ } .navbar-brand img { height: 60px !important; /* Intermediate logo size */ } .slogan { font-size: 0.85rem !important; /* Intermediate slogan size */ } /* Typography for tablet */ h1 { font-size: 1.75rem !important; } h2 { font-size: 1.5rem !important; } h3 { font-size: 1.35rem !important; } h4 { font-size: 1.2rem !important; } h5 { font-size: 1.1rem !important; } h6 { font-size: 1rem !important; } p { font-size: 1rem !important; line-height: 1.5; } /* Card optimizations for tablet */ .card-body { padding: 1.2rem !important; /* Balanced card padding */ } .card img { max-height: 70px !important; /* Intermediate card image size */ } .card:hover { transform: translateY(-3px) !important; /* Intermediate hover effect */ box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1) !important; } /* Button sizing for tablet */ .btn { font-size: 0.95rem !important; padding: 0.6rem 1.2rem !important; min-height: 44px; } .btn-lg { font-size: 1.1rem !important; padding: 0.7rem 1.4rem !important; min-height: 50px; } /* Navigation for tablet */ .navbar { padding-top: 1rem !important; padding-bottom: 1rem !important; } .nav-link { font-size: 0.95rem !important; padding: 0.6rem 1rem !important; } /* Footer for tablet */ footer.bg-dark { padding: 1.5rem 0 !important; border-radius: 10px 10px 0 0 !important; } /* Form elements for tablet */ .form-control, .form-select { padding: 0.6rem 0.8rem !important; font-size: 0.95rem !important; } /* Table for tablet */ .table th, .table td { padding: 0.6rem 0.4rem !important; font-size: 0.9rem !important; } } /* === DESKTOP RANGE (1200px+) - Preserve Current Design === */ @media (min-width: 1200px) { /* Desktop - keep existing values */ body { padding: 50px; /* Original desktop padding */ } .page-wrapper { border-width: 10px; /* Original border width */ border-radius: 20px; /* Original border radius */ } main.container { padding: 30px; /* Original container padding */ } .navbar-brand img { height: 70px; /* Original logo size - will be set in HTML */ } .slogan { font-size: 0.9rem; /* Original slogan size */ } /* Enhanced typography for large screens */ h1 { font-size: 2rem; } h2 { font-size: 1.75rem; } h3 { font-size: 1.5rem; } h4 { font-size: 1.25rem; } h5 { font-size: 1.1rem; } h6 { font-size: 1rem; } p { font-size: 1rem; line-height: 1.6; } /* Full card experience for desktop */ .card-body { padding: 1.5rem; /* Generous desktop padding */ } .card img { max-height: 80px; /* Full desktop image size */ } .card:hover { transform: translateY(-5px); /* Full desktop hover effect */ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); } /* Professional button sizing for desktop */ .btn { font-size: 1rem; padding: 0.7rem 1.5rem; min-height: 46px; } .btn-lg { font-size: 1.2rem; padding: 0.8rem 1.8rem; min-height: 52px; } /* Navigation for desktop */ .navbar { padding-top: 1rem; padding-bottom: 1rem; } .nav-link { font-size: 1rem; padding: 0.7rem 1.2rem; } /* Footer for desktop */ footer.bg-dark { padding: 2rem 0; border-radius: 15px 15px 0 0; } /* Form elements for desktop */ .form-control, .form-select { padding: 0.7rem 1rem; font-size: 1rem; } /* Table for desktop */ .table th, .table td { padding: 0.75rem; font-size: 1rem; } } /* === LARGE DESKTOP (1600px+) === */ @media (min-width: 1600px) { /* Enhanced spacing for very large screens */ body { padding: 60px; } main.container { padding: 40px; } h1 { font-size: 2.25rem; } h2 { font-size: 2rem; } .card-body { padding: 2rem; } .btn { font-size: 1.1rem; padding: 0.8rem 1.8rem; min-height: 50px; } } /* === RESPONSIVE UTILITIES === */ /* Responsive spacing utilities */ @media (max-width: 767px) { .mobile-p-1 { padding: 0.25rem !important; } .mobile-p-2 { padding: 0.5rem !important; } .mobile-p-3 { padding: 1rem !important; } .mobile-m-1 { margin: 0.25rem !important; } .mobile-m-2 { margin: 0.5rem !important; } .mobile-m-3 { margin: 1rem !important; } .mobile-mb-1 { margin-bottom: 0.25rem !important; } .mobile-mb-2 { margin-bottom: 0.5rem !important; } .mobile-mb-3 { margin-bottom: 1rem !important; } .mobile-text-center { text-align: center !important; } .mobile-text-left { text-align: left !important; } .mobile-d-none { display: none !important; } .mobile-d-block { display: block !important; } } /* Responsive display utilities */ @media (min-width: 768px) and (max-width: 1199px) { .tablet-d-none { display: none !important; } .tablet-d-block { display: block !important; } .tablet-text-center { text-align: center !important; } } @media (min-width: 1200px) { .desktop-d-none { display: none !important; } .desktop-d-block { display: block !important; } } /* === ACCESSIBILITY IMPROVEMENTS === */ /* Focus states for mobile devices */ @media (max-width: 767px) { .btn:focus, .form-control:focus, .form-select:focus { outline: 2px solid var(--primary-color) !important; outline-offset: 2px !important; } .nav-link:focus { background-color: rgba(8, 129, 156, 0.1) !important; outline: 2px solid var(--primary-color) !important; outline-offset: 2px !important; } } /* High contrast mode support */ @media (prefers-contrast: high) { .card { border-width: 2px !important; } .btn { border-width: 2px !important; } .page-wrapper { border-width: 12px !important; } } /* Reduced motion preferences */ @media (prefers-reduced-motion: reduce) { .card, .btn, .navbar-brand img { transition: none !important; } .card:hover { transform: none !important; } .navbar-brand img:hover { transform: none !important; } }