/* ======================================== Scroll Direction - Hide/Show Header ======================================== */ /* Add smooth transition to header elements */ .action-bar, .navigation-menu { transition: transform 0.3s ease-in-out; } /* Hide header when scrolling down */ .action-bar.header-hidden { transform: translateY(-100%); } .navigation-menu.header-hidden { transform: translateY(-100%); } /* ======================================== Back to Top Button ======================================== */ .back-to-top { position: fixed; bottom: 2rem; right: 2rem; width: 50px; height: 50px; background: var(--black-bar); color: white; border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); z-index: 99; transition: all 0.3s ease; opacity: 0.2; } .back-to-top:hover { opacity: 1; transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); background: #27ae60; } .back-to-top.at-bottom { opacity: 1; background: #27ae60; } .back-to-top:active { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); } /* Mobile adjustments */ @media (max-width: 768px) { .back-to-top { bottom: 1.5rem; right: 1.5rem; width: 45px; height: 45px; } } /* ======================================== Info Button (Bottom Left) ======================================== */ .info-button { position: fixed; bottom: 2rem; left: 2rem; width: 50px; height: 50px; background: var(--black-bar); color: white; border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); z-index: 99; transition: all 0.3s ease; opacity: 0.6; /* Increased from 0.2 for better discoverability */ } .info-button:hover { opacity: 1; transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); background: #27ae60; } .info-button.at-bottom { opacity: 1; background: #27ae60; } .info-button:active { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); } /* Mobile adjustments - Flexbox button layout at bottom center */ @media (max-width: 900px) { /* Hide only zoom control on mobile */ .zoom-toggle-btn, .zoom-control { display: none !important; } /* Reset fixed positioning for FLEXBOX buttons on mobile (exclude back-to-top) */ .download-btn, .print-friendly-btn, .shortcuts-btn, .info-button { position: fixed !important; bottom: 1.5rem !important; left: auto !important; right: auto !important; width: 50px !important; height: 50px !important; opacity: 0.7 !important; transform: none !important; } /* Keep back-to-top button at bottom-right (same as desktop) */ .back-to-top { position: fixed !important; bottom: 1.5rem !important; right: 1.5rem !important; width: 50px !important; height: 50px !important; } /* Flexbox container behavior - buttons arrange themselves */ /* Buttons will be positioned using JavaScript or individual positioning */ /* For now, use fixed spacing from center */ /* 5 buttons: Download, Print, Shortcuts, Theme, Info */ /* Spacing: 10px gap between buttons, centered horizontally */ /* Total width: 5 * 50px + 4 * 10px = 290px */ /* Start position: 50% - 145px */ .download-btn { left: calc(50% - 145px) !important; /* First button */ } .print-friendly-btn { left: calc(50% - 85px) !important; /* Second button */ } .shortcuts-btn { left: calc(50% - 25px) !important; /* Third button */ } /* Theme switcher button - fourth position (defined in color-theme.css) */ /* left: calc(50% + 35px) !important; */ .info-button { left: calc(50% + 95px) !important; /* Fifth button (last) */ } /* Hover effects - only Y transform + enhanced shadow */ .download-btn:hover, .download-btn.pdf-hover-sync, .print-friendly-btn:hover, .print-friendly-btn.print-hover-sync, .shortcuts-btn:hover, .info-button:hover, .back-to-top:hover { transform: translateY(-3px) !important; opacity: 1 !important; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important; } /* Keep at-bottom state without transform */ .info-button.at-bottom, .shortcuts-btn.at-bottom { opacity: 1 !important; transform: none !important; } } /* Very narrow mobile - Move back-to-top UP on RIGHT side to avoid overlap */ @media (max-width: 483px) { .back-to-top { /* Stay on RIGHT side, just move UP higher */ right: 1.5rem !important; bottom: 5.5rem !important; /* Higher position to clear bottom button row */ } }