/* ============================
   Form Fields — premium glass styling
   ============================ */
.text-field, .select-field {
    display: block;
    height: 3rem;
    width: 100%;
    border-width: 1px;
    border-color: rgb(var(--color-muted) / 1);
    background-color: rgb(var(--color-secondary) / 0.3);
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    border-radius: 0.5rem;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.text-field:hover, .select-field:hover {
    border-color: rgb(var(--color-muted) / 1);
    background-color: rgb(var(--color-secondary) / 0.5);
}

.text-field:focus, .select-field:focus {
    border-color: rgb(var(--color-target));
    box-shadow: 0 0 0 3px rgb(var(--color-target) / 0.12);
    background-color: rgb(var(--color-secondary) / 0.5);
    outline: none;
}

.long-text-field {
    display: block;
    width: 100%;
    border-width: 1px;
    border-color: rgb(var(--color-muted) / 1);
    background-color: rgb(var(--color-secondary) / 0.3);
    padding: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    border-radius: 0.5rem;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.long-text-field:hover {
    border-color: rgb(var(--color-muted) / 1);
    background-color: rgb(var(--color-secondary) / 0.5);
}

.long-text-field:focus {
    border-color: rgb(var(--color-target));
    box-shadow: 0 0 0 3px rgb(var(--color-target) / 0.12);
    background-color: rgb(var(--color-secondary) / 0.5);
    outline: none;
}

/* ============================
   Submit Button — premium glow
   ============================ */
.submit-button {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-width: 1px;
    border-color: rgb(var(--color-muted) / 1);
    background-color: transparent;
    padding: 0.6rem 1.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    border-radius: 0.5rem;
    letter-spacing: 0.05em;
    outline: 2px solid transparent;
    outline-offset: 2px;
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.submit-button:hover:not(:disabled) {
    border-color: rgb(var(--color-target));
    background-color: rgb(var(--color-target) / 0.08);
    box-shadow: 0 0 20px rgb(var(--color-target) / 0.1);
}

.submit-button:focus {
    border-color: rgb(var(--color-target)) !important;
    box-shadow: 0 0 0 3px rgb(var(--color-target) / 0.15);
}

.submit-button[data-loading] > svg {
    display: block;
}

.submit-button[data-loading] {
    pointer-events: none;
    color: rgb(var(--color-muted));
}

/* ============================
   Form Loading State
   ============================ */
form[data-loading] > div:first-child {
    pointer-events: none;
    filter: blur(3px);
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    position: relative;
}

/* ============================
   Focus & Validation
   ============================ */
input:focus, select:focus, textarea:focus {
    outline: none;
}

input:focus:required:invalid, select:focus:required:invalid, textarea:focus:required:invalid {
    border-color: rgb(var(--color-target));
    box-shadow: 0 0 0 3px rgb(var(--color-target) / 0.12);
    outline: none;
}

/* ============================
   Autofill Override
   ============================ */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus,
textarea:-webkit-autofill, textarea:-webkit-autofill:hover, textarea:-webkit-autofill:focus,
select:-webkit-autofill, select:-webkit-autofill:hover, select:-webkit-autofill:focus {
    border: 1px solid rgb(var(--color-muted) / 0.4);
    -webkit-text-fill-color: rgb(var(--color-text));
    box-shadow: none;
    -webkit-transition: background-color 5000s ease-in-out 0s;
    transition: background-color 5000s ease-in-out 0s;
}

input:autofill, input:autofill:hover, input:autofill:focus,
textarea:autofill, textarea:autofill:hover, textarea:autofill:focus,
select:autofill, select:autofill:hover, select:autofill:focus {
    border: 1px solid rgb(var(--color-muted) / 0.4);
    -webkit-text-fill-color: rgb(var(--color-text));
    box-shadow: none;
    transition: background-color 5000s ease-in-out 0s;
}

/* ============================
   Light Theme — stronger borders
   ============================ */
[data-theme="light"] .text-field,
[data-theme="light"] .select-field,
[data-theme="light"] .long-text-field {
    border-color: rgb(var(--color-muted) / 1);
    background-color: rgb(var(--color-secondary) / 0.6);
}

[data-theme="light"] .text-field:hover,
[data-theme="light"] .select-field:hover,
[data-theme="light"] .long-text-field:hover {
    border-color: rgb(var(--color-muted) / 1);
}

[data-theme="light"] .submit-button {
    border-color: rgb(var(--color-muted) / 1);
}

[data-theme="light"] .submit-button:hover:not(:disabled) {
    border-color: rgb(var(--color-target));
}
