/* components.css */
/* --- Shortcut Modal --- */
.shortcut-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); display: flex; justify-content: center; align-items: center; z-index: 3000; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; }
.shortcut-modal-overlay.visible { opacity: 1; visibility: visible; }
.shortcut-modal-content { background-color: var(--panel-bg); padding: 30px 40px; border-radius: 8px; text-align: center; box-shadow: 0 5px 20px rgba(0,0,0,0.4); transform: scale(0.9); transition: transform 0.3s ease; }
.shortcut-modal-overlay.visible .shortcut-modal-content { transform: scale(1); }
.shortcut-modal-content p { margin: 0 0 20px; font-size: 18px; color: var(--text-primary); }
.shortcut-modal-content .shortcut-key-preview { min-height: 40px; display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 20px; }
.shortcut-modal-content small { color: var(--text-secondary); }

/* --- Tour Tooltip --- */
#tour-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9998; background-color: rgba(0, 0, 0, 0.5); opacity: 0; transition: opacity 0.3s ease-in-out; pointer-events: none; }
#tour-overlay.active { opacity: 1; pointer-events: auto; }
#tour-highlight-box { position: absolute; z-index: 9999; border-radius: 6px; box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.6); transition: all 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55); }
#tour-tooltip { position: absolute; z-index: 10000; background-color: var(--panel-bg); padding: 15px 20px; border-radius: 8px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); width: 300px; max-width: 80vw; opacity: 0; transform: translateY(10px); transition: opacity 0.3s ease, transform 0.3s ease; visibility: hidden; }
#tour-tooltip.active { opacity: 1; transform: translateY(0); visibility: visible; }
#tour-tooltip::before { content: ''; position: absolute; border: 8px solid transparent; }
#tour-tooltip.tour-tooltip-bottom::before { top: -16px; left: 50%; transform: translateX(-50%); border-bottom-color: var(--panel-bg); }
#tour-tooltip.tour-tooltip-top::before { bottom: -16px; left: 50%; transform: translateX(-50%); border-top-color: var(--panel-bg); }
#tour-tooltip.tour-tooltip-right::before { left: -16px; top: 50%; transform: translateY(-50%); border-right-color: var(--panel-bg); }
#tour-tooltip.tour-tooltip-left::before { right: -16px; top: 50%; transform: translateY(-50%); border-left-color: var(--panel-bg); }
.tour-tooltip-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.tour-tooltip-title { font-size: 1rem; font-weight: bold; color: var(--text-primary); }
.tour-tooltip-step-counter { font-size: 0.85rem; color: var(--text-secondary); }
.tour-tooltip-content { font-size: 0.9rem; line-height: 1.6; color: var(--text-secondary); margin-bottom: 20px; }
.tour-custom-demo {
    display: none; /* Hidden by default */
    margin-bottom: 20px;
}
.tour-gallery-demo-container {
    position: relative;
    height: 120px;
    background-color: var(--bg-color);
    border: 1px solid var(--highlight-bg);
    border-radius: 6px;
    overflow: hidden;
    user-select: none;
}
.tour-gallery-demo-bg {
    position: absolute;
    top: 10px;
    left: 10px;
    width: 200%; /* Wider to allow movement */
    display: grid;
    grid-template-columns: repeat(4, 60px);
    gap: 10px;
    animation: tour-bg-drag 5s ease-in-out infinite;
}
.demo-tile {
    width: 60px;
    height: 60px;
    background-color: var(--surface-color);
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--text-secondary);
}
.demo-tile svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}
.tour-gallery-demo-hand {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 32px;
    height: 32px;
    color: var(--text-primary);
    transform-origin: 8px 8px; /* Approx top-left of the hand palm */
    animation: tour-hand-drag 5s ease-in-out infinite;
    z-index: 10;
}
.tour-tooltip-footer { display: flex; justify-content: space-between; align-items: center; }
.tour-skip-button { background: none; border: none; color: var(--text-secondary); cursor: pointer; font-size: 0.9rem; }
.tour-skip-button:hover { color: var(--text-primary); }
.tour-nav-buttons button { background-color: var(--primary-color); color: #000; font-weight: bold; border: none; padding: 8px 16px; border-radius: 20px; cursor: pointer; font-size: 0.9rem; margin-left: 10px; transition: background-color 0.2s ease; }
.tour-nav-buttons button:hover { background-color: #1ed760; }
.tour-nav-buttons button:disabled { background-color: var(--slider-track-color); color: var(--text-secondary); cursor: not-allowed; }

@keyframes tour-hand-drag {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    15% { transform: translate(-50%, -50%) scale(0.9); } /* Press down */
    85% { transform: translate(calc(-50% - 40px), calc(-50% - 15px)) scale(0.9); } /* Drag left and up */
    95% { transform: translate(calc(-50% - 40px), calc(-50% - 15px)) scale(1); } /* Release */
}

@keyframes tour-bg-drag {
    0%, 15%, 95%, 100% { transform: translate(0, 0); }
    85% { transform: translate(80px, 30px); } /* Move opposite to hand */
}

/* --- Toast Notification --- */
.toast { visibility: hidden; opacity: 0; position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%); min-width: 250px; background-color: var(--highlight-bg); color: var(--text-primary); text-align: center; border-radius: 4px; padding: 16px; z-index: 10001; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transition: opacity 0.5s, visibility 0.5s; font-size: 14px; }
.toast.show { visibility: visible; opacity: 1; }

/* --- Custom Context Menu --- */
.custom-context-menu {
    display: none;
    position: fixed;
    z-index: 4000;
    background-color: var(--panel-bg);
    border-radius: 6px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    padding: 6px;
    min-width: 180px;
    border: 1px solid var(--highlight-bg);
}
.custom-context-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.custom-context-menu li {
    padding: 10px 15px;
    font-size: 14px;
    color: var(--text-secondary);
    cursor: pointer;
    border-radius: 4px;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.custom-context-menu li:hover {
    background-color: var(--highlight-bg);
    color: var(--text-primary);
}
.step-content p code {
    background-color: var(--highlight-bg);
    padding: 2px 5px;
    border-radius: 4px;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
    font-size: 0.9em;
    color: var(--text-primary);
}

/* --- Mobile Tour Tooltip Arrow Adjustments --- */
@media (max-width: 900px) {
    /* 通用的顶部箭头在移动端默认居中，不需要额外调整 */

    /* 针对 #mobile-playlist-btn 的顶部箭头 */
    #tour-tooltip.tour-tooltip-top.for-mobile-playlist-btn::before {
        left: 90%; /* 播放列表为left：90% */
        transform: translateX(-50%);
    }

    /* 针对 #mobile-lyrics-btn 的顶部箭头 */
    #tour-tooltip.tour-tooltip-top.for-mobile-lyrics-btn::before {
        left: 13%; /* 同步歌词为left：13% */
        transform: translateX(-50%);
    }
}