/*
 * IsorsCert UI v3 - Premium layer su isors-modern.css
 * Obiettivo: tabelle ultra-intuitive, microinteraction, premium feel
 * Caricato DOPO isors-modern.css per override mirati.
 * Zero modifiche a markup/JS esistente: pure CSS + helper classi opt-in (.ic3-*).
 */

/* =========================================
 * 0) Token v3 (premium palette)
 * ========================================= */
:root {
    --ic3-accent:        #4f46e5;   /* indigo 600 */
    --ic3-accent-hov:    #4338ca;
    --ic3-accent-soft:   #eef2ff;
    --ic3-grad-1:        linear-gradient(135deg, #4f46e5 0%, #2563eb 50%, #0ea5e9 100%);
    --ic3-grad-2:        linear-gradient(135deg, #10b981 0%, #14b8a6 100%);
    --ic3-grad-warn:     linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);
    --ic3-sheen:         linear-gradient(120deg, transparent 0%, rgba(255,255,255,.45) 50%, transparent 100%);
    --ic3-glass:         rgba(255,255,255,.72);
    --ic3-shadow-card:   0 1px 2px rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.06);
    --ic3-shadow-hover:  0 4px 12px rgba(16,24,40,.10), 0 18px 36px rgba(37,99,235,.12);
    --ic3-r-lg: 16px;
    --ic3-r-xl: 22px;
}

/* =========================================
 * 1) Tipografia base premium
 * ========================================= */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    letter-spacing: -0.005em;
}

/* Headings ridotti, più moderni */
h1, h2, h3, h4, h5 { letter-spacing: -0.02em; }
.content-header > h1 {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 800 !important;
}
.content-header > h1 > small {
    display: block;
    font-weight: 400;
    color: var(--ic-muted) !important;
    margin-top: 4px;
    letter-spacing: 0;
}

/* =========================================
 * 2) Box / Card premium
 * ========================================= */
.box {
    border: 1px solid var(--ic-border-soft) !important;
    box-shadow: var(--ic3-shadow-card) !important;
    border-radius: var(--ic3-r-lg) !important;
    overflow: hidden;
    transition: box-shadow var(--ic-dur) var(--ic-ease), transform var(--ic-dur) var(--ic-ease);
}
.box.box-primary { border-top-color: transparent !important; }
.box.box-primary::before {
    content: ""; display: block;
    height: 4px;
    background: var(--ic3-grad-1);
}
.box.box-success::before { content:""; display:block; height:4px; background: var(--ic3-grad-2); }
.box.box-danger::before  { content:""; display:block; height:4px; background: var(--ic3-grad-warn); }
.box.box-warning::before { content:""; display:block; height:4px; background: var(--ic3-grad-warn); }
.box.box-info::before    { content:""; display:block; height:4px; background: linear-gradient(135deg, #0ea5e9, #06b6d4); }

.box-header.with-border {
    border-bottom: 1px solid var(--ic-border-soft) !important;
    padding: 16px 22px;
    background: #fcfcfd;
}
.box-header .box-title {
    font-size: 15px !important;
    font-weight: 700 !important;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ic-text) !important;
}
.box-header .box-title > .fa {
    width: 30px; height: 30px;
    background: var(--ic3-accent-soft);
    color: var(--ic3-accent);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.box-body { padding: 20px 22px; }

/* =========================================
 * 3) Tabelle premium V3 - ultra-intuitive
 * ========================================= */

/* Wrapper card-table */
.ic3-table-wrap {
    background: #fff;
    border-radius: var(--ic3-r-lg);
    box-shadow: var(--ic3-shadow-card);
    overflow: hidden;
    border: 1px solid var(--ic-border-soft);
}

/* Toolbar sopra tabella (search + filter chips + action) */
.ic3-table-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--ic-border-soft);
    background: #fafbfd;
    flex-wrap: wrap;
}
.ic3-table-toolbar .ic3-search {
    position: relative;
    flex: 1;
    min-width: 220px;
    max-width: 380px;
}
.ic3-table-toolbar .ic3-search input {
    width: 100%;
    padding: 9px 14px 9px 40px;
    border: 1px solid var(--ic-border);
    border-radius: 9999px;
    font-size: 13px;
    background: #fff;
    transition: all var(--ic-dur);
}
.ic3-table-toolbar .ic3-search input:focus {
    border-color: var(--ic3-accent);
    box-shadow: 0 0 0 4px var(--ic3-accent-soft);
    outline: none;
}
.ic3-table-toolbar .ic3-search::before {
    content: "\f002"; /* fa-search */
    font-family: FontAwesome;
    position: absolute;
    left: 14px; top: 50%;
    transform: translateY(-50%);
    color: var(--ic-faint);
    font-size: 13px;
}
.ic3-filter-chips {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}
.ic3-chip {
    border: 1px solid var(--ic-border);
    background: #fff;
    color: var(--ic-text-2);
    padding: 6px 12px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--ic-dur);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.ic3-chip:hover { background: var(--ic-bg); color: var(--ic-text); border-color: #cbd5e1; }
.ic3-chip.is-active {
    background: var(--ic3-accent);
    color: #fff;
    border-color: var(--ic3-accent);
    box-shadow: 0 2px 8px rgba(79,70,229,.30);
}

/* KPI chip live nella toolbar (conteggio record) */
.ic3-kpi-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 9999px;
    background: var(--ic3-accent-soft, #eef2ff);
    border: 1px solid var(--ic-border-soft, #e2e8f0);
    white-space: nowrap;
}
.ic3-kpi-chip .ic3-kpi-num {
    font-size: 15px;
    font-weight: 800;
    color: var(--ic3-accent, #4f46e5);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.ic3-kpi-chip .ic3-kpi-lbl {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 700;
    color: var(--ic-text-2, #64748b);
}
.ic3-kpi-chip.is-warn { background: #fff7ed; border-color: #fed7aa; }
.ic3-kpi-chip.is-warn .ic3-kpi-num { color: #ea580c; }

/* Titolo sezione nella toolbar (tabelle multi-sezione) */
.ic3-sec-title { font-size: 14px; font-weight: 800; color: #0f172a; display: inline-flex; align-items: center; gap: 8px; }
.ic3-sec-title i { color: var(--ic3-accent, #4f46e5); }

/* Scheda con card moderna + identity bar (schede partner/sede: form densi legacy) */
.ic3-scheda-card.panel { border: none !important; box-shadow: none !important; background: transparent !important; }
.ic3-scheda-card > .panel-heading { display: none !important; }
.ic3-scheda-card > .panel-body { background: #fff; border: 1px solid var(--ic-border-soft, #e2e8f0); border-radius: 16px; box-shadow: var(--ic3-shadow-card); padding: 0 !important; }
.ic3-idbar { display: flex; align-items: center; gap: 16px; padding: 20px 24px; border-bottom: 1px solid #eef1f6; flex-wrap: wrap; }
.ic3-idbar .logo { width: 64px; height: 64px; border-radius: 14px; object-fit: contain; background: #f8fafc; border: 1px solid #eef1f6; padding: 6px; }
.ic3-idbar .av { width: 64px; height: 64px; border-radius: 14px; background: linear-gradient(135deg, #4f46e5, #2563eb); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 22px; }
.ic3-idbar .nm { font-size: 19px; font-weight: 800; color: #0f172a; line-height: 1.2; }
.ic3-idbar .rl { font-size: 12px; color: #64748b; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-top: 3px; }
.ic3-idbar .sp { margin-left: auto; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ic3-scheda-card .nav-tabs { padding: 6px 18px 0; margin: 0; border-bottom: 2px solid #eef1f6; background: #fafbfd; border-radius: 0; }
.ic3-scheda-card .nav-tabs > li > a { border: none; color: #64748b; font-weight: 700; font-size: 13.5px; border-radius: 0; margin-right: 4px; }
.ic3-scheda-card .nav-tabs > li.active > a, .ic3-scheda-card .nav-tabs > li.active > a:hover { border: none; color: var(--ic3-accent, #4f46e5); background: transparent; border-bottom: 2px solid var(--ic3-accent, #4f46e5); margin-bottom: -2px; }
.ic3-scheda-card .tab-content { padding: 22px 24px 8px; }

/* Scheda profilo utente (esaminatore / deliberante / staff) - riusabile */
.ic3-profile { display: grid; grid-template-columns: 320px 1fr; gap: 22px; align-items: start; }
@media (max-width: 900px) { .ic3-profile { grid-template-columns: 1fr; } }
.ic3-profile-side {
    background: #fff; border: 1px solid var(--ic-border-soft, #e2e8f0); border-radius: var(--ic3-r-lg, 16px);
    box-shadow: var(--ic3-shadow-card); padding: 24px 20px; text-align: center; position: sticky; top: 16px;
}
.ic3-avatar {
    width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 14px;
    background: linear-gradient(135deg, #4f46e5, #2563eb); color: #fff; font-size: 30px; font-weight: 800;
    display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px rgba(37,99,235,.28);
}
.ic3-profile-name { font-size: 18px; font-weight: 800; color: #0f172a; line-height: 1.25; }
.ic3-profile-role { font-size: 11.5px; color: #64748b; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-top: 3px; }
.ic3-status-badge { display: inline-flex; align-items: center; gap: 6px; margin-top: 13px; padding: 5px 14px; border-radius: 9999px; font-size: 12px; font-weight: 700; }
.ic3-status-badge.is-active { background: #d1fae5; color: #059669; }
.ic3-status-badge.is-pending { background: #fff7ed; color: #ea580c; }
.ic3-profile-meta { text-align: left; margin: 18px 0 6px; border-top: 1px solid #eef1f6; padding-top: 14px; }
.ic3-profile-meta .m { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; font-size: 13px; }
.ic3-profile-meta .m .k { color: #94a3b8; font-weight: 600; flex: 0 0 auto; }
.ic3-profile-meta .m .v { color: #0f172a; font-weight: 600; text-align: right; word-break: break-word; }
.ic3-profile-firma { margin: 6px 0 14px; padding: 10px; border: 1px dashed #cbd5e1; border-radius: 10px; background: #fafbfd; text-align: center; }
.ic3-profile-firma .lbl { font-size: 11px; color: #94a3b8; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; margin-bottom: 5px; }
.ic3-profile-firma img { max-height: 58px; max-width: 100%; }
.ic3-profile-actions { margin-top: 6px; }
.ic3-profile-actions .btn { display: block; width: 100%; margin-top: 9px; font-weight: 600; }
.ic3-profile-main {
    background: #fff; border: 1px solid var(--ic-border-soft, #e2e8f0); border-radius: var(--ic3-r-lg, 16px);
    box-shadow: var(--ic3-shadow-card); padding: 20px 24px;
}
.ic3-profile-main .nav-tabs { border-bottom: 2px solid #eef1f6; margin-bottom: 18px; }
.ic3-profile-main .nav-tabs > li > a { border: none; color: #64748b; font-weight: 700; font-size: 13.5px; border-radius: 0; }
.ic3-profile-main .nav-tabs > li.active > a,
.ic3-profile-main .nav-tabs > li.active > a:hover { border: none; color: var(--ic3-accent, #4f46e5); background: transparent; border-bottom: 2px solid var(--ic3-accent, #4f46e5); margin-bottom: -2px; }
.ic3-doc-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid #eef1f6; border-radius: 11px; margin-bottom: 10px; background: #fafbfd; }
.ic3-doc-row .di { width: 38px; height: 38px; border-radius: 9px; background: #eef2ff; color: #4f46e5; display: flex; align-items: center; justify-content: center; font-size: 17px; flex: 0 0 38px; }
.ic3-doc-row .dt { font-weight: 700; font-size: 13.5px; color: #334155; }
.ic3-doc-row.is-ok .di { background: #d1fae5; color: #059669; }

/* Tabella core */
.ic3-table-wrap .table {
    margin-bottom: 0 !important;
    border: none;
}
.ic3-table-wrap .table > thead > tr > th {
    background: #fafbfd !important;
    color: #64748b !important;
    font-size: 11px !important;
    letter-spacing: .08em !important;
    text-transform: uppercase;
    font-weight: 700 !important;
    padding: 14px 18px !important;
    border-bottom: 1px solid var(--ic-border) !important;
    position: sticky;
    top: 0;
    z-index: 2;
}
.ic3-table-wrap .table > tbody > tr {
    transition: background-color .14s var(--ic-ease), transform .14s var(--ic-ease);
}
.ic3-table-wrap .table > tbody > tr > td {
    padding: 14px 18px !important;
    border-top: 1px solid var(--ic-border-soft) !important;
    vertical-align: middle;
    background: transparent;
}
.ic3-table-wrap .table > tbody > tr:first-child > td { border-top: none !important; }
.ic3-table-wrap .table-hover > tbody > tr:hover {
    background: linear-gradient(90deg, var(--ic3-accent-soft) 0%, rgba(255,255,255,0) 90%) !important;
}

/* Cella avatar/icon a sinistra */
.ic3-cell-lead {
    display: flex;
    align-items: center;
    gap: 12px;
}
.ic3-avatar {
    width: 38px; height: 38px;
    border-radius: 10px;
    background: var(--ic3-grad-1);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
    letter-spacing: 0;
    box-shadow: 0 2px 6px rgba(37,99,235,.25);
}
.ic3-avatar--success { background: var(--ic3-grad-2); box-shadow: 0 2px 6px rgba(16,185,129,.25); }
.ic3-avatar--warn    { background: var(--ic3-grad-warn); box-shadow: 0 2px 6px rgba(245,158,11,.25); }
.ic3-avatar--mute    { background: #e5e7eb; color: #4b5563; box-shadow: none; }
/* Fix allineamento: l'avatar-tabella NON deve ereditare il "margin:0 auto 14px"
   dell'avatar-profilo (stesso selettore .ic3-avatar, riga ~232). Dentro la cella
   flex quel margine auto centrava l'avatar e disallineava le righe. */
.ic3-cell-lead .ic3-avatar { margin: 0; align-self: center; }
.ic3-cell-lead .ic3-cell-title {
    font-weight: 600;
    color: var(--ic-text);
    line-height: 1.3;
}
.ic3-cell-lead .ic3-cell-sub {
    font-size: 12px;
    color: var(--ic-muted);
    margin-top: 1px;
}

/* Status pill V3 (più colorato e premium) */
.ic3-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    line-height: 1;
}
.ic3-status::before {
    content: "";
    width: 6px; height: 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 3px rgba(255,255,255,.6);
}
.ic3-status--ok    { background: #ecfdf5; color: #047857; }
.ic3-status--warn  { background: #fffbeb; color: #b45309; }
.ic3-status--err   { background: #fef2f2; color: #b91c1c; }
.ic3-status--info  { background: #eff6ff; color: #1e40af; }
.ic3-status--mute  { background: #f3f4f6; color: #4b5563; }
.ic3-status--ok::before    { background: #10b981; box-shadow: 0 0 0 3px rgba(16,185,129,.18); }
.ic3-status--warn::before  { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245,158,11,.18); }
.ic3-status--err::before   { background: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.18); }
.ic3-status--info::before  { background: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,.18); }
.ic3-status--mute::before  { background: #94a3b8; box-shadow: 0 0 0 3px rgba(148,163,184,.18); }

/* Row actions: visibili sempre su tablet/desktop, fade-in su hover su desktop large */
.ic3-row-actions {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    justify-content: flex-end;
}
.ic3-row-actions .btn {
    width: 32px; height: 32px;
    padding: 0 !important;
    border-radius: 8px !important;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ic3-row-actions .btn-default {
    background: #fff !important;
    border-color: var(--ic-border) !important;
    color: var(--ic-text-2) !important;
}
.ic3-row-actions .btn-default:hover {
    background: var(--ic3-accent-soft) !important;
    border-color: var(--ic3-accent) !important;
    color: var(--ic3-accent) !important;
    transform: translateY(-1px);
}
.ic3-row-actions .btn-danger {
    background: #fff !important;
    border-color: #fecaca !important;
    color: #b91c1c !important;
}
.ic3-row-actions .btn-danger:hover {
    background: #fef2f2 !important;
    border-color: #ef4444 !important;
    color: #b91c1c !important;
}

/* Numerico, mono-spaced */
.ic3-num {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
    font-weight: 600;
    color: var(--ic-text);
}

/* Empty state inside table */
.ic3-table-wrap tbody tr.ic3-empty-row > td {
    text-align: center !important;
    padding: 60px 20px !important;
    color: var(--ic-muted);
    background: #fafbfd;
}
.ic3-table-wrap tbody tr.ic3-empty-row .ic3-empty-icon {
    font-size: 42px;
    color: #cbd5e1;
    margin-bottom: 10px;
}

/* Mobile: trasforma tabella in cards */
@media (max-width: 767px) {
    .ic3-table-wrap .table.ic3-stack-mobile,
    .ic3-table-wrap .table.ic3-stack-mobile thead,
    .ic3-table-wrap .table.ic3-stack-mobile tbody,
    .ic3-table-wrap .table.ic3-stack-mobile tr,
    .ic3-table-wrap .table.ic3-stack-mobile td {
        display: block;
        width: 100%;
    }
    .ic3-table-wrap .table.ic3-stack-mobile thead { display: none; }
    .ic3-table-wrap .table.ic3-stack-mobile tbody tr {
        border: 1px solid var(--ic-border-soft);
        border-radius: 12px;
        margin: 12px;
        padding: 6px 0;
        background: #fff;
    }
    .ic3-table-wrap .table.ic3-stack-mobile tbody tr > td {
        text-align: right;
        padding: 9px 14px !important;
        border-top: 1px solid var(--ic-border-soft) !important;
    }
    .ic3-table-wrap .table.ic3-stack-mobile tbody tr > td:first-child {
        border-top: none !important;
        background: #fafbfd;
        text-align: left;
        font-weight: 700;
        border-radius: 12px 12px 0 0;
    }
    .ic3-table-wrap .table.ic3-stack-mobile tbody tr > td::before {
        content: attr(data-label);
        float: left;
        color: var(--ic-muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .06em;
        font-weight: 600;
    }
}

/* =========================================
 * 4) Bottoni premium V3
 * ========================================= */
.ic3-btn-grad {
    background: var(--ic3-grad-1) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(37,99,235,.30) !important;
    position: relative;
    overflow: hidden;
}
.ic3-btn-grad::after {
    content: ""; position: absolute; inset: 0;
    background: var(--ic3-sheen);
    transform: translateX(-100%);
    transition: transform .6s var(--ic-ease);
}
.ic3-btn-grad:hover::after { transform: translateX(100%); }
.ic3-btn-grad:hover {
    box-shadow: 0 6px 20px rgba(37,99,235,.42) !important;
    transform: translateY(-1px);
}

.ic3-btn-soft {
    background: var(--ic3-accent-soft) !important;
    color: var(--ic3-accent) !important;
    border: 1px solid transparent !important;
}
.ic3-btn-soft:hover {
    background: var(--ic3-accent) !important;
    color: #fff !important;
}

.ic3-btn-pill { border-radius: 9999px !important; }
.ic3-btn-icon {
    width: 36px; height: 36px;
    padding: 0 !important;
    border-radius: 50% !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Intestazione di una card ic3 (titolo sezione sopra tabella/contenuto) */
.ic3-card-head {
    padding: 16px 22px;
    border-bottom: 1px solid #eef1f6;
    background: #fafbfd;
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.ic3-card-head h3 {
    margin: 0; font-size: 15px; font-weight: 800;
    color: #0f172a; letter-spacing: -.01em;
}
.ic3-card-head .ic3-head-actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* Riga di card affiancate (dashboard/BI): wrappa su mobile */
.ic3-bi-row { display: flex; gap: 18px; flex-wrap: wrap; }
.ic3-bi-row > .ic3-table-wrap { margin: 0; }

/* Mini-KPI in griglia dentro una card */
.ic3-mini-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 18px; text-align: center; }
.ic3-mini .v { font-size: 23px; font-weight: 800; letter-spacing: -.02em; }
.ic3-mini .l { font-size: 12px; color: #64748b; font-weight: 600; margin-top: 4px; }

/* =========================================
 * 5) Form premium V3
 * ========================================= */
.ic3-field {
    position: relative;
    margin-bottom: 16px;
}
.ic3-field input,
.ic3-field select,
.ic3-field textarea {
    width: 100%;
    padding: 14px 14px 14px 14px;
    border: 1.5px solid var(--ic-border);
    border-radius: 10px;
    background: #fff;
    font-size: 14px;
    transition: all var(--ic-dur) var(--ic-ease);
    outline: none;
}
.ic3-field input:focus,
.ic3-field select:focus,
.ic3-field textarea:focus {
    border-color: var(--ic3-accent);
    box-shadow: 0 0 0 4px var(--ic3-accent-soft);
}
/* Floating label */
.ic3-field.ic3-floating { padding-top: 6px; }
.ic3-field.ic3-floating > label {
    position: absolute;
    left: 14px;
    top: 18px;
    background: #fff;
    padding: 0 6px;
    color: var(--ic-muted);
    font-size: 14px;
    font-weight: 500;
    pointer-events: none;
    transition: all .15s var(--ic-ease);
}
.ic3-field.ic3-floating > input:focus + label,
.ic3-field.ic3-floating > input:not(:placeholder-shown) + label,
.ic3-field.ic3-floating > select:focus + label,
.ic3-field.ic3-floating > textarea:focus + label {
    top: -8px;
    font-size: 11px;
    color: var(--ic3-accent);
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.ic3-field-help {
    margin-top: 6px;
    font-size: 12px;
    color: var(--ic-muted);
}

/* Search hero (cerca grande in alto pagina) */
.ic3-search-hero {
    position: relative;
    max-width: 480px;
    margin-bottom: 16px;
}
.ic3-search-hero input {
    width: 100%;
    padding: 14px 18px 14px 50px;
    border: 1.5px solid var(--ic-border);
    border-radius: 14px;
    font-size: 15px;
    background: #fff;
    transition: all var(--ic-dur);
    box-shadow: var(--ic3-shadow-card);
}
.ic3-search-hero input:focus {
    outline: none;
    border-color: var(--ic3-accent);
    box-shadow: var(--ic3-shadow-hover), 0 0 0 4px var(--ic3-accent-soft);
}
.ic3-search-hero::before {
    content: "\f002";
    font-family: FontAwesome;
    position: absolute;
    left: 18px; top: 50%;
    transform: translateY(-50%);
    color: var(--ic-faint);
    font-size: 16px;
}

/* =========================================
 * 6) Stats card (KPI premium)
 * ========================================= */
.ic3-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}
.ic3-stat-card {
    background: #fff;
    border: 1px solid var(--ic-border-soft);
    border-radius: var(--ic3-r-lg);
    padding: 18px 20px;
    box-shadow: var(--ic3-shadow-card);
    transition: all .2s var(--ic-ease);
    position: relative;
    overflow: hidden;
}
.ic3-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--ic3-shadow-hover);
    border-color: transparent;
}
.ic3-stat-card .ic3-stat-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    background: var(--ic3-accent-soft);
    color: var(--ic3-accent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    margin-bottom: 10px;
}
.ic3-stat-card .ic3-stat-value {
    font-size: 30px;
    font-weight: 800;
    color: var(--ic-text);
    line-height: 1.05;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.ic3-stat-card .ic3-stat-label {
    color: var(--ic-muted);
    font-size: 12px;
    margin-top: 4px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.ic3-stat-card .ic3-stat-trend {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-top: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--ic-success);
}
.ic3-stat-card .ic3-stat-trend.is-down { color: var(--ic-danger); }
.ic3-stat-card.is-accent { background: var(--ic3-grad-1); border: none; }
.ic3-stat-card.is-accent .ic3-stat-icon { background: rgba(255,255,255,.20); color: #fff; }
.ic3-stat-card.is-accent .ic3-stat-value,
.ic3-stat-card.is-accent .ic3-stat-label,
.ic3-stat-card.is-accent .ic3-stat-trend { color: #fff !important; }

/* =========================================
 * 7) Modal premium V3
 * ========================================= */
.modal-backdrop.in { opacity: .55; background: #0f172a; }
.modal-content {
    border-radius: var(--ic3-r-lg) !important;
    border: none !important;
    box-shadow: 0 30px 80px rgba(15,23,42,.35) !important;
}
.modal-header {
    padding: 18px 24px !important;
    border-bottom: 1px solid var(--ic-border-soft) !important;
    background: #fcfcfd;
    border-radius: var(--ic3-r-lg) var(--ic3-r-lg) 0 0;
}
.modal-header .close {
    background: #f3f4f6;
    border-radius: 50%;
    width: 32px; height: 32px;
    line-height: 32px;
    text-align: center;
    margin-top: -4px !important;
    opacity: .8;
    transition: all .15s;
    text-shadow: none;
    font-weight: 400;
    font-size: 20px;
    color: #6b7280;
}
.modal-header .close:hover {
    background: #fef2f2;
    color: #dc2626;
    opacity: 1;
    transform: rotate(90deg);
}
.modal-body { padding: 22px 24px !important; }
.modal-footer {
    padding: 16px 24px !important;
    background: #fafbfd;
    border-top: 1px solid var(--ic-border-soft) !important;
    border-radius: 0 0 var(--ic3-r-lg) var(--ic3-r-lg);
}

/* =========================================
 * 8) Sidebar premium V3 - micro-anim
 * ========================================= */
.skin-blue .main-sidebar {
    background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%) !important;
}
.skin-blue .sidebar-menu > li > a {
    position: relative;
    overflow: hidden;
}
.skin-blue .sidebar-menu > li > a::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: var(--ic3-accent);
    transform: scaleY(0);
    transition: transform .2s var(--ic-ease);
    transform-origin: center;
}
.skin-blue .sidebar-menu > li:hover > a::before,
.skin-blue .sidebar-menu > li.active > a::before,
.skin-blue .sidebar-menu > li.menu-open > a::before {
    transform: scaleY(1);
}

/* Badge counter sidebar (es. messaggi non letti) */
.skin-blue .sidebar-menu > li > a .pull-right-container .label {
    background: var(--ic3-accent) !important;
    color: #fff !important;
    border-radius: 9999px !important;
    padding: 2px 8px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    box-shadow: 0 2px 8px rgba(79,70,229,.4);
}

/* =========================================
 * 9) Header (navbar) premium
 * ========================================= */
.skin-blue .main-header .navbar,
.skin-blue .main-header .logo {
    background-color: #fff !important;
    color: var(--ic-text) !important;
    border-bottom: none !important;   /* via la linea sottile bianca sotto la navbar/logo */
    box-shadow: none !important;
}
.skin-blue .main-header .logo {
    color: var(--ic3-accent) !important;
    font-weight: 800 !important;
    border-right: none !important;    /* via la linea tra logo e navbar */
    letter-spacing: -0.02em;
}
.skin-blue .main-header .logo:hover { background-color: #fafbfd !important; }
.skin-blue .main-header .navbar .sidebar-toggle,
.skin-blue .main-header .navbar .nav > li > a {
    color: var(--ic-text-2) !important;
}
.skin-blue .main-header .navbar .sidebar-toggle:hover,
.skin-blue .main-header .navbar .nav > li > a:hover {
    background-color: var(--ic3-accent-soft) !important;
    color: var(--ic3-accent) !important;
}

/* =========================================
 * 10) Page header (titolo pagina con azioni)
 * ========================================= */
.ic3-page-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 18px;
}
.ic3-page-head h1, .ic3-page-head h2 {
    margin: 0;
    font-weight: 800;
    letter-spacing: -0.02em;
}
.ic3-page-head .ic3-page-actions {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}
.ic3-breadcrumb {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--ic-muted);
    margin-bottom: 6px;
}
.ic3-breadcrumb a { color: var(--ic-muted); text-decoration: none; }
.ic3-breadcrumb a:hover { color: var(--ic3-accent); }
.ic3-breadcrumb > i { font-size: 9px; opacity: .6; }

/* =========================================
 * 11) Tag categoria (es. tipologia certificazione)
 * ========================================= */
.ic3-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    background: #f1f5f9;
    color: #475569;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.ic3-tag--accent { background: var(--ic3-accent-soft); color: var(--ic3-accent); }

/* =========================================
 * 12) Skeleton loader (per JS che setta .is-loading)
 * ========================================= */
.ic3-skeleton {
    position: relative;
    background: linear-gradient(90deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%);
    background-size: 200% 100%;
    animation: ic3SkeletonShimmer 1.4s infinite linear;
    border-radius: 6px;
    color: transparent !important;
    pointer-events: none;
    user-select: none;
}
@keyframes ic3SkeletonShimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* =========================================
 * 13) Counter animation hint (JS aggiunge data-target)
 * ========================================= */
.ic3-counter[data-target] { transition: opacity .3s; }

/* =========================================
 * 14) Accent helpers utility
 * ========================================= */
.ic3-text-grad {
    background: var(--ic3-grad-1);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 800;
}
.ic3-divider {
    height: 1px;
    background: var(--ic-border-soft);
    margin: 16px 0;
    border: none;
}
.ic3-divider-soft { background: var(--ic-border-soft); }

/* =========================================
 * 15) Animations utility
 * ========================================= */
.ic3-fade-in { animation: ic3FadeIn .35s var(--ic-ease) both; }
.ic3-slide-up { animation: ic3SlideUp .4s var(--ic-ease) both; }
@keyframes ic3FadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes ic3SlideUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* Stagger reveal su righe tabella */
.ic3-table-wrap tbody tr { animation: ic3RowIn .35s var(--ic-ease) both; }
.ic3-table-wrap tbody tr:nth-child(1)  { animation-delay: .02s; }
.ic3-table-wrap tbody tr:nth-child(2)  { animation-delay: .05s; }
.ic3-table-wrap tbody tr:nth-child(3)  { animation-delay: .08s; }
.ic3-table-wrap tbody tr:nth-child(4)  { animation-delay: .11s; }
.ic3-table-wrap tbody tr:nth-child(5)  { animation-delay: .14s; }
.ic3-table-wrap tbody tr:nth-child(6)  { animation-delay: .17s; }
.ic3-table-wrap tbody tr:nth-child(7)  { animation-delay: .20s; }
.ic3-table-wrap tbody tr:nth-child(8)  { animation-delay: .23s; }
.ic3-table-wrap tbody tr:nth-child(n+9){ animation-delay: .26s; }
@keyframes ic3RowIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* =========================================
 * 17) Reduce motion
 * ========================================= */
@media (prefers-reduced-motion: reduce) {
    .ic3-table-wrap tbody tr,
    .ic3-fade-in, .ic3-slide-up { animation: none !important; }
    .ic3-btn-grad::after { display: none; }
}

/* =========================================
 * 18) Layout CORSISTA: sidebar ridotta ma presente
 * Il corsista ha un'area personale minimale ma con sidebar di navigazione
 * (dashboard, profilo, iscrizioni, certificati). Aggiornato 2026-05-22 su
 * richiesta utente: la sidebar c'e' anche per il corsista.
 * ========================================= */
body.is-corsista .main-sidebar {
    /* Sidebar piu' stretta per il corsista (3 voci di menu) */
    width: 220px !important;
}
@media (min-width: 768px) {
    body.is-corsista .content-wrapper,
    body.is-corsista .main-footer {
        margin-left: 220px !important;
    }
}
body.is-corsista .sidebar-menu > li > a {
    padding: 14px 18px !important;
    font-size: 14px;
    font-weight: 600;
}
body.is-corsista .sidebar-menu > li > a > .fa {
    width: 22px;
    text-align: center;
    margin-right: 10px;
}

/* Pulse hint sulla sezione "Completa profilo" del banner pending */
body.is-corsista .alert .btn { animation: ic3PulseHint 2.4s ease-in-out infinite; }
@keyframes ic3PulseHint {
    0%, 100% { box-shadow: 0 0 0 0 rgba(245,158,11,.55); }
    50%      { box-shadow: 0 0 0 12px rgba(245,158,11,0); }
}

/* =========================================
 * 20) DataTables sort indicators: una sola freccia, pulita
 *     Override completo dei marker AdminLTE/DataTables che mostravano
 *     piu' triangoli sovrapposti per colonna. Una sola freccia FontAwesome.
 * ========================================= */

/* Rimuovi qualsiasi background-image / sprite di DataTables default */
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled,
table.dataTable thead th.sorting,
table.dataTable thead th.sorting_asc,
table.dataTable thead th.sorting_desc {
    background-image: none !important;
    background-repeat: no-repeat;
    background-position: center right;
    padding-right: 26px !important;
    cursor: pointer;
    position: relative;
    user-select: none;
}

/* Rimuovi pseudo-elementi DataTables built-in che disegnano i triangoli ▲ ▼ */
table.dataTable thead .sorting::before,
table.dataTable thead .sorting::after,
table.dataTable thead .sorting_asc::before,
table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::before,
table.dataTable thead .sorting_desc::after,
table.dataTable thead .sorting_asc_disabled::before,
table.dataTable thead .sorting_asc_disabled::after,
table.dataTable thead .sorting_desc_disabled::before,
table.dataTable thead .sorting_desc_disabled::after,
table.dataTable thead th.sorting::before,
table.dataTable thead th.sorting::after,
table.dataTable thead th.sorting_asc::before,
table.dataTable thead th.sorting_asc::after,
table.dataTable thead th.sorting_desc::before,
table.dataTable thead th.sorting_desc::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Singola icona "sortable" (non ordinata): freccette double sottili */
table.dataTable thead th.sorting {
    position: relative;
}
table.dataTable thead th.sorting::after {
    content: "\f0dc" !important;          /* fa-sort */
    font-family: FontAwesome !important;
    font-weight: normal !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: .35 !important;
    position: absolute !important;
    right: 9px !important;
    top: 50% !important;
    transform: translateY(-50%);
    font-size: 11px;
    color: #94a3b8;
    pointer-events: none;
}

/* Freccia singola SU per asc */
table.dataTable thead th.sorting_asc::after {
    content: "\f0de" !important;          /* fa-sort-up */
    font-family: FontAwesome !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    right: 9px !important;
    top: 50% !important;
    transform: translateY(-25%);
    font-size: 12px;
    color: var(--ic3-accent);
    pointer-events: none;
}

/* Freccia singola GIU per desc */
table.dataTable thead th.sorting_desc::after {
    content: "\f0dd" !important;          /* fa-sort-down */
    font-family: FontAwesome !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    right: 9px !important;
    top: 50% !important;
    transform: translateY(-75%);
    font-size: 12px;
    color: var(--ic3-accent);
    pointer-events: none;
}

/* Hover sull'header: anticipa l'intenzione cambiando opacita' freccia */
table.dataTable thead th.sorting:hover::after {
    opacity: .8 !important;
    color: var(--ic3-accent) !important;
}

/* Sortable disabled: rimuovi le frecce */
table.dataTable thead th.sorting_asc_disabled::after,
table.dataTable thead th.sorting_desc_disabled::after {
    content: none !important;
}

/* DataTables responsive: nascondi expand "+" indicator se non c'e' contenuto */
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child {
    padding-left: 18px;
}

/* =========================================
 * 22) Navbar premium con logo immagine
 * ========================================= */
.skin-blue .main-header .logo {
    /* Box logo NAVY = stesso colore del top della sidebar: la colonna sinistra
       (logo + sidebar) e' un blocco navy continuo, allineato. */
    background: #0f172a !important;
    border-right: none !important;
    padding: 0 18px !important;
    height: 60px !important;
    line-height: 60px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    transition: background-color .2s, transform .2s;
}
.skin-blue .main-header .logo img {
    max-height: 38px;
    width: auto;
    display: inline-block;
    filter: brightness(0) invert(1) !important;  /* logo bianco su navy */
}
.skin-blue .main-header .logo:hover {
    background: linear-gradient(135deg, #f8fafc, #eef2ff) !important;
}
.skin-blue .main-header .logo:hover img {
    transform: scale(1.02);
}

/* Logo mini (sidebar collapsed) - usa la palla IsorsCert */
.ic3-logo-palla {
    transition: transform .25s var(--ic-ease);
}
.skin-blue .main-header .logo:hover .ic3-logo-palla {
    transform: rotate(8deg) scale(1.08);
}
/* Quando la sidebar e' collassata, il logo wrapper si stringe */
.sidebar-collapse .main-header .logo {
    width: 60px !important;
    padding: 0 !important;
}

/* Ricerca globale tabelle nella navbar superiore (a destra, prima delle icone) */
.skin-blue .main-header .navbar .ic3-navsearch {
    float: right;
    display: flex;
    align-items: center;
    height: 60px;
    margin: 0 6px 0 0;
    padding: 0;
    border: none;
}
.ic3-navsearch-box { position: relative; }
.ic3-navsearch-box .fa-search {
    position: absolute;
    left: 14px; top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 14px;
    pointer-events: none;
}
.skin-blue .main-header .navbar .ic3-navsearch-box input.form-control {
    height: 38px;
    width: 260px;
    max-width: 40vw;
    padding: 0 16px 0 44px !important;   /* spazio per la lente: il testo non ci finisce sotto */
    text-indent: 0;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #f5f7fa;
    color: #1f2937;
    font-size: 14px;
    box-shadow: none;
    transition: width .2s ease, border-color .15s, box-shadow .15s, background .15s;
}
.skin-blue .main-header .navbar .ic3-navsearch-box input.form-control::placeholder { color: #94a3b8; }
.skin-blue .main-header .navbar .ic3-navsearch-box input.form-control:focus {
    background: #fff;
    border-color: var(--ic3-accent, #2c8fcf);
    box-shadow: 0 0 0 3px rgba(44,143,207,.15);
    width: 320px;
}
@media (max-width: 991px) {
    .skin-blue .main-header .navbar .ic3-navsearch { display: none; }
}

/* Dropdown risultati ricerca globale */
.ic3-search-dd {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 380px;
    max-width: 82vw;
    max-height: 70vh;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    box-shadow: 0 16px 40px rgba(15,23,42,.20);
    z-index: 1200;
    padding: 6px;
    text-align: left;
}
.ic3-search-g {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #94a3b8;
    font-weight: 700;
    padding: 9px 12px 4px;
}
.ic3-search-item {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 8px 12px;
    border-radius: 9px;
    text-decoration: none;
    color: #1f2937;
}
.ic3-search-item:hover,
.ic3-search-item:focus { background: #f1f5f9; color: #1f2937; }
.ic3-search-l { font-weight: 600; font-size: 13.5px; }
.ic3-search-s { font-size: 12px; color: #94a3b8; }
.ic3-search-empty { padding: 16px; text-align: center; color: #94a3b8; font-size: 13px; }

/* Main header navbar height per allineamento logo */
.skin-blue .main-header > .navbar {
    min-height: 60px !important;
    height: 60px !important;
}
.skin-blue .main-header .navbar .navbar-custom-menu > .nav > li > a {
    padding: 18px 14px !important;
    font-size: 14px;
    transition: background-color .15s;
}

/* User dropdown nella navbar: chip-style premium con ellipsis su nomi lunghi */
.skin-blue .main-header .navbar .nav > li.user-menu > a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px;
    padding: 10px 18px !important;
    background: var(--ic3-accent-soft) !important;
    color: var(--ic3-accent) !important;
    border-radius: 9999px;
    margin: 10px 8px;
    font-weight: 600;
    max-width: 280px;
    overflow: hidden;
    line-height: 1.2;
}
.skin-blue .main-header .navbar .nav > li.user-menu > a:hover {
    background: var(--ic3-accent) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(79,70,229,.30);
}
.skin-blue .main-header .navbar .nav > li.user-menu > a > .hidden-xs {
    font-weight: 600;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 200px;
    display: inline-block;
}
.skin-blue .main-header .navbar .nav > li.user-menu > a > .hidden-xs b {
    font-weight: 500;
    opacity: .75;
    font-size: 11px;
    margin-left: 4px;
    display: none; /* nascondi etichetta ruolo: gia' nella sidebar card. Riduce overflow. */
}
.skin-blue .main-header .navbar .nav > li.user-menu > a::before {
    content: "\f007"; /* fa-user */
    font-family: FontAwesome;
    font-size: 14px;
    background: rgba(255,255,255,.5);
    width: 28px; height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Su mobile/tablet stretto: shrink ulteriormente il chip user */
@media (max-width: 991px) {
    .skin-blue .main-header .navbar .nav > li.user-menu > a {
        max-width: 180px;
        padding: 8px 12px !important;
    }
    .skin-blue .main-header .navbar .nav > li.user-menu > a > .hidden-xs {
        max-width: 110px;
        font-size: 12px;
    }
}
@media (max-width: 600px) {
    .skin-blue .main-header .navbar .nav > li.user-menu > a > .hidden-xs {
        display: none !important;
    }
    .skin-blue .main-header .navbar .nav > li.user-menu > a {
        padding: 8px 10px !important;
    }
}

/* Layout-fix: navbar non deve essere troppo affollata su small screens.
 * Le icone notifica si nascondono progressivamente. */
@media (max-width: 768px) {
    .skin-blue .main-header .navbar .nav > li.notifications-menu:not(:nth-last-child(-n+2)) {
        display: none;
    }
}

/* Notifications icons (admin/partner): allineamento + dimensione badge */
.skin-blue .main-header .navbar .nav > li.notifications-menu > a {
    position: relative;
    padding: 18px 12px !important;
    color: var(--ic-text-2) !important;
}
.skin-blue .main-header .navbar .nav > li.notifications-menu > a > .fa {
    font-size: 17px !important;
    color: var(--ic-text-2);
}
.skin-blue .main-header .navbar .nav > li.notifications-menu > a > .label {
    position: absolute;
    top: 10px;
    right: 4px;
    font-size: 10px !important;
    padding: 2px 6px !important;
    min-width: 18px;
    height: 18px;
    line-height: 14px;
    border-radius: 9999px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,.18);
    font-weight: 800;
}

/* Logout link distinto */
.skin-blue .main-header .navbar .nav > li:last-child > a {
    color: var(--ic-text-2) !important;
}
.skin-blue .main-header .navbar .nav > li:last-child > a:hover {
    background: #fef2f2 !important;
    color: #dc2626 !important;
}

/* =========================================
 * 23) Sidebar premium con user profile card
 * ========================================= */
.skin-blue .main-sidebar {
    box-shadow: 4px 0 18px rgba(15,23,42,.15);
    border-right: 1px solid rgba(255,255,255,.04);
    /* La navbar e' alta 60px e ha z-index < sidebar: se la sidebar e' absolute
       (layout non-fixed) scorre con la pagina e, avendo z-index maggiore, COPRE
       il logo dell'header quando scrolli. Soluzione: sidebar FIXED sotto l'header
       (top:60) -> resta sempre visibile e non invade mai l'area del logo. */
    position: fixed !important;
    top: 0 !important;            /* la sidebar parte dal top: il logo ne fa parte */
    bottom: 0 !important;
    left: 0 !important;
    padding-top: 0 !important;
    overflow-y: auto !important;
    z-index: 1050 !important;     /* sopra l'header: "taglia" la parte sinistra della barra superiore */
}
.skin-blue .main-sidebar .sidebar {
    padding-top: 0 !important;
}
/* Sidebar mobile (768px) e content layout: AdminLTE default ha .main-sidebar
   padding-top:50px su mobile; alleliniamo anche li' alla nostra navbar 60px. */
@media (max-width: 767px) {
    .skin-blue .main-sidebar { padding-top: 60px !important; }
}

/* Logo in cima alla sidebar: stessa altezza della navbar (60px), parte della colonna navy.
   Allineato tutto a SINISTRA (come le voci di menu). */
.ic3-sidebar-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 60px;
    padding: 0 18px;
    margin: 0 0 6px 0;
    border-bottom: 1px solid rgba(255,255,255,.06);
    transition: opacity .2s ease;
}
.ic3-sidebar-brand img {
    height: 34px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    filter: brightness(0) invert(1);   /* logo bianco su navy */
}
.ic3-sidebar-brand .ic3-brand-mini { display: none; }
.ic3-sidebar-brand:hover { opacity: .85; }
/* Sidebar collassata (chiusa): mostra solo la "palla", centrata */
.sidebar-collapse .ic3-sidebar-brand { justify-content: center; padding: 0 4px; }
.sidebar-collapse .ic3-sidebar-brand .ic3-brand-lg { display: none; }
.sidebar-collapse .ic3-sidebar-brand .ic3-brand-mini { display: inline-block; height: 28px; }

/* Barra superiore "tagliata" a sinistra: il box logo dell'header sparisce,
   la colonna sinistra e' tutta sidebar (logo + menu). */
.skin-blue .main-header .logo { display: none !important; }

/* User profile card in cima alla sidebar */
.ic3-sidebar-user {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 16px 18px;
    margin: 0 12px 14px 12px;
    background: linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.02) 100%);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(4px);
}
.ic3-sidebar-user::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 0%, rgba(79,70,229,.20), transparent 60%);
    pointer-events: none;
}
.ic3-sidebar-user > * { position: relative; z-index: 1; }

.ic3-sidebar-avatar {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--ic3-grad-1);
    color: #fff;
    font-weight: 800;
    font-size: 15px;
    letter-spacing: -.02em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(37,99,235,.30);
    border: 2px solid rgba(255,255,255,.10);
}

.ic3-sidebar-userinfo {
    flex: 1;
    min-width: 0;
}
.ic3-sidebar-name {
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    line-height: 1.2;
    letter-spacing: -.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ic3-sidebar-role {
    color: var(--role-c, #cbd5e1); /* audit #16: contrasto >=4.5:1 su sidebar scura */
    font-size: 11px;
    font-weight: 700;
    margin-top: 3px;
    letter-spacing: .04em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.ic3-sidebar-role-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--role-c, #94a3b8);
    box-shadow: 0 0 0 3px rgba(255,255,255,.12);
}

/* Sidebar collapsed: nasconde user info, mostra solo avatar mini */
.sidebar-collapse .ic3-sidebar-user {
    padding: 10px 0;
    justify-content: center;
}
.sidebar-collapse .ic3-sidebar-userinfo {
    display: none;
}
.sidebar-collapse .ic3-sidebar-avatar {
    width: 34px; height: 34px;
    font-size: 12px;
    border-radius: 10px;
}

/* Sidebar menu: padding e spacing piu generosi */
.skin-blue .sidebar-menu > li > a {
    padding: 12px 18px !important;
    color: rgba(255,255,255,.78) !important;
    font-weight: 500;
    font-size: 13.5px;
    border-radius: 0;
    transition: all .15s var(--ic-ease);
}
.skin-blue .sidebar-menu > li > a > .fa,
.skin-blue .sidebar-menu > li > a > .fas {
    width: 22px;
    font-size: 14px;
    color: rgba(255,255,255,.55);
    margin-right: 10px;
    transition: color .15s;
}
.skin-blue .sidebar-menu > li:hover > a,
.skin-blue .sidebar-menu > li.menu-open > a {
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
}
.skin-blue .sidebar-menu > li:hover > a > .fa,
.skin-blue .sidebar-menu > li.menu-open > a > .fa {
    color: var(--ic3-accent) !important;
}
.skin-blue .sidebar-menu > li.active > a,
.skin-blue .sidebar-menu > li.active > a:hover {
    background: linear-gradient(90deg, rgba(79,70,229,.18) 0%, rgba(79,70,229,0) 100%) !important;
    color: #fff !important;
    font-weight: 700;
}
.skin-blue .sidebar-menu > li.active > a > .fa,
.skin-blue .sidebar-menu > li.active > a > .fas {
    color: var(--ic3-accent) !important;
}

/* Sotto-menu treeview */
.skin-blue .sidebar-menu .treeview-menu > li > a {
    padding: 8px 14px 8px 50px !important;
    color: rgba(255,255,255,.65) !important;
    font-size: 12.5px;
}
.skin-blue .sidebar-menu .treeview-menu > li > a:hover {
    color: #fff !important;
    background: rgba(255,255,255,.04) !important;
}
.skin-blue .sidebar-menu .treeview-menu > li.active > a {
    color: var(--ic3-accent) !important;
    background: rgba(79,70,229,.10) !important;
}

/* Footer sidebar con piccolo brand */
.ic3-sidebar-footer {
    padding: 14px 16px;
    margin-top: 12px;
    border-top: 1px solid rgba(255,255,255,.06);
    color: rgba(255,255,255,.40);
    font-size: 11px;
    line-height: 1.4;
    text-align: center;
}
.ic3-sidebar-footer strong { color: rgba(255,255,255,.70); font-weight: 700; }
.sidebar-collapse .ic3-sidebar-footer { display: none; }

/* Corsista override: gradient piu morbido (consumer feel) */
body.is-corsista .ic3-sidebar-user::before {
    background: radial-gradient(circle at 20% 0%, rgba(34,211,238,.18), transparent 60%);
}
body.is-corsista .ic3-sidebar-avatar {
    background: linear-gradient(135deg, #22d3ee 0%, #0ea5e9 100%);
    box-shadow: 0 4px 12px rgba(14,165,233,.30);
}

/* =========================================
 * 21) Scrollbar custom (premium thin)
 *     Migliora le scrollbar (lista candidati lobby, sidebar lunghe, modali).
 * ========================================= */
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 9999px;
    border: 2px solid #fff;
    transition: background .2s;
}
*::-webkit-scrollbar-thumb:hover { background: var(--ic3-accent); }
/* Firefox */
* { scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; }

/* Sidebar AdminLTE: scrollbar dark per contrasto */
.main-sidebar .sidebar::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.20);
    border: 2px solid #0f172a;
}
.main-sidebar .sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(255,255,255,.45);
}
.main-sidebar .sidebar { scrollbar-color: rgba(255,255,255,.20) transparent; }

/* =========================================
 * 26) IsorsMeet grid (docente aula) - LIGHT THEME
 *      Tutti i candidati come video tile, fullscreen, audio routing 1-a-1
 * ========================================= */
.ic3-meet-wrap {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 60vh;
    background: #fff;
    border-radius: var(--ic3-r-lg);
    padding: 16px;
    box-shadow: var(--ic3-shadow-card);
    border: 1px solid var(--ic-border-soft);
}

/* Toolbar light theme */
.ic3-meet-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
    border: 1px solid var(--ic-border-soft);
    border-radius: 12px;
    padding: 12px 16px;
    flex-wrap: wrap;
}
.ic3-meet-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ic-text-2);
    font-size: 13px;
    font-weight: 600;
}
.ic3-meet-status > .fa { font-size: 15px; color: var(--ic-muted); }
.ic3-meet-status.is-talking { color: #b45309; }
.ic3-meet-status.is-talking > .fa { color: #f59e0b; }
.ic3-meet-status.is-talking strong { color: var(--ic-text); }
.ic3-meet-status.is-broadcasting { color: #c2410c; }
.ic3-meet-status.is-broadcasting > .fa { color: #f97316; }
.ic3-meet-toolbar-actions {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}
.ic3-meet-count {
    font-size: 12px;
    color: var(--ic-muted);
    font-weight: 600;
    padding: 4px 10px;
    background: #fff;
    border: 1px solid var(--ic-border-soft);
    border-radius: 9999px;
}

/* Grid layout adaptive: auto-fit min 280px per tile */
.ic3-meet-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
    align-items: stretch;
    min-height: 220px;
    position: relative;
}

/* Empty state */
.ic3-meet-empty {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    color: var(--ic-muted);
    background: #fafbfd;
    border: 2px dashed var(--ic-border);
    border-radius: 14px;
    padding: 60px 30px;
    text-align: left;
}
.ic3-meet-empty > .fa {
    font-size: 48px;
    color: #cbd5e1;
}
.ic3-meet-empty strong { color: var(--ic-text); font-size: 15px; }

/* Tile webcam - light theme */
.ic3-meet-tile {
    position: relative;
    background: #0f172a;
    border-radius: 14px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border: 2px solid transparent;
    transition: border-color .15s, transform .15s, box-shadow .15s;
    box-shadow: var(--ic3-shadow-card);
    min-height: 200px;
}
.ic3-meet-tile:hover { transform: translateY(-2px); box-shadow: var(--ic3-shadow-hover); }
.ic3-meet-tile > video {
    width: 100%; height: 100%;
    object-fit: cover;
    background: #0f172a;
    display: block;
}

/* Placeholder se non arriva ancora il video (loading) */
.ic3-meet-tile-noavatar {
    position: absolute; inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    color: #94a3b8;
    font-size: 12px;
}
.ic3-meet-tile-avatar {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: var(--ic3-grad-1);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 22px;
    box-shadow: 0 4px 12px rgba(37,99,235,.40);
}

/* Highlight stati */
.ic3-meet-tile.is-speaking {
    border-color: #10b981;
    box-shadow: 0 0 0 4px rgba(16,185,129,.18);
}
.ic3-meet-tile.is-pinned { border-color: #6366f1; }
.ic3-meet-tile.is-talking-to {
    border-color: #f59e0b;
    box-shadow: 0 0 0 4px rgba(245,158,11,.22);
}
.ic3-meet-tile.is-alert {
    border-color: #ef4444;
    animation: ic3MeetAlertPulse 1.2s infinite;
}
@keyframes ic3MeetAlertPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(239,68,68,.55); }
    50%      { box-shadow: 0 0 0 10px rgba(239,68,68,0); }
}

/* Label nome (in basso) */
.ic3-meet-tile-label {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 22px 14px 10px;
    background: linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,0));
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    pointer-events: none;
    z-index: 2;
}
.ic3-meet-tile-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic3-meet-tile-badges { display: inline-flex; gap: 4px; flex-shrink: 0; }
.ic3-meet-tile-badges .fa-thumb-tack { color: #a5b4fc; }
.ic3-meet-tile-badges .fa-microphone { color: #fbbf24; }
.ic3-meet-tile-badges .fa-exclamation-triangle { color: #fca5a5; }

/* Audio meter sotto la tile */
.ic3-meet-tile-meter {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 3px;
    background: rgba(255,255,255,.10);
    z-index: 2;
}
.ic3-meet-tile-meter > span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #10b981, #34d399, #fbbf24);
    width: 0%;
    transition: width .15s linear;
}

/* Bottoni azione (top-right, appaiono on-hover) */
.ic3-meet-tile-actions {
    position: absolute;
    top: 8px; right: 8px;
    display: flex;
    gap: 6px;
    z-index: 3;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .15s, transform .15s;
}
.ic3-meet-tile:hover .ic3-meet-tile-actions,
.ic3-meet-tile.is-talking-to .ic3-meet-tile-actions,
.ic3-meet-tile.is-pinned .ic3-meet-tile-actions { opacity: 1; transform: none; }

.ic3-meet-talk-btn,
.ic3-meet-pin-btn,
.ic3-meet-fs-btn {
    background: rgba(0,0,0,.65);
    color: #fff;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 9999px;
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    backdrop-filter: blur(6px);
    transition: background-color .15s, transform .15s;
    line-height: 1;
}
.ic3-meet-pin-btn, .ic3-meet-fs-btn { padding: 6px 8px; }
.ic3-meet-talk-btn:hover, .ic3-meet-pin-btn:hover, .ic3-meet-fs-btn:hover {
    background: var(--ic3-accent);
    border-color: var(--ic3-accent);
}
.ic3-meet-talk-btn.is-on {
    background: #fbbf24;
    color: #422006;
    border-color: #fbbf24;
    animation: ic3MeetTalkPulse 1.4s infinite;
}
@keyframes ic3MeetTalkPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(251,191,36,.55); }
    50%      { box-shadow: 0 0 0 8px rgba(251,191,36,0); }
}
.ic3-meet-tile.is-pinned .ic3-meet-pin-btn { background: #6366f1; border-color: #6366f1; }
.ic3-meet-talk-label { line-height: 1; }

/* Alert overlay (icona triangle in alto-sx) */
.ic3-meet-tile-alert {
    position: absolute;
    top: 8px; left: 8px;
    width: 32px; height: 32px;
    background: #ef4444;
    color: #fff;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 4px 10px rgba(239,68,68,.5);
    z-index: 3;
}
.ic3-meet-tile.is-alert .ic3-meet-tile-alert { display: inline-flex; }

/* Fullscreen styling: nasconde tutto tranne il video */
.ic3-meet-tile:fullscreen,
.ic3-meet-tile video:fullscreen { background: #000; }
video:fullscreen, video:-webkit-full-screen { width: 100vw !important; height: 100vh !important; object-fit: contain !important; background: #000 !important; }

/* Responsive */
@media (max-width: 991px) {
    .ic3-meet-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}
@media (max-width: 600px) {
    .ic3-meet-grid { grid-template-columns: 1fr; }
    .ic3-meet-toolbar { flex-direction: column; align-items: stretch; }
}
.ic3-meet-grid {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    gap: 10px;
    background: #0b1220;
    border-radius: 14px;
    padding: 10px;
    position: relative;
    min-height: 300px;
}
.ic3-meet-empty {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: #cbd5e1; /* audit #18: contrasto migliore per stato vuoto su sfondo scuro */
    background: rgba(255,255,255,.04);
    border-radius: 12px;
    padding: 30px;
    text-align: left;
}
.ic3-meet-empty > .fa {
    font-size: 44px;
    color: #475569;
}

/* Tile attiva con video */
.ic3-meet-tile {
    position: relative;
    background: #000;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    box-shadow: 0 4px 14px rgba(0,0,0,.4);
    border: 2px solid transparent;
    transition: border-color .15s, transform .15s, box-shadow .15s;
    cursor: pointer;
}
.ic3-meet-tile:hover { transform: scale(1.01); box-shadow: 0 6px 18px rgba(0,0,0,.5); }
.ic3-meet-tile > video {
    width: 100%; height: 100%;
    object-fit: cover;
    background: #000;
    display: block;
}
.ic3-meet-tile.is-speaking { border-color: #10b981; box-shadow: 0 0 0 3px rgba(16,185,129,.30); }
.ic3-meet-tile.is-pinned { border-color: #6366f1; }
.ic3-meet-tile.is-alert {
    border-color: #ef4444;
    animation: ic3MeetAlertPulse 1s infinite;
}
@keyframes ic3MeetAlertPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(239,68,68,.55); }
    50%      { box-shadow: 0 0 0 8px rgba(239,68,68,.0); }
}
.ic3-meet-tile-label {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 16px 12px 8px;
    background: linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,0));
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    pointer-events: none;
}
.ic3-meet-tile-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic3-meet-tile-badges { display: inline-flex; gap: 4px; flex-shrink: 0; }
.ic3-meet-tile-badges .fa-thumb-tack { color: #a5b4fc; }
.ic3-meet-tile-badges .fa-exclamation-triangle { color: #fca5a5; }

/* Meter audio sotto la tile (line bar) */
.ic3-meet-tile-meter {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 3px;
    background: rgba(0,0,0,.35);
    z-index: 2;
}
.ic3-meet-tile-meter > span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #10b981, #34d399, #fbbf24);
    width: 0%;
    transition: width .15s linear;
}

/* Alert overlay */
.ic3-meet-tile-alert {
    position: absolute;
    top: 8px; right: 8px;
    width: 32px; height: 32px;
    background: #ef4444;
    color: #fff;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 4px 10px rgba(239,68,68,.5);
    z-index: 3;
}
.ic3-meet-tile.is-alert .ic3-meet-tile-alert { display: inline-flex; }

/* Strip in basso: tutti gli altri candidati */
.ic3-meet-strip-wrap {
    background: #0b1220;
    border-radius: 14px;
    padding: 10px 12px;
}
.ic3-meet-strip-title {
    color: #cbd5e1;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.ic3-meet-strip-title small {
    color: #64748b;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    margin-left: 8px;
}
.ic3-meet-strip {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    min-height: 60px;
}
.ic3-meet-thumb {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: rgba(255,255,255,.04);
    border-radius: 10px;
    padding: 8px 6px;
    width: 76px;
    cursor: pointer;
    position: relative;
    transition: background-color .15s, transform .15s;
}
.ic3-meet-thumb:hover { background: rgba(255,255,255,.10); transform: translateY(-2px); }
.ic3-meet-thumb-avatar {
    width: 36px; height: 36px;
    background: linear-gradient(135deg, #4f46e5, #2563eb);
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 12px;
    box-shadow: 0 2px 6px rgba(37,99,235,.30);
}
.ic3-meet-thumb-meter {
    width: 28px;
    height: 3px;
    background: rgba(255,255,255,.10);
    border-radius: 2px;
    overflow: hidden;
    position: relative;
}
.ic3-meet-thumb-meter > span {
    position: absolute;
    bottom: 0; left: 0;
    width: 100%; height: 0%;
    background: linear-gradient(0deg, #10b981, #fbbf24);
    transition: height .15s linear;
}
.ic3-meet-thumb-name {
    color: #cbd5e1;
    font-size: 10px;
    line-height: 1.1;
    text-align: center;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 2px;
}

/* Responsive: su mobile passa a 2 colonne */
@media (max-width: 991px) {
    .ic3-meet-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .ic3-meet-grid { grid-template-columns: 1fr; }
}

/* =========================================
 * 25) Notification bell (navbar) + dropdown + /notifiche page
 * ========================================= */

/* Bell con pulse quando ci sono unread */
.ic3-notif-bell > a > .fa-bell {
    transition: transform .2s;
}
.ic3-notif-bell:hover > a > .fa-bell {
    transform: rotate(-10deg);
}
.ic3-notif-bell .ic3-notif-count {
    position: absolute;
    top: 8px;
    right: 2px;
    background: linear-gradient(135deg, #ef4444, #dc2626) !important;
    color: #fff !important;
    border-radius: 9999px !important;
    min-width: 18px;
    height: 18px;
    line-height: 14px;
    padding: 2px 5px !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    box-shadow: 0 2px 6px rgba(239,68,68,.50);
    animation: ic3NotifPulse 2.4s infinite;
}
@keyframes ic3NotifPulse {
    0%, 100% { box-shadow: 0 2px 6px rgba(239,68,68,.50); }
    50%      { box-shadow: 0 2px 6px rgba(239,68,68,.50), 0 0 0 6px rgba(239,68,68,.18); }
}

/* Dropdown menu del bell: piu' grande del default, scrollable */
.skin-blue .main-header .navbar .nav > li.ic3-notif-bell > .ic3-notif-dropdown {
    width: 380px !important;
    max-width: 92vw;
    padding: 0 !important;
    margin-top: 8px;
    box-shadow: 0 12px 32px rgba(15,23,42,.18) !important;
    border-radius: 14px !important;
    border: 1px solid var(--ic-border-soft) !important;
    overflow: hidden;
}

.ic3-notif-header {
    background: #fcfcfd;
    padding: 12px 16px !important;
    border-bottom: 1px solid var(--ic-border-soft);
    color: var(--ic-text);
    font-size: 14px;
}
.ic3-notif-header strong { font-weight: 700; }
.ic3-notif-header .ic3-notif-mark-all { color: var(--ic3-accent) !important; }
.ic3-notif-header .ic3-notif-mark-all:hover { text-decoration: underline; }

/* Divisore di sezione interno al dropdown */
.ic3-notif-section-title {
    padding: 8px 16px 4px !important;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ic-faint);
    background: #fcfcfd;
    border-top: 1px solid var(--ic-border-soft);
    border-bottom: 1px solid var(--ic-border-soft);
}
.ic3-notif-dropdown > li:first-child + .ic3-notif-section-title { border-top: none; }

/* Shortcut role-based compatte (sempre visibili anche con count=0) */
.ic3-notif-shortcuts > ul > li.ic3-notif-shortcut-item {
    border-bottom: 1px solid var(--ic-border-soft);
}
.ic3-notif-shortcuts > ul > li.ic3-notif-shortcut-item:last-child {
    border-bottom: none;
}
.ic3-notif-shortcuts > ul > li.ic3-notif-shortcut-item > a {
    display: flex !important;
    align-items: center !important;
    gap: 10px;
    padding: 10px 16px !important;
    text-decoration: none;
    color: var(--ic-text-2) !important;
    font-size: 13px !important;
    white-space: normal !important;
    line-height: 1.3 !important;
    transition: background-color .15s;
}
.ic3-notif-shortcuts > ul > li.ic3-notif-shortcut-item > a:hover {
    background: var(--ic3-accent-soft) !important;
    color: var(--ic-text) !important;
}
.ic3-notif-shortcut-icon {
    font-size: 15px !important;
    width: 22px;
    text-align: center;
    flex-shrink: 0;
}
.ic3-notif-shortcut-count {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--ic-muted);
    min-width: 18px;
    text-align: center;
    font-size: 13px;
}
.ic3-notif-shortcut-count.has-count {
    color: #dc2626;
    background: #fef2f2;
    padding: 1px 8px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 800;
}
.ic3-notif-shortcut-label {
    flex: 1;
    color: var(--ic-text-2) !important;
}
.ic3-notif-shortcuts > ul > li.has-count > a { background: #fffbeb; }
.ic3-notif-shortcuts > ul > li.has-count > a .ic3-notif-shortcut-label { color: var(--ic-text) !important; font-weight: 600; }
.ic3-notif-shortcuts > ul > li.has-count > a:hover { background: #fef3c7 !important; }

/* Color helpers per icone nelle shortcut (mappano i colori AdminLTE text-*) */
.ic3-notif-shortcut-icon.text-blue   { color: #3b82f6 !important; }
.ic3-notif-shortcut-icon.text-green  { color: #10b981 !important; }
.ic3-notif-shortcut-icon.text-aqua   { color: #06b6d4 !important; }
.ic3-notif-shortcut-icon.text-orange { color: #f97316 !important; }
.ic3-notif-shortcut-icon.text-red    { color: #ef4444 !important; }
.ic3-notif-shortcut-icon.text-purple { color: #8b5cf6 !important; }

.ic3-notif-list { max-height: 60vh; overflow-y: auto; }
.ic3-notif-list .menu { list-style: none; margin: 0; padding: 0; }
.ic3-notif-list .menu > li {
    border-bottom: 1px solid var(--ic-border-soft);
}
.ic3-notif-list .menu > li:last-child { border-bottom: none; }
.ic3-notif-list .menu > li > a {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px;
    padding: 12px 16px !important;
    text-decoration: none;
    color: var(--ic-text) !important;
    line-height: 1.4 !important;
    white-space: normal !important;
}
.ic3-notif-list .menu > li > a:hover {
    background: var(--ic3-accent-soft) !important;
}
.ic3-notif-item-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}
.ic3-notif-item-icon.color-success { background: #ecfdf5; color: #047857; }
.ic3-notif-item-icon.color-info    { background: #eff6ff; color: #1d4ed8; }
.ic3-notif-item-icon.color-warning { background: #fffbeb; color: #b45309; }
.ic3-notif-item-icon.color-danger  { background: #fef2f2; color: #b91c1c; }
.ic3-notif-item-icon.color-primary { background: var(--ic3-accent-soft); color: var(--ic3-accent); }
.ic3-notif-item-body { flex: 1; min-width: 0; }
.ic3-notif-item-title {
    font-weight: 700;
    font-size: 13px;
    color: var(--ic-text);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ic3-notif-item-text {
    color: var(--ic-text-2);
    font-size: 12px;
    margin-top: 2px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ic3-notif-item-ago {
    color: var(--ic-faint);
    font-size: 11px;
    margin-top: 3px;
}
.ic3-notif-list .menu > li.is-unread {
    background: #f8fafc;
    position: relative;
}
.ic3-notif-list .menu > li.is-unread::before {
    content: "";
    position: absolute;
    left: 4px; top: 50%;
    transform: translateY(-50%);
    width: 6px; height: 6px;
    background: var(--ic3-accent);
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(79,70,229,.18);
}

.ic3-notif-footer {
    border-top: 1px solid var(--ic-border-soft);
    background: #fafbfd;
    text-align: center;
    padding: 0 !important;
}
.ic3-notif-footer > a {
    display: block;
    padding: 10px 16px;
    font-size: 13px;
    color: var(--ic3-accent) !important;
    font-weight: 600;
}
.ic3-notif-footer > a:hover { background: var(--ic3-accent-soft); }

/* Pagina /notifiche full list */
.ic3-notif-page-card {
    background: #fff;
    border: 1px solid var(--ic-border-soft);
    border-radius: var(--ic3-r-lg);
    padding: 16px 20px;
    margin-bottom: 10px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
    transition: box-shadow .15s, transform .15s;
}
.ic3-notif-page-card:hover {
    box-shadow: var(--ic3-shadow-card);
    transform: translateY(-1px);
}
.ic3-notif-page-card.is-unread { border-left: 4px solid var(--ic3-accent); background: #fafbff; }
.ic3-notif-page-card .ic3-notif-item-icon { width: 46px; height: 46px; font-size: 18px; }

/* =========================================
 * 24) Order card (ordini-admin pending) - design pulito
 * ========================================= */
.ic3-order-card {
    background: #fff;
    border: 1px solid var(--ic-border-soft);
    border-left: 4px solid #f59e0b;
    border-radius: var(--ic3-r-lg);
    padding: 18px 22px;
    margin-bottom: 14px;
    box-shadow: var(--ic3-shadow-card);
    transition: box-shadow .2s, transform .2s;
}
.ic3-order-card:hover {
    box-shadow: var(--ic3-shadow-hover);
    transform: translateY(-2px);
}
.ic3-order-header {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-bottom: 14px;
}
.ic3-order-meta { flex: 1; min-width: 220px; }
.ic3-order-tags {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}
.ic3-order-num {
    font-size: 15px;
    color: var(--ic-text);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.ic3-order-date {
    color: var(--ic-muted);
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.ic3-order-partner {
    font-weight: 700;
    font-size: 16px;
    color: var(--ic-text);
    letter-spacing: -.01em;
}
.ic3-order-partner-sub {
    color: var(--ic-muted);
    font-size: 13px;
    margin-top: 2px;
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.ic3-order-total { text-align: right; flex-shrink: 0; }
.ic3-order-total-label {
    color: var(--ic-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 2px;
}
.ic3-order-total-value {
    font-size: 26px;
    font-weight: 800;
    color: var(--ic3-accent);
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
}
.ic3-order-lines {
    background: #f8fafc;
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 12px;
    font-size: 13px;
}
.ic3-order-lines-title {
    color: var(--ic-muted);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .05em;
    font-weight: 700;
    margin-bottom: 8px;
}
.ic3-order-line {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    border-top: 1px solid #e5e7eb;
}
.ic3-order-line:first-of-type { border-top: none; }
.ic3-order-line-desc { flex: 1; color: var(--ic-text); font-weight: 500; }
.ic3-order-line-qty { color: var(--ic-text-2); font-size: 13px; }
.ic3-order-line-price {
    color: var(--ic-text);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    min-width: 80px;
    text-align: right;
}
.ic3-order-note {
    font-size: 13px;
    color: var(--ic-muted);
    background: #fffbeb;
    border-left: 3px solid #fbbf24;
    padding: 8px 12px;
    border-radius: 0 8px 8px 0;
    margin: 8px 0 12px 0;
}
.ic3-order-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding-top: 4px;
}
@media (max-width: 600px) {
    .ic3-order-header { flex-direction: column; }
    .ic3-order-total { text-align: left; }
    .ic3-order-line { flex-wrap: wrap; }
}

/* =========================================
 * 19) AUTO-MODERN: regole di drop-in che modernizzano markup AdminLTE
 *     legacy senza dover toccare ogni Blade view. Caricate dopo tutto il
 *     resto del v3 per avere precedenza sulle regole AdminLTE.
 * ========================================= */

/* --- Panel (Bootstrap 3 panel) - usato in home, configurazioni, ecc. */
.panel {
    border: 1px solid var(--ic-border-soft) !important;
    border-radius: var(--ic3-r-lg) !important;
    box-shadow: var(--ic3-shadow-card) !important;
    overflow: hidden;
}
.panel-heading {
    background: #fcfcfd !important;
    border-bottom: 1px solid var(--ic-border-soft) !important;
    padding: 14px 22px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--ic-text) !important;
    letter-spacing: -.01em;
}
.panel-default > .panel-heading { color: var(--ic-text) !important; }
.panel-body { padding: 20px 22px !important; }
.panel-footer {
    background: #fafbfd !important;
    border-top: 1px solid var(--ic-border-soft) !important;
    padding: 14px 22px !important;
}

/* --- Info-box (AdminLTE KPI) - usato in home/dashboard --- */
.info-box {
    border-radius: var(--ic3-r-lg) !important;
    box-shadow: var(--ic3-shadow-card) !important;
    border: 1px solid var(--ic-border-soft);
    background: #fff !important;
    min-height: 96px !important;
    overflow: hidden;
    transition: transform .18s var(--ic-ease), box-shadow .18s var(--ic-ease) !important;
}
.info-box:hover {
    transform: translateY(-3px) !important;
    box-shadow: var(--ic3-shadow-hover) !important;
}
.info-box .info-box-icon {
    border-radius: 0 !important;
    border-top-left-radius: var(--ic3-r-lg) !important;
    border-bottom-left-radius: var(--ic3-r-lg) !important;
    font-size: 26px !important;
}
.info-box .info-box-icon.bg-green   { background: var(--ic3-grad-2) !important; }
.info-box .info-box-icon.bg-blue    { background: var(--ic3-grad-1) !important; }
.info-box .info-box-icon.bg-aqua    { background: linear-gradient(135deg,#06b6d4,#0ea5e9) !important; }
.info-box .info-box-icon.bg-yellow  { background: var(--ic3-grad-warn) !important; }
.info-box .info-box-icon.bg-red     { background: linear-gradient(135deg,#ef4444,#dc2626) !important; }
.info-box .info-box-icon.bg-purple  { background: linear-gradient(135deg,#8b5cf6,#7c3aed) !important; }
.info-box .info-box-icon.bg-orange  { background: linear-gradient(135deg,#fb923c,#f97316) !important; }
.info-box .info-box-icon.bg-gray    { background: linear-gradient(135deg,#6b7280,#4b5563) !important; }
.info-box .info-box-content {
    padding: 14px 16px !important;
}
.info-box .info-box-text {
    color: var(--ic-muted) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 4px !important;
}
.info-box .info-box-number {
    font-size: 24px !important;
    font-weight: 800 !important;
    color: var(--ic-text) !important;
    line-height: 1.1 !important;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}

/* --- Small-box (AdminLTE alt KPI) --- */
.small-box {
    border-radius: var(--ic3-r-lg) !important;
    box-shadow: var(--ic3-shadow-card) !important;
    overflow: hidden;
    transition: transform .18s, box-shadow .18s !important;
}
.small-box:hover { transform: translateY(-3px) !important; box-shadow: var(--ic3-shadow-hover) !important; }
.small-box.bg-green  { background: var(--ic3-grad-2) !important; }
.small-box.bg-aqua   { background: linear-gradient(135deg,#06b6d4,#0ea5e9) !important; }
.small-box.bg-yellow { background: var(--ic3-grad-warn) !important; }
.small-box.bg-red    { background: linear-gradient(135deg,#ef4444,#dc2626) !important; }
.small-box .small-box-footer {
    background: rgba(0,0,0,.18) !important;
    border-radius: 0 0 var(--ic3-r-lg) var(--ic3-r-lg);
}

/* --- Bottoni Bootstrap legacy --- */
.btn {
    border-radius: 10px !important;
    font-weight: 600;
    letter-spacing: -.005em;
    transition: all .18s var(--ic-ease);
    padding: 7px 16px;
}
.btn:active { transform: translateY(1px); }
.btn-primary {
    background: var(--ic3-grad-1) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(37,99,235,.22);
}
.btn-primary:hover, .btn-primary:focus {
    box-shadow: 0 6px 18px rgba(37,99,235,.34);
    transform: translateY(-1px);
    background: var(--ic3-grad-1) !important;
    border-color: transparent !important;
}
.btn-success {
    background: var(--ic3-grad-2) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(16,185,129,.22);
}
.btn-success:hover, .btn-success:focus {
    box-shadow: 0 6px 18px rgba(16,185,129,.34);
    transform: translateY(-1px);
    background: var(--ic3-grad-2) !important;
    border-color: transparent !important;
}
.btn-info {
    background: linear-gradient(135deg,#0ea5e9,#06b6d4) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(14,165,233,.22);
}
.btn-info:hover, .btn-info:focus {
    background: linear-gradient(135deg,#0284c7,#0891b2) !important;
    box-shadow: 0 6px 18px rgba(14,165,233,.34);
    transform: translateY(-1px);
}
.btn-warning {
    background: var(--ic3-grad-warn) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(245,158,11,.22);
}
.btn-warning:hover, .btn-warning:focus {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(245,158,11,.34);
}
.btn-danger {
    background: linear-gradient(135deg,#ef4444,#dc2626) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(239,68,68,.22);
}
.btn-danger:hover, .btn-danger:focus {
    background: linear-gradient(135deg,#dc2626,#b91c1c) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(239,68,68,.34);
}
.btn-default {
    background: #fff !important;
    border: 1px solid var(--ic-border) !important;
    color: var(--ic-text-2) !important;
    box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.btn-default:hover, .btn-default:focus {
    background: var(--ic3-accent-soft) !important;
    color: var(--ic3-accent) !important;
    border-color: var(--ic3-accent) !important;
}
.btn-link { color: var(--ic3-accent) !important; }
.btn-link:hover { color: var(--ic3-accent-hov) !important; text-decoration: none; }
.btn-xs { padding: 4px 9px !important; font-size: 11px; border-radius: 7px !important; }
.btn-sm { padding: 5px 11px !important; font-size: 12px; border-radius: 8px !important; }
.btn-lg { padding: 11px 22px !important; font-size: 16px; border-radius: 12px !important; }

/* --- Form controls --- */
.form-control {
    border-radius: 10px !important;
    border: 1.5px solid var(--ic-border) !important;
    padding: 9px 12px !important;
    box-shadow: none !important;
    font-size: 14px;
    transition: border-color .18s, box-shadow .18s;
}
.form-control:focus {
    border-color: var(--ic3-accent) !important;
    box-shadow: 0 0 0 4px var(--ic3-accent-soft) !important;
}
.input-group-addon {
    background: #fafbfd !important;
    border: 1.5px solid var(--ic-border) !important;
    border-radius: 10px !important;
    color: var(--ic-muted) !important;
    font-weight: 600;
}
label, .control-label { color: var(--ic-text-2); font-weight: 600; }
.has-error .form-control { border-color: var(--ic-danger) !important; }
.has-error .form-control:focus { box-shadow: 0 0 0 4px rgba(239,68,68,.15) !important; }

/* --- Nav tabs / Pills (profilo-corsista, configurazioni, esame detail) --- */
.nav-tabs {
    border-bottom: 1px solid var(--ic-border-soft) !important;
    padding: 0 4px;
}
.nav-tabs > li > a {
    border: none !important;
    color: var(--ic-muted) !important;
    font-weight: 600;
    padding: 10px 16px !important;
    border-radius: 10px 10px 0 0 !important;
    transition: all .18s;
    margin-right: 4px;
    background: transparent !important;
}
.nav-tabs > li > a:hover {
    background: var(--ic3-accent-soft) !important;
    color: var(--ic3-accent) !important;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
    color: var(--ic3-accent) !important;
    background: #fff !important;
    border: none !important;
    box-shadow: inset 0 -3px 0 var(--ic3-accent);
    font-weight: 700;
}
.nav-pills > li > a {
    border-radius: 9999px !important;
    color: var(--ic-text-2) !important;
    font-weight: 600;
    padding: 8px 16px !important;
    transition: all .18s;
}
.nav-pills > li > a:hover { background: var(--ic3-accent-soft) !important; color: var(--ic3-accent) !important; }
.nav-pills > li.active > a {
    background: var(--ic3-accent) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(79,70,229,.30);
}

/* --- Alert --- */
.alert {
    border-radius: 12px !important;
    border: 1px solid transparent !important;
    padding: 14px 18px;
}
.alert-success { background: #ecfdf5 !important; border-color: #a7f3d0 !important; color: #065f46 !important; }
.alert-info    { background: #eff6ff !important; border-color: #bfdbfe !important; color: #1e3a8a !important; }
.alert-warning { background: #fffbeb !important; border-color: #fde68a !important; color: #92400e !important; }
.alert-danger  { background: #fef2f2 !important; border-color: #fecaca !important; color: #991b1b !important; }

/* --- Labels (badge-like) --- */
.label {
    font-weight: 600 !important;
    padding: 4px 10px !important;
    border-radius: 9999px !important;
    font-size: 11px;
    letter-spacing: .02em;
}
.label-success  { background: #d1fae5 !important; color: #065f46 !important; }
.label-info     { background: #dbeafe !important; color: #1e40af !important; }
.label-warning  { background: #fef3c7 !important; color: #92400e !important; }
.label-danger   { background: #fee2e2 !important; color: #991b1b !important; }
.label-primary  { background: var(--ic3-accent-soft) !important; color: var(--ic3-accent) !important; }
.label-default  { background: #f3f4f6 !important; color: #4b5563 !important; }

/* --- Pagination --- */
.pagination > li > a, .pagination > li > span {
    border-radius: 9px !important;
    margin: 0 2px;
    border: 1px solid var(--ic-border-soft) !important;
    color: var(--ic-text-2) !important;
    font-weight: 600;
}
.pagination > .active > a, .pagination > .active > span {
    background: var(--ic3-accent) !important;
    border-color: var(--ic3-accent) !important;
    color: #fff !important;
}

/* --- DataTables search/length --- */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    border-radius: 9999px !important;
    border: 1.5px solid var(--ic-border) !important;
    padding: 6px 14px !important;
    background: #fff !important;
    transition: border-color .18s, box-shadow .18s;
}
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
    outline: none !important;
    border-color: var(--ic3-accent) !important;
    box-shadow: 0 0 0 4px var(--ic3-accent-soft) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
    border-radius: 9px !important;
    margin: 0 2px;
    border: 1px solid var(--ic-border-soft) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--ic3-accent) !important;
    border-color: var(--ic3-accent) !important;
    color: #fff !important;
}

/* --- Tabelle generiche --- */
.table-striped > tbody > tr:nth-of-type(odd) { background-color: #fafbfd !important; }
.table > thead > tr > th {
    background: #fafbfd !important;
    color: #64748b !important;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
    border-bottom: 1px solid var(--ic-border) !important;
}
.table > tbody > tr > td { vertical-align: middle !important; }
.table-hover > tbody > tr:hover {
    background: linear-gradient(90deg, var(--ic3-accent-soft) 0%, rgba(255,255,255,0) 90%) !important;
}

/* --- Hero header riusabile (.ic3-hero) --- */
.ic3-hero {
    background: linear-gradient(135deg, #1e2a6e 0%, #2b3a8c 45%, #2c8fcf 100%);
    color: #fff;
    border-radius: 18px;
    padding: 26px 30px;
    margin-bottom: 20px;
    box-shadow: 0 12px 30px rgba(43,58,140,.28);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}
.ic3-hero-bg { position:absolute !important; right:18px !important; left:auto !important; top:auto !important; bottom:-34px !important; font-size:150px; color:rgba(255,255,255,.07); pointer-events:none; z-index:0 !important; animation: ic3HeroFloat 6s ease-in-out infinite; }
.ic3-hero-main { position:relative; z-index:1; flex:1 1 auto; min-width:260px; }
.ic3-hero-eyebrow { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:#fff; opacity:.92; margin-bottom:8px; display:inline-flex; align-items:center; gap:8px; }
@keyframes ic3HeroFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .ic3-hero-bg { animation:none !important; } }
.ic3-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(900px 280px at 90% -20%, rgba(255,255,255,.18), transparent 60%),
        radial-gradient(600px 220px at 0% 100%, rgba(255,255,255,.10), transparent 60%);
    pointer-events: none;
}
.ic3-hero > * { position: relative; z-index: 1; }
.ic3-hero h1, .ic3-hero h2 {
    margin: 0;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 12px;
}
.ic3-hero h1 { font-size: 26px; color: #fff !important; }
.ic3-hero h2 { font-size: 22px; color: #fff !important; }
.ic3-hero .ic3-hero-sub {
    margin-top: 8px;
    color: rgba(255,255,255,.9);
    font-size: 14px;
    max-width: 720px;
    line-height: 1.55;
}
.ic3-hero .ic3-hero-actions {
    margin-top: 0;
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    position: relative;
    z-index: 1;
}
.ic3-hero .ic3-hero-actions .btn {
    background: rgba(255,255,255,.16) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    backdrop-filter: blur(6px);
    box-shadow: none !important;
}
.ic3-hero .ic3-hero-actions .btn:hover {
    background: rgba(255,255,255,.28) !important;
    transform: translateY(-1px);
}
.ic3-hero .ic3-hero-actions .btn.btn-light {
    background: #fff !important;
    color: var(--ic3-accent) !important;
    border-color: #fff !important;
}
.ic3-hero .ic3-hero-actions .btn.btn-light:hover { background: #f1f5ff !important; }
.ic3-hero--success { background: var(--ic3-grad-2); box-shadow: 0 12px 32px rgba(16,185,129,.20); }
.ic3-hero--warn    { background: var(--ic3-grad-warn); box-shadow: 0 12px 32px rgba(245,158,11,.20); }
.ic3-hero--dark    { background: linear-gradient(135deg,#0f172a 0%, #1e293b 100%); box-shadow: 0 12px 32px rgba(15,23,42,.30); }

/* Auto-hero: l'header standard di AdminLTE con .content-header ottiene una
 * superficie chiara con accento, senza necessitare modifica delle view. */
.content-header {
    background: #fff;
    border-radius: var(--ic3-r-lg);
    padding: 16px 22px !important;
    margin: 0 0 16px 0 !important;
    box-shadow: var(--ic3-shadow-card);
    border: 1px solid var(--ic-border-soft);
    position: relative;
    overflow: hidden;
}
.content-header::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--ic3-grad-1);
}
.content-header > h1 {
    margin: 0 !important;
    font-size: 22px !important;
    color: var(--ic-text) !important;
}
.content-header > h1 > .fa,
.content-header > h1 > .fas {
    color: var(--ic3-accent);
    background: var(--ic3-accent-soft);
    width: 38px; height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}
.content-header > .breadcrumb {
    background: transparent;
    padding: 6px 0 0 0 !important;
    margin: 0 !important;
    font-size: 12px;
}
.content-header > .breadcrumb > li > a { color: var(--ic-muted) !important; }
.content-header > .breadcrumb > li.active { color: var(--ic-text-2) !important; font-weight: 600; }

/* --- Box-tools buttons (collapse / remove dei .box AdminLTE) --- */
.box-header .box-tools .btn-box-tool {
    color: var(--ic-muted) !important;
    background: transparent !important;
}
.box-header .box-tools .btn-box-tool:hover {
    color: var(--ic3-accent) !important;
    background: var(--ic3-accent-soft) !important;
    border-radius: 6px;
}

/* --- Dropdown --- */
.dropdown-menu {
    border-radius: 12px !important;
    border: 1px solid var(--ic-border-soft) !important;
    box-shadow: 0 12px 32px rgba(16,24,40,.10) !important;
    padding: 6px !important;
}
.dropdown-menu > li > a {
    border-radius: 8px;
    padding: 8px 12px !important;
    color: var(--ic-text-2) !important;
    font-weight: 500;
}
.dropdown-menu > li > a:hover {
    background: var(--ic3-accent-soft) !important;
    color: var(--ic3-accent) !important;
}

/* --- Description-block (AdminLTE small stat block) --- */
.description-block .description-header {
    font-size: 22px;
    font-weight: 800;
    color: var(--ic-text);
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}
.description-block .description-text {
    color: var(--ic-muted);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* --- Print: rimuove ombre/gradiente per ridurre toner --- */
@media print {
    .box, .panel, .info-box, .small-box, .ic3-stat-card,
    .ic3-table-wrap, .ic3-hero, .content-header {
        box-shadow: none !important;
        background: #fff !important;
        color: #000 !important;
    }
    .ic3-hero h1, .ic3-hero h2 { color: #000 !important; }
    .btn { box-shadow: none !important; }
}

/* ========================================================================
   SIDEBAR - width allargato + fix overflow testo lunghe
   (default AdminLTE2: 230px → portato a 260px per ospitare etichette piene
   senza ellipsi tipo "Convalida esaminatori", "Richieste sblocco profilo".)
   ======================================================================== */
@media (min-width: 768px) {
    .skin-blue .main-sidebar,
    .skin-blue .left-side {
        width: 260px !important;
    }
    .skin-blue .content-wrapper,
    .skin-blue .right-side,
    .skin-blue .main-footer {
        margin-left: 260px !important;
    }
    /* Quando l'utente collassa la sidebar (sidebar-mini), il content
       wrapper torna a margin-left:50px (icone-only). */
    body.sidebar-collapse .skin-blue .content-wrapper,
    body.sidebar-collapse .skin-blue .right-side,
    body.sidebar-collapse .skin-blue .main-footer {
        margin-left: 50px !important;
    }
}

/* Testo voci menu: PERMETTI word-wrap su righe multiple invece di troncare
   con ellipsi (testi italiani sono spesso piu' lunghi degli inglesi). */
.skin-blue .sidebar-menu > li > a,
.skin-blue .sidebar-menu .treeview-menu > li > a {
    white-space: normal !important;
    word-wrap: break-word;
    overflow-wrap: anywhere;
    line-height: 1.35;
}
.skin-blue .sidebar-menu > li > a > span,
.skin-blue .sidebar-menu .treeview-menu > li > a > span {
    white-space: normal;
    display: inline-block;
    vertical-align: middle;
    max-width: calc(100% - 50px); /* lascia spazio a icona + chevron/badge */
}
/* La label badge (counter rosso) deve restare nella riga senza forzare wrap brutto */
.skin-blue .sidebar-menu > li > a .pull-right-container {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
}
.skin-blue .sidebar-menu > li > a {
    padding-right: 38px !important; /* spazio per chevron/badge a destra */
    position: relative;
}

/* Treeview chevron - ruota di 90° quando aperto (visivo expand/collapse) */
.skin-blue .sidebar-menu > li.treeview > a > .pull-right-container > .fa-angle-left {
    transition: transform .2s ease;
}
.skin-blue .sidebar-menu > li.treeview.menu-open > a > .pull-right-container > .fa-angle-left,
.skin-blue .sidebar-menu > li.treeview.active > a > .pull-right-container > .fa-angle-left {
    transform: rotate(-90deg);
}

/* Submenu treeview-menu: padding maggiore + indentazione visibile */
.skin-blue .sidebar-menu .treeview-menu {
    background: rgba(0,0,0,.18) !important;
    padding: 4px 0;
}
.skin-blue .sidebar-menu .treeview-menu > li > a {
    padding: 9px 14px 9px 50px !important;
    font-size: 12.5px;
    position: relative;
}
/* Bullet decorativo per le voci nidificate */
.skin-blue .sidebar-menu .treeview-menu > li > a::before {
    content: "";
    position: absolute;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 5px; height: 5px;
    border-radius: 50%;
    background: rgba(255,255,255,.22);
    transition: background .15s, transform .15s;
}
.skin-blue .sidebar-menu .treeview-menu > li:hover > a::before {
    background: var(--ic3-accent);
    transform: translateY(-50%) scale(1.4);
}
.skin-blue .sidebar-menu .treeview-menu > li.active > a::before {
    background: var(--ic3-accent);
    box-shadow: 0 0 0 3px rgba(79,70,229,.18);
}
.skin-blue .sidebar-menu .treeview-menu > li.active > a {
    color: #fff !important;
    font-weight: 600;
}

/* Headers di sezione (residui - solo se usati come stringhe plain) */
.skin-blue .sidebar-menu > li.header {
    color: rgba(255,255,255,.45) !important;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em;
    padding: 14px 18px 6px !important;
    background: transparent !important;
}

/* User-card più compatta dato che la sidebar è ora più larga */
.ic3-sidebar-user {
    padding: 14px 14px 16px;
    margin: 0 10px 12px 10px;
}
.ic3-sidebar-name {
    white-space: normal !important;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.25;
}
