/* Login Area Admin — design system ASC (tipografia, colori, sidebar/header) */
:root {
    /* Testo e blu primari (foglio stile) */
    --asc-text-primary: #13253d;
    --asc-blue-primary: #1237a0;
    --asc-on-primary: #ffffff;
    --asc-bg-secondary-light: #d6e4f7;
    --asc-text-on-secondary: #1237a0;
    --asc-navy: #13253d;
    --asc-navy-deep: #0f1b2e;
    --asc-orange: #e8590a;
    --asc-celeste: #009cde;
    --asc-highlight-from: #e05506;
    --asc-highlight-to: #e88033;
    /* Scala tipografica (px) */
    --asc-fs-title-page: 30px;
    --asc-fs-card-title: 24px;
    --asc-fs-section: 20px;
    --asc-fs-subtitle: 18px;
    --asc-fs-body: 16px;
    --asc-fs-secondary: 14px;
    --asc-fs-label: 12px;
    /* Sfondo pagina: tre tappe */
    --asc-page-top: #a8cdf5;
    --asc-page-mid: #d6ddfb;
    --asc-page-bottom: #f5c89a;
    --asc-page-orange-soft: #f5c89a;
    --asc-page-orange-mist: #d6ddfb;
    --asc-form-panel-bg: #d6e4f7;
    --asc-input-fill: #e8f0f7;
    --asc-input-border: #d0dde8;
    /* Topbar principale (theme default 70px) */
    --asc-topbar-height: 88px;
    /* Sidebar / header: gradiente lineare */
    --asc-shell-gradient: linear-gradient(180deg, #0d2a6b 0%, #1e4aa0 100%);
    --asc-shell-overlay: linear-gradient(185deg, rgba(255, 255, 255, 0.06) 0%, transparent 42%),
        repeating-linear-gradient(
            -18deg,
            transparent,
            transparent 3px,
            rgba(255, 255, 255, 0.012) 3px,
            rgba(255, 255, 255, 0.012) 4px
        );
    --asc-shell-shadow: 10px 0 40px rgba(5, 28, 82, 0.35), inset -1px 0 0 rgba(255, 255, 255, 0.1);
}

.asc-login-page {
    min-height: calc(100vh - 120px);
    background: linear-gradient(168deg, var(--asc-page-top) 0%, var(--asc-page-mid) 48%, var(--asc-page-bottom) 100%);
}

.asc-login-container {
    max-width: 960px;
}

/* Pratiche: contenitore più largo per wizard e moduli multi-colonna */
.asc-login-container.asc-pratiche-container-wide {
    max-width: 1400px;
}

/* Card unica: ombre e angoli sul contenitore split */
.asc-login-shell {
    min-height: min(560px, calc(100vh - 140px));
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 16px 48px rgba(0, 52, 120, 0.18), 0 4px 12px rgba(0, 0, 0, 0.06);
    background: #fff;
}

/* Variante login/registrazione: elimina il pannello di sfondo a destra,
   mantenendo la card blu sinistra e solo la card bianca del form. */
.asc-login-shell.asc-login-shell--plain-right {
    background: transparent;
}

.asc-login-right-full {
    background: #fffef9;
    display: flex;
}

.asc-login-card.asc-login-card--full {
    max-width: none;
    width: 100%;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 2rem 2rem;
}

@media (max-width: 991.98px) {
    .asc-login-shell {
        border-radius: 12px;
        min-height: auto;
    }
}

.asc-login-brand {
    background: var(--asc-shell-gradient);
    position: relative;
    isolation: isolate;
}

/* Onde / forme astratte morbide (glass-like), sopra il blu, sotto logo e testo */
.asc-login-brand-shapes {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
}

.asc-login-brand-shapes::before {
    content: "";
    position: absolute;
    inset: -35% -25% -15% -20%;
    border-radius: 48% 52% 42% 58% / 46% 38% 62% 54%;
    transform: rotate(-14deg) scale(1.05);
    opacity: 1;
    background:
        radial-gradient(ellipse 75% 48% at 22% 18%, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.04) 42%, transparent 58%),
        radial-gradient(ellipse 55% 42% at 88% 72%, rgba(255, 255, 255, 0.09) 0%, transparent 52%),
        radial-gradient(ellipse 50% 38% at 55% 48%, rgba(0, 156, 222, 0.1) 0%, transparent 55%);
}

.asc-login-brand-shapes::after {
    content: "";
    position: absolute;
    inset: -25% -30% -20% -25%;
    border-radius: 58% 42% 52% 48% / 42% 52% 48% 58%;
    transform: rotate(22deg) scale(1.08);
    opacity: 1;
    background:
        radial-gradient(ellipse 65% 50% at 78% 22%, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.03) 45%, transparent 62%),
        radial-gradient(ellipse 70% 58% at 8% 65%, rgba(0, 180, 235, 0.11) 0%, transparent 58%),
        radial-gradient(ellipse 45% 55% at 95% 88%, rgba(255, 255, 255, 0.06) 0%, transparent 50%);
}

.asc-login-brand-content {
    position: relative;
    z-index: 1;
}

/* Trama: diagonale (luce) + angolo scuro; radiale celeste in basso a sinistra — più evidente */
.asc-login-brand::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            128deg,
            transparent 0%,
            transparent 38%,
            rgba(255, 255, 255, 0.07) 47%,
            rgba(255, 255, 255, 0.14) 50.5%,
            rgba(255, 255, 255, 0.07) 54%,
            transparent 65%
        ),
        linear-gradient(52deg, rgba(0, 0, 0, 0.12) 0%, transparent 42%);
    pointer-events: none;
}

.asc-login-brand::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(
            ellipse 110% 80% at 0% 100%,
            rgba(0, 180, 235, 0.35) 0%,
            rgba(0, 120, 190, 0.14) 42%,
            transparent 68%
        ),
        radial-gradient(ellipse 70% 55% at 100% 0%, rgba(255, 255, 255, 0.1) 0%, transparent 55%);
    pointer-events: none;
}

.asc-login-brand-inner {
    position: relative;
    z-index: 1;
}

.asc-login-logo-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
}

.asc-login-logo {
    max-width: min(260px, 80vw);
    height: auto;
    display: block;
    filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.2));
}

.asc-login-tagline {
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: 0.01em;
    line-height: 1.35;
}

.asc-login-sub {
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.45;
    font-size: 0.95rem;
}

/* Linea arancio in basso a sinistra (branding) */
.asc-login-brand-accent {
    width: 48px;
    height: 4px;
    background: var(--asc-orange);
    border-radius: 2px;
    margin-top: auto;
}

.asc-login-form-col {
    background: var(--asc-form-panel-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.75rem 1.25rem;
}

@media (min-width: 576px) {
    .asc-login-form-col {
        padding: 2rem 2rem;
    }
}

/* Card bianca interna al pannello destro */
.asc-login-card {
    width: 100%;
    max-width: 400px;
    border: none;
    border-radius: 14px;
    padding: 1.75rem 1.5rem;
    box-shadow: 0 8px 28px rgba(0, 52, 100, 0.1);
    background: #fffef9;
}

/* Pratiche: wizard con riepilogo su più colonne */
.asc-login-card.asc-pratiche-card-wide {
    max-width: 100%;
}

@media (min-width: 576px) {
    .asc-login-card {
        padding: 2rem 2rem;
    }
}

@media (max-width: 991.98px) {
    .asc-login-card.asc-login-card--full {
        border-radius: 0 0 12px 12px;
    }
}



.asc-login-card h1 {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--asc-navy);
    margin-bottom: 0.35rem;
}

.asc-login-card .asc-login-lead {
    color: #6b7c8e;
    font-size: 0.9rem;
    margin-bottom: 1.35rem;
}

.asc-login-card .form-label {
    font-weight: 500;
    color: #7a8a9a;
    font-size: 0.82rem;
    margin-bottom: 0.35rem;
}

.asc-login-card .form-select {
    background-color: var(--asc-input-fill);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23415469' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 16px 12px;
    border: 1px solid var(--asc-input-border);
    border-radius: 0.5rem;
    font-size: 0.95rem;
    padding: 0.6rem 2.35rem 0.6rem 0.85rem;
    color: #415469;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.asc-login-card .form-select:focus {
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23009cde' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    border-color: var(--asc-celeste);
    box-shadow: 0 0 0 0.2rem rgba(0, 156, 222, 0.18);
}

.asc-pratiche-wizard {
    margin: 1.2rem 0 1.4rem;
    padding: 1rem 1rem 0.75rem;
    border-radius: 12px;
    border: 1px solid rgba(0, 74, 153, 0.16);
    background: linear-gradient(180deg, rgba(0, 156, 222, 0.08) 0%, rgba(255, 255, 255, 0.96) 90%);
}

.asc-pratiche-wizard-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}

.asc-pratiche-step {
    position: relative;
    text-align: center;
    color: #6f7f91;
}

.asc-pratiche-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 17px;
    left: calc(50% + 22px);
    right: calc(-50% + 22px);
    height: 2px;
    background: #c8dbec;
}

.asc-pratiche-step-circle {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #d8e7f6;
    border: 2px solid #c3d8ec;
    color: #5f7894;
    font-weight: 700;
    font-size: var(--asc-fs-secondary);
    margin-bottom: 0.45rem;
    position: relative;
    z-index: 1;
}

.asc-pratiche-step-label {
    display: block;
    font-size: var(--asc-fs-body);
    font-weight: 600;
    letter-spacing: 0.01em;
}

.asc-pratiche-step--active {
    color: var(--asc-navy);
}

.asc-pratiche-step--active .asc-pratiche-step-circle {
    background: rgba(0, 156, 222, 0.15);
    border-color: var(--asc-celeste);
    color: var(--asc-navy);
    box-shadow: 0 0 0 4px rgba(0, 156, 222, 0.12);
}

.asc-pratiche-step--active + .asc-pratiche-step::after {
    background: linear-gradient(90deg, rgba(0, 156, 222, 0.95) 0%, #c8dbec 100%);
}

.asc-pratiche-step--completed {
    color: var(--asc-navy-deep);
}

.asc-pratiche-step--completed .asc-pratiche-step-circle {
    background: #009cde;
    border-color: #009cde;
    color: #fff;
}

@media (max-width: 575.98px) {
    .asc-pratiche-wizard-list {
        grid-template-columns: 1fr;
        gap: 0.8rem;
    }

    .asc-pratiche-step {
        text-align: left;
        padding-left: 2.4rem;
    }

    .asc-pratiche-step-circle {
        position: absolute;
        left: 0;
        top: -1px;
        margin-bottom: 0;
    }

    .asc-pratiche-step:not(:last-child)::after {
        left: 14px;
        right: auto;
        top: 31px;
        bottom: -15px;
        width: 2px;
        height: auto;
        background: #c8dbec;
    }
}

.asc-login-card .form-control {
    background: #fff;
    border: 1px solid var(--asc-input-border);
    border-radius: 0.5rem;
    font-size: 0.95rem;
    padding: 0.6rem 0.85rem;
}

.asc-login-card .form-control[readonly],
.asc-login-card .form-control:read-only {
    background: var(--asc-input-fill);
}

.asc-login-card .form-control:focus {
    background: #fff;
    border-color: var(--asc-celeste);
    box-shadow: 0 0 0 0.2rem rgba(0, 156, 222, 0.18);
}

.asc-login-card .input-group > .form-control:focus {
    z-index: 1;
}

.asc-login-card .input-group .form-control {
    border-radius: 0.5rem 0 0 0.5rem;
}

.asc-login-card .input-group-text {
    background: var(--asc-input-fill);
    border-color: var(--asc-input-border);
    border-radius: 0 0.5rem 0.5rem 0;
}

.asc-login-card .form-check-label {
    color: #6b7c8e;
    font-size: 0.9rem;
}

.asc-login-card .form-check-input:checked {
    background-color: var(--asc-celeste);
    border-color: var(--asc-celeste);
}

a.asc-link-orange {
    color: var(--asc-orange);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.8rem;
}

a.asc-link-orange:hover {
    color: #c8681a;
    text-decoration: underline;
}

/* Stesso arancione degli accenti (--asc-orange), senza btn-primary del tema (blu) */
.asc-login-card .btn.asc-btn-accendi {
    background-color: var(--asc-orange);
    border-color: var(--asc-orange);
    color: #fff;
    font-weight: 600;
    font-size: 1rem;
    padding: 0.65rem 1.25rem;
    min-height: 48px;
    border-radius: 0.5rem;
    box-shadow: 0 4px 14px rgba(232, 119, 34, 0.35);
}

.asc-login-card .btn.asc-btn-accendi:hover,
.asc-login-card .btn.asc-btn-accendi:focus {
    background-color: #d56a1c;
    border-color: #d56a1c;
    color: #fff;
    box-shadow: 0 6px 18px rgba(232, 119, 34, 0.42);
}

.asc-login-card .btn.asc-btn-accendi:active {
    background-color: #c25f18;
    border-color: #c25f18;
    color: #fff;
}

.asc-login-card .btn.asc-btn-accendi:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(232, 119, 34, 0.45);
}

.asc-login-footer-register {
    font-size: 0.9rem;
    color: #6b7c8e;
    text-align: center;
}

.asc-login-footer-register a {
    color: var(--asc-orange);
    font-weight: 600;
    text-decoration: none;
}

.asc-login-footer-register a:hover {
    text-decoration: underline;
    color: #c8681a;
}

/* -------------------------------------------------------------------------- */
/* Home / Bacheca (dashboard) — palette e card come Registrazione             */
/* -------------------------------------------------------------------------- */

.asc-home-page {
    position: relative;
    isolation: isolate;
    margin-left: -12px;
    margin-right: -12px;
    padding: 0.75rem 0.75rem 1.5rem;
    min-height: calc(100vh - 180px);
    /*background: linear-gradient(140deg, #b9d6fc 0%, #e5eafe 52%, #fcc0a3 100%) !important;*/
    box-shadow: none;
}

/*.asc-home-page::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 120% 65% at 0% 100%, rgba(17, 76, 141, 0.1) 0%, transparent 58%),
        radial-gradient(ellipse 80% 55% at 100% 0%, rgba(243, 112, 42, 0.14) 0%, transparent 55%);
    pointer-events: none;
    z-index: 0;
}*/

.asc-home-page > * {
    position: relative;
    z-index: 1;
}

/* Evita il alone chiaro del container Bootstrap intorno alla home */
.wrapper .content-page .container-fluid:has(.asc-home-page) {
    background: transparent;
}

@media (min-width: 992px) {
    .asc-home-page {

        padding: 1rem 1.25rem 2rem;
    }
}

.asc-home-shell {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 16px 48px rgba(0, 52, 120, 0.14), 0 4px 12px rgba(0, 0, 0, 0.05);
    background: #fff;
}

.asc-home-hero .asc-login-brand {
    min-height: 140px;
}

@media (min-width: 992px) {
    .asc-home-hero .asc-login-brand {
        min-height: 160px;
    }
}

.asc-home-hero .asc-login-form-col {
    align-items: flex-start;
    padding-top: 1.75rem;
    padding-bottom: 1.75rem;
}

.asc-home-hero-title {
    font-size: var(--asc-fs-subtitle);
    font-weight: 700;
    color: var(--asc-text-primary);
    margin-bottom: 0.35rem;
}

.asc-home-logo {
    max-width: min(200px, 55vw);
    height: auto;
    display: block;
    margin: 0 auto;
    filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.2));
}

.asc-home-panel {
    width: 100%;
    border: none;
    border-radius: 14px;
    padding: 1.5rem 1.25rem;
    box-shadow: 0 8px 28px rgba(0, 52, 100, 0.1);
    background: #fffef9;
}

.asc-home-welcome {
    border: none;
    border-radius: 12px;
    background: #fffef9;
    box-shadow: 0 8px 24px rgba(8, 48, 141, 0.08);
    padding: 1.2rem 1.2rem;
}

.asc-home-welcome h3 {
    margin: 0;
    color: #1b2434;
    font-weight: 700;
    font-size: 1.8rem;
}

.asc-home-welcome p {
    margin: 0.4rem 0 0;
    color: #5f6f82;
}

.asc-home-actions .asc-home-action-card {
    border: none;
    border-radius: 12px;
    background: #fffef9;
    box-shadow: 0 8px 24px rgba(8, 48, 141, 0.08);
    padding: 1.25rem;
    height: 100%;
}

.asc-home-action-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, rgba(18, 74, 200, 0.2) 0%, rgba(8, 48, 141, 0.1) 100%);
    color: #124ac8;
    font-size: 1.45rem;
    margin-bottom: 0.85rem;
}

.asc-home-action-title {
    font-weight: 700;
    color: #1b2434;
    margin-bottom: 0.2rem;
}

.asc-home-action-desc {
    color: #5f6f82;
    font-size: 0.92rem;
    margin-bottom: 0.65rem;
}

.asc-home-action-link {
    color: var(--asc-orange);
    font-weight: 600;
    text-decoration: none;
}

.asc-home-action-link:hover {
    color: #c8681a;
    text-decoration: underline;
}

.asc-home-stats .asc-home-stat-card {
    border: none;
    border-radius: 12px;
    background: #fffef9;
    box-shadow: 0 8px 22px rgba(8, 48, 141, 0.07);
    padding: 0.9rem 1rem;
    height: 100%;
}

.asc-home-stat-label {
    color: #6f7f91;
    font-size: 0.83rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.asc-home-stat-value {
    margin-top: 0.25rem;
    font-size: 2rem;
    line-height: 1;
    font-weight: 700;
    color: #1b2434;
}

@media (min-width: 576px) {
    .asc-home-panel {
        padding: 1.75rem 1.5rem;
    }
}

.asc-home-panel .asc-home-panel-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--asc-navy);
    margin-bottom: 0.25rem;
}

.asc-home-panel .card-title {
    color: var(--asc-navy);
    font-weight: 700;
}

.asc-consultazione-page .asc-consultazione-table thead th {
    background-color: #eef2f7 !important;
    color: var(--asc-navy) !important;
    font-weight: 600;
    border-bottom-color: #dee2e6 !important;
}

.asc-home-success-banner {
    background: rgba(0, 156, 222, 0.12);
    border: 1px solid rgba(0, 74, 153, 0.22);
    color: var(--asc-navy-deep);
    border-radius: 0.5rem;
    padding: 0.85rem 1rem;
}

.asc-home-announce {
    background: linear-gradient(90deg, rgba(0, 156, 222, 0.1) 0%, #fff 12%);
    border: 1px solid var(--asc-input-border);
    border-left: 4px solid var(--asc-celeste);
    border-radius: 0.5rem;
    color: #3d4f63;
}

.asc-home-announce h4 {
    color: var(--asc-navy);
    font-size: 1.05rem;
    font-weight: 700;
}

.asc-home-announce .asc-home-readmore {
    background: transparent;
    border: none;
    color: var(--asc-orange);
    font-weight: 600;
    text-decoration: none;
    padding: 0;
}

.asc-home-announce .asc-home-readmore:hover {
    text-decoration: underline;
    color: #c8681a;
}

.asc-home-tile {
    border: none;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(0, 52, 100, 0.08);
    background: #fffef9;
    border-top: 3px solid var(--asc-celeste);
}

.asc-home-tile .text-uppercase {
    color: #6b7c8e;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}

.asc-home-metric-val {
    font-weight: 700;
}

.asc-home-metric-val--navy {
    color: var(--asc-navy);
}

.asc-home-metric-val--celeste {
    color: var(--asc-celeste);
}

.asc-home-metric-val--orange {
    color: var(--asc-orange);
}

.asc-home-metric-val--navy-deep {
    color: var(--asc-navy-deep);
}

.asc-home-metric-val--green {
    color: #0acf97;
}

.asc-home-metric-val--coral {
    color: #fa5c7c;
}

.asc-home-chart-card {
    border: none;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(0, 52, 100, 0.08);
    background: #fffef9;
}

.asc-home-chart-card .header-title {
    color: var(--asc-text-primary);
    font-weight: 700;
    font-size: var(--asc-fs-section);
}

/* -------------------------------------------------------------------------- */
/* Topbar applicativo — palette Registrazione / login ASC                      */
/* -------------------------------------------------------------------------- */

/* Topbar a tutta larghezza: copre anche la colonna sidebar; logo a sinistra */
.navbar-custom.asc-topbar.asc-topbar-layout {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap;
    align-items: stretch;
    padding-left: 0 !important;
    padding-right: 12px !important;
}

.navbar-custom.asc-topbar {
    position: fixed !important;
    isolation: isolate;
    background: var(--asc-shell-gradient) !important;
    background-attachment: fixed;
    box-shadow: 0 8px 24px rgba(8, 48, 141, 0.3), inset 0 -1px 0 rgba(255, 255, 255, 0.08);
    border-bottom: 3px solid var(--asc-orange);
    min-height: var(--asc-topbar-height) !important;
}

/* Velo + trama come sidebar: stessa atmosfera su tutta la topbar */
.navbar-custom.asc-topbar::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--asc-shell-overlay);
    pointer-events: none;
    z-index: 0;
}

.navbar-custom.asc-topbar > * {
    position: relative;
    z-index: 1;
}

.asc-topbar-brand {
    flex: 0 0 260px;
    width: 260px;
    max-width: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
    /* Il gradiente è dipinto dalla topbar: qui solo separatore, stessa lettura cromatica */
    background: transparent;
    box-sizing: border-box;
}

.asc-topbar-brand .logo {
    position: static !important;
    width: 100% !important;
    line-height: normal !important;
    margin: 0 !important;
    display: none;
    align-items: center;
    justify-content: center;
    min-height: calc(var(--asc-topbar-height) - 12px);
}

.asc-topbar-brand .logo.logo-light {
    display: flex !important;
}

.asc-topbar-brand .logo.logo-dark {
    display: none !important;
}

body[data-leftbar-theme="light"] .asc-topbar-brand .logo.logo-light {
    display: none !important;
}

body[data-leftbar-theme="light"] .asc-topbar-brand .logo.logo-dark {
    display: flex !important;
}

.asc-topbar-logo-wrap {
    text-decoration: none !important;
}

.asc-topbar-logo-img {
    max-width: 200px;
    width: 100%;
    height: auto;
    max-height: calc(var(--asc-topbar-height) - 20px);
    display: block;
    filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.4)) drop-shadow(0 0 18px rgba(0, 200, 255, 0.2));
}

.asc-topbar-brand .logo span.logo-lg {
    width: 100% !important;
    max-width: 100%;
    display: flex !important;
    justify-content: center;
    align-items: center;
}

/* Hyper sposta la navbar quando la sidebar è compatta o nascosta: topbar ASC resta full-bleed */
body[data-leftbar-compact-mode=condensed]:not(.authentication-bg) .wrapper .navbar-custom.asc-topbar,
body[data-leftbar-compact-mode=condensed]:not(.authentication-bg) .wrapper .navbar-custom.asc-topbar.asc-topbar-layout {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

body[data-layout=full].hide-menu .content-page .navbar-custom.asc-topbar,
body[data-layout=full].hide-menu .content-page .navbar-custom.asc-topbar.asc-topbar-layout {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

body[data-leftbar-compact-mode="condensed"]:not(.authentication-bg) .asc-topbar-brand {
    flex-basis: 70px;
    width: 70px;
    max-width: 70px;
    padding: 4px 6px;
}

body[data-leftbar-compact-mode="condensed"]:not(.authentication-bg) .asc-topbar-logo-img {
    max-width: 58px;
}

.asc-topbar-actions {
    flex: 1 1 auto;
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    min-width: 0;
}

.navbar-custom.asc-topbar .asc-topbar-actions .topbar-menu {
    float: none !important;
    display: flex !important;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: 0 !important;
}

.navbar-custom.asc-topbar .asc-topbar-actions .topbar-menu > li {
    float: none !important;
}

/* Contenuto sotto la topbar fissa + sfondo e tipografia (foglio stile) */
.wrapper .content-page {
    padding-top: var(--asc-topbar-height) !important;
    background: linear-gradient(168deg, var(--asc-page-top) 0%, var(--asc-page-mid) 48%, var(--asc-page-bottom) 100%) !important;
    color: var(--asc-text-primary);
    font-size: var(--asc-fs-body);
}

.wrapper .content-page .page-title-box .page-title {
    font-size: var(--asc-fs-title-page) !important;
    line-height: 1.25 !important;
    color: var(--asc-text-primary) !important;
}

.wrapper .content-page .breadcrumb-item,
.wrapper .content-page .breadcrumb-item a {
    font-size: var(--asc-fs-secondary);
}

.wrapper .content-page h1,
.wrapper .content-page .h1 {
    font-size: var(--asc-fs-title-page) !important;
}

.wrapper .content-page h2,
.wrapper .content-page .h2 {
    font-size: var(--asc-fs-card-title) !important;
}

.wrapper .content-page h3,
.wrapper .content-page .h3 {
    font-size: var(--asc-fs-section) !important;
}

.wrapper .content-page h4,
.wrapper .content-page .h4 {
    font-size: var(--asc-fs-subtitle) !important;
}

.wrapper .content-page h5,
.wrapper .content-page .h5,
.wrapper .content-page h6,
.wrapper .content-page .h6 {
    font-size: var(--asc-fs-body) !important;
}

.wrapper .content-page .table,
.wrapper .content-page .table th,
.wrapper .content-page .table td {
    font-size: var(--asc-fs-secondary);
}

.wrapper .content-page .btn-primary {
    background: linear-gradient(180deg, var(--asc-highlight-from) 0%, var(--asc-highlight-to) 100%) !important;
    border-color: var(--asc-orange) !important;
    color: #fff !important;
    font-size: var(--asc-fs-body);
}

.wrapper .content-page .btn-primary:hover,
.wrapper .content-page .btn-primary:focus {
    background: linear-gradient(180deg, #c94a05 0%, #e07020 100%) !important;
    border-color: #c94a05 !important;
    color: #fff !important;
}

.wrapper .content-page small,
.wrapper .content-page .small,
.wrapper .content-page .text-muted {
    font-size: var(--asc-fs-label);
}

/* Etichette moduli: minimo corpo 16px (evita testo troppo piccolo) */
.wrapper .content-page .form-label,
.wrapper .content-page label.col-form-label,
.wrapper .content-page .col-form-label {
    font-size: var(--asc-fs-body) !important;
}

.wrapper .content-page .form-check-label {
    font-size: var(--asc-fs-secondary) !important;
}

.wrapper .content-page .input-group-text {
    font-size: var(--asc-fs-secondary);
}

/* Select: freccia a chevron (come Bootstrap) + aspetto ASC */
.wrapper .content-page select.form-select:not([multiple]):not([size]),
.wrapper .content-page select.form-select[size="1"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2313253D' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.2' d='M2 5.5l6 5.5 6-5.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.9rem center;
    background-size: 15px 12px;
    border: 1px solid var(--asc-input-border);
    border-radius: 10px;
    padding: 0.55rem 2.85rem 0.55rem 1rem;
    font-size: var(--asc-fs-body);
    font-weight: 500;
    line-height: 1.45;
    color: var(--asc-text-primary);
    box-shadow: 0 1px 3px rgba(19, 37, 61, 0.07);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.wrapper .content-page select.form-select:not([multiple]):not([size]):hover:not(:disabled),
.wrapper .content-page select.form-select[size="1"]:hover:not(:disabled) {
    border-color: rgba(18, 55, 160, 0.4);
    box-shadow: 0 2px 6px rgba(18, 55, 160, 0.1);
}

.wrapper .content-page select.form-select:not([multiple]):not([size]):focus,
.wrapper .content-page select.form-select[size="1"]:focus {
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23009cde' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.2' d='M2 5.5l6 5.5 6-5.5'/%3E%3C/svg%3E");
    border-color: var(--asc-celeste);
    outline: 0;
    box-shadow: 0 0 0 0.22rem rgba(0, 156, 222, 0.22), 0 2px 8px rgba(18, 55, 160, 0.08);
}

.wrapper .content-page select.form-select:not([multiple]):not([size]):disabled,
.wrapper .content-page select.form-select[size="1"]:disabled {
    background-color: var(--asc-form-panel-bg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%238391a2' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5.5l6 5.5 6-5.5'/%3E%3C/svg%3E");
    color: #6c757d;
    cursor: not-allowed;
    opacity: 0.92;
}

.wrapper .content-page select.form-select[multiple],
.wrapper .content-page select.form-select[size]:not([size="1"]) {
    background-image: none;
    padding-right: 1rem;
}

/* Validazione: doppia icona (freccia + stato), come Bootstrap */
.wrapper .content-page .was-validated select.form-select:valid:not([multiple]):not([size]),
.wrapper .content-page .was-validated select.form-select:valid:not([multiple])[size="1"],
.wrapper .content-page select.form-select.is-valid:not([multiple]):not([size]),
.wrapper .content-page select.form-select.is-valid:not([multiple])[size="1"] {
    padding-right: 4.35rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2313253D' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.2' d='M2 5.5l6 5.5 6-5.5'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");
    background-position: right 0.9rem center, center right 2.65rem;
    background-size: 15px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.wrapper .content-page .was-validated select.form-select:invalid:not([multiple]):not([size]),
.wrapper .content-page .was-validated select.form-select:invalid:not([multiple])[size="1"],
.wrapper .content-page select.form-select.is-invalid:not([multiple]):not([size]),
.wrapper .content-page select.form-select.is-invalid:not([multiple])[size="1"] {
    padding-right: 4.35rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2313253D' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.2' d='M2 5.5l6 5.5 6-5.5'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23dc3545' stroke-linecap='round' stroke-width='1.5' d='M3 3l6 6M9 3L3 9'/%3E%3C/svg%3E");
    background-position: right 0.9rem center, center right 2.65rem;
    background-size: 15px 12px, 12px 12px;
}

.wrapper .content-page .form-select-sm:not([multiple]):not([size]),
.wrapper .content-page .form-select-sm[size="1"] {
    padding: 0.35rem 2.35rem 0.35rem 0.7rem;
    font-size: var(--asc-fs-secondary);
    background-size: 13px 10px;
    background-position: right 0.65rem center;
    border-radius: 8px;
}

/* Sidebar sotto la topbar (logo non più nella colonna) */
.wrapper .leftside-menu.asc-leftbar {
    top: var(--asc-topbar-height) !important;
    padding-top: 0 !important;
}

body[data-leftbar-compact-mode=condensed]:not(.authentication-bg) .wrapper .leftside-menu.asc-leftbar {
    padding-top: 0 !important;
}

body[data-layout=full].hide-menu[data-leftbar-compact-mode=condensed] .wrapper .leftside-menu.asc-leftbar {
    padding-top: 0 !important;
}

.navbar-custom.asc-topbar .topbar-left {
    background: var(--asc-shell-gradient) !important;
    height: var(--asc-topbar-height) !important;
}

.navbar-custom.asc-topbar .topbar-left .logo {
    line-height: var(--asc-topbar-height) !important;
}

.navbar-custom.asc-topbar .topbar-menu li {
    max-height: var(--asc-topbar-height) !important;
}

.navbar-custom.asc-topbar .topbar-dropdown .nav-link {
    line-height: var(--asc-topbar-height) !important;
}

.navbar-custom.asc-topbar .notification-list .noti-icon {
    line-height: var(--asc-topbar-height) !important;
}

.navbar-custom.asc-topbar .notification-list .noti-icon-badge {
    top: 22px;
    background-color: var(--asc-orange) !important;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
}

.navbar-custom.asc-topbar .nav-user {
    min-height: var(--asc-topbar-height) !important;
}

.navbar-custom.asc-topbar .nav-user .account-user-avatar {
    top: calc((var(--asc-topbar-height) - 32px) / 2);
}

.navbar-custom.asc-topbar .asc-topbar-nav {
    display: flex !important;
    align-items: center !important;
    min-height: var(--asc-topbar-height) !important;
    padding-top: 0 !important;
}

.navbar-custom.asc-topbar .topbar-menu .nav-link {
    color: rgba(255, 255, 255, 0.95) !important;
}

.navbar-custom.asc-topbar .topbar-menu li .show.nav-link {
    color: #fff !important;
}

.navbar-custom.asc-topbar .asc-topbar-muted {
    color: rgba(255, 255, 255, 0.82) !important;
}

.navbar-custom.asc-topbar .asc-topbar-strong {
    color: #fff !important;
    font-weight: 700;
}

.navbar-custom.asc-topbar .noti-icon {
    color: rgba(255, 255, 255, 0.95) !important;
}

.navbar-custom.asc-topbar .button-menu-mobile {
    height: var(--asc-topbar-height) !important;
    line-height: var(--asc-topbar-height) !important;
    margin-left: 0 !important;
    color: rgba(255, 255, 255, 0.95) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
}

.navbar-custom.asc-topbar .button-menu-mobile:hover {
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.08);
}

.navbar-custom.asc-topbar .asc-topbar-user {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
}

.navbar-custom.asc-topbar .asc-topbar-user:hover,
.navbar-custom.asc-topbar .asc-topbar-user:focus {
    background: rgba(255, 255, 255, 0.16) !important;
}

.navbar-custom.asc-topbar .asc-topbar-user .account-user-name {
    color: #fff !important;
}

.navbar-custom.asc-topbar .profile-dropdown .dropdown-header {
    background: linear-gradient(90deg, rgba(0, 156, 222, 0.12) 0%, #fff 100%);
    color: var(--asc-navy);
    font-weight: 600;
}

.navbar-custom.asc-topbar .profile-dropdown .dropdown-item {
    color: var(--asc-navy-deep);
}

.navbar-custom.asc-topbar .profile-dropdown .dropdown-item:hover {
    background: var(--asc-form-panel-bg);
    color: var(--asc-navy);
}

/* -------------------------------------------------------------------------- */
/* Sidebar sinistra — voci piatte su blu; solo attivo = riquadro arancione      */
/* -------------------------------------------------------------------------- */

/* position: fixed è obbligatorio: con relative il menu entra nel flusso e il content-page va sotto la colonna */
.leftside-menu.asc-leftbar {
    position: fixed !important;
    left: 0 !important;
    bottom: 0 !important;
    isolation: isolate;
    overflow: hidden;
    background: var(--asc-shell-gradient) !important;
    background-attachment: fixed;
    box-shadow: var(--asc-shell-shadow);
    border-right: none !important;
}

.leftside-menu.asc-leftbar::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--asc-shell-overlay);
    pointer-events: none;
    z-index: 0;
}

.leftside-menu.asc-leftbar #leftside-menu-container {
    position: relative;
    z-index: 1;
    background: transparent !important;
    padding-top: 0.5rem;
    padding-bottom: 1rem;
}

.leftside-menu.asc-leftbar .side-nav {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

/* Niente “card” sulle righe: annulla anche background inline dei partial legacy */
.leftside-menu.asc-leftbar .side-nav .side-nav-item {
    background: transparent !important;
    margin-bottom: 0.15rem;
}

.leftside-menu.asc-leftbar .side-nav > .side-nav-item > a.side-nav-link {
    display: flex !important;
    align-items: center !important;
    gap: 0.65rem !important;
    border-radius: 14px !important;
    margin: 0.2rem 0.35rem !important;
    padding: 0.65rem 1rem !important;
    font-size: var(--asc-fs-body) !important;
    font-weight: 600 !important;
    color: var(--asc-on-primary) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease !important;
}

.leftside-menu.asc-leftbar .side-nav > .side-nav-item > a.side-nav-link:hover,
.leftside-menu.asc-leftbar .side-nav > .side-nav-item > a.side-nav-link:focus-visible {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.08) !important;
}

/* Voce attiva (Hyper: .menuitem-active sul <li> e .active sul <a>) */
.leftside-menu.asc-leftbar .side-nav > .side-nav-item.menuitem-active > a.side-nav-link,
.leftside-menu.asc-leftbar .side-nav > .side-nav-item > a.side-nav-link.active {
    background: linear-gradient(180deg, var(--asc-highlight-from) 0%, var(--asc-highlight-to) 100%) !important;
    color: #fff !important;
    box-shadow: 0 2px 10px rgba(232, 89, 10, 0.4) !important;
}

.leftside-menu.asc-leftbar .side-nav > .side-nav-item > a.side-nav-link i {
    font-size: 1.25rem !important;
    line-height: 1 !important;
    width: 1.35rem !important;
    text-align: center !important;
    flex-shrink: 0 !important;
    filter: none !important;
}

.leftside-menu.asc-leftbar .side-nav .collapse {
    position: relative !important;
    margin: 0.1rem 0.25rem 0.4rem 0.5rem !important;
    padding: 0.25rem 0 0.35rem 0.65rem !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border-left: 2px solid rgba(255, 255, 255, 0.22) !important;
    overflow: visible;
}

.leftside-menu.asc-leftbar .side-nav .collapse::before {
    display: none !important;
}

/* Primo sottomenu: corpo 16px; attivo = solo testo arancione (niente riquadro) */
.leftside-menu.asc-leftbar .side-nav-second-level li a {
    color: rgba(255, 255, 255, 0.94) !important;
    font-size: var(--asc-fs-body) !important;
    font-weight: 600 !important;
    border-radius: 10px;
    padding: 0.5rem 0.7rem !important;
    background: transparent !important;
    box-shadow: none !important;
    transition: background 0.18s ease, color 0.18s ease !important;
}

.leftside-menu.asc-leftbar .side-nav-second-level li a:hover,
.leftside-menu.asc-leftbar .side-nav-second-level li a:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.06) !important;
}

.leftside-menu.asc-leftbar .side-nav-second-level li.active > a,
.leftside-menu.asc-leftbar .side-nav-second-level li.menuitem-active > a,
.leftside-menu.asc-leftbar .side-nav-second-level a.active {
    background: transparent !important;
    box-shadow: none !important;
    color: var(--asc-orange) !important;
    font-weight: 700 !important;
}

.leftside-menu.asc-leftbar .side-nav-second-level li.menuitem-active > a:hover,
.leftside-menu.asc-leftbar .side-nav-second-level li.menuitem-active > a:focus,
.leftside-menu.asc-leftbar .side-nav-second-level a.active:hover,
.leftside-menu.asc-leftbar .side-nav-second-level a.active:focus {
    background: transparent !important;
    color: var(--asc-highlight-to) !important;
}

/* Livelli più profondi: testo leggibile; attivo resta pill arancione */
.leftside-menu.asc-leftbar .side-nav-third-level li a,
.leftside-menu.asc-leftbar .side-nav-forth-level li a {
    color: rgba(255, 255, 255, 0.92) !important;
    font-size: var(--asc-fs-body) !important;
    font-weight: 600 !important;
    border-radius: 10px;
    padding: 0.45rem 0.65rem !important;
    background: transparent !important;
    transition: background 0.18s ease, color 0.18s ease !important;
}

.leftside-menu.asc-leftbar .side-nav-third-level li a:hover,
.leftside-menu.asc-leftbar .side-nav-third-level li a:focus,
.leftside-menu.asc-leftbar .side-nav-forth-level li a:hover,
.leftside-menu.asc-leftbar .side-nav-forth-level li a:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.06) !important;
}

.leftside-menu.asc-leftbar .side-nav-third-level li.active > a,
.leftside-menu.asc-leftbar .side-nav-forth-level li.active > a,
.leftside-menu.asc-leftbar .side-nav-third-level li.menuitem-active > a,
.leftside-menu.asc-leftbar .side-nav-forth-level li.menuitem-active > a,
.leftside-menu.asc-leftbar .side-nav-third-level a.active,
.leftside-menu.asc-leftbar .side-nav-forth-level a.active {
    background: linear-gradient(180deg, var(--asc-highlight-from) 0%, var(--asc-highlight-to) 100%) !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(232, 89, 10, 0.35) !important;
}

.leftside-menu.asc-leftbar .simplebar-scrollbar:before {
    background: rgba(255, 255, 255, 0.35);
    border-radius: 4px;
}
