/* /Components/Crm/AnagraQuickAddDialog.razor.rz.scp.css */
/* Modale ANAGRA_QUICK — stesso pattern degli overlay del progetto (niente JS). */
.aq-back[b-ubz368js51] {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(13, 34, 48, .45);
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}

.aq-card[b-ubz368js51] {
    background: #fff; border-radius: 8px;
    width: min(720px, 100%); max-height: 92vh; overflow-y: auto;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
}

.aq-head[b-ubz368js51] {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 14px; border-bottom: 1px solid #e3e8ec;
}

.aq-head .dot[b-ubz368js51] {
    width: 9px; height: 9px; border-radius: 50%;
    background: #2b7dd2; display: inline-block;
}

.aq-body[b-ubz368js51] { padding: 12px 14px 14px; }

.aq-grid[b-ubz368js51] {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px;
}

.aq-f[b-ubz368js51] { display: flex; flex-direction: column; gap: 2px; font-size: .82rem; color: #35505f; }
.aq-f.s2[b-ubz368js51], .s2[b-ubz368js51] { grid-column: span 2; }

.aq-tax[b-ubz368js51] { display: flex; gap: 6px; }
.aq-taxpfx[b-ubz368js51] { width: 64px; flex: 0 0 auto; text-transform: uppercase; }

.aq-crm summary[b-ubz368js51] { cursor: pointer; font-size: .85rem; color: #35505f; font-weight: 600; }

.aq-chk[b-ubz368js51] { display: flex; align-items: center; gap: 6px; font-size: .85rem; color: #35505f; }

.aq-actions[b-ubz368js51] {
    display: flex; gap: 8px; margin-top: 12px;
    border-top: 1px solid #e3e8ec; padding-top: 10px;
}

/* Avvisi sotto le caselle (contatore escape-aware + caratteri non salvabili in CP-1252):
   informano MENTRE si scrive, non bloccano mai il salvataggio. */
.aq-hint[b-ubz368js51] { font-size: 11px; color: #8a94a6; text-align: right; margin-top: 1px; }
.aq-hint.aq-warn[b-ubz368js51] { color: #a86f00; }               /* residui 0..5: ambra */
.aq-hint.aq-over[b-ubz368js51] { color: #c9302c; font-weight: 600; }  /* oltre il limite: taglio in arrivo */
.aq-badchars[b-ubz368js51] { font-size: 11px; color: #c9302c; margin-top: 1px; }

@media (max-width: 640px) {
    .aq-grid[b-ubz368js51] { grid-template-columns: 1fr; }
    .aq-f.s2[b-ubz368js51], .s2[b-ubz368js51] { grid-column: span 1; }
}
/* /Components/Layout/EnvironmentBanner.razor.rz.scp.css */
/* Una riga sola, alta ESATTAMENTE --env-banner-h (definita in app.css): i layout usano
   quella variabile per compensare sidebar/top-row sticky, quindi l'altezza qui non deve
   mai diventare variabile. Testo che eccede: ellissi, MAI andare a capo. */
.env-banner[b-pwenbvvfp6] {
    /* Sticky: l'avviso resta visibile anche scrollando (e' sicurezza, non decorazione).
       z-index sopra la top-row del MainLayout (z-index 1). */
    position: sticky;
    top: 0;
    z-index: 2;
    height: var(--env-banner-h);
    line-height: var(--env-banner-h);
    padding: 0 1rem;
    text-align: center;
    font-size: .8rem;
    letter-spacing: .02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    /* Giallo/ambra "warning" di Bootstrap 5: si nota ma non urla, e non si confonde col
       rosso dei messaggi d'errore. Fallback esadecimali per versioni Bootstrap senza
       le variabili -bg-subtle. */
    background: var(--bs-warning-bg-subtle, #fff3cd);
    color: var(--bs-warning-text-emphasis, #664d03);
    border-bottom: 1px solid var(--bs-warning-border-subtle, #ffe69c);
}

@media (max-width: 480px) {
    .env-banner[b-pwenbvvfp6] {
        font-size: .72rem;
        letter-spacing: 0;
    }
}
/* /Components/Layout/LoginLayout.razor.rz.scp.css */
/* Sostituisce vh-100 di Bootstrap: quando la striscia d'ambiente e' accesa il riquadro
   di login le cede la sua altezza (--env-banner-off, app.css), cosi' la card resta
   centrata nel viewport SENZA barra di scorrimento. A striscia spenta (produzione)
   l'offset e' 0px e l'altezza torna 100vh: identico a prima. */
.login-viewport[b-78ypy4b7bk] {
    height: calc(100vh - var(--env-banner-off, 0px));
}

/* Stesse regole di MainLayout.razor.css: prima di questo file LoginLayout non aveva CSS
   scoped, quindi il suo #blazor-error-ui restava SENZA stile (visibile in fondo, 24px di
   scroll fantasma anche senza striscia). Qui lo nascondiamo come su tutte le altre pagine:
   blazor.web.js lo riaccende con style inline quando c'e' davvero un errore. */
#blazor-error-ui[b-78ypy4b7bk] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-78ypy4b7bk] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-ono8zdnnsz] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-ono8zdnnsz] {
    flex: 1;
}

.sidebar[b-ono8zdnnsz] {
    background-image: linear-gradient(180deg, #2B3A67 0%, #1a2340 100%);
    transition: width .18s ease;
}

.nav-toggle[b-ono8zdnnsz] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; padding: 0;
    border: 1px solid #d6d5d5; border-radius: 8px;
    background: #fff; color: #3d5365; cursor: pointer;
}
.nav-toggle:hover[b-ono8zdnnsz] { background: #eef1f4; color: #2B357F; }

.top-row[b-ono8zdnnsz] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

/* Pillola utente (dal mockup Dashboard_Home_Mockup_v1): lì la appbar è navy e la pillola
   usa bianco in trasparenza; qui la top-row è chiara, quindi stesse forme ma navy in
   trasparenza (nessun colore fuori brand). Avatar oro identico al mockup. */
.userchip[b-ono8zdnnsz] {
    display: flex;
    align-items: center;
    gap: 9px;
    background: rgba(43, 53, 127, .06);
    border: 1px solid rgba(43, 53, 127, .18);
    padding: 5px 12px 5px 6px;
    border-radius: 999px;
    font-size: 12.5px;
    color: #202A63;
    white-space: nowrap;
}

    .userchip .avatar[b-ono8zdnnsz] {
        width: 26px;
        height: 26px;
        border-radius: 50%;
        background: #FAB931;
        color: #3a2c00;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 800;
        font-size: 11px;
    }

    .top-row[b-ono8zdnnsz]  a, .top-row[b-ono8zdnnsz]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    /* Selettore lingua IT|EN: discreto; la lingua attiva pesa 800 in oro, l'altra navy tenue. */
    .top-row .lang-switch[b-ono8zdnnsz] { display: flex; align-items: center; gap: 6px; font-size: 12px; letter-spacing: .04em; }
    .top-row .lang-switch a[b-ono8zdnnsz] { margin-left: 0; color: rgba(43, 53, 127, .45); font-weight: 600; text-decoration: none; }
    .top-row .lang-switch a.on[b-ono8zdnnsz] { color: #FAB931; font-weight: 800; }
    .top-row .lang-switch a:hover[b-ono8zdnnsz] { text-decoration: underline; }
    .top-row .lang-switch .sep[b-ono8zdnnsz] { color: #d6d5d5; }

    .top-row[b-ono8zdnnsz]  a:hover, .top-row[b-ono8zdnnsz]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-ono8zdnnsz]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-ono8zdnnsz] {
        justify-content: space-between;
    }

    .top-row[b-ono8zdnnsz]  a, .top-row[b-ono8zdnnsz]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-ono8zdnnsz] {
        flex-direction: row;
    }

    .sidebar[b-ono8zdnnsz] {
        width: 250px;
        /* --env-banner-off (app.css): 0px in produzione (= 100vh identico a prima),
           altezza della striscia d'ambiente quando e' accesa. */
        height: calc(100vh - var(--env-banner-off, 0px));
        position: sticky;
        top: var(--env-banner-off, 0px);
    }

    .page.nav-collapsed .sidebar[b-ono8zdnnsz] {
        width: 64px;
    }

    .top-row[b-ono8zdnnsz] {
        position: sticky;
        top: var(--env-banner-off, 0px);
        z-index: 1;
    }

    .top-row.auth[b-ono8zdnnsz]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-ono8zdnnsz], article[b-ono8zdnnsz] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-ono8zdnnsz] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-ono8zdnnsz] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-c57skhoi7r] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-c57skhoi7r] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-c57skhoi7r] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-c57skhoi7r] {
    font-size: 1.1rem;
}

.bi[b-c57skhoi7r] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
    /* le SVG hanno fill bianco fisso: l'opacità le porta allo stesso colore del testo (.88) */
    opacity: .88;
}

.nav-item[b-c57skhoi7r]  a.active .bi,
.nav-item[b-c57skhoi7r]  .nav-link:hover .bi {
    opacity: 1;
}

.bi-house-door-fill-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.bi-people-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M15 14s1 0 1-1-1-4-5-4-5 3-5 4 1 1 1 1h8zm-7.978-1A.261.261 0 0 1 7 12.996c.001-.264.167-1.03.76-1.72C8.312 10.629 9.282 10 11 10c1.717 0 2.687.63 3.24 1.276.593.69.758 1.457.76 1.72l-.008.002a.274.274 0 0 1-.014.002H7.022zM11 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm3-2a3 3 0 1 1-6 0 3 3 0 0 1 6 0zM6.936 9.28a5.88 5.88 0 0 0-1.23-.247A7.35 7.35 0 0 0 5 9c-4 0-5 3-5 4 0 .667.333 1 1 1h4.216A2.238 2.238 0 0 1 5 13c0-.779.357-1.85 1.084-2.828.243-.326.52-.634.852-.916zM4.92 10A5.493 5.493 0 0 0 4 13H1c0-.26.164-1.03.76-1.724.545-.636 1.492-1.256 3.16-1.275zM1.5 5.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0zm3-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E");
}

.bi-check2-square-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3 14.5A1.5 1.5 0 0 1 1.5 13V3A1.5 1.5 0 0 1 3 1.5h8a.5.5 0 0 1 0 1H3a.5.5 0 0 0-.5.5v10a.5.5 0 0 0 .5.5h10a.5.5 0 0 0 .5-.5V8a.5.5 0 0 1 1 0v5a1.5 1.5 0 0 1-1.5 1.5H3z'/%3E%3Cpath d='m8.354 10.354 7-7a.5.5 0 0 0-.708-.708L8 9.293 5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0z'/%3E%3C/svg%3E");
}

.bi-shield-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M5.338 1.59a61.44 61.44 0 0 0-2.837.856.481.481 0 0 0-.328.39c-.554 4.157.726 7.19 2.253 9.188a10.725 10.725 0 0 0 2.287 2.233c.346.244.652.42.893.533.12.057.218.095.293.118a.55.55 0 0 0 .101.025.615.615 0 0 0 .1-.025c.076-.023.174-.061.294-.118.24-.113.547-.29.893-.533a10.726 10.726 0 0 0 2.287-2.233c1.527-1.997 2.807-5.031 2.253-9.188a.48.48 0 0 0-.328-.39c-.651-.213-1.75-.56-2.837-.855C9.552 1.29 8.531 1.067 8 1.067c-.53 0-1.552.223-2.662.524zM5.072.56C6.157.265 7.31 0 8 0s1.843.265 2.928.56c1.11.3 2.229.655 2.887.87a1.54 1.54 0 0 1 1.044 1.262c.596 4.477-.787 7.795-2.465 9.99a11.775 11.775 0 0 1-2.517 2.453 7.159 7.159 0 0 1-1.048.625c-.28.132-.581.24-.829.24s-.548-.108-.829-.24a7.158 7.158 0 0 1-1.048-.625 11.777 11.777 0 0 1-2.517-2.453C1.928 10.487.545 7.169 1.141 2.692A1.54 1.54 0 0 1 2.185 1.43 62.456 62.456 0 0 1 5.072.56z'/%3E%3C/svg%3E");
}

.bi-question-circle-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94z'/%3E%3C/svg%3E");
}

.bi-chat-dots-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M5 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm4 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2z'/%3E%3Cpath d='m2.165 15.803.02-.004c1.83-.363 2.948-.842 3.468-1.105A9.06 9.06 0 0 0 8 14.5a7 7 0 0 0 0-14A7 7 0 0 0 1 7.5c0 1.202.264 2.28.836 3.36l-.006.001c-.204.489-.583 1.15-1.096 1.759a.5.5 0 0 0 .55.799zm.238-1.324.001-.002z'/%3E%3C/svg%3E");
}

.bi-rocket-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8 8c.828 0 1.5-.895 1.5-2S8.828 4 8 4s-1.5.895-1.5 2S7.172 8 8 8z'/%3E%3Cpath d='M11.953 8.81c-.195-3.388-.968-5.507-1.777-6.819C9.707 1.233 9.23.751 8.857.454a3.495 3.495 0 0 0-.463-.315A2.19 2.19 0 0 0 8.25.064.546.546 0 0 0 8 0a.549.549 0 0 0-.266.073 2.312 2.312 0 0 0-.142.08 3.67 3.67 0 0 0-.459.33c-.37.308-.844.803-1.31 1.57-.805 1.322-1.577 3.433-1.774 6.756l-1.497 1.826-.004.005A2.5 2.5 0 0 0 2 12.202V15.5a.5.5 0 0 0 .9.3l1.125-1.5c.166-.222.42-.4.752-.57.214-.108.468-.196.72-.264l.012.008a5.495 5.495 0 0 0 .452.278l.106.06c.228.129.476.247.751.36A6.245 6.245 0 0 0 8 14.5c.374 0 .724-.04 1.04-.104.26-.063.517-.142.751-.26l.105-.06c.15-.082.3-.17.452-.278l.012-.008c.252.068.506.156.72.264.332.17.586.348.752.57L13 16a.5.5 0 0 0 .9-.3v-3.298a2.5 2.5 0 0 0-.548-1.562l-1.399-1.83z'/%3E%3C/svg%3E");
}

.bi-file-earmark-text-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M5 4a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm-.5 2.5A.5.5 0 0 1 5 6h6a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5M5 8a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1z'/%3E%3Cpath d='M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2zm10-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1z'/%3E%3C/svg%3E");
}
.bi-globe-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8m7.5-6.923c-.67.204-1.335.82-1.887 1.855A8 8 0 0 0 5.145 4H7.5zM4.09 4a9.3 9.3 0 0 1 .64-1.539 7 7 0 0 1 .597-.933A7.03 7.03 0 0 0 2.255 4zm-.582 3.5c.03-.877.138-1.718.312-2.5H1.674a7 7 0 0 0-.656 2.5zM4.847 5a12.5 12.5 0 0 0-.338 2.5H7.5V5zM8.5 5v2.5h2.99a12.5 12.5 0 0 0-.337-2.5zM4.51 8.5a12.5 12.5 0 0 0 .337 2.5H7.5V8.5zm3.99 0V11h2.653c.187-.765.306-1.608.338-2.5zM5.145 12q.208.58.468 1.068c.552 1.035 1.218 1.65 1.887 1.855V12zm.182 2.472a7 7 0 0 1-.597-.933A9.3 9.3 0 0 1 4.09 12H2.255a7 7 0 0 0 3.072 2.472M3.82 11a13.7 13.7 0 0 1-.312-2.5h-2.49c.062.89.291 1.733.656 2.5zm6.853 3.472A7 7 0 0 0 13.745 12H11.91a9.3 9.3 0 0 1-.64 1.539 7 7 0 0 1-.597.933M8.5 12v2.923c.67-.204 1.335-.82 1.887-1.855q.26-.487.468-1.068zm3.68-1h2.146c.365-.767.594-1.61.656-2.5h-2.49a13.7 13.7 0 0 1-.312 2.5m2.802-3.5a7 7 0 0 0-.656-2.5H12.18c.174.782.282 1.623.312 2.5zM11.27 2.461c.247.464.462.98.64 1.539h1.835a7 7 0 0 0-3.072-2.472c.218.284.418.598.597.933M10.855 4a8 8 0 0 0-.468-1.068C9.835 1.897 9.17 1.282 8.5 1.077V4z'/%3E%3C/svg%3E");
}

/* Archivi di base (/archivi) — gated 'archivi.base'. */
.bi-archive-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1v7.5a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 1 12.5V5a1 1 0 0 1-1-1zm2 3v7.5A1.5 1.5 0 0 0 3.5 14h9a1.5 1.5 0 0 0 1.5-1.5V5zm13-3H1v2h14zM5 7.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5'/%3E%3C/svg%3E");
}

/* Registro feature flag (/admin/features) — voce visibile ai soli owner. */
.bi-toggles-nav-menu[b-c57skhoi7r] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 9a3.5 3.5 0 1 0 0 7h7a3.5 3.5 0 1 0 0-7zm7 6a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5m-7-14a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5m2.45 0A3.49 3.49 0 0 1 8 3.5 3.49 3.49 0 0 1 6.95 6h4.55a2.5 2.5 0 0 0 0-5zM4.5 0h7a3.5 3.5 0 1 1 0 7h-7a3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E");
}

.nav-section[b-c57skhoi7r] {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

    /* Etichette di sezione: leggibili sul fondo navy ma subordinate alle voci
       (niente utility Bootstrap: text-muted/fw-bold hanno !important e non si sovrascrivono). */
    .nav-section small[b-c57skhoi7r] {
        color: rgba(255, 255, 255, .58);
        font-size: 10.5px;
        text-transform: uppercase;
        letter-spacing: .06em;
        font-weight: 800;
    }

.nav-item[b-c57skhoi7r] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-c57skhoi7r] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-c57skhoi7r] {
        padding-bottom: 1rem;
    }

    .nav-item[b-c57skhoi7r]  .nav-link {
        color: rgba(255, 255, 255, .88);
        background: none;
        border: none;
        /* barra trasparente: riserva lo spazio di quella oro della voce attiva (niente scatti) */
        border-left: 3px solid transparent;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-c57skhoi7r]  a.active {
    background-color: rgba(255,255,255,0.10);
    border-left-color: #FAB931;
    color: white;
}

.nav-item[b-c57skhoi7r]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-c57skhoi7r] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-c57skhoi7r] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-c57skhoi7r] {
        display: none;
    }

    .nav-scrollable[b-c57skhoi7r] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus.
           --env-banner-off (app.css): spazio ceduto alla striscia d'ambiente quando
           e' accesa; 0px in produzione (valore identico a prima). */
        height: calc(100vh - 3.5rem - var(--env-banner-off, 0px));
        overflow-y: auto;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-s5lij8sn1a],
.components-reconnect-repeated-attempt-visible[b-s5lij8sn1a],
.components-reconnect-failed-visible[b-s5lij8sn1a],
.components-pause-visible[b-s5lij8sn1a],
.components-resume-failed-visible[b-s5lij8sn1a],
.components-rejoining-animation[b-s5lij8sn1a] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-retrying[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-failed[b-s5lij8sn1a],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-s5lij8sn1a] {
    display: block;
}


#components-reconnect-modal[b-s5lij8sn1a] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-s5lij8sn1a 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-s5lij8sn1a 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-s5lij8sn1a 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-s5lij8sn1a]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-s5lij8sn1a 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-s5lij8sn1a {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-s5lij8sn1a {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-s5lij8sn1a {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-s5lij8sn1a] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-s5lij8sn1a] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-s5lij8sn1a] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-s5lij8sn1a] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-s5lij8sn1a] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-s5lij8sn1a] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-s5lij8sn1a] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-s5lij8sn1a 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-s5lij8sn1a] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-s5lij8sn1a {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Archivi/Archivi.razor.rz.scp.css */
/* ============================================================================
   ARCHIVI DI BASE — stile della schermata a tre pannelli (contratto §5).
   Scoped alla pagina; le regole per i componenti figli (griglia, pannello)
   passano da ::deep sotto il wrapper .archivi-shell.
   ============================================================================ */

.archivi-shell[b-mhqdejvuw8] {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr) 400px;
    gap: 1rem;
    align-items: start;
}

/* ------------------------- Rail sinistra ------------------------- */
.arch-rail[b-mhqdejvuw8] {
    position: sticky;
    top: 1rem;
}

.arch-rail-title[b-mhqdejvuw8] {
    margin-bottom: .75rem;
}

.arch-rail-group[b-mhqdejvuw8] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--bs-secondary-color);
    margin: .75rem 0 .25rem;
}

.arch-rail-item[b-mhqdejvuw8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    width: 100%;
    padding: .3rem .55rem;
    border: 0;
    border-left: 3px solid transparent;
    border-radius: .25rem;
    background: transparent;
    text-align: left;
    font-size: .9rem;
    color: var(--bs-body-color);
}

button.arch-rail-item:hover[b-mhqdejvuw8] {
    background: var(--bs-tertiary-bg);
}

.arch-rail-active[b-mhqdejvuw8] {
    background: var(--bs-primary-bg-subtle);
    border-left-color: var(--bs-primary);
    font-weight: 600;
}

.arch-rail-count[b-mhqdejvuw8] {
    background: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
    font-variant-numeric: tabular-nums;
}

.arch-rail-active .arch-rail-count[b-mhqdejvuw8] {
    background: var(--bs-primary);
    color: #fff;
}

.arch-rail-disabled[b-mhqdejvuw8] {
    opacity: .55;
    cursor: not-allowed;
}

.arch-rail-soon[b-mhqdejvuw8] {
    margin-top: 1.25rem;
}

/* ------------------------- Banner Delphi ------------------------- */
.arch-banner[b-mhqdejvuw8] {
    font-size: .8rem;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .375rem;
    padding: .3rem .6rem;
    margin-bottom: .75rem;
}

/* ------------------------- Toolbar ------------------------- */
.arch-toolbar[b-mhqdejvuw8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .75rem;
}

.arch-toolbar-controls[b-mhqdejvuw8] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
}

.arch-search[b-mhqdejvuw8] {
    width: 240px;
}

.arch-switch[b-mhqdejvuw8] {
    padding-top: .25rem;
    white-space: nowrap;
}

.arch-company-select[b-mhqdejvuw8] {
    max-width: 210px;
}

/* ------------------------- Griglia (::deep nel componente) ------------------------- */
.archivi-shell[b-mhqdejvuw8]  .arch-code {
    font-family: var(--bs-font-monospace);
    font-size: .85em;
}

.archivi-shell[b-mhqdejvuw8]  .arch-num {
    font-variant-numeric: tabular-nums;
}

.archivi-shell[b-mhqdejvuw8]  .arch-grid th {
    white-space: nowrap;
    font-size: .8rem;
    border-bottom-width: 2px;
}

.archivi-shell[b-mhqdejvuw8]  .arch-th-sort {
    cursor: pointer;
    user-select: none;
}

.archivi-shell[b-mhqdejvuw8]  .arch-th-sort:hover {
    color: var(--bs-primary);
}

.archivi-shell[b-mhqdejvuw8]  .arch-sort-icon {
    font-size: .65rem;
    margin-left: .2rem;
}

.archivi-shell[b-mhqdejvuw8]  .arch-row {
    cursor: pointer;
}

.archivi-shell[b-mhqdejvuw8]  .arch-selected > td {
    background: var(--bs-primary-bg-subtle);
}

/* Righe di societa' non attive: tono attenuato (restano leggibili). */
.archivi-shell[b-mhqdejvuw8]  .arch-inactive > td {
    opacity: .62;
}

/* Righe cancellate: barrate (mai le azioni). */
.archivi-shell[b-mhqdejvuw8]  .arch-deleted > td:not(.arch-actions) {
    text-decoration: line-through;
    color: var(--bs-secondary-color);
}

.archivi-shell[b-mhqdejvuw8]  .arch-badge-company {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    border: 1px solid var(--bs-border-color);
    font-weight: 500;
}

.archivi-shell[b-mhqdejvuw8]  .arch-badge-own {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    border-color: var(--bs-primary-border-subtle);
}

.archivi-shell[b-mhqdejvuw8]  .arch-badge-inactive {
    background: transparent;
    border-style: dashed;
}

.archivi-shell[b-mhqdejvuw8]  .arch-badge-deleted {
    background: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
}

.archivi-shell[b-mhqdejvuw8]  .arch-btn-icon {
    padding: 0 .25rem;
    line-height: 1;
    text-decoration: none;
}

.archivi-shell[b-mhqdejvuw8]  .arch-actions {
    white-space: nowrap;
    width: 110px;
}

.archivi-shell[b-mhqdejvuw8]  .arch-col-code {
    width: 90px;
}

.archivi-shell[b-mhqdejvuw8]  .arch-col-company {
    width: 170px;
}

.archivi-shell[b-mhqdejvuw8]  .arch-confirm {
    white-space: nowrap;
}

.archivi-shell[b-mhqdejvuw8]  mark {
    padding: 0 .05em;
    background: #ffe89b;
}

/* Conferma discreta: la riga salvata "respira" verde e la spunta sfuma. */
.archivi-shell[b-mhqdejvuw8]  .arch-flash > td {
    animation: archFlash-b-mhqdejvuw8 2.4s ease-out;
}

@keyframes archFlash-b-mhqdejvuw8 {
    0% { background-color: var(--bs-success-bg-subtle); }
    100% { background-color: transparent; }
}

.archivi-shell[b-mhqdejvuw8]  .arch-saved-check {
    animation: archFadeOut-b-mhqdejvuw8 2.4s ease-out forwards;
}

@keyframes archFadeOut-b-mhqdejvuw8 {
    0% { opacity: 1; }
    70% { opacity: 1; }
    100% { opacity: 0; }
}

/* Focus visibile in modifica inline. */
.archivi-shell[b-mhqdejvuw8]  .arch-editing input:focus,
.archivi-shell[b-mhqdejvuw8]  .arch-editing select:focus {
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .2);
}

/* ------------------------- Skeleton ------------------------- */
.arch-skeleton[b-mhqdejvuw8] {
    padding: .5rem 0;
}

.archivi-shell .arch-skeleton-line[b-mhqdejvuw8],
.archivi-shell[b-mhqdejvuw8]  .arch-skeleton-line {
    height: 15px;
    border-radius: 4px;
    margin-bottom: .65rem;
    background: linear-gradient(90deg, var(--bs-secondary-bg) 25%, var(--bs-tertiary-bg) 37%, var(--bs-secondary-bg) 63%);
    background-size: 400% 100%;
    animation: archShimmer-b-mhqdejvuw8 1.4s ease infinite;
}

@keyframes archShimmer-b-mhqdejvuw8 {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

/* ------------------------- Empty state ------------------------- */
.arch-empty[b-mhqdejvuw8] {
    text-align: center;
    padding: 2.5rem 1rem;
    border: 1px dashed var(--bs-border-color);
    border-radius: .5rem;
}

/* ------------------------- Pannello destro ------------------------- */
.arch-side[b-mhqdejvuw8] {
    position: sticky;
    top: 1rem;
}

.archivi-shell[b-mhqdejvuw8]  .arch-detail {
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}

.archivi-shell[b-mhqdejvuw8]  .arch-detail-code {
    font-family: var(--bs-font-monospace);
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .25rem;
    padding: 0 .35rem;
}

.archivi-shell[b-mhqdejvuw8]  .arch-detail-group {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--bs-secondary-color);
    border-bottom: 1px solid var(--bs-border-color);
    padding-bottom: .2rem;
    margin: 1rem 0 .5rem;
}

.archivi-shell[b-mhqdejvuw8]  .arch-detail-body {
    font-size: .9rem;
}

.archivi-shell[b-mhqdejvuw8]  .arch-lang-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--bs-border-color);
}

.archivi-shell[b-mhqdejvuw8]  .arch-lang-filled {
    background: var(--bs-success);
}

.archivi-shell[b-mhqdejvuw8]  .arch-lang-badge {
    width: 2.4em;
    flex-shrink: 0;
}

.archivi-shell[b-mhqdejvuw8]  .arch-history-item {
    padding: .3rem 0;
    border-bottom: 1px dotted var(--bs-border-color);
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    font-size: .82rem;
}

.archivi-shell[b-mhqdejvuw8]  .arch-history-when {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* ------------------------- Responsive (<1180px: pannelli in verticale) ------------------------- */
@media (max-width: 1180px) {
    .archivi-shell[b-mhqdejvuw8] {
        grid-template-columns: 1fr;
    }

    .arch-rail[b-mhqdejvuw8],
    .arch-side[b-mhqdejvuw8] {
        position: static;
    }

    .archivi-shell[b-mhqdejvuw8]  .arch-detail {
        max-height: none;
    }
}
/* /Components/Pages/Cost/AdditionalCharges.razor.rz.scp.css */
/* Spese accessorie — replica variabili brand (stessa convenzione di Clients.razor.css / SalesTab.razor.css):
   la CSS isolation è per-componente, le classi condivise del modulo costo si RIDICHIARANO qui. */
.cost[b-5yhkbg1zw6] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-5yhkbg1zw6] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-5yhkbg1zw6] { color: var(--ink-soft); }

/* ---------------- testata pagina ---------------- */
.head[b-5yhkbg1zw6] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.head h1[b-5yhkbg1zw6] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0; }
.push[b-5yhkbg1zw6] { margin-left: auto; }

.count[b-5yhkbg1zw6] {
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
}

/* ---------------- bottoni ---------------- */
.btn[b-5yhkbg1zw6] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-5yhkbg1zw6] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-5yhkbg1zw6] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-5yhkbg1zw6] { background: var(--panel); }
.btn.sm[b-5yhkbg1zw6] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-5yhkbg1zw6] { opacity: .55; cursor: not-allowed; }

/* ---------------- filtri ---------------- */
.filters[b-5yhkbg1zw6] {
    display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    padding: 11px 13px; margin-bottom: 14px;
}

.f[b-5yhkbg1zw6] { display: flex; flex-direction: column; gap: 4px; }
.f.grow[b-5yhkbg1zw6] { flex: 1; min-width: 220px; }

.f > label[b-5yhkbg1zw6] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}

.f select[b-5yhkbg1zw6], .f input[b-5yhkbg1zw6] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 170px;
}
.f input:focus[b-5yhkbg1zw6], .f select:focus[b-5yhkbg1zw6] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }

.chk[b-5yhkbg1zw6] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600; color: var(--ink-soft);
    cursor: pointer;
}
.chk input[b-5yhkbg1zw6] { accent-color: var(--navy); }
.showdel[b-5yhkbg1zw6] { margin-top: 10px; }

/* ---------------- tabella ---------------- */
.card[b-5yhkbg1zw6] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    overflow: hidden;
}
.tbl-scroll[b-5yhkbg1zw6] { overflow-x: auto; }

table[b-5yhkbg1zw6] { width: 100%; border-collapse: collapse; font-size: 13px; }

thead th[b-5yhkbg1zw6] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}

tbody td[b-5yhkbg1zw6] {
    padding: 9px 12px; border-bottom: 1px solid var(--line-soft);
    vertical-align: middle;
}

tbody tr:last-child td[b-5yhkbg1zw6] { border-bottom: none; }
tbody tr:hover td[b-5yhkbg1zw6] { background: #f2f6f9; }
tr.del td[b-5yhkbg1zw6] { color: var(--ink-soft); background: var(--panel); }

.ta-end[b-5yhkbg1zw6] { text-align: right; }
.nowrap[b-5yhkbg1zw6] { white-space: nowrap; }
.rs[b-5yhkbg1zw6] { font-weight: 650; }

/* ---------------- pill stato ---------------- */
.pill[b-5yhkbg1zw6] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
    display: inline-block;
}
.pill.win[b-5yhkbg1zw6] { background: var(--good-soft); color: var(--good); }
.pill.new[b-5yhkbg1zw6] { background: #e7eef3; color: var(--ink-soft); }
.pill.lost[b-5yhkbg1zw6] { background: var(--bad-soft); color: var(--bad); }

/* ---------------- azioni riga ---------------- */
.act[b-5yhkbg1zw6] {
    font: inherit; font-size: 12px; font-weight: 650;
    color: var(--navy-dk); background: #fff; border: 1px solid var(--line);
    padding: 4px 10px; border-radius: 8px; cursor: pointer; white-space: nowrap;
}
.act:hover[b-5yhkbg1zw6] { background: var(--panel); }
.act.danger[b-5yhkbg1zw6] { color: var(--bad); }
.act.danger:hover[b-5yhkbg1zw6] { background: var(--bad); border-color: var(--bad); color: #fff; }
.act.good[b-5yhkbg1zw6] { color: var(--good); }
.act.good:hover[b-5yhkbg1zw6] { background: var(--good); border-color: var(--good); color: #fff; }

/* ---------------- pannello editor (come le card del workspace) ---------------- */
.panel[b-5yhkbg1zw6] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    margin-top: 14px;
}
.panel h2[b-5yhkbg1zw6] {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft);
    padding: 13px 15px; border-bottom: 1px solid var(--line-soft);
    display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 650;
}
.panel h2 .dot[b-5yhkbg1zw6] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.pad[b-5yhkbg1zw6] { padding: 14px 15px; }

.grid[b-5yhkbg1zw6] { display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px; }

.fld[b-5yhkbg1zw6] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fld > label[b-5yhkbg1zw6] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}
.fld input[b-5yhkbg1zw6], .fld select[b-5yhkbg1zw6], .fld textarea[b-5yhkbg1zw6] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; width: 100%;
}
.fld input:focus[b-5yhkbg1zw6], .fld select:focus[b-5yhkbg1zw6], .fld textarea:focus[b-5yhkbg1zw6] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.fld input[readonly][b-5yhkbg1zw6], .fld input:disabled[b-5yhkbg1zw6] { background: var(--panel); color: var(--ink-soft); }
.fld textarea[b-5yhkbg1zw6] { resize: vertical; }

.s2[b-5yhkbg1zw6] { grid-column: span 2; } .s3[b-5yhkbg1zw6] { grid-column: span 3; } .s4[b-5yhkbg1zw6] { grid-column: span 4; }
.s5[b-5yhkbg1zw6] { grid-column: span 5; } .s6[b-5yhkbg1zw6] { grid-column: span 6; } .s12[b-5yhkbg1zw6] { grid-column: span 12; }
@media (max-width: 900px) {
    .s2[b-5yhkbg1zw6], .s3[b-5yhkbg1zw6], .s4[b-5yhkbg1zw6], .s5[b-5yhkbg1zw6] { grid-column: span 6; }
    .s6[b-5yhkbg1zw6] { grid-column: span 12; }
}

.actions[b-5yhkbg1zw6] { margin-top: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.msg[b-5yhkbg1zw6] { font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 8px; }
.msg.ok[b-5yhkbg1zw6] { background: var(--good-soft); color: var(--good); }
.msg.bad[b-5yhkbg1zw6] { background: var(--bad-soft); color: var(--bad); }

/* ---------------- stati pagina ---------------- */
.loading[b-5yhkbg1zw6] { padding: 40px; text-align: center; color: var(--ink-soft); }

.empty[b-5yhkbg1zw6] {
    color: var(--ink-soft); font-size: 13px;
    background: var(--paper); border: 1px dashed var(--line);
    border-radius: 12px; padding: 18px; text-align: center;
    display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
}

.errbox[b-5yhkbg1zw6] {
    background: var(--bad-soft); border: 1px solid #ecd2d2; color: var(--bad);
    border-radius: 10px; padding: 10px 13px; margin-top: 12px; font-size: 13px;
}
/* /Components/Pages/Cost/CartageRates.razor.rz.scp.css */
/* Cartage — replica variabili brand (stessa convenzione di Clients.razor.css / SalesTab.razor.css):
   la CSS isolation è per-componente, le classi condivise del modulo costo si RIDICHIARANO qui. */
.cost[b-11btruk8d6] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-11btruk8d6] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-11btruk8d6] { color: var(--ink-soft); }

/* ---------------- testata pagina ---------------- */
.head[b-11btruk8d6] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.head h1[b-11btruk8d6] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0; }
.push[b-11btruk8d6] { margin-left: auto; }

.count[b-11btruk8d6] {
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
}

/* ---------------- bottoni ---------------- */
.btn[b-11btruk8d6] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-11btruk8d6] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-11btruk8d6] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-11btruk8d6] { background: var(--panel); }
.btn.sm[b-11btruk8d6] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-11btruk8d6] { opacity: .55; cursor: not-allowed; }

/* ---------------- filtri ---------------- */
.filters[b-11btruk8d6] {
    display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    padding: 11px 13px; margin-bottom: 14px;
}

.f[b-11btruk8d6] { display: flex; flex-direction: column; gap: 4px; }
.f.grow[b-11btruk8d6] { flex: 1; min-width: 220px; }

.f > label[b-11btruk8d6] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}

.f select[b-11btruk8d6], .f input[b-11btruk8d6] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 170px;
}
.f input:focus[b-11btruk8d6], .f select:focus[b-11btruk8d6] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }

.chk[b-11btruk8d6] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600; color: var(--ink-soft);
    cursor: pointer;
}
.chk input[b-11btruk8d6] { accent-color: var(--navy); }
.showdel[b-11btruk8d6] { margin-top: 10px; }

/* ---------------- tabella ---------------- */
.card[b-11btruk8d6] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    overflow: hidden;
}
.tbl-scroll[b-11btruk8d6] { overflow-x: auto; }

table[b-11btruk8d6] { width: 100%; border-collapse: collapse; font-size: 13px; }

thead th[b-11btruk8d6] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}

tbody td[b-11btruk8d6] {
    padding: 9px 12px; border-bottom: 1px solid var(--line-soft);
    vertical-align: middle;
}

tbody tr:last-child td[b-11btruk8d6] { border-bottom: none; }
tbody tr:hover td[b-11btruk8d6] { background: #f2f6f9; }
tr.del td[b-11btruk8d6] { color: var(--ink-soft); background: var(--panel); }

.ta-end[b-11btruk8d6] { text-align: right; }
.nowrap[b-11btruk8d6] { white-space: nowrap; }
.rs[b-11btruk8d6] { font-weight: 650; }

/* ---------------- pill stato ---------------- */
.pill[b-11btruk8d6] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
    display: inline-block;
}
.pill.win[b-11btruk8d6] { background: var(--good-soft); color: var(--good); }
.pill.new[b-11btruk8d6] { background: #e7eef3; color: var(--ink-soft); }
.pill.lost[b-11btruk8d6] { background: var(--bad-soft); color: var(--bad); }

/* ---------------- azioni riga ---------------- */
.act[b-11btruk8d6] {
    font: inherit; font-size: 12px; font-weight: 650;
    color: var(--navy-dk); background: #fff; border: 1px solid var(--line);
    padding: 4px 10px; border-radius: 8px; cursor: pointer; white-space: nowrap;
}
.act:hover[b-11btruk8d6] { background: var(--panel); }
.act.danger[b-11btruk8d6] { color: var(--bad); }
.act.danger:hover[b-11btruk8d6] { background: var(--bad); border-color: var(--bad); color: #fff; }
.act.good[b-11btruk8d6] { color: var(--good); }
.act.good:hover[b-11btruk8d6] { background: var(--good); border-color: var(--good); color: #fff; }

/* ---------------- pannello editor (come le card del workspace) ---------------- */
.panel[b-11btruk8d6] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    margin-top: 14px;
}
.panel h2[b-11btruk8d6] {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft);
    padding: 13px 15px; border-bottom: 1px solid var(--line-soft);
    display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 650;
}
.panel h2 .dot[b-11btruk8d6] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.pad[b-11btruk8d6] { padding: 14px 15px; }

.grid[b-11btruk8d6] { display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px; }

.fld[b-11btruk8d6] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fld > label[b-11btruk8d6] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}
.fld input[b-11btruk8d6], .fld select[b-11btruk8d6], .fld textarea[b-11btruk8d6] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; width: 100%;
}
.fld input:focus[b-11btruk8d6], .fld select:focus[b-11btruk8d6], .fld textarea:focus[b-11btruk8d6] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.fld input[readonly][b-11btruk8d6], .fld input:disabled[b-11btruk8d6] { background: var(--panel); color: var(--ink-soft); }
.fld textarea[b-11btruk8d6] { resize: vertical; }

.s2[b-11btruk8d6] { grid-column: span 2; } .s3[b-11btruk8d6] { grid-column: span 3; } .s4[b-11btruk8d6] { grid-column: span 4; }
.s5[b-11btruk8d6] { grid-column: span 5; } .s6[b-11btruk8d6] { grid-column: span 6; } .s12[b-11btruk8d6] { grid-column: span 12; }
@media (max-width: 900px) {
    .s2[b-11btruk8d6], .s3[b-11btruk8d6], .s4[b-11btruk8d6], .s5[b-11btruk8d6] { grid-column: span 6; }
    .s6[b-11btruk8d6] { grid-column: span 12; }
}

.actions[b-11btruk8d6] { margin-top: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.msg[b-11btruk8d6] { font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 8px; }
.msg.ok[b-11btruk8d6] { background: var(--good-soft); color: var(--good); }
.msg.bad[b-11btruk8d6] { background: var(--bad-soft); color: var(--bad); }

/* ---------------- stati pagina ---------------- */
.loading[b-11btruk8d6] { padding: 40px; text-align: center; color: var(--ink-soft); }

.empty[b-11btruk8d6] {
    color: var(--ink-soft); font-size: 13px;
    background: var(--paper); border: 1px dashed var(--line);
    border-radius: 12px; padding: 18px; text-align: center;
    display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
}

.errbox[b-11btruk8d6] {
    background: var(--bad-soft); border: 1px solid #ecd2d2; color: var(--bad);
    border-radius: 10px; padding: 10px 13px; margin-top: 12px; font-size: 13px;
}
/* /Components/Pages/Cost/CostNavTabs.razor.rz.scp.css */
/* Tab del modulo costo — segmenti brand (stile .seg/.segbtn dei filtri "Tipo" dei Clienti CRM).
   Le variabili brand si ridichiarano qui: la CSS isolation è per-componente
   (stessa convenzione di SalesTab.razor.css e Clients.razor.css). */
.cost-tabs[b-f90fpjojwq] {
    --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6; --panel: #f7fafb;
    --navy: #2B357F;
    margin-bottom: 16px;
}

.seg[b-f90fpjojwq] { display: inline-flex; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; background: #fff; }

.segbtn[b-f90fpjojwq] {
    font-size: 12.5px; font-weight: 650; color: var(--ink-soft);
    text-decoration: none; padding: 9px 16px;
    border-right: 1px solid var(--line-soft);
}
.segbtn:last-of-type[b-f90fpjojwq] { border-right: none; }
.segbtn:hover[b-f90fpjojwq] { background: var(--panel); color: var(--ink-soft); }
.segbtn.on[b-f90fpjojwq] { background: var(--navy); color: #fff; }
/* /Components/Pages/Cost/RateContractEditor.razor.rz.scp.css */
/* Editor listino costo — replica variabili brand (stessa convenzione di Clients.razor.css / SalesTab.razor.css):
   la CSS isolation è per-componente, le classi condivise del modulo costo si RIDICHIARANO qui. */
.cost[b-fp3tt29mka] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-fp3tt29mka] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-fp3tt29mka] { color: var(--ink-soft); }

/* ---------------- testata pagina ---------------- */
.backrow[b-fp3tt29mka] { margin-bottom: 10px; }
.back[b-fp3tt29mka] {
    font-size: 12.5px; font-weight: 650; text-decoration: none;
    color: var(--navy-dk); background: #fff; border: 1px solid var(--line);
    padding: 5px 11px; border-radius: 8px; display: inline-block;
}
.back:hover[b-fp3tt29mka] { background: var(--panel); }

.head[b-fp3tt29mka] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.head h1[b-fp3tt29mka] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0; }
.push[b-fp3tt29mka] { margin-left: auto; }

.tag[b-fp3tt29mka] {
    font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
}

.count[b-fp3tt29mka] {
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
    letter-spacing: 0; text-transform: none;
}

/* ---------------- bottoni ---------------- */
.btn[b-fp3tt29mka] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-fp3tt29mka] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-fp3tt29mka] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-fp3tt29mka] { background: var(--panel); }
.btn.sm[b-fp3tt29mka] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-fp3tt29mka] { opacity: .55; cursor: not-allowed; }

/* ---------------- pannelli (come le card del workspace) ---------------- */
.panel[b-fp3tt29mka] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    margin-bottom: 16px;
}
.panel h2[b-fp3tt29mka] {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft);
    padding: 13px 15px; border-bottom: 1px solid var(--line-soft);
    display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 650;
}
.panel h2 .dot[b-fp3tt29mka] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.pad[b-fp3tt29mka] { padding: 14px 15px; }

/* ---------------- form a griglia ---------------- */
.grid[b-fp3tt29mka] { display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px; }

.fld[b-fp3tt29mka] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fld > label[b-fp3tt29mka] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}
.fld input[b-fp3tt29mka], .fld select[b-fp3tt29mka], .fld textarea[b-fp3tt29mka] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; width: 100%;
}
.fld input:focus[b-fp3tt29mka], .fld select:focus[b-fp3tt29mka], .fld textarea:focus[b-fp3tt29mka] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.fld input[readonly][b-fp3tt29mka], .fld input:disabled[b-fp3tt29mka] { background: var(--panel); color: var(--ink-soft); }
.fld textarea[b-fp3tt29mka] { resize: vertical; }
.fhint[b-fp3tt29mka] { font-size: 11.5px; color: var(--ink-soft); margin-top: 2px; }

.s2[b-fp3tt29mka] { grid-column: span 2; } .s3[b-fp3tt29mka] { grid-column: span 3; } .s4[b-fp3tt29mka] { grid-column: span 4; }
.s5[b-fp3tt29mka] { grid-column: span 5; } .s6[b-fp3tt29mka] { grid-column: span 6; } .s12[b-fp3tt29mka] { grid-column: span 12; }
@media (max-width: 900px) {
    .s2[b-fp3tt29mka], .s3[b-fp3tt29mka], .s4[b-fp3tt29mka], .s5[b-fp3tt29mka] { grid-column: span 6; }
    .s6[b-fp3tt29mka] { grid-column: span 12; }
}

.actions[b-fp3tt29mka] { margin-top: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.msg[b-fp3tt29mka] { font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 8px; }
.msg.ok[b-fp3tt29mka] { background: var(--good-soft); color: var(--good); }
.msg.bad[b-fp3tt29mka] { background: var(--bad-soft); color: var(--bad); }

/* ---------------- tabella righe ---------------- */
.tbl-scroll[b-fp3tt29mka] { overflow-x: auto; }

table[b-fp3tt29mka] { width: 100%; border-collapse: collapse; font-size: 13px; }

thead th[b-fp3tt29mka] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}

tbody td[b-fp3tt29mka] {
    padding: 9px 12px; border-bottom: 1px solid var(--line-soft);
    vertical-align: middle;
}

tbody tr:last-child td[b-fp3tt29mka] { border-bottom: none; }
tbody tr:hover td[b-fp3tt29mka] { background: #f2f6f9; }

.ta-end[b-fp3tt29mka] { text-align: right; }
.nowrap[b-fp3tt29mka] { white-space: nowrap; }
.rs[b-fp3tt29mka] { font-weight: 650; }

/* ---------------- pill stato / tipo tariffa ---------------- */
.pill[b-fp3tt29mka] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
    display: inline-block;
}
.pill.win[b-fp3tt29mka] { background: var(--good-soft); color: var(--good); }
.pill.new[b-fp3tt29mka] { background: #e7eef3; color: var(--ink-soft); }
.pill.lost[b-fp3tt29mka] { background: var(--bad-soft); color: var(--bad); }
.pill.dir[b-fp3tt29mka] { background: var(--navy-soft); color: var(--navy-dk); }
.pill.arb[b-fp3tt29mka] { background: var(--gold-soft); color: #9a6b00; }
/* Stati ciclo di vita listini: bozza = oro, scaduto = grigio, archiviato = grigio chiaro. */
.pill.pending[b-fp3tt29mka] { background: var(--gold-soft, #fdf3d7); color: #9a6b00; }
.pill.expired[b-fp3tt29mka] { background: #e2e5e9; color: #5b6470; }
.pill.archived[b-fp3tt29mka] { background: #f0f1f3; color: #8b93a0; }

/* Riga stato in testata: pill + pulsanti di transizione affiancati. */
.statusrow[b-fp3tt29mka] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 34px; }
.warnrow[b-fp3tt29mka] { margin-top: 6px; }
.warn-text[b-fp3tt29mka] { font-size: 12px; font-weight: 650; color: #9a6b00; }

/* S7 — timeline storico modifiche. */
.tl[b-fp3tt29mka] { display: flex; flex-direction: column; gap: 2px; max-height: 340px; overflow-y: auto; }
.tl-row[b-fp3tt29mka] {
    display: grid; grid-template-columns: 84px 130px 1fr; gap: 10px;
    padding: 5px 2px; border-bottom: 1px solid var(--line-soft); font-size: 12.5px; align-items: baseline;
}
.tl-row:last-child[b-fp3tt29mka] { border-bottom: none; }
.tl-when[b-fp3tt29mka] { font-family: var(--mono); font-variant-numeric: tabular-nums; color: var(--ink-soft); }
.tl-who[b-fp3tt29mka] { font-weight: 650; color: var(--navy-dk); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl-what[b-fp3tt29mka] { color: var(--ink); }

/* S3 — contatore e filtro «da aggiornare» + pill sulla riga. */
.upd-counter[b-fp3tt29mka] {
    font-size: 12px; font-weight: 700; color: #9a6b00;
    background: var(--gold-soft, #fdf3d7); padding: 3px 10px; border-radius: 999px; margin-left: 10px;
}
.upd-filter[b-fp3tt29mka] { margin-left: 10px; font-size: 12px; font-weight: 500; display: inline-flex; align-items: center; gap: 5px; }
.pill.upd[b-fp3tt29mka] { background: var(--gold-soft, #fdf3d7); color: #9a6b00; margin-left: 6px; }

/* ---------------- azioni riga ---------------- */
.act[b-fp3tt29mka] {
    font: inherit; font-size: 12px; font-weight: 650;
    color: var(--navy-dk); background: #fff; border: 1px solid var(--line);
    padding: 4px 10px; border-radius: 8px; cursor: pointer; white-space: nowrap;
}
.act:hover[b-fp3tt29mka] { background: var(--panel); }
.act.danger[b-fp3tt29mka] { color: var(--bad); }
.act.danger:hover[b-fp3tt29mka] { background: var(--bad); border-color: var(--bad); color: #fff; }

/* ---------------- editor riga (sotto-pannello) ---------------- */
.sub[b-fp3tt29mka] {
    background: var(--panel); border: 1px solid var(--line-soft);
    border-radius: 10px; padding: 14px; margin-top: 14px;
}
.sub h3[b-fp3tt29mka] {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em;
    color: var(--ink-soft); font-weight: 650; margin: 0 0 12px;
}
.sub .fld input[b-fp3tt29mka], .sub .fld select[b-fp3tt29mka], .sub .fld textarea[b-fp3tt29mka] { background: #fff; }

/* ---------------- surcharge ---------------- */
.sur-wrap[b-fp3tt29mka] { margin-top: 14px; }
.sur-lbl[b-fp3tt29mka] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; display: block; margin-bottom: 6px;
}
.sur-grid[b-fp3tt29mka] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
@media (max-width: 900px) { .sur-grid[b-fp3tt29mka] { grid-template-columns: repeat(2, 1fr); } }

.sur[b-fp3tt29mka] { display: flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.sur-code[b-fp3tt29mka] {
    font-size: 11px; font-weight: 700; color: var(--ink-soft);
    background: var(--panel); padding: 6px 8px;
    display: flex; align-items: center; white-space: nowrap;
    border-right: 1px solid var(--line-soft);
}
.sur input[b-fp3tt29mka] { font: inherit; font-size: 13px; border: none; padding: 6px 8px; width: 100%; min-width: 0; }
.sur input:focus[b-fp3tt29mka] { outline: 2px solid var(--navy-soft); }

/* ---------------- stati pagina ---------------- */
.loading[b-fp3tt29mka] { padding: 40px; text-align: center; color: var(--ink-soft); }

.empty[b-fp3tt29mka] {
    color: var(--ink-soft); font-size: 13px;
    background: var(--paper); border: 1px dashed var(--line);
    border-radius: 12px; padding: 18px; text-align: center;
}

.errbox[b-fp3tt29mka] {
    background: var(--bad-soft); border: 1px solid #ecd2d2; color: var(--bad);
    border-radius: 10px; padding: 10px 13px; margin-top: 12px; font-size: 13px;
}
/* /Components/Pages/Cost/RateContracts.razor.rz.scp.css */
/* Listini costo — replica variabili brand (stessa convenzione di Clients.razor.css / SalesTab.razor.css):
   la CSS isolation è per-componente, le classi condivise (.head, .count, .filters, .pill, .btn, …)
   si RIDICHIARANO in ogni componente del modulo. */
.cost[b-ik5df65y8x] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-ik5df65y8x] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-ik5df65y8x] { color: var(--ink-soft); }

/* ---------------- testata pagina ---------------- */
.head[b-ik5df65y8x] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.head h1[b-ik5df65y8x] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0; }
.push[b-ik5df65y8x] { margin-left: auto; }

.count[b-ik5df65y8x] {
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
}

/* ---------------- bottoni ---------------- */
.btn[b-ik5df65y8x] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-ik5df65y8x] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-ik5df65y8x] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-ik5df65y8x] { background: var(--panel); }
.btn.sm[b-ik5df65y8x] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-ik5df65y8x] { opacity: .55; cursor: not-allowed; }

/* ---------------- filtri ---------------- */
.filters[b-ik5df65y8x] {
    display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    padding: 11px 13px; margin-bottom: 14px;
}

.f[b-ik5df65y8x] { display: flex; flex-direction: column; gap: 4px; }
.f.grow[b-ik5df65y8x] { flex: 1; min-width: 220px; }

.f > label[b-ik5df65y8x] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}

.f select[b-ik5df65y8x], .f input[b-ik5df65y8x] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 170px;
}
.f input:focus[b-ik5df65y8x], .f select:focus[b-ik5df65y8x] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }

.chk[b-ik5df65y8x] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600; color: var(--ink-soft);
    cursor: pointer; text-transform: none; letter-spacing: normal;
}
.chk input[b-ik5df65y8x] { accent-color: var(--navy); }
.showdel[b-ik5df65y8x] { margin-top: 10px; }

/* ---------------- tabella ---------------- */
.card[b-ik5df65y8x] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    overflow: hidden;
}
.tbl-scroll[b-ik5df65y8x] { overflow-x: auto; }

table[b-ik5df65y8x] { width: 100%; border-collapse: collapse; font-size: 13px; }

thead th[b-ik5df65y8x] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}

tbody td[b-ik5df65y8x] {
    padding: 9px 12px; border-bottom: 1px solid var(--line-soft);
    vertical-align: middle;
}

tbody tr:last-child td[b-ik5df65y8x] { border-bottom: none; }
tbody tr:hover td[b-ik5df65y8x] { background: #f2f6f9; }
tr.del td[b-ik5df65y8x] { color: var(--ink-soft); background: var(--panel); }

.ta-end[b-ik5df65y8x] { text-align: right; }
.nowrap[b-ik5df65y8x] { white-space: nowrap; }
.rs[b-ik5df65y8x] { font-weight: 650; }

/* ---------------- pill stato ---------------- */
.pill[b-ik5df65y8x] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
    display: inline-block;
}
.pill.win[b-ik5df65y8x] { background: var(--good-soft); color: var(--good); }
.pill.new[b-ik5df65y8x] { background: #e7eef3; color: var(--ink-soft); }
.pill.lost[b-ik5df65y8x] { background: var(--bad-soft); color: var(--bad); margin-left: 6px; }
/* Stati ciclo di vita listini: bozza = oro, scaduto = grigio, archiviato = grigio chiaro. */
.pill.pending[b-ik5df65y8x] { background: var(--gold-soft, #fdf3d7); color: #9a6b00; }
.pill.expired[b-ik5df65y8x] { background: #e2e5e9; color: #5b6470; }
.pill.archived[b-ik5df65y8x] { background: #f0f1f3; color: #8b93a0; }

/* ---------------- azioni riga ---------------- */
.open[b-ik5df65y8x] {
    font-size: 12px; font-weight: 650; text-decoration: none;
    color: var(--navy-dk); background: #fff; border: 1px solid var(--line);
    padding: 4px 10px; border-radius: 8px; white-space: nowrap; display: inline-block;
}
.open:hover[b-ik5df65y8x] { background: var(--navy); border-color: var(--navy); color: #fff; }

.act[b-ik5df65y8x] {
    font: inherit; font-size: 12px; font-weight: 650;
    color: var(--navy-dk); background: #fff; border: 1px solid var(--line);
    padding: 4px 10px; border-radius: 8px; cursor: pointer; white-space: nowrap;
}
.act:hover[b-ik5df65y8x] { background: var(--panel); }
.act.danger[b-ik5df65y8x] { color: var(--bad); }
.act.danger:hover[b-ik5df65y8x] { background: var(--bad); border-color: var(--bad); color: #fff; }
.act.good[b-ik5df65y8x] { color: var(--good); }
.act.good:hover[b-ik5df65y8x] { background: var(--good); border-color: var(--good); color: #fff; }

/* ---------------- stati pagina ---------------- */
.loading[b-ik5df65y8x] { padding: 40px; text-align: center; color: var(--ink-soft); }

.empty[b-ik5df65y8x] {
    color: var(--ink-soft); font-size: 13px;
    background: var(--paper); border: 1px dashed var(--line);
    border-radius: 12px; padding: 18px; text-align: center;
    display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
}

.errbox[b-ik5df65y8x] {
    background: var(--bad-soft); border: 1px solid #ecd2d2; color: var(--bad);
    border-radius: 10px; padding: 10px 13px; margin-top: 12px; font-size: 13px;
}

.okbox[b-ik5df65y8x] {
    background: var(--good-soft); border: 1px solid #cde5d8; color: var(--good);
    border-radius: 10px; padding: 10px 13px; margin-bottom: 14px; font-size: 13px;
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}

/* ---------------- modale Duplica ---------------- */
.modal-back[b-ik5df65y8x] {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(13, 34, 48, .45);
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}

.modal-card[b-ik5df65y8x] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: 0 12px 40px rgba(13,34,48,.25);
    width: min(560px, 100%); max-height: 90vh; overflow-y: auto;
}
.modal-card h2[b-ik5df65y8x] {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft);
    padding: 13px 15px; border-bottom: 1px solid var(--line-soft);
    display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 650;
}
.modal-card h2 .dot[b-ik5df65y8x] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.pad[b-ik5df65y8x] { padding: 14px 15px; }

.grid[b-ik5df65y8x] { display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px; }

.fld[b-ik5df65y8x] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fld > label[b-ik5df65y8x] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}
.fld input[b-ik5df65y8x] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; width: 100%;
}
.fld input:focus[b-ik5df65y8x] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.fld input[type="checkbox"][b-ik5df65y8x] { width: auto; }

.s6[b-ik5df65y8x] { grid-column: span 6; } .s12[b-ik5df65y8x] { grid-column: span 12; }
@media (max-width: 600px) { .s6[b-ik5df65y8x] { grid-column: span 12; } }

.actions[b-ik5df65y8x] { margin-top: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.msg[b-ik5df65y8x] { font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 8px; }
.msg.bad[b-ik5df65y8x] { background: var(--bad-soft); color: var(--bad); }
/* /Components/Pages/Cost/RateHealth.razor.rz.scp.css */
/* Salute dei listini (S6) — replica variabili brand (stessa convenzione delle altre pagine Cost:
   la CSS isolation è per-componente, le classi condivise si RIDICHIARANO). */
.cost[b-zdw35jcvui] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-zdw35jcvui] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-zdw35jcvui] { color: var(--ink-soft); }

/* ---------------- testata pagina ---------------- */
.head[b-zdw35jcvui] { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.head h1[b-zdw35jcvui] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0; }

.count[b-zdw35jcvui] {
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
}

.intro[b-zdw35jcvui] { color: var(--ink-soft); font-size: 13px; margin: 0 0 12px; max-width: 860px; }

/* ---------------- filtri ---------------- */
.filters[b-zdw35jcvui] {
    display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    padding: 11px 13px; margin-bottom: 14px;
}
.f[b-zdw35jcvui] { display: flex; flex-direction: column; gap: 4px; }
.f > label[b-zdw35jcvui] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}
.f select[b-zdw35jcvui] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 170px;
}
.f select:focus[b-zdw35jcvui] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }

/* ---------------- pannelli ---------------- */
.panel[b-zdw35jcvui] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    margin-bottom: 14px; overflow: hidden;
}
.panel h2[b-zdw35jcvui] {
    display: flex; align-items: center; gap: 8px;
    font-size: 14.5px; font-weight: 750; color: var(--navy-dk);
    margin: 0; padding: 12px 14px; border-bottom: 1px solid var(--line-soft);
}
.panel .pad[b-zdw35jcvui] { padding: 12px 14px; }
.dot[b-zdw35jcvui] { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); display: inline-block; }
.dot.bad[b-zdw35jcvui] { background: var(--bad); }
.dot.warn[b-zdw35jcvui] { background: var(--gold); }

.explain[b-zdw35jcvui] { color: var(--ink-soft); font-size: 12.5px; margin: 0 0 10px; max-width: 860px; }
.okline[b-zdw35jcvui] { color: var(--good); font-size: 13px; font-weight: 650; }

/* ---------------- tabelle ---------------- */
.tbl-scroll[b-zdw35jcvui] { overflow-x: auto; }
table[b-zdw35jcvui] { width: 100%; border-collapse: collapse; font-size: 13px; }
thead th[b-zdw35jcvui] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
tbody td[b-zdw35jcvui] { padding: 9px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
tbody tr:last-child td[b-zdw35jcvui] { border-bottom: none; }
tbody tr:hover td[b-zdw35jcvui] { background: #f2f6f9; }
.ta-end[b-zdw35jcvui] { text-align: right; }
.rs[b-zdw35jcvui] { font-weight: 650; }

/* ---------------- pill stato ---------------- */
.pill[b-zdw35jcvui] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
    display: inline-block;
}
.pill.win[b-zdw35jcvui] { background: var(--good-soft); color: var(--good); }
.pill.new[b-zdw35jcvui] { background: #e7eef3; color: var(--ink-soft); }
.pill.pending[b-zdw35jcvui] { background: var(--gold-soft, #fdf3d7); color: #9a6b00; }
.pill.expired[b-zdw35jcvui] { background: #e2e5e9; color: #5b6470; }
.pill.archived[b-zdw35jcvui] { background: #f0f1f3; color: #8b93a0; }

/* ---------------- link apri ---------------- */
.open[b-zdw35jcvui] {
    font-size: 12px; font-weight: 650; text-decoration: none;
    color: var(--navy-dk); background: #fff; border: 1px solid var(--line);
    padding: 3px 9px; border-radius: 8px; white-space: nowrap; display: inline-block;
}
.open:hover[b-zdw35jcvui] { background: var(--panel); }

/* ---------------- stati pagina ---------------- */
.loading[b-zdw35jcvui] { padding: 28px 0; color: var(--ink-soft); }
.errbox[b-zdw35jcvui] {
    background: var(--bad-soft); color: var(--bad); border: 1px solid #f2c9c9;
    border-radius: 10px; padding: 10px 13px; margin-top: 12px; font-size: 13px;
}
/* /Components/Pages/Crm/ClientCockpit.razor.rz.scp.css */
/* Cockpit cliente — replica variabili brand (contratto §4). Guscio: tabs + board +
   riquadro "prossima attività" + due colonne + placeholder onesti R2 (mockup v2). */
.ck[b-kdbljwyfs2] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-kdbljwyfs2] { font-family: var(--mono); font-variant-numeric: tabular-nums; }

.back[b-kdbljwyfs2] { margin-bottom: 10px; }
.back a[b-kdbljwyfs2] { color: var(--ink-soft); font-size: 12.5px; text-decoration: none; }
.back a:hover[b-kdbljwyfs2] { color: var(--navy-dk); text-decoration: underline; }

/* ---------------- tabs ---------------- */
.tabs[b-kdbljwyfs2] { display: flex; gap: 4px; margin-bottom: -1px; padding: 0 4px; position: relative; z-index: 1; }

.tab[b-kdbljwyfs2] {
    padding: 9px 16px; border-radius: 10px 10px 0 0;
    font-weight: 650; font-size: 13px; color: var(--ink-soft);
    cursor: pointer; border: 1px solid transparent; border-bottom: none;
    user-select: none;
}
.tab:hover[b-kdbljwyfs2] { color: var(--navy-dk); }
.tab.active[b-kdbljwyfs2] { background: var(--paper); color: var(--navy-dk); border-color: var(--line); }

.board[b-kdbljwyfs2] {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 0 12px 12px 12px;
    box-shadow: var(--shadow);
}

/* scheda ③: le card anagrafica hanno già il loro sfondo → il board fa solo da cornice leggera */
.board.bare[b-kdbljwyfs2] { background: var(--panel); box-shadow: none; }

.pad[b-kdbljwyfs2] { padding: 14px 15px; }
.pad-lg[b-kdbljwyfs2] { padding: 14px 15px 8px; }

/* ---------------- prossima attività ---------------- */
.next[b-kdbljwyfs2] {
    border: 1px solid var(--line-soft); background: var(--panel);
    border-radius: 10px; padding: 12px 14px;
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    margin-top: 12px;
}

.next .lbl[b-kdbljwyfs2] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--navy-dk); font-weight: 750;
}
.next .txt[b-kdbljwyfs2] { font-weight: 650; margin-top: 2px; }
.next .meta[b-kdbljwyfs2] { color: var(--ink-soft); font-size: 12px; font-weight: 600; margin-top: 2px; }

.next.late[b-kdbljwyfs2] { border-color: #ecc9c9; background: var(--bad-soft); }
.next.late .lbl[b-kdbljwyfs2], .next.late .meta[b-kdbljwyfs2] { color: var(--bad); }

.next.none .meta[b-kdbljwyfs2] { font-weight: 400; }

.btn[b-kdbljwyfs2] {
    font: inherit; font-weight: 650;
    border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
    white-space: nowrap;
}
.btn:hover[b-kdbljwyfs2] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.good[b-kdbljwyfs2] { background: var(--good); border-color: var(--good); }
.btn.good:hover[b-kdbljwyfs2] { filter: brightness(.95); background: var(--good); border-color: var(--good); }
.btn.gold[b-kdbljwyfs2] { background: var(--gold); border-color: var(--gold); color: #3a2c00; }
.btn.gold:hover[b-kdbljwyfs2] { filter: brightness(.96); background: var(--gold); border-color: var(--gold); }
.btn.sm[b-kdbljwyfs2] { padding: 5px 9px; font-size: 12px; }

/* ---------------- due colonne ---------------- */
.cols[b-kdbljwyfs2] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }

@media (max-width: 1000px) {
    .cols[b-kdbljwyfs2] { grid-template-columns: 1fr; }
}

.colcard[b-kdbljwyfs2] {
    background: var(--panel);
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    padding: 12px 13px;
}

.colcard h3[b-kdbljwyfs2] {
    margin: 0 0 9px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700;
    display: flex; align-items: center; gap: 7px;
}
.colcard h3 .dot[b-kdbljwyfs2] { width: 6px; height: 6px; border-radius: 50%; background: var(--navy); }

/* ---------------- scheda ② attività: barra filtri ---------------- */
.actbar[b-kdbljwyfs2] { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }

.seg[b-kdbljwyfs2] { display: inline-flex; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }

.segbtn[b-kdbljwyfs2] {
    font: inherit; font-size: 12.5px; font-weight: 650;
    background: #fff; color: var(--ink-soft);
    border: none; border-right: 1px solid var(--line-soft);
    padding: 6px 13px; cursor: pointer;
}
.segbtn:last-of-type[b-kdbljwyfs2] { border-right: none; }
.segbtn:hover[b-kdbljwyfs2] { background: var(--panel); }
.segbtn.on[b-kdbljwyfs2] { background: var(--navy); color: #fff; }

.chk[b-kdbljwyfs2] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600; color: var(--ink-soft); cursor: pointer;
    margin: 0;
}
.chk input[b-kdbljwyfs2] { accent-color: var(--navy); }

.actbar .btn.gold.sm[b-kdbljwyfs2] { margin-left: auto; }

.edwrap[b-kdbljwyfs2] { margin-top: 14px; }

/* ---------------- placeholder onesti R2 (UX §3.9) ---------------- */
.r2[b-kdbljwyfs2] { margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

@media (max-width: 1000px) {
    .r2[b-kdbljwyfs2] { grid-template-columns: 1fr; }
}

.r2 .ph[b-kdbljwyfs2] {
    border: 1px dashed var(--line); border-radius: 10px;
    padding: 11px 13px; color: var(--ink-soft); background: #fff;
    opacity: .75; pointer-events: none;
}

.r2 .ph h4[b-kdbljwyfs2] {
    margin: 0 0 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
    font-weight: 700; color: var(--ink-soft);
    display: flex; align-items: center;
}
.r2 .ph p[b-kdbljwyfs2] { margin: 0; font-size: 12px; }

.badge-fase[b-kdbljwyfs2] {
    font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    background: var(--gold-soft); color: #9a6b00;
    padding: 1px 5px; border-radius: 5px; margin-left: 6px;
}
/* /Components/Pages/Crm/Clients.razor.rz.scp.css */
/* Worklist clienti — replica variabili brand (contratto §4): filtri + tabella nel
   linguaggio del workspace (card radius 12, header uppercase, numeri mono). */
.wl[b-5dimsyi0ic] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-5dimsyi0ic] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-5dimsyi0ic] { color: var(--ink-soft); }

.head[b-5dimsyi0ic] { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.head h1[b-5dimsyi0ic] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0; }

.count[b-5dimsyi0ic] {
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
}

/* ---------------- filtri ---------------- */
.filters[b-5dimsyi0ic] {
    display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    padding: 11px 13px; margin-bottom: 14px;
}

.f[b-5dimsyi0ic] { display: flex; flex-direction: column; gap: 4px; }
.f.grow[b-5dimsyi0ic] { flex: 1; min-width: 220px; }

.f > label[b-5dimsyi0ic] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}

.f select[b-5dimsyi0ic], .f input[b-5dimsyi0ic] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 170px;
}
.f input:focus[b-5dimsyi0ic], .f select:focus[b-5dimsyi0ic] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }

.seg[b-5dimsyi0ic] { display: inline-flex; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; background: #fff; }

.segbtn[b-5dimsyi0ic] {
    font: inherit; font-size: 12.5px; font-weight: 650;
    background: #fff; color: var(--ink-soft);
    border: none; border-right: 1px solid var(--line-soft);
    padding: 8px 13px; cursor: pointer;
}
.segbtn:last-of-type[b-5dimsyi0ic] { border-right: none; }
.segbtn:hover[b-5dimsyi0ic] { background: var(--panel); }
.segbtn.on[b-5dimsyi0ic] { background: var(--navy); color: #fff; }

.f.chkf[b-5dimsyi0ic] { justify-content: flex-end; padding-bottom: 8px; }

.chk[b-5dimsyi0ic] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600; color: var(--ink-soft);
    cursor: pointer; text-transform: none; letter-spacing: normal;
}
.chk input[b-5dimsyi0ic] { accent-color: var(--navy); }

/* ---------------- tabella ---------------- */
.card[b-5dimsyi0ic] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    overflow: hidden;
}

table[b-5dimsyi0ic] { width: 100%; border-collapse: collapse; font-size: 13px; }

thead th[b-5dimsyi0ic] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}

tbody td[b-5dimsyi0ic] {
    padding: 9px 12px; border-bottom: 1px solid var(--line-soft);
    vertical-align: middle;
}

tbody tr:last-child td[b-5dimsyi0ic] { border-bottom: none; }
tbody tr:hover td[b-5dimsyi0ic] { background: #f2f6f9; }

.ta-end[b-5dimsyi0ic] { text-align: right; }

.rs[b-5dimsyi0ic] { font-weight: 650; margin-right: 6px; }

.pill[b-5dimsyi0ic] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
    display: inline-block;
}
.pill.prog[b-5dimsyi0ic] { background: #fdf0dd; color: var(--amber); }
.pill.lost[b-5dimsyi0ic] { background: var(--bad-soft); color: var(--bad); margin-left: 6px; }

.due[b-5dimsyi0ic] { font-weight: 700; font-size: 12.5px; }
.due.late[b-5dimsyi0ic] { color: var(--bad); }

.open[b-5dimsyi0ic] {
    font-size: 12px; font-weight: 650; text-decoration: none;
    color: var(--navy-dk); border: 1px solid var(--line);
    padding: 4px 10px; border-radius: 8px; white-space: nowrap;
}
.open:hover[b-5dimsyi0ic] { background: var(--navy); border-color: var(--navy); color: #fff; }

.empty[b-5dimsyi0ic] {
    color: var(--ink-soft); font-size: 13px;
    background: var(--paper); border: 1px dashed var(--line);
    border-radius: 12px; padding: 18px; text-align: center;
}
/* /Components/Pages/Crm/CrmActivities.razor.rz.scp.css */
/* «Le mie attività» — replica variabili brand (contratto §4): KPI mini in testa +
   filtri + tabella nel linguaggio del workspace. Scadute in rosso, come il legacy. */
.ma[b-asjqbgifyl] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1220px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-asjqbgifyl] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-asjqbgifyl] { color: var(--ink-soft); }

.head[b-asjqbgifyl] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.head h1[b-asjqbgifyl] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0 6px 0 0; }

.kpi-mini[b-asjqbgifyl] {
    display: inline-flex; align-items: baseline; gap: 7px;
    background: var(--panel); border: 1px solid var(--line-soft);
    border-radius: 10px; padding: 5px 11px;
}
.kpi-mini .k[b-asjqbgifyl] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700;
}
.kpi-mini .v[b-asjqbgifyl] {
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    font-size: 16px; font-weight: 700; color: var(--ink);
}
.kpi-mini.bad-k[b-asjqbgifyl] { background: var(--bad-soft); border-color: #ecc9c9; }
.kpi-mini.bad-k .k[b-asjqbgifyl], .kpi-mini.bad-k .v[b-asjqbgifyl] { color: var(--bad); }

/* ---------------- filtri ---------------- */
.filters[b-asjqbgifyl] {
    display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    padding: 11px 13px; margin-bottom: 14px;
}

.f[b-asjqbgifyl] { display: flex; flex-direction: column; gap: 4px; }

.f > label[b-asjqbgifyl] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}

.f select[b-asjqbgifyl] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 190px;
}
.f select:focus[b-asjqbgifyl] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }

.seg[b-asjqbgifyl] { display: inline-flex; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; background: #fff; }

.segbtn[b-asjqbgifyl] {
    font: inherit; font-size: 12.5px; font-weight: 650;
    background: #fff; color: var(--ink-soft);
    border: none; border-right: 1px solid var(--line-soft);
    padding: 8px 13px; cursor: pointer;
}
.segbtn:last-of-type[b-asjqbgifyl] { border-right: none; }
.segbtn:hover[b-asjqbgifyl] { background: var(--panel); }
.segbtn.on[b-asjqbgifyl] { background: var(--navy); color: #fff; }

.f.chkf[b-asjqbgifyl] { justify-content: flex-end; padding-bottom: 8px; }

.chk[b-asjqbgifyl] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600; color: var(--ink-soft);
    cursor: pointer; text-transform: none; letter-spacing: normal;
}
.chk input[b-asjqbgifyl] { accent-color: var(--navy); }

/* ---------------- tabella ---------------- */
.card[b-asjqbgifyl] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow); overflow: hidden;
}

table[b-asjqbgifyl] { width: 100%; border-collapse: collapse; font-size: 13px; }

thead th[b-asjqbgifyl] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line); white-space: nowrap;
}

tbody td[b-asjqbgifyl] { padding: 9px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
tbody tr:last-child td[b-asjqbgifyl] { border-bottom: none; }
tbody tr:hover td[b-asjqbgifyl] { background: #f2f6f9; }

tr.closed .subj[b-asjqbgifyl] { color: var(--ink-soft); text-decoration: line-through; }

.ta-end[b-asjqbgifyl] { text-align: right; }

.subj[b-asjqbgifyl] { font-weight: 600; margin-right: 6px; overflow-wrap: anywhere; }

.pill[b-asjqbgifyl] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase;
    white-space: nowrap; display: inline-block;
}
.pill.type[b-asjqbgifyl] { background: var(--navy-soft); color: var(--navy-dk); text-transform: none; }
.pill.lost[b-asjqbgifyl] { background: var(--bad-soft); color: var(--bad); margin-left: 6px; }
.pill.donep[b-asjqbgifyl] { background: var(--good-soft); color: var(--good); }
.pill.cancp[b-asjqbgifyl] { background: var(--line-soft); color: var(--ink-soft); }

.clink[b-asjqbgifyl] { color: var(--navy-dk); font-weight: 600; text-decoration: none; }
.clink:hover[b-asjqbgifyl] { text-decoration: underline; }

.qlink[b-asjqbgifyl] {
    color: var(--navy); font-weight: 600; text-decoration: none;
    font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: 12px;
}
.qlink:hover[b-asjqbgifyl] { text-decoration: underline; }

.due[b-asjqbgifyl] { font-weight: 700; font-size: 12.5px; }
.due.late[b-asjqbgifyl] { color: var(--bad); }

.mini[b-asjqbgifyl] {
    font: inherit; font-size: 11.5px; font-weight: 650;
    border: 1px solid var(--good); background: var(--good); color: #fff;
    padding: 4px 9px; border-radius: 7px; cursor: pointer; white-space: nowrap;
}
.mini.good:hover[b-asjqbgifyl] { filter: brightness(.95); }

.empty[b-asjqbgifyl] {
    color: var(--ink-soft); font-size: 13px;
    background: var(--paper); border: 1px dashed var(--line);
    border-radius: 12px; padding: 18px; text-align: center;
}
/* /Components/Pages/Crm/Panels/ActivityEditor.razor.rz.scp.css */
/* Editor attività — replica variabili brand (contratto §4), form nel linguaggio del workspace. */
.ed[b-sihfotmydx] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    background: var(--panel);
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    padding: 12px 13px;
    color: var(--ink);
}

.ed h4[b-sihfotmydx] {
    margin: 0 0 9px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700;
}

.grid[b-sihfotmydx] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; }
.grid .full[b-sihfotmydx] { grid-column: 1 / -1; }
.grid .half[b-sihfotmydx] { grid-column: span 2; }

@media (max-width: 1000px) {
    .grid[b-sihfotmydx] { grid-template-columns: repeat(2, 1fr); }
    .grid .half[b-sihfotmydx] { grid-column: 1 / -1; }
}

label.f[b-sihfotmydx] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 600;
}

.ed select[b-sihfotmydx], .ed input[b-sihfotmydx], .ed textarea[b-sihfotmydx] {
    font-family: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; width: 100%;
    text-transform: none; letter-spacing: normal; font-weight: 400;
}

.ed input:focus[b-sihfotmydx], .ed select:focus[b-sihfotmydx], .ed textarea:focus[b-sihfotmydx] {
    outline: 2px solid var(--navy-soft); border-color: var(--navy);
}

.foot[b-sihfotmydx] { display: flex; gap: 9px; align-items: center; margin-top: 12px; flex-wrap: wrap; }

.btn[b-sihfotmydx] {
    font: inherit; font-weight: 650;
    border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-sihfotmydx] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn:disabled[b-sihfotmydx] { background: var(--line-soft); border-color: var(--line-soft); color: var(--ink-soft); cursor: not-allowed; }
.btn.ghost[b-sihfotmydx] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-sihfotmydx] { background: var(--panel); }

.hint[b-sihfotmydx] { font-size: 11.5px; color: var(--ink-soft); }
.err[b-sihfotmydx] { font-size: 11.5px; color: var(--bad); font-weight: 600; }
/* /Components/Pages/Crm/Panels/ActivityTimeline.razor.rz.scp.css */
/* Timeline attività — replica variabili brand (contratto §4) + .act/.addbar del mockup v2. */
.tl[b-5rpbce9aon] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;
    color: var(--ink);
}

.tl-empty[b-5rpbce9aon] { color: var(--ink-soft); font-size: 12.5px; padding: 6px 2px; }

.act[b-5rpbce9aon] {
    display: flex; gap: 10px; padding: 9px 2px;
    border-bottom: 1px solid var(--line-soft);
    align-items: flex-start;
}
.act:last-of-type[b-5rpbce9aon] { border-bottom: none; }

.ico[b-5rpbce9aon] {
    width: 28px; height: 28px; border-radius: 8px;
    background: var(--navy-soft); color: var(--navy-dk);
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; flex: 0 0 auto; font-weight: 700;
}

.body[b-5rpbce9aon] { min-width: 0; }
.t[b-5rpbce9aon] { font-weight: 600; font-size: 13px; overflow-wrap: anywhere; }
.d[b-5rpbce9aon] { color: var(--ink-soft); font-size: 11.5px; margin-top: 1px; }

.d .qlink[b-5rpbce9aon] {
    color: var(--navy); font-weight: 600; text-decoration: none;
    font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: 10.5px;
}
.d .qlink:hover[b-5rpbce9aon] { text-decoration: underline; }

.act.done .t[b-5rpbce9aon] { color: var(--ink-soft); text-decoration: line-through; }
.act.done .ico[b-5rpbce9aon] { background: var(--line-soft); color: #9aa8b3; }

.right[b-5rpbce9aon] {
    margin-left: auto; display: flex; gap: 6px; align-items: center;
    flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end;
}

.due[b-5rpbce9aon] {
    font-size: 11px; font-weight: 700; color: var(--ink-soft);
    white-space: nowrap;
    font-family: var(--mono); font-variant-numeric: tabular-nums;
}
.due.late[b-5rpbce9aon] { color: var(--bad); }

.ok[b-5rpbce9aon] { color: var(--good); font-weight: 700; font-size: 11.5px; white-space: nowrap; }

.cancelled[b-5rpbce9aon] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
    padding: 2px 7px; border-radius: 999px;
    background: var(--line-soft); color: var(--ink-soft); white-space: nowrap;
}

.mini[b-5rpbce9aon] {
    font: inherit; font-size: 11px; font-weight: 650;
    border: 1px solid var(--line); background: #fff; color: var(--navy-dk);
    padding: 3px 7px; border-radius: 7px; cursor: pointer; white-space: nowrap;
}
.mini:hover[b-5rpbce9aon] { background: var(--panel); }
.mini.good[b-5rpbce9aon] { border-color: var(--good); background: var(--good); color: #fff; }
.mini.good:hover[b-5rpbce9aon] { filter: brightness(.95); background: var(--good); }
.mini.bad[b-5rpbce9aon] { color: var(--bad); border-color: #ecc9c9; }
.mini.bad:hover[b-5rpbce9aon] { background: var(--bad-soft); }

.addbar[b-5rpbce9aon] { display: flex; gap: 7px; margin-top: 10px; flex-wrap: wrap; }

.addbar input[b-5rpbce9aon], .addbar select[b-5rpbce9aon] {
    font: inherit; font-size: 12.5px; color: var(--ink);
    padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff;
}
.addbar input.grow[b-5rpbce9aon] { flex: 1; min-width: 140px; }
.addbar input.date[b-5rpbce9aon] { width: 136px; }

.btn.sm[b-5rpbce9aon] {
    font: inherit; font-weight: 650; font-size: 12px;
    border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 5px 9px; border-radius: 9px; cursor: pointer;
}
.btn.sm:hover[b-5rpbce9aon] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.sm:disabled[b-5rpbce9aon] { background: var(--line-soft); border-color: var(--line-soft); color: var(--ink-soft); cursor: not-allowed; }
/* /Components/Pages/Crm/Panels/ClientAnagraficaPanel.razor.rz.scp.css */
/* Anagrafica & contatti — replica variabili brand (contratto §4). Card in stile .qz-card
   (radius 12, shadow, header uppercase con dot navy) al posto delle card Bootstrap;
   i form interni restano Bootstrap (nessun cambio funzionale). */
.ana[b-zk47rld7vt] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;
    color: var(--ink);
}

.acard[b-zk47rld7vt] {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
    margin-bottom: 14px;
}

.acard h2[b-zk47rld7vt] {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em;
    color: var(--ink-soft);
    padding: 13px 15px; border-bottom: 1px solid var(--line-soft);
    display: flex; align-items: center; gap: 8px;
    margin: 0; font-weight: 650;
}

.acard h2 .dot[b-zk47rld7vt] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }

.acard h2 .hbtn[b-zk47rld7vt] {
    margin-left: auto;
    font: inherit; font-size: 12px; font-weight: 650; text-transform: none; letter-spacing: normal;
    border: 1px solid var(--line); background: #fff; color: var(--navy-dk);
    padding: 4px 9px; border-radius: 8px; cursor: pointer;
}
.acard h2 .hbtn:hover[b-zk47rld7vt] { background: var(--panel); }

.pad[b-zk47rld7vt] { padding: 14px 15px; }

.savebar[b-zk47rld7vt] { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }

.savebar > .btn[b-zk47rld7vt] {
    font: inherit; font-weight: 650;
    border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.savebar > .btn:hover[b-zk47rld7vt] { background: var(--navy-dk); border-color: var(--navy-dk); }
.savebar > .btn:disabled[b-zk47rld7vt] { background: var(--line-soft); border-color: var(--line-soft); color: var(--ink-soft); cursor: not-allowed; }
/* /Components/Pages/Crm/Panels/ClientHeaderBar.razor.rz.scp.css */
/* Testata cliente sticky — replica variabili brand (contratto §4) + .hdr/.ctl del mockup v2. */
.hdr[b-hcbq0k98ez] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    position: sticky; top: 0; z-index: 10;
    display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    padding: 14px 16px; margin-bottom: 14px;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.name[b-hcbq0k98ez] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); }
.sub[b-hcbq0k98ez] { color: var(--ink-soft); font-size: 12.5px; margin-top: 2px; }
.sub b[b-hcbq0k98ez] { color: var(--ink); font-weight: 600; }
.mono[b-hcbq0k98ez] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.muted[b-hcbq0k98ez] { color: var(--ink-soft); }

.badges[b-hcbq0k98ez] { margin-top: 8px; display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }

.pill[b-hcbq0k98ez] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
}
.pill.sent[b-hcbq0k98ez] { background: var(--navy-soft); color: var(--navy-dk); }
.pill.prog[b-hcbq0k98ez] { background: #fdf0dd; color: var(--amber); }
.pill.lost[b-hcbq0k98ez] { background: var(--bad-soft); color: var(--bad); }

.save-ok[b-hcbq0k98ez] { font-size: 11px; font-weight: 700; color: var(--good); }
.save-err[b-hcbq0k98ez] { font-size: 11px; font-weight: 700; color: var(--bad); }

.hdr-right[b-hcbq0k98ez] { display: flex; gap: 9px; align-items: flex-end; flex-wrap: wrap; }

.ctl[b-hcbq0k98ez] {
    background: var(--panel); border: 1px solid var(--line);
    border-radius: 9px; padding: 6px 10px; min-width: 128px;
}

.ctl label[b-hcbq0k98ez] {
    display: flex; align-items: center; gap: 6px;
    font-size: 10px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin-bottom: 2px;
}

.ctl select[b-hcbq0k98ez], .ctl input[b-hcbq0k98ez] {
    border: none; background: transparent;
    font: inherit; font-size: 13px; font-weight: 650; color: var(--navy-dk);
    width: 100%; outline: none; cursor: pointer; padding: 0;
}

.pri[b-hcbq0k98ez] { display: inline-flex; gap: 3px; align-items: center; }
.pri .p[b-hcbq0k98ez] { width: 8px; height: 8px; border-radius: 50%; background: var(--line); }
.pri .p.on[b-hcbq0k98ez] { background: var(--bad); }

.btn[b-hcbq0k98ez] {
    font: inherit; font-weight: 650;
    border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
    align-self: flex-end;
}
.btn:hover[b-hcbq0k98ez] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.gold[b-hcbq0k98ez] { background: var(--gold); border-color: var(--gold); color: #3a2c00; }
.btn.gold:hover[b-hcbq0k98ez] { filter: brightness(.96); background: var(--gold); border-color: var(--gold); }
/* /Components/Pages/Crm/Panels/ClientQuotesPanel.razor.rz.scp.css */
/* Quotazioni del cliente — replica variabili brand (contratto §4) + righe .qrow del mockup. */
.qpanel[b-xp6qdpwd8m] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;
    color: var(--ink);
}

.qrow[b-xp6qdpwd8m] {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 2px; border-bottom: 1px solid var(--line-soft);
    cursor: pointer;
}

.qrow:last-of-type[b-xp6qdpwd8m] { border-bottom: none; }
.qrow:hover[b-xp6qdpwd8m] { background: #eef2f7; }

.qnum[b-xp6qdpwd8m] {
    font-weight: 700; font-size: 12.5px;
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    color: var(--navy-dk);
}

.qroute[b-xp6qdpwd8m] { color: var(--ink-soft); font-size: 11.5px; }

.qmar[b-xp6qdpwd8m] {
    margin-left: auto; font-weight: 700; font-size: 12.5px;
    font-family: var(--mono); font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* soglie margine come nel registro (QuotazioniUi.MarginClass: lo/mid/hi) */
.qmar.lo[b-xp6qdpwd8m] { color: var(--bad); }
.qmar.mid[b-xp6qdpwd8m] { color: var(--amber); }
.qmar.hi[b-xp6qdpwd8m] { color: var(--good); }

.pill[b-xp6qdpwd8m] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase;
    white-space: nowrap;
}

.pill.win[b-xp6qdpwd8m] { background: var(--good-soft); color: var(--good); }
.pill.prog[b-xp6qdpwd8m] { background: #fdf0dd; color: var(--amber); }
.pill.new[b-xp6qdpwd8m] { background: #e7eef3; color: var(--ink-soft); }
.pill.sent[b-xp6qdpwd8m] { background: var(--navy-soft); color: var(--navy-dk); }
.pill.lost[b-xp6qdpwd8m] { background: var(--bad-soft); color: var(--bad); }

.qempty[b-xp6qdpwd8m] { color: var(--ink-soft); font-size: 12.5px; padding: 6px 2px; }

.qhint[b-xp6qdpwd8m] {
    margin-top: 11px; padding: 10px 12px;
    border: 1px dashed var(--line); border-radius: 9px;
    color: var(--ink-soft); font-size: 12px; background: #fff;
}
/* /Components/Pages/Crm/Panels/KpiStrip.razor.rz.scp.css */
/* KPI strip — replica del blocco variabili brand (contratto §4) + stile .kpi del workspace. */
.kpis[b-2x8kehujqu] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5; --azure: #98CCD8;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
}

@media (max-width: 1000px) {
    .kpis[b-2x8kehujqu] { grid-template-columns: repeat(3, 1fr); }
}

.kpi[b-2x8kehujqu] {
    background: var(--panel);
    border: 1px solid var(--line-soft);
    border-radius: 10px;
    padding: 11px 12px;
}

.kpi .k[b-2x8kehujqu] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700;
}

.kpi .v[b-2x8kehujqu] {
    font-family: var(--mono);
    font-variant-numeric: tabular-nums;
    font-size: 19px; font-weight: 650; margin-top: 3px;
    color: var(--ink);
}

.kpi .v.small[b-2x8kehujqu] { font-size: 15px; }
.kpi .v.good[b-2x8kehujqu] { color: var(--good); }
.kpi .v.bad[b-2x8kehujqu] { color: var(--bad); }

.kpi.accent[b-2x8kehujqu] { background: var(--navy-dk); border-color: var(--navy-dk); }
.kpi.accent .k[b-2x8kehujqu] { color: var(--azure); }
.kpi.accent .v[b-2x8kehujqu] { color: #fff; }
/* /Components/Pages/Crm/Panels/LeadBadge.razor.rz.scp.css */
/* Pill stato lead — stile .pill del workspace quotazioni (linguaggio brand). */
.lead-pill[b-7er1zaoc2o] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase;
    display: inline-block; white-space: nowrap;
}

.lead-none[b-7er1zaoc2o] { background: #e7eef3; color: #3d5365; }
/* /Components/Pages/Dashboard/Dashboard.razor.rz.scp.css */
/* ============================================================
   Dashboard Home — guscio a tab.
   Palette BRAND identica al workspace quotazioni (QuotazioniWorkspace.razor.css):
   le variabili sono dichiarate qui su .dash-wrap e i componenti figli (SalesTab)
   le EREDITANO via DOM (le custom property attraversano la CSS isolation).
   ============================================================ */
.dash-wrap[b-mowmq0617z] {
    --ink: #0d2230;
    --ink-soft: #3d5365;
    --line: #dce4ea;
    --line-soft: #eef3f6;
    --paper: #fff;
    --panel: #f7fafb;
    /* BRAND navy */
    --navy: #2B357F;
    --navy-dk: #202A63;
    --navy-soft: #E8EAF5;
    /* accenti */
    --gold: #FAB931;
    --gold-soft: #FEF6E5;
    --azure: #98CCD8;
    /* soglie margine (distinte dall'oro brand) */
    --amber: #b9762a;
    --amber-soft: #fdf6ec;
    --good: #1f8a5b;
    --good-soft: #e6f3ec;
    --bad: #b23b3b;
    --bad-soft: #f8ecec;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    padding: 16px 0;
    color: var(--ink);
    font-size: 14px;
    line-height: 1.45;
}

/* ---------------- Tab bar ---------------- */
.dash-tabbar[b-mowmq0617z] {
    display: flex; align-items: center; gap: 6px;
    border-bottom: 2px solid var(--line);
    margin-bottom: 16px;
}

.dash-tab[b-mowmq0617z] {
    font: inherit; font-weight: 650; font-size: 13.5px;
    color: var(--ink-soft); background: none; border: none; cursor: pointer;
    padding: 10px 14px; border-bottom: 3px solid transparent; margin-bottom: -2px;
    display: flex; align-items: center; gap: 7px; letter-spacing: .01em;
}
.dash-tab:hover[b-mowmq0617z] { color: var(--navy-dk); }
.dash-tab.active[b-mowmq0617z] { color: var(--navy-dk); border-bottom-color: var(--gold); }
.dash-tab .bi[b-mowmq0617z] { font-size: 15px; }

.soon[b-mowmq0617z] {
    font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    background: var(--gold-soft); color: #9a6b00; padding: 1px 6px; border-radius: 5px;
}

/* ---------------- Ingranaggio preferenze ---------------- */
.dash-gear[b-mowmq0617z] { margin-left: auto; position: relative; }
.gear-btn[b-mowmq0617z] {
    font-size: 16px; color: var(--ink-soft); background: none; border: 1px solid transparent;
    border-radius: 8px; padding: 4px 9px; cursor: pointer;
}
.gear-btn:hover[b-mowmq0617z] { color: var(--navy-dk); background: var(--panel); border-color: var(--line); }
.gear-menu[b-mowmq0617z] {
    position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 190px;
    background: var(--paper); border: 1px solid var(--line); border-radius: 10px;
    box-shadow: var(--shadow); padding: 9px 11px;
}
.gear-title[b-mowmq0617z] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; margin-bottom: 6px;
}
.gear-item[b-mowmq0617z] {
    display: flex; align-items: center; gap: 7px; padding: 4px 2px;
    font-size: 13px; color: var(--ink); cursor: pointer;
}
.gear-item input[b-mowmq0617z] { cursor: pointer; }

/* ---------------- Placeholder tab in arrivo ---------------- */
.dash-placeholder[b-mowmq0617z] {
    border: 2px dashed var(--line); border-radius: 14px; background: var(--panel);
    padding: 56px 24px; text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.dash-placeholder .ph-icon[b-mowmq0617z] { font-size: 40px; color: var(--navy); opacity: .55; }
.dash-placeholder .ph-title[b-mowmq0617z] {
    font-size: 16px; font-weight: 700; color: var(--navy-dk);
    display: flex; align-items: center; gap: 8px;
}
.dash-placeholder .ph-text[b-mowmq0617z] { font-size: 13.5px; color: var(--ink); max-width: 520px; }
.dash-placeholder .ph-text.muted[b-mowmq0617z] { color: var(--ink-soft); font-size: 12.5px; }

.dash-loading[b-mowmq0617z] { padding: 40px; text-align: center; color: var(--ink-soft); }
/* /Components/Pages/Dashboard/Tabs/ManagementTab.razor.rz.scp.css */
/* Tab Management (Statistiche V1 par. 7) — stessi token visivi del resto dell'app. */
.mgmt[b-3v9xr0o68h] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --amber: #b9762a; --amber-soft: #fdf6ec;
    --good: #1f8a5b; --good-soft: #e6f3ec; --bad: #b23b3b; --bad-soft: #fdeeee;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;
    color: var(--ink); font-size: 14px;
}

/* ---------------- barra periodo + valute ---------------- */
.bar[b-3v9xr0o68h] { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.f[b-3v9xr0o68h] { display: flex; flex-direction: column; gap: 4px; }
.f > label[b-3v9xr0o68h] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700;
}
.f select[b-3v9xr0o68h] {
    font: inherit; font-size: 13.5px; padding: 7px 10px;
    border: 1px solid var(--line); border-radius: 8px; background: #fff; min-width: 110px;
}
/* selettore SOCIETÀ (multi con «Tutte») — primario al posto della valuta */
.socmenu[b-3v9xr0o68h] { position: relative; }
.socbtn[b-3v9xr0o68h] {
    font: inherit; font-size: 13.5px; padding: 7px 10px; min-width: 130px;
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer;
    color: var(--ink);
}
.socbtn .bi[b-3v9xr0o68h] { font-size: 11px; color: var(--ink-soft); }
.socdrop[b-3v9xr0o68h] {
    position: absolute; top: calc(100% + 4px); left: 0; z-index: 20;
    background: #fff; border: 1px solid var(--line); border-radius: 8px;
    box-shadow: var(--shadow); padding: 8px; min-width: 200px; max-height: 320px; overflow: auto;
}
.socdrop .chk[b-3v9xr0o68h] {
    display: flex; align-items: center; gap: 8px; padding: 5px 6px;
    font-size: 13px; border-radius: 6px; cursor: pointer;
}
.socdrop .chk:hover[b-3v9xr0o68h] { background: var(--panel); }
.socdrop .chk.tutte[b-3v9xr0o68h] { border-bottom: 1px solid var(--line-soft); margin-bottom: 4px; padding-bottom: 8px; font-weight: 650; }

/* sezione per valuta (automatica quando lo scope copre più valute, O7) */
.cur-section[b-3v9xr0o68h] { margin-bottom: 8px; }
.cur-section + .cur-section[b-3v9xr0o68h] { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.cur-head[b-3v9xr0o68h] { margin-bottom: 10px; }
.cur-badge[b-3v9xr0o68h] {
    display: inline-block; font-weight: 800; font-size: 12.5px; letter-spacing: .04em;
    color: var(--navy-dk); background: var(--navy-soft); border: 1px solid #d4d9ee;
    border-radius: 999px; padding: 4px 12px;
}
.open-stat[b-3v9xr0o68h] {
    margin-left: auto; font-size: 13px; font-weight: 650; text-decoration: none;
    color: var(--navy-dk); background: var(--navy-soft); border: 1px solid #d4d9ee;
    border-radius: 8px; padding: 7px 14px; white-space: nowrap;
}
.open-stat:hover[b-3v9xr0o68h] { background: #dde1f2; }

/* ---------------- card KPI (6, §7) ---------------- */
.cards[b-3v9xr0o68h] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px; margin-bottom: 16px;
}
.kpi[b-3v9xr0o68h] {
    display: block; text-decoration: none; color: var(--ink);
    background: var(--paper); border: 1px solid var(--line); border-radius: 12px;
    box-shadow: var(--shadow); padding: 12px 14px;
}
.kpi:hover[b-3v9xr0o68h] { border-color: var(--navy); }
.kpi .k[b-3v9xr0o68h] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin-bottom: 4px;
}
.kpi .v[b-3v9xr0o68h] { font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: 22px; font-weight: 700; line-height: 1.15; }
.kpi .d[b-3v9xr0o68h] { font-size: 11.5px; margin-top: 4px; }
.kpi .d.up[b-3v9xr0o68h] { color: var(--good); font-weight: 650; }
.kpi .d.down[b-3v9xr0o68h] { color: var(--bad); font-weight: 650; }
.kpi .d.muted[b-3v9xr0o68h] { color: var(--ink-soft); }
.kpi.accent[b-3v9xr0o68h] { background: var(--navy-soft); border-color: #d4d9ee; }
.kpi.accent .v[b-3v9xr0o68h] { color: var(--navy-dk); }
.kpi.accent.neg .v[b-3v9xr0o68h] { color: var(--bad); }
.kpi.warn[b-3v9xr0o68h] { background: var(--amber-soft); border-color: #f0ddc2; }
.kpi.warn .v[b-3v9xr0o68h] { color: var(--amber); }

/* ---------------- grafici (4, §7) ---------------- */
.charts[b-3v9xr0o68h] { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 12px; }
.chart[b-3v9xr0o68h] {
    background: var(--paper); border: 1px solid var(--line); border-radius: 12px;
    box-shadow: var(--shadow); padding: 12px 14px;
}
.chart h3[b-3v9xr0o68h] {
    font-size: 13.5px; font-weight: 750; color: var(--navy-dk); margin: 0 0 8px;
    display: flex; align-items: baseline; gap: 8px;
}
.chart h3 small[b-3v9xr0o68h] { font-size: 11px; font-weight: 600; color: var(--ink-soft); }
.cv[b-3v9xr0o68h] { position: relative; height: 240px; }
.cv.tall[b-3v9xr0o68h] { height: 300px; }

/* ---------------- stati ---------------- */
.loading[b-3v9xr0o68h] { padding: 40px 0; color: var(--ink-soft); display: flex; align-items: center; gap: 12px; justify-content: center; }
.empty[b-3v9xr0o68h] {
    text-align: center; color: var(--ink-soft); padding: 48px 0 40px;
    background: var(--paper); border: 1px dashed var(--line); border-radius: 12px;
}
.empty .bi[b-3v9xr0o68h] { font-size: 30px; display: block; margin-bottom: 8px; color: #b9c6d0; }
/* /Components/Pages/Dashboard/Tabs/SalesTab.razor.rz.scp.css */
/* ============================================================
   Tab Sales — testata, KPI, grafici SVG, worklist.
   Le variabili brand (--navy, --gold, …) arrivano per EREDITÀ DOM
   dal wrapper .dash-wrap del componente padre (Dashboard.razor.css).
   Le classi condivise (.qz-card, .pill, .btn, .kpi, .mgn) sono
   RIDICHIARATE qui perché la CSS isolation è per-componente
   (stessa convenzione dei Panels del workspace quotazioni).
   ============================================================ */

.mono[b-42e90871u8] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.muted[b-42e90871u8] { color: var(--ink-soft); }

/* ---------------- Card (come il workspace) ---------------- */
.qz-card[b-42e90871u8] {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
}
.qz-card h2[b-42e90871u8] {
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft);
    padding: 13px 15px; border-bottom: 1px solid var(--line-soft);
    display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 650;
}
.qz-card h2 .dot[b-42e90871u8] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.pad[b-42e90871u8] { padding: 14px 15px; }

/* ---------------- Bottoni (come il workspace) ---------------- */
.btn[b-42e90871u8] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-42e90871u8] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-42e90871u8] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-42e90871u8] { background: var(--panel); }
.btn.gold[b-42e90871u8] { background: var(--gold); border-color: var(--gold); color: #3a2c00; }
.btn.gold:hover[b-42e90871u8] { filter: brightness(.95); }
.btn.sm[b-42e90871u8] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-42e90871u8] { opacity: .55; cursor: not-allowed; }

/* ---------------- Pill stato + margini (come il registro) ---------------- */
.pill[b-42e90871u8] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
}
.pill.win[b-42e90871u8] { background: var(--good-soft); color: var(--good); }
.pill.prog[b-42e90871u8] { background: #fdf0dd; color: var(--amber); }
.pill.new[b-42e90871u8] { background: #e7eef3; color: var(--ink-soft); }
.pill.sent[b-42e90871u8] { background: var(--navy-soft); color: var(--navy-dk); }

.mgn.lo[b-42e90871u8] { color: var(--bad); }
.mgn.mid[b-42e90871u8] { color: var(--amber); }
.mgn.hi[b-42e90871u8] { color: var(--good); }
.prov-dot[b-42e90871u8] {
    display: inline-block; width: 8px; height: 8px; border-radius: 50%;
    background: var(--gold); margin-left: 5px; vertical-align: middle;
}

/* ---------------- Testata: saluto + controlli ---------------- */
.st-head[b-42e90871u8] {
    display: flex; align-items: flex-end; justify-content: space-between; gap: 16px;
    flex-wrap: wrap; margin-bottom: 14px;
}
.st-hi[b-42e90871u8] { font-size: 21px; color: var(--ink); }
.st-hi b[b-42e90871u8] { color: var(--navy-dk); }
.st-sub[b-42e90871u8] { font-size: 12.5px; color: var(--ink-soft); margin-top: 2px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.st-companyname[b-42e90871u8] { font-weight: 650; color: var(--navy-dk); }
.st-company[b-42e90871u8] { font: inherit; font-size: 12.5px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 7px; color: var(--navy-dk); }

.st-controls[b-42e90871u8] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.st-ctl[b-42e90871u8] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 600;
}
.st-ctl select[b-42e90871u8] {
    font: inherit; font-size: 13px; color: var(--ink); min-width: 130px;
    padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff;
}
.st-seg[b-42e90871u8] { display: inline-flex; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; background: #fff; }
.st-seg button[b-42e90871u8] {
    font: inherit; font-size: 12.5px; font-weight: 650; color: var(--ink-soft);
    background: none; border: none; cursor: pointer; padding: 8px 12px;
}
.st-seg button + button[b-42e90871u8] { border-left: 1px solid var(--line-soft); }
.st-seg button.on[b-42e90871u8] { background: var(--navy); color: #fff; }
.st-new[b-42e90871u8] { white-space: nowrap; }

.st-loading[b-42e90871u8], .st-empty[b-42e90871u8] { padding: 40px; text-align: center; color: var(--ink-soft); }

/* ---------------- KPI (7 card) ---------------- */
.st-kpis[b-42e90871u8] {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; margin-bottom: 14px;
}
@media (max-width: 1400px) { .st-kpis[b-42e90871u8] { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 800px)  { .st-kpis[b-42e90871u8] { grid-template-columns: repeat(2, 1fr); } }

.kpi[b-42e90871u8] {
    background: var(--panel); border: 1px solid var(--line-soft); border-radius: 10px;
    padding: 11px 12px; box-shadow: var(--shadow);
}
.kpi .k[b-42e90871u8] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; display: flex; align-items: center; gap: 6px;
}
.kpi .v[b-42e90871u8] { font-family: var(--mono); font-size: 22px; font-weight: 650; margin-top: 3px; }
.kpi .sub[b-42e90871u8] { font-size: 11px; color: var(--ink-soft); margin-top: 2px; }
.kpi .sub.up[b-42e90871u8] { color: var(--good); font-weight: 650; }
.kpi .sub.down[b-42e90871u8] { color: var(--bad); font-weight: 650; }

.kpi.warn-amber[b-42e90871u8] { background: var(--amber-soft); border-color: #f2dfc2; }
.kpi.warn-amber .k[b-42e90871u8], .kpi.warn-amber .v[b-42e90871u8] { color: var(--amber); }
.kpi.warn-red[b-42e90871u8] { background: var(--bad-soft); border-color: #ecd2d2; }
.kpi.warn-red .k[b-42e90871u8], .kpi.warn-red .v[b-42e90871u8] { color: var(--bad); }

.kpi.accent[b-42e90871u8] { background: var(--navy-dk); border-color: var(--navy-dk); }
.kpi.accent .k[b-42e90871u8] { color: var(--azure); }
.kpi.accent .v[b-42e90871u8] { color: #fff; }
.kpi.accent .sub[b-42e90871u8] { color: var(--azure); }
.stima[b-42e90871u8] {
    font-size: 9px; font-weight: 700; letter-spacing: .05em;
    background: var(--gold); color: #3a2c00; padding: 1px 5px; border-radius: 5px;
}

/* ---------------- Grafici ---------------- */
.st-charts[b-42e90871u8] {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px;
}
@media (max-width: 1100px) { .st-charts[b-42e90871u8] { grid-template-columns: 1fr; } }

.chart-body[b-42e90871u8] { min-height: 150px; }
.chart-empty[b-42e90871u8] {
    color: var(--ink-soft); font-size: 12.5px; padding: 30px 10px; text-align: center;
    border: 1px dashed var(--line); border-radius: 10px;
}
.chart-note[b-42e90871u8] { margin-left: auto; font-size: 10px; text-transform: none; letter-spacing: .02em; color: var(--ink-soft); font-weight: 400; }

.donut-row[b-42e90871u8] { display: flex; align-items: center; gap: 16px; }
.donut[b-42e90871u8] { width: 140px; height: 140px; flex: 0 0 auto; }
.donut-num[b-42e90871u8] { font: 700 26px var(--mono); fill: var(--ink); }
.donut-lbl[b-42e90871u8] { font: 600 10px sans-serif; fill: var(--ink-soft); text-transform: uppercase; letter-spacing: .06em; }

.legend-col[b-42e90871u8] { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; }
.legend-col .lg[b-42e90871u8] { display: flex; align-items: center; gap: 7px; }
.legend-col .lg b[b-42e90871u8] { margin-left: auto; font-family: var(--mono); padding-left: 10px; }
.legend-col .sw[b-42e90871u8] { width: 10px; height: 10px; border-radius: 3px; flex: 0 0 auto; }
.lg-sep[b-42e90871u8] {
    margin-top: 7px; padding-top: 6px; border-top: 1px dashed var(--line);
    font-size: 10px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700;
}

.bars[b-42e90871u8] { width: 100%; height: auto; }
.bar-lbl[b-42e90871u8] { font: 600 11px sans-serif; fill: var(--ink-soft); }
.bar-lbl.me[b-42e90871u8] { fill: #9a6b00; font-weight: 700; }
.bar-val[b-42e90871u8] { font: 700 11px var(--mono); fill: var(--ink); }

/* F6 — carico per operatore: griglia nome (colonna fissa, ellissi) | barra | conteggio.
   La barra parte SEMPRE dopo la colonna nome: nessuna sovrapposizione coi nomi lunghi. */
.op-rows[b-42e90871u8] { display: flex; flex-direction: column; gap: 6px; }
.op-row[b-42e90871u8] { display: grid; grid-template-columns: 105px minmax(0, 1fr) 34px; align-items: center; column-gap: 8px; }
.op-name[b-42e90871u8] {
    font: 600 11px sans-serif; color: var(--ink-soft);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.op-row.me .op-name[b-42e90871u8] { color: #9a6b00; font-weight: 700; }
.op-track[b-42e90871u8] { min-width: 0; }
.op-bar[b-42e90871u8] { height: 16px; border-radius: 3px; background: var(--navy); min-width: 2px; }
.op-row.me .op-bar[b-42e90871u8] { background: var(--gold); }
.op-count[b-42e90871u8] { font: 700 11px var(--mono); color: var(--ink); }

/* ---------------- Worklist ---------------- */
.st-work h2 .wl-tools[b-42e90871u8] { margin-left: auto; display: flex; align-items: center; gap: 12px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.wl-free[b-42e90871u8] {
    font: inherit; font-size: 12.5px; padding: 6px 9px; width: 220px;
    border: 1px solid var(--line); border-radius: 8px;
}
.wl-closed[b-42e90871u8] { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--ink-soft); cursor: pointer; }
.wl-closed input[b-42e90871u8] { cursor: pointer; }

.wl-scroll[b-42e90871u8] { overflow-x: auto; }
table.wl[b-42e90871u8] { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 1250px; }
table.wl th[b-42e90871u8] {
    font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--ink-soft);
    text-align: left; padding: 8px 7px; border-bottom: 1px solid var(--line); font-weight: 700;
    white-space: nowrap;
}
table.wl td[b-42e90871u8] { padding: 7px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
table.wl td.c[b-42e90871u8], table.wl th.c[b-42e90871u8] { text-align: center; }
table.wl .qn[b-42e90871u8] { color: var(--navy-dk); font-weight: 600; white-space: nowrap; }

tr.wl-row[b-42e90871u8] { cursor: pointer; }
tr.wl-row:hover td[b-42e90871u8] { background: var(--panel); }

tr.wl-filters th[b-42e90871u8] { padding: 4px 4px 8px; }
tr.wl-filters input[b-42e90871u8], tr.wl-filters select[b-42e90871u8] {
    font: inherit; font-size: 11.5px; color: var(--ink); width: 100%; min-width: 60px;
    padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; background: #fff;
    text-transform: none; letter-spacing: 0; font-weight: 400;
}

.op-chip[b-42e90871u8] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: 50%; margin-right: 5px;
    background: var(--navy-soft); color: var(--navy-dk);
    font-size: 10px; font-weight: 700; letter-spacing: .02em; vertical-align: middle;
}
.op-chip.me[b-42e90871u8] { background: var(--gold); color: #3a2c00; }
/* Quotazione senza operatore assegnato: chip neutro (né oro né azzurro), iniziali del creatore. */
.op-chip.none[b-42e90871u8] { background: #E4E6EF; color: #5A5F73; }
.op-fallback[b-42e90871u8] { font-style: italic; color: var(--ink-soft); }

td.overdue[b-42e90871u8] { color: var(--bad); font-weight: 700; white-space: nowrap; }

.wl-note[b-42e90871u8] { max-width: 220px; }
.wl-note .note-text[b-42e90871u8] { color: var(--ink-soft); }
.wl-note .note-edit[b-42e90871u8] {
    background: none; border: none; cursor: pointer; color: var(--navy);
    font-size: 12px; padding: 1px 4px; margin-left: 4px; opacity: 0;
}
tr.wl-row:hover .note-edit[b-42e90871u8] { opacity: 1; }
.wl-note textarea[b-42e90871u8] {
    font: inherit; font-size: 12px; width: 210px; min-height: 54px; resize: vertical;
    padding: 6px 8px; border: 1px solid var(--navy); border-radius: 7px;
}
.wl-note .note-actions[b-42e90871u8] { display: flex; gap: 6px; margin-top: 4px; }

.wl-empty[b-42e90871u8] { text-align: center; color: var(--ink-soft); padding: 26px 10px; }

.wl-pager[b-42e90871u8] {
    display: flex; align-items: center; gap: 10px; justify-content: flex-end;
    padding: 10px 15px; border-top: 1px solid var(--line-soft);
}
.wl-pager .pg[b-42e90871u8] { font-size: 12px; color: var(--ink-soft); }
/* /Components/Pages/Quotazioni/Panels/NewQuotationForm.razor.rz.scp.css */
/* ============================================================
   Nuova quotazione (mini-form) — estratto da QuotazioniWorkspace.
   CSS ISOLATION per-componente: base condivise ri-dichiarate (lo scope è per-componente).
   `.qz-card h2` funziona perché <main class="qz-card"> resta l'antenato reso dal padre;
   le --var ereditano via DOM da .qz-wrap.
   ============================================================ */

.muted[b-rzowal4aj0] { color: var(--ink-soft); font-weight: 400; }
.grow[b-rzowal4aj0] { flex: 1; }

/* Intestazione (l'antenato .qz-card è il <main> del padre) */
.qz-card h2[b-rzowal4aj0] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ink-soft);
    padding: 13px 15px;
    border-bottom: 1px solid var(--line-soft);
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 650;
}
.qz-card h2 .dot[b-rzowal4aj0] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }

.pad[b-rzowal4aj0] { padding: 14px 15px; }
.hint[b-rzowal4aj0] { font-size: 11.5px; color: var(--ink-soft); margin: 10px 2px 0; }

.grid[b-rzowal4aj0] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; }
.grid .full[b-rzowal4aj0] { grid-column: 1 / -1; }
.grid .half[b-rzowal4aj0] { grid-column: span 2; }

label.f[b-rzowal4aj0] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 600;
}

.qz-wrap select[b-rzowal4aj0], .qz-wrap input[b-rzowal4aj0] {
    font-family: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; width: 100%;
}
.qz-wrap input:focus[b-rzowal4aj0], .qz-wrap select:focus[b-rzowal4aj0] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.qz-wrap input[readonly][b-rzowal4aj0] { background: var(--panel); color: var(--ink-soft); }
.qz-wrap input.num[b-rzowal4aj0] { font-family: var(--mono); }
.qz-wrap input:disabled[b-rzowal4aj0], .qz-wrap select:disabled[b-rzowal4aj0] { background: var(--line-soft); color: var(--ink-soft); cursor: not-allowed; }

.toolbar[b-rzowal4aj0] {
    display: flex; gap: 9px; align-items: flex-end; flex-wrap: wrap;
    margin-top: 13px; padding-top: 13px; border-top: 1px dashed var(--line);
}

.btn[b-rzowal4aj0] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-rzowal4aj0] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn:disabled[b-rzowal4aj0] { opacity: .55; cursor: not-allowed; }

.qz-alert[b-rzowal4aj0] { margin-top: 12px; padding: 8px 11px; border-radius: 8px; font-size: 12.5px; }
.qz-alert.warn[b-rzowal4aj0] { background: var(--gold-soft); color: #8a5a00; }
/* /Components/Pages/Quotazioni/Panels/QuotationDocumentPanel.razor.rz.scp.css */
/* ============================================================
   Documento cliente (PDF + email) — estratto da QuotazioniWorkspace.
   CSS ISOLATION per-componente: le regole del markup migrato vivono qui; le --var
   restano su .qz-wrap (padre) ed ereditano via DOM. Le base condivise (qz-card/h2/btn/
   qz-alert/label.f/muted…) sono ri-dichiarate perché lo scope è per-componente.
   ============================================================ */

/* Reorder colonna PDF su viewport stretta (l'aside .qz-pdfcol è reso da QUESTO componente,
   quindi la regola di reorder deve vivere qui; il grid-template di .qz-wrap resta nel padre). */
@media (max-width: 1240px) {
    .qz-pdfcol[b-ef2tql7p3o] { order: 3; }
}

/* ---------------- Base condivise (copiate: usate anche dal padre) ---------------- */
.mono[b-ef2tql7p3o], .num[b-ef2tql7p3o] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.muted[b-ef2tql7p3o] { color: var(--ink-soft); font-weight: 400; }
.center[b-ef2tql7p3o] { text-align: center; }
.hint[b-ef2tql7p3o] { font-size: 11.5px; color: var(--ink-soft); margin: 10px 2px 0; }

.qz-card[b-ef2tql7p3o] {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
}
.qz-card h2[b-ef2tql7p3o] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ink-soft);
    padding: 13px 15px;
    border-bottom: 1px solid var(--line-soft);
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 650;
}
.qz-card h2 .dot[b-ef2tql7p3o] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }

label.f[b-ef2tql7p3o] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 600;
}

.btn[b-ef2tql7p3o] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-ef2tql7p3o] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-ef2tql7p3o] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-ef2tql7p3o] { background: var(--panel); }
.btn.gold[b-ef2tql7p3o] { background: var(--gold); border-color: var(--gold); color: #3a2c00; }
.btn.gold:hover[b-ef2tql7p3o] { filter: brightness(.95); }
.btn.sm[b-ef2tql7p3o] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-ef2tql7p3o] { opacity: .55; cursor: not-allowed; }

.qz-alert[b-ef2tql7p3o] { margin-top: 12px; padding: 8px 11px; border-radius: 8px; font-size: 12.5px; }
.qz-alert.ok[b-ef2tql7p3o] { background: var(--good-soft); color: #155c3c; }
.qz-alert.warn[b-ef2tql7p3o] { background: var(--gold-soft); color: #8a5a00; }

/* ---------------- Colonna anteprima ---------------- */
.qz-pdfcol[b-ef2tql7p3o] { min-width: 0; position: sticky; top: 16px; display: flex; flex-direction: column; gap: 12px; }
.pdf-frame[b-ef2tql7p3o], .pdf-panel iframe[b-ef2tql7p3o] { width: 100%; }

/* ---------------- Anteprima documento ---------------- */
.doc[b-ef2tql7p3o] { background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow); padding: 22px; font-size: 12px; color: #22323c; }
.doc .dh[b-ef2tql7p3o] { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 2px solid var(--navy-dk); padding-bottom: 10px; }
.doc .co[b-ef2tql7p3o] { font-weight: 800; color: var(--navy-dk); font-size: 15px; letter-spacing: .02em; }
.doc .co small[b-ef2tql7p3o] { display: block; font-weight: 500; color: #6a7c87; font-size: 10px; letter-spacing: .03em; }
.doc .qn[b-ef2tql7p3o] { font-family: var(--mono); font-weight: 700; font-size: 13px; text-align: right; }
.doc .qn small[b-ef2tql7p3o] { display: block; color: #6a7c87; font-weight: 500; font-size: 10px; }
.doc h4[b-ef2tql7p3o] { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: #8a99a2; margin: 14px 0 5px; }
.doc .kv[b-ef2tql7p3o] { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; font-size: 11.5px; }
.doc .kv b[b-ef2tql7p3o] { font-weight: 600; color: #6a7c87; }
.doc table[b-ef2tql7p3o] { width: 100%; border-collapse: collapse; margin-top: 4px; font-size: 11px; }
.doc table th[b-ef2tql7p3o] { text-align: right; font-size: 9.5px; text-transform: uppercase; letter-spacing: .03em; color: #8a99a2; border-bottom: 1px solid #d7dee2; padding: 4px 4px; }
.doc table th.l[b-ef2tql7p3o] { text-align: left; }
.doc table td[b-ef2tql7p3o] { text-align: right; padding: 4px 4px; border-bottom: 1px solid #eef2f4; font-variant-numeric: tabular-nums; }
.doc table td.l[b-ef2tql7p3o] { text-align: left; }
.doc .tot[b-ef2tql7p3o] { display: flex; justify-content: space-between; border-top: 2px solid var(--navy-dk); margin-top: 8px; padding-top: 7px; font-weight: 800; font-size: 13px; color: var(--navy-dk); }
.doc .eqline[b-ef2tql7p3o] { font-size: 10px; color: #6a7c87; text-align: right; margin-top: 3px; }
.doc .fine[b-ef2tql7p3o] { font-size: 9.5px; color: #8a99a2; margin-top: 12px; border-top: 1px solid #eef2f4; padding-top: 8px; line-height: 1.5; }
.stamp[b-ef2tql7p3o] { font-size: 9px; color: #b6c2c8; text-align: center; letter-spacing: .04em; }

/* ---------------- Pannello PDF (controlli + anteprima 1:1) ---------------- */
.pdf-panel[b-ef2tql7p3o] { display: flex; flex-direction: column; gap: 10px; }
/* Barra azioni STICKY in cima al pannello anteprima: resta visibile mentre l'anteprima (iframe) scorre
   sotto. Sfondo pieno (#fff) + z-index per coprire l'iframe. Solo posizionamento: logica invio/PDF/lingua
   invariata. Il top allinea all'offset della colonna sticky (.qz-pdfcol { top: 16px }). */
.pdf-controls[b-ef2tql7p3o] { position: sticky; top: 16px; z-index: 5; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow); padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.pdf-lang[b-ef2tql7p3o] { display: flex; align-items: center; gap: 8px; font-size: 12px; flex-wrap: wrap; }
.pdf-lang .lbl[b-ef2tql7p3o] { color: #6a7c87; font-weight: 600; }
.pdf-lang .opt[b-ef2tql7p3o] { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; padding: 3px 10px; border: 1px solid var(--line); border-radius: 20px; }
.pdf-lang .opt.on[b-ef2tql7p3o] { border-color: var(--navy-dk); color: var(--navy-dk); font-weight: 600; }
.pdf-actions[b-ef2tql7p3o] { display: flex; flex-wrap: wrap; gap: 8px; }
.pdf-actions a.btn[b-ef2tql7p3o] { text-decoration: none; display: inline-flex; align-items: center; }
.pdf-frame[b-ef2tql7p3o] { width: 100%; height: 82vh; border: 1px solid var(--line); border-radius: 4px; background: #EEF1F6; }

/* ---------------- Pannello "Invia al cliente" (email + PDF allegato) ---------------- */
.mail-panel[b-ef2tql7p3o] { background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow); overflow: hidden; }
.mail-head[b-ef2tql7p3o] { width: 100%; display: flex; align-items: center; gap: 8px; padding: 11px 12px; background: none; border: 0; cursor: pointer; font-size: 13px; font-weight: 600; color: var(--navy-dk); text-align: left; }
.mail-head .chev[b-ef2tql7p3o] { margin-left: auto; color: #6a7c87; }
.mail-body[b-ef2tql7p3o] { padding: 0 12px 12px; display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--line); }
.mail-body .f[b-ef2tql7p3o] { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: #6a7c87; }
.mail-body .f > input[b-ef2tql7p3o], .mail-textarea[b-ef2tql7p3o] { font-size: 12.5px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 4px; color: #23343d; font-family: inherit; }
.mail-textarea[b-ef2tql7p3o] { resize: vertical; min-height: 120px; line-height: 1.4; }
.mail-attach[b-ef2tql7p3o] { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12px; }
.mail-attach .lbl[b-ef2tql7p3o] { color: #6a7c87; font-weight: 600; }
.mail-attach .chip[b-ef2tql7p3o] { background: var(--navy-soft); color: var(--navy-dk); border-radius: 20px; padding: 2px 10px; font-size: 11.5px; }
.mail-actions[b-ef2tql7p3o] { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
.mail-actions .grow[b-ef2tql7p3o] { flex: 1; }
.warn-text[b-ef2tql7p3o] { color: #8a5a00; }

/* ---- Overlay anteprima a tutto schermo ---- */
.pdf-overlay[b-ef2tql7p3o] { position: fixed; inset: 0; z-index: 1000; background: rgba(13,34,48,.55); display: flex; align-items: center; justify-content: center; padding: 3vh 2vw; }
.pdf-overlay-inner[b-ef2tql7p3o] { background: #fff; border-radius: 8px; box-shadow: var(--shadow); width: min(1000px, 92vw); height: 94vh; display: flex; flex-direction: column; overflow: hidden; }
@media (min-width: 1800px) { .pdf-overlay-inner[b-ef2tql7p3o] { width: min(1180px, 88vw); } }
.pdf-overlay-bar[b-ef2tql7p3o] { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--line); }
.pdf-overlay-bar .mono[b-ef2tql7p3o] { font-family: var(--mono); font-size: 12px; color: var(--navy-dk); }
.pdf-overlay-bar .btn[b-ef2tql7p3o] { margin-left: auto; }
.pdf-overlay-frame[b-ef2tql7p3o] { flex: 1; width: 100%; border: 0; background: #EEF1F6; }
/* /Components/Pages/Quotazioni/Panels/QuotationRegisterPanel.razor.rz.scp.css */
/* ============================================================
   Registro quotazioni — estratto da QuotazioniWorkspace.
   CSS ISOLATION per-componente: le regole del markup migrato vivono qui; le --var
   restano su .qz-wrap (padre) ed ereditano via DOM. Le base condivise (mono/qz-card/
   pill/mgn/qz-wrap input/btn/w100) sono ri-dichiarate perché lo scope è per-componente.
   ORDINE: mantenuto quello del file originale — l'unico caso cascata-sensibile è
   `.reg-search input` vs `.qz-wrap input` (stessa specificità): quest'ultimo, più in basso,
   vince come nell'originale. Non riordinare senza verificare il bundle compilato.
   ============================================================ */

/* ---- base: mono / w100 ---- */
.mono[b-er1xcjcbb1], .num[b-er1xcjcbb1] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.w100[b-er1xcjcbb1] { width: 100%; }

/* ---- base: card + intestazione ---- */
.qz-card[b-er1xcjcbb1] {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
}
.qz-card h2[b-er1xcjcbb1] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ink-soft);
    padding: 13px 15px;
    border-bottom: 1px solid var(--line-soft);
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 650;
}
.qz-card h2 .dot[b-er1xcjcbb1] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }

/* ---------------- Registro ---------------- */
/* --- Ricerca live --- */
.reg-search[b-er1xcjcbb1] {
    display: flex; align-items: center; gap: 7px;
    margin: 10px 12px 8px; padding: 0 10px;
    border: 1px solid var(--line); border-radius: 9px; background: var(--panel);
    transition: border-color .15s, box-shadow .15s;
}
.reg-search:focus-within[b-er1xcjcbb1] { border-color: var(--navy); box-shadow: 0 0 0 3px var(--navy-soft); background: #fff; }
.reg-search .ico[b-er1xcjcbb1] { color: var(--navy); font-size: 15px; line-height: 1; }
.reg-search input[b-er1xcjcbb1] {
    flex: 1; border: 0; background: transparent; outline: none;
    padding: 8px 0; font: inherit; font-size: 13px; color: var(--ink);
}

/* --- Barra filtri: toggle + chip --- */
.reg-filterbar[b-er1xcjcbb1] { padding: 0 12px 4px; }
.filters-toggle[b-er1xcjcbb1] {
    display: inline-flex; align-items: center; gap: 6px;
    border: 1px solid var(--line); background: #fff; border-radius: 8px;
    padding: 5px 10px; font: inherit; font-size: 12.5px; font-weight: 600;
    color: var(--navy-dk); cursor: pointer; transition: background .15s, border-color .15s;
}
.filters-toggle:hover[b-er1xcjcbb1] { border-color: var(--navy); }
.filters-toggle.open[b-er1xcjcbb1] { background: var(--navy-soft); border-color: var(--navy); }
.filters-toggle .fi[b-er1xcjcbb1] { font-size: 13px; }
.filters-toggle .badge[b-er1xcjcbb1] {
    background: var(--navy); color: #fff; font-size: 11px; font-weight: 700;
    min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center;
}
.filters-toggle .caret[b-er1xcjcbb1] { font-size: 10px; transition: transform .28s ease; }
.filters-toggle.open .caret[b-er1xcjcbb1] { transform: rotate(180deg); }

.chips[b-er1xcjcbb1] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.chips .chip[b-er1xcjcbb1] {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--navy-soft); color: var(--navy-dk);
    border-radius: 999px; padding: 3px 5px 3px 10px; font-size: 11.5px; font-weight: 600;
}
.chips .chip button[b-er1xcjcbb1] {
    border: 0; background: rgba(43,53,127,.14); color: var(--navy-dk);
    width: 16px; height: 16px; line-height: 1; border-radius: 50%; cursor: pointer;
    font-size: 12px; display: inline-flex; align-items: center; justify-content: center; padding: 0;
}
.chips .chip button:hover[b-er1xcjcbb1] { background: var(--navy); color: #fff; }
.chips .chip-clear[b-er1xcjcbb1] {
    border: 0; background: none; color: var(--ink-soft); cursor: pointer;
    font-size: 11.5px; text-decoration: underline; padding: 3px 4px;
}
.chips .chip-clear:hover[b-er1xcjcbb1] { color: var(--navy); }

/* --- Sezione filtri a scomparsa (slide-down) --- */
.reg-filters[b-er1xcjcbb1] { max-height: 0; overflow: hidden; transition: max-height .28s ease; }
.reg-filters.open[b-er1xcjcbb1] { max-height: 320px; }
.reg-filters .ff[b-er1xcjcbb1] { display: flex; flex-direction: column; gap: 9px; padding: 6px 12px 12px; }
.reg-filters .ff > label[b-er1xcjcbb1],
.reg-filters .ff-dates label[b-er1xcjcbb1] {
    display: flex; flex-direction: column; gap: 3px;
    font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft);
}
.reg-filters .ff select[b-er1xcjcbb1],
.reg-filters .ff input[type="date"][b-er1xcjcbb1] {
    font: inherit; font-size: 13px; font-weight: 400; text-transform: none; letter-spacing: 0;
    padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink);
}
.reg-filters .ff-dates[b-er1xcjcbb1] { display: flex; gap: 8px; }
.reg-filters .ff-dates label[b-er1xcjcbb1] { flex: 1; }

.reg-list[b-er1xcjcbb1] { display: flex; flex-direction: column; border-top: 1px solid var(--line-soft); }
.reg-empty[b-er1xcjcbb1] { padding: 18px 15px; color: var(--ink-soft); font-size: 13px; }

.reg-row[b-er1xcjcbb1] {
    padding: 11px 15px;
    border-bottom: 1px solid var(--line-soft);
    cursor: pointer;
    border-left: 3px solid transparent;
}
.reg-row:hover[b-er1xcjcbb1] { background: var(--panel); }
.reg-row.active[b-er1xcjcbb1] { background: var(--navy-soft); border-left-color: var(--navy); }
.reg-row .r1[b-er1xcjcbb1] { display: flex; align-items: baseline; gap: 8px; }
.reg-row .r1 .qn[b-er1xcjcbb1] { font-family: var(--mono); font-weight: 600; font-size: 12px; color: var(--navy-dk); flex-shrink: 0; }
.reg-row .r1 .cli[b-er1xcjcbb1] {
    font-size: 12.5px; font-weight: 600; color: var(--ink);
    margin-left: auto; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.reg-row .subj[b-er1xcjcbb1] { font-size: 11.5px; color: var(--ink-soft); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reg-row .meta[b-er1xcjcbb1] { font-size: 12px; margin-top: 4px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.reg-row .meta .date[b-er1xcjcbb1] { color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.reg-row .meta .mgn[b-er1xcjcbb1] { margin-left: auto; font-weight: 700; }
.reg-row .meta .dup[b-er1xcjcbb1] {
    border: 0; background: transparent; cursor: pointer;
    color: var(--ink-soft); font-size: 14px; line-height: 1;
    padding: 1px 5px; border-radius: 6px; opacity: .55; transition: opacity .12s, background .12s;
}
.reg-row:hover .meta .dup[b-er1xcjcbb1], .reg-row .meta .dup:focus-visible[b-er1xcjcbb1] { opacity: 1; }
.reg-row .meta .dup:hover[b-er1xcjcbb1] { background: var(--navy-soft); color: var(--navy-dk); }
.reg-foot[b-er1xcjcbb1] { padding: 14px 15px; }

.pill[b-er1xcjcbb1] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase;
}
.pill.win[b-er1xcjcbb1] { background: var(--good-soft); color: var(--good); }
.pill.prog[b-er1xcjcbb1] { background: #fdf0dd; color: var(--amber); }
.pill.new[b-er1xcjcbb1] { background: #e7eef3; color: var(--ink-soft); }
.pill.sent[b-er1xcjcbb1] { background: var(--navy-soft); color: var(--navy-dk); }
.pill.prov[b-er1xcjcbb1] { background: var(--gold-soft); color: #9a6b00; }

.mgn.lo[b-er1xcjcbb1] { color: var(--bad); }
.mgn.mid[b-er1xcjcbb1] { color: var(--amber); }
.mgn.hi[b-er1xcjcbb1] { color: var(--good); }

/* ---- base: input/select condivisi (DOPO .reg-search input: stessa specificità, vince questo) ---- */
.qz-wrap select[b-er1xcjcbb1], .qz-wrap input[b-er1xcjcbb1] {
    font-family: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; width: 100%;
}
.qz-wrap input:focus[b-er1xcjcbb1], .qz-wrap select:focus[b-er1xcjcbb1] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.qz-wrap input[readonly][b-er1xcjcbb1] { background: var(--panel); color: var(--ink-soft); }
.qz-wrap input.num[b-er1xcjcbb1] { font-family: var(--mono); }
.qz-wrap input:disabled[b-er1xcjcbb1], .qz-wrap select:disabled[b-er1xcjcbb1] { background: var(--line-soft); color: var(--ink-soft); cursor: not-allowed; }

/* ---- base: bottoni ---- */
.btn[b-er1xcjcbb1] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-er1xcjcbb1] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-er1xcjcbb1] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-er1xcjcbb1] { background: var(--panel); }
.btn:disabled[b-er1xcjcbb1] { opacity: .55; cursor: not-allowed; }
/* /Components/Pages/Quotazioni/Panels/ShipmentDetailsPanel.razor.rz.scp.css */
/* ============================================================
   Dettagli spedizione — estratto da QuotazioniWorkspace.
   CSS ISOLATION: le regole che colpiscono markup di QUESTO componente vivono qui.
   Le variabili --navy/--line/… restano definite su .qz-wrap (padre) e si ereditano
   via DOM (custom properties: ereditate a prescindere dallo scope del componente).
   Le regole "base" condivise (grid/label/input/btn/client-search…) sono ri-dichiarate
   perché lo scope CSS è per-componente: senza, il markup migrato perderebbe lo stile.
   ============================================================ */

/* ---------------- Base condivise (copiate: usate anche dal padre) ---------------- */
.mono[b-h0o8gmwsl5], .num[b-h0o8gmwsl5] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.muted[b-h0o8gmwsl5] { color: var(--ink-soft); font-weight: 400; }
.hint[b-h0o8gmwsl5] { font-size: 11.5px; color: var(--ink-soft); margin: 10px 2px 0; }

.grid[b-h0o8gmwsl5] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; }
.grid .full[b-h0o8gmwsl5] { grid-column: 1 / -1; }
.grid .half[b-h0o8gmwsl5] { grid-column: span 2; }

label.f[b-h0o8gmwsl5] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 600;
}

.qz-wrap select[b-h0o8gmwsl5], .qz-wrap input[b-h0o8gmwsl5] {
    font-family: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; width: 100%;
}
.qz-wrap input:focus[b-h0o8gmwsl5], .qz-wrap select:focus[b-h0o8gmwsl5] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.qz-wrap input[readonly][b-h0o8gmwsl5] { background: var(--panel); color: var(--ink-soft); }
.qz-wrap input.num[b-h0o8gmwsl5] { font-family: var(--mono); }
.qz-wrap input:disabled[b-h0o8gmwsl5], .qz-wrap select:disabled[b-h0o8gmwsl5] { background: var(--line-soft); color: var(--ink-soft); cursor: not-allowed; }

.btn[b-h0o8gmwsl5] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-h0o8gmwsl5] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-h0o8gmwsl5] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-h0o8gmwsl5] { background: var(--panel); }
.btn.sm[b-h0o8gmwsl5] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-h0o8gmwsl5] { opacity: .55; cursor: not-allowed; }

/* Casella di ricerca + dropdown risultati (riusata dall'autocomplete merce). */
.client-search[b-h0o8gmwsl5] { position: relative; }
.client-dd[b-h0o8gmwsl5] {
    position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px);
    background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow);
    max-height: 240px; overflow-y: auto;
}
.client-empty[b-h0o8gmwsl5] { padding: 9px 11px; font-size: 12.5px; color: var(--ink-soft); text-transform: none; letter-spacing: 0; }
.client-item[b-h0o8gmwsl5] {
    display: flex; flex-direction: column; gap: 1px; padding: 7px 11px; cursor: pointer;
    border-bottom: 1px solid var(--line-soft); text-transform: none; letter-spacing: 0;
}
.client-item:last-child[b-h0o8gmwsl5] { border-bottom: none; }
.client-item:hover[b-h0o8gmwsl5] { background: var(--navy-soft); }
.client-item .cn[b-h0o8gmwsl5] { font-size: 13px; font-weight: 600; color: var(--ink); }
.client-item .cm[b-h0o8gmwsl5] { font-size: 11px; color: var(--ink-soft); }

/* ---------------- Dettagli spedizione (arricchimento testata) ---------------- */
.ship-panel[b-h0o8gmwsl5] { margin-top: 11px; border: 1px solid var(--line-soft); border-radius: 10px; background: var(--panel); overflow: hidden; }
.ship-head[b-h0o8gmwsl5] {
    width: 100%; display: flex; align-items: center; gap: 8px; padding: 10px 12px;
    background: none; border: 0; cursor: pointer; text-align: left;
    font: inherit; font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft);
}
.ship-head .dot[b-h0o8gmwsl5] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.ship-head .chev[b-h0o8gmwsl5] { margin-left: auto; color: var(--ink-soft); }
.ship-body[b-h0o8gmwsl5] { padding: 4px 12px 12px; border-top: 1px solid var(--line-soft); }
.ship-body .grid[b-h0o8gmwsl5] { margin-top: 9px; }

/* Testo con aggancio al master (chip #id + ✕ per sganciare) */
.ship-anchored[b-h0o8gmwsl5] { display: flex; align-items: center; gap: 6px; }
.ship-anchored input[b-h0o8gmwsl5] { flex: 1; }
.anchor-chip[b-h0o8gmwsl5] {
    display: inline-flex; align-items: center; gap: 2px; white-space: nowrap;
    font-size: 10.5px; font-weight: 700; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 3px 4px 3px 9px;
}
.anchor-chip .ic[b-h0o8gmwsl5] { background: none; border: none; cursor: pointer; font-size: 11px; color: var(--bad); padding: 0 4px; }

/* Mini-griglia equipment */
.equip[b-h0o8gmwsl5] { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line); }
.equip-title[b-h0o8gmwsl5] { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); font-weight: 600; margin-bottom: 6px; }
.equip-row[b-h0o8gmwsl5] {
    display: flex; align-items: center; gap: 8px; padding: 5px 8px; margin-bottom: 4px;
    background: #fff; border: 1px solid var(--line-soft); border-radius: 7px; font-size: 12.5px;
}
.equip-row .qty[b-h0o8gmwsl5] { font-weight: 700; min-width: 34px; text-align: right; }
.equip-row .x[b-h0o8gmwsl5] { color: var(--ink-soft); }
.equip-row .code[b-h0o8gmwsl5] { font-weight: 600; color: var(--navy-dk); font-size: 12px; }
.equip-row .desc[b-h0o8gmwsl5] { flex: 1; font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.equip-row .ic[b-h0o8gmwsl5] { background: none; border: none; cursor: pointer; font-size: 13px; padding: 2px 5px; }
.equip-row .ic.del[b-h0o8gmwsl5] { color: var(--bad); }
.equip-row .ic:disabled[b-h0o8gmwsl5] { opacity: .4; cursor: not-allowed; }
.equip-add[b-h0o8gmwsl5] { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.equip-add .qty-in[b-h0o8gmwsl5] { width: 74px; text-align: right; }
.equip-add select[b-h0o8gmwsl5] { flex: 1; }
.equip-add .x[b-h0o8gmwsl5] { color: var(--ink-soft); }

/* ---------------- Merce / Colli (modulo quot-cargo) ---------------- */
.cargo-head[b-h0o8gmwsl5] { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.cargo-head .equip-title[b-h0o8gmwsl5] { margin-bottom: 0; }
.dg-toggle[b-h0o8gmwsl5] {
    display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
    font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 600;
}
.dg-toggle input[b-h0o8gmwsl5] { width: auto; padding: 0; }
.cargo-head .uoms[b-h0o8gmwsl5] { margin-left: auto; display: inline-flex; gap: 6px; }
.cargo-head select.uom[b-h0o8gmwsl5] { width: auto; padding: 4px 7px; font-size: 12px; }
.equip-row .dims[b-h0o8gmwsl5] { min-width: 150px; font-size: 12px; }
.equip-row .wgt[b-h0o8gmwsl5] { min-width: 84px; text-align: right; font-size: 12px; }
.cargo-add[b-h0o8gmwsl5] { display: flex; align-items: center; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.cargo-add .p-in[b-h0o8gmwsl5] { width: 60px; text-align: right; }
.cargo-add .d-in[b-h0o8gmwsl5] { width: 72px; text-align: right; }
.cargo-add .w-in[b-h0o8gmwsl5] { width: 88px; text-align: right; }
.cargo-add .pack-in[b-h0o8gmwsl5] { flex: 1; min-width: 110px; }
.cargo-add .x[b-h0o8gmwsl5] { color: var(--ink-soft); }
.cargo-add .unit[b-h0o8gmwsl5] { font-size: 11px; text-transform: none; letter-spacing: 0; }
.cargo-sum[b-h0o8gmwsl5] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin-top: 8px; padding: 7px 11px;
    background: #fff; border: 1px solid var(--line-soft); border-radius: 7px;
    font-size: 12px; color: var(--ink-soft); text-transform: none; letter-spacing: 0;
}
.cargo-sum b[b-h0o8gmwsl5] { color: var(--ink); font-weight: 700; }
.dg-badge[b-h0o8gmwsl5] {
    background: #b3261e; color: #fff; font-weight: 800; font-size: 10.5px;
    border-radius: 5px; padding: 2px 8px; letter-spacing: .06em;
}
/* /Components/Pages/Quotazioni/QuotazioniWorkspace.razor.rz.scp.css */
/* ============================================================
   Workspace Quotazioni — 3 pannelli.
   Palette BRAND (navy SI-LOG al posto del teal del mock v2),
   accento oro per "Salva", soglie margine distinte dall'oro.
   Valori layout/soglie vincolanti dal prototipo v2.
   NB: registro, dettagli spedizione e colonna PDF/email sono ora sotto-componenti
   (Panels/): le loro regole vivono nei rispettivi .razor.css (CSS isolation per-componente).
   Qui restano le regole del guscio + testata/FX/righe/totali/toolbar/picker/cliente.
   ============================================================ */
.qz-wrap[b-4tatye10u9] {
    --ink: #0d2230;
    --ink-soft: #3d5365;
    --line: #dce4ea;
    --line-soft: #eef3f6;
    --paper: #fff;
    --panel: #f7fafb;
    /* BRAND navy (sostituisce --sea del mock) */
    --navy: #2B357F;
    --navy-dk: #202A63;
    --navy-soft: #E8EAF5;
    /* accenti */
    --gold: #FAB931;
    --gold-soft: #FEF6E5;
    --azure: #98CCD8;
    /* soglie margine (restano distinte dall'oro brand) */
    --amber: #b9762a;
    --amber-soft: #fdf6ec;
    --good: #1f8a5b;
    --good-soft: #e6f3ec;
    --bad: #b23b3b;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    display: grid;
    grid-template-columns: 290px minmax(560px, 900px) minmax(420px, 1fr);
    gap: 16px;
    padding: 16px 0;
    max-width: none;
    margin: 0 auto;
    align-items: start;
    color: var(--ink);
    font-size: 14px;
    line-height: 1.45;
}

/* La colonna PDF (.qz-pdfcol) è resa dal sotto-componente QuotationDocumentPanel: il suo
   reorder su viewport stretta vive nel .razor.css di quel componente. Qui resta il collasso
   a colonna singola del grid di .qz-wrap. */
@media (max-width: 1240px) {
    .qz-wrap[b-4tatye10u9] { grid-template-columns: 1fr; }
}

.mono[b-4tatye10u9], .num[b-4tatye10u9] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.muted[b-4tatye10u9] { color: var(--ink-soft); font-weight: 400; }
.center[b-4tatye10u9] { text-align: center; }
.grow[b-4tatye10u9] { flex: 1; }

.qz-card[b-4tatye10u9] {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
}

.qz-card h2[b-4tatye10u9] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ink-soft);
    padding: 13px 15px;
    border-bottom: 1px solid var(--line-soft);
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 650;
}

.qz-card h2 .dot[b-4tatye10u9] { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.qz-card h2 .qnum[b-4tatye10u9] { margin-left: auto; color: var(--navy-dk); font-weight: 700; }

.pad[b-4tatye10u9] { padding: 14px 15px; }
.hint[b-4tatye10u9] { font-size: 11.5px; color: var(--ink-soft); margin: 10px 2px 0; }

.pill[b-4tatye10u9] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase;
}
.pill.win[b-4tatye10u9] { background: var(--good-soft); color: var(--good); }
.pill.prog[b-4tatye10u9] { background: #fdf0dd; color: var(--amber); }
.pill.new[b-4tatye10u9] { background: #e7eef3; color: var(--ink-soft); }
.pill.sent[b-4tatye10u9] { background: var(--navy-soft); color: var(--navy-dk); }
.pill.prov[b-4tatye10u9] { background: var(--gold-soft); color: #9a6b00; }

.mgn.lo[b-4tatye10u9] { color: var(--bad); }
.mgn.mid[b-4tatye10u9] { color: var(--amber); }
.mgn.hi[b-4tatye10u9] { color: var(--good); }

/* ---------------- Form / griglia ---------------- */
.grid[b-4tatye10u9] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; }
.grid .full[b-4tatye10u9] { grid-column: 1 / -1; }
.grid .half[b-4tatye10u9] { grid-column: span 2; }

label.f[b-4tatye10u9] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 600;
}

.qz-wrap select[b-4tatye10u9], .qz-wrap input[b-4tatye10u9] {
    font-family: inherit; font-size: 13.5px; color: var(--ink);
    padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; width: 100%;
}
.qz-wrap input:focus[b-4tatye10u9], .qz-wrap select:focus[b-4tatye10u9] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.qz-wrap input[readonly][b-4tatye10u9] { background: var(--panel); color: var(--ink-soft); }
.qz-wrap input.num[b-4tatye10u9] { font-family: var(--mono); }
.qz-wrap input:disabled[b-4tatye10u9], .qz-wrap select:disabled[b-4tatye10u9] { background: var(--line-soft); color: var(--ink-soft); cursor: not-allowed; }

/* ---------------- FX bar ---------------- */
.fxbar[b-4tatye10u9] {
    display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap;
    margin-top: 11px; padding: 10px 11px;
    background: var(--panel); border: 1px solid var(--line-soft); border-radius: 10px;
}
.fxbar label.f[b-4tatye10u9] { font-size: 10.5px; }
.fxbar input[b-4tatye10u9] { width: 110px; }
.fxnote[b-4tatye10u9] { font-size: 10.5px; color: var(--ink-soft); flex: 1; min-width: 180px; line-height: 1.35; }
.fxnote b[b-4tatye10u9] { color: var(--navy-dk); }

/* ---------------- Toolbar / bottoni ---------------- */
.toolbar[b-4tatye10u9] {
    display: flex; gap: 9px; align-items: flex-end; flex-wrap: wrap;
    margin-top: 13px; padding-top: 13px; border-top: 1px dashed var(--line);
}
.toolbar .mk-def[b-4tatye10u9] { flex: 0 0 130px; }

.btn[b-4tatye10u9] {
    font: inherit; font-weight: 650; border: 1px solid var(--navy); background: var(--navy); color: #fff;
    padding: 9px 14px; border-radius: 9px; cursor: pointer; letter-spacing: .01em;
}
.btn:hover[b-4tatye10u9] { background: var(--navy-dk); border-color: var(--navy-dk); }
.btn.ghost[b-4tatye10u9] { background: #fff; color: var(--navy-dk); border-color: var(--line); }
.btn.ghost:hover[b-4tatye10u9] { background: var(--panel); }
.btn.gold[b-4tatye10u9] { background: var(--gold); border-color: var(--gold); color: #3a2c00; }
.btn.gold:hover[b-4tatye10u9] { filter: brightness(.95); }
/* Azione discreta brand-navy (annulla quotazione): coerente col brand, NON un primario. */
.btn.navy-soft[b-4tatye10u9] { background: var(--navy-soft); border-color: var(--navy-soft); color: var(--navy-dk); }
.btn.navy-soft:hover[b-4tatye10u9] { background: #dadffb; border-color: #dadffb; }
.btn.sm[b-4tatye10u9] { padding: 5px 9px; font-size: 12px; }
.btn:disabled[b-4tatye10u9] { opacity: .55; cursor: not-allowed; }

/* ---------------- Pannello conferma annullamento quotazione ---------------- */
.cancel-panel[b-4tatye10u9] { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--navy-soft); border-radius: 9px; background: #fbfcff; }
.cancel-panel .cancel-head[b-4tatye10u9] { font-size: 12.5px; color: var(--navy-dk); margin-bottom: 9px; }
.cancel-panel label.f[b-4tatye10u9] { display: block; }
.cancel-panel .cancel-actions[b-4tatye10u9] { display: flex; gap: 8px; justify-content: flex-end; margin-top: 11px; }

.badge-fase[b-4tatye10u9] {
    font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    background: var(--gold-soft); color: #9a6b00; padding: 1px 5px; border-radius: 5px; margin-left: 5px;
}

/* ---------------- Alert / messaggi ---------------- */
.qz-alert[b-4tatye10u9] { margin-top: 12px; padding: 8px 11px; border-radius: 8px; font-size: 12.5px; }
.qz-alert.ok[b-4tatye10u9] { background: var(--good-soft); color: #155c3c; }
.qz-alert.warn[b-4tatye10u9] { background: var(--gold-soft); color: #8a5a00; }

/* ---------------- Picker Cliente / Bill-to ---------------- */
/* Chip cliente impostato: nome + × per azzerare (coerente col brand navy). */
.client-chip[b-4tatye10u9] {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 8px 6px 11px; border: 1px solid var(--navy-soft); border-radius: 8px;
    background: var(--navy-soft); min-height: 36px;
}
.client-chip .client-name[b-4tatye10u9] { font-size: 13.5px; font-weight: 600; color: var(--navy-dk); text-transform: none; letter-spacing: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-chip .ic[b-4tatye10u9] { background: none; border: none; cursor: pointer; font-size: 13px; color: var(--bad); padding: 2px 5px; }
.client-chip .ic:disabled[b-4tatye10u9] { opacity: .4; cursor: not-allowed; }

/* Scheda CRM compatta sotto il chip cliente: bordo leggero, testo muted, poco padding. */
.client-card[b-4tatye10u9] {
    margin-top: 6px; padding: 7px 10px;
    border: 1px solid var(--line); border-radius: 8px; background: var(--panel);
    font-size: 11.5px; line-height: 1.5;
}
.client-card .cc-row[b-4tatye10u9] { color: var(--ink-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.client-card .cc-k[b-4tatye10u9] { color: var(--ink); font-weight: 600; text-transform: none; letter-spacing: 0; }
.client-card .cc-warn[b-4tatye10u9] { color: var(--bad); font-weight: 600; margin-bottom: 3px; }
.client-card .cc-link[b-4tatye10u9] { display: inline-block; margin-top: 4px; color: var(--navy); font-weight: 600; text-decoration: none; }
.client-card .cc-link:hover[b-4tatye10u9] { text-decoration: underline; }

/* Casella di ricerca + dropdown risultati. */
.client-search[b-4tatye10u9] { position: relative; }
.client-in[b-4tatye10u9] { display: flex; gap: 6px; align-items: center; }
.client-in input[b-4tatye10u9] { flex: 1 1 auto; min-width: 0; }
.client-add[b-4tatye10u9] { white-space: nowrap; flex: 0 0 auto; }
.client-dd[b-4tatye10u9] {
    position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px);
    background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow);
    max-height: 240px; overflow-y: auto;
}
.client-empty[b-4tatye10u9] { padding: 9px 11px; font-size: 12.5px; color: var(--ink-soft); text-transform: none; letter-spacing: 0; }
.client-hint[b-4tatye10u9] {
    padding: 7px 11px; font-size: 11.5px; color: var(--ink-soft); font-style: italic;
    border-top: 1px solid var(--line-soft); text-transform: none; letter-spacing: 0;
}
.client-item[b-4tatye10u9] {
    display: flex; flex-direction: column; gap: 1px; padding: 7px 11px; cursor: pointer;
    border-bottom: 1px solid var(--line-soft); text-transform: none; letter-spacing: 0;
}
.client-item:last-child[b-4tatye10u9] { border-bottom: none; }
.client-item:hover[b-4tatye10u9] { background: var(--navy-soft); }
.client-item .cn[b-4tatye10u9] { font-size: 13px; font-weight: 600; color: var(--ink); }
.client-item .cm[b-4tatye10u9] { font-size: 11px; color: var(--ink-soft); }

/* ---------------- Picker BillCode ---------------- */
.picker[b-4tatye10u9] { margin-top: 12px; border: 1px solid var(--line); border-radius: 10px; padding: 10px; background: var(--panel); }
.picker-bar[b-4tatye10u9] { display: flex; gap: 8px; }
.picker-list[b-4tatye10u9] { margin-top: 8px; max-height: 220px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
.picker-item[b-4tatye10u9] { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 6px; background: #fff; border: 1px solid var(--line-soft); border-radius: 7px; }
.picker-hint[b-4tatye10u9] { margin-top: 6px; font-size: 11.5px; color: var(--ink-soft); font-style: italic; }

/* ---------------- Tabella righe ---------------- */
table.lines[b-4tatye10u9] { width: 100%; border-collapse: collapse; margin-top: 14px; font-size: 12.5px; }
table.lines th[b-4tatye10u9] {
    font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--ink-soft);
    text-align: right; padding: 7px 7px; border-bottom: 1px solid var(--line); font-weight: 700;
}
table.lines th.l[b-4tatye10u9], table.lines td.l[b-4tatye10u9] { text-align: left; }
table.lines th.grp[b-4tatye10u9] { text-align: center; font-size: 9.5px; letter-spacing: .09em; padding: 5px 4px; border-bottom: 2px solid var(--line); }
table.lines th.grp.cost[b-4tatye10u9] { color: #9a6b00; background: var(--gold-soft); }       /* header colonne COSTO = oro */
table.lines th.grp.sell[b-4tatye10u9] { color: var(--navy-dk); background: var(--navy-soft); }
table.lines td[b-4tatye10u9] { padding: 6px 7px; border-bottom: 1px solid var(--line-soft); text-align: right; font-variant-numeric: tabular-nums; vertical-align: middle; }
table.lines tr:hover td[b-4tatye10u9] { background: var(--panel); }
table.lines tr.off td[b-4tatye10u9] { opacity: .5; text-decoration: line-through; }
table.lines .code[b-4tatye10u9] { font-family: var(--mono); font-size: 11px; color: var(--navy-dk); font-weight: 600; }
table.lines .desc[b-4tatye10u9] { color: var(--ink-soft); font-size: 11.5px; }
table.lines td.party[b-4tatye10u9] { font-size: 11px; color: var(--ink-soft); text-align: left; white-space: nowrap; }
/* S5 — pallino «costo da listino»: indicatore discreto, il dettaglio sta nel tooltip. */
table.lines .ratelink[b-4tatye10u9] { color: var(--gold, #FAB931); font-size: 9px; margin-left: 5px; cursor: help; }
table.lines td.mgn[b-4tatye10u9] { font-weight: 700; }
table.lines input[b-4tatye10u9] { padding: 4px 5px; font-size: 12px; text-align: right; }
table.lines input.q[b-4tatye10u9] { width: 56px; }
/* F3 (quot-cargo): tendina base di calcolo sotto la quantità. Stretta, non ruba spazio agli importi. */
table.lines select.uomsel[b-4tatye10u9] { display: block; width: 64px; margin-top: 3px; padding: 2px 3px; font-size: 11px; }
table.lines input.mk[b-4tatye10u9] { width: 64px; }
/* Costo/Vendita (R-2): larghezza esplicita, un importo tipo 123.456,78 deve leggersi intero. */
table.lines input.amt[b-4tatye10u9] { width: 92px; }
/* Descrizione editabile (R-4): codice fisso + input che occupa il resto della cella. */
table.lines td.item-cell .item-wrap[b-4tatye10u9] { display: flex; align-items: center; gap: 6px; }
table.lines input.desc-in[b-4tatye10u9] { flex: 1; min-width: 140px; text-align: left; font-size: 11.5px; color: var(--ink-soft); }
table.lines select.cursel[b-4tatye10u9] { padding: 4px 4px; font-size: 11px; width: 64px; }
table.lines td.rowact[b-4tatye10u9] { white-space: nowrap; }
table.lines .ic[b-4tatye10u9] { background: none; border: none; cursor: pointer; font-size: 14px; color: var(--navy); padding: 2px 5px; }
table.lines .ic.del[b-4tatye10u9] { color: var(--bad); }
table.lines .ic:disabled[b-4tatye10u9] { opacity: .4; cursor: not-allowed; }

.legend[b-4tatye10u9] { font-size: 11px; color: var(--ink-soft); margin-top: 9px; display: flex; gap: 16px; flex-wrap: wrap; }
.legend b[b-4tatye10u9] { color: var(--ink); }
.legend .sw[b-4tatye10u9] { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin: 0 4px 0 8px; vertical-align: middle; }
.legend .sw.lo[b-4tatye10u9] { background: var(--bad); }
.legend .sw.mid[b-4tatye10u9] { background: var(--amber); }
.legend .sw.hi[b-4tatye10u9] { background: var(--good); }

.empty[b-4tatye10u9] {
    color: var(--ink-soft); font-size: 13px; padding: 24px 10px; text-align: center;
    border: 1px dashed var(--line); border-radius: 10px; margin-top: 14px;
}

/* ---------------- KPI totali ---------------- */
/* 5 colonne dal fix R-1: costo, vendita, profitto, margine sul venduto, markup medio. */
.totals[b-4tatye10u9] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 14px; }
.kpi[b-4tatye10u9] { background: var(--panel); border: 1px solid var(--line-soft); border-radius: 10px; padding: 11px 12px; }
.kpi .k[b-4tatye10u9] { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); font-weight: 700; }
.kpi .v[b-4tatye10u9] { font-family: var(--mono); font-size: 19px; font-weight: 650; margin-top: 3px; }
.kpi.accent[b-4tatye10u9] { background: var(--navy-dk); border-color: var(--navy-dk); }
.kpi.accent .k[b-4tatye10u9] { color: var(--azure); }
.kpi.accent .v[b-4tatye10u9] { color: #fff; }
.kpi .cur[b-4tatye10u9] { font-size: 10px; color: var(--ink-soft); font-weight: 700; }
.kpi.accent .v .cur[b-4tatye10u9] { color: var(--azure); }

.equiv[b-4tatye10u9] {
    grid-column: 1 / -1; background: #fff; border: 1px dashed var(--line); border-radius: 10px;
    padding: 10px 12px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.equiv .k[b-4tatye10u9] { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); font-weight: 700; }
.equiv .v[b-4tatye10u9] { font-family: var(--mono); font-size: 12.5px; }
.equiv select[b-4tatye10u9] { width: auto; padding: 4px 7px; font-size: 12px; }

/* B3 — avviso "importi provvisori" (multi-valuta, non congelata): riga piena nel blocco totali. */
.prov-note[b-4tatye10u9] { grid-column: 1 / -1; }
.prov-note .prov-rate[b-4tatye10u9] { font-family: var(--mono); font-size: 11.5px; margin-top: 3px; }

/* ---------------- D1: modale confronto tariffe carrier ---------------- */
.prop-overlay[b-4tatye10u9] {
    position: fixed; inset: 0; z-index: 60; display: flex; align-items: flex-start; justify-content: center;
    padding: 6vh 16px; background: rgba(13, 34, 48, .42); overflow-y: auto;
}
.prop-modal[b-4tatye10u9] {
    width: min(820px, 100%); background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
}
.prop-head[b-4tatye10u9] {
    display: flex; align-items: center; gap: 12px; padding: 12px 15px; border-bottom: 1px solid var(--line-soft);
    font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-soft); font-weight: 650;
}
.prop-head .dot[b-4tatye10u9] { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--navy); margin-right: 8px; }
.prop-head .prop-cur[b-4tatye10u9] { margin-left: auto; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 11.5px; }
.prop-head .prop-cur b[b-4tatye10u9] { color: var(--navy-dk); }
.prop-body[b-4tatye10u9] { padding: 14px 15px; }

.prop-table[b-4tatye10u9] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.prop-table th[b-4tatye10u9] {
    font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: var(--ink-soft);
    text-align: right; padding: 7px 8px; border-bottom: 1px solid var(--line); font-weight: 700;
}
.prop-table th.l[b-4tatye10u9], .prop-table td.l[b-4tatye10u9] { text-align: left; }
.prop-table td[b-4tatye10u9] { padding: 7px 8px; border-bottom: 1px solid var(--line-soft); text-align: right; vertical-align: middle; }
.prop-table td.num[b-4tatye10u9] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.prop-table td .cur[b-4tatye10u9] { font-size: 10px; color: var(--ink-soft); font-weight: 700; }
.prop-table tr.best td[b-4tatye10u9] { background: var(--good-soft); }
.prop-table tr.best td.l:first-child[b-4tatye10u9] { font-weight: 700; color: #155c3c; }
.prop-table tr:hover td[b-4tatye10u9] { background: var(--panel); }
.prop-table tr.best:hover td[b-4tatye10u9] { background: #dcefe4; }

.prop-table .tp[b-4tatye10u9] { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 999px; letter-spacing: .02em; }
.prop-table .tp.dir[b-4tatye10u9] { background: var(--navy-soft); color: var(--navy-dk); }
.prop-table .tp.arb[b-4tatye10u9] { background: var(--gold-soft); color: #9a6b00; }

/* D2 — colonna di selezione + riga selezionata */
.prop-table th.sel[b-4tatye10u9], .prop-table td.sel[b-4tatye10u9] { text-align: center; width: 30px; }
.prop-table td.sel input[b-4tatye10u9] { cursor: pointer; }
.prop-table tr.sel-on td[b-4tatye10u9] { background: var(--gold-soft); }
.prop-table tr.sel-on:hover td[b-4tatye10u9] { background: var(--gold-soft); }

/* D3 — accessorie spuntabili */
.add-charges[b-4tatye10u9] { margin-top: 14px; border-top: 1px solid var(--line-soft); padding-top: 12px; }
.add-head[b-4tatye10u9] { font-size: 12px; font-weight: 700; color: var(--navy-dk); margin-bottom: 8px; }
.add-list[b-4tatye10u9] { display: flex; flex-direction: column; gap: 2px; }
/* F8 — righe a GRIGLIA con colonna checkbox fissa (checkbox | descrizione | importo):
   i testi di lunghezza diversa non spostano più i checkbox, importi incolonnati a destra. */
.add-item[b-4tatye10u9] {
    display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; align-items: center;
    column-gap: 8px; padding: 6px 8px; border-radius: 6px;
    font-size: 12.5px; cursor: pointer;
}
.add-item:hover[b-4tatye10u9] { background: var(--panel); }
.add-item input[b-4tatye10u9] { cursor: pointer; justify-self: start; margin: 0; }
.add-item .add-name[b-4tatye10u9] { min-width: 0; }
.add-item .add-amt[b-4tatye10u9] { font-family: var(--mono); font-variant-numeric: tabular-nums; justify-self: end; white-space: nowrap; }
.add-item .add-amt .cur[b-4tatye10u9] { font-size: 10px; color: var(--ink-soft); font-weight: 700; }
/* /Components/Pages/Statistiche/LocationPicker.razor.rz.scp.css */
/* Tendina Origine/Destinazione (18/07). Stile allineato alla barra filtri di
   /statistiche: essendo un componente a se', le regole scoped della pagina non
   lo raggiungono e vanno ripetute qui. */
.locpick[b-ezd1z4nk75] { display: flex; flex-direction: column; gap: 4px; }

.locpick > label[b-ezd1z4nk75] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}

.locbox[b-ezd1z4nk75] { position: relative; }

.locbox input[type="text"][b-ezd1z4nk75] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 200px; width: 100%;
}
.locbox input[type="text"]:focus[b-ezd1z4nk75] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.locbox input[type="text"]:disabled[b-ezd1z4nk75] { background: var(--paper-soft, #f6f7fa); color: var(--ink-soft); }

/* --- voci scelte (chip) --- */
.chips[b-ezd1z4nk75] { display: flex; flex-wrap: wrap; gap: 4px; max-width: 260px; }
.chip[b-ezd1z4nk75] {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11.5px; font-weight: 600; line-height: 1.5;
    background: var(--navy-soft); color: var(--navy);
    border-radius: 999px; padding: 2px 4px 2px 9px;
}
.chip .x[b-ezd1z4nk75] {
    font: inherit; font-size: 14px; line-height: 1; cursor: pointer;
    border: 0; background: transparent; color: inherit; opacity: .65;
    padding: 0 3px; border-radius: 999px;
}
.chip .x:hover[b-ezd1z4nk75] { opacity: 1; background: rgba(0, 0, 0, .07); }

/* --- tendina dei risultati --- */
.locdrop[b-ezd1z4nk75] {
    position: absolute; z-index: 30; top: calc(100% + 4px); left: 0;
    min-width: 100%; max-width: 340px; max-height: 280px; overflow-y: auto;
    background: #fff; border: 1px solid var(--line); border-radius: 8px;
    box-shadow: var(--shadow); padding: 4px;
}
.locdrop .opt[b-ezd1z4nk75] {
    display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
    width: 100%; text-align: left; font: inherit; font-size: 13px;
    border: 0; background: transparent; cursor: pointer;
    padding: 5px 8px; border-radius: 6px; color: var(--ink);
}
.locdrop .opt:hover[b-ezd1z4nk75] { background: var(--navy-soft); }
.locdrop .opt .nome[b-ezd1z4nk75] { min-width: 0; overflow-wrap: anywhere; }
/* tipo + codice sulla destra: il tipo (Aeroporto/Porto/Terra) e' cio' che distingue
   le voci omonime, il codice quelle dello stesso tipo (SHANGHAI PVG vs SHA). */
.locdrop .opt .meta[b-ezd1z4nk75] { display: inline-flex; align-items: baseline; gap: 6px; flex: 0 0 auto; }
.locdrop .opt .tipo[b-ezd1z4nk75] {
    font-size: 10px; text-transform: uppercase; letter-spacing: .04em; font-weight: 700;
    color: var(--navy); background: var(--navy-soft);
    border-radius: 4px; padding: 1px 5px; white-space: nowrap;
}
.locdrop .opt:hover .tipo[b-ezd1z4nk75] { background: #fff; }
.locdrop .opt .code[b-ezd1z4nk75] { font-size: 11px; color: var(--ink-soft); font-weight: 700; }
.locdrop .none[b-ezd1z4nk75], .locdrop .more[b-ezd1z4nk75] {
    font-size: 12px; color: var(--ink-soft); padding: 6px 8px; font-style: italic;
}
/* /Components/Pages/Statistiche/Statistiche.razor.rz.scp.css */
/* Pagina Statistiche V1 — stessi token visivi delle pagine Cost (la CSS isolation
   è per-componente: le variabili brand si RIDICHIARANO). UX curata = requisito (§1). */
.stat[b-v7xymgf7pv] {
    --ink: #0d2230; --ink-soft: #3d5365; --line: #dce4ea; --line-soft: #eef3f6;
    --paper: #fff; --panel: #f7fafb;
    --navy: #2B357F; --navy-dk: #202A63; --navy-soft: #E8EAF5;
    --gold: #FAB931; --gold-soft: #FEF6E5;
    --amber: #b9762a; --amber-soft: #fdf6ec; --good: #1f8a5b; --good-soft: #e6f3ec;
    --bad: #b23b3b; --bad-soft: #fdeeee; --loss: #fdf4f4;
    --shadow: 0 1px 2px rgba(13,34,48,.06), 0 8px 24px rgba(13,34,48,.07);
    --mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace;

    max-width: 1360px; margin: 0 auto; padding: 4px 0 16px;
    color: var(--ink); font-size: 14px; line-height: 1.45;
}

.mono[b-v7xymgf7pv] { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.soft[b-v7xymgf7pv] { color: var(--ink-soft); }
.ta-end[b-v7xymgf7pv] { text-align: right; }

/* ---------------- testata ---------------- */
.head[b-v7xymgf7pv] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.head h1[b-v7xymgf7pv] { font-size: 21px; font-weight: 750; letter-spacing: -.2px; color: var(--navy-dk); margin: 0; }
.head-right[b-v7xymgf7pv] { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.fresh[b-v7xymgf7pv] {
    font-size: 12.5px; color: var(--ink-soft); background: var(--panel);
    border: 1px solid var(--line); border-radius: 999px; padding: 4px 11px;
    display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}

.quad[b-v7xymgf7pv] {
    font-size: 12.5px; font-weight: 700; border-radius: 999px; padding: 4px 11px;
    display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; border: 1px solid;
}
.quad.ok[b-v7xymgf7pv]   { background: var(--good-soft); color: var(--good); border-color: #cae6d8; }
.quad.warn[b-v7xymgf7pv] { background: var(--amber-soft); color: var(--amber); border-color: #f0ddc2; cursor: pointer; }
/* "Quadratura dati": tono neutro (non allarmistico), solo Admin. */
.quad.info[b-v7xymgf7pv] { background: var(--navy-soft, #E8EAF5); color: var(--navy-dk, #202A63); border-color: #d4d9ee; cursor: pointer; }
button.quad[b-v7xymgf7pv] { font: inherit; font-size: 12.5px; font-weight: 700; }

/* ---------------- pannello anomalie ---------------- */
.panel[b-v7xymgf7pv] {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    margin-bottom: 14px; overflow: hidden;
}
.panel h2[b-v7xymgf7pv] {
    display: flex; align-items: center; gap: 8px;
    font-size: 14.5px; font-weight: 750; color: var(--navy-dk);
    margin: 0; padding: 12px 14px; border-bottom: 1px solid var(--line-soft);
}
.panel .pad[b-v7xymgf7pv] { padding: 12px 14px; }
.count[b-v7xymgf7pv] {
    font-family: var(--mono); font-size: 12.5px; font-weight: 650; color: var(--navy-dk);
    background: var(--navy-soft); border-radius: 999px; padding: 2px 10px;
}
.explain[b-v7xymgf7pv] { color: var(--ink-soft); font-size: 12.5px; margin: 0 0 10px; max-width: 900px; }
.pill[b-v7xymgf7pv] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .03em;
    padding: 2px 7px; border-radius: 999px; text-transform: uppercase; white-space: nowrap;
    display: inline-block;
}
.pill.anom[b-v7xymgf7pv] { background: var(--amber-soft); color: var(--amber); }

/* ---------------- filtri ---------------- */
.filters[b-v7xymgf7pv] {
    display: flex; gap: 14px 18px; align-items: flex-end; flex-wrap: wrap;
    background: var(--paper); border: 1px solid var(--line);
    border-radius: 12px; box-shadow: var(--shadow);
    padding: 12px 14px; margin-bottom: 14px;
}
.f[b-v7xymgf7pv] { display: flex; flex-direction: column; gap: 4px; }
.f > label[b-v7xymgf7pv] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}
.f select[b-v7xymgf7pv], .f input[type="text"][b-v7xymgf7pv] {
    font: inherit; font-size: 13.5px; color: var(--ink);
    padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px;
    background: #fff; min-width: 130px;
}
.f select:focus[b-v7xymgf7pv], .f input[type="text"]:focus[b-v7xymgf7pv] { outline: 2px solid var(--navy-soft); border-color: var(--navy); }
.f .mesi[b-v7xymgf7pv] { display: flex; align-items: center; gap: 6px; }
.f .mesi select[b-v7xymgf7pv] { min-width: 62px; }
.f .mesi span[b-v7xymgf7pv] { color: var(--ink-soft); }
/* Origine/Destinazione: gruppo unico che va a capo insieme (non separati dal wrap). */
.f.rotta[b-v7xymgf7pv] { flex-direction: row; gap: 10px; align-items: flex-end; }
.f.rotta .rotta-f[b-v7xymgf7pv] { display: flex; flex-direction: column; gap: 4px; }
.f.rotta .rotta-f > label[b-v7xymgf7pv] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ink-soft); font-weight: 700; margin: 0;
}
.f .checks[b-v7xymgf7pv], .f .grana[b-v7xymgf7pv] { display: flex; gap: 4px 10px; flex-wrap: wrap; padding: 5px 0 2px; }
.chk[b-v7xymgf7pv] { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; cursor: pointer; white-space: nowrap; }
.chk input[b-v7xymgf7pv] { cursor: pointer; }

.f.actions[b-v7xymgf7pv] { flex-direction: row; gap: 8px; }
.btn-apply[b-v7xymgf7pv], .btn-reset[b-v7xymgf7pv], .btn-retry[b-v7xymgf7pv], .btn-cols[b-v7xymgf7pv] {
    font: inherit; font-size: 13px; font-weight: 650; border-radius: 8px;
    padding: 7px 16px; cursor: pointer; white-space: nowrap;
}
.btn-apply[b-v7xymgf7pv] { background: var(--navy); color: #fff; border: 1px solid var(--navy-dk); }
.btn-apply:hover[b-v7xymgf7pv] { background: var(--navy-dk); }
.btn-apply:disabled[b-v7xymgf7pv], .btn-reset:disabled[b-v7xymgf7pv] { opacity: .55; cursor: default; }
.btn-reset[b-v7xymgf7pv] { background: #fff; color: var(--ink-soft); border: 1px solid var(--line); }
.btn-reset:hover[b-v7xymgf7pv] { background: var(--panel); }

/* ---------------- totali per valuta ---------------- */
.totali[b-v7xymgf7pv] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.tot[b-v7xymgf7pv] {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    background: var(--navy-soft); border: 1px solid #d4d9ee; border-radius: 12px;
    padding: 9px 14px;
}
.tot .cur[b-v7xymgf7pv] {
    font-weight: 800; font-size: 14px; color: var(--navy-dk);
    background: #fff; border-radius: 8px; padding: 3px 10px; border: 1px solid #d4d9ee;
}
.tot .kv[b-v7xymgf7pv] { display: inline-flex; align-items: baseline; gap: 6px; }
.tot .kv em[b-v7xymgf7pv] { font-style: normal; font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); font-weight: 700; }
.tot .kv b[b-v7xymgf7pv] { font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: 14.5px; }
.tot .kv.utile b[b-v7xymgf7pv] { color: var(--good); }
.tot .kv.utile.neg b[b-v7xymgf7pv] { color: var(--bad); }
.tot .cnt[b-v7xymgf7pv] { margin-left: auto; font-size: 12px; color: var(--ink-soft); white-space: nowrap; }

/* ---------------- barra griglia ---------------- */
.gridbar[b-v7xymgf7pv] { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.colmenu[b-v7xymgf7pv] { position: relative; }
.btn-cols[b-v7xymgf7pv] { background: #fff; color: var(--ink-soft); border: 1px solid var(--line); padding: 6px 12px; }
.btn-cols:hover[b-v7xymgf7pv] { background: var(--panel); }
.coldrop[b-v7xymgf7pv] {
    position: absolute; z-index: 30; top: calc(100% + 4px); left: 0;
    background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow);
    padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; min-width: 180px;
}
.btn-export[b-v7xymgf7pv] {
    font-size: 13px; font-weight: 650; border-radius: 8px; padding: 6px 14px;
    background: var(--good-soft); color: var(--good); border: 1px solid #cae6d8;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}
.btn-export:hover[b-v7xymgf7pv] { background: #d9ece2; }

.pager-info[b-v7xymgf7pv] { margin-left: auto; font-size: 12.5px; color: var(--ink-soft); display: flex; align-items: center; gap: 8px; }
.pager-info select[b-v7xymgf7pv] { font: inherit; font-size: 12.5px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 6px; }

/* ---------------- tabella ---------------- */
.tbl-scroll[b-v7xymgf7pv] {
    overflow-x: auto; background: var(--paper);
    border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow);
}
table[b-v7xymgf7pv] { width: 100%; border-collapse: collapse; font-size: 13px; }
thead th[b-v7xymgf7pv] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--ink-soft); font-weight: 700; text-align: left;
    padding: 10px 12px; background: var(--panel);
    border-bottom: 1px solid var(--line); white-space: nowrap;
}
thead th.ta-end[b-v7xymgf7pv] { text-align: right; }
thead th.sortable[b-v7xymgf7pv] { cursor: pointer; user-select: none; }
thead th.sortable:hover[b-v7xymgf7pv] { color: var(--navy-dk); }
tbody td[b-v7xymgf7pv] { padding: 8px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; white-space: nowrap; }
tbody tr:last-child td[b-v7xymgf7pv] { border-bottom: none; }
tbody tr:hover td[b-v7xymgf7pv] { background: #f2f6f9; }
tbody tr.loss td[b-v7xymgf7pv] { background: var(--loss); }         /* riga in perdita: rosso tenue (§5) */
tbody tr.loss:hover td[b-v7xymgf7pv] { background: #fbecec; }

.pill.grain[b-v7xymgf7pv] { background: var(--navy-soft); color: var(--navy-dk); min-width: 20px; text-align: center; }
.pill.grain.spedizione[b-v7xymgf7pv] { background: var(--good-soft); color: var(--good); }
.pill.grain.testata[b-v7xymgf7pv] { background: var(--gold-soft); color: var(--amber); }
.fitt[b-v7xymgf7pv] { color: var(--amber); margin-left: 4px; }

/* ---------------- paginazione ---------------- */
.pager[b-v7xymgf7pv] { display: flex; align-items: center; gap: 6px; justify-content: center; padding: 12px 0 4px; }
.pager button[b-v7xymgf7pv] {
    font: inherit; font-size: 13px; background: #fff; color: var(--ink);
    border: 1px solid var(--line); border-radius: 8px; padding: 4px 12px; cursor: pointer;
}
.pager button:hover:not(:disabled)[b-v7xymgf7pv] { background: var(--panel); }
.pager button:disabled[b-v7xymgf7pv] { opacity: .4; cursor: default; }
.pager span[b-v7xymgf7pv] { font-size: 12.5px; color: var(--ink-soft); padding: 0 6px; }

/* ---------------- stati pagina (§1: disegnati, niente spinner infiniti) ---------------- */
.loading[b-v7xymgf7pv] { padding: 40px 0; color: var(--ink-soft); display: flex; align-items: center; gap: 12px; justify-content: center; }
.errbox[b-v7xymgf7pv] {
    background: var(--bad-soft); color: var(--bad); border: 1px solid #f2c9c9;
    border-radius: 10px; padding: 12px 14px; margin-top: 12px; font-size: 13px;
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.btn-retry[b-v7xymgf7pv] { background: #fff; color: var(--bad); border: 1px solid #f2c9c9; }
.warnbox[b-v7xymgf7pv] {
    background: var(--amber-soft); color: var(--amber); border: 1px solid #f0ddc2;
    border-radius: 10px; padding: 12px 14px; margin-top: 12px; font-size: 13px;
}
.empty[b-v7xymgf7pv] {
    text-align: center; color: var(--ink-soft); padding: 48px 0 40px;
    background: var(--paper); border: 1px dashed var(--line); border-radius: 12px;
}
.empty .bi[b-v7xymgf7pv] { font-size: 30px; display: block; margin-bottom: 8px; color: #b9c6d0; }
.empty div[b-v7xymgf7pv] { font-weight: 650; color: var(--ink); }
.empty small[b-v7xymgf7pv] { font-size: 12.5px; }
