html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* Forums */

.role-admin {
    color: red;
}

.role-moderator {
    color: deepskyblue;
}

.role-user {
    color: lightgray;
}

blockquote {
    border-left: 4px solid #6c757d;
    padding: 8px 12px;
    margin: 10px 0;
    background-color: #1e1e1e;
    border-radius: 4px;
}

blockquote p {
    margin: 0;
}

.navbar .form-control, .navbar .form-select {
    background-color: #2b2f33; /* slate's tone */
    color: #ddd;
    border-color: #444;
}

.navbar .form-select option {
    background-color: #2b2f33;
    color: #ddd;
}

.search-highlight {
    color: limegreen;
    font-weight: bold;
}

.mention {
    color: #0F0;
    font-weight: 600;
    text-decoration: none;
}


/* Tabs */

/* The Tab Grid Row */
.tab-row {
    height: 35px;
}

.string-label {
    width: 30px;
    font-weight: bold;
    font-family: monospace;
    color: #666;
}

/* The Individual Tab Input */
.tab-cell {
    width: 40px;
    height: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #444; /* The String Line */
    color: #eee;
    text-align: center;
    font-family: 'Courier New', Courier, monospace;
    font-size: 1.1rem;
    outline: none;
}

    .tab-cell:focus {
        background: rgba(255, 255, 255, 0.05);
        border-bottom: 2px solid #007bff;
        color: #fff;
    }

/* Horizontal scrollbar styling for dark mode */
#tab-grid-container::-webkit-scrollbar {
    height: 8px;
}

#tab-grid-container::-webkit-scrollbar-thumb {
    background: #444;
    border-radius: 4px;
}

/* This class will be added to the inputs in a specific column */
.bar-line {
    border-right: 4px solid #fff !important; /* Thick white line */
    margin-right: 10px !important; /* Create a little gap after the bar */
}

/* Styling for palm-muted cells */
.palm-mute {
    background: rgba(255, 255, 0, 0.1) !important; /* Slight yellow tint */
    border-bottom: 2px dotted #ffc107 !important; /* Dotted yellow line */
}

/* The "Matrix" Tab Style */
.tab-ascii-view {
    width: 100%;
    min-height: 210px;
    height: auto;
    background: #111;
    color: #00ff00;
    border: 1px solid #444;
    padding: 15px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 16px;
    line-height: 1.5;
    white-space: pre;
    overflow-x: auto;
    overflow-y: hidden;
}

/* Make it look less like an "input" when just viewing a post */
.tab-ascii-view:read-only {
    outline: none;
    cursor: default;
}

/* AI CHATBOT*/

/* Target our specific user input field when it gains focus */
#user-input:focus {
    border-color: #6c757d; /* Changes the border to a neutral gray instead of blue */
    box-shadow: none; /* Removes the glowing blue highlight completely */
    outline: 0; /* Prevents default browser focus rings */
}

#send-btn:focus {
    border-color: #6c757d; 
    box-shadow: none; 
    outline: 0; 
} 

/* Container for the typing dots */
.typing-loader {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 4px;
}

    /* The individual dots */
    .typing-loader span {
        width: 6px;
        height: 6px;
        background-color: #ffc107; /* Matches your text-warning color */
        border-radius: 50%;
        display: inline-block;
        animation: typingBlink 1.4s infinite both;
    }

        /* Delaying the animation for each dot to create a wave effect */
        .typing-loader span:nth-child(2) {
            animation-delay: 0.2s;
        }

        .typing-loader span:nth-child(3) {
            animation-delay: 0.4s;
        }

/* The animation keyframes */
@keyframes typingBlink {
    0% {
        opacity: .2;
        transform: scale(0.8);
    }

    20% {
        opacity: 1;
        transform: scale(1.2);
    }

    100% {
        opacity: .2;
        transform: scale(0.8);
    }
}