@keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
#atp-root .atp-animate-scroll { display: flex; width: fit-content; animation: scroll 20s linear infinite; }
#atp-root .atp-scrollbar::-webkit-scrollbar { width: 6px; height: 8px; }
#atp-root .atp-scrollbar::-webkit-scrollbar-track { background: #f8fafc; border-radius: 10px; }
#atp-root .atp-scrollbar::-webkit-scrollbar-thumb { background: #bc9e6c; border-radius: 10px; }
#atp-root .atp-fade-in { animation: fadeIn 0.4s ease-out forwards; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

#atp-root .atp-glass-card {
    background: linear-gradient(135deg, #bc9e6c 0%, #a3895d 100%);
    position: relative;
}
#atp-root .atp-glass-card::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: radial-gradient(circle at top right, rgba(255,255,255,0.1), transparent 50%);
}

#atp-root .atp-gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    aspect-ratio: 1 / 1;
}
#atp-root .atp-gallery-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 25px rgba(0,0,0,0.2);
}
#atp-root .atp-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
#atp-root .atp-gallery-item:hover img {
    transform: scale(1.15);
}
#atp-root .atp-gallery-item .atp-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.75);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; transition: opacity 0.4s ease; padding: 15px;
}
#atp-root .atp-gallery-item:hover .atp-overlay { opacity: 1; }
#atp-root .atp-gallery-item .atp-patient-name {
    color: white; font-size: 1.1rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 1px; border-bottom: 2px solid #fff; padding-bottom: 8px; text-align: center;
}
#atp-root .atp-spin-slow { animation: spin 3s linear infinite; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
#atp-root .atp-pdf-hide { display: none !important; }

#atp-root {
    background: #f8fafc;
    width: 100%;
    overflow-x: hidden; /* keeps any accidental wide content from causing horizontal
                            page scroll on mobile — doesn't affect position:fixed
                            elements (loading overlay, PDF download button), which
                            are positioned relative to the viewport, not this box. */
}
