/* buttons general */
button {
    font-family: var(--font-display);
    border-radius: var(--radius-sm);
    padding: 0.3rem 0.75rem;
    cursor: pointer;
    border: none;
    transition: 0.15s, transform 0.1s ease;
}



button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
button,
.btn-toggle {
    transition: 0.15s, transform 0.1s ease;
}
.btn-toggle.hidden{
    display: none;
}
button:active,
.btn-toggle:active {
    transform: scale(0.96);
}

/* variants */
.btn-primary {
    background-color: var(--c-teal);
    border-color: var(--c-teal);
    color: white;
}
.btn-primary:hover,
.btn-primary:focus {
    background-color: #024a50;
    border-color: #024a50;
}

/* neutral/outline pill style — used for modality + mode selection */
.btn-toggle,
#clear-btn {
    border: 1px solid var(--c-border);
    background: white;
    color: var(--c-text);
    font-size: 0.85rem;
    font-weight: 300;
}

.btn-toggle:hover,
#clear-btn:hover {
    border-color: var(--c-green);
    color: var(--c-teal);
    background: var(--c-bg-sunken);
}

.btn-toggle.active {
    background: var(--c-teal);
    border-color: var(--c-teal);
    color: white;
}

.btn-toggle:focus,
.btn-toggle.active:focus {
    box-shadow: none !important;
}

.btn-toggle:disabled {
    background: #f0f0f0;
    color: #999;
    border-color: #ccc;
}

/* button for additional information accesses such as the "which model should i use?" hyperlink etc */
.btn-information{
    padding-bottom: 4px;
    margin-bottom: 5px;
    /*border: 1px solid var(--c-border);*/
    background: transparent;
    color: var(--c-text-muted);
    font-size: 0.85rem;
    font-weight: 300;
    font-style: italic;
}

/* accent/filled style */
.btn-accent,
#download-all-btn {
    background-color: var(--c-purple);
    color: white;
    border: 0;
    font-weight: 500;
    font-size: 0.85rem;
}

.btn-accent:hover,
.btn-accent.active,
#download-all-btn:hover {
    background-color: #6f3ce0;
}

/* subtle/text-only style (show-text, download row buttons) */
.show-text-btn,
#download-btn {
    background: transparent;
    border: 0;
    color: var(--c-text-muted);
    font-size: 0.82rem;
}

.show-text-btn:hover,
#download-btn:hover {
    color: var(--c-teal);
}

/* input mode segmented control */
.input-method-btn {
    background: transparent;
    border: 1px solid var(--c-border);
    color: var(--c-text-muted);
    font-size: 0.82rem;
    font-weight: 500;
    padding: 0.35rem 0.85rem;
}

.input-method-btn.active {
    background: var(--c-teal);
    border-color: var(--c-teal);
    color: white;
}
.input-method-btn.hidden {
    display: none;
}
/* specific buttons */
.btn-group-toggle {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

button[data-bs-toggle="collapse"] {
    position: relative;
}

#folder-mode-checkbox {
    width: 100%;
    display: block;
    margin-top: 0.5rem;
}

#modality-group {
    margin-bottom: 0.5rem !important;
}

#clear-btn {
    align-self: center;
    z-index: 11;
    font-weight: 500;
}

#download-all-btn {
    align-self: flex-end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 176px;
    margin-bottom: 0.5rem;
}
#download-all-btn:disabled {
    display: none;
}

.output-buttons {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.6rem 0.9rem;
    color: var(--c-teal);
    font-weight: 600;
    background: transparent;
    text-align: left;
}

/* process button — the one deliberately bold moment on the page */
#process-btn {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: none;
    min-width: 0;
    height: 52px;
    padding: 0 2rem;
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    letter-spacing: 0.01em;
    border: none;
    border-radius: var(--radius-md) !important;
    background: var(--c-teal);
    color: white;
    transition: background 150ms ease, transform 100ms ease;
}

#process-btn:hover:not(:disabled) {
    background: linear-gradient(90deg, var(--c-green) 0%, var(--c-green-bright) 100%);
    color: var(--c-teal);
}

#process-btn:disabled {
    background: #cfd8d6;
    box-shadow: none;
    cursor: not-allowed;
}

/* side bar "pin" button that keeps settings open */

/* Floating pin button */
.sidebar-pin-floating {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background: transparent;
    border: none;
    cursor: pointer;
    color: #999999;
    padding: 0.25rem;
    z-index: 10; /* Ensure it's above tabs */
    border-radius: var(--radius-sm);
}

.sidebar-pin-floating:hover {
    color: var(--c-teal);
    background: var(--c-bg-sunken);
}

.sidebar-pin-floating.pinned {
    color: var(--c-teal);
}


/* little delete button for files */

.tiny-button{
    background: none;
    border: none;
    color: #c38069;
    cursor: pointer;
    margin-left: 5px;
    padding: 0 5px;
}
.tiny-button:hover {
    text-decoration: underline;

}


/* the checkbox overwrite */
.form-check-input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.form-check label.btn-toggle {
    display: block;

    box-sizing: border-box;

    width: 100%;
    margin: 8px 0 0 0;

    padding: 4.8px 12px;

    border: 1px solid var(--c-border);
    border-radius: 6.4px;

    background: white;
    color: var(--c-text);

    font-family: var(--font-display);
    font-size: 13.6px;
    font-weight: 300;
    line-height: normal;

    text-align: left;
    cursor: pointer;
}
.form-check label.btn-toggle:active {
    transform: scale(0.96);
}

.form-check-input[type="checkbox"]:checked + label.btn-toggle {
    background: var(--c-teal);
    border-color: var(--c-teal);
    color: white;
}

.form-check-input[type="checkbox"]:focus + label.btn-toggle {
    box-shadow: none;
}

.form-check-input[type="checkbox"]:disabled + label.btn-toggle {
    background: #f0f0f0;
    color: #999;
    border-color: #ccc;
    cursor: not-allowed;
}

/* dependency-based field visibility */
.field-wrapper.field-hidden {
    display: none;
}
