/* ==========================================================================
   WD UI  -  design system CRM WDStudio
   Caricato DOPO site.css: ridisegna CoreUI/Bootstrap senza toccare le pagine.
   Palette: viola WD + lavanda digitale, accenti menta e corallo, vetro e aurora.
   Tema chiaro di default, scuro automatico (o scelto dal pulsante in alto).
   ========================================================================== */

:root {
    --wd-viola: #64478f;
    --wd-viola-2: #7f5bd1;
    --wd-viola-3: #b46bf0;
    --wd-menta: #25d9b0;
    --wd-corallo: #ff6f91;
    --wd-sole: #ffc857;
    --wd-cielo: #4cc3ff;

    --wd-bg: #f3f0fa;
    --wd-surface: #ffffff;
    --wd-surface-2: #f8f6fd;
    --wd-text: #1c1631;
    --wd-muted: #6e6885;
    --wd-border: rgba(100, 71, 143, .14);
    --wd-ring: rgba(127, 91, 209, .35);

    --wd-aurora: linear-gradient(120deg, #4d3578 0%, #6b49b3 42%, #a35be0 100%);
    --wd-aurora-soft: linear-gradient(120deg, rgba(100,71,143,.10), rgba(180,107,240,.10));
    --wd-sidebar: linear-gradient(180deg, #1b1332 0%, #241a44 100%);

    --wd-radius: 18px;
    --wd-radius-sm: 12px;
    --wd-shadow: 0 1px 2px rgba(40, 22, 80, .06), 0 10px 30px -12px rgba(60, 30, 120, .22);
    --wd-shadow-lg: 0 2px 4px rgba(40, 22, 80, .08), 0 24px 48px -18px rgba(60, 30, 120, .38);
    --wd-ease: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- tema scuro: automatico, a meno che l'utente non scelga il chiaro ---------- */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --wd-bg: #0f0b1b;
        --wd-surface: #181228;
        --wd-surface-2: #1f1833;
        --wd-text: #efeaff;
        --wd-muted: #a79fc2;
        --wd-border: rgba(180, 150, 255, .16);
        --wd-ring: rgba(180, 107, 240, .45);
        --wd-shadow: 0 1px 2px rgba(0,0,0,.4), 0 12px 32px -14px rgba(0,0,0,.7);
        --wd-shadow-lg: 0 2px 4px rgba(0,0,0,.5), 0 28px 54px -20px rgba(0,0,0,.85);
    }
}

:root[data-theme="dark"] {
    --wd-bg: #0f0b1b;
    --wd-surface: #181228;
    --wd-surface-2: #1f1833;
    --wd-text: #efeaff;
    --wd-muted: #a79fc2;
    --wd-border: rgba(180, 150, 255, .16);
    --wd-ring: rgba(180, 107, 240, .45);
    --wd-shadow: 0 1px 2px rgba(0,0,0,.4), 0 12px 32px -14px rgba(0,0,0,.7);
    --wd-shadow-lg: 0 2px 4px rgba(0,0,0,.5), 0 28px 54px -20px rgba(0,0,0,.85);
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; }

body {
    color: var(--wd-text);
    background-color: var(--wd-bg) !important;
    background-image:
        radial-gradient(900px 500px at 8% -10%, rgba(180, 107, 240, .20), transparent 60%),
        radial-gradient(700px 420px at 100% 0%, rgba(37, 217, 176, .12), transparent 60%),
        radial-gradient(800px 600px at 60% 110%, rgba(255, 111, 145, .10), transparent 60%);
    background-attachment: fixed;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .text-value-lg { color: var(--wd-text); letter-spacing: -.01em; }
a { color: var(--wd-viola-2); transition: color .2s; }
a:hover { color: var(--wd-viola-3); text-decoration: none; }
td a { color: var(--wd-viola-2) !important; }
.text-muted { color: var(--wd-muted) !important; }
::selection { background: var(--wd-viola-2); color: #fff; }

/* scrollbar discreta */
* { scrollbar-width: thin; scrollbar-color: rgba(127, 91, 209, .45) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: rgba(127, 91, 209, .4); border-radius: 10px; border: 2px solid transparent; background-clip: content-box; }

/* ---------- barra superiore ---------- */
.app-header.navbar {
    background: var(--wd-aurora) !important;
    border: 0;
    height: 58px;
    box-shadow: 0 8px 28px -10px rgba(77, 53, 120, .65);
    position: fixed;
}
.app-header .navbar-brand { background: transparent !important; border: 0 !important; }
.app-header .navbar-toggler-icon { filter: brightness(0) invert(1); }
.app-header .nav-link, .app-header .nav-link.text-dark { color: #fff !important; font-weight: 500; }
.app-header .nav-link:hover { opacity: .85; }
.app-header .userName .nav-link { padding-left: .4rem; }
.app-header .imgCompetenza { width: 36px; height: 36px; border: 2px solid rgba(255,255,255,.85); box-shadow: 0 4px 12px rgba(0,0,0,.25); }
.app-header .badge.bg-danger {
    background: rgba(255,255,255,.2) !important; color: #fff; border: 1px solid rgba(255,255,255,.45);
    border-radius: 999px; padding: .35em .8em; letter-spacing: .08em; backdrop-filter: blur(6px);
    align-self: center; margin-right: .6rem;
}
.header-fixed .app-body { margin-top: 58px !important; }

/* pulsante tema */
.wd-theme-toggle {
    width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4);
    background: rgba(255,255,255,.14); color: #fff; display: inline-grid; place-items: center;
    cursor: pointer; margin-right: .8rem; transition: transform .35s var(--wd-ease), background .2s;
    backdrop-filter: blur(6px);
}
.wd-theme-toggle:hover { background: rgba(255,255,255,.28); transform: rotate(25deg) scale(1.06); }

/* ---------- campanella notifiche ---------- */
.wd-bell-wrap { position: relative; }
.wd-bell { position: relative; }
.wd-bell-badge {
    position: absolute; top: -4px; right: -4px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px;
    background: var(--wd-corallo); color: #fff; font-size: .68rem; font-weight: 800; display: grid; place-items: center;
    border: 2px solid #5a3f8c; box-shadow: 0 4px 10px rgba(255,111,145,.6);
}
.wd-bell-badge[hidden], .wd-notif-panel[hidden], .wd-theme-toggle[hidden], #wdNotifPerm[hidden] { display: none !important; }
.wd-bell.ring i { animation: wd-ring 1.6s ease-in-out infinite; transform-origin: 50% 0; }
@keyframes wd-ring { 0%, 55%, 100% { transform: rotate(0); } 10%, 30% { transform: rotate(14deg); } 20%, 40% { transform: rotate(-12deg); } 50% { transform: rotate(6deg); } }
.wd-notif-panel {
    position: absolute; right: -10px; top: 50px; width: 360px; max-width: calc(100vw - 24px); z-index: 2000;
    background: var(--wd-surface); color: var(--wd-text); border: 1px solid var(--wd-border); border-radius: 20px;
    box-shadow: var(--wd-shadow-lg); padding: .9rem; animation: wd-rise .35s var(--wd-ease) both;
}
.wd-notif-head, .wd-notif-foot { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.wd-notif-head { margin-bottom: .6rem; }
.wd-notif-foot { margin-top: .6rem; padding-top: .6rem; border-top: 1px solid var(--wd-border); font-size: .85rem; }
.wd-notif-list { max-height: 55vh; overflow-y: auto; display: flex; flex-direction: column; gap: .35rem; }
.wd-notif-item { display: flex; gap: .7rem; padding: .65rem .75rem; border-radius: 14px; background: var(--wd-surface-2); color: var(--wd-text) !important; transition: transform .25s var(--wd-ease), background .2s; }
.wd-notif-item:hover { transform: translateX(3px); background: var(--wd-aurora-soft); }
.wd-notif-item strong { font-size: .88rem; display: block; }
.wd-notif-item p { margin: .1rem 0 0; font-size: .8rem; color: var(--wd-muted); }
.wd-notif-item .wd-meta { font-size: .68rem; color: var(--wd-muted); }
.wd-notif-dot { flex: none; width: 9px; height: 9px; margin-top: .45rem; border-radius: 50%; background: transparent; }
.wd-notif-item.nuova .wd-notif-dot { background: var(--wd-menta); box-shadow: 0 0 0 4px rgba(37,217,176,.25); }
.wd-notif-item.nuova { border-left: 3px solid var(--wd-viola-2); }
.wd-toast {
    position: fixed; right: 18px; bottom: 18px; z-index: 3000; display: flex; gap: .8rem; align-items: center; max-width: 340px;
    padding: .85rem 1.1rem; border-radius: 18px; background: var(--wd-aurora); color: #fff !important;
    box-shadow: var(--wd-shadow-lg); transform: translateY(30px) scale(.96); opacity: 0; transition: transform .45s var(--wd-ease), opacity .45s;
}
.wd-toast.in { transform: none; opacity: 1; }
.wd-toast i { font-size: 1.3rem; }
.wd-toast strong { display: block; font-size: .9rem; }
.wd-toast span { font-size: .8rem; opacity: .9; }

/* ---------- barra laterale ---------- */
.sidebar {
    background: var(--wd-sidebar) !important;
    border-right: 0;
    box-shadow: 10px 0 40px -20px rgba(20, 8, 50, .8);
}
.sidebar .sidebar-nav { padding: .6rem .6rem 2rem; }
.sidebar .nav-title {
    background: transparent !important;
    color: rgba(255,255,255,.45) !important; font-size: .68rem; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase; padding: 1.4rem .9rem .5rem;
}
.sidebar .nav-title i, .sidebar .nav-title img { margin-right: .5rem; opacity: .9; }
.sidebar .nav-title img { height: 14px; width: auto; vertical-align: -2px; }
.sidebar .nav-link {
    color: rgba(255,255,255,.78) !important; background: transparent !important;
    border-radius: 12px; margin: 2px 0; padding: .62rem .9rem; font-weight: 500;
    position: relative; transition: background .25s, transform .25s var(--wd-ease), color .2s;
}
.sidebar .nav-link i { color: rgba(255,255,255,.55) !important; width: 1.4rem; margin-right: .4rem; transition: color .2s, transform .3s var(--wd-ease); }
.sidebar .nav-link:hover {
    background: rgba(255,255,255,.08) !important; color: #fff !important; transform: translateX(3px);
}
.sidebar .nav-link:hover i { color: var(--wd-menta) !important; transform: scale(1.15); }
.sidebar .nav-link.active, .sidebar .nav-link.wd-active {
    background: linear-gradient(120deg, rgba(127,91,209,.85), rgba(180,107,240,.55)) !important;
    color: #fff !important; box-shadow: 0 10px 24px -10px rgba(180,107,240,.8);
}
.sidebar .nav-link.active i, .sidebar .nav-link.wd-active i { color: #fff !important; }
.sidebar .nav-link.wd-active::before {
    content: ""; position: absolute; left: -.6rem; top: 22%; bottom: 22%; width: 4px;
    border-radius: 0 4px 4px 0; background: var(--wd-menta); box-shadow: 0 0 12px var(--wd-menta);
}
.sidebar .giroMenu img { filter: none; }
.sidebar-minimizer { background: transparent !important; }

/* ---------- area principale ---------- */
.main { background: transparent !important; }
.main .container-fluid { padding: 1.4rem 1.6rem 2.5rem; max-width: 1700px; }
.app-footer { background: transparent !important; border: 0; color: var(--wd-muted); }

/* breadcrumb -> barra con legenda e ricerca */
.main .breadcrumb {
    background: var(--wd-surface);
    background: color-mix(in srgb, var(--wd-surface) 72%, transparent);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    border: 0; border-bottom: 1px solid var(--wd-border);
    padding: .55rem 1.6rem; margin: 0; align-items: center; gap: .3rem; flex-wrap: wrap;
    position: relative !important; top: auto; width: auto; z-index: 50;
}
.main .container-fluid { margin-top: 0; }
.main .breadcrumb .breadcrumb-item { display: none; }
.main .breadcrumb > div { display: flex; align-items: center; gap: .4rem; padding: 0 .4rem !important; flex: 0 0 auto; max-width: none; width: auto; }
.main .breadcrumb > div p { margin: 0; font-size: .74rem; font-weight: 600; color: var(--wd-muted); }
.main .breadcrumb .search { margin-left: auto; display: flex; gap: .5rem; align-items: center; }
.legenda { width: 14px !important; height: 14px !important; border-radius: 50% !important; box-shadow: 0 0 0 3px rgba(255,255,255,.35); display: inline-block; vertical-align: middle; }
td .legenda { width: 12px !important; height: 34px !important; border-radius: 8px !important; box-shadow: none; }

/* ---------- card ---------- */
.card {
    background: var(--wd-surface); border: 1px solid var(--wd-border) !important;
    border-radius: var(--wd-radius) !important; box-shadow: var(--wd-shadow);
    overflow: hidden; transition: transform .35s var(--wd-ease), box-shadow .35s var(--wd-ease);
}
.card:hover { box-shadow: var(--wd-shadow-lg); }
.card-header {
    border: 0 !important; padding: 1.1rem 1.4rem !important;
    background: var(--wd-surface-2); color: var(--wd-text);
}
.card-header.bg-urgente, .card-header.text-white {
    background: var(--wd-aurora) !important; color: #fff !important; position: relative; overflow: hidden;
}
.card-header.bg-urgente::after {
    content: ""; position: absolute; inset: -40% -10% auto auto; width: 280px; height: 280px;
    background: radial-gradient(closest-side, rgba(255,255,255,.28), transparent); pointer-events: none;
}
.card-header .text-value-lg { color: inherit; font-weight: 700; }
.card-body { padding: 1rem 1.2rem !important; color: var(--wd-text); }
.card-footer { background: var(--wd-surface-2); border-top: 1px solid var(--wd-border); }

/* ---------- tabelle ---------- */
.table { color: var(--wd-text); border-collapse: separate; border-spacing: 0 8px; margin-bottom: 0; }
.table thead th {
    border: 0 !important; color: var(--wd-muted); font-size: .72rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase; padding: .4rem .9rem;
}
.table td { border: 0 !important; background: var(--wd-surface-2); padding: .85rem .9rem; vertical-align: middle; }
.table tbody tr { transition: transform .3s var(--wd-ease), box-shadow .3s var(--wd-ease); }
.table tbody tr:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -16px rgba(80, 40, 160, .5); position: relative; z-index: 1; }
.table tbody tr td:first-child { border-radius: 14px 0 0 14px; }
.table tbody tr td:last-child { border-radius: 0 14px 14px 0; }
.table-striped tbody tr:nth-of-type(odd) { background: transparent; }
.table-hover tbody tr:hover { background: transparent; color: inherit; }
tr.urgente td { background: linear-gradient(90deg, rgba(255,200,87,.28), var(--wd-surface-2) 70%); }
.taskTitolo { font-weight: 600; font-size: 1.02rem; }
.lavoro { color: var(--wd-muted); font-style: normal; }
.compTD { white-space: nowrap; }
.compTD .imgCompetenza + .imgCompetenza, .wd-stack .imgCompetenza + .imgCompetenza { margin-left: -10px; }
.table-responsive { border-radius: var(--wd-radius-sm); }

/* ---------- bottoni ---------- */
.btn {
    border-radius: 999px; font-weight: 600; letter-spacing: .01em; padding: .5rem 1.15rem;
    border: 0; position: relative; overflow: hidden;
    transition: transform .25s var(--wd-ease), box-shadow .25s var(--wd-ease), filter .2s;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.97); }
.btn:focus { box-shadow: 0 0 0 4px var(--wd-ring) !important; }
.btn-sm { padding: .32rem .85rem; font-size: .8rem; }
.btn-primary, .btn-brand {
    background: var(--wd-aurora) !important; color: #fff !important;
    box-shadow: 0 10px 22px -10px rgba(127, 91, 209, .9);
}
.btn-primary:hover { box-shadow: 0 16px 28px -10px rgba(127, 91, 209, 1); filter: brightness(1.08); }
.btn-success { background: linear-gradient(120deg, #12b886, #25d9b0) !important; color: #06382c !important; box-shadow: 0 10px 22px -12px rgba(18,184,134,.9); }
.btn-danger  { background: linear-gradient(120deg, #f0446c, #ff6f91) !important; box-shadow: 0 10px 22px -12px rgba(240,68,108,.9); }
.btn-warning { background: linear-gradient(120deg, #ffb52e, #ffc857) !important; color: #3b2a00 !important; }
.btn-info    { background: linear-gradient(120deg, #1da1f2, #4cc3ff) !important; color: #032a40 !important; }
.btn-secondary, .btn-light { background: var(--wd-surface-2) !important; color: var(--wd-text) !important; border: 1px solid var(--wd-border); }
.btn-outline-light { border: 1px solid rgba(255,255,255,.55); color: #fff; background: rgba(255,255,255,.08); }
.btn-outline-light:hover, .btn-outline-light.active { background: #fff !important; color: var(--wd-viola) !important; }
.btn-group .btn { border-radius: 999px; margin-left: 4px; }
.wd-ripple { position: absolute; border-radius: 50%; transform: scale(0); background: rgba(255,255,255,.55); animation: wd-ripple .65s linear; pointer-events: none; }
@keyframes wd-ripple { to { transform: scale(4); opacity: 0; } }

/* ---------- form ---------- */
.form-control, .custom-select, select.form-control, textarea.form-control {
    background: var(--wd-surface-2); color: var(--wd-text); border: 1.5px solid var(--wd-border);
    border-radius: var(--wd-radius-sm); padding: .6rem .9rem; height: auto;
    transition: border-color .2s, box-shadow .25s, background .2s;
}
.form-control:focus { background: var(--wd-surface); color: var(--wd-text); border-color: var(--wd-viola-2); box-shadow: 0 0 0 4px var(--wd-ring); }
.form-control::placeholder { color: var(--wd-muted); opacity: .8; }
label, .control-label { font-weight: 600; font-size: .82rem; color: var(--wd-muted); margin-bottom: .35rem; }
.form-group { margin-bottom: 1.15rem; }
.form-check-input { accent-color: var(--wd-viola-2); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--wd-viola-2); }
.ricerca-form { min-width: 220px; border-radius: 999px; }
.text-danger { color: var(--wd-corallo) !important; font-size: .8rem; }

/* ---------- badge e alert ---------- */
.badge { border-radius: 999px; padding: .42em .8em; font-weight: 600; letter-spacing: .02em; }
.badge.bg-info { background: rgba(76,195,255,.2) !important; color: #0b6fa3 !important; }
.badge.bg-danger { background: rgba(255,111,145,.2) !important; color: #d6245a !important; }
.badge.bg-warning { background: rgba(255,200,87,.28) !important; color: #8a5a00 !important; }
.badge.bg-secondary { background: rgba(127,91,209,.14) !important; color: var(--wd-viola-2) !important; }
:root[data-theme="dark"] .badge.bg-info, :root[data-theme="dark"] .badge.bg-warning, :root[data-theme="dark"] .badge.bg-danger { filter: brightness(1.5); }
.alert { border: 0; border-radius: var(--wd-radius-sm); box-shadow: var(--wd-shadow); }

/* ---------- avatar + faccette selezionabili (competenze) ---------- */
.imgCompetenza {
    width: 34px; height: 34px; border-radius: 50%; object-fit: cover;
    border: 2px solid var(--wd-surface); box-shadow: 0 3px 10px rgba(40,22,80,.22);
    transition: transform .3s var(--wd-ease);
}
.imgCompetenza:hover { transform: scale(1.18) rotate(-3deg); z-index: 3; position: relative; }

.collaboratori { display: flex; flex-wrap: wrap; gap: .7rem; }
.collaboratore {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: .35rem;
    width: 92px; padding: .75rem .4rem .6rem; margin: 0; cursor: pointer; text-align: center;
    background: var(--wd-surface-2); border: 1.5px solid var(--wd-border); border-radius: 18px;
    font-size: .74rem; font-weight: 600; color: var(--wd-text);
    transition: transform .3s var(--wd-ease), box-shadow .3s var(--wd-ease), border-color .2s, background .2s;
    user-select: none;
}
.collaboratore input { position: absolute; opacity: 0; pointer-events: none; }
.collaboratore .imgCompetenza {
    width: 52px; height: 52px; filter: grayscale(.85) opacity(.7);
    border: 3px solid transparent; transition: filter .3s, transform .35s var(--wd-ease), border-color .3s, box-shadow .3s;
}
.collaboratore:hover { transform: translateY(-4px); border-color: var(--wd-viola-2); }
.collaboratore:hover .imgCompetenza { filter: grayscale(.2) opacity(1); }
.collaboratore::after {
    content: "\2713"; position: absolute; top: 6px; right: 6px; width: 20px; height: 20px; border-radius: 50%;
    display: grid; place-items: center; font-size: .72rem; font-weight: 800; color: #fff;
    background: var(--wd-menta); transform: scale(0); transition: transform .35s var(--wd-ease);
    box-shadow: 0 4px 10px -2px rgba(37,217,176,.8);
}
.collaboratore:has(input:checked) {
    border-color: var(--wd-viola-2); background: var(--wd-aurora-soft);
    box-shadow: 0 14px 28px -14px rgba(127,91,209,.8);
}
.collaboratore:has(input:checked) .imgCompetenza {
    filter: none; border-color: var(--wd-viola-2); transform: scale(1.1);
    box-shadow: 0 0 0 4px var(--wd-ring);
    animation: wd-pop .5s var(--wd-ease);
}
.collaboratore:has(input:checked)::after { transform: scale(1); }
.collaboratore:focus-within { outline: 3px solid var(--wd-ring); outline-offset: 2px; }
@keyframes wd-pop { 0% { transform: scale(.8); } 55% { transform: scale(1.24); } 100% { transform: scale(1.1); } }

/* fallback per browser senza :has() (la classe is-on la imposta wd-ui.js) */
.collaboratore.is-on { border-color: var(--wd-viola-2); background: var(--wd-aurora-soft); box-shadow: 0 14px 28px -14px rgba(127,91,209,.8); }
.collaboratore.is-on .imgCompetenza { filter: none; border-color: var(--wd-viola-2); transform: scale(1.1); box-shadow: 0 0 0 4px var(--wd-ring); }
.collaboratore.is-on::after { transform: scale(1); }

/* ---------- chat (note / messaggi) ---------- */
.wd-chat { display: flex; flex-direction: column; gap: .9rem; padding: .5rem .2rem; max-height: 62vh; overflow-y: auto; scroll-behavior: smooth; }
.wd-msg { display: flex; gap: .65rem; align-items: flex-end; max-width: 86%; animation: wd-rise .5s var(--wd-ease) both; }
.wd-msg.mine { margin-left: auto; flex-direction: row-reverse; }
.wd-msg .wd-bubble {
    position: relative; padding: .7rem 1rem; border-radius: 20px 20px 20px 6px;
    background: var(--wd-surface-2); border: 1px solid var(--wd-border); color: var(--wd-text);
    box-shadow: var(--wd-shadow); line-height: 1.45; word-break: break-word;
}
.wd-msg.mine .wd-bubble {
    background: var(--wd-aurora); color: #fff; border: 0; border-radius: 20px 20px 6px 20px;
    box-shadow: 0 14px 26px -14px rgba(127,91,209,.9);
}
.wd-msg .wd-meta { display: block; font-size: .68rem; opacity: .7; margin-top: .3rem; }
.wd-msg .wd-who { font-weight: 700; font-size: .72rem; display: block; margin-bottom: .1rem; color: var(--wd-viola-2); }
.wd-msg.mine .wd-who { display: none; }
.wd-day { align-self: center; font-size: .7rem; font-weight: 700; color: var(--wd-muted); background: var(--wd-surface-2); padding: .2rem .8rem; border-radius: 999px; border: 1px solid var(--wd-border); }
.wd-composer {
    display: flex; gap: .6rem; align-items: flex-end; margin-top: .9rem; padding: .5rem;
    background: var(--wd-surface-2); border: 1.5px solid var(--wd-border); border-radius: 26px;
    transition: border-color .2s, box-shadow .25s;
}
.wd-composer:focus-within { border-color: var(--wd-viola-2); box-shadow: 0 0 0 4px var(--wd-ring); }
.wd-composer textarea { flex: 1; border: 0 !important; background: transparent !important; box-shadow: none !important; resize: none; max-height: 140px; padding: .55rem .8rem; }
.wd-composer .btn { border-radius: 50%; width: 44px; height: 44px; padding: 0; display: grid; place-items: center; flex: none; }

/* alert-success / alert-danger vecchi delle note -> bolle */
.alert-success.floatRight, .alert-danger.floatLeft { padding: .7rem 1rem; max-width: 86%; }
.alert-success.floatRight { background: var(--wd-aurora); color: #fff; border-radius: 20px 20px 6px 20px; }
.alert-danger.floatLeft { background: var(--wd-surface-2); color: var(--wd-text); border: 1px solid var(--wd-border); border-radius: 20px 20px 20px 6px; }

/* elenco note per task (pagina WDNote) */
.wd-thread { padding: 1rem 1.1rem; margin-bottom: 1rem; }
.wd-thread-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .6rem; }
.wd-thread-head h3 { font-size: 1rem; font-weight: 700; margin: 0; }
.wd-thread-item { display: flex; gap: .7rem; padding: .65rem .75rem; margin-bottom: .45rem; border-radius: 16px; background: var(--wd-surface-2); color: var(--wd-text) !important; transition: transform .25s var(--wd-ease), background .2s; }
.wd-thread-item:hover { transform: translateX(4px); background: var(--wd-aurora-soft); }
.wd-thread-item p { margin: .15rem 0 0; font-size: .88rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wd-thread-item .wd-who { font-weight: 700; font-size: .75rem; color: var(--wd-viola-2); margin-right: .5rem; }
.wd-thread-item .wd-meta { font-size: .68rem; color: var(--wd-muted); }

/* ---------- dashboard "bento" ---------- */
.wd-hero {
    position: relative; overflow: hidden; border-radius: 26px; padding: 1.7rem 1.9rem; margin-bottom: 1.3rem;
    background: var(--wd-aurora); color: #fff; box-shadow: var(--wd-shadow-lg);
}
.wd-hero::before, .wd-hero::after {
    content: ""; position: absolute; border-radius: 50%; filter: blur(2px); pointer-events: none;
}
.wd-hero::before { width: 340px; height: 340px; right: -80px; top: -140px; background: radial-gradient(closest-side, rgba(37,217,176,.55), transparent); animation: wd-float 9s ease-in-out infinite; }
.wd-hero::after { width: 260px; height: 260px; right: 160px; bottom: -150px; background: radial-gradient(closest-side, rgba(255,111,145,.5), transparent); animation: wd-float 11s ease-in-out infinite reverse; }
.wd-hero h1 { color: #fff; font-size: clamp(1.4rem, 3.2vw, 2.1rem); font-weight: 700; margin: 0 0 .25rem; }
.wd-hero p { margin: 0; opacity: .85; }
.wd-hero .wd-emoji { display: inline-block; animation: wd-wave 2.4s ease-in-out infinite; transform-origin: 70% 70%; }
@keyframes wd-float { 50% { transform: translate(-24px, 18px) scale(1.08); } }
@keyframes wd-wave { 0%, 60%, 100% { transform: rotate(0); } 10%, 30% { transform: rotate(16deg); } 20%, 40% { transform: rotate(-8deg); } 50% { transform: rotate(10deg); } }

.wd-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; margin-bottom: 1.3rem; }
.wd-kpi {
    position: relative; overflow: hidden; padding: 1.1rem 1.25rem; border-radius: var(--wd-radius);
    background: var(--wd-surface); border: 1px solid var(--wd-border); box-shadow: var(--wd-shadow);
    transition: transform .35s var(--wd-ease), box-shadow .35s var(--wd-ease);
}
.wd-kpi:hover { transform: translateY(-5px); box-shadow: var(--wd-shadow-lg); }
.wd-kpi .wd-kpi-ico { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; color: #fff; font-size: 1.05rem; margin-bottom: .7rem; }
.wd-kpi .wd-kpi-num { font-size: 2.3rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--wd-text); }
.wd-kpi .wd-kpi-lbl { font-size: .78rem; color: var(--wd-muted); font-weight: 600; margin-top: .25rem; }
.wd-kpi::after { content: ""; position: absolute; right: -30px; bottom: -30px; width: 110px; height: 110px; border-radius: 50%; background: var(--k, var(--wd-viola-2)); opacity: .12; }
.wd-kpi.k1 { --k: var(--wd-viola-2); } .wd-kpi.k1 .wd-kpi-ico { background: linear-gradient(135deg,#6b49b3,#a35be0); }
.wd-kpi.k2 { --k: var(--wd-corallo); } .wd-kpi.k2 .wd-kpi-ico { background: linear-gradient(135deg,#f0446c,#ff8fa8); }
.wd-kpi.k3 { --k: var(--wd-menta); }   .wd-kpi.k3 .wd-kpi-ico { background: linear-gradient(135deg,#12b886,#25d9b0); }
.wd-kpi.k4 { --k: var(--wd-sole); }    .wd-kpi.k4 .wd-kpi-ico { background: linear-gradient(135deg,#ffb52e,#ffd77a); }

.wd-section-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 1.6rem 0 .9rem; }
.wd-section-title h2 { font-size: 1.15rem; font-weight: 700; margin: 0; }
.wd-pills { display: inline-flex; gap: .3rem; padding: .3rem; border-radius: 999px; background: var(--wd-surface); border: 1px solid var(--wd-border); box-shadow: var(--wd-shadow); flex-wrap: wrap; }
.wd-pills a { padding: .38rem .95rem; border-radius: 999px; font-size: .8rem; font-weight: 600; color: var(--wd-muted); transition: background .25s, color .25s; }
.wd-pills a:hover { color: var(--wd-viola-2); }
.wd-pills a.on { background: var(--wd-aurora); color: #fff; box-shadow: 0 8px 18px -8px rgba(127,91,209,.9); }

.wd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 1rem; }
.wd-tile {
    position: relative; padding: 1.1rem 1.2rem; border-radius: var(--wd-radius); background: var(--wd-surface);
    border: 1px solid var(--wd-border); box-shadow: var(--wd-shadow); display: flex; flex-direction: column; gap: .75rem;
    transition: transform .35s var(--wd-ease), box-shadow .35s var(--wd-ease); overflow: hidden;
}
.wd-tile:hover { transform: translateY(-5px); box-shadow: var(--wd-shadow-lg); }
.wd-tile::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--tile, var(--wd-viola-2)); }
.wd-tile h3 { font-size: 1.02rem; font-weight: 700; margin: 0; }
.wd-tile .wd-sub { color: var(--wd-muted); font-size: .8rem; }
.wd-tile .wd-row { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.wd-tile.urgente { --tile: var(--wd-corallo); background-image: linear-gradient(120deg, rgba(255,111,145,.10), transparent 60%); }
.wd-tile.t-Task { --tile: #f3bb13; }
.wd-tile.t-Incontro { --tile: #64478f; }
.wd-tile.t-UscitaVideo { --tile: #019b24; }
.wd-tile.t-MontaggioVideo { --tile: #20a8d8; }
.wd-tile.t-Telefonare { --tile: #ff6f91; }
.wd-tile.t-Preventivo { --tile: #19ab32; }
.wd-due { font-weight: 700; font-size: .78rem; padding: .25rem .7rem; border-radius: 999px; background: var(--wd-surface-2); border: 1px solid var(--wd-border); }
.wd-due.hot { background: rgba(255,111,145,.16); color: #d6245a; border-color: transparent; }
.wd-due.warm { background: rgba(255,200,87,.25); color: #8a5a00; border-color: transparent; }
.wd-stack { display: inline-flex; }
.wd-stack .imgCompetenza { width: 30px; height: 30px; }

/* timeline workflow social */
.timeline-step::after { height: 5px; border-radius: 4px; background: var(--wd-border); }
.timeline-step.done .step-dot, .timeline-step.done::after { background: var(--wd-menta); }
.timeline-step.current .step-dot { background: var(--wd-sole); box-shadow: 0 0 0 6px rgba(255,200,87,.3); animation: wd-pulse 1.8s ease-in-out infinite; }
.timeline-step.current::after { background: linear-gradient(to right, var(--wd-menta), var(--wd-sole)); }
.step-dot { background: var(--wd-border); }
@keyframes wd-pulse { 50% { box-shadow: 0 0 0 11px rgba(255,200,87,0); } }

/* calendario */
.calendar .day { border-radius: 12px; transition: background .2s, transform .25s var(--wd-ease); }
.calendar .day:hover { transform: scale(1.03); background: var(--wd-aurora-soft); z-index: 2; position: relative; }
.calendar .event { border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.calendar table, .calendar td, .calendar th { border-color: var(--wd-border); }

/* ---------- login / account ---------- */
.card.wd-login, .login-card { box-shadow: var(--wd-shadow-lg); }

/* ---------- animazioni d'ingresso ---------- */
@keyframes wd-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
.animated.fadeIn { animation: wd-rise .6s var(--wd-ease) both; }
.wd-reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s var(--wd-ease), transform .7s var(--wd-ease); transition-delay: calc(var(--i, 0) * 70ms); }
.wd-reveal.in { opacity: 1; transform: none; }

/* barra di caricamento (pace) in tinta */
.pace .pace-progress { background: var(--wd-menta) !important; height: 3px; }
.pace .pace-activity { display: none; }

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
    .main .container-fluid { padding: 1rem .9rem 2rem; }
    .main .breadcrumb { padding: .5rem .9rem; }
    .main .breadcrumb > div { display: none; }
    .main .breadcrumb .search { margin: 0; width: 100%; }
    .main .breadcrumb .ricerca-form { flex: 1; min-width: 0; }
    .app-header .navbar-brand { margin: 0 auto; }
    .app-header .userName { display: none; }
    .wd-hero { padding: 1.3rem 1.2rem; border-radius: 20px; }
    .wd-kpis { grid-template-columns: repeat(2, 1fr); }
    .sidebar { box-shadow: none; }
}
@media (max-width: 575.98px) {
    .app-header .badge.bg-danger { display: none; }
    .app-header .navbar-brand-full { width: 118px; height: auto; }
    .wd-theme-toggle { margin-right: .4rem; width: 34px; height: 34px; }
    .wd-hero::after { display: none; }
}
@media (max-width: 767.98px) {
    /* le tabelle diventano liste di card */
    .table-cards thead { display: none; }
    .table-cards, .table-cards tbody, .table-cards tr, .table-cards td { display: block; width: 100%; }
    .table-cards tr { background: var(--wd-surface-2); border-radius: 16px; margin-bottom: .7rem; padding: .4rem 0; }
    .table-cards td { background: transparent; padding: .3rem 1rem; border-radius: 0 !important; }
    .collaboratore { width: 78px; }
    .wd-msg { max-width: 94%; }
}

/* ---------- accessibilita': meno movimento se richiesto ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
    .wd-reveal { opacity: 1; transform: none; }
}

/* ==========================================================================
   CALENDARIO  (div.rowMese generato da CalendarTagHelper)
   ========================================================================== */
.wd-card-open, .card:has(.rowMese) { overflow: visible; }
.rowMese { margin-bottom: 2.2rem; }
.rowMese h1 {
    font-size: 1.55rem; font-weight: 800; letter-spacing: -.02em; text-transform: capitalize;
    margin: .4rem 0 1rem; display: flex; align-items: center; gap: .6rem;
}
.rowMese h1::before { content: ""; width: 10px; height: 28px; border-radius: 6px; background: var(--wd-aurora); }

/* intestazione giorni della settimana */
.rowMese .bg-urgente { background: transparent !important; color: var(--wd-muted) !important; padding: 0 !important; }
.rowMese .bg-urgente h6 { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wd-muted); margin: 0 0 .35rem; }
@media (min-width: 992px) {
    .rowMese .row.d-lg-flex { display: grid !important; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin: 0 0 4px; }
}

/* griglia del mese */
.rowMese .rowSettimana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin: 0 0 8px; }
.rowMese .day {
    flex: none; max-width: none; width: auto; min-height: 118px; height: auto !important;
    padding: .5rem .5rem .4rem !important; overflow: visible !important; white-space: normal;
    background: var(--wd-surface-2); border: 1px solid var(--wd-border) !important; border-radius: 16px;
    color: var(--wd-text); position: relative; transition: background .25s, box-shadow .25s;
}
.rowMese .day:hover, .rowMese .day:focus-within { z-index: 20; background: var(--wd-surface); box-shadow: var(--wd-shadow); }
.rowMese .day h5 { margin: 0 0 .35rem; }
.rowMese .day .date {
    display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 6px; border-radius: 999px;
    font-size: .8rem; font-weight: 700; color: var(--wd-text);
}
.rowMese .day.weekendSaturday, .rowMese .day.weekendSunday { background: color-mix(in srgb, var(--wd-viola-2) 7%, var(--wd-surface-2)); }
.rowMese .day.weekendSaturday .date, .rowMese .day.weekendSunday .date { color: var(--wd-muted); }
.rowMese .day.holiday { background: color-mix(in srgb, var(--wd-corallo) 12%, var(--wd-surface-2)); color: inherit; font-weight: inherit; }
.rowMese .day.holiday .date { color: var(--wd-corallo); }
.rowMese .day.oggi { background: var(--wd-surface); border-color: var(--wd-viola-2) !important; box-shadow: 0 0 0 3px var(--wd-ring), var(--wd-shadow); }
.rowMese .day.oggi .date { background: var(--wd-aurora); color: #fff; box-shadow: 0 6px 14px -6px rgba(127,91,209,.9); }
.rowMese .rowGiorno { display: flex; flex-direction: column; gap: 4px; }

/* eventi */
.rowMese .ev {
    --ev: #7f5bd1;
    display: flex; align-items: center; gap: 6px; position: relative; height: auto;
    padding: .28rem .5rem; margin: 0; border-radius: 10px; border-left: 4px solid var(--ev);
    background: var(--wd-surface); background: color-mix(in srgb, var(--ev) 17%, var(--wd-surface));
    color: var(--wd-text) !important; font-size: .76rem; font-weight: 600; line-height: 1.25; text-transform: none;
    transition: transform .2s var(--wd-ease), box-shadow .2s;
}
.rowMese .ev:hover, .rowMese .ev:focus { transform: translateY(-1px); box-shadow: 0 8px 18px -10px var(--ev); outline: none; z-index: 30; }
.rowMese .ev .ev-title { flex: 1 1 55%; min-width: 3.2em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rowMese .ev .ev-avs { display: inline-flex; flex: 0 0 auto; align-items: center; }
.rowMese .ev .ev-avs .imgCompetenza, .rowMese .ev-pop .ev-who .imgCompetenza {
    width: 20px; height: 20px; margin: 0 !important; border-width: 2px; box-shadow: none; transform: none;
}
.rowMese .ev .ev-avs .imgCompetenza + .imgCompetenza { margin-left: -7px !important; }
.rowMese .ev .ev-avs .imgCompetenza:nth-of-type(n+3) { display: none; }
.rowMese .ev i { font-size: .8rem; margin: 0 0 0 4px; color: var(--ev); }
.rowMese .ev-pop .ev-who .imgCompetenza { width: 28px; height: 28px; }

/* colori per tipo */
.rowMese .ev.bg-Task { --ev: #f3bb13; }
.rowMese .ev.bg-Incontro { --ev: #7f5bd1; }
.rowMese .ev.bg-UscitaVideo { --ev: #12b886; }
.rowMese .ev.bg-MontaggioVideo { --ev: #20a8d8; }
.rowMese .ev.bg-Telefonare { --ev: #ff6f91; }
.rowMese .ev.bg-Preventivo { --ev: #19ab32; }
.rowMese .ev.bg-Presente { --ev: #7fd1b9; }
.rowMese .ev.bg-girovagando, .rowMese .ev.bg-Riprese { --ev: #f04e79; }
.rowMese .ev.bg-Experience { --ev: #c9620a; }
.rowMese .ev.bg-Approfondimento { --ev: #ab1971; }
.rowMese .ev.bg-Testimonial { --ev: #0057b1; }
.rowMese .ev.bg-approvate { --ev: #12b886; }
.rowMese .ev.bg-daApprovare { --ev: #ffb52e; }

/* scheda ingrandita al passaggio del mouse / focus.
   Si apre A LATO del giorno (a destra, o a sinistra nelle ultime colonne) e non intercetta il mouse:
   cosi' non copre gli altri eventi del giorno e si puo' scorrerli uno dopo l'altro. */
.rowMese .ev-pop {
    position: absolute; left: calc(100% + 16px); top: -10px; z-index: 40; width: 290px; max-width: 340px;
    display: flex; flex-direction: column; gap: .35rem; padding: .85rem 1rem .8rem;
    background: var(--wd-surface); color: var(--wd-text); border: 1px solid var(--wd-border);
    border-left: 5px solid var(--ev); border-radius: 16px; box-shadow: var(--wd-shadow-lg);
    white-space: normal; text-transform: none; font-weight: 500; text-align: left;
    opacity: 0; visibility: hidden; transform: translateX(-8px) scale(.96); transform-origin: 0 14px; pointer-events: none;
    transition: opacity .16s, transform .22s var(--wd-ease), visibility 0s .16s;
}
/* freccina che indica l'evento */
.rowMese .ev-pop::before {
    content: ""; position: absolute; top: 16px; left: -9px; width: 14px; height: 14px;
    background: var(--wd-surface); border-left: 5px solid var(--ev); border-bottom: 1px solid var(--wd-border);
    transform: rotate(45deg); border-radius: 0 0 0 3px;
}
.rowMese .ev:hover .ev-pop, .rowMese .ev:focus .ev-pop {
    /* pointer-events resta "none": la scheda e' solo da leggere, il clic va sull'evento */
    opacity: 1; visibility: visible; transform: none; transition-delay: .08s, .08s, .08s;
}
.rowMese .ev-pop strong { font-size: .98rem; line-height: 1.3; font-weight: 700; }
.rowMese .ev-pop em { font-style: normal; font-size: .74rem; color: var(--wd-muted); text-transform: capitalize; }
.rowMese .ev-pop .ev-who { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .15rem; }
.rowMese .ev-pop .ev-who small { font-size: .74rem; color: var(--wd-muted); }
.rowMese .ev-pop .ev-who .imgCompetenza + .imgCompetenza { margin-left: -8px !important; }
.rowMese .ev-pop .ev-go { font-size: .74rem; font-weight: 700; color: var(--wd-viola-2); margin-top: .2rem; }
/* colonne di destra (ven, sab, dom): la scheda si apre a sinistra del giorno, per non uscire dallo schermo */
.rowMese .rowSettimana > .day:nth-child(n+5) .ev-pop { left: auto; right: calc(100% + 16px); transform: translateX(8px) scale(.96); transform-origin: 100% 14px; }
.rowMese .rowSettimana > .day:nth-child(n+5) .ev:hover .ev-pop,
.rowMese .rowSettimana > .day:nth-child(n+5) .ev:focus .ev-pop { transform: none; }
.rowMese .rowSettimana > .day:nth-child(n+5) .ev-pop::before {
    left: auto; right: -9px; border-left: 0; border-bottom: 0;
    border-right: 5px solid var(--ev); border-top: 1px solid var(--wd-border); border-radius: 0 3px 0 0;
}

/* giorni del mese prima/dopo che completano la griglia */
.rowMese .day.fuoriMese { opacity: .45; }
.rowMese .day .dow { display: none; }

/* tablet e telefono: elenco verticale con TUTTI i giorni del mese
   (prima si vedevano solo i giorni con eventi e sembrava che ne mancassero) */
@media (max-width: 991.98px) {
    .rowMese .rowSettimana { grid-template-columns: 1fr; gap: 6px; margin: 0; }
    .rowMese .day { min-height: 0; display: flex; align-items: flex-start; gap: .7rem; padding: .45rem .6rem !important; }
    .rowMese .day.fuoriMese { display: none; }
    .rowMese .day h5 { margin: 0; flex: 0 0 4.2rem; display: flex; align-items: center; gap: .35rem; }
    .rowMese .day .dow { display: inline; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--wd-muted); width: 2.1rem; }
    .rowMese .day .rowGiorno { flex: 1 1 auto; min-width: 0; }
    /* giorni senza eventi: una riga sottile, per non allungare troppo la pagina */
    .rowMese .day:not(:has(.ev)) { opacity: .6; padding-top: .2rem !important; padding-bottom: .2rem !important; border-style: dashed !important; }
    .rowMese .ev-pop { display: none; }
    .rowMese .ev .ev-title { white-space: normal; }
}

/* gli avatar non devono mai passare sopra la scheda ingrandita (z-index 999 in site.css vale sugli elementi flex) */
.rowMese .imgCompetenza { z-index: auto !important; }

/* ===== Sezione comprimibile (Social in dashboard) ===== */
.wd-collapse{margin:1.6rem 0;border:1px solid var(--wd-border,rgba(124,58,237,.18));border-radius:18px;background:var(--wd-card,#fff);overflow:hidden}
.wd-collapse>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.75rem;padding:.95rem 1.2rem;font-weight:700;user-select:none}
.wd-collapse>summary::-webkit-details-marker{display:none}
.wd-collapse>summary:hover{background:rgba(124,58,237,.06)}
.wd-collapse-t{flex:1;display:flex;align-items:center;gap:.6rem}
.wd-collapse-t .fas{color:var(--wd-viola-3,#8b5cf6)}
.wd-collapse-n{background:linear-gradient(135deg,#7c3aed,#c026d3);color:#fff;border-radius:999px;padding:.1rem .65rem;font-size:.82rem}
.wd-collapse-ch{transition:transform .25s ease;opacity:.6}
.wd-collapse[open] .wd-collapse-ch{transform:rotate(180deg)}
.wd-collapse[open]>summary{border-bottom:1px solid var(--wd-border,rgba(124,58,237,.18))}
.wd-collapse>.wd-grid{padding:1.1rem}
.wd-flash{border-radius:14px}

/* ===== Liste moderne (Index) ===== */
.wd-pagehead{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:.2rem 0 1.2rem}
.wd-pagehead h1{margin:0;font-size:1.65rem;font-weight:800;display:flex;align-items:center;gap:.65rem}
.wd-pagehead h1 .wd-ico{width:2.6rem;height:2.6rem;border-radius:14px;display:inline-grid;place-items:center;color:#fff;font-size:1.05rem;background:linear-gradient(135deg,#7c3aed,#c026d3);box-shadow:0 8px 20px -8px rgba(124,58,237,.7)}
.wd-pagehead .wd-count{font-size:.8rem;font-weight:700;background:rgba(124,58,237,.12);color:var(--wd-viola-3,#7c3aed);border-radius:999px;padding:.15rem .7rem}
.wd-pagehead .wd-spacer{flex:1}
.wd-search{position:relative;min-width:220px;flex:0 1 320px}
.wd-search i{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);opacity:.5;pointer-events:none}
.wd-search input{width:100%;padding:.55rem 1rem .55rem 2.5rem;border-radius:999px;border:1px solid var(--wd-border,rgba(124,58,237,.25));background:var(--wd-card,#fff);color:inherit}
.wd-search input:focus{outline:none;box-shadow:0 0 0 3px rgba(124,58,237,.25)}
.wd-list{width:100%}
.wd-list .wd-name{font-weight:700}
.wd-list .wd-muted{opacity:.7;font-size:.88rem}
.wd-list .wd-act{display:flex;gap:.35rem;justify-content:flex-end}
.wd-act a{width:2.1rem;height:2.1rem;border-radius:10px;display:inline-grid;place-items:center;color:var(--wd-viola-3,#7c3aed);background:rgba(124,58,237,.1);transition:transform .15s,background .15s}
.wd-act a:hover{transform:translateY(-2px);background:rgba(124,58,237,.22);text-decoration:none}
.wd-act a.del{color:#e11d48;background:rgba(225,29,72,.1)}
.wd-act a.del:hover{background:rgba(225,29,72,.22)}
.wd-act .fa,.wd-act .fas,.wd-act .far{font-size:.95rem}
.wd-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.15rem .7rem;font-size:.8rem;font-weight:600;background:rgba(124,58,237,.1);color:var(--wd-viola-3,#7c3aed)}
.wd-chip.ok{background:rgba(16,185,129,.14);color:#059669}
.wd-chip.no{background:rgba(225,29,72,.12);color:#e11d48}
.wd-chip.warn{background:rgba(245,158,11,.16);color:#b45309}
.wd-empty{display:none;text-align:center;padding:2.5rem 1rem;opacity:.7}
.wd-empty.show{display:block}
tr.wd-hide,.wd-hide{display:none !important}
@media (max-width:767.98px){
  .wd-list thead{display:none}
  .wd-list,.wd-list tbody,.wd-list tr,.wd-list td{display:block;width:100%}
  .wd-list tr{margin-bottom:.8rem;border-radius:16px;padding:.7rem .9rem;background:var(--wd-card,#fff);box-shadow:0 6px 18px -10px rgba(76,29,149,.35)}
  .wd-list td{padding:.2rem 0;border:0;display:flex;justify-content:space-between;gap:1rem;text-align:right}
  .wd-list td[data-label]::before{content:attr(data-label);font-weight:600;opacity:.55;text-align:left}
  .wd-list td.wd-first{font-size:1.05rem;justify-content:flex-start;text-align:left}
  .wd-list td.wd-first::before{display:none}
  .wd-search{flex:1 1 100%}
}
.wd-proj.chiuso{opacity:.78;filter:saturate(.7)}
.wd-proj h3{margin:.2rem 0}

/* ===== Programmazione TV (venerdi' = puntate) ===== */
.meseProgrammazione{margin-top:0 !important;margin-bottom:2rem}
.meseProgrammazione .mese-titolo{font-size:1.25rem;font-weight:800;text-transform:capitalize;display:flex;align-items:center;gap:.6rem;margin:0 0 .9rem}
.meseProgrammazione .mese-titolo::before{content:"";width:10px;height:26px;border-radius:6px;background:var(--wd-aurora)}
.meseProgrammazione .puntate{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0}
.meseProgrammazione .day{flex:none;max-width:none;width:auto;padding:.8rem !important;border:1px solid var(--wd-border) !important;border-radius:16px;background:var(--wd-surface-2);white-space:normal;transition:transform .25s var(--wd-ease),box-shadow .25s}
.meseProgrammazione .day:hover{transform:translateY(-3px);box-shadow:var(--wd-shadow)}
.meseProgrammazione .day.inTV{background:linear-gradient(160deg,color-mix(in srgb,var(--wd-cielo) 16%,var(--wd-surface)),var(--wd-surface));border-color:color-mix(in srgb,var(--wd-cielo) 55%,transparent) !important}
.meseProgrammazione .day:not(.inTV){opacity:.72}
.meseProgrammazione .day .bg-light{background:transparent !important}
.meseProgrammazione .day h5{font-size:.9rem;font-weight:700;margin:0 0 .55rem;align-items:center}
.meseProgrammazione .day h5 .fa-tv{color:var(--wd-cielo);font-size:1.15em}
.meseProgrammazione .day .event{color:var(--wd-text);box-shadow:none}
.meseProgrammazione .day div.event{--ev:var(--wd-viola-2);background:color-mix(in srgb,var(--ev) 14%,var(--wd-surface)) !important;border:1px solid color-mix(in srgb,var(--ev) 35%,transparent);border-left:4px solid var(--ev);border-radius:12px !important;padding:.5rem .6rem !important;margin-bottom:.45rem !important;text-overflow:clip;white-space:normal}
.meseProgrammazione .day div.event.bg-Experience{--ev:#c9620a}
.meseProgrammazione .day div.event.bg-Approfondimento{--ev:#ab1971}
.meseProgrammazione .day div.event.bg-Testimonial{--ev:#0057b1}
.meseProgrammazione .day div.event a{color:var(--wd-text) !important;padding:0 !important;margin:0 !important;display:block;white-space:normal;line-height:1.35;font-size:.82rem}
.meseProgrammazione .day div.event > a:first-child{font-weight:700;font-size:.9rem}
.meseProgrammazione .day div.event br{display:none}
.meseProgrammazione .day div.event .imgCompetenza{width:24px;height:24px;float:right;margin-left:-6px;z-index:auto !important}
.meseProgrammazione .day div.event.bg-succes,.meseProgrammazione .day div.event.bg-fail{border-left-width:1px}
.meseProgrammazione .day div.event.bg-succes{--ev:#15a115}
.meseProgrammazione .day div.event.bg-fail{--ev:#d70909}
.meseProgrammazione .day a.totalePuntata{font-weight:800;display:flex !important;align-items:center;justify-content:space-between}
.meseProgrammazione .day a.totalePuntata i{margin:0 !important;color:inherit !important}
.meseProgrammazione > .row.event{display:block;margin:.8rem 0 0;padding:0 !important}
.meseProgrammazione .totaleMese{display:inline-block;background:var(--wd-aurora) !important;color:#fff !important;border-radius:999px;padding:.45rem 1.1rem !important;font-size:.92rem;font-weight:700;margin:0;box-shadow:0 10px 22px -12px rgba(100,71,143,.8)}

/* ===== Schede (Create/Edit/Details/Delete) ===== */
.wd-formcard{border-radius:var(--wd-radius);overflow:visible}
.wd-formcard .card-body{padding:1.4rem 1.5rem}
.wd-formcard .form-group{margin-bottom:1rem}
.wd-formcard .control-label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--wd-muted)}
.wd-formactions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}
.wd-dl{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:.35rem 1.2rem;margin:0}
.wd-dl dt{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--wd-muted);padding:.5rem 0;border-bottom:1px dashed var(--wd-border)}
.wd-dl dd{margin:0;padding:.5rem 0;border-bottom:1px dashed var(--wd-border);word-break:break-word}
.wd-danger{border:1px solid rgba(225,29,72,.35);background:linear-gradient(160deg,rgba(225,29,72,.07),transparent)}
@media (max-width:575.98px){.wd-dl{grid-template-columns:1fr;gap:0}.wd-dl dt{border-bottom:0;padding-bottom:0}}

/* ===== Azioni rapide sulle schede task ===== */
.wd-tile-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--wd-border)}
.wd-tile-actions .btn{border-radius:999px;padding:.2rem .85rem;font-weight:600}

/* ===== Utente / Esci in alto ===== */
.app-header .userName{margin-left:.4rem}
.app-header .wd-username{display:flex;align-items:center;gap:.5rem;padding:.35rem .9rem !important;border-radius:999px;background:rgba(255,255,255,.14);font-weight:700}
.app-header .wd-logout-wrap{margin-left:1.1rem;padding-left:1.1rem;border-left:1px solid rgba(255,255,255,.28)}
.app-header .wd-logout{border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;border-radius:999px;padding:.32rem .95rem;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}
.app-header .wd-logout:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.app-header .wd-logout .fas{font-size:.9em;margin-right:.25rem}
@media (max-width:575.98px){.app-header .wd-logout-wrap{margin-left:.5rem;padding-left:.5rem}.app-header .wd-logout{font-size:0;padding:.4rem .6rem}.app-header .wd-logout .fas{font-size:1rem;margin:0}.app-header .wd-username{display:none}}

/* ===== Selettori moderni ===== */
select.form-control,select.form-select,select.custom-select,.wd-select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;
  border-radius:12px;padding:.55rem 2.4rem .55rem .9rem;min-height:2.6rem;font-weight:500;
  background-color:var(--wd-surface);color:var(--wd-text);border:1px solid var(--wd-border);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%237f5bd1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;background-size:14px 9px;
  transition:border-color .2s,box-shadow .2s}
select.form-control:hover,select.form-select:hover,.wd-select:hover{border-color:var(--wd-viola-2)}
select.form-control:focus,select.form-select:focus,.wd-select:focus{outline:none;border-color:var(--wd-viola-2);box-shadow:0 0 0 3px var(--wd-ring)}
select option{background:var(--wd-surface);color:var(--wd-text)}
.wd-filterbar{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:.5rem}
.wd-filterbar label{font-weight:700;color:rgba(255,255,255,.92);display:flex;align-items:center;gap:.4rem}
.wd-filterbar .wd-select{min-width:220px;width:auto}
.card-header .wd-select{background-color:rgba(255,255,255,.96);color:#1c1631}

/* ===== Presenze: di nuovo blu ===== */
.rowMese .ev.bg-Presente{--ev:#2563eb}
.rowMese .ev.bg-Presente .ev-title{color:var(--wd-text)}

/* ===== Testi un po' piu' grandi: calendario e schede ===== */
.rowMese .day .date{font-size:.95rem;min-width:30px;height:30px}
.rowMese .ev{font-size:.88rem;padding:.34rem .55rem}
.rowMese .ev-pop strong{font-size:1.08rem}
.rowMese .ev-pop em{font-size:.84rem}
.rowMese .ev-pop .ev-who small{font-size:.84rem}
.rowMese .ev-pop .ev-go{font-size:.84rem}
.rowMese h1{font-size:1.45rem}
.rowMese .bg-urgente h6{font-size:.8rem}
.wd-tile h3{font-size:1.18rem}
.wd-tile .wd-sub{font-size:.92rem}
.wd-tile .wd-due{font-size:.88rem}
.wd-tile .badge{font-size:.82rem}
.wd-kpi-lbl{font-size:.95rem}
.wd-tile-actions .btn{font-size:.88rem}
.meseProgrammazione .day div.event a{font-size:.92rem}
.meseProgrammazione .day div.event > a:first-child{font-size:1rem}
.meseProgrammazione .day h5{font-size:1rem}

/* ===== Trasferta video: icona ben visibile a sinistra della barretta ===== */
.rowMese .ev .ev-ico{flex:0 0 auto;display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:9px;background:var(--ev);color:#fff;box-shadow:0 4px 10px -4px var(--ev)}
.rowMese .ev .ev-ico i{margin:0;font-size:.95rem !important;color:#fff !important;line-height:1}
.rowMese .ev.ev-nolink{cursor:default}

/* ===== Social: dettaglio workflow (fasi, cosa fare, copy) ===== */
.wd-social-hero{padding:1.4rem 1.6rem;margin-bottom:1.5rem}
.wd-social-head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:flex-start}
.wd-social-head h1{margin:.2rem 0 .1rem;font-size:1.7rem}
.wd-social-head p{margin:0;opacity:.85}
.wd-social-chips{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.wd-chip-fase{font-weight:600}
.wd-stepper{list-style:none;display:flex;margin:1.4rem 0 0;padding:0;gap:.5rem}
.wd-step{flex:1;position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.35rem;font-size:.9rem;opacity:.75}
.wd-step::before{content:"";position:absolute;top:19px;left:-50%;width:100%;height:3px;background:rgba(255,255,255,.3);z-index:0}
.wd-step:first-child::before{display:none}
.wd-step-dot{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;z-index:1;font-size:1rem}
.wd-step.done{opacity:1}.wd-step.done .wd-step-dot{background:#28a745;color:#fff}.wd-step.done::before{background:#28a745}
.wd-step.current{opacity:1;font-weight:700}.wd-step.current .wd-step-dot{background:#fff;color:#0d6efd;box-shadow:0 0 0 5px rgba(255,255,255,.35)}
.wd-step.current::before{background:#28a745}
.wd-step-now{font-size:.7rem;background:#fff;color:#0d6efd;border-radius:10px;padding:1px 8px;font-weight:700}
.wd-bar{height:8px;background:#e9ecef;border-radius:6px;overflow:hidden}
.wd-bar>span{display:block;height:100%;background:linear-gradient(90deg,#28a745,#5cd685);transition:width .4s}
.wd-checks{list-style:none;margin:1rem 0;padding:0}
.wd-checks li{display:flex;align-items:center;gap:.7rem;padding:.55rem .2rem;border-bottom:1px solid #eef0f2;flex-wrap:wrap}
.wd-check-ico{width:26px;height:26px;border-radius:50%;background:#f1f3f5;color:#adb5bd;display:flex;align-items:center;justify-content:center;font-size:.7rem}
.wd-checks li.ok .wd-check-ico{background:#28a745;color:#fff}
.wd-checks li.ok .wd-check-txt{color:#6c757d;text-decoration:line-through}
.wd-check-txt{font-weight:600}.wd-check-hint{margin-left:auto;font-size:.8rem;color:#6c757d}
.wd-datiform{margin-top:.5rem}
.wd-formactions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.wd-copy{margin-bottom:1.5rem}
.wd-copy-body{padding:1rem 1.2rem}
.wd-copy-head{display:flex;justify-content:space-between;align-items:center;margin:1.4rem 0 .8rem;flex-wrap:wrap;gap:.5rem}
.wd-copycard{border:1px solid #e3e6ea;border-radius:12px;margin-bottom:1rem;overflow:hidden;background:#fff}
.wd-copycard>header{padding:.7rem 1rem;background:#f6f8fa;display:flex;flex-direction:column;gap:.15rem}
.wd-copy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:#e3e6ea}
.wd-copy-ch{background:#fff;padding:.9rem 1rem}
.wd-copy-chtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.wd-copy-text{white-space:pre-wrap;line-height:1.45}
.wd-copy-tags{margin-top:.6rem;color:#0d6efd;font-size:.9rem;word-break:break-word}
.wd-copy-idee{margin-top:1rem;padding:.8rem 1rem;background:#fff9e6;border-radius:10px}
.wd-progress-box{margin-top:1rem}
.wd-tasklist{list-style:none;margin:0;padding:0}
.wd-tasklist li{padding:.6rem .7rem;border-bottom:1px solid #eef0f2;display:flex;flex-direction:column;gap:.3rem}
.wd-tasklist li.chiuso .wd-task-t{text-decoration:line-through;color:#8a949e}
.wd-task-m{display:flex;justify-content:space-between;align-items:center}
.wd-count{font-size:.75rem;font-weight:500;color:#6c757d;margin-left:.4rem}
.wd-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.wd-mini-grid>div{display:flex;flex-direction:column}
.wd-timeline{list-style:none;margin:0;padding:0 0 0 .9rem;border-left:2px solid #e3e6ea}
.wd-timeline li{position:relative;padding:0 0 .9rem .8rem;display:flex;flex-direction:column}
.wd-timeline li::before{content:"";position:absolute;left:-1.35rem;top:.25rem;width:10px;height:10px;border-radius:50%;background:#0d6efd}
.wd-tl-when{font-size:.75rem;color:#6c757d}.wd-tl-note{font-size:.85rem;color:#495057}
@media(max-width:700px){.wd-step{font-size:.75rem}.wd-step-dot{width:32px;height:32px}.wd-step::before{top:15px}.wd-check-hint{margin-left:34px;width:100%}}
.wd-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;opacity:.8;font-weight:600}
