.tt-file-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 1rem; } .tt-file-gallery-item { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; cursor: pointer; } .tt-file-gallery-thumbnail { width: 100%; height: 100px; object-fit: cover; border-radius: 0.25rem; border: 1px solid #dee2e6; transition: transform 0.2s; } .tt-file-gallery-item:hover .tt-file-gallery-thumbnail { transform: scale(1.05); } .tt-file-gallery-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 40px; /* Adjust to not cover filename */ background: rgba(0, 0, 0, 0.4); color: white; display: flex; justify-content: center; align-items: center; opacity: 0; transition: opacity 0.2s; pointer-events: none; border-radius: 0.25rem; } .tt-file-gallery-item:hover .tt-file-gallery-overlay { opacity: 1; } .tt-file-gallery-icon-container { width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; border: 1px solid #dee2e6; border-radius: 0.25rem; background-color: #f8f9fa; text-decoration: none; color: inherit; } .tt-file-gallery-filename { font-size: 0.8rem; margin-top: 0.5rem; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 4px; } /* --- Fullscreen Viewer Styles --- */ .tt-fullscreen-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.85); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 9999; outline: none; } .tt-fullscreen-toolbar { position: absolute; top: 0; right: 0; padding: 15px; display: flex; gap: 15px; z-index: 10001; } .tt-fullscreen-btn { background: rgba(0, 0, 0, 0.3); border: none; color: white; font-size: 1.5rem; cursor: pointer; width: 44px; height: 44px; border-radius: 50%; display: flex; justify-content: center; align-items: center; text-decoration: none; transition: background-color 0.2s; } .tt-fullscreen-btn:hover { background: rgba(0, 0, 0, 0.6); } .tt-fullscreen-content { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } .tt-fullscreen-image-wrapper { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; overflow: hidden; /* Important for panning */ } .tt-fullscreen-image { max-width: 95vw; max-height: 95vh; object-fit: contain; will-change: transform; /* Performance hint for browser */ } .tt-fullscreen-pdf { width: calc(100vw - 40px); height: calc(100vh - 40px); max-width: 1600px; /* Optional: max width for very large screens */ border: none; background-color: white; } .tt-fullscreen-nav-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0, 0, 0, 0.3); border: none; color: white; font-size: 2rem; cursor: pointer; padding: 10px; width: 50px; height: 50px; border-radius: 50%; display: flex; justify-content: center; align-items: center; transition: background-color 0.2s; } .tt-fullscreen-nav-btn:hover { background: rgba(0, 0, 0, 0.6); } .tt-fullscreen-nav-btn.left { left: 15px; } .tt-fullscreen-nav-btn.right { right: 15px; }