/* Scoped utilities for the shared Tailwind-style upload control. */
input[type="file"].sk-file-input {
    display: block !important;
    position: relative !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    min-height: 44px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
    background: var(--color-neutral-secondary-medium, #f3f4f6);
    border: 1px solid var(--color-default-medium, #d1d5db) !important;
    border-radius: var(--radius-base, 0.5rem);
    color: var(--color-heading, #111827);
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.05);
}

input[type="file"].sk-file-input::file-selector-button {
    margin-inline-end: 1rem;
    padding: 0.75rem 1rem;
    cursor: pointer;
    background: var(--color-neutral-tertiary-medium, #e5e7eb);
    border: 0;
    border-inline-end: 1px solid var(--color-default-medium, #d1d5db);
    color: inherit;
    font: inherit;
    font-weight: 500;
}

input[type="file"].sk-file-input:hover:not(:disabled)::file-selector-button {
    background: var(--color-neutral-tertiary, #d1d5db);
}

input[type="file"].sk-file-input:focus {
    border-color: var(--theme-color, var(--primary-color, #2563eb)) !important;
    outline: 2px solid var(--theme-color, var(--primary-color, #2563eb));
    outline-offset: 2px;
}

input[type="file"].sk-file-input:disabled,
input[type="file"].sk-file-input:disabled::file-selector-button {
    cursor: not-allowed;
    opacity: 0.6 !important;
}

.input-group > input[type="file"].sk-file-input {
    flex: none;
    margin: 0;
    border-radius: var(--radius-base, 0.5rem);
}

label.sk-file-input-label {
    display: block;
    margin-block-end: 0.625rem;
    color: var(--color-heading, #111827);
    font-size: 0.875rem;
    font-weight: 500;
}

.sk-file-input-help {
    display: block;
    flex-basis: 100%;
    width: 100%;
    margin: 0.25rem 0 0;
    color: var(--color-body, #6b7280);
    font-size: 0.875rem;
    line-height: 1.5;
}

.sk-file-input-legacy {
    display: none !important;
}

/* Public admission forms previously rendered a second Browse control. */
.file-upload .file-select.sk-file-input-container {
    display: block;
    height: auto;
    padding: 0;
    background: transparent;
    border: 0;
}

.dark input[type="file"].sk-file-input,
[data-theme="dark"] input[type="file"].sk-file-input {
    background: var(--color-neutral-secondary-medium, #374151);
    border-color: var(--color-default-medium, #4b5563) !important;
    color: var(--color-heading, #f9fafb);
}

.dark input[type="file"].sk-file-input::file-selector-button,
[data-theme="dark"] input[type="file"].sk-file-input::file-selector-button {
    background: var(--color-neutral-tertiary-medium, #4b5563);
    border-color: var(--color-default-medium, #6b7280);
}

.dark label.sk-file-input-label,
[data-theme="dark"] label.sk-file-input-label {
    color: var(--color-heading, #f9fafb);
}

.dark input[type="file"].sk-file-input:hover:not(:disabled)::file-selector-button,
[data-theme="dark"] input[type="file"].sk-file-input:hover:not(:disabled)::file-selector-button {
    background: var(--color-neutral-tertiary, #6b7280);
}

.dark .sk-file-input-help,
[data-theme="dark"] .sk-file-input-help {
    color: var(--color-body, #d1d5db);
}

input[type="file"].sk-file-input[aria-invalid="true"],
.has-danger input[type="file"].sk-file-input {
    border-color: #dc2626 !important;
}
