@layer fc.components {
.fc-field {
display: flex;
flex-direction: column;
gap: var(--fc-space-1-5);
min-inline-size: 0;
}
.fc-field__label {
font-size: var(--fc-font-size-sm);
font-weight: var(--fc-font-weight-medium);
color: var(--fc-color-text-default);
}
.fc-field__required {
color: var(--fc-color-danger-text);
margin-inline-start: var(--fc-space-0-5);
}
.fc-field__optional {
color: var(--fc-color-text-muted);
font-weight: var(--fc-font-weight-regular);
margin-inline-start: var(--fc-space-1);
}
.fc-field__hint {
margin: 0;
font-size: var(--fc-font-size-sm);
color: var(--fc-color-text-muted);
}
.fc-field__error {
margin: 0;
display: flex;
gap: var(--fc-space-1);
align-items: baseline;
font-size: var(--fc-font-size-sm);
font-weight: var(--fc-font-weight-medium);
color: var(--fc-color-danger-text);
}
.fc-field__error::before {
content: "\26A0\FE0E" / "";
}
.fc-field__error:empty {
display: none;
}
.fc-input {
display: block;
inline-size: 100%;
min-block-size: var(--fc-size-target-comfortable);
padding-block: var(--fc-space-1-5);
padding-inline: var(--fc-space-3);
background-color: var(--fc-color-bg-surface);
color: var(--fc-color-text-default);
border: var(--fc-border-width-control, var(--fc-border-width-thin)) solid var(--fc-color-border-interactive);
border-radius: var(--fc-radius-lg);
font-family: inherit;
font-size: var(--fc-font-size-md);
line-height: var(--fc-line-height-normal);
transition:
border-color var(--fc-duration-fast) var(--fc-easing-standard),
box-shadow var(--fc-duration-fast) var(--fc-easing-standard),
background-color var(--fc-duration-fast) var(--fc-easing-standard);
}
.fc-input:hover {
border-color: color-mix(in oklab, var(--fc-color-border-interactive), var(--fc-color-text-default) 40%);
}
.fc-input:focus-visible {
border-color: var(--fc-color-accent-border);
outline-offset: 0;
box-shadow: 0 0 0 calc(var(--fc-border-width-focus) + var(--fc-space-1)) var(--fc-color-accent-bg-subtle);
}
.fc-input::placeholder {
color: var(--fc-color-text-subtle);
opacity: 1;
}
.fc-input[aria-invalid="true"],
.fc-input:user-invalid {
border-color: var(--fc-color-danger-border);
}
.fc-input[aria-invalid="true"]:focus-visible,
.fc-input:user-invalid:focus-visible {
outline-color: var(--fc-color-danger-border);
box-shadow: 0 0 0 calc(var(--fc-border-width-focus) + var(--fc-space-1)) var(--fc-color-danger-bg-subtle);
}
.fc-input:disabled {
background-color: var(--fc-color-disabled-bg);
color: var(--fc-color-disabled-fg);
border-color: var(--fc-color-border-default);
cursor: not-allowed;
}
.fc-input:read-only:not(select) {
background-color: var(--fc-color-bg-subtle);
border-color: var(--fc-color-border-default);
}
.fc-input--sm {
min-block-size: 2rem;
padding-block: var(--fc-space-1);
padding-inline: var(--fc-space-2);
font-size: var(--fc-font-size-sm);
border-radius: var(--fc-radius-md);
}
.fc-input--lg {
min-block-size: 3rem;
padding-inline: var(--fc-space-4);
font-size: var(--fc-font-size-lg);
}
:where(textarea).fc-input {
min-block-size: 5lh;
resize: vertical;
}
.fc-input--autosize {
field-sizing: content;
min-block-size: 3lh;
max-block-size: 16lh;
}
.fc-input--filled {
background-color: var(--fc-color-bg-subtle);
border-color: transparent;
border-block-end-color: var(--fc-color-border-interactive);
border-end-start-radius: 0;
border-end-end-radius: 0;
}
.fc-input--filled:hover:not([aria-invalid="true"], :user-invalid, :disabled) {
background-color: var(--fc-color-bg-muted);
border-color: transparent;
border-block-end-color: var(--fc-color-text-default);
}
.fc-input--filled:focus-visible:not([aria-invalid="true"], :user-invalid) {
border-block-end-color: var(--fc-color-accent-border);
}
.fc-input::-webkit-calendar-picker-indicator {
cursor: pointer;
opacity: 0.7;
}
.fc-input::-webkit-calendar-picker-indicator:hover {
opacity: 1;
}
select.fc-input {
appearance: none;
padding-inline-end: var(--fc-space-8);
background-image:
linear-gradient(45deg, transparent 50%, currentColor 50%),
linear-gradient(135deg, currentColor 50%, transparent 50%);
background-size: 0.3125rem 0.3125rem, 0.3125rem 0.3125rem;
background-repeat: no-repeat;
background-position:
calc(100% - 1.125rem) 50%,
calc(100% - 0.8125rem) 50%;
cursor: pointer;
}
select.fc-input:dir(rtl) {
background-position:
0.8125rem 50%,
1.125rem 50%;
}
.fc-input-group {
display: flex;
align-items: stretch;
min-block-size: var(--fc-size-target-comfortable);
background-color: var(--fc-color-bg-surface);
border: var(--fc-border-width-thin) solid var(--fc-color-border-interactive);
border-radius: var(--fc-radius-lg);
overflow: clip;
transition:
border-color var(--fc-duration-fast) var(--fc-easing-standard),
box-shadow var(--fc-duration-fast) var(--fc-easing-standard);
}
.fc-input-group:hover {
border-color: color-mix(in oklab, var(--fc-color-border-interactive), var(--fc-color-text-default) 40%);
}
.fc-input-group:focus-within {
border-color: var(--fc-color-accent-border);
box-shadow: 0 0 0 var(--fc-space-1) var(--fc-color-accent-bg-subtle);
}
.fc-input-group:has([aria-invalid="true"], :user-invalid) {
border-color: var(--fc-color-danger-border);
}
.fc-input-group:has(:disabled) {
background-color: var(--fc-color-disabled-bg);
border-color: var(--fc-color-border-default);
}
.fc-input-group__control {
flex: 1;
min-inline-size: 0;
padding-block: var(--fc-space-1-5);
padding-inline: var(--fc-space-3);
background-color: transparent;
color: var(--fc-color-text-default);
border: 0;
border-radius: 0;
font: inherit;
font-size: var(--fc-font-size-md);
}
.fc-input-group__control:focus-visible {
outline-offset: calc(var(--fc-border-width-focus) * -1);
box-shadow: none;
}
.fc-input-group__addon {
display: flex;
align-items: center;
padding-inline: var(--fc-space-3);
color: var(--fc-color-text-muted);
background-color: var(--fc-color-bg-subtle);
font-size: var(--fc-font-size-sm);
white-space: nowrap;
}
.fc-error-summary {
display: flex;
flex-direction: column;
gap: var(--fc-space-2);
padding: var(--fc-space-4);
background-color: var(--fc-color-danger-bg-subtle);
color: var(--fc-color-danger-text);
border: var(--fc-border-width-thin) solid var(--fc-color-danger-border);
border-inline-start-width: var(--fc-space-1);
border-radius: var(--fc-radius-lg);
}
.fc-error-summary__title {
margin: 0;
font-size: var(--fc-font-size-md);
font-weight: var(--fc-font-weight-semibold);
}
.fc-error-summary__list {
margin: 0;
display: flex;
flex-direction: column;
gap: var(--fc-space-1);
padding-inline-start: var(--fc-space-5);
list-style: disc;
}
.fc-error-summary__link {
color: inherit;
text-decoration: underline;
text-underline-offset: 0.15em;
}
@media (forced-colors: active) {
.fc-input,
.fc-input-group {
border-color: FieldText;
}
.fc-input[aria-invalid="true"],
.fc-input:user-invalid,
.fc-input-group:has([aria-invalid="true"], :user-invalid) {
border-width: var(--fc-border-width-thick);
}
.fc-input:disabled {
border-color: GrayText;
color: GrayText;
}
.fc-error-summary {
border-color: CanvasText;
}
}
}