/**
 * Text Selection Control
 * Prevents accidental text selection on UI elements while preserving
 * selection functionality where needed (terminal, inputs, etc.)
 */

/* Prevent selection on general UI elements */
.hud-elements,
.data-panel-header,
.settings-header,
.settings-label,
.mini-map-header,
.audio-vis-header,
.darkfoo-footer,
.notification,
.key-combo-display,
.status-text {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: default;
}

/* Ensure interactive elements remain selectable */
.terminal-content,
.terminal-input,
.terminal-output,
.settings-slider,
input,
textarea,
.darkfoo-code,
.ai-response,
.ai-content {
    -webkit-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}

/* Button and control elements should not be selectable */
button,
.terminal-toggle,
.audio-toggle,
.settings-toggle,
.settings-button,
.darkfoo-login-button {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: pointer;
}

/* Prevent selection on decorative elements */
.scanline,
.noise,
.grid,
.matrix-rain,
.three-scene,
.coordinate-grid,
.digital-particles-container,
.cursor-follower,
.cursor-dot,
.cursor-ring,
.scan-circle {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    pointer-events: none;
}

/* Prevent drag on images and icons */
img,
.terminal-icon,
.darkfoo-loader-spinner {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
}

/* Special handling for code blocks - should be selectable */
.darkfoo-code-content,
.darkfoo-response-content,
pre,
code {
    -webkit-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}