/*
 * UAT Portal - tema condiviso
 * ML28.5 RC Polish
 *
 * Questo file contiene esclusivamente palette, token e regole trasversali.
 * I componenti e i layout specifici restano in app.css.
 */
:root {
    color-scheme: dark;

    --uat-bg: #07111f;
    --uat-surface: #0d1a2b;
    --uat-surface-2: #10233a;
    --uat-surface-3: #132a45;
    --uat-input-bg: #0b1829;
    --uat-input-bg-hover: #0d1d31;
    --uat-input-bg-disabled: #091321;

    --uat-border: #243a55;
    --uat-border-strong: #315174;
    --uat-border-focus: #63b3ff;

    --uat-text: #f8fafc;
    --uat-text-soft: #d7e0eb;
    --uat-text-muted: #98abc1;
    --uat-placeholder: #91a8c2;
    --uat-disabled-text: #71849a;

    --uat-primary: #2f80ed;
    --uat-primary-strong: #1769d2;
    --uat-success: #34d17b;
    --uat-warning: #f6c344;
    --uat-danger: #ff5d5d;
    --uat-info: #63b3ff;
    --uat-purple: #a970ff;

    --uat-radius-sm: .65rem;
    --uat-radius: 1rem;
    --uat-radius-lg: 1.25rem;
    --uat-focus-ring: 0 0 0 .2rem rgba(99, 179, 255, .18);
    --uat-shadow: 0 18px 45px rgba(0, 0, 0, .28);

    --uat-scrollbar-track: rgba(4, 16, 31, .38);
    --uat-scrollbar-thumb: rgba(88, 169, 229, .48);
    --uat-scrollbar-thumb-hover: rgba(108, 189, 249, .72);
}

/* Form controls: contrasto uniforme nel tema scuro. */
.form-control,
.form-select,
.form-control-plaintext,
.input-group-text {
    color: var(--uat-text);
}

.form-control::placeholder,
textarea.form-control::placeholder,
input.form-control::placeholder,
input[type="search"]::placeholder,
input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="password"]::placeholder,
input[type="url"]::placeholder,
input[type="tel"]::placeholder,
input[type="number"]::placeholder {
    color: var(--uat-placeholder) !important;
    opacity: 1;
}

.form-control::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
input::-webkit-input-placeholder {
    color: var(--uat-placeholder) !important;
    opacity: 1;
}

.form-control::-moz-placeholder,
textarea::-moz-placeholder,
input::-moz-placeholder {
    color: var(--uat-placeholder) !important;
    opacity: 1;
}

.form-control:disabled,
.form-select:disabled,
.form-control[readonly],
.form-control[aria-readonly="true"] {
    color: var(--uat-disabled-text);
    background-color: var(--uat-input-bg-disabled);
    border-color: var(--uat-border);
    opacity: 1;
    cursor: not-allowed;
}

.form-control-plaintext {
    background: transparent;
    color: var(--uat-text-soft);
}

.form-select option,
.form-select optgroup {
    color: var(--uat-text);
    background-color: var(--uat-input-bg);
}

.input-group-text {
    border-color: var(--uat-border-strong);
    background-color: var(--uat-surface-2);
}

/* Focus visibile e coerente per tastiera e mouse. */
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus-visible,
a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
    outline: 0;
    border-color: var(--uat-border-focus);
    box-shadow: var(--uat-focus-ring);
}

.form-check-input {
    border-color: var(--uat-border-strong);
    background-color: var(--uat-input-bg);
}

.form-check-input:checked {
    border-color: var(--uat-primary);
    background-color: var(--uat-primary);
}

/* Bootstrap surfaces nel tema scuro. */
.dropdown-menu,
.modal-content,
.offcanvas,
.popover,
.toast {
    color: var(--uat-text);
    border-color: var(--uat-border);
    background-color: var(--uat-surface);
}

.dropdown-item {
    color: var(--uat-text-soft);
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active,
.dropdown-item:active {
    color: var(--uat-text);
    background-color: rgba(99, 179, 255, .12);
}

.dropdown-divider,
.modal-header,
.modal-footer {
    border-color: var(--uat-border);
}

.btn-close {
    filter: invert(1) grayscale(100%) brightness(180%);
}

/* Testi di supporto e validazione. */
.form-text,
.text-body-secondary {
    color: var(--uat-text-muted) !important;
}

.invalid-feedback { color: #ff9292; }
.valid-feedback { color: #69e7a5; }

/* Tabelle: leggibilità e focus dei link/controlli. */
.table {
    --bs-table-color: var(--uat-text-soft);
    --bs-table-border-color: var(--uat-border);
    vertical-align: middle;
}

.table thead th {
    color: var(--uat-text);
}

.table-responsive {
    scrollbar-color: var(--uat-scrollbar-thumb) var(--uat-scrollbar-track);
}

/* Scrollbar globale coerente, mantenendo il comportamento nativo. */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--uat-scrollbar-thumb) var(--uat-scrollbar-track);
}

*::-webkit-scrollbar { width: .68rem; height: .68rem; }
*::-webkit-scrollbar-track { background: var(--uat-scrollbar-track); }
*::-webkit-scrollbar-thumb {
    min-height: 2rem;
    border: 2px solid var(--uat-scrollbar-track);
    border-radius: 999px;
    background: var(--uat-scrollbar-thumb);
}
*::-webkit-scrollbar-thumb:hover { background: var(--uat-scrollbar-thumb-hover); }

::selection {
    color: #fff;
    background: rgba(47, 128, 237, .58);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
