/* Toggle Components - Unified Design */ .language-toggle, .cv-length-toggle, .logo-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; white-space: nowrap; } .toggle-switch { display: inline-block; cursor: pointer; -webkit-user-select: none; user-select: none; position: relative; } .toggle-switch input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; } .toggle-slider { position: relative; display: inline-block; width: 50px; height: 26px; background-color: #555; border-radius: 26px; transition: background-color 0.3s ease; } .toggle-slider::after { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 50%; background-color: white; top: 3px; left: 3px; transition: transform 0.3s ease; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .toggle-switch input[type="checkbox"]:checked + .toggle-slider { background-color: var(--accent-blue, #0066cc); } .toggle-switch input[type="checkbox"]:checked + .toggle-slider::after { transform: translateX(24px); } .toggle-switch input[type="checkbox"]:focus + .toggle-slider { box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.2); } .toggle-label-left, .toggle-label-right { font-size: 0.8rem; font-weight: 500; color: #999; transition: all 0.3s ease; white-space: nowrap; display: flex; align-items: center; justify-content: center; height: 28px; } /* Flag icons - special styling */ .flag-icon { border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; } /* Highlight active label/icon based on parent container state */ .language-toggle:has(#langToggle:not(:checked)) .toggle-label-left, .cv-length-toggle:has(#lengthToggle:not(:checked)) .toggle-label-left, .logo-toggle:has(#logoToggle:not(:checked)) .toggle-label-left { color: #fff; opacity: 1; } .language-toggle:has(#langToggle:checked) .toggle-label-right, .cv-length-toggle:has(#lengthToggle:checked) .toggle-label-right, .logo-toggle:has(#logoToggle:checked) .toggle-label-right { color: #fff; opacity: 1; } /* Dim inactive icons */ .language-toggle:has(#langToggle:not(:checked)) .toggle-label-right, .cv-length-toggle:has(#lengthToggle:not(:checked)) .toggle-label-right, .logo-toggle:has(#logoToggle:not(:checked)) .toggle-label-right { opacity: 0.4; } .language-toggle:has(#langToggle:checked) .toggle-label-left, .cv-length-toggle:has(#lengthToggle:checked) .toggle-label-left, .logo-toggle:has(#logoToggle:checked) .toggle-label-left { opacity: 0.4; } /* Experience Item with Logo Support */ .experience-item, .award-item { margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 2px solid var(--icon-border, #ddd); page-break-inside: avoid; display: flex; gap: 1.2rem; position: relative; transition: gap 0.3s ease-in-out; } .experience-item:last-child, .award-item:last-child { border-bottom: none; padding-bottom: 0; } /* Adjust gap when icons are hidden */ .cv-paper:not(.show-icons) .experience-item, .cv-paper:not(.show-icons) .award-item { gap: 0; } .company-logo, .award-logo, .project-icon, .course-icon { display: block; flex-shrink: 0; } .company-logo img, .award-logo img, .project-icon img, .course-icon img { width: 80px; height: 80px; object-fit: contain; border-radius: 4px; border: 1px solid var(--icon-border, #ddd); background: transparent; padding: 10px; } .default-company-icon, .default-award-icon, .default-project-icon, .default-course-icon { width: 80px !important; height: 80px !important; display: flex; align-items: center; justify-content: center; border-radius: 4px; border: 1px solid var(--icon-border, #ddd); background: transparent; color: #999; padding: 10px; } .experience-content, .award-content { flex: 1; min-width: 0; /* Prevents flex item from overflowing */ } /* Animate icons with fade and scale */ .company-logo, .award-logo, .section-icon, .default-company-icon, .project-icon, .default-project-icon, .course-icon, .default-course-icon { overflow: hidden; transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, width 0.3s ease-in-out, height 0.3s ease-in-out, margin 0.3s ease-in-out; opacity: 1; transform: scale(1); width: auto; height: auto; } /* Hide icons when toggle is OFF - with animation */ .cv-paper:not(.show-icons) .company-logo, .cv-paper:not(.show-icons) .award-logo, .cv-paper:not(.show-icons) .section-icon, .cv-paper:not(.show-icons) .default-company-icon, .cv-paper:not(.show-icons) .project-icon, .cv-paper:not(.show-icons) .default-project-icon, .cv-paper:not(.show-icons) .course-icon, .cv-paper:not(.show-icons) .default-course-icon { opacity: 0; transform: scale(0.8); width: 0; height: 0; margin: 0; padding: 0; pointer-events: none; overflow: hidden; } /* Show icons when toggle is ON (default) - with animation */ .show-icons .company-logo, .show-icons .award-logo, .show-icons .section-icon, .show-icons .default-company-icon, .show-icons .project-icon, .show-icons .default-project-icon, .show-icons .course-icon, .show-icons .default-course-icon { opacity: 1; transform: scale(1); width: auto; height: auto; } /* Company icons visible in print - styling controlled by _print.css */ /* Mobile responsiveness */ @media (max-width: 768px) { .logo-toggle { order: 3; /* Move to bottom on mobile */ } .toggle-label { font-size: 0.85rem; } .toggle-slider { width: 38px; height: 20px; } .toggle-slider::after { width: 14px; height: 14px; } .toggle-switch input[type="checkbox"]:checked + .toggle-slider::after { transform: translateX(18px); } .company-logo img { width: 40px; height: 40px; } }