/* =============================================================================
   Rebranding TronShop -> Codewaru (panel.codewaru.it)
   Palette da codewaru.it: arancio #E55B00, sfondo scuro #121212, crema #FCFBF8
   ============================================================================= */

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");

:root {
    --cw-primary:       #E55B00;
    --cw-primary-dark:  #C44E00;
    --cw-primary-soft:  #FFBC7D;
    --cw-header-bg:     #121212;
    --cw-sidebar-bg:    #181817;
    --cw-surface:       #FCFBF8;
    --cw-surface-2:     #F6F4F1;
    --cw-border:        #DDDBD8;
    --cw-text:          #414141;
    --cw-text-muted:    #7A7A7A;
    --cw-success:       #2E9B5E;
    --cw-logo:          url("/__brand/logo.webp");
    --cw-logo-sm:       url("/__brand/logo.webp");

    /* Bootstrap / upstream vars -> palette Codewaru */
    --blue:             #E55B00;
    --indigo:           #C44E00;
    --purple:           #C44E00;
    --pink:             #E55B00;
    --red:              #D63B2C;
    --orange:           #E55B00;
    --yellow:           #FFBC7D;
    --green:            #2E9B5E;
    --teal:             #E55B00;
    --cyan:             #E55B00;
    --primary:          #E55B00;
    --success:          #2E9B5E;
    --info:             #E55B00;
    --warning:          #FFBC7D;
}

/* --- Tipografia generale --------------------------------------------------- */
body,
app,
.br-layout,
.br-content,
input,
button,
select,
textarea {
    font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

/* --- 1. Logo sidebar (ex CodeShop simply sell) ----------------------------- */
.br-logo::before {
    background-image: var(--cw-logo) !important;
    background-repeat: no-repeat !important;
    background-position: center left !important;
    background-size: contain !important;
    filter: none !important;
}

/* --- 2. Logo header (ex PromoTron) --------------------------------------- */
.br-header-promotron img.promotron-logo-custom,
.br-header-promotron img,
img.promotron-logo-custom,
img[src*="promotron_logo"],
img[src*="promotron-logo"],
img[src*="tronlogo"],
img[src*="tron_logo"],
img[alt*="PromoTron"],
img[alt*="CodeShop"],
img[alt*="Code"] {
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
}

.br-header-promotron {
    background-image: var(--cw-logo-sm) !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    min-width: 170px;
    min-height: 42px;
}

/* --- 3. Header / top bar --------------------------------------------------- */
.br-header,
.br-topbar,
.page-topbar,
.navbar,
header.br-header {
    background: var(--cw-header-bg) !important;
    background-color: var(--cw-header-bg) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18) !important;
}

/* --- 4. Sidebar ---------------------------------------------------------- */
.br-sidebar,
.sidebar,
.page-sidebar,
.br-left-sidebar {
    background: var(--cw-sidebar-bg) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.br-sidebar .br-logo,
.br-sidebar .logo {
    background: transparent !important;
}

/* --- 5. Area contenuto / sfondo pagina ----------------------------------- */
.br-layout,
.br-content,
.page-content,
.main-content,
body {
    background-color: var(--cw-surface) !important;
    color: var(--cw-text) !important;
}

/* --- 6. Bottoni primari (verde CodeShop -> arancio Codewaru) -------------- */
.btn-primary,
.bg-primary,
.badge-primary,
.nav-pills .nav-link.active,
.pagination .page-item.active .page-link,
.mat-mdc-raised-button.mat-primary,
button.btn-success,
.btn-success {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-success:hover,
.btn-success:focus,
.bg-primary:hover {
    background-color: var(--cw-primary-dark) !important;
    border-color: var(--cw-primary-dark) !important;
}

/* --- 7. Link e accenti testuali ------------------------------------------ */
.text-primary,
.link-primary,
.themed-link,
.primary-link,
.blue-link,
.dx-link,
.link.active,
.nav-pills .nav-link.active,
.menu-item.active > a,
.br-menu-link.active .br-menu-item,
.br-menu-sub .nav-link.active {
    color: var(--cw-primary) !important;
}

.br-content a:not(.btn):not(.br-menu-link):not(.nav-link):not(.dx-link),
.dashboard-content-wrapper a:not(.btn) {
    color: var(--cw-primary) !important;
    font-weight: 500;
    text-decoration: none;
}

.br-content a:not(.btn):not(.br-menu-link):hover,
.dashboard-content-wrapper a:not(.btn):hover {
    color: var(--cw-primary-dark) !important;
    text-decoration: underline;
}

/* --- 8. Loading screen iniziale (PromoTron spinner) ----------------------- */
#placeholder,
.pg-loading-screen,
.pg-loading {
    background-color: var(--cw-header-bg) !important;
}

.promotron-image,
img.promotron-image,
.promotron-link,
img[src*="promotron_logo"],
img[src*="assets/promotron"] {
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
}

#placeholder::before,
.pg-loading-screen::before,
.pg-loading::before {
    content: "";
    display: block;
    width: 180px;
    height: 48px;
    margin: 0 auto 28px;
    background: var(--cw-logo) center/contain no-repeat;
}

.sk-fading-circle .sk-circle:before,
.pg-loading .sk-circle:before {
    background-color: var(--cw-primary) !important;
}

/* --- 9. Footer e crediti PromoTron (anche loading screen) ------------------ */
.br-footer,
.page-footer,
.page-footer-background,
.footer,
.footerholder,
#placeholder .footer,
.pg-loading-screen .footer {
    background: var(--cw-surface-2) !important;
    border-top: 1px solid var(--cw-border) !important;
    color: transparent !important;
    position: relative;
    min-height: 42px;
}

.br-footer > *,
.page-footer > *,
.page-footer-background > *,
.footer > *,
.footerholder > *,
#placeholder .footer > *,
.pg-loading-screen .footer > * {
    visibility: hidden !important;
    opacity: 0 !important;
}

.br-footer::after,
.page-footer-background::after,
.footer::after,
.footerholder::after,
#placeholder .footer::after,
.pg-loading-screen .footer::after {
    content: "© 2026 Codewaru — Tutti i diritti riservati";
    color: var(--cw-text-muted);
    visibility: visible;
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.promotron-link,
a[href*="promotron.com"],
a[href*="promotron"] {
    color: transparent !important;
    pointer-events: none !important;
    font-size: 0 !important;
}

/* --- 10. Card, pannelli, form login -------------------------------------- */
.card,
.panel,
.br-panel,
.login-box,
.auth-box,
.box-login {
    border-radius: 12px !important;
    border: 1px solid var(--cw-border) !important;
    box-shadow: 0 8px 28px rgba(27, 25, 25, 0.06) !important;
    background: #fff !important;
}

.form-control:focus,
input:focus,
select:focus,
textarea:focus {
    border-color: var(--cw-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(229, 91, 0, 0.15) !important;
}

/* --- 11. Nascondi testi/logo residui con classi PromoTron/Code ---------- */
[class*="promotron"],
[class*="codeshop"],
[class*="code-logo"] {
    /* container mantenuto; contenuto ripulito dalle regole sopra */
}

/* --- 12. Scrollbar e dettagli UI ----------------------------------------- */
::-webkit-scrollbar-thumb {
    background: rgba(229, 91, 0, 0.45) !important;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--cw-primary) !important;
}

/* =============================================================================
   13. Header unificato — niente più viola/verde/blu Tron
   ============================================================================= */

.troncloud .br-logo,
.tronlogo .br-logo,
.tronshop .br-logo,
.trondesigner .br-logo,
.br-logo {
    background: var(--cw-header-bg) !important;
    background-color: var(--cw-header-bg) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: none !important;
}

.br-logo::before {
    content: "" !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 48px !important;
    background-image: var(--cw-logo) !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: auto 42px !important;
}

.collapsed-menu .br-logo {
    width: 90px !important;
    min-width: 90px !important;
    overflow: hidden !important;
}

.collapsed-menu .br-header-promotron {
    background-image: none !important;
    min-width: 0 !important;
    padding-left: 0 !important;
}

@media (min-width: 992px) {
    body:not(.collapsed-menu) .br-header-promotron {
        background-image: none !important;
        min-width: 0 !important;
        padding-left: 12px !important;
    }
}

@media (max-width: 991.98px) {
    .br-header-promotron {
        background-image: var(--cw-logo-sm) !important;
        min-width: 160px !important;
        background-position: center !important;
    }
}


.br-header,
.br-header-left,
.br-header-right,
.br-header-user,
.navicon-left {
    background: var(--cw-header-bg) !important;
    background-color: var(--cw-header-bg) !important;
}

.navicon-left {
    border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

.br-header-promotron {
    min-width: 200px !important;
    min-height: 48px !important;
    padding: 0 24px !important;
    background-image: var(--cw-logo-sm) !important;
    background-repeat: no-repeat !important;
    background-position: left center !important;
    background-size: auto 40px !important;
}

.br-header-user,
.header-user-info,
.header-user-info a,
.br-header .logged-name,
.br-header .logged-name * {
    color: #fff !important;
}

.header-user-info .logged-name .user-name-align,
.header-user-info .logged-name span:first-child {
    color: var(--cw-primary-soft) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
}

.header-user-info .logged-name .user-name-align + *,
.header-user-info .user-name {
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 14px !important;
}

.logged-icon .icon,
.header-user-info .angle.down.icon {
    color: rgba(255, 255, 255, 0.7) !important;
}

/* Avatar utente: verde Tron -> arancio Codewaru */
.br-header-user .rounded-circle,
.br-header-user [class*="avatar"],
.header-user-info .rounded-circle,
.logged-icon .rounded-circle {
    background: linear-gradient(135deg, var(--cw-primary) 0%, var(--cw-primary-dark) 100%) !important;
    border: 2px solid rgba(255, 255, 255, 0.15) !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* =============================================================================
   14. Sidebar e pannelli contenuto
   ============================================================================= */

.br-sideleft,
.br-siderleft {
    background: var(--cw-sidebar-bg) !important;
}

.dashboard-content-wrapper,
.data-grid-wrapper,
.data-detail-wrapper,
.text-content-wrapper,
.bgmain {
    background: var(--cw-surface) !important;
    padding: 24px !important;
}

.br-mainpanel {
    margin-top: 90px !important;
}

.br-section-wrapper,
.page-block,
.page-block.dashboard-block {
    background: #fff !important;
    border: 1px solid var(--cw-border) !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 32px rgba(27, 25, 25, 0.06) !important;
    padding: 28px 24px !important;
}

.page-block.dashboard-block h4,
.accordion-element .header,
.br-pageheader .header-title {
    color: var(--cw-text) !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
}

/* Sezioni accordion Material */
.mat-expansion-panel {
    border: 1px solid var(--cw-border) !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 24px rgba(27, 25, 25, 0.05) !important;
    margin-bottom: 20px !important;
    overflow: hidden !important;
}

.mat-expansion-panel-header {
    background: linear-gradient(180deg, #fff 0%, var(--cw-surface-2) 100%) !important;
    border-bottom: 1px solid var(--cw-border) !important;
    min-height: 56px !important;
    padding: 0 20px !important;
}

.mat-expansion-panel-header-title,
.mat-expansion-panel-header-description,
.mat-expansion-panel-header .mat-content {
    color: var(--cw-text) !important;
    font-weight: 600 !important;
}

.mat-expansion-indicator::after {
    color: var(--cw-primary) !important;
}

.mat-expansion-panel-body {
    padding: 24px 20px 28px !important;
    background: #fff !important;
}

/* =============================================================================
   15. Tile dashboard — palette Codewaru unificata
   ============================================================================= */

.dashboard-content-wrapper a,
.dashboard-content-wrapper [style*="background"],
.dashboard-icon-wrapper,
[class*="dashboard"] a {
    border-radius: 16px !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.dashboard-content-wrapper a:hover,
.dashboard-content-wrapper [style*="background"]:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 28px rgba(229, 91, 0, 0.2) !important;
}

.dashboard-icon-wrapper svg path,
.dashboard-icon-wrapper svg rect,
.dashboard-icon-wrapper svg g path {
    fill: #fff !important;
    opacity: 0.95 !important;
}

/* Forza colori inline dei tile Tron -> arancio Codewaru */
[style*="background-color: rgb(152, 25, 176)"],
[style*="background-color:#9819b0"],
[style*="background-color: rgb(66, 105, 216)"],
[style*="background-color:#4269d8"],
[style*="background-color: rgb(9, 199, 135)"],
[style*="background-color:#09c787"],
[style*="background-color: rgb(240, 53, 101)"],
[style*="background-color:#f03565"],
[style*="background-color: rgb(183, 110, 55)"],
[style*="background-color: rgb(23, 162, 184)"],
[style*="background-color:#17a2b8"],
[style*="background-image:linear-gradient(to top, #9819b0"],
[style*="background-image:linear-gradient(to top, #4269d8"],
[style*="background-image:linear-gradient(to top, #09c787"],
[style*="background-image:linear-gradient(to top, #17a2b8"],
[style*="background-image:linear-gradient(to top, #f03565"],
[style*="background-image: linear-gradient(to top, #9819b0"],
[style*="background-image: linear-gradient(to top, #4269d8"],
[style*="background-image: linear-gradient(to top, #09c787"],
[style*="background-image: linear-gradient(to top, #17a2b8"],
[style*="background-image: linear-gradient(to top, #f03565"],
[style*="linear-gradient(to top, rgb(152, 25, 176)"],
[style*="linear-gradient(to top, rgb(66, 105, 216)"],
[style*="linear-gradient(to top, rgb(9, 199, 135)"],
[style*="linear-gradient(to top, rgb(23, 162, 184)"] {
    background: linear-gradient(135deg, var(--cw-primary) 0%, var(--cw-primary-dark) 100%) !important;
    background-image: linear-gradient(to top, var(--cw-primary), rgba(229, 91, 0, 0.55)) !important;
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary-dark) !important;
}

/* Portal home — tile servizi/account (tron-icon) con varianti palette */
.bg .element-container > * > div > div:first-child,
.dashboard-content-wrapper .element-container > * > div > div:first-child {
    border-radius: 12px !important;
    overflow: hidden !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.bg .element-container:nth-child(5n+1) > * > div > div:first-child,
.dashboard-content-wrapper .element-container:nth-child(5n+1) > * > div > div:first-child {
    background-image: linear-gradient(to top, var(--cw-primary), rgba(229, 91, 0, 0.55)) !important;
    background-color: var(--cw-primary) !important;
}

.bg .element-container:nth-child(5n+2) > * > div > div:first-child,
.dashboard-content-wrapper .element-container:nth-child(5n+2) > * > div > div:first-child {
    background-image: linear-gradient(to top, var(--cw-primary-dark), rgba(196, 78, 0, 0.55)) !important;
    background-color: var(--cw-primary-dark) !important;
}

.bg .element-container:nth-child(5n+3) > * > div > div:first-child,
.dashboard-content-wrapper .element-container:nth-child(5n+3) > * > div > div:first-child {
    background-image: linear-gradient(to top, #FF8C3A, rgba(255, 140, 58, 0.55)) !important;
    background-color: #FF8C3A !important;
}

.bg .element-container:nth-child(5n+4) > * > div > div:first-child,
.dashboard-content-wrapper .element-container:nth-child(5n+4) > * > div > div:first-child {
    background-image: linear-gradient(to top, var(--cw-header-bg), rgba(42, 42, 42, 0.55)) !important;
    background-color: var(--cw-header-bg) !important;
}

.bg .element-container:nth-child(5n) > * > div > div:first-child,
.dashboard-content-wrapper .element-container:nth-child(5n) > * > div > div:first-child {
    background-image: linear-gradient(to top, var(--cw-primary-soft), rgba(229, 91, 0, 0.45)) !important;
    background-color: var(--cw-primary-soft) !important;
}

.bg .element-container > * > div > div:first-child:hover,
.dashboard-content-wrapper .element-container > * > div > div:first-child:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 24px rgba(229, 91, 0, 0.22) !important;
}

/* Card promozionali dashboard */
.card-container > * > div:first-child {
    background-color: var(--cw-surface-2) !important;
    border: 1px solid var(--cw-border) !important;
    border-radius: 12px !important;
}

/* Stato servizi */
.dashboard-content-wrapper [class*="status"],
.dashboard-content-wrapper [class*="active"],
.dashboard-content-wrapper span {
    letter-spacing: 0.01em;
}

.dashboard-content-wrapper [style*="color: rgb(9, 199, 135)"],
.dashboard-content-wrapper [style*="color:#09c787"],
.dashboard-content-wrapper .text-success {
    color: #2e9b5e !important;
    font-weight: 600 !important;
}

/* =============================================================================
   16. Pulsanti e link tematici Tron -> Codewaru
   ============================================================================= */

.troncloud .basic-themed-button,
.tronlogo .basic-themed-button,
.tronshop .basic-themed-button,
.trondesigner .basic-themed-button,
.troncloud .button-basic,
.tronlogo .button-basic,
.tronshop .button-basic,
.trondesigner .button-basic,
.troncloud .btn-group__item--active,
.tronlogo .btn-group__item--active,
.tronshop .btn-group__item--active,
.trondesigner .btn-group__item--active {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
    color: #fff !important;
    border-radius: 10px !important;
}

.troncloud .basic-themed-button:hover,
.tronlogo .basic-themed-button:hover,
.tronshop .basic-themed-button:hover,
.trondesigner .basic-themed-button:hover,
.troncloud .button-basic:hover,
.tronlogo .button-basic:hover,
.tronshop .button-basic:hover,
.trondesigner .button-basic:hover {
    background-color: var(--cw-primary-dark) !important;
    border-color: var(--cw-primary-dark) !important;
}

.troncloud .themed-link,
.tronlogo .themed-link,
.tronshop .themed-link,
.trondesigner .themed-link,
.troncloud .link.active,
.tronlogo .link.active,
.tronshop .link.active,
.trondesigner .link.active {
    color: var(--cw-primary) !important;
}

.troncloud .themed-link:hover,
.tronlogo .themed-link:hover,
.tronshop .themed-link:hover,
.trondesigner .themed-link:hover {
    color: var(--cw-primary-dark) !important;
}

/* Checkbox, pager, griglie DevExtreme */
.troncloud .dx-checkbox-checked .dx-checkbox-icon,
.tronlogo .dx-checkbox-checked .dx-checkbox-icon,
.tronshop .dx-checkbox-checked .dx-checkbox-icon,
.trondesigner .dx-checkbox-checked .dx-checkbox-icon,
.dx-treelist-rowsview .dx-checkbox-checked .dx-checkbox-icon,
.dx-datagrid-rowsview .dx-checkbox-checked .dx-checkbox-icon {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
}

.troncloud .dx-pager .dx-pages .dx-selection,
.tronlogo .dx-pager .dx-pages .dx-selection,
.tronshop .dx-pager .dx-pages .dx-selection,
.trondesigner .dx-pager .dx-pages .dx-selection {
    border-color: var(--cw-primary) !important;
}

/* =============================================================================
   17. Dettagli UI finali
   ============================================================================= */

.br-pageheader {
    background: var(--cw-surface-2) !important;
    border-bottom: 1px solid var(--cw-border) !important;
    color: var(--cw-text) !important;
}

.dropdown-menu-header,
.br-header-user .dropdown-menu {
    background: var(--cw-sidebar-bg) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 12px !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28) !important;
}

.dropdown-menu-header a:hover,
.user-profile-nav a:hover {
    background: rgba(229, 91, 0, 0.12) !important;
    color: #fff !important;
}

/* =============================================================================
   18. Palette globale — neutralizza tutti gli accenti Tron/Bootstrap
   ============================================================================= */

.bg-br-primary,
.signup-page-layout,
.br-sideleft,
.br-header,
.br-header-user,
#placeholder,
.pg-loading-screen {
    background-color: var(--cw-header-bg) !important;
}

.br-header-user {
    background-color: var(--cw-sidebar-bg) !important;
}

/* Ciano / azzurro Tron (#1beeee, #47c3f7, #17a2b8) */
.br-menu-link.active .br-menu-item,
.br-menu-link.active2 .br-menu-item,
.br-menu-link.active .br-menu-item span span,
.br-menu-link.active2 .br-menu-item span span,
.br-menu-sub .nav-link.active,
.br-menu-sub .nav-link:hover,
.br-menu-sub .nav-link:focus,
.user-profile-nav a:hover,
.user-profile-nav a:focus,
.user-profile-nav i.icon,
.icon-container-admin svg path,
.blue-link,
.primary-link,
.btn-text--light-blue,
.btn-text--light-blue:hover,
.supplier-settings-sale-policy--active,
.edit-btn,
.secondary-button,
.subtle-button,
.action-button-box .secondary-btn,
.btn-contained--secondary,
.blue-icon:hover,
.link.active {
    color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
}

.edit-btn,
.secondary-button,
.action-button-box .secondary-btn,
.btn-contained--secondary,
.delete-button:not(.btn-remove) {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
}

.edit-btn:hover,
.secondary-button:hover,
.action-button-box .secondary-btn:hover,
.btn-contained--secondary:hover {
    background-color: var(--cw-primary-dark) !important;
}

/* Icone menu sidebar */
.br-menu-item i.menu-item-icon.icon.server:before { color: var(--cw-primary) !important; }
.br-menu-item i.menu-item-icon.icon.home:before { color: var(--cw-primary-soft) !important; }
.br-menu-item i.menu-item-icon.icon.building:before { color: var(--cw-primary-dark) !important; }

/* Bootstrap: primary/info/cyan -> arancio */
.btn-info,
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.bg-info,
.badge-info,
.text-info,
.alert-info,
.border-info {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
    color: #fff !important;
}

.text-info,
.alert-info {
    color: var(--cw-primary-dark) !important;
    background-color: rgba(229, 91, 0, 0.08) !important;
}

/* Success semantico: verde sobrio solo per stati positivi */
.text-success,
.badge-success,
.valid-feedback,
.form-control.is-valid,
.was-validated .form-control:valid,
.dashboard-content-wrapper [style*="color: rgb(9, 199, 135)"],
.dashboard-content-wrapper [style*="color:#09c787"],
.dashboard-content-wrapper [style*="color: rgb(35, 191, 8)"],
.dashboard-content-wrapper [style*="color:#23bf08"] {
    color: var(--cw-success) !important;
}

.btn-success,
.bg-success,
.badge-success {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
}

/* Warning / danger restano distinguibili ma più sobri */
.btn-warning,
.bg-warning,
.badge-warning {
    background-color: var(--cw-primary-soft) !important;
    border-color: var(--cw-primary-soft) !important;
    color: var(--cw-text) !important;
}

/* DevExtreme: selezioni, focus, link */
.dx-checkbox.dx-state-hover .dx-checkbox-icon,
.dx-checkbox.dx-state-focused .dx-checkbox-icon,
.dx-treelist-rowsview .dx-checkbox.dx-state-hover .dx-checkbox-icon,
.dx-datagrid-rowsview .dx-checkbox.dx-state-hover .dx-checkbox-icon,
.dx-treelist-rowsview .dx-checkbox.dx-state-focused .dx-checkbox-icon,
.dx-datagrid-rowsview .dx-checkbox.dx-state-focused .dx-checkbox-icon {
    border-color: var(--cw-primary) !important;
}

.dx-treelist-rowsview .dx-checkbox-checked .dx-checkbox-icon,
.dx-datagrid-rowsview .dx-checkbox-checked .dx-checkbox-icon,
.dx-treelist-rowsview .dx-checkbox.dx-state-readonly .dx-checkbox-icon,
.dx-datagrid-rowsview .dx-checkbox.dx-state-readonly .dx-checkbox-icon {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
}

.dx-pager .dx-pages .dx-selection,
.dx-pagination .dx-page.dx-selection {
    border-color: var(--cw-primary) !important;
    color: var(--cw-primary) !important;
}

.dx-link,
.dx-datagrid .dx-link {
    color: var(--cw-primary) !important;
}

.dx-link:hover {
    color: var(--cw-primary-dark) !important;
}

/* Material */
.mat-primary,
.mat-mdc-button.mat-primary,
.mat-mdc-outlined-button.mat-primary,
.mat-mdc-icon-button.mat-primary,
.mat-mdc-tab-group.mat-primary .mat-mdc-tab:not(.mat-mdc-tab-disabled).mdc-tab--active,
.mat-mdc-checkbox.mat-primary,
.mat-mdc-radio-button.mat-primary {
    --mdc-theme-primary: #E55B00 !important;
    --mat-mdc-button-persistent-ripple-color: #E55B00 !important;
    color: var(--cw-primary) !important;
}

.mat-mdc-raised-button.mat-primary,
.mat-mdc-unelevated-button.mat-primary,
.mat-mdc-fab.mat-primary,
.mat-mdc-mini-fab.mat-primary {
    background-color: var(--cw-primary) !important;
    color: #fff !important;
}

/* Inline styles residui (anche rgb senza spazi) */
[style*="background-color:rgb(152,25,176)"],
[style*="background-color:rgb(66,105,216)"],
[style*="background-color:rgb(9,199,135)"],
[style*="background-color:rgb(240,53,101)"],
[style*="background-color:rgb(27,238,238)"],
[style*="background-color:rgb(71,195,247)"],
[style*="background-color:rgb(23,162,184)"],
[style*="background-color:rgb(8,102,198)"],
[style*="background-color:rgb(51,122,183)"],
[style*="background-color:#1beeee"],
[style*="background-color:#47c3f7"],
[style*="background-color:#0866c6"],
[style*="background-color:#337ab7"],
[style*="background-color:#b963c9"],
[style*="background-color:#71dab0"],
[style*="background-color:#7f99e5"],
[style*="background:rgb(152,25,176)"],
[style*="background:rgb(66,105,216)"],
[style*="background:rgb(9,199,135)"],
[style*="background:rgb(240,53,101)"],
[style*="background:#9819b0"],
[style*="background:#4269d8"],
[style*="background:#09c787"],
[style*="background:#f03565"],
[style*="background:#47c3f7"],
[style*="background:#1beeee"] {
    background: linear-gradient(135deg, var(--cw-primary) 0%, var(--cw-primary-dark) 100%) !important;
    background-color: var(--cw-primary) !important;
}

[style*="color:rgb(27,238,238)"],
[style*="color:rgb(71,195,247)"],
[style*="color:rgb(23,162,184)"],
[style*="color:rgb(8,102,198)"],
[style*="color:#1beeee"],
[style*="color:#47c3f7"],
[style*="color:#17a2b8"],
[style*="color:#0866c6"],
[style*="color:#9819b0"],
[style*="color:#4269d8"],
[style*="color:#09c787"],
[style*="color:#f03565"] {
    color: var(--cw-primary) !important;
}

[style*="border-color:rgb(27,238,238)"],
[style*="border-color:#1beeee"],
[style*="border-color:#47c3f7"],
[style*="border-color:#9819b0"],
[style*="border-color:#4269d8"],
[style*="border-color:#09c787"] {
    border-color: var(--cw-primary) !important;
}

/* Tile dashboard: icone SVG interne */
.dashboard-icon-wrapper svg [fill="#9819b0"],
.dashboard-icon-wrapper svg [fill="#4269d8"],
.dashboard-icon-wrapper svg [fill="#09c787"],
.dashboard-icon-wrapper svg [fill="#f03565"],
.dashboard-icon-wrapper svg [fill="#47c3f7"],
.dashboard-icon-wrapper svg [fill="#1beeee"] {
    fill: #fff !important;
}

/* =============================================================================
   19. Pagine servizio (/tronlogo/, /tronshop/, ecc.) — override ad alta specificità
   ============================================================================= */

.tronlogo .br-logo::before,
.troncloud .br-logo::before,
.tronshop .br-logo::before,
.trondesigner .br-logo::before {
    content: "" !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 48px !important;
    background: none !important;
    background-image: var(--cw-logo) !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: auto 42px !important;
}

/* Banner servizio (es. dashboard CodeLogo) */
.tronlogo.service-banner,
.troncloud.service-banner,
.tronshop.service-banner,
.trondesigner.service-banner {
    background: linear-gradient(135deg, var(--cw-primary) 0%, var(--cw-primary-dark) 100%) !important;
}

.tronlogo.service-banner .service-banner__btn,
.troncloud.service-banner .service-banner__btn,
.tronshop.service-banner .service-banner__btn,
.trondesigner.service-banner .service-banner__btn {
    color: var(--cw-primary) !important;
    font-weight: 700 !important;
}

/* Pulsanti/icona tema servizio */
.tronlogo .themed-icon-button,
.troncloud .themed-icon-button,
.tronshop .themed-icon-button,
.trondesigner .themed-icon-button,
.tronlogo button.dx-grid-add-button-variant,
.troncloud button.dx-grid-add-button-variant,
.tronshop button.dx-grid-add-button-variant,
.trondesigner button.dx-grid-add-button-variant {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
    color: #fff !important;
}

.tronlogo .themed-icon-button:hover,
.troncloud .themed-icon-button:hover,
.tronshop .themed-icon-button:hover,
.trondesigner .themed-icon-button:hover,
.tronlogo button.dx-grid-add-button-variant:hover,
.troncloud button.dx-grid-add-button-variant:hover,
.tronshop button.dx-grid-add-button-variant:hover,
.trondesigner button.dx-grid-add-button-variant:hover {
    background-color: var(--cw-primary-dark) !important;
}

.tronlogo .themed-icon,
.troncloud .themed-icon,
.tronshop .themed-icon,
.trondesigner .themed-icon,
.tronlogo .themed-icon:hover,
.troncloud .themed-icon:hover,
.tronshop .themed-icon:hover,
.trondesigner .themed-icon:hover {
    color: var(--cw-primary) !important;
}

/* Checkbox / form Angular dentro tema servizio */
.tronlogo label::before,
.troncloud label::before,
.tronshop label::before,
.trondesigner label::before,
.tronlogo.checkbox-checked label::before,
.troncloud.checkbox-checked label::before,
.tronshop.checkbox-checked label::before,
.trondesigner.checkbox-checked label::before,
.tronlogo .checkbox-checked label::before,
.troncloud .checkbox-checked label::before,
.tronshop .checkbox-checked label::before,
.trondesigner .checkbox-checked label::before {
    background-color: var(--cw-primary) !important;
    border-color: var(--cw-primary) !important;
}

.tronlogo svg [stroke="#4269d8"],
.tronlogo svg [stroke="#9819b0"],
.tronlogo svg [stroke="#09c787"],
.tronlogo svg [stroke="#f03565"],
.troncloud svg [stroke="#9819b0"],
.tronshop svg [stroke="#09c787"],
.trondesigner svg [stroke="#f03565"] {
    stroke: var(--cw-primary) !important;
}

/* DevExtreme dentro pagine /tronlogo/ */
.tronlogo .dx-treelist-search-panel.dx-state-focused,
.tronlogo .dx-datagrid-search-panel.dx-state-focused,
.tronlogo .dx-gridbase-container > .dx-treelist-rowsview::before,
.troncloud .dx-treelist-search-panel.dx-state-focused,
.tronshop .dx-datagrid-search-panel.dx-state-focused {
    border-color: var(--cw-primary) !important;
}

.tronlogo .dx-dropdown-treelist .dx-treelist-rowsview .dx-selection.dx-row > td,
.tronlogo .dx-dropdown-treeview .dx-treeview-item-without-checkbox.dx-state-selected > .dx-treeview-item,
.tronlogo .dx-dropdown-treeview .dx-treeview-item-without-checkbox.dx-state-focused > .dx-treeview-item .item-selectable {
    color: var(--cw-primary) !important;
}

.tronlogo .dx-dropdown-treelist .dx-treelist-search-text,
.trondesigner .dx-dropdown-treelist .dx-treelist-search-text {
    background-color: var(--cw-primary) !important;
    color: #fff !important;
}

.tronlogo .dx-gridbase-container > .dx-treelist-rowsview::before {
    border-top-color: var(--cw-primary) !important;
}

/* Gradienti blu/viola banner */
[style*="background:linear-gradient(90deg,#6080de"],
[style*="background:linear-gradient(90deg, #6080de"],
[style*="background:linear-gradient(90deg,#6080de 0%,#284fbf"],
[style*="background-color:#6080de"],
[style*="background-color:#284fbf"],
[style*="background-color:#7f99e5"] {
    background: linear-gradient(135deg, var(--cw-primary) 0%, var(--cw-primary-dark) 100%) !important;
    background-color: var(--cw-primary) !important;
}

/* =============================================================================
   20. Leggibilità e design generale
   ============================================================================= */

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

body,
app,
.br-layout,
.br-content,
.br-mainpanel {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--cw-text) !important;
    letter-spacing: -0.01em;
}

h1, h2, h3, h4, h5, h6,
.page-block.dashboard-block h4,
.accordion-element .header,
.br-pageheader .header-title,
.mat-expansion-panel-header-title,
.secondary-title h4 {
    color: #2A2A2A !important;
    font-weight: 700 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.35 !important;
}

p,
label,
.form-group label,
.dx-field-item-label-text,
.mat-form-field-label {
    color: var(--cw-text) !important;
    line-height: 1.55 !important;
}

small,
.text-muted,
.form-text,
.dx-field-item-help-text,
.supplier-settings-sale-policy--default {
    color: var(--cw-text-muted) !important;
}

/* Sidebar scura (menu principale admin) */
.br-sideleft .br-menu-link,
.br-sideleft .br-menu-item,
.br-sideleft .menu-item-label,
.br-sideleft .br-menu-sub .nav-link {
    color: rgba(255, 255, 255, 0.88) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em;
}

.br-sideleft .br-menu-link:hover .br-menu-item,
.br-sideleft .br-menu-sub .nav-link:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.04) !important;
}

.br-sideleft .br-menu-link.active .br-menu-item,
.br-sideleft .br-menu-link.active2 .br-menu-item,
.br-sideleft .br-menu-sub .nav-link.active {
    color: var(--cw-primary-soft) !important;
    font-weight: 600 !important;
}

/* Sidebar chiara interna servizi (es. /tronlogo/.../dashboard) */
.left-side-menu {
    background: #fff !important;
    border-right: 1px solid var(--cw-border) !important;
}

.left-side-menu .root-child-link .root-child-item,
.left-side-menu .menu-item-label,
.left-side-menu .root-child-link .root-child-item span,
.left-side-menu .submenu-wrapper .submenu-interpart,
.left-side-menu .submenu-wrapper a {
    color: var(--cw-text) !important;
}

.left-side-menu .root-child-link.active-link .root-child-item,
.left-side-menu .root-child-link .root-child-item:hover,
.left-side-menu .root-child-link .root-child-item:focus {
    color: var(--cw-primary-dark) !important;
    background-color: rgba(229, 91, 0, 0.08) !important;
    font-weight: 600 !important;
}

.left-side-menu .root-child-link .root-child-item span.menu-icon,
.left-side-menu .root-child-link.active-link .root-child-item span.menu-icon {
    color: var(--cw-primary) !important;
}

.left-side-menu .root-menu-wrapper.back-navigator {
    background-color: var(--cw-bg-dark, #121212) !important;
}

.left-side-menu .root-menu-wrapper.back-navigator .root-child-link .root-child-item,
.left-side-menu .root-menu-wrapper.back-navigator .root-child-link .root-child-item span,
.left-side-menu .root-menu-wrapper.back-navigator .root-child-link .root-child-item .menu-item-label,
.left-side-menu .root-menu-wrapper.back-navigator .root-child-link .root-child-item span.menu-icon {
    color: #fff !important;
}

.left-side-menu .default-disabled .menu-item-label {
    color: var(--cw-text-muted) !important;
}

/* Form e input */
.form-control,
input.form-control,
select.form-control,
textarea.form-control,
.dx-texteditor-input,
.mat-mdc-input-element {
    font-size: 15px !important;
    line-height: 1.5 !important;
    color: var(--cw-text) !important;
    background: #fff !important;
    border: 1px solid var(--cw-border) !important;
    border-radius: 10px !important;
    min-height: 42px;
    padding: 10px 14px !important;
    box-shadow: none !important;
}

.form-control::placeholder,
.dx-placeholder {
    color: #9A9A9A !important;
}

/* Bottoni più leggibili */
.btn,
.button-basic,
.basic-themed-button,
.mat-mdc-raised-button,
.dx-button {
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    border-radius: 10px !important;
    min-height: 40px;
    padding: 10px 18px !important;
}

/* Griglie DevExtreme */
.dx-datagrid,
.dx-treelist {
    font-size: 14px !important;
    color: var(--cw-text) !important;
}

.dx-datagrid-headers,
.dx-treelist-headers,
.dx-header-row,
.dx-datagrid .dx-row-lines > td,
.dx-treelist .dx-row-lines > td {
    color: var(--cw-text) !important;
}

.dx-datagrid-headers .dx-datagrid-table .dx-row > td,
.dx-treelist-headers .dx-treelist-table .dx-row > td {
    background: var(--cw-surface-2) !important;
    color: #2A2A2A !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-transform: none !important;
    letter-spacing: 0.02em;
    border-bottom: 1px solid var(--cw-border) !important;
    padding: 12px 14px !important;
}

.dx-datagrid-rowsview .dx-row,
.dx-treelist-rowsview .dx-row {
    border-bottom: 1px solid #EFEFEF !important;
}

.dx-datagrid-rowsview .dx-row:hover,
.dx-treelist-rowsview .dx-row:hover {
    background: rgba(229, 91, 0, 0.04) !important;
}

.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused) > td,
.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused) > td {
    background: rgba(229, 91, 0, 0.08) !important;
    color: var(--cw-text) !important;
}

/* Dashboard tiles: etichette più chiare */
.dashboard-content-wrapper,
.page-block.dashboard-block {
    color: var(--cw-text) !important;
}

.dashboard-content-wrapper a,
.dashboard-content-wrapper [class*="label"],
.dashboard-content-wrapper span,
.page-block.dashboard-block span {
    font-size: 14px !important;
    line-height: 1.45 !important;
}

.dashboard-content-wrapper a {
    font-weight: 600 !important;
    color: #2A2A2A !important;
}

.dashboard-content-wrapper a:hover {
    color: var(--cw-primary-dark) !important;
}

/* Banner servizio più arioso */
.tronlogo.service-banner,
.troncloud.service-banner,
.tronshop.service-banner,
.trondesigner.service-banner {
    border-radius: 16px !important;
    padding: 20px 24px !important;
    margin-bottom: 20px !important;
    color: #fff !important;
}

.tronlogo.service-banner .service-banner__btn,
.troncloud.service-banner .service-banner__btn,
.tronshop.service-banner .service-banner__btn,
.trondesigner.service-banner .service-banner__btn {
    border-radius: 10px !important;
    font-weight: 700 !important;
}

/* Header utente */
.header-user-info .logged-name .user-name-align,
.header-user-info .logged-name span:first-child {
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em;
}

.header-user-info .logged-name .user-name-align + *,
.header-user-info .user-name {
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 14px !important;
}

/* Tabelle bootstrap */
.table {
    color: var(--cw-text) !important;
    font-size: 14px !important;
}

.table thead th {
    background: var(--cw-surface-2) !important;
    color: #2A2A2A !important;
    font-weight: 600 !important;
    border-color: var(--cw-border) !important;
}

.table td,
.table th {
    padding: 12px 14px !important;
    vertical-align: middle !important;
}

/* Login */
.login-box,
.auth-box,
.box-login {
    padding: 28px 32px !important;
}

.login-box label,
.auth-box label {
    font-weight: 600 !important;
    margin-bottom: 6px !important;
}

/* Riduce rumore visivo */
.secondary-title {
    color: var(--cw-text-muted) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Focus accessibile */
:focus-visible {
    outline: 2px solid rgba(229, 91, 0, 0.45) !important;
    outline-offset: 2px;
}

/* =============================================================================
   21. Testo scuro su card e contenuti chiari (fix bianco su bianco)
   ============================================================================= */

.info-box,
.page-block,
.page-block.dashboard-block,
.br-section-wrapper,
.card,
.content-box,
.dashboard-content-wrapper,
.data-grid-wrapper,
.data-detail-wrapper,
.text-content-wrapper,
.bgmain,
.complete-settings-root {
    color: var(--cw-text) !important;
}

.info-box p,
.info-box span,
.info-box div,
.info-box li,
.info-box label,
.info-box .label,
.info-box #content,
.info-box #content *,
.page-block p,
.page-block span,
.page-block div,
.page-block li,
.page-block label,
.page-block .label,
.dashboard-content-wrapper p,
.dashboard-content-wrapper span,
.dashboard-content-wrapper div,
.dashboard-content-wrapper li,
.dashboard-content-wrapper label,
.br-section-wrapper p,
.br-section-wrapper span,
.br-section-wrapper div,
.br-section-wrapper li,
.card p,
.card span,
.card div,
.card li,
.card label {
    color: var(--cw-text) !important;
}

.info-box h1,
.info-box h2,
.info-box h3,
.info-box h4,
.page-block h4,
.page-block h3,
.dashboard-content-wrapper h4,
.br-section-wrapper h4 {
    color: #2A2A2A !important;
}

/* Pulsanti e badge mantengono testo chiaro su sfondo colorato */
.info-box .btn,
.info-box .button-basic,
.info-box .basic-themed-button,
.page-block .btn,
.page-block .button-basic,
.card .btn,
.btn-primary,
.btn-success,
.button-basic,
.basic-themed-button,
.badge,
.service-banner,
.service-banner * {
    color: inherit;
}

.info-box .btn,
.info-box .button-basic,
.info-box .basic-themed-button,
.page-block .btn-primary,
.page-block .button-basic,
.btn-primary,
.btn-success,
.button-basic,
.basic-themed-button,
.service-banner,
.service-banner .service-banner__btn {
    color: #fff !important;
}

.service-banner .service-banner__btn {
    color: var(--cw-primary) !important;
    background: #fff !important;
}
