/* ==========================================================================
   HUD, Top Bar, Bottom Bar, Badges
   ========================================================================== */

.minimal-hud {
    position: absolute;
    inset: 0;
    z-index: 10;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--hud-padding-y) var(--hud-padding-x);
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    transition: opacity 0.2s ease;

    &.hidden {
        opacity: 0;
    }
}

.hud-restore-btn {
    position: fixed;
    top: var(--space-md);
    right: var(--space-md);
    z-index: 20;
    font-family: inherit;
    font-size: var(--font-size-xs);
    font-weight: 600;
    letter-spacing: 0.5px;
    padding: var(--space-xs) var(--space-md);
    border: 1px solid var(--border-primary-subtle);
    background: var(--bg-surface);
    backdrop-filter: var(--blur-glass);
    color: var(--text-brand);
    border-radius: var(--radius-sm);
    cursor: pointer;
    box-shadow: var(--shadow-modal);
    transition: all 0.15s ease;

    &:hover {
        background: var(--color-primary);
        color: var(--text-inverse);
    }
}

.hud-top {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    width: 100%;

    @media (max-width: 640px) {
        gap: var(--space-xs);
    }
}

.top-bar-branding {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: var(--space-md);

    @media (max-width: 640px) {
        gap: var(--space-sm);
    }
}

.top-bar-status {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    pointer-events: auto;
    flex-shrink: 0;
}

.top-bar-controls {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    width: 100%;
    flex-wrap: wrap;
    pointer-events: auto;

    @media (max-width: 640px) {
        gap: var(--space-xs);
    }
}

.top-bar-loops {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    width: 100%;
    flex-wrap: wrap;
    pointer-events: auto;

    @media (max-width: 640px) {
        gap: var(--space-xs);
    }
}

.hud-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;

    @media (max-width: 640px) {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-xs);
    }
}

.loop-tags {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    flex-wrap: wrap;
    pointer-events: auto;
}

.neo-links-group {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    pointer-events: auto;
}

.hotkey-hints {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: var(--font-size-sm);
    color: var(--text-tertiary);
    pointer-events: auto;
    flex-wrap: wrap;

    @media (max-width: 640px) {
        gap: var(--space-2xs) var(--space-sm);
        font-size: var(--font-size-2xs);
    }
}

.neo-brand {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    pointer-events: auto;
}

.neo-title {
    font-size: var(--font-size-lg);
    font-weight: 700;
    letter-spacing: 1.5px;
}

.neo-prompt {
    color: var(--text-brand);
}

.neo-badge,
.neo-btn-stats,
.neo-link-btn,
.neo-action-btn,
.loop-tag {
    font-family: inherit;
    font-size: var(--font-size-sm);
    font-weight: 500;
    letter-spacing: 0.5px;
    padding: var(--space-2xs) var(--space-sm);
    border: 1px solid var(--border-subtle);
    background: transparent;
    color: var(--text-tertiary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    white-space: nowrap;
    transition: all 0.15s ease;
    cursor: pointer;
    pointer-events: auto;
}

.neo-badge.badge-cyan {
    border-color: var(--border-primary-subtle);
    color: var(--text-brand);
    background: var(--bg-primary-subtle);
    cursor: default;
}

.neo-badge.badge-jam {
    color: var(--text-primary);
    border-color: var(--border-strong);
}

.neo-btn-stats,
.neo-link-btn,
.neo-action-btn {
    &:hover {
        color: var(--text-brand);
        border-color: var(--border-primary);
        background: var(--bg-interactive-hover);
    }

    &.active {
        color: var(--color-primary);
        border-color: var(--border-primary);
        background: var(--bg-primary-subtle);
        box-shadow: var(--glow-primary);
    }
}

.neo-btn-stats.btn-engine {
    &.active {
        color: var(--text-success);
        border-color: var(--border-success);
        background: var(--bg-success-subtle);
        box-shadow: var(--glow-success);
    }
}

.neo-action-btn {
    font-size: var(--font-size-xs);
    padding: var(--space-2xs) var(--space-xs);

    &.active {
        color: var(--color-primary);
        border-color: var(--border-primary);
        background: var(--bg-primary-subtle);
        box-shadow: var(--glow-primary);
    }

    &.active-success {
        color: var(--text-success);
        border-color: var(--border-success);
        background: var(--bg-success-subtle);
        box-shadow: var(--glow-success);
    }

    &.active-danger {
        color: var(--text-danger);
        border-color: var(--border-danger);
        background: var(--bg-danger-subtle);
        box-shadow: var(--glow-danger);
    }
}

.loop-tag {
    text-transform: uppercase;
    color: var(--text-brand);
    border-color: var(--border-primary-subtle);
    background: var(--bg-primary-subtle);

    &:hover {
        border-color: var(--border-primary);
        background: var(--bg-interactive-hover);
    }

    &.muted {
        color: var(--text-danger);
        border-color: var(--border-danger-subtle);
        background: var(--bg-danger-subtle);
        opacity: 0.5;

        &:hover {
            opacity: 0.85;
            border-color: var(--border-danger);
        }
    }
}

.hud-by {
    font-size: var(--font-size-sm);
    color: var(--text-tertiary);
    white-space: nowrap;

    @media (max-width: 640px) {
        display: none;
    }
}

.hud-bottom-area {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: var(--space-xs);
    pointer-events: none;
}

.mobile-notice {
    pointer-events: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-xs);
    margin: 0 auto;
    max-width: 520px;
    width: 100%;
    padding: var(--space-sm) var(--space-xl);
    background: var(--bg-surface);
    border: 1px solid var(--border-primary-subtle);
    border-radius: var(--radius-sm);
    backdrop-filter: var(--blur-glass);
    font-size: var(--font-size-xs);
    color: var(--text-primary);
    box-shadow: var(--shadow-modal);
}

.mobile-notice-body {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    flex-wrap: wrap;
}

.mobile-notice-tag {
    font-family: inherit;
    font-weight: 700;
    font-size: var(--font-size-2xs);
    padding: var(--space-2xs) var(--space-sm);
    background: var(--bg-primary-tint);
    color: var(--text-brand);
    border: 1px solid var(--border-primary-subtle);
    border-radius: var(--radius-sm);
    letter-spacing: 0.5px;
    white-space: nowrap;
    flex-shrink: 0;
}

.mobile-notice-msg {
    color: var(--text-secondary);
    font-size: var(--font-size-base);
    line-height: 1.35;
}

.mobile-notice-btn {
    background: transparent;
    border: none;
    color: var(--text-tertiary);
    cursor: pointer;
    font-size: var(--font-size-lg);
    padding: var(--space-2xs) var(--space-sm);
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    transition: all 0.15s ease;

    &:hover {
        color: var(--text-brand);
        background: var(--bg-primary-subtle);
    }
}
