/* Shared form controls and feedback for Tradia and Orion. Keep both copies identical.
   Opt in ordinary form footers with .tradia-form-actions; toolbars/inline controls stay local. */
:root { --form-border:#aebdc3; --form-focus-fill:#fff; --form-error:#c51d2a; --form-label:#71858d; }
.tradia-form-actions.tradia-form-actions {
    display:flex; align-items:center; flex-wrap:wrap; gap:10px;
    width:100%; grid-column:1 / -1; margin:18px 0 0; padding:0; box-sizing:border-box;
}
.tradia-form-actions > * { order:1; }
.tradia-form-actions > .button-red { order:0; }
.tradia-form-actions > .button-gray { order:1; }
.tradia-form-actions > .button-blue { order:2; margin-inline-start:auto; }
.tradia-form-actions > .button-green { order:3; }
.tradia-form-actions > .button-blue ~ .button-blue { margin-inline-start:0; }
.tradia-form-actions:not(:has(> .button-blue)) > .button-green { margin-inline-start:auto; }
.tradia-form-actions:not(:has(> .button-blue)) > .button-green ~ .button-green { margin-inline-start:0; }
.tradia-form-actions > :is(button,a) { width:auto; min-width:0; max-width:100%; margin-top:0; }
.tradia-form-actions.tradia-form-actions > .tradia-auth-submit { width:auto; margin-top:0; }
.tradia-form-feedback, .tradia-form-validation {
    grid-column:1 / -1; width:100%; margin:8px 0 0; text-align:center;
}
:is(.tradia-form-feedback,.tradia-form-validation):not(:has(.validation-errors li,.validation-message,.tradia-status,.tradia-form-error,.tradia-form-notice)) { display:none; }
body :is(.tradia-form-feedback,.tradia-form-validation) :is(.validation-errors,.tradia-status-error,.tradia-form-error),
body .tradia-field-feedback.tradia-field-feedback, body .validation-message.validation-message {
    color:var(--form-error); font-size:13px; font-weight:600; line-height:1.4;
    background:none; border:0; border-radius:0; box-shadow:none; padding:0;
}
body :is(.tradia-form-feedback,.tradia-form-validation) :is(.validation-errors,.tradia-form-error,.tradia-status) { text-align:center; margin:0; }
body :is(.tradia-form-feedback,.tradia-form-validation) .validation-errors { list-style:none; }
body :is(.tradia-form-feedback,.tradia-form-validation) .validation-errors li { margin:3px 0; }
body .tradia-field-feedback.tradia-field-feedback, body .validation-message.validation-message { text-align:start; margin:5px 0 0; }
body .tradia-field-feedback .validation-errors { text-align:start; list-style:none; padding:0; margin:0; }
body .tradia-form-feedback .tradia-status-success { color:#007700; background:none; border:0; padding:0; }
.tradia-floating-field.tradia-floating-field { position:relative; min-width:0; margin-top:16px; }
:is(.fields,.tradia-form-fields,.tradia-delivery-fields,.tradia-form-grid) > .tradia-floating-field { margin-top:8px; }
body .tradia-floating-field :is(input,textarea).tradia-auth-input {
    display:block; box-sizing:border-box; width:100%; height:30px; min-height:30px;
    padding:6px 28px 3px 10px; border:1px solid var(--form-border); border-radius:4px;
    background:#fff; color:#263238; font:inherit; font-size:13px; outline:none;
    transition:border-color .15s,box-shadow .15s;
}
body .tradia-floating-field textarea.tradia-auth-input { height:auto; min-height:84px; padding-top:9px; resize:vertical; }
body .tradia-floating-field > label {
    position:absolute; display:block; left:10px; top:15px; transform:translateY(-50%);
    padding:0 3px; margin:0; max-width:calc(100% - 20px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    font-size:13px; font-weight:400; font-style:italic; color:var(--form-label); background:#fff;
    pointer-events:none; transition:top .15s,font-size .15s;
}
body .tradia-floating-field:focus-within > label,
body .tradia-floating-field:has(:is(input,textarea):not(:placeholder-shown)) > label,
body .tradia-floating-field:has(input:autofill) > label,
body .tradia-floating-field:has(input:-webkit-autofill) > label {
    top:0; font-size:11px; font-style:normal; color:var(--form-label);
}
body .tradia-floating-field :is(input,textarea).tradia-auth-input:is(.invalid,[aria-invalid="true"]) {
    border-color:var(--form-border); outline:none; box-shadow:none;
}
body .tradia-floating-field :is(input,textarea).tradia-auth-input:focus {
    border-color:var(--form-border); outline:none; box-shadow:none; background:var(--form-focus-fill);
}
body .tradia-floating-field:has(:is(input,textarea):is(.invalid,[aria-invalid="true"]))::after {
    content:""; position:absolute; right:8px; top:15px; transform:translateY(-50%);
    width:10px; height:12px; pointer-events:none;
    background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M5 1v10M1 3.5l8 5M1 8.5l8-5' fill='none' stroke='%23ed1c2b' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
}
body .tradia-floating-field :is(input,textarea):disabled { background:#f5f7f8; color:#52666e; }
.tradia-floating-field:has(:disabled) > label { background:#f5f7f8; }
.tradia-form-footer { grid-column:1 / -1; width:100%; }
.tradia-form-footer:has(.tradia-form-feedback:empty) { margin-top:0; }

body .tradia-floating-field input.tradia-auth-input.valid { outline:none; }
:is(.toolbar,.tradia-cart-order-inputs) > .tradia-floating-field { flex:1 1 240px; }

/* Registration is the reference layout: compact fields and one summary below. */
body .tradia-form .tradia-floating-field { margin-top:0; }
body :is(.tradia-form-feedback,.tradia-form-validation) :is(ul,li) {
    text-align:center; list-style:none; padding:0;
    color:var(--form-error); font-size:13px; font-weight:600; line-height:1.4;
}
body .tradia-field-feedback { color:var(--form-error); font-size:13px; font-weight:600; line-height:1.4; margin:5px 0 0; }

/* Blazor also assigns validation-message to summary list items.
   Summary rows must override the left-aligned individual-field rule. */
body :is(.tradia-form-feedback,.tradia-form-validation) .validation-message.validation-message {
    text-align:center;
}

