/*
 * Phase C31: Guided Tours overlay styles.
 *
 * All values use --closina-* CSS tokens (Cat 22).
 * Z-index uses var(--closina-z-modal) so the overlay sits above the app shell
 * but below tooltips (--closina-z-tooltip).
 * Dark mode is handled automatically via token values under [data-theme="dark"].
 */

/* ========================================================================
   Tour Overlay — fixed full-viewport container
   ======================================================================== */

.tour-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: var(--closina-z-maximum);
    pointer-events: auto;
}

/* Semi-transparent backdrop — darker than modal to focus user attention */
.tour-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.55);
    pointer-events: auto;
}

[data-theme="dark"] .tour-backdrop {
    background: rgba(0, 0, 0, 0.7);
}

/* ========================================================================
   Tooltip container — positioned absolutely within the overlay
   ======================================================================== */

.tour-tooltip-container {
    position: absolute;
    z-index: calc(var(--closina-z-maximum) + 10);
    pointer-events: auto;
    max-width: 400px;
    width: calc(100vw - 32px);
}

/* ========================================================================
   Tooltip card
   ======================================================================== */

.tour-tooltip {
    background: var(--closina-surface);
    color: var(--closina-text-primary);
    border: 1px solid var(--closina-border);
    border-radius: var(--closina-radius-lg);
    box-shadow: var(--closina-shadow-lg);
    padding: 20px;
    pointer-events: auto;
}

.tour-tooltip-title {
    color: var(--closina-text-primary);
    margin-bottom: 8px;
    font-weight: var(--closina-font-weight-semibold, 600);
}

.tour-tooltip-content {
    color: var(--closina-text-secondary);
    margin-bottom: 16px;
    line-height: var(--closina-leading-relaxed, 1.6);
}

.tour-tooltip-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.tour-tooltip-counter {
    color: var(--closina-text-muted);
    white-space: nowrap;
}

/* ========================================================================
   Target element highlight ring
   ======================================================================== */

.tour-highlight-active {
    position: relative;
    z-index: calc(var(--closina-z-maximum) + 2) !important;
    box-shadow: 0 0 0 4px var(--closina-primary),
                0 0 0 8px var(--closina-primary-light) !important;
    border-radius: var(--closina-radius-md);
    transition: box-shadow var(--closina-transition);
    pointer-events: none !important;
}

[data-theme="dark"] .tour-highlight-active {
    box-shadow: 0 0 0 4px var(--closina-primary),
                0 0 0 8px var(--closina-primary-light);
}

/* ========================================================================
   Responsive adjustments
   ======================================================================== */

@media (max-width: 599px) {
    .tour-tooltip-container {
        /* On mobile, anchor tooltip at the bottom of the viewport */
        position: fixed !important;
        bottom: 16px !important;
        left: 16px !important;
        right: 16px !important;
        top: auto !important;
        transform: none !important;
        max-width: none;
        width: auto;
    }

    .tour-tooltip {
        padding: 16px;
    }

    .tour-tooltip-footer {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .tour-tooltip-counter {
        text-align: center;
    }
}

/* Foldable device support (Samsung Fold folded ~280-360px) */
@media (max-width: 399px) {
    .tour-tooltip-container {
        left: 8px !important;
        right: 8px !important;
        bottom: 8px !important;
    }

    .tour-tooltip {
        padding: 12px;
    }
}
