/* ============================================================
   FILE DROP OVERLAY — darkens page + highlights drop zone
   body.is-dragging-file set by filedrop module on dragenter/leave
   ============================================================ */

body.is-dragging-file::before {
    content: "";
    position: fixed;
    inset: 0;
    background: oklch(0% 0 0 / 0.45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 9998;
    pointer-events: none;
    animation: dropFadeIn 180ms var(--ease-out);
}

body.is-dragging-file .canvas-empty {
    z-index: 9999;
    border-color: oklch(100% 0 0 / 0.6);
    background: oklch(0% 0 0 / 0.25);
    box-shadow: 0 0 40px oklch(100% 0 0 / 0.15);
}

body.is-dragging-file .canvas-empty-icon-circle {
    background: oklch(100% 0 0 / 0.18);
    color: white;
}

body.is-dragging-file .canvas-empty-icon {
    opacity: 1;
    filter: drop-shadow(0 0 20px oklch(100% 0 0 / 0.5));
}

body.is-dragging-file .canvas-empty-title,
body.is-dragging-file .canvas-empty-sub,
body.is-dragging-file .canvas-empty-sub b {
    color: white;
}

@keyframes dropFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Top-edge spotlight glow — guides the eye toward the browser tab */
body.has-top-glow::after {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 48px;
    z-index: 9999;
    pointer-events: none;
    background: linear-gradient(
        to bottom,
        var(--color-primary) 0%,
        oklch(from var(--color-primary) l c h / 0.4) 40%,
        transparent 100%
    );
    opacity: 1;
    transition:
        opacity var(--transition-slow),
        transform var(--transition-slow);
    transform: translateY(-8px);
}

@starting-style {
    body.has-top-glow::after {
        opacity: 0;
        transform: translateY(-100%);
    }
}

