/* Shared form guidance and validation styles for Blazor and MVC/LIFF views. */
.tc-form-hint,
.tc-field-error {
    display: block;
    margin-block-start: .375rem;
    font-size: .9rem;
    line-height: 1.45;
}

/* Unassociated guidance stays visible as secondary text. Linked field guidance is
   moved to the label/control title and retained for screen readers. */
.tc-form-hint {
    color: var(--bs-secondary-color, #6c757d);
}

.tc-form-hint.tc-hint-tooltip-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.tc-field-error {
    color: var(--bs-danger-text-emphasis, #b02a37);
    font-weight: 600;
}

.tc-field-error:empty {
    display: none;
}

.tc-required-indicator {
    color: var(--bs-danger, #dc3545);
    font-weight: 700;
    margin-inline-start: .125rem;
}

.form-control[aria-invalid="true"],
.form-select[aria-invalid="true"],
.form-check-input[aria-invalid="true"],
.liff-tap-select-trigger[aria-invalid="true"] {
    border-color: var(--bs-form-invalid-border-color, var(--bs-danger, #dc3545));
}

.form-control[aria-invalid="true"]:focus,
.form-select[aria-invalid="true"]:focus,
.liff-tap-select-trigger[aria-invalid="true"]:focus-visible {
    box-shadow: 0 0 0 .2rem rgba(var(--bs-danger-rgb, 220, 53, 69), .2);
}
