.ask-input {
    font-size: var(--font-size-large);
    color: var(--color-text);
    background: transparent;
    border: none;
    width: 100%;
    padding: 0;
    margin-bottom: 4rem;
    font-family: inherit;
    transition: opacity 0.3s ease;
}

.ask-input:focus {
    outline: none;
}

.ask-input::placeholder {
    color: var(--color-text-muted);
}

.ask {
    transition: opacity 0.3s ease;
}

/* Theme-specific input styles */
.plaintext .ask-input {
    font-family: 'Courier New', monospace;
}

.plaintext .ask-input::before {
    content: "> ";
}

.theme-bsod .ask-input {
    font-family: 'VT323', monospace;
}

.loading-dots {
    display: inline-block;
}

.loading-dots:after {
    content: '.';
    animation: dots 1.5s steps(5, end) infinite;
}

@keyframes dots {
    0%, 20% { content: '.'; }
    40% { content: '..'; }
    60% { content: '...'; }
    80%, 100% { content: ''; }
}

.response-container {
    position: relative;
    width: 100%;
}

.response-text {
    min-font-size: 20px;
    width: 100%;
    word-wrap: break-word;
    overflow-y: hidden;
    transition: font-size 0.05s ease; /* Quick, subtle transition */
}

.clear-response-wrapper {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(var(--color-text-rgb), 0.5);
    display: flex;
    justify-content: flex-start;
}

.clear-response {
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px 8px 8px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.clear-response svg {
    width: 24px;
    height: 24px;
    color: var(--color-text);
    opacity: 0.5;
}

.clear-response .clear-text {
    color: var(--color-text);
    opacity: 0.25;
    font-size: 16px;
}

.clear-response:hover svg,
.clear-response:hover .clear-text {
    opacity: 1;
}