/* Avisos e campos compartilhados; mantém estados e tema. */
.ui-notice {
    margin: 12px 0 20px;
    padding: 12px 16px;
    border-left: 3px solid var(--moss);
    background: var(--surface-notice);
    color: var(--deep);
    font-size: 15px;
}

.ui-notice--info {
    border-color: var(--info-border);
    background: var(--info-surface);
    color: var(--info-foreground);
}

.ui-notice--success {
    border-color: var(--action-primary-bg);
    background: var(--surface-notice);
    color: var(--forest);
}

.ui-notice--warning {
    border-color: var(--gold);
    background: var(--sand);
    color: var(--deep);
}

.ui-notice--error {
    border-color: var(--action-danger-bg);
    background: var(--action-danger-bg);
    color: var(--action-danger-fg);
}

.flash-messages:empty {
    display: none;
}

.ui-field {
    display: grid;
    gap: 8px;
}

.ui-field label {
    color: var(--ink);
    font-size: 15px;
    font-weight: 600;
}

.ui-field input, .ui-control {
    width: 100%;
    max-width: 100%;
    min-height: var(--control-height);
    padding: var(--control-padding);
    border: 1px solid var(--control-border);
    border-radius: var(--radius);
    color: var(--ink);
    font: 400 var(--text-base)/1.25 var(--font-interface);
}

.ui-field input {
    background: var(--cream);
}

.ui-control {
    background: var(--white);
}

.ui-field input:disabled, .ui-control:disabled {
    opacity: 1;
    color: var(--muted);
    cursor: not-allowed;
}

.ui-control:focus-visible, .ui-field input:focus-visible {
    outline: 2px solid var(--focus-on-light);
    outline-offset: 2px;
}

[data-theme="dark"] .ui-brand:not(.ui-brand--inverse), [data-theme="dark"] .ui-field label {
    color: var(--cream);
}

@media (prefers-reduced-motion: reduce) {
    .ui-button {
        transition: none;
    }
}
