/* _content/GestioneCommessa.Shared/Components/AbbonamentoDato.razor.rz.scp.css */
.abd[b-ubqluboqf5] {
    border: 1px solid #DDE5EF;
    border-radius: 10px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}

.abd--tenue[b-ubqluboqf5] {
    border: 0;
    background: #F5F7FA;
    border-radius: 8px;
    padding: 12px 14px;
    gap: 2px;
}

.abd-eti[b-ubqluboqf5] {
    font-size: 13px;
    color: #60748F;
}

.abd--tenue .abd-eti[b-ubqluboqf5] { font-size: 12px; }

.abd-valore[b-ubqluboqf5] {
    font-size: 17px;
    font-weight: 600;
    color: #001B48;
    overflow-wrap: anywhere;
}

.abd-nota[b-ubqluboqf5] {
    font-size: 13px;
    color: #60748F;
}
/* _content/GestioneCommessa.Shared/Components/AbbonamentoSezione.razor.rz.scp.css */
/* Sezione della TAB Abbonamento: stessi colori della barra TAB di Profilo azienda (wn-*). */

.abs[b-6orj2bjswy] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 24px;
    /* l'indice «In questa pagina» porta qui: la barra TAB è fissa in alto e non deve coprire il titolo */
    scroll-margin-top: 90px;
}

.abs-head[b-6orj2bjswy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 16px;
    padding: 20px 28px;
    border-bottom: 1px solid #DDE5EF;
}

.abs-head-testi[b-6orj2bjswy] { min-width: 0; }

.abs-titolo[b-6orj2bjswy] {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #001B48;
}

.abs-sub[b-6orj2bjswy] {
    margin: 2px 0 0;
    font-size: 14px;
    color: #60748F;
}

.abs-azioni[b-6orj2bjswy] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.abs-corpo[b-6orj2bjswy] {
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.abs-corpo--righe[b-6orj2bjswy] {
    padding-top: 8px;
    padding-bottom: 8px;
    gap: 0;
}

@media (max-width: 720px) {
    .abs-head[b-6orj2bjswy] { padding: 16px; }
    .abs-corpo[b-6orj2bjswy] { padding: 16px; }
    .abs-corpo--righe[b-6orj2bjswy] { padding-top: 4px; padding-bottom: 4px; }
}
/* _content/GestioneCommessa.Shared/Components/AttoPubblicoUploadModal.razor.rz.scp.css */
/* Modale "Carica atto" (appalti pubblici, 2026-09-09): ampia ma non full screen, scroll SOLO nel
   corpo, stepper e footer sempre visibili. Token del design system (navy, bordi #DDE5EF, radius 12). */

.ap-modal[b-rwc840neca] {
    width: 88vw;
    max-width: 1240px;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    padding: 0;
}

.ap-header[b-rwc840neca] { padding: 14px 24px; flex-shrink: 0; }
.ap-header__txt[b-rwc840neca] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ap-title[b-rwc840neca] { font-size: 1.02rem; font-weight: 700; color: #1E334C; }
.ap-subtitle[b-rwc840neca] { font-size: .8rem; color: #5B7A9A; }

/* ── Stepper orizzontale ────────────────────────────────────────────────── */
.ap-steps[b-rwc840neca] {
    list-style: none;
    margin: 0;
    padding: 12px 24px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    border-bottom: 1px solid #EDF2F7;
    background: #FBFCFE;
    flex-shrink: 0;
}

.ap-step[b-rwc840neca] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 10px;
    border-radius: 8px;
    color: #8FA3B8;
    cursor: default;
    min-width: 0;
}

.ap-step.is-done[b-rwc840neca] { color: #1E334C; cursor: pointer; }
.ap-step.is-done:hover[b-rwc840neca] { background: #EDF3FB; }
.ap-step.is-active[b-rwc840neca] { color: #001B48; }

.ap-step__dot[b-rwc840neca] {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid #DDE5EF;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    font-weight: 700;
    background: #fff;
}

.ap-step.is-active .ap-step__dot[b-rwc840neca] { border-color: #001B48; background: #001B48; color: #fff; box-shadow: 0 0 0 3px rgba(0, 27, 72, .12); }
.ap-step.is-done .ap-step__dot[b-rwc840neca] { border-color: #23824F; background: #E8F6EE; color: #23824F; }
.ap-step__lbl[b-rwc840neca] { font-size: .84rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Corpo (unico scroll) e footer ──────────────────────────────────────── */
.ap-body[b-rwc840neca] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 24px; }

.ap-footer[b-rwc840neca] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    border-top: 1px solid #EDF2F7;
    background: #fff;
    flex-shrink: 0;
}

.ap-footer__spacer[b-rwc840neca] { margin-left: auto; }

/* ── Step 1: dropzone ───────────────────────────────────────────────────── */
.ap-drop[b-rwc840neca] {
    border: 2px dashed #B9C9DA;
    border-radius: 12px;
    background: #F7FAFD;
    padding: 40px 24px;
    text-align: center;
    transition: border-color .15s, background .15s;
}

.ap-drop.hover[b-rwc840neca], .ap-drop.dragover[b-rwc840neca], .ap-drop.is-dragover[b-rwc840neca] { border-color: #001B48; background: #EDF3FB; }
.ap-drop.has-file[b-rwc840neca] { border-style: solid; border-color: #23824F; background: #F4FBF6; }
.ap-drop__ico[b-rwc840neca] { font-size: 2.4rem; color: #5B7A9A; }
.ap-drop__title[b-rwc840neca] { font-size: 1.05rem; font-weight: 700; color: #1E334C; margin-top: 8px; }
.ap-drop__sub[b-rwc840neca] { font-size: .84rem; color: #5B7A9A; margin-top: 4px; max-width: 520px; margin-left: auto; margin-right: auto; }
.ap-drop__input[b-rwc840neca] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }

.ap-oppure[b-rwc840neca] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0 14px;
    color: #8FA3B8;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.ap-oppure[b-rwc840neca]::before, .ap-oppure[b-rwc840neca]::after { content: ""; flex: 1; height: 1px; background: #EDF2F7; }

/* ── Layout a due colonne (step 2 e 3) ─────────────────────────────────── */
.ap-cols[b-rwc840neca] { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; align-items: start; }
.ap-cols--half[b-rwc840neca] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.ap-preview[b-rwc840neca] {
    position: sticky;
    top: 0;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    background: #F5F8FC;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 420px;
}

.ap-preview__obj[b-rwc840neca] { width: 100%; height: 62vh; min-height: 420px; border: 0; }
.ap-preview__open[b-rwc840neca] { display: block; padding: 8px 12px; font-size: .8rem; text-align: right; color: #2F6FDD; text-decoration: none; border-top: 1px solid #DDE5EF; background: #fff; }
.ap-preview__empty[b-rwc840neca] { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #8FA3B8; font-size: .86rem; }
.ap-preview__empty i[b-rwc840neca] { font-size: 2.6rem; opacity: .4; }

.ap-form[b-rwc840neca] { min-width: 0; }
.ap-form__head[b-rwc840neca] { margin-bottom: 14px; }
.ap-form__title[b-rwc840neca] { font-size: .95rem; font-weight: 700; color: #1E334C; }
.ap-form__sub[b-rwc840neca] { font-size: .8rem; color: #5B7A9A; margin-top: 2px; }

.ap-sec[b-rwc840neca] { padding: 14px 0; border-top: 1px solid #EDF2F7; }
.ap-sec__title[b-rwc840neca] { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #718096; margin-bottom: 10px; }
.ap-static[b-rwc840neca] { font-size: .9rem; font-weight: 600; color: #1E334C; }

/* Stato analisi AI */
.ap-ai-stato[b-rwc840neca] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 6px; }
.ap-ai-stato__ok[b-rwc840neca] { font-size: .82rem; font-weight: 600; color: #23824F; }
.ap-ai-stato__campi[b-rwc840neca] { display: flex; flex-wrap: wrap; gap: 6px; }
.ap-chip[b-rwc840neca] { font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 10px; }
.ap-chip.is-ok[b-rwc840neca] { background: #E8F6EE; color: #23824F; }
.ap-chip.is-miss[b-rwc840neca] { background: #F4F5F7; color: #8696a7; }

/* Fornitore */
.ap-forn[b-rwc840neca] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-radius: 10px; border: 1px solid #DDE5EF; }
.ap-forn.is-ok[b-rwc840neca] { background: #F4FBF6; border-color: #CFE9D8; }
.ap-forn.is-warn[b-rwc840neca] { background: #FBF7EC; border-color: #EFE1BF; }
.ap-forn__nome[b-rwc840neca] { font-weight: 700; color: #1E334C; }
.ap-forn__sub[b-rwc840neca] { font-size: .8rem; color: #4A5B70; }
.ap-forn.is-ok .ap-forn__sub[b-rwc840neca] { color: #23824F; }

.ap-cands[b-rwc840neca] { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.ap-cand[b-rwc840neca] { display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 8px 12px; border: 1px solid #DDE5EF; border-radius: 8px; background: #fff; cursor: pointer; }
.ap-cand:hover[b-rwc840neca] { border-color: #001B48; background: #EDF3FB; }
.ap-cand__nome[b-rwc840neca] { font-weight: 600; color: #1E334C; }
.ap-cand__sub[b-rwc840neca] { font-size: .74rem; color: #8FA3B8; }

/* Righe riconosciute */
.ap-righe[b-rwc840neca] { display: flex; flex-direction: column; gap: 4px; max-height: 200px; overflow-y: auto; }
.ap-riga[b-rwc840neca] { display: flex; justify-content: space-between; gap: 12px; font-size: .82rem; color: #1E334C; padding: 4px 0; border-bottom: 1px dashed #EDF2F7; }
.ap-riga__imp[b-rwc840neca] { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }

/* Tipologia: scelta visuale compatta */
.ap-tipi[b-rwc840neca] { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-tipo[b-rwc840neca] { padding: 8px 14px; border: 1px solid #DDE5EF; border-radius: 8px; background: #fff; color: #1E334C; font-size: .84rem; font-weight: 500; cursor: pointer; }
.ap-tipo:hover[b-rwc840neca] { background: #EDF3FB; }
.ap-tipo.is-on[b-rwc840neca] { border-color: #001B48; background: #001B48; color: #fff; font-weight: 600; }

/* Albero WBS */
.ap-tree[b-rwc840neca] { border: 1px solid #DDE5EF; border-radius: 10px; max-height: 46vh; overflow-y: auto; padding: 6px 0; }
.ap-node[b-rwc840neca] { display: flex; align-items: center; gap: 10px; padding: 6px 12px; margin: 0; cursor: pointer; font-size: .86rem; color: #1E334C; }
.ap-node:hover[b-rwc840neca] { background: #F7FAFD; }
.ap-node input[b-rwc840neca] { margin: 0; }
.ap-node__code[b-rwc840neca] { font-variant-numeric: tabular-nums; color: #5B7A9A; min-width: 34px; }
.ap-node__name.is-parent[b-rwc840neca] { font-weight: 700; }

/* Riepilogo (step 4) */
.ap-riep[b-rwc840neca] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 6px 12px; margin: 0; font-size: .88rem; }
.ap-riep dt[b-rwc840neca] { color: #4A5B70; font-weight: 400; }
.ap-riep dd[b-rwc840neca] { margin: 0; color: #1E334C; font-weight: 600; overflow-wrap: anywhere; }
.ap-riep__list[b-rwc840neca] { margin: 0; padding-left: 16px; font-weight: 500; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 992px) {
    .ap-modal[b-rwc840neca] { width: 96vw; }
    .ap-cols[b-rwc840neca], .ap-cols--half[b-rwc840neca] { grid-template-columns: minmax(0, 1fr); }
    .ap-preview[b-rwc840neca] { position: static; min-height: 260px; }
    .ap-preview__obj[b-rwc840neca] { height: 40vh; min-height: 260px; }
    .ap-steps[b-rwc840neca] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .ap-body[b-rwc840neca], .ap-header[b-rwc840neca], .ap-footer[b-rwc840neca], .ap-steps[b-rwc840neca] { padding-left: 16px; padding-right: 16px; }
    .ap-steps[b-rwc840neca] { grid-template-columns: minmax(0, 1fr); }
    .ap-step__lbl[b-rwc840neca] { white-space: normal; }
}
/* _content/GestioneCommessa.Shared/Components/BarraAvanzamento.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════════════
   Barra di stato delle elaborazioni lunghe. Aspetto preso dal pannello dell'estrazione
   CME della commessa (era `cme-progress-*` in _IndexCME.razor.css, ora vive solo qui:
   una sola barra in tutta l'app, non due copie che divergono).
   ══════════════════════════════════════════════════════════════════════════════ */

.bav[b-h7ang7xn0z] {
    padding: 2.5rem 1.5rem;
    text-align: center;
    max-width: 520px;
    margin: 0 auto;
}

.bav__head[b-h7ang7xn0z] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}

.bav__icon[b-h7ang7xn0z] {
    font-size: 1.4rem;
    color: #001B48;
    animation: bav-pulse-b-h7ang7xn0z 2s ease-in-out infinite;
}

@keyframes bav-pulse-b-h7ang7xn0z {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.6; transform: scale(0.92); }
}

.bav__title[b-h7ang7xn0z] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
}

.bav__fase[b-h7ang7xn0z] {
    font-size: 0.8125rem;
    color: #5B7A9A;
    margin-bottom: 0.75rem;
    min-height: 1.2em;
    transition: color 0.3s;
}

.bav__track[b-h7ang7xn0z] {
    width: 100%;
    height: 10px;
    background: #e2e8f0;
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: 0.45rem;
}

.bav__bar[b-h7ang7xn0z] {
    height: 100%;
    border-radius: 99px;
    background: linear-gradient(90deg, #001B48, #2c6a9e);
    transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.bav__shimmer[b-h7ang7xn0z] {
    position: absolute;
    top: 0; left: -60%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.45) 50%, transparent 100%);
    animation: bav-shimmer-b-h7ang7xn0z 1.6s ease-in-out infinite;
}

@keyframes bav-shimmer-b-h7ang7xn0z {
    0%   { left: -60%; }
    100% { left: 110%; }
}

.bav__pct[b-h7ang7xn0z] {
    font-size: 0.72rem;
    font-weight: 700;
    color: #8696a7;
    letter-spacing: 0.04em;
    margin-bottom: 0.9rem;
}

/* Secondary: colori dai token globali del button system */
.bav__cancel[b-h7ang7xn0z] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.35rem 0.9rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--btn-ink, #001B48);
    background: #fff;
    border: 1px solid var(--btn-border, #C7D2E2);
    border-radius: var(--btn-radius, 10px);
    cursor: pointer;
    margin-bottom: 1.25rem;
    transition: color 0.12s, border-color 0.12s, background 0.12s;
}

.bav__cancel:hover[b-h7ang7xn0z] {
    color: var(--btn-ink, #001B48);
    border-color: var(--btn-ink, #001B48);
    background: #F3F7FC;
}

.bav__log[b-h7ang7xn0z] {
    margin: 1rem auto 0;
    max-width: 560px;
    background: #0f172a;
    border-radius: 8px;
    padding: 0.6rem 0.9rem;
    font-family: 'Consolas', 'Menlo', monospace;
    font-size: 0.72rem;
    line-height: 1.55;
    text-align: left;
    max-height: 200px;
    overflow-y: auto;
}

.bav__log-row[b-h7ang7xn0z] { display: flex; gap: 0.6rem; color: #94a3b8; }
.bav__log-row--err[b-h7ang7xn0z] { color: #f87171; }
.bav__log-ts[b-h7ang7xn0z] { color: #475569; flex-shrink: 0; user-select: none; }
/* _content/GestioneCommessa.Shared/Components/CampoProfilo.razor.rz.scp.css */
.cpr[b-dydhihbpew] { min-width: 0; }
.cpr--intero[b-dydhihbpew] { grid-column: 1 / -1; }

.cpr-blocco[b-dydhihbpew] { display: flex; flex-direction: column; gap: 6px; margin: 0; width: 100%; }

.cpr-eti[b-dydhihbpew] { font-size: 13px; color: #60748F; margin-bottom: 4px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cpr-blocco .cpr-eti[b-dydhihbpew] { margin-bottom: 0; color: #1E293B; font-weight: 500; }
.cpr-obbl[b-dydhihbpew] { color: #B42318; }

.cpr-mod[b-dydhihbpew] {
    font-size: 11px;
    font-weight: 600;
    color: #1F47B8;
    background: #E8EEFC;
    border-radius: 999px;
    padding: 1px 8px;
}

.cpr-valore[b-dydhihbpew] { font-size: 15px; color: #001B48; font-weight: 500; overflow-wrap: anywhere; white-space: pre-line; }
.cpr-valore--mono[b-dydhihbpew] { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 14px; letter-spacing: .02em; }
.cpr-valore--vuoto[b-dydhihbpew] { color: #8FA0B5; font-weight: 400; }

.cpr-aggiungi[b-dydhihbpew] {
    display: inline-flex;
    align-items: center;
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    color: #1F47B8;
    background: none;
    border: 0;
    padding: 0;
    min-height: 28px;
    cursor: pointer;
}
.cpr-aggiungi:hover:not(:disabled)[b-dydhihbpew] { text-decoration: underline; }
.cpr-aggiungi:disabled[b-dydhihbpew] { color: #9AA8BC; cursor: not-allowed; }

.cpr-nota[b-dydhihbpew] { font-size: 12px; color: #60748F; margin-top: 4px; line-height: 1.4; }
/* _content/GestioneCommessa.Shared/Components/CaricaDocumentoPersonaleModal.razor.rz.scp.css */
/* Etichette dei campi del modal (stesse della scheda del lavoratore, Staff/Form.razor.css). */
.sf-form-label[b-okily93egj] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #5B7A9A;
    margin-bottom: 0.3rem;
    display: block;
}

/* Scelta del modo: un documento PDF o un elenco di lavoratori in Excel (2026-10-06). */
.cdp-modi[b-okily93egj] {
    display: flex;
    gap: 10px;
    padding: 14px 16px 0;
    flex-wrap: wrap;
}
.cdp-modo[b-okily93egj] {
    flex: 1 1 220px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1.5px solid #DCE6F0;
    border-radius: 12px;
    background: #fff;
    text-align: left;
    color: #1E334C;
    transition: border-color .12s, background .12s;
}
.cdp-modo i[b-okily93egj] { font-size: 1.4rem; color: #5B7A9A; }
.cdp-modo span[b-okily93egj] { display: flex; flex-direction: column; line-height: 1.25; }
.cdp-modo small[b-okily93egj] { font-size: .76rem; color: #5B7A9A; }
.cdp-modo:hover:not(:disabled)[b-okily93egj] { border-color: #9DB4CC; }
.cdp-modo.is-on[b-okily93egj] { border-color: #001B48; background: #F2F6FB; }
.cdp-modo.is-on i[b-okily93egj] { color: #001B48; }
/* _content/GestioneCommessa.Shared/Components/ChecklistSubappaltatore.razor.rz.scp.css */
/* Checklist documenti di sicurezza del subappaltatore (2026-09-24). Token di spaziatura da
   economia.css (:root); colori di stato allineati ai badge dell'app. */

.csub[b-r0daat8rc1] {
    border: 1px solid #E3E8EF;
    border-radius: 12px;
    background: #fff;
    padding: var(--eco-pad, 24px);
    margin-bottom: var(--eco-block, 24px);
}

.csub__head[b-r0daat8rc1] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.csub__titolo[b-r0daat8rc1] { font-weight: 600; color: #1E334C; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.csub__conta[b-r0daat8rc1]  { font-weight: 500; font-size: 12px; color: #6c757d; background: #f1f3f5; border-radius: 999px; padding: 3px 10px; }

.csub__riepilogo[b-r0daat8rc1] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }

.csub-pill[b-r0daat8rc1] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12px; font-weight: 600;
    border-radius: 999px; padding: 3px 10px;
}
.csub-pill--ok[b-r0daat8rc1]       { background: #e8f5ee; color: #1b6e43; }
.csub-pill--mancante[b-r0daat8rc1] { background: #fff4e0; color: #8a5a00; }
.csub-pill--scaduto[b-r0daat8rc1]  { background: #fdecec; color: #a4262c; }
.csub-pill--scadenza[b-r0daat8rc1] { background: #fff8db; color: #7a6200; }

.csub__gruppo-titolo[b-r0daat8rc1] {
    font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: #6c757d; margin: 16px 0 6px;
}

.csub__voci[b-r0daat8rc1] { list-style: none; margin: 0; padding: 0; }

.csub-voce[b-r0daat8rc1] { border-top: 1px solid #f1f3f5; padding: 4px 0; }
.csub-voce__riga[b-r0daat8rc1] {
    display: flex; align-items: center; gap: 10px;
    padding: 4px 4px; min-height: 42px;
}
.csub-voce__ico[b-r0daat8rc1]   { font-size: 16px; flex-shrink: 0; }
.csub-voce__nome[b-r0daat8rc1]  { flex: 1; min-width: 0; }
.csub-voce__stato[b-r0daat8rc1] { font-size: 12px; color: #6c757d; white-space: nowrap; }
.csub-voce__act[b-r0daat8rc1]   { flex-shrink: 0; }

.csub-voce--ok        .csub-voce__ico[b-r0daat8rc1] { color: #1b8a52; }
.csub-voce--scadenza  .csub-voce__ico[b-r0daat8rc1] { color: #b58900; }
.csub-voce--scaduto   .csub-voce__ico[b-r0daat8rc1] { color: #c4314b; }
.csub-voce--mancante  .csub-voce__ico[b-r0daat8rc1] { color: #d98c00; }
.csub-voce--nondovuto[b-r0daat8rc1] { opacity: .6; }
.csub-voce--nondovuto .csub-voce__nome[b-r0daat8rc1] { text-decoration: line-through; }

.csub__lav[b-r0daat8rc1] { border-top: 1px solid #f1f3f5; padding: 6px 0; }
.csub__lav > summary[b-r0daat8rc1] {
    cursor: pointer; display: flex; align-items: center; gap: 8px;
    font-weight: 500; padding: 6px 4px; list-style: none;
}
.csub__lav > summary[b-r0daat8rc1]::-webkit-details-marker { display: none; }
.csub__lav .csub__voci[b-r0daat8rc1] { padding-left: 24px; }

.csub__nota[b-r0daat8rc1] { font-size: 13px; color: #6c757d; margin: 8px 0 0; }

.csub__azioni[b-r0daat8rc1] { margin-bottom: 4px; }
.csub__gruppo-titolo--avviso[b-r0daat8rc1] { color: #8a5a00; }

/* ── Albero dei documenti sotto la voce (2026-09-25) ───────────────────────────
   La riga del file la disegna il contenitore (CSS suo); qui solo il ramo. */
.csub-docs[b-r0daat8rc1] {
    list-style: none; margin: 0 0 6px 11px; padding: 0 0 0 20px;
    border-left: 2px solid #E3E8EF;
}
.csub-docs--sciolti[b-r0daat8rc1] { margin-left: 0; padding-left: 0; border-left: 0; }
.csub-docs--precedenti[b-r0daat8rc1] { margin: 4px 0 0 6px; }
.csub-doc[b-r0daat8rc1] { position: relative; padding: 2px 0; }
.csub-docs:not(.csub-docs--sciolti) > .csub-doc[b-r0daat8rc1]::before {
    content: ""; position: absolute; left: -20px; top: 21px; width: 14px;
    border-top: 2px solid #E3E8EF;
}
.csub-doc--versioni > details > summary[b-r0daat8rc1] {
    cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 6px;
    font-size: 12px; color: #6c757d; padding: 6px 4px; min-height: 32px;
}
.csub-doc--versioni > details > summary[b-r0daat8rc1]::-webkit-details-marker { display: none; }
.csub-versioni__freccia[b-r0daat8rc1] { transition: transform .15s ease; font-size: 11px; }
.csub-doc--versioni > details[open] > summary .csub-versioni__freccia[b-r0daat8rc1] { transform: rotate(90deg); }

@media (max-width: 576px) {
    .csub[b-r0daat8rc1] { padding: 16px; }
    .csub-voce__riga[b-r0daat8rc1] { flex-wrap: wrap; }
    .csub-docs[b-r0daat8rc1] { margin-left: 4px; padding-left: 12px; }
    .csub-docs:not(.csub-docs--sciolti) > .csub-doc[b-r0daat8rc1]::before { left: -12px; width: 8px; }
    .csub-voce__stato[b-r0daat8rc1] { width: 100%; padding-left: 26px; white-space: normal; }
}
/* _content/GestioneCommessa.Shared/Components/DocumentiFornitore.razor.rz.scp.css */
/* Barra delle operazioni massive sull'archivio del fornitore (2026-09-24). */
.doc-massive[b-rmm8x9bajg] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 8px;
}
/* _content/GestioneCommessa.Shared/Components/DocumentiFornitoreAlbero.razor.rz.scp.css */
/* Albero preventivo → revisioni → ordine → varianti (2026-09-24). */
.dfa-nome[b-jnaa3zrw3w] { display: flex; align-items: flex-start; gap: 8px; }
.dfa-nome .min-w-0[b-jnaa3zrw3w] { display: flex; flex-direction: column; min-width: 0; }
.dfa-toggle[b-jnaa3zrw3w] {
    width: 18px;
    flex: 0 0 18px;
    padding: 0;
    border: none;
    background: none;
    color: #5b6b7f;
    line-height: 1.4;
}
.dfa-rev td[b-jnaa3zrw3w] { background: #fbfcfe; font-size: 13px; }
.dfa-liv-1 td[b-jnaa3zrw3w], .dfa-liv-2 td[b-jnaa3zrw3w] { background: #f7faf8; }
.dfa-superato .eco-primary[b-jnaa3zrw3w] { color: #5b6b7f; }
.dfa-pannello td[b-jnaa3zrw3w] { background: #f7f9fc; padding: 16px; }
.dfa-pannello__titolo[b-jnaa3zrw3w] { font-weight: 600; font-size: 13px; margin-bottom: 10px; color: #1e334c; }
.dfa-pannello__griglia[b-jnaa3zrw3w] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
}
.dfa-pannello__griglia .form-label[b-jnaa3zrw3w] { font-size: 12px; margin-bottom: 2px; color: #5b6b7f; }
.dfa-pannello__file[b-jnaa3zrw3w], .dfa-pannello__nota[b-jnaa3zrw3w] { grid-column: span 2; }
@media (max-width: 575px) {
    .dfa-pannello__file[b-jnaa3zrw3w], .dfa-pannello__nota[b-jnaa3zrw3w] { grid-column: auto; }
}
/* _content/GestioneCommessa.Shared/Components/DocumentiTabella.razor.rz.scp.css */
/* Tabella documenti standard — larghezze delle colonne fisse, così le tre
   sotto-sezioni (Comunicazioni, CME, Progettuali) restano allineate fra loro. */

.dt-table[b-bqb3azioy7] { table-layout: auto; }

.dt-col-rev[b-bqb3azioy7]   { width: 7rem;  white-space: nowrap; }
.dt-col-data[b-bqb3azioy7]  { width: 7.5rem; white-space: nowrap; }
.dt-col-stato[b-bqb3azioy7] { width: 9rem; }
.dt-col-act[b-bqb3azioy7]   { width: 12rem; white-space: nowrap; }

@media (max-width: 768px) {
    .dt-col-stato[b-bqb3azioy7] { width: auto; }
    .dt-col-act[b-bqb3azioy7]   { width: auto; }
}
/* _content/GestioneCommessa.Shared/Components/DocumentoFornitoreModal.razor.rz.scp.css */
/* Modale documento fornitore (affidamento / variante / documento) — blocco C, 2026-09-04 */
.dfm-modal[b-tgzgbx2eax] { width: 92vw; max-width: 860px; max-height: 92vh; display: flex; flex-direction: column; padding: 0; }
.dfm-body[b-tgzgbx2eax] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 20px 24px; }
.dfm-footer[b-tgzgbx2eax] { display: flex; align-items: center; gap: 12px; padding: 12px 24px; border-top: 1px solid #EDF2F7; }
.dfm-static[b-tgzgbx2eax] { font-size: .9rem; font-weight: 600; color: #1E334C; padding: 6px 0; }

.dfm-padre[b-tgzgbx2eax] {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px; margin-bottom: 14px;
    border: 1px solid #DDE5EF; border-radius: 10px; background: #F5F8FC;
    font-size: .84rem; color: #1E334C;
}
.dfm-padre i[b-tgzgbx2eax] { color: #001B48; }

.dfm-wbs[b-tgzgbx2eax] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 12px; max-height: 200px; overflow-y: auto; border: 1px solid #DDE5EF; border-radius: 10px; padding: 8px 12px; }
.dfm-wbs__item[b-tgzgbx2eax] { display: flex; align-items: center; gap: 8px; font-size: .84rem; color: #1E334C; margin: 0; cursor: pointer; }
.dfm-wbs__item input[b-tgzgbx2eax] { margin: 0; }
.dfm-wbs__code[b-tgzgbx2eax] { color: #5B7A9A; font-variant-numeric: tabular-nums; min-width: 34px; }
/* _content/GestioneCommessa.Shared/Components/DocumentoLegale.razor.rz.scp.css */
.doc-legale[b-c26taps4eo] { color: #1E334C; line-height: 1.55; font-size: .95rem; }
.doc-legale-titolo[b-c26taps4eo] { color: #1E93D6; font-size: 1.6rem; font-weight: 700; margin-bottom: .25rem; }
.doc-legale-sottotitolo[b-c26taps4eo] { color: #666; margin-bottom: 1.25rem; }
.doc-legale-h1[b-c26taps4eo] { font-size: 1.1rem; font-weight: 700; margin: 1.5rem 0 .5rem; color: #1E334C; }
.doc-legale-h2[b-c26taps4eo] { font-size: 1rem; font-weight: 700; margin: 1rem 0 .4rem; color: #1E93D6; }
.doc-legale p[b-c26taps4eo] { margin-bottom: .6rem; text-align: justify; }
.doc-legale-elenco[b-c26taps4eo] { padding-left: 1.25rem; margin-bottom: .75rem; }
.doc-legale-elenco li[b-c26taps4eo] { margin-bottom: .35rem; }
.doc-legale-tabella[b-c26taps4eo] { font-size: .85rem; }
.doc-legale-tabella thead th[b-c26taps4eo] { background: #D9E2F3; font-weight: 600; }
.doc-legale-nota[b-c26taps4eo] { color: #666; font-style: italic; font-size: .85rem; }
.doc-legale-versione[b-c26taps4eo] { color: #999; font-size: .75rem; margin-top: 1.5rem; }
/* _content/GestioneCommessa.Shared/Components/DocumentoRiga.razor.rz.scp.css */
/* Riga documento standard — riga di <DocumentiTabella> (eco-table), stessi
   token del design system (economia.css). Storico apribile nella riga sotto. */

.dr--open > td[b-kmbnmnq9x1] { border-bottom-color: transparent; }

.dr__main[b-kmbnmnq9x1] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.dr__ico[b-kmbnmnq9x1] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: #EDF3FB;
    color: #4A6FA5;
    font-size: .9rem;
}

.dr--compatta .dr__ico[b-kmbnmnq9x1] { width: 26px; height: 26px; font-size: .8rem; }

.dr__txt[b-kmbnmnq9x1] { min-width: 0; flex: 1; }

.dr__nome[b-kmbnmnq9x1] {
    font-size: .875rem;
    font-weight: 600;
    color: #1E334C;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 52ch;
}

.dr__sub[b-kmbnmnq9x1] {
    margin-top: 2px;
    font-size: .76rem;
    color: #8696a7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 52ch;
}

.dr__muted[b-kmbnmnq9x1] { color: #B9C9DA; }

.dr__rev-cell[b-kmbnmnq9x1] { white-space: nowrap; }

.dr__rev[b-kmbnmnq9x1] {
    font-weight: 700;
    color: #3D5872;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dr__rev--old[b-kmbnmnq9x1] { color: #8696a7; }

/* "corrente": pastiglia neutra di brand, mai un colore di stato */
.dr__corrente[b-kmbnmnq9x1] {
    margin-left: 6px;
    background: #EDF3FB;
    color: #001B48;
    border: 1px solid #D3E1F2;
}

.dr__data[b-kmbnmnq9x1] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    color: #3D5872;
}

/* Azioni di riga: a destra, mai a capo; gap 4px + il margin-left 4px di .eco-act + .eco-act = 8px */
.dr__act[b-kmbnmnq9x1] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    white-space: nowrap;
}

/* ── Storico ─────────────────────────────────────────────────────────────── */

.dr__storico-tog[b-kmbnmnq9x1] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    padding: 0;
    border: none;
    background: transparent;
    color: #5B7A9A;
    font-size: .74rem;
    font-weight: 500;
    cursor: pointer;
    transition: color .12s;
}

.dr__storico-tog:hover[b-kmbnmnq9x1] { color: #001B48; }
.dr__storico-chev[b-kmbnmnq9x1] { font-size: .68rem; }

.dr__storico-row > td[b-kmbnmnq9x1] {
    padding-top: 0 !important;
    background: #FBFCFE;
}

.dr__storico[b-kmbnmnq9x1] {
    list-style: none;
    margin: 0;
    padding: 2px 0 8px 42px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dr__ver[b-kmbnmnq9x1] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 10px;
    border-radius: 7px;
    background: #fff;
    border: 1px solid #EDF2F7;
    font-size: .78rem;
    color: #5B7A9A;
}

.dr__ver-data[b-kmbnmnq9x1] { font-variant-numeric: tabular-nums; white-space: nowrap; }

.dr__ver-nota[b-kmbnmnq9x1] {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #8696a7;
}

.dr__ver-autore[b-kmbnmnq9x1] {
    color: #8696a7;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 20ch;
}

.dr__ver-act[b-kmbnmnq9x1] { margin-left: auto; display: flex; gap: 4px; flex-shrink: 0; }

/* ── Mobile: la tabella scorre nel table-responsive; qui solo il nome a capo ── */

@media (max-width: 768px) {
    .dr__nome[b-kmbnmnq9x1], .dr__sub[b-kmbnmnq9x1] { white-space: normal; max-width: none; }
    .dr__storico[b-kmbnmnq9x1] { padding-left: 0; }
    .dr__ver[b-kmbnmnq9x1] { flex-wrap: wrap; gap: 6px 10px; }
    .dr__ver-nota[b-kmbnmnq9x1] { flex-basis: 100%; white-space: normal; }
}
/* _content/GestioneCommessa.Shared/Components/ElencoLavoratoriImport.razor.rz.scp.css */
/* «Elenco lavoratori (Excel)» dentro «Carica documento con AI». */
.el-wrap[b-qvtoeqfsic] { display: flex; flex-direction: column; gap: 12px; }

.el-intro[b-qvtoeqfsic] {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 14px 16px;
    border: 1px solid #DCE6F0;
    border-radius: 12px;
    background: #F6F9FC;
}
.el-intro__ico[b-qvtoeqfsic] { font-size: 1.8rem; color: #1E7A46; line-height: 1; }
.el-intro__t[b-qvtoeqfsic] { font-weight: 700; color: #1E334C; margin-bottom: 4px; }
.el-intro__s[b-qvtoeqfsic] { font-size: .85rem; color: #5B7A9A; }

.sf-form-label[b-qvtoeqfsic] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #5B7A9A;
    margin-bottom: 0.3rem;
    display: block;
}

.el-bar[b-qvtoeqfsic] { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }

.el-tab[b-qvtoeqfsic] { border: 1px solid #DCE6F0; border-radius: 10px; }
.el-tab th[b-qvtoeqfsic] {
    font-size: .74rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: .02em;
    padding: 10px 12px;
    background: #F6F9FC;
    white-space: nowrap;
}
.el-tab td[b-qvtoeqfsic] { padding: 8px 12px; font-size: .85rem; }
.el-tab .form-control-sm[b-qvtoeqfsic], .el-tab .form-select-sm[b-qvtoeqfsic] { min-width: 150px; }
.el-col-chk[b-qvtoeqfsic] { width: 36px; }
.el-mono[b-qvtoeqfsic] { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .8rem; }
.el-sub[b-qvtoeqfsic] { font-size: .76rem; color: #5B7A9A; }
.el-off td[b-qvtoeqfsic] { opacity: .55; }
.el-off td:first-child[b-qvtoeqfsic] { opacity: 1; }

.el-st[b-qvtoeqfsic] {
    display: inline-flex;
    align-items: center;
    font-size: .76rem;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 999px;
    background: #EEF2F6;
    color: #33475B;
    white-space: nowrap;
}
.el-st--new[b-qvtoeqfsic]  { background: #E6F0FB; color: #0B4A8B; }
.el-st--ok[b-qvtoeqfsic]   { background: #E3F4EA; color: #1E7A46; }
.el-st--warn[b-qvtoeqfsic] { background: #FFF4DB; color: #7A5A00; }
.el-st--err[b-qvtoeqfsic]  { background: #FDE8E8; color: #A61B1B; }

.el-azioni[b-qvtoeqfsic] { display: flex; justify-content: flex-end; }
/* _content/GestioneCommessa.Shared/Components/EsportazioneDatiCard.razor.rz.scp.css */
/* Esportazione dei dati (disegno di Vanessa, 2026-10-05) */

.esp-intro[b-eb6h52xv22] { margin: 0; max-width: 880px; }
.esp-intro--tenue[b-eb6h52xv22] { font-size: 14px; color: #3A4358; }

.esp-dati[b-eb6h52xv22] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }

.esp-btn[b-eb6h52xv22] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-weight: 600;
    font-size: 14px;
}

@media (max-width: 820px) {
    .esp-dati[b-eb6h52xv22] { grid-template-columns: minmax(0, 1fr); }
}
/* _content/GestioneCommessa.Shared/Components/FascicoloSicurezzaVista.razor.rz.scp.css */
/* Fascicolo del varco QR — per soggetto (impresa + subappaltatori). Componente UNICO usato
   dalla pagina pubblica (SicurezzaAccedi) e dall'anteprima nella tab Accessi QR della commessa:
   solo Bootstrap + questi stili, nessun token dell'app loggata (la pagina pubblica non li carica). */

.fsp-riepilogo[b-zffhbdiuth] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 20px;
    font-size: 13px;
    color: #6c757d;
    margin-bottom: 16px;
}
.fsp-riepilogo i[b-zffhbdiuth] { margin-right: 6px; }

.fsp-sezione[b-zffhbdiuth] { overflow: hidden; }
.fsp-sezione--impresa[b-zffhbdiuth] { border-left: 4px solid #001B48 !important; }

.fsp-head[b-zffhbdiuth] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    background: #fff;
    border: 0;
    text-align: left;
    cursor: pointer;
}
.fsp-head:hover[b-zffhbdiuth] { background: #f8f9fa; }
.fsp-head:focus-visible[b-zffhbdiuth] { outline: 2px solid #001B48; outline-offset: -2px; }

.fsp-head-ico[b-zffhbdiuth] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: #eef2f8;
    color: #001B48;
    font-size: 18px;
    flex-shrink: 0;
}
.fsp-head-testo[b-zffhbdiuth] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fsp-head-titolo[b-zffhbdiuth] { font-weight: 600; font-size: 15px; color: #1a1a2e; line-height: 1.25; }
.fsp-head-sub[b-zffhbdiuth]    { font-size: 12px; color: #6c757d; line-height: 1.3; }
.fsp-head-count[b-zffhbdiuth] {
    font-size: 12px;
    color: #6c757d;
    white-space: nowrap;
    background: #f1f3f5;
    border-radius: 999px;
    padding: 4px 10px;
    flex-shrink: 0;
}
.fsp-head-chev[b-zffhbdiuth] { color: #adb5bd; flex-shrink: 0; }

.fsp-gruppo[b-zffhbdiuth] { border-top: 1px solid #f1f3f5; }
.fsp-gruppo-titolo[b-zffhbdiuth] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #6c757d;
}
.fsp-gruppo-n[b-zffhbdiuth] { margin-left: auto; font-weight: 600; }

.fsp-vuoto[b-zffhbdiuth] {
    padding: 14px 20px 18px;
    font-size: 13px;
    color: #6c757d;
    border-top: 1px solid #f1f3f5;
}

.fsp-doc-nome[b-zffhbdiuth] { font-weight: 500; overflow-wrap: anywhere; }

@media (max-width: 576px) {
    .fsp-head[b-zffhbdiuth] { padding: 14px 14px; gap: 10px; }
    .fsp-head-ico[b-zffhbdiuth] { width: 34px; height: 34px; font-size: 16px; }
    .fsp-head-count[b-zffhbdiuth] { font-size: 11px; padding: 3px 8px; }
    .fsp-gruppo-titolo[b-zffhbdiuth], .fsp-vuoto[b-zffhbdiuth] { padding-left: 14px; padding-right: 14px; }
}

/* Scadenza di DURC e visura sul varco (2026-09-24): il documento più recente si mostra anche se
   scaduto, e allora la data è in rosso con il bollino SCADUTO. */
.fsp-scaduto[b-zffhbdiuth] { color: #b42318; font-weight: 600; }
.fsp-scaduto-badge[b-zffhbdiuth] { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px;
                     background: #b42318; color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .04em; }
/* _content/GestioneCommessa.Shared/Components/FotoStrip.razor.rz.scp.css */
.foto-strip[b-v10p6or7eh] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: flex-start;
}

.foto-thumb[b-v10p6or7eh] {
    position: relative;
    width: 84px;
    height: 84px;
    border-radius: 8px;
    overflow: hidden;
    background: #f1f3f5;
    border: 1px solid #e3e6ea;
    flex: 0 0 auto;
}

.foto-strip--sm .foto-thumb[b-v10p6or7eh] {
    width: 44px;
    height: 44px;
    border-radius: 6px;
}

.foto-thumb img[b-v10p6or7eh] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    cursor: pointer;
    display: block;
    transition: transform .15s ease;
}

.foto-thumb img:hover[b-v10p6or7eh] {
    transform: scale(1.05);
}

.foto-thumb-ph[b-v10p6or7eh] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #adb5bd;
    font-size: 1.1rem;
    cursor: pointer;
}

.foto-thumb-actions[b-v10p6or7eh] {
    position: absolute;
    top: 3px;
    right: 3px;
    display: flex;
    gap: 3px;
    opacity: 0;
    transition: opacity .15s ease;
}

.foto-thumb:hover .foto-thumb-actions[b-v10p6or7eh] {
    opacity: 1;
}

.foto-thumb-btn[b-v10p6or7eh] {
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 5px;
    background: rgba(30, 51, 76, .82);
    color: #fff;
    font-size: .7rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}

.foto-thumb-btn:hover[b-v10p6or7eh] {
    background: rgba(30, 51, 76, 1);
}

.foto-thumb-btn--danger[b-v10p6or7eh] {
    background: rgba(192, 57, 43, .85);
}

.foto-thumb-btn--danger:hover[b-v10p6or7eh] {
    background: rgba(192, 57, 43, 1);
}

/* ── Modal slideshow ───────────────────────────────────────────── */
.foto-modal-overlay[b-v10p6or7eh] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    background: rgba(15, 23, 35, .9);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.foto-modal-body[b-v10p6or7eh] {
    max-width: 92vw;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.foto-modal-img[b-v10p6or7eh] {
    max-width: 92vw;
    max-height: 80vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, .5);
}

.foto-modal-caption[b-v10p6or7eh] {
    display: flex;
    align-items: center;
    gap: 14px;
    color: #e9ecef;
    font-size: .85rem;
    max-width: 92vw;
}

.foto-modal-counter[b-v10p6or7eh] {
    color: #adb5bd;
    white-space: nowrap;
}

.foto-modal-close[b-v10p6or7eh] {
    position: fixed;
    top: 18px;
    right: 22px;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.foto-modal-close:hover[b-v10p6or7eh] {
    background: rgba(255, 255, 255, .25);
}

.foto-modal-nav[b-v10p6or7eh] {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    width: 46px;
    height: 46px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.3rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.foto-modal-nav:hover[b-v10p6or7eh] {
    background: rgba(255, 255, 255, .25);
}

.foto-modal-prev[b-v10p6or7eh] {
    left: 22px;
}

.foto-modal-next[b-v10p6or7eh] {
    right: 22px;
}
/* _content/GestioneCommessa.Shared/Components/GaraCommessaModal.razor.rz.scp.css */
/* Crea la commessa dal lotto vinto — blocco E, 2026-09-17 */
.gcm-modal[b-4pz8808l36] { width: 92vw; max-width: 720px; max-height: 92vh; display: flex; flex-direction: column; padding: 0; }
.gcm-body[b-4pz8808l36] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 18px 24px; }
.gcm-footer[b-4pz8808l36] { display: flex; align-items: center; gap: 10px; padding: 12px 24px; border-top: 1px solid #EDF2F7; }

.gcm-riepilogo[b-4pz8808l36] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px 18px;
    border: 1px solid #DDE5EF; border-radius: 10px; background: #F8FAFD;
    padding: 12px 16px; margin-bottom: 14px;
}
.gcm-riepilogo > div[b-4pz8808l36] { display: flex; flex-direction: column; min-width: 0; }
.gcm-riepilogo span[b-4pz8808l36] { font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: #5B7A9A; }
.gcm-riepilogo strong[b-4pz8808l36] { font-size: .9rem; color: #1E334C; overflow: hidden; text-overflow: ellipsis; }

.gcm-scelte[b-4pz8808l36] { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.gcm-scelte .form-check[b-4pz8808l36] { display: flex; align-items: flex-start; gap: 8px; margin: 0; }
.gcm-scelte .form-check-input[b-4pz8808l36] { margin-top: .2rem; flex-shrink: 0; }
.gcm-scelte .form-check-label[b-4pz8808l36] { font-size: .88rem; color: #1E334C; }

.gcm-tot[b-4pz8808l36] {
    font-size: .85rem; color: #1E334C; background: #EDF3FB; border: 1px solid #C9D8EA;
    border-radius: 10px; padding: 8px 14px;
}
/* _content/GestioneCommessa.Shared/Components/GaraUploadModal.razor.rz.scp.css */
/* Modale "Carica gara" (2026-09-15): stesso impianto della modale atti (det-modal globale + stepper),
   corpo a scroll unico, stepper e footer fissi. Token del design system (navy #001B48, bordi #DDE5EF). */
.gu-modal[b-qonzt1xi7f] { width: 90vw; max-width: 1280px; max-height: 92vh; display: flex; flex-direction: column; padding: 0; }
.gu-header[b-qonzt1xi7f] { padding: 14px 24px; flex-shrink: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.gu-header__txt[b-qonzt1xi7f] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gu-title[b-qonzt1xi7f] { font-size: 1.02rem; font-weight: 700; color: #1E334C; }
.gu-subtitle[b-qonzt1xi7f] { font-size: .8rem; color: #5B7A9A; }

.gu-steps[b-qonzt1xi7f] { list-style: none; margin: 0; padding: 12px 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; border-bottom: 1px solid #EDF2F7; background: #FBFCFE; flex-shrink: 0; }
.gu-step[b-qonzt1xi7f] { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 8px; color: #8FA3B8; cursor: default; min-width: 0; }
.gu-step.is-done[b-qonzt1xi7f] { color: #1E334C; cursor: pointer; }
.gu-step.is-done:hover[b-qonzt1xi7f] { background: #EDF3FB; }
.gu-step.is-active[b-qonzt1xi7f] { color: #001B48; }
.gu-step__dot[b-qonzt1xi7f] { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; border: 2px solid #DDE5EF; display: inline-flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 700; background: #fff; }
.gu-step.is-active .gu-step__dot[b-qonzt1xi7f] { border-color: #001B48; background: #001B48; color: #fff; box-shadow: 0 0 0 3px rgba(0,27,72,.12); }
.gu-step.is-done .gu-step__dot[b-qonzt1xi7f] { border-color: #23824F; background: #E8F6EE; color: #23824F; }
.gu-step__lbl[b-qonzt1xi7f] { font-size: .84rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.gu-body[b-qonzt1xi7f] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 24px; }
.gu-footer[b-qonzt1xi7f] { display: flex; align-items: center; gap: 12px; padding: 12px 24px; border-top: 1px solid #EDF2F7; background: #fff; flex-shrink: 0; }
.gu-footer__spacer[b-qonzt1xi7f] { margin-left: auto; }

/* Step 1 */
.gu-drop[b-qonzt1xi7f] { border: 2px dashed #C9D6E5; border-radius: 12px; padding: 32px 24px; text-align: center; background: #F8FAFD; transition: border-color .15s, background .15s; }
.gu-drop.hover[b-qonzt1xi7f], .gu-drop:hover[b-qonzt1xi7f] { border-color: #001B48; background: #EEF3FA; }
.gu-drop__ico[b-qonzt1xi7f] { font-size: 2.2rem; color: #6B86A3; }
.gu-drop__title[b-qonzt1xi7f] { font-weight: 700; color: #1E334C; margin-top: 6px; }
.gu-drop__sub[b-qonzt1xi7f] { font-size: .84rem; color: #5B7A9A; max-width: 64ch; margin: 6px auto 0; }
.gu-drop__input[b-qonzt1xi7f] { display: none; }
.gu-selezione[b-qonzt1xi7f] { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-size: .86rem; color: #1E334C; }
.gu-selezione__nomi[b-qonzt1xi7f] { color: #5B7A9A; }
.gu-progress[b-qonzt1xi7f] { margin-top: 20px; }
.gu-progress .progress[b-qonzt1xi7f] { height: 10px; }
.gu-log[b-qonzt1xi7f] { margin-top: 12px; padding: 12px 14px; background: #F3F6FA; border: 1px solid #DCE6F3; border-radius: 10px; font-size: .82rem; color: #2F4A66; max-height: 220px; overflow-y: auto; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.gu-log div + div[b-qonzt1xi7f] { margin-top: 2px; }
.gu-altro[b-qonzt1xi7f] { margin-top: 20px; font-size: .84rem; color: #5B7A9A; }

/* Step 2: inventario */
.gu-inv-riep[b-qonzt1xi7f] { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 14px; font-size: .86rem; color: #1E334C; }
.gu-table[b-qonzt1xi7f] { font-size: .84rem; }
.gu-table th[b-qonzt1xi7f] { font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap; }
.gu-table td[b-qonzt1xi7f] { vertical-align: middle; }
.gu-file-nome[b-qonzt1xi7f] { max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gu-file-percorso[b-qonzt1xi7f] { display: block; font-size: .74rem; color: #8FA3B8; max-width: 360px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gu-riga--escluso td[b-qonzt1xi7f] { color: #98A7B8; }
.gu-riga--escluso .gu-file-nome[b-qonzt1xi7f] { text-decoration: line-through; }
.gu-sel[b-qonzt1xi7f] { min-width: 200px; }
.gu-sel--sez[b-qonzt1xi7f] { min-width: 150px; }
.gu-peso[b-qonzt1xi7f] { font-size: .72rem; }

/* Step 3: dati */
.gu-card[b-qonzt1xi7f] { border: 1px solid #DDE5EF; border-radius: 10px; padding: 16px 18px; margin-bottom: 16px; background: #fff; }
.gu-card__title[b-qonzt1xi7f] { font-weight: 700; color: #1E334C; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.gu-grid[b-qonzt1xi7f] { display: grid; gap: 12px 16px; }
.gu-grid--3[b-qonzt1xi7f] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gu-grid--4[b-qonzt1xi7f] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gu-span-2[b-qonzt1xi7f] { grid-column: span 2; }
.gu-span-3[b-qonzt1xi7f] { grid-column: span 3; }
@media (max-width: 900px) { .gu-grid--3[b-qonzt1xi7f], .gu-grid--4[b-qonzt1xi7f] { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gu-span-3[b-qonzt1xi7f] { grid-column: span 2; } }
@media (max-width: 560px) { .gu-grid--3[b-qonzt1xi7f], .gu-grid--4[b-qonzt1xi7f] { grid-template-columns: minmax(0, 1fr); } .gu-span-2[b-qonzt1xi7f], .gu-span-3[b-qonzt1xi7f] { grid-column: span 1; } .gu-steps[b-qonzt1xi7f] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gu-lbl[b-qonzt1xi7f] { font-size: .78rem; color: #5B7A9A; display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
/* Esito del collegamento con l'anagrafica sotto il campo Stazione appaltante. */
.gu-ente-stato[b-qonzt1xi7f] { font-size: .72rem; margin-top: 4px; display: flex; align-items: center; gap: 4px; }
.gu-ai[b-qonzt1xi7f] { display: inline-flex; align-items: center; font-size: .66rem; font-weight: 700; letter-spacing: .04em; padding: 1px 6px; border-radius: 10px; background: #E8EEF9; color: #2B4F8C; }
.gu-inco[b-qonzt1xi7f] { border-left: 3px solid #B0322A; }
.gu-inco-val[b-qonzt1xi7f] { display: block; font-size: .82rem; }
.gu-inco-fonte[b-qonzt1xi7f] { color: #8FA3B8; font-size: .74rem; }
.gu-lista[b-qonzt1xi7f] { margin: 0; padding-left: 18px; font-size: .84rem; }
.gu-lista li + li[b-qonzt1xi7f] { margin-top: 3px; }
details.gu-det > summary[b-qonzt1xi7f] { cursor: pointer; font-weight: 600; color: #1E334C; font-size: .9rem; }
details.gu-det[b-qonzt1xi7f] { border: 1px solid #DDE5EF; border-radius: 10px; padding: 10px 14px; margin-bottom: 10px; background: #fff; }
details.gu-det[open] > summary[b-qonzt1xi7f] { margin-bottom: 8px; }

/* Step 4 */
.gu-sa[b-qonzt1xi7f] { display: grid; gap: 8px; }
.gu-sa__opzione[b-qonzt1xi7f] { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #DDE5EF; border-radius: 8px; cursor: pointer; }
.gu-sa__opzione.is-on[b-qonzt1xi7f] { border-color: #001B48; background: #EEF3FA; }
.gu-riep[b-qonzt1xi7f] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.gu-riep__box[b-qonzt1xi7f] { border: 1px solid #DDE5EF; border-radius: 10px; padding: 10px 12px; }
.gu-riep__n[b-qonzt1xi7f] { font-size: 1.3rem; font-weight: 700; color: #1E334C; }
.gu-riep__l[b-qonzt1xi7f] { font-size: .78rem; color: #5B7A9A; }

/* Scelta manuale del cliente fra quelli in anagrafica — 2026-09-17 */
.gu-sa__scegli[b-qonzt1xi7f] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex: 1 1 auto; min-width: 0; }
.gu-sa__scegli input[b-qonzt1xi7f] { max-width: 300px; }
/* _content/GestioneCommessa.Shared/Components/GuidaPassoPassoModal.razor.rz.scp.css */
/* Guida passo passo (2026-10-03): schermate a tutta larghezza, numero del passo nei colori di commessa.ai. */
.gpp .det-modal-body[b-kce75ushuu] {
    max-height: calc(100vh - 140px);
    overflow-y: auto;
}

.gpp-numero[b-kce75ushuu] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #1E93D6;
    color: #fff;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gpp-img[b-kce75ushuu] {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    margin-bottom: 12px;
}
/* _content/GestioneCommessa.Shared/Components/IndiciAnagraficaEditor.razor.rz.scp.css */
/* Editor indici anagrafica — blocco D gare, 2026-09-16 */
.ie-grid[b-8jo582hh7h] { display: grid; grid-template-columns: 200px minmax(0, 1fr) 220px; gap: 10px 14px; align-items: start; }
.ie-row[b-8jo582hh7h] { display: contents; }
.ie-label[b-8jo582hh7h] { font-size: .86rem; font-weight: 600; color: #1E334C; padding-top: 6px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ie-sys[b-8jo582hh7h] { color: #9AB0C8; font-size: .7rem; }
.ie-input[b-8jo582hh7h] { min-width: 0; }
.ie-num[b-8jo582hh7h] { max-width: 160px; }
.ie-note[b-8jo582hh7h] { min-width: 0; }
.ie-err[b-8jo582hh7h] { color: #C0392B; font-size: .78rem; margin-top: 4px; }
.ie-badge[b-8jo582hh7h] { font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: #8A6D1A; background: #FFF4D6; border: 1px solid #F1DFA8; border-radius: 999px; padding: 1px 7px; }
.ie-chips[b-8jo582hh7h] { display: flex; flex-wrap: wrap; gap: 6px; min-height: 28px; align-items: center; }
.ie-chip[b-8jo582hh7h] { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px 3px 10px; border-radius: 999px; background: #EDF3FB; color: #1E334C; border: 1px solid #C9D8EA; font-size: .82rem; white-space: nowrap; }
.ie-chip__x[b-8jo582hh7h] { border: 0; background: transparent; color: #5B7A9A; font-size: 1rem; line-height: 1; padding: 0 2px; cursor: pointer; border-radius: 50%; }
.ie-chip__x:hover[b-8jo582hh7h] { color: #C0392B; background: #FBEBED; }
.ie-iso[b-8jo582hh7h] { display: flex; flex-direction: column; gap: 8px; }
.ie-iso__add[b-8jo582hh7h] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ie-iso__add select[b-8jo582hh7h] { flex: 1 1 220px; max-width: 340px; }
.ie-iso__add input[b-8jo582hh7h] { flex: 1 1 180px; max-width: 260px; }
@media (max-width: 900px) {
    .ie-grid[b-8jo582hh7h] { grid-template-columns: 1fr; gap: 6px; }
    .ie-label[b-8jo582hh7h] { padding-top: 10px; }
    .ie-note[b-8jo582hh7h] { margin-bottom: 4px; }
}
/* _content/GestioneCommessa.Shared/Components/IndiciCatalogoCard.razor.rz.scp.css */
/* Catalogo indici anagrafica (Impostazioni) — blocco D gare, 2026-09-16 */
.ic-sys[b-t8hslltld3] {
    font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em;
    color: #4A6785; background: #EDF3FB; border: 1px solid #C9D8EA; border-radius: 999px;
    padding: 1px 7px; margin-left: 6px; white-space: nowrap;
}
.ic-spento[b-t8hslltld3] { opacity: .6; }
/* _content/GestioneCommessa.Shared/Components/IndiciImportModal.razor.rz.scp.css */
/* Modale import indici anagrafica — blocco D gare, 2026-09-16 */
.iim-modal[b-0mz740pj7n] { width: 92vw; max-width: 900px; max-height: 92vh; display: flex; flex-direction: column; padding: 0; }
.iim-steps[b-0mz740pj7n] { display: flex; gap: 6px; padding: 10px 24px 0; flex-wrap: wrap; }
.iim-step[b-0mz740pj7n] { font-size: .8rem; font-weight: 600; color: #8AA0B8; padding: 4px 10px; border-radius: 999px; border: 1px solid #DDE5EF; }
.iim-step.is-on[b-0mz740pj7n] { color: #001B48; background: #EDF3FB; border-color: #C9D8EA; }
.iim-step.is-done[b-0mz740pj7n] { color: #1E7A46; background: #E8F6EE; border-color: #BFE3CF; }
.iim-body[b-0mz740pj7n] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px 24px 20px; }
.iim-footer[b-0mz740pj7n] { display: flex; align-items: center; gap: 12px; padding: 12px 24px; border-top: 1px solid #EDF2F7; }
.iim-table td[b-0mz740pj7n], .iim-table th[b-0mz740pj7n] { padding: 6px 8px; font-size: .86rem; }
.iim-esempio[b-0mz740pj7n] { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iim-tipo[b-0mz740pj7n] { max-width: 150px; }
.iim-kpis[b-0mz740pj7n] { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 14px; }
.iim-kpi[b-0mz740pj7n] { border: 1px solid #DDE5EF; border-radius: 10px; padding: 10px 12px; background: #F8FAFD; }
.iim-kpi__v[b-0mz740pj7n] { font-size: 1.3rem; font-weight: 700; color: #1E334C; line-height: 1.1; }
.iim-kpi__l[b-0mz740pj7n] { font-size: .74rem; color: #5B7A9A; }
.iim-kpi.is-ok .iim-kpi__v[b-0mz740pj7n] { color: #1E7A46; }
.iim-kpi.is-warn .iim-kpi__v[b-0mz740pj7n] { color: #B7791F; }
.iim-lista[b-0mz740pj7n] { max-height: 180px; overflow-y: auto; padding-left: 18px; }
/* _content/GestioneCommessa.Shared/Components/InterscambioCard.razor.rz.scp.css */
/* Servizio di interscambio (disegno di Vanessa, 2026-10-05): passi in colonna con pallino e linea. */

.isc-stato[b-sl3e4ukf2k] {
    font-size: 13px;
    font-weight: 600;
    color: #1F47B8;
    background: #E8EEFC;
    border-radius: 999px;
    padding: 6px 12px;
}
.isc-stato--ok[b-sl3e4ukf2k] { color: #14532D; background: #E6F4EA; }

.isc-intro[b-sl3e4ukf2k] { margin: 0; max-width: 880px; }

.isc-passi[b-sl3e4ukf2k] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.isc-passo[b-sl3e4ukf2k] { display: flex; gap: 16px; }
.isc-col[b-sl3e4ukf2k] { display: flex; flex-direction: column; align-items: center; flex: none; }
.isc-linea[b-sl3e4ukf2k] { width: 2px; flex: 1; background: #DDE5EF; margin: 6px 0; }
.isc-corpo[b-sl3e4ukf2k] { flex: 1; min-width: 0; padding-bottom: 24px; }
.isc-passo:last-child .isc-corpo[b-sl3e4ukf2k] { padding-bottom: 0; }

.isc-num[b-sl3e4ukf2k] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    box-sizing: border-box;
}
.isc-num--fatto[b-sl3e4ukf2k]    { background: #1F7A4D; color: #fff; }
.isc-num--corrente[b-sl3e4ukf2k] { background: #001B48; color: #fff; }
.isc-num--futuro[b-sl3e4ukf2k]   { background: #fff; border: 2px solid #C7CEDB; color: #60748F; }

.isc-titolo-riga[b-sl3e4ukf2k] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    align-items: baseline;
    min-height: 32px;
    padding-top: 4px;
}
.isc-titolo[b-sl3e4ukf2k] { margin: 0; font-size: 16px; font-weight: 600; color: #001B48; }
.isc-quando[b-sl3e4ukf2k] { font-size: 13px; color: #60748F; }

.isc-fatto[b-sl3e4ukf2k] { margin: 4px 0 0; font-size: 14px; color: #1F7A4D; font-weight: 500; }
.isc-link[b-sl3e4ukf2k] {
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    background: none;
    border: 0;
    padding: 0;
    color: #1F47B8;
    text-decoration: underline;
    cursor: pointer;
}
.isc-link:disabled[b-sl3e4ukf2k] { opacity: .6; cursor: default; }

.isc-testo[b-sl3e4ukf2k] { margin: 6px 0 0; font-size: 14px; color: #3A4358; }

.isc-pannello[b-sl3e4ukf2k] {
    margin-top: 12px;
    border: 1px solid #DDE5EF;
    border-radius: 10px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: #fff;
}
.isc-pannello--attivo[b-sl3e4ukf2k] { border-color: #C9D6F7; background: #FBFCFF; }

.isc-istruzioni[b-sl3e4ukf2k] { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 12px; }
.isc-percorso[b-sl3e4ukf2k] { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; vertical-align: middle; }
.isc-chip[b-sl3e4ukf2k] { font-size: 13px; font-weight: 600; background: #EEF1F7; border-radius: 6px; padding: 2px 8px; }

.isc-provider[b-sl3e4ukf2k] {
    margin-top: 8px;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    align-items: center;
    border: 1px dashed #B7C4E6;
    border-radius: 8px;
    padding: 10px 14px;
    background: #fff;
}
.isc-provider-eti[b-sl3e4ukf2k] { display: block; font-size: 12px; color: #60748F; }
.isc-num-tab[b-sl3e4ukf2k] { font-variant-numeric: tabular-nums; }

.isc-piede[b-sl3e4ukf2k] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid #DDE5EF;
    padding-top: 16px;
}
.isc-piede--sinistra[b-sl3e4ukf2k] { justify-content: flex-start; gap: 12px 16px; }
.isc-a-capo[b-sl3e4ukf2k] { flex-basis: 100%; }

.isc-btn[b-sl3e4ukf2k] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-weight: 600;
    font-size: 14px;
}
.isc-btn-bloccato[b-sl3e4ukf2k],
.isc-btn-bloccato:disabled[b-sl3e4ukf2k] {
    border: 1px dashed #C7CEDB;
    background: #F3F5FA;
    color: #60748F;
    opacity: 1;
    cursor: not-allowed;
}

.isc-dati[b-sl3e4ukf2k] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.isc-elenco[b-sl3e4ukf2k] { margin: 0; padding-left: 20px; font-size: 14px; display: flex; flex-direction: column; gap: 6px; }

@media (max-width: 820px) {
    .isc-dati[b-sl3e4ukf2k] { grid-template-columns: minmax(0, 1fr); }
    .isc-pannello[b-sl3e4ukf2k] { padding: 16px; }
    .isc-passo[b-sl3e4ukf2k] { gap: 12px; }
}
/* _content/GestioneCommessa.Shared/Components/LineaFasi.razor.rz.scp.css */
/* Linea di fase a pallini (2026-09-25). Colori di stato allineati ai badge dell'app; il segno dentro
   il pallino e il testo sotto portano la stessa informazione del colore (WCAG 1.4.1). */

.lf[b-66cveiwuv5] {
    --lf-verde: #1b8a52;
    --lf-giallo: #c98f00;
    --lf-rosso: #c4314b;
    --lf-grigio: #adb5bd;
    --lf-anello: #1d4f91;
    --lf-punto: 28px;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: flex-start;
}

.lf-fase[b-66cveiwuv5] {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
}

/* Tratto verso la fase successiva: verde se questa è fatta, grigio altrimenti. */
.lf-fase:not(:last-child)[b-66cveiwuv5]::after {
    content: "";
    position: absolute;
    top: calc(var(--lf-punto) / 2 - 1px);
    left: calc(50% + var(--lf-punto) / 2 + 4px);
    right: calc(-50% + var(--lf-punto) / 2 + 4px);
    border-top: 2px solid #dee2e6;
}
.lf-fase--fatto:not(:last-child)[b-66cveiwuv5]::after { border-top-color: var(--lf-verde); }
.lf-fase--nonprevista:not(:last-child)[b-66cveiwuv5]::after { border-top-style: dashed; }

.lf-punto[b-66cveiwuv5] {
    position: relative;
    z-index: 1;
    width: var(--lf-punto);
    height: var(--lf-punto);
    border-radius: 50%;
    border: 2px solid var(--lf-grigio);
    background: #fff;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    padding: 0;
    flex-shrink: 0;
}
button.lf-punto[b-66cveiwuv5] { cursor: pointer; }
button.lf-punto:focus-visible[b-66cveiwuv5] { outline: 2px solid var(--lf-anello); outline-offset: 3px; }

.lf-fase--fatto    .lf-punto[b-66cveiwuv5] { background: var(--lf-verde);  border-color: var(--lf-verde); }
.lf-fase--incorso  .lf-punto[b-66cveiwuv5] { background: var(--lf-giallo); border-color: var(--lf-giallo); }
.lf-fase--bloccato .lf-punto[b-66cveiwuv5] { background: var(--lf-rosso);  border-color: var(--lf-rosso); }
.lf-fase--dafare   .lf-punto[b-66cveiwuv5] { background: #fff; border-color: var(--lf-grigio); }
.lf-fase--nonprevista .lf-punto[b-66cveiwuv5] { background: #fff; border-style: dashed; border-color: var(--lf-grigio); color: var(--lf-grigio); }

/* Fase corrente: anello esterno, in aggiunta al colore. */
.lf-fase--corrente .lf-punto[b-66cveiwuv5] { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--lf-anello); }

.lf-testi[b-66cveiwuv5] { display: flex; flex-direction: column; gap: 1px; padding: 0 4px; min-width: 0; }
.lf-titolo[b-66cveiwuv5] { font-size: 12px; font-weight: 600; color: #1E334C; }
.lf-fase--nonprevista .lf-titolo[b-66cveiwuv5] { color: #8696a7; font-weight: 500; }
.lf-fase--corrente .lf-titolo[b-66cveiwuv5] { color: var(--lf-anello); }
.lf-data[b-66cveiwuv5] { font-size: 11px; color: #6c757d; }
.lf-nota[b-66cveiwuv5] { font-size: 11px; color: #6c757d; line-height: 1.3; overflow-wrap: anywhere; }
.lf-fase--bloccato .lf-nota[b-66cveiwuv5] { color: #a4262c; }

/* Compatta: pallini piccoli e vicini, solo tooltip. */
.lf--compatta[b-66cveiwuv5] { --lf-punto: 14px; display: inline-flex; gap: 0; }
.lf--compatta .lf-fase[b-66cveiwuv5] { flex: 0 0 auto; width: 20px; }
.lf--compatta .lf-punto[b-66cveiwuv5] { font-size: 8px; border-width: 1.5px; }
.lf--compatta .lf-fase:not(:last-child)[b-66cveiwuv5]::after { left: calc(50% + 7px); right: calc(-50% + 7px); border-top-width: 1.5px; top: 6px; }
.lf--compatta .lf-fase--corrente .lf-punto[b-66cveiwuv5] { box-shadow: 0 0 0 1.5px #fff, 0 0 0 3px var(--lf-anello); }

/* Telefono: verticale, testi accanto al pallino. */
@media (max-width: 768px) {
    .lf:not(.lf--compatta)[b-66cveiwuv5] { flex-direction: column; gap: 14px; }
    .lf:not(.lf--compatta) .lf-fase[b-66cveiwuv5] { flex-direction: row; align-items: flex-start; text-align: left; gap: 10px; }
    .lf:not(.lf--compatta) .lf-fase:not(:last-child)[b-66cveiwuv5]::after {
        top: calc(var(--lf-punto) + 2px);
        bottom: -14px;
        left: calc(var(--lf-punto) / 2 - 1px);
        right: auto;
        border-top: 0;
        border-left: 2px solid #dee2e6;
    }
    .lf:not(.lf--compatta) .lf-fase--fatto:not(:last-child)[b-66cveiwuv5]::after { border-left-color: var(--lf-verde); }
    .lf:not(.lf--compatta) .lf-fase--nonprevista:not(:last-child)[b-66cveiwuv5]::after { border-left-style: dashed; }
}
/* _content/GestioneCommessa.Shared/Components/MatriceRuoli.razor.rz.scp.css */
/* Matrice dei ruoli «chi fa cosa» (stile RACI) — configurazione guidata → Ruoli. */
.mr[b-m2r0i72yij] { display: flex; flex-direction: column; gap: 14px; }

.mr-ruoli[b-m2r0i72yij] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.mr-ruolo[b-m2r0i72yij] {
    border: 1px solid #DCE6F0;
    border-radius: 12px;
    padding: 12px 14px;
    background: #fff;
}
.mr-ruolo__head[b-m2r0i72yij] { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; }
.mr-ruolo__head i[b-m2r0i72yij] { font-size: 1.3rem; color: #001B48; }
.mr-ruolo__nome[b-m2r0i72yij] { font-weight: 700; color: #1E334C; line-height: 1.2; }
.mr-ruolo__chi[b-m2r0i72yij] { font-size: .75rem; color: #5B7A9A; }
.mr-ruolo__desc[b-m2r0i72yij] { font-size: .82rem; color: #33475B; }

.mr-tab[b-m2r0i72yij] { border: 1px solid #DCE6F0; border-radius: 12px; }
.mr-tab th[b-m2r0i72yij] {
    font-size: .74rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: .02em;
    padding: 10px 14px;
    background: #F6F9FC;
    white-space: nowrap;
}
.mr-tab td[b-m2r0i72yij] { padding: 8px 14px; font-size: .85rem; }
.mr-area td[b-m2r0i72yij] {
    background: #F2F6FB;
    font-size: .72rem;
    font-weight: 700;
    color: #001B48;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 6px 14px;
}
.mr-c[b-m2r0i72yij] { text-align: center; white-space: nowrap; width: 120px; }
.mr-att[b-m2r0i72yij] { color: #1E334C; }
.mr-nota[b-m2r0i72yij] { font-size: .75rem; color: #5B7A9A; }

.mr-l[b-m2r0i72yij] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    margin: 0 2px;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 800;
}
.mr-l--R[b-m2r0i72yij] { background: #001B48; color: #fff; }
.mr-l--A[b-m2r0i72yij] { background: #1E7A46; color: #fff; }
.mr-l--C[b-m2r0i72yij] { background: #E6F0FB; color: #0B4A8B; }
.mr-l--I[b-m2r0i72yij] { background: #FFF4DB; color: #7A5A00; }
.mr-l--N[b-m2r0i72yij] { background: transparent; color: #A9B8C8; }

.mr-legenda[b-m2r0i72yij] { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .78rem; color: #33475B; }
.mr-legenda span[b-m2r0i72yij] { display: inline-flex; align-items: center; gap: 4px; }

@media (max-width: 768px) {
    .mr-ruoli[b-m2r0i72yij] { grid-template-columns: 1fr; }
    .mr-c[b-m2r0i72yij] { width: auto; }
    .mr-tab th[b-m2r0i72yij], .mr-tab td[b-m2r0i72yij] { padding: 8px 10px; }
}
/* _content/GestioneCommessa.Shared/Components/ModificaPagamentiModal.razor.rz.scp.css */
/* Modifica dei pagamenti — classi mpg-* (tabella e badge da economia.css: eco-*) */

.mpg-intro[b-0bqp1e31zv] { font-size: .84rem; color: #5B7A9A; margin-bottom: 12px; }

.mpg-note[b-0bqp1e31zv] {
    font-size: .8rem;
    background: #EDF3FB;
    color: #1E334C;
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 12px;
}

.mpg-table tbody td[b-0bqp1e31zv] { height: auto; padding-top: 8px; padding-bottom: 8px; }
.mpg-data[b-0bqp1e31zv] { min-width: 140px; }
.mpg-modalita[b-0bqp1e31zv] { min-width: 200px; }
.mpg-importo[b-0bqp1e31zv] { min-width: 110px; font-variant-numeric: tabular-nums; }

.mpg-storico[b-0bqp1e31zv] {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #DDE5EF;
}

.mpg-versione[b-0bqp1e31zv] {
    padding: 8px 0;
    border-bottom: 1px solid #EDF2F7;
}

.mpg-versione:last-child[b-0bqp1e31zv] { border-bottom: none; }

.mpg-versione__head[b-0bqp1e31zv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 2px;
}
/* _content/GestioneCommessa.Shared/Components/OnboardingCard.razor.rz.scp.css */
.onb-card[b-40ma38dh8p] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-left: 4px solid #1565d8;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(30, 51, 76, .06);
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}

/* ── Header ── */
.onb-head[b-40ma38dh8p] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.onb-title[b-40ma38dh8p] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1E334C;
}

.onb-sub[b-40ma38dh8p] {
    font-size: .85rem;
    color: #5B7A9A;
    margin-top: 2px;
}

.onb-riduci[b-40ma38dh8p] {
    border: 1px solid #dceaf8;
    background: #f7fafd;
    color: #5B7A9A;
    border-radius: 8px;
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    cursor: pointer;
    line-height: 1;
}
.onb-riduci:hover[b-40ma38dh8p] { background: #eef4fb; color: #1E334C; }

/* ── Progress ── */
.onb-progress-row[b-40ma38dh8p] {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
}

.onb-bar[b-40ma38dh8p] {
    flex: 1 1 auto;
    height: 8px;
    background: #eef2f7;
    border-radius: 6px;
    overflow: hidden;
}
.onb-bar > span[b-40ma38dh8p] {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #1565d8, #18BFEA);
    border-radius: 6px;
    transition: width .3s ease;
}

.onb-count[b-40ma38dh8p] {
    font-size: .82rem;
    font-weight: 600;
    color: #5B7A9A;
    white-space: nowrap;
}

/* ── Items ── */
.onb-items[b-40ma38dh8p] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.onb-item[b-40ma38dh8p] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .25rem;
    border-top: 1px solid #f0f4f9;
}
.onb-item:first-child[b-40ma38dh8p] { border-top: none; }

.onb-item-ico[b-40ma38dh8p] { font-size: 1.1rem; flex: 0 0 auto; }
.onb-item-ico.is-ok[b-40ma38dh8p]     { color: #198754; }
.onb-item-ico.is-warn[b-40ma38dh8p]   { color: #d97706; }
.onb-item-ico.is-danger[b-40ma38dh8p] { color: #dc3545; }
.onb-item-ico.is-todo[b-40ma38dh8p]   { color: #9ca3af; }

.onb-item-body[b-40ma38dh8p] { flex: 1 1 auto; min-width: 0; }
.onb-item-title[b-40ma38dh8p] {
    font-size: .92rem;
    font-weight: 600;
    color: #1E334C;
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}
.onb-item-desc[b-40ma38dh8p] {
    font-size: .8rem;
    color: #5B7A9A;
    margin-top: 1px;
}
.onb-item-cta[b-40ma38dh8p] { flex: 0 0 auto; }

/* ── Badge ── */
.onb-badge[b-40ma38dh8p] {
    font-size: .68rem;
    font-weight: 600;
    padding: .1rem .5rem;
    border-radius: 20px;
    line-height: 1.4;
}
.onb-badge--need[b-40ma38dh8p] { background: #fdecea; color: #b22a38; }
.onb-badge--imp[b-40ma38dh8p]  { background: #fff4e5; color: #9a5b00; }
.onb-badge--opt[b-40ma38dh8p]  { background: #eef2f7; color: #5B7A9A; }
.onb-badge--soon[b-40ma38dh8p] { background: #eef4fb; color: #1565d8; }

/* ── Actions ── */
.onb-actions[b-40ma38dh8p] {
    display: flex;
    gap: .5rem;
    margin-top: 1rem;
}

/* ── Mini (ridotta) ── */
.onb-card--mini[b-40ma38dh8p] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem 1rem;
    border-left-width: 4px;
}
.onb-mini-ico[b-40ma38dh8p] { color: #1565d8; font-size: 1.1rem; }
.onb-mini-txt[b-40ma38dh8p] { font-size: .85rem; font-weight: 600; color: #1E334C; white-space: nowrap; }
.onb-mini-bar[b-40ma38dh8p] {
    flex: 1 1 auto;
    height: 6px;
    background: #eef2f7;
    border-radius: 6px;
    overflow: hidden;
}
.onb-mini-bar > span[b-40ma38dh8p] {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #1565d8, #18BFEA);
    border-radius: 6px;
}

@media (max-width: 640px) {
    .onb-item[b-40ma38dh8p] { flex-wrap: wrap; }
    .onb-item-cta[b-40ma38dh8p] { width: 100%; margin-top: .25rem; }
    .onb-card--mini[b-40ma38dh8p] { flex-wrap: wrap; }
    .onb-mini-txt[b-40ma38dh8p] { white-space: normal; }
}
/* _content/GestioneCommessa.Shared/Components/PacchettoSubappaltatoreModal.razor.rz.scp.css */
/* Modale "Carica pacchetto" del subappaltatore (2026-09-24). */

.psub-drop[b-0dt9wbotz5] {
    border: 2px dashed #C9D3E0;
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    background: #F7F9FC;
    transition: background .15s, border-color .15s;
}
.psub-drop.hover[b-0dt9wbotz5] { background: #EEF4FF; border-color: #3B6FD4; }
.psub-drop__ico[b-0dt9wbotz5]   { font-size: 36px; color: #3B6FD4; }
.psub-drop__title[b-0dt9wbotz5] { font-weight: 600; margin-top: 8px; color: #1E334C; }
.psub-drop__sub[b-0dt9wbotz5]   { font-size: 13px; color: #6c757d; max-width: 560px; margin: 6px auto 0; }
.psub-drop__input[b-0dt9wbotz5] { display: none; }

.psub-selezione[b-0dt9wbotz5], .psub-riepilogo[b-0dt9wbotz5] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px;
    margin-top: 16px; font-size: 13px;
}
.psub-riepilogo[b-0dt9wbotz5] { margin: 0 0 12px; }

.psub-stato[b-0dt9wbotz5] { font-weight: 600; color: #1E334C; margin-bottom: 8px; }
.psub-diario[b-0dt9wbotz5] { list-style: none; padding: 0; margin: 0; font-size: 12px; color: #6c757d; }
.psub-diario li[b-0dt9wbotz5] { padding: 2px 0; }

.psub-tabella td[b-0dt9wbotz5] { vertical-align: top; }
.psub-riga--esclusa[b-0dt9wbotz5] { opacity: .55; }
.psub-file__nome[b-0dt9wbotz5]     { font-weight: 500; overflow-wrap: anywhere; }
.psub-file__percorso[b-0dt9wbotz5] { font-size: 11px; color: #8a94a3; overflow-wrap: anywhere; }
.psub-file__nota[b-0dt9wbotz5]     { font-size: 11px; color: #8a5a00; margin-top: 2px; }
.psub-file__fonte[b-0dt9wbotz5]    { font-size: 11px; color: #8a94a3; margin-top: 2px; }

.psub-anteprima[b-0dt9wbotz5] { margin-top: 20px; }
.psub-anteprima__titolo[b-0dt9wbotz5] { font-weight: 600; color: #1E334C; margin-bottom: 8px; }

.psub-concluso[b-0dt9wbotz5] { display: flex; align-items: center; gap: 14px; padding: 12px 0; }

/* Confidenza dell'AI sul tipo (blocco 3, 2026-09-24). */
.psub-conf[b-0dt9wbotz5] { display: inline-block; margin-left: 6px; font-weight: 600; border-radius: 999px; padding: 0 7px; }
.psub-conf--ok[b-0dt9wbotz5]     { background: #e8f5ee; color: #1b6e43; }
.psub-conf--dubbio[b-0dt9wbotz5] { background: #fff4e0; color: #8a5a00; }

/* Documento che sembra di un'altra impresa: bloccante (collaudo utente 2026-09-24). */
.psub-riga--altra td[b-0dt9wbotz5] { background: #fdecec; }
.psub-riga--altra .psub-file__nota[b-0dt9wbotz5] { color: #a4262c; font-weight: 600; }
.psub-altra-banner[b-0dt9wbotz5] { font-size: 13px; }
/* _content/GestioneCommessa.Shared/Components/PreventiviFornitoreElenco.razor.rz.scp.css */
/* Anagrafica fornitore → Preventivi e offerte (blocco D, 2026-09-04): elenco a sinistra, pannello
   del preventivo selezionato a destra; sotto 1200px il pannello scende sotto l'elenco. */
.pf-wrap[b-1xsmqqk91j] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.pf-wrap:has(.pf-side)[b-1xsmqqk91j] { grid-template-columns: minmax(0, 1fr) 380px; }

.pf-head[b-1xsmqqk91j] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.pf-head__actions[b-1xsmqqk91j] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pf-sel-commessa[b-1xsmqqk91j] { min-width: 260px; }
.pf-sub[b-1xsmqqk91j] { font-size: .8rem; color: #5B7A9A; }
.pf-count[b-1xsmqqk91j] { font-size: .8rem; color: #5B7A9A; margin-top: 10px; }

.pf-table th:first-child[b-1xsmqqk91j], .pf-table td:first-child[b-1xsmqqk91j] { padding-left: 20px; }
.pf-row[b-1xsmqqk91j] { cursor: pointer; }
.pf-row.is-sel td[b-1xsmqqk91j] { background: #EDF3FB; }

.pf-link[b-1xsmqqk91j] { color: #2F6FDD; text-decoration: none; font-weight: 600; }
.pf-link:hover[b-1xsmqqk91j] { text-decoration: underline; }

/* Pannello laterale */
.pf-side[b-1xsmqqk91j] { position: sticky; top: 16px; }
.pf-side__card[b-1xsmqqk91j] { padding: 20px 24px; }
.pf-side__head[b-1xsmqqk91j] { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.pf-side__ico[b-1xsmqqk91j] { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; background: #EDF3FB; color: #001B48; display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.pf-side__title[b-1xsmqqk91j] { font-size: .95rem; font-weight: 700; color: #1E334C; }
.pf-side__tabs[b-1xsmqqk91j] { display: flex; gap: 2px; border-bottom: 1px solid #DDE5EF; margin-bottom: 14px; }
.pf-side__tab[b-1xsmqqk91j] { border: none; background: none; padding: 8px 12px; font-size: .82rem; font-weight: 500; color: #5B7A9A; border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; }
.pf-side__tab.active[b-1xsmqqk91j] { color: #001B48; font-weight: 700; border-bottom-color: #001B48; }
.pf-side__sec[b-1xsmqqk91j] { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #718096; margin: 14px 0 8px; }

.pf-preview[b-1xsmqqk91j] { width: 100%; height: 52vh; min-height: 360px; border: 1px solid #DDE5EF; border-radius: 10px; background: #F5F8FC; }
.pf-preview-empty[b-1xsmqqk91j] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 220px; color: #8FA3B8; font-size: .86rem; border: 1px dashed #DDE5EF; border-radius: 10px; }
.pf-preview-empty i[b-1xsmqqk91j] { font-size: 2.4rem; opacity: .4; }
.pf-file[b-1xsmqqk91j] { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 10px 12px; border: 1px solid #DDE5EF; border-radius: 10px; }
.pf-file i[b-1xsmqqk91j] { color: #001B48; font-size: 1.2rem; }
.pf-file__name[b-1xsmqqk91j] { font-size: .84rem; font-weight: 600; color: #1E334C; overflow-wrap: anywhere; }

.pf-dl[b-1xsmqqk91j] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 6px 12px; margin: 0; font-size: .86rem; }
.pf-dl dt[b-1xsmqqk91j] { color: #4A5B70; font-weight: 400; }
.pf-dl dd[b-1xsmqqk91j] { margin: 0; color: #1E334C; font-weight: 600; overflow-wrap: anywhere; }

.pf-riga[b-1xsmqqk91j] { display: flex; justify-content: space-between; gap: 12px; font-size: .82rem; color: #1E334C; padding: 4px 0; border-bottom: 1px dashed #EDF2F7; }
.pf-riga__imp[b-1xsmqqk91j] { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }

@media (max-width: 1200px) {
    .pf-wrap:has(.pf-side)[b-1xsmqqk91j] { grid-template-columns: minmax(0, 1fr); }
    .pf-side[b-1xsmqqk91j] { position: static; }
}
/* _content/GestioneCommessa.Shared/Components/PreventivoUploadModal.razor.rz.scp.css */
/* Modale "Carica preventivo" (blocco B, 2026-09-04): ampia ma non full screen, scroll SOLO nel
   corpo, stepper e footer sempre visibili. Token del design system (navy, bordi #DDE5EF, radius 12). */

.pv-modal[b-q0umzi1bb5] {
    width: 88vw;
    max-width: 1240px;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    padding: 0;
}

.pv-header[b-q0umzi1bb5] { padding: 14px 24px; flex-shrink: 0; }
.pv-header__txt[b-q0umzi1bb5] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pv-title[b-q0umzi1bb5] { font-size: 1.02rem; font-weight: 700; color: #1E334C; }
.pv-subtitle[b-q0umzi1bb5] { font-size: .8rem; color: #5B7A9A; }

/* ── Stepper orizzontale ────────────────────────────────────────────────── */
.pv-steps[b-q0umzi1bb5] {
    list-style: none;
    margin: 0;
    padding: 12px 24px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    border-bottom: 1px solid #EDF2F7;
    background: #FBFCFE;
    flex-shrink: 0;
}

.pv-step[b-q0umzi1bb5] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 10px;
    border-radius: 8px;
    color: #8FA3B8;
    cursor: default;
    min-width: 0;
}

.pv-step.is-done[b-q0umzi1bb5] { color: #1E334C; cursor: pointer; }
.pv-step.is-done:hover[b-q0umzi1bb5] { background: #EDF3FB; }
.pv-step.is-active[b-q0umzi1bb5] { color: #001B48; }

.pv-step__dot[b-q0umzi1bb5] {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid #DDE5EF;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    font-weight: 700;
    background: #fff;
}

.pv-step.is-active .pv-step__dot[b-q0umzi1bb5] { border-color: #001B48; background: #001B48; color: #fff; box-shadow: 0 0 0 3px rgba(0, 27, 72, .12); }
.pv-step.is-done .pv-step__dot[b-q0umzi1bb5] { border-color: #23824F; background: #E8F6EE; color: #23824F; }
.pv-step__lbl[b-q0umzi1bb5] { font-size: .84rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Corpo (unico scroll) e footer ──────────────────────────────────────── */
.pv-body[b-q0umzi1bb5] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 24px; }

.pv-footer[b-q0umzi1bb5] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    border-top: 1px solid #EDF2F7;
    background: #fff;
    flex-shrink: 0;
}

.pv-footer__spacer[b-q0umzi1bb5] { margin-left: auto; }

/* ── Step 1: dropzone ───────────────────────────────────────────────────── */
.pv-drop[b-q0umzi1bb5] {
    border: 2px dashed #B9C9DA;
    border-radius: 12px;
    background: #F7FAFD;
    padding: 40px 24px;
    text-align: center;
    transition: border-color .15s, background .15s;
}

.pv-drop.hover[b-q0umzi1bb5], .pv-drop.dragover[b-q0umzi1bb5], .pv-drop.is-dragover[b-q0umzi1bb5] { border-color: #001B48; background: #EDF3FB; }
.pv-drop.has-file[b-q0umzi1bb5] { border-style: solid; border-color: #23824F; background: #F4FBF6; }
.pv-drop__ico[b-q0umzi1bb5] { font-size: 2.4rem; color: #5B7A9A; }
.pv-drop__title[b-q0umzi1bb5] { font-size: 1.05rem; font-weight: 700; color: #1E334C; margin-top: 8px; }
.pv-drop__sub[b-q0umzi1bb5] { font-size: .84rem; color: #5B7A9A; margin-top: 4px; max-width: 520px; margin-left: auto; margin-right: auto; }
.pv-drop__input[b-q0umzi1bb5] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }

.pv-oppure[b-q0umzi1bb5] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0 14px;
    color: #8FA3B8;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.pv-oppure[b-q0umzi1bb5]::before, .pv-oppure[b-q0umzi1bb5]::after { content: ""; flex: 1; height: 1px; background: #EDF2F7; }

/* ── Layout a due colonne (step 2 e 3) ─────────────────────────────────── */
.pv-cols[b-q0umzi1bb5] { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; align-items: start; }
.pv-cols--half[b-q0umzi1bb5] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.pv-preview[b-q0umzi1bb5] {
    position: sticky;
    top: 0;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    background: #F5F8FC;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 420px;
}

.pv-preview__obj[b-q0umzi1bb5] { width: 100%; height: 62vh; min-height: 420px; border: 0; }
.pv-preview__open[b-q0umzi1bb5] { display: block; padding: 8px 12px; font-size: .8rem; text-align: right; color: #2F6FDD; text-decoration: none; border-top: 1px solid #DDE5EF; background: #fff; }
.pv-preview__empty[b-q0umzi1bb5] { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #8FA3B8; font-size: .86rem; }
.pv-preview__empty i[b-q0umzi1bb5] { font-size: 2.6rem; opacity: .4; }

.pv-form[b-q0umzi1bb5] { min-width: 0; }
.pv-form__head[b-q0umzi1bb5] { margin-bottom: 14px; }
.pv-form__title[b-q0umzi1bb5] { font-size: .95rem; font-weight: 700; color: #1E334C; }
.pv-form__sub[b-q0umzi1bb5] { font-size: .8rem; color: #5B7A9A; margin-top: 2px; }

.pv-sec[b-q0umzi1bb5] { padding: 14px 0; border-top: 1px solid #EDF2F7; }
.pv-sec__title[b-q0umzi1bb5] { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #718096; margin-bottom: 10px; }
.pv-static[b-q0umzi1bb5] { font-size: .9rem; font-weight: 600; color: #1E334C; }

/* Stato analisi AI */
.pv-ai-stato[b-q0umzi1bb5] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 6px; }
.pv-ai-stato__ok[b-q0umzi1bb5] { font-size: .82rem; font-weight: 600; color: #23824F; }
.pv-ai-stato__campi[b-q0umzi1bb5] { display: flex; flex-wrap: wrap; gap: 6px; }
.pv-chip[b-q0umzi1bb5] { font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 10px; }
.pv-chip.is-ok[b-q0umzi1bb5] { background: #E8F6EE; color: #23824F; }
.pv-chip.is-miss[b-q0umzi1bb5] { background: #F4F5F7; color: #8696a7; }

/* Fornitore */
.pv-forn[b-q0umzi1bb5] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-radius: 10px; border: 1px solid #DDE5EF; }
.pv-forn.is-ok[b-q0umzi1bb5] { background: #F4FBF6; border-color: #CFE9D8; }
.pv-forn.is-warn[b-q0umzi1bb5] { background: #FBF7EC; border-color: #EFE1BF; }
.pv-forn__nome[b-q0umzi1bb5] { font-weight: 700; color: #1E334C; }
.pv-forn__sub[b-q0umzi1bb5] { font-size: .8rem; color: #4A5B70; }
.pv-forn.is-ok .pv-forn__sub[b-q0umzi1bb5] { color: #23824F; }

.pv-cands[b-q0umzi1bb5] { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.pv-cand[b-q0umzi1bb5] { display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 8px 12px; border: 1px solid #DDE5EF; border-radius: 8px; background: #fff; cursor: pointer; }
.pv-cand:hover[b-q0umzi1bb5] { border-color: #001B48; background: #EDF3FB; }
.pv-cand__nome[b-q0umzi1bb5] { font-weight: 600; color: #1E334C; }
.pv-cand__sub[b-q0umzi1bb5] { font-size: .74rem; color: #8FA3B8; }

/* Righe riconosciute */
.pv-righe[b-q0umzi1bb5] { display: flex; flex-direction: column; gap: 4px; max-height: 200px; overflow-y: auto; }
.pv-riga[b-q0umzi1bb5] { display: flex; justify-content: space-between; gap: 12px; font-size: .82rem; color: #1E334C; padding: 4px 0; border-bottom: 1px dashed #EDF2F7; }
.pv-riga__imp[b-q0umzi1bb5] { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }

/* Tipologia: scelta visuale compatta */
.pv-tipi[b-q0umzi1bb5] { display: flex; flex-wrap: wrap; gap: 8px; }
.pv-tipo[b-q0umzi1bb5] { padding: 8px 14px; border: 1px solid #DDE5EF; border-radius: 8px; background: #fff; color: #1E334C; font-size: .84rem; font-weight: 500; cursor: pointer; }
.pv-tipo:hover[b-q0umzi1bb5] { background: #EDF3FB; }
.pv-tipo.is-on[b-q0umzi1bb5] { border-color: #001B48; background: #001B48; color: #fff; font-weight: 600; }

/* Albero WBS */
.pv-tree[b-q0umzi1bb5] { border: 1px solid #DDE5EF; border-radius: 10px; max-height: 46vh; overflow-y: auto; padding: 6px 0; }
.pv-node[b-q0umzi1bb5] { display: flex; align-items: center; gap: 10px; padding: 6px 12px; margin: 0; cursor: pointer; font-size: .86rem; color: #1E334C; }
.pv-node:hover[b-q0umzi1bb5] { background: #F7FAFD; }
.pv-node input[b-q0umzi1bb5] { margin: 0; }
.pv-node__code[b-q0umzi1bb5] { font-variant-numeric: tabular-nums; color: #5B7A9A; min-width: 34px; }
.pv-node__name.is-parent[b-q0umzi1bb5] { font-weight: 700; }

/* Riepilogo (step 4) */
.pv-riep[b-q0umzi1bb5] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 6px 12px; margin: 0; font-size: .88rem; }
.pv-riep dt[b-q0umzi1bb5] { color: #4A5B70; font-weight: 400; }
.pv-riep dd[b-q0umzi1bb5] { margin: 0; color: #1E334C; font-weight: 600; overflow-wrap: anywhere; }
.pv-riep__list[b-q0umzi1bb5] { margin: 0; padding-left: 16px; font-weight: 500; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 992px) {
    .pv-modal[b-q0umzi1bb5] { width: 96vw; }
    .pv-cols[b-q0umzi1bb5], .pv-cols--half[b-q0umzi1bb5] { grid-template-columns: minmax(0, 1fr); }
    .pv-preview[b-q0umzi1bb5] { position: static; min-height: 260px; }
    .pv-preview__obj[b-q0umzi1bb5] { height: 40vh; min-height: 260px; }
    .pv-steps[b-q0umzi1bb5] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .pv-body[b-q0umzi1bb5], .pv-header[b-q0umzi1bb5], .pv-footer[b-q0umzi1bb5], .pv-steps[b-q0umzi1bb5] { padding-left: 16px; padding-right: 16px; }
    .pv-steps[b-q0umzi1bb5] { grid-template-columns: minmax(0, 1fr); }
    .pv-step__lbl[b-q0umzi1bb5] { white-space: normal; }
}
/* _content/GestioneCommessa.Shared/Components/SdiImportaFatture.razor.rz.scp.css */
/* Import dal cassetto fiscale — stessa dropzone della modale gare, tabella e KPI eco-* */

.sif-drop[b-bkxh3zvart] { border: 2px dashed #C9D6E5; border-radius: 12px; padding: 32px 24px; text-align: center; background: #F8FAFD; transition: border-color .15s, background .15s; }
.sif-drop.hover[b-bkxh3zvart], .sif-drop:hover[b-bkxh3zvart] { border-color: #001B48; background: #EEF3FA; }
.sif-drop__ico[b-bkxh3zvart] { font-size: 2.2rem; color: #6B86A3; }
.sif-drop__title[b-bkxh3zvart] { font-weight: 700; color: #1E334C; margin-top: 6px; }
.sif-drop__sub[b-bkxh3zvart] { font-size: .84rem; color: #5B7A9A; max-width: 64ch; margin: 6px auto 0; }
.sif-drop__input[b-bkxh3zvart] { display: none; }

.sif-selezione[b-bkxh3zvart] { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; font-size: .86rem; color: #1E334C; }
.sif-selezione__nomi[b-bkxh3zvart] { color: #5B7A9A; min-width: 0; overflow-wrap: anywhere; }

.sif-stato[b-bkxh3zvart] { margin-bottom: var(--eco-block, 24px); }
.sif-stato__riga[b-bkxh3zvart] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.sif-stato__titolo[b-bkxh3zvart] { font-weight: 600; color: #1E334C; display: inline-flex; align-items: center; }
.sif-stato__barra[b-bkxh3zvart] { height: 10px; }

.sif-file[b-bkxh3zvart] { font-size: .76rem; color: #8696a7; max-width: 28ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sif-msg[b-bkxh3zvart] { font-size: .82rem; color: #4A5E73; min-width: 18ch; }

.sif-badge[b-bkxh3zvart] { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .74rem; font-weight: 600; white-space: nowrap; }
.sif-badge--ok[b-bkxh3zvart]     { background: #E8F6EE; color: #23824F; }
.sif-badge--neutro[b-bkxh3zvart] { background: #EEF2F6; color: #4A5E73; }
.sif-badge--attesa[b-bkxh3zvart] { background: #FBF0D9; color: #8A6A08; }
.sif-badge--info[b-bkxh3zvart]   { background: #E7F0FB; color: #1D5AA6; }
.sif-badge--ko[b-bkxh3zvart]     { background: #FBEBED; color: #C0392B; }

.sif-piede[b-bkxh3zvart] { display: flex; justify-content: flex-end; margin-top: 12px; }

.sif-diario[b-bkxh3zvart] { margin-top: var(--eco-block, 24px); }
.sif-diario summary[b-bkxh3zvart] { cursor: pointer; font-size: .84rem; font-weight: 600; color: #1E334C; }
.sif-diario__righe[b-bkxh3zvart] { margin-top: 10px; padding: 12px 14px; background: #1E2A38; color: #DCE6F3; border-radius: 10px; font-size: .8rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.sif-diario__righe div + div[b-bkxh3zvart] { margin-top: 2px; }
.sif-diario__ora[b-bkxh3zvart] { color: #7F95AD; margin-right: 10px; }
/* _content/GestioneCommessa.Shared/Components/SezioneProfilo.razor.rz.scp.css */
/* Sezione del Profilo azienda: intestazione grigia, Modifica a destra, piede in modifica. */

.spr[b-g4aktigizm] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 20px;
    scroll-margin-top: 90px;
}

.spr--modifica[b-g4aktigizm] { border-color: #9DB4E8; box-shadow: 0 0 0 3px #EAF0FC; }

.spr-head[b-g4aktigizm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 24px;
    background: #F8F9FC;
    border-bottom: 1px solid #DDE5EF;
}

.spr-titolo[b-g4aktigizm] { margin: 0; font-size: 16px; font-weight: 600; color: #001B48; }
.spr-sub[b-g4aktigizm] { font-size: 13px; color: #60748F; font-weight: 400; margin-left: 8px; }

.spr-azioni[b-g4aktigizm] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.spr-nota[b-g4aktigizm] { font-size: 13px; color: #60748F; display: inline-flex; align-items: center; }

.spr-btn[b-g4aktigizm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    color: #1F47B8;
    padding: 9px 14px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #C8D5F5;
    cursor: pointer;
    white-space: nowrap;
}
.spr-btn:hover:not(:disabled)[b-g4aktigizm] { background: #EEF3FF; }
.spr-btn:disabled[b-g4aktigizm] { color: #9AA8BC; border-color: #E3E7EF; cursor: not-allowed; }

.spr-badge[b-g4aktigizm] {
    font-size: 13px;
    font-weight: 600;
    color: #1F47B8;
    background: #E8EEFC;
    border-radius: 999px;
    padding: 5px 12px;
}

.spr-corpo[b-g4aktigizm] { padding: 20px 24px; display: flex; flex-direction: column; gap: 18px; }
.spr-corpo--piatto[b-g4aktigizm] { padding: 0; gap: 0; }

.spr-piede[b-g4aktigizm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 24px;
    background: #F8F9FC;
    border-top: 1px solid #DDE5EF;
    position: sticky;
    bottom: 0;
}
.spr-stato[b-g4aktigizm] { font-size: 13px; color: #60748F; }
.spr-piede-azioni[b-g4aktigizm] { display: flex; gap: 8px; }
.spr-piede-btn[b-g4aktigizm] { min-height: 42px; font-weight: 600; font-size: 14px; display: inline-flex; align-items: center; }

@media (max-width: 720px) {
    .spr-head[b-g4aktigizm], .spr-piede[b-g4aktigizm] { padding: 12px 16px; }
    .spr-corpo[b-g4aktigizm] { padding: 16px; }
    .spr-corpo--piatto[b-g4aktigizm] { padding: 0; }
}
/* _content/GestioneCommessa.Shared/Components/SoaCategoriePicker.razor.rz.scp.css */
/* Picker categorie SOA — blocco D gare, 2026-09-16 */
.soa-picker[b-bc0o3cs81i] { display: flex; flex-direction: column; gap: 8px; }
.soa-picker__chips[b-bc0o3cs81i] { display: flex; flex-wrap: wrap; gap: 6px; min-height: 28px; align-items: center; }
.soa-chip[b-bc0o3cs81i] {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 8px 3px 10px; border-radius: 999px;
    background: #EDF3FB; color: #1E334C; border: 1px solid #C9D8EA;
    font-size: .82rem; line-height: 1.2; white-space: nowrap;
}
.soa-chip strong[b-bc0o3cs81i] { color: #001B48; }
.soa-chip__x[b-bc0o3cs81i] {
    border: 0; background: transparent; color: #5B7A9A; font-size: 1rem; line-height: 1;
    padding: 0 2px; cursor: pointer; border-radius: 50%;
}
.soa-chip__x:hover[b-bc0o3cs81i] { color: #C0392B; background: #FBEBED; }
.soa-picker__add[b-bc0o3cs81i] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.soa-picker__cat[b-bc0o3cs81i] { flex: 1 1 260px; max-width: 420px; }
.soa-picker__cl[b-bc0o3cs81i] { flex: 0 1 220px; }
.soa-picker--compatto .soa-picker__cat[b-bc0o3cs81i] { flex-basis: 200px; }
.soa-picker--compatto .soa-picker__cl[b-bc0o3cs81i] { flex-basis: 170px; }
/* _content/GestioneCommessa.Shared/Components/YearFilter.razor.rz.scp.css */
.yearfilter[b-rezx34vy9p] {
    width: auto;
    min-width: 92px;
    display: inline-block;
}
/* _content/GestioneCommessa.Shared/Layout/AppHeader.razor.rz.scp.css */
/* ── Backdrop ─────────────────────────────────────────────────────────────── */
.hdr-backdrop[b-wsc6kfwaqy] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: transparent;
}

/* ── Selettore anno ───────────────────────────────────────────────────────── */
.hdr-anno-wrap[b-wsc6kfwaqy] {
    margin-right: auto;
}

.anno-panel[b-wsc6kfwaqy] {
    left: 0;
    right: auto;
    min-width: 90px;
}

.anno-list[b-wsc6kfwaqy] {
    max-height: 300px;
    overflow-y: auto;
    padding: 4px 0;
}

.anno-selezionato[b-wsc6kfwaqy] {
    font-weight: 700 !important;
    color: #1E334C !important;
    background: #f0f4f8;
}

/* ── Ricerca ──────────────────────────────────────────────────────────────── */
.hdr-search-input[b-wsc6kfwaqy] {
    width: 200px !important;
}

/* ── Pulsanti header generico ─────────────────────────────────────────────── */
.hdr-action-wrap[b-wsc6kfwaqy] {
    position: relative;
    z-index: 901;
}

.hdr-btn[b-wsc6kfwaqy] {
    position: relative;
    background: none;
    border: none;
    cursor: pointer;
    color: #495057;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.hdr-btn:hover[b-wsc6kfwaqy],
.hdr-btn.active[b-wsc6kfwaqy] {
    background: #f0f4f8;
    color: #1E334C;
}

.hdr-badge[b-wsc6kfwaqy] {
    position: absolute;
    top: 3px;
    right: 3px;
    background: #C0614F;
    color: white;
    font-size: 0.58rem;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    padding: 0 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    pointer-events: none;
}

/* ── Workspace button ─────────────────────────────────────────────────────── */
.hdr-workspace-btn[b-wsc6kfwaqy] {
    display: flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 5px 10px;
    cursor: pointer;
    color: #343a40;
    font-size: 0.875rem;
    font-weight: 500;
    transition: background 0.15s, border-color 0.15s;
    max-width: 200px;
}

.hdr-workspace-btn:hover[b-wsc6kfwaqy],
.hdr-workspace-btn.active[b-wsc6kfwaqy] {
    background: #f0f4f8;
    border-color: #b0bec5;
}

.ws-name[b-wsc6kfwaqy] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 160px;
}

.ws-chevron[b-wsc6kfwaqy] {
    flex-shrink: 0;
    opacity: 0.6;
}

/* ── Pannello notifiche ───────────────────────────────────────────────────── */
.notif-panel[b-wsc6kfwaqy] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 360px;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    overflow: hidden;
    z-index: 901;
}

.notif-panel-hdr[b-wsc6kfwaqy] {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #f0f0f0;
    background: #fafafa;
}

.notif-empty[b-wsc6kfwaqy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
    color: #868e96;
    font-size: 0.875rem;
    gap: 6px;
}

.notif-list[b-wsc6kfwaqy] {
    max-height: 420px;
    overflow-y: auto;
}

.notif-item[b-wsc6kfwaqy] {
    display: flex;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid #f5f5f5;
    transition: background 0.1s;
    align-items: flex-start;
}

.notif-item:last-child[b-wsc6kfwaqy] {
    border-bottom: none;
}

.notif-item:hover[b-wsc6kfwaqy] {
    background: #f8fafb;
}

.notif-item.letta[b-wsc6kfwaqy] {
    opacity: 0.6;
}

.notif-dot[b-wsc6kfwaqy] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-top: 5px;
    flex-shrink: 0;
}

.notif-item:not(.letta) .notif-dot[b-wsc6kfwaqy] {
    background: #1E334C;
}
.notif-item.letta .notif-dot[b-wsc6kfwaqy] {
    background: #ced4da;
}

.notif-item.prio-alta:not(.letta) .notif-dot[b-wsc6kfwaqy] {
    background: #C0614F;
}
.notif-item.prio-media:not(.letta) .notif-dot[b-wsc6kfwaqy] {
    background: #e6a817;
}
.notif-item.prio-bassa:not(.letta) .notif-dot[b-wsc6kfwaqy] {
    background: #5faad9;
}

.notif-content[b-wsc6kfwaqy] {
    flex: 1;
    min-width: 0;
}

.notif-titolo[b-wsc6kfwaqy] {
    font-size: 0.845rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 2px;
    line-height: 1.3;
}

.notif-desc[b-wsc6kfwaqy] {
    font-size: 0.78rem;
    color: #6c757d;
    margin-bottom: 4px;
    line-height: 1.3;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.notif-footer[b-wsc6kfwaqy] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.notif-time[b-wsc6kfwaqy] {
    font-size: 0.72rem;
    color: #adb5bd;
}

.notif-cta[b-wsc6kfwaqy] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #1E334C;
    text-decoration: none;
}
.notif-cta:hover[b-wsc6kfwaqy] {
    text-decoration: underline;
}

/* ── Workspace panel ──────────────────────────────────────────────────────── */
.ws-panel[b-wsc6kfwaqy] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 240px;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    overflow: hidden;
    z-index: 901;
    padding: 4px 0;
}

.ws-company[b-wsc6kfwaqy] {
    padding: 12px 16px 10px;
}

.ws-company-name[b-wsc6kfwaqy] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1a2740;
    line-height: 1.2;
}

.ws-company-meta[b-wsc6kfwaqy] {
    font-size: 0.75rem;
    color: #868e96;
    margin-top: 2px;
}

.ws-user[b-wsc6kfwaqy] {
    padding: 10px 16px;
}

.ws-user-email[b-wsc6kfwaqy] {
    font-size: 0.8rem;
    color: #343a40;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ws-user-role[b-wsc6kfwaqy] {
    font-size: 0.72rem;
    color: #868e96;
    margin-top: 1px;
}

.ws-divider[b-wsc6kfwaqy] {
    height: 1px;
    background: #f0f0f0;
    margin: 2px 0;
}

.ws-nav[b-wsc6kfwaqy] {
    padding: 4px 0;
}

.ws-nav-item[b-wsc6kfwaqy] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    font-size: 0.845rem;
    color: #343a40;
    text-decoration: none;
    transition: background 0.1s;
    cursor: pointer;
    background: none;
    border: none;
    width: 100%;
    text-align: left;
}

.ws-nav-item:hover[b-wsc6kfwaqy] {
    background: #f5f7fa;
    color: #1E334C;
}

.ws-logout[b-wsc6kfwaqy] {
    color: #c0614f !important;
    font-weight: 500;
    margin: 4px 0;
}

.ws-logout:hover[b-wsc6kfwaqy] {
    background: #fff5f4 !important;
}
/* _content/GestioneCommessa.Shared/Layout/DevLogPanel.razor.rz.scp.css */
.devlog-panel[b-u8g9uomc9t] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    font-family: 'Consolas', 'Cascadia Code', 'Monaco', monospace;
    font-size: 0.72rem;
    background: #1e1e1e;
    color: #d4d4d4;
    border-top: 2px solid #007acc;
    box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.5);
    transition: height 0.15s ease;
}

.devlog-header[b-u8g9uomc9t] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 12px;
    cursor: pointer;
    user-select: none;
    background: #252526;
    border-bottom: 1px solid #333;
    min-height: 28px;
}

.devlog-header:hover[b-u8g9uomc9t] {
    background: #2d2d2d;
}

.devlog-title[b-u8g9uomc9t] {
    font-size: 0.72rem;
    color: #cccccc;
    display: flex;
    align-items: center;
}

.devlog-badge[b-u8g9uomc9t] {
    font-size: 0.65rem;
    padding: 1px 5px;
}

.devlog-actions[b-u8g9uomc9t] {
    display: flex;
    gap: 4px;
}

.devlog-btn[b-u8g9uomc9t] {
    background: none;
    border: 1px solid #555;
    color: #ccc;
    border-radius: 3px;
    padding: 1px 6px;
    cursor: pointer;
    font-size: 0.7rem;
    line-height: 1.4;
    transition: background 0.1s;
}

.devlog-btn:hover[b-u8g9uomc9t] {
    background: #3a3a3a;
    color: #fff;
}

.devlog-body[b-u8g9uomc9t] {
    height: 220px;
    overflow-y: auto;
    padding: 4px 12px 6px;
    scroll-behavior: smooth;
}

/* scrollbar sottile scuro */
.devlog-body[b-u8g9uomc9t]::-webkit-scrollbar {
    width: 6px;
}

.devlog-body[b-u8g9uomc9t]::-webkit-scrollbar-track {
    background: #1e1e1e;
}

.devlog-body[b-u8g9uomc9t]::-webkit-scrollbar-thumb {
    background: #555;
    border-radius: 3px;
}

.devlog-entry[b-u8g9uomc9t] {
    padding: 1px 0;
    white-space: pre-wrap;
    word-break: break-all;
    border-bottom: 1px solid #2a2a2a;
    line-height: 1.4;
}

.devlog-error[b-u8g9uomc9t] {
    color: #f48771;
}

.devlog-warn[b-u8g9uomc9t] {
    color: #cca700;
}

.devlog-ok[b-u8g9uomc9t] {
    color: #89d185;
}

.devlog-empty[b-u8g9uomc9t] {
    color: #666;
    font-style: italic;
}
/* _content/GestioneCommessa.Shared/Layout/MainLayout.razor.rz.scp.css */
/* Stili layout spostati in app.css per evitare problemi di bundle scoped CSS */
/* _content/GestioneCommessa.Shared/Layout/NavMenu.razor.rz.scp.css */
/* Stili sidebar/navmenu spostati in app.css per evitare problemi di bundle scoped CSS */
/* _content/GestioneCommessa.Shared/Pages/Acquisti/FetchData.razor.rz.scp.css */
/* Acquisti — FetchData */

.aq-page[b-3b1vo79srt] {
    padding: 0;
}

/* ── Card trimestrali progressivi ────────────────────────────────────── */

.aq-q-card[b-3b1vo79srt] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 20px 24px;               /* standard card KPI (2026-09-04) */
    height: 100%;
    border-top: 3px solid #CBD5E1;
    transition: box-shadow 0.15s;
}
.aq-q-card:hover[b-3b1vo79srt] { box-shadow: 0 4px 16px rgba(30,51,76,.08); }

.aq-q-1[b-3b1vo79srt] { border-top-color: #4F81BD; }
.aq-q-2[b-3b1vo79srt] { border-top-color: #4CAF82; }
.aq-q-3[b-3b1vo79srt] { border-top-color: #F59E0B; }
.aq-q-4[b-3b1vo79srt] { border-top-color: #6366F1; }

.aq-q-header[b-3b1vo79srt] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}
.aq-q-label[b-3b1vo79srt] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5B7A9A;
}
.aq-q-periodo[b-3b1vo79srt] {
    font-size: 0.68rem;
    color: #8FA3B8;
}
.aq-q-value[b-3b1vo79srt] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.15;
    margin-bottom: 4px;               /* valore → descrizione */
}
.aq-q-detail[b-3b1vo79srt] {
    font-size: 0.72rem;
    color: #6B7C8F;
}

/* ── KPI cards ───────────────────────────────────────────────────────── */

.aq-kpi-card[b-3b1vo79srt] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 20px 24px;               /* standard card KPI (2026-09-04): etichetta → valore 6px, valore → descrizione 4px */
    height: 100%;
}

.aq-kpi-card.success[b-3b1vo79srt] { border-left: 3px solid #3a8f47; }
.aq-kpi-card.info[b-3b1vo79srt]    { border-left: 3px solid #2c6a9e; }
.aq-kpi-card.warning[b-3b1vo79srt] { border-left: 3px solid #c07a00; }
.aq-kpi-card.danger[b-3b1vo79srt]  { border-left: 3px solid #9e2d1e; }

.aq-kpi-label[b-3b1vo79srt] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

.aq-kpi-value[b-3b1vo79srt] {
    font-size: 1.45rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
    margin-bottom: 4px;
}

.aq-kpi-sub[b-3b1vo79srt] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

/* ── Tab bar ─────────────────────────────────────────────────────────── */

.aq-tab-btn[b-3b1vo79srt] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    outline: none;
    border-radius: 0;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
}

.aq-tab-btn:hover[b-3b1vo79srt] { color: #1E334C; }

.aq-tab-btn.active[b-3b1vo79srt] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

.aq-tab-count[b-3b1vo79srt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.4em;
    background: #e8edf4;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0 0.35em;
    border-radius: 10px;
    margin-left: 0.3rem;
    vertical-align: middle;
}

.aq-tab-btn.active .aq-tab-count[b-3b1vo79srt] {
    background: rgba(30, 51, 76, 0.15);
    color: #1E334C;
}

/* ── Bulk bar ────────────────────────────────────────────────────────── */

.aq-bulk-bar[b-3b1vo79srt] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    background: #edf3fb;
    border: 1px solid #c8d8ee;
    border-radius: 8px;
    padding: 0.55rem 1rem;
}

.aq-bulk-count[b-3b1vo79srt] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    white-space: nowrap;
}

/* ── Riga di ricerca (2026-09-04) ─────────────────────────────────────
   Il markup ha solo classi Bootstrap (`d-flex gap-2 mb-3`): qui la riga prende
   lo standard toolbar — controlli alti var(--eco-ctl-h), gap 12px e stacco
   var(--eco-block) prima della tabella. `!important` serve a battere le utility. */
.aq-page .d-flex.gap-2.mb-3[b-3b1vo79srt] {
    gap: 12px !important;
    margin-bottom: var(--eco-block, 24px) !important;
}
.aq-page .d-flex.gap-2.mb-3 .form-control[b-3b1vo79srt],
.aq-page .d-flex.gap-2.mb-3 .form-select[b-3b1vo79srt] { min-height: var(--eco-ctl-h, 42px); }
/* La barra di selezione, quando c'è, è l'ultimo blocco prima della tabella */
.aq-bulk-bar[b-3b1vo79srt] { margin-bottom: var(--eco-block, 24px) !important; }

/* ── Loading ─────────────────────────────────────────────────────────── */

.aq-loading-box[b-3b1vo79srt] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: #5B7A9A;
}

.aq-spinner[b-3b1vo79srt] {
    border: 3px solid #DCE3EE;
    border-top: 3px solid #2E3C66;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: aq-spin-b-3b1vo79srt 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes aq-spin-b-3b1vo79srt {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Empty state ─────────────────────────────────────────────────────── */

.aq-empty[b-3b1vo79srt] {
    text-align: center;
    padding: 2.5rem 1rem;
}

.aq-empty .bi[b-3b1vo79srt] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.aq-empty-title[b-3b1vo79srt] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.aq-empty-text[b-3b1vo79srt] {
    font-size: 0.875rem;
    color: #5B7A9A;
}

/* ── Table ───────────────────────────────────────────────────────────── */

.table-responsive[b-3b1vo79srt] {
    margin-top: 0.25rem;
    border: 1px solid #e8eef6;
    border-radius: 8px;
    overflow: hidden;
}

.aq-table[b-3b1vo79srt] {
    margin-bottom: 0;
}

/* Selettori ancorati a `.table.aq-table`: la regola globale `.table:not(.table-sm) > thead > tr > th`
   (specificità 0,2,3) batterebbe il semplice `.aq-table thead th` scoped (0,2,2). */
.table.aq-table thead th[b-3b1vo79srt] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);   /* standard celle (2026-09-04) */
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
}

.aq-row[b-3b1vo79srt] {
    cursor: pointer;
    transition: background 0.1s;
}

.aq-row:hover[b-3b1vo79srt] {
    background: #f7fafd;
}

.table.aq-table .aq-row td[b-3b1vo79srt] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna sul bordo del riquadro (solo righe dati: la riga espansa resta a padding 0) */
.table.aq-table thead th:first-child[b-3b1vo79srt], .table.aq-table .aq-row td:first-child[b-3b1vo79srt] { padding-left: var(--eco-cell-edge, 20px); }
.table.aq-table thead th:last-child[b-3b1vo79srt],  .table.aq-table .aq-row td:last-child[b-3b1vo79srt]  { padding-right: var(--eco-cell-edge, 20px); }
.aq-row td:first-child input[type="checkbox"][b-3b1vo79srt] { margin: 0; vertical-align: middle; }

/* Colonne numeriche: Data (3ª, stessa convenzione nth-child del blocco responsive) non va a capo;
   Importo ha `text-end` su th+td → a destra, senza a capo, cifre tabellari */
.aq-table thead th:nth-child(3)[b-3b1vo79srt], .aq-row td:nth-child(3)[b-3b1vo79srt] { white-space: nowrap; }
.aq-row td.text-end[b-3b1vo79srt] { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Azioni: ultima colonna allineata a destra, icone senza a capo */
.aq-table thead th:last-child[b-3b1vo79srt] { text-align: right; }
.aq-row td:last-child .aq-icon-row[b-3b1vo79srt] { justify-content: flex-end; }

.aq-row-expanded td[b-3b1vo79srt] {
    padding: 0;
    border-bottom: 1px solid #dceaf8;
}

.aq-name[b-3b1vo79srt] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.875rem;
}

.aq-sub[b-3b1vo79srt] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}

/* ── Imputazione ─────────────────────────────────────────────────────── */

.aq-imputazione[b-3b1vo79srt] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-bottom: 0.2rem;
}

.aq-commessa-badge[b-3b1vo79srt] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #e8f1fa;
    color: #2c6a9e;
    white-space: nowrap;
}

.aq-spesa-badge[b-3b1vo79srt] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #fff4e2;
    color: #8a5500;
    white-space: nowrap;
}

/* ── Stato badge ─────────────────────────────────────────────────────── */

.aq-stato-badge[b-3b1vo79srt] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.aq-stato-costo[b-3b1vo79srt] { background: #edf6ea; color: #3a6b27; }
.aq-stato-spesa[b-3b1vo79srt] { background: #fff8e6; color: #7a5200; }
.aq-stato-none[b-3b1vo79srt]  { background: #f4f5f7; color: #8696a7; }

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.aq-icon-btn[b-3b1vo79srt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

/* Riga di icone nelle celle: flex centrato, senza a capo — vale per XML/prodotti E per le azioni */
.aq-icon-row[b-3b1vo79srt] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: nowrap;
    white-space: nowrap;
}
.aq-icon-row .dropdown[b-3b1vo79srt] { display: inline-flex; }
.aq-icon-btn[b-3b1vo79srt] { vertical-align: middle; }

.aq-icon-btn:hover[b-3b1vo79srt] {
    background: var(--icobtn-hover-bg, #EDF3FB);
    color: var(--icobtn-hover-ink, #001B48);
}

.aq-icon-btn.dropdown-toggle[b-3b1vo79srt]::after {
    display: none;
}

/* ── Pannello prodotti DDT ────────────────────────────────────────────── */

.aq-products-panel[b-3b1vo79srt] {
    background: #f7fafd;
    border-top: 1px solid #dceaf8;
}

.aq-ddt-block[b-3b1vo79srt] {
    border-bottom: 1px solid #e8eef6;
    padding: 14px var(--eco-cell-edge, 20px) 0;   /* stesso asse della prima colonna */
}

.aq-ddt-block:last-child[b-3b1vo79srt] {
    border-bottom: none;
}

.aq-ddt-header[b-3b1vo79srt] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.5rem;
}

.aq-prod-table thead th[b-3b1vo79srt] {
    background: #edf3fb;
    font-size: 0.7rem;
    color: #5B7A9A;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 10px 12px;               /* tabella annidata compatta */
    border-bottom: 1px solid #dceaf8;
}

.aq-prod-table tbody td[b-3b1vo79srt] {
    font-size: 0.8125rem;
    padding: 10px 12px;
    border-bottom: 1px solid #f0f5fb;
    color: #334155;
}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .aq-table thead th:nth-child(3)[b-3b1vo79srt],
    .aq-row td:nth-child(3)[b-3b1vo79srt],
    .aq-table thead th:nth-child(5)[b-3b1vo79srt],
    .aq-row td:nth-child(5)[b-3b1vo79srt] {
        display: none;
    }

    .aq-bulk-bar[b-3b1vo79srt] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Acquisti/Form.razor.rz.scp.css */
/* Acquisti — Form (modifica fattura) */

/* ── Card ─────────────────────────────────────────────────────────── */

.aq-card[b-i4jl854jw7] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

.aq-card-header[b-i4jl854jw7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1.25rem;
    border-bottom: 1px solid #E2E8F0;
    background: #FAFBFC;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.aq-card-icon[b-i4jl854jw7] {
    color: #5B7A9A;
    font-size: 1rem;
}

.aq-card-title[b-i4jl854jw7] {
    font-size: 0.875rem;
    font-weight: 700;
    color: #1E334C;
}

.aq-card-body[b-i4jl854jw7] {
    padding: 1.25rem;
}

/* ── Section subheader ─────────────────────────────────────────── */

.aq-section-icon[b-i4jl854jw7] {
    color: #5B7A9A;
    font-size: 0.875rem;
}

.aq-section-title[b-i4jl854jw7] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.aq-divider[b-i4jl854jw7] {
    border-color: #E2E8F0;
    margin: 1rem 0;
}

/* ── Form labels ───────────────────────────────────────────────── */

.aq-form-label[b-i4jl854jw7] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #5B7A9A;
    margin-bottom: 0.3rem;
    display: block;
}

/* ── PDF panel ─────────────────────────────────────────────────── */

.aq-pdf-frame[b-i4jl854jw7] {
    width: 100%;
    height: 540px;
    border: 1px solid #E2E8F0;
    border-radius: 10px;
    display: block;
}

.aq-pdf-empty[b-i4jl854jw7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 200px;
    background: #F7FAFD;
    border: 2px dashed #CBD5E1;
    border-radius: 10px;
    color: #8FA3B8;
    font-size: 0.875rem;
}

.aq-pdf-empty .bi[b-i4jl854jw7] {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    color: #C0CDD8;
}

.aq-pdf-actions[b-i4jl854jw7] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.aq-pdf-btn[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.4rem 0.9rem;
    border-radius: 8px;
    border: 1px solid #CBD5E1;
    background: transparent;
    color: #1E334C;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s, border-color 0.12s;
}

.aq-pdf-btn:hover[b-i4jl854jw7] { background: #F1F5F9; border-color: #94A3B8; text-decoration: none; color: #1E334C; }

.aq-pdf-btn-primary[b-i4jl854jw7] {
    background: #2c6a9e;
    border-color: #2c6a9e;
    color: #fff;
}

.aq-pdf-btn-primary:hover[b-i4jl854jw7] { background: #1c4f7a; border-color: #1c4f7a; color: #fff; }

/* ── Summary bar (assegnazioni) ────────────────────────────────── */

.aq-summary-bar[b-i4jl854jw7] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.75rem 1.25rem;
    background: #F7FAFD;
    border-bottom: 1px solid #E2E8F0;
}

.aq-summary-chip[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25em 0.75em;
    border-radius: 20px;
    white-space: nowrap;
}

.aq-chip-total[b-i4jl854jw7]    { background: #e8edf4; color: #3a5068; }
.aq-chip-impon[b-i4jl854jw7]    { background: #e8f1fa; color: #2c6a9e; }
.aq-chip-ok[b-i4jl854jw7]       { background: #edf6ea; color: #3a6b27; }
.aq-chip-warn[b-i4jl854jw7]     { background: #fff4e2; color: #8a5500; }
.aq-chip-danger[b-i4jl854jw7]   { background: #fdecea; color: #9e2d1e; }

/* ── Add button ─────────────────────────────────────────────────── */

.aq-add-btn[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: transparent;
    border: 1px dashed #94A3B8;
    color: #5B7A9A;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.35rem 0.8rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.aq-add-btn:hover[b-i4jl854jw7] { background: #F3F7FC; color: #1E334C; border-color: #5B7A9A; }

/* ── Ingresso unico: scelta tipo imputazione ────────────────────── */

.aq-scelta-tipo[b-i4jl854jw7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.aq-scelta-tipo__lbl[b-i4jl854jw7] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #5B7A9A;
    margin-right: 0.25rem;
}

.aq-scelta-btn[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 700;
    padding: 0.4rem 0.9rem;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: filter 0.12s;
}

.aq-scelta-btn:hover[b-i4jl854jw7] { filter: brightness(0.96); }

.aq-scelta-btn--cost[b-i4jl854jw7]    { background: #edf6ea; color: #3a6b27; border-color: #cfe6c5; }
.aq-scelta-btn--expense[b-i4jl854jw7] { background: #e8f1fa; color: #2c6a9e; border-color: #cbe0f2; }

/* ── Banner "assegnazione righe attiva" ─────────────────────────── */

.aq-assegna-banner[b-i4jl854jw7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    background: #eef4fb;
    border: 1px solid #cbe0f2;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
    color: #2c6a9e;
    font-weight: 600;
}

/* ── Assignment row ─────────────────────────────────────────────── */

.aq-assign-row[b-i4jl854jw7] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 10px;
    padding: 0.75rem;
    margin-bottom: 0.5rem;
}

.aq-assign-ddt[b-i4jl854jw7] {
    font-size: 0.75rem;
    color: #5B7A9A;
    margin-bottom: 0.4rem;
}

.aq-subtotal[b-i4jl854jw7] {
    font-size: 0.75rem;
    color: #6B7C8F;
    text-align: right;
    margin-top: 0.5rem;
}

/* ── Icon buttons ───────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.aq-icon-btn[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.aq-icon-btn:hover[b-i4jl854jw7]     { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.aq-icon-btn:disabled[b-i4jl854jw7]  { opacity: 0.4; cursor: not-allowed; }

.aq-icon-btn.aq-icon-danger[b-i4jl854jw7]       { color: var(--icobtn-danger, #C0392B); }
.aq-icon-btn.aq-icon-danger:hover[b-i4jl854jw7] { background: var(--icobtn-danger-bg, #FBEBED); color: var(--icobtn-danger, #C0392B); }

.aq-icon-btn.aq-icon-success[b-i4jl854jw7]       { color: #3a6b27; }
.aq-icon-btn.aq-icon-success:hover[b-i4jl854jw7] { background: #edf6ea; color: #2a5020; }

/* ── Table ──────────────────────────────────────────────────────── */

.aq-table[b-i4jl854jw7] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

.aq-table thead th[b-i4jl854jw7] {
    background: #F7FAFD;
    color: #5B7A9A;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.55rem 0.75rem;
    border-bottom: 2px solid #DCEAF8;
    white-space: nowrap;
}

.aq-table tbody td[b-i4jl854jw7] {
    padding: 0.55rem 0.75rem;
    vertical-align: middle;
    font-size: 0.8125rem;
    color: #334155;
    border-bottom: 1px solid #F0F5FB;
}

.aq-row:hover td[b-i4jl854jw7] { background: #F7FAFD; }
.aq-row-selected td[b-i4jl854jw7] { background: #EEF5FF !important; }

.aq-td-primary[b-i4jl854jw7] { font-weight: 600; color: #1E334C !important; }

/* ── DDT group ──────────────────────────────────────────────────── */

.aq-ddt-group[b-i4jl854jw7] {
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 1rem;
}

.aq-ddt-header[b-i4jl854jw7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 1rem;
    background: #F7FAFD;
    border-bottom: 1px solid #E2E8F0;
}

.aq-ddt-label[b-i4jl854jw7] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #1E334C;
}

/* ── Bulk toolbar ───────────────────────────────────────────────── */

.aq-bulk-bar[b-i4jl854jw7] {
    background: #F0F7FF;
    border: 1px solid #DCEAF8;
    border-radius: 10px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
}

/* ── Assignment badge ───────────────────────────────────────────── */

.aq-badge-cost[b-i4jl854jw7]    { background: #edf6ea; color: #3a6b27; font-size: 0.7rem; font-weight: 700; padding: 0.2em 0.6em; border-radius: 10px; white-space: nowrap; }
.aq-badge-expense[b-i4jl854jw7] { background: #e8f1fa; color: #2c6a9e; font-size: 0.7rem; font-weight: 700; padding: 0.2em 0.6em; border-radius: 10px; white-space: nowrap; }
.aq-badge-other[b-i4jl854jw7]   { background: #f4f5f7; color: #5B7A9A; font-size: 0.7rem; font-weight: 700; padding: 0.2em 0.6em; border-radius: 10px; white-space: nowrap; }

/* ── Termini pagamento ──────────────────────────────────────────── */

.aq-pag-modality[b-i4jl854jw7] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 10px;
    background: #e8edf4;
    color: #3a5068;
    white-space: nowrap;
}

/* ── Approve buttons (inside DDT table cells) ───────────────────── */

.aq-approve-btn[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    border: 1px solid;
    background: transparent;
    cursor: pointer;
    transition: background 0.12s;
    margin-top: 0.3rem;
    white-space: nowrap;
}

.aq-approve-cost[b-i4jl854jw7]    { border-color: #3a6b27; color: #3a6b27; }
.aq-approve-cost:hover[b-i4jl854jw7]    { background: #edf6ea; }
.aq-approve-expense[b-i4jl854jw7] { border-color: #2c6a9e; color: #2c6a9e; }
.aq-approve-expense:hover[b-i4jl854jw7] { background: #e8f1fa; }
.aq-approve-btn:disabled[b-i4jl854jw7]  { opacity: 0.4; cursor: not-allowed; }

/* ── Form footer ────────────────────────────────────────────────── */

.aq-form-footer[b-i4jl854jw7] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1.25rem 0 0.5rem;
}

/* Primary: colori dai token globali del button system */
.aq-btn-save[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--btn-primary-bg, #001B48);
    color: #fff;
    border: none;
    padding: 0.6rem 1.75rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.aq-btn-save:hover[b-i4jl854jw7]    { background: var(--btn-primary-bg-hover, #12315F); }
.aq-btn-save:disabled[b-i4jl854jw7] { opacity: 0.6; cursor: not-allowed; }

/* Secondary: colori dai token globali del button system */
.aq-btn-cancel[b-i4jl854jw7] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #fff;
    border: 1px solid var(--btn-border, #C7D2E2);
    color: var(--btn-ink, #001B48);
    padding: 0.6rem 1.25rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}

.aq-btn-cancel:hover[b-i4jl854jw7] { background: #F3F7FC; border-color: var(--btn-ink, #001B48); }

/* ── Imputazione costi — riepilogo ──────────────────────────────── */

.aq-imput-riepilogo[b-i4jl854jw7] {
    display: flex;
    gap: 0;
    padding: 0;
    border-bottom: 1px solid #E2E8F0;
}

.aq-imput-kpi[b-i4jl854jw7] {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 0.875rem 1.25rem;
    gap: 0.2rem;
}

.aq-imput-kpi--sep[b-i4jl854jw7] {
    border-left: 1px solid #E2E8F0;
    border-right: 1px solid #E2E8F0;
}

.aq-imput-kpi__lbl[b-i4jl854jw7] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #8FA3B8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.aq-imput-kpi__val[b-i4jl854jw7] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.3;
}

.aq-imput-kpi__val--ok[b-i4jl854jw7]     { color: #3a6b27; }
.aq-imput-kpi__val--danger[b-i4jl854jw7] { color: #9e2d1e; }

/* ── Imputazione costi — tabella ────────────────────────────────── */

.aq-table--imput tfoot td[b-i4jl854jw7] {
    padding: 0.45rem 0.75rem;
    font-size: 0.8125rem;
    color: #334155;
    border-top: 2px solid #E2E8F0;
    border-bottom: none;
}

/* small badge font size util */
.fs-xs[b-i4jl854jw7] { font-size: 0.7rem !important; }
/* _content/GestioneCommessa.Shared/Pages/Acquisti/Impostazioni.razor.rz.scp.css */
/* Impostazioni Acquisti — regole d'imputazione. CSS scoped.
   Stesso linguaggio delle altre pagine: card bianche, bordi #dce6f2,
   raggio 10-12px, ombre leggere, badge piccoli, navy #1E334C. */

/* ── Ricerca in header ───────────────────────────────────────────────── */

.ir-search[b-4libgkx7yo] { position: relative; width: 240px; }

.ir-search > i[b-4libgkx7yo] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #8696a7;
    font-size: 0.8rem;
    pointer-events: none;
}

.ir-search > input[b-4libgkx7yo] { padding-left: 30px; }

/* ── KPI ─────────────────────────────────────────────────────────────── */

.ir-kpi-grid[b-4libgkx7yo] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ir-kpi-card[b-4libgkx7yo] {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 12px;
    padding: 0.85rem 1rem;
    min-width: 0;
}

.ir-kpi-ico[b-4libgkx7yo] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #EDF3FB;
    color: #1E334C;
    font-size: 1.05rem;
}

.ir-kpi-txt[b-4libgkx7yo] { display: flex; flex-direction: column; min-width: 0; }

.ir-kpi-label[b-4libgkx7yo] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    white-space: nowrap;
}

.ir-kpi-value[b-4libgkx7yo] {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ir-kpi-value--sm[b-4libgkx7yo] { font-size: 1.05rem; }

/* ── Chip filtro stato ───────────────────────────────────────────────── */

.ir-chips[b-4libgkx7yo] { display: flex; gap: 0.5rem; flex-wrap: wrap; }

.ir-chip[b-4libgkx7yo] {
    border: 1px solid #dce6f2;
    background: #fff;
    color: #5B7A9A;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 500;
    padding: 0.3rem 0.8rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.ir-chip:hover[b-4libgkx7yo] { border-color: #b5cfe8; color: #1E334C; }

.ir-chip-on[b-4libgkx7yo] {
    background: #1E334C;
    border-color: #1E334C;
    color: #fff;
    font-weight: 600;
}

/* ── Card tabella ────────────────────────────────────────────────────── */

.ir-card[b-4libgkx7yo] {
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    overflow: visible;   /* i menu ⋯ non si devono tagliare */
}

.ir-card .table-responsive[b-4libgkx7yo] { overflow: visible; }

.ir-table thead th[b-4libgkx7yo] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.ir-table thead tr:first-child th:first-child[b-4libgkx7yo] { border-top-left-radius: 10px; }
.ir-table thead tr:first-child th:last-child[b-4libgkx7yo]  { border-top-right-radius: 10px; }

.ir-table tbody td[b-4libgkx7yo] {
    padding: 0.85rem 0.9rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    color: #17324d;
    vertical-align: middle;
}

.ir-table tbody tr:last-child td[b-4libgkx7yo] { border-bottom: none; }

.ir-row:hover td[b-4libgkx7yo] { background: #f7fafd; }
.ir-row-drag td[b-4libgkx7yo] { background: #EDF3FB; opacity: .7; }

/* ── Celle ───────────────────────────────────────────────────────────── */

.ir-grip[b-4libgkx7yo] {
    color: #C6D2E2;
    cursor: grab;
    margin-right: 0.35rem;
    font-size: 0.85rem;
}

.ir-row:hover .ir-grip[b-4libgkx7yo] { color: #8FA0B5; }

.ir-prio[b-4libgkx7yo] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    color: #1E334C;
    background: #EDF3FB;
    border-radius: 6px;
    padding: 0.15rem 0.45rem;
    font-variant-numeric: tabular-nums;
}

.ir-nome[b-4libgkx7yo] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
}

.ir-cond[b-4libgkx7yo] { display: flex; flex-wrap: wrap; gap: 0.3rem; }

.ir-cond-badge[b-4libgkx7yo] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 500;
    color: #5B7A9A;
    background: #f4f5f7;
    border: 1px solid #e8ecf2;
    border-radius: 6px;
    padding: 0.08rem 0.4rem;
    white-space: nowrap;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ir-dest-tipo[b-4libgkx7yo] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #8696a7;
}

.ir-dest-tipo > i[b-4libgkx7yo] { font-size: 0.8rem; }

.ir-dest-voce[b-4libgkx7yo] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1E334C;
    margin-top: 0.1rem;
}

.ir-uso[b-4libgkx7yo]  { font-size: 0.85rem; font-weight: 600; color: #1E334C; white-space: nowrap; }
.ir-data[b-4libgkx7yo] { font-size: 0.82rem; color: #5B7A9A; white-space: nowrap; }

.ir-stato[b-4libgkx7yo] {
    display: inline-block;
    padding: 0.2em 0.65em;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.ir-stato-on[b-4libgkx7yo]  { background: #eafaf1; color: #27ae60; }
.ir-stato-off[b-4libgkx7yo] { background: #f4f5f7; color: #8696a7; }

/* Icon button canonico 36×36 (token globali in app.css) */
.ir-menu-btn[b-4libgkx7yo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.ir-menu-btn:hover[b-4libgkx7yo] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.ir-menu-btn.dropdown-toggle[b-4libgkx7yo]::after { display: none; }

/* ── Stato vuoto ─────────────────────────────────────────────────────── */

.ir-empty[b-4libgkx7yo] { text-align: center; padding: 3rem 1.5rem; }

.ir-empty .bi[b-4libgkx7yo] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.ir-empty-title[b-4libgkx7yo] { font-size: 1rem; font-weight: 600; color: #1E334C; margin-bottom: 0.35rem; }
.ir-empty-text[b-4libgkx7yo]  { font-size: 0.875rem; color: #8696a7; max-width: 480px; margin: 0 auto; }

/* ── Drawer laterale ─────────────────────────────────────────────────── */

.ir-overlay[b-4libgkx7yo] {
    position: fixed;
    inset: 0;
    background: rgba(15, 27, 46, 0.28);
    z-index: 1050;
    animation: ir-fade-b-4libgkx7yo 0.15s ease-out;
}

.ir-drawer[b-4libgkx7yo] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(550px, 100vw);
    background: #fff;
    z-index: 1055;
    display: flex;
    flex-direction: column;
    box-shadow: -12px 0 40px -12px rgba(15, 27, 46, 0.25);
    animation: ir-slide-b-4libgkx7yo 0.18s ease-out;
}

@keyframes ir-fade-b-4libgkx7yo  { from { opacity: 0; } to { opacity: 1; } }
@keyframes ir-slide-b-4libgkx7yo { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }

.ir-drawer-head[b-4libgkx7yo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem 1.5rem;
    border-bottom: 1px solid #dce6f2;
    flex-shrink: 0;
}

.ir-drawer-title[b-4libgkx7yo] { font-size: 1.05rem; font-weight: 700; color: #1E334C; }

.ir-drawer-body[b-4libgkx7yo] {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem 1.5rem 1.5rem;
}

.ir-drawer-foot[b-4libgkx7yo] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.9rem 1.5rem;
    border-top: 1px solid #dce6f2;
    background: #fff;
    flex-shrink: 0;
}

/* Sezioni del drawer */

.ir-sez[b-4libgkx7yo] { margin-bottom: 1.75rem; }
.ir-sez:last-child[b-4libgkx7yo] { margin-bottom: 0.5rem; }

.ir-sez-title[b-4libgkx7yo] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #5B7A9A;
    padding-bottom: 0.5rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid #edf2f7;
}

.ir-sez-hint[b-4libgkx7yo] {
    font-weight: 400;
    text-transform: none;
    letter-spacing: normal;
    color: #8696a7;
    margin-left: 0.35rem;
}

.ir-sez-toggle[b-4libgkx7yo] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    background: none;
    border: none;
    border-bottom: 1px solid #edf2f7;
    padding: 0 0 0.5rem;
    margin-bottom: 0.75rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #5B7A9A;
    cursor: pointer;
    text-align: left;
}

.ir-sez-toggle:hover[b-4libgkx7yo] { color: #1E334C; }
.ir-sez-toggle > i[b-4libgkx7yo] { font-size: 0.75rem; }

/* Esito prova a vuoto nel drawer */

.ir-prova[b-4libgkx7yo] {
    border: 1px solid #cfe6f5;
    border-radius: 10px;
    padding: 0.9rem 1rem;
    margin-top: 1rem;
    background: #fbfdff;
}

.ir-prova-head[b-4libgkx7yo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600;
    color: #1E334C;
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

/* Su schermi stretti il drawer prende tutta la larghezza */
@media (max-width: 600px) {
    .ir-drawer[b-4libgkx7yo] { width: 100vw; }
}
/* _content/GestioneCommessa.Shared/Pages/Acquisti/Scadenziario.razor.rz.scp.css */
/* Scadenzario pagamenti acquisti */

/* ── Breadcrumb ──────────────────────────────────────────────────────── */

.pas-breadcrumb[b-45h0507kvs] {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.78rem;
    color: #5B7A9A;
}

.pas-bc-item + .pas-bc-item[b-45h0507kvs]::before {
    content: '›';
    margin: 0 0.4rem;
    color: #b0c4d8;
}

.pas-bc-item a[b-45h0507kvs] { color: #5B7A9A; text-decoration: none; }
.pas-bc-item a:hover[b-45h0507kvs] { color: #1E334C; text-decoration: underline; }
.pas-bc-item.active[b-45h0507kvs] { color: #1E334C; font-weight: 500; }

/* ── KPI ─────────────────────────────────────────────────────────────── */

/* Standard di spaziatura (2026-09-04): KPI 20px 24px, icona→testo 16px,
   etichetta→valore 6px, valore→sub 4px; 24px prima del blocco successivo. */
.pas-kpi-grid[b-45h0507kvs] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: var(--eco-block, 24px);
}

/* KPI (mockup): icona in pastiglia tonda a sinistra, etichetta, valore, sub. */
.pas-kpi-card[b-45h0507kvs] {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 12px;
    padding: 20px 24px;
    min-width: 0;
}

.pas-kpi-ico[b-45h0507kvs] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-size: 1.1rem;
}

.pas-kpi-ico-blue[b-45h0507kvs]   { background: #EDF3FB; color: #2563eb; }
.pas-kpi-ico-red[b-45h0507kvs]    { background: #fdecea; color: #c0392b; }
.pas-kpi-ico-orange[b-45h0507kvs] { background: #fef3e2; color: #e67e22; }

.pas-kpi-txt[b-45h0507kvs] { display: flex; flex-direction: column; min-width: 0; }

.pas-kpi-label[b-45h0507kvs] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    white-space: nowrap;
    margin-bottom: 6px;
}

.pas-kpi-value[b-45h0507kvs] {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.pas-kpi-value-red[b-45h0507kvs]    { color: #c0392b; }
.pas-kpi-value-orange[b-45h0507kvs] { color: #e67e22; }

.pas-kpi-sub[b-45h0507kvs] { font-size: 0.72rem; color: #8696a7; white-space: nowrap; margin-top: 4px; }

/* ── Timeline: barra riepilogativa a segmenti proporzionali ──────────── */

.pas-timeline[b-45h0507kvs] {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    padding: 0.6rem 0.75rem 0.75rem;
    margin-bottom: var(--eco-block, 24px);   /* ultimo blocco prima della tabella */
    overflow: hidden;
}

.pas-tl-seg[b-45h0507kvs] {
    position: relative;
    flex: 1 1 0;
    min-width: 120px;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    background: none;
    border: none;
    border-left: 1px solid #edf2f7;
    padding: 0.2rem 0.85rem 0.75rem;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background 0.12s;
}

.pas-tl-seg:first-child[b-45h0507kvs] { border-left: none; padding-left: 0.25rem; }
.pas-tl-seg:hover[b-45h0507kvs]  { background: #f7fafd; }
.pas-tl-seg.active[b-45h0507kvs] { background: #EDF3FB; }

.pas-tl-title[b-45h0507kvs] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #718096;
    white-space: nowrap;
}

.pas-tl-count[b-45h0507kvs]  { font-size: 0.78rem; color: #1E334C; font-weight: 600; white-space: nowrap; }
.pas-tl-amount[b-45h0507kvs] { font-size: 0.75rem; color: #5B7A9A; white-space: nowrap; }

.pas-tl-bar[b-45h0507kvs] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 5px;
    border-radius: 3px;
}

.pas-tl-bar-red[b-45h0507kvs]    { background: #e74c3c; }
.pas-tl-bar-orange[b-45h0507kvs] { background: #e67e22; }
.pas-tl-bar-yellow[b-45h0507kvs] { background: #f1c40f; }
.pas-tl-bar-blue[b-45h0507kvs]   { background: #aecdf0; }

/* ── Toolbar filtri (etichetta sopra ogni controllo) ─────────────────── */

/* Toolbar: gap 12px, controlli alti 42px (standard), 12px fra le righe di filtro */
.pas-toolbar[b-45h0507kvs] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    padding: 12px 16px 14px;
    margin-bottom: 12px;
}

.pas-f[b-45h0507kvs] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }

.pas-toolbar .form-select[b-45h0507kvs],
.pas-toolbar .form-control[b-45h0507kvs] { min-height: var(--eco-ctl-h, 42px); }

.pas-f-grow[b-45h0507kvs] { flex: 1 1 180px; }

.pas-f-lbl[b-45h0507kvs] {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    white-space: nowrap;
}

.pas-search[b-45h0507kvs] { position: relative; }

.pas-search > i[b-45h0507kvs] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #8696a7;
    font-size: 0.8rem;
    pointer-events: none;
}

.pas-search > input[b-45h0507kvs] { padding-left: 30px; }

.pas-minmax[b-45h0507kvs] { display: flex; align-items: center; gap: 0.3rem; }
.pas-minmax > input[b-45h0507kvs] { width: 5.2rem; }
.pas-minmax-sep[b-45h0507kvs] { color: #8696a7; font-size: 0.8rem; }

/* ── Filtri rapidi ───────────────────────────────────────────────────── */

.pas-chips[b-45h0507kvs] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 12px;
}

.pas-chip[b-45h0507kvs] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #dce6f2;
    background: #fff;
    color: #5B7A9A;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 500;
    padding: 0.35rem 0.8rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.pas-chip:hover[b-45h0507kvs] { border-color: #b5cfe8; color: #1E334C; }

.pas-chip-on[b-45h0507kvs] {
    background: #1E334C;
    border-color: #1E334C;
    color: #fff;
    font-weight: 600;
}

.pas-chip-badge[b-45h0507kvs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    background: #e8edf4;
    color: #5B7A9A;
}

.pas-chip-badge-red[b-45h0507kvs]    { background: #fdecea; color: #c0392b; }
.pas-chip-badge-orange[b-45h0507kvs] { background: #fef3e2; color: #e67e22; }
.pas-chip-badge-yellow[b-45h0507kvs] { background: #fff8dc; color: #8a6d00; }
.pas-chip-badge-navy[b-45h0507kvs]   { background: #EDF3FB; color: #1E334C; }

.pas-chip-on .pas-chip-badge[b-45h0507kvs] { background: rgba(255, 255, 255, .18); color: #fff; }

.pas-pulisci[b-45h0507kvs] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    border: 1px solid #dce6f2;
    background: #fff;
    color: #5B7A9A;
    border-radius: 8px;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.35rem 0.7rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, color 0.12s;
}

.pas-pulisci:hover[b-45h0507kvs] { background: #f7fafd; color: #1E334C; }

/* ── Striscia mesi a segmenti (mockup): conteggio + totale del mese,
      selezionato in evidenza, "Totale anno" in coda. ─────────────────── */

.pas-months-bar[b-45h0507kvs] {
    display: flex;
    align-items: stretch;
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #fff;
    padding: 0.3rem;
    gap: 0.15rem;
    margin-bottom: 12px;
}

.pas-months-bar[b-45h0507kvs]::-webkit-scrollbar { height: 3px; }
.pas-months-bar[b-45h0507kvs]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 3px; }

.pas-mth-btn[b-45h0507kvs] {
    flex: 1 0 auto;
    background: none;
    border: 1px solid transparent;
    border-radius: 8px;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #5B7A9A;
    cursor: pointer;
    white-space: nowrap;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    transition: color 0.12s, border-color 0.12s, background 0.12s;
    outline: none;
}

.pas-mth-top[b-45h0507kvs] { display: flex; align-items: center; gap: 0.3rem; }

.pas-mth-tot[b-45h0507kvs] { font-size: 0.65rem; color: #8696a7; font-weight: 500; }

.pas-mth-btn:hover[b-45h0507kvs] { color: #1E334C; background: #f7fafd; }

.pas-mth-btn.active[b-45h0507kvs] {
    color: #1E334C;
    background: #F5F8FC;
    border-color: #b5cfe8;
    box-shadow: 0 1px 2px rgba(30, 51, 76, .06);
}

.pas-anno-tot[b-45h0507kvs] {
    margin-left: auto;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 0.1rem;
    padding: 0.4rem 0.85rem 0.4rem 1.25rem;
    border-left: 1px solid #edf2f7;
}

.pas-anno-tot-lbl[b-45h0507kvs] {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    white-space: nowrap;
}

.pas-anno-tot-val[b-45h0507kvs] { font-size: 0.95rem; font-weight: 700; color: #1E334C; white-space: nowrap; }

.pas-mbadge[b-45h0507kvs] {
    display: inline-block;
    padding: 0.08em 0.45em;
    border-radius: 10px;
    font-size: 0.67rem;
    font-weight: 700;
    line-height: 1.4;
}

.pas-mbadge-ok[b-45h0507kvs]     { background: #e8edf4; color: #5B7A9A; }
.pas-mbadge-warn[b-45h0507kvs]   { background: #fff3cd; color: #856404; }
.pas-mbadge-danger[b-45h0507kvs] { background: #fdecea; color: #c0392b; }

/* ── Main card ───────────────────────────────────────────────────────── */

.pas-card[b-45h0507kvs] {
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    overflow: hidden;
}

/* ── Table ───────────────────────────────────────────────────────────── */

.pas-table[b-45h0507kvs] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

.pas-table thead th[b-45h0507kvs] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.pas-table tbody td[b-45h0507kvs] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    color: #17324d;
    vertical-align: middle;
}

.pas-table tfoot td[b-45h0507kvs] {
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    background: #f5f8fc;
    font-size: 0.84rem;
    border-top: 2px solid #dce6f2;
}

/* Prima/ultima colonna: bordo standard (la card non ha header/toolbar interni) */
.pas-table th:first-child[b-45h0507kvs], .pas-table td:first-child[b-45h0507kvs] { padding-left: var(--eco-cell-edge, 20px); }
.pas-table th:last-child[b-45h0507kvs],  .pas-table td:last-child[b-45h0507kvs]  { padding-right: var(--eco-cell-edge, 20px); white-space: nowrap; }
.pas-table th:first-child input[type="checkbox"][b-45h0507kvs],
.pas-table td:first-child input[type="checkbox"][b-45h0507kvs] { margin: 0; vertical-align: middle; }

/* ── Rows ────────────────────────────────────────────────────────────── */

.pas-row:hover td[b-45h0507kvs] { background: #f7fafd; }

/* Priorità a colpo d'occhio (stessa semantica degli alert del software):
   rosso = scaduta, arancio = oggi, giallo = entro 7 giorni, verde = pagata. */
.pas-prio-scaduta td:first-child[b-45h0507kvs] { box-shadow: inset 4px 0 0 #c62828; }
.pas-prio-oggi    td:first-child[b-45h0507kvs] { box-shadow: inset 4px 0 0 #e67e22; }
.pas-prio-presto  td:first-child[b-45h0507kvs] { box-shadow: inset 4px 0 0 #e6a817; }
.pas-prio-pagata  td:first-child[b-45h0507kvs] { box-shadow: inset 4px 0 0 #3a8f47; }

.pas-row-scaduto td[b-45h0507kvs] { background: #fffcfc; }

.pas-row-saldato[b-45h0507kvs] { opacity: 0.7; }
.pas-row-saldato td[b-45h0507kvs] { background: #f7fdf8; }

/* ── Cell content ────────────────────────────────────────────────────── */

.pas-nome[b-45h0507kvs]    { font-weight: 600; color: #1E334C; font-size: 0.875rem; }
.pas-sub[b-45h0507kvs]     { font-size: 0.78rem; color: #5B7A9A; }
.pas-data[b-45h0507kvs]    { font-size: 0.875rem; color: #1E334C; white-space: nowrap; }
.pas-importo[b-45h0507kvs] { font-weight: 700; color: #1E334C; font-size: 0.875rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pas-iban[b-45h0507kvs]    { font-size: 0.78rem; color: #334155; font-family: monospace; }
.pas-ritardo[b-45h0507kvs] { font-size: 0.72rem; color: #c0392b; margin-top: 0.1rem; }

/* ── Footer ──────────────────────────────────────────────────────────── */

.pas-tfoot-label[b-45h0507kvs] { font-weight: 700; color: #1E334C; }
.pas-tfoot-count[b-45h0507kvs] { font-size: 0.78rem; color: #5B7A9A; }
.pas-tfoot-value[b-45h0507kvs] { font-weight: 700; color: #1E334C; }

/* ── Badges ──────────────────────────────────────────────────────────── */

.pas-badge[b-45h0507kvs] {
    display: inline-block;
    padding: 0.2em 0.6em;
    border-radius: 10px;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

.pas-badge-ok[b-45h0507kvs]     { background: #eafaf1; color: #27ae60; }
.pas-badge-warn[b-45h0507kvs]   { background: #fef9e7; color: #e67e22; }
.pas-badge-danger[b-45h0507kvs] { background: #fdecea; color: #c0392b; }
.pas-badge-info[b-45h0507kvs]   { background: #ebf5fe; color: #2980b9; }

/* ── Stato column ────────────────────────────────────────────────────── */

.pas-stato-cell[b-45h0507kvs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
}

.pas-btn-paga[b-45h0507kvs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.25em 0.8em;
    border-radius: 20px;
    border: 1px solid #94A3B8;
    background: transparent;
    color: #1E334C;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.5;
    transition: background 0.12s, border-color 0.12s;
}

.pas-btn-paga:hover:not(:disabled)[b-45h0507kvs] { background: #EDF3FB; border-color: #5B7A9A; }
.pas-btn-paga:disabled[b-45h0507kvs] { opacity: 0.55; cursor: default; }

/* ── PDF column ──────────────────────────────────────────────────────── */

/* Icon button di riga: almeno 32×32 (standard) */
.pas-pdf-btn[b-45h0507kvs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    color: #c0392b;
    font-size: 1rem;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
}

.pas-pdf-btn:hover[b-45h0507kvs] { background: #fdecea; color: #922b21; }

.pas-pdf-gen-btn[b-45h0507kvs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px dashed #94A3B8;
    background: transparent;
    color: #5B7A9A;
    font-size: 0.875rem;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
    padding: 0;
}

.pas-pdf-gen-btn:hover:not(:disabled)[b-45h0507kvs] { background: #EDF3FB; border-color: #5B7A9A; color: #1E334C; }
.pas-pdf-gen-btn:disabled[b-45h0507kvs] { opacity: 0.55; cursor: default; }

/* ── Colonna commessa e azioni ───────────────────────────────────────── */

.pas-commessa-chip[b-45h0507kvs] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    color: #1E334C;
    background: #EDF3FB;
    border-radius: 6px;
    padding: 0.1rem 0.4rem;
    margin-right: 0.25rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Icon button canonico 36×36 (token globali in app.css) */
.pas-icon-btn[b-45h0507kvs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.pas-icon-btn:hover[b-45h0507kvs] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

.pas-icon-btn.dropdown-toggle[b-45h0507kvs]::after { display: none; }

/* ── Barra selezione sticky ──────────────────────────────────────────── */

.pas-bulk-sticky[b-45h0507kvs] {
    position: sticky;
    top: 0.5rem;
    z-index: 50;
}

/* ── Empty state ─────────────────────────────────────────────────────── */

.pas-empty[b-45h0507kvs] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.pas-empty .bi[b-45h0507kvs] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.pas-empty-title[b-45h0507kvs] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.pas-empty-text[b-45h0507kvs] {
    font-size: 0.875rem;
    color: #8696a7;
}
/* _content/GestioneCommessa.Shared/Pages/Acquisti/SdI2Json.razor.rz.scp.css */
/* SdI XML */

/* ── Breadcrumb ──────────────────────────────────────────────────────── */

.sdi-breadcrumb[b-z3gzunvhfb] {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.78rem;
    color: #5B7A9A;
}

.sdi-bc-item + .sdi-bc-item[b-z3gzunvhfb]::before {
    content: '›';
    margin: 0 0.4rem;
    color: #b0c4d8;
}

.sdi-bc-item a[b-z3gzunvhfb] { color: #5B7A9A; text-decoration: none; }
.sdi-bc-item a:hover[b-z3gzunvhfb] { color: #1E334C; text-decoration: underline; }
.sdi-bc-item.active[b-z3gzunvhfb] { color: #1E334C; font-weight: 500; }

/* ── Step indicator ──────────────────────────────────────────────────── */

.sdi-steps[b-z3gzunvhfb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sdi-step[b-z3gzunvhfb] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: #8696a7;
    padding: 0.3em 0.8em;
    border-radius: 20px;
    background: #f0f4f8;
    border: 1px solid #dce6f2;
}

.sdi-step-active[b-z3gzunvhfb] {
    color: #1E334C;
    background: #edf3fb;
    border-color: #b5cfe8;
    font-weight: 700;
}

.sdi-step-num[b-z3gzunvhfb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2em;
    height: 1.2em;
    border-radius: 50%;
    background: #1E334C;
    color: #fff;
    font-size: 0.7em;
    font-weight: 700;
}

.sdi-step-active .sdi-step-num[b-z3gzunvhfb] { background: #1E334C; }

.sdi-step-arrow[b-z3gzunvhfb] {
    color: #b0c4d8;
    font-size: 0.75rem;
}

/* ── Filter bar ──────────────────────────────────────────────────────── */

.sdi-filter-bar[b-z3gzunvhfb] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    align-items: center;
}

.sdi-filter-btn[b-z3gzunvhfb] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 20px;
    padding: 0.3rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
    outline: none;
}

.sdi-filter-btn:hover[b-z3gzunvhfb] { background: #f0f4f8; border-color: #b5cfe8; color: #1E334C; }

.sdi-filter-btn.active[b-z3gzunvhfb] {
    background: #1E334C;
    border-color: #1E334C;
    color: #fff;
}

.sdi-filter-ok.active[b-z3gzunvhfb]    { background: #3a8f47; border-color: #3a8f47; }
.sdi-filter-warn.active[b-z3gzunvhfb]  { background: #C89540; border-color: #C89540; }
.sdi-filter-danger.active[b-z3gzunvhfb] { background: #C0614F; border-color: #C0614F; }

/* ── Badges filtro ───────────────────────────────────────────────────── */

.sdi-fbadge[b-z3gzunvhfb] {
    display: inline-block;
    padding: 0.08em 0.45em;
    border-radius: 10px;
    font-size: 0.67rem;
    font-weight: 700;
    line-height: 1.4;
}

.sdi-fbadge-nc[b-z3gzunvhfb]     { background: #e8edf4; color: #5B7A9A; }
.sdi-fbadge-ok[b-z3gzunvhfb]     { background: #eafaf1; color: #27ae60; }
.sdi-fbadge-warn[b-z3gzunvhfb]   { background: #fff3cd; color: #856404; }
.sdi-fbadge-danger[b-z3gzunvhfb] { background: #fdecea; color: #c0392b; }

.sdi-filter-btn.active .sdi-fbadge[b-z3gzunvhfb] { background: rgba(255,255,255,0.25); color: #fff; }

/* ── Table ───────────────────────────────────────────────────────────── */

.sdi-table thead th[b-z3gzunvhfb] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.sdi-row:hover td[b-z3gzunvhfb] { background: #f7fafd; }

.sdi-row-unmatched td[b-z3gzunvhfb] { background: #fffdf5; }
.sdi-row-unmatched:hover td[b-z3gzunvhfb] { background: #fff8e8; }

/* ── Empty states ────────────────────────────────────────────────────── */

.sdi-empty[b-z3gzunvhfb] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.sdi-empty .bi[b-z3gzunvhfb] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.sdi-empty-title[b-z3gzunvhfb] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.sdi-empty-text[b-z3gzunvhfb] {
    font-size: 0.875rem;
    color: #8696a7;
}
/* _content/GestioneCommessa.Shared/Pages/Acquisti/_ImputazioneGuidata.razor.rz.scp.css */
/* Imputazione costi — percorso guidato in modale (2026-08-27)
   Palette del design system: navy #001B48 / #1E334C, bordi #DDE5EF, superfici #F5F8FC.
   Le classi det-modal* e i token --btn-* vivono in app.css (globali); qui solo il layout. */

/* ── Cornice ─────────────────────────────────────────────────────────────── */

.ig-overlay[b-n9t51busxf] { padding: 3vh 16px 16px; }

.ig-modal[b-n9t51busxf] {
    max-width: 1240px;
    max-height: 94vh;
    height: 94vh;
}

.ig-header[b-n9t51busxf] { padding: 14px 20px; }
.ig-header__txt[b-n9t51busxf] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ig-title[b-n9t51busxf] { font-size: 1.05rem; font-weight: 700; color: #1E334C; }
.ig-subtitle[b-n9t51busxf] { font-size: .8rem; color: #5B7A9A; }

.ig-body[b-n9t51busxf] {
    display: grid;
    grid-template-columns: 280px 1fr;
    flex: 1 1 auto;
    min-height: 0;
}

.ig-footer[b-n9t51busxf] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border-top: 1px solid #DDE5EF;
    background: #FBFCFE;
    flex-shrink: 0;
}

/* ── Rail: stepper + riepilogo ───────────────────────────────────────────── */

.ig-rail[b-n9t51busxf] {
    background: #F5F8FC;
    border-right: 1px solid #DDE5EF;
    padding: 20px 18px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.ig-steps[b-n9t51busxf] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }

.ig-step[b-n9t51busxf] {
    display: flex;
    gap: 10px;
    padding: 8px 6px;
    border-radius: 10px;
    color: #8FA3B8;
    cursor: pointer;
}
.ig-step:hover[b-n9t51busxf] { background: #EDF3FB; }

.ig-step__dot[b-n9t51busxf] {
    width: 26px; height: 26px; flex: 0 0 auto;
    border-radius: 50%;
    border: 1.5px solid #C7D2E2;
    background: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .78rem; font-weight: 700;
}
.ig-step__txt[b-n9t51busxf] { display: flex; flex-direction: column; min-width: 0; }
.ig-step__lbl[b-n9t51busxf] { font-size: .86rem; font-weight: 600; line-height: 1.2; }
.ig-step__sub[b-n9t51busxf] { font-size: .72rem; color: #8FA3B8; line-height: 1.25; margin-top: 2px; }

.ig-step.is-active[b-n9t51busxf] { color: #001B48; }
.ig-step.is-active .ig-step__dot[b-n9t51busxf] { border-color: #001B48; background: #001B48; color: #fff; box-shadow: 0 0 0 3px rgba(0, 27, 72, .12); }
.ig-step.is-active .ig-step__sub[b-n9t51busxf] { color: #5B7A9A; }
.ig-step.is-done[b-n9t51busxf] { color: #1E334C; }
.ig-step.is-done .ig-step__dot[b-n9t51busxf] { border-color: #23824F; background: #E8F6EE; color: #23824F; }

.ig-riep[b-n9t51busxf] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ig-riep__title[b-n9t51busxf] { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #718096; margin-bottom: 4px; }
.ig-riep__row[b-n9t51busxf] { display: flex; justify-content: space-between; gap: 8px; font-size: .8rem; color: #5B7A9A; }
.ig-riep__row strong[b-n9t51busxf] { color: #1E334C; font-variant-numeric: tabular-nums; }
.ig-riep__row strong.is-ok[b-n9t51busxf] { color: #23824F; }
.ig-riep__row strong.is-warn[b-n9t51busxf] { color: #A5820F; }
.ig-riep__row strong.is-err[b-n9t51busxf] { color: #C0392B; }
.ig-riep__sep[b-n9t51busxf] { border-top: 1px dashed #DDE5EF; margin: 4px 0; }
.ig-riep__pct[b-n9t51busxf] { font-size: .72rem; color: #5B7A9A; text-align: right; }

.ig-progress[b-n9t51busxf] { height: 6px; background: #E6EDF6; border-radius: 6px; overflow: hidden; margin-top: 6px; }
.ig-progress--lg[b-n9t51busxf] { height: 10px; margin-top: 0; }
.ig-progress__bar[b-n9t51busxf] { height: 100%; background: #001B48; border-radius: 6px; transition: width .2s; }

/* ── Contenuto ───────────────────────────────────────────────────────────── */

.ig-main[b-n9t51busxf] { padding: 22px 26px; overflow-y: auto; min-width: 0; }

.ig-h[b-n9t51busxf] { font-size: 1.1rem; font-weight: 700; color: #1E334C; margin: 0 0 4px; }
.ig-p[b-n9t51busxf] { font-size: .88rem; color: #5B7A9A; margin: 0 0 18px; }
.ig-lbl[b-n9t51busxf] { display: block; font-size: .76rem; font-weight: 600; color: #4A6178; margin-bottom: 4px; }

.ig-info[b-n9t51busxf] {
    display: flex; gap: 10px; align-items: flex-start;
    background: #F5F8FC; border: 1px solid #DDE5EF; border-radius: 10px;
    padding: 10px 14px; font-size: .82rem; color: #1E334C;
}
.ig-info > i[b-n9t51busxf] { color: #001B48; margin-top: 1px; }

.ig-empty[b-n9t51busxf] { text-align: center; color: #8FA3B8; font-size: .84rem; padding: 18px; }

/* Step 1 — card tipo */
.ig-cards[b-n9t51busxf] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 16px; }

.ig-card[b-n9t51busxf] {
    display: flex; gap: 12px; align-items: flex-start; text-align: left;
    background: #fff; border: 1.5px solid #DDE5EF; border-radius: 12px;
    padding: 16px; cursor: pointer; transition: border-color .12s, background .12s, box-shadow .12s;
}
.ig-card:hover[b-n9t51busxf] { border-color: #A9B4C9; }
.ig-card.is-sel[b-n9t51busxf] { border-color: #001B48; background: #F7F9FD; box-shadow: 0 0 0 3px rgba(0, 27, 72, .08); }

.ig-card__radio[b-n9t51busxf] {
    width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px;
    border-radius: 50%; border: 1.5px solid #C7D2E2; background: #fff;
    display: inline-flex; align-items: center; justify-content: center;
}
.ig-card.is-sel .ig-card__radio[b-n9t51busxf] { border-color: #001B48; }
.ig-card__radio > span[b-n9t51busxf] { width: 9px; height: 9px; border-radius: 50%; background: #001B48; }
.ig-card__ico[b-n9t51busxf] {
    width: 38px; height: 38px; flex: 0 0 auto; border-radius: 10px;
    background: #EDF3FB; color: #001B48; display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem;
}
.ig-card__body[b-n9t51busxf] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ig-card__title[b-n9t51busxf] { font-size: .92rem; font-weight: 700; color: #1E334C; display: flex; align-items: center; flex-wrap: wrap; }
.ig-card__desc[b-n9t51busxf] { font-size: .8rem; color: #5B7A9A; line-height: 1.35; }

/* Step 2 — destinazione */
.ig-ai[b-n9t51busxf] {
    display: flex; align-items: center; gap: 14px;
    background: #EDF3FB; border: 1px solid #C9DAEE; border-radius: 12px;
    padding: 12px 16px; margin-bottom: 16px;
}
.ig-ai__txt[b-n9t51busxf] { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.ig-ai__lbl[b-n9t51busxf] { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #001B48; }
.ig-ai__val[b-n9t51busxf] { font-size: .92rem; font-weight: 600; color: #1E334C; }
.ig-ai__why[b-n9t51busxf] { font-size: .78rem; color: #5B7A9A; }

.ig-dest[b-n9t51busxf] { display: flex; flex-direction: column; gap: 12px; max-width: 620px; }
.ig-dest__step[b-n9t51busxf] { position: relative; }

.ig-path[b-n9t51busxf] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
    background: #F5F8FC; border-left: 3px solid #001B48; border-radius: 0 8px 8px 0;
    padding: 8px 12px; font-size: .82rem; color: #1E334C; margin-top: 4px;
}
.ig-path__arr[b-n9t51busxf] { color: #8FA3B8; }

.ig-voci[b-n9t51busxf] { display: flex; flex-wrap: wrap; gap: 6px; }
.ig-voce[b-n9t51busxf] {
    border: 1px solid #C7D2E2; background: #fff; color: #1E334C;
    border-radius: 999px; padding: 4px 12px; font-size: .78rem; font-weight: 600; cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
}
.ig-voce:hover[b-n9t51busxf] { background: #EDF3FB; }
.ig-voce.is-on[b-n9t51busxf] { background: #001B48; border-color: #001B48; color: #fff; }

.ig-misto[b-n9t51busxf] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ig-misto__col[b-n9t51busxf] { background: #fff; border: 1px solid #DDE5EF; border-radius: 12px; padding: 14px; min-width: 0; }
.ig-misto__title[b-n9t51busxf] { font-size: .84rem; font-weight: 600; color: #1E334C; margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }

/* Badge tipo (soft, coerenti con aq-badge-*) */
.ig-badge[b-n9t51busxf] { display: inline-block; padding: .2em .6em; border-radius: 10px; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.ig-badge--cost[b-n9t51busxf] { background: #edf6ea; color: #3a6b27; }
.ig-badge--exp[b-n9t51busxf]  { background: #e8f1fa; color: #2c6a9e; }

/* Step 3 — KPI, suggerimenti, toolbar, bulk */
.ig-kpis[b-n9t51busxf] { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-bottom: 10px; }
.ig-kpi[b-n9t51busxf] { background: #fff; border: 1px solid #DDE5EF; border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.ig-kpi > span[b-n9t51busxf] { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #718096; }
.ig-kpi > strong[b-n9t51busxf] { font-size: 1.05rem; color: #1E334C; font-variant-numeric: tabular-nums; }
.ig-kpi > strong.is-ok[b-n9t51busxf] { color: #23824F; }
.ig-kpi > strong.is-warn[b-n9t51busxf] { color: #A5820F; }
.ig-kpi > strong.is-err[b-n9t51busxf] { color: #C0392B; }

.ig-sugg[b-n9t51busxf] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.ig-sugg__item[b-n9t51busxf] {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    background: #EDF3FB; border: 1px solid #C9DAEE; border-radius: 10px; padding: 8px 14px; font-size: .82rem; color: #1E334C;
}

.ig-toolbar[b-n9t51busxf] { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.ig-chips[b-n9t51busxf] { display: flex; flex-wrap: wrap; gap: 6px; }
.ig-chip[b-n9t51busxf] {
    border: 1px solid #C7D2E2; background: #fff; color: #1E334C; border-radius: 999px;
    padding: 4px 10px; font-size: .76rem; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
}
.ig-chip:hover[b-n9t51busxf] { background: #EDF3FB; }
.ig-chip.is-on[b-n9t51busxf] { background: #001B48; border-color: #001B48; color: #fff; }
.ig-chip__n[b-n9t51busxf] { font-size: .68rem; opacity: .75; }
.ig-search[b-n9t51busxf] { margin-left: auto; flex: 1 1 200px; max-width: 320px; }

.ig-bulk[b-n9t51busxf] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    background: #F5F8FC; border: 1px solid #DDE5EF; border-radius: 10px; padding: 8px 12px; margin-bottom: 12px; font-size: .8rem;
}
.ig-bulk__all[b-n9t51busxf] { display: inline-flex; align-items: center; gap: 8px; margin: 0; cursor: pointer; color: #1E334C; font-weight: 600; }
.ig-bulk__n[b-n9t51busxf] { color: #5B7A9A; margin-right: auto; }

/* Quote a importo */
.ig-quote[b-n9t51busxf] { background: #fff; border: 1px solid #DDE5EF; border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; }
.ig-quote__head[b-n9t51busxf] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.ig-quote__title[b-n9t51busxf] { font-size: .84rem; font-weight: 700; color: #1E334C; }

/* Gruppi DDT */
.ig-ddt[b-n9t51busxf] { background: #fff; border: 1px solid #DDE5EF; border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.ig-ddt__head[b-n9t51busxf] {
    display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer;
    background: #FBFCFE; font-size: .84rem; color: #1E334C;
}
.ig-ddt__head:hover[b-n9t51busxf] { background: #F5F8FC; }
.ig-ddt.is-open .ig-ddt__head[b-n9t51busxf] { border-bottom: 1px solid #DDE5EF; }
.ig-ddt__chev[b-n9t51busxf] { color: #8FA3B8; font-size: .8rem; }
.ig-ddt__title[b-n9t51busxf] { font-weight: 700; }
.ig-ddt__meta[b-n9t51busxf] { color: #5B7A9A; font-size: .78rem; }
.ig-ddt__stato[b-n9t51busxf] { margin-left: auto; }
.ig-ddt__sel[b-n9t51busxf] { margin: 0; display: inline-flex; }
.ig-more[b-n9t51busxf] {
    display: block; width: 100%; border: none; border-top: 1px dashed #DDE5EF; background: #FBFCFE;
    color: #001B48; font-size: .78rem; font-weight: 600; padding: 8px; cursor: pointer;
}
.ig-more:hover[b-n9t51busxf] { background: #EDF3FB; }

/* Tabelle compatte */
.ig-table[b-n9t51busxf] { width: 100%; border-collapse: collapse; font-size: .8rem; color: #1E334C; }
.ig-table th[b-n9t51busxf] {
    font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #718096;
    padding: 7px 10px; border-bottom: 1px solid #DDE5EF; background: #FBFCFE; white-space: nowrap;
}
.ig-table td[b-n9t51busxf] { padding: 7px 10px; border-bottom: 1px solid #EEF2F7; vertical-align: middle; }
.ig-table tbody tr:last-child td[b-n9t51busxf] { border-bottom: none; }
.ig-table--righe tbody tr[b-n9t51busxf] { cursor: pointer; }
.ig-table--righe tbody tr:hover td[b-n9t51busxf] { background: #F5F8FC; }
.ig-table--righe tbody tr.is-sel td[b-n9t51busxf] { background: #EDF3FB; }
.ig-table--righe tbody tr.has-warn td:first-child[b-n9t51busxf] { box-shadow: inset 3px 0 0 #E8B84A; }
.ig-desc[b-n9t51busxf] { max-width: 380px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ig-dest[b-n9t51busxf] { font-size: .78rem; }
td.ig-dest[b-n9t51busxf] { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Step 4 */
.ig-stato[b-n9t51busxf] { display: flex; align-items: center; gap: 8px; border-radius: 10px; padding: 10px 14px; font-size: .86rem; font-weight: 600; margin: 4px 0 16px; }
.ig-stato--ok[b-n9t51busxf] { background: #E8F6EE; color: #23824F; }
.ig-stato--warn[b-n9t51busxf] { background: #FBF0D9; color: #A5820F; }
.ig-stato--err[b-n9t51busxf] { background: #FBEBED; color: #C0392B; }

.ig-riepdest[b-n9t51busxf] { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.ig-riepdest__grp[b-n9t51busxf] { background: #fff; border: 1px solid #DDE5EF; border-radius: 12px; overflow: hidden; }
.ig-riepdest__head[b-n9t51busxf] { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: #FBFCFE; border-bottom: 1px solid #DDE5EF; font-size: .86rem; }
.ig-riepdest__head strong[b-n9t51busxf] { margin-left: auto; color: #1E334C; }
.ig-riepdest__item[b-n9t51busxf] { border-bottom: 1px solid #EEF2F7; }
.ig-riepdest__item:last-child[b-n9t51busxf] { border-bottom: none; }
.ig-riepdest__row[b-n9t51busxf] { display: flex; align-items: center; gap: 14px; padding: 9px 14px; font-size: .82rem; cursor: pointer; }
.ig-riepdest__row:hover[b-n9t51busxf] { background: #F5F8FC; }
.ig-riepdest__lbl[b-n9t51busxf] { flex: 1; min-width: 0; color: #1E334C; }
.ig-riepdest__row strong[b-n9t51busxf] { font-variant-numeric: tabular-nums; }
.ig-riepdest__lines[b-n9t51busxf] { list-style: none; margin: 0; padding: 4px 14px 10px 30px; font-size: .76rem; color: #5B7A9A; display: flex; flex-direction: column; gap: 3px; }
.ig-riepdest__lines li[b-n9t51busxf] { display: flex; gap: 6px; }

.ig-anom[b-n9t51busxf] { background: #FFF9EC; border: 1px solid #F1DFAF; border-radius: 12px; padding: 12px 14px; margin-bottom: 16px; }
.ig-anom__head[b-n9t51busxf] { font-size: .84rem; font-weight: 700; color: #A5820F; margin-bottom: 6px; }
.ig-anom__list[b-n9t51busxf] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: .8rem; color: #1E334C; }
.ig-anom__list li[b-n9t51busxf] { display: flex; justify-content: space-between; gap: 10px; }

.ig-check[b-n9t51busxf] { display: inline-flex; align-items: center; gap: 8px; font-size: .84rem; color: #1E334C; cursor: pointer; }

/* Feedback finale */
.ig-done[b-n9t51busxf] { text-align: center; padding: 40px 20px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ig-done__ico[b-n9t51busxf] { width: 64px; height: 64px; border-radius: 50%; background: #E8F6EE; color: #23824F; display: inline-flex; align-items: center; justify-content: center; font-size: 2rem; margin-bottom: 6px; }
.ig-done__title[b-n9t51busxf] { font-weight: 800; color: #1E334C; margin: 0; }
.ig-done__txt[b-n9t51busxf] { color: #5B7A9A; font-size: .88rem; max-width: 480px; margin: 0 0 10px; }
.ig-done__kpis[b-n9t51busxf] { display: flex; gap: 24px; }
.ig-done__kpis > div[b-n9t51busxf] { display: flex; flex-direction: column; gap: 2px; }
.ig-done__kpis span[b-n9t51busxf] { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #718096; }
.ig-done__kpis strong[b-n9t51busxf] { font-size: 1.1rem; color: #1E334C; }
.ig-done__risp[b-n9t51busxf] { margin-top: 12px; font-size: .82rem; color: #5B7A9A; }

/* Editor secondario (sopra la modale principale) */
.ig-ed-backdrop[b-n9t51busxf] { z-index: 1060; background: rgba(16, 24, 40, .25); }
.ig-ed-overlay[b-n9t51busxf] { z-index: 1065; padding-top: 8vh; }
.ig-ed[b-n9t51busxf] { max-width: 640px; }
.ig-ed__riga[b-n9t51busxf] { background: #F5F8FC; border-radius: 8px; padding: 8px 12px; margin-bottom: 12px; }
.ig-ed__desc[b-n9t51busxf] { font-size: .86rem; font-weight: 600; color: #1E334C; }
.ig-ed__tipo[b-n9t51busxf] { display: flex; gap: 10px; margin-bottom: 12px; }
.ig-ed__radio[b-n9t51busxf] {
    display: inline-flex; align-items: center; gap: 8px; margin: 0; cursor: pointer;
    border: 1.5px solid #DDE5EF; border-radius: 10px; padding: 8px 12px; flex: 1;
}
.ig-ed__radio.is-on[b-n9t51busxf] { border-color: #001B48; background: #F7F9FD; }

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 1100px) {
    .ig-cards[b-n9t51busxf] { grid-template-columns: 1fr; }
    .ig-misto[b-n9t51busxf] { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
    .ig-overlay[b-n9t51busxf] { padding: 0; }
    .ig-modal[b-n9t51busxf] { max-width: 100%; height: 100vh; max-height: 100vh; border-radius: 0; }
    .ig-body[b-n9t51busxf] { grid-template-columns: 1fr; }
    .ig-rail[b-n9t51busxf] { border-right: none; border-bottom: 1px solid #DDE5EF; padding: 12px 14px; gap: 10px; }
    .ig-steps[b-n9t51busxf] { flex-direction: row; overflow-x: auto; gap: 8px; }
    .ig-step[b-n9t51busxf] { padding: 6px; }
    .ig-step__sub[b-n9t51busxf] { display: none; }
    .ig-riep[b-n9t51busxf] { display: none; }
    .ig-main[b-n9t51busxf] { padding: 14px; }
}

/* ── Step 2: "Assegna DDT" nell'intestazione del gruppo ─────────────────── */
.ig-ddt__btn[b-n9t51busxf] { margin-left: auto; white-space: nowrap; }
.ig-ddt__btn + .ig-ddt__sel[b-n9t51busxf] { margin-left: 8px; }

/* ── Step 3: fasi lavorative ──────────────────────────────────────────── */
.ig-fasi__commessa[b-n9t51busxf] { font-size: .86rem; color: #1E334C; margin: 14px 0 8px; display: flex; align-items: center; }
.ig-bulk__sel[b-n9t51busxf] { max-width: 320px; }
/* _content/GestioneCommessa.Shared/Pages/Admin/AiUsage.razor.rz.scp.css */
/* ── Admin — Telemetria AI ─────────────────────────────────────────────── */

/* KPI aggregate */
.au-kpi[b-o12z5ncd8i] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 0.85rem 1.1rem;
}

.au-kpi-icon[b-o12z5ncd8i] {
    font-size: 1.4rem;
    color: #0d6efd;
    opacity: .7;
    flex-shrink: 0;
}

.au-kpi-num[b-o12z5ncd8i] {
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.1;
    color: #1E334C;
}

.au-kpi-label[b-o12z5ncd8i] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #8696a7;
    margin-top: 0.15rem;
}

/* Card per modello */
.au-model-card[b-o12z5ncd8i] {
    background: white;
    border: 1px solid #e0e8f0;
    border-radius: 10px;
    padding: 1rem 1.1rem;
    height: 100%;
}

.au-model-haiku[b-o12z5ncd8i]    { border-top: 3px solid #198754; }
.au-model-sonnet[b-o12z5ncd8i]   { border-top: 3px solid #0d6efd; }
.au-model-opus[b-o12z5ncd8i]     { border-top: 3px solid #ffc107; }
.au-model-fable[b-o12z5ncd8i],
.au-model-mythos[b-o12z5ncd8i]   { border-top: 3px solid #212529; }
/* Motori di altri fornitori (cascata AI, 2026-09-18) */
.au-model-deepseek[b-o12z5ncd8i] { border-top: 3px solid #6f42c1; }
.au-model-total[b-o12z5ncd8i]    { border-top: 3px solid #1E334C; background: #f8fafc; }

/* Modello configurato che non ha ancora lavorato: c'è, ma si vede che è fermo */
.au-model-inattivo[b-o12z5ncd8i] { background: #fbfcfe; border-style: dashed; }
.au-model-inattivo .au-perc-badge[b-o12z5ncd8i] { opacity: .5; }

/* Badge per i modelli fuori dalla tavolozza Bootstrap */
.badge.au-badge-deepseek[b-o12z5ncd8i] { background: #6f42c1; color: #fff; }

.au-model-bar[b-o12z5ncd8i] {
    height: 6px;
    border-radius: 3px;
    background: #e9ecef;
    overflow: hidden;
}

.au-model-bar > div[b-o12z5ncd8i] {
    height: 100%;
    border-radius: 3px;
    transition: width 0.6s ease;
}

.au-perc-badge[b-o12z5ncd8i] {
    font-size: 0.68rem;
    font-weight: 700;
    background: rgba(30,51,76,0.09);
    color: #1E334C;
    border-radius: 8px;
    padding: 0.15em 0.5em;
    white-space: nowrap;
}

.au-stat-num[b-o12z5ncd8i] {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
}

.au-stat-num.au-cost[b-o12z5ncd8i] {
    font-size: 1rem;
    color: #495057;
}

.au-stat-label[b-o12z5ncd8i] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8696a7;
    margin-top: 0.1rem;
}

/* Riga espansa per modello nella tabella */
.au-model-row[b-o12z5ncd8i] {
    background: rgba(0, 0, 0, 0.018);
}

/* Badge percentuale di utilizzo nella tabella */
.au-share-badge[b-o12z5ncd8i] {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 700;
    background: rgba(30,51,76,0.10);
    color: #1E334C;
    border-radius: 8px;
    padding: 0.1em 0.4em;
    margin-left: 0.3em;
    vertical-align: middle;
}

/* Grafico SVG trend */
.au-trend-chart[b-o12z5ncd8i] {
    display: block;
    width: 100%;
    height: auto;
    max-height: 200px;
}

/* .btn-xs ora è globale (app.css, button system). */
/* _content/GestioneCommessa.Shared/Pages/Admin/BlobUsage.razor.rz.scp.css */
/* ── Admin — Telemetria Blob Storage ──────────────────────────────────── */

/* KPI aggregate */
.bu-kpi[b-4ddvhtsl9v] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 0.85rem 1.1rem;
}

.bu-kpi-icon[b-4ddvhtsl9v] {
    font-size: 1.4rem;
    color: #0d6efd;
    opacity: .7;
    flex-shrink: 0;
}

.bu-kpi-num[b-4ddvhtsl9v] {
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.1;
    color: #1E334C;
}

.bu-kpi-label[b-4ddvhtsl9v] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #8696a7;
    margin-top: 0.15rem;
}

/* Card per tipo di operazione */
.bu-tipo-card[b-4ddvhtsl9v] {
    background: white;
    border: 1px solid #e0e8f0;
    border-radius: 10px;
    padding: 1rem 1.1rem;
    height: 100%;
}

.bu-tipo-card.bu-tipo-scrittura[b-4ddvhtsl9v]          { border-top: 3px solid #0d6efd; }
.bu-tipo-card.bu-tipo-lettura[b-4ddvhtsl9v]            { border-top: 3px solid #198754; }
.bu-tipo-card.bu-tipo-eliminazione[b-4ddvhtsl9v]       { border-top: 3px solid #dc3545; }
.bu-tipo-card.bu-tipo-elenco[b-4ddvhtsl9v]             { border-top: 3px solid #6f42c1; }
.bu-tipo-card.bu-tipo-creazionecontenitore[b-4ddvhtsl9v] { border-top: 3px solid #fd7e14; }
.bu-tipo-card.bu-tipo-altro[b-4ddvhtsl9v]              { border-top: 3px solid #6c757d; }

.bu-bar[b-4ddvhtsl9v] {
    height: 6px;
    border-radius: 3px;
    background: #e9ecef;
    overflow: hidden;
}

.bu-bar > div[b-4ddvhtsl9v] {
    height: 100%;
    border-radius: 3px;
    transition: width 0.6s ease;
}

.bu-perc-badge[b-4ddvhtsl9v] {
    font-size: 0.68rem;
    font-weight: 700;
    background: rgba(30,51,76,0.09);
    color: #1E334C;
    border-radius: 8px;
    padding: 0.15em 0.5em;
    white-space: nowrap;
}

.bu-stat-num[b-4ddvhtsl9v] {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
}

.bu-stat-label[b-4ddvhtsl9v] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8696a7;
    margin-top: 0.1rem;
}

.bu-tipo-icon[b-4ddvhtsl9v] {
    font-size: 1rem;
}

/* Riga espansa per tipo nella tabella */
.bu-tipo-row[b-4ddvhtsl9v] {
    background: rgba(0, 0, 0, 0.018);
}

/* Badge percentuale */
.bu-share-badge[b-4ddvhtsl9v] {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 700;
    background: rgba(30,51,76,0.10);
    color: #1E334C;
    border-radius: 8px;
    padding: 0.1em 0.4em;
    margin-left: 0.3em;
    vertical-align: middle;
}

/* Grafico SVG trend */
.bu-trend-chart[b-4ddvhtsl9v] {
    display: block;
    width: 100%;
    height: auto;
    max-height: 200px;
}

/* .btn-xs ora è globale (app.css, button system). */

/* Barre spazio per tenant */
.bu-storage-bar[b-4ddvhtsl9v] {
    height: 8px;
    border-radius: 4px;
    background: #e9ecef;
    overflow: hidden;
}

.bu-storage-bar > div[b-4ddvhtsl9v] {
    height: 100%;
    border-radius: 4px;
    transition: width 0.6s ease;
    opacity: 0.8;
}
/* _content/GestioneCommessa.Shared/Pages/Admin/EmailSistema.razor.rz.scp.css */
.em-elenco[b-dnhwz1f8t1] {
    max-height: calc(100vh - 220px);
    overflow-y: auto;
}

.em-stato[b-dnhwz1f8t1] {
    font-size: .75rem;
    color: #6c757d;
}

.em-stato--mod[b-dnhwz1f8t1] {
    color: #B54708;
    font-weight: 600;
}

.list-group-item.active .em-stato[b-dnhwz1f8t1],
.list-group-item.active .em-stato--mod[b-dnhwz1f8t1] {
    color: rgba(255, 255, 255, .85);
}

.em-chip[b-dnhwz1f8t1] {
    font-family: Consolas, 'Courier New', monospace;
    font-size: .75rem;
    padding: 2px 8px;
}

.em-anteprima[b-dnhwz1f8t1] {
    display: block;
    width: 100%;
    height: 760px;
    border: 0;
    background: #F2F4F7;
}

.em-testo[b-dnhwz1f8t1] {
    white-space: pre-wrap;
    font-size: .8rem;
    max-height: 760px;
    overflow-y: auto;
}
/* _content/GestioneCommessa.Shared/Pages/Admin/PgMonitoring.razor.rz.scp.css */
/* PgMonitoring — Monitoraggio PostgreSQL */

.pgm-kpi[b-nebgylsfjq] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1rem 1.25rem;
}

.pgm-kpi-label[b-nebgylsfjq] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5B7A9A;
    margin-bottom: 0.25rem;
}

.pgm-kpi-value[b-nebgylsfjq] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
}

.pgm-kpi-sub[b-nebgylsfjq] {
    font-size: 0.72rem;
    color: #8696a7;
    margin-top: 0.2rem;
}

/* ── Section ──────────────────────────────────────────────────────────── */

.pgm-section[b-nebgylsfjq] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1rem 1.25rem;
}

.pgm-section-title[b-nebgylsfjq] {
    font-size: 0.78rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.75rem;
}

/* ── Connection bar ───────────────────────────────────────────────────── */

.pgm-bar-wrap[b-nebgylsfjq] {
    height: 10px;
    background: #e2e8f0;
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: 0.4rem;
}

.pgm-bar[b-nebgylsfjq] {
    height: 100%;
    border-radius: 99px;
    transition: width 0.5s ease;
}

.pgm-bar-ok[b-nebgylsfjq]     { background: #22c55e; }
.pgm-bar-warn[b-nebgylsfjq]   { background: #f59e0b; }
.pgm-bar-danger[b-nebgylsfjq] { background: #ef4444; }

.pgm-bar-sub[b-nebgylsfjq] {
    font-size: 0.75rem;
    color: #8696a7;
}

/* ── Table ────────────────────────────────────────────────────────────── */

.pgm-table[b-nebgylsfjq] { margin-bottom: 0; }

.pgm-table thead th[b-nebgylsfjq] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #dceaf8;
    padding: 0.5rem 0.6rem;
    white-space: nowrap;
}

.pgm-table tbody td[b-nebgylsfjq] {
    font-size: 0.82rem;
    padding: 0.45rem 0.6rem;
    vertical-align: middle;
    border-bottom: 1px solid #f0f5fb;
}

.pgm-table tfoot td[b-nebgylsfjq] {
    background: #f7fafd;
    border-top: 2px solid #dceaf8;
    padding: 0.5rem 0.6rem;
    font-size: 0.82rem;
}

/* ── Tier cards ───────────────────────────────────────────────────────── */

.pgm-tier-card[b-nebgylsfjq] {
    border: 1px solid #dceaf8;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    background: #fff;
}

.pgm-tier-current[b-nebgylsfjq] {
    border-color: #22c55e;
    background: #f0fdf4;
}

.pgm-tier-exceeded[b-nebgylsfjq] {
    border-color: #fecaca;
    background: #fff7f7;
    opacity: 0.7;
}

.pgm-tier-name[b-nebgylsfjq] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.25rem;
}

.pgm-tier-note[b-nebgylsfjq] {
    font-size: 0.72rem;
    color: #5B7A9A;
}

.pgm-tier-current .pgm-tier-note[b-nebgylsfjq] { color: #15803d; font-weight: 600; }
.pgm-tier-exceeded .pgm-tier-note[b-nebgylsfjq] { color: #dc2626; font-weight: 600; }
/* _content/GestioneCommessa.Shared/Pages/Admin/RegistroDdt.razor.rz.scp.css */
/* Registro DDT — stessi token dei Rapportini (FetchData.razor.css è scoped, si ridefinisce qui) */
.rd-page[b-fdsch7n718] { padding: 4px 0 40px; }
/* Standard di spaziatura (2026-09-04): 24px fra i blocchi, tabella th 12/16 h48, td 14/16 h54 */
.rd-head[b-fdsch7n718] { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; margin-bottom: var(--eco-block, 24px); }
.rd-head__txt[b-fdsch7n718] { min-width: 0; flex: 1 1 280px; }
.rd-head__title[b-fdsch7n718] { margin: 0; font-size: 1.32rem; font-weight: 700; line-height: 1.25; color: #1E334C; }
.rd-head__sub[b-fdsch7n718] { margin: 4px 0 0; font-size: .84rem; color: #5B7A9A; max-width: 78ch; }
.rd-head__actions[b-fdsch7n718] { display: flex; gap: 8px; align-items: flex-start; }
.rd-kpis[b-fdsch7n718] { margin-bottom: var(--eco-block, 24px); }
.rd-log[b-fdsch7n718] { margin-bottom: 12px; padding: 12px 16px; background: #F3F6FA; border: 1px solid #DCE6F3; border-radius: 10px; font-size: .82rem; color: #2F4A66; }
/* Titolo della card: header di sezione, 24px prima della tabella */
.rd-card-title[b-fdsch7n718] { font-weight: 700; color: #1E334C; margin-bottom: var(--eco-block, 24px); }

/* Tabella principale della pagina (il markup porta .table-sm, ma è l'elenco, non una tabella annidata) */
.rd-table th[b-fdsch7n718] {
    font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
}
.rd-table td[b-fdsch7n718] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
}
.rd-table th:first-child[b-fdsch7n718], .rd-table td:first-child[b-fdsch7n718] { padding-left: var(--eco-cell-edge, 20px); }
.rd-table th:last-child[b-fdsch7n718],  .rd-table td:last-child[b-fdsch7n718]  { padding-right: var(--eco-cell-edge, 20px); }
.rd-table .text-end[b-fdsch7n718] { white-space: nowrap; font-variant-numeric: tabular-nums; }
.rd-materiale[b-fdsch7n718] { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* _content/GestioneCommessa.Shared/Pages/Admin/SdiIngest.razor.rz.scp.css */
/* Monitoraggio dell'ingest SdI — classi si-* (il resto viene da economia.css: eco-*) */

/* ── Intestazione delle tabelle dentro eco-table-wrap ─────────────────────── */
.si-head[b-0ubnnx2obn] {
    padding: 16px var(--eco-cell-edge, 20px) 12px;
    font-weight: 700;
    color: #1E334C;
    border-bottom: 1px solid #DDE5EF;
}

.si-head__sub[b-0ubnnx2obn] {
    display: block;
    font-weight: 400;
    font-size: .8rem;
    color: #5B7A9A;
    margin-top: 2px;
}

/* ── Grafico ──────────────────────────────────────────────────────────────── */
.si-chart-wrap[b-0ubnnx2obn] { width: 100%; overflow-x: auto; }
.si-chart[b-0ubnnx2obn] { width: 100%; min-width: 560px; height: auto; display: block; }

.si-grid[b-0ubnnx2obn] { stroke: #EDF2F7; stroke-width: 1; }
.si-axis[b-0ubnnx2obn] { fill: #718096; font-size: 12px; font-variant-numeric: tabular-nums; }

/* Area di aggancio del tooltip più grande della barra; invisibile */
.si-hit[b-0ubnnx2obn] { fill: transparent; }
.si-bar:hover .si-hit[b-0ubnnx2obn] { fill: #F5F8FC; }

/* Spazio di 2px fra i segmenti impilati: il bordo ha il colore della superficie */
.si-seg[b-0ubnnx2obn] { stroke: #fff; stroke-width: 2; }

/* ── Legenda ──────────────────────────────────────────────────────────────── */
.si-legend[b-0ubnnx2obn] { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .8rem; color: #17324d; }
.si-legend__item[b-0ubnnx2obn] { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.si-legend__n[b-0ubnnx2obn] { color: #718096; font-variant-numeric: tabular-nums; }

.si-swatch[b-0ubnnx2obn] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}

/* ── Barra proporzionale degli esiti per tenant ───────────────────────────── */
.si-mini[b-0ubnnx2obn] {
    display: flex;
    gap: 2px;
    width: 140px;
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
    background: #EDF2F7;
}

.si-mini > span[b-0ubnnx2obn] { display: block; min-width: 2px; }

/* ── Elenco delle chiamate ────────────────────────────────────────────────── */
.si-listbar[b-0ubnnx2obn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 12px var(--eco-cell-edge, 20px);
    border-bottom: 1px solid #DDE5EF;
}

.si-chips[b-0ubnnx2obn] { display: flex; flex-wrap: wrap; gap: 6px; }

.si-chip[b-0ubnnx2obn] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border: 1px solid #DDE5EF;
    border-radius: 999px;
    background: #fff;
    font-size: .8rem;
    color: #17324d;
    white-space: nowrap;
}

.si-chip > span:last-child:not(.si-swatch)[b-0ubnnx2obn] { color: #718096; font-variant-numeric: tabular-nums; }
.si-chip:hover[b-0ubnnx2obn] { background: #F5F8FC; }
.si-chip.is-on[b-0ubnnx2obn] { border-color: #1E334C; background: #EDF3FB; }

/* ── Celle ────────────────────────────────────────────────────────────────── */
.si-msg[b-0ubnnx2obn] {
    max-width: 360px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #5B7A9A;
    font-size: .82rem;
}

.si-mono[b-0ubnnx2obn] { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .76rem; }

.si-link[b-0ubnnx2obn] { text-decoration: none; }
.si-link:hover .eco-primary[b-0ubnnx2obn] { text-decoration: underline; }

@media (max-width: 576px) {
    .si-mini[b-0ubnnx2obn] { width: 90px; }
    .si-msg[b-0ubnnx2obn] { max-width: 200px; }
}
/* _content/GestioneCommessa.Shared/Pages/Anagrafica/Details.razor.rz.scp.css */
/* Details — Anagrafica */

/* ── Tipo badge (reused from FetchData scope) ────────────────────────── */
.ag-tipo-badge[b-gfd8g1k690] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}
.tipo-cliente[b-gfd8g1k690]   { background: #e8f1fa; color: #2c6a9e; }
.tipo-fornitore[b-gfd8g1k690] { background: #fff4e2; color: #8a5500; }
.tipo-entrambi[b-gfd8g1k690]  { background: #f0ebfa; color: #6b3aaa; }
.tipo-nc[b-gfd8g1k690]        { background: #f4f5f7; color: #8696a7; }

/* ── Tab count badge ─────────────────────────────────────────────────── */
.ag-tab-count[b-gfd8g1k690] {
    display: inline-block;
    background: #e8edf4;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.1em 0.5em;
    border-radius: 10px;
    vertical-align: middle;
}

/* ── Detail card ─────────────────────────────────────────────────────── */
.ag-detail-card[b-gfd8g1k690] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
}

.ag-detail-card-title[b-gfd8g1k690] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8696a7;
    margin-bottom: 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #e8eff7;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ── Definition list ─────────────────────────────────────────────────── */
.ag-dl[b-gfd8g1k690] {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 0.35rem 1rem;
    margin: 0;
}

.ag-dl dt[b-gfd8g1k690] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #8696a7;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    align-self: baseline;
}

.ag-dl dd[b-gfd8g1k690] {
    font-size: 0.875rem;
    color: #1E334C;
    margin: 0;
}

/* ── Sedi ────────────────────────────────────────────────────────────── */
.ag-sede-item[b-gfd8g1k690] {
    padding: 0.6rem 0;
    border-bottom: 1px solid #f0f5fb;
}

.ag-sede-item:last-child[b-gfd8g1k690] {
    border-bottom: none;
    padding-bottom: 0;
}

.ag-sede-tipo[b-gfd8g1k690] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5B8DB8;
    margin-bottom: 0.2rem;
}

.ag-sede-riga[b-gfd8g1k690] {
    font-size: 0.875rem;
    color: #334155;
    line-height: 1.5;
}

/* ── Referenti ───────────────────────────────────────────────────────── */
.ag-ref-detail[b-gfd8g1k690] {
    padding: 0.75rem 0.9rem;
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 8px;
}

.ag-ref-nome[b-gfd8g1k690] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #1E334C;
}

.ag-ref-ruolo[b-gfd8g1k690] {
    font-size: 0.78rem;
    color: #5B8DB8;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 0.1rem;
}

.ag-ref-contact[b-gfd8g1k690] {
    font-size: 0.8125rem;
    color: #334155;
}

.ag-ref-contact .bi[b-gfd8g1k690] {
    font-size: 0.75rem;
    color: #8696a7;
}

.ag-ref-note[b-gfd8g1k690] {
    font-size: 0.8rem;
    color: #5B7A9A;
    font-style: italic;
    margin-top: 0.35rem;
}

/* ── Acquisti — accordion per anno ──────────────────────────────────── */

.ag-accordion-anni[b-gfd8g1k690] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ag-anno-section[b-gfd8g1k690] {
    border-radius: 6px;
    overflow: hidden;
}

/* Riga azzurra header accordion */
.ag-anno-header[b-gfd8g1k690] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #dceaf8;
    color: #1E334C;
    padding: 0.45rem 0.75rem;
    cursor: pointer;
    user-select: none;
    border-radius: 6px;
    transition: background .12s;
}

.ag-anno-section:has(.ag-anno-body) .ag-anno-header[b-gfd8g1k690] {
    border-radius: 6px 6px 0 0;
}

.ag-anno-header:hover[b-gfd8g1k690] {
    background: #c9dff5;
}

.ag-anno-count[b-gfd8g1k690] {
    font-size: 0.66rem;
    font-weight: 700;
    background: rgba(30,51,76,.13);
    color: #1E334C;
    padding: 0.1em 0.45em;
    border-radius: 8px;
}

.ag-anno-totale-header[b-gfd8g1k690] {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1E334C;
    white-space: nowrap;
}

/* Corpo accordion (lista fatture) */
.ag-anno-body[b-gfd8g1k690] {
    border: 1px solid #dceaf8;
    border-top: none;
    border-radius: 0 0 6px 6px;
    background: white;
}

.ag-acq-row[b-gfd8g1k690] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-bottom: 1px solid #f0f5fb;
    font-size: 0.8375rem;
}

.ag-acq-row:last-child[b-gfd8g1k690] {
    border-bottom: none;
}

.ag-acq-info[b-gfd8g1k690] {
    color: #334155;
}

.ag-acq-importo[b-gfd8g1k690] {
    font-weight: 600;
    color: #1E334C;
    white-space: nowrap;
}

/* Totale generale */
.ag-anno-totale-generale[b-gfd8g1k690] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.75rem;
    margin-top: 0.25rem;
    border-top: 2px solid #dceaf8;
    font-weight: 700;
    font-size: 0.875rem;
    color: #1E334C;
}

/* ── TAB dettaglio anagrafica (mockup 2026-07-31) ───────────────────────── */

.ag-tabs[b-gfd8g1k690] {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid #DDE5EF;
    margin-bottom: 1.25rem;
    overflow-x: auto;
    scrollbar-width: none;
}
.ag-tabs[b-gfd8g1k690]::-webkit-scrollbar { display: none; }

.ag-tab[b-gfd8g1k690] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    color: #60748F;
    white-space: nowrap;
    cursor: pointer;
    transition: color .12s, border-color .12s;
    margin-bottom: -1px;
}

.ag-tab:hover[b-gfd8g1k690] { color: #001B48; }

.ag-tab.active[b-gfd8g1k690] {
    color: #001B48;
    font-weight: 600;
    border-bottom-color: #001B48;
}

/* ── KPI panoramica: nastro a segmenti in card ──────────────────────────── */

.ag-kpis[b-gfd8g1k690] {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: .9rem .5rem;
    margin-bottom: 1.25rem;
}

.ag-kpi[b-gfd8g1k690] {
    flex: 1 1 0;
    min-width: 170px;
    padding: .1rem 1.1rem;
    border-left: 1px solid #EDF2F7;
}

.ag-kpi:first-child[b-gfd8g1k690] { border-left: none; }

.ag-kpi-lbl[b-gfd8g1k690] {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    white-space: nowrap;
}

.ag-kpi-val[b-gfd8g1k690] {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ag-kpi-val.is-warn[b-gfd8g1k690] { color: #B6831F; }

.ag-kpi-sub[b-gfd8g1k690] { font-size: .75rem; color: #8696a7; }

/* Badge categoria/tipo documento nella tabella "Ultimi documenti" */
.ag-doc-badge[b-gfd8g1k690] {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    color: #1E334C;
    background: #EDF3FB;
    border-radius: 6px;
    padding: .12rem .5rem;
    white-space: nowrap;
}
/* _content/GestioneCommessa.Shared/Pages/Anagrafica/FetchData.razor.rz.scp.css */
/* Anagrafica — FetchData */

.ag-page[b-sttthe6kx7] {
    padding: 0;
}

/* ── Tab bar ─────────────────────────────────────────────────────────── */

.ag-tab-btn[b-sttthe6kx7] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    outline: none;
    border-radius: 0;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
}

.ag-tab-btn:hover[b-sttthe6kx7] { color: #1E334C; }

.ag-tab-btn.active[b-sttthe6kx7] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

.ag-tab-count[b-sttthe6kx7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.4em;
    background: #e8edf4;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0 0.35em;
    border-radius: 10px;
    margin-left: 0.3rem;
    vertical-align: middle;
}

.ag-tab-btn.active .ag-tab-count[b-sttthe6kx7] {
    background: rgba(30, 51, 76, 0.15);
    color: #1E334C;
}

/* ── Filter select ───────────────────────────────────────────────────── */

.ag-filter-select[b-sttthe6kx7] {
    width: auto;
    min-width: 160px;
}

/* ── Bulk bar ────────────────────────────────────────────────────────── */

.ag-bulk-bar[b-sttthe6kx7] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    background: #edf3fb;
    border: 1px solid #c8d8ee;
    border-radius: 8px;
    padding: 0.55rem 1rem;
}

.ag-bulk-count[b-sttthe6kx7] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    white-space: nowrap;
}

/* ── Riga di ricerca e filtri (2026-09-04) ────────────────────────────
   Il markup ha solo classi Bootstrap (`d-flex gap-2 mb-3`): qui la riga prende
   lo standard toolbar — controlli alti var(--eco-ctl-h), gap 12px e stacco
   var(--eco-block) prima della tabella. `!important` serve a battere le utility. */
.ag-page .d-flex.gap-2.mb-3[b-sttthe6kx7] {
    gap: 12px !important;
    margin-bottom: var(--eco-block, 24px) !important;
}
.ag-page .d-flex.gap-2.mb-3 .form-control[b-sttthe6kx7],
.ag-page .d-flex.gap-2.mb-3 .form-select[b-sttthe6kx7] { min-height: var(--eco-ctl-h, 42px); }
/* La barra di selezione, quando c'è, è l'ultimo blocco prima della tabella */
.ag-bulk-bar[b-sttthe6kx7] { margin-bottom: var(--eco-block, 24px) !important; }

/* ── Loading state ───────────────────────────────────────────────────── */

.ag-loading-box[b-sttthe6kx7] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: #5B7A9A;
    font-size: 0.875rem;
}

.ag-spinner[b-sttthe6kx7] {
    border: 3px solid #DCE3EE;
    border-top: 3px solid #2E3C66;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: ag-spin-b-sttthe6kx7 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes ag-spin-b-sttthe6kx7 {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Empty state ─────────────────────────────────────────────────────── */

.ag-empty[b-sttthe6kx7] {
    text-align: center;
    padding: 2.5rem 1rem;
}

.ag-empty .bi[b-sttthe6kx7] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.ag-empty-title[b-sttthe6kx7] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.ag-empty-text[b-sttthe6kx7] {
    font-size: 0.875rem;
    color: #5B7A9A;
    margin-bottom: 0.75rem;
}

/* ── Table ───────────────────────────────────────────────────────────── */

.table-responsive[b-sttthe6kx7] {
    margin-top: 0.25rem;
    border: 1px solid #e8eef6;
    border-radius: 8px;
    overflow: hidden;
}

.ag-table[b-sttthe6kx7] {
    margin-bottom: 0;
}

/* Selettori ancorati a `.table.ag-table`: la regola globale `.table:not(.table-sm) > thead > tr > th`
   (specificità 0,2,3) batterebbe il semplice `.ag-table thead th` scoped (0,2,2). */
.table.ag-table thead th[b-sttthe6kx7] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);   /* standard celle (2026-09-04) */
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
}

.ag-row[b-sttthe6kx7] {
    cursor: pointer;
    transition: background 0.1s;
}

.ag-row:hover[b-sttthe6kx7] {
    background: #f7fafd;
}

.table.ag-table .ag-row td[b-sttthe6kx7] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna sul bordo del riquadro */
.table.ag-table thead th:first-child[b-sttthe6kx7], .table.ag-table .ag-row td:first-child[b-sttthe6kx7] { padding-left: var(--eco-cell-edge, 20px); }
.table.ag-table thead th:last-child[b-sttthe6kx7],  .table.ag-table .ag-row td:last-child[b-sttthe6kx7]  { padding-right: var(--eco-cell-edge, 20px); }
.ag-row td:first-child input[type="checkbox"][b-sttthe6kx7] { margin: 0; vertical-align: middle; }

/* Azioni: ultima colonna allineata a destra, icone senza a capo */
.ag-table thead th:last-child[b-sttthe6kx7] { text-align: right; }
.ag-row td:last-child[b-sttthe6kx7] { white-space: nowrap; }
.ag-row td:last-child > .d-flex[b-sttthe6kx7] { justify-content: flex-end; }

.ag-name[b-sttthe6kx7] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.875rem;
}

.ag-sub[b-sttthe6kx7] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}

.ag-contact-line[b-sttthe6kx7] {
    font-size: 0.8rem;
    color: #334155;
    line-height: 1.5;
}

.ag-contact-line .bi[b-sttthe6kx7] {
    font-size: 0.75rem;
    color: #8696a7;
}

/* ── Tipo badge ──────────────────────────────────────────────────────── */

.ag-tipo-badge[b-sttthe6kx7] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.tipo-cliente[b-sttthe6kx7]   { background: #e8f1fa; color: #2c6a9e; }
.tipo-fornitore[b-sttthe6kx7] { background: #fff4e2; color: #8a5500; }
.tipo-entrambi[b-sttthe6kx7]  { background: #f0ebfa; color: #6b3aaa; }
.tipo-nc[b-sttthe6kx7]        { background: #f4f5f7; color: #8696a7; }

/* ── Stato dati badge ────────────────────────────────────────────────── */

.ag-stato-badge[b-sttthe6kx7] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.sd-ok[b-sttthe6kx7]   { background: #edf6ea; color: #3a6b27; }
.sd-warn[b-sttthe6kx7] { background: #fff8e6; color: #7a5200; }
.sd-err[b-sttthe6kx7]  { background: #fdecea; color: #9e2d1e; }
.sd-nc[b-sttthe6kx7]   { background: #f4f5f7; color: #8696a7; }

/* ── Icon action buttons ─────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.ag-icon-btn[b-sttthe6kx7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.ag-icon-btn:hover[b-sttthe6kx7] {
    background: var(--icobtn-hover-bg, #EDF3FB);
    color: var(--icobtn-hover-ink, #001B48);
}

/* Remove Bootstrap dropdown-toggle caret from icon buttons */
.ag-icon-btn.dropdown-toggle[b-sttthe6kx7]::after {
    display: none;
}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .ag-table thead th:nth-child(4)[b-sttthe6kx7],
    .ag-table td:nth-child(4)[b-sttthe6kx7],
    .ag-table thead th:nth-child(5)[b-sttthe6kx7],
    .ag-table td:nth-child(5)[b-sttthe6kx7] {
        display: none;
    }

    .ag-bulk-bar[b-sttthe6kx7] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Anagrafica/Form.razor.rz.scp.css */
/* Form — Anagrafica */

.ag-form-section[b-necr3cl4mz] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
}

.ag-form-section-title[b-necr3cl4mz] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8696a7;
    margin-bottom: 1.1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #e8eff7;
}

.ag-ref-card[b-necr3cl4mz] {
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 8px;
    padding: 0.9rem 1rem;
}

/* ── Toggle iOS-style ─────────────────────────────────────────────────────── */

.ag-toggle-group[b-necr3cl4mz] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding-top: 0.2rem;
}

.ag-toggle-wrap[b-necr3cl4mz] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    cursor: pointer;
    user-select: none;
    width: fit-content;
}

.ag-toggle-input[b-necr3cl4mz] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.ag-toggle-track[b-necr3cl4mz] {
    position: relative;
    width: 44px;
    height: 26px;
    border-radius: 13px;
    background: #d1d5db;
    transition: background 0.22s ease;
    flex-shrink: 0;
}

.ag-toggle-thumb[b-necr3cl4mz] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.25);
    transition: transform 0.22s ease;
}

.ag-toggle-input:checked + .ag-toggle-track[b-necr3cl4mz] {
    background: #34c759;
}

.ag-toggle-input:checked + .ag-toggle-track .ag-toggle-thumb[b-necr3cl4mz] {
    transform: translateX(18px);
}

.ag-toggle-label[b-necr3cl4mz] {
    font-size: 0.9rem;
    font-weight: 500;
    color: #334155;
    line-height: 1;
}

.ag-toggle-alert[b-necr3cl4mz] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #dc2626;
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.15rem;
}
/* _content/GestioneCommessa.Shared/Pages/CambiaPassword.razor.rz.scp.css */
/* Cambia password — elenco dei requisiti che si spunta mentre si digita. */

.pwd-requisiti[b-ejfuspwlfw] {
    list-style: none;
    margin: .6rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.pwd-requisiti li[b-ejfuspwlfw] {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .8rem;
    color: #6c757d;
    line-height: 1.3;
    transition: color .15s;
}

.pwd-requisiti li > i[b-ejfuspwlfw] {
    font-size: .8rem;
    color: #ced4da;
    flex-shrink: 0;
    transition: color .15s;
}

/* Requisito soddisfatto */
.pwd-requisiti li.ok[b-ejfuspwlfw]        { color: #1a7f37; }
.pwd-requisiti li.ok > i[b-ejfuspwlfw]    { color: #1a7f37; }

/* Requisito consigliato ma non obbligatorio: resta visibile, senza allarmare */
.pwd-requisiti li.opt[b-ejfuspwlfw]       { color: #adb5bd; }
.pwd-requisiti li.opt > i[b-ejfuspwlfw]   { color: #dee2e6; }
/* _content/GestioneCommessa.Shared/Pages/Configurazione.razor.rz.scp.css */
/* Configurazione aziendale in tre passi (disegno di Vanessa, 2026-10-05).
   Colori della piattaforma: navy #001B48, accento #1F47B8, verde #1E7B4B. */

.cg[b-vr2goq39bu] { max-width: 1080px; margin: 0 auto; display: flex; flex-direction: column; gap: 28px; padding-bottom: 48px; }

.cg-testa[b-vr2goq39bu] { display: flex; flex-direction: column; gap: 6px; }
.cg-titolo[b-vr2goq39bu] { margin: 0; font-size: 30px; font-weight: 700; color: #001B48; }
.cg-intro[b-vr2goq39bu] { margin: 0; font-size: 15px; line-height: 1.5; color: #556074; max-width: 720px; }
.cg-caricamento[b-vr2goq39bu] { color: #556074; display: flex; align-items: center; gap: .5rem; padding: 2rem 0; }
.cg-tenue[b-vr2goq39bu] { color: #556074; }

/* ── I tre passi ── */
.cg-passi[b-vr2goq39bu] { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.cg-passo[b-vr2goq39bu] {
    display: flex; flex-direction: column; gap: 10px; padding: 18px; text-align: left;
    border: 1px solid #E3E7EE; border-radius: 14px; background: #fff; color: #001B48; font: inherit; cursor: pointer;
}
.cg-passo:hover[b-vr2goq39bu] { border-color: #B9C8E8; }
.cg-passo--corrente[b-vr2goq39bu] { border: 2px solid #1F47B8; padding: 17px; }
.cg-passo-riga[b-vr2goq39bu] { display: flex; align-items: center; gap: 10px; }
.cg-passo-num[b-vr2goq39bu] {
    flex: none; width: 26px; height: 26px; border-radius: 50%; background: #E9F0FC; color: #1F47B8;
    font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.cg-passo-num--ok[b-vr2goq39bu] { background: #E6F4EC; color: #1E7B4B; }
.cg-passo-nome[b-vr2goq39bu] { font-size: 15px; font-weight: 700; }
.cg-passo-conto[b-vr2goq39bu] { margin-left: auto; font-size: 14px; font-weight: 700; }
.cg-passo-conto span[b-vr2goq39bu] { color: #556074; font-weight: 500; }
.cg-passo-nota[b-vr2goq39bu] { font-size: 13px; color: #556074; }

.cg-barra[b-vr2goq39bu] { display: block; height: 6px; border-radius: 3px; background: #E3E7EE; overflow: hidden; }
.cg-barra > span[b-vr2goq39bu] { display: block; height: 6px; background: #1F47B8; }
.cg-barra > span.cg-barra--ok[b-vr2goq39bu] { background: #1E7B4B; }
.cg-barra--corta[b-vr2goq39bu] { flex: none; width: 72px; }

/* ── Prossimo passo ── */
.cg-prossimo[b-vr2goq39bu] {
    display: flex; flex-direction: column; gap: 14px; padding: 26px 28px;
    border-radius: 16px; background: #001B48; color: #fff;
}
.cg-prossimo-etichette[b-vr2goq39bu] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cg-prossimo-eti[b-vr2goq39bu] { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9FC1FF; }
.cg-prossimo-ok[b-vr2goq39bu] { font-size: 12.5px; font-weight: 600; color: #001B48; background: #BFE3CD; border-radius: 999px; padding: 3px 10px; }
.cg-prossimo-titolo[b-vr2goq39bu] { margin: 0; font-size: 26px; font-weight: 700; line-height: 1.2; }
.cg-prossimo-testo[b-vr2goq39bu] { margin: 0; font-size: 15px; line-height: 1.5; color: #D5DCE8; max-width: 620px; }
.cg-prossimo-azioni[b-vr2goq39bu] { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.cg-btn-chiaro[b-vr2goq39bu] {
    min-height: 46px; padding: 0 22px; border-radius: 10px; border: 0; background: #fff; color: #001B48;
    font: inherit; font-weight: 700; font-size: 15px; cursor: pointer;
}
.cg-btn-chiaro:disabled[b-vr2goq39bu] { opacity: .6; cursor: not-allowed; }
.cg-btn-trasparente[b-vr2goq39bu] {
    min-height: 46px; padding: 0 18px; border-radius: 10px; border: 1px solid #44546E; background: transparent; color: #fff;
    font: inherit; font-weight: 600; font-size: 15px; cursor: pointer;
}
.cg-btn-trasparente:hover[b-vr2goq39bu] { border-color: #8496B4; }

/* ── Ricerca e filtro ── */
.cg-strumenti[b-vr2goq39bu] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cg-cerca[b-vr2goq39bu] {
    flex: 1 1 280px; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 14px; margin: 0;
    border: 1px solid #C9D1DC; border-radius: 10px; background: #fff; color: #556074;
}
.cg-cerca:focus-within[b-vr2goq39bu] { outline: 2px solid #1F47B8; outline-offset: 1px; }
.cg-cerca input[b-vr2goq39bu] { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font: inherit; font-size: 14.5px; color: #001B48; }
.cg-segmenti[b-vr2goq39bu] { display: flex; flex-wrap: wrap; padding: 4px; gap: 4px; border-radius: 12px; background: #E7EBF1; }
.cg-segmenti button[b-vr2goq39bu] {
    min-height: 38px; padding: 0 16px; border-radius: 9px; border: 0; background: transparent; color: #3F4A5C;
    font: inherit; font-weight: 600; font-size: 14px; cursor: pointer;
}
.cg-segmenti button[aria-pressed="true"][b-vr2goq39bu] { background: #fff; color: #001B48; box-shadow: 0 1px 2px rgba(15, 27, 45, .12); }

/* ── Sezioni dei passi ── */
.cg-sezione[b-vr2goq39bu] { display: flex; flex-direction: column; gap: 12px; scroll-margin-top: 24px; }
.cg-sezione-testa[b-vr2goq39bu] { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.cg-sezione-testa > div:first-child[b-vr2goq39bu] { flex: 1; min-width: 240px; }
.cg-sezione-eti[b-vr2goq39bu] { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1F47B8; }
.cg-sezione-titolo[b-vr2goq39bu] { margin: 4px 0 0; font-size: 21px; font-weight: 700; color: #001B48; }
.cg-sezione-desc[b-vr2goq39bu] { margin: 4px 0 0; font-size: 14px; color: #556074; }
.cg-sezione-stato[b-vr2goq39bu] { font-size: 13.5px; color: #556074; }

.cg-scheda[b-vr2goq39bu] { background: #fff; border: 1px solid #E3E7EE; border-radius: 14px; overflow: hidden; }
.cg-area[b-vr2goq39bu] {
    padding: 14px 20px 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: #556074; background: #FAFBFD;
}
.cg-area:not(:first-child)[b-vr2goq39bu] { border-top: 1px solid #E3E7EE; }

/* ── Righe ── */
.cg-riga[b-vr2goq39bu] { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 16px 20px; }
.cg-riga + .cg-riga[b-vr2goq39bu] { border-top: 1px solid #E3E7EE; }
.cg-riga--compatta[b-vr2goq39bu] { padding: 12px 0; }
.cg-riga--na .cg-riga-titolo[b-vr2goq39bu], .cg-riga--na .cg-riga-desc[b-vr2goq39bu] { color: #8A94A6; }
.cg-riga-testi[b-vr2goq39bu] { flex: 999 1 260px; min-width: 0; }
.cg-riga-titolo-riga[b-vr2goq39bu] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cg-riga-titolo[b-vr2goq39bu] { font-size: 15px; font-weight: 600; color: #001B48; }
.cg-riga--compatta .cg-riga-titolo[b-vr2goq39bu] { font-size: 14.5px; }
.cg-riga-desc[b-vr2goq39bu] { font-size: 13.5px; color: #556074; margin-top: 3px; line-height: 1.45; }
.cg-riga-azioni[b-vr2goq39bu] { display: flex; align-items: center; gap: 4px; margin-left: auto; }

.cg-conta[b-vr2goq39bu] { flex: none; font-size: 12.5px; font-weight: 600; color: #556074; background: #F4F6FA; border-radius: 999px; padding: 3px 9px; }
.cg-scade[b-vr2goq39bu] { flex: none; font-size: 12.5px; font-weight: 600; color: #7A5200; background: #FDF1D6; border-radius: 999px; padding: 3px 9px; }
.cg-scade--scaduto[b-vr2goq39bu] { color: #9B2C25; background: #FBE3E1; }

.cg-pallino[b-vr2goq39bu] {
    flex: none; width: 22px; height: 22px; border-radius: 50%; border: 2px solid #A9B3C2; box-sizing: border-box;
    display: inline-flex; align-items: center; justify-content: center; font-size: 13px;
}
.cg-pallino--ok[b-vr2goq39bu] { background: #1E7B4B; border-color: #1E7B4B; color: #fff; }
.cg-pallino--avviso[b-vr2goq39bu] { background: #C98A12; border-color: #C98A12; color: #fff; }
.cg-pallino--na[b-vr2goq39bu] { border-style: dashed; color: #8A94A6; }

.cg-btn[b-vr2goq39bu] {
    flex: none; min-height: 40px; padding: 0 14px; border-radius: 10px; border: 1px solid #C9D1DC; background: #fff; color: #001B48;
    font: inherit; font-weight: 600; font-size: 14px; cursor: pointer;
}
.cg-btn:hover:not(:disabled)[b-vr2goq39bu] { border-color: #1F47B8; color: #1F47B8; }
.cg-btn:disabled[b-vr2goq39bu] { opacity: .55; cursor: not-allowed; }
.cg-icona[b-vr2goq39bu] {
    flex: none; width: 40px; height: 40px; border-radius: 10px; border: 0; background: transparent; color: #556074;
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer; font-size: 17px;
}
.cg-icona:hover[b-vr2goq39bu] { background: #EEF0F4; color: #001B48; }
.cg-fatto[b-vr2goq39bu] { display: inline-flex; align-items: center; gap: 4px; font-size: 13.5px; font-weight: 600; color: #1E7B4B; }

.cg-completate[b-vr2goq39bu] {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 20px; background: #FAFBFD; font-size: 14px; color: #001B48;
}
.cg-completate .cg-pallino[b-vr2goq39bu] { width: 20px; height: 20px; }
.cg-scheda > .cg-completate:not(:first-child)[b-vr2goq39bu] { border-top: 1px solid #E3E7EE; }
.cg-link[b-vr2goq39bu] {
    margin-left: auto; min-height: 36px; padding: 0 10px; border: 0; background: transparent; color: #1F47B8;
    font: inherit; font-weight: 600; font-size: 13.5px; display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
}

/* ── Gruppi di «Quando serve» ── */
.cg-gruppo[b-vr2goq39bu] {
    width: 100%; display: flex; align-items: center; gap: 14px; padding: 16px 20px; border: 0; background: transparent;
    text-align: left; font: inherit; cursor: pointer;
}
.cg-gruppo + .cg-gruppo[b-vr2goq39bu], .cg-gruppo-corpo + .cg-gruppo[b-vr2goq39bu] { border-top: 1px solid #E3E7EE; }
.cg-gruppo:hover[b-vr2goq39bu] { background: #FAFBFD; }
.cg-gruppo-freccia[b-vr2goq39bu] { flex: none; color: #556074; }
.cg-gruppo-testi[b-vr2goq39bu] { flex: 1; min-width: 0; }
.cg-gruppo-titolo[b-vr2goq39bu] { display: block; font-size: 15px; font-weight: 600; color: #001B48; }
.cg-gruppo-desc[b-vr2goq39bu] { display: block; font-size: 13.5px; color: #556074; margin-top: 2px; }
.cg-gruppo-conto[b-vr2goq39bu] { flex: none; font-size: 13px; font-weight: 600; color: #556074; }
.cg-gruppo-corpo[b-vr2goq39bu] { margin: 0 20px 16px 54px; padding: 4px 16px; border: 1px solid #E3E7EE; border-radius: 12px; background: #fff; }

.cg-vuoto[b-vr2goq39bu] { color: #556074; margin: 0; }

@media (max-width: 720px) {
    .cg[b-vr2goq39bu] { gap: 22px; }
    .cg-titolo[b-vr2goq39bu] { font-size: 24px; }
    .cg-prossimo[b-vr2goq39bu] { padding: 20px; }
    .cg-prossimo-titolo[b-vr2goq39bu] { font-size: 21px; }
    .cg-riga[b-vr2goq39bu] { padding: 14px 16px; }
    .cg-riga--compatta[b-vr2goq39bu] { padding: 12px 0; }
    .cg-gruppo[b-vr2goq39bu] { padding: 14px 16px; gap: 10px; }
    .cg-barra--corta[b-vr2goq39bu] { display: none; }
    .cg-gruppo-corpo[b-vr2goq39bu] { margin: 0 12px 12px; padding: 4px 12px; }
    .cg-segmenti[b-vr2goq39bu] { width: 100%; }
    .cg-segmenti button[b-vr2goq39bu] { flex: 1 1 auto; padding: 0 10px; }
}
.cg-completate + .cg-riga[b-vr2goq39bu] { border-top: 1px solid #E3E7EE; }
/* _content/GestioneCommessa.Shared/Pages/Dashboard.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════════
   DASHBOARD – Cruscotto operativo
   ══════════════════════════════════════════════════════════════════════════ */

/* ── BREADCRUMB ── */
.dash-breadcrumb[b-osg5wj7nvy] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
}
.dash-bc-workspace[b-osg5wj7nvy] {
    color: #6B7C8F;
    font-weight: 500;
}
.dash-bc-sep[b-osg5wj7nvy] {
    color: #B8C9DA;
    font-size: 0.65rem;
}
.dash-bc-page[b-osg5wj7nvy] {
    color: #172536;
    font-weight: 600;
}

/* ── HEADER ── */
.dash-header[b-osg5wj7nvy] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}
.dash-title[b-osg5wj7nvy] {
    font-size: 1.3rem;
    font-weight: 700;
    color: #172536;
    margin: 0 0 0.2rem;
    letter-spacing: -0.015em;
    line-height: 1.2;
}
.dash-subtitle[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    color: #6B7C8F;
    margin: 0;
    line-height: 1.5;
}

/* ── TAB BAR — segmented control ── */
.dash-tabs-wrap[b-osg5wj7nvy] {
    display: flex;
    align-items: center;
}
.dash-tabs[b-osg5wj7nvy] {
    display: inline-flex;
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 10px;
    padding: 3px;
    box-shadow: 0 1px 3px rgba(23, 37, 54, 0.06);
    gap: 2px;
}
.dash-tab[b-osg5wj7nvy] {
    padding: 0.38rem 1rem;
    font-size: 0.8375rem;
    font-weight: 500;
    color: #6B7C8F;
    background: transparent;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    transition: background 0.14s ease, color 0.14s ease, box-shadow 0.14s ease;
    line-height: 1.4;
    white-space: nowrap;
}
.dash-tab:hover[b-osg5wj7nvy] {
    color: #172536;
    background: #F5F7FA;
}
.dash-tab--active[b-osg5wj7nvy] {
    background: #10263A;
    color: #FFFFFF;
    font-weight: 600;
    box-shadow: 0 1px 4px rgba(16, 38, 58, 0.22);
}
.dash-tab--active:hover[b-osg5wj7nvy] {
    background: #0B1B2B;
    color: #FFFFFF;
}

/* ── MAIN GRID (Panoramica) ── */
.dash-grid[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 20px;
    align-items: start;
}

/* ── TEAM GRID (Team tab) ── */
.team-grid[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    align-items: start;
}

/* ── DASHBOARD CARD ── */
.dashboard-card[b-osg5wj7nvy] {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    padding: 1.25rem 1.35rem;
    box-shadow: 0 1px 3px rgba(23, 37, 54, 0.04), 0 4px 12px rgba(23, 37, 54, 0.03);
}
.dashboard-card-header[b-osg5wj7nvy] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.dashboard-card-title[b-osg5wj7nvy] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #172536;
    line-height: 1.25;
}
.dashboard-card-action[b-osg5wj7nvy] {
    font-size: 0.78rem;
    color: #246B9A;
    white-space: nowrap;
    text-decoration: none;
    flex-shrink: 0;
    margin-top: 0.15rem;
    font-weight: 500;
}
.dashboard-card-action:hover[b-osg5wj7nvy] {
    color: #10263A;
    text-decoration: underline;
}

/* ── SIDE COLUMN ── */
.dash-side-column[b-osg5wj7nvy] {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.dash-card-sub[b-osg5wj7nvy] {
    font-size: 0.775rem;
    color: #6B7C8F;
    margin-top: 0.2rem;
}

/* ── FILTER PILLS ── */
.dash-filter-pills[b-osg5wj7nvy] {
    display: flex;
    gap: 0.3rem;
    flex-shrink: 0;
}
.dash-pill[b-osg5wj7nvy] {
    padding: 0.18rem 0.65rem;
    font-size: 0.74rem;
    font-weight: 500;
    color: #6B7C8F;
    background: #F5F7FA;
    border: 1px solid #E2E8F0;
    border-radius: 20px;
    cursor: pointer;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
    line-height: 1.5;
}
.dash-pill:hover[b-osg5wj7nvy] {
    background: #E8EEF5;
    color: #172536;
}
.dash-pill.active[b-osg5wj7nvy] {
    background: #246B9A;
    color: #fff;
    border-color: #246B9A;
}

/* ── TO-DO LIST ── */
.todo-list[b-osg5wj7nvy] {
    display: flex;
    flex-direction: column;
}
.todo-item[b-osg5wj7nvy] {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid #F0F4F8;
    color: inherit;
    transition: background 0.12s;
}
.todo-item:hover[b-osg5wj7nvy] {
    background: #F8FAFE;
    margin: 0 -1.35rem;
    padding-left: 1.35rem;
    padding-right: 1.35rem;
}
.todo-item--last[b-osg5wj7nvy] {
    border-bottom: none;
}
.todo-item__indicator[b-osg5wj7nvy] {
    width: 4px;
    min-height: 44px;
    border-radius: 2px;
    flex-shrink: 0;
    margin-top: 2px;
}
.todo-item__content[b-osg5wj7nvy] {
    flex: 1;
    min-width: 0;
}
.todo-item__label[b-osg5wj7nvy] {
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    line-height: 1;
    display: block;
    margin-bottom: 0.25rem;
}
.todo-item__title[b-osg5wj7nvy] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #172536;
    line-height: 1.3;
    margin-bottom: 0.2rem;
}
.todo-item__meta[b-osg5wj7nvy] {
    font-size: 0.775rem;
    color: #6B7C8F;
    line-height: 1.4;
}
.todo-item__right[b-osg5wj7nvy] {
    text-align: right;
    flex-shrink: 0;
}
.todo-item__value[b-osg5wj7nvy] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #172536;
    line-height: 1.3;
    white-space: nowrap;
}
.todo-item__link[b-osg5wj7nvy] {
    font-size: 0.75rem;
    color: #246B9A;
    margin-top: 0.2rem;
    white-space: nowrap;
}

/* ── TODO FOOTER ── */
.dash-todo-footer[b-osg5wj7nvy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 0.85rem;
    margin-top: 0.5rem;
    border-top: 1px solid #F0F4F8;
}
.dash-todo-link[b-osg5wj7nvy] {
    font-size: 0.78rem;
    font-weight: 500;
    color: #246B9A;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: color 0.12s;
}
.dash-todo-link:hover[b-osg5wj7nvy] { color: #10263A; }
.dash-positive[b-osg5wj7nvy] { color: #4F8A45 !important; font-weight: 600; }
.dash-negative[b-osg5wj7nvy] { color: #C95245 !important; font-weight: 600; }

/* ── EMPTY STATES ── */
.dash-empty-state[b-osg5wj7nvy] {
    text-align: center;
    padding: 2rem 1rem;
}
.dash-empty-state i[b-osg5wj7nvy] {
    font-size: 2rem;
    color: #B8C9DA;
    display: block;
    margin-bottom: 0.6rem;
}
.dash-empty-title[b-osg5wj7nvy] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #172536;
    margin-bottom: 0.25rem;
}
.dash-empty-text[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    color: #6B7C8F;
    line-height: 1.5;
}
.dash-empty-state--sm[b-osg5wj7nvy] {
    padding: 1.1rem 0.5rem;
}
.dash-empty-state--sm i[b-osg5wj7nvy] {
    font-size: 1.4rem;
    margin-bottom: 0.35rem;
}
.dash-empty-state--sm .dash-empty-text[b-osg5wj7nvy] {
    font-size: 0.775rem;
}

/* ── DOCUMENT DEADLINE LIST ── */
.document-deadline-list[b-osg5wj7nvy] {
    display: flex;
    flex-direction: column;
}
.document-deadline-item[b-osg5wj7nvy] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid #F0F4F8;
}
.document-deadline-item:last-child[b-osg5wj7nvy] {
    border-bottom: none;
}
.ddl-badge[b-osg5wj7nvy] {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
    flex-shrink: 0;
    white-space: nowrap;
    min-width: 5.2rem;
    text-align: center;
}
.ddl-badge--danger[b-osg5wj7nvy]  { background: #fdf0ee; color: #C95245; }
.ddl-badge--warning[b-osg5wj7nvy] { background: #fdf8ee; color: #D98A20; }
.ddl-badge--info[b-osg5wj7nvy]    { background: #eef4fb; color: #246B9A; }
.ddl-content[b-osg5wj7nvy] {
    flex: 1;
    min-width: 0;
}
.ddl-title[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #172536;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ddl-meta[b-osg5wj7nvy] {
    font-size: 0.74rem;
    color: #6B7C8F;
    margin-top: 0.1rem;
}
.ddl-meta--danger[b-osg5wj7nvy] { color: #C95245 !important; font-weight: 500; }
.ddl-action[b-osg5wj7nvy] {
    color: #B8C9DA;
    font-size: 0.8rem;
    flex-shrink: 0;
    text-decoration: none;
    transition: color 0.12s;
}
.ddl-action:hover[b-osg5wj7nvy] { color: #246B9A; }

/* ── OPERATIONS SUMMARY ── */
.operation-summary[b-osg5wj7nvy] {
    padding: 0.15rem 0;
}
.ops-row[b-osg5wj7nvy] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid #F0F4F8;
}
.ops-row:last-child[b-osg5wj7nvy] {
    border-bottom: none;
}
.ops-icon[b-osg5wj7nvy] {
    font-size: 1.2rem;
    color: #246B9A;
    flex-shrink: 0;
    width: 2rem;
    text-align: center;
}
.ops-content[b-osg5wj7nvy] { flex: 1; }
.ops-label[b-osg5wj7nvy] {
    font-size: 0.71rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6B7C8F;
    margin-bottom: 0.1rem;
}
.ops-value[b-osg5wj7nvy] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #172536;
}

/* ── CTA LINK / UPDATED LABEL ── */
.dash-cta-link[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #246B9A;
    text-decoration: none;
}
.dash-cta-link:hover[b-osg5wj7nvy] {
    color: #10263A;
    text-decoration: underline;
}
.dash-updated-label[b-osg5wj7nvy] {
    font-size: 0.775rem;
    color: #B8C9DA;
    flex-shrink: 0;
}

/* ── KPI GRID ── */
.kpi-grid[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.kpi-card[b-osg5wj7nvy] {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    padding: 1.1rem 1.25rem;
    box-shadow: 0 1px 3px rgba(23, 37, 54, 0.04);
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.15s;
}
.kpi-card:hover[b-osg5wj7nvy] {
    box-shadow: 0 4px 16px rgba(23, 37, 54, 0.09);
}
.kpi-card[b-osg5wj7nvy]::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: #E2E8F0;
    border-radius: 14px 14px 0 0;
}
.kpi-card--positive[b-osg5wj7nvy]::before { background: #4F8A45; }
.kpi-card--negative[b-osg5wj7nvy]::before { background: #C95245; }
.kpi-card__icon[b-osg5wj7nvy] {
    font-size: 1.1rem;
    color: #B8C9DA;
    margin-bottom: 0.6rem;
}
.kpi-card--positive .kpi-card__icon[b-osg5wj7nvy] { color: #7DB87A; }
.kpi-card--negative .kpi-card__icon[b-osg5wj7nvy] { color: #E09085; }
.kpi-card__label[b-osg5wj7nvy] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #6B7C8F;
    margin-bottom: 0.3rem;
}
.kpi-card__value[b-osg5wj7nvy] {
    font-size: 1.45rem;
    font-weight: 700;
    color: #172536;
    line-height: 1.15;
    margin-bottom: 0.3rem;
    letter-spacing: -0.02em;
}
.kpi-card__value--pos[b-osg5wj7nvy] { color: #4F8A45; }
.kpi-card__value--neg[b-osg5wj7nvy] { color: #C95245; }
.kpi-card__trend[b-osg5wj7nvy] {
    font-size: 0.74rem;
    color: #6B7C8F;
    line-height: 1.4;
}

/* ══════════════════════════════════════════════════════════════════════════
   CLASSI PREESISTENTI (mantenute)
   ══════════════════════════════════════════════════════════════════════════ */

.section-title[b-osg5wj7nvy] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8696a7;
    margin-bottom: 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.section-title[b-osg5wj7nvy]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e4edf5;
}
.commessa-table thead th[b-osg5wj7nvy] {
    background: #f7fafd;
    font-size: 0.73rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8696a7;
    padding: 0.6rem 0.85rem;
    border-bottom: 2px solid #dceaf8 !important;
}
.commessa-table tbody td[b-osg5wj7nvy] {
    padding: 0.6rem 0.85rem;
    font-size: 0.875rem;
    vertical-align: middle;
}
.commessa-table tbody tr:last-child td[b-osg5wj7nvy] { border-bottom: 0; }
.empty-state[b-osg5wj7nvy] {
    text-align: center;
    padding: 2.25rem 1rem;
}
.empty-state i[b-osg5wj7nvy] {
    font-size: 2.25rem;
    color: #bbc8d5;
    display: block;
    margin-bottom: 0.75rem;
}
.empty-title[b-osg5wj7nvy] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}
.empty-text[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    color: #8696a7;
    margin-bottom: 1rem;
    line-height: 1.5;
}
.chart-intro[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    color: #6e8497;
    padding: 0.6rem 0.85rem;
    background: #f7fafd;
    border-radius: 8px;
    border-left: 3px solid #dceaf8;
    margin-bottom: 1rem;
}

/* ══════════════════════════════════════════════════════════════════════════
   DESIGN-HANDOFF TOKENS & NEW COMPONENTS
   ══════════════════════════════════════════════════════════════════════════ */

/* Token scope — appended to dashboard container */
.dash-root[b-osg5wj7nvy] {
    --d-bg:        #F6F8FC;
    --d-surface:   #FFFFFF;
    --d-surface-2: #F9FBFD;
    --d-line:      #E8ECF4;
    --d-line-s:    #D7DDEA;
    --d-ink:       #1B2444;
    --d-ink-soft:  #4A547A;
    --d-ink-muted: #7C86A3;
    --d-ink-faint: #ABB3C7;
    --d-navy:      #2E3C66;
    --d-royal:     #3B5BAA;
    --d-blue:      #3D7BF0;
    --d-blue-50:   #EEF3FE;
    --d-sky:       #6CC0F5;
    --d-neon:      #8FE7F2;
    --d-green:     #2DAE6A;
    --d-green-50:  #E8F6EE;
    --d-amber:     #C99327;
    --d-amber-50:  #FBF0D9;
    --d-red:       #D85363;
    --d-red-50:    #FBEBED;
    --d-shadow-sm: 0 1px 2px rgba(10,18,48,.05);
    --d-shadow:    0 6px 24px -8px rgba(10,18,48,.10), 0 1px 2px rgba(10,18,48,.04);
}

/* ── PAGE HEAD (nuovo layout H1 + tabs sulla stessa riga) ── */
.d-page-head[b-osg5wj7nvy] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}
.d-page-h1[b-osg5wj7nvy] {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--d-ink);
    line-height: 1.15;
}
.d-page-sub[b-osg5wj7nvy] {
    margin: 4px 0 0;
    font-size: 0.875rem;
    color: var(--d-ink-muted);
    line-height: 1.4;
}
.d-page-sub strong[b-osg5wj7nvy] { color: var(--d-ink); font-weight: 600; }

/* ── TODAY GRID (1.35fr / 1fr) ── */
.d-today-grid[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

/* ── TODAY CARD ── */
.d-today-card[b-osg5wj7nvy] {
    background: var(--d-surface);
    border: 1px solid var(--d-line);
    border-radius: 16px;
    box-shadow: var(--d-shadow-sm);
    overflow: hidden;
}
.d-today-card__head[b-osg5wj7nvy] {
    padding: 18px 22px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.d-today-ico[b-osg5wj7nvy] {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: linear-gradient(135deg, #3D7BF0 0%, #2E3C66 100%);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.d-today-title[b-osg5wj7nvy] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--d-ink);
    margin: 0;
    line-height: 1.2;
}
.d-today-day[b-osg5wj7nvy] {
    font-size: 0.75rem;
    color: var(--d-ink-muted);
    margin-top: 2px;
}

/* ── PRIORITY ITEMS ── */
.d-priority-list[b-osg5wj7nvy] {
    margin-top: 14px;
}
.d-priority-item[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: 8px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 14px 22px;
    border-top: 1px solid var(--d-line);
    cursor: pointer;
    transition: background .15s;
    text-decoration: none;
    color: inherit;
}
.d-priority-item:hover[b-osg5wj7nvy] { background: var(--d-surface-2); }
.d-priority-item__mark[b-osg5wj7nvy] {
    width: 8px;
    height: 36px;
    border-radius: 2px;
    flex-shrink: 0;
}
.d-priority-item--crit .d-priority-item__mark[b-osg5wj7nvy] { background: var(--d-red); }
.d-priority-item--warn .d-priority-item__mark[b-osg5wj7nvy] { background: var(--d-amber); }
.d-priority-item--info .d-priority-item__mark[b-osg5wj7nvy] { background: var(--d-blue); }
.d-priority-item--ok   .d-priority-item__mark[b-osg5wj7nvy] { background: var(--d-green); }
.d-priority-item__label[b-osg5wj7nvy] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--d-ink-muted);
    margin-bottom: 2px;
}
.d-priority-item__title[b-osg5wj7nvy] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--d-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.d-priority-item__meta[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    color: var(--d-ink-muted);
    font-weight: 500;
}
.d-priority-item__num[b-osg5wj7nvy] {
    font-size: 1.375rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--d-ink);
    letter-spacing: -0.01em;
    line-height: 1.1;
    text-align: right;
}
.d-priority-item__unit[b-osg5wj7nvy] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--d-ink-muted);
    margin-left: 4px;
}
.d-priority-item__link[b-osg5wj7nvy] {
    font-size: 0.78rem;
    color: var(--d-blue);
    font-weight: 600;
    display: block;
    margin-top: 2px;
    text-align: right;
}
.d-priority-item--crit .d-priority-item__num[b-osg5wj7nvy] { color: var(--d-red); }
.d-priority-item--warn .d-priority-item__num[b-osg5wj7nvy] { color: var(--d-amber); }
.d-today-foot[b-osg5wj7nvy] {
    border-top: 1px solid var(--d-line);
    padding: 12px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--d-surface-2);
    font-size: 0.78rem;
    color: var(--d-ink-muted);
}
.d-today-foot strong[b-osg5wj7nvy] { color: var(--d-ink); }
.d-today-foot-link[b-osg5wj7nvy] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--d-blue);
    text-decoration: none;
}

/* ── RIGHT RAIL CARDS ── */
.d-rail-stack[b-osg5wj7nvy] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.d-card[b-osg5wj7nvy] {
    background: var(--d-surface);
    border: 1px solid var(--d-line);
    border-radius: 16px;
    box-shadow: var(--d-shadow-sm);
}
.d-card__head[b-osg5wj7nvy] {
    padding: 16px 20px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.d-card__title[b-osg5wj7nvy] {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: -0.005em;
    color: var(--d-ink);
}
.d-card__meta[b-osg5wj7nvy] {
    font-size: 0.75rem;
    color: var(--d-ink-muted);
    font-weight: 500;
}
.d-card__link[b-osg5wj7nvy] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--d-blue);
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
}
.d-card__body[b-osg5wj7nvy] { padding: 0 20px 20px; }

/* Scadenze in right rail */
.d-scad-item[b-osg5wj7nvy] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid var(--d-line);
}
.d-scad-item:first-child[b-osg5wj7nvy] { border-top: 0; }
.d-scad-tag[b-osg5wj7nvy] {
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 3px 7px;
    border-radius: 5px;
    white-space: nowrap;
    flex-shrink: 0;
}
.d-scad-tag--crit[b-osg5wj7nvy] { background: var(--d-red-50);   color: var(--d-red); }
.d-scad-tag--warn[b-osg5wj7nvy] { background: var(--d-amber-50); color: var(--d-amber); }
.d-scad-tag--info[b-osg5wj7nvy] { background: var(--d-blue-50);  color: var(--d-blue); }
.d-scad-who[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--d-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.d-scad-when[b-osg5wj7nvy] { font-size: 0.75rem; color: var(--d-ink-muted); }
.d-scad-when--crit[b-osg5wj7nvy] { color: var(--d-red); }

/* Operatività oggi */
.d-ops-grid[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 14px;
}
.d-ops-lbl[b-osg5wj7nvy] {
    font-size: 0.6875rem;
    color: var(--d-ink-muted);
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.d-ops-num[b-osg5wj7nvy] {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-top: 4px;
    line-height: 1.1;
    color: var(--d-ink);
    font-variant-numeric: tabular-nums;
}
.d-ops-num span[b-osg5wj7nvy] { font-size: 0.875rem; color: var(--d-ink-muted); font-weight: 600; }
.d-ops-sub[b-osg5wj7nvy] { font-size: 0.75rem; color: var(--d-ink-muted); }

/* ── KPI STRIP (nuovo design) ── */
.d-kpi-strip[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.d-kpi[b-osg5wj7nvy] {
    background: var(--d-surface);
    border: 1px solid var(--d-line);
    border-radius: 16px;
    box-shadow: var(--d-shadow-sm);
    padding: 18px 20px 14px;
    overflow: hidden;
}
.d-kpi__row[b-osg5wj7nvy] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.d-kpi__icon[b-osg5wj7nvy] {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--d-blue-50);
    color: var(--d-blue);
    display: grid;
    place-items: center;
    flex-shrink: 0;
    font-size: 0.9rem;
}
.d-kpi__icon--neg[b-osg5wj7nvy] { background: var(--d-red-50); color: var(--d-red); }
.d-kpi__lbl[b-osg5wj7nvy] {
    font-size: 0.6875rem;
    color: var(--d-ink-muted);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.d-kpi__val[b-osg5wj7nvy] {
    font-size: 1.875rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    margin-top: 8px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--d-ink);
}
.d-kpi__val--neg[b-osg5wj7nvy] { color: var(--d-red); }
.d-kpi__unit[b-osg5wj7nvy] { font-size: 1.125rem; color: var(--d-ink-muted); font-weight: 600; margin-left: 2px; }
.d-kpi__sub[b-osg5wj7nvy] { font-size: 0.78rem; color: var(--d-ink-muted); margin-top: 6px; }
.d-kpi__delta[b-osg5wj7nvy] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 700;
    font-size: 0.75rem;
    padding: 3px 7px;
    border-radius: 999px;
}
.d-kpi__delta--up[b-osg5wj7nvy]   { color: var(--d-green); background: var(--d-green-50); }
.d-kpi__delta--down[b-osg5wj7nvy] { color: var(--d-red);   background: var(--d-red-50); }
.d-kpi__delta--flat[b-osg5wj7nvy] { color: var(--d-ink-muted); background: #EEF2F9; }
.d-kpi__spark[b-osg5wj7nvy] { margin-top: 14px; }

/* ── CHART ROW (monthly + donut) ── */
.d-chart-row[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
    gap: 16px;
}

/* Legend */
.d-legend[b-osg5wj7nvy] {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.d-legend__item[b-osg5wj7nvy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    color: var(--d-ink-muted);
}
.d-legend__sw[b-osg5wj7nvy] {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}
.d-legend__sw--dash[b-osg5wj7nvy] {
    width: 14px;
    height: 3px;
    border-radius: 0;
    background-image: repeating-linear-gradient(90deg, currentColor 0 4px, transparent 4px 8px);
}

/* Filter group (mensile/trim/annuale) */
.d-filter-group[b-osg5wj7nvy] {
    display: inline-flex;
    padding: 3px;
    gap: 2px;
    background: #EEF2F9;
    border-radius: 8px;
}
.d-filter-group button[b-osg5wj7nvy] {
    border: 0;
    background: transparent;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--d-ink-muted);
    cursor: pointer;
}
.d-filter-group button.on[b-osg5wj7nvy] {
    background: var(--d-surface);
    color: var(--d-ink);
    box-shadow: var(--d-shadow-sm);
}

/* ── BOT ROW (spese donut + fornitori) ── */
.d-bot-row[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 16px;
}

/* Suppliers bar list */
.d-supp-row[b-osg5wj7nvy] {
    display: grid;
    grid-template-columns: 1fr 90px 72px;
    gap: 14px;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid var(--d-line);
}
.d-supp-row:first-child[b-osg5wj7nvy] { border-top: 0; }
.d-supp-name[b-osg5wj7nvy] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--d-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-bottom: 5px;
}
.d-supp-bar[b-osg5wj7nvy] {
    height: 6px;
    border-radius: 4px;
    background: #EEF2F9;
    overflow: hidden;
}
.d-supp-bar__fill[b-osg5wj7nvy] {
    height: 100%;
    border-radius: 4px;
}
.d-supp-val[b-osg5wj7nvy] {
    text-align: right;
    font-size: 0.8125rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--d-ink);
}

/* ── COMMESSE TABLE (nuovo design) ── */
.d-commesse-card[b-osg5wj7nvy] {
    background: var(--d-surface);
    border: 1px solid var(--d-line);
    border-radius: 16px;
    box-shadow: var(--d-shadow-sm);
    overflow: hidden;
}
.d-commesse-head[b-osg5wj7nvy] {
    padding: 18px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--d-line);
    gap: 12px;
}
.d-commesse-head h3[b-osg5wj7nvy] { margin: 0; font-size: 0.9375rem; font-weight: 700; color: var(--d-ink); }
.d-commesse-sub[b-osg5wj7nvy] { font-size: 0.75rem; color: var(--d-ink-muted); margin-top: 2px; }
.d-table-controls[b-osg5wj7nvy] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.d-chip[b-osg5wj7nvy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 999px;
    border: 1px solid var(--d-line);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--d-ink-muted);
    background: var(--d-surface);
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
}
.d-chip.on[b-osg5wj7nvy] { background: var(--d-ink); color: white; border-color: var(--d-ink); }
.d-chip__dot[b-osg5wj7nvy] { width: 8px; height: 8px; border-radius: 50%; }
table.d-table[b-osg5wj7nvy] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}
table.d-table thead th[b-osg5wj7nvy] {
    text-align: left;
    font-size: 0.6875rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--d-ink-muted);
    font-weight: 700;
    padding: 12px 22px;
    background: var(--d-surface-2);
    border-bottom: 1px solid var(--d-line);
    white-space: nowrap;
}
table.d-table tbody td[b-osg5wj7nvy] {
    padding: 14px 22px;
    border-bottom: 1px solid var(--d-line);
    vertical-align: middle;
}
table.d-table tbody tr:hover[b-osg5wj7nvy] { background: var(--d-surface-2); cursor: pointer; }
table.d-table tbody tr:last-child td[b-osg5wj7nvy] { border-bottom: 0; }
.d-cnum[b-osg5wj7nvy] {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--d-ink-muted);
    background: #EEF2F9;
    padding: 3px 8px;
    border-radius: 6px;
    white-space: nowrap;
}
.d-cname[b-osg5wj7nvy] { font-weight: 600; color: var(--d-ink); }
.d-cname__sub[b-osg5wj7nvy] { font-weight: 500; font-size: 0.75rem; color: var(--d-ink-muted); margin-top: 2px; }
.d-cat-pill[b-osg5wj7nvy] {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: .04em;
    background: #EEF2F9;
    color: var(--d-ink-soft);
}
.d-cat-pill--og1[b-osg5wj7nvy] { background: #EAF4FF; color: #0A5BFF; }
.d-cat-pill--og2[b-osg5wj7nvy] { background: #EFEAFF; color: #6F4BFF; }
.d-progress-cell[b-osg5wj7nvy] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 130px;
}
.d-progress-cell__bar[b-osg5wj7nvy] {
    flex: 1;
    height: 6px;
    border-radius: 4px;
    background: #EEF2F9;
    overflow: hidden;
}
.d-progress-cell__fill[b-osg5wj7nvy] {
    height: 100%;
    border-radius: 4px;
    background: var(--d-blue);
}
.d-progress-cell__fill--ok[b-osg5wj7nvy]  { background: var(--d-green); }
.d-progress-cell__fill--over[b-osg5wj7nvy] { background: var(--d-red); }
.d-progress-cell__pct[b-osg5wj7nvy] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--d-ink-muted);
    min-width: 32px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.d-status-pill[b-osg5wj7nvy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.71875rem;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}
.d-status-pill__dot[b-osg5wj7nvy] { width: 6px; height: 6px; border-radius: 50%; }
.d-status-pill--ok[b-osg5wj7nvy]   { background: var(--d-green-50); color: var(--d-green); }
.d-status-pill--ok   .d-status-pill__dot[b-osg5wj7nvy] { background: var(--d-green); }
.d-status-pill--miss[b-osg5wj7nvy] { background: var(--d-amber-50); color: var(--d-amber); }
.d-status-pill--miss .d-status-pill__dot[b-osg5wj7nvy] { background: var(--d-amber); }
.d-status-pill--none[b-osg5wj7nvy] { background: #EEF2F9; color: var(--d-ink-muted); }
.d-status-pill--none .d-status-pill__dot[b-osg5wj7nvy] { background: var(--d-ink-faint); }
.d-row-actions[b-osg5wj7nvy] {
    display: flex;
    gap: 4px;
    opacity: 0;
    transition: opacity .15s;
}
tr:hover .d-row-actions[b-osg5wj7nvy] { opacity: 1; }
/* Geometria canonica 36×36 dai token globali; colori dalla palette --d-* della Dashboard (esclusa dall'unificazione) */
.d-icon-btn[b-osg5wj7nvy] {
    border: 1px solid var(--d-line);
    background: var(--d-surface);
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    border-radius: var(--icobtn-radius, 8px);
    cursor: pointer;
    display: grid;
    place-items: center;
    color: var(--d-ink-muted);
    text-decoration: none;
}
.d-tabnum[b-osg5wj7nvy] { font-variant-numeric: tabular-nums; }
.d-em[b-osg5wj7nvy] { color: var(--d-ink-faint); }
.d-margine--pos[b-osg5wj7nvy] { color: var(--d-green); font-weight: 700; }
.d-margine--neg[b-osg5wj7nvy] { color: var(--d-red); font-weight: 700; }

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1200px) {
    .kpi-grid[b-osg5wj7nvy]       { grid-template-columns: repeat(2, 1fr); }
    .d-kpi-strip[b-osg5wj7nvy]    { grid-template-columns: repeat(2, 1fr); }
    .d-chart-row[b-osg5wj7nvy]    { grid-template-columns: 1fr; }
    .d-bot-row[b-osg5wj7nvy]      { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
    .dash-grid[b-osg5wj7nvy]      { grid-template-columns: 1fr 290px; }
    .d-today-grid[b-osg5wj7nvy]   { grid-template-columns: 1fr 290px; }
}

@media (max-width: 900px) {
    .dash-grid[b-osg5wj7nvy]      { grid-template-columns: 1fr; }
    .team-grid[b-osg5wj7nvy]      { grid-template-columns: 1fr; }
    .d-today-grid[b-osg5wj7nvy]   { grid-template-columns: 1fr; }
    .d-page-head[b-osg5wj7nvy]    { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 768px) {
    .kpi-grid[b-osg5wj7nvy] {
        grid-template-columns: repeat(2, 1fr);
    }
    .dash-tab[b-osg5wj7nvy] {
        padding: 0.35rem 0.75rem;
        font-size: 0.8rem;
    }
    .dash-title[b-osg5wj7nvy] {
        font-size: 1.1rem;
    }
}

@media (max-width: 480px) {
    .kpi-grid[b-osg5wj7nvy] {
        grid-template-columns: 1fr;
    }
    .todo-item__right[b-osg5wj7nvy] {
        display: none;
    }
    .dash-filter-pills[b-osg5wj7nvy] {
        display: none;
    }
    .dash-tabs[b-osg5wj7nvy] {
        width: 100%;
        justify-content: stretch;
    }
    .dash-tab[b-osg5wj7nvy] {
        flex: 1;
        text-align: center;
        padding: 0.35rem 0.4rem;
        font-size: 0.75rem;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Dashboard2.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════════════
   Dashboard2 (prototipo) — HERO + Agisci ora
   Palette coerente col brand: navy #1E334C / #2E3C66, verde #2DAE6A,
   ambra #C99327, rosso #D85363.
   ════════════════════════════════════════════════════════════════════════════ */

.d2-root[b-0reiauj3z5] {
    max-width: 1080px;
    margin: 0 auto;
    padding: 4px 2px 40px;
    font-family: inherit;
}

/* ── Menu a pillole (navigazione dashboard) ──────────────────────────────── */
.dashboard-pill-nav[b-0reiauj3z5] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px;
    margin-bottom: 22px;
    overflow-x: auto;
    background: #F3F6FA;
    border: 1px solid #E5EBF2;
    border-radius: 20px;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
}
.dashboard-pill-nav[b-0reiauj3z5]::-webkit-scrollbar { display: none; }

.dashboard-pill-nav__item[b-0reiauj3z5] {
    flex: 0 0 auto;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 18px;
    border: 1px solid #E5EBF2;
    border-radius: 999px;
    background: #FFFFFF;
    color: #60748F;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    scroll-snap-align: start;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.dashboard-pill-nav__item:hover[b-0reiauj3z5] {
    background: #EEF3F8;
    color: #001B48;
}

.dashboard-pill-nav__item.active[b-0reiauj3z5],
.dashboard-pill-nav__item[aria-current="page"][b-0reiauj3z5] {
    background: #001B48;
    border-color: #001B48;
    color: #FFFFFF;
    font-weight: 600;
}

/* Voci ancora placeholder: visibili ma inerti */
.dashboard-pill-nav__item--soon[b-0reiauj3z5] {
    color: #9AA4B8;
    cursor: default;
}
.dashboard-pill-nav__item--soon:hover[b-0reiauj3z5] {
    background: #FFFFFF;
    color: #9AA4B8;
    border-color: #E5EBF2;
}

.dashboard-pill-nav__icon[b-0reiauj3z5] {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
}

.dashboard-pill-nav__item:focus-visible[b-0reiauj3z5] {
    outline: 2px solid #001B48;
    outline-offset: 2px;
}

/* ── Loading ─────────────────────────────────────────────────────────────── */
.d2-loading[b-0reiauj3z5] {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: center;
    padding: 80px 0;
    color: #7C86A3;
    font-size: 14px;
}
.d2-spinner[b-0reiauj3z5] {
    width: 22px; height: 22px;
    border: 3px solid #DCE3EE;
    border-top-color: #2E3C66;
    border-radius: 50%;
    animation: d2spin-b-0reiauj3z5 .8s linear infinite;
}
@keyframes d2spin-b-0reiauj3z5 { to { transform: rotate(360deg); } }

/* ── HEADER — pulito, predominanza del bianco (niente blocco colorato) ───── */
.d2-head[b-0reiauj3z5] {
    padding: 6px 4px 0;
    margin-bottom: 20px;
}
.d2-head__hello[b-0reiauj3z5] {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -.3px;
    color: #001B48;
    margin: 0 0 6px;
}
.d2-head__meta[b-0reiauj3z5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 18px;
    font-size: 13px;
    color: #7C86A3;
}
.d2-head__sync[b-0reiauj3z5] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.d2-head__dot[b-0reiauj3z5] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2DAE6A;
    box-shadow: 0 0 0 3px rgba(45, 174, 106, .15);
}

/* ── KPI — quattro card identiche, bianche, leggerissime ─────────────────── */
.d2-kpis[b-0reiauj3z5] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}
.d2-kpi[b-0reiauj3z5] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    background: #FFFFFF;
    border: 1px solid #E6ECF5;
    border-radius: 18px;
    padding: 20px 22px 16px;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    min-width: 0;
}
.d2-kpi__ico[b-0reiauj3z5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: 1.1rem;
    margin-bottom: 12px;
}
.d2-kpi__ico--red[b-0reiauj3z5]    { background: #FBEBED; color: #D85363; }
.d2-kpi__ico--blue[b-0reiauj3z5]   { background: #EAF0F8; color: #001B48; }
.d2-kpi__ico--orange[b-0reiauj3z5] { background: #FBF0D9; color: #C99327; }
.d2-kpi__ico--sky[b-0reiauj3z5]    { background: #E8F4FD; color: #2E86C1; }

.d2-kpi__val[b-0reiauj3z5] {
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -.6px;
    line-height: 1.1;
    color: #001B48;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.d2-kpi__val.is-pos[b-0reiauj3z5] { color: #2DAE6A; }
.d2-kpi__val.is-neg[b-0reiauj3z5] { color: #D85363; }

.d2-kpi__lbl[b-0reiauj3z5] {
    font-size: 14px;
    font-weight: 600;
    color: #22324B;
    margin-top: 4px;
}
.d2-kpi__sub[b-0reiauj3z5] {
    font-size: 12px;
    color: #7C86A3;
    line-height: 1.4;
}
.d2-kpi__cta[b-0reiauj3z5] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-top: 14px;
    padding: 0;
    border: none;
    background: none;
    font-size: 13px;
    font-weight: 600;
    color: #001B48;
    text-decoration: none;
    cursor: pointer;
    transition: opacity .12s;
}
.d2-kpi__cta:hover[b-0reiauj3z5] { opacity: .7; }
.d2-kpi__cta i[b-0reiauj3z5] { font-size: 1.1rem; }

/* ── ALERT margine — un'unica barra ambra molto leggera ──────────────────── */
.d2-warnbar[b-0reiauj3z5] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #FDF8EC;
    border: 1px solid #F3E2B8;
    border-radius: 14px;
    padding: 12px 18px;
    margin-bottom: 22px;
}
.d2-warnbar > i[b-0reiauj3z5] { color: #C99327; flex-shrink: 0; }
.d2-warnbar__txt[b-0reiauj3z5] {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: #6B5A24;
    line-height: 1.4;
}
.d2-warnbar__txt strong[b-0reiauj3z5] { color: #5A4A17; }
.d2-warnbar__btn[b-0reiauj3z5] {
    flex-shrink: 0;
    border: 1px solid #C99327;
    background: transparent;
    color: #8A6D14;
    border-radius: 10px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background .12s;
}
.d2-warnbar__btn:hover[b-0reiauj3z5] { background: #F8EFD8; color: #6B5A24; }

/* ── COSE DA COMPLETARE (subito dopo «Agisci ora») ───────────────────────── */
.d2-onb[b-0reiauj3z5] { margin-top: 24px; }

/* ── AGISCI ORA ──────────────────────────────────────────────────────────── */
.d2-actions__head[b-0reiauj3z5] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0 4px 12px;
}
.d2-actions__head h2[b-0reiauj3z5] {
    font-size: 17px;
    font-weight: 700;
    color: #1E334C;
    margin: 0;
}
.d2-actions__head span[b-0reiauj3z5] {
    font-size: 12.5px;
    color: #8A93A8;
}

.d2-list[b-0reiauj3z5] { display: flex; flex-direction: column; gap: 10px; }

.d2-act[b-0reiauj3z5] {
    display: flex;
    align-items: stretch;
    gap: 0;
    text-decoration: none;
    background: #fff;
    border: 1px solid #E6ECF5;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s;
}
.d2-act:hover[b-0reiauj3z5] {
    transform: translateY(-1px);
    box-shadow: 0 12px 26px -16px rgba(30,51,76,.35);
    border-color: #D5DEEA;
}
.d2-act__bar[b-0reiauj3z5] { width: 5px; flex-shrink: 0; }
.d2-act.is-crit .d2-act__bar[b-0reiauj3z5] { background: #D85363; }
.d2-act.is-warn .d2-act__bar[b-0reiauj3z5] { background: #C99327; }
.d2-act.is-info .d2-act__bar[b-0reiauj3z5] { background: #3D7BF0; }

/* Colore laterale per TIPO di azione (prevale sulla severità):
   rosso scaduto · verde incassi · giallo POS · blu classificazioni · azzurro rapportini */
.d2-act.tone-rosso   .d2-act__bar[b-0reiauj3z5] { background: #D85363; }
.d2-act.tone-verde   .d2-act__bar[b-0reiauj3z5] { background: #2DAE6A; }
.d2-act.tone-giallo  .d2-act__bar[b-0reiauj3z5] { background: #E3B321; }
.d2-act.tone-blu     .d2-act__bar[b-0reiauj3z5] { background: #3D7BF0; }
.d2-act.tone-azzurro .d2-act__bar[b-0reiauj3z5] { background: #5FB6E8; }

.d2-act.tone-rosso   .d2-act__label[b-0reiauj3z5] { color: #D85363; }
.d2-act.tone-verde   .d2-act__label[b-0reiauj3z5] { color: #23824F; }
.d2-act.tone-giallo  .d2-act__label[b-0reiauj3z5] { color: #A5820F; }
.d2-act.tone-blu     .d2-act__label[b-0reiauj3z5] { color: #3D7BF0; }
.d2-act.tone-azzurro .d2-act__label[b-0reiauj3z5] { color: #2E86C1; }

.d2-act__body[b-0reiauj3z5] {
    flex: 1;
    min-width: 0;
    padding: 18px 20px;
}
.d2-act__label[b-0reiauj3z5] {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 3px;
}
.d2-act.is-crit .d2-act__label[b-0reiauj3z5] { color: #D85363; }
.d2-act.is-warn .d2-act__label[b-0reiauj3z5] { color: #B6831F; }
.d2-act.is-info .d2-act__label[b-0reiauj3z5] { color: #3D7BF0; }

.d2-act__title[b-0reiauj3z5] {
    font-size: 14.5px;
    font-weight: 600;
    color: #22324B;
    line-height: 1.3;
}
.d2-act__meta[b-0reiauj3z5] {
    font-size: 12px;
    color: #7C86A3;
    margin-top: 2px;
}
.d2-act__nota[b-0reiauj3z5] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 7px;
    font-size: 11.5px;
    font-weight: 600;
    color: #B6831F;
    background: #FFF6E3;
    border: 1px solid #F3E2B8;
    padding: 3px 8px;
    border-radius: 7px;
}

.d2-act__right[b-0reiauj3z5] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 6px;
    padding: 13px 18px 13px 8px;
    text-align: right;
    border-left: 1px solid #F0F3F8;
    min-width: 130px;
}
.d2-act__num[b-0reiauj3z5] {
    font-size: 19px;
    font-weight: 800;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.4px;
    line-height: 1;
}
.d2-act__num span[b-0reiauj3z5] {
    font-size: 11px;
    font-weight: 600;
    color: #9AA4B8;
    margin-left: 2px;
}
.d2-act__cta[b-0reiauj3z5] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 12px;
    font-weight: 600;
    color: #2E3C66;
}
.d2-act__cta i[b-0reiauj3z5] { font-size: 16px; }

/* ── CASSA A FINE MESE ───────────────────────────────────────────────────── */
.d2-cash[b-0reiauj3z5] { margin-top: 26px; scroll-margin-top: 16px; }
.d2-cash__head[b-0reiauj3z5] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0 4px 12px;
}
.d2-cash__head h2[b-0reiauj3z5] { font-size: 17px; font-weight: 700; color: #1E334C; margin: 0; }
.d2-cash__head span[b-0reiauj3z5] { font-size: 12.5px; color: #8A93A8; }

.d2-cash__stats[b-0reiauj3z5] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 12px;
}
.d2-cash__stat[b-0reiauj3z5] {
    background: #fff;
    border: 1px solid #E7ECF3;
    border-radius: 14px;
    padding: 14px 16px;
}
.d2-cash__stat--accent[b-0reiauj3z5] { background: #F7FAFF; border-color: #D7E3F5; }
.d2-cash__stat-lbl[b-0reiauj3z5] { font-size: 11.5px; color: #8A93A8; font-weight: 600; }
.d2-cash__stat-val[b-0reiauj3z5] {
    font-size: 22px;
    font-weight: 800;
    color: #1E334C;
    letter-spacing: -.5px;
    font-variant-numeric: tabular-nums;
    margin: 3px 0 2px;
}
.d2-cash__stat-val.is-pos[b-0reiauj3z5] { color: #1E9E5F; }
.d2-cash__stat-val.is-neg[b-0reiauj3z5] { color: #C9434F; }
.d2-cash__stat-sub[b-0reiauj3z5] { font-size: 11.5px; color: #9AA4B8; }

.d2-cash__cols[b-0reiauj3z5] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.d2-cash__block[b-0reiauj3z5] {
    background: #fff;
    border: 1px solid #E7ECF3;
    border-radius: 14px;
    padding: 14px 16px 12px;
}
.d2-cash__block-h[b-0reiauj3z5] {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #5A6685;
    margin-bottom: 10px;
}
.d2-cash__row[b-0reiauj3z5] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid #F1F4F9;
    font-size: 13px;
}
.d2-cash__row:first-of-type[b-0reiauj3z5] { border-top: none; }
.d2-cash__row--muted[b-0reiauj3z5] { color: #8A93A8; }
.d2-cash__row--accent[b-0reiauj3z5] { font-weight: 700; }
.d2-cash__bank[b-0reiauj3z5] {
    color: #33415C;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
.d2-cash__bank i[b-0reiauj3z5] { color: #7C86A3; margin-right: 5px; }
.d2-cash__rown[b-0reiauj3z5] {
    font-size: 11.5px;
    color: #8A93A8;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.d2-cash__rowv[b-0reiauj3z5] {
    font-weight: 700;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.d2-cash__rowv.is-pos[b-0reiauj3z5] { color: #1E9E5F; }
.d2-cash__rowv.is-neg[b-0reiauj3z5] { color: #C9434F; }
.d2-cash__bank em[b-0reiauj3z5] {
    font-style: normal;
    font-size: 11px;
    color: #B6831F;
    background: #FFF6E3;
    border: 1px solid #F3E2B8;
    padding: 1px 6px;
    border-radius: 6px;
    margin-left: 4px;
}
.d2-cash__hint[b-0reiauj3z5] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px;
    font-size: 11.5px;
    color: #8A93A8;
    line-height: 1.4;
}
.d2-cash__hint i[b-0reiauj3z5] { color: #A9B3C6; margin-top: 1px; }
.d2-cash__empty[b-0reiauj3z5] {
    font-size: 12.5px;
    color: #9AA4B8;
    padding: 10px 0;
    text-align: center;
}
.d2-cash__link[b-0reiauj3z5] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-top: 10px;
    font-size: 12px;
    font-weight: 600;
    color: #2E3C66;
    text-decoration: none;
}
.d2-cash__link i[b-0reiauj3z5] { font-size: 16px; }

/* Titolo "Andamento economico" con dropdown anno inline */
.d2-trend__title[b-0reiauj3z5] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* ── ANDAMENTO COMMESSE ──────────────────────────────────────────────────── */
.d2-comm[b-0reiauj3z5] { display: flex; flex-direction: column; gap: 10px; }

.d2-comm__row[b-0reiauj3z5] {
    background: #fff;
    border: 1px solid #E7ECF3;
    border-radius: 14px;
    padding: 13px 16px;
}
.d2-comm__head[b-0reiauj3z5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.d2-comm__name[b-0reiauj3z5] {
    font-size: 14px;
    font-weight: 600;
    color: #22324B;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
a.d2-comm__name:hover[b-0reiauj3z5] { color: #001B48; text-decoration: underline; }

.d2-badge[b-0reiauj3z5] {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: 999px;
    white-space: nowrap;
}
.d2-badge.is-ok[b-0reiauj3z5]   { background: #E4F5EC; color: #1E9E5F; }
.d2-badge.is-warn[b-0reiauj3z5] { background: #FFF6E3; color: #B6831F; }
.d2-badge.is-crit[b-0reiauj3z5] { background: #FBE7E9; color: #C9434F; }

.d2-comm__bar[b-0reiauj3z5] {
    height: 8px;
    border-radius: 999px;
    background: #EEF2F7;
    overflow: hidden;
}
.d2-comm__bar-fill[b-0reiauj3z5] { height: 100%; border-radius: 999px; transition: width .25s ease; }
.d2-comm__bar-fill.is-ok[b-0reiauj3z5]   { background: #2DAE6A; }
.d2-comm__bar-fill.is-warn[b-0reiauj3z5] { background: #E0A93B; }
.d2-comm__bar-fill.is-crit[b-0reiauj3z5] { background: #D85363; }

.d2-comm__vals[b-0reiauj3z5] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin-top: 8px;
    font-size: 12.5px;
    color: #7C86A3;
}
.d2-comm__vals strong[b-0reiauj3z5] { color: #1E334C; font-variant-numeric: tabular-nums; }
.d2-comm__cop[b-0reiauj3z5] { margin-left: auto; font-weight: 600; color: #5A6685; }

.d2-comm__breakdown[b-0reiauj3z5] {
    margin-top: 6px;
    font-size: 11.5px;
    color: #9AA4B8;
    font-variant-numeric: tabular-nums;
}
.d2-comm__flag[b-0reiauj3z5] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 1px 7px;
    border-radius: 6px;
    font-weight: 600;
    font-variant-numeric: normal;
    background: #FFF6E3;
    border: 1px solid #F3E2B8;
    color: #B6831F;
}
.d2-comm__flag.is-crit[b-0reiauj3z5] {
    background: #FBE7E9;
    border-color: #F3C6CB;
    color: #C9434F;
}

.d2-comm__note[b-0reiauj3z5] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 14px;
    font-size: 12px;
    color: #8A93A8;
    line-height: 1.45;
}
.d2-comm__note i[b-0reiauj3z5] { color: #A9B3C6; margin-top: 1px; }

/* ── Empty ───────────────────────────────────────────────────────────────── */
.d2-empty[b-0reiauj3z5] {
    text-align: center;
    padding: 44px 20px;
    background: #fff;
    border: 1px solid #E7ECF3;
    border-radius: 14px;
}
.d2-empty i[b-0reiauj3z5] { font-size: 34px; color: #2DAE6A; }
.d2-empty__t[b-0reiauj3z5] { font-size: 15px; font-weight: 700; color: #1E334C; margin-top: 10px; }
.d2-empty__s[b-0reiauj3z5] { font-size: 12.5px; color: #8A93A8; margin-top: 3px; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .d2-pillar__div[b-0reiauj3z5] { display: none; }
    .d2-pillar[b-0reiauj3z5] { flex-basis: 100%; }
    .d2-act__right[b-0reiauj3z5] { min-width: 96px; padding-right: 12px; }
    .d2-hero__pillars[b-0reiauj3z5] { gap: 16px; }
}
/* _content/GestioneCommessa.Shared/Pages/Finanze/Scadenziario.razor.rz.scp.css */
/* Scadenziario Finanze — completo */

/* ── KPI Strip ───────────────────────────────────────────────────────── */

.fi-kpi-strip[b-zg9e0j2xy9] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
@media (max-width: 900px) { .fi-kpi-strip[b-zg9e0j2xy9] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .fi-kpi-strip[b-zg9e0j2xy9] { grid-template-columns: 1fr; } }

/* Standard di spaziatura (2026-09-04): KPI 20px 24px, icona↔testo 16px,
   etichetta→valore 6px, valore→sub 4px; le card della griglia hanno la stessa altezza. */
.fi-kpi[b-zg9e0j2xy9] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 14px;
    padding: 20px 24px;
    box-shadow: 0 1px 2px rgba(10,18,48,.05);
}
.fi-kpi--danger[b-zg9e0j2xy9] { border-color: #fdecea; background: #fffcfc; }
.fi-kpi__row[b-zg9e0j2xy9]    { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }

.fi-kpi__icon[b-zg9e0j2xy9] {
    width: 34px; height: 34px;
    border-radius: 10px;
    background: #EEF3FE; color: #3D7BF0;
    display: grid; place-items: center;
    flex-shrink: 0; font-size: .95rem;
}
.fi-kpi__icon--in[b-zg9e0j2xy9]     { background: #E8F6EE; color: #2ECC71; }
.fi-kpi__icon--out[b-zg9e0j2xy9]    { background: #FBEBED; color: #E74C3C; }
.fi-kpi__icon--danger[b-zg9e0j2xy9] { background: #FBEBED; color: #E74C3C; }

.fi-kpi__lbl[b-zg9e0j2xy9] {
    font-size: .6875rem; color: #7C86A3;
    font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    margin-bottom: 6px;
}
.fi-kpi__val[b-zg9e0j2xy9] {
    font-size: 1.6rem; font-weight: 700; color: #1B2444;
    line-height: 1.1; font-variant-numeric: tabular-nums; margin-top: 0; white-space: nowrap;
}
.fi-kpi__val--in[b-zg9e0j2xy9]  { color: #2ECC71; }
.fi-kpi__val--out[b-zg9e0j2xy9] { color: #E74C3C; }
.fi-kpi__sub[b-zg9e0j2xy9] { font-size: .78rem; color: #7C86A3; margin-top: 4px; }

/* ── Grafico ─────────────────────────────────────────────────────────── */

.fi-chart-card[b-zg9e0j2xy9] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 12px;
    padding: 20px 24px;   /* stesso padding di .card-body */
    box-shadow: 0 1px 2px rgba(10,18,48,.05);
}

.fi-q-btn[b-zg9e0j2xy9] {
    background: #f0f5fb;
    border: 1px solid #dce6f2;
    border-radius: 6px;
    padding: .2rem .6rem;
    font-size: .78rem;
    font-weight: 600;
    color: #5B7A9A;
    cursor: pointer;
    transition: background .1s, color .1s;
}
.fi-q-btn:hover[b-zg9e0j2xy9]  { background: #e0ecf9; color: #1E334C; }
.fi-q-btn.active[b-zg9e0j2xy9] { background: #1E334C; border-color: #1E334C; color: #fff; }

/* ── Tab principali ──────────────────────────────────────────────────── */

.fi-tabs-bar[b-zg9e0j2xy9] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    border-bottom: 2px solid #e8eef6;
    padding-bottom: 0;
}

.fi-tab-btn[b-zg9e0j2xy9] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    padding: .45rem .75rem;
    font-size: .82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    transition: color .12s, border-color .12s;
}
.fi-tab-btn:hover[b-zg9e0j2xy9] { color: #1E334C; }
.fi-tab-btn.active[b-zg9e0j2xy9] { color: #1E334C; font-weight: 700; border-bottom-color: #1E334C; }
.fi-tab-btn.active .fi-tab-badge[b-zg9e0j2xy9] { background: rgba(30,51,76,.15); color: #1E334C; }

.fi-tab-badge[b-zg9e0j2xy9] {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 1.5em; height: 1.5em;
    background: #e8edf4; color: #5B7A9A;
    font-size: .67rem; font-weight: 700;
    padding: 0 .35em; border-radius: 10px;
}

/* ── Barra filtri ────────────────────────────────────────────────────── */

/* Barra filtri: gap 12px e controlli alti 42px (standard toolbar) */
.fi-filter-bar[b-zg9e0j2xy9] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.fi-filter-search[b-zg9e0j2xy9] {
    position: relative;
    flex: 1 1 240px;
    min-width: 200px;
    max-width: 400px;
}
.fi-filter-search-icon[b-zg9e0j2xy9] {
    position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
    color: #94A3B8; font-size: .85rem; pointer-events: none;
}
.fi-filter-search-input[b-zg9e0j2xy9] {
    width: 100%;
    min-height: var(--eco-ctl-h, 42px);
    padding: .35rem .75rem .35rem 2rem;
    border: 1px solid #dce6f2;
    border-radius: 6px;
    font-size: .82rem;
    color: #1E334C;
    background: #fff;
    outline: none;
    transition: border-color .12s;
}
.fi-filter-search-input:focus[b-zg9e0j2xy9] { border-color: #5B7A9A; }

.fi-filter-select[b-zg9e0j2xy9] {
    flex: 0 0 auto;
    min-width: 140px;
    min-height: var(--eco-ctl-h, 42px);
    font-size: .82rem !important;
}

/* ── Conteggio risultati ─────────────────────────────────────────────── */

.fi-risultati-count[b-zg9e0j2xy9] {
    font-size: .82rem;
    color: #5B7A9A;
}

/* ── Tabella ─────────────────────────────────────────────────────────── */

.fi-table[b-zg9e0j2xy9] { margin-bottom: 0; }

.fi-table thead th[b-zg9e0j2xy9] {
    background: #f7fafd;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #5B7A9A;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    border-bottom: 2px solid #dce6f2;
    white-space: nowrap;
}
.fi-th-sortable:hover[b-zg9e0j2xy9] { color: #1E334C; }

.fi-table tbody td[b-zg9e0j2xy9] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    border-bottom: 1px solid #f0f5fb;
    font-size: .8125rem;
    color: #17324d;
    vertical-align: middle;
}
.fi-table tfoot td[b-zg9e0j2xy9] { border-top: 2px solid #dce6f2 !important; }

/* Prima/ultima colonna: bordo standard (il table-responsive fa da card, senza header interno);
   ultima colonna = azioni, allineate a destra e mai a capo */
.fi-table th:first-child[b-zg9e0j2xy9], .fi-table td:first-child[b-zg9e0j2xy9] { padding-left: var(--eco-cell-edge, 20px); }
.fi-table th:last-child[b-zg9e0j2xy9],  .fi-table td:last-child[b-zg9e0j2xy9]  { padding-right: var(--eco-cell-edge, 20px); text-align: right; white-space: nowrap; }
.fi-table th:first-child input[type="checkbox"][b-zg9e0j2xy9],
.fi-table td:first-child input[type="checkbox"][b-zg9e0j2xy9] { margin: 0; vertical-align: middle; }

.fi-tr[b-zg9e0j2xy9] { cursor: pointer; transition: background .1s; }
.fi-tr:hover td[b-zg9e0j2xy9] { background: #f7fafd; }

/* ── Tipo badge ──────────────────────────────────────────────────────── */

.fi-tipo[b-zg9e0j2xy9] {
    display: inline-flex; align-items: center; gap: .3rem;
    font-size: .72rem; font-weight: 700;
    padding: .18em .55em; border-radius: 20px;
    white-space: nowrap;
}
.fi-tipo-label[b-zg9e0j2xy9] { display: inline; }
.fi-tipo-in[b-zg9e0j2xy9]  { background: #e8f6ee; color: #27ae60; }
.fi-tipo-out[b-zg9e0j2xy9] { background: #fdecea; color: #c0392b; }

/* ── Testo celle ─────────────────────────────────────────────────────── */

.fi-nome[b-zg9e0j2xy9]    { font-weight: 600; color: #1E334C; font-size: .8125rem; }
.fi-sub[b-zg9e0j2xy9]     { font-size: .75rem; color: #5B7A9A; margin-top: .1rem; }
.fi-data[b-zg9e0j2xy9]    { font-size: .8125rem; color: #1E334C; white-space: nowrap; }
.fi-ritardo[b-zg9e0j2xy9] { font-size: .72rem; color: #c0392b; margin-top: .1rem; }
.fi-importo[b-zg9e0j2xy9] { font-weight: 700; color: #1E334C; font-size: .8125rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fi-importo-scaduto[b-zg9e0j2xy9] { color: #E74C3C; }

/* ── Categoria badge ─────────────────────────────────────────────────── */

.fi-cat-badge[b-zg9e0j2xy9] {
    display: inline-block;
    font-size: .68rem; font-weight: 700;
    padding: .15em .55em; border-radius: 20px;
    background: #e8f1fa; color: #2c6a9e;
    white-space: nowrap;
}

/* ── Assegnazione badge ──────────────────────────────────────────────── */

.fi-assegnazione-badge[b-zg9e0j2xy9] {
    display: inline-block;
    font-size: .68rem; font-weight: 700;
    padding: .15em .55em; border-radius: 20px;
    white-space: nowrap;
}
.fi-assegnazione-costo-commessa[b-zg9e0j2xy9]    { background: #e8f1fa; color: #2c6a9e; }
.fi-assegnazione-spesa-generale[b-zg9e0j2xy9]    { background: #fff8e6; color: #7a5200; }
.fi-assegnazione-ricavo-commessa[b-zg9e0j2xy9]   { background: #e8f6ee; color: #27ae60; }
.fi-assegnazione-non-assegnata[b-zg9e0j2xy9]     { background: #f4f5f7; color: #8696a7; }

/* ── Verificato ──────────────────────────────────────────────────────── */

.fi-verif-ok[b-zg9e0j2xy9]   { color: #27ae60; font-size: .9rem; }
.fi-verif-warn[b-zg9e0j2xy9] { color: #e67e22; font-size: .9rem; }

/* ── Icon btn ────────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.fi-icon-btn[b-zg9e0j2xy9] {
    display: inline-flex; align-items: center; justify-content: center;
    width: var(--icobtn-size, 36px); height: var(--icobtn-size, 36px);
    flex-shrink: 0; padding: 0;
    border: none; border-radius: var(--icobtn-radius, 8px);
    background: transparent; color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem; line-height: 1; cursor: pointer; text-decoration: none;
    transition: background .12s, color .12s;
}
.fi-icon-btn:hover[b-zg9e0j2xy9] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

/* ── Empty ───────────────────────────────────────────────────────────── */

.fi-card[b-zg9e0j2xy9] { background: #fff; border: 1px solid #dce6f2; border-radius: 10px; }
.fi-empty[b-zg9e0j2xy9] { text-align: center; padding: 40px var(--eco-pad, 24px); }
.fi-empty .bi[b-zg9e0j2xy9] { font-size: 2.5rem; color: #c8d8e8; display: block; margin-bottom: .75rem; }
.fi-empty-title[b-zg9e0j2xy9] { font-size: 1rem; font-weight: 600; color: #1E334C; margin-bottom: .35rem; }
.fi-empty-text[b-zg9e0j2xy9]  { font-size: .875rem; color: #8696a7; }

/* ── Responsive — nascondi colonne ───────────────────────────────────── */

@media (max-width: 1100px) {
    .fi-col-hide-lg[b-zg9e0j2xy9] { display: none; }
    .fi-tipo-label[b-zg9e0j2xy9]  { display: none; }
}
@media (max-width: 768px) {
    .fi-col-hide-md[b-zg9e0j2xy9] { display: none; }
    .fi-tabs-bar[b-zg9e0j2xy9]    { overflow-x: auto; flex-wrap: nowrap; }
    .fi-filter-bar[b-zg9e0j2xy9]  { flex-direction: column; align-items: stretch; }
    .fi-filter-search[b-zg9e0j2xy9] { max-width: 100%; }
    .fi-filter-select[b-zg9e0j2xy9] { min-width: 0; }
}
/* _content/GestioneCommessa.Shared/Pages/Gare/Form.razor.rz.scp.css */
/* Gara d'appalto — scheda a tab. Standard di spaziatura: 24px fra i blocchi, card con padding 24 */
.gf-page[b-5ng0fawyb8] { padding: 4px 0 40px; }
.gf-head[b-5ng0fawyb8] { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; margin-bottom: var(--eco-block, 24px); }
.gf-head__txt[b-5ng0fawyb8] { min-width: 0; flex: 1 1 320px; }
.gf-head__title[b-5ng0fawyb8] { margin: 0; font-size: 1.32rem; font-weight: 700; line-height: 1.25; color: #1E334C; }
.gf-head__meta[b-5ng0fawyb8] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 8px; }
.gf-head__fact[b-5ng0fawyb8] { font-size: .84rem; color: #3E5A78; white-space: nowrap; }
.gf-head__actions[b-5ng0fawyb8] { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }

.gf-card-title[b-5ng0fawyb8] { font-weight: 700; color: #1E334C; margin-bottom: 16px; }
.gf-esito[b-5ng0fawyb8] { margin-bottom: var(--eco-block, 24px); border-left: 3px solid #E0A800; }

.gf-grid[b-5ng0fawyb8] { display: grid; gap: 14px 16px; }
.gf-grid--3[b-5ng0fawyb8] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gf-span-3[b-5ng0fawyb8] { grid-column: span 3; }
@media (max-width: 900px) {
    .gf-grid--3[b-5ng0fawyb8] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gf-span-3[b-5ng0fawyb8] { grid-column: span 2; }
}
@media (max-width: 560px) {
    .gf-grid--3[b-5ng0fawyb8] { grid-template-columns: minmax(0, 1fr); }
    .gf-span-3[b-5ng0fawyb8] { grid-column: span 1; }
}

/* ── Tab ─────────────────────────────────────────────────────────────── */
.gf-tabs[b-5ng0fawyb8] {
    display: flex; gap: 4px; border-bottom: 1px solid #DCE5EF; margin-bottom: var(--eco-block, 24px);
    overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.gf-tabs[b-5ng0fawyb8]::-webkit-scrollbar { display: none; }
.gf-tab[b-5ng0fawyb8] {
    display: inline-flex; align-items: center; gap: 8px; background: none; border: none;
    border-bottom: 2px solid transparent; min-height: 44px; padding: 0 14px; font-size: .88rem; font-weight: 500;
    color: #5B7A9A; cursor: pointer; white-space: nowrap; transition: color .12s, border-color .12s;
}
.gf-tab:hover[b-5ng0fawyb8] { color: #1E334C; }
.gf-tab.active[b-5ng0fawyb8] { color: #1E334C; font-weight: 700; border-bottom-color: #1E334C; }
.gf-tab__n[b-5ng0fawyb8] { font-size: .72rem; font-weight: 600; background: #EDF3FB; color: #1E334C; border-radius: 999px; padding: 1px 8px; }
.gf-tab.active .gf-tab__n[b-5ng0fawyb8] { background: #1E334C; color: #fff; }
.gf-tab-body[b-5ng0fawyb8] { min-height: 200px; }

/* Linea di fase della gara (2026-09-25, blocco 3 delle richieste d'offerta) */
.gf-linea[b-5ng0fawyb8] { background: #fff; border: 1px solid #E3E8EF; border-radius: 12px; padding: 16px 12px 12px; margin: 0 0 16px; }
/* _content/GestioneCommessa.Shared/Pages/Gare/Index.razor.rz.scp.css */
/* Gare d'appalto — elenco. Stessi token dello standard di spaziatura (economia.css) */
.ga-page[b-chytwk6tml] { padding: 4px 0 40px; }
.ga-head[b-chytwk6tml] { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; margin-bottom: var(--eco-block, 24px); }
.ga-head__txt[b-chytwk6tml] { min-width: 0; flex: 1 1 280px; }
.ga-head__title[b-chytwk6tml] { margin: 0; font-size: 1.32rem; font-weight: 700; line-height: 1.25; color: #1E334C; }
.ga-head__sub[b-chytwk6tml] { margin: 4px 0 0; font-size: .84rem; color: #5B7A9A; max-width: 78ch; }
.ga-head__actions[b-chytwk6tml] { display: flex; gap: 8px; align-items: flex-start; }
.ga-kpis[b-chytwk6tml] { margin-bottom: var(--eco-block, 24px); }

.ga-table th[b-chytwk6tml] {
    font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px); height: 48px; vertical-align: middle;
}
.ga-table td[b-chytwk6tml] { padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px); height: var(--eco-row-h, 54px); vertical-align: middle; }
.ga-table th:first-child[b-chytwk6tml], .ga-table td:first-child[b-chytwk6tml] { padding-left: var(--eco-cell-edge, 20px); }
.ga-table th:last-child[b-chytwk6tml],  .ga-table td:last-child[b-chytwk6tml]  { padding-right: var(--eco-cell-edge, 20px); }
.ga-table .text-end[b-chytwk6tml] { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ga-row[b-chytwk6tml] { cursor: pointer; }
.ga-row:hover td[b-chytwk6tml] { background: #F6F9FD; }
.ga-ente[b-chytwk6tml] { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ga-oggetto[b-chytwk6tml] { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ga-table .is-actions[b-chytwk6tml] { white-space: nowrap; text-align: right; }
.ga-nascoste[b-chytwk6tml] { padding: 12px var(--eco-cell-edge, 20px) 4px; font-size: .84rem; color: #5B7A9A; }
/* _content/GestioneCommessa.Shared/Pages/Gare/_GaraChecklist.razor.rz.scp.css */
/* Tab Checklist della gara */
.gc-head[b-y7goewc3y9] { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: flex-start; margin-bottom: var(--eco-block, 24px); }
.gc-head__txt[b-y7goewc3y9] { flex: 1 1 320px; min-width: 0; }
.gc-head__act[b-y7goewc3y9] { display: flex; flex-wrap: wrap; gap: 8px; }
.gc-title[b-y7goewc3y9] { font-weight: 700; color: #1E334C; }
.gc-prog[b-y7goewc3y9] { margin-top: 10px; max-width: 520px; }
.gc-prog__bar[b-y7goewc3y9] { height: 10px; border-radius: 999px; background: #EDF3FB; overflow: hidden; }
.gc-prog__fill[b-y7goewc3y9] { height: 100%; background: #23824F; border-radius: 999px; transition: width .2s; }
.gc-prog__t[b-y7goewc3y9] { font-size: .82rem; color: #5B7A9A; margin-top: 4px; }
.gc-presc[b-y7goewc3y9] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

.gc-prop[b-y7goewc3y9] { margin-bottom: var(--eco-block, 24px); border-left: 3px solid #1E334C; }
.gc-prop__head[b-y7goewc3y9] { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: flex-start; justify-content: space-between; margin-bottom: 10px; }
.gc-prop__act[b-y7goewc3y9] { display: flex; gap: 8px; flex-wrap: wrap; }
.gc-prop__b[b-y7goewc3y9] { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: #5B7A9A; font-weight: 700; margin: 12px 0 6px; }
.gc-prop__list[b-y7goewc3y9] { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.gc-prop__list li[b-y7goewc3y9] { padding: 8px 12px; border-radius: 8px; background: #F8FAFD; }
.gc-prop__gia[b-y7goewc3y9] { opacity: .6; }

.gc-noB[b-y7goewc3y9] { padding: 8px 4px 0; margin-bottom: var(--eco-block, 24px); display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.gc-busta[b-y7goewc3y9] { margin-bottom: var(--eco-block, 24px); }
.gc-busta__head[b-y7goewc3y9] { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.gc-busta__t[b-y7goewc3y9] { display: flex; align-items: center; gap: 10px; font-weight: 700; color: #1E334C; }
.gc-busta__lett[b-y7goewc3y9] { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 8px; background: #1E334C; color: #fff; font-weight: 800; }
.gc-busta__n[b-y7goewc3y9] { display: flex; gap: 6px; flex-wrap: wrap; }

.gc-table th[b-y7goewc3y9] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap; padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px); height: 48px; vertical-align: middle; }
.gc-table td[b-y7goewc3y9] { padding: 10px var(--eco-cell-x, 16px); vertical-align: middle; }
.gc-table th:first-child[b-y7goewc3y9], .gc-table td:first-child[b-y7goewc3y9] { padding-left: var(--eco-cell-edge, 20px); }
.gc-table th:last-child[b-y7goewc3y9],  .gc-table td:last-child[b-y7goewc3y9]  { padding-right: var(--eco-cell-edge, 20px); }
.gc-table .is-actions[b-y7goewc3y9] { white-space: nowrap; text-align: right; }
.gc-fatto .gc-doc__t[b-y7goewc3y9] { color: #5B7A9A; }
.gc-doc[b-y7goewc3y9] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.gc-doc__t[b-y7goewc3y9] { font-weight: 600; color: #1E334C; overflow-wrap: anywhere; }
.gc-orig[b-y7goewc3y9] { display: inline-block; padding: 0 6px; border-radius: 999px; font-size: .66rem; font-weight: 700; background: #EDF3FB; color: #1E334C; }
.gc-orig--pc[b-y7goewc3y9] { background: #FBF0D9; color: #A5820F; }
.gc-edit-row[b-y7goewc3y9] { display: flex; gap: 6px; }
.gc-stato[b-y7goewc3y9] { min-width: 140px; }
.gc-stato--pronto[b-y7goewc3y9], .gc-stato--caricato[b-y7goewc3y9] { border-color: #BFE5CF; background-color: #F3FBF6; }
.gc-stato--non_dovuto[b-y7goewc3y9] { color: #8A9AAB; }
.gc-hidden-file[b-y7goewc3y9] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.gc-table label.eco-act[b-y7goewc3y9] { margin: 0; cursor: pointer; }

.gc-add[b-y7goewc3y9] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 12px; padding-top: 12px; border-top: 1px dashed #DCE5EF; }
.gc-add__doc[b-y7goewc3y9] { flex: 1 1 260px; }
.gc-add__mod[b-y7goewc3y9] { flex: 0 1 200px; }
.gc-add__obb[b-y7goewc3y9] { flex: 0 0 150px; }

/* ── Modello da compilare (2026-09-16): scarica → compila → ricarica sulla stessa riga ── */
.gc-mod[b-y7goewc3y9] { min-width: 220px; max-width: 320px; }
.gc-mod__row[b-y7goewc3y9] { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.gc-mod__n[b-y7goewc3y9] {
    font-size: .8rem; color: #1E334C; margin: 0 4px;
    max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
@media (max-width: 1200px) {
    .gc-mod[b-y7goewc3y9] { min-width: 160px; }
    .gc-mod__n[b-y7goewc3y9] { max-width: 110px; }
}

/* File preparato: apri · sostituisci · elimina (2026-09-17) */
.gc-file[b-y7goewc3y9] { min-width: 210px; }
@media (max-width: 1200px) { .gc-file[b-y7goewc3y9] { min-width: 150px; } }
/* _content/GestioneCommessa.Shared/Pages/Gare/_GaraDati.razor.rz.scp.css */
/* Tab Dati della gara — stessi token dello standard di spaziatura */
.gd-card[b-snpmsd9phi] { margin-bottom: var(--eco-block, 24px); }
.gd-card--warn[b-snpmsd9phi] { border-left: 3px solid #E0A800; }
.gd-card-title[b-snpmsd9phi] { font-weight: 700; color: #1E334C; margin-bottom: 16px; display: flex; align-items: center; flex-wrap: wrap; }
.gd-grid[b-snpmsd9phi] { display: grid; gap: 14px 16px; }
.gd-grid--3[b-snpmsd9phi] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gd-grid--4[b-snpmsd9phi] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gd-span-2[b-snpmsd9phi] { grid-column: span 2; }
.gd-span-3[b-snpmsd9phi] { grid-column: span 3; }
@media (max-width: 900px) {
    .gd-grid--3[b-snpmsd9phi], .gd-grid--4[b-snpmsd9phi] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gd-span-3[b-snpmsd9phi] { grid-column: span 2; }
}
@media (max-width: 560px) {
    .gd-grid--3[b-snpmsd9phi], .gd-grid--4[b-snpmsd9phi] { grid-template-columns: minmax(0, 1fr); }
    .gd-span-2[b-snpmsd9phi], .gd-span-3[b-snpmsd9phi] { grid-column: span 1; }
}
.gd-actions[b-snpmsd9phi] { display: flex; gap: 8px; margin-bottom: var(--eco-block, 24px); }

.gd-chip-ai[b-snpmsd9phi] {
    display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 0 6px; border-radius: 999px;
    font-size: .66rem; font-weight: 700; letter-spacing: .04em; background: #EDF3FB; color: #1E334C; vertical-align: middle;
}

.gd-sec[b-snpmsd9phi] { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: #5B7A9A; font-weight: 700; margin: 20px 0 10px; }
.gd-sec:first-of-type[b-snpmsd9phi] { margin-top: 8px; }
.gd-kvs[b-snpmsd9phi] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px 20px; }
.gd-kv[b-snpmsd9phi] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gd-kv--largo[b-snpmsd9phi] { grid-column: 1 / -1; }
.gd-kv__l[b-snpmsd9phi] { font-size: .74rem; color: #5B7A9A; }
.gd-kv__v[b-snpmsd9phi] { font-size: .9rem; color: #1E334C; overflow-wrap: anywhere; }

.gd-table th[b-snpmsd9phi] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap; vertical-align: middle; }
.gd-table .text-end[b-snpmsd9phi] { white-space: nowrap; font-variant-numeric: tabular-nums; }
.gd-table .is-check[b-snpmsd9phi] { text-align: center; width: 90px; }
.gd-sub td[b-snpmsd9phi] { color: #5B7A9A; font-size: .86rem; }
.gd-risolta td[b-snpmsd9phi] { color: #8A9AAB; }
.gd-vf[b-snpmsd9phi] { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.gd-vf__v[b-snpmsd9phi] { font-weight: 600; }
.gd-vf__f[b-snpmsd9phi] { font-size: .76rem; color: #5B7A9A; }

/* Stato del collegamento della stazione appaltante all'anagrafica — 2026-09-17 */
.gd-ente-stato[b-snpmsd9phi] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    margin-top: 4px; font-size: .8rem;
}
.gd-ente-stato i[b-snpmsd9phi] { margin-right: 2px; }
/* _content/GestioneCommessa.Shared/Pages/Gare/_GaraDocumenti.razor.rz.scp.css */
/* Tab Documenti della gara */
.gdoc-card[b-p6sm99n8mj] { margin-bottom: var(--eco-block, 24px); }
.gdoc-head[b-p6sm99n8mj] { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: flex-start; margin-bottom: 14px; }
.gdoc-title[b-p6sm99n8mj] { font-weight: 700; color: #1E334C; }
.gdoc-sub[b-p6sm99n8mj] { margin: 4px 0 0; font-size: .84rem; color: #5B7A9A; max-width: 90ch; }
.gdoc-chips[b-p6sm99n8mj] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.gdoc-chip[b-p6sm99n8mj] {
    display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 12px; border-radius: 999px;
    border: 1px solid #DCE5EF; background: #fff; color: #3E5A78; font-size: .82rem; cursor: pointer;
}
.gdoc-chip span[b-p6sm99n8mj] { font-size: .72rem; font-weight: 700; background: #EDF3FB; color: #1E334C; border-radius: 999px; padding: 0 7px; }
.gdoc-chip.active[b-p6sm99n8mj] { background: #1E334C; border-color: #1E334C; color: #fff; }
.gdoc-chip.active span[b-p6sm99n8mj] { background: rgba(255,255,255,.18); color: #fff; }
.gdoc-upload[b-p6sm99n8mj] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.gdoc-upload__sez[b-p6sm99n8mj] { max-width: 210px; }
.gdoc-upload__tipo[b-p6sm99n8mj] { max-width: 260px; }
.gdoc-upload__file[b-p6sm99n8mj] { max-width: 340px; }
.gdoc-table th[b-p6sm99n8mj] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap; padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px); height: 48px; vertical-align: middle; }
.gdoc-table td[b-p6sm99n8mj] { padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px); height: var(--eco-row-h, 54px); vertical-align: middle; }
.gdoc-table th:first-child[b-p6sm99n8mj], .gdoc-table td:first-child[b-p6sm99n8mj] { padding-left: var(--eco-cell-edge, 20px); }
.gdoc-table th:last-child[b-p6sm99n8mj],  .gdoc-table td:last-child[b-p6sm99n8mj]  { padding-right: var(--eco-cell-edge, 20px); }
.gdoc-table .text-end[b-p6sm99n8mj] { white-space: nowrap; font-variant-numeric: tabular-nums; }
.gdoc-table .is-actions[b-p6sm99n8mj] { white-space: nowrap; text-align: right; }
.gdoc-nome[b-p6sm99n8mj] { max-width: 420px; }
.gdoc-nome__t[b-p6sm99n8mj] { overflow-wrap: anywhere; }
.gdoc-orig[b-p6sm99n8mj] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 400px; }
.gdoc-fonte[b-p6sm99n8mj] { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 999px; font-size: .66rem; font-weight: 700; background: #EDF3FB; color: #1E334C; vertical-align: middle; }
.gdoc-doc--eliminato td[b-p6sm99n8mj] { color: #8A9AAB; text-decoration: line-through; }
.gdoc-doc--eliminato td:last-child[b-p6sm99n8mj] { text-decoration: none; }
.gdoc-doc--estraneo td[b-p6sm99n8mj] { color: #8A9AAB; }
/* _content/GestioneCommessa.Shared/Pages/Gare/_GaraOfferta.razor.rz.scp.css */
/* Offerta economica di gara — piano GarePreventivi.md blocco 1, 2026-09-17 */

.go-empty[b-0p8s8zg59f] { padding: var(--eco-pad, 24px); }
.go-import[b-0p8s8zg59f] { margin-top: 14px; max-width: 520px; }
.go-listino[b-0p8s8zg59f] { display: flex; align-items: flex-end; gap: 8px; flex-wrap: wrap; }
.go-listino select[b-0p8s8zg59f] { max-width: 180px; }

/* ── Testata ─────────────────────────────────────────────────────────────── */
.go-head[b-0p8s8zg59f] {
    display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap;
    padding: var(--eco-pad, 24px);
}
.go-head__obiettivo[b-0p8s8zg59f] { min-width: 260px; }
.go-obiettivo-row[b-0p8s8zg59f] { display: flex; align-items: center; gap: 8px; }
.go-perc[b-0p8s8zg59f] { max-width: 110px; text-align: right; font-variant-numeric: tabular-nums; }
.go-perc__seg[b-0p8s8zg59f] { color: #5B7A9A; font-weight: 600; }

.go-kpis[b-0p8s8zg59f] { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; flex: 1 1 520px; }
.go-kpi[b-0p8s8zg59f] { border: 1px solid #DDE5EF; border-radius: 10px; padding: 10px 14px; background: #F8FAFD; min-width: 0; }
.go-kpi__l[b-0p8s8zg59f] { font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: #5B7A9A; }
.go-kpi__v[b-0p8s8zg59f] { font-size: 1.25rem; font-weight: 700; color: #1E334C; line-height: 1.2; font-variant-numeric: tabular-nums; }
.go-kpi__s[b-0p8s8zg59f] { font-size: .74rem; color: #5B7A9A; }
.go-kpi.is-main[b-0p8s8zg59f] { background: #EDF3FB; border-color: #C9D8EA; }
.go-kpi.is-main .go-kpi__v[b-0p8s8zg59f] { color: #001B48; }
.go-kpi.is-ok   .go-kpi__v[b-0p8s8zg59f] { color: #1E7A46; }
.go-kpi.is-warn .go-kpi__v[b-0p8s8zg59f] { color: #B7791F; }
.go-kpi.is-info .go-kpi__v[b-0p8s8zg59f] { color: #4A6785; }

/* ── Esclusioni ──────────────────────────────────────────────────────────── */
.go-escl[b-0p8s8zg59f] { padding: var(--eco-pad, 24px); }
.go-escl__t[b-0p8s8zg59f] { font-weight: 600; color: #1E334C; margin-bottom: 4px; }

/* ── Gruppi e voci ───────────────────────────────────────────────────────── */
.go-gruppi[b-0p8s8zg59f], .go-voci[b-0p8s8zg59f] { padding: var(--eco-pad, 24px); }
.go-gruppi__head[b-0p8s8zg59f], .go-voci__head[b-0p8s8zg59f] {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; flex-wrap: wrap; margin-bottom: 12px;
}
.go-gruppi__crit[b-0p8s8zg59f] { display: flex; align-items: center; gap: 8px; }
.go-gruppi__crit select[b-0p8s8zg59f] { width: auto; }
.go-gruppi__foot[b-0p8s8zg59f] { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.go-gruppo-azione[b-0p8s8zg59f] { display: flex; gap: 6px; align-items: center; }
.go-cerca[b-0p8s8zg59f] { max-width: 280px; }

.go-table th[b-0p8s8zg59f] {
    font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A;
    white-space: nowrap; padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px); height: 48px; vertical-align: middle;
}
.go-table td[b-0p8s8zg59f] { padding: 10px var(--eco-cell-x, 16px); vertical-align: middle; }
.go-table th:first-child[b-0p8s8zg59f], .go-table td:first-child[b-0p8s8zg59f] { padding-left: var(--eco-cell-edge, 20px); }
.go-table th:last-child[b-0p8s8zg59f],  .go-table td:last-child[b-0p8s8zg59f]  { padding-right: var(--eco-cell-edge, 20px); }
.go-descr[b-0p8s8zg59f] { color: #1E334C; }
.go-prezzo[b-0p8s8zg59f] { max-width: 120px; text-align: right; font-variant-numeric: tabular-nums; margin-left: auto; }
.go-esclusa[b-0p8s8zg59f] { background: #F8FAFD; }
.go-esclusa .go-descr[b-0p8s8zg59f] { color: #5B7A9A; }

.go-azioni[b-0p8s8zg59f] {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    justify-content: flex-end; margin-top: 16px;
}
.go-azioni > span:first-child[b-0p8s8zg59f] { margin-right: auto; }

@media (max-width: 900px) {
    .go-head[b-0p8s8zg59f] { gap: 16px; }
    .go-cerca[b-0p8s8zg59f] { max-width: 100%; }
}

/* Computo riconosciuto fra i documenti della gara — 2026-09-17 */
.go-candidati[b-0p8s8zg59f] { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; max-width: 640px; }
.go-candidati__t[b-0p8s8zg59f] { font-weight: 600; color: #1E334C; font-size: .88rem; }
.go-candidato[b-0p8s8zg59f] {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    border: 1px solid #C9D8EA; border-radius: 10px; background: #EDF3FB; padding: 8px 12px;
}
.go-candidato__n[b-0p8s8zg59f] { font-size: .86rem; color: #1E334C; min-width: 0; }

/* Riga di riepilogo esclusa dal computo: si vede che non conta, ma resta leggibile e recuperabile. */
.go-table tr.go-fuori td[b-0p8s8zg59f] { opacity: .55; text-decoration: line-through; }
.go-table tr.go-fuori td.is-actions[b-0p8s8zg59f] { opacity: 1; text-decoration: none; }
.go-riepiloghi__el[b-0p8s8zg59f] { margin: 6px 0 8px 0; padding-left: 18px; }
.go-riepiloghi__el li[b-0p8s8zg59f] { line-height: 1.5; }

/* Confronto fra gli importi del computo e quelli della scheda della gara. */
.go-importi[b-0p8s8zg59f] { display: flex; flex-direction: column; gap: 8px; }
.go-importi__foot[b-0p8s8zg59f] { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }

/* Obiettivo in percentuale ⇄ in euro: due campi che dicono la stessa cosa (2026-09-18) */
.go-ob-campo[b-0p8s8zg59f] { display: flex; align-items: center; gap: 6px; }
.go-imp[b-0p8s8zg59f] { max-width: 160px; text-align: right; font-variant-numeric: tabular-nums; }
.go-ob-lega[b-0p8s8zg59f] { color: #8696a7; font-size: 0.95rem; }

@media (max-width: 720px) {
    .go-obiettivo-row[b-0p8s8zg59f] { flex-wrap: wrap; }
    .go-ob-lega[b-0p8s8zg59f] { display: none; }
    .go-imp[b-0p8s8zg59f] { max-width: 100%; }
}
/* _content/GestioneCommessa.Shared/Pages/Gare/_GaraQualificazione.razor.rz.scp.css */
/* Tab Qualificazione della gara */
.gq-sem[b-e6damhitkg] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; padding: 18px 24px; border-radius: 12px;
    margin-bottom: var(--eco-block, 24px); border: 1px solid transparent;
}
.gq-sem--verde[b-e6damhitkg]  { background: #E8F6EE; border-color: #BFE5CF; }
.gq-sem--giallo[b-e6damhitkg] { background: #FBF0D9; border-color: #F1DDA8; }
.gq-sem--rosso[b-e6damhitkg]  { background: #FBEBED; border-color: #F2C4C9; }
.gq-sem__dot[b-e6damhitkg] { width: 18px; height: 18px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 0 4px rgba(255,255,255,.7); }
.gq-sem--verde  .gq-sem__dot[b-e6damhitkg] { background: #23824F; }
.gq-sem--giallo .gq-sem__dot[b-e6damhitkg] { background: #E0A800; }
.gq-sem--rosso  .gq-sem__dot[b-e6damhitkg] { background: #C0392B; }
.gq-sem__txt[b-e6damhitkg] { flex: 1 1 260px; min-width: 0; }
.gq-sem__t[b-e6damhitkg] { font-weight: 700; color: #1E334C; font-size: 1.02rem; }
.gq-sem__s[b-e6damhitkg] { font-size: .84rem; color: #3E5A78; margin-top: 2px; }
.gq-sem__act[b-e6damhitkg] { display: flex; flex-wrap: wrap; gap: 8px; }
.gq-avvisi[b-e6damhitkg] { margin-bottom: var(--eco-block, 24px); }

.gq-cols[b-e6damhitkg] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--eco-block, 24px); margin-bottom: var(--eco-block, 24px); }
@media (max-width: 960px) { .gq-cols[b-e6damhitkg] { grid-template-columns: minmax(0, 1fr); } }
.gq-card[b-e6damhitkg] { margin-bottom: var(--eco-block, 24px); }
.gq-cols .gq-card[b-e6damhitkg] { margin-bottom: 0; }
.gq-card-title[b-e6damhitkg] { font-weight: 700; color: #1E334C; margin-bottom: 14px; }

.gq-soa[b-e6damhitkg] { display: flex; flex-wrap: wrap; gap: 8px; }
.gq-soa__chip[b-e6damhitkg] { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 12px; border-radius: 10px; background: #EDF3FB; color: #1E334C; font-size: .86rem; }
.gq-soa__chip--scaduta[b-e6damhitkg] { background: #FBEBED; color: #C0392B; text-decoration: line-through; }
.gq-soa__imp[b-e6damhitkg] { font-size: .74rem; color: #5B7A9A; }
.gq-iso[b-e6damhitkg] { display: flex; flex-wrap: wrap; gap: 6px; }
.gq-iso__t[b-e6damhitkg] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; margin-bottom: 6px; }

.gq-table th[b-e6damhitkg] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap; padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px); height: 48px; vertical-align: middle; }
.gq-table td[b-e6damhitkg] { padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px); vertical-align: top; }
.gq-table th:first-child[b-e6damhitkg], .gq-table td:first-child[b-e6damhitkg] { padding-left: var(--eco-cell-edge, 20px); }
.gq-table th:last-child[b-e6damhitkg],  .gq-table td:last-child[b-e6damhitkg]  { padding-right: var(--eco-cell-edge, 20px); }
.gq-th-cop[b-e6damhitkg], .gq-td-cop[b-e6damhitkg] { min-width: 280px; width: 32%; }
.gq-descr[b-e6damhitkg] { max-width: 260px; }
.gq-esito[b-e6damhitkg] { display: flex; align-items: center; gap: 8px; }
.gq-esito__t[b-e6damhitkg] { font-weight: 600; color: #1E334C; }
.gq-dot[b-e6damhitkg] { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.gq-dot--verde[b-e6damhitkg]  { background: #23824F; }
.gq-dot--giallo[b-e6damhitkg] { background: #E0A800; }
.gq-dot--rosso[b-e6damhitkg]  { background: #C0392B; }
.gq-cop-row[b-e6damhitkg] { display: flex; gap: 6px; }
.gq-quota[b-e6damhitkg] { max-width: 110px; }
.gq-legenda[b-e6damhitkg] { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 12px; font-size: .8rem; color: #5B7A9A; }
.gq-legenda > span[b-e6damhitkg] { display: inline-flex; align-items: center; gap: 6px; }
/* _content/GestioneCommessa.Shared/Pages/Gare/_GaraScadenze.razor.rz.scp.css */
/* Tab Scadenze della gara */
.gs-card[b-ziz1c8dmpo] { margin-bottom: var(--eco-block, 24px); }
.gs-head[b-ziz1c8dmpo] { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: flex-start; justify-content: space-between; margin-bottom: 14px; }
.gs-title[b-ziz1c8dmpo] { font-weight: 700; color: #1E334C; }
.gs-sub[b-ziz1c8dmpo] { margin: 4px 0 0; font-size: .84rem; color: #5B7A9A; max-width: 78ch; }
.gs-next[b-ziz1c8dmpo] { padding: 10px 16px; border-radius: 10px; background: #EDF3FB; min-width: 220px; }
.gs-next__l[b-ziz1c8dmpo] { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: #5B7A9A; }
.gs-next__t[b-ziz1c8dmpo] { font-weight: 700; color: #1E334C; }
.gs-next__d[b-ziz1c8dmpo] { font-size: .84rem; color: #3E5A78; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }

.gs-table th[b-ziz1c8dmpo] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap; padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px); height: 48px; vertical-align: middle; }
.gs-table td[b-ziz1c8dmpo] { padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px); vertical-align: middle; }
.gs-table th:first-child[b-ziz1c8dmpo], .gs-table td:first-child[b-ziz1c8dmpo] { padding-left: var(--eco-cell-edge, 20px); }
.gs-table th:last-child[b-ziz1c8dmpo],  .gs-table td:last-child[b-ziz1c8dmpo]  { padding-right: var(--eco-cell-edge, 20px); }
.gs-table .is-actions[b-ziz1c8dmpo] { white-space: nowrap; text-align: right; }
.gs-done td[b-ziz1c8dmpo] { color: #8A9AAB; }
.gs-done td .fw-semibold[b-ziz1c8dmpo] { text-decoration: line-through; }
.gs-late td:first-child .fw-semibold[b-ziz1c8dmpo] { color: #C0392B; }
.gs-ai[b-ziz1c8dmpo] { display: inline-block; padding: 0 6px; border-radius: 999px; font-size: .66rem; font-weight: 700; background: #EDF3FB; color: #1E334C; }

.gs-add[b-ziz1c8dmpo] { margin-top: 12px; padding-top: 14px; border-top: 1px dashed #DCE5EF; }
.gs-add__t[b-ziz1c8dmpo] { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: #5B7A9A; font-weight: 700; margin-bottom: 8px; }
.gs-add__row[b-ziz1c8dmpo] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gs-add__tipo[b-ziz1c8dmpo] { flex: 0 1 260px; }
.gs-add__data[b-ziz1c8dmpo] { flex: 0 0 200px; }
.gs-add__fonte[b-ziz1c8dmpo] { flex: 1 1 200px; }
.gs-add__note[b-ziz1c8dmpo] { flex: 1 1 200px; }
/* _content/GestioneCommessa.Shared/Pages/Gare/_GaraValutazione.razor.rz.scp.css */
/* Tab Valutazione della gara */
.gv-top[b-wtrvbrigw3] { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: var(--eco-block, 24px); margin-bottom: var(--eco-block, 24px); }
@media (max-width: 760px) { .gv-top[b-wtrvbrigw3] { grid-template-columns: minmax(0, 1fr); } }
.gv-card[b-wtrvbrigw3] { margin-bottom: var(--eco-block, 24px); }
.gv-card-title[b-wtrvbrigw3] { font-weight: 700; color: #1E334C; margin-bottom: 12px; display: flex; align-items: center; flex-wrap: wrap; }

.gv-score[b-wtrvbrigw3] { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border-left: 4px solid #8A9AAB; }
.gv-score--verde[b-wtrvbrigw3]  { border-left-color: #23824F; }
.gv-score--ambra[b-wtrvbrigw3]  { border-left-color: #E0A800; }
.gv-score--rosso[b-wtrvbrigw3]  { border-left-color: #C0392B; }
.gv-score__n[b-wtrvbrigw3] { font-size: 2.6rem; font-weight: 800; line-height: 1; color: #1E334C; font-variant-numeric: tabular-nums; }
.gv-score__l[b-wtrvbrigw3] { font-size: .76rem; color: #5B7A9A; }
.gv-score__i[b-wtrvbrigw3] { margin-top: 8px; font-weight: 700; color: #1E334C; }
.gv-score__s[b-wtrvbrigw3] { font-size: .76rem; color: #5B7A9A; margin-top: 2px; }

.gv-dec[b-wtrvbrigw3] { display: flex; align-items: center; gap: 8px; font-weight: 700; margin-bottom: 10px; flex-wrap: wrap; }
.gv-dec--ok[b-wtrvbrigw3] { color: #23824F; }
.gv-dec--no[b-wtrvbrigw3] { color: #C0392B; }
.gv-dec-btns[b-wtrvbrigw3] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.gv-table th[b-wtrvbrigw3] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap; padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px); height: 48px; vertical-align: middle; }
.gv-table td[b-wtrvbrigw3] { padding: 10px var(--eco-cell-x, 16px); vertical-align: middle; }
.gv-table th:first-child[b-wtrvbrigw3], .gv-table td:first-child[b-wtrvbrigw3] { padding-left: var(--eco-cell-edge, 20px); }
.gv-table th:last-child[b-wtrvbrigw3],  .gv-table td:last-child[b-wtrvbrigw3]  { padding-right: var(--eco-cell-edge, 20px); }
.gv-table .is-actions[b-wtrvbrigw3] { white-space: nowrap; text-align: right; }
.gv-th-s[b-wtrvbrigw3] { width: 90px; }
.gv-sel[b-wtrvbrigw3] { min-width: 70px; }
.gv-add td[b-wtrvbrigw3] { background: #F8FAFD; }

.gv-grid[b-wtrvbrigw3] { display: grid; gap: 14px 16px; }
.gv-grid--3[b-wtrvbrigw3] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gv-grid--2[b-wtrvbrigw3] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 760px) { .gv-grid--3[b-wtrvbrigw3], .gv-grid--2[b-wtrvbrigw3] { grid-template-columns: minmax(0, 1fr); } }
.gv-lbl[b-wtrvbrigw3] { font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; margin-bottom: 8px; }
.gv-chips[b-wtrvbrigw3] { display: flex; flex-wrap: wrap; gap: 6px; }
.gv-chip[b-wtrvbrigw3] { min-height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid #DCE5EF; background: #fff; color: #3E5A78; font-size: .82rem; cursor: pointer; }
.gv-chip.active[b-wtrvbrigw3] { background: #1E334C; border-color: #1E334C; color: #fff; }
.gv-chip--crit.active[b-wtrvbrigw3] { background: #C0392B; border-color: #C0392B; }
.gv-addrow[b-wtrvbrigw3] { display: flex; gap: 6px; align-items: center; margin-top: 8px; }
.gv-addrow .form-control[b-wtrvbrigw3] { max-width: 320px; }
.gv-file[b-wtrvbrigw3] { max-width: 340px; }
.gv-foto[b-wtrvbrigw3] { display: flex; flex-wrap: wrap; gap: 10px; }
.gv-foto__item[b-wtrvbrigw3] { position: relative; width: 132px; height: 100px; border-radius: 8px; overflow: hidden; background: #F4F5F7; }
.gv-foto__item img[b-wtrvbrigw3] { width: 100%; height: 100%; object-fit: cover; display: block; }
.gv-foto__del[b-wtrvbrigw3] { position: absolute; top: 4px; right: 4px; background: rgba(255,255,255,.9); }
/* _content/GestioneCommessa.Shared/Pages/GestioneUtenti.razor.rz.scp.css */
/* Gestione Utenti — CSS scoped.
   Design system Commessa.ai: primario #001B48, card bianche, bordi leggeri,
   molto bianco, icone lineari. Qui vivono solo gli elementi propri della pagina:
   header, card azienda compatta, toolbar, tabella utenti, menu/popover, bulk bar. */

/* ── Header pagina ─────────────────────────────────────────────────────────── */

.gu-header[b-dv65czc82j] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: var(--eco-block, 24px);
}

.gu-title[b-dv65czc82j]    { color: #001B48; font-weight: 700; margin-bottom: 4px; }
.gu-subtitle[b-dv65czc82j] { color: #60748F; font-size: .9rem; margin: 0; }

/* ── Card azienda compatta ─────────────────────────────────────────────────── */

.gu-azienda[b-dv65czc82j] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 10px 24px;
}

.gu-az-item[b-dv65czc82j]        { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.gu-az-item--wide[b-dv65czc82j]  { grid-column: span 2; }
.gu-az-lbl[b-dv65czc82j]         { font-size: .72rem; text-transform: uppercase; letter-spacing: .4px; color: #8FA0B5; }
.gu-az-val[b-dv65czc82j]         { font-size: .9rem; color: #1E334C; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gu-az-code[b-dv65czc82j]        { font-size: .8rem; }

/* ── Toolbar sopra la tabella ──────────────────────────────────────────────── */

/* Standard toolbar (2026-09-04): stesso asse laterale della card (var(--eco-pad)),
   gap 12px, controlli alti var(--eco-ctl-h) */
.gu-toolbar[b-dv65czc82j] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 12px var(--eco-pad, 24px);
    border-bottom: 1px solid #EDF1F6;
}

.gu-toolbar .form-control[b-dv65czc82j],
.gu-toolbar .form-select[b-dv65czc82j] { min-height: var(--eco-ctl-h, 42px); }

.gu-search[b-dv65czc82j] { position: relative; flex: 1 1 220px; min-width: 180px; }
.gu-search input[b-dv65czc82j] { padding-left: 30px; }
.gu-search-ico[b-dv65czc82j] {
    position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
    font-size: .8rem; color: #8FA0B5; pointer-events: none;
}

.gu-filtro[b-dv65czc82j]            { width: auto; flex: 0 0 auto; max-width: 180px; color: #1E334C; }
.gu-filtro--commessa[b-dv65czc82j]  { max-width: 230px; }

.gu-contatore[b-dv65czc82j] {
    margin-left: auto;
    font-size: .85rem;
    color: #60748F;
    background: #F3F6FA;
    border-radius: 999px;
    padding: 5px 12px;
    white-space: nowrap;
}

/* ── Tabella ───────────────────────────────────────────────────────────────── */

.gu-table th[b-dv65czc82j] {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #60748F;
    font-weight: 600;
    white-space: nowrap;
}

.gu-table td[b-dv65czc82j] { font-size: .88rem; }

/* Padding celle: vale lo standard globale di `.table` (12px/16px testata, 14px/16px righe).
   Prima/ultima colonna sull'asse della card (24px), come la toolbar sopra. */
.table.gu-table > * > tr > th:first-child[b-dv65czc82j],
.table.gu-table > * > tr > td:first-child[b-dv65czc82j] { padding-left: var(--eco-pad, 24px); }
.table.gu-table > * > tr > th:last-child[b-dv65czc82j],
.table.gu-table > * > tr > td:last-child[b-dv65czc82j] { padding-right: var(--eco-pad, 24px); }

/* Ultimo accesso (data/ora) non va a capo */
.gu-accesso[b-dv65czc82j] { white-space: nowrap; }

.gu-col-check[b-dv65czc82j] { width: 34px; }
.gu-row--sel[b-dv65czc82j]  { background: #F3F6FA; }

.gu-utente[b-dv65czc82j] { display: flex; align-items: center; gap: 10px; min-width: 0; }

.gu-avatar[b-dv65czc82j] {
    flex: 0 0 32px;
    width: 32px; height: 32px;
    border-radius: 50%;
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: .3px;
    user-select: none;
}

.gu-nome[b-dv65czc82j]  { font-weight: 600; color: #1E334C; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gu-email[b-dv65czc82j] { color: #60748F; white-space: nowrap; }

/* Badge ruolo — pastiglie coerenti col resto dell'app */
.gu-ruolo[b-dv65czc82j] {
    display: inline-block;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    padding: 3px 10px;
    white-space: nowrap;
}
.gu-ruolo--amministrazione[b-dv65czc82j] { background: #001B48; color: #FFFFFF; }
.gu-ruolo--capocommessa[b-dv65czc82j]    { background: #EDF1F6; color: #4B5C72; }
.gu-ruolo--lavoratore[b-dv65czc82j]      { background: #E3F1FB; color: #145C8E; }

/* Badge stato */
.gu-stato[b-dv65czc82j] {
    display: inline-block;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    padding: 3px 10px;
    white-space: nowrap;
}
.gu-stato--attivo[b-dv65czc82j]       { background: #EDF8EF; color: #1d5728; }
.gu-stato--invitato[b-dv65czc82j]     { background: #FFF7E3; color: #7a4c00; }
.gu-stato--disabilitato[b-dv65czc82j] { background: #FDEEEE; color: #8b2a25; }

/* ── Commesse assegnate: compatte, una riga, popover per l'elenco completo ── */

.gu-commesse[b-dv65czc82j] { max-width: 260px; }

.gu-comm-row[b-dv65czc82j] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.gu-comm-chip[b-dv65czc82j] {
    background: #F3F6FA;
    color: #4B5C72;
    border-radius: 6px;
    font-size: .75rem;
    padding: 3px 8px;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 110px;
}

.gu-comm-piu[b-dv65czc82j] {
    border: 1px solid #DDE5EF;
    background: #FFFFFF;
    color: #001B48;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 600;
    padding: 2px 8px;
    cursor: pointer;
}
.gu-comm-piu:hover[b-dv65czc82j] { background: #F3F6FA; }

.gu-popover[b-dv65czc82j] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 1050;
    min-width: 260px;
    max-height: 260px;
    overflow-y: auto;
    background: #FFFFFF;
    border: 1px solid #E3E9F1;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(16, 42, 79, .12);
    padding: 10px 12px;
    white-space: normal;
}

.gu-popover-title[b-dv65czc82j] { font-size: .72rem; text-transform: uppercase; letter-spacing: .4px; color: #8FA0B5; margin-bottom: 6px; }
.gu-popover-riga[b-dv65czc82j]  { font-size: .82rem; color: #1E334C; padding: 3px 0; border-bottom: 1px solid #F3F6FA; }
.gu-popover-riga:last-child[b-dv65czc82j] { border-bottom: 0; }

/* ── Azioni riga: icone piccole + menu contestuale ─────────────────────────── */

.gu-azioni[b-dv65czc82j] { white-space: nowrap; }
/* Spazio fisso fra le icone di riga (prima dipendeva dagli spazi del markup) */
.gu-azioni .gu-icona-btn + .gu-icona-btn[b-dv65czc82j],
.gu-azioni .gu-icona-btn + .gu-menu-wrap[b-dv65czc82j] { margin-left: 4px; }

/* Icon button canonico 36×36 (token globali in app.css) */
.gu-icona-btn[b-dv65czc82j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}
.gu-icona-btn:hover:not(:disabled)[b-dv65czc82j] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.gu-icona-btn:disabled[b-dv65czc82j] { opacity: .45; cursor: default; }

.gu-menu-wrap[b-dv65czc82j] { position: relative; display: inline-block; }

.gu-menu[b-dv65czc82j] {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 1050;
    min-width: 210px;
    background: #FFFFFF;
    border: 1px solid #E3E9F1;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(16, 42, 79, .12);
    padding: 4px;
    text-align: left;
}

.gu-menu-item[b-dv65czc82j] {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    font-size: .85rem;
    color: #1E334C;
    border-radius: 6px;
    padding: 7px 10px;
    cursor: pointer;
}
.gu-menu-item:hover[b-dv65czc82j] { background: #F3F6FA; }
.gu-menu-item--danger[b-dv65czc82j]        { color: #b02a37; }
.gu-menu-item--danger:hover[b-dv65czc82j]  { background: #FDEEEE; }

/* Ultime righe della tabella: il menu si apre verso l'alto, altrimenti
   finirebbe tagliato dal fondo della card/viewport. */
.gu-menu--su[b-dv65czc82j]    { top: auto; bottom: calc(100% + 4px); }
.gu-popover--su[b-dv65czc82j] { top: auto; bottom: calc(100% + 6px); }
.gu-menu-sep[b-dv65czc82j] { height: 1px; background: #EDF1F6; margin: 4px 6px; }

/* Sfondo trasparente che chiude menu e popover al click fuori */
.gu-backdrop[b-dv65czc82j] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

/* ── Bulk bar flottante ────────────────────────────────────────────────────── */

.gu-bulkbar[b-dv65czc82j] {
    position: fixed;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    z-index: 1060;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #001B48;
    color: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 27, 72, .35);
    padding: 10px 14px;
    max-width: calc(100vw - 32px);
    flex-wrap: wrap;
}

.gu-bulk-count[b-dv65czc82j] { font-size: .85rem; font-weight: 600; white-space: nowrap; }

.gu-bulk-ruolo[b-dv65czc82j] { display: inline-flex; align-items: center; gap: 6px; }
.gu-bulk-ruolo select[b-dv65czc82j] { width: auto; }

.gu-bulk-close[b-dv65czc82j] {
    border: 0;
    background: transparent;
    color: #B8C6DA;
    margin-left: 2px;
    cursor: pointer;
    border-radius: 6px;
    width: 26px; height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.gu-bulk-close:hover[b-dv65czc82j] { color: #FFFFFF; background: rgba(255, 255, 255, .12); }

/* ── Responsive ────────────────────────────────────────────────────────────── */

/* Su desktop la tabella non scorre: l'overflow visibile evita che i menu "..."
   e i popover commesse vengano tagliati dal contenitore .table-responsive.
   Sotto i 992px torna lo scroll orizzontale (regola di piattaforma: le tabelle
   larghe scorrono nel proprio contenitore, mai la pagina). */
@media (min-width: 992px) {
    .table-responsive[b-dv65czc82j] { overflow: visible; }
}

@media (max-width: 900px) {
    .gu-az-item--wide[b-dv65czc82j] { grid-column: span 1; }
    .gu-email[b-dv65czc82j] { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
}
/* _content/GestioneCommessa.Shared/Pages/Giornale/FascicoloGiornale.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════════════
   Giornale lavori — fascicolo della commessa.
   Stessi token del design system della Commessa (economia.css): navy #001B48 /
   #1E334C, bordi #DDE5EF, superfici #F5F8FC, testo tenue #5B7A9A.
   Il foglio è SCOPED: vale solo per il markup di questo componente; le classi
   eco-* (badge, tabella, card, empty, act) arrivano dal foglio globale.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Caricamento ─────────────────────────────────────────────────────────── */

.gl-loading[b-qmtzxy0mi7] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 28px 20px;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    color: #5B7A9A;
    font-size: .9rem;
}

.gl-loading__spin[b-qmtzxy0mi7] {
    width: 20px;
    height: 20px;
    border: 2px solid #DDE5EF;
    border-top-color: #001B48;
    border-radius: 50%;
    animation: gl-spin-b-qmtzxy0mi7 .7s linear infinite;
}

@keyframes gl-spin-b-qmtzxy0mi7 { to { transform: rotate(360deg); } }

/* ── Ritorno ─────────────────────────────────────────────────────────────── */

.gl-back[b-qmtzxy0mi7] { margin-bottom: 10px; }

.gl-back__btn[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 6px;
    border: none;
    background: transparent;
    border-radius: 8px;
    color: #5B7A9A;
    font-size: .82rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.gl-back__btn:hover[b-qmtzxy0mi7] { background: #EDF3FB; color: #001B48; }

/* ── Testata ─────────────────────────────────────────────────────────────── */

.gl-hero[b-qmtzxy0mi7] {
    position: relative;
    background: linear-gradient(135deg, #FBFCFE 0%, #F2F7FC 100%);
    border: 1px solid #DDE5EF;
    border-radius: 14px;
    padding: 20px 22px;
    margin-bottom: 20px;
    overflow: hidden;
}

.gl-hero[b-qmtzxy0mi7]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, #001B48, #4A6FA5);
}

.gl-hero__row[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 16px;
}

.gl-hero__id[b-qmtzxy0mi7] { min-width: 0; flex: 1 1 320px; }

.gl-hero__eyebrow[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #718096;
}

.gl-hero__title[b-qmtzxy0mi7] {
    margin: 4px 0 0;
    font-size: 1.32rem;
    font-weight: 700;
    line-height: 1.25;
    color: #1E334C;
}

.gl-hero__sep[b-qmtzxy0mi7] { color: #B9C9DA; margin: 0 6px; font-weight: 400; }
.gl-hero__den[b-qmtzxy0mi7] { font-weight: 500; color: #3D5872; }

.gl-hero__chips[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.gl-chip[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 4px 11px;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 999px;
    font-size: .78rem;
    color: #3D5872;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gl-chip > i[b-qmtzxy0mi7] { color: #8696a7; font-size: .8rem; flex-shrink: 0; }

.gl-chip--strong[b-qmtzxy0mi7] {
    background: #EDF3FB;
    border-color: #D3E1F2;
    color: #001B48;
    font-weight: 600;
}

.gl-chip--strong > i[b-qmtzxy0mi7] { color: #4A6FA5; }

.gl-hero__actions[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* ── KPI ─────────────────────────────────────────────────────────────────── */

.gl-kpis[b-qmtzxy0mi7] { margin-bottom: 20px; }

/* ── Filtro cantiere ─────────────────────────────────────────────────────── */

.gl-filtro[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

.gl-filtro__lbl[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-right: 2px;
}

.gl-tag[b-qmtzxy0mi7] {
    padding: 5px 13px;
    border: 1px solid #DDE5EF;
    border-radius: 999px;
    background: #fff;
    color: #3D5872;
    font-size: .8rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
}

.gl-tag:hover[b-qmtzxy0mi7] { background: #EDF3FB; border-color: #C7D8EC; color: #001B48; }

.gl-tag.active[b-qmtzxy0mi7] {
    background: #001B48;
    border-color: #001B48;
    color: #fff;
    font-weight: 600;
}

/* ── Pillole di sezione ──────────────────────────────────────────────────── */

.gl-tabs[b-qmtzxy0mi7] {
    display: flex;
    gap: 8px;
    padding: 6px;
    margin-bottom: 20px;
    background: #F3F6FA;
    border: 1px solid #E5EBF2;
    border-radius: 999px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.gl-tabs__item[b-qmtzxy0mi7] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px;
    min-height: 40px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: #60748F;
    font-size: .86rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background .16s, color .16s, box-shadow .16s;
}

.gl-tabs__item > i[b-qmtzxy0mi7] { font-size: .92rem; opacity: .85; }

.gl-tabs__item:hover[b-qmtzxy0mi7] { background: #E8EFF7; color: #001B48; }

.gl-tabs__item.active[b-qmtzxy0mi7] {
    background: #001B48;
    border-color: #001B48;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(0, 27, 72, .18);
}

.gl-tabs__count[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #DDE5EF;
    color: #3D5872;
    font-size: .68rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.gl-tabs__item.active .gl-tabs__count[b-qmtzxy0mi7] { background: rgba(255, 255, 255, .22); color: #fff; }

/* ── Diario: giornata ────────────────────────────────────────────────────── */

.gl-sezione[b-qmtzxy0mi7] { margin-top: 4px; }

.gl-day[b-qmtzxy0mi7] {
    position: relative;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    margin-bottom: 10px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    transition: box-shadow .16s, border-color .16s;
}

.gl-day[b-qmtzxy0mi7]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: #C7D2E0;
}

.gl-day--ok[b-qmtzxy0mi7]::before   { background: #23824F; }
.gl-day--warn[b-qmtzxy0mi7]::before { background: #D9A317; }
.gl-day--err[b-qmtzxy0mi7]::before  { background: #C0392B; }
.gl-day--info[b-qmtzxy0mi7]::before { background: #4A6FA5; }

.gl-day:hover[b-qmtzxy0mi7] { border-color: #C7D8EC; }

.gl-day.open[b-qmtzxy0mi7] {
    border-color: #C7D8EC;
    box-shadow: 0 4px 16px rgba(30, 51, 76, .08);
}

.gl-day-head[b-qmtzxy0mi7] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px 14px 18px;
    cursor: pointer;
    border-radius: 12px;
}

.gl-day-head:hover[b-qmtzxy0mi7] { background: #FAFCFE; }
.gl-day.open .gl-day-head[b-qmtzxy0mi7] { border-radius: 12px 12px 0 0; }

/* Data a blocco, come il dorso di un registro */
.gl-day-date[b-qmtzxy0mi7] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 46px;
    padding: 4px 0 5px;
    background: #F3F7FC;
    border: 1px solid #E4EBF4;
    border-radius: 9px;
    line-height: 1;
}

.gl-day-date__d[b-qmtzxy0mi7] {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
}

.gl-day-date__m[b-qmtzxy0mi7] {
    margin-top: 3px;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #8696a7;
}

.gl-day-main[b-qmtzxy0mi7] { min-width: 0; flex: 1; }

.gl-day-title[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.gl-day-dow[b-qmtzxy0mi7] {
    font-size: .95rem;
    font-weight: 600;
    color: #1E334C;
    text-transform: capitalize;
}

.gl-fase[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 9px;
    background: #EDF3FB;
    border: 1px solid #D9E5F4;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 500;
    color: #2C4C74;
    white-space: nowrap;
}

.gl-fase > i[b-qmtzxy0mi7] { font-size: .7rem; opacity: .7; }
.gl-fase b[b-qmtzxy0mi7] { font-weight: 700; }

.gl-day-summary[b-qmtzxy0mi7] {
    margin-top: 5px;
    font-size: .84rem;
    color: #5B7A9A;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.gl-day-stats[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 9px;
}

.gl-stat[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 9px;
    background: #F5F8FC;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 600;
    color: #3D5872;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.gl-stat > i[b-qmtzxy0mi7] { font-size: .75rem; color: #8696a7; font-weight: 400; }
.gl-stat--warn[b-qmtzxy0mi7] { background: #FBF0D9; color: #8A6C0C; }
.gl-stat--warn > i[b-qmtzxy0mi7] { color: #A5820F; }

.gl-day-chev[b-qmtzxy0mi7] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    color: #8696a7;
    transition: transform .18s, background .12s;
}

.gl-day-head:hover .gl-day-chev[b-qmtzxy0mi7] { background: #EDF3FB; color: #001B48; }
.gl-day.open .gl-day-chev[b-qmtzxy0mi7] { transform: rotate(180deg); }

/* ── Diario: corpo della giornata ────────────────────────────────────────── */

.gl-day-body[b-qmtzxy0mi7] {
    padding: 0 16px 14px 18px;
    border-top: 1px solid #EDF2F7;
}

.gl-readonly[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    background: #EDF3FB;
    border: 1px solid #D9E5F4;
    color: #2C4C74;
    border-radius: 9px;
    padding: 9px 12px;
    font-size: .8rem;
    margin: 14px 0 16px;
}

.gl-readonly > i[b-qmtzxy0mi7] { color: #4A6FA5; }
.gl-readonly > span[b-qmtzxy0mi7] { flex: 1 1 260px; min-width: 0; }

.gl-grid[b-qmtzxy0mi7] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.gl-block[b-qmtzxy0mi7] {
    background: #FBFCFE;
    border: 1px solid #E9EFF6;
    border-radius: 10px;
    padding: 12px 14px;
    min-width: 0;
}

.gl-block--wide[b-qmtzxy0mi7] { grid-column: 1 / -1; }

.gl-block-t[b-qmtzxy0mi7] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-bottom: 9px;
}

.gl-block-t > i[b-qmtzxy0mi7] { font-size: .82rem; color: #8696a7; }

.gl-block-n[b-qmtzxy0mi7] {
    margin-left: auto;
    padding: 1px 8px;
    border-radius: 999px;
    background: #EDF2F7;
    color: #5B7A9A;
    font-size: .68rem;
    letter-spacing: 0;
    text-transform: none;
}

.gl-prose[b-qmtzxy0mi7] {
    margin: 0;
    font-size: .875rem;
    line-height: 1.55;
    color: #17324d;
    white-space: pre-line;
}

.gl-tablebox[b-qmtzxy0mi7] {
    background: #fff;
    border: 1px solid #E9EFF6;
    border-radius: 8px;
    overflow: hidden;
}

.gl-tablebox .table-responsive[b-qmtzxy0mi7],
.gl-tablebox[b-qmtzxy0mi7] { overflow-x: auto; }

.gl-strong[b-qmtzxy0mi7] { font-weight: 600; color: #1E334C; }
.gl-muted[b-qmtzxy0mi7] { color: #5B7A9A; }
.gl-num[b-qmtzxy0mi7] { font-variant-numeric: tabular-nums; white-space: nowrap; }
.gl-tiny[b-qmtzxy0mi7] { font-size: .72rem; color: #8696a7; }

.gl-link[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .8rem;
    font-weight: 500;
    color: #2C4C74;
    text-decoration: none;
    white-space: nowrap;
}

.gl-link:hover[b-qmtzxy0mi7] { color: #001B48; text-decoration: underline; }
.gl-link > i[b-qmtzxy0mi7] { font-size: .72rem; opacity: .7; }

.gl-pills[b-qmtzxy0mi7] { display: flex; flex-wrap: wrap; gap: 6px; }

.gl-pill[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    background: #fff;
    border: 1px solid #E4EBF4;
    border-radius: 999px;
    font-size: .78rem;
    color: #3D5872;
}

.gl-list[b-qmtzxy0mi7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gl-list li[b-qmtzxy0mi7] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
    font-size: .82rem;
    color: #17324d;
}

.gl-list li > i[b-qmtzxy0mi7] { color: #8696a7; font-size: .8rem; }

.gl-notes[b-qmtzxy0mi7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.gl-note[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    padding: 8px 11px;
    background: #fff;
    border: 1px solid #E9EFF6;
    border-left: 3px solid #C7D2E0;
    border-radius: 8px;
    font-size: .82rem;
    color: #17324d;
}

.gl-note--warn[b-qmtzxy0mi7] { border-left-color: #D9A317; }
.gl-note__txt[b-qmtzxy0mi7] { flex: 1 1 240px; min-width: 0; line-height: 1.5; }

.gl-note__meta[b-qmtzxy0mi7] {
    font-size: .72rem;
    color: #8696a7;
    white-space: nowrap;
}

/* Rapportini sorgente e fase lavorativa */
.gl-fonti[b-qmtzxy0mi7] { display: flex; flex-direction: column; gap: 8px; }

.gl-fonte[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 8px 11px;
    background: #fff;
    border: 1px solid #E9EFF6;
    border-radius: 8px;
}

.gl-fonte__who[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .82rem;
    font-weight: 600;
    color: #1E334C;
    min-width: 0;
}

.gl-fonte__who > i[b-qmtzxy0mi7] { color: #8696a7; font-weight: 400; }

.gl-fonte__fasi[b-qmtzxy0mi7] { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.gl-fonte__sel[b-qmtzxy0mi7] { width: auto; min-width: 14rem; max-width: 100%; }

.gl-fonte__src[b-qmtzxy0mi7] {
    font-size: .72rem;
    color: #8696a7;
    white-space: nowrap;
}

/* Azioni di stato della giornata */
.gl-day-actions[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #EDF2F7;
}

.gl-day-actions__lbl[b-qmtzxy0mi7] {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-right: 2px;
}

.gl-locked[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: auto;
    font-size: .8rem;
    font-weight: 500;
    color: #23824F;
}

/* ── Sezione foto ────────────────────────────────────────────────────────── */

.gl-foto-card .gl-block-t[b-qmtzxy0mi7] { text-transform: capitalize; letter-spacing: 0; font-size: .8rem; }
.gl-foto-card .gl-block-n[b-qmtzxy0mi7] { text-transform: none; }

/* ── Sezione esportazioni ────────────────────────────────────────────────── */

.gl-export[b-qmtzxy0mi7] {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.gl-field[b-qmtzxy0mi7] { margin-bottom: 16px; }

.gl-field__lbl[b-qmtzxy0mi7] {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-bottom: 6px;
}

.gl-field__ctl[b-qmtzxy0mi7] { max-width: 320px; }

.gl-field__row[b-qmtzxy0mi7] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    max-width: 320px;
}

.gl-field__sep[b-qmtzxy0mi7] { color: #8696a7; }

.gl-opts[b-qmtzxy0mi7] { display: flex; flex-wrap: wrap; gap: 8px; }
.gl-opts--stack[b-qmtzxy0mi7] { flex-direction: column; align-items: flex-start; }

.gl-opt[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 9px;
    cursor: pointer;
}

.gl-opt:hover[b-qmtzxy0mi7] { border-color: #C7D8EC; background: #FAFCFE; }

.gl-opt label[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: .84rem;
    color: #1E334C;
    cursor: pointer;
}

.gl-opt label > i[b-qmtzxy0mi7] { color: #5B7A9A; }
.gl-opt input[b-qmtzxy0mi7] { margin: 0; flex-shrink: 0; }
.gl-opt:has(input:checked)[b-qmtzxy0mi7] { border-color: #4A6FA5; background: #EDF3FB; }

.gl-export__go[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding-top: 6px;
    border-top: 1px solid #EDF2F7;
    margin-top: 20px;
}

.gl-export__go .btn[b-qmtzxy0mi7] { margin-top: 14px; }

.gl-export__msg[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    font-size: .82rem;
}

.gl-export__msg.is-ok[b-qmtzxy0mi7] { color: #23824F; }
.gl-export__msg.is-err[b-qmtzxy0mi7] { color: #C0392B; }

.gl-recap[b-qmtzxy0mi7] {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
}

.gl-recap li[b-qmtzxy0mi7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px dashed #EDF2F7;
    font-size: .82rem;
}

.gl-recap li:last-child[b-qmtzxy0mi7] { border-bottom: none; }
.gl-recap span[b-qmtzxy0mi7] { color: #5B7A9A; }
.gl-recap b[b-qmtzxy0mi7] { color: #1E334C; font-weight: 600; text-align: right; }

/* ── Modali ──────────────────────────────────────────────────────────────── */

.gl-modal-backdrop[b-qmtzxy0mi7] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    z-index: 1050;
    animation: gl-fade-b-qmtzxy0mi7 .14s ease-out;
}

@keyframes gl-fade-b-qmtzxy0mi7 { from { opacity: 0; } to { opacity: 1; } }

.gl-modal[b-qmtzxy0mi7] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(540px, 94vw);
    background: #fff;
    border-radius: 14px;
    z-index: 1051;
    box-shadow: 0 18px 50px rgba(0, 27, 72, .28);
    display: flex;
    flex-direction: column;
    max-height: 90vh;
    animation: gl-pop-b-qmtzxy0mi7 .16s ease-out;
}

@keyframes gl-pop-b-qmtzxy0mi7 {
    from { opacity: 0; transform: translate(-50%, -48%) scale(.98); }
    to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.gl-modal-head[b-qmtzxy0mi7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #EDF2F7;
}

.gl-modal-title[b-qmtzxy0mi7] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: .98rem;
    font-weight: 700;
    color: #1E334C;
}

.gl-modal-title > i[b-qmtzxy0mi7] { color: #4A6FA5; }

.gl-modal-body[b-qmtzxy0mi7] { padding: 18px; overflow: auto; }

.gl-modal-lead[b-qmtzxy0mi7] {
    font-size: .82rem;
    line-height: 1.55;
    color: #5B7A9A;
    margin: 0 0 16px;
}

.gl-modal-foot[b-qmtzxy0mi7] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid #EDF2F7;
    background: #FBFCFE;
    border-radius: 0 0 14px 14px;
}

.gl-hint[b-qmtzxy0mi7] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 9px 12px;
    background: #F5F8FC;
    border-radius: 8px;
    font-size: .76rem;
    color: #5B7A9A;
}

.gl-hint > i[b-qmtzxy0mi7] { color: #8696a7; margin-top: 1px; }

.gl-alert[b-qmtzxy0mi7] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: .8rem;
}

.gl-alert--err[b-qmtzxy0mi7] { background: #FBEBED; color: #C0392B; }

/* Modale split percentuale */
.gl-split-row[b-qmtzxy0mi7] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.gl-split-row__sel[b-qmtzxy0mi7] { flex: 1; min-width: 0; }
.gl-split-row__q[b-qmtzxy0mi7] { width: 6.5rem; flex: none; }

.gl-split-foot[b-qmtzxy0mi7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #EDF2F7;
}

.gl-split-tot[b-qmtzxy0mi7] { margin-left: auto; font-size: .8rem; }
.gl-split-tot.is-ok[b-qmtzxy0mi7] { color: #23824F; }
.gl-split-tot.is-err[b-qmtzxy0mi7] { color: #C0392B; }

/* ── Incorporato nel tab della commessa: meno respiro in testa ───────────── */

.gl-fascicolo--embed .gl-hero[b-qmtzxy0mi7] { padding: 16px 18px; }
.gl-fascicolo--embed .gl-hero__title[b-qmtzxy0mi7] { font-size: 1.16rem; }

/* ── Adattamento a schermi stretti ───────────────────────────────────────── */

@media (max-width: 992px) {
    .gl-export[b-qmtzxy0mi7] { grid-template-columns: minmax(0, 1fr); }
    .gl-grid[b-qmtzxy0mi7] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 768px) {
    .gl-hero[b-qmtzxy0mi7] { padding: 16px; }
    .gl-hero__title[b-qmtzxy0mi7] { font-size: 1.1rem; }
    .gl-hero__actions[b-qmtzxy0mi7] { margin-left: 0; width: 100%; }
    .gl-hero__actions .btn[b-qmtzxy0mi7] { flex: 1 1 auto; }

    .gl-day-head[b-qmtzxy0mi7] { padding: 12px 12px 12px 14px; gap: 10px; }
    .gl-day-date[b-qmtzxy0mi7] { width: 40px; }
    .gl-day-body[b-qmtzxy0mi7] { padding: 0 12px 12px 14px; }
    .gl-day-summary[b-qmtzxy0mi7] { white-space: normal; }

    .gl-fonte__sel[b-qmtzxy0mi7] { min-width: 100%; }
    .gl-fonte .gl-link[b-qmtzxy0mi7] { margin-left: 0 !important; }

    .gl-field__ctl[b-qmtzxy0mi7], .gl-field__row[b-qmtzxy0mi7] { max-width: 100%; }
    .gl-opts[b-qmtzxy0mi7] { flex-direction: column; align-items: stretch; }
    .gl-day-actions .btn[b-qmtzxy0mi7] { flex: 1 1 auto; }
}
/* _content/GestioneCommessa.Shared/Pages/Giornale/Index.razor.rz.scp.css */
/* Giornale lavori — Index (lista fascicoli) */

.gl-page[b-3z98fo6k92] {
    padding: 0;
}

/* ── KPI ─────────────────────────────────────────────────────────────── */

.gl-kpis[b-3z98fo6k92] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .85rem;
}

.gl-kpi[b-3z98fo6k92] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    min-height: 92px;
    background: #fff;
    border: 1px solid #e6e9ef;
    border-left: 4px solid #1E334C;
    border-radius: 12px;
    padding: .95rem 1.05rem;
}

.gl-kpi-body[b-3z98fo6k92] { min-width: 0; }

.gl-kpi-val[b-3z98fo6k92] {
    font-size: 1.7rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
}

.gl-kpi-lbl[b-3z98fo6k92] {
    font-size: .76rem;
    color: #6b7280;
    margin-top: .25rem;
    line-height: 1.25;
}

.gl-kpi-ico[b-3z98fo6k92] {
    font-size: 1.5rem;
    color: #c7d0dc;
    flex-shrink: 0;
}

.gl-kpi-ok[b-3z98fo6k92]     { border-left-color: #198754; }
.gl-kpi-ok     .gl-kpi-val[b-3z98fo6k92] { color: #198754; }
.gl-kpi-ok     .gl-kpi-ico[b-3z98fo6k92] { color: #a8d8ba; }
.gl-kpi-warn[b-3z98fo6k92]   { border-left-color: #d97706; }
.gl-kpi-warn   .gl-kpi-val[b-3z98fo6k92] { color: #d97706; }
.gl-kpi-warn   .gl-kpi-ico[b-3z98fo6k92] { color: #f0cb95; }
.gl-kpi-danger[b-3z98fo6k92] { border-left-color: #dc3545; }
.gl-kpi-danger .gl-kpi-val[b-3z98fo6k92] { color: #dc3545; }
.gl-kpi-danger .gl-kpi-ico[b-3z98fo6k92] { color: #efb1b8; }
.gl-kpi-muted[b-3z98fo6k92]  { border-left-color: #9ca3af; }
.gl-kpi-muted  .gl-kpi-val[b-3z98fo6k92] { color: #6b7280; }
.gl-kpi-muted  .gl-kpi-ico[b-3z98fo6k92] { color: #c9cdd3; }

/* ── Filtri ──────────────────────────────────────────────────────────── */

.gl-filtri-card[b-3z98fo6k92] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 12px;
    padding: .85rem 1rem;
}

.gl-filtri-row[b-3z98fo6k92] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
}

.gl-filtri-row--sub[b-3z98fo6k92] {
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px solid #f0f4f9;
}

.gl-search[b-3z98fo6k92] {
    position: relative;
    flex: 1 1 320px;
    max-width: 460px;
    min-width: 220px;
}
.gl-search i[b-3z98fo6k92] {
    position: absolute;
    left: .65rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9aa7b8;
    font-size: .85rem;
    pointer-events: none;
}
.gl-search .form-control[b-3z98fo6k92] { padding-left: 2rem; }

.gl-f-sel[b-3z98fo6k92] { width: auto; min-width: 150px; }

.gl-f-count[b-3z98fo6k92] {
    font-size: .78rem;
    font-weight: 600;
    color: #5B7A9A;
    white-space: nowrap;
}

/* ── Contenitore tabella ─────────────────────────────────────────────── */

.gl-table-card[b-3z98fo6k92] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 12px;
    overflow: hidden;
}

.gl-card-head[b-3z98fo6k92] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1.1rem;
    border-bottom: 1px solid #eef3f9;
}
.gl-card-title[b-3z98fo6k92] {
    font-size: .95rem;
    font-weight: 700;
    color: #1E334C;
}
.gl-card-sub[b-3z98fo6k92] {
    font-size: .76rem;
    color: #8696a7;
    margin-top: .1rem;
}
.gl-card-count[b-3z98fo6k92] {
    font-size: .76rem;
    font-weight: 600;
    color: #5B7A9A;
    white-space: nowrap;
}

/* ── Tabella ─────────────────────────────────────────────────────────── */

.gl-table-wrap[b-3z98fo6k92] { border: none; border-radius: 0; }

.gl-table thead th[b-3z98fo6k92] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    border-bottom: 2px solid #dceaf8;
    padding: .6rem .85rem;
    white-space: nowrap;
}

.gl-col-comm[b-3z98fo6k92] { min-width: 240px; }

.gl-row[b-3z98fo6k92] { cursor: pointer; transition: background .1s; }
.gl-row:hover[b-3z98fo6k92] { background: #f7fafd; }
.gl-row td[b-3z98fo6k92] {
    padding: .75rem .85rem;
    vertical-align: middle;
    border-bottom: 1px solid #f0f5fb;
}

.gl-code[b-3z98fo6k92] {
    font-size: .7rem;
    font-weight: 600;
    color: #8696a7;
    letter-spacing: .02em;
}
.gl-name[b-3z98fo6k92] {
    font-weight: 600;
    color: #1E334C;
    font-size: .875rem;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gl-sub[b-3z98fo6k92] {
    font-size: .74rem;
    color: #6b7280;
    margin-top: .1rem;
}
.gl-cliente[b-3z98fo6k92] {
    font-size: .82rem;
    color: #475569;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gl-agg[b-3z98fo6k92] {
    font-size: .82rem;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
}
.gl-num[b-3z98fo6k92] {
    font-size: .875rem;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

/* ── Badge stato commessa (neutro/sobrio) ────────────────────────────── */

.gl-badge-commessa[b-3z98fo6k92] {
    display: inline-block;
    font-size: .7rem;
    font-weight: 600;
    padding: .2em .6em;
    border-radius: 6px;
    white-space: nowrap;
    border: 1px solid transparent;
}
.gl-badge-commessa.is-attiva[b-3z98fo6k92]      { background: #eef4fb; color: #2c5d8a; border-color: #d6e4f2; }
.gl-badge-commessa.is-sospeso[b-3z98fo6k92]     { background: #fbf5e9; color: #8a6500; border-color: #efe2c4; }
.gl-badge-commessa.is-chiuso[b-3z98fo6k92]      { background: #f1f3f5; color: #5b6776; border-color: #e1e5ea; }
.gl-badge-commessa.is-postvendita[b-3z98fo6k92] { background: #f3eefb; color: #6b4d9a; border-color: #e2d6f2; }
.gl-badge-commessa.is-neutro[b-3z98fo6k92]      { background: #f4f5f7; color: #8696a7; border-color: #e6e9ee; }

/* ── Badge stato giornale (evidente) ─────────────────────────────────── */

.gl-badge-giornale[b-3z98fo6k92] {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding: .25em .7em;
    border-radius: 20px;
    white-space: nowrap;
}
.gl-badge-giornale.is-ok[b-3z98fo6k92]     { background: #e4f5ec; color: #1e7a48; }
.gl-badge-giornale.is-warn[b-3z98fo6k92]   { background: #fff4e0; color: #9a5b00; }
.gl-badge-giornale.is-danger[b-3z98fo6k92] { background: #fbe4e6; color: #b22a38; }
.gl-badge-giornale.is-muted[b-3z98fo6k92]  { background: #eef1f5; color: #5b6776; }

/* ── Azioni ──────────────────────────────────────────────────────────── */

.gl-apri-btn[b-3z98fo6k92] {
    font-size: .78rem;
    font-weight: 600;
    padding: .2rem .7rem;
    border-radius: 7px;
    white-space: nowrap;
}

/* Icon button canonico 36×36 (token globali in app.css) */
.gl-icon-btn[b-3z98fo6k92] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}
.gl-icon-btn:hover[b-3z98fo6k92] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.gl-icon-btn.dropdown-toggle[b-3z98fo6k92]::after { display: none; }

/* ── Loading / Empty ─────────────────────────────────────────────────── */

.gl-loading-box[b-3z98fo6k92] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 2.5rem 1rem;
    color: #5B7A9A;
}
.gl-spinner[b-3z98fo6k92] {
    border: 3px solid #DCE3EE;
    border-top: 3px solid #2E3C66;
    border-radius: 50%;
    width: 24px; height: 24px;
    animation: gl-spin-b-3z98fo6k92 .8s linear infinite;
    flex-shrink: 0;
}
@keyframes gl-spin-b-3z98fo6k92 { to { transform: rotate(360deg); } }

.gl-empty[b-3z98fo6k92] {
    text-align: center;
    padding: 3rem 1.5rem;
}
.gl-empty > .bi[b-3z98fo6k92] {
    font-size: 2.6rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: .85rem;
}
.gl-empty-title[b-3z98fo6k92] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: .3rem;
}
.gl-empty-text[b-3z98fo6k92] {
    font-size: .85rem;
    color: #5B7A9A;
    max-width: 460px;
    margin: 0 auto;
}

/* ── Paginazione ─────────────────────────────────────────────────────── */

.gl-pager[b-3z98fo6k92] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem;
    padding: .8rem 1.1rem;
    border-top: 1px solid #eef3f9;
}

/* ── Mobile cards ────────────────────────────────────────────────────── */

.gl-cards[b-3z98fo6k92] {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding: .85rem;
}
.gl-mcard[b-3z98fo6k92] {
    border: 1px solid #e8eef6;
    border-radius: 12px;
    padding: .85rem .9rem;
    background: #fff;
    cursor: pointer;
}
.gl-mcard:active[b-3z98fo6k92] { background: #f7fafd; }
.gl-mcard-top[b-3z98fo6k92] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .6rem;
}
.min-w-0[b-3z98fo6k92] { min-width: 0; }
.gl-mcard-meta[b-3z98fo6k92] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .9rem;
    margin-top: .5rem;
    font-size: .78rem;
    color: #5B7A9A;
}
.gl-mcard-stats[b-3z98fo6k92] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    margin-top: .55rem;
    font-size: .78rem;
    color: #6b7280;
}
.gl-mcard-stats strong[b-3z98fo6k92] { color: #1E334C; font-variant-numeric: tabular-nums; }
.gl-mcard-actions[b-3z98fo6k92] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-top: .75rem;
    padding-top: .65rem;
    border-top: 1px solid #f0f4f9;
}

/* ── Responsive KPI ──────────────────────────────────────────────────── */

@media (max-width: 1200px) {
    .gl-kpis[b-3z98fo6k92] { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 576px) {
    .gl-kpis[b-3z98fo6k92] { grid-template-columns: repeat(2, 1fr); }
    .gl-kpi-val[b-3z98fo6k92] { font-size: 1.45rem; }
    .gl-kpi-ico[b-3z98fo6k92] { display: none; }
}
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/BonificaFornitoriDdt.razor.rz.scp.css */
/* Bonifica fornitori DDT — riusa la cornice rg-* dei Rapportini (classi globali) */
/* Barra riepilogo/azione prima della tabella — standard toolbar (2026-09-04):
   gap 12px, controllo alto 42px, 24px prima del blocco successivo */
.bf-bar[b-4pgd2b5xkr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
    margin-bottom: var(--eco-block, 24px);
    padding: 12px 16px;
    background: #F3F6FA;
    border: 1px solid #DCE6F3;
    border-radius: 10px;
    font-size: .9rem;
    color: #001B48;
}
.bf-bar .btn[b-4pgd2b5xkr] { min-height: var(--eco-ctl-h, 42px); display: inline-flex; align-items: center; }

/* Tabella principale della pagina: standard th 12/16 h48, td 14/16 h54, bordi 20px
   (il markup porta .table-sm, ma è l'elenco principale, non una tabella annidata) */
.bf-table th[b-4pgd2b5xkr] {
    font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; color: #5B7A9A; white-space: nowrap;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
}
.bf-table td[b-4pgd2b5xkr] {
    vertical-align: middle;
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
}
.bf-table th:first-child[b-4pgd2b5xkr], .bf-table td:first-child[b-4pgd2b5xkr] { padding-left: var(--eco-cell-edge, 20px); }
.bf-table th:last-child[b-4pgd2b5xkr],  .bf-table td:last-child[b-4pgd2b5xkr]  { padding-right: var(--eco-cell-edge, 20px); }
.bf-table th:first-child input[type="checkbox"][b-4pgd2b5xkr],
.bf-table td:first-child input[type="checkbox"][b-4pgd2b5xkr] { margin: 0; vertical-align: middle; }
.bf-table .text-end[b-4pgd2b5xkr] { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Intestazione (stessi token di FetchData.razor.css, che è scoped e non riusabile) */
.bf-page[b-4pgd2b5xkr] { padding: 4px 0 40px; }
.bf-head[b-4pgd2b5xkr] { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; margin-bottom: var(--eco-block, 24px); }
.bf-head__txt[b-4pgd2b5xkr] { min-width: 0; flex: 1 1 280px; }
.bf-head__title[b-4pgd2b5xkr] { margin: 0; font-size: 1.32rem; font-weight: 700; line-height: 1.25; color: #1E334C; }
.bf-head__sub[b-4pgd2b5xkr] { margin: 4px 0 0; font-size: .84rem; color: #5B7A9A; max-width: 78ch; }
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/Create.razor.rz.scp.css */
/* Giornaliera — Create */

.gj-create-tab[b-06cejzlu58] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    outline: none;
    border-radius: 0;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
}

.gj-create-tab:hover[b-06cejzlu58] { color: #1E334C; }

.gj-create-tab.active[b-06cejzlu58] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

/* ── Mobile ≤720px ───────────────────────────────────────────────────── */

@media (max-width: 719.98px) {
    /* Breadcrumb, intestazione e tab desktop: su telefono non servono (il titolo è nella barra in alto).
       !important: intestazione e tab hanno la classe Bootstrap d-flex, che è
       display:flex !important e senza questo vince (le due righe restavano visibili). */
    .gj-create-breadcrumb-desktop[b-06cejzlu58],
    .gj-create-header-desktop[b-06cejzlu58],
    .gj-create-tab-bar[b-06cejzlu58] {
        display: none !important;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/Elenco.razor.rz.scp.css */
/* Giornaliere — Elenco admin (stile allineato ad Acquisti/FetchData) */

.gd-page[b-b33ycw0fgv] {
    padding: 0;
}

/* ── KPI cards ───────────────────────────────────────────────────────── */

/* Standard di spaziatura (2026-09-04): KPI 20px 24px, etichetta→valore 6px, valore→sub 4px */
.gd-kpi-card[b-b33ycw0fgv] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 20px 24px;
    height: 100%;
}

.gd-kpi-card.success[b-b33ycw0fgv] { border-left: 3px solid #3a8f47; }
.gd-kpi-card.info[b-b33ycw0fgv]    { border-left: 3px solid #2c6a9e; }
.gd-kpi-card.warning[b-b33ycw0fgv] { border-left: 3px solid #c07a00; }

.gd-kpi-label[b-b33ycw0fgv] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

.gd-kpi-value[b-b33ycw0fgv] {
    font-size: 1.45rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
    margin-bottom: 4px;
    white-space: nowrap;
}

.gd-kpi-sub[b-b33ycw0fgv] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

/* ── Tab bar ─────────────────────────────────────────────────────────── */

.gd-tab-btn[b-b33ycw0fgv] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    outline: none;
    border-radius: 0;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
}

.gd-tab-btn:hover[b-b33ycw0fgv] { color: #1E334C; }

.gd-tab-btn.active[b-b33ycw0fgv] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

.gd-tab-count[b-b33ycw0fgv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.4em;
    background: #e8edf4;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0 0.35em;
    border-radius: 10px;
    margin-left: 0.3rem;
    vertical-align: middle;
}

.gd-tab-btn.active .gd-tab-count[b-b33ycw0fgv] {
    background: rgba(30, 51, 76, 0.15);
    color: #1E334C;
}

/* ── Bulk bar ────────────────────────────────────────────────────────── */

.gd-bulk-bar[b-b33ycw0fgv] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    background: #edf3fb;
    border: 1px solid #c8d8ee;
    border-radius: 8px;
    padding: 12px 16px;
}

.gd-bulk-count[b-b33ycw0fgv] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    white-space: nowrap;
}

/* ── Loading ─────────────────────────────────────────────────────────── */

.gd-loading-box[b-b33ycw0fgv] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: #5B7A9A;
}

.gd-spinner[b-b33ycw0fgv] {
    border: 3px solid #DCE3EE;
    border-top: 3px solid #2E3C66;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: gd-spin-b-b33ycw0fgv 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes gd-spin-b-b33ycw0fgv {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Empty state ─────────────────────────────────────────────────────── */

.gd-empty[b-b33ycw0fgv] {
    text-align: center;
    padding: 2.5rem 1rem;
}

.gd-empty .bi[b-b33ycw0fgv] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.gd-empty-title[b-b33ycw0fgv] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.gd-empty-text[b-b33ycw0fgv] {
    font-size: 0.875rem;
    color: #5B7A9A;
}

/* ── Table ───────────────────────────────────────────────────────────── */

/* La cornice della tabella fa da card: 8px + il mb-3 della ricerca = 24px prima della tabella */
.table-responsive[b-b33ycw0fgv] {
    margin-top: 8px;
    border: 1px solid #e8eef6;
    border-radius: 8px;
    overflow: hidden;
}

.gd-table[b-b33ycw0fgv] {
    margin-bottom: 0;
}

/* Standard di spaziatura (2026-09-04): th 12/16 h48, td 14/16 h54, bordi 20px */
.gd-table thead th[b-b33ycw0fgv] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
}

.gd-row[b-b33ycw0fgv] {
    cursor: pointer;
    transition: background 0.1s;
}

.gd-row:hover[b-b33ycw0fgv] {
    background: #f7fafd;
}

.gd-row td[b-b33ycw0fgv] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna a 20px; ultima colonna = azioni, a destra e mai a capo */
.gd-table th:first-child[b-b33ycw0fgv], .gd-table td:first-child[b-b33ycw0fgv] { padding-left: var(--eco-cell-edge, 20px); }
.gd-table th:last-child[b-b33ycw0fgv],  .gd-table td:last-child[b-b33ycw0fgv]  { padding-right: var(--eco-cell-edge, 20px); text-align: right; white-space: nowrap; }
.gd-table th:first-child input[type="checkbox"][b-b33ycw0fgv],
.gd-table td:first-child input[type="checkbox"][b-b33ycw0fgv] { margin: 0; vertical-align: middle; }

/* Colonne numeriche (Ore): a destra, mai a capo, cifre tabulari */
.gd-table .text-end[b-b33ycw0fgv] { white-space: nowrap; font-variant-numeric: tabular-nums; }

.gd-name[b-b33ycw0fgv] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.875rem;
}

.gd-sub[b-b33ycw0fgv] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}

/* ── Badge commessa / cantiere ───────────────────────────────────────── */

.gd-commessa-badge[b-b33ycw0fgv] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #e8f1fa;
    color: #2c6a9e;
    white-space: nowrap;
}

.gd-cantiere-badge[b-b33ycw0fgv] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #f0edfe;
    color: #4c3d9c;
    white-space: nowrap;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.gd-icon-btn[b-b33ycw0fgv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.gd-icon-btn:hover[b-b33ycw0fgv] {
    background: var(--icobtn-hover-bg, #EDF3FB);
    color: var(--icobtn-hover-ink, #001B48);
}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .gd-table thead th:nth-child(5)[b-b33ycw0fgv],
    .gd-row td:nth-child(5)[b-b33ycw0fgv],
    .gd-table thead th:nth-child(6)[b-b33ycw0fgv],
    .gd-row td:nth-child(6)[b-b33ycw0fgv] {
        display: none;
    }

    .gd-bulk-bar[b-b33ycw0fgv] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/FetchData.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════════════
   Rapportini giornalieri — timeline a tre livelli (gruppo → giornata → riga).
   Stessi token del design system di commessa.ai (economia.css): navy #001B48 /
   #1E334C, bordi #DDE5EF, superfici #F5F8FC, testo tenue #5B7A9A.
   Foglio SCOPED: le classi eco-* (kpi, badge, card, empty, act) arrivano dal
   foglio globale e non vanno ridefinite qui.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Intestazione ────────────────────────────────────────────────────────── */

.rg-head[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 22px;
}

.rg-head__txt[b-mb0g1l9wtb] { min-width: 0; flex: 1 1 280px; }

.rg-head__title[b-mb0g1l9wtb] {
    margin: 0;
    font-size: 1.32rem;
    font-weight: 700;
    line-height: 1.25;
    color: #1E334C;
}

.rg-head__sub[b-mb0g1l9wtb] {
    margin: 4px 0 0;
    font-size: .84rem;
    color: #5B7A9A;
    max-width: 68ch;
}

.rg-head__actions[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.rg-anno[b-mb0g1l9wtb] { width: auto; min-width: 92px; }

/* ── Caricamento ─────────────────────────────────────────────────────────── */

.rg-loading[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 28px 22px;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
}

.rg-loading__spin[b-mb0g1l9wtb] {
    width: 24px;
    height: 24px;
    border: 3px solid #DDE5EF;
    border-top-color: #001B48;
    border-radius: 50%;
    animation: rg-spin-b-mb0g1l9wtb .75s linear infinite;
    flex-shrink: 0;
}

@keyframes rg-spin-b-mb0g1l9wtb { to { transform: rotate(360deg); } }

.rg-loading__t[b-mb0g1l9wtb] { font-weight: 600; color: #1E334C; font-size: .92rem; }
.rg-loading__s[b-mb0g1l9wtb] { font-size: .8rem; color: #5B7A9A; margin-top: 2px; }

/* ── KPI ─────────────────────────────────────────────────────────────────── */

.rg-kpis[b-mb0g1l9wtb] { margin-bottom: 20px; }

/* ── Barra filtri ────────────────────────────────────────────────────────── */

/* Il pulsante che apre il drawer esiste solo su mobile */
.rg-filterbar-trigger[b-mb0g1l9wtb] { display: none; margin-bottom: 12px; }

.rg-filters[b-mb0g1l9wtb] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    margin-bottom: 16px;
}

/* Testata del drawer: visibile solo quando la barra diventa pannello (mobile) */
.rg-filters__head[b-mb0g1l9wtb] { display: none; }

.rg-filters__row[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.rg-f[b-mb0g1l9wtb] { flex: 0 0 auto; width: auto; max-width: 100%; }
.rg-f--search[b-mb0g1l9wtb] { flex: 1 1 260px; min-width: 200px; max-width: 380px; }

.rg-periodo[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.rg-periodo input[b-mb0g1l9wtb] { width: 148px; }
.rg-periodo__sep[b-mb0g1l9wtb] { color: #8696a7; font-size: .8rem; }

.rg-check[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    border: 1px solid #DDE5EF;
    border-radius: 8px;
    background: #fff;
    font-size: .82rem;
    color: #1E334C;
    cursor: pointer;
    white-space: nowrap;
    margin: 0;
}

.rg-check:hover[b-mb0g1l9wtb] { border-color: #C7D8EC; background: #FAFCFE; }
.rg-check input[b-mb0g1l9wtb] { margin: 0; flex-shrink: 0; }
.rg-check:has(input:checked)[b-mb0g1l9wtb] { border-color: #4A6FA5; background: #EDF3FB; font-weight: 600; }

.rg-filters__go[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* Backdrop del drawer (solo mobile) */
.rg-drawer-back[b-mb0g1l9wtb] { display: none; }

/* ── Vista (segmented) + tab (underline) ─────────────────────────────────── */

.rg-viewbar[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid #DDE5EF;
    margin-bottom: 18px;
}

.rg-tabs[b-mb0g1l9wtb] {
    display: flex;
    align-items: stretch;
    gap: 2px;
    overflow-x: auto;
    scrollbar-width: thin;
    margin-bottom: -1px;
}

.rg-tab[b-mb0g1l9wtb] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    min-height: 42px;
    font-size: .86rem;
    font-weight: 500;
    color: #5B7A9A;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color .13s, border-color .13s;
    outline-offset: -3px;
}

.rg-tab:hover[b-mb0g1l9wtb] { color: #001B48; }
.rg-tab:focus-visible[b-mb0g1l9wtb] { outline: 2px solid #001B48; }

.rg-tab.active[b-mb0g1l9wtb] {
    color: #001B48;
    font-weight: 700;
    border-bottom-color: #001B48;
}

.rg-count[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #EDF2F7;
    color: #5B7A9A;
    font-size: .68rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.rg-tab.active .rg-count[b-mb0g1l9wtb] { background: #DCE6F3; color: #001B48; }
.rg-count.is-warn[b-mb0g1l9wtb] { background: #FBF0D9; color: #A5820F; }
.rg-count.is-err[b-mb0g1l9wtb]  { background: #FBEBED; color: #C0392B; }

/* Segmented control */
.rg-seg[b-mb0g1l9wtb] {
    display: inline-flex;
    padding: 3px;
    margin-bottom: 8px;
    background: #F3F6FA;
    border: 1px solid #E5EBF2;
    border-radius: 9px;
    overflow-x: auto;
    scrollbar-width: none;
    flex: 0 0 auto;
}

.rg-seg[b-mb0g1l9wtb]::-webkit-scrollbar { display: none; }

.rg-seg__item[b-mb0g1l9wtb] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    min-height: 32px;
    border: none;
    border-radius: 7px;
    background: transparent;
    color: #5B7A9A;
    font-size: .82rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background .14s, color .14s, box-shadow .14s;
}

.rg-seg__item > i[b-mb0g1l9wtb] { font-size: .85rem; }
.rg-seg__item:hover[b-mb0g1l9wtb] { color: #001B48; }

.rg-seg__item.active[b-mb0g1l9wtb] {
    background: #fff;
    color: #001B48;
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0, 27, 72, .12);
}

/* ── Timeline — 1° livello (mese / commessa / operatore) ─────────────────── */

.rg-timeline[b-mb0g1l9wtb] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rg-group[b-mb0g1l9wtb] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    overflow: hidden;
}

.rg-group.open[b-mb0g1l9wtb] { border-color: #C7D8EC; }

.rg-group__head[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 16px;
    cursor: pointer;
    background: #F7FAFD;
    transition: background .12s;
}

.rg-group__head:hover[b-mb0g1l9wtb] { background: #EFF5FB; }

.rg-group__chev[b-mb0g1l9wtb] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    color: #5B7A9A;
    transition: transform .18s;
}

.rg-group.open .rg-group__chev[b-mb0g1l9wtb] { transform: rotate(180deg); }

.rg-group__id[b-mb0g1l9wtb] { min-width: 0; flex: 1; }

.rg-group__label[b-mb0g1l9wtb] {
    display: block;
    font-size: .92rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #001B48;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rg-group__sub[b-mb0g1l9wtb] {
    display: block;
    font-size: .76rem;
    color: #8696a7;
    margin-top: 1px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rg-group__stats[b-mb0g1l9wtb],
.rg-day__stats[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.rg-stat[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 9px;
    background: #fff;
    border: 1px solid #E4EBF4;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 600;
    color: #3D5872;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rg-stat > i[b-mb0g1l9wtb] { font-size: .74rem; color: #8696a7; font-weight: 400; }
.rg-stat em[b-mb0g1l9wtb] { font-style: normal; font-weight: 400; color: #8696a7; }

.rg-stat--warn[b-mb0g1l9wtb] { background: #FBF0D9; border-color: #F0E0B8; color: #8A6C0C; }
.rg-stat--warn > i[b-mb0g1l9wtb], .rg-stat--warn em[b-mb0g1l9wtb] { color: #A5820F; }
.rg-stat--err[b-mb0g1l9wtb] { background: #FBEBED; border-color: #F3D6DA; color: #A5312A; }
.rg-stat--err > i[b-mb0g1l9wtb], .rg-stat--err em[b-mb0g1l9wtb] { color: #C0392B; }

.rg-group__body[b-mb0g1l9wtb] {
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-top: 1px solid #E9EFF6;
}

/* ── Timeline — 2° livello (giornata) ────────────────────────────────────── */

.rg-day[b-mb0g1l9wtb] {
    border: 1px solid #E9EFF6;
    border-radius: 9px;
    background: #fff;
    overflow: hidden;
}

.rg-day.open[b-mb0g1l9wtb] { border-color: #C7D8EC; background: #FBFCFE; }

.rg-day__head[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    cursor: pointer;
    transition: background .12s;
}

.rg-day__head:hover[b-mb0g1l9wtb] { background: #F7FAFD; }

.rg-day__chev[b-mb0g1l9wtb] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    color: #8696a7;
    transition: transform .18s;
}

.rg-day.open .rg-day__chev[b-mb0g1l9wtb] { transform: rotate(90deg); }

.rg-day__date[b-mb0g1l9wtb] {
    flex: 1;
    min-width: 0;
    font-size: .86rem;
    font-weight: 600;
    color: #1E334C;
    text-transform: capitalize;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rg-day__body[b-mb0g1l9wtb] {
    padding: 4px 8px 10px;
    border-top: 1px solid #EDF2F7;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* ── Timeline — 3° livello (riga rapportino) ─────────────────────────────── */

.rg-row[b-mb0g1l9wtb] {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    flex-wrap: wrap;
    padding: 7px 8px 7px 6px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: #fff;
    transition: background .1s, border-color .1s;
}

.rg-row:hover[b-mb0g1l9wtb] { background: #F7FAFD; border-color: #E4EBF4; }
.rg-row.open[b-mb0g1l9wtb] { background: #F7FAFD; border-color: #C7D8EC; }

.rg-row--alert[b-mb0g1l9wtb] { box-shadow: inset 3px 0 0 #C89540; }
.rg-row--alert.open[b-mb0g1l9wtb] { box-shadow: inset 3px 0 0 #C89540; }

.rg-row__main[b-mb0g1l9wtb] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    flex: 1 1 320px;
    min-width: 0;
    cursor: pointer;
}

.rg-row__ico[b-mb0g1l9wtb] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: #EDF3FB;
    color: #4A6FA5;
    font-size: .8rem;
    margin-top: 1px;
}

.rg-row__body[b-mb0g1l9wtb] { min-width: 0; flex: 1; }

.rg-row__line[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.rg-row__code[b-mb0g1l9wtb] {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #8696a7;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rg-row__comm[b-mb0g1l9wtb] {
    font-size: .86rem;
    font-weight: 600;
    color: #1E334C;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rg-row__op[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: .8rem;
    color: #5B7A9A;
    white-space: nowrap;
    min-width: 0;
}

.rg-row__op > i[b-mb0g1l9wtb] { font-size: .75rem; color: #8696a7; }
.rg-row__edited[b-mb0g1l9wtb] { font-size: .62rem; color: #8696a7; }

.rg-row__ore[b-mb0g1l9wtb] {
    font-size: .8rem;
    font-weight: 700;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Seconda riga: descrizione compatta su una sola riga */
.rg-row__desc[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 2px;
    font-size: .78rem;
    color: #5B7A9A;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rg-row.open .rg-row__desc[b-mb0g1l9wtb] { white-space: normal; }
.rg-row__missing[b-mb0g1l9wtb] { color: #A5820F; font-style: italic; }

.rg-tag[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 1px 7px;
    border-radius: 999px;
    background: #F5F8FC;
    font-size: .7rem;
    color: #5B7A9A;
    white-space: nowrap;
    flex-shrink: 0;
}

.rg-tag > i[b-mb0g1l9wtb] { font-size: .68rem; }

.rg-row__actions[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex: 0 0 auto;
    margin-left: auto;
}

.rg-act--ok[b-mb0g1l9wtb] { color: #23824F; }
.rg-act--ok:hover[b-mb0g1l9wtb] { background: #E8F6EE; color: #23824F; }

/* Badge "Generato con AI": tono non presente in economia.css */
.rg-badge--ai[b-mb0g1l9wtb] {
    display: inline-block;
    padding: .2em .6em;
    border-radius: 10px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    background: #F0EBFA;
    color: #6B3AAA;
}

/* Mostra altri / carica tutti */
.rg-more[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 8px 4px 2px;
}

.rg-more__all[b-mb0g1l9wtb] { color: #5B7A9A; text-decoration: none; }
.rg-more__all:hover[b-mb0g1l9wtb] { color: #001B48; text-decoration: underline; }

/* ── Espansione della riga ───────────────────────────────────────────────── */

.rg-detail[b-mb0g1l9wtb] {
    flex: 1 1 100%;
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px dashed #DDE5EF;
}

.rg-detail__grid[b-mb0g1l9wtb] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.rg-blk[b-mb0g1l9wtb] {
    background: #fff;
    border: 1px solid #E9EFF6;
    border-radius: 9px;
    padding: 10px 12px;
    min-width: 0;
}

.rg-blk--wide[b-mb0g1l9wtb] { grid-column: 1 / -1; }

.rg-blk__t[b-mb0g1l9wtb] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-bottom: 8px;
}

.rg-blk__t > i[b-mb0g1l9wtb] { font-size: .8rem; color: #8696a7; }

/* "Tradotto dal…" accanto al titolo del testo originale (rapportino dettato in un'altra lingua) */
.rg-blk__t-note[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: #5B7A9A;
}

.rg-blk__n[b-mb0g1l9wtb] {
    margin-left: auto;
    padding: 1px 8px;
    border-radius: 999px;
    background: #EDF2F7;
    color: #5B7A9A;
    font-size: .68rem;
    letter-spacing: 0;
    text-transform: none;
}

.rg-prose[b-mb0g1l9wtb] {
    margin: 0;
    font-size: .84rem;
    line-height: 1.55;
    color: #17324d;
    white-space: pre-line;
}

.rg-prose--raw[b-mb0g1l9wtb] {
    background: #F7FAFD;
    border-left: 3px solid #D9C9F0;
    border-radius: 0 6px 6px 0;
    padding: 8px 11px;
    color: #3D5872;
    font-size: .8rem;
}

.rg-kv[b-mb0g1l9wtb] { list-style: none; margin: 0; padding: 0; }

.rg-kv li[b-mb0g1l9wtb] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 0;
    border-bottom: 1px dashed #EDF2F7;
    font-size: .8rem;
}

.rg-kv li:last-child[b-mb0g1l9wtb] { border-bottom: none; }
.rg-kv span[b-mb0g1l9wtb] { color: #5B7A9A; }
.rg-kv b[b-mb0g1l9wtb] { color: #1E334C; font-weight: 600; text-align: right; }
.rg-kv b .rg-muted[b-mb0g1l9wtb] { font-weight: 400; margin-left: 4px; }

.rg-chips[b-mb0g1l9wtb] { display: flex; flex-wrap: wrap; gap: 6px; }

.rg-chip[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    background: #F5F8FC;
    border: 1px solid #E4EBF4;
    border-radius: 999px;
    font-size: .78rem;
    color: #1E334C;
}

.rg-chip b[b-mb0g1l9wtb] { font-weight: 600; color: #5B7A9A; font-size: .72rem; }
.rg-chip--warn[b-mb0g1l9wtb] { background: #FBF0D9; border-color: #F0E0B8; color: #8A6C0C; }
.rg-chip--warn b[b-mb0g1l9wtb] { color: #A5820F; }

.rg-list[b-mb0g1l9wtb] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }

.rg-list li[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    font-size: .8rem;
    color: #17324d;
}

.rg-list li > i[b-mb0g1l9wtb] { color: #8696a7; font-size: .78rem; }

.rg-strong[b-mb0g1l9wtb] { font-weight: 600; color: #1E334C; }
.rg-muted[b-mb0g1l9wtb] { color: #8696a7; }
.rg-note[b-mb0g1l9wtb] { flex-basis: 100%; font-size: .74rem; }

.rg-inline[b-mb0g1l9wtb] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 1px 7px;
    border-radius: 5px;
    font-size: .72rem;
    font-weight: 600;
}

.rg-inline--ok[b-mb0g1l9wtb]  { background: #E8F6EE; color: #23824F; }
.rg-inline--err[b-mb0g1l9wtb] { background: #FBEBED; color: #C0392B; }

/* ── Pannello laterale di modifica ───────────────────────────────────────── */

.rg-panel-back[b-mb0g1l9wtb] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .40);
    z-index: 1040;
    animation: rg-fade-b-mb0g1l9wtb .14s ease-out;
}

@keyframes rg-fade-b-mb0g1l9wtb { from { opacity: 0; } to { opacity: 1; } }

.rg-panel[b-mb0g1l9wtb] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1041;
    width: min(760px, 100vw);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-left: 1px solid #DDE5EF;
    box-shadow: -18px 0 50px rgba(0, 27, 72, .18);
    animation: rg-slide-b-mb0g1l9wtb .2s ease-out;
}

@keyframes rg-slide-b-mb0g1l9wtb {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}

.rg-panel__head[b-mb0g1l9wtb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #DDE5EF;
    background: #F7FAFD;
    flex-shrink: 0;
}

.rg-panel__id[b-mb0g1l9wtb] { min-width: 0; }

.rg-panel__eyebrow[b-mb0g1l9wtb] {
    display: block;
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #718096;
}

.rg-panel__title[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    margin-top: 3px;
    font-size: .96rem;
    font-weight: 700;
    color: #1E334C;
}

.rg-panel__code[b-mb0g1l9wtb] {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #8696a7;
    font-variant-numeric: tabular-nums;
}

.rg-panel__body[b-mb0g1l9wtb] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 16px 18px;
}

.rg-panel__foot[b-mb0g1l9wtb] {
    display: flex;
    justify-content: flex-start;
    gap: 8px;
    padding: 10px 18px;
    border-top: 1px solid #DDE5EF;
    background: #FBFCFE;
    flex-shrink: 0;
}

/* Il form del rapportino, dentro al pannello, perde la propria cornice a card:
   la cornice è il pannello. */
.rg-panel__body[b-mb0g1l9wtb]  .giornaliera-form-wrapper .form-card {
    border: none;
    box-shadow: none;
    padding: 0;
    background: transparent;
}

/* ── Tablet ──────────────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
    .rg-kpis[b-mb0g1l9wtb] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rg-detail__grid[b-mb0g1l9wtb] { grid-template-columns: minmax(0, 1fr); }
    .rg-filters__go[b-mb0g1l9wtb] { margin-left: 0; }
}

/* ── Mobile: toolbar sticky, filtri in drawer, timeline a piena larghezza ── */

@media (max-width: 768px) {
    .rg-page[b-mb0g1l9wtb] { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }

    .rg-head[b-mb0g1l9wtb] {
        position: sticky;
        top: 0;
        z-index: 20;
        background: #fff;
        margin: 0 -12px 16px;
        padding: 10px 12px;
        border-bottom: 1px solid #DDE5EF;
        gap: 10px;
    }

    .rg-head__title[b-mb0g1l9wtb] { font-size: 1.14rem; }
    .rg-head__sub[b-mb0g1l9wtb] { display: none; }
    .rg-head__actions[b-mb0g1l9wtb] { margin-left: 0; width: 100%; }
    .rg-head__actions .btn[b-mb0g1l9wtb] { flex: 1 1 auto; min-height: 40px; }
    .rg-anno[b-mb0g1l9wtb] { flex: 0 0 auto; }

    /* La barra filtri diventa un pannello a scomparsa dal basso */
    .rg-filterbar-trigger[b-mb0g1l9wtb] { display: block; }

    .rg-drawer-back[b-mb0g1l9wtb] {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .45);
        z-index: 1050;
    }

    .rg-filters[b-mb0g1l9wtb] {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1051;
        margin: 0;
        max-height: 86vh;
        overflow-y: auto;
        border-radius: 16px 16px 0 0;
        border-bottom: none;
        box-shadow: 0 -12px 40px rgba(0, 27, 72, .22);
        transform: translateY(102%);
        transition: transform .2s ease-out;
        padding: 14px 16px calc(16px + env(safe-area-inset-bottom, 0px));
    }

    .rg-filters.is-open[b-mb0g1l9wtb] { transform: translateY(0); }

    .rg-filters__head[b-mb0g1l9wtb] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding-bottom: 12px;
        margin-bottom: 12px;
        border-bottom: 1px solid #EDF2F7;
    }

    .rg-filters__title[b-mb0g1l9wtb] { font-size: .98rem; font-weight: 700; color: #1E334C; }

    .rg-filters__row[b-mb0g1l9wtb] { flex-direction: column; align-items: stretch; }

    .rg-f[b-mb0g1l9wtb], .rg-f--search[b-mb0g1l9wtb] { width: 100%; max-width: 100%; flex: 0 0 auto; }
    .rg-periodo input[b-mb0g1l9wtb] { width: 100%; }
    .rg-check[b-mb0g1l9wtb] { justify-content: flex-start; }

    .rg-filters__go[b-mb0g1l9wtb] { margin-left: 0; }
    .rg-filters__go .btn[b-mb0g1l9wtb] { flex: 1 1 auto; min-height: 42px; }

    .rg-viewbar[b-mb0g1l9wtb] { flex-direction: column-reverse; align-items: stretch; gap: 10px; }
    .rg-seg[b-mb0g1l9wtb] { width: 100%; margin-bottom: 0; }
    .rg-seg__item[b-mb0g1l9wtb] { flex: 1 0 auto; justify-content: center; min-height: 38px; }
    .rg-tab[b-mb0g1l9wtb] { min-height: 44px; font-size: .88rem; }

    .rg-group__head[b-mb0g1l9wtb] { flex-wrap: wrap; }
    .rg-group__stats[b-mb0g1l9wtb], .rg-day__stats[b-mb0g1l9wtb] { width: 100%; padding-left: 36px; }
    .rg-day__head[b-mb0g1l9wtb] { flex-wrap: wrap; }
    .rg-day__stats[b-mb0g1l9wtb] { padding-left: 30px; }

    .rg-row[b-mb0g1l9wtb] { padding: 9px 8px; }
    .rg-row__main[b-mb0g1l9wtb] { flex: 1 1 100%; }
    .rg-row__actions[b-mb0g1l9wtb] { margin-left: 36px; }
    .rg-row__desc[b-mb0g1l9wtb] { white-space: normal; }
    .rg-row__comm[b-mb0g1l9wtb] { white-space: normal; }

    /* Su telefono il pannello prende tutta la larghezza e sale dal basso */
    .rg-panel[b-mb0g1l9wtb] {
        width: 100vw;
        top: 4vh;
        border-left: none;
        border-radius: 16px 16px 0 0;
        animation: rg-slide-up-b-mb0g1l9wtb .2s ease-out;
    }

    @keyframes rg-slide-up-b-mb0g1l9wtb {
        from { transform: translateY(100%); }
        to   { transform: translateY(0); }
    }

    .rg-panel__body[b-mb0g1l9wtb] { padding: 14px 12px calc(14px + env(safe-area-inset-bottom, 0px)); }
    .rg-panel__foot[b-mb0g1l9wtb] { padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
}

/* ── Coda "da analizzare": analisi in blocco (2026-09-03) ─────────────── */
.rg-coda-ai[b-mb0g1l9wtb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin-bottom: 12px;
    padding: 10px 14px;
    background: #F3F6FA;
    border: 1px solid #DCE6F3;
    border-radius: 10px;
    font-size: .86rem;
    color: #001B48;
}
.rg-coda-ai__txt[b-mb0g1l9wtb] { flex: 1 1 320px; display: flex; align-items: flex-start; gap: 4px; }
.rg-coda-ai__esiti[b-mb0g1l9wtb] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid #E5EBF2;
    border-radius: 10px;
    font-size: .82rem;
    color: #2F4A66;
    max-height: 220px;
    overflow-y: auto;
}
.rg-coda-ai__esito[b-mb0g1l9wtb] { display: flex; align-items: baseline; gap: 4px; }
.rg-coda-ai__esito.is-err[b-mb0g1l9wtb] { color: #C0392B; }
.rg-coda-ai__msg[b-mb0g1l9wtb] { color: #5B7A9A; }
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/Form.razor.rz.scp.css */
/* Giornaliera — Form */

.giornaliera-form-wrapper[b-apdil3ygbk] {
    padding: 0.25rem 0;
}

.giornaliera-form-wrapper .form-card[b-apdil3ygbk] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}

.giornaliera-form-wrapper .form-section-title[b-apdil3ygbk] {
    color: #1E334C;
    font-weight: 700;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #dceaf8;
}

/* ── Tabelle operatori / DDT / attrezzature ────────────────────────────── */

.gj-table[b-apdil3ygbk] {
    margin-bottom: 0;
    font-size: 0.875rem;
}

.gj-table thead th[b-apdil3ygbk] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #dceaf8;
    padding: 0.55rem 0.65rem;
    white-space: nowrap;
}

.gj-table tbody td[b-apdil3ygbk] {
    padding: 0.5rem 0.65rem;
    vertical-align: middle;
    border-bottom: 1px solid #f0f5fb;
}

.gj-table tbody tr:last-child td[b-apdil3ygbk] {
    border-bottom: none;
}

/* ── Pulsante rimuovi riga ──────────────────────────────────────────────── */

.gj-remove-btn[b-apdil3ygbk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 6px;
    border: none;
    background: transparent;
    color: #8696a7;
    font-size: 0.875rem;
    cursor: pointer;
    padding: 0;
    transition: background 0.12s, color 0.12s;
}

.gj-remove-btn:hover[b-apdil3ygbk] {
    background: #fdecea;
    color: #9e2d1e;
}

/* ── Azioni form ────────────────────────────────────────────────────────── */

.giornaliera-form-wrapper .form-actions[b-apdil3ygbk] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #dceaf8;
}

/* ── Geo: pulsante rileva posizione ────────────────────────────────────── */

.gj-geo-btn[b-apdil3ygbk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    border: 1px solid #a5d6a7;
    background: #e8f5e9;
    color: #2e7d32;
    font-size: 0.75rem;
    cursor: pointer;
    margin-left: 0.4rem;
    vertical-align: middle;
    transition: background 0.12s;
    padding: 0;
}

.gj-geo-btn:hover[b-apdil3ygbk] { background: #c8e6c9; }
.gj-geo-btn--loading[b-apdil3ygbk] { background: #f0faf1; cursor: default; }

/* ── Geo: banner suggerimenti ───────────────────────────────────────────── */

.gj-geo-banner[b-apdil3ygbk] {
    margin-top: 0.5rem;
    border: 1px solid #a5d6a7;
    border-radius: 8px;
    overflow: hidden;
    font-size: 0.8125rem;
    background: #f0faf1;
}

.gj-geo-banner-header[b-apdil3ygbk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.4rem 0.7rem;
    background: #e8f5e9;
    border-bottom: 1px solid #c8e6c9;
    color: #1b5e20;
    font-size: 0.8rem;
}

.gj-geo-dismiss[b-apdil3ygbk] {
    background: none;
    border: none;
    cursor: pointer;
    color: #4caf50;
    font-size: 1rem;
    line-height: 1;
    padding: 0;
    display: flex;
    align-items: center;
}

.gj-geo-chip[b-apdil3ygbk] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    column-gap: 0.5rem;
    row-gap: 0.1rem;
    padding: 0.45rem 0.7rem;
    background: none;
    border: none;
    border-bottom: 1px solid #e8f5e9;
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: background 0.12s;
}

.gj-geo-chip:last-child[b-apdil3ygbk] { border-bottom: none; }
.gj-geo-chip:hover[b-apdil3ygbk] { background: #e8f5e9; }

.gj-geo-chip-num[b-apdil3ygbk] {
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
    flex-shrink: 0;
}

.gj-geo-chip-name[b-apdil3ygbk] {
    color: #344e6e;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gj-geo-chip-dist[b-apdil3ygbk] {
    font-size: 0.725rem;
    color: #4caf50;
    white-space: nowrap;
    flex-shrink: 0;
}

.gj-geo-chip-ws[b-apdil3ygbk] {
    flex-basis: 100%;
    font-size: 0.7rem;
    color: #8696a7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gj-geo-nessuna[b-apdil3ygbk] {
    font-size: 0.775rem;
    color: #8696a7;
    margin: 0.4rem 0 0;
}

/* ── Griglia allegati fotografici ───────────────────────────────────────── */

.gj-attachments[b-apdil3ygbk] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.gj-attachment-card[b-apdil3ygbk] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 8px;
    padding: 0.6rem;
    position: relative;
}

.gj-attachment-card--error[b-apdil3ygbk] {
    border-color: #f5c6cb;
    background: #fff5f5;
}

.gj-attachment-thumb-wrap[b-apdil3ygbk] {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    border-radius: 5px;
    background: #e9f0f8;
}

.gj-attachment-thumb[b-apdil3ygbk] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gj-attachment-thumb--loading[b-apdil3ygbk],
.gj-attachment-thumb--error[b-apdil3ygbk] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8696a7;
    font-size: 1.25rem;
    height: 100%;
}

.gj-attachment-info[b-apdil3ygbk] {
    font-size: 0.8125rem;
}

.gj-attachment-name[b-apdil3ygbk] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #1E334C;
}

.gj-attachment-meta[b-apdil3ygbk] {
    font-size: 0.75rem;
    color: #5B7A9A;
}

/* ── FAB foto — bottom-left ─────────────────────────────────────────────── */

.gj-foto-fab[b-apdil3ygbk] {
    position: fixed;
    bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
    left: 1.25rem;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #1E334C;
    color: white;
    border: none;
    box-shadow: 0 4px 12px rgba(30, 51, 76, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    cursor: pointer;
    z-index: 200;
    transition: background 0.2s, box-shadow 0.2s;
    margin: 0;
}

.gj-foto-fab:hover[b-apdil3ygbk] {
    background: #2d4e70;
    box-shadow: 0 6px 18px rgba(30, 51, 76, 0.4);
}

/* ── FAB microfono — bottom-right ───────────────────────────────────────── */

.gj-voice-fab[b-apdil3ygbk] {
    position: fixed;
    bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
    right: 1.25rem;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #1E334C;
    color: white;
    border: none;
    box-shadow: 0 4px 12px rgba(30, 51, 76, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    cursor: pointer;
    z-index: 200;
    transition: background 0.2s, box-shadow 0.2s;
}

.gj-voice-fab:hover[b-apdil3ygbk] {
    background: #2d4e70;
    box-shadow: 0 6px 18px rgba(30, 51, 76, 0.4);
}

.gj-voice-fab--active[b-apdil3ygbk] {
    background: #c0614f;
    box-shadow: 0 4px 16px rgba(192, 97, 79, 0.5);
    animation: gj-fab-pulse-b-apdil3ygbk 1.5s ease-in-out infinite;
}

@keyframes gj-fab-pulse-b-apdil3ygbk {
    0%, 100% { box-shadow: 0 4px 16px rgba(192, 97, 79, 0.5); }
    50%       { box-shadow: 0 4px 28px rgba(192, 97, 79, 0.75); }
}

/* ── Banner stato voce ──────────────────────────────────────────────────── */

.gj-voice-banner[b-apdil3ygbk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.875rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    margin-top: 0.75rem;
}

.gj-voice-banner--active[b-apdil3ygbk] {
    background: #e8f5e9;
    border-left: 3px solid #2e7d32;
    color: #1b5e20;
}

.gj-voice-banner--warn[b-apdil3ygbk] {
    background: #fff3cd;
    border-left: 3px solid #856404;
    color: #664d03;
}

.gj-voice-dot[b-apdil3ygbk] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2e7d32;
    animation: gj-dot-pulse-b-apdil3ygbk 1s ease-in-out infinite;
}

@keyframes gj-dot-pulse-b-apdil3ygbk {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.3; }
}

/* ── Modal spostamento foto su altro rapportino ────────────────────── */
.gj-sposta-overlay[b-apdil3ygbk] {
    position: fixed;
    inset: 0;
    z-index: 1085;
    background: rgba(15, 23, 35, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.gj-sposta-modal[b-apdil3ygbk] {
    background: #fff;
    border-radius: 12px;
    width: 100%;
    max-width: 540px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 12px 48px rgba(0, 0, 0, .3);
    overflow: hidden;
}

.gj-sposta-head[b-apdil3ygbk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid #eef1f4;
    font-weight: 600;
    color: #1E334C;
}

.gj-sposta-list[b-apdil3ygbk] {
    overflow-y: auto;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.gj-sposta-item[b-apdil3ygbk] {
    display: grid;
    grid-template-columns: 90px 110px 1fr;
    gap: 10px;
    align-items: center;
    text-align: left;
    background: #f8f9fb;
    border: 1px solid #eef1f4;
    border-radius: 8px;
    padding: 10px 12px;
    cursor: pointer;
    font-size: .85rem;
    color: #2b3a4b;
}

.gj-sposta-item:hover[b-apdil3ygbk] {
    background: #eef4fb;
    border-color: #cfe0f2;
}

.gj-sposta-data[b-apdil3ygbk] {
    font-weight: 600;
    color: #1E334C;
}

.gj-sposta-cant[b-apdil3ygbk] {
    font-size: .76rem;
    color: #5a6b7d;
}

.gj-sposta-desc[b-apdil3ygbk] {
    color: #5a6b7d;
    min-width: 0;
}

.gj-sposta-empty[b-apdil3ygbk],
.gj-sposta-loading[b-apdil3ygbk] {
    padding: 28px 18px;
    text-align: center;
    color: #6c757d;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/MobileNav.razor.rz.scp.css */
/* Menu navigazione mobile — nascosto per default, visibile solo sotto 720px */

.mobile-field-nav[b-a8n848qx39] {
    display: none;
}

@media (max-width: 719.98px) {
    .mobile-field-nav[b-a8n848qx39] {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        height: calc(72px + env(safe-area-inset-bottom, 0px));
        padding-bottom: env(safe-area-inset-bottom, 0px);
        background: #ffffff;
        border-top: 1px solid #dceaf8;
        box-shadow: 0 -2px 12px rgba(30, 51, 76, 0.1);
        z-index: 400;
        align-items: stretch;
    }

    .mobile-field-nav__item[b-a8n848qx39] {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 8px 4px;
        color: #8696a7;
        text-decoration: none;
        font-size: 0.6875rem;
        font-weight: 500;
        letter-spacing: 0.01em;
        transition: color 0.15s, background 0.15s;
        min-height: 44px;
        -webkit-tap-highlight-color: transparent;
    }

    .mobile-field-nav__item:active[b-a8n848qx39] {
        background: #f0f5fb;
        color: #1E334C;
        text-decoration: none;
    }

    .mobile-field-nav__item:hover[b-a8n848qx39] {
        text-decoration: none;
    }

    .mobile-field-nav__item--active[b-a8n848qx39] {
        color: #1E334C;
        font-weight: 700;
    }

    /* Voce "Nuovo" leggermente evidenziata */
    .mobile-field-nav__item--nuovo[b-a8n848qx39] {
        color: #5B7A9A;
    }

    .mobile-field-nav__item--nuovo svg[b-a8n848qx39] {
        stroke: #246B9A;
    }

    .mobile-field-nav__item--active.mobile-field-nav__item--nuovo[b-a8n848qx39] {
        color: #246B9A;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/QuickReport.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════════
   STEP 1 — INPUT  (classi qr-*)
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Wrapper pagina ───────────────────────────────────────────────────── */
.qr-page[b-9jd2a0samt] {
    max-width: 640px;
    margin: 0 auto;
    padding: 1rem 1rem 5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* ── Back link ────────────────────────────────────────────────────────── */
.qr-back[b-9jd2a0samt] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.9rem;
    color: #5B7A9A;
    text-decoration: none;
    padding: 0.25rem 0;
    min-height: 44px;
    align-self: flex-start;
}
.qr-back:hover[b-9jd2a0samt] { color: #1E334C; }

/* ── Header ───────────────────────────────────────────────────────────── */
.qr-header[b-9jd2a0samt] { margin-bottom: 0.25rem; }
.qr-title[b-9jd2a0samt] {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1E334C;
    margin: 0 0 0.2rem;
}
.qr-subtitle[b-9jd2a0samt] {
    font-size: 0.875rem;
    color: #5B7A9A;
    margin: 0;
}

/* ── Card ─────────────────────────────────────────────────────────────── */
.qr-card[b-9jd2a0samt] {
    background: white;
    border: 1.5px solid #dceaf8;
    border-radius: 14px;
    padding: 1rem;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.qr-card-heading[b-9jd2a0samt] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1E334C;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.qr-badge[b-9jd2a0samt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #1E334C;
    color: white;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 700;
    min-width: 20px;
    height: 20px;
    padding: 0 0.4rem;
}

/* ── Cantiere: ricerca ────────────────────────────────────────────────── */
.qr-cantiere-input[b-9jd2a0samt] {
    width: 100%;
    padding: 0.625rem 0.875rem;
    border: 1.5px solid #dceaf8;
    border-radius: 10px;
    font-size: 0.9375rem;
    font-family: inherit;
    color: #1E334C;
    background: #F4F8FC;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.qr-cantiere-input:focus[b-9jd2a0samt] {
    border-color: #B7D8FF;
    box-shadow: 0 0 0 3px rgba(183, 216, 255, 0.25);
    background: white;
}
.qr-cantiere-input[b-9jd2a0samt]::placeholder { color: #94a3b8; }

.qr-cantiere-list[b-9jd2a0samt] {
    border: 1px solid #dceaf8;
    border-radius: 10px;
    overflow: hidden;
    background: white;
}
.qr-cantiere-item[b-9jd2a0samt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.5rem;
    row-gap: 0.1rem;
    width: 100%;
    padding: 0.75rem 1rem;
    background: none;
    border: none;
    border-bottom: 1px solid #f0f5fb;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    font-size: 0.875rem;
    transition: background 0.12s;
    -webkit-tap-highlight-color: transparent;
}
.qr-cantiere-item:last-child[b-9jd2a0samt] { border-bottom: none; }
.qr-cantiere-item:hover[b-9jd2a0samt],
.qr-cantiere-item:focus[b-9jd2a0samt] { background: #F4F8FC; outline: none; }
.qr-cantiere-item:active[b-9jd2a0samt] { background: #e9f2fb; }

.qr-cantiere-item--hint[b-9jd2a0samt] {
    color: #94a3b8;
    font-style: italic;
    cursor: default;
    font-size: 0.8125rem;
}
.qr-cantiere-item--hint:hover[b-9jd2a0samt] { background: white; }

.qr-cantiere-item-num[b-9jd2a0samt] {
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
    flex-shrink: 0;
}
.qr-cantiere-item-name[b-9jd2a0samt] {
    color: #1E334C;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.qr-cantiere-item-loc[b-9jd2a0samt] {
    font-size: 0.775rem;
    color: #5B7A9A;
    white-space: nowrap;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

/* ── Cantiere: selezionato ────────────────────────────────────────────── */
.qr-cantiere-sel[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #EAF2FF;
    border: 1.5px solid #B7D8FF;
    border-radius: 10px;
    padding: 0.75rem 1rem;
}
.qr-cantiere-sel-body[b-9jd2a0samt] { flex: 1; min-width: 0; }
.qr-cantiere-sel-name[b-9jd2a0samt] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.9375rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.qr-cantiere-sel-code[b-9jd2a0samt] {
    font-size: 0.8125rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}
.qr-cantiere-change[b-9jd2a0samt] {
    flex-shrink: 0;
    background: white;
    border: 1px solid #B7D8FF;
    border-radius: 8px;
    padding: 0.35rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #1E334C;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s;
}
.qr-cantiere-change:hover[b-9jd2a0samt] { background: #dceaf8; }

/* ── GPS button ───────────────────────────────────────────────────────── */
.qr-geo-btn[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 1rem;
    background: #f0faf1;
    border: 1.5px solid #a5d6a7;
    border-radius: 10px;
    color: #1b5e20;
    font-size: 0.9375rem;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s;
    -webkit-tap-highlight-color: transparent;
}
.qr-geo-btn:hover:not(:disabled)[b-9jd2a0samt] { background: #e8f5e9; }
.qr-geo-btn:disabled[b-9jd2a0samt] { opacity: 0.65; cursor: not-allowed; }

/* ── Geo: risultati e warning ─────────────────────────────────────────── */
.qr-geo-results[b-9jd2a0samt] {
    background: #f0faf1;
    border: 1px solid #a5d6a7;
    border-radius: 10px;
    overflow: hidden;
}
.qr-geo-label[b-9jd2a0samt] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1b5e20;
    padding: 0.5rem 0.875rem;
    background: #e8f5e9;
    border-bottom: 1px solid #c8e6c9;
    display: flex;
    align-items: center;
}
.qr-geo-warn[b-9jd2a0samt] {
    font-size: 0.8125rem;
    color: #78580a;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* ── Textarea ─────────────────────────────────────────────────────────── */
.qr-textarea[b-9jd2a0samt] {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1.5px solid #dceaf8;
    border-radius: 10px;
    font-size: 0.9375rem;
    font-family: inherit;
    resize: vertical;
    min-height: 160px;
    color: #1E334C;
    background: #F4F8FC;
    outline: none;
    line-height: 1.6;
    display: block;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.qr-textarea:focus[b-9jd2a0samt] {
    border-color: #B7D8FF;
    box-shadow: 0 0 0 3px rgba(183, 216, 255, 0.2);
    background: white;
}
.qr-textarea[b-9jd2a0samt]::placeholder { color: #94a3b8; }

/* ── Voice feedback ───────────────────────────────────────────────────── */
.qr-voice-active[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 0.875rem;
    background: #ffe8ec;
    border: 1px solid #ffc2cc;
    border-radius: 8px;
    color: #9b1f2e;
    font-size: 0.8125rem;
    font-weight: 500;
}
.qr-voice-dot[b-9jd2a0samt] {
    width: 10px;
    height: 10px;
    background: #ef4444;
    border-radius: 50%;
    flex-shrink: 0;
    animation: qr-pulse-b-9jd2a0samt 1s ease-in-out infinite;
}
@keyframes qr-pulse-b-9jd2a0samt {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.4; transform: scale(0.75); }
}

/* ── Bozza locale ritrovata / bozza server al sicuro (resilienza 2026-09-03) ── */
.qr-draft-found[b-9jd2a0samt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.625rem;
    padding: 0.625rem 0.875rem;
    background: #eef6ff;
    border: 1px solid #bcd7f5;
    border-radius: 8px;
    color: #1d4f8a;
    font-size: 0.8125rem;
    font-weight: 500;
}
.qr-draft-found__btn[b-9jd2a0samt] {
    margin-left: auto;
    padding: 0.25rem 0.75rem;
    border: 1px solid #1d4f8a;
    border-radius: 999px;
    background: #1d4f8a;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}
.qr-draft-found__btn--muted[b-9jd2a0samt] {
    margin-left: 0;
    background: transparent;
    color: #1d4f8a;
}
.qr-draft-found__btn:focus-visible[b-9jd2a0samt] { outline: 2px solid #1d4f8a; outline-offset: 2px; }
.qr-draft-saved[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.625rem;
    padding: 0.5rem 0.75rem;
    background: #eefaf1;
    border: 1px solid #bfe5c9;
    border-radius: 8px;
    color: #1f6b35;
    font-size: 0.8125rem;
}

.qr-voice-warn[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    color: #78580a;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
}

/* ── Action buttons (Detta / Foto) ────────────────────────────────────── */
.qr-actions[b-9jd2a0samt] {
    display: flex;
    gap: 0.75rem;
}
.qr-action-btn[b-9jd2a0samt] {
    flex: 1;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    min-height: 72px;
    padding: 0.75rem 0.5rem;
    border-radius: 12px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    border: 1.5px solid transparent;
    font-family: inherit;
    text-decoration: none;
    user-select: none;
    transition: background 0.15s, box-shadow 0.15s;
    -webkit-tap-highlight-color: transparent;
}
.qr-action-btn i[b-9jd2a0samt] { font-size: 1.5rem; }
.qr-action-btn:active[b-9jd2a0samt] { transform: scale(0.97); }

.qr-action-btn--voice[b-9jd2a0samt] {
    background: #f0faf1;
    border-color: #a5d6a7;
    color: #1b5e20;
}
.qr-action-btn--voice:hover[b-9jd2a0samt] { background: #e8f5e9; }

.qr-action-btn--photo[b-9jd2a0samt] {
    background: #EAF2FF;
    border-color: #B7D8FF;
    color: #1E334C;
}
.qr-action-btn--photo:hover[b-9jd2a0samt] { background: #dceaf8; }

.qr-action-btn--recording[b-9jd2a0samt] {
    background: #ffe8ec;
    border-color: #ffc2cc;
    color: #9b1f2e;
    animation: qr-btn-pulse-b-9jd2a0samt 1.5s ease-in-out infinite;
}
@keyframes qr-btn-pulse-b-9jd2a0samt {
    0%, 100% { box-shadow: 0 2px 8px rgba(239, 68, 68, 0.2); }
    50%       { box-shadow: 0 2px 20px rgba(239, 68, 68, 0.5); }
}

/* ── Thumbnails ───────────────────────────────────────────────────────── */
.qr-thumbs[b-9jd2a0samt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
}
.qr-thumb[b-9jd2a0samt] {
    position: relative;
    width: 80px;
    flex-shrink: 0;
}
.qr-thumb-img[b-9jd2a0samt] {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #dceaf8;
    display: block;
}
.qr-thumb--error .qr-thumb-img[b-9jd2a0samt] { border-color: #f8cdc8; }

.qr-thumb-loading[b-9jd2a0samt] {
    width: 80px;
    height: 80px;
    border-radius: 8px;
    border: 1px solid #dceaf8;
    background: #F4F8FC;
    display: flex;
    align-items: center;
    justify-content: center;
}
.qr-thumb-error-img[b-9jd2a0samt] {
    width: 80px;
    height: 80px;
    border-radius: 8px;
    border: 1px solid #f8cdc8;
    background: #fdf2f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #C0614F;
    font-size: 1.25rem;
}
.qr-thumb-del[b-9jd2a0samt] {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(30, 51, 76, 0.72);
    color: white;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    padding: 0;
    transition: background 0.15s;
}
.qr-thumb-del:hover[b-9jd2a0samt] { background: #C0614F; }
.qr-thumb-foot[b-9jd2a0samt] {
    font-size: 0.6875rem;
    color: #5B7A9A;
    text-align: center;
    margin-top: 0.2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.qr-thumb-foot--err[b-9jd2a0samt] { color: #C0614F; }

/* ── Error ────────────────────────────────────────────────────────────── */
.qr-error[b-9jd2a0samt] {
    display: flex;
    align-items: flex-start;
    gap: 0.375rem;
    padding: 0.75rem 1rem;
    background: #fdf2f0;
    border-left: 4px solid #C0614F;
    border-radius: 0 8px 8px 0;
    color: #8a2e20;
    font-size: 0.875rem;
}

/* ── Accordion dettagli ───────────────────────────────────────────────── */
.qr-accordion[b-9jd2a0samt] {
    background: white;
    border: 1.5px solid #dceaf8;
    border-radius: 14px;
    overflow: hidden;
}
.qr-accordion-toggle[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.875rem 1rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #1E334C;
    font-family: inherit;
    transition: background 0.15s;
    -webkit-tap-highlight-color: transparent;
}
.qr-accordion-toggle:hover[b-9jd2a0samt] { background: #F4F8FC; }
.qr-accordion-toggle i:first-child[b-9jd2a0samt] { color: #5B7A9A; }

.qr-chevron[b-9jd2a0samt] {
    margin-left: auto;
    font-size: 0.75rem;
    transition: transform 0.2s;
    color: #5B7A9A;
}
.qr-chevron--open[b-9jd2a0samt] { transform: rotate(180deg); }

.qr-accordion-body[b-9jd2a0samt] {
    border-top: 1px solid #dceaf8;
    padding: 0.875rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ── Dettagli ─────────────────────────────────────────────────────────── */
.qr-detail[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.qr-detail--block[b-9jd2a0samt] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.375rem;
}
.qr-detail-label[b-9jd2a0samt] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
    min-width: 130px;
}
.qr-detail--block .qr-detail-label[b-9jd2a0samt] { min-width: 0; }
.qr-detail-row[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
}
.qr-detail-input[b-9jd2a0samt] {
    padding: 0.5rem 0.75rem;
    border: 1.5px solid #dceaf8;
    border-radius: 8px;
    font-size: 0.9rem;
    font-family: inherit;
    color: #1E334C;
    background: white;
    outline: none;
    flex: 1;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}
.qr-detail-input:focus[b-9jd2a0samt] {
    border-color: #B7D8FF;
    box-shadow: 0 0 0 2px rgba(183, 216, 255, 0.2);
}
.qr-detail-input--sm[b-9jd2a0samt] {
    max-width: 90px;
    flex: none;
}
.qr-detail-badge[b-9jd2a0samt] {
    font-size: 0.8125rem;
    color: #5B7A9A;
    font-weight: 500;
    white-space: nowrap;
}

/* ── Pioggia toggle ───────────────────────────────────────────────────── */
.qr-pioggia[b-9jd2a0samt] { display: flex; gap: 0.5rem; }
.qr-pioggia-btn[b-9jd2a0samt] {
    padding: 0.5rem 1.25rem;
    border: 1.5px solid #dceaf8;
    border-radius: 8px;
    background: #F4F8FC;
    color: #5B7A9A;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    -webkit-tap-highlight-color: transparent;
}
.qr-pioggia-btn:hover[b-9jd2a0samt] { background: #e9f2fb; border-color: #B7D8FF; }
.qr-pioggia-btn--active[b-9jd2a0samt] {
    background: #EAF2FF;
    border-color: #B7D8FF;
    color: #1E334C;
    font-weight: 600;
}

/* ── Staff list ───────────────────────────────────────────────────────── */
.qr-staff-list[b-9jd2a0samt] {
    width: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    overflow: hidden;
}
.qr-staff-row[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #f0f5fb;
    background: white;
    transition: background 0.12s;
}
.qr-staff-row:last-child[b-9jd2a0samt] { border-bottom: none; }
.qr-staff-row--active[b-9jd2a0samt] { background: #F4F8FC; }

.qr-staff-name[b-9jd2a0samt] {
    flex: 1;
    background: none;
    border: none;
    text-align: left;
    font-size: 0.875rem;
    color: #1E334C;
    cursor: pointer;
    padding: 0.25rem 0;
    font-family: inherit;
    display: flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
}
.qr-staff-row--active .qr-staff-name[b-9jd2a0samt] { font-weight: 500; }
.qr-staff-row--active .qr-staff-name i[b-9jd2a0samt] { color: #2e7d32; }

.qr-staff-ore-wrap[b-9jd2a0samt] { display: flex; align-items: center; gap: 0.25rem; }
.qr-staff-ore[b-9jd2a0samt] {
    width: 60px;
    padding: 0.3rem 0.5rem;
    border: 1.5px solid #dceaf8;
    border-radius: 6px;
    font-size: 0.875rem;
    font-family: inherit;
    color: #1E334C;
    text-align: center;
    outline: none;
}
.qr-staff-ore:focus[b-9jd2a0samt] { border-color: #B7D8FF; }
.qr-staff-ore-lbl[b-9jd2a0samt] {
    font-size: 0.8125rem;
    color: #5B7A9A;
    font-weight: 500;
}

/* ── DDT fields ───────────────────────────────────────────────────────── */
.qr-ddt-fields[b-9jd2a0samt] {
    display: flex;
    gap: 0.5rem;
    width: 100%;
}
.qr-ddt-fields .qr-detail-input[b-9jd2a0samt] { flex: 1; }

/* ── CTA ──────────────────────────────────────────────────────────────── */
.qr-cta-hint[b-9jd2a0samt] {
    font-size: 0.8125rem;
    color: #78580a;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}
.qr-cta[b-9jd2a0samt] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 1rem;
}
.qr-btn-primary[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 56px;
    padding: 0.75rem 1.5rem;
    background: var(--btn-primary-bg, #001B48);
    color: white;
    border: none;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    letter-spacing: 0.01em;
    transition: background 0.15s, opacity 0.15s;
    -webkit-tap-highlight-color: transparent;
}
.qr-btn-primary:hover:not(:disabled)[b-9jd2a0samt] { background: var(--btn-primary-bg-hover, #12315F); }
.qr-btn-primary:active:not(:disabled)[b-9jd2a0samt] { background: var(--btn-primary-bg, #001B48); }
.qr-btn-primary:disabled[b-9jd2a0samt] { background: var(--btn-primary-disabled, #A9B4C9); cursor: not-allowed; }

.qr-btn-secondary[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 44px;
    padding: 0.625rem 1rem;
    background: #fff;
    color: var(--btn-ink, #001B48);
    border: 1.5px solid var(--btn-border, #C7D2E2);
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    -webkit-tap-highlight-color: transparent;
}
.qr-btn-secondary:hover:not(:disabled)[b-9jd2a0samt] { background: #F3F7FC; color: var(--btn-ink, #001B48); border-color: var(--btn-ink, #001B48); }
.qr-btn-secondary:disabled[b-9jd2a0samt] { opacity: 0.4; cursor: not-allowed; }

/* ── Responsive step 1: mobile ≤720px ────────────────────────────────── */
@media (max-width: 719.98px) {
    .qr-page[b-9jd2a0samt] { padding: 0.75rem 0.75rem 5rem; }
    .qr-title[b-9jd2a0samt] { font-size: 1.375rem; }

    .qr-textarea[b-9jd2a0samt] {
        min-height: 200px;
        font-size: 1rem;
    }

    .qr-action-btn[b-9jd2a0samt] { min-height: 80px; font-size: 0.9375rem; }
    .qr-action-btn i[b-9jd2a0samt] { font-size: 1.75rem; }

    .qr-detail[b-9jd2a0samt] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.375rem;
    }
    .qr-detail-label[b-9jd2a0samt] { min-width: 0; }
    .qr-detail-row[b-9jd2a0samt] { width: 100%; }
    .qr-detail-input[b-9jd2a0samt] { width: 100%; }
    .qr-detail-input--sm[b-9jd2a0samt] { flex: none; width: 90px; }

    .qr-ddt-fields[b-9jd2a0samt] { flex-direction: column; }

    .qr-cantiere-item[b-9jd2a0samt] { padding: 0.875rem 1rem; font-size: 0.9375rem; }
    .qr-cantiere-item-num[b-9jd2a0samt] { font-size: 0.9375rem; }

    .qr-thumb[b-9jd2a0samt] { width: 88px; }
    .qr-thumb-img[b-9jd2a0samt],
    .qr-thumb-loading[b-9jd2a0samt],
    .qr-thumb-error-img[b-9jd2a0samt] { width: 88px; height: 88px; }

    .qr-btn-primary[b-9jd2a0samt] { min-height: 60px; font-size: 1.0625rem; }
}

/* ══════════════════════════════════════════════════════════════════════════
   STEP 2 — ELABORAZIONE AI  (classi dr-processing*)
   ══════════════════════════════════════════════════════════════════════════ */

.dr-processing[b-9jd2a0samt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3.5rem 1.5rem;
    min-height: 240px;
}
.dr-processing-spinner[b-9jd2a0samt] {
    width: 48px;
    height: 48px;
    border: 3px solid #DCE3EE;
    border-top-color: #2E3C66;
    border-radius: 50%;
    animation: dr-spin-b-9jd2a0samt 0.9s linear infinite;
    margin-bottom: 1.25rem;
}
.dr-processing-title[b-9jd2a0samt] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}
.dr-processing-sub[b-9jd2a0samt] {
    font-size: 0.875rem;
    color: #5B7A9A;
}

@keyframes dr-spin-b-9jd2a0samt {
    to { transform: rotate(360deg); }
}

/* ══════════════════════════════════════════════════════════════════════════
   STEP 3 — RIEPILOGO  (classi dr-review*, dr-alert-*, dr-additional-*)
   ══════════════════════════════════════════════════════════════════════════ */

.dr-review[b-9jd2a0samt] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.dr-review-header[b-9jd2a0samt] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.dr-review-title[b-9jd2a0samt] {
    font-size: 1.0625rem;
    font-weight: 600;
    color: #1E334C;
    margin: 0 0 0.2rem;
}
.dr-review-sub[b-9jd2a0samt] {
    font-size: 0.8125rem;
    color: #5B7A9A;
    margin: 0;
}
/* Etichetta "Tradotto dal…" sotto la descrizione (rapportino dettato in un'altra lingua) */
.dr-review-tradotto[b-9jd2a0samt] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: #5B7A9A;
}

.dr-review-card[b-9jd2a0samt] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
    overflow: hidden;
}
.dr-review-row[b-9jd2a0samt] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.625rem 1rem;
    border-bottom: 1px solid #f0f5fb;
}
.dr-review-row:last-child[b-9jd2a0samt] { border-bottom: none; }
.dr-review-row--alert[b-9jd2a0samt] { background: #fffbeb; }
.dr-review-row--block[b-9jd2a0samt] {
    flex-direction: column;
    align-items: flex-start;
}
.dr-review-label[b-9jd2a0samt] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 130px;
}
.dr-review-row--block .dr-review-label[b-9jd2a0samt] { min-width: 0; margin-bottom: 0.375rem; }
.dr-review-value[b-9jd2a0samt] {
    font-size: 0.9rem;
    color: #1E334C;
    flex: 1;
}
.dr-review-value--missing[b-9jd2a0samt] { color: #C0614F; font-weight: 500; }
.dr-review-value--warn[b-9jd2a0samt]    { color: #78580a; }
.dr-review-value--empty[b-9jd2a0samt]   { color: #94a3b8; font-style: italic; }

.dr-review-chips[b-9jd2a0samt] { display: flex; flex-wrap: wrap; gap: 0.375rem; }
/* DDT nel riepilogo: riga = chip (numero/data) + select del fornitore (blocco A, 2026-09-03) */
.dr-review-ddt[b-9jd2a0samt] { display: flex; flex-direction: column; gap: 0.5rem; }
.dr-review-ddt__row[b-9jd2a0samt] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.dr-review-ddt__sel[b-9jd2a0samt] { flex: 1 1 220px; max-width: 360px; }
.dr-review-chip[b-9jd2a0samt] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.625rem;
    background: #F4F8FC;
    border: 1px solid #dceaf8;
    border-radius: 6px;
    font-size: 0.8125rem;
    color: #1E334C;
    line-height: 1.4;
}

.dr-review-thumbs[b-9jd2a0samt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin-top: 0.25rem;
}
.dr-review-thumb-wrap[b-9jd2a0samt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}
.dr-review-thumb[b-9jd2a0samt] {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #dceaf8;
    display: block;
}
.dr-review-thumb-label[b-9jd2a0samt] {
    font-size: 0.6875rem;
    color: #5B7A9A;
    text-align: center;
    max-width: 72px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dr-review-warnings[b-9jd2a0samt] {
    margin: 0 1rem 0.75rem;
    padding: 0.625rem 0.875rem;
    background: #fffbeb;
    border-left: 3px solid #E8B84B;
    border-radius: 0 6px 6px 0;
    color: #78580a;
    font-size: 0.8125rem;
}

/* ── Alert commessa mancante ──────────────────────────────────────────── */
.dr-alert-missing[b-9jd2a0samt] {
    padding: 0.75rem 1rem;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-left: 4px solid #E8B84B;
    border-radius: 6px;
    color: #78580a;
    font-size: 0.875rem;
    font-weight: 500;
}

/* ── Card aggiunte/correzioni ─────────────────────────────────────────── */
.dr-additional-card[b-9jd2a0samt] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 12px;
    padding: 1rem;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
}
.dr-additional-title[b-9jd2a0samt] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1E334C;
    margin-bottom: 0.625rem;
}
.dr-additional-textarea[b-9jd2a0samt] {
    width: 100%;
    padding: 0.625rem 0.875rem;
    border: 1.5px solid #dceaf8;
    border-radius: 8px;
    font-size: 0.875rem;
    font-family: inherit;
    resize: vertical;
    color: #1E334C;
    transition: border-color 0.2s;
    display: block;
    box-sizing: border-box;
}
.dr-additional-textarea:focus[b-9jd2a0samt] {
    outline: none;
    border-color: #B7D8FF;
    box-shadow: 0 0 0 3px rgba(183, 216, 255, 0.2);
}

/* ── Errore step 3 ────────────────────────────────────────────────────── */
.dr-error-msg[b-9jd2a0samt] {
    padding: 0.75rem 1rem;
    background: #fdf2f0;
    border-left: 4px solid #C0614F;
    border-radius: 0 6px 6px 0;
    color: #8a2e20;
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
}

/* ── Azioni riepilogo ─────────────────────────────────────────────────── */
.dr-review-actions[b-9jd2a0samt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
    padding-bottom: 1rem;
}

/* ── Responsive step 3: mobile ≤720px ────────────────────────────────── */
@media (max-width: 719.98px) {
    .dr-review-row:not(.dr-review-row--block)[b-9jd2a0samt] {
        flex-direction: column;
        gap: 0.2rem;
    }
    .dr-review-label[b-9jd2a0samt] { min-width: 0; font-size: 0.8125rem; }
    .dr-review-value[b-9jd2a0samt] { font-size: 1rem; }

    .dr-review-actions[b-9jd2a0samt] {
        flex-direction: column;
    }
    .dr-review-actions .btn[b-9jd2a0samt] {
        width: 100%;
        min-height: 48px;
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .dr-review-actions .btn[b-9jd2a0samt] { width: 100%; }
}

/* ════════════ Nuovo rapportino (disegno di Vanessa, 2026-10-05) ════════════
   Cantiere in una scheda con «Cambia», grande «Detta il rapportino», CTA fissa in basso,
   scelta del cantiere su una schermata sua. Questi stili vengono DOPO quelli storici e li ritoccano. */

.qr-page[b-9jd2a0samt] { padding-bottom: 1rem; gap: 12px; }
.qr-giorno[b-9jd2a0samt] { margin: 0 2px; font-size: 13px; color: #4A5A72; }
@media (max-width: 719.98px) { .qr-giorno--in-barra[b-9jd2a0samt] { display: none; } }

.qr-card[b-9jd2a0samt] { border-radius: 16px; border: 1px solid #E3E8F0; padding: 14px 16px; gap: 12px; display: flex; flex-direction: column; }
.qr-card-heading[b-9jd2a0samt] { margin: 0; font-size: 15px; font-weight: 700; color: #16223A; }
.qr-card-testa[b-9jd2a0samt] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.qr-chip[b-9jd2a0samt] { font-size: 12px; font-weight: 600; color: #4A5A72; background: #EEF2F8; border-radius: 999px; padding: 3px 10px; }
/* Cantiere proposto dal GPS (2026-10-06). */
.qr-chip--vicino[b-9jd2a0samt] { color: #1D4ED8; background: #E8EFFF; white-space: nowrap; }
.qr-nota[b-9jd2a0samt] { margin: 0; font-size: 12.5px; line-height: 1.35; color: #5B6B82; }

/* Cantiere scelto */
.qr-cantiere-sel[b-9jd2a0samt] { display: flex; align-items: center; gap: 12px; padding: 0; background: transparent; border: 0; }
.qr-cantiere-ico[b-9jd2a0samt] {
    flex: none; width: 44px; height: 44px; border-radius: 12px; background: #E8EFFF; color: #1D4ED8;
    display: flex; align-items: center; justify-content: center; font-size: 20px;
}
.qr-cantiere-sel-name[b-9jd2a0samt] { font-size: 16px; font-weight: 600; line-height: 21px; color: #16223A; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qr-cantiere-sel-code[b-9jd2a0samt] { font-size: 13px; color: #4A5A72; }
.qr-cantiere-change[b-9jd2a0samt] {
    flex: none; min-height: 44px; padding: 0 14px; border-radius: 12px; border: 1px solid #C9D3E3; background: #fff;
    font-size: 15px; font-weight: 600; color: #1D4ED8;
}
.qr-scegli-cantiere[b-9jd2a0samt] {
    display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 16px;
    border: 2px dashed #9DB3DA; border-radius: 14px; background: #F5F8FE;
    font: inherit; font-size: 16px; font-weight: 600; color: #1D3F8A; cursor: pointer; text-align: left;
}
.qr-scegli-cantiere > i:first-child[b-9jd2a0samt] { font-size: 20px; }

/* Dettatura e testo */
.qr-detta[b-9jd2a0samt] {
    display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 72px; width: 100%;
    border: 0; border-radius: 16px; background: #2F6B1F; color: #fff;
    font: inherit; font-size: 18px; font-weight: 700; cursor: pointer;
}
.qr-detta i[b-9jd2a0samt] { font-size: 26px; }
.qr-detta:hover[b-9jd2a0samt] { background: #285C1A; }
.qr-detta--ascolto[b-9jd2a0samt] { background: #EEF7EA; color: #1F4A14; border: 2px solid #2F6B1F; }
.qr-detta--ascolto:hover[b-9jd2a0samt] { background: #E3F1DD; }
.qr-detta-punto[b-9jd2a0samt] { width: 14px; height: 14px; border-radius: 50%; background: #B42318; animation: qr-pulsa-b-9jd2a0samt 1.2s ease-in-out infinite; }
@keyframes qr-pulsa-b-9jd2a0samt { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .qr-detta-punto[b-9jd2a0samt] { animation: none; } }

.qr-textarea[b-9jd2a0samt] { min-height: 128px; border-radius: 12px; border: 1px solid #C9D3E3; background: #F8FAFD; font-size: 16px; line-height: 23px; }
.qr-textarea[b-9jd2a0samt]::placeholder { color: #5B6B82; }

.qr-foto[b-9jd2a0samt] {
    display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; margin: 0;
    border-radius: 12px; border: 1px solid #C9D3E3; background: #fff; color: #16223A;
    font-size: 15px; font-weight: 600; cursor: pointer;
}
.qr-foto i[b-9jd2a0samt] { font-size: 20px; }
.qr-foto:hover[b-9jd2a0samt] { background: #F5F7FB; }

/* Dettagli facoltativi */
.qr-accordion-toggle[b-9jd2a0samt] { min-height: 56px; border-radius: 16px; font-size: 15px; font-weight: 600; color: #16223A; }
.qr-facoltativo[b-9jd2a0samt] { font-size: 13px; font-weight: 500; color: #5B6B82; }

.qr-salvataggio[b-9jd2a0samt] { display: flex; align-items: flex-start; gap: 8px; margin: 0 4px; font-size: 13px; color: #3D5A2A; }

/* CTA fissa in basso (sopra la barra di navigazione su telefono) */
.qr-cta[b-9jd2a0samt] {
    position: sticky; bottom: 0; z-index: 15;
    margin: 4px -16px 0; padding: 10px 16px 8px;
    background: #fff; border-top: 1px solid #E3E8F0; box-shadow: 0 -4px 14px rgba(22, 34, 58, .06);
    display: flex; flex-direction: column; gap: 6px; align-items: stretch;
}
.qr-btn-primary[b-9jd2a0samt] { min-height: 56px; border-radius: 14px; font-size: 17px; font-weight: 700; }
.qr-cta-manca[b-9jd2a0samt] { font-size: 13px; color: #4A5A72; text-align: center; }
.qr-btn-link[b-9jd2a0samt] {
    align-self: center; min-height: 36px; border: 0; background: transparent;
    font: inherit; font-size: 14px; font-weight: 600; color: #1D4ED8; cursor: pointer;
}
.qr-btn-link:hover[b-9jd2a0samt] { text-decoration: underline; }
@media (max-width: 719.98px) {
    .qr-cta[b-9jd2a0samt] { bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
}

/* ── Scelta del cantiere ── */
.qr-scelta[b-9jd2a0samt] {
    position: fixed; inset: 0; z-index: 1050; background: rgba(14, 26, 41, .45);
    display: flex; align-items: center; justify-content: center; padding: 24px;
}
.qr-scelta-pannello[b-9jd2a0samt] {
    width: 100%; max-width: 560px; max-height: calc(100vh - 48px); display: flex; flex-direction: column;
    background: #F4F6FA; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 48px rgba(14, 26, 41, .3);
}
.qr-scelta-testa[b-9jd2a0samt] { flex: none; background: #fff; border-bottom: 1px solid #E3E8F0; padding: 6px 16px 12px; display: flex; flex-direction: column; gap: 6px; }
.qr-scelta-riga[b-9jd2a0samt] { display: flex; align-items: center; gap: 4px; min-height: 48px; margin-left: -8px; }
.qr-scelta-chiudi[b-9jd2a0samt] {
    width: 48px; height: 48px; border: 0; border-radius: 12px; background: transparent; color: #16223A;
    display: flex; align-items: center; justify-content: center; font-size: 20px; cursor: pointer;
}
.qr-scelta-chiudi:hover[b-9jd2a0samt] { background: #EEF2F8; }
.qr-scelta-titolo[b-9jd2a0samt] { font-size: 18px; font-weight: 700; color: #16223A; }
.qr-scelta-eti[b-9jd2a0samt] { font-size: 13px; font-weight: 600; color: #4A5A72; }
.qr-scelta .qr-cantiere-input[b-9jd2a0samt] { height: 50px; border-radius: 12px; font-size: 16px; }

.qr-scelta-corpo[b-9jd2a0samt] { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 18px; }
.qr-scelta-gruppo[b-9jd2a0samt] { display: flex; flex-direction: column; gap: 8px; }
.qr-scelta-gruppo-titolo[b-9jd2a0samt] { margin: 0 4px; font-size: 13px; font-weight: 700; letter-spacing: .02em; color: #4A5A72; }
.qr-scelta-lista[b-9jd2a0samt] { background: #fff; border: 1px solid #E3E8F0; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.qr-scelta-voce[b-9jd2a0samt] {
    display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; width: 100%;
    border: 0; border-bottom: 1px solid #EDF1F6; background: #fff; text-align: left; font: inherit; cursor: pointer;
}
.qr-scelta-voce:last-child[b-9jd2a0samt] { border-bottom: 0; }
.qr-scelta-voce:hover[b-9jd2a0samt] { background: #F7F9FD; }
.qr-scelta-voce--scelta[b-9jd2a0samt] { box-shadow: inset 0 0 0 2px #1D3F8A; border-radius: 14px; }
.qr-scelta-voce-testi[b-9jd2a0samt] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.qr-scelta-voce-nome[b-9jd2a0samt] { font-size: 16px; font-weight: 600; line-height: 21px; color: #16223A; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qr-scelta-voce-meta[b-9jd2a0samt] { font-size: 13px; color: #4A5A72; }
.qr-scelta-voce-ok[b-9jd2a0samt] { color: #1D3F8A; font-size: 22px; }
.qr-scelta-vuoto[b-9jd2a0samt] { margin: 0; padding: 16px 14px; font-size: 14px; color: #4A5A72; }

@media (max-width: 719.98px) {
    .qr-scelta[b-9jd2a0samt] { padding: 0; align-items: stretch; }
    .qr-scelta-pannello[b-9jd2a0samt] { max-width: none; max-height: none; height: 100%; border-radius: 0; }
}
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/_Day.razor.rz.scp.css */
/* _Day — Rapporti del Giorno */

.day-report-page[b-6riupd4hkp] {
    padding: 0;
}

/* ── Loader ─────────────────────────────────────────────────────────── */

.day-loading[b-6riupd4hkp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: #5B7A9A;
}

.day-spinner[b-6riupd4hkp] {
    border: 3px solid #DCE3EE;
    border-top: 3px solid #2E3C66;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: day-spin-b-6riupd4hkp 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes day-spin-b-6riupd4hkp {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Card ───────────────────────────────────────────────────────────── */

.day-report-card[b-6riupd4hkp] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
    overflow: hidden;
    padding: 0;
}

/* ── Tabella ────────────────────────────────────────────────────────── */

.day-table[b-6riupd4hkp] {
    margin-bottom: 0;
    font-size: 0.875rem;
}

.day-table th[b-6riupd4hkp] {
    color: #5B7A9A;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid #e9eff7;
    padding: 0.75rem 1rem;
    background: #f8fafd;
    border-top: none;
    white-space: nowrap;
}

.day-table td[b-6riupd4hkp] {
    vertical-align: middle;
    color: #334155;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #f0f4f9;
}

.day-table tbody tr:last-child td[b-6riupd4hkp] {
    border-bottom: none;
}

.day-table tbody tr:hover td[b-6riupd4hkp] {
    background: #fafcff;
}

/* ── Personale / attrezzature inline ────────────────────────────────── */

.day-staff-list[b-6riupd4hkp] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.day-staff-row[b-6riupd4hkp] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    font-size: 0.8125rem;
}

.day-staff-name[b-6riupd4hkp] {
    color: #334155;
}

.day-staff-ore[b-6riupd4hkp] {
    color: #5B7A9A;
    font-size: 0.75rem;
    white-space: nowrap;
}

.day-staff-stra[b-6riupd4hkp] {
    color: #9e6b1e;
    font-size: 0.7rem;
}

/* ── Tag cantiere ───────────────────────────────────────────────────── */

.day-tag-badge[b-6riupd4hkp] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.1em 0.45em;
    border-radius: 20px;
    background: #eef4fb;
    color: #2c6a9e;
    white-space: nowrap;
}

/* ── Badge stato ────────────────────────────────────────────────────── */

.day-stato-badge[b-6riupd4hkp] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.25em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.day-stato-bozza[b-6riupd4hkp]    { background: #edf0f5; color: #5B7A9A; }
.day-stato-verifica[b-6riupd4hkp] { background: #e8f1fa; color: #2c6a9e; }
.day-stato-anomalie[b-6riupd4hkp] { background: #fdecea; color: #9e2d1e; }
.day-stato-validato[b-6riupd4hkp] { background: #edf6ea; color: #3a6b27; }

/* ── Azioni riga ────────────────────────────────────────────────────── */

.day-actions-cell[b-6riupd4hkp] {
    vertical-align: top;
    padding-top: 0.75rem !important;
    white-space: nowrap;
    width: 5.5rem;
    text-align: right;
}

.day-actions-btns[b-6riupd4hkp] {
    display: flex;
    gap: 0.25rem;
    justify-content: flex-end;
}

/* Icon button canonico 36×36 (token globali in app.css); il bordo trasparente serve allo stato -active */
.day-icon-btn[b-6riupd4hkp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.day-icon-btn:hover[b-6riupd4hkp],
.day-icon-btn-active[b-6riupd4hkp] {
    background: var(--icobtn-hover-bg, #EDF3FB);
    color: var(--icobtn-hover-ink, #001B48);
    border-color: #dceaf8;
}

/* ── Menu inline (sostituisce dropdown Bootstrap) ───────────────────── */

.day-inline-menu[b-6riupd4hkp] {
    display: flex;
    flex-direction: column;
    margin-top: 0.35rem;
    padding: 0.3rem;
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(30, 51, 76, 0.12);
    min-width: 170px;
    text-align: left;
}

.day-inline-item[b-6riupd4hkp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    font-size: 0.8125rem;
    color: #334155;
    background: none;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.1s;
}

.day-inline-item:hover[b-6riupd4hkp] {
    background: #f0f5fb;
    color: #1E334C;
}

.day-inline-item-danger[b-6riupd4hkp] { color: #9e2d1e; }
.day-inline-item-danger:hover[b-6riupd4hkp] { background: #fdecea; color: #7a1c10; }

.day-inline-divider[b-6riupd4hkp] {
    margin: 0.25rem 0.4rem;
    border-color: #e9eff7;
}

/* ── Empty state ────────────────────────────────────────────────────── */

.day-empty[b-6riupd4hkp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
    text-align: center;
    color: #5B7A9A;
}

.day-empty .bi[b-6riupd4hkp] {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    opacity: 0.4;
}

.day-empty-title[b-6riupd4hkp] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.day-empty-text[b-6riupd4hkp] {
    font-size: 0.875rem;
    color: #5B7A9A;
    max-width: 380px;
}

/* ── Responsive ─────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .day-report-card[b-6riupd4hkp] {
        border-radius: 8px;
    }

    .day-table th[b-6riupd4hkp],
    .day-table td[b-6riupd4hkp] {
        padding: 0.65rem 0.75rem;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/_EditRapportino.razor.rz.scp.css */
/* Striscia di provenienza mostrata solo quando la modifica è ospitata in un
   pannello laterale (la testata la mette il contenitore). */

.edr-meta[b-9ky1t8k1oc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    margin-bottom: 14px;
    background: #F5F8FC;
    border: 1px solid #E4EBF4;
    border-radius: 9px;
}

.edr-meta__txt[b-9ky1t8k1oc] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1 1 220px;
    font-size: .76rem;
    color: #5B7A9A;
}

.edr-meta__txt strong[b-9ky1t8k1oc] { color: #1E334C; font-weight: 600; }
/* _content/GestioneCommessa.Shared/Pages/Giornaliera/_QuadroOre.razor.rz.scp.css */
/* _QuadroOre */

.quadro-ore-page[b-pb1770fenu] {
    padding: 0;
}

.quadro-ore-page .page-header[b-pb1770fenu] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.quadro-ore-page .page-header h3[b-pb1770fenu] {
    font-size: 1.4rem;
    font-weight: 600;
    color: #1E334C;
    margin: 0;
}

/* Selettore mese — standard di spaziatura (2026-09-04): padding 24px, 24px fra i blocchi */
.quadro-ore-page .month-selector-card[b-pb1770fenu] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
    padding: var(--eco-pad, 24px);
    margin-bottom: var(--eco-block, 24px);
}

/* Card quadro ore */
.quadro-ore-page .quadro-card[b-pb1770fenu] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
    padding: var(--eco-pad, 24px);
    margin-bottom: var(--eco-block, 24px);
    overflow-x: auto;
}

.quadro-ore-page .quadro-card h5[b-pb1770fenu] {
    color: #1E334C;
    font-weight: 600;
    font-size: 0.9375rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #dceaf8;
}

/* Loader */
.quadro-ore-page .processing-container[b-pb1770fenu] {
    max-width: 480px;
    margin: 3rem auto;
    text-align: center;
    padding: 2.5rem;
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(30, 51, 76, 0.06);
}

.quadro-ore-page .processing-container h4[b-pb1770fenu] {
    color: #1E334C;
    font-weight: 600;
    margin-bottom: 0.4rem;
}

.quadro-ore-page .processing-container p[b-pb1770fenu] {
    color: #5B7A9A;
    font-size: 0.9rem;
    margin: 0;
}

.quadro-ore-page .loader[b-pb1770fenu] {
    border: 4px solid #DCE3EE;
    border-top: 4px solid #2E3C66;
    border-radius: 50%;
    width: 52px;
    height: 52px;
    animation: quadroore-spin-b-pb1770fenu 0.9s linear infinite;
    margin: 0 auto 1.25rem;
}

@keyframes quadroore-spin-b-pb1770fenu {
    0%  { transform: rotate(0deg); }
    100%{ transform: rotate(360deg); }
}

/* ── Navigazione mese ────────────────────────────────────────────────────── */

/* Toolbar del periodo: gap 12px, controlli alti 42px, 24px prima del blocco successivo */
.qo-month-nav[b-pb1770fenu] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: var(--eco-block, 24px);
}

.qo-month-label[b-pb1770fenu] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
    min-width: 10rem;
    text-align: center;
    text-transform: capitalize;
}

.qo-month-btn[b-pb1770fenu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--eco-ctl-h, 42px);
    height: var(--eco-ctl-h, 42px);
    border-radius: 6px;
    border: 1px solid #dceaf8;
    background: white;
    color: #5B7A9A;
    font-size: 0.875rem;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
    padding: 0;
}

.qo-month-btn:hover[b-pb1770fenu] { background: #edf3fb; color: #1E334C; }

.qo-period-select[b-pb1770fenu] {
    width: auto;
    min-width: 0;
    min-height: var(--eco-ctl-h, 42px);
    padding: 0.2rem 1.6rem 0.2rem 0.5rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #1E334C;
    background-color: #f4f8fc;
    border: 1px solid #d0deee;
    border-radius: 6px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.qo-period-select:focus[b-pb1770fenu] {
    border-color: #7FC3FF;
    box-shadow: 0 0 0 2px rgba(127,195,255,0.25);
    outline: none;
}

/* ── Section header inside card ──────────────────────────────────────────── */

.qo-section-header[b-pb1770fenu] {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #dceaf8;
}

/* ── Loading ─────────────────────────────────────────────────────────────── */

.qo-loading[b-pb1770fenu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: #5B7A9A;
}

.qo-spinner[b-pb1770fenu] {
    border: 3px solid #DCE3EE;
    border-top: 3px solid #2E3C66;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: qo-spin-b-pb1770fenu 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes qo-spin-b-pb1770fenu {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Orientation hint ────────────────────────────────────────────────────── */

.qo-orientation-hint[b-pb1770fenu] {
    display: none;
}

/* Messaggio orientamento (legacy) */
.orientation-message[b-pb1770fenu] {
    display: none;
}

@media (orientation: portrait) and (max-width: 768px) {
    .qo-orientation-hint[b-pb1770fenu],
    .orientation-message[b-pb1770fenu] {
        display: flex;
        position: fixed;
        inset: 0;
        background: #1E334C;
        color: white;
        align-items: center;
        justify-content: center;
        text-align: center;
        z-index: 9999;
        padding: 2rem;
        flex-direction: column;
        gap: 1rem;
    }
    .quadro-ore-content[b-pb1770fenu] { display: none; }
}

.orientation-message h3[b-pb1770fenu] {
    font-size: 3.5rem;
    margin: 0;
    animation: rotate-b-pb1770fenu 2s infinite linear;
}

@keyframes rotate-b-pb1770fenu {
    0%  { transform: rotate(0deg); }
    100%{ transform: rotate(360deg); }
}

.orientation-message p[b-pb1770fenu] {
    font-size: 1.1rem;
    max-width: 80%;
    margin: 0 auto;
    opacity: 0.85;
}

/* ── Tabella ─────────────────────────────────────────────────────────────── */

.qo-table[b-pb1770fenu] {
    font-size: 0.8125rem;
    margin-bottom: 0;
}

.qo-table th[b-pb1770fenu] {
    color: #5B7A9A;
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid #e9eff7;
    padding: 0.55rem 0.6rem;
    background: #f8fafd;
    border-top: none;
    white-space: nowrap;
}

.qo-col-persona[b-pb1770fenu] { min-width: 130px; }
.qo-col-totale[b-pb1770fenu]  { min-width: 60px; white-space: nowrap; }
.qo-col-day[b-pb1770fenu]     { min-width: 40px; }

.qo-th-festivo[b-pb1770fenu] {
    background: #f3f3f5;
    color: #aab4bf;
}

.qo-day-btn[b-pb1770fenu] {
    font-size: 0.75rem;
    color: #5B7A9A;
    line-height: 1.3;
    min-width: 28px;
}

.qo-day-btn:hover[b-pb1770fenu] { color: #1E334C; text-decoration: underline; }

.qo-day-name[b-pb1770fenu] {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.qo-table td[b-pb1770fenu] {
    padding: 0.55rem 0.6rem;
    border-bottom: 1px solid #f0f4f9;
    vertical-align: middle;
}

.qo-table tbody tr:last-child td[b-pb1770fenu] { border-bottom: none; }
.qo-table tbody tr:hover td[b-pb1770fenu] { background: #fafcff; }

.qo-cell[b-pb1770fenu] {
    cursor: default;
}

.qo-cell-active[b-pb1770fenu] {
    cursor: pointer;
    color: #1E334C;
    font-weight: 600;
}

.qo-cell-active:hover[b-pb1770fenu] {
    background: #eef4fb !important;
    text-decoration: underline;
}

.qo-cell-festivo[b-pb1770fenu] {
    background: #f9f9fb;
    color: #b0b8c4;
}

.qo-cell-totale[b-pb1770fenu] {
    color: #1E334C;
    border-left: 1px solid #e9eff7;
    border-right: 1px solid #e9eff7;
}

.qo-tfoot-row th[b-pb1770fenu],
.qo-tfoot-row td[b-pb1770fenu] {
    background: #f2f6fb;
    border-top: 2px solid #dceaf8;
    font-weight: 700;
    color: #1E334C;
    padding: 0.6rem;
}

/* ── Tabella riepilogo "Ore per commessa" (a video): standard di spaziatura ──
   È l'unica .qo-table preceduta dal paragrafo descrittivo nella sua card; la
   griglia "Presenze mensili" (dopo .qo-section-header) e le tabelle di stampa
   (fuori da .quadro-card) restano compatte come sopra. */
.quadro-card > p ~ .qo-table th[b-pb1770fenu] {
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
}

.quadro-card > p ~ .qo-table td[b-pb1770fenu] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    white-space: nowrap;   /* colonne ore: mai a capo */
}

.quadro-card > p ~ .qo-table .qo-tfoot-row th[b-pb1770fenu],
.quadro-card > p ~ .qo-table .qo-tfoot-row td[b-pb1770fenu] {
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
}

.quadro-card > p ~ .qo-table th:first-child[b-pb1770fenu],
.quadro-card > p ~ .qo-table td:first-child[b-pb1770fenu] { padding-left: var(--eco-cell-edge, 20px); }
.quadro-card > p ~ .qo-table th:last-child[b-pb1770fenu],
.quadro-card > p ~ .qo-table td:last-child[b-pb1770fenu]  { padding-right: var(--eco-cell-edge, 20px); }

/* ── Empty state ─────────────────────────────────────────────────────────── */

.qo-empty[b-pb1770fenu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: #5B7A9A;
    font-size: 0.875rem;
}

.qo-empty .bi[b-pb1770fenu] {
    font-size: 1.5rem;
    opacity: 0.4;
}

/* ── Export periodo ──────────────────────────────────────────────────────── */

.qo-export-periodo[b-pb1770fenu] {
    background: #f4f8fc;
    border: 1px solid #dceaf8;
    border-radius: 8px;
    padding: 0.6rem 1rem;
    display: flex;
    align-items: center;
}

/* Scrollbar */
.quadro-ore-page .quadro-card[b-pb1770fenu]::-webkit-scrollbar {
    height: 6px;
}

.quadro-ore-page .quadro-card[b-pb1770fenu]::-webkit-scrollbar-track {
    background: #F4F8FC;
    border-radius: 10px;
}

.quadro-ore-page .quadro-card[b-pb1770fenu]::-webkit-scrollbar-thumb {
    background: #B7D8FF;
    border-radius: 10px;
}

.quadro-ore-page .quadro-card[b-pb1770fenu]::-webkit-scrollbar-thumb:hover {
    background: #5B8DB8;
}

/* Responsive */
@media (max-width: 768px) {
    .quadro-ore-page .page-header h3[b-pb1770fenu] {
        font-size: 1.2rem;
    }
}

/* ── Pagina di stampa (/giornaliera/quadro-ore/stampa, layout vuoto) ──────── */

.qo-print[b-pb1770fenu] {
    background: #fff;
    color: #1E334C;
    padding: 1rem 1.25rem;
    max-width: 100%;
}

.qo-print-head[b-pb1770fenu] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 0.9rem;
    padding-bottom: 0.6rem;
    border-bottom: 2px solid #1E334C;
}

.qo-print-title[b-pb1770fenu] {
    font-size: 1.1rem;
    font-weight: 700;
}

.qo-print-sub[b-pb1770fenu] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.15rem;
}

.qo-print-actions[b-pb1770fenu] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.qo-print-table[b-pb1770fenu] {
    width: 100%;
    font-size: 0.75rem;
}

.qo-print-table th[b-pb1770fenu],
.qo-print-table td[b-pb1770fenu] {
    padding: 0.25rem 0.35rem;
    border: 1px solid #dce6f2;
    vertical-align: middle;
}

.qo-print-table thead th[b-pb1770fenu] {
    background: #f1f5fa;
    font-weight: 700;
    white-space: nowrap;
}

.qo-print-table-mensile th[b-pb1770fenu],
.qo-print-table-mensile td[b-pb1770fenu] {
    padding: 0.2rem 0.15rem;
    font-size: 0.68rem;
}

.qo-print-table-narrow[b-pb1770fenu] { max-width: 480px; }

.qo-print-den[b-pb1770fenu] {
    display: block;
    font-weight: 400;
    font-size: 0.62rem;
    color: #5B7A9A;
    white-space: normal;
    max-width: 90px;
}

.qo-print .qo-tfoot-row th[b-pb1770fenu],
.qo-print .qo-tfoot-row td[b-pb1770fenu] {
    background: #f1f5fa;
    font-weight: 700;
}

@media print {
    .qo-noprint[b-pb1770fenu] { display: none !important; }
    .qo-print[b-pb1770fenu] { padding: 0; }
    .qo-print-table[b-pb1770fenu] { page-break-inside: auto; }
    .qo-print-table tr[b-pb1770fenu] { page-break-inside: avoid; }
    .qo-print-table thead[b-pb1770fenu] { display: table-header-group; }
    .qo-print-table th[b-pb1770fenu],
    .qo-print-table td[b-pb1770fenu] { border-color: #b9c6d6; }
    .qo-print .qo-th-festivo[b-pb1770fenu],
    .qo-print .qo-cell-festivo[b-pb1770fenu] { background: #f1f1f1 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
/* _content/GestioneCommessa.Shared/Pages/Home.razor.rz.scp.css */
/* ══ LANDING ROOT — split-screen full viewport ══ */
.landing-root[b-lwpzd94bcw] {
    display: flex;
    min-height: 100vh;
    font-family: 'Inter', sans-serif;
}

/* ══ COLONNA SINISTRA ══ */
.landing-left[b-lwpzd94bcw] {
    flex: 0 0 55%;
    background: #1E334C;
    color: #fff;
    display: flex;
    align-items: center;
    padding: 3rem 4rem;
}

.landing-inner[b-lwpzd94bcw] {
    max-width: 480px;
}

.landing-logo[b-lwpzd94bcw] {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #fff;
    margin-bottom: 2.5rem;
}
.landing-logo span[b-lwpzd94bcw] {
    color: #5B8DB8;
}

.landing-headline[b-lwpzd94bcw] {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    margin-bottom: 1rem;
    letter-spacing: -0.01em;
}

.landing-sub[b-lwpzd94bcw] {
    font-size: 1rem;
    color: rgba(255,255,255,0.72);
    line-height: 1.6;
    margin-bottom: 2rem;
}

.landing-benefits[b-lwpzd94bcw] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.landing-benefits li[b-lwpzd94bcw] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    font-size: 0.9375rem;
    color: rgba(255,255,255,0.88);
    line-height: 1.45;
}

.benefit-check[b-lwpzd94bcw] {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    background: rgba(91,141,184,0.25);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7eb8e8;
    margin-top: 1px;
}

/* ══ COLONNA DESTRA ══ */
.landing-right[b-lwpzd94bcw] {
    flex: 1;
    background: #F4F8FC;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 2.5rem;
}

/* ══ AUTH BOX ══ */
.auth-box[b-lwpzd94bcw] {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 4px 28px rgba(30,51,76,0.09);
    padding: 2rem 2.25rem 2.25rem;
    width: 100%;
    max-width: 400px;
}

/* ── Tabs ── */
.auth-tabs[b-lwpzd94bcw] {
    display: flex;
    background: #f0f5fa;
    border-radius: 8px;
    padding: 3px;
    margin-bottom: 1.75rem;
}

.auth-tab[b-lwpzd94bcw] {
    flex: 1;
    border: none;
    background: transparent;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #6e8497;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.auth-tab.active[b-lwpzd94bcw] {
    background: #fff;
    color: #1E334C;
    font-weight: 600;
    box-shadow: 0 1px 4px rgba(30,51,76,0.10);
}

/* ── Form fields ── */
.auth-form .form-label[b-lwpzd94bcw] {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.auth-form .form-control[b-lwpzd94bcw] {
    font-size: 0.9rem;
    border-color: #d5e3f0;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
}
.auth-form .form-control:focus[b-lwpzd94bcw] {
    border-color: #1E334C;
    box-shadow: 0 0 0 3px rgba(30,51,76,0.08);
}

/* ── Auth title ── */
.auth-title[b-lwpzd94bcw] {
    font-size: 1.0625rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 1.5rem;
    text-align: center;
    letter-spacing: -0.01em;
}

/* ── Provider buttons (Google, Microsoft, Email) — all identical ── */
.btn-social[b-lwpzd94bcw],
.btn-auth-email[b-lwpzd94bcw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.625rem 1rem;
    font-size: 0.9375rem;
    font-weight: 500;
    border-radius: 8px;
    border: 1.5px solid #d5e3f0;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    line-height: 1.4;
    min-height: 44px;
    box-sizing: border-box;
}

.btn-social[b-lwpzd94bcw] {
    background: #fff;
    color: #1E334C;
}
.btn-social:hover[b-lwpzd94bcw] {
    background: #f4f8fc;
    border-color: #b0c4d8;
    color: #1E334C;
}

.btn-auth-email[b-lwpzd94bcw] {
    background: #1E334C;
    border-color: #1E334C;
    color: #fff;
    font-weight: 600;
}
.btn-auth-email:hover[b-lwpzd94bcw] {
    background: #16273b;
    border-color: #16273b;
    color: #fff;
}

/* ── Divider ── */
.auth-divider[b-lwpzd94bcw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1.25rem 0;
    color: #b0c4d8;
    font-size: 0.78rem;
}
.auth-divider[b-lwpzd94bcw]::before,
.auth-divider[b-lwpzd94bcw]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e4edf5;
}

/* ── Google button ── */
.btn-google[b-lwpzd94bcw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    background: #fff;
    border: 1.5px solid #d5e3f0;
    border-radius: 8px;
    padding: 0.55rem 1rem;
    font-size: 0.9rem;
    font-weight: 500;
    color: #3c4a5a;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
}
.btn-google:hover[b-lwpzd94bcw] {
    background: #f7fafd;
    border-color: #b0c4d8;
    color: #1E334C;
}

.google-icon[b-lwpzd94bcw],
.social-icon[b-lwpzd94bcw] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* ══ RESPONSIVE ══ */
@media (max-width: 768px) {
    .landing-root[b-lwpzd94bcw] {
        flex-direction: column;
    }
    .landing-left[b-lwpzd94bcw] {
        flex: none;
        padding: 2.5rem 1.75rem;
    }
    .landing-headline[b-lwpzd94bcw] {
        font-size: 1.5rem;
    }
    .landing-right[b-lwpzd94bcw] {
        padding: 2rem 1.25rem;
        align-items: flex-start;
    }
    .auth-box[b-lwpzd94bcw] {
        box-shadow: none;
        padding: 1.5rem 0;
    }
}
/* _content/GestioneCommessa.Shared/Pages/HomeCapocantiere.razor.rz.scp.css */
/* Gestione cantieri (capocommessa) — CSS scoped.
   Usa i token del design system operatore (operator.css): stessi colori, stessi
   raggi, stesse ombre. Qui vivono solo gli elementi che operator.css non ha:
   header con sottotitolo-barra, KPI tinte, chip di filtro, card cantiere. */

/* La pagina vive in MainLayout: su schermi larghi l'elenco resta una colonna
   leggibile al centro, senza la fascia vuota della bottom nav mobile. */
.oc-root[b-s2g3hq6kas] { max-width: 760px; margin: 0 auto; }

@media (min-width: 992px) {
    .oc-root[b-s2g3hq6kas] { padding-bottom: 32px; }
}

/* ── Header ──────────────────────────────────────────────────────────────────
   Il sottotitolo è la barra informativa del mockup: conteggio + parte
   "richiedono attenzione" evidenziata. A destra la scorciatoia alla
   dashboard personale. */

.oc-header[b-s2g3hq6kas] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.oc-header__txt[b-s2g3hq6kas] { min-width: 0; }

.oc-title[b-s2g3hq6kas] {
    font-size: 22px;
    letter-spacing: -.2px;
}

.oc-subtitle[b-s2g3hq6kas] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 13px;
    color: #60748F;
    margin: 4px 0 0;
}

.oc-subtitle__sep[b-s2g3hq6kas]  { color: #C6D2E2; }
.oc-subtitle__warn[b-s2g3hq6kas] { color: var(--op-danger);  font-weight: 600; }
.oc-subtitle__ok[b-s2g3hq6kas]   { color: var(--op-success); font-weight: 600; }

.oc-homebtn[b-s2g3hq6kas] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #EAF0F8;
    color: #001B48;
    font-size: 17px;
    text-decoration: none;
    transition: background .13s;
}

.oc-homebtn:active[b-s2g3hq6kas],
.oc-homebtn:hover[b-s2g3hq6kas] { background: #DCE6F3; }

/* ── KPI cliccabili ──────────────────────────────────────────────────────────
   Card tinte con icona in pastiglia (mockup): restano <button> che attivano
   il filtro corrispondente; secondo tap = torna a "Tutti". Solo interazione. */

.oc-kpi-row[b-s2g3hq6kas] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.oc-kpi[b-s2g3hq6kas] {
    appearance: none;
    border: 0;
    font: inherit;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    border-radius: 14px;
    padding: 14px 12px;
    min-width: 0;
}

.oc-kpi:active[b-s2g3hq6kas] { transform: scale(.985); }
.oc-kpi[aria-pressed="true"][b-s2g3hq6kas] { outline: 2px solid #001B48; outline-offset: 1px; }

.oc-kpi__ico[b-s2g3hq6kas] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-size: 19px;
}

.oc-kpi__txt[b-s2g3hq6kas] { display: flex; flex-direction: column; min-width: 0; }

.oc-kpi__lbl[b-s2g3hq6kas] {
    font-size: 12px;
    color: #60748F;
    line-height: 1.2;
}

.oc-kpi__val[b-s2g3hq6kas] {
    font-size: 24px;
    font-weight: 700;
    color: #001B48;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.oc-kpi--attivi[b-s2g3hq6kas]           { background: #EDF3FB; }
.oc-kpi--attivi .oc-kpi__ico[b-s2g3hq6kas] { background: #DCE6F3; color: #001B48; }

.oc-kpi--criticita[b-s2g3hq6kas]           { background: #FFF6E9; }
.oc-kpi--criticita .oc-kpi__ico[b-s2g3hq6kas] { background: #FDE8C8; color: #B45309; }
.oc-kpi--criticita .oc-kpi__val[b-s2g3hq6kas] { color: #B45309; }

/* ── Chip di filtro ──────────────────────────────────────────────────────── */

.oc-chips[b-s2g3hq6kas] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    margin-bottom: 14px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.oc-chips[b-s2g3hq6kas]::-webkit-scrollbar { display: none; }

.oc-chip[b-s2g3hq6kas] {
    flex: 0 0 auto;
    border: 1px solid #DDE5EF;
    background: #FFFFFF;
    color: #60748F;
    border-radius: 999px;
    font-size: 13px;
    line-height: 1;
    padding: 9px 14px;
    white-space: nowrap;
    transition: background .13s, border-color .13s, color .13s;
}

.oc-chip:hover[b-s2g3hq6kas] { border-color: #C6D2E2; color: #001B48; }

/* Selezionato: resta bianco (scelta utente), si distingue per bordo e testo navy */
.oc-chip--on[b-s2g3hq6kas] {
    background: #FFFFFF;
    border-color: #001B48;
    color: #001B48;
    font-weight: 600;
    box-shadow: inset 0 0 0 1px #001B48;
}

/* ── Elenco cantieri ─────────────────────────────────────────────────────── */

.oc-list[b-s2g3hq6kas] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.oc-card[b-s2g3hq6kas] {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #FFFFFF;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: 14px;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    transition: background .15s, border-color .15s;
    /* Bordo-stato a sinistra (mockup): verde attivo, arancio pausa, grigio chiuso */
    border-left: 4px solid transparent;
}

.oc-card--attivi[b-s2g3hq6kas] { border-left-color: var(--op-success); }
.oc-card--pausa[b-s2g3hq6kas]  { border-left-color: var(--op-warning); }
.oc-card--chiusi[b-s2g3hq6kas] { border-left-color: #C6D2E2; }

.oc-card:hover[b-s2g3hq6kas] { background: #F3F6FA; border-color: #C6D2E2; }
.oc-card:active[b-s2g3hq6kas] { background: #EAF0F8; }
.oc-card--attivi:hover[b-s2g3hq6kas], .oc-card--attivi:active[b-s2g3hq6kas] { border-left-color: var(--op-success); }
.oc-card--pausa:hover[b-s2g3hq6kas],  .oc-card--pausa:active[b-s2g3hq6kas]  { border-left-color: var(--op-warning); }

.oc-card__main[b-s2g3hq6kas] { flex: 1; min-width: 0; }

.oc-card__top[b-s2g3hq6kas] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

/* Badge di stato in alto a destra, maiuscolo (mockup) */
.oc-card__top .op-badge[b-s2g3hq6kas] {
    margin-left: auto;
    text-transform: uppercase;
    letter-spacing: .3px;
    font-size: 10px;
}

/* Codice commessa e codice cantiere: due identificativi distinti, entrambi
   necessari per riconoscere il cantiere a colpo d'occhio. */

.oc-cnum[b-s2g3hq6kas] {
    font-size: 12px;
    font-weight: 700;
    color: #001B48;
    background: #EAF0F8;
    border-radius: 6px;
    padding: 2px 7px;
    font-variant-numeric: tabular-nums;
}

.oc-tag[b-s2g3hq6kas] {
    font-size: 12px;
    font-weight: 600;
    color: #60748F;
    background: #F3F6FA;
    border: 1px solid #DDE5EF;
    border-radius: 6px;
    padding: 2px 7px;
}

.oc-card__name[b-s2g3hq6kas] {
    font-size: 15px;
    font-weight: 600;
    color: #001B48;
    margin: 0 0 4px;
    line-height: 1.3;
}

.oc-card__meta[b-s2g3hq6kas] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #60748F;
    margin: 0 0 2px;
}

.oc-card__meta > i[b-s2g3hq6kas] { font-size: 12px; color: #8FA0B5; flex-shrink: 0; }

.oc-card__chevron[b-s2g3hq6kas] {
    font-size: 13px;
    color: #8FA0B5;
    flex-shrink: 0;
}

/* ── Criticità ───────────────────────────────────────────────────────────── */

.oc-card__alerts[b-s2g3hq6kas] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.oc-alert[b-s2g3hq6kas] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 500;
    border-radius: 999px;
    padding: 4px 9px;
    line-height: 1.2;
}

.oc-alert > i[b-s2g3hq6kas] { font-size: 11px; }

/* Quattro toni (mockup): rosso = blocca, arancio = da fare,
   blu = scadenze informative, grigio = nessuna criticità. */
.oc-alert--danger[b-s2g3hq6kas]  { background: #FDEEEE; color: #8b2a25; }
.oc-alert--warn[b-s2g3hq6kas]    { background: #FFF7E3; color: #7a4c00; }
.oc-alert--info[b-s2g3hq6kas]    { background: #E8F1FD; color: #1d4f9c; }
.oc-alert--neutral[b-s2g3hq6kas] { background: #F3F6FA; color: #60748F; }

/* ── Stato vuoto e footer ────────────────────────────────────────────────── */

.oc-empty[b-s2g3hq6kas] {
    text-align: center;
    padding: 48px 16px;
    color: #8FA0B5;
}

.oc-empty > i[b-s2g3hq6kas] { font-size: 34px; opacity: .45; }

.oc-empty__text[b-s2g3hq6kas] {
    font-size: 14px;
    color: #60748F;
    margin: 12px 0 0;
}

.oc-empty__link[b-s2g3hq6kas] {
    display: inline-block;
    border: 0;
    background: none;
    color: #001B48;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    margin-top: 10px;
}

.oc-footer[b-s2g3hq6kas] {
    text-align: center;
    margin-top: 16px;
}
/* _content/GestioneCommessa.Shared/Pages/HomeLavoratore.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════════
   HOME LAVORATORE — layout mobile-first, colonna singola centrata
   ══════════════════════════════════════════════════════════════════════════ */

/* Token coerenti con Dashboard.razor.css */
.lav-root[b-24666tu3yl] {
    --d-ink:        #1B2444;
    --d-ink-muted:  #7C86A3;
    --d-ink-faint:  #ABB3C7;
    --d-surface:    #FFFFFF;
    --d-line:       #E8ECF4;
    --d-blue:       #3D7BF0;
    --d-green:      #2DAE6A;
    --d-green-50:   #E8F6EE;
    --d-amber:      #C99327;
    --d-amber-50:   #FBF0D9;
    --d-red:        #D85363;
    --d-red-50:     #FBEBED;
    --d-shadow:     0 8px 28px -6px rgba(10,18,48,.12), 0 1px 3px rgba(10,18,48,.05);
    --d-shadow-sm:  0 1px 3px rgba(10,18,48,.06);

    max-width: 480px;
    margin: 0 auto;
    padding: 1.75rem 1.1rem 3rem;
}

/* ── Skeleton loading ── */
.lav-skeleton[b-24666tu3yl] { display: flex; flex-direction: column; gap: 12px; }
.lav-skeleton__line[b-24666tu3yl],
.lav-skeleton__alert[b-24666tu3yl],
.lav-skeleton__card[b-24666tu3yl],
.lav-skeleton__btn[b-24666tu3yl] {
    background: var(--d-line);
    border-radius: 10px;
    animation: lav-pulse-b-24666tu3yl 1.5s ease-in-out infinite;
}
.lav-skeleton__line[b-24666tu3yl]         { height: 1.6rem; }
.lav-skeleton__line--70[b-24666tu3yl]     { width: 70%; }
.lav-skeleton__line--40[b-24666tu3yl]     { width: 40%; }
.lav-skeleton__alert[b-24666tu3yl]        { height: 58px; }
.lav-skeleton__card[b-24666tu3yl]         { height: 180px; border-radius: 20px; margin-top: 4px; }
.lav-skeleton__btn[b-24666tu3yl]          { height: 52px; border-radius: 14px; margin-top: 4px; }

@keyframes lav-pulse-b-24666tu3yl {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.35; }
}

/* ── Welcome header ── */
.lav-header[b-24666tu3yl] { margin-bottom: 1.5rem; }

.lav-h1[b-24666tu3yl] {
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--d-ink);
    margin: 0 0 0.2rem;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.lav-date[b-24666tu3yl] {
    font-size: 0.875rem;
    color: var(--d-ink-muted);
    margin: 0;
    text-transform: capitalize;
}

/* ── Alert scadenze ── */
.lav-alerts[b-24666tu3yl] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 1.25rem;
}

.lav-alert[b-24666tu3yl] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.8rem 1rem;
    border-radius: 12px;
    border: 1px solid transparent;
}

.lav-alert--crit[b-24666tu3yl]  { background: var(--d-red-50);   border-color: #f2bfc4; }
.lav-alert--warn[b-24666tu3yl]  { background: var(--d-amber-50); border-color: #f0dfa2; }
.lav-alert--ok[b-24666tu3yl]    { background: var(--d-green-50); border-color: #aeddbe; margin-bottom: 1.25rem; }

.lav-alert__ico[b-24666tu3yl] {
    font-size: 1.05rem;
    margin-top: 2px;
    flex-shrink: 0;
}
.lav-alert--crit .lav-alert__ico[b-24666tu3yl] { color: var(--d-red); }
.lav-alert--warn .lav-alert__ico[b-24666tu3yl] { color: var(--d-amber); }
.lav-alert--ok   .lav-alert__ico[b-24666tu3yl] { color: var(--d-green); }

.lav-alert__body[b-24666tu3yl]  { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lav-alert__title[b-24666tu3yl] { font-size: 0.875rem; font-weight: 600; color: var(--d-ink); line-height: 1.3; }
.lav-alert__meta[b-24666tu3yl]  { font-size: 0.78rem;  color: var(--d-ink-muted); line-height: 1.4; }

.lav-alerts__more[b-24666tu3yl] {
    font-size: 0.775rem;
    color: var(--d-ink-faint);
    text-align: center;
    margin: 2px 0 0;
}

/* ── Card ore ── */
.lav-ore-card[b-24666tu3yl] {
    background: var(--d-surface);
    border: 1px solid var(--d-line);
    border-radius: 22px;
    box-shadow: var(--d-shadow);
    padding: 2rem 1.5rem 1.75rem;
    text-align: center;
    margin-bottom: 1.5rem;
}

.lav-ore-card__lbl[b-24666tu3yl] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--d-ink-muted);
    margin: 0 0 0.85rem;
}

.lav-ore-card__big[b-24666tu3yl] {
    font-size: 4.5rem;
    font-weight: 700;
    letter-spacing: -0.045em;
    color: var(--d-ink);
    line-height: 1;
    font-variant-numeric: tabular-nums;
    margin-bottom: 0.6rem;
    /* Gradient sottile sul numero per profondità */
    background: linear-gradient(160deg, #1B2444 40%, #3D7BF0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.lav-ore-card__unit[b-24666tu3yl] {
    font-size: 2.25rem;
    font-weight: 600;
    letter-spacing: 0;
    margin-left: 2px;
    background: none;
    -webkit-text-fill-color: var(--d-ink-muted);
}

.lav-ore-card__detail[b-24666tu3yl] {
    font-size: 0.8125rem;
    color: var(--d-ink-muted);
    margin: 0;
}

.lav-sep[b-24666tu3yl] { margin: 0 0.3rem; color: var(--d-ink-faint); }

/* ── CTA pulsante ── */
.lav-cta[b-24666tu3yl] { text-align: center; }

/* CTA piena scura: colori dai token globali del button system */
.lav-btn-rapportino[b-24666tu3yl] {
    width: 100%;
    max-width: 340px;
    padding: 0.9rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 14px;
    letter-spacing: 0.01em;
    background: var(--btn-primary-bg, #001B48);
    border-color: var(--btn-primary-bg, #001B48);
    color: #fff;
    box-shadow: 0 4px 16px -2px rgba(30,51,76,.28);
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.lav-btn-rapportino:hover[b-24666tu3yl] {
    background: var(--btn-primary-bg-hover, #12315F);
    border-color: var(--btn-primary-bg-hover, #12315F);
    color: #fff;
    box-shadow: 0 6px 20px -2px rgba(30,51,76,.38);
}

.lav-btn-rapportino:active[b-24666tu3yl] {
    transform: scale(0.97);
    box-shadow: 0 2px 8px -2px rgba(30,51,76,.2);
}

/* ── Responsive: desktop torna padding normale ── */
@media (min-width: 600px) {
    .lav-root[b-24666tu3yl] {
        padding: 2.5rem 1.5rem 4rem;
    }
    .lav-h1[b-24666tu3yl] { font-size: 2.1rem; }
    .lav-ore-card__big[b-24666tu3yl] { font-size: 5rem; }
}
/* _content/GestioneCommessa.Shared/Pages/Impostazioni/TemplateWizard.razor.rz.scp.css */
/* TemplateWizard */

.tw-preview[b-b4yr771r9v] {
    max-height: 500px;
    overflow-y: auto;
    font-size: 11.5px;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
    background: #f8f9fa;
    color: #495057;
    border-radius: 0 0 8px 8px;
}
/* _content/GestioneCommessa.Shared/Pages/Login.razor.rz.scp.css */
/* ── Auth page — colonna singola centrata (schema Vercel) ──── */

.auth-page[b-h1edx4xyqf] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    padding: 48px 20px;
}

.auth-box[b-h1edx4xyqf] {
    width: 100%;
    max-width: 340px;
    display: flex;
    flex-direction: column;
}

/* ── Logo ──────────────────────────────────────────────────── */

.auth-logo[b-h1edx4xyqf] {
    display: flex;
    justify-content: center;
    margin-bottom: 28px;
    text-decoration: none;
}

.auth-logo-img[b-h1edx4xyqf] {
    height: 34px;
    width: auto;
}

/* ── Titolo ────────────────────────────────────────────────── */

.auth-title[b-h1edx4xyqf] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #10263A;
    text-align: center;
    letter-spacing: -0.3px;
    margin-bottom: 28px;
}

/* ── Error alert ───────────────────────────────────────────── */

.auth-error[b-h1edx4xyqf] {
    background: #fdf0ef;
    border: 1px solid #f5c6c2;
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 20px;
    font-size: 0.88rem;
    color: #6b1a15;
    line-height: 1.5;
}

/* ── Info alert (password temporanea inviata) ──────────────── */

.auth-info[b-h1edx4xyqf] {
    background: #eef8fd;
    border: 1px solid #b8e6f7;
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 20px;
    font-size: 0.88rem;
    color: #0d4a63;
    line-height: 1.5;
}

/* ── Bottoni metodo (Google / Microsoft / Email) ───────────── */

.auth-method-button[b-h1edx4xyqf] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid #d0d8e4;
    border-radius: 10px;
    background: #fff;
    color: #10263A;
    font-size: 0.93rem;
    font-weight: 500;
    text-decoration: none;
    margin-bottom: 10px;
    transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
    cursor: pointer;
}

.auth-method-button:hover[b-h1edx4xyqf] {
    border-color: #18BFEA;
    background: #f4fbfe;
    box-shadow: 0 2px 8px rgba(24, 191, 234, 0.10);
    color: #10263A;
    text-decoration: none;
}

/* ── Form fields ───────────────────────────────────────────── */

.auth-input-group[b-h1edx4xyqf] {
    margin-bottom: 16px;
}

.auth-label[b-h1edx4xyqf] {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: #4a6178;
    margin-bottom: 6px;
}

.auth-input[b-h1edx4xyqf] {
    width: 100%;
    padding: 10px 13px;
    border: 1.5px solid #d0d8e4;
    border-radius: 9px;
    font-size: 0.93rem;
    color: #10263A;
    background: #fff;
    transition: border-color 0.18s, box-shadow 0.18s;
    outline: none;
    box-sizing: border-box;
}

.auth-input:focus[b-h1edx4xyqf] {
    border-color: #18BFEA;
    box-shadow: 0 0 0 3px rgba(24, 191, 234, 0.12);
}

.auth-input[b-h1edx4xyqf]::placeholder {
    color: #b0becc;
}

/* ── Primary button ────────────────────────────────────────── */

.auth-primary-button[b-h1edx4xyqf] {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, #10263A 0%, #18BFEA 100%);
    color: #fff;
    font-size: 0.97rem;
    font-weight: 600;
    cursor: pointer;
    margin-top: 4px;
    transition: opacity 0.18s, box-shadow 0.18s;
    box-shadow: 0 2px 10px rgba(24, 191, 234, 0.22);
}

.auth-primary-button:hover[b-h1edx4xyqf] {
    opacity: 0.92;
    box-shadow: 0 4px 16px rgba(24, 191, 234, 0.32);
}

/* ── Link "altre opzioni" (torna alla scelta metodo) ───────── */

.auth-back-link[b-h1edx4xyqf] {
    display: block;
    width: 100%;
    margin-top: 16px;
    padding: 0;
    border: none;
    background: none;
    text-align: center;
    font-size: 0.86rem;
    color: #6b7f94;
    cursor: pointer;
    transition: color 0.18s;
}

.auth-back-link:hover[b-h1edx4xyqf] {
    color: #10263A;
}

/* ── Divider + footer ──────────────────────────────────────── */

.auth-divider[b-h1edx4xyqf] {
    height: 1px;
    background: #e2eaf2;
    margin: 24px 0 20px;
}

.auth-footer[b-h1edx4xyqf] {
    text-align: center;
    font-size: 0.88rem;
    color: #6b7f94;
}

.auth-link[b-h1edx4xyqf] {
    color: #18BFEA;
    font-weight: 600;
    text-decoration: none;
}

.auth-link:hover[b-h1edx4xyqf] {
    text-decoration: underline;
    color: #10263A;
}

/* ── Mobile ────────────────────────────────────────────────── */

@media (max-width: 600px) {
    .auth-page[b-h1edx4xyqf] {
        padding: 32px 20px;
        align-items: flex-start;
    }

    .auth-box[b-h1edx4xyqf] {
        margin-top: 10vh;
    }
}
/* _content/GestioneCommessa.Shared/Pages/OnboardingGuida.razor.rz.scp.css */
.og-page[b-8ozrrbm48e] {
    display: grid;
    grid-template-columns: 280px 1fr;
    min-height: 100vh;
    background: #F8FAFD;
}

/* ── Rail sinistra ── */
.og-rail[b-8ozrrbm48e] {
    background: #fff;
    border-right: 1px solid #e4ebf3;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
}
.og-logo[b-8ozrrbm48e] { height: 30px; width: auto; margin-bottom: 2rem; }

.og-steps[b-8ozrrbm48e] { list-style: none; margin: 0; padding: 0; flex: 1 1 auto; }
.og-step[b-8ozrrbm48e] {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .5rem 0;
    color: #8fa3b8;
    font-size: .9rem;
    font-weight: 500;
}
.og-step-dot[b-8ozrrbm48e] {
    width: 26px; height: 26px;
    flex: 0 0 auto;
    border-radius: 50%;
    border: 1.5px solid #d0d8e4;
    display: flex; align-items: center; justify-content: center;
    font-size: .8rem; font-weight: 700;
    background: #fff;
}
.og-step.is-active[b-8ozrrbm48e] { color: #1E334C; font-weight: 700; }
.og-step.is-active .og-step-dot[b-8ozrrbm48e] { border-color: #1565d8; color: #1565d8; box-shadow: 0 0 0 3px rgba(21,101,216,.12); }
.og-step.is-done[b-8ozrrbm48e] { color: #1E334C; }
.og-step.is-done .og-step-dot[b-8ozrrbm48e] { background: #198754; border-color: #198754; color: #fff; }

.og-exit[b-8ozrrbm48e] {
    border: none; background: none; color: #5B7A9A;
    font-size: .85rem; font-weight: 600; cursor: pointer;
    text-align: left; padding: .5rem 0; margin-top: 1rem;
}
.og-exit:hover[b-8ozrrbm48e] { color: #1E334C; }

/* ── Area principale ── */
.og-main[b-8ozrrbm48e] { padding: 2.5rem 2rem; display: flex; justify-content: center; }
.og-content[b-8ozrrbm48e] { width: 100%; max-width: 680px; }
/* Passo Ruoli: la matrice chi-fa-cosa ha bisogno di più spazio. */
.og-content--larga[b-8ozrrbm48e] { max-width: 900px; }

.og-head[b-8ozrrbm48e] { margin-bottom: 1.5rem; }
.og-step-num[b-8ozrrbm48e] { font-size: .78rem; font-weight: 700; color: #1565d8; text-transform: uppercase; letter-spacing: .5px; }
.og-title[b-8ozrrbm48e] { font-size: 1.6rem; font-weight: 800; color: #1E334C; margin: .25rem 0 .35rem; }
.og-sub[b-8ozrrbm48e] { font-size: .95rem; color: #5B7A9A; margin: 0; }

.og-body[b-8ozrrbm48e] { margin-bottom: 1.75rem; }
.og-subhead[b-8ozrrbm48e] { font-size: .95rem; font-weight: 700; color: #1E334C; margin: 1.25rem 0 .5rem; }

/* Form grid */
.og-grid[b-8ozrrbm48e] { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.og-field[b-8ozrrbm48e] { display: flex; flex-direction: column; }
.og-field.og-col-2[b-8ozrrbm48e] { grid-column: 1 / -1; }
.og-field label[b-8ozrrbm48e] { font-size: .8rem; font-weight: 600; color: #4a6178; margin-bottom: .25rem; }

/* Liste team/mezzi */
.og-listbar[b-8ozrrbm48e] { display: flex; align-items: center; justify-content: space-between; margin-bottom: .85rem; font-size: .9rem; font-weight: 600; color: #5B7A9A; }
.og-list[b-8ozrrbm48e] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.og-list li[b-8ozrrbm48e] {
    display: flex; align-items: center; gap: .5rem;
    background: #fff; border: 1px solid #dceaf8; border-radius: 10px;
    padding: .6rem .85rem; font-size: .9rem; color: #1E334C;
}
.og-empty[b-8ozrrbm48e] {
    background: #f7fafd; border: 1px dashed #d0d8e4; border-radius: 10px;
    padding: 1.25rem; text-align: center; color: #5B7A9A; font-size: .9rem; margin-bottom: 1rem;
}
.og-tag[b-8ozrrbm48e] {
    font-size: .7rem; font-weight: 600; padding: .1rem .5rem; border-radius: 20px;
    background: #eef2f7; color: #5B7A9A;
}
.og-tag--Invitato[b-8ozrrbm48e] { background: #fff4e5; color: #9a5b00; }
.og-tag--Attivo[b-8ozrrbm48e]   { background: #e7f5ec; color: #1e7a48; }
.og-tag--soon[b-8ozrrbm48e]     { background: #eef4fb; color: #1565d8; }

/* Invito */
.og-invite[b-8ozrrbm48e] { display: flex; gap: .5rem; margin-bottom: .75rem; flex-wrap: wrap; }
.og-invite .form-control[b-8ozrrbm48e] { flex: 1 1 220px; }
.og-invite .form-select[b-8ozrrbm48e] { flex: 0 0 180px; }

/* Chips spese */
.og-chips[b-8ozrrbm48e] { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.og-chip[b-8ozrrbm48e] {
    display: inline-flex; align-items: center; gap: .4rem;
    border: 1.5px solid #d0d8e4; border-radius: 20px;
    padding: .35rem .8rem; font-size: .85rem; font-weight: 600; color: #5B7A9A;
    cursor: pointer; user-select: none;
}
.og-chip input[b-8ozrrbm48e] { accent-color: #1565d8; }
.og-chip.is-sel[b-8ozrrbm48e] { border-color: #1565d8; background: #eef4fb; color: #1E334C; }

/* Calendario */
.og-cal[b-8ozrrbm48e] { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .5rem; }
.og-cal-count[b-8ozrrbm48e] { font-size: .95rem; font-weight: 600; color: #1E334C; }

/* Hint / presto */
.og-hint[b-8ozrrbm48e] { font-size: .82rem; color: #5B7A9A; margin-top: .6rem; }
.og-hint--ok[b-8ozrrbm48e] { color: #1e7a48; font-weight: 600; }
.og-presto[b-8ozrrbm48e] { font-size: .85rem; color: #5B7A9A; margin-top: 1rem; }

/* Azioni */
.og-actions[b-8ozrrbm48e] { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-top: 1px solid #e4ebf3; padding-top: 1.25rem; }
.og-actions-right[b-8ozrrbm48e] { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.og-skip[b-8ozrrbm48e] { color: #5B7A9A; text-decoration: none; font-size: .85rem; }
.og-skip:hover[b-8ozrrbm48e] { color: #1E334C; text-decoration: underline; }

/* Riepilogo */
.og-summary[b-8ozrrbm48e] { text-align: center; max-width: 560px; }
.og-summary-ico[b-8ozrrbm48e] { font-size: 3rem; color: #198754; margin-bottom: .5rem; }
.og-recap[b-8ozrrbm48e] { text-align: left; margin: 1.5rem 0; display: flex; flex-direction: column; gap: .6rem; }
.og-recap-row[b-8ozrrbm48e] { display: flex; align-items: center; gap: .75rem; }
.og-recap-name[b-8ozrrbm48e] { flex: 0 0 200px; font-size: .88rem; font-weight: 600; color: #1E334C; }
.og-recap-bar[b-8ozrrbm48e] { flex: 1 1 auto; height: 8px; background: #eef2f7; border-radius: 6px; overflow: hidden; }
.og-recap-bar > span[b-8ozrrbm48e] { display: block; height: 100%; background: linear-gradient(90deg, #1565d8, #18BFEA); border-radius: 6px; }
.og-recap-perc[b-8ozrrbm48e] { flex: 0 0 auto; font-size: .82rem; font-weight: 700; color: #5B7A9A; }
.og-summary .og-actions[b-8ozrrbm48e] { justify-content: center; border: none; }

@media (max-width: 860px) {
    .og-page[b-8ozrrbm48e] { grid-template-columns: 1fr; }
    .og-rail[b-8ozrrbm48e] { flex-direction: row; align-items: center; gap: 1rem; padding: 1rem; overflow-x: auto; }
    .og-logo[b-8ozrrbm48e] { margin: 0; }
    .og-steps[b-8ozrrbm48e] { display: flex; gap: .5rem; }
    .og-step-label[b-8ozrrbm48e] { display: none; }
    .og-exit[b-8ozrrbm48e] { margin: 0; white-space: nowrap; }
    .og-grid[b-8ozrrbm48e] { grid-template-columns: 1fr; }
    .og-main[b-8ozrrbm48e] { padding: 1.5rem 1rem 0; }

    /* Azioni sticky in basso, pulsanti grandi (spec mobile) */
    .og-actions[b-8ozrrbm48e] {
        position: sticky;
        bottom: 0;
        background: #F8FAFD;
        padding: .85rem 0 1rem;
        margin: 0 -.25rem;
        z-index: 5;
    }
    .og-actions .btn[b-8ozrrbm48e] { padding: .6rem 1rem; }
}
/* _content/GestioneCommessa.Shared/Pages/Operatore/MieiRapportini.razor.rz.scp.css */
/* Riga rapportino con azione di eliminazione (capocantiere) */
.op-report-row[b-u6olxw35qs] {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 8px;
}

.op-report-row .op-report-card[b-u6olxw35qs] {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0;
}

.op-report-del[b-u6olxw35qs] {
    flex: 0 0 auto;
    width: 46px;
    border: 1px solid var(--op-border);
    border-radius: 14px;
    background: #fff;
    color: #c0392b;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.op-report-del:hover[b-u6olxw35qs],
.op-report-del:focus-visible[b-u6olxw35qs] {
    background: #fdecea;
    border-color: #e7b4ae;
}
/* _content/GestioneCommessa.Shared/Pages/ProfiloAzienda.razor.rz.scp.css */
/* Profilo Azienda — CSS scoped.
   Le classi wn-* replicano ESATTAMENTE quelle della pagina Commessa
   (Details.razor.css): lì sono CSS scoped e non valicano il confine della
   pagina, quindi vanno ripetute qui. Stessi valori, nessun nuovo stile.
   Le classi pa-* sono i soli elementi propri di questa pagina. */

/* ── Intestazione ────────────────────────────────────────────────────────── */

.pa-head[b-e1ov0nxblj] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.pa-sub[b-e1ov0nxblj] {
    color: #6c757d;
    font-size: .875rem;
    margin: .25rem 0 0;
}

/* ── Barra TAB (replica della pagina Commessa) ───────────────────────────── */

.wn-shell[b-e1ov0nxblj] {
    --wn-primary:        #001B48;
    --wn-primary-soft:   #EAF0F8;
    --wn-hover:          #F7F9FC;
    --wn-border:         #DDE5EF;
    --wn-text:           #001B48;
    --wn-text-secondary: #60748F;
    --wn-text-muted:     #8FA0B5;
    --wn-surface:        #FFFFFF;

    position: relative;
    background: var(--wn-surface);
    border: 1px solid var(--wn-border);
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

/* Sticky: le TAB restano visibili durante lo scroll.
   overflow:hidden sopra impedirebbe lo sticky del figlio, quindi è la shell
   stessa a essere sticky. */
.pa-sticky[b-e1ov0nxblj] {
    position: sticky;
    top: 0;
    z-index: 20;
}

.wn-primary-wrap[b-e1ov0nxblj] {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid var(--wn-border);
}

.wn-primary[b-e1ov0nxblj] {
    display: flex;
    align-items: stretch;
    flex: 1;
    min-height: 58px;
    overflow-x: auto;
    scrollbar-width: none;
}

.wn-primary[b-e1ov0nxblj]::-webkit-scrollbar { display: none; }

.wn-tab[b-e1ov0nxblj] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 20px;
    min-height: 58px;
    font-size: 14px;
    font-weight: 500;
    color: var(--wn-text-secondary);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color .13s, border-color .13s, background .13s;
    outline-offset: -3px;
}

.wn-tab i[b-e1ov0nxblj] { font-size: 16px; }

.wn-tab:hover[b-e1ov0nxblj] {
    background: var(--wn-hover);
    color: var(--wn-primary);
}

.wn-tab:focus-visible[b-e1ov0nxblj] { outline: 2px solid var(--wn-primary); }

.wn-tab.active[b-e1ov0nxblj] {
    color: var(--wn-primary);
    font-weight: 600;
    border-bottom-color: var(--wn-primary);
}

/* ── KPI documenti ───────────────────────────────────────────────────────── */

.pa-kpi[b-e1ov0nxblj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: .85rem;
    margin-bottom: 1.25rem;
}

.pa-kpi-card[b-e1ov0nxblj] {
    display: flex;
    align-items: center;
    gap: .85rem;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: .9rem 1rem;
}

.pa-kpi-ico[b-e1ov0nxblj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 10px;
    font-size: 1.1rem;
    flex-shrink: 0;
}

.pa-kpi-ok[b-e1ov0nxblj]   { background: #e6f4ea; color: #1a7f37; }
.pa-kpi-warn[b-e1ov0nxblj] { background: #fff4e5; color: #b45309; }
.pa-kpi-err[b-e1ov0nxblj]  { background: #fdecea; color: #b42318; }
.pa-kpi-info[b-e1ov0nxblj] { background: #eaf0f8; color: #001B48; }

.pa-kpi-label[b-e1ov0nxblj] {
    font-size: .78rem;
    color: #60748F;
    line-height: 1.3;
}

.pa-kpi-valore[b-e1ov0nxblj] {
    font-size: 1.35rem;
    font-weight: 700;
    color: #001B48;
    line-height: 1.2;
}

/* ── Griglia a due colonne (TAB Dati azienda) ────────────────────────────── */

.pa-griglia[b-e1ov0nxblj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    gap: 1.25rem;
    align-items: start;
}

/* Coppia etichetta/valore in sola lettura */

.pa-riga[b-e1ov0nxblj] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .6rem 0;
    border-bottom: 1px solid #f1f3f5;
}

.pa-riga:last-child[b-e1ov0nxblj] { border-bottom: 0; }

.pa-riga-label[b-e1ov0nxblj] {
    color: #60748F;
    font-size: .82rem;
    flex-shrink: 0;
}

.pa-riga-valore[b-e1ov0nxblj] {
    color: #001B48;
    font-size: .875rem;
    font-weight: 500;
    text-align: right;
    overflow-wrap: anywhere;
}

/* ── Riepilogo informazioni ──────────────────────────────────────────────── */

.pa-riepilogo[b-e1ov0nxblj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
    background: #EAF0F8;
    border-radius: 12px;
    padding: 1.1rem;
}

.pa-riepilogo-voce[b-e1ov0nxblj] {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.pa-riepilogo-voce > i[b-e1ov0nxblj] {
    font-size: 1.35rem;
    color: #001B48;
    opacity: .75;
}

.pa-riepilogo-num[b-e1ov0nxblj] {
    font-size: 1.2rem;
    font-weight: 700;
    color: #001B48;
    line-height: 1.2;
}

.pa-riepilogo-label[b-e1ov0nxblj] {
    font-size: .76rem;
    color: #60748F;
    line-height: 1.3;
}

/* ── Blocco "prossimamente" ──────────────────────────────────────────────── */

.pa-futuro[b-e1ov0nxblj] {
    display: flex;
    align-items: center;
    gap: .9rem;
    border: 1px dashed #DDE5EF;
    border-radius: 12px;
    padding: 1.1rem 1.25rem;
    color: #8FA0B5;
    background: #fafbfd;
    margin-bottom: 1.25rem;
}

.pa-futuro > i[b-e1ov0nxblj] { font-size: 1.5rem; }
.pa-futuro-titolo[b-e1ov0nxblj] { font-weight: 600; color: #60748F; font-size: .9rem; }
.pa-futuro-sub[b-e1ov0nxblj] { font-size: .8rem; }

/* ── Tablet e mobile: le TAB scorrono in orizzontale ─────────────────────── */

@media (max-width: 992px) {
    .pa-griglia[b-e1ov0nxblj] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
    .wn-tab[b-e1ov0nxblj] {
        padding: 0 14px;
        font-size: 13px;
    }

    .pa-head[b-e1ov0nxblj] { gap: .75rem; }

    .pa-riga[b-e1ov0nxblj] {
        flex-direction: column;
        gap: .15rem;
    }

    .pa-riga-valore[b-e1ov0nxblj] { text-align: left; }

    .pa-kpi[b-e1ov0nxblj] { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
}

/* ── Documenti RENTRI (tab Enti e iscrizioni) ────────────────────────────── */
/* InputFile è un componente figlio: senza ::deep lo stile scoped non lo raggiunge. */
.pa-rentri[b-e1ov0nxblj]  .pa-hidden-file, .pa-lei[b-e1ov0nxblj]  .pa-hidden-file { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.pa-rentri label.eco-act[b-e1ov0nxblj], .pa-lei label.eco-act[b-e1ov0nxblj] { margin: 0; cursor: pointer; }
/* Label che apre un input spento (fuori da Modifica): stesso aspetto di .eco-act:disabled. */
.pa-rentri label.eco-act.pa-act-spento[b-e1ov0nxblj], .pa-lei label.eco-act.pa-act-spento[b-e1ov0nxblj] { color: #B9C9DA; cursor: not-allowed; background: transparent; }

/* ── Previdenza e assicurazione: un blocco per ente (INPS · INAIL con le PAT · CAPE) ── */
.pa-ente[b-e1ov0nxblj] {
    border: 1px solid #e3e9f0;
    border-left: 4px solid var(--pa-ente-colore, #001B48);
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 20px;
    background: #fff;
}
.pa-ente:last-child[b-e1ov0nxblj] { margin-bottom: 0; }
.pa-ente--inps[b-e1ov0nxblj]  { --pa-ente-colore: #1f5fa8; }
.pa-ente--inail[b-e1ov0nxblj] { --pa-ente-colore: #0f7b6c; }
.pa-ente--cape[b-e1ov0nxblj]  { --pa-ente-colore: #b45309; }
.pa-ente-head[b-e1ov0nxblj] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eef1f4;
}
.pa-ente-sigla[b-e1ov0nxblj] {
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: .04em;
    color: var(--pa-ente-colore, #001B48);
}
.pa-ente-nome[b-e1ov0nxblj] { color: #60748F; font-size: .8rem; margin-left: 8px; }
.pa-ente-sotto[b-e1ov0nxblj] {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--pa-ente-colore, #001B48);
}

/* ── TAB Abbonamento (disegno di Vanessa, 2026-10-05) ────────────────────── */
/* Le sezioni sono AbbonamentoSezione, i riquadri AbbonamentoDato: qui solo ciò che
   sta nel corpo delle sezioni della pagina (il corpo è markup di questa pagina). */

.abb-indice[b-e1ov0nxblj] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 24px;
}
.abb-indice-eti[b-e1ov0nxblj] { font-size: 13px; color: #60748F; margin-right: 4px; }
.abb-pill[b-e1ov0nxblj] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #DDE5EF;
    color: #001B48;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}
.abb-pill:hover[b-e1ov0nxblj] { background: #F7F9FC; }
.abb-pill:focus-visible[b-e1ov0nxblj] { outline: 2px solid #001B48; outline-offset: 1px; }
.abb-pill-badge[b-e1ov0nxblj] {
    font-size: 12px;
    font-weight: 600;
    color: #1F47B8;
    background: #E8EEFC;
    border-radius: 999px;
    padding: 1px 8px;
}

/* Pulsanti delle sezioni: alti come i comandi del disegno (44px) */
.abb-btn[b-e1ov0nxblj] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-weight: 600;
    font-size: 14px;
}

/* Stato + prova gratuita */
.abb-stato[b-e1ov0nxblj] {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    background: #F1F5FE;
    border: 1px solid #D6E0FA;
    border-radius: 10px;
    padding: 18px 20px;
}
.abb-stato-blocco[b-e1ov0nxblj] { display: flex; flex-direction: column; gap: 4px; }
.abb-eti-maiuscola[b-e1ov0nxblj] {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #60748F;
}
.abb-stato-badge[b-e1ov0nxblj] { font-size: 13px; padding: 4px 12px; }
.abb-stato-sep[b-e1ov0nxblj] { width: 1px; align-self: stretch; background: #D6E0FA; }
.abb-stato-data[b-e1ov0nxblj] { font-size: 20px; font-weight: 600; color: #001B48; }
.abb-stato-mancano[b-e1ov0nxblj] { font-size: 14px; font-weight: 500; color: #1F47B8; }

/* Tre riquadri affiancati (uno sotto l'altro su telefono) */
.abb-dati[b-e1ov0nxblj] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.abb-link[b-e1ov0nxblj] { font-size: 13px; font-weight: 500; text-decoration: none; }

/* Riga del rinnovo: icona · testo · pulsante a destra */
.abb-riga[b-e1ov0nxblj] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: center;
    border: 1px solid #DDE5EF;
    border-radius: 10px;
    padding: 16px 18px;
}
.abb-riga--avviso[b-e1ov0nxblj] { border-color: #F2C77B; background: #FFFBF2; }
.abb-riga-ico[b-e1ov0nxblj] { font-size: 20px; flex: none; align-self: flex-start; }
.abb-riga-testo[b-e1ov0nxblj] { flex: 1 1 380px; min-width: 0; }
.abb-riga-sub[b-e1ov0nxblj] { font-size: 14px; color: #60748F; }

.abb-nota-sicura[b-e1ov0nxblj] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 0;
    font-size: 13px;
    color: #60748F;
}

/* Contratto d'uso: etichetta · valore · azione a destra */
.abb-kv[b-e1ov0nxblj] {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) auto;
    gap: 8px 24px;
    align-items: baseline;
    padding: 16px 0;
    border-bottom: 1px solid #EEF1F6;
}
.abb-kv:last-child[b-e1ov0nxblj] { border-bottom: 0; }
.abb-kv-eti[b-e1ov0nxblj] { font-weight: 600; color: #001B48; }
.abb-kv-azione[b-e1ov0nxblj] { font-size: 14px; font-weight: 500; }
.abb-kv-firma[b-e1ov0nxblj] { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.abb-chip-attesa[b-e1ov0nxblj] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #6B4400;
    background: #FFF1C9;
    border-radius: 999px;
    padding: 2px 10px;
}

@media (max-width: 820px) {
    .abb-dati[b-e1ov0nxblj] { grid-template-columns: minmax(0, 1fr); }
    .abb-kv[b-e1ov0nxblj] { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .abb-stato-sep[b-e1ov0nxblj] { display: none; }
}

/* ── «Si modifica dove si legge» (disegno di Vanessa, 2026-10-05) ────────────
   Le sezioni sono SezioneProfilo, i campi CampoProfilo: qui la griglia e ciò che
   sta nel corpo delle sezioni (markup di questa pagina). */

.pa-campi[b-e1ov0nxblj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 18px 24px;
}

.pa-fieldset[b-e1ov0nxblj] { border: 0; padding: 0; margin: 0; min-width: 0; }

/* Dati identificativi + contatori */
.pa-identita[b-e1ov0nxblj] { display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: center; justify-content: space-between; }
.pa-identita .pa-campi[b-e1ov0nxblj] { flex: 1 1 520px; }
.pa-contatori[b-e1ov0nxblj] { display: flex; gap: 12px; }
.pa-contatore[b-e1ov0nxblj] {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 16px; border-radius: 10px; background: #EAF0F8;
    color: #001B48; text-decoration: none; min-height: 44px;
}
.pa-contatore:hover[b-e1ov0nxblj] { background: #DDE7F5; color: #001B48; }
.pa-contatore-num[b-e1ov0nxblj] { font-size: 22px; font-weight: 700; line-height: 1; }
.pa-contatore-eti[b-e1ov0nxblj] { font-size: 12px; line-height: 1.2; color: #60748F; }

/* Pulsanti secondari delle sezioni (stesso aspetto di «Modifica») */
.pa-btn-sec[b-e1ov0nxblj] {
    display: inline-flex; align-items: center; gap: 6px;
    font: inherit; font-size: 14px; font-weight: 600; color: #1F47B8;
    padding: 9px 14px; border-radius: 8px; background: #fff; border: 1px solid #C8D5F5;
    cursor: pointer; white-space: nowrap; text-decoration: none;
}
.pa-btn-sec:hover:not(:disabled)[b-e1ov0nxblj] { background: #EEF3FF; }
.pa-btn-sec:disabled[b-e1ov0nxblj] { color: #9AA8BC; border-color: #E3E7EF; cursor: not-allowed; }
.pa-btn-sec--danger[b-e1ov0nxblj] { color: #B42318; border-color: #F0C8C4; }
.pa-btn-sec--danger:hover:not(:disabled)[b-e1ov0nxblj] { background: #FBECEB; }

.pa-badge-modifica[b-e1ov0nxblj] { font-size: 13px; font-weight: 600; color: #1F47B8; background: #E8EEFC; border-radius: 999px; padding: 5px 12px; }

.pa-aggiungi[b-e1ov0nxblj] {
    font: inherit; font-size: 14px; font-weight: 500; color: #1F47B8;
    background: none; border: 0; padding: 0; cursor: pointer;
}
.pa-aggiungi:hover:not(:disabled)[b-e1ov0nxblj] { text-decoration: underline; }
.pa-aggiungi:disabled[b-e1ov0nxblj] { color: #9AA8BC; cursor: not-allowed; }
.pa-finto-link[b-e1ov0nxblj] { color: #1F47B8; font-weight: 500; }

.pa-pill[b-e1ov0nxblj] { display: inline-block; font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.pa-pill--ok[b-e1ov0nxblj]   { background: #E3F1E8; color: #1D5E41; }
.pa-pill--warn[b-e1ov0nxblj] { background: #FDF1D6; color: #7A5200; }
.pa-pill--mute[b-e1ov0nxblj] { background: #EEF0F4; color: #4A5366; }
.pa-pill--pri[b-e1ov0nxblj]  { background: #1F47B8; color: #fff; }

.pa-nota[b-e1ov0nxblj] { font-size: 13px; color: #60748F; }
.pa-intro[b-e1ov0nxblj] { font-size: 14px; line-height: 1.55; color: #3F4A5E; }
.pa-avviso[b-e1ov0nxblj] { display: flex; gap: 6px; align-items: flex-start; font-size: 12px; color: #7A5200; margin-top: 4px; }

/* Logo */
.pa-logo[b-e1ov0nxblj] { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.pa-logo-anteprima[b-e1ov0nxblj] {
    width: 220px; height: 90px; display: flex; align-items: center; justify-content: center;
    border: 1px dashed #C8D2E0; border-radius: 10px; background: #FAFBFD; padding: 8px;
}
.pa-logo-anteprima img[b-e1ov0nxblj] { max-width: 100%; max-height: 100%; object-fit: contain; }
.pa-logo[b-e1ov0nxblj]  .pa-hidden-file { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.pa-logo label.pa-btn-sec[b-e1ov0nxblj] { cursor: pointer; }

/* Benchmark */
.pa-benchmark[b-e1ov0nxblj] { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; justify-content: space-between; }
.pa-benchmark > div[b-e1ov0nxblj] { flex: 1 1 520px; font-size: 14px; color: #3F4A5E; }

/* Elenco in lettura (CCNL) e righe in modifica */
.pa-elenco-riga[b-e1ov0nxblj] {
    display: flex; gap: 12px; align-items: flex-start; justify-content: space-between;
    padding: 14px 0; border-bottom: 1px solid #EEF0F4;
}
.pa-elenco-riga:first-child[b-e1ov0nxblj] { padding-top: 0; }
.pa-elenco-testo[b-e1ov0nxblj] { font-size: 15px; line-height: 1.5; color: #001B48; }
.pa-elenco-azioni[b-e1ov0nxblj] { display: flex; flex-shrink: 0; }
.pa-riga-modifica[b-e1ov0nxblj] { display: flex; gap: 8px; align-items: center; }

/* Enti e iscrizioni: completezza e indice */
.pa-completezza[b-e1ov0nxblj] {
    background: #fff; border: 1px solid #DDE5EF; border-radius: 12px;
    padding: 20px 24px; display: flex; flex-direction: column; gap: 14px; margin-bottom: 20px;
}
.pa-completezza-testa[b-e1ov0nxblj] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.pa-completezza-titolo[b-e1ov0nxblj] { font-size: 15px; font-weight: 600; color: #001B48; }
.pa-completezza-sub[b-e1ov0nxblj] { font-size: 13px; color: #60748F; margin-top: 2px; }
.pa-barra[b-e1ov0nxblj] { width: 220px; max-width: 100%; height: 8px; background: #EEF0F4; border-radius: 999px; overflow: hidden; }
.pa-barra-piena[b-e1ov0nxblj] { height: 100%; background: #1F47B8; }
.pa-chip-riga[b-e1ov0nxblj] { display: flex; flex-wrap: wrap; gap: 8px; }
.pa-chip[b-e1ov0nxblj] {
    display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; min-height: 36px;
    border: 1px solid #DDE5EF; border-radius: 999px; background: #fff;
    font: inherit; font-size: 13px; color: #001B48; cursor: pointer;
}
.pa-chip:hover[b-e1ov0nxblj] { border-color: #1F47B8; }
.pa-chip-punto[b-e1ov0nxblj] { width: 8px; height: 8px; border-radius: 50%; background: #C3C9D5; }
.pa-chip-punto--ok[b-e1ov0nxblj]       { background: #23704F; }
.pa-chip-punto--parziale[b-e1ov0nxblj] { background: #C98A12; }

.pa-stato-ente[b-e1ov0nxblj] { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; color: #60748F; }
.pa-stato-ente--ok[b-e1ov0nxblj]       { color: #23704F; }
.pa-stato-ente--parziale[b-e1ov0nxblj] { color: #8A5D00; }
.pa-ente[b-e1ov0nxblj] { scroll-margin-top: 90px; }

/* Sotto-blocchi (PAT, attestati, immobili, utenze) */
.pa-sotto[b-e1ov0nxblj] { margin-top: 18px; padding-top: 16px; border-top: 1px solid #EEF0F4; }
.pa-sotto-testa[b-e1ov0nxblj] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.pa-sotto-titolo[b-e1ov0nxblj] { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #3F4A5E; }

/* Scorciatoia AI (Albo) */
.pa-ai-box[b-e1ov0nxblj] {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
    background: #F2F7F4; border: 1px solid #D3E6DB; border-radius: 10px; padding: 14px 18px;
}
.pa-ai-testi[b-e1ov0nxblj] { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: #1B2440; }
.pa-ai-testi .small[b-e1ov0nxblj] { color: #3F4A5E; }
.pa-ai-ico[b-e1ov0nxblj] { color: #23704F; font-size: 20px; }
.pa-btn-ai[b-e1ov0nxblj] {
    font: inherit; font-size: 14px; font-weight: 600; color: #23704F;
    background: #fff; border: 1px solid #23704F; border-radius: 8px; padding: 9px 16px; cursor: pointer;
}
.pa-btn-ai:hover:not(:disabled)[b-e1ov0nxblj] { background: #E8F3EC; }
.pa-btn-ai:disabled[b-e1ov0nxblj] { color: #9AA8BC; border-color: #E3E7EF; cursor: not-allowed; }

/* Tabelle in lettura (Asset, Documenti, Finanza, festivi) */
.pa-tabella-box[b-e1ov0nxblj] { border: 1px solid #DDE5EF; border-radius: 10px; overflow: hidden; }
.pa-tabella[b-e1ov0nxblj] { font-size: 14px; }
.pa-tabella th[b-e1ov0nxblj] {
    text-align: left; padding: 12px 16px; font-size: 12px; letter-spacing: .04em; text-transform: uppercase;
    color: #60748F; font-weight: 600; background: #F8F9FC; white-space: nowrap; border-bottom: 0;
}
.pa-tabella td[b-e1ov0nxblj] { padding: 12px 16px; border-top: 1px solid #E3E7EF; vertical-align: middle; }
.pa-tabella-vuota[b-e1ov0nxblj] { padding: 16px 24px; color: #60748F; }

.pa-storico[b-e1ov0nxblj] {
    display: flex; align-items: center; gap: 6px; width: 100%;
    font: inherit; font-size: 13px; color: #60748F; text-align: left;
    padding: 10px 16px; border: 0; border-top: 1px solid #E3E7EF; background: #FBFCFE; cursor: pointer;
}
.pa-storico:hover[b-e1ov0nxblj] { color: #001B48; }
.pa-storico-riga td[b-e1ov0nxblj] { background: #FBFCFE; color: #60748F; }

/* Interruttore Attiva/Disattivata (festivi) */
.pa-switch[b-e1ov0nxblj] {
    display: inline-flex; align-items: center; gap: 8px;
    font: inherit; font-size: 13px; color: #001B48; background: transparent; border: 0; cursor: pointer; padding: 6px 0;
}
.pa-switch-traccia[b-e1ov0nxblj] { width: 34px; height: 20px; border-radius: 999px; background: #C3C9D5; position: relative; transition: background .15s; }
.pa-switch-traccia[b-e1ov0nxblj]::after {
    content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff;
    transition: left .15s;
}
.pa-switch--on .pa-switch-traccia[b-e1ov0nxblj] { background: #23704F; }
.pa-switch--on .pa-switch-traccia[b-e1ov0nxblj]::after { left: 16px; }

@media (max-width: 720px) {
    .pa-identita .pa-campi[b-e1ov0nxblj] { flex-basis: 100%; }
    .pa-completezza[b-e1ov0nxblj] { padding: 16px; }
}

.pa-filtri[b-e1ov0nxblj] { border-bottom: 1px solid #E3E7EF; background: #FBFCFE; }
/* _content/GestioneCommessa.Shared/Pages/Registrazione.razor.rz.scp.css */
/* ── Pagina registrazione (wizard) — aspetto dal prototipo UX del 2026-10-02 (docs/ux/onboarding) ── */
/* Layout a tutta altezza: pannello scuro fisso a sinistra, form allineato a sinistra su bianco.      */

.reg-page[b-t0daiqbksk] {
    --reg-navy: #0B1F33;
    --reg-deep: #0E2A40;
    --reg-ink: #0B1B2B;
    --reg-muted: #4A5B6E;
    --reg-line: #D8E0EA;
    --reg-line-strong: #C9D3DF;
    --reg-blue: #0869A6;
    --reg-sky: #E7F2FA;
    --reg-green: #157F3D;
    --reg-green-bg: #E5F4EA;
    --reg-orange: #9A4A06;
    --reg-orange-bg: #FDF0E2;
    --reg-red: #B42318;
    --reg-red-bg: #FEF3F2;

    min-height: 100vh;
    background: #fff;
    color: var(--reg-ink);
    font-size: 15px;
    line-height: 1.5;
}

.reg-card[b-t0daiqbksk] {
    display: flex;
    min-height: 100vh;
    width: 100%;
    background: #fff;
}

/* ── Pannello brand (sinistra) ────────────────────────────────── */

.reg-brand-panel[b-t0daiqbksk] {
    width: 400px;
    flex-shrink: 0;
    background: var(--reg-deep);
    color: #fff;
    padding: 40px 44px;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

.reg-brand-content[b-t0daiqbksk] {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    gap: 44px;
}

.reg-brand-logo-img[b-t0daiqbksk] {
    height: 40px;
    width: auto;
    max-width: 100%;
    display: block;
}

.reg-brand-intro[b-t0daiqbksk] {
    margin: 0;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
    max-width: 18ch;
}

/* ── Stepper verticale ────────────────────────────────────────── */

.reg-steps[b-t0daiqbksk] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.reg-step[b-t0daiqbksk] {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding-bottom: 24px;
    color: #B8C6D3;
}

.reg-step:last-child[b-t0daiqbksk] { padding-bottom: 0; }

/* connettore verticale tra i pallini */
.reg-step:not(:last-child)[b-t0daiqbksk]::after {
    content: '';
    position: absolute;
    left: 13px;
    top: 32px;
    bottom: 2px;
    width: 2px;
    background: #2B4A63;
}

.reg-step-dot[b-t0daiqbksk] {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    border: 1.5px solid #6F8599;
    background: var(--reg-deep);
    position: relative;
    z-index: 1;
}

.reg-step-testo[b-t0daiqbksk] { display: flex; flex-direction: column; }

.reg-step-label[b-t0daiqbksk] {
    font-size: 16px;
    font-weight: 600;
    line-height: 28px;
}

.reg-step-desc[b-t0daiqbksk] {
    font-size: 13px;
    color: #8EA2B4;
    line-height: 1.4;
    max-width: 26ch;
}

.reg-step.is-active[b-t0daiqbksk] { color: #fff; }
.reg-step.is-active .reg-step-dot[b-t0daiqbksk] { border: 2px solid #4CC3F0; }

.reg-step.is-done[b-t0daiqbksk] { color: #E6EEF5; }
.reg-step.is-done .reg-step-dot[b-t0daiqbksk] { background: #22A35A; border-color: #22A35A; color: #fff; }
.reg-step.is-done:not(:last-child)[b-t0daiqbksk]::after { background: #22A35A; }

.reg-brand-foot[b-t0daiqbksk] {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid #2B4A63;
    font-size: 14px;
    color: #B8C6D3;
    line-height: 1.5;
}
.reg-brand-foot strong[b-t0daiqbksk] { color: #fff; }

/* Contatto dell'assistenza: in fondo alla banda blu, visibile in ogni passo. */
.reg-brand-aiuto[b-t0daiqbksk] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 14px;
    min-height: 44px;
    color: #fff;
    font-weight: 600;
}
.reg-brand-aiuto a[b-t0daiqbksk] { color: #7FD3F5; font-weight: 600; text-decoration: none; }
.reg-brand-aiuto a:hover[b-t0daiqbksk] { color: #fff; text-decoration: underline; }

/* Stessa riga sotto il form, solo su telefono (la nota della banda lì è nascosta). */
.reg-aiuto-mobile[b-t0daiqbksk] { display: none; }

/* ── Pannello form (destra) ───────────────────────────────────── */

.reg-form-panel[b-t0daiqbksk] {
    flex: 1;
    min-width: 0;
    background: #fff;
    display: flex;
    justify-content: flex-start;
    padding: 28px 8vw 72px;
}

.reg-form[b-t0daiqbksk] {
    width: 100%;
    max-width: 560px;
    padding-top: 6vh;
}

.reg-eyebrow[b-t0daiqbksk] {
    font-size: 14px;
    font-weight: 600;
    color: var(--reg-blue);
    margin-bottom: 6px;
}

.reg-form-title[b-t0daiqbksk] {
    font-size: 30px;
    line-height: 1.2;
    letter-spacing: -0.02em;
    font-weight: 700;
    color: var(--reg-ink);
    margin: 0 0 8px;
}

.reg-form-sub[b-t0daiqbksk] {
    font-size: 16px;
    color: var(--reg-muted);
    margin: 0 0 28px;
    max-width: 60ch;
}

.reg-field[b-t0daiqbksk] { margin-bottom: 16px; }

/* Input Bootstrap: misure e colori del prototipo */
.reg-form-panel[b-t0daiqbksk]  .form-control,
.reg-form-panel[b-t0daiqbksk]  .form-select {
    min-height: 44px;
    border: 1px solid var(--reg-line-strong);
    border-radius: 8px;
    font-size: 15px;
    color: var(--reg-ink);
}
.reg-form-panel[b-t0daiqbksk]  .form-control:focus,
.reg-form-panel[b-t0daiqbksk]  .form-select:focus {
    border-color: var(--reg-blue);
    box-shadow: 0 0 0 3px rgba(8, 105, 166, 0.18);
}
.reg-form-panel[b-t0daiqbksk]  .form-control[readonly] { background: #F5F7FA; }
/* P.IVA in testa al passo Dati azienda: più grande, è il campo da cui parte la compilazione. */
.reg-form-panel[b-t0daiqbksk]  .reg-cf-input { text-transform: uppercase; letter-spacing: 0.04em; }
.reg-form-panel[b-t0daiqbksk]  .reg-piva-input { min-height: 54px; font-size: 20px; font-weight: 600; letter-spacing: 0.06em; }
.reg-form-panel[b-t0daiqbksk]  .form-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--reg-ink);
    margin-bottom: 6px;
}
.reg-form-panel[b-t0daiqbksk]  .form-check { display: flex; gap: 12px; align-items: flex-start; padding-left: 0; }
.reg-form-panel[b-t0daiqbksk]  .form-check-input {
    width: 20px;
    height: 20px;
    margin: 1px 0 0;
    flex-shrink: 0;
    float: none;
    border-color: #8E9DAD;
}
.reg-form-panel[b-t0daiqbksk]  .form-check-input:checked { background-color: var(--reg-navy); border-color: var(--reg-navy); }
.reg-form-panel[b-t0daiqbksk]  .form-check-label { flex: 1 1 0; min-width: 0; font-size: 14px; line-height: 1.45; }

.reg-otp-input[b-t0daiqbksk] {
    min-height: 56px;
    letter-spacing: 0.5em;
    font-size: 24px;
    font-weight: 600;
    text-align: center;
    width: 100%;   /* larga come «Verifica e continua» */
}

/* ── Dati di fatturazione: cellulare con «Invia codice» a fianco (2026-10-03) ── */
.reg-tel-riga[b-t0daiqbksk] { display: flex; gap: 12px; align-items: stretch; }
.reg-tel-riga .form-control[b-t0daiqbksk] { flex: 1 1 0; min-width: 0; }
.reg-tel-invia[b-t0daiqbksk] { flex-shrink: 0; min-height: 44px; }
.reg-tel-cambia[b-t0daiqbksk] { flex-shrink: 0; }

/* Nazione del prefisso: bandiera dentro la tendina, a sinistra del testo */
.reg-tel-paese[b-t0daiqbksk] { position: relative; flex: 0 0 auto; width: 150px; }
.reg-tel-bandiera[b-t0daiqbksk] {
    position: absolute;
    left: 12px;
    top: 50%;
    width: 22px;
    height: 16px;
    transform: translateY(-50%);
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(11, 27, 43, 0.12);
    pointer-events: none;
    object-fit: cover;
}
.reg-form-panel[b-t0daiqbksk]  .reg-tel-paese .form-select { padding-left: 42px; }

/* ── Passo Prova gratuita: i due piani (prototipo, scheda 3) ── */
.reg-piani[b-t0daiqbksk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    border: 0;
    margin: 0 0 20px;
    padding: 0;
}
.reg-piani legend[b-t0daiqbksk] {
    /* Bootstrap mette float:left alla legend: così diventa una cella della griglia e sposta i box
       (il Mensile finiva a destra e l'Annuale a capo). Senza float resta il titolo del fieldset. */
    float: none;
    width: auto;
    font-size: 15px;
    font-weight: 700;
    color: var(--reg-ink);
    margin-bottom: 10px;
    padding: 0;
}
.reg-piano[b-t0daiqbksk] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 1px solid var(--reg-line-strong);
    border-radius: 12px;
    padding: 16px 16px 16px 48px;
    cursor: pointer;
    background: #fff;
}
.reg-piano:has(input:checked)[b-t0daiqbksk] {
    border: 2px solid var(--reg-navy);
    padding: 15px 15px 15px 47px;
    background: #F8FAFC;
}
.reg-piano input[b-t0daiqbksk] {
    position: absolute;
    left: 16px;
    top: 44px;   /* all'altezza del nome, sotto la riga dell'etichetta */
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--reg-navy);
}
.reg-piano-nome[b-t0daiqbksk] { font-weight: 700; color: var(--reg-ink); }
.reg-piano-prezzo[b-t0daiqbksk] { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; color: var(--reg-ink); }
.reg-piano-prezzo s[b-t0daiqbksk] { font-size: 15px; font-weight: 500; color: var(--reg-muted); margin-right: 4px; }
.reg-piano-prezzo small[b-t0daiqbksk] { font-size: 14px; font-weight: 500; color: var(--reg-muted); }
.reg-piano-desc[b-t0daiqbksk] { font-size: 13px; color: var(--reg-muted); line-height: 1.45; }
.reg-piano-badge[b-t0daiqbksk] {
    align-self: flex-start;
    order: -1;
    font-size: 12px;
    font-weight: 700;
    color: var(--reg-green);
    background: var(--reg-green-bg);
    border-radius: 999px;
    padding: 2px 10px;
    margin-bottom: 4px;
}

.reg-piano-badge--vuoto[b-t0daiqbksk] { visibility: hidden; }
.reg-piani-nota[b-t0daiqbksk] { margin: -8px 0 20px; }

.reg-ance[b-t0daiqbksk] { margin-bottom: 20px; }

/* «Le condizioni in breve» (prototipo, scheda 3) */
.reg-riepilogo[b-t0daiqbksk] {
    border: 1px solid var(--reg-line);
    border-radius: 12px;
    padding: 20px 22px;
    background: #F8FAFC;
    margin-bottom: 20px;
}
.reg-riepilogo-titolo[b-t0daiqbksk] { font-size: 16px; font-weight: 700; color: var(--reg-ink); margin: 0; }
.reg-riepilogo ul[b-t0daiqbksk] { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.reg-riepilogo li[b-t0daiqbksk] { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; color: var(--reg-ink); }
.reg-riepilogo li i[b-t0daiqbksk] { margin-top: 1px; flex-shrink: 0; font-size: 16px; }
.reg-ok[b-t0daiqbksk] { color: var(--reg-green); }
.reg-extra[b-t0daiqbksk] { color: var(--reg-blue); }
.reg-riepilogo-link[b-t0daiqbksk] { margin: 14px 0 0; font-size: 14px; }
.reg-ance-sede[b-t0daiqbksk] { margin: 12px 0 0 32px; }

/* Le sei caselle del codice SMS, come nel prototipo */
.reg-otp[b-t0daiqbksk] { display: flex; gap: 8px; }
.reg-form-panel[b-t0daiqbksk]  .reg-otp .form-control {
    width: 48px;
    min-height: 52px;
    padding: 0;
    text-align: center;
    font-size: 20px;
    font-weight: 600;
}

.reg-sezione[b-t0daiqbksk] {
    font-size: 18px;
    font-weight: 700;
    color: var(--reg-ink);
    margin: 0 0 16px;
}

.reg-otp-actions[b-t0daiqbksk] {
    display: flex;
    gap: 20px;
    margin-top: 12px;
}

.reg-text-button[b-t0daiqbksk] {
    background: none;
    border: none;
    color: var(--reg-blue);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    padding: 0 4px;
}
.reg-text-button:hover:not(:disabled)[b-t0daiqbksk] { text-decoration: underline; }
.reg-text-button:disabled[b-t0daiqbksk] { opacity: 0.5; cursor: default; }

/* ── Step 0: scelta metodo (social + divisore + accedi) ────────── */

.reg-social-button[b-t0daiqbksk] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    padding: 0 18px;
    border: 1px solid var(--reg-line-strong);
    border-radius: 8px;
    background: #fff;
    color: var(--reg-ink);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    margin-bottom: 12px;
    cursor: pointer;
}
.reg-social-button:hover[b-t0daiqbksk] {
    border-color: #8E9DAD;
    color: var(--reg-ink);
    text-decoration: none;
}

.reg-divider[b-t0daiqbksk] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 12px 0 20px;
    color: var(--reg-muted);
    font-size: 13px;
}
.reg-divider[b-t0daiqbksk]::before,
.reg-divider[b-t0daiqbksk]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--reg-line);
}

.reg-altlogin[b-t0daiqbksk] {
    margin-top: 20px;
    font-size: 14px;
    color: var(--reg-muted);
}

/* ── Barra in alto del form: uscita procedura ─────────────────── */

.reg-form-topbar[b-t0daiqbksk] {
    display: flex;
    justify-content: flex-end;
    margin: -6vh 0 calc(6vh - 8px);
}

.reg-exit-button[b-t0daiqbksk] {
    display: inline-flex;
    align-items: center;
    background: none;
    border: none;
    color: var(--reg-muted);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    padding: 0 8px;
    border-radius: 8px;
}
.reg-exit-button:hover[b-t0daiqbksk] { color: var(--reg-ink); background: #F5F7FA; }

/* ── Info / errore / verifica P.IVA ───────────────────────────── */

.reg-info[b-t0daiqbksk] {
    background: var(--reg-sky);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: 14px;
    color: #0B3A5C;
    line-height: 1.5;
}

.reg-error[b-t0daiqbksk] {
    background: var(--reg-red-bg);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: 14px;
    color: #912018;
    line-height: 1.5;
}

.reg-verifica[b-t0daiqbksk] {
    background: var(--reg-sky);
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 14px;
    color: #0B3A5C;
    line-height: 1.5;
}
.reg-verifica--ok[b-t0daiqbksk]         { background: var(--reg-green-bg); color: #0F5C2C; }
.reg-verifica--attenzione[b-t0daiqbksk] { background: var(--reg-orange-bg); color: #7A3A05; }
.reg-verifica--blocco[b-t0daiqbksk]     { background: var(--reg-red-bg); color: #912018; }
/* Campi compilati dai registri (2026-10-03): verde trasparente finché l'utente non li cambia */
.reg-form-panel[b-t0daiqbksk]  .form-control.reg-dal-registro {
    background: rgba(21, 127, 61, 0.08);
    border-color: rgba(21, 127, 61, 0.45);
}

.reg-form-note[b-t0daiqbksk] {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: var(--reg-muted);
}

.reg-form-note--ok[b-t0daiqbksk]         { color: var(--reg-green); font-weight: 600; }
.reg-form-note--attenzione[b-t0daiqbksk] { color: var(--reg-orange); font-weight: 600; }

.reg-link[b-t0daiqbksk] {
    color: var(--reg-blue);
    font-weight: 600;
    text-decoration: none;
}
.reg-link:hover[b-t0daiqbksk] { text-decoration: underline; color: var(--reg-blue); }

/* ── Navigazione tra step ─────────────────────────────────────── */

.reg-nav[b-t0daiqbksk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--reg-line);
}

/* ── Bottoni ──────────────────────────────────────────────────── */

.reg-primary-button[b-t0daiqbksk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 22px;
    border: none;
    border-radius: 8px;
    background: var(--reg-navy);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}
.reg-primary-button:hover:not(:disabled)[b-t0daiqbksk] { background: #163552; color: #fff; text-decoration: none; }
.reg-primary-button:disabled[b-t0daiqbksk] { background: #9AA8B6; cursor: not-allowed; }

.reg-secondary-button[b-t0daiqbksk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 18px;
    border: 1px solid var(--reg-line-strong);
    border-radius: 8px;
    background: #fff;
    color: var(--reg-ink);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}
.reg-secondary-button:hover:not(:disabled)[b-t0daiqbksk] { border-color: #8E9DAD; color: var(--reg-ink); text-decoration: none; }
.reg-secondary-button:disabled[b-t0daiqbksk] { opacity: 0.55; cursor: default; }

/* ── Schermate "completato" / pagamento salvato ───────────────── */

.reg-completato[b-t0daiqbksk] { width: 100%; max-width: 520px; text-align: left; }
.reg-completato-ico[b-t0daiqbksk] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--reg-green-bg);
    color: var(--reg-green);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    line-height: 1;
    margin-bottom: 18px;
}
.reg-completato-text[b-t0daiqbksk] { font-size: 16px; color: var(--reg-muted); line-height: 1.6; margin-bottom: 24px; }
.reg-completato-text strong[b-t0daiqbksk] { color: var(--reg-ink); }

/* ── Modali (uscita, conferma P.IVA) ──────────────────────────── */

.reg-modal-backdrop[b-t0daiqbksk] {
    position: fixed;
    inset: 0;
    background: rgba(11, 27, 43, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    z-index: 1080;
}

.reg-modal[b-t0daiqbksk] {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 20px 50px rgba(11, 27, 43, 0.3);
    max-width: 480px;
    width: 100%;
    padding: 28px;
}

.reg-modal-title[b-t0daiqbksk] {
    font-size: 20px;
    font-weight: 700;
    color: var(--reg-ink);
    margin: 0 0 8px;
}

.reg-modal-text[b-t0daiqbksk] {
    font-size: 14px;
    color: var(--reg-muted);
    line-height: 1.6;
    margin: 0 0 22px;
}

.reg-modal-actions[b-t0daiqbksk] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}

.reg-piva-grande[b-t0daiqbksk] {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.06em;
    font-variant-numeric: tabular-nums;
    color: var(--reg-ink);
    text-align: center;
    background: #F5F7FA;
    border-radius: 10px;
    padding: 18px 8px;
    margin: 0 0 16px;
    word-break: break-all;
}

/* ── Privacy e condizioni d'uso (2026-10-01) ─────────────────────────── */
/* Senza privacy il link social non ha href: il clic la evidenzia, il cursore resta quello di un pulsante. */
.reg-social-button:not([href])[b-t0daiqbksk] { cursor: pointer; }
/* Linea leggera fra il campo email e i consensi (stesso colore del divisore «oppure con email»). */
.reg-separatore[b-t0daiqbksk] {
    border: 0;
    border-top: 1px solid var(--reg-line);
    opacity: 1;
    margin: 20px 0 16px;
}
.reg-consensi[b-t0daiqbksk] {
    border: 1px solid var(--reg-line);
    border-radius: 12px;
    padding: 16px 18px;
    background: #F8FAFC;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.reg-consenso-mancante .form-check-label[b-t0daiqbksk] { color: var(--reg-red); }
.reg-consenso-mancante .form-check-input[b-t0daiqbksk] { border-color: var(--reg-red); box-shadow: 0 0 0 .2rem rgba(180, 35, 24, .18); }
.reg-consenso-msg[b-t0daiqbksk] { color: var(--reg-red); font-size: 13px; font-weight: 600; margin-top: 4px; flex-basis: 100%; padding-left: 32px; }
.reg-form-panel[b-t0daiqbksk]  .reg-consensi .form-check { flex-wrap: wrap; }
.reg-condizioni[b-t0daiqbksk] {
    max-height: 48vh;
    overflow-y: auto;
    border: 1px solid var(--reg-line-strong);
    border-radius: 12px;
    padding: 22px 26px;
    background: #fff;
    font-size: 14px;
    line-height: 1.6;
}
.reg-condizioni:focus[b-t0daiqbksk] { outline: 3px solid #4CC3F0; outline-offset: 2px; }
/* Sentinella della fine del testo: deve avere un'altezza perché l'osservatore la veda. */
.reg-condizioni-fine[b-t0daiqbksk] { height: 4px; }

/* ── Focus visibile e movimento ridotto ───────────────────────── */

.reg-page :focus-visible[b-t0daiqbksk] { outline: 3px solid #4CC3F0; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    .reg-page *[b-t0daiqbksk] { transition: none !important; animation: none !important; }
}

/* ── Responsive ───────────────────────────────────────────────── */

@media (max-width: 900px) {
    .reg-card[b-t0daiqbksk] { flex-direction: column; }

    .reg-brand-panel[b-t0daiqbksk] {
        width: auto;
        height: auto;
        position: static;
        padding: 20px 16px;
    }
    .reg-brand-content[b-t0daiqbksk] { gap: 16px; }
    .reg-brand-logo-img[b-t0daiqbksk] { height: 32px; }
    .reg-brand-intro[b-t0daiqbksk],
    .reg-brand-foot[b-t0daiqbksk],
    .reg-step-desc[b-t0daiqbksk] { display: none; }

    /* stepper orizzontale sopra al form */
    .reg-steps[b-t0daiqbksk] { flex-direction: row; gap: 4px; }
    .reg-step[b-t0daiqbksk] {
        flex: 1 1 0;
        flex-direction: column;
        align-items: center;
        gap: 6px;
        padding-bottom: 0;
        text-align: center;
    }
    .reg-step:not(:last-child)[b-t0daiqbksk]::after { display: none; }
    .reg-step-testo[b-t0daiqbksk] { align-items: center; }
    .reg-step-label[b-t0daiqbksk] { font-size: 12px; line-height: 1.2; }

    .reg-form-panel[b-t0daiqbksk] { padding: 16px 16px 48px; }
    .reg-form[b-t0daiqbksk] { padding-top: 0; }
    .reg-form-topbar[b-t0daiqbksk] { margin: 0 0 8px; }
    .reg-form-title[b-t0daiqbksk] { font-size: 25px; }
    .reg-aiuto-mobile[b-t0daiqbksk] {
        display: block;
        margin-top: 32px;
        padding-top: 16px;
        border-top: 1px solid var(--reg-line);
        font-size: 14px;
        color: var(--reg-muted);
    }
}

@media (max-width: 600px) {
    .reg-piani[b-t0daiqbksk] { grid-template-columns: minmax(0, 1fr); }
    .reg-tel-riga[b-t0daiqbksk] { flex-wrap: wrap; }
    .reg-tel-paese[b-t0daiqbksk] { width: 140px; }
    .reg-tel-invia[b-t0daiqbksk] { flex: 1 0 100%; }
    .reg-ance-sede[b-t0daiqbksk] { margin-left: 0; }
    .reg-nav[b-t0daiqbksk] { flex-direction: column-reverse; align-items: stretch; }
    .reg-nav .reg-primary-button[b-t0daiqbksk],
    .reg-nav .reg-secondary-button[b-t0daiqbksk] { width: 100%; }
}
/* _content/GestioneCommessa.Shared/Pages/SecurePage.razor.rz.scp.css */
.table-responsive[b-jgdprrxup3] {
    overflow-x: auto;
    max-width: 100%;
}

.table-responsive table[b-jgdprrxup3] {
    width: 100%;
    min-width: 600px;
    max-width: 100%;
    table-layout: auto;
}

.table-responsive td[b-jgdprrxup3] {
    word-break: break-word;
    overflow-wrap: break-word;
    max-width: 400px;
}
/* _content/GestioneCommessa.Shared/Pages/Settings.razor.rz.scp.css */
/* Impostazioni Statiche */

/* ── Tab bar ─────────────────────────────────────────────────────────── */

.st-tab-btn[b-4v48o4s5yp] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    outline: none;
    border-radius: 0;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
}

.st-tab-btn:hover[b-4v48o4s5yp] { color: #1E334C; }

.st-tab-btn.active[b-4v48o4s5yp] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

/* ── Section title ───────────────────────────────────────────────────── */

.st-section-title[b-4v48o4s5yp] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5B7A9A;
    margin-bottom: 0.6rem;
}

/* ── Table ───────────────────────────────────────────────────────────── */

.st-table thead th[b-4v48o4s5yp] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.55rem 0.9rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.st-table tbody td[b-4v48o4s5yp] {
    padding: 0.55rem 0.9rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    vertical-align: middle;
}

.st-row:hover td[b-4v48o4s5yp] { background: #f7fafd; }

.st-label[b-4v48o4s5yp] { font-weight: 600; color: #1E334C; font-size: 0.875rem; }
.st-sub[b-4v48o4s5yp]   { font-size: 0.78rem; color: #5B7A9A; }

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Le azioni di riga di questa pagina usano `.eco-act` (economia.css, caricato globalmente):
   stesse icone e stesse dimensioni di tutti gli altri elenchi dell'app — regola utente
   ribadita il 2026-09-16. La vecchia `.st-icon-btn`, gemella locale, è stata rimossa:
   un solo sistema di icone, mai una variante "equivalente". */

/* ── Icona dei tab ───────────────────────────────────────────────────── */

.st-tab-ico[b-4v48o4s5yp] {
    margin-right: 0.35rem;
    font-size: 0.85rem;
    opacity: 0.75;
}

.st-tab-btn.active .st-tab-ico[b-4v48o4s5yp] { opacity: 1; }
/* _content/GestioneCommessa.Shared/Pages/SharePointSites.razor.rz.scp.css */
/* File Repository — CSS scoped della pagina (prefisso fr-).
   Impianto: molto spazio bianco, card leggere, bordi arrotondati, icone lineari,
   nessuna ombra pesante. I colori restano quelli del gestionale (#1E334C testo
   forte, #6c757d secondario, #e9ecef bordi, #0d6efd accento). */

.fr-page[b-gtx026oblb] {
    padding: 1.5rem 1.75rem 2.5rem;
    max-width: 1600px;
}

/* ── Intestazione ────────────────────────────────────────────────────────── */

.fr-head[b-gtx026oblb] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.fr-title[b-gtx026oblb] {
    font-weight: 700;
    color: #1E334C;
    font-size: 1.2rem;
    letter-spacing: -.01em;
    margin: 0 0 .3rem;
}

.fr-subtitle[b-gtx026oblb] {
    color: #6c757d;
    font-size: .85rem;
    line-height: 1.5;
    margin: 0;
    max-width: 64ch;
}

.fr-head-actions[b-gtx026oblb] {
    display: flex;
    gap: .5rem;
    align-items: center;
    flex-wrap: wrap;
}

/* Menu "Carica documento": ogni voce dichiara dove finirà il file. */

.fr-menu-carica[b-gtx026oblb] {
    min-width: 20rem;
    padding: .4rem;
    border: 1px solid #e9ecef;
    border-radius: .6rem;
    box-shadow: 0 8px 28px rgba(15, 23, 42, .1);
}

.fr-menu-nota[b-gtx026oblb] {
    padding: .4rem .65rem .1rem;
    font-size: .75rem;
    color: #6c757d;
    line-height: 1.4;
}

.fr-menu-carica .dropdown-item[b-gtx026oblb] {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    border-radius: .4rem;
    padding: .5rem .65rem;
}

.fr-menu-carica .dropdown-item > i[b-gtx026oblb] {
    font-size: 1rem;
    color: #6c757d;
    margin-top: .1rem;
}

.fr-menu-carica .dropdown-item:hover > i[b-gtx026oblb] { color: #1E334C; }

.fr-menu-nome[b-gtx026oblb] {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: #1E334C;
}

.fr-menu-sub[b-gtx026oblb] {
    display: block;
    font-size: .74rem;
    color: #adb5bd;
}

/* ── Ricerca ─────────────────────────────────────────────────────────────── */

.fr-search[b-gtx026oblb] {
    position: relative;
    max-width: 620px;
    margin-bottom: .9rem;
}

.fr-search > i[b-gtx026oblb] {
    position: absolute;
    left: .9rem;
    top: 50%;
    transform: translateY(-50%);
    color: #adb5bd;
    font-size: .95rem;
    pointer-events: none;
}

.fr-search input[b-gtx026oblb] {
    height: 2.75rem;
    padding-left: 2.6rem;
    padding-right: 2.4rem;
    font-size: .9rem;
    border-radius: .6rem;
    border-color: #e3e8ef;
    background: #fff;
}

.fr-search input:focus[b-gtx026oblb] {
    border-color: #b9c7d8;
    box-shadow: 0 0 0 3px rgba(30, 51, 76, .07);
}

.fr-search input[b-gtx026oblb]::placeholder { color: #adb5bd; }

.fr-search-clear[b-gtx026oblb] {
    position: absolute;
    right: .55rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: none;
    color: #adb5bd;
    font-size: .8rem;
    line-height: 1;
    padding: .3rem;
    border-radius: .3rem;
}

.fr-search-clear:hover[b-gtx026oblb] { color: #495057; background: #f1f4f8; }

/* ── Filtri rapidi ───────────────────────────────────────────────────────── */

.fr-filtri[b-gtx026oblb] {
    display: flex;
    gap: .4rem;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.fr-pill[b-gtx026oblb] {
    border: 1px solid #e9ecef;
    background: #fff;
    color: #5a6b7f;
    border-radius: 999px;
    font-size: .8rem;
    line-height: 1;
    padding: .45rem .8rem;
    white-space: nowrap;
    transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}

.fr-pill:hover:not(:disabled)[b-gtx026oblb] {
    background: #f5f7fa;
    border-color: #d7dee8;
    color: #1E334C;
}

.fr-pill.attiva[b-gtx026oblb] {
    background: #1E334C;
    border-color: #1E334C;
    color: #fff;
}

.fr-pill.disabilitata[b-gtx026oblb],
.fr-pill:disabled[b-gtx026oblb] {
    color: #c3cbd6;
    background: #fafbfc;
    border-style: dashed;
    cursor: not-allowed;
}

.fr-pill.dropdown-toggle[b-gtx026oblb]::after { margin-left: .35rem; }

.fr-filtri .dropdown-menu[b-gtx026oblb] {
    border: 1px solid #e9ecef;
    border-radius: .5rem;
    padding: .3rem;
    box-shadow: 0 8px 28px rgba(15, 23, 42, .1);
}

.fr-filtri .dropdown-item[b-gtx026oblb] {
    border-radius: .35rem;
    font-size: .82rem;
    padding: .4rem .6rem;
}

.fr-azzera[b-gtx026oblb] {
    border: 0;
    background: none;
    color: #6c757d;
    font-size: .8rem;
    padding: .45rem .5rem;
    border-radius: .35rem;
}

.fr-azzera:hover[b-gtx026oblb] { color: #b42318; background: #fdf3f2; }

.fr-chip[b-gtx026oblb] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    background: #eef2f7;
    color: #1E334C;
    border-radius: 999px;
    padding: .25rem .65rem;
    font-size: .75rem;
}

.fr-chip-info[b-gtx026oblb] { background: #e7f1ff; color: #0d6efd; }

/* ── Impianto a colonne ──────────────────────────────────────────────────── */

.fr-body[b-gtx026oblb] {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.fr-body:has(.fr-drawer)[b-gtx026oblb] {
    grid-template-columns: 250px minmax(0, 1fr) 360px;
}

/* ── Menu laterale ───────────────────────────────────────────────────────── */

.fr-side[b-gtx026oblb] {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: .75rem;
    padding: .85rem .7rem;
    position: sticky;
    top: .75rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.fr-side-title[b-gtx026oblb] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #adb5bd;
    font-weight: 700;
    padding: 0 .4rem .35rem;
}

.fr-side-title.mt-3[b-gtx026oblb] { margin-top: 1.1rem !important; }

.fr-area[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .6rem;
    width: 100%;
    border: 0;
    background: none;
    text-align: left;
    padding: .5rem .55rem;
    border-radius: .45rem;
    font-size: .85rem;
    color: #33475b;
    transition: background-color .12s ease, color .12s ease;
}

.fr-area > i[b-gtx026oblb] {
    font-size: .95rem;
    color: #8a99ab;
    flex-shrink: 0;
}

.fr-area:hover[b-gtx026oblb] { background: #f5f7fa; color: #1E334C; }
.fr-area:hover > i[b-gtx026oblb] { color: #1E334C; }

.fr-area.attiva[b-gtx026oblb] {
    background: #1E334C;
    color: #fff;
    font-weight: 600;
}

.fr-area.attiva > i[b-gtx026oblb] { color: #fff; }

.fr-area-nome[b-gtx026oblb] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fr-area-count[b-gtx026oblb] {
    font-size: .72rem;
    color: #adb5bd;
    font-variant-numeric: tabular-nums;
}

.fr-area.attiva .fr-area-count[b-gtx026oblb] { color: rgba(255, 255, 255, .75); }

.fr-area-min[b-gtx026oblb] {
    font-size: .82rem;
    padding: .38rem .55rem;
}

.fr-area-min > i[b-gtx026oblb] { font-size: .85rem; color: #c9a227; }

.fr-area-tutte[b-gtx026oblb] {
    display: block;
    width: 100%;
    border: 0;
    background: none;
    text-align: left;
    font-size: .78rem;
    color: #0d6efd;
    padding: .3rem .55rem;
    border-radius: .35rem;
}

.fr-area-tutte:hover[b-gtx026oblb] { background: #f5f7fa; }

/* Albero del ramo aperto */

.fr-albero-side[b-gtx026oblb] { margin-top: .1rem; }

.fr-ramo[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .15rem;
    border-radius: .4rem;
}

.fr-ramo:hover[b-gtx026oblb] { background: #f5f7fa; }
.fr-ramo.attivo[b-gtx026oblb] { background: #eef2f7; }

.fr-ramo-chevron[b-gtx026oblb] {
    border: 0;
    background: none;
    color: #adb5bd;
    font-size: .7rem;
    width: 1.15rem;
    padding: .2rem 0;
    flex-shrink: 0;
}

.fr-ramo-chevron:disabled[b-gtx026oblb] { opacity: 0; }

.fr-ramo-nome[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex: 1;
    min-width: 0;
    border: 0;
    background: none;
    text-align: left;
    font-size: .8rem;
    color: #33475b;
    padding: .3rem .35rem .3rem 0;
}

.fr-ramo-nome > i[b-gtx026oblb] { color: #c9a227; font-size: .85rem; }

.fr-ramo-nome span:first-of-type[b-gtx026oblb] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fr-ramo-count[b-gtx026oblb] {
    font-size: .68rem;
    color: #adb5bd;
    font-variant-numeric: tabular-nums;
}

/* Spazio utilizzato — segnaposto dichiarato, nessun numero inventato. */

.fr-spazio[b-gtx026oblb] {
    margin-top: auto;
    padding: .8rem .55rem .2rem;
    border-top: 1px solid #f1f3f5;
}

.fr-spazio-head[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .78rem;
    font-weight: 600;
    color: #8a99ab;
    margin-bottom: .5rem;
}

.fr-spazio-barra[b-gtx026oblb] {
    height: .4rem;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
    margin-bottom: .45rem;
}

.fr-spazio-barra > span[b-gtx026oblb] {
    display: block;
    height: 100%;
    width: 100%;
    background: repeating-linear-gradient(
        -45deg, #e3e8ef 0, #e3e8ef 5px, #eef2f7 5px, #eef2f7 10px);
}

.fr-spazio-nota[b-gtx026oblb] {
    font-size: .72rem;
    color: #adb5bd;
    line-height: 1.4;
    margin-bottom: .55rem;
}

/* ── Colonna centrale ────────────────────────────────────────────────────── */

.fr-main[b-gtx026oblb] {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: .75rem;
    padding: .5rem 1.1rem 1.1rem;
    min-width: 0;
}

/* ── Breadcrumb + cambio vista ───────────────────────────────────────────── */

.fr-bc-riga[b-gtx026oblb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: .55rem 0 .7rem;
    border-bottom: 1px solid #f1f3f5;
    margin-bottom: .5rem;
}

.fr-bc[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
    font-size: .82rem;
    min-width: 0;
}

.fr-bc-item[b-gtx026oblb] {
    border: 0;
    background: none;
    padding: .1rem .15rem;
    border-radius: .25rem;
    color: #6c757d;
}

.fr-bc-item:hover:not(.attiva)[b-gtx026oblb] { color: #0d6efd; }

.fr-bc-item.attiva[b-gtx026oblb] {
    color: #1E334C;
    font-weight: 600;
}

.fr-bc-sep[b-gtx026oblb] { color: #ced4da; font-size: .65rem; }

.fr-bc-destra[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .85rem;
    flex-shrink: 0;
}

.fr-conteggio[b-gtx026oblb] {
    color: #adb5bd;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.fr-viste[b-gtx026oblb] {
    display: inline-flex;
    background: #f5f7fa;
    border-radius: .45rem;
    padding: .15rem;
    gap: .1rem;
}

.fr-vista-btn[b-gtx026oblb] {
    border: 0;
    background: none;
    color: #8a99ab;
    padding: .3rem .55rem;
    border-radius: .35rem;
    line-height: 1;
    font-size: .85rem;
}

.fr-vista-btn:hover[b-gtx026oblb] { color: #1E334C; }

.fr-vista-btn.attiva[b-gtx026oblb] {
    background: #fff;
    color: #1E334C;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .1);
}

/* ── Barra di selezione ──────────────────────────────────────────────────── */

.fr-bulk[b-gtx026oblb] {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    background: #eef2f7;
    border: 1px solid #dde4ed;
    border-radius: .5rem;
    padding: .55rem .85rem;
    margin-bottom: .7rem;
}

.fr-bulk-count[b-gtx026oblb] {
    font-size: .82rem;
    font-weight: 600;
    color: #1E334C;
}

.fr-bulk-actions[b-gtx026oblb] {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}

/* ── Tabella ─────────────────────────────────────────────────────────────── */

.fr-table[b-gtx026oblb] { margin-bottom: 0; }

.fr-table thead th[b-gtx026oblb] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #adb5bd;
    font-weight: 700;
    border-bottom: 1px solid #eef1f4;
    padding: .5rem .6rem;
    white-space: nowrap;
}

.fr-table tbody td[b-gtx026oblb] {
    border-bottom: 1px solid #f5f7fa;
    padding: .7rem .6rem;
    vertical-align: middle;
}

.fr-table tbody tr:last-child td[b-gtx026oblb] { border-bottom: 0; }

.fr-row[b-gtx026oblb] { transition: background-color .1s ease; }
.fr-row:hover[b-gtx026oblb] { background: #fafbfd; }
.fr-row.sel[b-gtx026oblb] { background: #f0f6ff; }
.fr-row-cartella[b-gtx026oblb] { cursor: pointer; }
.fr-row-rev td[b-gtx026oblb] { background: #fcfdfe; }

.fr-cella-nome[b-gtx026oblb] { cursor: pointer; }

.fr-col-num[b-gtx026oblb] { text-align: right; }
.fr-col-tipo[b-gtx026oblb] { width: 6.5rem; }
.fr-col-azioni[b-gtx026oblb] { width: 8rem; white-space: nowrap; }

.fr-name[b-gtx026oblb] {
    font-weight: 600;
    color: #1E334C;
    font-size: .86rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    line-height: 1.35;
}

.fr-name-testo[b-gtx026oblb] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.fr-name-rev[b-gtx026oblb] { font-weight: 500; color: #6c757d; }

/* Icona file in pastiglia: colore per famiglia, tratto lineare. */

.fr-ico[b-gtx026oblb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: .4rem;
    background: #f5f7fa;
    font-size: .9rem;
    flex-shrink: 0;
}

.fr-ico-lg[b-gtx026oblb] {
    width: 2.4rem;
    height: 2.4rem;
    font-size: 1.15rem;
}

.fr-ico-cartella[b-gtx026oblb] { color: #c9a227; margin-right: .35rem; font-size: 1rem; }
.fr-ico-rev[b-gtx026oblb] { color: #ced4da; margin-right: .2rem; }

.fr-sub[b-gtx026oblb] {
    color: #adb5bd;
    font-size: .76rem;
    overflow-wrap: anywhere;
    margin-top: .1rem;
}

.fr-tipo[b-gtx026oblb] {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    color: #6c757d;
    background: #f5f7fa;
    border-radius: .3rem;
    padding: .15rem .45rem;
}

.fr-nd[b-gtx026oblb] { color: #c3cbd6; font-style: italic; }

/* Icon button canonico 36×36 (token globali in app.css) */
.fr-icon-btn[b-gtx026oblb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.fr-icon-btn:hover[b-gtx026oblb] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

.fr-stella.attiva[b-gtx026oblb] { color: #f0a500; }
.fr-stella.attiva:hover[b-gtx026oblb] { color: #d68f00; }

.fr-rev-toggle[b-gtx026oblb] {
    border: 1px solid #e3e8ef;
    background: #fff;
    color: #6c757d;
    border-radius: 999px;
    font-size: .7rem;
    padding: .12rem .5rem;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
}

.fr-rev-toggle:hover[b-gtx026oblb] { border-color: #b9c7d8; color: #1E334C; }

.fr-badge[b-gtx026oblb] {
    display: inline-block;
    border-radius: 999px;
    font-size: .68rem;
    padding: .12rem .5rem;
    font-weight: 600;
    white-space: nowrap;
}

.fr-badge-ok[b-gtx026oblb]     { background: #e6f4ea; color: #1a7f37; }
.fr-badge-warn[b-gtx026oblb]   { background: #fff4e5; color: #b45309; }
.fr-badge-err[b-gtx026oblb]    { background: #fdecea; color: #b42318; }
.fr-badge-info[b-gtx026oblb]   { background: #e7f1ff; color: #0d6efd; }
.fr-badge-neutro[b-gtx026oblb] { background: #eef2f7; color: #6c757d; }

/* ── Griglia ─────────────────────────────────────────────────────────────── */

.fr-cartelle[b-gtx026oblb] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
    gap: .6rem;
    margin-bottom: 1.1rem;
}

.fr-cartella[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid #e9ecef;
    background: #fff;
    border-radius: .6rem;
    padding: .6rem;
    transition: border-color .12s ease, background-color .12s ease;
}

.fr-cartella:hover[b-gtx026oblb] { border-color: #d7dee8; background: #fafbfd; }

.fr-cartella.sel[b-gtx026oblb] {
    border-color: #0d6efd;
    box-shadow: 0 0 0 3px rgba(13, 110, 253, .1);
}

.fr-cartella-check[b-gtx026oblb] { line-height: 1; flex-shrink: 0; }

.fr-cartella-body[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex: 1;
    min-width: 0;
    border: 0;
    background: none;
    text-align: left;
    padding: 0;
}

.fr-cartella-body > i[b-gtx026oblb] { font-size: 1.25rem; color: #c9a227; flex-shrink: 0; }
.fr-cartella-zip[b-gtx026oblb] { flex-shrink: 0; }
.fr-cartella-testo[b-gtx026oblb] { min-width: 0; }

.fr-cartella-nome[b-gtx026oblb] {
    font-size: .85rem;
    font-weight: 600;
    color: #1E334C;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fr-cartella-sub[b-gtx026oblb] { font-size: .73rem; color: #adb5bd; }

.fr-griglia[b-gtx026oblb] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: .75rem;
}

.fr-tile[b-gtx026oblb] {
    position: relative;
    border: 1px solid #e9ecef;
    border-radius: .6rem;
    overflow: hidden;
    background: #fff;
    transition: border-color .12s ease, box-shadow .12s ease;
}

.fr-tile:hover[b-gtx026oblb] { border-color: #d7dee8; box-shadow: 0 2px 10px rgba(15, 23, 42, .05); }
.fr-tile.sel[b-gtx026oblb] { border-color: #0d6efd; box-shadow: 0 0 0 3px rgba(13, 110, 253, .1); }

.fr-tile-check[b-gtx026oblb] {
    position: absolute;
    top: .4rem;
    left: .4rem;
    z-index: 2;
    background: rgba(255, 255, 255, .92);
    border-radius: .25rem;
    padding: .1rem .2rem;
    line-height: 1;
}

.fr-tile-stella[b-gtx026oblb] {
    position: absolute;
    top: .3rem;
    right: .3rem;
    z-index: 2;
    border: 0;
    background: rgba(255, 255, 255, .92);
    border-radius: .3rem;
    color: #adb5bd;
    line-height: 1;
    padding: .2rem .3rem;
    font-size: .8rem;
}

.fr-tile-stella:hover[b-gtx026oblb] { color: #1E334C; }
.fr-tile-stella.attiva[b-gtx026oblb] { color: #f0a500; }

.fr-tile-body[b-gtx026oblb] {
    display: block;
    width: 100%;
    border: 0;
    background: none;
    padding: 0 0 .55rem;
    text-align: left;
}

.fr-tile-body img[b-gtx026oblb] {
    width: 100%;
    height: 122px;
    object-fit: cover;
    display: block;
    background: #f1f4f8;
}

.fr-tile-icona[b-gtx026oblb] {
    height: 122px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    background: #fafbfd;
}

.fr-tile-nome[b-gtx026oblb] {
    font-size: .79rem;
    font-weight: 600;
    color: #1E334C;
    padding: .5rem .6rem 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fr-tile-sub[b-gtx026oblb] {
    font-size: .71rem;
    color: #adb5bd;
    padding: 0 .6rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Stato vuoto ─────────────────────────────────────────────────────────── */

.fr-empty[b-gtx026oblb] {
    text-align: center;
    padding: 4rem 1rem;
    color: #adb5bd;
}

.fr-empty > i[b-gtx026oblb] { font-size: 2.25rem; opacity: .4; }
.fr-empty-title[b-gtx026oblb] { font-weight: 600; color: #6c757d; margin-top: .75rem; }
.fr-empty-sub[b-gtx026oblb] { font-size: .82rem; margin-top: .15rem; }

/* ── Pannello destro ─────────────────────────────────────────────────────── */

.fr-drawer[b-gtx026oblb] {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: .75rem;
    position: sticky;
    top: .75rem;
    max-height: calc(100vh - 2rem);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.fr-drawer-head[b-gtx026oblb] {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .9rem .9rem .75rem;
}

.fr-drawer-testa[b-gtx026oblb] { flex: 1; min-width: 0; }

.fr-drawer-titolo[b-gtx026oblb] {
    font-weight: 600;
    color: #1E334C;
    font-size: .9rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.fr-drawer-sub[b-gtx026oblb] {
    font-size: .74rem;
    color: #adb5bd;
    margin-top: .15rem;
}

.fr-drawer-azioni[b-gtx026oblb] {
    display: flex;
    gap: .4rem;
    padding: 0 .9rem .8rem;
}

.fr-drawer-azioni .btn[b-gtx026oblb] { flex: 0 0 auto; }
.fr-drawer-azioni .btn-primary[b-gtx026oblb] { flex: 1 1 auto; }

.fr-drawer-tabs[b-gtx026oblb] {
    display: flex;
    gap: .25rem;
    padding: 0 .9rem;
    border-bottom: 1px solid #eef1f4;
}

.fr-drawer-tab[b-gtx026oblb] {
    border: 0;
    background: none;
    color: #8a99ab;
    font-size: .8rem;
    padding: .45rem .55rem;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}

.fr-drawer-tab:hover[b-gtx026oblb] { color: #1E334C; }

.fr-drawer-tab.attiva[b-gtx026oblb] {
    color: #1E334C;
    font-weight: 600;
    border-bottom-color: #1E334C;
}

.fr-tab-count[b-gtx026oblb] {
    font-size: .68rem;
    background: #eef2f7;
    color: #6c757d;
    border-radius: 999px;
    padding: .02rem .35rem;
}

.fr-drawer-body[b-gtx026oblb] {
    padding: .9rem;
    overflow-y: auto;
    flex: 1;
}

.fr-anteprima[b-gtx026oblb] {
    width: 100%;
    height: 220px;
    object-fit: contain;
    background: #fafbfd;
    border: 1px solid #eef1f4;
    border-radius: .5rem;
}

iframe.fr-anteprima[b-gtx026oblb] { height: 340px; }

.fr-anteprima-vuota[b-gtx026oblb] {
    text-align: center;
    padding: 2.5rem 1rem;
    color: #adb5bd;
    font-size: .8rem;
    background: #fafbfd;
    border: 1px dashed #e3e8ef;
    border-radius: .5rem;
}

.fr-anteprima-vuota > i[b-gtx026oblb] { font-size: 2rem; display: block; margin-bottom: .5rem; opacity: .5; }

.fr-props[b-gtx026oblb] {
    display: grid;
    grid-template-columns: minmax(6.5rem, auto) 1fr;
    gap: .5rem .9rem;
    margin: 0;
    font-size: .79rem;
}

.fr-props dt[b-gtx026oblb] { color: #adb5bd; font-weight: 500; }
.fr-props dd[b-gtx026oblb] { margin: 0; color: #33475b; overflow-wrap: anywhere; }

.fr-props-path[b-gtx026oblb] {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .71rem;
    color: #8a99ab !important;
}

.fr-drawer-vuoto[b-gtx026oblb] {
    text-align: center;
    padding: 2.5rem 1rem;
    color: #adb5bd;
    font-size: .8rem;
}

.fr-drawer-vuoto > i[b-gtx026oblb] { font-size: 1.75rem; display: block; margin-bottom: .5rem; opacity: .5; }

/* Versioni */

.fr-versioni[b-gtx026oblb] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.fr-versione[b-gtx026oblb] {
    border: 1px solid #eef1f4;
    border-radius: .5rem;
    padding: .6rem .7rem;
    position: relative;
}

.fr-versione.corrente[b-gtx026oblb] { border-color: #cfe3d6; background: #fbfefc; }

.fr-versione-testa[b-gtx026oblb] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.fr-versione-nome[b-gtx026oblb] {
    font-size: .82rem;
    font-weight: 600;
    color: #1E334C;
}

.fr-versione-meta[b-gtx026oblb] {
    font-size: .73rem;
    color: #adb5bd;
    margin-top: .15rem;
}

.fr-versione-azioni[b-gtx026oblb] {
    position: absolute;
    top: .45rem;
    right: .45rem;
    display: flex;
    gap: .1rem;
}

/* ── Tablet ──────────────────────────────────────────────────────────────── */

@media (max-width: 1300px) {
    .fr-body:has(.fr-drawer)[b-gtx026oblb] {
        grid-template-columns: 230px minmax(0, 1fr);
    }

    .fr-drawer[b-gtx026oblb] {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(400px, 94vw);
        max-height: none;
        border-radius: 0;
        z-index: 1040;
        box-shadow: -8px 0 30px rgba(15, 23, 42, .16);
    }
}

@media (max-width: 992px) {
    .fr-page[b-gtx026oblb] { padding: 1.1rem 1rem 2rem; }

    .fr-body[b-gtx026oblb],
    .fr-body:has(.fr-drawer)[b-gtx026oblb] {
        grid-template-columns: minmax(0, 1fr);
    }

    .fr-side[b-gtx026oblb] {
        position: static;
        max-height: none;
    }

    .fr-albero-side[b-gtx026oblb] { display: none; }
    .fr-spazio[b-gtx026oblb] { margin-top: 1rem; }
}

/* ── Mobile: niente tabella compressa, una card per documento ────────────── */

@media (max-width: 720px) {
    .fr-page[b-gtx026oblb] { padding: 1rem .85rem 2rem; }

    .fr-search[b-gtx026oblb] { max-width: none; }

    .fr-filtri[b-gtx026oblb] {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: .3rem;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .fr-filtri[b-gtx026oblb]::-webkit-scrollbar { display: none; }

    .fr-bc-riga[b-gtx026oblb] { padding-bottom: .6rem; }
    .fr-bc-destra[b-gtx026oblb] { width: 100%; justify-content: space-between; }

    .fr-col-md[b-gtx026oblb], .fr-col-sm[b-gtx026oblb], .fr-col-tipo[b-gtx026oblb] { display: none; }

    .fr-table thead[b-gtx026oblb] { display: none; }

    .fr-table[b-gtx026oblb], .fr-table tbody[b-gtx026oblb], .fr-table tr[b-gtx026oblb], .fr-table td[b-gtx026oblb] {
        display: block;
        width: 100%;
    }

    .fr-row[b-gtx026oblb] {
        border: 1px solid #e9ecef;
        border-radius: .6rem;
        margin-bottom: .5rem;
        padding: .5rem .6rem;
        position: relative;
    }

    .fr-table tbody td[b-gtx026oblb] {
        border: 0;
        padding: .1rem .2rem;
    }

    .fr-row td:first-child[b-gtx026oblb] {
        position: absolute;
        top: .6rem;
        right: 5.6rem;
        width: auto;
    }

    .fr-row td:last-child[b-gtx026oblb] {
        position: absolute;
        top: .4rem;
        right: .3rem;
        width: auto;
    }

    .fr-name[b-gtx026oblb] { padding-right: 8rem; }

    .fr-griglia[b-gtx026oblb] { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }

    .fr-bulk-actions .btn[b-gtx026oblb] { flex: 1 1 auto; }
}
/* _content/GestioneCommessa.Shared/Pages/Staff/FetchData.razor.rz.scp.css */
/* Staff */

/* ── Griglia strumenti rapidi (7 card + slot per l'ottava) ───────────── */

.sf-tools-grid[b-kuzgpc4vb5] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

@media (min-width: 768px)  { .sf-tools-grid[b-kuzgpc4vb5] { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1400px) { .sf-tools-grid[b-kuzgpc4vb5] { grid-template-columns: repeat(8, minmax(0, 1fr)); } }

.sf-tool-card .card-body[b-kuzgpc4vb5] { padding: 0.85rem; }

/* ── Barra sezioni (replica del pattern tab di Profilo Azienda) ──────── */

.wn-shell[b-kuzgpc4vb5] {
    --wn-primary:        #001B48;
    --wn-hover:          #F7F9FC;
    --wn-border:         #DDE5EF;
    --wn-text-secondary: #60748F;
    --wn-surface:        #FFFFFF;

    position: relative;
    background: var(--wn-surface);
    border: 1px solid var(--wn-border);
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

.wn-primary-wrap[b-kuzgpc4vb5] {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid var(--wn-border);
}

.wn-primary[b-kuzgpc4vb5] {
    display: flex;
    align-items: stretch;
    flex: 1;
    min-height: 58px;
    overflow-x: auto;
    scrollbar-width: none;
}

.wn-primary[b-kuzgpc4vb5]::-webkit-scrollbar { display: none; }

.wn-tab[b-kuzgpc4vb5] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 20px;
    min-height: 58px;
    font-size: 14px;
    font-weight: 500;
    color: var(--wn-text-secondary);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color .13s, border-color .13s, background .13s;
    outline-offset: -3px;
}

.wn-tab i[b-kuzgpc4vb5] { font-size: 16px; }

.wn-tab:hover[b-kuzgpc4vb5] {
    background: var(--wn-hover);
    color: var(--wn-primary);
}

.wn-tab:focus-visible[b-kuzgpc4vb5] { outline: 2px solid var(--wn-primary); }

.wn-tab.active[b-kuzgpc4vb5] {
    color: var(--wn-primary);
    font-weight: 600;
    border-bottom-color: var(--wn-primary);
}

/* ── Ricerca elenco ──────────────────────────────────────────────────── */

.sf-search[b-kuzgpc4vb5] {
    position: relative;
    min-width: 240px;
}

.sf-search .bi-search[b-kuzgpc4vb5] {
    position: absolute;
    left: 0.6rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.8rem;
    color: #8FA0B5;
    pointer-events: none;
}

.sf-search input[b-kuzgpc4vb5] { padding-left: 1.9rem; min-height: var(--eco-ctl-h, 42px); }   /* altezza standard controlli toolbar */

/* ── Riepilogo sintetico (conteggio + semaforo) ──────────────────────── */

.sf-riepilogo[b-kuzgpc4vb5] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #1E334C;
}

.sf-dot[b-kuzgpc4vb5] {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.sf-dot-ok[b-kuzgpc4vb5]     { background: #2fac70; }
.sf-dot-warn[b-kuzgpc4vb5]   { background: #e5aa2e; }
.sf-dot-danger[b-kuzgpc4vb5] { background: #d9534f; }

.sf-badge-muted[b-kuzgpc4vb5] { background: #edf3fb; color: #5B7A9A; }

/* ── Breadcrumb ──────────────────────────────────────────────────────── */

.sf-breadcrumb[b-kuzgpc4vb5] {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.78rem;
    color: #5B7A9A;
}

.sf-bc-item + .sf-bc-item[b-kuzgpc4vb5]::before {
    content: '›';
    margin: 0 0.4rem;
    color: #b0c4d8;
}

.sf-bc-item a[b-kuzgpc4vb5] { color: #5B7A9A; text-decoration: none; }
.sf-bc-item a:hover[b-kuzgpc4vb5] { color: #1E334C; text-decoration: underline; }
.sf-bc-item.active[b-kuzgpc4vb5] { color: #1E334C; font-weight: 500; }

/* ── Pivot table (piano di formazione) ───────────────────────────────── */

.sf-pivot-table thead th[b-kuzgpc4vb5] {
    background: #f5f8fc;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #718096;
    padding: 0.55rem 0.6rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.sf-pivot-persona-col[b-kuzgpc4vb5] {
    min-width: 140px;
    position: sticky;
    left: 0;
    background: #f5f8fc;
    z-index: 1;
}

.sf-pivot-cell[b-kuzgpc4vb5] {
    min-width: 80px;
}

.sf-pivot-persona[b-kuzgpc4vb5] {
    font-size: 0.82rem;
    font-weight: 600;
    color: #1E334C;
    white-space: nowrap;
    padding: 0.5rem 0.6rem;
    position: sticky;
    left: 0;
    background: #fff;
    z-index: 1;
}

/* ── Cell state colors (tenued) ──────────────────────────────────────── */

.sf-cell-ok[b-kuzgpc4vb5] {
    background: #eafaf1;
    color: #27694e;
}

.sf-cell-warn[b-kuzgpc4vb5] {
    background: #fff8e6;
    color: #7c5c1b;
}

.sf-cell-danger[b-kuzgpc4vb5] {
    background: #fdecea;
    color: #8a3226;
}

.sf-cell-link[b-kuzgpc4vb5] {
    font-size: 0.78rem;
    font-weight: 600;
    color: inherit;
    text-decoration: underline dotted;
    text-underline-offset: 2px;
}

.sf-cell-link:hover[b-kuzgpc4vb5] { text-decoration: underline; }

/* ── Legend ──────────────────────────────────────────────────────────── */

.sf-legend[b-kuzgpc4vb5] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 3px;
    vertical-align: middle;
    margin-right: 0.25rem;
}

.sf-legend-ok[b-kuzgpc4vb5]     { background: #eafaf1; border: 1px solid #a3d9b8; }
.sf-legend-warn[b-kuzgpc4vb5]   { background: #fff8e6; border: 1px solid #f0cc7a; }
.sf-legend-danger[b-kuzgpc4vb5] { background: #fdecea; border: 1px solid #f0a99e; }

/* ── Tab bar ─────────────────────────────────────────────────────────── */

.sf-tab-btn[b-kuzgpc4vb5] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.5rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    transition: color 0.12s, border-color 0.12s;
    outline: none;
    border-radius: 0;
}

.sf-tab-btn:hover[b-kuzgpc4vb5] { color: #1E334C; }

.sf-tab-btn.active[b-kuzgpc4vb5] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

.sf-tab-count[b-kuzgpc4vb5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.4em;
    border-radius: 10px;
    background: #edf3fb;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0 0.3em;
}

.sf-tab-btn.active .sf-tab-count[b-kuzgpc4vb5] {
    background: #1E334C;
    color: #fff;
}

/* ── Table ───────────────────────────────────────────────────────────── */

/* Selettori ancorati a `.table.sf-table`: la regola globale `.table:not(.table-sm) > thead > tr > th`
   (specificità 0,2,3) batterebbe il semplice `.sf-table thead th` scoped (0,2,2). */
.table.sf-table thead th[b-kuzgpc4vb5] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);   /* standard celle (2026-09-04) */
    height: 48px;
    vertical-align: middle;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.table.sf-table tbody td[b-kuzgpc4vb5] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    border-bottom: 1px solid #edf2f7;
    vertical-align: middle;
}

/* Prima/ultima colonna sull'asse della card (24px): la testata "Elenco lavoratori"
   sta in un card-body a var(--eco-pad), la tabella parte sulla stessa verticale */
.table.sf-table thead th:first-child[b-kuzgpc4vb5], .table.sf-table tbody td:first-child[b-kuzgpc4vb5] { padding-left: var(--eco-pad, 24px); }
.table.sf-table thead th:last-child[b-kuzgpc4vb5],  .table.sf-table tbody td:last-child[b-kuzgpc4vb5]  { padding-right: var(--eco-pad, 24px); }

/* Data di nascita (3ª colonna) non va a capo */
.sf-table thead th:nth-child(3)[b-kuzgpc4vb5], .sf-table tbody td:nth-child(3)[b-kuzgpc4vb5] { white-space: nowrap; }

/* Azioni: ultima colonna allineata a destra, icone senza a capo */
.sf-table thead th:last-child[b-kuzgpc4vb5] { text-align: right; }
.sf-table tbody td:last-child[b-kuzgpc4vb5] { white-space: nowrap; }
.sf-table tbody td:last-child > .d-flex[b-kuzgpc4vb5] { justify-content: flex-end; }

.sf-row[b-kuzgpc4vb5] { cursor: pointer; }
.sf-row:hover td[b-kuzgpc4vb5] { background: #f7fafd; }

.sf-name[b-kuzgpc4vb5] { font-weight: 600; color: #1E334C; font-size: 0.875rem; }
.sf-sub[b-kuzgpc4vb5]  { font-size: 0.82rem; color: #5B7A9A; }

/* ── Badges ──────────────────────────────────────────────────────────── */

.sf-badge[b-kuzgpc4vb5] {
    display: inline-block;
    padding: 0.1em 0.55em;
    border-radius: 10px;
    font-size: 0.67rem;
    font-weight: 700;
    line-height: 1.4;
    margin-top: 0.15rem;
}

.sf-badge-ok[b-kuzgpc4vb5] { background: #eafaf1; color: #27694e; }

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.sf-icon-btn[b-kuzgpc4vb5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.sf-icon-btn:hover[b-kuzgpc4vb5] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.sf-icon-btn.dropdown-toggle[b-kuzgpc4vb5]::after { display: none; }

/* ── Empty state ─────────────────────────────────────────────────────── */

.sf-empty[b-kuzgpc4vb5] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.sf-empty .bi[b-kuzgpc4vb5] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.sf-empty-title[b-kuzgpc4vb5] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.sf-empty-text[b-kuzgpc4vb5] {
    font-size: 0.875rem;
    color: #8696a7;
}
/* _content/GestioneCommessa.Shared/Pages/Staff/Form.razor.rz.scp.css */
/* Staff — Form */

/* ── Card ─────────────────────────────────────────────────────────── */

.sf-card[b-ejf2orm895] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 16px;
    overflow: hidden;
}

.sf-card-header[b-ejf2orm895] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1.25rem;
    border-bottom: 1px solid #E2E8F0;
    background: #FAFBFC;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.sf-card-icon[b-ejf2orm895] {
    color: #5B7A9A;
    font-size: 1rem;
}

.sf-card-title[b-ejf2orm895] {
    font-size: 0.875rem;
    font-weight: 700;
    color: #1E334C;
}

.sf-card-body[b-ejf2orm895] {
    padding: 1.25rem;
}

/* ── Section subheader ─────────────────────────────────────────── */

.sf-section-header[b-ejf2orm895] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.sf-section-icon[b-ejf2orm895] {
    color: #5B7A9A;
    font-size: 0.875rem;
}

.sf-section-title[b-ejf2orm895] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sf-divider[b-ejf2orm895] {
    border-color: #E2E8F0;
    margin: 1.25rem 0;
}

/* ── Form labels & helper text ─────────────────────────────────── */

.sf-form-label[b-ejf2orm895] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #5B7A9A;
    margin-bottom: 0.3rem;
    display: block;
}

.sf-help-text[b-ejf2orm895] {
    font-size: 0.8125rem;
    color: #6B7C8F;
    line-height: 1.5;
}

.sf-empty-text[b-ejf2orm895] {
    font-size: 0.8125rem;
    color: #8FA3B8;
    margin-bottom: 0;
}

/* ── Photo frame ───────────────────────────────────────────────── */

.sf-photo-frame[b-ejf2orm895] {
    width: 105px;
    height: 135px;
    background: #F5F7FA;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.sf-photo-img[b-ejf2orm895] {
    width: 105px;
    height: 135px;
    object-fit: cover;
}

.sf-photo-placeholder[b-ejf2orm895] {
    font-size: 2.5rem;
    color: #C0CDD8;
}

/* ── Meta / access badges ──────────────────────────────────────── */

.sf-meta-label[b-ejf2orm895] {
    font-size: 0.75rem;
    color: #8FA3B8;
}

.sf-access-badge[b-ejf2orm895] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.sf-access-amministrazione[b-ejf2orm895] { background: #e8f1fa; color: #2c6a9e; }
.sf-access-capocantiere[b-ejf2orm895]     { background: #e6f4ec; color: #3a7a4a; }
.sf-access-lavoratore[b-ejf2orm895]       { background: #f4f5f7; color: #5B7A9A; }

/* ── Status badges ─────────────────────────────────────────────── */

.sf-stato-badge[b-ejf2orm895] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.sf-stato-valido[b-ejf2orm895]   { background: #edf6ea; color: #3a6b27; }
.sf-stato-scadenza[b-ejf2orm895] { background: #fff4e2; color: #8a5500; }
.sf-stato-scaduto[b-ejf2orm895]  { background: #fdecea; color: #9e2d1e; }
.sf-stato-na[b-ejf2orm895]       { background: #f4f5f7; color: #8696a7; }
/* Catena formativa: aggiornamento scaduto (il corso base resta credito) e credito formativo. */
.sf-stato-aggiornare[b-ejf2orm895] { background: #fff4e2; color: #8a5500; border: 1px dashed #e0b25a; }
.sf-stato-base[b-ejf2orm895]       { background: #eef3fb; color: #2b4c7e; }

/* ── Corsi: catena base + aggiornamenti ────────────────────────── */

.sf-group-row td[b-ejf2orm895] {
    background: #F7FAFD;
    border-top: 2px solid #E3EAF2;
    padding: 0.55rem 0.75rem !important;
}
.sf-group-title[b-ejf2orm895] {
    font-weight: 700;
    color: #1E334C;
    margin-right: 0.75rem;
}
.sf-group-meta[b-ejf2orm895] {
    color: #5B7A9A;
    font-size: 0.8rem;
    margin-right: 0.75rem;
}
.sf-group-row .sf-stato-badge[b-ejf2orm895] { margin-right: 0.4rem; }

.sf-natura[b-ejf2orm895] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15em 0.55em;
    border-radius: 6px;
    white-space: nowrap;
}
.sf-natura-base[b-ejf2orm895]          { background: #eef3fb; color: #2b4c7e; }
.sf-natura-aggiornamento[b-ejf2orm895] { background: #f1f8ee; color: #3a6b27; }
.sf-natura-proposta[b-ejf2orm895] {
    display: inline-block;
    margin-left: 0.35rem;
    font-size: 0.68rem;
    font-style: italic;
    color: #8a5500;
    border-bottom: 1px dotted #8a5500;
    cursor: help;
}

.sf-proposta-banner[b-ejf2orm895] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.75rem 1rem;
    border: 1px solid #F0D9A8;
    background: #FFF9EC;
    border-radius: 10px;
    flex-wrap: wrap;
}
.sf-proposta-icon[b-ejf2orm895] { color: #C98A00; font-size: 1.15rem; }
.sf-proposta-text[b-ejf2orm895] { flex: 1 1 320px; font-size: 0.85rem; color: #4a3b1e; line-height: 1.4; }
.sf-proposta-btn[b-ejf2orm895]  { white-space: nowrap; }

/* ── Table ──────────────────────────────────────────────────────── */

.sf-table[b-ejf2orm895] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

.sf-table thead th[b-ejf2orm895] {
    background: #F7FAFD;
    color: #5B7A9A;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.6rem 0.75rem;
    border-bottom: 2px solid #DCEAF8;
    white-space: nowrap;
}

.sf-th-actions[b-ejf2orm895] {
    width: 5rem;
    text-align: center;
}

.sf-row[b-ejf2orm895] { transition: background 0.1s; }
.sf-row:hover[b-ejf2orm895] { background: #F7FAFD; }
.sf-row.sf-row-editing[b-ejf2orm895] { background: #F0F7FF; }

.sf-row td[b-ejf2orm895] {
    padding: 0.6rem 0.75rem;
    vertical-align: middle;
    font-size: 0.8125rem;
    color: #334155;
    border-bottom: 1px solid #F0F5FB;
}

.sf-td-primary[b-ejf2orm895] {
    font-weight: 600;
    color: #1E334C !important;
}

.sf-td-actions[b-ejf2orm895] {
    text-align: center;
    white-space: nowrap;
}

/* ── Icon buttons ───────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.sf-icon-btn[b-ejf2orm895] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.sf-icon-btn:hover[b-ejf2orm895]        { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.sf-icon-btn:disabled[b-ejf2orm895]     { opacity: 0.4; cursor: not-allowed; }

.sf-icon-btn.sf-icon-success[b-ejf2orm895]              { color: #3a6b27; }
.sf-icon-btn.sf-icon-success:hover[b-ejf2orm895]        { background: #edf6ea; color: #2a5020; }

.sf-icon-btn.sf-icon-danger[b-ejf2orm895]               { color: var(--icobtn-danger, #C0392B); }
.sf-icon-btn.sf-icon-danger:hover[b-ejf2orm895]         { background: var(--icobtn-danger-bg, #FBEBED); color: var(--icobtn-danger, #C0392B); }

/* ── File link ──────────────────────────────────────────────────── */

.sf-file-link[b-ejf2orm895] {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: #2c6a9e;
    background: #e8f1fa;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.12s, color 0.12s;
}

.sf-file-link:hover[b-ejf2orm895] { background: #d0e4f5; color: #1c4f7a; text-decoration: none; }

.sf-no-file[b-ejf2orm895] {
    font-size: 0.75rem;
    color: #B0BEC5;
}

/* ── Add button ─────────────────────────────────────────────────── */

.sf-add-btn[b-ejf2orm895] {
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: 1px dashed #94A3B8;
    color: #5B7A9A;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.4rem 0.9rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.sf-add-btn:hover[b-ejf2orm895] { background: #F3F7FC; color: #1E334C; border-color: #5B7A9A; }

/* ── Ore input ──────────────────────────────────────────────────── */

.sf-ore-input[b-ejf2orm895] {
    width: 72px !important;
    text-align: center;
}

/* ── Form footer ────────────────────────────────────────────────── */

.sf-form-footer[b-ejf2orm895] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1.25rem 0 0.5rem;
}

/* Primary: colori dai token globali del button system */
.sf-btn-save[b-ejf2orm895] {
    display: inline-flex;
    align-items: center;
    background: var(--btn-primary-bg, #001B48);
    color: #fff;
    border: none;
    padding: 0.6rem 1.75rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.sf-btn-save:hover[b-ejf2orm895]    { background: var(--btn-primary-bg-hover, #12315F); }
.sf-btn-save:disabled[b-ejf2orm895] { opacity: 0.6; cursor: not-allowed; }

/* ── Report card ────────────────────────────────────────────────── */

/* Secondary: colori dai token globali del button system */
.sf-btn-report[b-ejf2orm895] {
    display: inline-flex;
    align-items: center;
    background: #fff;
    border: 1px solid var(--btn-border, #C7D2E2);
    color: var(--btn-ink, #001B48);
    padding: 0.5rem 1.25rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
}

.sf-btn-report:hover[b-ejf2orm895]    { background: #F3F7FC; border-color: var(--btn-ink, #001B48); }
.sf-btn-report:disabled[b-ejf2orm895] { opacity: 0.6; cursor: not-allowed; }
/* _content/GestioneCommessa.Shared/Pages/SVRLav/FetchData.razor.rz.scp.css */
/* SVR Lavorazioni */

/* ── Table ───────────────────────────────────────────────────────────── */

.svrlav-table thead th[b-sreblhcdcn] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.svrlav-table tbody td[b-sreblhcdcn] {
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    vertical-align: middle;
}

.svrlav-row:hover td[b-sreblhcdcn] { background: #f7fafd; }

.svrlav-name[b-sreblhcdcn] { font-weight: 600; color: #1E334C; font-size: 0.875rem; }
.svrlav-code[b-sreblhcdcn] { font-size: 0.78rem; color: #5B7A9A; font-weight: 500; }

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.svrlav-icon-btn[b-sreblhcdcn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.svrlav-icon-btn:hover[b-sreblhcdcn] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

/* ── Empty state ─────────────────────────────────────────────────────── */

.svrlav-empty[b-sreblhcdcn] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.svrlav-empty .bi[b-sreblhcdcn] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.svrlav-empty-title[b-sreblhcdcn] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.svrlav-empty-text[b-sreblhcdcn] {
    font-size: 0.875rem;
    color: #8696a7;
}
/* _content/GestioneCommessa.Shared/Pages/SVR/Details.razor.rz.scp.css */
/* Scheda SVR (disegno di Vanessa, 2026-10-05): stessa testata e sezioni della scheda mezzo
   (classi ts-* ripetute qui: il CSS è scoped per pagina). */

/* ── Testata fissa ── */
.ts-testa[b-c855xcphj4] {
    position: sticky; top: 0; z-index: 5;
    background: #fff; border: 1px solid #D5DCE8; border-radius: 12px;
    padding: 12px 20px 0; margin-bottom: 20px;
    display: flex; flex-direction: column; gap: 8px;
}
.ts-testa-riga[b-c855xcphj4] { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
.ts-testa-nome[b-c855xcphj4] { display: flex; gap: 14px; align-items: center; min-width: 0; }
.ts-indietro[b-c855xcphj4] {
    flex: none; width: 44px; height: 44px; border: 1px solid #CDD5E2; border-radius: 8px; background: #fff; color: #001B48;
    display: inline-flex; align-items: center; justify-content: center; font-size: 18px; cursor: pointer;
}
.ts-indietro:hover[b-c855xcphj4] { background: #F6F8FC; }
.ts-testa-testi[b-c855xcphj4] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ts-titolo[b-c855xcphj4] { margin: 0; font-size: 26px; line-height: 1.15; font-weight: 700; color: #001B48; overflow-wrap: anywhere; }
.ts-chip-riga[b-c855xcphj4] { display: flex; gap: 6px; flex-wrap: wrap; }
.ts-chip[b-c855xcphj4] { font-size: 13px; font-weight: 600; color: #3E4859; background: #EEF1F6; border-radius: 6px; padding: 2px 8px; }
.ts-chip--rosso[b-c855xcphj4] { color: #9B2C25; background: #FBE3E1; }
.ts-azioni[b-c855xcphj4] { display: flex; flex-wrap: wrap; gap: 10px; }

.ts-btn[b-c855xcphj4] {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px;
    border-radius: 8px; border: 1px solid #CDD5E2; background: #fff; color: #001B48;
    font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap;
}
.ts-btn:hover[b-c855xcphj4] { background: #F6F8FC; color: #001B48; }
.ts-btn--primario[b-c855xcphj4] { background: #001B48; border-color: #001B48; color: #fff; }
.ts-btn--primario:hover[b-c855xcphj4] { background: #12306B; color: #fff; }
.ts-btn--piccolo[b-c855xcphj4] { min-height: 34px; padding: 0 12px; font-size: 13px; }

.ts-indice[b-c855xcphj4] { display: flex; gap: 4px; flex-wrap: wrap; }
.ts-indice-voce[b-c855xcphj4] {
    display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 10px 12px;
    border: 0; border-bottom: 3px solid transparent; background: transparent;
    font: inherit; font-size: 15px; font-weight: 500; color: #556074; cursor: pointer;
}
.ts-indice-voce:hover[b-c855xcphj4] { color: #001B48; border-bottom-color: #C8D2E3; }
.ts-indice-conta[b-c855xcphj4] { font-size: 12px; font-weight: 700; background: #DFE5EF; color: #3E4859; border-radius: 999px; padding: 1px 7px; }

/* ── Sezioni ── */
.ts-corpo[b-c855xcphj4] { display: flex; flex-direction: column; gap: 20px; padding-bottom: 32px; }
.ts-sezione[b-c855xcphj4] { background: #fff; border: 1px solid #D5DCE8; border-radius: 12px; overflow: hidden; scroll-margin-top: 200px; }
.ts-sezione-titolo[b-c855xcphj4] { margin: 0; padding: 18px 24px; font-size: 18px; font-weight: 700; color: #001B48; border-bottom: 1px solid #E4E9F1; }
.ts-sezione-titolo--interno[b-c855xcphj4] { padding: 0; border: 0; }
.ts-sezione-testa[b-c855xcphj4] {
    display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
    padding: 18px 24px; border-bottom: 1px solid #E4E9F1;
}
.ts-sezione-testa--piatta[b-c855xcphj4] { border-bottom: 0; }
.ts-sezione-corpo[b-c855xcphj4] { padding: 24px; display: flex; flex-direction: column; gap: 24px; }
.ts-nota-sezione[b-c855xcphj4] { margin: 0; font-size: 14px; color: #556074; }

.ts-dati[b-c855xcphj4] { display: flex; flex-wrap: wrap; gap: 28px; padding: 24px; }
.ts-immagine[b-c855xcphj4] {
    flex: 0 1 300px; background: #F6F8FC; border-radius: 10px; padding: 12px;
    display: flex; align-items: center; justify-content: center;
}
.ts-immagine img[b-c855xcphj4] { display: block; width: 100%; max-width: 280px; max-height: 240px; object-fit: contain; mix-blend-mode: multiply; }

.ts-campi[b-c855xcphj4] {
    flex: 999 1 420px; margin: 0; display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 22px 28px; align-content: start;
}
.ts-campi--larghi[b-c855xcphj4] { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ts-campi dt[b-c855xcphj4] { font-size: 13px; font-weight: 500; color: #556074; margin: 0 0 4px; }
.ts-campi dd[b-c855xcphj4] { margin: 0; font-size: 16px; font-weight: 600; color: #18202F; overflow-wrap: anywhere; }
.ts-campi .ts-dd-normale[b-c855xcphj4] { font-weight: 500; font-size: 15px; }
.ts-campo-intero[b-c855xcphj4] { grid-column: 1 / -1; }
.ts-num[b-c855xcphj4] { font-variant-numeric: tabular-nums; }
.ts-targa[b-c855xcphj4] { display: inline-block; letter-spacing: .06em; border: 1.5px solid #001B48; border-radius: 6px; padding: 2px 10px; }

.ts-info[b-c855xcphj4] {
    display: flex; gap: 12px; align-items: flex-start; background: #EEF3FB; border: 1px solid #CFDCF2;
    border-radius: 10px; padding: 14px 16px; font-size: 15px; line-height: 1.45;
}
.ts-info > i[b-c855xcphj4] { color: #1F4FA8; font-size: 18px; }
.ts-info strong[b-c855xcphj4] { display: block; color: #001B48; }
.ts-info span[b-c855xcphj4] { color: #3E4859; font-size: 14px; }

/* ── Tabelle ── */
.ts-tabella-box[b-c855xcphj4] { border: 1px solid #E4E9F1; border-radius: 10px; overflow: hidden; }
.ts-tabella[b-c855xcphj4] { font-size: 15px; }
.ts-tabella th[b-c855xcphj4] { padding: 12px 16px; background: #F6F8FC; color: #3E4859; font-size: 13px; font-weight: 600; border-bottom: 0; white-space: nowrap; }
.ts-tabella td[b-c855xcphj4] { padding: 12px 16px; border-top: 1px solid #E4E9F1; vertical-align: middle; }
.ts-tabella th:first-child[b-c855xcphj4], .ts-tabella td:first-child[b-c855xcphj4] { padding-left: 24px; }
.ts-tabella th:last-child[b-c855xcphj4], .ts-tabella td:last-child[b-c855xcphj4] { padding-right: 24px; }
.ts-tabella tfoot th[b-c855xcphj4], .ts-tabella tfoot td[b-c855xcphj4] { border-top: 2px solid #D5DCE8; background: #F6F8FC; }
.ts-tabella--storico td[b-c855xcphj4] { background: #FBFCFE; color: #556074; }
.ts-totale[b-c855xcphj4] { font-weight: 700; font-size: 16px; color: #001B48; }

.ts-file[b-c855xcphj4] {
    display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0; border: 0; background: none;
    font: inherit; font-weight: 600; color: #1F4FA8; text-align: left; overflow-wrap: anywhere; cursor: pointer;
}
.ts-file:hover[b-c855xcphj4] { text-decoration: underline; }

.ts-pill[b-c855xcphj4] {
    display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600;
    border-radius: 999px; padding: 3px 10px; border: 1px solid transparent; white-space: nowrap;
}
.ts-pill--mini[b-c855xcphj4] { font-size: 11px; padding: 1px 7px; margin-top: 4px; }
.ts-pill--neutro[b-c855xcphj4] { color: #3E4859; background: #EEF1F6; }
.ts-pill--verde[b-c855xcphj4]  { color: #1E5A3A; background: #E3F1E8; }
.ts-pill--rosso[b-c855xcphj4]  { color: #9B2C25; background: #FBE3E1; border-color: #F2C3BF; }
.ts-pill--ambra[b-c855xcphj4]  { color: #7A4100; background: #FCEFD9; border-color: #F1D3A0; }
.ts-pill--blu[b-c855xcphj4]    { color: #1D4485; background: #E6EEFA; border-color: #C7D6F0; }

.ts-note[b-c855xcphj4] { padding: 14px 24px 18px; border-top: 1px solid #E4E9F1; font-size: 13.5px; color: #556074; }
.ts-note p[b-c855xcphj4] { margin: 0 0 6px; }
.ts-note p:last-child[b-c855xcphj4] { margin-bottom: 0; }

.ts-storico[b-c855xcphj4] {
    display: flex; align-items: center; gap: 8px; width: 100%; padding: 14px 24px;
    border: 0; border-top: 1px solid #E4E9F1; background: #FBFCFE; text-align: left;
    font: inherit; font-size: 14px; font-weight: 600; color: #001B48; cursor: pointer;
}
.ts-storico .text-muted[b-c855xcphj4] { font-size: 13px; }


/* ── Propri della scheda SVR ── */
.svr-ico[b-c855xcphj4] { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; }

.svr-vuoto[b-c855xcphj4] {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
    padding: 18px 24px; color: #556074;
}

.svr-fasi[b-c855xcphj4] { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 10px; background: #EEF1F6; align-self: flex-start; }
.svr-fasi button[b-c855xcphj4] {
    min-height: 40px; padding: 0 14px; border: 0; border-radius: 8px; background: transparent;
    font: inherit; font-size: 14px; font-weight: 500; color: #3E4859; cursor: pointer;
}
.svr-fasi button[aria-selected="true"][b-c855xcphj4] { background: #fff; color: #001B48; font-weight: 700; box-shadow: 0 1px 2px rgba(27, 42, 78, .15); }
.svr-fasi-conta[b-c855xcphj4] { color: #556074; font-weight: 500; }

.svr-misure[b-c855xcphj4] { border: 1px solid #E4E9F1; border-radius: 10px; overflow: hidden; }
.svr-misure-testa[b-c855xcphj4], .svr-misure li[b-c855xcphj4] {
    display: grid; grid-template-columns: 48px minmax(0, 2fr) minmax(0, 1fr); gap: 12px; padding: 12px 16px; align-items: baseline;
}
.svr-misure-testa[b-c855xcphj4] { background: #F6F8FC; font-size: 13px; font-weight: 600; color: #3E4859; }
.svr-misure ol[b-c855xcphj4] { list-style: none; margin: 0; padding: 0; }
.svr-misure li[b-c855xcphj4] { border-top: 1px solid #E4E9F1; font-size: 15px; }
.svr-misure-n[b-c855xcphj4] { font-weight: 700; color: #556074; font-variant-numeric: tabular-nums; }

.svr-dpi[b-c855xcphj4] { list-style: none; margin: 0; padding: 20px 24px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.svr-dpi li[b-c855xcphj4] {
    display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid #E4E9F1; border-radius: 10px;
    font-size: 15px; font-weight: 600; color: #18202F;
}
.svr-dpi li > i[b-c855xcphj4] { color: #1E5A3A; font-size: 20px; }
.svr-dpi-img[b-c855xcphj4] { width: 32px; height: 32px; object-fit: contain; }

@media (max-width: 720px) {
    .svr-misure-testa[b-c855xcphj4] { display: none; }
    .svr-misure li[b-c855xcphj4] { grid-template-columns: 32px minmax(0, 1fr); }
    .svr-misure li > span:last-child[b-c855xcphj4] { grid-column: 2; font-size: 13px; }
    .svr-dpi[b-c855xcphj4] { padding: 16px; }
}

@media (max-width: 720px) {
    .ts-testa[b-c855xcphj4] { padding: 10px 12px 0; border-radius: 0 0 12px 12px; }
    .ts-titolo[b-c855xcphj4] { font-size: 22px; }
    .ts-indice[b-c855xcphj4] { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; }
    .ts-indice-voce[b-c855xcphj4] { font-size: 14px; padding: 10px; }
    .ts-sezione-titolo[b-c855xcphj4], .ts-sezione-testa[b-c855xcphj4] { padding: 16px; }
    .ts-sezione-corpo[b-c855xcphj4] { padding: 16px; gap: 16px; }
}
/* _content/GestioneCommessa.Shared/Pages/SVR/DPI/FetchData.razor.rz.scp.css */
/* DPI — Dispositivi di Protezione Individuale */

/* ── Table ───────────────────────────────────────────────────────────── */

.dpi-table thead th[b-n3ue67mq0h] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.dpi-table tbody td[b-n3ue67mq0h] {
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    vertical-align: middle;
}

.dpi-row:hover td[b-n3ue67mq0h] { background: #f7fafd; }

.dpi-name[b-n3ue67mq0h] { font-weight: 600; color: #1E334C; font-size: 0.875rem; }

/* ── Thumbnail ───────────────────────────────────────────────────────── */

.dpi-thumb[b-n3ue67mq0h] {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #dce6f2;
}

.dpi-thumb-placeholder[b-n3ue67mq0h] {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    border: 1px solid #dce6f2;
    background: #f5f8fc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b0c4d8;
    font-size: 1.2rem;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.dpi-icon-btn[b-n3ue67mq0h] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.dpi-icon-btn:hover[b-n3ue67mq0h] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

/* ── Empty state ─────────────────────────────────────────────────────── */

.dpi-empty[b-n3ue67mq0h] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.dpi-empty .bi[b-n3ue67mq0h] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.dpi-empty-title[b-n3ue67mq0h] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.dpi-empty-text[b-n3ue67mq0h] {
    font-size: 0.875rem;
    color: #8696a7;
}
/* _content/GestioneCommessa.Shared/Pages/SVR/DPI/Form.razor.rz.scp.css */
.sec-upload-area[b-4e79ogkkgk] {
    padding: 20px;
    width: 100%;
    min-height: 100px;
    border: 2px dashed #dce6f2;
    border-radius: 10px;
    background: #f5f8fc;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s;
}

.sec-upload-area.hover[b-4e79ogkkgk],
.sec-upload-area:focus-within[b-4e79ogkkgk] {
    border-color: #5B8DB8;
}

.sec-image-current[b-4e79ogkkgk] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.sec-image-preview[b-4e79ogkkgk] {
    max-width: 120px;
    max-height: 120px;
    border-radius: 8px;
    border: 1px solid #dce6f2;
    object-fit: contain;
    background: #f5f8fc;
}

.sec-image-actions[b-4e79ogkkgk] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
/* _content/GestioneCommessa.Shared/Pages/SVR/FetchData.razor.rz.scp.css */
/* SVR — Schede Valutazione Rischi */

/* ── Table ───────────────────────────────────────────────────────────── */

.svr-table thead th[b-is88h7j5t7] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.svr-table tbody td[b-is88h7j5t7] {
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    vertical-align: middle;
}

.svr-row:hover td[b-is88h7j5t7] { background: #f7fafd; cursor: pointer; }

.svr-name[b-is88h7j5t7] { font-weight: 600; color: #1E334C; font-size: 0.875rem; }
.svr-sub[b-is88h7j5t7]  { font-size: 0.82rem; color: #5B7A9A; }

/* ── Type badge ──────────────────────────────────────────────────────── */

.svr-type-badge[b-is88h7j5t7] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #f0ebfa;
    color: #6b3aaa;
    white-space: nowrap;
}

/* ── Count chips ─────────────────────────────────────────────────────── */

.svr-chip[b-is88h7j5t7] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15em 0.6em;
    border-radius: 20px;
    background: #edf3fb;
    color: #2c6a9e;
    white-space: nowrap;
}

.svr-chip-zero[b-is88h7j5t7] {
    background: #f4f5f7;
    color: #8696a7;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.svr-icon-btn[b-is88h7j5t7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.svr-icon-btn:hover[b-is88h7j5t7] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.svr-icon-btn.dropdown-toggle[b-is88h7j5t7]::after { display: none; }

/* ── Empty state ─────────────────────────────────────────────────────── */

.svr-empty[b-is88h7j5t7] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.svr-empty .bi[b-is88h7j5t7] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.svr-empty-title[b-is88h7j5t7] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.svr-empty-text[b-is88h7j5t7] {
    font-size: 0.875rem;
    color: #8696a7;
}
/* _content/GestioneCommessa.Shared/Pages/SVR/Risk/FetchData.razor.rz.scp.css */
/* Rischi */

/* ── Table ───────────────────────────────────────────────────────────── */

.rsk-table thead th[b-a2l2jy3xsr] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.rsk-table tbody td[b-a2l2jy3xsr] {
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    vertical-align: middle;
}

.rsk-row:hover td[b-a2l2jy3xsr] { background: #f7fafd; }

.rsk-name[b-a2l2jy3xsr] { font-weight: 600; color: #1E334C; font-size: 0.875rem; }

/* ── Risk level badge ────────────────────────────────────────────────── */

.rsk-level-badge[b-a2l2jy3xsr] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    white-space: nowrap;
}

.rsk-level-high[b-a2l2jy3xsr]   { background: #fdecea; color: #9e2d1e; }
.rsk-level-medium[b-a2l2jy3xsr] { background: #fff8e6; color: #7a5200; }
.rsk-level-low[b-a2l2jy3xsr]    { background: #edf6ea; color: #3a6b27; }

/* ── Thumbnail ───────────────────────────────────────────────────────── */

.rsk-thumb[b-a2l2jy3xsr] {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #dce6f2;
}

.rsk-thumb-placeholder[b-a2l2jy3xsr] {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    border: 1px solid #dce6f2;
    background: #f5f8fc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b0c4d8;
    font-size: 1.2rem;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.rsk-icon-btn[b-a2l2jy3xsr] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.rsk-icon-btn:hover[b-a2l2jy3xsr] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

/* ── Empty state ─────────────────────────────────────────────────────── */

.rsk-empty[b-a2l2jy3xsr] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.rsk-empty .bi[b-a2l2jy3xsr] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.rsk-empty-title[b-a2l2jy3xsr] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.rsk-empty-text[b-a2l2jy3xsr] {
    font-size: 0.875rem;
    color: #8696a7;
}
/* _content/GestioneCommessa.Shared/Pages/SVR/Risk/Form.razor.rz.scp.css */
.sec-upload-area[b-fefcejuhkk] {
    padding: 20px;
    width: 100%;
    min-height: 100px;
    border: 2px dashed #dce6f2;
    border-radius: 10px;
    background: #f5f8fc;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s;
}

.sec-upload-area.hover[b-fefcejuhkk],
.sec-upload-area:focus-within[b-fefcejuhkk] {
    border-color: #5B8DB8;
}

.sec-image-current[b-fefcejuhkk] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.sec-image-preview[b-fefcejuhkk] {
    max-width: 120px;
    max-height: 120px;
    border-radius: 8px;
    border: 1px solid #dce6f2;
    object-fit: contain;
    background: #f5f8fc;
}

.sec-image-actions[b-fefcejuhkk] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
/* _content/GestioneCommessa.Shared/Pages/Tools/Details.razor.rz.scp.css */
/* Scheda mezzo / attrezzatura (disegno di Vanessa, 2026-10-05).
   Colori della piattaforma: navy #001B48, testo #18202F, grigi #556074 / #3E4859, bordi #D5DCE8. */

/* ── Testata fissa ── */
.ts-testa[b-1pgujzghkq] {
    position: sticky; top: 0; z-index: 5;
    background: #fff; border: 1px solid #D5DCE8; border-radius: 12px;
    padding: 12px 20px 0; margin-bottom: 20px;
    display: flex; flex-direction: column; gap: 8px;
}
.ts-testa-riga[b-1pgujzghkq] { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
.ts-testa-nome[b-1pgujzghkq] { display: flex; gap: 14px; align-items: center; min-width: 0; }
.ts-indietro[b-1pgujzghkq] {
    flex: none; width: 44px; height: 44px; border: 1px solid #CDD5E2; border-radius: 8px; background: #fff; color: #001B48;
    display: inline-flex; align-items: center; justify-content: center; font-size: 18px; cursor: pointer;
}
.ts-indietro:hover[b-1pgujzghkq] { background: #F6F8FC; }
.ts-testa-testi[b-1pgujzghkq] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ts-titolo[b-1pgujzghkq] { margin: 0; font-size: 26px; line-height: 1.15; font-weight: 700; color: #001B48; overflow-wrap: anywhere; }
.ts-chip-riga[b-1pgujzghkq] { display: flex; gap: 6px; flex-wrap: wrap; }
.ts-chip[b-1pgujzghkq] { font-size: 13px; font-weight: 600; color: #3E4859; background: #EEF1F6; border-radius: 6px; padding: 2px 8px; }
.ts-chip--rosso[b-1pgujzghkq] { color: #9B2C25; background: #FBE3E1; }
.ts-azioni[b-1pgujzghkq] { display: flex; flex-wrap: wrap; gap: 10px; }

.ts-btn[b-1pgujzghkq] {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px;
    border-radius: 8px; border: 1px solid #CDD5E2; background: #fff; color: #001B48;
    font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap;
}
.ts-btn:hover[b-1pgujzghkq] { background: #F6F8FC; color: #001B48; }
.ts-btn--primario[b-1pgujzghkq] { background: #001B48; border-color: #001B48; color: #fff; }
.ts-btn--primario:hover[b-1pgujzghkq] { background: #12306B; color: #fff; }
.ts-btn--piccolo[b-1pgujzghkq] { min-height: 34px; padding: 0 12px; font-size: 13px; }

.ts-indice[b-1pgujzghkq] { display: flex; gap: 4px; flex-wrap: wrap; }
.ts-indice-voce[b-1pgujzghkq] {
    display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 10px 12px;
    border: 0; border-bottom: 3px solid transparent; background: transparent;
    font: inherit; font-size: 15px; font-weight: 500; color: #556074; cursor: pointer;
}
.ts-indice-voce:hover[b-1pgujzghkq] { color: #001B48; border-bottom-color: #C8D2E3; }
.ts-indice-conta[b-1pgujzghkq] { font-size: 12px; font-weight: 700; background: #DFE5EF; color: #3E4859; border-radius: 999px; padding: 1px 7px; }

/* ── Sezioni ── */
.ts-corpo[b-1pgujzghkq] { display: flex; flex-direction: column; gap: 20px; padding-bottom: 32px; }
.ts-sezione[b-1pgujzghkq] { background: #fff; border: 1px solid #D5DCE8; border-radius: 12px; overflow: hidden; scroll-margin-top: 200px; }
.ts-sezione-titolo[b-1pgujzghkq] { margin: 0; padding: 18px 24px; font-size: 18px; font-weight: 700; color: #001B48; border-bottom: 1px solid #E4E9F1; }
.ts-sezione-titolo--interno[b-1pgujzghkq] { padding: 0; border: 0; }
.ts-sezione-testa[b-1pgujzghkq] {
    display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
    padding: 18px 24px; border-bottom: 1px solid #E4E9F1;
}
.ts-sezione-testa--piatta[b-1pgujzghkq] { border-bottom: 0; }
.ts-sezione-corpo[b-1pgujzghkq] { padding: 24px; display: flex; flex-direction: column; gap: 24px; }
.ts-nota-sezione[b-1pgujzghkq] { margin: 0; font-size: 14px; color: #556074; }

.ts-dati[b-1pgujzghkq] { display: flex; flex-wrap: wrap; gap: 28px; padding: 24px; }
.ts-immagine[b-1pgujzghkq] {
    flex: 0 1 300px; background: #F6F8FC; border-radius: 10px; padding: 12px;
    display: flex; align-items: center; justify-content: center;
}
.ts-immagine img[b-1pgujzghkq] { display: block; width: 100%; max-width: 280px; max-height: 240px; object-fit: contain; mix-blend-mode: multiply; }

.ts-campi[b-1pgujzghkq] {
    flex: 999 1 420px; margin: 0; display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 22px 28px; align-content: start;
}
.ts-campi--larghi[b-1pgujzghkq] { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ts-campi dt[b-1pgujzghkq] { font-size: 13px; font-weight: 500; color: #556074; margin: 0 0 4px; }
.ts-campi dd[b-1pgujzghkq] { margin: 0; font-size: 16px; font-weight: 600; color: #18202F; overflow-wrap: anywhere; }
.ts-campi .ts-dd-normale[b-1pgujzghkq] { font-weight: 500; font-size: 15px; }
.ts-campo-intero[b-1pgujzghkq] { grid-column: 1 / -1; }
.ts-num[b-1pgujzghkq] { font-variant-numeric: tabular-nums; }
.ts-targa[b-1pgujzghkq] { display: inline-block; letter-spacing: .06em; border: 1.5px solid #001B48; border-radius: 6px; padding: 2px 10px; }

.ts-info[b-1pgujzghkq] {
    display: flex; gap: 12px; align-items: flex-start; background: #EEF3FB; border: 1px solid #CFDCF2;
    border-radius: 10px; padding: 14px 16px; font-size: 15px; line-height: 1.45;
}
.ts-info > i[b-1pgujzghkq] { color: #1F4FA8; font-size: 18px; }
.ts-info strong[b-1pgujzghkq] { display: block; color: #001B48; }
.ts-info span[b-1pgujzghkq] { color: #3E4859; font-size: 14px; }

/* ── Tabelle ── */
.ts-tabella-box[b-1pgujzghkq] { border: 1px solid #E4E9F1; border-radius: 10px; overflow: hidden; }
.ts-tabella[b-1pgujzghkq] { font-size: 15px; }
.ts-tabella th[b-1pgujzghkq] { padding: 12px 16px; background: #F6F8FC; color: #3E4859; font-size: 13px; font-weight: 600; border-bottom: 0; white-space: nowrap; }
.ts-tabella td[b-1pgujzghkq] { padding: 12px 16px; border-top: 1px solid #E4E9F1; vertical-align: middle; }
.ts-tabella th:first-child[b-1pgujzghkq], .ts-tabella td:first-child[b-1pgujzghkq] { padding-left: 24px; }
.ts-tabella th:last-child[b-1pgujzghkq], .ts-tabella td:last-child[b-1pgujzghkq] { padding-right: 24px; }
.ts-tabella tfoot th[b-1pgujzghkq], .ts-tabella tfoot td[b-1pgujzghkq] { border-top: 2px solid #D5DCE8; background: #F6F8FC; }
.ts-tabella--storico td[b-1pgujzghkq] { background: #FBFCFE; color: #556074; }
.ts-totale[b-1pgujzghkq] { font-weight: 700; font-size: 16px; color: #001B48; }

.ts-file[b-1pgujzghkq] {
    display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0; border: 0; background: none;
    font: inherit; font-weight: 600; color: #1F4FA8; text-align: left; overflow-wrap: anywhere; cursor: pointer;
}
.ts-file:hover[b-1pgujzghkq] { text-decoration: underline; }

.ts-pill[b-1pgujzghkq] {
    display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600;
    border-radius: 999px; padding: 3px 10px; border: 1px solid transparent; white-space: nowrap;
}
.ts-pill--mini[b-1pgujzghkq] { font-size: 11px; padding: 1px 7px; margin-top: 4px; }
.ts-pill--neutro[b-1pgujzghkq] { color: #3E4859; background: #EEF1F6; }
.ts-pill--verde[b-1pgujzghkq]  { color: #1E5A3A; background: #E3F1E8; }
.ts-pill--rosso[b-1pgujzghkq]  { color: #9B2C25; background: #FBE3E1; border-color: #F2C3BF; }
.ts-pill--ambra[b-1pgujzghkq]  { color: #7A4100; background: #FCEFD9; border-color: #F1D3A0; }
.ts-pill--blu[b-1pgujzghkq]    { color: #1D4485; background: #E6EEFA; border-color: #C7D6F0; }

.ts-note[b-1pgujzghkq] { padding: 14px 24px 18px; border-top: 1px solid #E4E9F1; font-size: 13.5px; color: #556074; }
.ts-note p[b-1pgujzghkq] { margin: 0 0 6px; }
.ts-note p:last-child[b-1pgujzghkq] { margin-bottom: 0; }

.ts-storico[b-1pgujzghkq] {
    display: flex; align-items: center; gap: 8px; width: 100%; padding: 14px 24px;
    border: 0; border-top: 1px solid #E4E9F1; background: #FBFCFE; text-align: left;
    font: inherit; font-size: 14px; font-weight: 600; color: #001B48; cursor: pointer;
}
.ts-storico .text-muted[b-1pgujzghkq] { font-size: 13px; }

.ts-componente[b-1pgujzghkq] { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
.ts-componente + .ts-componente[b-1pgujzghkq] { border-top: 1px solid #E4E9F1; padding-top: 20px; }

.ts-svr-cat[b-1pgujzghkq] { font-size: 15px; color: #3E4859; margin-top: 4px; }
.ts-svr-cat strong[b-1pgujzghkq] { color: #18202F; }

/* ── Manutenzioni su telefono ── */
.ts-elenco[b-1pgujzghkq] { list-style: none; margin: 0; padding: 0; }
.ts-elenco li[b-1pgujzghkq] { border-top: 1px solid #E4E9F1; padding: 12px 16px; display: flex; flex-direction: column; gap: 6px; }
.ts-elenco-riga[b-1pgujzghkq] { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.ts-elenco-totale[b-1pgujzghkq] { flex-direction: row !important; justify-content: space-between; border-top: 2px solid #D5DCE8 !important; background: #F6F8FC; }
.ts-solo-telefono[b-1pgujzghkq] { display: none; }

.ts-barra-telefono[b-1pgujzghkq] { display: none; }

@media (max-width: 720px) {
    .ts-testa[b-1pgujzghkq] { padding: 10px 12px 0; border-radius: 0 0 12px 12px; }
    .ts-titolo[b-1pgujzghkq] { font-size: 22px; }
    .ts-azioni[b-1pgujzghkq] { display: none; }
    .ts-indice[b-1pgujzghkq] { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; }
    .ts-indice-voce[b-1pgujzghkq] { font-size: 14px; padding: 10px; }
    .ts-sezione-titolo[b-1pgujzghkq], .ts-sezione-testa[b-1pgujzghkq] { padding: 16px; }
    .ts-sezione-corpo[b-1pgujzghkq], .ts-dati[b-1pgujzghkq] { padding: 16px; gap: 16px; }
    .ts-campi[b-1pgujzghkq] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
    .ts-campi dd[b-1pgujzghkq] { font-size: 15px; }
    .ts-solo-largo[b-1pgujzghkq] { display: none; }
    .ts-solo-telefono[b-1pgujzghkq] { display: block; }
    .ts-corpo[b-1pgujzghkq] { padding-bottom: 96px; }
    .ts-barra-telefono[b-1pgujzghkq] {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
        background: #fff; border-top: 1px solid #D5DCE8; padding: 12px 16px;
    }
    .ts-barra-telefono .ts-btn[b-1pgujzghkq] { justify-content: center; min-height: 48px; white-space: normal; text-align: center; }
}
/* _content/GestioneCommessa.Shared/Pages/Tools/FetchData.razor.rz.scp.css */
/* Attrezzature */

/* ── Breadcrumb ──────────────────────────────────────────────────────── */

.tl-breadcrumb[b-hfpgayhbq8] {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.78rem;
    color: #5B7A9A;
}

.tl-bc-item + .tl-bc-item[b-hfpgayhbq8]::before {
    content: '›';
    margin: 0 0.4rem;
    color: #b0c4d8;
}

.tl-bc-item a[b-hfpgayhbq8] { color: #5B7A9A; text-decoration: none; }
.tl-bc-item a:hover[b-hfpgayhbq8] { color: #1E334C; text-decoration: underline; }
.tl-bc-item.active[b-hfpgayhbq8] { color: #1E334C; font-weight: 500; }

/* ── Table ───────────────────────────────────────────────────────────── */

/* Selettori ancorati a `.table.tl-table`: la regola globale `.table:not(.table-sm) > thead > tr > th`
   (specificità 0,2,3) batterebbe il semplice `.tl-table thead th` scoped (0,2,2). */
.table.tl-table thead th[b-hfpgayhbq8] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);   /* standard celle (2026-09-04) */
    height: 48px;
    vertical-align: middle;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.table.tl-table tbody td[b-hfpgayhbq8] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    border-bottom: 1px solid #edf2f7;
    vertical-align: middle;
}

/* Prima/ultima colonna sull'asse della card (24px): la card dei filtri sopra
   ha il card-body a var(--eco-pad), la tabella parte sulla stessa verticale */
.table.tl-table thead th:first-child[b-hfpgayhbq8], .table.tl-table tbody td:first-child[b-hfpgayhbq8] { padding-left: var(--eco-pad, 24px); }
.table.tl-table thead th:last-child[b-hfpgayhbq8],  .table.tl-table tbody td:last-child[b-hfpgayhbq8]  { padding-right: var(--eco-pad, 24px); }

/* Azioni: ultima colonna allineata a destra, icone senza a capo (il markup ha già justify-content-end) */
.tl-table thead th:last-child[b-hfpgayhbq8] { text-align: right; }
.tl-table tbody td:last-child[b-hfpgayhbq8] { white-space: nowrap; }

.tl-row:hover td[b-hfpgayhbq8] { background: #f7fafd; }

.tl-name[b-hfpgayhbq8] { font-weight: 600; color: #1E334C; font-size: 0.875rem; }
.tl-sub[b-hfpgayhbq8]  { font-size: 0.84rem; color: #5B7A9A; }

/* ── Thumbnail ───────────────────────────────────────────────────────── */

.tl-thumb[b-hfpgayhbq8] {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #dce6f2;
}

.tl-thumb-placeholder[b-hfpgayhbq8] {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    border: 1px solid #dce6f2;
    background: #f5f8fc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b0c4d8;
    font-size: 1.2rem;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.tl-icon-btn[b-hfpgayhbq8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.tl-icon-btn:hover[b-hfpgayhbq8] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.tl-icon-btn.dropdown-toggle[b-hfpgayhbq8]::after { display: none; }

/* ── Empty state ─────────────────────────────────────────────────────── */

.tl-empty[b-hfpgayhbq8] {
    text-align: center;
    padding: 3rem 1.5rem;
}

.tl-empty .bi[b-hfpgayhbq8] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.tl-empty-title[b-hfpgayhbq8] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.tl-empty-text[b-hfpgayhbq8] {
    font-size: 0.875rem;
    color: #8696a7;
}

/* ── Schede per tipo, ricerca e nome (disegno di Vanessa, 2026-10-05) ── */
.tl-schede[b-hfpgayhbq8] { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid #D5DCE8; margin-bottom: 16px; }
.tl-scheda[b-hfpgayhbq8] {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; margin-bottom: -1px;
    border: 0; border-bottom: 3px solid transparent; background: transparent;
    font: inherit; font-size: 15px; font-weight: 500; color: #556074; cursor: pointer;
}
.tl-scheda:hover[b-hfpgayhbq8] { color: #001B48; }
.tl-scheda--attiva[b-hfpgayhbq8] { border-bottom-color: #001B48; color: #001B48; font-weight: 600; }
.tl-scheda-conta[b-hfpgayhbq8] { font-size: 13px; font-weight: 600; background: #DFE5EF; color: #3E4859; border-radius: 999px; padding: 1px 8px; }
.tl-scheda--attiva .tl-scheda-conta[b-hfpgayhbq8] { background: #001B48; color: #fff; }
.tl-ricerca-riga[b-hfpgayhbq8] { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.tl-ricerca[b-hfpgayhbq8] { flex: 1 1 320px; max-width: 520px; }
.tl-ricerca .form-control[b-hfpgayhbq8], .tl-ricerca .input-group-text[b-hfpgayhbq8], .tl-ricerca .btn[b-hfpgayhbq8] { min-height: 44px; }
.tl-conta[b-hfpgayhbq8] { font-size: 14px; color: #556074; }
.tl-name-link[b-hfpgayhbq8] { color: #001B48; font-weight: 700; text-decoration: none; }
.tl-name-link:hover[b-hfpgayhbq8] { text-decoration: underline; }
.tl-chip[b-hfpgayhbq8] { font-size: 13px; font-weight: 600; color: #3E4859; background: #EEF1F6; border-radius: 6px; padding: 3px 8px; white-space: nowrap; }
.tl-num[b-hfpgayhbq8] { font-variant-numeric: tabular-nums; }
/* _content/GestioneCommessa.Shared/Pages/Tools/Form.razor.rz.scp.css */
/* ── Upload area ─────────────────────────────────────────────────────── */

.tf-upload-area[b-bmla15t8xh] {
    padding: 20px;
    width: 100%;
    min-height: 100px;
    border: 2px dashed #dce6f2;
    border-radius: 10px;
    background: #f5f8fc;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s;
}

.tf-upload-area.hover[b-bmla15t8xh],
.tf-upload-area:focus-within[b-bmla15t8xh] {
    border-color: #5B8DB8;
}

/* ── Immagine attuale ────────────────────────────────────────────────── */

.tf-image-current[b-bmla15t8xh] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}

.tf-image-preview[b-bmla15t8xh] {
    max-width: 160px;
    max-height: 160px;
    border-radius: 8px;
    border: 1px solid #dce6f2;
    object-fit: contain;
    background: #f5f8fc;
}

.tf-image-actions[b-bmla15t8xh] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ── Tabelle interne ─────────────────────────────────────────────────── */

.tf-table thead th[b-bmla15t8xh] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.tf-table tbody td[b-bmla15t8xh] {
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    vertical-align: middle;
}

.tf-table tbody tr:hover td[b-bmla15t8xh] { background: #f7fafd; }

/* ── Icon button ─────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.tf-icon-btn[b-bmla15t8xh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.tf-icon-btn:hover[b-bmla15t8xh] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.tf-icon-btn.text-danger:hover[b-bmla15t8xh] { background: var(--icobtn-danger-bg, #FBEBED); }

/* ── Barra di salvataggio fissa (disegno di Vanessa, 2026-10-05) ── */
.tf-barra[b-bmla15t8xh] {
    position: sticky; bottom: 0; z-index: 10;
    display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
    margin-top: 24px; padding: 14px 20px;
    background: #fff; border: 1px solid #D5DCE8; border-radius: 12px;
    box-shadow: 0 -4px 16px rgba(15, 27, 45, .08);
}
.tf-stato[b-bmla15t8xh] { font-size: 14px; color: #556074; }
.tf-stato--modificato[b-bmla15t8xh] { color: #1D4485; font-weight: 600; }
.tf-barra-azioni[b-bmla15t8xh] { display: flex; gap: 10px; flex-wrap: wrap; }
.tf-btn[b-bmla15t8xh] { min-height: 44px; font-weight: 600; display: inline-flex; align-items: center; }
.tf-scorciatoia[b-bmla15t8xh] { font-size: 13px; text-align: left; }

@media (max-width: 720px) {
    .tf-barra[b-bmla15t8xh] { border-radius: 12px 12px 0 0; padding: 12px 16px; }
    .tf-barra-azioni[b-bmla15t8xh] { width: 100%; }
    .tf-barra-azioni .tf-btn[b-bmla15t8xh] { flex: 1 1 0; justify-content: center; }
}
/* _content/GestioneCommessa.Shared/Pages/Vendite/FetchData.razor.rz.scp.css */
/* Vendite — FetchData */

.vd-page[b-079qyxspp6] {
    padding: 0;
}

/* ── Card trimestrali progressive ────────────────────────────────────── */

.vd-q-card[b-079qyxspp6] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 20px 24px;               /* standard card KPI (2026-09-04) */
    height: 100%;
    border-top: 3px solid #CBD5E1;
    transition: box-shadow 0.15s;
}
.vd-q-card:hover[b-079qyxspp6] { box-shadow: 0 4px 16px rgba(30,51,76,.08); }

.vd-q-1[b-079qyxspp6] { border-top-color: #4F81BD; }
.vd-q-2[b-079qyxspp6] { border-top-color: #4CAF82; }
.vd-q-3[b-079qyxspp6] { border-top-color: #F59E0B; }
.vd-q-4[b-079qyxspp6] { border-top-color: #6366F1; }

.vd-q-header[b-079qyxspp6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}
.vd-q-label[b-079qyxspp6] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5B7A9A;
}
.vd-q-periodo[b-079qyxspp6] {
    font-size: 0.68rem;
    color: #8FA3B8;
}
.vd-q-value[b-079qyxspp6] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.15;
    margin-bottom: 4px;               /* valore → descrizione */
}
.vd-q-detail[b-079qyxspp6] {
    font-size: 0.72rem;
    color: #6B7C8F;
}

/* ── Tab bar ─────────────────────────────────────────────────────────── */

.vd-tab-btn[b-079qyxspp6] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    outline: none;
    border-radius: 0;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
}

.vd-tab-btn:hover[b-079qyxspp6] { color: #1E334C; }

.vd-tab-btn.active[b-079qyxspp6] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

.vd-tab-count[b-079qyxspp6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.4em;
    background: #e8edf4;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0 0.35em;
    border-radius: 10px;
    margin-left: 0.3rem;
    vertical-align: middle;
}

.vd-tab-btn.active .vd-tab-count[b-079qyxspp6] {
    background: rgba(30, 51, 76, 0.15);
    color: #1E334C;
}

/* ── KPI ─────────────────────────────────────────────────────────────── */

.vd-kpi-card[b-079qyxspp6] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 20px 24px;               /* standard card KPI (2026-09-04): etichetta → valore 6px, valore → descrizione 4px */
    height: 100%;
}

.vd-kpi-label[b-079qyxspp6] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

.vd-kpi-value[b-079qyxspp6] {
    font-size: 1.45rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
    margin-bottom: 4px;
}

.vd-kpi-sub[b-079qyxspp6] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

.vd-kpi-card.success[b-079qyxspp6] { border-left: 3px solid #3a8f47; }
.vd-kpi-card.danger[b-079qyxspp6]  { border-left: 3px solid #9e2d1e; }

/* ── Bulk bar ────────────────────────────────────────────────────────── */

.vd-bulk-bar[b-079qyxspp6] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    background: #edf3fb;
    border: 1px solid #c8d8ee;
    border-radius: 8px;
    padding: 0.55rem 1rem;
}

.vd-bulk-count[b-079qyxspp6] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    white-space: nowrap;
}

/* ── Riga di ricerca e filtri (2026-09-04) ────────────────────────────
   Il markup ha solo classi Bootstrap (`d-flex gap-2 mb-3`): qui la riga prende
   lo standard toolbar — controlli alti var(--eco-ctl-h), gap 12px e stacco
   var(--eco-block) prima della tabella. `!important` serve a battere le utility. */
.vd-page .d-flex.gap-2.mb-3[b-079qyxspp6] {
    gap: 12px !important;
    margin-bottom: var(--eco-block, 24px) !important;
}
.vd-page .d-flex.gap-2.mb-3 .form-control[b-079qyxspp6],
.vd-page .d-flex.gap-2.mb-3 .form-select[b-079qyxspp6] { min-height: var(--eco-ctl-h, 42px); }
/* La barra di selezione, quando c'è, è l'ultimo blocco prima della tabella */
.vd-bulk-bar[b-079qyxspp6] { margin-bottom: var(--eco-block, 24px) !important; }

/* ── Loading ─────────────────────────────────────────────────────────── */

.vd-loading-box[b-079qyxspp6] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    color: #5B7A9A;
}

/* ── Empty state ─────────────────────────────────────────────────────── */

.vd-empty[b-079qyxspp6] {
    text-align: center;
    padding: 2.5rem 1rem;
}

.vd-empty .bi[b-079qyxspp6] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.vd-empty-title[b-079qyxspp6] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.vd-empty-text[b-079qyxspp6] {
    font-size: 0.875rem;
    color: #5B7A9A;
    margin-bottom: 1.25rem;
    line-height: 1.6;
}

/* ── Table container ─────────────────────────────────────────────────── */

.table-responsive[b-079qyxspp6] {
    margin-top: 0.25rem;
    border: 1px solid #e8eef6;
    border-radius: 8px;
    overflow: hidden;
}

/* ── Table ───────────────────────────────────────────────────────────── */

.vd-table[b-079qyxspp6] {
    margin-bottom: 0;
}

/* Selettori ancorati a `.table.vd-table`: la regola globale `.table:not(.table-sm) > thead > tr > th`
   (specificità 0,2,3) batterebbe il semplice `.vd-table thead th` scoped (0,2,2). */
.table.vd-table thead th[b-079qyxspp6] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);   /* standard celle (2026-09-04) */
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
}

.vd-row[b-079qyxspp6] {
    cursor: pointer;
    transition: background 0.1s;
}

.vd-row:hover[b-079qyxspp6] {
    background: #f7fafd;
}

.table.vd-table .vd-row td[b-079qyxspp6] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
    color: #17324d;
}

.table.vd-table tfoot td[b-079qyxspp6] {
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    background: #f7fafd;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #1E334C;
    border-top: 2px solid #dceaf8;
}

/* Prima/ultima colonna sul bordo del riquadro (testata, righe dati e totali) */
.table.vd-table thead th:first-child[b-079qyxspp6], .table.vd-table .vd-row td:first-child[b-079qyxspp6], .table.vd-table tfoot td:first-child[b-079qyxspp6] { padding-left: var(--eco-cell-edge, 20px); }
.table.vd-table thead th:last-child[b-079qyxspp6],  .table.vd-table .vd-row td:last-child[b-079qyxspp6],  .table.vd-table tfoot td:last-child[b-079qyxspp6]  { padding-right: var(--eco-cell-edge, 20px); }
.vd-row td:first-child input[type="checkbox"][b-079qyxspp6] { margin: 0; vertical-align: middle; }

/* Colonne numeriche: Data (3ª, stessa convenzione nth-child del blocco responsive) non va a capo;
   importi con `text-end` a destra, senza a capo, cifre tabellari */
.vd-table thead th:nth-child(3)[b-079qyxspp6], .vd-row td:nth-child(3)[b-079qyxspp6] { white-space: nowrap; }
.vd-table td.text-end[b-079qyxspp6] { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Azioni: ultima colonna allineata a destra, icone senza a capo */
.vd-table thead th:last-child[b-079qyxspp6] { text-align: right; }
.vd-row td:last-child[b-079qyxspp6] { white-space: nowrap; }
.vd-row td:last-child > .d-flex[b-079qyxspp6] { justify-content: flex-end; }

/* ── Typography helpers ──────────────────────────────────────────────── */

.vd-name[b-079qyxspp6] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.875rem;
}

.vd-sub[b-079qyxspp6] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}

/* ── Badge stato incasso ─────────────────────────────────────────────── */

.vd-badge[b-079qyxspp6] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.vd-badge-attesa[b-079qyxspp6]    { background: #ebf5fe; color: #2980b9; }
.vd-badge-incassata[b-079qyxspp6] { background: #edf6ea; color: #3a6b27; }
.vd-badge-parziale[b-079qyxspp6]  { background: #fff8e6; color: #7a5200; }
.vd-badge-scaduta[b-079qyxspp6]   { background: #fdecea; color: #9e2d1e; }

/* ── Badge commessa ──────────────────────────────────────────────────── */

.vd-commessa-badge[b-079qyxspp6] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #e8f1fa;
    color: #2c6a9e;
    white-space: nowrap;
    text-decoration: none;
}

.vd-commessa-badge:hover[b-079qyxspp6] {
    background: #d2e6f7;
    color: #1a4f7a;
    text-decoration: none;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) — prima 28×28, sotto il minimo di piattaforma */
.vd-action-btn[b-079qyxspp6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    border-radius: var(--icobtn-radius, 8px);
    border: none;
    background: transparent;
    color: #5B7A9A;
    font-size: 0.875rem;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
    padding: 0;
}

.vd-action-btn:hover[b-079qyxspp6] { background: #edf3fb; color: #1E334C; }

.vd-action-btn.dropdown-toggle[b-079qyxspp6]::after { display: none; }

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .vd-table thead th:nth-child(3)[b-079qyxspp6],
    .vd-row td:nth-child(3)[b-079qyxspp6],
    .vd-table thead th:nth-child(6)[b-079qyxspp6],
    .vd-row td:nth-child(6)[b-079qyxspp6],
    .vd-table thead th:nth-child(7)[b-079qyxspp6],
    .vd-row td:nth-child(7)[b-079qyxspp6] {
        display: none;
    }

    .vd-bulk-bar[b-079qyxspp6] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Vendite/Form.razor.rz.scp.css */
/* Vendite — Form (layout due colonne + sidebar) */

/* ── Layout due colonne ───────────────────────────────────────────── */

.vd-layout[b-2i2mu2zhud] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    align-items: start;
}

@media (min-width: 992px) {
    .vd-layout[b-2i2mu2zhud] {
        grid-template-columns: 1fr 340px;
    }
}

/* ── Card form (sinistra) ────────────────────────────────────────── */

.vd-card[b-2i2mu2zhud] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    overflow: hidden;
}

.vd-card-header[b-2i2mu2zhud] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid #E2E8F0;
    background: #FAFBFC;
}

.vd-card-icon[b-2i2mu2zhud] {
    font-size: 0.9rem;
    color: #5B7A9A;
}

.vd-card-title[b-2i2mu2zhud] {
    font-size: 0.875rem;
    font-weight: 700;
    color: #1E334C;
}

.vd-card-badge[b-2i2mu2zhud] {
    display: inline-flex;
    align-items: center;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #E8F0FA;
    color: #2c6a9e;
    white-space: nowrap;
}

.vd-card-badge-ok[b-2i2mu2zhud] {
    display: inline-flex;
    align-items: center;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #D4EDDA;
    color: #1a7a38;
    white-space: nowrap;
}

.vd-card-badge-warn[b-2i2mu2zhud] {
    display: inline-flex;
    align-items: center;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #FFF3CD;
    color: #856404;
    white-space: nowrap;
}

.vd-card-body[b-2i2mu2zhud] {
    padding: 1.1rem 1.25rem;
}

/* ── Label obbligatorio ──────────────────────────────────────────── */

.vd-label-req[b-2i2mu2zhud]::after {
    content: " *";
    color: #c0392b;
    font-size: 0.75em;
}

/* ── Pulsante "Nuovo" inline ─────────────────────────────────────── */

/* Colori allineati allo standard add-button tratteggiato (.sf-add-btn); layout invariato */
.vd-btn-add-inline[b-2i2mu2zhud] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    white-space: nowrap;
    background: transparent;
    border: 1px dashed #94A3B8;
    border-radius: 8px;
    color: #5B7A9A;
    font-weight: 600;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.vd-btn-add-inline:hover[b-2i2mu2zhud] {
    background: #F3F7FC;
    color: #1E334C;
    border-color: #5B7A9A;
}

.vd-btn-add-label[b-2i2mu2zhud] {
    display: none;
}

@media (min-width: 768px) {
    .vd-btn-add-label[b-2i2mu2zhud] {
        display: inline;
    }
}

/* ── Alert warning commessa ──────────────────────────────────────── */

.vd-alert-warn[b-2i2mu2zhud] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 8px;
    background: #FFF8E1;
    border: 1px solid #F9A825;
    color: #795548;
}

.vd-alert-warn .bi-exclamation-triangle-fill[b-2i2mu2zhud] {
    color: #F9A825;
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

/* ── Commessa collegata ──────────────────────────────────────────── */

.vd-commessa-linked[b-2i2mu2zhud] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.vd-commessa-linked-info[b-2i2mu2zhud] { flex: 1 1 auto; }

/* ── Tabella righe ───────────────────────────────────────────────── */

.vd-righe-table[b-2i2mu2zhud] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0.5rem;
}

.vd-righe-table th[b-2i2mu2zhud] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8696a7;
    padding: 0 6px 8px 0;
    border-bottom: 1px solid #dceaf8;
    white-space: nowrap;
}

.vd-righe-table td[b-2i2mu2zhud] {
    padding: 7px 6px 7px 0;
    vertical-align: middle;
    border-bottom: 1px solid #edf2f7;
}

.vd-righe-table tbody tr:last-child td[b-2i2mu2zhud] { border-bottom: none; }

.vd-row-warn[b-2i2mu2zhud] { background: #FFFDE7; }
.vd-row-warn:hover[b-2i2mu2zhud] { background: #FFF9C4; }

.vd-warn-hint[b-2i2mu2zhud] {
    font-size: 0.68rem;
    color: #E67E22;
    margin-top: 0.2rem;
}

/* ── Empty state righe ───────────────────────────────────────────── */

.vd-righe-empty[b-2i2mu2zhud] {
    text-align: center;
    padding: 2rem 1rem;
    color: #8696a7;
}

.vd-righe-empty .bi[b-2i2mu2zhud] {
    font-size: 2rem;
    display: block;
    margin-bottom: 0.5rem;
    color: #c8d8e8;
}

.vd-righe-empty-title[b-2i2mu2zhud] {
    font-size: 0.9rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.25rem;
}

.vd-righe-empty-text[b-2i2mu2zhud] {
    font-size: 0.8rem;
    color: #8696a7;
}

/* ── Totali sotto righe ──────────────────────────────────────────── */

.vd-totali-row[b-2i2mu2zhud] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.vd-totale-block[b-2i2mu2zhud] {
    flex: 1;
    min-width: 100px;
    text-align: center;
    padding: 0.65rem 0.85rem;
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 8px;
}

.vd-totale-label[b-2i2mu2zhud] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #8696a7;
    margin-bottom: 0.3rem;
}

.vd-totale-value[b-2i2mu2zhud] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
}

.vd-totale-value.main[b-2i2mu2zhud] {
    font-size: 1.2rem;
    color: #2c6a9e;
}

/* ── Sidebar (destra) ────────────────────────────────────────────── */

.vd-sticky-sidebar[b-2i2mu2zhud] {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 5rem);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF transparent;
}

.vd-sticky-sidebar[b-2i2mu2zhud]::-webkit-scrollbar { width: 4px; }
.vd-sticky-sidebar[b-2i2mu2zhud]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 4px; }

/* ── Sidebar card ────────────────────────────────────────────────── */

.vd-sb-card[b-2i2mu2zhud] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    padding: 1rem;
}

.vd-sb-title[b-2i2mu2zhud] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #5B7A9A;
    margin-bottom: 0.75rem;
}

/* ── Sidebar dl (definition list) ───────────────────────────────── */

.vd-sb-dl[b-2i2mu2zhud] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.25rem 0.75rem;
    margin: 0 0 0.75rem 0;
    font-size: 0.8125rem;
}

.vd-sb-dl dt[b-2i2mu2zhud] {
    color: #5B7A9A;
    font-weight: 500;
    white-space: nowrap;
}

.vd-sb-dl dd[b-2i2mu2zhud] {
    color: #1E334C;
    font-weight: 600;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Sidebar totali ──────────────────────────────────────────────── */

.vd-sb-totali[b-2i2mu2zhud] {
    border-top: 1px solid #E2E8F0;
    padding-top: 0.6rem;
    margin-top: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.vd-sb-tot-row[b-2i2mu2zhud] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8125rem;
    color: #1E334C;
}

.vd-sb-tot-row span:first-child[b-2i2mu2zhud] { color: #5B7A9A; }

.vd-sb-tot-main[b-2i2mu2zhud] {
    border-top: 1px solid #E2E8F0;
    padding-top: 0.3rem;
    margin-top: 0.1rem;
    font-weight: 700;
    font-size: 0.9375rem !important;
    color: #2c6a9e;
}

.vd-sb-tot-main span:first-child[b-2i2mu2zhud] { color: #1E334C; }

.vd-sb-empty-note[b-2i2mu2zhud] {
    font-size: 0.78rem;
    color: #8696a7;
    font-style: italic;
}

/* ── Checklist stato compilazione ────────────────────────────────── */

.vd-checklist[b-2i2mu2zhud] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.vd-checklist li[b-2i2mu2zhud] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
}

.vd-checklist li .bi[b-2i2mu2zhud] { font-size: 0.875rem; flex-shrink: 0; }

.vd-ck-ok[b-2i2mu2zhud] { color: #1a7a38; }
.vd-ck-ok .bi[b-2i2mu2zhud] { color: #27ae60; }

.vd-ck-missing[b-2i2mu2zhud] { color: #1E334C; }
.vd-ck-missing .bi[b-2i2mu2zhud] { color: #CBD5E1; }

.vd-ck-optional[b-2i2mu2zhud] { color: #5B7A9A; }
.vd-ck-optional .bi[b-2i2mu2zhud] { color: #B7D8FF; }

.vd-ck-req[b-2i2mu2zhud] {
    margin-left: auto;
    font-size: 0.65rem;
    font-weight: 700;
    color: #c0392b;
    background: #FDECEA;
    padding: 0.1em 0.45em;
    border-radius: 4px;
    white-space: nowrap;
}

.vd-ck-opt[b-2i2mu2zhud] {
    margin-left: auto;
    font-size: 0.65rem;
    font-weight: 600;
    color: #5B7A9A;
    background: #EDF2F7;
    padding: 0.1em 0.45em;
    border-radius: 4px;
    white-space: nowrap;
}

/* ── Impatto commessa ────────────────────────────────────────────── */

.vd-sb-impact-ok[b-2i2mu2zhud] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    color: #1a7a38;
}

.vd-sb-impact-ok .bi[b-2i2mu2zhud] { font-size: 1rem; flex-shrink: 0; margin-top: 0.1rem; }

.vd-sb-impact-warn[b-2i2mu2zhud] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    color: #856404;
}

.vd-sb-impact-warn .bi[b-2i2mu2zhud] { font-size: 1rem; flex-shrink: 0; margin-top: 0.1rem; color: #F9A825; }

.vd-sb-impact-row[b-2i2mu2zhud] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8125rem;
    border-top: 1px solid #E2E8F0;
    padding-top: 0.5rem;
}

.vd-sb-impact-label[b-2i2mu2zhud] { color: #5B7A9A; }
.vd-sb-impact-value[b-2i2mu2zhud] { font-weight: 700; color: #1E334C; }

/* ── Sticky bar ──────────────────────────────────────────────────── */

.vd-form-spacer[b-2i2mu2zhud] { height: 72px; }

.vd-sticky-bar[b-2i2mu2zhud] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid #E2E8F0;
    padding: 0.75rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    z-index: 100;
    box-shadow: 0 -2px 12px rgba(30, 51, 76, 0.07);
}

/* ── Indicatore modifiche non salvate ────────────────────────────── */

.vd-unsaved[b-2i2mu2zhud] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #E67E22;
}

.vd-unsaved .bi-circle-fill[b-2i2mu2zhud] {
    font-size: 0.45rem;
    color: #E67E22;
}

/* ── Legacy (mantenuto per compatibilità) ────────────────────────── */

.vd-section[b-2i2mu2zhud] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}

.vd-section-title[b-2i2mu2zhud] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8696a7;
    margin-bottom: 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #e8eff7;
}

/* ── Vendita dall'XML (blocco 4, decisione D2 2026-10-07) ────────── */

.vd-xml[b-2i2mu2zhud] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
    border-radius: 8px;
    background: #F3F7FC;
    border: 1px solid #C9DAEE;
    color: #1E334C;
    font-size: 0.85rem;
}

.vd-xml__testo[b-2i2mu2zhud] {
    flex: 1 1 320px;
}

.vd-xml__azioni[b-2i2mu2zhud] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.vd-xml--sbloccata[b-2i2mu2zhud] {
    background: #FFF8E1;
    border-color: #F9A825;
}
/* _content/GestioneCommessa.Shared/Pages/Vendite/Scadenziario.razor.rz.scp.css */
/* Scadenzario incassi */

/* ── Breadcrumb ──────────────────────────────────────────────────────── */

.sc-breadcrumb[b-41arak5lp4] {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.78rem;
    color: #5B7A9A;
}

.sc-bc-item + .sc-bc-item[b-41arak5lp4]::before {
    content: '›';
    margin: 0 0.4rem;
    color: #b0c4d8;
}

.sc-bc-item a[b-41arak5lp4] { color: #5B7A9A; text-decoration: none; }
.sc-bc-item a:hover[b-41arak5lp4] { color: #1E334C; text-decoration: underline; }
.sc-bc-item.active[b-41arak5lp4] { color: #1E334C; font-weight: 500; }

/* ── KPI cards ───────────────────────────────────────────────────────── */

/* Standard di spaziatura (2026-09-04): KPI 20px 24px, etichetta→valore 6px, valore→sub 4px */
.sc-kpi-card[b-41arak5lp4] {
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    padding: 20px 24px;
    height: 100%;
}

.sc-kpi-card.success[b-41arak5lp4] { border-left: 3px solid #27ae60; }
.sc-kpi-card.danger[b-41arak5lp4]  { border-left: 3px solid #c0392b; }
.sc-kpi-card.warn[b-41arak5lp4]    { border-left: 3px solid #e67e22; }

.sc-kpi-label[b-41arak5lp4] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #718096;
    margin-bottom: 6px;
}

.sc-kpi-value[b-41arak5lp4] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.1;
    margin-bottom: 4px;
    white-space: nowrap;
}

.sc-kpi-sub[b-41arak5lp4] {
    font-size: 0.72rem;
    color: #8696a7;
}

/* ── Alert banner ────────────────────────────────────────────────────── */

.sc-alert[b-41arak5lp4] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-left: 3px solid #ffc107;
    border-radius: 8px;
    padding: 0.6rem 0.9rem;
    font-size: 0.84rem;
    color: #6d4c00;
}

.sc-alert-icon[b-41arak5lp4] { font-size: 1rem; flex-shrink: 0; }
.sc-alert-body[b-41arak5lp4] { flex: 1; }

.sc-alert-close[b-41arak5lp4] {
    background: none;
    border: none;
    color: #a0783a;
    cursor: pointer;
    padding: 0;
    font-size: 0.9rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    line-height: 1;
}

.sc-alert-close:hover[b-41arak5lp4] { color: #6d4c00; }

/* ── Month tab bar ───────────────────────────────────────────────────── */

.sc-months-bar[b-41arak5lp4] {
    display: flex;
    background: #fff;
    border: 1px solid #dce6f2;
    border-bottom: none;
    border-radius: 10px 10px 0 0;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #fff;
    /* Il primo tab mese parte sullo stesso asse sinistro della toolbar (24px) */
    padding: 0 calc(var(--eco-pad, 24px) - 0.65rem);
}

.sc-months-bar[b-41arak5lp4]::-webkit-scrollbar { height: 3px; }
.sc-months-bar[b-41arak5lp4]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 3px; }

.sc-mth-btn[b-41arak5lp4] {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.55rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    transition: color 0.12s, border-color 0.12s;
    outline: none;
    margin-bottom: -1px;
}

.sc-mth-btn:hover[b-41arak5lp4] { color: #1E334C; border-bottom-color: #b5cfe8; }

.sc-mth-btn.active[b-41arak5lp4] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

.sc-mbadge[b-41arak5lp4] {
    display: inline-block;
    padding: 0.08em 0.45em;
    border-radius: 10px;
    font-size: 0.67rem;
    font-weight: 700;
    line-height: 1.4;
}

.sc-mbadge-ok[b-41arak5lp4]     { background: #e8edf4; color: #5B7A9A; }
.sc-mbadge-warn[b-41arak5lp4]   { background: #fff3cd; color: #856404; }
.sc-mbadge-danger[b-41arak5lp4] { background: #fdecea; color: #c0392b; }

/* ── Main card (connects to month bar) ───────────────────────────────── */

.sc-card[b-41arak5lp4] {
    background: #fff;
    border: 1px solid #dce6f2;
    border-radius: 0 0 10px 10px;
    overflow: hidden;
}

/* ── Toolbar ─────────────────────────────────────────────────────────── */

/* Toolbar dentro la card: asse sinistro a 24px, gap 12px, controlli alti 42px */
.sc-toolbar[b-41arak5lp4] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    padding: 16px var(--eco-pad, 24px);
    border-bottom: 1px solid #edf2f7;
}

.sc-toolbar .form-select[b-41arak5lp4],
.sc-toolbar .form-control[b-41arak5lp4] { min-height: var(--eco-ctl-h, 42px); }

.sc-search-wrap[b-41arak5lp4] {
    position: relative;
    flex: 1;
    min-width: 200px;
    max-width: 400px;
}

.sc-search-icon[b-41arak5lp4] {
    position: absolute;
    left: 0.6rem;
    top: 50%;
    transform: translateY(-50%);
    color: #a0aec0;
    font-size: 0.78rem;
    pointer-events: none;
}

.sc-search-input[b-41arak5lp4] {
    width: 100%;
    min-height: var(--eco-ctl-h, 42px);
    padding: 0.35rem 0.75rem 0.35rem 2rem;
    border: 1px solid #dce6f2;
    border-radius: 6px;
    font-size: 0.84rem;
    color: #1E334C;
    background: #f9fbfd;
    outline: none;
    transition: border-color 0.12s;
}

.sc-search-input:focus[b-41arak5lp4] { border-color: #4a7fb5; background: #fff; }

/* ── Table ───────────────────────────────────────────────────────────── */

.sc-table[b-41arak5lp4] {
    width: 100%;
    border-collapse: collapse;
}

.sc-table thead th[b-41arak5lp4] {
    background: #f5f8fc;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #718096;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    border-bottom: 1px solid #dce6f2;
    white-space: nowrap;
}

.sc-table tbody td[b-41arak5lp4] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    border-bottom: 1px solid #edf2f7;
    font-size: 0.875rem;
    color: #17324d;
    vertical-align: middle;
}

.sc-table tfoot td[b-41arak5lp4] {
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    background: #f5f8fc;
    font-size: 0.84rem;
    border-top: 2px solid #dce6f2;
}

/* Prima/ultima colonna sull'asse della toolbar (24px): la checkbox non è più a filo */
.sc-table th:first-child[b-41arak5lp4], .sc-table td:first-child[b-41arak5lp4] { padding-left: var(--eco-pad, 24px); }
.sc-table th:last-child[b-41arak5lp4],  .sc-table td:last-child[b-41arak5lp4]  { padding-right: var(--eco-pad, 24px); text-align: right; white-space: nowrap; }
.sc-table th:first-child input[type="checkbox"][b-41arak5lp4],
.sc-table td:first-child input[type="checkbox"][b-41arak5lp4] { margin: 0; vertical-align: middle; }

.sc-row:hover td[b-41arak5lp4] { background: #f7fafd; }
.sc-row-scaduta td[b-41arak5lp4] { background: #fffcfc; }
.sc-row-incassata[b-41arak5lp4] { opacity: 0.7; }

.sc-actions-col[b-41arak5lp4] { width: 7rem; }

.sc-nome[b-41arak5lp4]    { font-weight: 600; color: #1E334C; font-size: 0.875rem; }
.sc-sub[b-41arak5lp4]     { font-size: 0.78rem; color: #5B7A9A; }
.sc-sub-muted[b-41arak5lp4] { font-size: 0.72rem; color: #8696a7; margin-top: 0.1rem; }
.sc-importo[b-41arak5lp4] { font-weight: 700; color: #1E334C; white-space: nowrap; font-variant-numeric: tabular-nums; }
.sc-ritardo[b-41arak5lp4] { font-size: 0.72rem; color: #c0392b; margin-top: 0.1rem; }

.sc-commessa-link[b-41arak5lp4] {
    text-decoration: none;
    color: inherit;
    display: block;
}

.sc-commessa-link:hover .sc-commessa-code[b-41arak5lp4] { text-decoration: underline; }

.sc-commessa-code[b-41arak5lp4] {
    font-weight: 600;
    color: #2980b9;
    font-size: 0.875rem;
}

.sc-tfoot-label[b-41arak5lp4] { font-weight: 700; color: #1E334C; }
.sc-tfoot-count[b-41arak5lp4] { font-size: 0.78rem; color: #5B7A9A; }

/* ── Badges ──────────────────────────────────────────────────────────── */

.sc-badge[b-41arak5lp4] {
    display: inline-block;
    padding: 0.2em 0.6em;
    border-radius: 10px;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

.sc-badge-ok[b-41arak5lp4]      { background: #eafaf1; color: #27ae60; }
.sc-badge-warn[b-41arak5lp4]    { background: #fef9e7; color: #e67e22; }
.sc-badge-danger[b-41arak5lp4]  { background: #fdecea; color: #c0392b; }
.sc-badge-info[b-41arak5lp4]    { background: #ebf5fe; color: #2980b9; }
.sc-badge-nc[b-41arak5lp4]      { background: #f4f5f7; color: #718096; }

/* ── Action icon buttons ─────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.sc-icon-btn[b-41arak5lp4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.sc-icon-btn:hover[b-41arak5lp4] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.sc-icon-btn.dropdown-toggle[b-41arak5lp4]::after { display: none; }

/* ── Empty state ─────────────────────────────────────────────────────── */

.sc-empty[b-41arak5lp4] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.sc-empty .bi[b-41arak5lp4] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.sc-empty-title[b-41arak5lp4] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.sc-empty-text[b-41arak5lp4] {
    font-size: 0.875rem;
    color: #8696a7;
    line-height: 1.6;
}

/* ── Modal overlay ───────────────────────────────────────────────────── */

.sc-overlay[b-41arak5lp4] {
    position: fixed;
    inset: 0;
    background: rgba(10, 25, 50, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    padding: 1rem;
}

.sc-dialog[b-41arak5lp4] {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    width: 100%;
    max-width: 480px;
    overflow: hidden;
}

.sc-dialog-hd[b-41arak5lp4] {
    padding: 1rem 1.25rem 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
    border-bottom: 1px solid #edf2f7;
}

.sc-dialog-bd[b-41arak5lp4] {
    padding: 1rem 1.25rem;
}

.sc-dialog-bd .form-label[b-41arak5lp4] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.25rem;
}

.sc-dialog-ft[b-41arak5lp4] {
    padding: 0.75rem 1.25rem 1rem;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    border-top: 1px solid #edf2f7;
}

/* ── Commessa picker ─────────────────────────────────────────────────── */

.sc-ap-list[b-41arak5lp4] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-height: 220px;
    overflow-y: auto;
}

.sc-ap-item[b-41arak5lp4] {
    display: block;
    width: 100%;
    text-align: left;
    background: #f7fafd;
    border: 1px solid #dce6f2;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    font-size: 0.84rem;
    color: #1E334C;
    cursor: pointer;
    transition: background 0.1s, border-color 0.1s;
}

.sc-ap-item:hover[b-41arak5lp4] { background: #edf3fb; border-color: #b5cfe8; }

.sc-ap-item.selected[b-41arak5lp4] {
    background: #1E334C;
    border-color: #1E334C;
    color: #fff;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/FetchData.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════════════
   Elenco commesse. Stessi token del design system di commessa.ai (economia.css):
   navy #001B48 / #1E334C, bordi #DDE5EF, superfici #F5F8FC, testo tenue #5B7A9A.
   Palette ridotta: blu (identità), verde (ok), giallo (attenzione), rosso
   (blocco), viola SOLO per la categoria SOA. Nessun altro colore.
   Foglio SCOPED: le classi eco-* (kpi, badge, tabella, card, empty, act, footer)
   arrivano dal foglio globale e non vanno ridefinite qui.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Intestazione ────────────────────────────────────────────────────────── */

/* Standard di spaziatura (2026-09-04): header → KPI → filtri → toolbar → tabella
   distano fra loro var(--eco-block); i controlli dei filtri sono alti var(--eco-ctl-h). */
.cm-head[b-nb7p9ivqjg] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: var(--eco-block, 24px);
}

.cm-head__txt[b-nb7p9ivqjg] { min-width: 0; flex: 1 1 300px; }

.cm-head__title[b-nb7p9ivqjg] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.01em;
    color: #1E334C;
}

.cm-head__sub[b-nb7p9ivqjg] {
    margin: 4px 0 0;
    font-size: .86rem;
    color: #5B7A9A;
    max-width: 70ch;
}

.cm-head__actions[b-nb7p9ivqjg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* ── KPI ─────────────────────────────────────────────────────────────────── */

.cm-kpis[b-nb7p9ivqjg] { margin-bottom: var(--eco-block, 24px); }

/* Variazione mostrata nel sottotitolo della KPI */
.cm-delta[b-nb7p9ivqjg] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    margin-right: 4px;
}

.cm-delta.is-up[b-nb7p9ivqjg]   { color: #23824F; }
.cm-delta.is-down[b-nb7p9ivqjg] { color: #C0392B; }
.cm-delta.is-flat[b-nb7p9ivqjg] { color: #8696a7; }

/* ── Filter bar ──────────────────────────────────────────────────────────── */

.cm-filters[b-nb7p9ivqjg] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: 16px var(--eco-pad, 24px);
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    margin-bottom: var(--eco-block, 24px);
}

.cm-filters__grid[b-nb7p9ivqjg] {
    display: grid;
    grid-template-columns: minmax(220px, 1.6fr) repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    align-items: end;
}

.cm-field[b-nb7p9ivqjg] { min-width: 0; }
.cm-field--search[b-nb7p9ivqjg] { grid-column: span 1; }

.cm-field__lbl[b-nb7p9ivqjg] {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-bottom: 6px;
}

.cm-field .form-select[b-nb7p9ivqjg],
.cm-field .form-control[b-nb7p9ivqjg] { width: 100%; min-height: var(--eco-ctl-h, 42px); }

/* Pulsanti dei filtri alla stessa altezza dei controlli */
.cm-field .btn[b-nb7p9ivqjg],
.cm-filters__go .btn[b-nb7p9ivqjg] { min-height: var(--eco-ctl-h, 42px); display: inline-flex; align-items: center; }

.cm-field--adv .dropdown[b-nb7p9ivqjg] { width: 100%; }
.cm-field--adv .btn.is-on[b-nb7p9ivqjg] { border-color: #4A6FA5; color: #001B48; background: #EDF3FB; }

.cm-filters__go[b-nb7p9ivqjg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #EDF2F7;
}

.cm-filters__spacer[b-nb7p9ivqjg] { margin-left: auto; }

/* ── Tab di stato + segmented control ────────────────────────────────────── */

.cm-tabsbar[b-nb7p9ivqjg] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid #DDE5EF;
    margin-bottom: 16px;
}

.cm-tabs[b-nb7p9ivqjg] {
    display: flex;
    align-items: stretch;
    gap: 2px;
    overflow-x: auto;
    scrollbar-width: thin;
    margin-bottom: -1px;
}

.cm-tab[b-nb7p9ivqjg] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    min-height: 42px;
    font-size: .86rem;
    font-weight: 500;
    color: #5B7A9A;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color .13s, border-color .13s;
    outline-offset: -3px;
}

.cm-tab:hover[b-nb7p9ivqjg] { color: #001B48; }
.cm-tab:focus-visible[b-nb7p9ivqjg] { outline: 2px solid #001B48; }

.cm-tab.active[b-nb7p9ivqjg] {
    color: #001B48;
    font-weight: 700;
    border-bottom-color: #001B48;
}

.cm-count[b-nb7p9ivqjg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #EDF2F7;
    color: #5B7A9A;
    font-size: .68rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.cm-tab.active .cm-count[b-nb7p9ivqjg] { background: #DCE6F3; color: #001B48; }

.cm-seg[b-nb7p9ivqjg] {
    display: inline-flex;
    padding: 3px;
    margin-bottom: 8px;
    background: #F3F6FA;
    border: 1px solid #E5EBF2;
    border-radius: 9px;
    flex: 0 0 auto;
    overflow-x: auto;
    scrollbar-width: none;
}

.cm-seg[b-nb7p9ivqjg]::-webkit-scrollbar { display: none; }

.cm-seg__item[b-nb7p9ivqjg] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    min-height: 32px;
    border: none;
    border-radius: 7px;
    background: transparent;
    color: #5B7A9A;
    font-size: .82rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background .14s, color .14s, box-shadow .14s;
}

.cm-seg__item:hover[b-nb7p9ivqjg] { color: #001B48; }

.cm-seg__item.active[b-nb7p9ivqjg] {
    background: #001B48;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0, 27, 72, .18);
}

/* ── Toolbar sopra la tabella ────────────────────────────────────────────── */

.cm-toolbar[b-nb7p9ivqjg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: var(--eco-block, 24px);
}

.cm-toolbar .btn[b-nb7p9ivqjg] { min-height: var(--eco-ctl-h, 42px); display: inline-flex; align-items: center; }

.cm-toolbar__count[b-nb7p9ivqjg] {
    font-size: .84rem;
    font-weight: 700;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
}

.cm-toolbar__sel[b-nb7p9ivqjg] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 11px;
    border: 1px solid #DDE5EF;
    border-radius: 8px;
    font-size: .8rem;
    color: #5B7A9A;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cm-toolbar__sel.is-on[b-nb7p9ivqjg] {
    border-color: #4A6FA5;
    background: #EDF3FB;
    color: #001B48;
    font-weight: 600;
}

/* ── Tabella ─────────────────────────────────────────────────────────────── */

.cm-table[b-nb7p9ivqjg] { table-layout: auto; }

/* Nessuno scroll verticale interno (correzione UX 2026-09-04): la tabella cresce con le righe
   della pagina corrente e scorre SOLO la pagina; la quantità la governa "Righe per pagina".
   Prima c'era un contenitore con max-height + overflow:auto per l'header sticky, che creava
   una seconda scrollbar sul lato destro. `.table-responsive` resta per il solo scroll
   orizzontale su schermi stretti. */
.cm-table thead th[b-nb7p9ivqjg] { box-shadow: inset 0 -1px 0 #DDE5EF; }

/* Celle: nessun override scoped (2026-09-04). Prima `.cm-table tbody td { height:auto; padding:12px 14px }`
   batteva lo standard globale di `.eco-table` (14px/16px, riga 54px, prima/ultima colonna 20px):
   ora vale il foglio globale, così la lista è allineata alle altre tabelle eco-*. */

.cm-row[b-nb7p9ivqjg] { cursor: pointer; }

.cm-name[b-nb7p9ivqjg] {
    font-weight: 600;
    color: #1E334C;
    font-size: .88rem;
    line-height: 1.35;
}

.cm-code[b-nb7p9ivqjg] {
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .03em;
    color: #8696a7;
    font-variant-numeric: tabular-nums;
    margin-top: 1px;
}

.cm-meta[b-nb7p9ivqjg] {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 12px;
    margin-top: 5px;
}

.cm-meta__i[b-nb7p9ivqjg] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .75rem;
    color: #5B7A9A;
    min-width: 0;
    max-width: 26ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cm-meta__i > i[b-nb7p9ivqjg] { color: #8696a7; font-size: .72rem; flex-shrink: 0; }

.cm-cliente[b-nb7p9ivqjg] {
    font-size: .84rem;
    color: #3D5872;
}

.cm-dash[b-nb7p9ivqjg] { color: #B9C9DA; }

/* Categoria SOA: unico uso del viola in tutta la pagina */
.cm-cat[b-nb7p9ivqjg] {
    display: inline-block;
    padding: .2em .6em;
    border-radius: 10px;
    background: #F0EBFA;
    color: #6B3AAA;
    font-size: .72rem;
    font-weight: 600;
    line-height: 1.35;
}

.cm-amount[b-nb7p9ivqjg] {
    font-weight: 700;
    color: #1E334C;
    font-size: .88rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cm-amount__sub[b-nb7p9ivqjg] {
    font-size: .74rem;
    color: #8696a7;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    margin-top: 1px;
}

/* ── Progress bar avanzamento ────────────────────────────────────────────── */

.cm-prog[b-nb7p9ivqjg] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.cm-prog__bar[b-nb7p9ivqjg] {
    flex: 1;
    min-width: 52px;
    height: 6px;
    border-radius: 999px;
    background: #E7EDF5;
    overflow: hidden;
}

.cm-prog__fill[b-nb7p9ivqjg] {
    height: 100%;
    border-radius: 999px;
    background: #2C6ECB;
    transition: width .25s ease-out;
}

.cm-prog__fill.is-warn[b-nb7p9ivqjg] { background: #D9A317; }
.cm-prog__fill.is-done[b-nb7p9ivqjg] { background: #23824F; }

.cm-prog__val[b-nb7p9ivqjg] {
    font-size: .76rem;
    font-weight: 700;
    color: #3D5872;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    min-width: 2.6em;
    text-align: right;
}

/* ── Alert di riga ───────────────────────────────────────────────────────── */

.cm-alerts[b-nb7p9ivqjg] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

.cm-alert[b-nb7p9ivqjg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 6px;
    font-size: .84rem;
    cursor: help;
}

.cm-alert--warn[b-nb7p9ivqjg] { background: #FBF0D9; color: #A5820F; }
.cm-alert--err[b-nb7p9ivqjg]  { background: #FBEBED; color: #C0392B; }
.cm-alert--info[b-nb7p9ivqjg] { background: #EDF3FB; color: #2C6ECB; }
.cm-alert--ok[b-nb7p9ivqjg]   { background: #E8F6EE; color: #23824F; }

/* ── Vista a card ────────────────────────────────────────────────────────── */

.cm-cards[b-nb7p9ivqjg] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px;
    margin-bottom: 14px;
}

.cm-card[b-nb7p9ivqjg] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: 14px 16px;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    cursor: pointer;
    transition: box-shadow .14s, border-color .14s, transform .1s;
}

.cm-card:hover[b-nb7p9ivqjg] {
    border-color: #C7D8EC;
    box-shadow: 0 4px 14px rgba(30, 51, 76, .08);
}

.cm-card__head[b-nb7p9ivqjg] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.cm-card__id[b-nb7p9ivqjg] { min-width: 0; }

.cm-card__acts[b-nb7p9ivqjg] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.cm-card__badges[b-nb7p9ivqjg] { display: flex; flex-wrap: wrap; gap: 6px; }

.cm-card__meta[b-nb7p9ivqjg] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cm-card__stats[b-nb7p9ivqjg] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid #EDF2F7;
    border-bottom: 1px solid #EDF2F7;
}

.cm-card__stat[b-nb7p9ivqjg] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.cm-card__lbl[b-nb7p9ivqjg] {
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
}

.cm-card__val[b-nb7p9ivqjg] {
    font-size: .92rem;
    font-weight: 700;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
}

.cm-card__sub[b-nb7p9ivqjg] { font-size: .72rem; font-weight: 400; color: #8696a7; margin-left: 4px; }

.cm-card__foot[b-nb7p9ivqjg] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.cm-card__foot .cm-prog[b-nb7p9ivqjg] { flex: 1; }

/* Footer paginazione sotto la griglia di card */
.cm-cards-foot[b-nb7p9ivqjg] { border: 1px solid #DDE5EF; }

/* ── Tablet ──────────────────────────────────────────────────────────────── */

@media (max-width: 1200px) {
    .cm-kpis[b-nb7p9ivqjg] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 992px) {
    .cm-kpis[b-nb7p9ivqjg] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cm-filters__grid[b-nb7p9ivqjg] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cm-field--search[b-nb7p9ivqjg] { grid-column: 1 / -1; }
}

/* ── Mobile ──────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .cm-head__title[b-nb7p9ivqjg] { font-size: 1.24rem; }
    .cm-head__actions[b-nb7p9ivqjg] { margin-left: 0; width: 100%; }
    .cm-head__actions .btn[b-nb7p9ivqjg] { flex: 1 1 auto; }

    .cm-filters__grid[b-nb7p9ivqjg] { grid-template-columns: minmax(0, 1fr); }
    .cm-filters__go[b-nb7p9ivqjg] { flex-direction: column; align-items: stretch; }
    .cm-filters__spacer[b-nb7p9ivqjg] { display: none; }
    .cm-filters__go .btn[b-nb7p9ivqjg] { width: 100%; }

    .cm-tabsbar[b-nb7p9ivqjg] { flex-direction: column-reverse; align-items: stretch; gap: 10px; }
    .cm-seg[b-nb7p9ivqjg] { width: 100%; margin-bottom: 0; }
    .cm-seg__item[b-nb7p9ivqjg] { flex: 1 0 auto; justify-content: center; min-height: 38px; }
    .cm-tab[b-nb7p9ivqjg] { min-height: 44px; }

    .cm-toolbar > .dropdown[b-nb7p9ivqjg] { flex: 1 1 auto; }
    .cm-toolbar > .dropdown .btn[b-nb7p9ivqjg] { width: 100%; }

    .cm-cards[b-nb7p9ivqjg] { grid-template-columns: minmax(0, 1fr); }
}

/* Azioni di riga: icone in linea, mai un menu ⋮ (regola utente sugli elenchi, 2026-09-18).
   Le icone stanno su UNA riga e restano attaccate al bordo destro della cella. */
.cm-table .is-actions[b-nb7p9ivqjg] {
    white-space: nowrap;
    text-align: right;
}

.cm-table .is-actions .eco-act[b-nb7p9ivqjg] {
    display: inline-flex;
    vertical-align: middle;
}

.cm-table .is-actions .eco-act + .eco-act[b-nb7p9ivqjg] {
    margin-left: 4px;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Form.razor.rz.scp.css */
/* Form — Worksites */

/* ── Breadcrumb ──────────────────────────────────────────────────────── */
.ws-breadcrumb-nav .breadcrumb[b-0xxrdxiqu8] {
    font-size: 0.8rem;
    color: #8696a7;
}

.ws-breadcrumb-nav .breadcrumb-item a[b-0xxrdxiqu8] {
    color: #5B8DB8;
    text-decoration: none;
}

.ws-breadcrumb-nav .breadcrumb-item.active[b-0xxrdxiqu8] {
    color: #1E334C;
    font-weight: 600;
}

/* ── Form section card ───────────────────────────────────────────────── */
.ws-section[b-0xxrdxiqu8] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
}

.ws-section-title[b-0xxrdxiqu8] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8696a7;
    margin-bottom: 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #e8eff7;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ws-sub-label[b-0xxrdxiqu8] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #8696a7;
    margin-bottom: -0.25rem;
}

.ws-field-hint[b-0xxrdxiqu8] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #8696a7;
    margin-left: 0.3rem;
}

/* ── Tipologia buttons ───────────────────────────────────────────────── */
.ws-tipologia-group[b-0xxrdxiqu8] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ws-tipo-btn[b-0xxrdxiqu8] {
    padding: 0.45rem 1rem;
    border: 1.5px solid #c8d8ec;
    border-radius: 20px;
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.845rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    white-space: nowrap;
}

.ws-tipo-btn:hover[b-0xxrdxiqu8] {
    border-color: #5B8DB8;
    color: #1E334C;
    background: #eef5fb;
}

.ws-tipo-btn.active[b-0xxrdxiqu8] {
    border-color: #2c6a9e;
    background: #e8f1fa;
    color: #1E334C;
    font-weight: 600;
}

/* ── Count badge ─────────────────────────────────────────────────────── */
.ws-count-badge[b-0xxrdxiqu8] {
    display: inline-block;
    background: #e8edf4;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.1em 0.5em;
    border-radius: 10px;
    vertical-align: middle;
}

/* ── Readonly computed field ─────────────────────────────────────────── */
.ws-readonly-field[b-0xxrdxiqu8] {
    background: #f7fafd;
    color: #5B7A9A;
    font-weight: 600;
}

/* ── Empty cantieri state ────────────────────────────────────────────── */
.ws-empty-cantieri[b-0xxrdxiqu8] {
    text-align: center;
    padding: 1.5rem 1rem;
    background: #f7fafd;
    border: 1px dashed #c8d8ec;
    border-radius: 8px;
    color: #8696a7;
}

/* ── Cantiere card ───────────────────────────────────────────────────── */
.ws-cantiere-card[b-0xxrdxiqu8] {
    border: 1px solid #dceaf8;
    border-radius: 8px;
    overflow: hidden;
}

.ws-cantiere-header[b-0xxrdxiqu8] {
    display: flex;
    align-items: center;
    padding: 0.6rem 1rem;
    background: #f0f6fc;
    border-bottom: 1px solid #dceaf8;
}

.ws-cantiere-num[b-0xxrdxiqu8] {
    font-size: 0.82rem;
    font-weight: 700;
    color: #1E334C;
    letter-spacing: 0.01em;
}

/* ── Icon-only button — canonico 36×36 (token globali in app.css) ────── */
.ws-icon-btn[b-0xxrdxiqu8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.ws-icon-btn:hover[b-0xxrdxiqu8] {
    background: var(--icobtn-hover-bg, #EDF3FB);
    color: var(--icobtn-hover-ink, #001B48);
}

/* ── Roles ───────────────────────────────────────────────────────────── */
.ws-roles-title[b-0xxrdxiqu8] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #8696a7;
    margin-bottom: 0.6rem;
}

.ws-roles-list[b-0xxrdxiqu8] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.ws-role-row[b-0xxrdxiqu8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ws-role-label[b-0xxrdxiqu8] {
    flex: 0 0 200px;
    font-size: 0.82rem;
    font-weight: 500;
    color: #334155;
    white-space: nowrap;
}

.ws-role-type-select[b-0xxrdxiqu8] {
    flex: 0 0 220px;
}

.ws-role-field[b-0xxrdxiqu8] {
    flex: 1;
    min-width: 0;
}

/* ── Punto GPS cantiere ──────────────────────────────────────────────── */

.ws-geo-row[b-0xxrdxiqu8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0;
}

.ws-geo-info[b-0xxrdxiqu8] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex: 1;
    min-width: 0;
}

.ws-geo-dot[b-0xxrdxiqu8] {
    font-size: 0.9rem;
    color: #2e7d32;
    flex-shrink: 0;
}

.ws-geo-dot--off[b-0xxrdxiqu8] {
    color: #b0bec5;
}

.ws-geo-label[b-0xxrdxiqu8] {
    font-size: 0.8125rem;
    color: #1E334C;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ws-geo-placeholder[b-0xxrdxiqu8] {
    font-size: 0.8125rem;
    color: #94a3b8;
}

.ws-geo-clear[b-0xxrdxiqu8] {
    background: none;
    border: none;
    cursor: pointer;
    color: #9e9e9e;
    font-size: 1rem;
    padding: 0;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 1;
}

.ws-geo-clear:hover[b-0xxrdxiqu8] { color: #e53935; }

/* Pulsante GPS: rotondo, stile mic, inline nel form */
.ws-geo-fab[b-0xxrdxiqu8] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #1E334C;
    color: white;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    cursor: pointer;
    flex-shrink: 0;
    box-shadow: 0 3px 8px rgba(30, 51, 76, 0.30);
    transition: background 0.15s, box-shadow 0.15s;
}

.ws-geo-fab:hover[b-0xxrdxiqu8] {
    background: #2d4e70;
    box-shadow: 0 4px 12px rgba(30, 51, 76, 0.40);
}

.ws-geo-fab--loading[b-0xxrdxiqu8] {
    background: #455a64;
    cursor: default;
}

.ws-geo-fab:disabled[b-0xxrdxiqu8] {
    opacity: 0.7;
    cursor: default;
}

/* ── Sticky bottom bar ───────────────────────────────────────────────── */
.ws-sticky-bar[b-0xxrdxiqu8] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: white;
    border-top: 1px solid #dceaf8;
    padding: 0.75rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    z-index: 100;
    box-shadow: 0 -2px 8px rgba(30, 51, 76, 0.06);
}

@media (max-width: 576px) {
    .ws-role-label[b-0xxrdxiqu8] {
        flex: 0 0 120px;
        font-size: 0.75rem;
    }

    .ws-tipo-btn[b-0xxrdxiqu8] {
        font-size: 0.8rem;
        padding: 0.35rem 0.75rem;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/POS/Form.razor.rz.scp.css */
/* Nuovo POS — Form.razor */

/* ── Card ─────────────────────────────────────────────────────────────── */

.pos-form-card[b-who5x7kyve] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

.pos-card-header[b-who5x7kyve] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #E2E8F0;
    background: #FAFBFC;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.pos-card-title[b-who5x7kyve] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    display: block;
}

.pos-card-sub[b-who5x7kyve] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.15rem;
}

.pos-card-body[b-who5x7kyve] {
    padding: 1.25rem;
}

/* ── Grid layout ──────────────────────────────────────────────────────── */

.pos-grid-3[b-who5x7kyve] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem 1.5rem;
}

.pos-grid-2[b-who5x7kyve] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem 2rem;
}

@media (max-width: 991px) {
    .pos-grid-3[b-who5x7kyve] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .pos-grid-3[b-who5x7kyve],
    .pos-grid-2[b-who5x7kyve] {
        grid-template-columns: 1fr;
    }
}

/* ── Form field ───────────────────────────────────────────────────────── */

.pos-field[b-who5x7kyve] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.pos-label[b-who5x7kyve] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0;
}

.pos-required[b-who5x7kyve] {
    color: #c0392b;
    margin-left: 0.15rem;
}

.pos-textarea[b-who5x7kyve] {
    min-height: 120px;
    resize: vertical;
}

/* ── Section header (inside card) ────────────────────────────────────── */

.pos-section-header[b-who5x7kyve] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pos-section-title[b-who5x7kyve] {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Empty state ──────────────────────────────────────────────────────── */

.pos-empty-state[b-who5x7kyve] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1rem;
    background: #F8FAFC;
    border: 1px dashed #CBD5E1;
    border-radius: 8px;
    font-size: 0.8125rem;
    color: #8696A7;
}

.pos-empty-state .bi[b-who5x7kyve] {
    font-size: 1.1rem;
    color: #B7C9D9;
    flex-shrink: 0;
}

/* ── Table ────────────────────────────────────────────────────────────── */

.pos-table-wrapper[b-who5x7kyve] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #fff;
}

.pos-table-wrapper[b-who5x7kyve]::-webkit-scrollbar { height: 4px; }
.pos-table-wrapper[b-who5x7kyve]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 4px; }

.pos-table[b-who5x7kyve] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.pos-table thead th[b-who5x7kyve] {
    background: #F5F8FC;
    color: #718096;
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.5rem 0.6rem;
    border-bottom: 2px solid #DCEAF8;
    white-space: nowrap;
}

.pos-table thead th.pos-th-actions[b-who5x7kyve] {
    width: 3rem;
    text-align: center;
}

.pos-table tbody td[b-who5x7kyve] {
    padding: 0.45rem 0.6rem;
    color: #334155;
    border-bottom: 1px solid #EDF2F7;
    vertical-align: middle;
}

.pos-table tbody td.pos-td-num[b-who5x7kyve] {
    width: 80px;
}

.pos-table tbody tr:hover td[b-who5x7kyve] { background: #F7FAFD; }

/* ── Buttons ──────────────────────────────────────────────────────────── */

/* Add-button tratteggiato standard (come .sf-add-btn) */
.pos-btn-add[b-who5x7kyve] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #5B7A9A;
    background: transparent;
    border: 1px dashed #94A3B8;
    border-radius: 8px;
    padding: 0.35rem 0.8rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.pos-btn-add:hover[b-who5x7kyve] { background: #F3F7FC; color: #1E334C; border-color: #5B7A9A; }

/* Primary: colori dai token globali del button system */
.pos-btn-primary[b-who5x7kyve] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: var(--btn-primary-bg, #001B48);
    color: #fff;
    border: none;
    padding: 0.55rem 1.4rem;
    border-radius: 8px;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}

.pos-btn-primary:hover[b-who5x7kyve] { background: var(--btn-primary-bg-hover, #12315F); }

/* Secondary: colori dai token globali del button system */
.pos-btn-secondary[b-who5x7kyve] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #fff;
    border: 1px solid var(--btn-border, #C7D2E2);
    color: var(--btn-ink, #001B48);
    padding: 0.55rem 1.1rem;
    border-radius: 8px;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, border-color 0.12s;
}

.pos-btn-secondary:hover[b-who5x7kyve] { background: #F3F7FC; border-color: var(--btn-ink, #001B48); }

/* ── Icon buttons ─────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.pos-icon-btn[b-who5x7kyve] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.pos-icon-btn:hover[b-who5x7kyve] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

.pos-icon-btn.pos-icon-danger[b-who5x7kyve] { color: var(--icobtn-danger, #C0392B); }
.pos-icon-btn.pos-icon-danger:hover[b-who5x7kyve] { background: var(--icobtn-danger-bg, #FBEBED); color: var(--icobtn-danger, #C0392B); }

/* ── Form footer ──────────────────────────────────────────────────────── */

.pos-form-footer[b-who5x7kyve] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 0 0.5rem;
    flex-wrap: wrap;
}

@media (max-width: 575px) {
    .pos-form-footer[b-who5x7kyve] {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .pos-form-footer .pos-btn-primary[b-who5x7kyve],
    .pos-form-footer .pos-btn-secondary[b-who5x7kyve] {
        justify-content: center;
        width: 100%;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Subappalto/Form.razor.rz.scp.css */
/* Subappalto — Form */

.sub-form-section[b-kms70pp42n] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}

.sub-form-section-title[b-kms70pp42n] {
    font-size: 0.72rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #dceaf8;
}

.sub-form-actions[b-kms70pp42n] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.25rem;
}

/* ── Drawer nuovo fornitore (stessa UX dei drawer dell'app) ─────────────── */

.sub-drawer-overlay[b-kms70pp42n] {
    position: fixed;
    inset: 0;
    background: rgba(15, 27, 46, 0.28);
    z-index: 1050;
}

.sub-drawer[b-kms70pp42n] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(640px, 100vw);
    background: #fff;
    z-index: 1055;
    display: flex;
    flex-direction: column;
    box-shadow: -12px 0 40px -12px rgba(15, 27, 46, 0.25);
    animation: sub-drawer-slide-b-kms70pp42n 0.18s ease-out;
}

@keyframes sub-drawer-slide-b-kms70pp42n {
    from { transform: translateX(24px); opacity: 0; }
    to   { transform: none; opacity: 1; }
}

.sub-drawer-head[b-kms70pp42n] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem 1.5rem;
    border-bottom: 1px solid #dce6f2;
    flex-shrink: 0;
}

.sub-drawer-title[b-kms70pp42n] { font-size: 1.05rem; font-weight: 700; color: #1E334C; }

.sub-drawer-body[b-kms70pp42n] {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem 1.5rem 1.5rem;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/Details.razor.rz.scp.css */
/* Details — Worksite */

/* ── KPI cards ──────────────────────────────────────────────────────────── */

.det-kpi-card[b-mo2cwyg2kw] {
    background: #fff;
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 1rem 1.1rem;
    height: 100%;
}

.det-kpi-card.success[b-mo2cwyg2kw] { border-left: 3px solid #3a8f47; }
.det-kpi-card.danger[b-mo2cwyg2kw]  { border-left: 3px solid #9e2d1e; }

.det-kpi-label[b-mo2cwyg2kw] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.3rem;
}

.det-kpi-value[b-mo2cwyg2kw] {
    font-size: 1.6rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
    margin-bottom: 0.2rem;
}

.det-kpi-sub[b-mo2cwyg2kw] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

/* ── Section card ───────────────────────────────────────────────────────── */

.det-section-card[b-mo2cwyg2kw] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
}

.det-section-title[b-mo2cwyg2kw] {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #dceaf8;
}

/* ── Field grid ─────────────────────────────────────────────────────────── */

.det-field-label[b-mo2cwyg2kw] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.2rem;
}

.det-field-value[b-mo2cwyg2kw] {
    font-size: 0.9rem;
    color: #1E334C;
    font-weight: 500;
}

/* ── Cantiere card ──────────────────────────────────────────────────────── */

.det-cantiere-card[b-mo2cwyg2kw] {
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 8px;
    padding: 0.9rem 1rem;
    height: 100%;
}

.det-cantiere-header[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #1E334C;
}

.det-cantiere-code[b-mo2cwyg2kw] {
    background: #1E334C;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.1em 0.5em;
    border-radius: 4px;
}

.det-cantiere-cuc[b-mo2cwyg2kw] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #1E334C;
    font-family: var(--bs-font-monospace, monospace);
    margin-bottom: 0.15rem;
}

.det-cantiere-addr[b-mo2cwyg2kw] {
    font-size: 0.8rem;
    color: #5B7A9A;
    margin-bottom: 0.35rem;
}

.det-cantiere-roles[b-mo2cwyg2kw] {
    margin-top: 0.35rem;
}

.det-role-row[b-mo2cwyg2kw] {
    display: flex;
    gap: 0.5rem;
    font-size: 0.8rem;
    margin-bottom: 0.2rem;
    color: #1E334C;
}

.det-role-type[b-mo2cwyg2kw] {
    font-weight: 600;
    color: #5B7A9A;
    min-width: 4rem;
}

/* ── Tabs ───────────────────────────────────────────────────────────────── */

.det-tabs-wrap[b-mo2cwyg2kw] {
    overflow-x: auto;
    border-bottom: 2px solid #dceaf8;
    margin-bottom: 0;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #F4F8FC;
}

.det-tabs-wrap[b-mo2cwyg2kw]::-webkit-scrollbar { height: 4px; }
.det-tabs-wrap[b-mo2cwyg2kw]::-webkit-scrollbar-track { background: #F4F8FC; }
.det-tabs-wrap[b-mo2cwyg2kw]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 4px; }

.det-tabs[b-mo2cwyg2kw] {
    flex-wrap: nowrap;
    border-bottom: none;
    min-width: max-content;
}

.det-tabs .nav-link[b-mo2cwyg2kw] {
    color: #5B7A9A;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.6rem 0.9rem;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
    margin-bottom: -2px;
}

.det-tabs .nav-link:hover[b-mo2cwyg2kw] {
    color: #1E334C;
    border-bottom-color: #b5cfe8;
}

.det-tabs .nav-link.active[b-mo2cwyg2kw] {
    color: #1E334C;
    font-weight: 600;
    border-bottom-color: #1E334C;
    background: transparent;
}

.det-tab-content[b-mo2cwyg2kw] {
    padding-top: 1.25rem;
}

/* ── Eco cards (Dati economici) ─────────────────────────────────────────── */

.det-eco-card[b-mo2cwyg2kw] {
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 8px;
    padding: 0.85rem 1rem;
    height: 100%;
}

.det-eco-label[b-mo2cwyg2kw] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.25rem;
}

.det-eco-value[b-mo2cwyg2kw] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1E334C;
}

.det-eco-sub[b-mo2cwyg2kw] {
    font-size: 0.75rem;
    color: #5B7A9A;
    margin-top: 0.15rem;
}

.det-eco-total[b-mo2cwyg2kw] {
    background: #eef4fb;
    border-color: #b5cfe8;
}

.det-eco-success[b-mo2cwyg2kw] {
    background: #edf6ea;
    border-color: #a3cca3;
}

.det-eco-success .det-eco-value[b-mo2cwyg2kw] { color: #3a6b27; }

.det-eco-danger[b-mo2cwyg2kw] {
    background: #fdecea;
    border-color: #e5b0a8;
}

.det-eco-danger .det-eco-value[b-mo2cwyg2kw] { color: #9e2d1e; }

/* ── Inner tables ───────────────────────────────────────────────────────── */

.det-inner-table[b-mo2cwyg2kw] {
    margin-bottom: 0;
}

.det-inner-table thead th[b-mo2cwyg2kw] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    vertical-align: middle;
    white-space: nowrap;
}

.det-inner-table td[b-mo2cwyg2kw],
.det-inner-table tfoot th[b-mo2cwyg2kw],
.det-inner-table tfoot td[b-mo2cwyg2kw] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna: mai a filo (stesse misure della regola globale .table di app.css) */
.det-inner-table > * > tr > th:first-child[b-mo2cwyg2kw], .det-inner-table > * > tr > td:first-child[b-mo2cwyg2kw] { padding-left: var(--eco-cell-edge, 20px); }
.det-inner-table > * > tr > th:last-child[b-mo2cwyg2kw],  .det-inner-table > * > tr > td:last-child[b-mo2cwyg2kw]  { padding-right: var(--eco-cell-edge, 20px); }

/* ── State badge (inline in subtitle) ──────────────────────────────────── */

.det-state-badge[b-mo2cwyg2kw] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #e8edf4;
    color: #5B7A9A;
    white-space: nowrap;
    vertical-align: middle;
}

/* ── Category badge ─────────────────────────────────────────────────────── */

.det-cat-badge[b-mo2cwyg2kw] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #f0ebfa;
    color: #6b3aaa;
    white-space: nowrap;
    vertical-align: middle;
}

/* ── Stato badge (table rows) ───────────────────────────────────────────── */

.det-stato-badge[b-mo2cwyg2kw] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #e8edf4;
    color: #5B7A9A;
    white-space: nowrap;
}

.det-stato-badge.det-stato-bozza[b-mo2cwyg2kw]    { background: #f4f5f7; color: #8696a7; }
.det-stato-badge.det-stato-verifica[b-mo2cwyg2kw] { background: #fff3cd; color: #856404; }
.det-stato-badge.det-stato-anomalie[b-mo2cwyg2kw] { background: #fdecea; color: #9e2d1e; }
.det-stato-badge.det-stato-validato[b-mo2cwyg2kw] { background: #edf6ea; color: #3a6b27; }

/* ── Icon button ────────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.det-icon-btn[b-mo2cwyg2kw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.det-icon-btn:hover[b-mo2cwyg2kw] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

/* ── Empty state ────────────────────────────────────────────────────────── */

.det-empty[b-mo2cwyg2kw] {
    text-align: center;
    padding: 2.5rem 1rem;
}

.det-empty .bi[b-mo2cwyg2kw] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.det-empty-title[b-mo2cwyg2kw] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.det-empty-text[b-mo2cwyg2kw] {
    font-size: 0.875rem;
    color: #5B7A9A;
}

/* ── Navigation shell ───────────────────────────────────────────────────── */

.wn-shell[b-mo2cwyg2kw] {
    --wn-primary:        #001B48;
    --wn-primary-soft:   #EAF0F8;
    --wn-hover:          #F7F9FC;
    --wn-border:         #DDE5EF;
    --wn-text:           #001B48;
    --wn-text-secondary: #60748F;
    --wn-text-muted:     #8FA0B5;
    --wn-surface:        #FFFFFF;

    position: relative;
    background: var(--wn-surface);
    border: 1px solid var(--wn-border);
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

/* ── Primo livello ──────────────────────────────────────────────────────── */

/* Card-dropdown del filtro cantiere (mockup): icona edificio, etichetta
   piccola sopra e valore in evidenza; la tendina è un select nativo
   travestito, così su telefono si apre il picker di sistema.
   NB: sta FUORI da .wn-shell → i token --wn-* qui non esistono, i colori
   della shell vanno ripetuti espliciti (senza, il bordo cade su currentColor). */
.wn-cantiere-card[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    background: #FFFFFF;
    border: 1px solid #DDE5EF;
    border-radius: 14px;
    padding: 10px 16px;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .12s;
}

.wn-cantiere-card:hover[b-mo2cwyg2kw],
.wn-cantiere-card:focus-within[b-mo2cwyg2kw] { border-color: #C6D2E2; }

.wn-cantiere-ico[b-mo2cwyg2kw] { font-size: 18px; color: #001B48; flex-shrink: 0; }

.wn-cantiere-txt[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    margin-bottom: 0;
    cursor: pointer;
}

.wn-cantiere-lbl[b-mo2cwyg2kw] {
    font-size: 11px;
    font-weight: 600;
    color: #60748F;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wn-cantiere-val[b-mo2cwyg2kw] {
    font-size: 14px;
    font-weight: 600;
    color: #001B48;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wn-cantiere-chevron[b-mo2cwyg2kw] { font-size: 13px; color: #60748F; flex-shrink: 0; transition: transform .15s; }

.wn-cantiere-card[aria-expanded="true"] .wn-cantiere-chevron[b-mo2cwyg2kw] { transform: rotate(180deg); }

/* Menu con le voci nello stile dei bottoni della pagina (niente lista di sistema). */
.wn-cantiere-dd[b-mo2cwyg2kw] {
    display: block;
    max-width: 420px;
    margin-bottom: 12px;
}

.wn-cantiere-menu[b-mo2cwyg2kw] {
    min-width: 100%;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    box-shadow: 0 8px 24px -8px rgba(0, 27, 72, .18);
    padding: 6px;
}

.wn-cantiere-item[b-mo2cwyg2kw] {
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 14px;
    font-weight: 500;
    color: #001B48;
}

.wn-cantiere-item:hover[b-mo2cwyg2kw],
.wn-cantiere-item:focus[b-mo2cwyg2kw] { background: #F7F9FC; color: #001B48; }

.wn-cantiere-item.active[b-mo2cwyg2kw] {
    background: #001B48;
    color: #FFFFFF;
    font-weight: 600;
}

/* Su telefono la card occupa la riga intera, come nel mockup. */
@media (max-width: 719.98px) {
    .wn-cantiere-dd[b-mo2cwyg2kw] { max-width: none; }
}

.wn-primary-wrap[b-mo2cwyg2kw] {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid var(--wn-border);
}

.wn-primary[b-mo2cwyg2kw] {
    display: flex;
    align-items: stretch;
    flex: 1;
    min-height: 58px;
    overflow-x: auto;
    scrollbar-width: none;
}

.wn-primary[b-mo2cwyg2kw]::-webkit-scrollbar { display: none; }

/* Tab a icone grandi (mockup): icona sopra, etichetta sotto. */
.wn-tab[b-mo2cwyg2kw] {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 10px 18px;
    min-height: 68px;
    font-size: 13px;
    font-weight: 500;
    color: var(--wn-text-secondary);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color .13s, border-color .13s, background .13s;
    outline-offset: -3px;
}

.wn-tab i[b-mo2cwyg2kw] { font-size: 20px; line-height: 1; }

.wn-tab:hover[b-mo2cwyg2kw] {
    background: var(--wn-hover);
    color: var(--wn-primary);
}

.wn-tab:focus-visible[b-mo2cwyg2kw] { outline: 2px solid var(--wn-primary); }

.wn-tab.active[b-mo2cwyg2kw] {
    color: var(--wn-primary);
    font-weight: 600;
    border-bottom-color: var(--wn-primary);
}

/* Frecce scroll */

.wn-arrow[b-mo2cwyg2kw] {
    flex: 0 0 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    background: var(--wn-surface);
    border: none;
    color: var(--wn-text-secondary);
    cursor: pointer;
    font-size: 13px;
    transition: color .13s, background .13s;
    z-index: 1;
}

.wn-arrow:hover[b-mo2cwyg2kw] { background: var(--wn-hover); color: var(--wn-primary); }
.wn-arrow:focus-visible[b-mo2cwyg2kw] { outline: 2px solid var(--wn-primary); outline-offset: -3px; }

.wn-arrow--left[b-mo2cwyg2kw]  { border-right: 1px solid var(--wn-border); }
.wn-arrow--right[b-mo2cwyg2kw] { border-left:  1px solid var(--wn-border); }

.wn-arrow--hidden[b-mo2cwyg2kw] { visibility: hidden; pointer-events: none; }

/* ── Secondo livello ────────────────────────────────────────────────────── */

.wn-secondary[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    min-height: 44px;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 0 8px;
}

.wn-secondary[b-mo2cwyg2kw]::-webkit-scrollbar { display: none; }

/* Economia: layout a gruppi con label */

.wn-secondary--economia[b-mo2cwyg2kw] {
    align-items: stretch;
    padding: 0;
}

.wn-sub-group[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    padding: 5px 8px 0;
    flex: 0 0 auto;
}

.wn-sub-group-label[b-mo2cwyg2kw] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--wn-text-muted);
    white-space: nowrap;
    padding: 0 4px;
    margin-bottom: 1px;
    pointer-events: none;
    user-select: none;
}

.wn-sub-group-items[b-mo2cwyg2kw] {
    display: flex;
    align-items: stretch;
    flex: 1;
}

.wn-sub-sep[b-mo2cwyg2kw] {
    width: 1px;
    background: var(--wn-border);
    margin: 8px 0;
    flex-shrink: 0;
}

/* Sub-tab generico */

.wn-sub-tab[b-mo2cwyg2kw] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    padding: 0 12px;
    min-height: 40px;
    font-size: 13px;
    font-weight: 500;
    color: var(--wn-text-secondary);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color .13s, border-color .13s;
    outline-offset: -3px;
}

.wn-sub-tab:hover[b-mo2cwyg2kw] { color: var(--wn-primary); }
.wn-sub-tab:focus-visible[b-mo2cwyg2kw] { outline: 2px solid var(--wn-primary); }

.wn-sub-tab.active[b-mo2cwyg2kw] {
    color: var(--wn-primary);
    font-weight: 600;
    border-bottom-color: var(--wn-primary);
}

/* ── Tab content container ──────────────────────────────────────────────── */

.det-tab-body[b-mo2cwyg2kw] {
    padding-top: 1.25rem;
}

/* ── Alert banner ───────────────────────────────────────────────────────── */

.det-alert-banner[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: #fff8e1;
    border: 1px solid #ffd54f;
    border-radius: 8px;
    padding: 0.65rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
    color: #6d4c00;
}

.det-alert-banner.danger[b-mo2cwyg2kw] {
    background: #fdecea;
    border-color: #e5b0a8;
    color: #7a1c0e;
}

/* ── Previsionale badge ─────────────────────────────────────────────────── */

.det-prev-badge[b-mo2cwyg2kw] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.2em 0.65em;
    border-radius: 20px;
    white-space: nowrap;
}

.det-prev-ok[b-mo2cwyg2kw]   { background: #edf6ea; color: #3a6b27; }
.det-prev-warn[b-mo2cwyg2kw] { background: #fff3cd; color: #856404; }
.det-prev-over[b-mo2cwyg2kw] { background: #fdecea; color: #9e2d1e; }
.det-prev-nc[b-mo2cwyg2kw]   { background: #f4f5f7; color: #8696a7; }

.det-prev-scost-pos[b-mo2cwyg2kw] { color: #9e2d1e; font-weight: 600; }
.det-prev-scost-neg[b-mo2cwyg2kw] { color: #3a6b27; font-weight: 600; }
.det-prev-scost-zero[b-mo2cwyg2kw] { color: #5B7A9A; font-weight: 600; }

/* ── Previsionale form card ─────────────────────────────────────────────── */

.det-prev-form-card[b-mo2cwyg2kw] {
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}

.det-prev-form-card .form-label[b-mo2cwyg2kw] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.25rem;
}

/* ── Panoramica alert card ──────────────────────────────────────────────── */

.det-pan-alert-card[b-mo2cwyg2kw] {
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-left: 4px solid #ffc107;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: 0.85rem;
    color: #6d4c00;
}

.det-pan-alert-card.danger[b-mo2cwyg2kw] {
    background: #fdecea;
    border-color: #e5b0a8;
    border-left-color: #c62828;
    color: #7a1c0e;
}

/* ── Accordi con il cliente ─────────────────────────────────────────────── */

.det-accordi[b-mo2cwyg2kw] {
    border-left: 4px solid #1E334C;
}

.det-accordi-header[b-mo2cwyg2kw] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.det-accordi-empty[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    color: #8696a7;
    font-size: 0.875rem;
    gap: 4px;
    text-align: center;
}

.det-accordi-empty i[b-mo2cwyg2kw] {
    font-size: 2rem;
    margin-bottom: 0.25rem;
}

.det-accordi-group[b-mo2cwyg2kw] {
    background: #f7fafd;
    border: 1px solid #dce8f5;
    border-radius: 10px;
    padding: 1rem 1.1rem;
    height: 100%;
}

.det-accordi-group-title[b-mo2cwyg2kw] {
    font-size: 0.72rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.65rem;
}

.det-accordi-value[b-mo2cwyg2kw] {
    font-size: 1rem;
    font-weight: 600;
    color: #1a2740;
    margin-bottom: 0.4rem;
}

.det-accordi-contact[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: #495057;
    margin-bottom: 4px;
}

.det-accordi-contact a[b-mo2cwyg2kw] {
    color: #1E334C;
    text-decoration: none;
}

.det-accordi-contact a:hover[b-mo2cwyg2kw] {
    text-decoration: underline;
}

.det-accordi-link[b-mo2cwyg2kw] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #1E334C;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.det-accordi-link:hover[b-mo2cwyg2kw] {
    text-decoration: underline;
}

.det-accordi-eco-row[b-mo2cwyg2kw] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.82rem;
    padding: 4px 0;
    border-bottom: 1px solid #eef3f8;
    gap: 0.5rem;
}

.det-accordi-eco-row:last-child[b-mo2cwyg2kw] {
    border-bottom: none;
}

.det-accordi-eco-row span:first-child[b-mo2cwyg2kw] {
    color: #6c757d;
}

.det-accordi-eco-row span:last-child[b-mo2cwyg2kw],
.det-accordi-eco-row strong[b-mo2cwyg2kw] {
    font-weight: 600;
    color: #1a2740;
    text-align: right;
}

.det-accordi-stato-badge[b-mo2cwyg2kw] {
    display: inline-block;
    font-size: 0.73rem;
    font-weight: 700;
    padding: 0.22em 0.7em;
    border-radius: 20px;
    white-space: nowrap;
}

.det-accordi-stato-ok[b-mo2cwyg2kw]      { background: #edf6ea; color: #3a6b27; }
.det-accordi-stato-warn[b-mo2cwyg2kw]    { background: #fff3cd; color: #856404; }
.det-accordi-stato-danger[b-mo2cwyg2kw]  { background: #fdecea; color: #9e2d1e; }
.det-accordi-stato-neutral[b-mo2cwyg2kw] { background: #f4f5f7; color: #8696a7; }

/* ── Cantiere dashboard ──────────────────────────────────────────────────── */

/* Colonna unica centrata (mockup): le card si leggono dall'alto in basso
   nello stesso ordine su telefono e desktop; la larghezza è vincolata per
   restare una dashboard e non un nastro sconfinato. */
.site-dashboard-grid[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    max-width: 820px;
    margin-inline: auto;
}

.site-dashboard-card[b-mo2cwyg2kw] {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 12px;
    padding: 1.1rem 1.2rem;
    min-height: 140px;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.site-card-alert[b-mo2cwyg2kw] {
    border-left: 4px solid #e5b0a8;
}

/* Da verificare compare SOLO se c'è qualcosa da verificare (mockup). */
.site-card-alert.site-card-ok[b-mo2cwyg2kw] { display: none; }

.site-card-title[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.75rem;
}

.site-alert-count-badge[b-mo2cwyg2kw] {
    margin-left: auto;
    background: #C0614F;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.site-card-empty-ok[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #3a6b27;
    font-size: 0.88rem;
    font-weight: 600;
    padding: 0.5rem 0;
}

.site-card-empty-ok i[b-mo2cwyg2kw] {
    font-size: 1.2rem;
}

.site-card-empty[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    color: #8696a7;
    font-size: 0.82rem;
    text-align: center;
    gap: 4px;
    padding: 0.5rem 0;
}

.site-card-empty i[b-mo2cwyg2kw] {
    font-size: 1.8rem;
    margin-bottom: 0.2rem;
}

/* Alert list inside card */
.site-alert-list[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.site-alert-row[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 0;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid transparent;
}

.site-alert-danger[b-mo2cwyg2kw] { background: #fef5f4; border-color: #f3c8c3; }
.site-alert-warn[b-mo2cwyg2kw]   { background: #fffbf0; border-color: #ffe6a0; }

.site-alert-bar[b-mo2cwyg2kw] {
    width: 4px;
    align-self: stretch;
    flex-shrink: 0;
}

.site-alert-danger .site-alert-bar[b-mo2cwyg2kw] { background: #c62828; }
.site-alert-warn   .site-alert-bar[b-mo2cwyg2kw] { background: #e6a817; }

.site-alert-body[b-mo2cwyg2kw] {
    flex: 1;
    padding: 0.5rem 0.6rem;
    min-width: 0;
}

.site-alert-label[b-mo2cwyg2kw] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #2c2c2c;
    line-height: 1.2;
}

.site-alert-desc[b-mo2cwyg2kw] {
    font-size: 0.72rem;
    color: #6c757d;
    line-height: 1.3;
}

.site-alert-cta[b-mo2cwyg2kw] {
    background: none;
    border: none;
    font-size: 0.72rem;
    font-weight: 700;
    color: #1E334C;
    cursor: pointer;
    padding: 0 0.7rem;
    align-self: stretch;
    display: flex;
    align-items: center;
    transition: background 0.12s;
    flex-shrink: 0;
}

.site-alert-cta:hover[b-mo2cwyg2kw] { background: rgba(30,51,76,.07); }

/* QR area */
.site-qr-area[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 0;
}

.site-qr-missing[b-mo2cwyg2kw] {
    color: #8696a7;
    text-align: center;
}

.site-qr-placeholder[b-mo2cwyg2kw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 110px;
    height: 110px;
    border: 2px dashed #c8d8e8;
    border-radius: 10px;
    color: #a0b5c8;
    font-size: 2.5rem;
    gap: 4px;
    cursor: default;
}

.site-qr-hint[b-mo2cwyg2kw] {
    font-size: 0.65rem;
    text-align: center;
    line-height: 1.2;
    color: #a0b5c8;
    padding: 0 4px;
}

.site-qr-meta[b-mo2cwyg2kw] {
    text-align: center;
}

/* Contact card */
.site-contact-name[b-mo2cwyg2kw] {
    font-size: 1rem;
    font-weight: 600;
    color: #1a2740;
    margin-bottom: 0.5rem;
}

.site-contact-row[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: #495057;
    margin-bottom: 4px;
}

.site-contact-row a[b-mo2cwyg2kw] {
    color: #1E334C;
    text-decoration: none;
}

.site-contact-row a:hover[b-mo2cwyg2kw] {
    text-decoration: underline;
}

/* Last report row */
.site-last-rapp[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

/* Chiusura card rapportini (mockup): "Ultimo" a sinistra, azioni a destra;
   sugli schermi stretti le azioni vanno a capo e riempiono la riga. */
.site-rapp-foot[b-mo2cwyg2kw] {
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.6rem;
}

/* Workers: in riga come nel mockup (4 su larghezza piena, 2 su telefono). */
.site-workers-list[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.6rem 0.9rem;
}

.site-worker-row[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.site-worker-avatar[b-mo2cwyg2kw] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #dce8f5;
    color: #1E334C;
    font-size: 0.72rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    user-select: none;
}

.site-worker-info[b-mo2cwyg2kw] {
    min-width: 0;
}

.site-worker-name[b-mo2cwyg2kw] {
    font-size: 0.85rem;
    font-weight: 600;
    color: #1a2740;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.site-worker-meta[b-mo2cwyg2kw] {
    font-size: 0.72rem;
    color: #8696a7;
}

/* Field grid (Dati cantiere) */
/* Dati cantiere: campi in nastro con filetti verticali (mockup);
   sugli schermi stretti i campi vanno a capo mantenendo lo stesso stile. */
.site-field-grid[b-mo2cwyg2kw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 0;
}

.site-field-grid > div[b-mo2cwyg2kw] {
    flex: 1 1 130px;
    min-width: 0;
    padding-inline: 1rem;
    border-left: 1px solid #e3e9f0;
}

.site-field-grid > div:first-child[b-mo2cwyg2kw] { border-left: 0; padding-left: 0; }

.site-field-span2[b-mo2cwyg2kw] { flex: 1.8 1 220px; }

/* Document status list: due colonne come nel mockup (POS/Contratto a
   sinistra, Subappalti/Notifica a destra); il link resta centrato. */
.site-doc-list[b-mo2cwyg2kw] {
    display: grid;
    grid-template-rows: auto auto;
    grid-auto-flow: column;
    column-gap: 2rem;
}

.site-doc-list .site-doc-row:nth-child(even)[b-mo2cwyg2kw] { border-bottom: none; }

.site-card--documenti .btn-link[b-mo2cwyg2kw] { margin-inline: auto; }

/* "+ N altri operatori": chiude l'anteprima senza sembrare un errore. */
.site-workers-more[b-mo2cwyg2kw] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #5B7A9A;
}

/* Riga di chiusura operatori: "+N altri" a sinistra, "Vedi quadro ore" a destra. */
.site-workers-foot[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 0.55rem;
    margin-top: 0.55rem;
    border-top: 1px dashed #dce8f5;
}

.site-workers-quadro[b-mo2cwyg2kw] { margin-left: auto; }

.site-doc-row[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.site-doc-row:last-child[b-mo2cwyg2kw] {
    border-bottom: none;
}

.site-doc-label[b-mo2cwyg2kw] {
    font-size: 0.83rem;
    color: #495057;
}

/* QR Sicurezza (mockup): QR e istruzione a sinistra, colonna azioni a destra.
   L'azione principale (Apri Sicurezza) è una sola, primaria e in testa;
   le utilità di condivisione la seguono. Sugli schermi stretti le azioni
   scendono sotto il QR. */
.site-qr-layout[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.site-qr-flex[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1 1 300px;
    min-width: 0;
}

.site-qr-img[b-mo2cwyg2kw] {
    width: 160px;
    height: 160px;
    flex-shrink: 0;
}

.site-qr-caption[b-mo2cwyg2kw] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.site-qr-hint[b-mo2cwyg2kw] {
    font-size: .88rem;
    color: #495057;
    line-height: 1.35;
}

.site-qr-actions[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    flex: 1 1 260px;
    align-self: center;
}

.site-qr-action--full[b-mo2cwyg2kw] { grid-column: 1 / -1; }

/* Statistiche rapportini: nastro orizzontale a 4 segmenti piatti (mockup),
   separati da filetti verticali. Sotto i 420px torna 2×2 (media query). */
.site-rapp-kpis[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
}

.site-rapp-kpis .det-kpi-card[b-mo2cwyg2kw] {
    background: none;
    border: 0;
    border-radius: 0;
    border-left: 1px solid #e3e9f0;
    padding: .15rem .9rem;
    height: auto;
}

.site-rapp-kpis .det-kpi-card:first-child[b-mo2cwyg2kw] { border-left: 0; padding-left: 0; }

/* Il colore d'allarme resta anche senza la card: è il numero a farsi rosso. */
.site-rapp-kpis .det-kpi-card.danger[b-mo2cwyg2kw] { border-left-color: #e3e9f0; }
.site-rapp-kpis .det-kpi-card.danger .det-kpi-value[b-mo2cwyg2kw] { color: #9e2d1e; }

.site-rapp-kpis .det-kpi-value[b-mo2cwyg2kw] { font-size: 1.35rem; }
.site-rapp-kpis .det-kpi-label[b-mo2cwyg2kw] { font-size: .7rem; }

/* Quick actions: due colonne, pillole orizzontali (mockup) — icona e
   titolo sulla stessa riga, altezza ≥52px premibile anche coi guanti. */
.site-quick-actions[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.7rem;
}

.site-quick-btn[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #f7fafd;
    border: 1px solid #dce8f5;
    border-radius: 12px;
    min-height: 52px;
    padding: 0.65rem 0.9rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1a2740;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
    text-align: center;
    line-height: 1.2;
}

.site-quick-btn i[b-mo2cwyg2kw] {
    font-size: 1.2rem;
    color: #1E334C;
}

.site-quick-btn:hover[b-mo2cwyg2kw] {
    background: #e8f0f9;
    border-color: #b0c8e8;
    color: #1E334C;
}

@media (max-width: 480px) {
    .site-dashboard-grid[b-mo2cwyg2kw] {
        grid-template-columns: 1fr;
    }

    /* Le azioni rapide restano a DUE colonne anche sugli schermi più stretti.
       Qui c'erano 3 colonne: su un telefono i pulsanti scendevano sotto i 44px
       di lato, illeggibili e impossibili da centrare con i guanti. */
    .site-quick-actions[b-mo2cwyg2kw] {
        grid-template-columns: 1fr 1fr;
    }
}

/* ── Dashboard cantiere su mobile (≤720px, stessa soglia della chrome operatore) ──────
   Il capocommessa in campo legge da telefono: una colonna sola, testo ≥16px e
   target tappabili ≥44px. Vale per tutti: su schermo stretto la densità desktop
   non è leggibile nemmeno per l'amministrazione. */
@media (max-width: 719.98px) {

    /* Il back è già nella top-bar operatore: il breadcrumb sarebbe una riga sprecata. */
    .det-hide-mobile[b-mo2cwyg2kw] {
        display: none;
    }

    /* Ordine e colonna unica sono ormai il layout base (markup nell'ordine
       del mockup): qui restano solo aria e leggibilità da telefono. */

    /* Card più respirate: padding interno maggiore e nessuna altezza minima
       che le costringa a una forma non loro. */
    .site-dashboard-card[b-mo2cwyg2kw] {
        padding: 1.25rem 1.25rem 1.35rem;
        min-height: 0;
    }

    .det-tab-body[b-mo2cwyg2kw] {
        font-size: 1rem;
    }

    .site-card-title[b-mo2cwyg2kw] {
        font-size: 1.0625rem;
    }

    .site-contact-name[b-mo2cwyg2kw],
    .site-worker-name[b-mo2cwyg2kw],
    .det-field-value[b-mo2cwyg2kw],
    .site-alert-label[b-mo2cwyg2kw] {
        font-size: 1rem;
    }

    .det-field-label[b-mo2cwyg2kw],
    .site-worker-meta[b-mo2cwyg2kw],
    .site-alert-desc[b-mo2cwyg2kw] {
        font-size: .875rem;
    }

    /* Target tappabili: i bottoni della dashboard sono tutti btn-sm. */
    .det-tab-body .btn[b-mo2cwyg2kw],
    .site-alert-cta[b-mo2cwyg2kw] {
        min-height: 44px;
        padding-inline: .9rem;
        font-size: 1rem;
    }

    /* Su telefono le azioni dei rapportini riempiono la riga quando vanno a capo. */
    .site-rapp-foot .site-rapp-cta[b-mo2cwyg2kw] { flex: 1 1 260px; }
    .site-rapp-cta .btn[b-mo2cwyg2kw] { flex: 1 1 0; }

    /* Stato documentale: colonne più vicine sullo schermo stretto. */
    .site-doc-list[b-mo2cwyg2kw] { column-gap: 1.25rem; }

    /* Cliente come nel mockup: solo nome a sinistra e link anagrafica a
       destra. I contatti restano su desktop e nella scheda anagrafica. */
    .site-card--cliente[b-mo2cwyg2kw] { display: grid; grid-template-columns: 1fr auto; align-items: center; }
    .site-card--cliente .site-card-title[b-mo2cwyg2kw] { grid-column: 1 / -1; }
    .site-card--cliente .site-card-empty[b-mo2cwyg2kw] { grid-column: 1 / -1; }
    .site-card--cliente .site-contact-row[b-mo2cwyg2kw] { display: none; }
    .site-card--cliente .site-contact-name[b-mo2cwyg2kw] { margin-bottom: 0; }
    .site-card--cliente .det-accordi-link[b-mo2cwyg2kw] { margin-top: 0 !important; }

    /* Statistiche fuori dal nastro (altre card): più corpo. */
    .det-kpi-card[b-mo2cwyg2kw] {
        padding: .85rem .75rem;
    }

    .det-kpi-value[b-mo2cwyg2kw] { font-size: 1.35rem; }
    .det-kpi-label[b-mo2cwyg2kw] { font-size: .78rem; }

    /* Righe interne (documenti, operatori, contatti): più alte, più leggibili. */
    .site-doc-row[b-mo2cwyg2kw],
    .site-worker-row[b-mo2cwyg2kw],
    .site-contact-row[b-mo2cwyg2kw] {
        padding-top: .6rem;
        padding-bottom: .6rem;
    }

    .site-worker-avatar[b-mo2cwyg2kw] {
        width: 40px;
        height: 40px;
        font-size: .85rem;
    }

    /* Il QR è la ragione per cui si apre questa pagina durante un controllo:
       non si riduce; l'istruzione gli sta a fianco finché c'è spazio. */
    .site-qr-img[b-mo2cwyg2kw] { width: 160px; height: 160px; }
    .site-qr-actions[b-mo2cwyg2kw] { gap: .6rem; }

    /* Le tabelle scorrono DENTRO il proprio contenitore: senza questo una tabella
       larga allarga la pagina e manda in scroll orizzontale tutta la dashboard,
       disallineando header e TAB. Il contenuto non si comprime, si scorre. */
    .det-tab-body .table-responsive[b-mo2cwyg2kw] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .det-tab-body table[b-mo2cwyg2kw] {
        min-width: max-content;
    }

    /* La barra TAB scorre già in orizzontale: qui si riducono solo gli spazi,
       così ne entrano di più senza rimpicciolire icone ed etichette. */
    .wn-tab[b-mo2cwyg2kw] {
        padding: 8px 12px;
        min-height: 60px;
        font-size: 12px;
    }
}

/* Telefoni stretti: il nastro a 4 segmenti strizzerebbe le etichette →
   si torna a 2×2, mantenendo lo stile piatto del nastro. */
@media (max-width: 419.98px) {
    .site-rapp-kpis[b-mo2cwyg2kw] {
        grid-template-columns: 1fr 1fr;
        row-gap: .75rem;
    }

    .site-rapp-kpis .det-kpi-card:nth-child(odd)[b-mo2cwyg2kw] { border-left: 0; padding-left: 0; }
    .site-rapp-kpis .det-kpi-card:nth-child(even)[b-mo2cwyg2kw] { border-left: 1px solid #e3e9f0; }
}
/* ── Panoramica: parte inferiore (2026-08-27) ───────────────────────────── */

/* Accordi: 3 blocchi affiancati, uno sotto l'altro sotto i 900px */
.det-pan-accordi[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.det-accordi-foot[b-mo2cwyg2kw] { margin-top: auto; padding-top: 0.6rem; }
.det-accordi-group[b-mo2cwyg2kw] { display: flex; flex-direction: column; }
.det-accordi-link--btn[b-mo2cwyg2kw] { background: none; border: none; padding: 0; cursor: pointer; }

/* Dati commessa 45% · Cantieri 55% */
.det-pan-grid[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: 45fr 55fr;
    gap: 1rem;
    align-items: start;
}

.det-pan-head[b-mo2cwyg2kw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.9rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #dceaf8;
}

.det-pan-head .det-section-title[b-mo2cwyg2kw] { border-bottom: none; padding-bottom: 0; }

.det-pan-count[b-mo2cwyg2kw] {
    display: inline-block;
    min-width: 1.5rem;
    margin-left: 0.4rem;
    padding: 0.05em 0.5em;
    border-radius: 10px;
    background: #EDF3FB;
    color: #001B48;
    font-size: 0.72rem;
    text-align: center;
    letter-spacing: 0;
}

/* Dati commessa: definition list compatta a 2 colonne */
.det-pan-dl[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem 1.25rem;
    margin: 0;
}

.det-pan-dl > div[b-mo2cwyg2kw] { min-width: 0; }
.det-pan-dl--full[b-mo2cwyg2kw] { grid-column: 1 / -1; }

.det-pan-dl dt[b-mo2cwyg2kw] {
    font-size: 0.7rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.1rem;
}

.det-pan-dl dd[b-mo2cwyg2kw] {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1E334C;
    overflow-wrap: anywhere;
}

.det-pan-num[b-mo2cwyg2kw] { font-variant-numeric: tabular-nums; }

/* Cantieri: card compatte, una per riga (si sviluppano in verticale) */
.det-pan-cantieri-list[b-mo2cwyg2kw] { display: flex; flex-direction: column; gap: 0.75rem; }

.det-pan-cantiere[b-mo2cwyg2kw] { height: auto; }
.det-pan-cantiere-nome[b-mo2cwyg2kw] { font-weight: 600; }

.det-pan-cantiere .det-cantiere-roles[b-mo2cwyg2kw] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.15rem 1rem;
    margin-top: 0.45rem;
}

.det-pan-cantiere .det-role-type[b-mo2cwyg2kw] { min-width: 5.5rem; }

.det-pan-cantiere-actions[b-mo2cwyg2kw] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
    padding-top: 0.6rem;
    border-top: 1px solid #dceaf8;
}

@media (max-width: 991.98px) {
    .det-pan-grid[b-mo2cwyg2kw] { grid-template-columns: 1fr; }
}

@media (max-width: 899.98px) {
    .det-pan-accordi[b-mo2cwyg2kw] { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .det-pan-dl[b-mo2cwyg2kw] { grid-template-columns: 1fr; }
}

/* ── Panoramica → Appalto pubblico (2026-09-09) ─────────────────────────── */
.det-ap-grid[b-mo2cwyg2kw] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.det-ap-empty[b-mo2cwyg2kw] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    color: #5B7A9A;
    font-size: 0.85rem;
    padding: 0.4rem 0;
}
.det-ap-empty i[b-mo2cwyg2kw] { font-size: 1.1rem; color: #8FA3B8; }
.det-ap-links[b-mo2cwyg2kw] { display: flex; gap: 6px; margin-top: 0.6rem; }
.det-ap-table[b-mo2cwyg2kw] { overflow-x: auto; }
.det-ap-table .eco-table th.is-actions[b-mo2cwyg2kw],
.det-ap-table .eco-table td.is-actions[b-mo2cwyg2kw] { white-space: nowrap; }
.det-cantiere-importo[b-mo2cwyg2kw] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #1E334C;
    margin: 0.25rem 0 0.35rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px dashed #DDE5EF;
}
@media (max-width: 1100px) {
    .det-ap-grid[b-mo2cwyg2kw] { grid-template-columns: 1fr; }
}

/* ── Avvisi sugli incaricati di sicurezza del cantiere (nomine ↔ cantiere, 2026-09-09) ── */
.det-cantiere-avvisi[b-mo2cwyg2kw] {
    font-size: 0.78rem;
    color: #B25E09;
    margin-top: 0.35rem;
    cursor: help;
}

/* Contatore sulla sotto-tab "Gara" (documenti travasati dalla gara vinta) — blocco E, 2026-09-17 */
.wn-sub-tab__n[b-mo2cwyg2kw] {
    display: inline-block;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: #EDF3FB;
    color: #1E334C;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.5;
}
.wn-sub-tab.active .wn-sub-tab__n[b-mo2cwyg2kw] { background: #001B48; color: #fff; }

/* Anteprima del fascicolo del varco QR (2026-09-24): larghezza e sfondo della pagina
   pubblica, così la colonna ha la stessa misura che vede chi apre il link. */
.wn-fascicolo-anteprima[b-mo2cwyg2kw] {
    max-width: 760px;
    margin: 0 auto;
    padding: var(--eco-pad, 24px);
    background: #f8f9fa;
    border-radius: 12px;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexCME.razor.rz.scp.css */
/* ── Empty state upload ───────────────────────────────────────────────── */

.cme-upload-card[b-rfih1aunep] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 600px;
    margin: 2rem auto;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 16px;
    padding: 2.5rem 2rem;
}

.cme-upload-icon-wrap[b-rfih1aunep] {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #EEF3FB;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.cme-upload-icon-wrap .bi[b-rfih1aunep] {
    font-size: 2.2rem;
    color: #001B48;
}

.cme-upload-title[b-rfih1aunep] {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 0.5rem;
}

.cme-upload-text[b-rfih1aunep] {
    font-size: 0.875rem;
    color: #60748F;
    line-height: 1.65;
    max-width: 440px;
    margin: 0 auto 1.25rem;
}

/* ── Dropzone ────────────────────────────────────────────────────────── */

.cme-dropzone[b-rfih1aunep] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 1.75rem 1.5rem;
    border: 2px dashed #BDC9D8;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    background: #F7FAFC;
    text-align: center;
    gap: 0.4rem;
}

.cme-dropzone:hover[b-rfih1aunep],
.cme-dropzone:focus[b-rfih1aunep],
.cme-dropzone.hover[b-rfih1aunep] {   /* .hover = file trascinato sopra (initializeFileDropZone) */
    border-color: #001B48;
    background: #EEF3FB;
    outline: none;
}

.cme-dropzone.has-file[b-rfih1aunep] {
    border-style: solid;
    border-color: #001B48;
    background: #EEF3FB;
}

.cme-dropzone-icon[b-rfih1aunep] {
    font-size: 2rem;
    color: #8696a7;
    margin-bottom: 0.25rem;
}

.cme-dropzone-main[b-rfih1aunep] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1E334C;
}

.cme-dropzone-or[b-rfih1aunep] {
    font-size: 0.78rem;
    color: #8696a7;
}

.cme-dropzone-hint[b-rfih1aunep] {
    font-size: 0.75rem;
    color: #8696a7;
    margin-top: 0.25rem;
}

/* ── Barra di stato dell'estrazione ─────────────────────────────────────────
   Le regole `cme-progress-*`, `cme-cancel-btn` e `cme-log-*` sono state spostate nel
   componente condiviso Components/BarraAvanzamento (+ .razor.css): la stessa barra serve
   anche all'offerta economica di gara, e due copie sarebbero divergute.
   ────────────────────────────────────────────────────────────────────────── */

/* Badge stato revisione (usato nella modale storico revisioni) */
.cme-rev-badge[b-rfih1aunep] {
    display: inline-flex;
    align-items: center;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.18em 0.6em;
    border-radius: 20px;
    white-space: nowrap;
}

.cme-rev-attiva[b-rfih1aunep]  { background: #D4EDDA; color: #1A7A46; }
.cme-rev-bozza[b-rfih1aunep]   { background: #FFF8E6; color: #92600A; }
.cme-rev-superata[b-rfih1aunep]{ background: #EEF1F5; color: #60748F; }

/* ── Filtri: chip per tipo voce con conteggio ────────────────────────── */

.cme-tab-bar[b-rfih1aunep] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.cme-tab[b-rfih1aunep] {
    background: #F5F8FC;
    border: 1px solid #E2E8F0;
    border-radius: 6px;
    padding: 0.3rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: background 0.1s, color 0.1s, border-color 0.1s;
    white-space: nowrap;
}

.cme-tab:hover[b-rfih1aunep] { background: #EDF3FB; color: #1E334C; }

.cme-tab.active[b-rfih1aunep] {
    background: #001B48;
    border-color: #001B48;
    color: #fff;
    font-weight: 700;
}

.cme-tab.active .cme-tab-badge[b-rfih1aunep] { background: rgba(255,255,255,0.25); color: #fff; }

.cme-tab-badge[b-rfih1aunep] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4em;
    height: 1.4em;
    background: #e8edf4;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0 0.3em;
    border-radius: 10px;
}

/* ── Tabella (cornice in eco-table: qui restano solo i dettagli di riga) ── */

.cme-row-edit td[b-rfih1aunep] {
    background: #F0F7FF;
    border-bottom: 2px solid #BCD6F5;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

/* Celle */
.cme-tariffa[b-rfih1aunep] {
    font-family: monospace;
    font-size: 0.78rem;
    font-weight: 600;
    color: #001B48;
    background: #E8F1FA;
    padding: 0.1em 0.45em;
    border-radius: 4px;
    white-space: nowrap;
}

.cme-desc[b-rfih1aunep] {
    color: #17324D;
    font-size: 0.8125rem;
    max-width: 360px;
}

.cme-cat-inline[b-rfih1aunep] {
    font-size: 0.7rem;
    color: #8696A7;
    margin-top: 1px;
}

.cme-um[b-rfih1aunep] {
    font-size: 0.75rem;
    color: #5B7A9A;
    font-weight: 600;
}

.cme-num[b-rfih1aunep] {
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    color: #17324D;
}

.cme-importo[b-rfih1aunep] {
    font-weight: 700;
    color: #1E334C;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

/* ── Tipo badge ──────────────────────────────────────────────────────── */

.cme-tipo-badge[b-rfih1aunep] {
    display: inline-flex;
    align-items: center;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.18em 0.55em;
    border-radius: 20px;
    white-space: nowrap;
}

.cme-tipo-badge.confermato[b-rfih1aunep] {
    outline: 1.5px solid currentColor;
    outline-offset: 1px;
}

.cme-tipo-select[b-rfih1aunep] {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2em 0.4em;
    border-radius: 6px;
    border: 1.5px solid currentColor;
    outline: none;
    cursor: pointer;
    min-width: 110px;
}

.cme-tipo-materiale[b-rfih1aunep]          { background: #E8F1FA; color: #1A5FA8; }
.cme-tipo-mezzo[b-rfih1aunep]              { background: #FFF8E6; color: #7A5200; }
.cme-tipo-presidio_sicurezza[b-rfih1aunep] { background: #FDECEA; color: #922B21; }
.cme-tipo-servizio[b-rfih1aunep]           { background: #F0EDFE; color: #4C3D9C; }

/* ── Edit inputs ─────────────────────────────────────────────────────── */

.cme-input[b-rfih1aunep] {
    width: 100%;
    font-size: 0.8rem;
    padding: 0.2em 0.4em;
    border: 1px solid #B8CFE8;
    border-radius: 5px;
    background: #fff;
    color: #17324D;
    outline: none;
    transition: border-color 0.12s;
}

.cme-input:focus[b-rfih1aunep] {
    border-color: #001B48;
    box-shadow: 0 0 0 2px rgba(0,27,72,0.1);
}

.cme-input-desc[b-rfih1aunep] { min-width: 180px; }
.cme-input-num[b-rfih1aunep]  { width: 90px; text-align: right; }
.cme-input-sm[b-rfih1aunep]   { width: 80px; }

/* ── Assegnazione massiva: barra selezione + riga evidenziata ────────── */

/* Barra come riga di toolbar: gap 12px e altezza minima dei controlli (var(--eco-ctl-h)) */
.cme-bulk-bar[b-rfih1aunep] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    background: #EDF3FB;
    border: 1px solid #C7D8EE;
    border-radius: 12px;
    padding: 8px 16px;
    min-height: var(--eco-ctl-h, 42px);
    font-size: 0.85rem;
    color: #1E334C;
}

.cme-row-selezionata td[b-rfih1aunep] { background: #F0F7FF; }

/* ── Espansione misurazioni per voce (come gli item delle fatture) ───── */

.cme-misure-tr td[b-rfih1aunep] {
    background: #F8FAFD;
    padding: 10px 14px 14px;
}

.cme-misure-box[b-rfih1aunep] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 10px;
    padding: 10px 14px;
    margin-left: 24px;   /* rientro: la tabella figlia appartiene alla voce sopra */
}

.cme-misure-title[b-rfih1aunep] {
    font-size: .78rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 6px;
}

.cme-misure-table[b-rfih1aunep] { font-size: .8rem; }
.cme-misure-table thead th[b-rfih1aunep] {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    border-bottom: 1px solid #E5EBF2;
}
.cme-misure-table tbody td[b-rfih1aunep] { border-bottom: 1px solid #F0F5FB; }
.cme-misure-table tbody tr:last-child td[b-rfih1aunep] { border-bottom: none; }

/* ── Barra modifiche non salvate (sotto i KPI) ───────────────────────── */

.cme-save-bar[b-rfih1aunep] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #FFF8E6;
    border: 1px solid #EBD9A8;
    border-radius: 12px;
    padding: 8px 16px;
    min-height: var(--eco-ctl-h, 42px);
}

.cme-save-bar-text[b-rfih1aunep] {
    flex: 1;
    font-size: 0.83rem;
    font-weight: 600;
    color: #92600A;
}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .cme-upload-card[b-rfih1aunep] { padding: 1.75rem 1.25rem; }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexComunicazioni.razor.rz.scp.css */
/* Comunicazioni e corrispondenza — stessi token del design system (economia.css).
   Pannello, campi e modali hanno la stessa forma dei Documenti progettuali. */


.cc-alert[b-nvegmhsw0g] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: .82rem;
    margin-bottom: 12px;
}

.cc-alert--err[b-nvegmhsw0g] { background: #FBEBED; color: #C0392B; }
/* Non è un errore: manca un dato e lo si chiede all'utente. */
.cc-alert--warn[b-nvegmhsw0g] { background: #FFF6E5; color: #8A5B00; align-items: flex-start; }
.cc-alert--warn > i[b-nvegmhsw0g] { margin-top: 2px; flex-shrink: 0; }

/* Riporto dell'indirizzo in anagrafica: scelta esplicita, sotto ai campi. */
.cc-check[b-nvegmhsw0g] {
    margin: 10px 0 12px;
    font-size: .8rem;
    color: #17324d;
}

.cc-check .form-check-input[b-nvegmhsw0g] { margin-top: .18rem; }
.cc-check .form-check-label[b-nvegmhsw0g] { cursor: pointer; }

/* ── Campi ───────────────────────────────────────────────────────────────── */

.cc-field[b-nvegmhsw0g] { margin-bottom: 16px; }

.cc-field__head[b-nvegmhsw0g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.cc-field__lbl[b-nvegmhsw0g] {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-bottom: 6px;
}

.cc-field__head .cc-field__lbl[b-nvegmhsw0g] { margin-bottom: 0; }

.cc-row[b-nvegmhsw0g] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

/* CAP · Città · Provincia: la città prende lo spazio, gli altri due il minimo */
.cc-row--tre[b-nvegmhsw0g] { grid-template-columns: 6rem minmax(0, 1fr) 5rem; }

.cc-testo[b-nvegmhsw0g] { line-height: 1.6; font-size: .86rem; resize: vertical; }

.cc-ai[b-nvegmhsw0g] { white-space: nowrap; }

.cc-ai-box[b-nvegmhsw0g] {
    background: #F7F4FD;
    border: 1px solid #E2D8F5;
    border-radius: 9px;
    padding: 11px 13px;
    margin-bottom: 16px;
}

.cc-ai-box__head[b-nvegmhsw0g] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .82rem;
    font-weight: 600;
    color: #5B3E9E;
}

.cc-ai-box__txt[b-nvegmhsw0g] {
    margin: 6px 0 0;
    font-size: .76rem;
    color: #6B5A8C;
    line-height: 1.5;
}

.cc-file[b-nvegmhsw0g] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 8px;
    padding: 7px 11px;
    background: #F5F8FC;
    border: 1px solid #E4EBF4;
    border-radius: 7px;
    font-size: .8rem;
    color: #1E334C;
}

.cc-file > i[b-nvegmhsw0g] { color: #8696a7; }

.cc-hint[b-nvegmhsw0g] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 9px 12px;
    background: #F5F8FC;
    border-radius: 8px;
    font-size: .76rem;
    color: #5B7A9A;
    line-height: 1.5;
}

.cc-hint > i[b-nvegmhsw0g] { color: #8696a7; margin-top: 1px; flex-shrink: 0; }
.cc-lead[b-nvegmhsw0g] { font-size: .86rem; color: #17324d; line-height: 1.55; margin: 0 0 12px; }

/* ── Anteprima lettera ───────────────────────────────────────────────────── */

.cc-prev[b-nvegmhsw0g] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 10px;
    padding: 24px 26px;
    box-shadow: 0 2px 12px rgba(0, 27, 72, .06);
}

.cc-prev__intestazione[b-nvegmhsw0g] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    margin-bottom: 20px;
    border-bottom: 2px solid #EDF2F7;
}

.cc-prev__azienda[b-nvegmhsw0g] { font-size: .92rem; font-weight: 700; color: #001B48; }
.cc-prev__data[b-nvegmhsw0g] { font-size: .8rem; color: #5B7A9A; font-variant-numeric: tabular-nums; }

/* Blocco destinatario: sulla metà destra del foglio, testo allineato a sinistra —
   la stessa disposizione che avrà nel documento generato. */
.cc-prev__destblocco[b-nvegmhsw0g] {
    width: 55%;
    margin: 0 0 26px auto;
    font-size: .86rem;
    line-height: 1.5;
    color: #1E334C;
}

.cc-prev__destblocco > div:first-child[b-nvegmhsw0g] { font-weight: 600; }
.cc-prev__vuoto[b-nvegmhsw0g] { color: #B9C9DA; font-style: italic; }

.cc-prev__dest[b-nvegmhsw0g] { margin-bottom: 18px; font-size: .86rem; color: #1E334C; }
.cc-prev__dest strong[b-nvegmhsw0g] { display: block; margin-top: 2px; }

.cc-prev__lbl[b-nvegmhsw0g] {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #8696a7;
    margin-right: 6px;
}

.cc-prev__oggetto[b-nvegmhsw0g] {
    font-size: .86rem;
    font-weight: 600;
    color: #1E334C;
    padding-bottom: 16px;
    margin-bottom: 18px;
    border-bottom: 1px solid #EDF2F7;
}

.cc-prev__corpo[b-nvegmhsw0g] {
    font-size: .88rem;
    line-height: 1.75;
    color: #17324d;
    white-space: pre-line;
    min-height: 5rem;
}

.cc-prev__nota[b-nvegmhsw0g] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 24px;
    padding-top: 14px;
    border-top: 1px dashed #E9EFF6;
    font-size: .74rem;
    color: #8696a7;
}

/* ── Drawer e modale ─────────────────────────────────────────────────────── */

.cc-back[b-nvegmhsw0g] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .40);
    z-index: 1040;
}

.cc-panel[b-nvegmhsw0g] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1041;
    width: min(720px, 100vw);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-left: 1px solid #DDE5EF;
    box-shadow: -18px 0 50px rgba(0, 27, 72, .18);
    animation: cc-slide-b-nvegmhsw0g .2s ease-out;
}

.cc-panel--stretta[b-nvegmhsw0g] { width: min(520px, 100vw); }

@keyframes cc-slide-b-nvegmhsw0g { from { transform: translateX(100%); } to { transform: translateX(0); } }

.cc-panel__head[b-nvegmhsw0g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #DDE5EF;
    background: #F7FAFD;
    flex-shrink: 0;
}

.cc-panel__title[b-nvegmhsw0g] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: .96rem;
    font-weight: 700;
    color: #1E334C;
    min-width: 0;
}

.cc-panel__title > i[b-nvegmhsw0g] { color: #4A6FA5; flex-shrink: 0; }

.cc-panel__body[b-nvegmhsw0g] { flex: 1; min-height: 0; overflow-y: auto; padding: 18px; }

.cc-panel__foot[b-nvegmhsw0g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid #DDE5EF;
    background: #FBFCFE;
    flex-shrink: 0;
}

.cc-panel__foot-dx[b-nvegmhsw0g] { display: flex; align-items: center; gap: 8px; }

.cc-modal[b-nvegmhsw0g] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(480px, 94vw);
    z-index: 1041;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 18px 50px rgba(0, 27, 72, .28);
    display: flex;
    flex-direction: column;
}

.cc-modal .cc-panel__head[b-nvegmhsw0g] { border-radius: 14px 14px 0 0; }
.cc-modal__body[b-nvegmhsw0g] { padding: 18px; }
.cc-modal .cc-panel__foot[b-nvegmhsw0g] { border-radius: 0 0 14px 14px; justify-content: flex-end; }

/* ── Mobile ──────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .cc-row[b-nvegmhsw0g] { grid-template-columns: minmax(0, 1fr); }

    .cc-panel[b-nvegmhsw0g], .cc-panel--stretta[b-nvegmhsw0g] {
        width: 100vw;
        top: 3vh;
        border-left: none;
        border-radius: 16px 16px 0 0;
        animation: cc-up-b-nvegmhsw0g .2s ease-out;
    }

    @keyframes cc-up-b-nvegmhsw0g { from { transform: translateY(100%); } to { transform: translateY(0); } }

    .cc-panel__body[b-nvegmhsw0g] { padding: 14px 12px; }
    .cc-prev[b-nvegmhsw0g] { padding: 16px 14px; }

    .cc-panel__foot[b-nvegmhsw0g] {
        flex-direction: column-reverse;
        align-items: stretch;
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    }

    .cc-panel__foot-dx[b-nvegmhsw0g] { flex-direction: column-reverse; }
    .cc-panel__foot .btn[b-nvegmhsw0g] { width: 100%; min-height: 42px; }
}

/* Input nascosto per la copia firmata: il click passa dalla label (icona eco-act) — 2026-09-17 */
.cm-hidden-file[b-nvegmhsw0g] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexDatiEconomici.razor.rz.scp.css */
/* Dashboard economica della commessa (Economia → Dati economici, 2026-09-04).
   Stessi token del design system eco-*: card bianche, bordo #DDE5EF, radius 12px,
   navy #1E334C/#001B48 per titoli e valori, verde #23824F solo positivo, rosso #C0392B
   solo negativo, blu #2F6FDD per i link. Nessun gradiente, ombra leggera. */

/* ── 1. KPI principali: 4 → 2 → 1 per riga ──────────────────────────────── */
.de-kpis[b-y8bc4o7f67] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.de-kpi[b-y8bc4o7f67] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-left: 3px solid #1E334C;
    border-radius: 12px;
    padding: 20px 24px;
    min-height: 104px;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    min-width: 0;
}

.de-kpi--pos[b-y8bc4o7f67] { border-left-color: #23824F; }
.de-kpi--neg[b-y8bc4o7f67] { border-left-color: #C0392B; }

.de-kpi__txt[b-y8bc4o7f67] { display: flex; flex-direction: column; min-width: 0; gap: 2px; }

.de-kpi__lbl[b-y8bc4o7f67] {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #718096;
}

.de-kpi__val[b-y8bc4o7f67] {
    font-size: 1.55rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.de-kpi__val.is-pos[b-y8bc4o7f67] { color: #23824F; }
.de-kpi__val.is-neg[b-y8bc4o7f67] { color: #C0392B; }

.de-kpi__sub[b-y8bc4o7f67] { font-size: .76rem; color: #8696a7; }

.de-kpi__ico[b-y8bc4o7f67] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #EDF3FB;
    color: #001B48;
    font-size: 1.05rem;
}

.de-kpi__ico--green[b-y8bc4o7f67]  { background: #E8F6EE; color: #23824F; }
.de-kpi__ico--red[b-y8bc4o7f67]    { background: #FBEBED; color: #C0392B; }
.de-kpi__ico--amber[b-y8bc4o7f67]  { background: #FBF0D9; color: #A5820F; }
.de-kpi__ico--violet[b-y8bc4o7f67] { background: #F0ECFB; color: #5B45B5; }

/* ── Righe di card ──────────────────────────────────────────────────────── */
.de-row[b-y8bc4o7f67] {
    display: grid;
    gap: 16px;
    margin-bottom: 16px;
}

.de-row--half[b-y8bc4o7f67]  { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.de-row--40-60[b-y8bc4o7f67] { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }

.de-card[b-y8bc4o7f67] {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    padding: var(--eco-pad, 24px);
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    min-width: 0;
}

.de-card__head[b-y8bc4o7f67] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.de-card__title[b-y8bc4o7f67] {
    margin: 0;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #1E334C;
}

.de-card__aside[b-y8bc4o7f67] { font-size: .82rem; color: #4A5B70; white-space: nowrap; }
.de-card__aside strong[b-y8bc4o7f67] { color: #1E334C; font-variant-numeric: tabular-nums; }

.de-card__note[b-y8bc4o7f67] {
    margin-top: 10px;
    font-size: .74rem;
    color: #8696a7;
    line-height: 1.4;
}

.de-link[b-y8bc4o7f67] {
    margin-top: auto;
    padding-top: 12px;
    align-self: flex-start;
    font-size: .84rem;
    font-weight: 600;
    color: #2F6FDD;
    text-decoration: none;
}

.de-link:hover[b-y8bc4o7f67] { text-decoration: underline; }
.de-link .bi[b-y8bc4o7f67] { font-size: .8rem; margin-left: 2px; }

/* ── 2. Composizione costi: donut + elenco ──────────────────────────────── */
.de-comp[b-y8bc4o7f67] {
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
}

.de-donut[b-y8bc4o7f67] { width: 168px; height: 168px; }

.de-donut__bg[b-y8bc4o7f67]  { fill: none; stroke: #EDF3FB; stroke-width: 7; }
.de-donut__seg[b-y8bc4o7f67] { fill: none; stroke-width: 7; transition: stroke-width .15s; }
.de-donut__seg:hover[b-y8bc4o7f67] { stroke-width: 8.5; }

.de-comp__list[b-y8bc4o7f67] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }

.de-comp__row[b-y8bc4o7f67] {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr) auto 58px;
    align-items: center;
    gap: 10px;
    font-size: .86rem;
    color: #1E334C;
}

.de-comp__dot[b-y8bc4o7f67]  { width: 10px; height: 10px; border-radius: 50%; }
.de-comp__name[b-y8bc4o7f67] { min-width: 0; overflow-wrap: anywhere; }
.de-comp__note[b-y8bc4o7f67] { display: block; font-size: .7rem; color: #8696a7; }
.de-comp__amt[b-y8bc4o7f67]  { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.de-comp__pct[b-y8bc4o7f67]  { text-align: right; color: #4A5B70; font-variant-numeric: tabular-nums; }

/* ── 3. Avanzamento economico ───────────────────────────────────────────── */
.de-lines[b-y8bc4o7f67] { margin: 0; }

.de-line[b-y8bc4o7f67] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 62px;
    align-items: baseline;
    gap: 12px;
    padding: 6px 0;
    font-size: .88rem;
}

.de-line dt[b-y8bc4o7f67] { font-weight: 400; color: #4A5B70; }
.de-line dd[b-y8bc4o7f67] { margin: 0; }
.de-line__amt[b-y8bc4o7f67] { font-weight: 700; color: #1E334C; font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.de-line__pct[b-y8bc4o7f67] { color: #4A5B70; font-variant-numeric: tabular-nums; text-align: right; }
.de-line__amt.is-pos[b-y8bc4o7f67] { color: #23824F; }
.de-line__amt.is-neg[b-y8bc4o7f67] { color: #C0392B; }

.de-lines--result[b-y8bc4o7f67] { margin-top: 12px; border-top: 1px solid #EEF2F7; padding-top: 6px; }

.de-progress[b-y8bc4o7f67] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 8px 0 4px;
}

.de-progress[b-y8bc4o7f67]::before {
    content: "";
    position: absolute;
    left: 0;
    right: 42px;
    height: 12px;
    border-radius: 6px;
    background: #EDF3FB;
}

.de-progress__bar[b-y8bc4o7f67] {
    position: relative;
    height: 12px;
    border-radius: 6px;
    background: #2F6FDD;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 6px;
    font-size: .66rem;
    font-weight: 700;
    color: #fff;
    flex: 0 0 auto;
    max-width: calc(100% - 42px);
}

.de-progress__out[b-y8bc4o7f67] { position: relative; font-size: .74rem; font-weight: 600; color: #1E334C; }
.de-progress__end[b-y8bc4o7f67] { margin-left: auto; font-size: .74rem; color: #4A5B70; width: 32px; text-align: right; }

/* ── 4. Materiali e acquisti: netto → ricarico → ricaricato ─────────────── */
.de-chain[b-y8bc4o7f67] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 0;
}

.de-chain__step[b-y8bc4o7f67] { display: flex; flex-direction: column; align-items: center; text-align: center; min-width: 0; flex: 1 1 0; }
.de-chain__lbl[b-y8bc4o7f67]  { font-size: .76rem; color: #4A5B70; }
.de-chain__val[b-y8bc4o7f67]  { font-size: 1.15rem; font-weight: 700; color: #1E334C; font-variant-numeric: tabular-nums; white-space: nowrap; }
.de-chain__arrow[b-y8bc4o7f67] { color: #8696a7; font-size: 1rem; flex: 0 0 auto; }

/* ── 5. Risorse imputate: blocchi interni ───────────────────────────────── */
.de-res[b-y8bc4o7f67] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.de-res__item[b-y8bc4o7f67] { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }

.de-res__ico[b-y8bc4o7f67] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #EDF3FB;
    color: #001B48;
}

.de-res__txt[b-y8bc4o7f67] { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.de-res__lbl[b-y8bc4o7f67] { font-size: .76rem; color: #4A5B70; }
.de-res__val[b-y8bc4o7f67] { font-size: 1.1rem; font-weight: 700; color: #1E334C; font-variant-numeric: tabular-nums; white-space: nowrap; }
.de-res__sub[b-y8bc4o7f67] { font-size: .72rem; color: #8696a7; line-height: 1.35; overflow-wrap: anywhere; }
.de-res__flag[b-y8bc4o7f67] { font-size: .7rem; margin-top: 2px; }
.de-res__flag--warn[b-y8bc4o7f67]   { color: #A5820F; }
.de-res__flag--danger[b-y8bc4o7f67] { color: #C0392B; }

/* ── 6. Da fatturare (compatta) ─────────────────────────────────────────── */
.de-card--strip[b-y8bc4o7f67] {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
}

.de-strip__txt[b-y8bc4o7f67] { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.de-strip__val[b-y8bc4o7f67] { font-size: 1.25rem; font-weight: 700; color: #1E334C; font-variant-numeric: tabular-nums; white-space: nowrap; }
.de-strip__link[b-y8bc4o7f67] { margin: 0 0 0 auto; padding: 0; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 1200px) {
    .de-res[b-y8bc4o7f67] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
    .de-kpis[b-y8bc4o7f67] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .de-row--half[b-y8bc4o7f67], .de-row--40-60[b-y8bc4o7f67] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
    .de-kpis[b-y8bc4o7f67] { grid-template-columns: minmax(0, 1fr); }
    .de-kpi__val[b-y8bc4o7f67] { font-size: 1.35rem; }
    .de-comp[b-y8bc4o7f67] { grid-template-columns: minmax(0, 1fr); justify-items: center; }
    .de-comp__list[b-y8bc4o7f67] { width: 100%; }
    .de-chain[b-y8bc4o7f67] { flex-direction: column; align-items: stretch; }
    .de-chain__arrow[b-y8bc4o7f67] { transform: rotate(90deg); align-self: center; }
    .de-res[b-y8bc4o7f67] { grid-template-columns: minmax(0, 1fr); }
    .de-card--strip[b-y8bc4o7f67] { flex-wrap: wrap; }
    .de-strip__link[b-y8bc4o7f67] { margin-left: 0; }
}

/* Riga informativa: il ribasso non è un costo, è la distanza dalla base d'asta. */
.de-line--nota dt[b-y8bc4o7f67], .de-line--nota dd[b-y8bc4o7f67] { color: #5B7A9A; font-style: italic; }

/* Avviso sul KPI: l'importo mostrato non è nello stesso perimetro dei costi (2026-09-22). */
.de-kpi__sub--warn[b-y8bc4o7f67] { color: #b45309; font-weight: 500; }
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexDocumentiProgettuali.razor.rz.scp.css */
/* Documenti progettuali — stessi token del design system (economia.css).
   Pannello e modali condividono la forma con le altre sezioni della commessa. */


.dp-alert[b-gsdnvo25by] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: .82rem;
    margin-bottom: 12px;
}

.dp-alert--err[b-gsdnvo25by] { background: #FBEBED; color: #C0392B; }

/* ── Campi ───────────────────────────────────────────────────────────────── */

.dp-field[b-gsdnvo25by] { margin-bottom: 16px; }

.dp-field__lbl[b-gsdnvo25by] {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-bottom: 6px;
}

.dp-opt[b-gsdnvo25by] { font-weight: 400; text-transform: none; letter-spacing: 0; color: #8696a7; }

.dp-row[b-gsdnvo25by] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.dp-hint[b-gsdnvo25by] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 8px;
    padding: 9px 12px;
    background: #F5F8FC;
    border-radius: 8px;
    font-size: .76rem;
    color: #5B7A9A;
    line-height: 1.5;
}

.dp-hint > i[b-gsdnvo25by] { color: #8696a7; margin-top: 1px; flex-shrink: 0; }

.dp-hint--strong[b-gsdnvo25by] {
    background: #EDF3FB;
    border: 1px solid #D9E5F4;
    color: #2C4C74;
    margin: 0 0 16px;
}

.dp-hint--strong > i[b-gsdnvo25by] { color: #4A6FA5; }

.dp-file[b-gsdnvo25by] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 8px;
    padding: 7px 11px;
    background: #F5F8FC;
    border: 1px solid #E4EBF4;
    border-radius: 7px;
    font-size: .8rem;
    color: #1E334C;
}

.dp-file > i[b-gsdnvo25by] { color: #8696a7; }
.dp-file__size[b-gsdnvo25by] { margin-left: auto; color: #8696a7; font-size: .74rem; }

.dp-lead[b-gsdnvo25by] { font-size: .86rem; color: #17324d; line-height: 1.55; margin: 0 0 12px; }

/* ── Drawer laterale ─────────────────────────────────────────────────────── */

.dp-back[b-gsdnvo25by] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .40);
    z-index: 1040;
}

.dp-panel[b-gsdnvo25by] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1041;
    width: min(560px, 100vw);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-left: 1px solid #DDE5EF;
    box-shadow: -18px 0 50px rgba(0, 27, 72, .18);
    animation: dp-slide-b-gsdnvo25by .2s ease-out;
}

@keyframes dp-slide-b-gsdnvo25by { from { transform: translateX(100%); } to { transform: translateX(0); } }

.dp-panel__head[b-gsdnvo25by],
.dp-modal__head[b-gsdnvo25by] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #DDE5EF;
    background: #F7FAFD;
    flex-shrink: 0;
}

.dp-panel__title[b-gsdnvo25by] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: .96rem;
    font-weight: 700;
    color: #1E334C;
}

.dp-panel__title > i[b-gsdnvo25by] { color: #4A6FA5; }

.dp-panel__body[b-gsdnvo25by] { flex: 1; min-height: 0; overflow-y: auto; padding: 18px; }

.dp-panel__foot[b-gsdnvo25by],
.dp-modal__foot[b-gsdnvo25by] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid #DDE5EF;
    background: #FBFCFE;
    flex-shrink: 0;
}

/* ── Modale centrale ─────────────────────────────────────────────────────── */

.dp-modal[b-gsdnvo25by] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(480px, 94vw);
    z-index: 1041;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 18px 50px rgba(0, 27, 72, .28);
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}

.dp-modal__head[b-gsdnvo25by] { border-radius: 14px 14px 0 0; }
.dp-modal__body[b-gsdnvo25by] { padding: 18px; overflow-y: auto; }
.dp-modal__foot[b-gsdnvo25by] { border-radius: 0 0 14px 14px; }

/* ── Mobile ──────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .dp-row[b-gsdnvo25by] { grid-template-columns: minmax(0, 1fr); }

    .dp-panel[b-gsdnvo25by] {
        width: 100vw;
        top: 4vh;
        border-left: none;
        border-radius: 16px 16px 0 0;
        animation: dp-up-b-gsdnvo25by .2s ease-out;
    }

    @keyframes dp-up-b-gsdnvo25by { from { transform: translateY(100%); } to { transform: translateY(0); } }

    .dp-panel__body[b-gsdnvo25by] { padding: 14px 12px calc(14px + env(safe-area-inset-bottom, 0px)); }
    .dp-panel__foot .btn[b-gsdnvo25by], .dp-modal__foot .btn[b-gsdnvo25by] { flex: 1 1 auto; min-height: 42px; }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexDocumentiSicurezza.razor.rz.scp.css */
/* Documenti Sicurezza commessa — stile allineato alla tab POS (_IndexFilteredPOS) */

/* ── Section header ──────────────────────────────────────────────────── */
.pos-section-header[b-xfruklraed] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.pos-section-title[b-xfruklraed] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 0.15rem;
}

.pos-section-sub[b-xfruklraed] {
    font-size: 0.8rem;
    color: #5B7A9A;
}

/* ── Card ────────────────────────────────────────────────────────────── */
.pos-card[b-xfruklraed] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    overflow: hidden;
}

/* ── Table ───────────────────────────────────────────────────────────── */
.pos-table[b-xfruklraed] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    margin: 0;
}

.pos-table thead th[b-xfruklraed] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
    border-top: none;
}

.pos-table tbody td[b-xfruklraed] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    color: #334155;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna sull'asse della card (24px): la tabella è a filo nella pos-card */
.pos-table th:first-child[b-xfruklraed], .pos-table td:first-child[b-xfruklraed] { padding-left: var(--eco-pad, 24px); }
.pos-table th:last-child[b-xfruklraed],  .pos-table td:last-child[b-xfruklraed]  { padding-right: var(--eco-pad, 24px); }

.pos-table tbody tr:last-child td[b-xfruklraed] { border-bottom: none; }
.pos-table tbody tr:hover td[b-xfruklraed]      { background: #fafcff; }

/* Titolo/tipo documento (1ª colonna): su una sola riga quando possibile */
.pos-table td:first-child[b-xfruklraed] {
    white-space: nowrap;
    font-weight: 600;
    color: #1E334C;
}

/* ── Cell content ────────────────────────────────────────────────────── */
.pos-rev[b-xfruklraed] {
    font-weight: 600;
    color: #1E334C;
}

.pos-data[b-xfruklraed] {
    white-space: nowrap;
    color: #5B7A9A;
    font-size: 0.82rem;
}

.pos-sub[b-xfruklraed] {
    color: #5B7A9A;
    font-size: 0.82rem;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */
/* Icon button canonico 36×36 (token globali in app.css) */
.pos-icon-btn[b-xfruklraed] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.pos-icon-btn:hover[b-xfruklraed]        { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.pos-icon-btn-danger:hover[b-xfruklraed] { background: var(--icobtn-danger-bg, #FBEBED); color: var(--icobtn-danger, #C0392B); }

.pos-actions[b-xfruklraed] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    white-space: nowrap;
}

/* ── Empty state ─────────────────────────────────────────────────────── */
.pos-empty[b-xfruklraed] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
    color: #5B7A9A;
}

.pos-empty .bi[b-xfruklraed] {
    font-size: 2.5rem;
    display: block;
    opacity: 0.35;
    margin-bottom: 0.75rem;
}

.pos-empty-title[b-xfruklraed] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.pos-empty-text[b-xfruklraed] {
    font-size: 0.875rem;
    max-width: 360px;
    margin: 0 auto;
}

/* ════════════════════════════════════════════════════════════════════════════
   Riorganizzazione della pagina (prefisso ds-).
   Stessi colori, raggi e tipografia già in uso: cambia solo la disposizione.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Sezioni ben separate ────────────────────────────────────────────────── */

.ds-block[b-xfruklraed] {
    margin-bottom: 2rem;
    padding: 0;
}

.ds-block:last-child[b-xfruklraed] { margin-bottom: 0; }

/* Standard di spaziatura (2026-09-04): header, corpo, tabella e checklist sullo
   stesso asse sinistro a var(--eco-pad); l'header non si alza (18px verticali). */
.ds-card-head[b-xfruklraed] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 18px var(--eco-pad, 24px);
    border-bottom: 1px solid #e8eef7;
}

.ds-card-title[b-xfruklraed] {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: 1rem;
    font-weight: 700;
    color: #001B48;
    line-height: 1.3;
}

.ds-card-title > i[b-xfruklraed] { font-size: 1.05rem; color: #001B48; opacity: .8; }

.ds-card-sub[b-xfruklraed] {
    font-size: .82rem;
    color: #5B7A9A;
    margin-top: .2rem;
    line-height: 1.45;
}

/* Conteggio della sezione: informativo, non un badge di stato. */
.ds-count[b-xfruklraed] {
    font-size: .78rem;
    font-weight: 600;
    color: #5B7A9A;
    background: #f2f7fd;
    border: 1px solid #dce8f5;
    border-radius: 999px;
    padding: .25rem .7rem;
    white-space: nowrap;
}

.ds-card-body[b-xfruklraed] { padding: 20px var(--eco-pad, 24px); }
.ds-tabella[b-xfruklraed]   { padding: 0; }

/* Tabelle eco-table a filo nella card: prima/ultima colonna sull'asse dell'header (24px) */
.ds-tabella .eco-table th:first-child[b-xfruklraed], .ds-tabella .eco-table td:first-child[b-xfruklraed] { padding-left: var(--eco-pad, 24px); }
.ds-tabella .eco-table th:last-child[b-xfruklraed],  .ds-tabella .eco-table td:last-child[b-xfruklraed]  { padding-right: var(--eco-pad, 24px); }

.ds-nomefile[b-xfruklraed] {
    color: #5B7A9A;
    word-break: break-word;
}

/* ── Azioni: una primaria, il resto nel menu ─────────────────────────────── */

.ds-azioni-cella[b-xfruklraed] { text-align: right; white-space: nowrap; }

/* gap 4px + il margin-left 4px di .eco-act + .eco-act = 8px fra le icone */
.ds-azioni[b-xfruklraed] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    justify-content: flex-end;
}

/* ── Badge di stato ──────────────────────────────────────────────────────── */

.ds-badge[b-xfruklraed] {
    display: inline-block;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 600;
    padding: .18rem .6rem;
    white-space: nowrap;
}

.ds-badge-ok[b-xfruklraed]     { background: #e6f4ea; color: #1a7f37; }
.ds-badge-warn[b-xfruklraed]   { background: #fff4e5; color: #b45309; }
.ds-badge-err[b-xfruklraed]    { background: #fdecea; color: #b42318; }
.ds-badge-neutro[b-xfruklraed] { background: #eef2f7; color: #5B7A9A; }

/* ── Checklist di pubblicazione ──────────────────────────────────────────── */

.ds-checklist[b-xfruklraed] {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Righe delle checklist nei box: stessa altezza e stesso asse delle righe di tabella */
.ds-check-riga[b-xfruklraed] {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: var(--eco-cell-y, 14px) var(--eco-pad, 24px);
    min-height: var(--eco-row-h, 54px);
    border-bottom: 1px solid #f1f5fa;
}

.ds-check-riga:last-child[b-xfruklraed] { border-bottom: none; }
.ds-check-riga:hover[b-xfruklraed]      { background: #fafcff; }

.ds-check-riga > i[b-xfruklraed] { font-size: 1.1rem; flex-shrink: 0; }
.ds-check-on[b-xfruklraed]       { color: #1a7f37; }
.ds-check-off[b-xfruklraed]      { color: #c9d6e5; }

.ds-check-testo[b-xfruklraed] { flex: 1; min-width: 0; }

.ds-check-nome[b-xfruklraed] {
    font-size: .9rem;
    font-weight: 600;
    color: #001B48;
    line-height: 1.3;
}

.ds-check-meta[b-xfruklraed] {
    font-size: .78rem;
    color: #8FA0B5;
    margin-top: .1rem;
}


/* ── Tablet ──────────────────────────────────────────────────────────────── */

@media (max-width: 991.98px) {
    /* Sotto i 992px il padding laterale scende a 20px (token), mai a zero */
    .ds-card-head[b-xfruklraed] { padding: 16px var(--eco-pad, 20px); }
    .ds-card-body[b-xfruklraed] { padding: 16px var(--eco-pad, 20px); }

    .ds-check-riga[b-xfruklraed] {
        flex-wrap: wrap;
        padding: var(--eco-cell-y, 14px) var(--eco-pad, 20px);
    }

    .ds-check-testo[b-xfruklraed] { flex: 1 1 60%; }
    .ds-azioni[b-xfruklraed]      { width: 100%; justify-content: flex-start; }
}

/* ── Mobile: ogni documento è una card verticale, in sola consultazione ────
   In cantiere si consultano documenti, non si amministrano: sostituzione ed
   eliminazione spariscono, resta un solo bersaglio grande da premere. */

@media (max-width: 719.98px) {

    .ds-block[b-xfruklraed] { margin-bottom: 1.5rem; }

    .ds-tabella[b-xfruklraed] { overflow: visible; }

    .ds-tabella table[b-xfruklraed],
    .ds-tabella tbody[b-xfruklraed],
    .ds-tabella tr[b-xfruklraed],
    .ds-tabella td[b-xfruklraed] {
        display: block;
        width: 100%;
    }

    .ds-tabella thead[b-xfruklraed],
    .ds-tabella colgroup[b-xfruklraed] { display: none; }

    .ds-tabella tr[b-xfruklraed] {
        border: 1px solid #e8eef7;
        border-radius: 12px;
        padding: .9rem 1rem;
        margin: 0 1rem .75rem;
        background: #fff;
    }

    .ds-tabella td[b-xfruklraed] {
        border: none !important;
        padding: .2rem 0 !important;
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        font-size: .88rem;
    }

    /* L'intestazione della colonna diventa l'etichetta della riga. */
    .ds-tabella td[b-xfruklraed]::before {
        content: attr(data-etichetta);
        font-size: .78rem;
        color: #8FA0B5;
        font-weight: 600;
        flex-shrink: 0;
    }

    /* Il tipo documento fa da titolo della card. */
    .ds-tabella td:first-child[b-xfruklraed] {
        font-size: 1rem;
        font-weight: 700;
        color: #001B48;
        display: block;
        margin-bottom: .5rem;
    }

    .ds-tabella td:first-child[b-xfruklraed]::before { content: none; }

    /* Solo "Visualizza", a piena larghezza: niente menu, niente icone di modifica. */
    .ds-azioni-cella[b-xfruklraed] {
        display: block !important;
        margin-top: .85rem;
    }


    .ds-azioni[b-xfruklraed] { width: 100%; }


    /* Checklist: badge e pulsante scendono sotto il nome. */
    .ds-check-riga[b-xfruklraed] {
        flex-wrap: wrap;
        gap: .6rem;
    }

    .ds-check-testo[b-xfruklraed] { flex: 1 1 100%; }
}

/* ══ Vista mobile: solo consultazione (brief UX 2026-07-30) ══════════════════
   Sotto i 720px la gestione (upload, sostituzioni, pubblicazioni, eliminazioni)
   sparisce (.ds-solo-desktop) e compare l'elenco di pura consultazione
   (.ds-mobile): card per sezione, righe alte ~76px, un solo pulsante grande
   "Visualizza". Documento aperto in due tocchi. */

.ds-mobile[b-xfruklraed] { display: none; }

@media (max-width: 719.98px) {
    .ds-solo-desktop[b-xfruklraed] { display: none !important; }

    .ds-mobile[b-xfruklraed] {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .dsm-card[b-xfruklraed] { padding: 14px 14px 8px; }

    .dsm-head[b-xfruklraed] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        margin-bottom: 6px;
    }

    .dsm-title[b-xfruklraed] {
        font-size: 15px;
        font-weight: 700;
        color: #001B48;
        display: inline-flex;
        align-items: center;
        gap: 8px;
    }
    .dsm-title > i[b-xfruklraed] { color: #60748F; font-size: 15px; }

    .dsm-count[b-xfruklraed] {
        background: #EDF1F6;
        color: #4B5C72;
        border-radius: 999px;
        font-size: 12px;
        font-weight: 700;
        padding: 3px 10px;
    }

    .dsm-riga[b-xfruklraed] {
        display: flex;
        align-items: center;
        gap: 12px;
        min-height: 76px;          /* target 72-80px: riga comoda col pollice */
        padding: 8px 0;
        border-top: 1px solid #EDF1F6;
    }

    .dsm-ico[b-xfruklraed] {
        flex: 0 0 auto;
        font-size: 26px;
        color: #60748F;
    }

    .dsm-testo[b-xfruklraed] { flex: 1 1 auto; min-width: 0; }

    .dsm-nome[b-xfruklraed] {
        font-size: 15px;
        font-weight: 600;
        color: #1E334C;
        line-height: 1.25;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .dsm-meta[b-xfruklraed] {
        font-size: 12.5px;
        color: #60748F;
        margin-top: 2px;
        display: flex;
        align-items: center;
        gap: 6px;
        flex-wrap: wrap;
    }

    /* Pulsante grande e inequivocabile: l'unica azione della riga */
    .dsm-vedi[b-xfruklraed] {
        flex: 0 0 auto;
        border: 1px solid #001B48;
        background: #FFFFFF;
        color: #001B48;
        border-radius: 10px;
        font-size: 14px;
        font-weight: 600;
        padding: 12px 16px;
        min-height: 46px;
    }
    .dsm-vedi:active[b-xfruklraed] { background: #EAF0F8; }

    .dsm-tutti[b-xfruklraed] {
        display: block;
        width: 100%;
        border: 0;
        border-top: 1px solid #EDF1F6;
        background: transparent;
        color: #001B48;
        font-size: 14px;
        font-weight: 600;
        padding: 12px 0;
        margin-top: 2px;
    }
    .dsm-tutti:active[b-xfruklraed] { background: #F3F6FA; }
}

/* ── Azioni in riga a icona (standard 2026-09-03: occhio · sostituisci · elimina) ──
   Su mobile si consulta soltanto: le azioni amministrative spariscono e l'occhio
   diventa un bersaglio grande, come prima il pulsante "Visualizza". */

.ds-azioni .eco-act[b-xfruklraed] { flex-shrink: 0; }

@media (max-width: 719.98px) {
    .ds-act-admin[b-xfruklraed] { display: none !important; }

    .ds-azioni .eco-act[b-xfruklraed] {
        width: 100%;
        min-height: 48px;
        border: 1px solid var(--btn-border, #C7D2E2);
        border-radius: 8px;
        background: #fff;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexEV.razor.rz.scp.css */
/* ── EV · Project Management — pannello Earned Value ──────────────────────────
   Layout pensato per TABLET ORIZZONTALE (1024×768) come minimo utile e
   scalabile fino a 16:9 (1920×1080): griglie auto-fit, tipografia clamp(),
   grafici in viewBox con aspect-ratio (scalano, non si ridisegnano).
   ⚠️ CSS isolation: i testi SVG sono emessi via MarkupString (Razor riserva il
   tag <text>) e NON ricevono l'attributo di scope → si stilano con ::deep sul
   contenitore, che l'attributo ce l'ha.                                        */

.ev-panel[b-eo2oe0sorm] {
    --ev-navy: #1E334C;
    --ev-bord: #dceaf8;
    --ev-bord2: #DDE5EF;
    --ev-muted: #718096;
    --ev-blue: #4f83cc;
    --ev-green: #2e9e6b;
    --ev-red: #d64545;
    --ev-amber: #A5820F;
    --ev-pad: clamp(14px, 1.3vw, 24px);
    --ev-gap: clamp(10px, 0.9vw, 16px);

    display: flex;
    flex-direction: column;
    gap: var(--ev-gap);
}

.ev-card[b-eo2oe0sorm] {
    background: #fff;
    border: 1px solid var(--ev-bord);
    border-radius: 12px;
    padding: var(--ev-pad);
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
}

/* ── Testata: identità del pannello + data di stato ─────────────────────── */

.ev-head[b-eo2oe0sorm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ev-gap);
    flex-wrap: wrap;
    padding: calc(var(--ev-pad) * 0.62) var(--ev-pad);
}

.ev-head__id[b-eo2oe0sorm] { display: flex; align-items: center; gap: 0.6rem; min-width: 0; }

.ev-head__h[b-eo2oe0sorm] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: clamp(0.95rem, 1.05vw, 1.15rem);
    font-weight: 700;
    color: var(--ev-navy);
    white-space: nowrap;
}

.ev-head__h i[b-eo2oe0sorm] { color: var(--ev-blue); }

.ev-std[b-eo2oe0sorm] {
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #48678c;
    background: #EDF3FB;
    border: 1px solid #d8e6f6;
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
    cursor: help;
}

.ev-head__ctl[b-eo2oe0sorm] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ev-dd[b-eo2oe0sorm] { display: inline-flex; align-items: center; gap: 8px; margin: 0; }

.ev-dd__lbl[b-eo2oe0sorm] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ev-muted);
    cursor: help;
}

.ev-dd__in[b-eo2oe0sorm] { width: 152px; min-height: 40px; }

/* Chip: bersaglio touch ≥ 40px (tablet e telefono) */
.ev-chip[b-eo2oe0sorm] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 40px;
    padding: 0 0.8rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #48678c;
    background: #fff;
    border: 1px solid var(--ev-bord2);
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .12s, border-color .12s, color .12s;
}

.ev-chip:hover[b-eo2oe0sorm] { background: #f4f8fd; color: var(--ev-navy); }
.ev-chip.is-on[b-eo2oe0sorm] { background: var(--ev-navy); border-color: var(--ev-navy); color: #fff; }
.ev-chip--ghost[b-eo2oe0sorm] { background: transparent; border-style: dashed; }
.ev-chip--ghost.is-on[b-eo2oe0sorm] { background: #EDF3FB; border-style: solid; border-color: #b9d2ee; color: var(--ev-navy); }
.ev-chip__n[b-eo2oe0sorm] {
    font-size: 0.7rem;
    font-weight: 700;
    background: #EDF3FB;
    color: #48678c;
    border-radius: 999px;
    padding: 1px 6px;
}
.ev-chip.is-on .ev-chip__n[b-eo2oe0sorm] { background: rgba(255, 255, 255, .22); color: #fff; }

/* ── Avvisi: mai un numero che sembra storico senza esserlo ─────────────── */

.ev-note[b-eo2oe0sorm] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.8rem;
    line-height: 1.4;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid var(--ev-bord2);
    background: #f7fafd;
    color: #52606e;
}

.ev-note i[b-eo2oe0sorm] { margin-top: 2px; }
.ev-note--warn[b-eo2oe0sorm] { background: #FBF6E7; border-color: #eedfb4; color: #6d5610; }
.ev-note--info[b-eo2oe0sorm] { background: #EDF3FB; border-color: #d8e6f6; color: #2c4a6e; }
.ev-note--soft[b-eo2oe0sorm] { margin-top: var(--ev-gap); }
.ev-note .ev-chip[b-eo2oe0sorm] { margin-left: auto; }

/* ── Semaforo di progetto: avanzamento + tempi + costi + previsione ────── */

.ev-health[b-eo2oe0sorm] {
    display: grid;
    grid-template-columns: minmax(240px, 1.3fr) repeat(auto-fit, minmax(190px, 1fr));
    gap: var(--ev-gap);
}

.ev-prog__k[b-eo2oe0sorm], .ev-sig__k[b-eo2oe0sorm] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ev-muted);
}

.ev-prog__v[b-eo2oe0sorm] {
    font-size: clamp(1.5rem, 2vw, 2rem);
    font-weight: 800;
    color: var(--ev-navy);
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
    margin: 2px 0 8px;
}

.ev-bar[b-eo2oe0sorm] {
    position: relative;
    height: 10px;
    border-radius: 999px;
    background: #eef3f9;
    overflow: visible;
}

.ev-bar__ev[b-eo2oe0sorm] {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #3f7fbf, #2e9e6b);
}

/* Tacca del piano: il confronto "dove sono / dove dovrei essere" a colpo d'occhio */
.ev-bar__pv[b-eo2oe0sorm] {
    position: absolute;
    top: -4px;
    width: 2px;
    height: 18px;
    background: var(--ev-navy);
    border-radius: 2px;
}

.ev-prog__n[b-eo2oe0sorm] {
    margin-top: 8px;
    font-size: 0.74rem;
    color: #8696a7;
}

.ev-sig[b-eo2oe0sorm] { border-left: 4px solid var(--ev-bord2); }
.ev-sig--green[b-eo2oe0sorm] { border-left-color: var(--ev-green); }
.ev-sig--amber[b-eo2oe0sorm] { border-left-color: #d9a913; }
.ev-sig--red[b-eo2oe0sorm]   { border-left-color: var(--ev-red); }

.ev-sig__v[b-eo2oe0sorm] {
    font-size: clamp(1.15rem, 1.45vw, 1.5rem);
    font-weight: 700;
    color: var(--ev-navy);
    font-variant-numeric: tabular-nums;
    margin: 4px 0 2px;
}

.ev-sig__n[b-eo2oe0sorm] { font-size: 0.76rem; color: #52606e; line-height: 1.3; }
.ev-sig--green .ev-sig__v[b-eo2oe0sorm] { color: #23824F; }
.ev-sig--amber .ev-sig__v[b-eo2oe0sorm] { color: #8a6d0b; }
.ev-sig--red .ev-sig__v[b-eo2oe0sorm] { color: #C0392B; }

/* ── Sotto-tab ─────────────────────────────────────────────────────────── */

.ev-tabs[b-eo2oe0sorm] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--ev-bord);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.ev-tabs[b-eo2oe0sorm]::-webkit-scrollbar { display: none; }

.ev-tab[b-eo2oe0sorm] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    min-height: 44px;
    padding: 0 0.9rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    white-space: nowrap;
    transition: color .12s, border-color .12s;
}

.ev-tab:hover[b-eo2oe0sorm] { color: var(--ev-navy); }
.ev-tab.active[b-eo2oe0sorm] { color: var(--ev-navy); font-weight: 700; border-bottom-color: var(--ev-navy); }

/* ── Intestazione di sezione dentro la card ───────────────────────────── */

.ev-sec[b-eo2oe0sorm] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    margin-bottom: var(--ev-gap);
}

.ev-sec + .ev-mx[b-eo2oe0sorm], .ev-sec + .eco-kpis[b-eo2oe0sorm] { margin-bottom: calc(var(--ev-gap) * 1.5); }

.ev-sec__t[b-eo2oe0sorm] {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ev-navy);
}

.ev-sec__s[b-eo2oe0sorm] { font-size: 0.76rem; color: #8696a7; flex: 1 1 240px; line-height: 1.35; }
.ev-sec__act[b-eo2oe0sorm] { margin-left: auto; flex: 0 0 auto; }

/* KPI principali: il componente unificato della sezione Economia */
.ev-kpis[b-eo2oe0sorm] { margin-bottom: 0; }

/* ── Piastrelle indici: sigla internazionale + valore + nome italiano ─── */

.ev-mx[b-eo2oe0sorm] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--ev-gap);
}

.ev-mx__t[b-eo2oe0sorm] {
    border: 1px solid var(--ev-bord2);
    border-left: 3px solid var(--ev-bord2);
    border-radius: 10px;
    padding: 10px 12px;
    min-width: 0;
    cursor: help;
}

.ev-mx__t--green[b-eo2oe0sorm] { border-left-color: var(--ev-green); }
.ev-mx__t--amber[b-eo2oe0sorm] { border-left-color: #d9a913; }
.ev-mx__t--red[b-eo2oe0sorm]   { border-left-color: var(--ev-red); }

.ev-mx__k[b-eo2oe0sorm] {
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    color: #8696a7;
    text-transform: uppercase;
}

.ev-mx__v[b-eo2oe0sorm] {
    font-size: clamp(1rem, 1.15vw, 1.3rem);
    font-weight: 700;
    color: var(--ev-navy);
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ev-mx__t--green .ev-mx__v[b-eo2oe0sorm] { color: #23824F; }
.ev-mx__t--red .ev-mx__v[b-eo2oe0sorm] { color: #C0392B; }

.ev-mx__n[b-eo2oe0sorm] { font-size: 0.72rem; color: var(--ev-muted); line-height: 1.25; margin-top: 2px; }

/* ── Grafici (curva S, burndown) ───────────────────────────────────────── */

.ev-leg[b-eo2oe0sorm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    font-size: 0.76rem;
    color: #52606e;
    margin-bottom: 0.5rem;
}

.ev-leg__i[b-eo2oe0sorm] { display: inline-flex; align-items: center; gap: 0.4rem; }

.ev-leg__l[b-eo2oe0sorm] { display: inline-block; width: 20px; height: 0; border-top: 2px solid; }
.ev-leg__l--pv[b-eo2oe0sorm]  { border-top-color: var(--ev-blue); border-top-style: dashed; }
.ev-leg__l--ev[b-eo2oe0sorm]  { border-top-color: var(--ev-green); }
.ev-leg__l--fc[b-eo2oe0sorm]  { border-top-color: #7a8ca0; border-top-style: dotted; }
.ev-leg__l--bac[b-eo2oe0sorm] { border-top-color: #b9c4d0; border-top-style: dashed; }
.ev-leg__m[b-eo2oe0sorm] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}
.ev-leg__m--ac[b-eo2oe0sorm] { background: #C0392B; }

.ev-chart-wrap[b-eo2oe0sorm] { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.ev-chart[b-eo2oe0sorm] {
    display: block;
    width: 100%;
    aspect-ratio: 1000 / 420;      /* scala con la larghezza: tablet → 16:9 */
    max-height: 60vh;
}

.ev-chart--burn[b-eo2oe0sorm] { aspect-ratio: 1000 / 340; }

.ev-gr[b-eo2oe0sorm] { stroke: #eef1f4; stroke-width: 1; }
.ev-gr--v[b-eo2oe0sorm] { stroke: #f4f6f8; }

.ev-bacline[b-eo2oe0sorm] { stroke: #b9c4d0; stroke-width: 1.5; stroke-dasharray: 8 5; }
.ev-ddline[b-eo2oe0sorm]  { stroke: var(--ev-red); stroke-width: 2; opacity: .55; }

.ev-line[b-eo2oe0sorm] { fill: none; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.ev-line--pv[b-eo2oe0sorm]   { stroke: var(--ev-blue); stroke-dasharray: 7 4; }
.ev-line--ev[b-eo2oe0sorm]   { stroke: var(--ev-green); }
.ev-line--fc[b-eo2oe0sorm]   { stroke: #2e9e6b; stroke-dasharray: 2 4; opacity: .75; }
.ev-line--fcac[b-eo2oe0sorm] { stroke: #C0392B; stroke-dasharray: 2 4; opacity: .7; }

.ev-cvgap[b-eo2oe0sorm] { stroke: #C0392B; stroke-width: 1.5; stroke-dasharray: 3 3; opacity: .6; }
.ev-acdot[b-eo2oe0sorm] { fill: #C0392B; stroke: #fff; stroke-width: 1.5; }
.ev-hover[b-eo2oe0sorm] { fill: transparent; }

/* Testi SVG: emessi via MarkupString → senza attributo di scope (::deep) */
.ev-chart[b-eo2oe0sorm]  .ev-tick { fill: #8a949e; font-size: 12px; }
.ev-chart[b-eo2oe0sorm]  .ev-tick--dd { fill: var(--ev-red); font-weight: 600; }
.ev-chart[b-eo2oe0sorm]  .ev-lbl { font-size: 12px; font-weight: 600; fill: #52606e; }
.ev-chart[b-eo2oe0sorm]  .ev-lbl--bac { fill: #8696a7; }
.ev-chart[b-eo2oe0sorm]  .ev-lbl--eac { fill: #C0392B; }

/* Legenda del burndown (in linea nel testo di sezione) */
.ev-burn-leg[b-eo2oe0sorm] {
    display: inline-block;
    width: 18px;
    height: 0;
    border-top: 2px solid;
    vertical-align: middle;
    margin: 0 0.15rem 0 0.35rem;
}
.ev-burn-leg-piano[b-eo2oe0sorm] { border-top-style: dashed; border-top-color: var(--ev-blue); }
.ev-burn-leg-reale[b-eo2oe0sorm] { border-top-color: var(--ev-green); }

/* ── Toolbar del tab Attività ──────────────────────────────────────────── */

.ev-tools[b-eo2oe0sorm] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: var(--ev-gap);
}

.ev-search[b-eo2oe0sorm] { position: relative; flex: 1 1 220px; max-width: 300px; }
.ev-search > i[b-eo2oe0sorm] {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #8696a7;
    font-size: 0.8rem;
    pointer-events: none;
}
.ev-search > input[b-eo2oe0sorm] { padding-left: 34px; min-height: 40px; }

.ev-fchips[b-eo2oe0sorm] { display: flex; flex-wrap: wrap; gap: 6px; }

.ev-tools__r[b-eo2oe0sorm] { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.ev-sort[b-eo2oe0sorm] { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.ev-sort > span[b-eo2oe0sorm] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ev-muted);
}
.ev-sort select[b-eo2oe0sorm] { width: auto; min-height: 40px; font-size: 0.8rem; }

/* ── Tabella attività ──────────────────────────────────────────────────── */

.ev-table-wrap[b-eo2oe0sorm] {
    overflow-x: auto;                 /* MAI scroll verticale interno (regola utente) */
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--ev-bord2);
    border-radius: 10px;
}

.ev-table[b-eo2oe0sorm] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.82rem;
    background: #fff;
}

.ev-table thead th[b-eo2oe0sorm] {
    background: #f7fafd;
    color: #52606e;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: left;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ev-bord2);
    white-space: nowrap;
}

.ev-table tbody td[b-eo2oe0sorm] {
    padding: 10px 14px;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    color: #1E334C;
}

.ev-table tbody tr:last-child td[b-eo2oe0sorm] { border-bottom: none; }
.ev-table tbody tr:hover td[b-eo2oe0sorm] { background: #fbfdff; }

.ev-table .ev-num[b-eo2oe0sorm] { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ev-table .ev-mid[b-eo2oe0sorm] { text-align: center; white-space: nowrap; }

/* Prima colonna ancorata: con tante colonne lo scorrimento orizzontale
   non fa perdere il nome dell'attività (tablet e telefono). */
.ev-table .ev-c-nome[b-eo2oe0sorm] {
    position: sticky;
    left: 0;
    z-index: 1;
    background: #fff;
    min-width: 230px;
    max-width: 420px;
    box-shadow: 1px 0 0 var(--ev-bord2);
}
.ev-table thead .ev-c-nome[b-eo2oe0sorm] { background: #f7fafd; z-index: 2; }
.ev-table tbody tr:hover .ev-c-nome[b-eo2oe0sorm] { background: #fbfdff; }

.ev-riga-root > td[b-eo2oe0sorm] { background: #fbfcfd; }
.ev-riga-root > .ev-c-nome[b-eo2oe0sorm] { background: #fbfcfd; }
.ev-riga-critica > td:first-child[b-eo2oe0sorm] { box-shadow: inset 3px 0 0 var(--ev-red), 1px 0 0 var(--ev-bord2); }

.ev-nome[b-eo2oe0sorm] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.ev-nome__t[b-eo2oe0sorm] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ev-codice[b-eo2oe0sorm] {
    color: #8a949e;
    font-size: 0.72rem;
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}

.ev-critica-icona[b-eo2oe0sorm] { color: var(--ev-red); font-size: 0.78rem; flex: 0 0 auto; }

.ev-minibar[b-eo2oe0sorm] {
    height: 4px;
    border-radius: 999px;
    background: #eef3f9;
    margin-top: 5px;
    max-width: 220px;
}
.ev-minibar > span[b-eo2oe0sorm] {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: #3f7fbf;
}

/* Input % + addon "%" su UNA riga: Bootstrap mette flex-wrap sull'input-group e
   nella cella (132px − padding) il gruppo andava a capo. */
.ev-avz-group[b-eo2oe0sorm] { flex-wrap: nowrap; width: 100px; max-width: 100%; margin: 0 auto; }
.ev-avz-group input[b-eo2oe0sorm] { flex: 1 1 52px; width: 52px; min-width: 0; min-height: 38px; }
.ev-avz-group .input-group-text[b-eo2oe0sorm] { padding-left: 8px; padding-right: 8px; }

.ev-pos[b-eo2oe0sorm] { color: #23824F; }
.ev-neg[b-eo2oe0sorm] { color: #C0392B; }

.ev-badge[b-eo2oe0sorm] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}
.ev-badge--soft[b-eo2oe0sorm]  { background: #f1f5f9; color: #718096; }
.ev-badge--blue[b-eo2oe0sorm]  { background: #EDF3FB; color: #2c4a6e; }
.ev-badge--green[b-eo2oe0sorm] { background: #E8F6EE; color: #23824F; }
.ev-badge--amber[b-eo2oe0sorm] { background: #FBF0D9; color: #8a6d0b; }
.ev-badge--red[b-eo2oe0sorm]   { background: #FBEBED; color: #C0392B; }

/* ── Glossario ─────────────────────────────────────────────────────────── */

.ev-gloss__g[b-eo2oe0sorm] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--ev-gap);
}

.ev-gloss__v[b-eo2oe0sorm] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    background: #f7fafd;
    border: 1px solid #e2eaf3;
    border-radius: 8px;
    padding: 10px 12px;
}

.ev-gloss__k[b-eo2oe0sorm] { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; color: var(--ev-navy); }
.ev-gloss__n[b-eo2oe0sorm] { font-size: 0.74rem; font-weight: 600; color: #48678c; }
.ev-gloss__x[b-eo2oe0sorm] { font-size: 0.76rem; color: #52606e; line-height: 1.35; }

/* ── Stato vuoto ───────────────────────────────────────────────────────── */

.ev-empty[b-eo2oe0sorm] { text-align: center; padding: 2.25rem 1rem; color: #8696a7; }
.ev-empty > i[b-eo2oe0sorm] { font-size: 1.6rem; color: #b9c4d0; }
.ev-empty__t[b-eo2oe0sorm] { font-weight: 700; color: var(--ev-navy); margin-top: 0.5rem; }
.ev-empty__x[b-eo2oe0sorm] { font-size: 0.82rem; max-width: 460px; margin: 0.35rem auto 0; line-height: 1.4; }

/* ── Scale: tablet orizzontale → 16:9 → telefono ───────────────────────── */

/* Monitor 16:9 grandi: più respiro, KPI su una riga sola */
@media (min-width: 1600px) {
    .ev-panel[b-eo2oe0sorm] { --ev-pad: 24px; --ev-gap: 16px; }
    .ev-mx[b-eo2oe0sorm] { grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); }
    .ev-table[b-eo2oe0sorm] { font-size: 0.86rem; }
}

/* Tablet orizzontale (1024) e monitor piccoli: densità maggiore */
@media (max-width: 1280px) {
    .ev-table thead th[b-eo2oe0sorm] { padding: 10px 12px; }
    .ev-table tbody td[b-eo2oe0sorm] { padding: 8px 12px; }
    .ev-health[b-eo2oe0sorm] { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
}

/* Colonne meno essenziali, a scalare: prima le due della baseline CME (vivono
   anche nel Cruscotto), poi PV/AC (restano nel tooltip di EV). */
@media (max-width: 1280px) {
    .ev-table .ev-h-lg[b-eo2oe0sorm] { display: none; }
}

@media (max-width: 1200px) {
    .ev-table .ev-h-md[b-eo2oe0sorm] { display: none; }
}

/* Tablet verticale e telefono: resta il nucleo (avanzamento, EV, SV, float) */
@media (max-width: 900px) {
    .ev-table .ev-h-sm[b-eo2oe0sorm] { display: none; }
    .ev-tabs[b-eo2oe0sorm] { scroll-snap-type: x proximity; }
    .ev-tab[b-eo2oe0sorm] { scroll-snap-align: start; }
    .ev-head[b-eo2oe0sorm] { align-items: flex-start; }
    .ev-head__ctl[b-eo2oe0sorm] { width: 100%; }
    .ev-tools__r[b-eo2oe0sorm] { margin-left: 0; width: 100%; }
    .ev-sort[b-eo2oe0sorm] { flex: 1 1 auto; }
    .ev-sort select[b-eo2oe0sorm] { flex: 1 1 auto; }
    .ev-chart[b-eo2oe0sorm] { aspect-ratio: auto; height: 300px; min-width: 680px; }
    .ev-chart--burn[b-eo2oe0sorm] { height: 260px; }
    .ev-note .ev-chip[b-eo2oe0sorm] { margin-left: 0; }
    .ev-note[b-eo2oe0sorm] { flex-wrap: wrap; }
}

@media (max-width: 640px) {
    .ev-prog__v[b-eo2oe0sorm] { font-size: 1.5rem; }
    .ev-table .ev-c-nome[b-eo2oe0sorm] { min-width: 180px; }
    .ev-search[b-eo2oe0sorm] { max-width: none; }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredAcquisti.razor.rz.scp.css */
/* Acquisti nella commessa (_IndexFilteredAcquisti) */

/* ── Card wrapper ─────────────────────────────────────────────────── */

.ac-card[b-fx0g17f0qm] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

/* Standard di spaziatura (2026-09-04, identico a Fornitori commessa): header, KPI,
   filtri e tabella sullo stesso asse sinistro a var(--eco-pad); header basso. */
.ac-card-header[b-fx0g17f0qm] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: var(--eco-pad, 24px) var(--eco-pad, 24px) 0;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: var(--eco-block, 24px);
}

.ac-card-title[b-fx0g17f0qm] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 4px;
}

/* KPI e toolbar (componenti condivisi) rientrano nell'asse della card: prima erano a filo. */
.ac-card[b-fx0g17f0qm]  .eco-kpis { padding: 0 var(--eco-pad, 24px); }
.ac-card[b-fx0g17f0qm]  .eco-toolbar { padding: 0 var(--eco-pad, 24px); }
.ac-card .d-flex.p-3[b-fx0g17f0qm] { padding: 16px var(--eco-pad, 24px) !important; }

.ac-card-sub[b-fx0g17f0qm] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

/* ── KPI strip ──────────────────────────────────────────────────────── */

.ac-kpi-strip[b-fx0g17f0qm] {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #E2E8F0;
}

.ac-kpi-item[b-fx0g17f0qm] {
    flex: 1 1 130px;
    padding: 0.85rem 1.25rem;
    border-right: 1px solid #E2E8F0;
}

.ac-kpi-item:last-child[b-fx0g17f0qm] { border-right: none; }

.ac-kpi-label[b-fx0g17f0qm] {
    font-size: 0.68rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.2rem;
}

.ac-kpi-value[b-fx0g17f0qm] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
}

/* ── Filtri ─────────────────────────────────────────────────────────── */

.ac-filtri[b-fx0g17f0qm] {
    padding: 0.65rem 1.25rem;
    border-bottom: 1px solid #E2E8F0;
    background: #FAFBFC;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.ac-filtri-input[b-fx0g17f0qm] {
    font-size: 0.8125rem;
    height: 2rem;
    border: 1px solid #CBD5E1;
    border-radius: 7px;
    padding: 0 0.65rem;
    color: #1E334C;
    background: #fff;
    outline: none;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.ac-filtri-input:focus[b-fx0g17f0qm] {
    border-color: #2c6a9e;
    box-shadow: 0 0 0 2px rgba(44,106,158,0.1);
}

.ac-filtri-input-wide[b-fx0g17f0qm] {
    min-width: 200px;
    flex: 1 1 200px;
}

.ac-filtri-input-date[b-fx0g17f0qm] {
    width: 140px;
}

.ac-filtri-label[b-fx0g17f0qm] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    white-space: nowrap;
}

.ac-filtri-reset[b-fx0g17f0qm] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    transition: background 0.12s, color 0.12s;
}

.ac-filtri-reset:hover[b-fx0g17f0qm] {
    background: #edf3fb;
    color: #1E334C;
}

.ac-filtri-count[b-fx0g17f0qm] {
    font-size: 0.75rem;
    color: #5B7A9A;
    font-weight: 500;
    white-space: nowrap;
}

/* ── Export button ──────────────────────────────────────────────────── */

.ac-export-btn[b-fx0g17f0qm] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.35rem 0.85rem;
    border-radius: 8px;
    border: 1px solid #CBD5E1;
    background: transparent;
    color: #1E334C;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
    white-space: nowrap;
}

.ac-export-btn:hover[b-fx0g17f0qm] {
    background: #F1F5F9;
    border-color: #94A3B8;
    color: #1E334C;
}

.ac-export-btn[b-fx0g17f0qm]::after { display: none !important; }

/* ── Table wrapper ──────────────────────────────────────────────────── */

.ac-table-wrapper[b-fx0g17f0qm] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #fff;
}

.ac-table-wrapper[b-fx0g17f0qm]::-webkit-scrollbar { height: 4px; }
.ac-table-wrapper[b-fx0g17f0qm]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 4px; }

/* ── Table ───────────────────────────────────────────────────────────── */

.ifa-table[b-fx0g17f0qm] {
    margin-bottom: 0;
}

.ifa-table thead th[b-fx0g17f0qm] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
}

.ifa-row[b-fx0g17f0qm] { transition: background 0.1s; }
.ifa-row:hover[b-fx0g17f0qm] { background: #f7fafd; }

.ifa-row td[b-fx0g17f0qm] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna sull'asse della card (24px): la checkbox non è più a filo */
.ifa-table th:first-child[b-fx0g17f0qm], .ifa-table td:first-child[b-fx0g17f0qm] { padding-left: var(--eco-pad, 24px); }
.ifa-table th:last-child[b-fx0g17f0qm],  .ifa-table td:last-child[b-fx0g17f0qm]  { padding-right: var(--eco-pad, 24px); }
.ifa-table th:first-child input[type="checkbox"][b-fx0g17f0qm],
.ifa-table td:first-child input[type="checkbox"][b-fx0g17f0qm] { margin: 0; vertical-align: middle; }

.ifa-row-expanded td[b-fx0g17f0qm] {
    padding: 0;
    border-bottom: 1px solid #dceaf8;
}

.ifa-name[b-fx0g17f0qm] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.875rem;
}

.ifa-sub[b-fx0g17f0qm] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}

.ifa-link[b-fx0g17f0qm] {
    color: #2c6a9e;
    text-decoration: none;
    font-weight: 500;
}

.ifa-link:hover[b-fx0g17f0qm] { text-decoration: underline; }

/* ── Cantiere badge ──────────────────────────────────────────────────── */

.ifa-cantiere-badge[b-fx0g17f0qm] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #1E334C;
    color: #fff;
    white-space: nowrap;
}

/* ── Tfoot ───────────────────────────────────────────────────────────── */

.ifa-tfoot td[b-fx0g17f0qm] {
    background: #f7fafd;
    border-top: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    font-size: 0.875rem;
}

.ifa-tfoot-label[b-fx0g17f0qm] {
    font-weight: 700;
    color: #1E334C;
}

.ifa-tfoot-value[b-fx0g17f0qm] {
    font-weight: 700;
    color: #1E334C;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.ifa-icon-btn[b-fx0g17f0qm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

/* Colonna Fase: select (o elenco fasi) e icon button "righe → fasi" sulla STESSA riga,
   così le azioni della tabella restano allineate in altezza con XML/modifica */
.ifa-fase-cell[b-fx0g17f0qm] { display: flex; align-items: center; gap: 0.35rem; }
.ifa-fase-cell__badge[b-fx0g17f0qm] { flex-basis: 100%; }
.ifa-fase-cell:has(.ifa-fase-cell__badge)[b-fx0g17f0qm] { flex-wrap: wrap; }
.ifa-fase-cell .form-select[b-fx0g17f0qm] { flex: 0 1 auto; }
.ifa-fase-cell__list[b-fx0g17f0qm] { min-width: 0; }
.ifa-icon-btn:hover[b-fx0g17f0qm] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.ifa-icon-btn.dropdown-toggle[b-fx0g17f0qm]::after { display: none; }

/* ── Bulk bar ────────────────────────────────────────────────────────── */

.ifa-bulk-bar[b-fx0g17f0qm] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    background: #edf3fb;
    border-top: 1px solid #c8d8ee;
    border-bottom: 1px solid #c8d8ee;
    padding: 12px var(--eco-pad, 24px);
    min-height: 56px;
}

.ifa-bulk-count[b-fx0g17f0qm] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
}

/* ── Products expansion panel ────────────────────────────────────────── */

.ifa-products-panel[b-fx0g17f0qm] {
    background: #f7fafd;
    border-top: 1px solid #dceaf8;
}

.ifa-ddt-block[b-fx0g17f0qm] {
    border-bottom: 1px solid #e8eef6;
    padding: 14px var(--eco-pad, 24px) 0;
}

.ifa-ddt-block:last-child[b-fx0g17f0qm] {
    border-bottom: none;
}

.ifa-ddt-header[b-fx0g17f0qm] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.5rem;
}

.ifa-prod-table thead th[b-fx0g17f0qm] {
    background: #edf3fb;
    font-size: 0.7rem;
    color: #5B7A9A;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 10px 12px;
    border-bottom: 1px solid #dceaf8;
}

.ifa-prod-table tbody td[b-fx0g17f0qm] {
    font-size: 0.8125rem;
    padding: 10px 12px;
    border-bottom: 1px solid #f0f5fb;
    color: #334155;
}

/* ── Empty state ─────────────────────────────────────────────────────── */

.ifa-empty[b-fx0g17f0qm] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.ifa-empty .bi[b-fx0g17f0qm] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.ifa-empty-title[b-fx0g17f0qm] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.ifa-empty-text[b-fx0g17f0qm] {
    font-size: 0.875rem;
    color: #5B7A9A;
}

/* ── Modale righe → fasi lavorative (pattern cme-bulk-bar, 2026-08-27) ── */

.ifa-fase-bulk[b-fx0g17f0qm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    background: #EDF3FB;
    border: 1px solid #C7D8EE;
    border-radius: 12px;
    padding: 0.55rem 1rem;
    font-size: 0.85rem;
    color: #1E334C;
}

.ifa-fase-bulk__all[b-fx0g17f0qm] { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; font-weight: 600; cursor: pointer; }
.ifa-fase-bulk__n[b-fx0g17f0qm] { color: #5B7A9A; }

.ifa-fase-table[b-fx0g17f0qm] { font-size: 0.82rem; }
.ifa-fase-table thead th[b-fx0g17f0qm] { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.05em; color: #718096; }
.ifa-fase-table td[b-fx0g17f0qm] { vertical-align: middle; }
.ifa-fase-desc[b-fx0g17f0qm] { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ifa-fase-sel td[b-fx0g17f0qm] { background: #F0F7FF; }
.ifa-fase-ddt td[b-fx0g17f0qm] { background: #F5F8FC; font-size: 0.8rem; color: #1E334C; border-top: 2px solid #DDE5EF; }
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredAcquistiGrouped.razor.rz.scp.css */
/* Fornitori nella commessa — _IndexFilteredAcquistiGrouped */

/* ── Card wrapper ─────────────────────────────────────────────────── */

.forn-card[b-6t0gjfuvxk] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

/* Standard di spaziatura (2026-09-04): header, KPI, filtri e tabella partono dallo
   stesso asse sinistro a var(--eco-pad) (24px desktop, 20/16 sotto); header basso:
   titolo → 4px → sottotitolo → 24px → KPI. */
.forn-card-header[b-6t0gjfuvxk] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: var(--eco-pad, 24px) var(--eco-pad, 24px) 0;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: var(--eco-block, 24px);
}

.forn-card-title[b-6t0gjfuvxk] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 4px;
}

.forn-card-sub[b-6t0gjfuvxk] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

/* KPI e toolbar (componenti condivisi) rientrano nell'asse della card: prima erano a filo. */
.forn-card[b-6t0gjfuvxk]  .eco-kpis { padding: 0 var(--eco-pad, 24px); }
.forn-card[b-6t0gjfuvxk]  .eco-toolbar { padding: 0 var(--eco-pad, 24px); }
.forn-card .d-flex.p-3[b-6t0gjfuvxk] { padding: 16px var(--eco-pad, 24px) !important; }

/* ── KPI strip ──────────────────────────────────────────────────────── */

.forn-kpi-strip[b-6t0gjfuvxk] {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #E2E8F0;
}

.forn-kpi-item[b-6t0gjfuvxk] {
    flex: 1 1 130px;
    padding: 0.85rem 1.25rem;
    border-right: 1px solid #E2E8F0;
}

.forn-kpi-item:last-child[b-6t0gjfuvxk] { border-right: none; }

.forn-kpi-label[b-6t0gjfuvxk] {
    font-size: 0.68rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.2rem;
}

.forn-kpi-value[b-6t0gjfuvxk] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
}

/* ── Filtri ─────────────────────────────────────────────────────────── */

.forn-filtri[b-6t0gjfuvxk] {
    padding: 0.65rem 1.25rem;
    border-bottom: 1px solid #E2E8F0;
    background: #FAFBFC;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.forn-filtri-input[b-6t0gjfuvxk] {
    font-size: 0.8125rem;
    height: 2rem;
    border: 1px solid #CBD5E1;
    border-radius: 7px;
    padding: 0 0.65rem;
    color: #1E334C;
    background: #fff;
    outline: none;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.forn-filtri-input:focus[b-6t0gjfuvxk] {
    border-color: #2c6a9e;
    box-shadow: 0 0 0 2px rgba(44,106,158,0.1);
}

.forn-filtri-input-wide[b-6t0gjfuvxk] {
    min-width: 180px;
    flex: 1 1 180px;
}

.forn-filtri-input-date[b-6t0gjfuvxk] { width: 140px; }

.forn-filtri-select[b-6t0gjfuvxk] { min-width: 160px; cursor: pointer; }

.forn-filtri-label[b-6t0gjfuvxk] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    white-space: nowrap;
}

.forn-filtri-reset[b-6t0gjfuvxk] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    transition: background 0.12s, color 0.12s;
}

.forn-filtri-reset:hover[b-6t0gjfuvxk] { background: #edf3fb; color: #1E334C; }

.forn-filtri-count[b-6t0gjfuvxk] {
    font-size: 0.75rem;
    color: #5B7A9A;
    font-weight: 500;
    white-space: nowrap;
}

/* ── Export button ──────────────────────────────────────────────────── */

.forn-export-btn[b-6t0gjfuvxk] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.35rem 0.85rem;
    border-radius: 8px;
    border: 1px solid #CBD5E1;
    background: transparent;
    color: #1E334C;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
    white-space: nowrap;
}

.forn-export-btn:hover[b-6t0gjfuvxk] { background: #F1F5F9; border-color: #94A3B8; color: #1E334C; }
.forn-export-btn[b-6t0gjfuvxk]::after { display: none !important; }

/* ── Accordion ──────────────────────────────────────────────────────── */

.forn-accordion[b-6t0gjfuvxk] {
    display: flex;
    flex-direction: column;
}

/* ── Accordion item ─────────────────────────────────────────────────── */

.forn-item[b-6t0gjfuvxk] {
    border-bottom: 1px solid #EEF2F7;
}

.forn-item:last-child[b-6t0gjfuvxk] { border-bottom: none; }

/* ── Accordion header row ───────────────────────────────────────────── */

.forn-item-hdr[b-6t0gjfuvxk] {
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 56px;
    padding: 12px var(--eco-pad, 24px);
    cursor: pointer;
    transition: background 0.12s;
    user-select: none;
}

.forn-item-hdr:hover[b-6t0gjfuvxk] { background: #F7FAFD; }

.forn-item--open > .forn-item-hdr[b-6t0gjfuvxk] {
    background: #F0F6FF;
    border-bottom: 1px solid #DCEAF8;
}

.forn-item-name[b-6t0gjfuvxk] {
    flex: 1 1 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.forn-item-pills[b-6t0gjfuvxk] {
    display: flex;
    gap: 0.35rem;
    flex-shrink: 0;
}

.forn-pill[b-6t0gjfuvxk] {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2em 0.6em;
    border-radius: 20px;
    background: #E8F0FA;
    color: #2c6a9e;
    white-space: nowrap;
}

.forn-item-amounts[b-6t0gjfuvxk] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
}

.forn-item-tot[b-6t0gjfuvxk] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
}

.forn-item-date[b-6t0gjfuvxk] {
    font-size: 0.75rem;
    color: #7B8FA3;
    white-space: nowrap;
}

.forn-item-chev[b-6t0gjfuvxk] {
    flex-shrink: 0;
    width: 1.5rem;
    text-align: center;
    color: #7B8FA3;
    font-size: 0.75rem;
    transition: color 0.12s;
}

.forn-item-hdr:hover .forn-item-chev[b-6t0gjfuvxk] { color: #1E334C; }

/* ── Detail panel ───────────────────────────────────────────────────── */

.forn-detail[b-6t0gjfuvxk] {
    background: #F7FAFD;
    border-top: 1px solid #DCEAF8;
    padding: 0 0 0.75rem 0;
}

.forn-dt-wrapper[b-6t0gjfuvxk] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #F7FAFD;
}

.forn-dt-wrapper[b-6t0gjfuvxk]::-webkit-scrollbar { height: 4px; }
.forn-dt-wrapper[b-6t0gjfuvxk]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 4px; }

/* ── Detail table ───────────────────────────────────────────────────── */

.forn-dt-table[b-6t0gjfuvxk] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
    min-width: 700px;
}

.forn-dt-table thead th[b-6t0gjfuvxk] {
    background: #EDF3FB;
    color: #5B7A9A;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 44px;
    border-bottom: 1px solid #DCEAF8;
    white-space: nowrap;
}

.forn-dt-row[b-6t0gjfuvxk] { transition: background 0.1s; }
.forn-dt-row:hover[b-6t0gjfuvxk] { background: #EDF3FB; }

.forn-dt-row td[b-6t0gjfuvxk] {
    padding: 12px var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    font-size: 0.8125rem;
    border-bottom: 1px solid #EEF2F7;
    color: #334155;
}

/* Tabella di dettaglio dentro la card: prima/ultima colonna sull'asse della card (24px) */
.forn-dt-table th:first-child[b-6t0gjfuvxk], .forn-dt-table td:first-child[b-6t0gjfuvxk] { padding-left: var(--eco-pad, 24px); }
.forn-dt-table th:last-child[b-6t0gjfuvxk],  .forn-dt-table td:last-child[b-6t0gjfuvxk]  { padding-right: var(--eco-pad, 24px); }

.forn-dt-tfoot td[b-6t0gjfuvxk] {
    background: #E8F0FA;
    border-top: 2px solid #DCEAF8;
    padding: 12px var(--eco-cell-x, 16px);
    font-size: 0.8125rem;
}

.forn-tfoot-label[b-6t0gjfuvxk] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #1E334C;
}

.forn-tfoot-value[b-6t0gjfuvxk] {
    font-weight: 700;
    color: #1E334C;
}

/* ── Inline elements ────────────────────────────────────────────────── */

.forn-amount[b-6t0gjfuvxk] {
    font-weight: 600;
    color: #1E334C;
}

.forn-sub[b-6t0gjfuvxk] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

.forn-link[b-6t0gjfuvxk] {
    color: #2c6a9e;
    text-decoration: none;
    font-weight: 500;
}

.forn-link:hover[b-6t0gjfuvxk] { text-decoration: underline; }

.forn-cantiere-badge[b-6t0gjfuvxk] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.12em 0.5em;
    border-radius: 20px;
    background: #1E334C;
    color: #fff;
    white-space: nowrap;
}

/* ── Icon buttons ───────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.forn-icon-btn[b-6t0gjfuvxk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s, color .12s;
}

.forn-icon-btn:hover[b-6t0gjfuvxk] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.forn-icon-btn[disabled][b-6t0gjfuvxk] { opacity: 0.35; cursor: default; }
.forn-icon-btn[disabled]:hover[b-6t0gjfuvxk] { background: transparent; }

/* ── Empty state ────────────────────────────────────────────────────── */

.forn-empty[b-6t0gjfuvxk] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.forn-empty .bi[b-6t0gjfuvxk] {
    font-size: 2.5rem;
    color: #C8D8E8;
    display: block;
    margin-bottom: 0.75rem;
}

.forn-empty-title[b-6t0gjfuvxk] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.forn-empty-text[b-6t0gjfuvxk] {
    font-size: 0.875rem;
    color: #5B7A9A;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredContract.razor.rz.scp.css */
/* _IndexFilteredContract — Contratti tab
   ────────────────────────────────────────────────────────────────────────────
   Cornice, tabella, azioni, empty state e badge vengono dal design system della
   Commessa (economia.css: eco-card, eco-table, eco-act, eco-empty, eco-badge).
   Qui resta SOLO ciò che il design system non copre: la tipografia di qualche
   cella e la modale di conferma.

   ⚠️ Il CSS di componente è scoped, quindi `.con-table[b-xxx]` batte `.eco-table`
   per specificità: ridefinire qui una classe del design system la sovrascrive in
   silenzio. È il motivo per cui la tabella non ha più una sua classe. */

/* ── Contenuto delle celle ───────────────────────────────────────────────── */

.con-intestatari[b-c410s34bss] {
    max-width: 240px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #1E334C;
    font-weight: 600;
}

.con-data[b-c410s34bss] {
    white-space: nowrap;
    color: #5B7A9A;
    font-size: 0.82rem;
}

.con-sub[b-c410s34bss] {
    color: #5B7A9A;
    font-size: 0.82rem;
}

/* Variante distruttiva di eco-act: il resto del bottone lo dà il design system. */
.con-icon-btn-danger:hover[b-c410s34bss] { background: #fdecea; color: #9e2d1e; }

.con-actions[b-c410s34bss] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
}

/* ── Conferma eliminazione ───────────────────────────────────────────────── */

.con-confirm-overlay[b-c410s34bss] {
    position: fixed;
    inset: 0;
    background: rgba(14, 26, 41, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9900;
    animation: con-fade-in-b-c410s34bss 0.12s ease;
}

@keyframes con-fade-in-b-c410s34bss {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.con-confirm-dialog[b-c410s34bss] {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    max-width: 380px;
    width: calc(100% - 2rem);
    box-shadow: 0 8px 40px rgba(14, 26, 41, 0.22);
}

.con-confirm-title[b-c410s34bss] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 0.6rem;
}

.con-confirm-body[b-c410s34bss] {
    font-size: 0.875rem;
    color: #5B7A9A;
    line-height: 1.55;
    margin-bottom: 1.25rem;
}

.con-confirm-body strong[b-c410s34bss] { color: #1E334C; }

.con-confirm-actions[b-c410s34bss] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredGetto.razor.rz.scp.css */
/* Registro getti — _IndexFilteredGetto */

/* ── Card ─────────────────────────────────────────────────────────────── */

.rg-card[b-zmqfx6hynx] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

/* Standard di spaziatura (2026-09-04, identico ad Acquisti/Fornitori commessa): header,
   pannelli e tabella sullo stesso asse sinistro a var(--eco-pad); header basso senza fascia. */
.rg-card-header[b-zmqfx6hynx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: var(--eco-pad, 24px) var(--eco-pad, 24px) 0;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: var(--eco-block, 24px);
}

.rg-card-title[b-zmqfx6hynx] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 4px;
}

.rg-card-sub[b-zmqfx6hynx] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

/* ── Toolbar (header actions) ─────────────────────────────────────────── */

/* Controlli della toolbar: gap 12px e altezza minima unica (var(--eco-ctl-h)) */
.rg-toolbar[b-zmqfx6hynx] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.rg-toolbar .rg-btn-primary[b-zmqfx6hynx],
.rg-toolbar .rg-btn-secondary[b-zmqfx6hynx] { min-height: var(--eco-ctl-h, 42px); }

/* ── Primary button ───────────────────────────────────────────────────── */

/* Primary: colori dai token globali del button system */
.rg-btn-primary[b-zmqfx6hynx] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: var(--btn-primary-bg, #001B48);
    color: #fff;
    border: none;
    padding: 0.45rem 1rem;
    border-radius: 8px;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}

.rg-btn-primary:hover[b-zmqfx6hynx] { background: var(--btn-primary-bg-hover, #12315F); }

/* ── Secondary button ─────────────────────────────────────────────────── */

/* Secondary: colori dai token globali del button system */
.rg-btn-secondary[b-zmqfx6hynx] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #fff;
    border: 1px solid var(--btn-border, #C7D2E2);
    color: var(--btn-ink, #001B48);
    padding: 0.45rem 0.9rem;
    border-radius: 8px;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, border-color 0.12s;
}

.rg-btn-secondary:hover:not(:disabled)[b-zmqfx6hynx] { background: #F3F7FC; border-color: var(--btn-ink, #001B48); }
.rg-btn-secondary:disabled[b-zmqfx6hynx] { opacity: 0.45; cursor: not-allowed; }

/* ── Upload panel ─────────────────────────────────────────────────────── */

.rg-upload-panel[b-zmqfx6hynx] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background: #EFF6FF;
    border: 1px solid #BFDBFE;
    border-radius: 10px;
    padding: 0.75rem 1rem;
    margin: 0 var(--eco-pad, 24px) var(--eco-block, 24px);   /* sull'asse della card, sotto l'header */
}

.rg-upload-icon[b-zmqfx6hynx] {
    color: #2c6a9e;
    font-size: 1.1rem;
    margin-top: 0.1rem;
    flex-shrink: 0;
}

.rg-upload-label[b-zmqfx6hynx] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.35rem;
}

.rg-upload-hint[b-zmqfx6hynx] {
    font-size: 0.75rem;
    color: #5B7A9A;
}

/* ── Bulk toolbar ─────────────────────────────────────────────────────── */

.rg-bulk-bar[b-zmqfx6hynx] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    background: #EDF3FB;
    border-bottom: 1px solid #DCEAF8;
    padding: 12px var(--eco-pad, 24px);
    min-height: 56px;
}

.rg-bulk-count[b-zmqfx6hynx] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1E334C;
    flex: 1;
}

/* ── Table wrapper ────────────────────────────────────────────────────── */

.rg-table-wrapper[b-zmqfx6hynx] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #fff;
}

.rg-table-wrapper[b-zmqfx6hynx]::-webkit-scrollbar { height: 4px; }
.rg-table-wrapper[b-zmqfx6hynx]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 4px; }

/* ── Table ────────────────────────────────────────────────────────────── */

.rg-table[b-zmqfx6hynx] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
    min-width: 1100px;
}

.rg-table thead th[b-zmqfx6hynx] {
    background: #F5F8FC;
    color: #718096;
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    border-bottom: 2px solid #DCEAF8;
    white-space: nowrap;
}

.rg-table thead th.rg-th-check[b-zmqfx6hynx] {
    width: 2.5rem;
    text-align: center;
}

/* Colonna azioni: allineata a destra come in tutte le tabelle della piattaforma */
.rg-table thead th.rg-th-actions[b-zmqfx6hynx] {
    width: 6rem;
    text-align: right;
}

.rg-table tbody td[b-zmqfx6hynx] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    font-size: 0.8125rem;
    color: #334155;
    border-bottom: 1px solid #EDF2F7;
    vertical-align: middle;
}

/* Prima/ultima colonna sull'asse della card (24px), come header e pannelli */
.rg-table th:first-child[b-zmqfx6hynx], .rg-table td:first-child[b-zmqfx6hynx] { padding-left: var(--eco-pad, 24px); }
.rg-table th:last-child[b-zmqfx6hynx],  .rg-table td:last-child[b-zmqfx6hynx]  { padding-right: var(--eco-pad, 24px); }
.rg-table .rg-check[b-zmqfx6hynx] { margin: 0; vertical-align: middle; }

/* Numeri (quantità): a destra e mai a capo */
.rg-table .text-end[b-zmqfx6hynx] { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }

.rg-table tbody tr:hover td[b-zmqfx6hynx] { background: #F7FAFD; }

/* ── Add row ──────────────────────────────────────────────────────────── */

.rg-row-add td[b-zmqfx6hynx] { background: #F0FDF4; }
.rg-row-add td .form-control[b-zmqfx6hynx],
.rg-row-add td .form-select[b-zmqfx6hynx] { font-size: 0.78rem; }

/* ── Cell content ─────────────────────────────────────────────────────── */

.rg-cell-primary[b-zmqfx6hynx] {
    font-weight: 600;
    color: #1E334C;
}

.rg-cell-sub[b-zmqfx6hynx] {
    font-size: 0.72rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}

/* ── Cantiere badge ───────────────────────────────────────────────────── */

.rg-badge-cantiere[b-zmqfx6hynx] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #1E334C;
    color: #fff;
    white-space: nowrap;
}

/* ── Tipo badge ───────────────────────────────────────────────────────── */

.rg-badge-concrete[b-zmqfx6hynx] { background: #dbeafe; color: #1d4ed8; font-size: 0.7rem; font-weight: 700; padding: 0.15em 0.55em; border-radius: 10px; white-space: nowrap; }
.rg-badge-steel[b-zmqfx6hynx]    { background: #fef3c7; color: #92400e; font-size: 0.7rem; font-weight: 700; padding: 0.15em 0.55em; border-radius: 10px; white-space: nowrap; }

/* ── Esito badge ──────────────────────────────────────────────────────── */

.rg-badge-ok[b-zmqfx6hynx]   { background: #DCFCE7; color: #166534; font-size: 0.7rem; font-weight: 700; padding: 0.15em 0.55em; border-radius: 10px; white-space: nowrap; }
.rg-badge-fail[b-zmqfx6hynx] { background: #FEE2E2; color: #991B1B; font-size: 0.7rem; font-weight: 700; padding: 0.15em 0.55em; border-radius: 10px; white-space: nowrap; }
.rg-badge-pend[b-zmqfx6hynx] { background: #FEF9C3; color: #854D0E; font-size: 0.7rem; font-weight: 700; padding: 0.15em 0.55em; border-radius: 10px; white-space: nowrap; }

/* ── PDF link / button ────────────────────────────────────────────────── */

.rg-pdf-link[b-zmqfx6hynx] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #c0392b;
    text-decoration: none;
    padding: 0.2em 0.5em;
    border-radius: 6px;
    border: 1px solid #fca5a5;
    background: #fff5f5;
    transition: background 0.12s;
    white-space: nowrap;
}

.rg-pdf-link:hover[b-zmqfx6hynx] { background: #fee2e2; color: #922b21; text-decoration: none; }

.rg-pdf-upload-btn[b-zmqfx6hynx] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    padding: 0.2em 0.5em;
    border-radius: 6px;
    border: 1px dashed #94A3B8;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, border-color 0.12s;
}

.rg-pdf-upload-btn:hover[b-zmqfx6hynx] { background: #EDF3FB; border-color: #5B7A9A; color: #1E334C; }
.rg-pdf-upload-btn.active[b-zmqfx6hynx] { background: #EDF3FB; border-color: #2c6a9e; color: #2c6a9e; border-style: solid; }

.rg-pdf-warn[b-zmqfx6hynx] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #92400e;
    padding: 0.2em 0.5em;
    border-radius: 6px;
    border: 1px solid #fcd34d;
    background: #fffbeb;
    white-space: nowrap;
    cursor: help;
}

/* ── Icon buttons ─────────────────────────────────────────────────────── */

/* Icon button canonico 36×36 (token globali in app.css) */
.rg-icon-btn[b-zmqfx6hynx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.rg-icon-btn:hover[b-zmqfx6hynx] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

.rg-icon-btn.rg-icon-danger[b-zmqfx6hynx] { color: var(--icobtn-danger, #C0392B); }
.rg-icon-btn.rg-icon-danger:hover[b-zmqfx6hynx] { background: var(--icobtn-danger-bg, #FBEBED); color: var(--icobtn-danger, #C0392B); }

.rg-icon-btn.rg-icon-success[b-zmqfx6hynx] { color: #3a6b27; }
.rg-icon-btn.rg-icon-success:hover[b-zmqfx6hynx] { background: #DCFCE7; color: #2a5020; }

.rg-icon-btn:disabled[b-zmqfx6hynx] { opacity: 0.4; cursor: not-allowed; }

/* ── Row actions cell ─────────────────────────────────────────────────── */

.rg-actions-cell[b-zmqfx6hynx] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    white-space: nowrap;
}

/* ── Empty state ──────────────────────────────────────────────────────── */

.rg-empty[b-zmqfx6hynx] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.rg-empty .bi[b-zmqfx6hynx] {
    font-size: 2.5rem;
    color: #C8D8E8;
    display: block;
    margin-bottom: 0.75rem;
}

.rg-empty-title[b-zmqfx6hynx] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.rg-empty-text[b-zmqfx6hynx] {
    font-size: 0.875rem;
    color: #8696A7;
}

/* ── DDT truncation ───────────────────────────────────────────────────── */

.rg-ddt-cell[b-zmqfx6hynx] {
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Checkbox ─────────────────────────────────────────────────────────── */

.rg-check[b-zmqfx6hynx] { accent-color: #1E334C; }

/* ── DDT toggle cell ──────────────────────────────────────────────────── */

.rg-ddt-toggle-cell[b-zmqfx6hynx] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 180px;
}

.rg-ddt-toggle-cell > span[b-zmqfx6hynx] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.rg-ddt-toggle-btn[b-zmqfx6hynx] {
    flex-shrink: 0;
    color: #2c6a9e;
}

.rg-ddt-toggle-btn:hover[b-zmqfx6hynx] { background: #EDF3FB; color: #1E334C; }

/* ── Expanded detail row ──────────────────────────────────────────────── */

.rg-row-expanded > td[b-zmqfx6hynx] {
    padding: 0 !important;
    border-bottom: 2px solid #DCEAF8;
}

.rg-row-add-detail > td[b-zmqfx6hynx] {
    padding: 0 !important;
    background: #F0FDF4;
    border-bottom: 1px solid #BBF7D0;
}

/* ── Detail panel ─────────────────────────────────────────────────────── */

.rg-detail-panel[b-zmqfx6hynx] {
    background: #F5F9FF;
    border-top: 1px solid #DCEAF8;
    padding: 12px var(--eco-pad, 24px) 14px;   /* stesso asse sinistro della prima colonna */
}

.rg-detail-header[b-zmqfx6hynx] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    margin-bottom: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rg-detail-grid[b-zmqfx6hynx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
}

.rg-detail-field[b-zmqfx6hynx] {
    display: flex;
    flex-direction: column;
    min-width: 120px;
    flex: 0 1 auto;
}

.rg-detail-label[b-zmqfx6hynx] {
    font-size: 0.67rem;
    font-weight: 700;
    color: #718096;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.15rem;
}

.rg-detail-value[b-zmqfx6hynx] {
    font-size: 0.8125rem;
    color: #334155;
}

/* ── Modal crea/modifica registrazione ────────────────────────────────── */

.rg-modal-grid[b-zmqfx6hynx] {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 1rem;
    align-items: start;
}

@media (max-width: 991px) {
    .rg-modal-grid[b-zmqfx6hynx] { grid-template-columns: 1fr; }
}

.rg-modal-pdf[b-zmqfx6hynx] {
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    border: 1px solid #E2E8F0;
    border-radius: 10px;
    background: #FAFBFC;
    padding: 0.75rem;
    transition: border-color 0.15s, background 0.15s;
}

/* .hover = file trascinato sopra la colonna (initializeFileDropZone) */
.rg-modal-pdf.hover[b-zmqfx6hynx] {
    border-color: #001B48;
    background: #EEF3FB;
}

.rg-modal-pdf.hover .rg-modal-pdf-empty[b-zmqfx6hynx] {
    border-color: #001B48;
    background: #EEF3FB;
}

.rg-modal-pdf-frame[b-zmqfx6hynx] {
    width: 100%;
    height: 62vh;
    border: 0;
    border-radius: 6px;
    background: #fff;
}

.rg-modal-pdf-empty[b-zmqfx6hynx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.35rem;
    min-height: 220px;
    padding: 1.25rem;
    border: 1.5px dashed #CBD5E1;
    border-radius: 8px;
    background: #fff;
}

.rg-modal-pdf-empty .bi[b-zmqfx6hynx] {
    font-size: 2rem;
    color: #c0392b;
    opacity: 0.55;
}

.rg-modal-pdf-actions[b-zmqfx6hynx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rg-modal-ai-status[b-zmqfx6hynx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    color: #2c6a9e;
    font-weight: 600;
}

.rg-modal-section[b-zmqfx6hynx] {
    border: 1px solid #E2E8F0;
    border-radius: 10px;
    padding: 0.9rem 1rem 1rem;
    margin: 0 0 1rem;
}

.rg-modal-section-title[b-zmqfx6hynx] {
    float: none;
    width: auto;
    font-size: 0.72rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0 0.4rem;
    margin-bottom: 0.35rem;
}

.rg-modal-fields[b-zmqfx6hynx] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 1rem;
}

.rg-modal-fields .rg-detail-field[b-zmqfx6hynx] {
    min-width: 0;
}

.rg-modal-field-wide[b-zmqfx6hynx] {
    grid-column: 1 / -1;
}

@media (max-width: 575px) {
    .rg-modal-fields[b-zmqfx6hynx] { grid-template-columns: 1fr; }
}

/* ── Proposta fasi WBS ai getti senza fase (blocco B, 2026-09-03) ───────── */
.rg-fasi-panel[b-zmqfx6hynx] {
    background: #EDF3FB;
    border-bottom: 1px solid #DCEAF8;
    padding: 12px var(--eco-pad, 24px) 14px;   /* sull'asse della card */
}
.rg-fasi-panel__head[b-zmqfx6hynx] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredPOS.razor.rz.scp.css */
/* _IndexFilteredPOS — POS tab */

/* ── Info alert template ─────────────────────────────────────────────── */

.pos-alert-info[b-2g3jiin04t] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
    background: #fffbf0;
    border: 1px solid #f0d080;
    border-left: 3px solid #d4a017;
    border-radius: 8px;
    margin-bottom: 1.25rem;
    font-size: 0.8125rem;
    color: #6b4f00;
    line-height: 1.5;
}

.pos-alert-icon[b-2g3jiin04t] {
    color: #d4a017;
    font-size: 1rem;
    margin-top: 0.15rem;
    flex-shrink: 0;
}

.pos-alert-body[b-2g3jiin04t] { flex: 1; }

.pos-alert-close[b-2g3jiin04t] {
    background: none;
    border: none;
    cursor: pointer;
    color: #b38a00;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1;
    flex-shrink: 0;
    opacity: 0.65;
    transition: opacity 0.12s;
}

.pos-alert-close:hover[b-2g3jiin04t] { opacity: 1; }

/* ── Section header ──────────────────────────────────────────────────── */

/* Standard di spaziatura (2026-09-04): titolo → 4px → sottotitolo → 24px → blocco successivo */
.pos-section-header[b-2g3jiin04t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: var(--eco-block, 24px);
}

.pos-section-title[b-2g3jiin04t] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 4px;
}

.pos-section-sub[b-2g3jiin04t] {
    font-size: 0.8rem;
    color: #5B7A9A;
}

/* ── Card ────────────────────────────────────────────────────────────── */

.pos-card[b-2g3jiin04t] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    overflow: hidden;
}

/* ── Table ───────────────────────────────────────────────────────────── */

.pos-table[b-2g3jiin04t] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    margin: 0;
}

.pos-table thead th[b-2g3jiin04t] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
    border-top: none;
}

.pos-table tbody td[b-2g3jiin04t] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    color: #334155;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna: mai a filo del bordo della card */
.pos-table th:first-child[b-2g3jiin04t], .pos-table td:first-child[b-2g3jiin04t] { padding-left: var(--eco-cell-edge, 20px); }
.pos-table th:last-child[b-2g3jiin04t],  .pos-table td:last-child[b-2g3jiin04t]  { padding-right: var(--eco-cell-edge, 20px); }

.pos-table tbody tr:last-child td[b-2g3jiin04t] { border-bottom: none; }
.pos-table tbody tr:hover td[b-2g3jiin04t]      { background: #fafcff; }

/* ── Cell content ────────────────────────────────────────────────────── */

.pos-rev[b-2g3jiin04t] {
    font-weight: 600;
    color: #1E334C;
}

.pos-data[b-2g3jiin04t] {
    white-space: nowrap;
    color: #5B7A9A;
    font-size: 0.82rem;
}

.pos-sub[b-2g3jiin04t] {
    color: #5B7A9A;
    font-size: 0.82rem;
}

.pos-tag-badge[b-2g3jiin04t] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.1em 0.45em;
    border-radius: 20px;
    background: #eef4fb;
    color: #2c6a9e;
    white-space: nowrap;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */

/* Geometria canonica dell'icon button: token in app.css (button system) */
.pos-icon-btn[b-2g3jiin04t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    border-radius: var(--icobtn-radius, 8px);
    border: none;
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    padding: 0;
    transition: background 0.12s, color 0.12s;
    flex-shrink: 0;
}

.pos-icon-btn:hover[b-2g3jiin04t]              { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.pos-icon-btn-danger:hover[b-2g3jiin04t]       { background: var(--icobtn-danger-bg, #FBEBED); color: var(--btn-danger-hover, #A93226); }

.pos-actions[b-2g3jiin04t] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    white-space: nowrap;
}

/* ── Empty state ─────────────────────────────────────────────────────── */

.pos-empty[b-2g3jiin04t] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
    color: #5B7A9A;
}

.pos-empty .bi[b-2g3jiin04t] {
    font-size: 2.5rem;
    display: block;
    opacity: 0.35;
    margin-bottom: 0.75rem;
}

.pos-empty-title[b-2g3jiin04t] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.pos-empty-text[b-2g3jiin04t] {
    font-size: 0.875rem;
    max-width: 360px;
    margin: 0 auto;
}

/* ── Confirm overlay ─────────────────────────────────────────────────── */

.pos-confirm-overlay[b-2g3jiin04t] {
    position: fixed;
    inset: 0;
    background: rgba(14, 26, 41, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9900;
    animation: pos-fade-in-b-2g3jiin04t 0.12s ease;
}

@keyframes pos-fade-in-b-2g3jiin04t {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.pos-confirm-dialog[b-2g3jiin04t] {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    max-width: 380px;
    width: calc(100% - 2rem);
    box-shadow: 0 8px 40px rgba(14, 26, 41, 0.22);
}

.pos-confirm-title[b-2g3jiin04t] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 0.6rem;
}

.pos-confirm-body[b-2g3jiin04t] {
    font-size: 0.875rem;
    color: #5B7A9A;
    line-height: 1.55;
    margin-bottom: 1.25rem;
}

.pos-confirm-body strong[b-2g3jiin04t] { color: #1E334C; }

.pos-confirm-actions[b-2g3jiin04t] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredSicurezza.razor.rz.scp.css */
/* _IndexFilteredSicurezza */

.sic-toolbar[b-1yhr3jdex2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* ── Rev badge ──────────────────────────────────────────────────────── */

.sic-rev-badge[b-1yhr3jdex2] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #eef4fb;
    color: #2c6a9e;
    white-space: nowrap;
}

/* ── Link file ──────────────────────────────────────────────────────── */

.sic-link[b-1yhr3jdex2] {
    font-size: 0.8rem;
    color: #2c6a9e;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    transition: color 0.12s;
}

.sic-link:hover[b-1yhr3jdex2] { color: #1E334C; }

/* ── Bottoni azione riga ────────────────────────────────────────────── */

.sic-icon-btn[b-1yhr3jdex2] {
    background: none;
    border: 1px solid transparent;
    border-radius: 6px;
    color: #5B7A9A;
    padding: 0.25rem 0.4rem;
    line-height: 1;
    cursor: pointer;
    font-size: 0.875rem;
    transition: background 0.12s, color 0.12s;
}

.sic-icon-btn:hover[b-1yhr3jdex2] {
    background: #eef4fb;
    color: #1E334C;
    border-color: #dceaf8;
}

/* ── Loading ────────────────────────────────────────────────────────── */

.sic-loading[b-1yhr3jdex2] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem;
    color: #5B7A9A;
    font-size: 0.875rem;
}

.sic-spinner[b-1yhr3jdex2] {
    border: 3px solid #DCE3EE;
    border-top: 3px solid #2E3C66;
    border-radius: 50%;
    width: 22px;
    height: 22px;
    animation: sic-spin-b-1yhr3jdex2 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes sic-spin-b-1yhr3jdex2 {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Preview estratto AI ─────────────────────────────────────────────── */

.sic-preview[b-1yhr3jdex2] {
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-left: 3px solid #2c6a9e;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin-top: 0.5rem;
}

.sic-preview-title[b-1yhr3jdex2] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #2c6a9e;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.75rem;
}

.sic-field-label[b-1yhr3jdex2] {
    font-size: 0.68rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.15rem;
}

.sic-field-value[b-1yhr3jdex2] {
    font-size: 0.875rem;
    color: #1E334C;
    font-weight: 500;
}

/* ── Azioni di riga in linea (notifiche): come con-actions / sub-actions ── */

.sic-actions[b-1yhr3jdex2] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
}

.sic-actions a.eco-act[b-1yhr3jdex2] { text-decoration: none; }
.sic-actions a.eco-act.disabled[b-1yhr3jdex2] { color: #B9C9DA; pointer-events: none; }

/* ── Dati cantiere: card unica con griglia a 3 colonne (2026-09-04) ─────────
   Stesso design system delle card eco-*: bianco, bordo #DDE5EF, radius 12px, ombra
   leggera, padding var(--eco-pad). Stesso margine laterale della tabella sopra (nessun
   margine esterno: le due card sono sorelle nello stesso contenitore). */
.sic-dc[b-1yhr3jdex2] {
    background: #fff;
    border: 1px solid #DDE5EF;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 27, 72, .04);
    padding: var(--eco-pad, 24px);
    margin-bottom: var(--eco-block, 24px);
}

.sic-dc__head[b-1yhr3jdex2] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 16px;
    margin-bottom: 20px;
    border-bottom: 1px solid #EDF2F7;   /* divisore leggero header → dati */
}

.sic-dc__txt[b-1yhr3jdex2] { min-width: 0; }

.sic-dc__title[b-1yhr3jdex2] {
    margin: 0 0 4px;
    font-size: 1.02rem;
    font-weight: 700;
    color: #1E334C;
}

.sic-dc__sub[b-1yhr3jdex2] {
    margin: 0;
    font-size: .82rem;
    color: #5B7A9A;
}

/* Fonte: secondaria, non compete col titolo */
.sic-dc__src[b-1yhr3jdex2] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .76rem;
    color: #718096;
    white-space: nowrap;
    padding-top: 2px;
}

.sic-dc__src .bi[b-1yhr3jdex2] { font-size: .85rem; color: #8696a7; }

.sic-dc__grid[b-1yhr3jdex2] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Separatori verticali fra le colonne: bordo sinistro dalla seconda in poi */
.sic-dc__col[b-1yhr3jdex2] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0 24px;
    min-width: 0;
}

.sic-dc__col:first-child[b-1yhr3jdex2] { padding-left: 0; }
.sic-dc__col:last-child[b-1yhr3jdex2]  { padding-right: 0; }
.sic-dc__col + .sic-dc__col[b-1yhr3jdex2] { border-left: 1px solid #EDF2F7; }

.sic-dc__item[b-1yhr3jdex2] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}

.sic-dc__ico[b-1yhr3jdex2] {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #EDF3FB;
    color: #001B48;
    font-size: .95rem;
}

.sic-dc__body[b-1yhr3jdex2] { display: flex; flex-direction: column; min-width: 0; }

.sic-dc__lbl[b-1yhr3jdex2] {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #718096;
    margin-bottom: 4px;
    line-height: 1.3;
}

.sic-dc__val[b-1yhr3jdex2] {
    font-size: .95rem;
    font-weight: 600;
    color: #1E334C;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

@media (max-width: 992px) {
    .sic-dc__grid[b-1yhr3jdex2] { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; }
    .sic-dc__col[b-1yhr3jdex2] { padding: 0 20px; }
    .sic-dc__col:first-child[b-1yhr3jdex2] { padding-left: 0; }
    .sic-dc__col:last-child[b-1yhr3jdex2]  { padding-right: 20px; }
    /* Terza colonna sotto: niente separatore a sinistra */
    .sic-dc__col:nth-child(3)[b-1yhr3jdex2] { border-left: none; padding-left: 0; }
}

@media (max-width: 600px) {
    .sic-dc__head[b-1yhr3jdex2] { flex-direction: column; gap: 8px; }
    .sic-dc__src[b-1yhr3jdex2] { white-space: normal; }
    .sic-dc__grid[b-1yhr3jdex2] { grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
    .sic-dc__col[b-1yhr3jdex2] { padding: 0; }
    .sic-dc__col + .sic-dc__col[b-1yhr3jdex2] { border-left: none; }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredSubContract.razor.rz.scp.css */
/* _IndexFilteredSubContract — Subappalti tab
   ────────────────────────────────────────────────────────────────────────────
   Cornice, tabella, azioni, empty state e badge vengono dal design system della
   Commessa (economia.css: eco-card, eco-table, eco-act, eco-empty, eco-badge).
   Qui resta SOLO ciò che il design system non copre: l'avviso sul template Word,
   la tipografia di alcune celle, la barra "modifiche non salvate" e la modale di
   conferma.

   ⚠️ Il CSS di componente è scoped, quindi `.sub-table[b-xxx]` batte `.eco-table`
   per specificità: ridefinire qui una classe del design system la sovrascrive in
   silenzio. È il motivo per cui la tabella non ha più una sua classe. */

/* ── Avviso sul template Word ────────────────────────────────────────────── */

.sub-alert-info[b-bwb2gbweuu] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
    background: #fffbf0;
    border: 1px solid #f0d080;
    border-left: 3px solid #d4a017;
    border-radius: 8px;
    margin-bottom: 1.25rem;
    font-size: 0.8125rem;
    color: #6b4f00;
    line-height: 1.5;
}

.sub-alert-icon[b-bwb2gbweuu] {
    color: #d4a017;
    font-size: 1rem;
    margin-top: 0.15rem;
    flex-shrink: 0;
}

.sub-alert-body[b-bwb2gbweuu] { flex: 1; }

.sub-alert-close[b-bwb2gbweuu] {
    background: none;
    border: none;
    cursor: pointer;
    color: #b38a00;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1;
    flex-shrink: 0;
    opacity: 0.65;
    transition: opacity 0.12s;
}

.sub-alert-close:hover[b-bwb2gbweuu] { opacity: 1; }

/* ── Contenuto delle celle ───────────────────────────────────────────────── */

.sub-fornitore-name[b-bwb2gbweuu] {
    font-weight: 600;
    color: #1E334C;
}

.sub-fornitore-legrapp[b-bwb2gbweuu] {
    font-size: 0.78rem;
    color: #5B7A9A;
    margin-top: 0.1rem;
}

.sub-lavoro[b-bwb2gbweuu] {
    max-width: 220px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sub-importo[b-bwb2gbweuu] {
    font-weight: 600;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.sub-data[b-bwb2gbweuu] {
    white-space: nowrap;
    color: #5B7A9A;
    font-size: 0.82rem;
}

/* ── Colonna Documento ───────────────────────────────────────────────────── */

.sub-doc-row[b-bwb2gbweuu] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.sub-template-select[b-bwb2gbweuu] {
    width: 150px;
    font-size: 0.78rem;
    min-width: 0;
}

.sub-upload-row-cell[b-bwb2gbweuu] { padding: 0.5rem 1rem; background: #f8fafd; }

.sub-upload-row[b-bwb2gbweuu] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* ── Azioni di riga ──────────────────────────────────────────────────────── */

/* Variante distruttiva di eco-act: il resto del bottone lo dà il design system. */
.sub-icon-btn-danger:hover[b-bwb2gbweuu] { background: #fdecea; color: #9e2d1e; }

.sub-actions[b-bwb2gbweuu] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
}

/* ── Barra modifiche non salvate ─────────────────────────────────────────── */

.sub-save-footer[b-bwb2gbweuu] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 0.65rem 1rem;
    border-top: 1px solid #e9eff7;
    background: #f8fafd;
}

.sub-unsaved-label[b-bwb2gbweuu] {
    font-size: 0.8rem;
    color: #9e6b1e;
}

/* ── Conferma eliminazione ───────────────────────────────────────────────── */

.sub-confirm-overlay[b-bwb2gbweuu] {
    position: fixed;
    inset: 0;
    background: rgba(14, 26, 41, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9900;
    animation: sub-fade-in-b-bwb2gbweuu 0.12s ease;
}

@keyframes sub-fade-in-b-bwb2gbweuu {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.sub-confirm-dialog[b-bwb2gbweuu] {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    max-width: 380px;
    width: calc(100% - 2rem);
    box-shadow: 0 8px 40px rgba(14, 26, 41, 0.22);
}

.sub-confirm-title[b-bwb2gbweuu] {
    font-size: 1rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 0.6rem;
}

.sub-confirm-body[b-bwb2gbweuu] {
    font-size: 0.875rem;
    color: #5B7A9A;
    line-height: 1.55;
    margin-bottom: 1.25rem;
}

.sub-confirm-body strong[b-bwb2gbweuu] { color: #1E334C; }

.sub-confirm-actions[b-bwb2gbweuu] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFilteredVendite.razor.rz.scp.css */
/* SAL e fatture nella commessa (_IndexFilteredVendite) */

/* ── KPI cards ────────────────────────────────────────────────────────────── */

/* Standard KPI non-eco (2026-09-04): 20px 24px, etichetta → 6px → valore → 4px → descrizione */
.ifv-kpi-card[b-zrxaqf8jwk] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 20px 24px;
    height: 100%;
}

.ifv-kpi-card.success[b-zrxaqf8jwk] {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.ifv-kpi-card.danger[b-zrxaqf8jwk] {
    border-color: #fecaca;
    background: #fff7f7;
}

.ifv-kpi-label[b-zrxaqf8jwk] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5B7A9A;
    margin-bottom: 6px;
}

.ifv-kpi-value[b-zrxaqf8jwk] {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
}

.ifv-kpi-card.success .ifv-kpi-value[b-zrxaqf8jwk] { color: #15803d; }
.ifv-kpi-card.danger  .ifv-kpi-value[b-zrxaqf8jwk] { color: #dc2626; }

.ifv-kpi-sub[b-zrxaqf8jwk] {
    font-size: 0.72rem;
    color: #5B7A9A;
    margin-top: 4px;
}

/* ── Table ────────────────────────────────────────────────────────────────── */

.ifv-table[b-zrxaqf8jwk] { margin-bottom: 0; }

.ifv-table thead th[b-zrxaqf8jwk] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
}

.ifv-row[b-zrxaqf8jwk] { transition: background 0.1s; }
.ifv-row:hover[b-zrxaqf8jwk] { background: #f7fafd; }

.ifv-row td[b-zrxaqf8jwk] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna: mai a filo del bordo della cornice (selettore > * > tr >
   per vincere sulla regola globale .table:not(.table-sm) di app.css) */
.ifv-table > * > tr > th:first-child[b-zrxaqf8jwk], .ifv-table > * > tr > td:first-child[b-zrxaqf8jwk] { padding-left: var(--eco-cell-edge, 20px); }
.ifv-table > * > tr > th:last-child[b-zrxaqf8jwk],  .ifv-table > * > tr > td:last-child[b-zrxaqf8jwk]  { padding-right: var(--eco-cell-edge, 20px); }

/* Colonna azioni (ultima): icona a destra, mai spezzata */
.ifv-table > tbody > tr > td:last-child[b-zrxaqf8jwk] { text-align: right; white-space: nowrap; }

.ifv-link[b-zrxaqf8jwk] {
    color: #2c6a9e;
    text-decoration: none;
    font-weight: 600;
}

.ifv-link:hover[b-zrxaqf8jwk] { text-decoration: underline; }

.ifv-sub[b-zrxaqf8jwk] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

.ifv-sub-success[b-zrxaqf8jwk] { color: #16a34a !important; }
.ifv-sub-danger[b-zrxaqf8jwk]  { color: #dc2626 !important; }

.ifv-fase[b-zrxaqf8jwk] {
    font-size: 0.8rem;
    color: #334155;
    max-width: 140px;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ifv-cantiere-badge[b-zrxaqf8jwk] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.15em 0.55em;
    border-radius: 20px;
    background: #1E334C;
    color: #fff;
    white-space: nowrap;
}

.ifv-importo[b-zrxaqf8jwk] {
    font-size: 0.875rem;
    color: #1E334C;
    white-space: nowrap;
}

.ifv-importo-bold[b-zrxaqf8jwk] {
    font-size: 0.875rem;
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
}

/* ── Tfoot ────────────────────────────────────────────────────────────────── */

.ifv-tfoot td[b-zrxaqf8jwk] {
    background: #f7fafd;
    border-top: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    font-size: 0.875rem;
}

.ifv-tfoot-label[b-zrxaqf8jwk] { font-weight: 700; color: #1E334C; }
.ifv-tfoot-value[b-zrxaqf8jwk] { font-weight: 700; color: #1E334C; }

/* ── Icon buttons ─────────────────────────────────────────────────────────── */

/* Geometria canonica dell'icon button: token in app.css (button system) */
.ifv-icon-btn[b-zrxaqf8jwk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    border-radius: var(--icobtn-radius, 8px);
    border: none;
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
    padding: 0;
}

.ifv-icon-btn:hover[b-zrxaqf8jwk] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

/* ── Empty state ──────────────────────────────────────────────────────────── */

.ifv-empty[b-zrxaqf8jwk] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.ifv-empty .bi[b-zrxaqf8jwk] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.ifv-empty-title[b-zrxaqf8jwk] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.ifv-empty-text[b-zrxaqf8jwk] {
    font-size: 0.875rem;
    color: #5B7A9A;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexFlussicassa.razor.rz.scp.css */
/* Flussi di cassa (_IndexFlussicassa) */

/* ── KPI cards ────────────────────────────────────────────────────────────── */

/* Standard KPI non-eco (2026-09-04): 20px 24px, etichetta → 6px → valore → 4px → descrizione;
   height 100% = card di uguale altezza dentro le colonne della row */
.fc-kpi-card[b-v3j8acdtjw] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 20px 24px;
    height: 100%;
}

.fc-kpi-card.success[b-v3j8acdtjw]   { border-color: #bbf7d0; background: #f0fdf4; }
.fc-kpi-card.danger[b-v3j8acdtjw]    { border-color: #fecaca; background: #fff7f7; }
.fc-kpi-card.uscite[b-v3j8acdtjw]    { border-color: #fed7aa; background: #fff7ed; }
.fc-kpi-card.saldo-pos[b-v3j8acdtjw] { border-color: #bbf7d0; background: #f0fdf4; }
.fc-kpi-card.saldo-neg[b-v3j8acdtjw] { border-color: #fecaca; background: #fff7f7; }

.fc-kpi-label[b-v3j8acdtjw] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #5B7A9A;
    margin-bottom: 6px;
}

.fc-kpi-value[b-v3j8acdtjw] {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1E334C;
    line-height: 1.2;
}

.fc-kpi-card.success   .fc-kpi-value[b-v3j8acdtjw] { color: #15803d; }
.fc-kpi-card.danger    .fc-kpi-value[b-v3j8acdtjw] { color: #dc2626; }
.fc-kpi-card.uscite    .fc-kpi-value[b-v3j8acdtjw] { color: #c2410c; }
.fc-kpi-card.saldo-pos .fc-kpi-value[b-v3j8acdtjw] { color: #15803d; }
.fc-kpi-card.saldo-neg .fc-kpi-value[b-v3j8acdtjw] { color: #dc2626; }

.fc-kpi-sub[b-v3j8acdtjw] {
    font-size: 0.72rem;
    color: #5B7A9A;
    margin-top: 4px;
}

/* ── Chart card ───────────────────────────────────────────────────────────── */

.fc-chart-card[b-v3j8acdtjw] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 20px var(--eco-pad, 24px) var(--eco-pad, 24px);
}

.fc-chart-title[b-v3j8acdtjw] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
}

/* ── Table card ───────────────────────────────────────────────────────────── */

.fc-table-card[b-v3j8acdtjw] {
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    overflow: hidden;
}

/* Fascia di testata della tabella: stesse misure del .card-header globale (14px 24px),
   così titolo e prima colonna condividono l'asse sinistro a var(--eco-pad) */
.fc-table-header[b-v3j8acdtjw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px var(--eco-pad, 24px);
    border-bottom: 1px solid #dceaf8;
    background: #f7fafd;
}

.fc-table-title[b-v3j8acdtjw] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: flex;
    align-items: center;
}

.fc-table-meta[b-v3j8acdtjw] {
    font-size: 0.75rem;
    color: #8696a7;
}

/* ── Table ────────────────────────────────────────────────────────────────── */

.fc-table[b-v3j8acdtjw] { margin-bottom: 0; }

.fc-table thead th[b-v3j8acdtjw] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
}

.fc-row[b-v3j8acdtjw] { transition: background 0.1s; }
.fc-row:hover[b-v3j8acdtjw] { background: #f7fafd; }

.fc-row td[b-v3j8acdtjw] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    font-size: 0.875rem;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna sull'asse della card (24px), come la testata (selettore
   > * > tr > per vincere sulla regola globale .table:not(.table-sm) di app.css) */
.fc-table > * > tr > th:first-child[b-v3j8acdtjw], .fc-table > * > tr > td:first-child[b-v3j8acdtjw] { padding-left: var(--eco-pad, 24px); }
.fc-table > * > tr > th:last-child[b-v3j8acdtjw],  .fc-table > * > tr > td:last-child[b-v3j8acdtjw]  { padding-right: var(--eco-pad, 24px); }

/* Colonna azioni (ultima): icona a destra, mai spezzata */
.fc-table > tbody > tr > td:last-child[b-v3j8acdtjw] { text-align: right; white-space: nowrap; }

/* Date: mai a capo */
.fc-date[b-v3j8acdtjw], .fc-date-overdue[b-v3j8acdtjw], .fc-date-empty[b-v3j8acdtjw] { white-space: nowrap; }

.fc-row-overdue[b-v3j8acdtjw] { background: #fff9f9; }
.fc-row-overdue:hover[b-v3j8acdtjw] { background: #fff5f5; }

.fc-date[b-v3j8acdtjw] {
    font-size: 0.82rem;
    font-weight: 500;
    color: #334155;
}

.fc-date-overdue[b-v3j8acdtjw] {
    font-size: 0.82rem;
    font-weight: 700;
    color: #dc2626;
}

.fc-date-empty[b-v3j8acdtjw] {
    font-size: 0.82rem;
    color: #94a3b8;
}

/* ── Tipo badge ───────────────────────────────────────────────────────────── */

.fc-tipo-entrata[b-v3j8acdtjw] {
    display: inline-flex;
    align-items: center;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2em 0.6em;
    border-radius: 20px;
    background: #d1fae5;
    color: #065f46;
    white-space: nowrap;
}

.fc-tipo-uscita[b-v3j8acdtjw] {
    display: inline-flex;
    align-items: center;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2em 0.6em;
    border-radius: 20px;
    background: #fee2e2;
    color: #991b1b;
    white-space: nowrap;
}

/* ── Controparte / Documento ──────────────────────────────────────────────── */

.fc-controparte[b-v3j8acdtjw] {
    font-weight: 600;
    color: #1E334C;
    font-size: 0.875rem;
}

.fc-documento[b-v3j8acdtjw] {
    font-size: 0.8rem;
    color: #5B7A9A;
}

/* ── Importo ──────────────────────────────────────────────────────────────── */

.fc-importo[b-v3j8acdtjw] {
    font-size: 0.875rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.fc-importo-entrata[b-v3j8acdtjw] { color: #15803d; }
.fc-importo-uscita[b-v3j8acdtjw]  { color: #c2410c; }

/* ── Tfoot ────────────────────────────────────────────────────────────────── */

.fc-tfoot td[b-v3j8acdtjw] {
    background: #f7fafd;
    border-top: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    font-size: 0.875rem;
}

.fc-tfoot-label[b-v3j8acdtjw] { font-weight: 700; color: #5B7A9A; font-size: 0.8rem; }
.fc-tfoot-value[b-v3j8acdtjw] { font-weight: 700; }

/* ── Icon button ──────────────────────────────────────────────────────────── */

/* Geometria canonica dell'icon button: token in app.css (button system) */
.fc-icon-btn[b-v3j8acdtjw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    flex-shrink: 0;
    border-radius: var(--icobtn-radius, 8px);
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
}

.fc-icon-btn:hover[b-v3j8acdtjw] { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }

/* ── Empty state ──────────────────────────────────────────────────────────── */

.fc-empty[b-v3j8acdtjw] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.fc-empty .bi[b-v3j8acdtjw] {
    font-size: 2.5rem;
    color: #c8d8e8;
    display: block;
    margin-bottom: 0.75rem;
}

.fc-empty-title[b-v3j8acdtjw] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.fc-empty-text[b-v3j8acdtjw] {
    font-size: 0.875rem;
    color: #5B7A9A;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexGantt.razor.rz.scp.css */
/* ── Gantt WBS: elenco attività sticky + corsie a scala temporale ── */

.gantt-card[b-3esu5l3iz6] {
    --gantt-line: #eef1f4;
    --gantt-row-h: 34px;
    --gantt-nome-w: 300px;
    padding: 0.75rem;
}

.gantt-toolbar[b-3esu5l3iz6] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.gantt-legenda[b-3esu5l3iz6] {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    color: #6c757d;
}

.gantt-leg[b-3esu5l3iz6] {
    display: inline-block;
    width: 18px;
    height: 8px;
    border-radius: 3px;
    margin-left: 0.5rem;
}

.gantt-leg-prev[b-3esu5l3iz6] { background: #4f83cc; }
.gantt-leg-sum[b-3esu5l3iz6]  { background: #37474f; height: 6px; }
.gantt-leg-reg[b-3esu5l3iz6]  { background: #2e9e6b; height: 5px; }
.gantt-leg-critica[b-3esu5l3iz6] { background: #d64545; }
.gantt-leg-link[b-3esu5l3iz6] {
    height: 0;
    border-top: 2px solid #7d93ab;
    border-radius: 0;
    position: relative;
}
.gantt-leg-link[b-3esu5l3iz6]::after {           /* punta della freccia in miniatura */
    content: "";
    position: absolute;
    right: -1px;
    top: -5px;
    border: 4px solid transparent;
    border-left-color: #7d93ab;
}

/* Cammino critico: la barra vira al rosso */
.gantt-bar-prev.gantt-bar-critica[b-3esu5l3iz6] { background: #d64545; }
.gantt-bar-sum.gantt-bar-critica[b-3esu5l3iz6]  { background: #8f1f1f; }

/* Contenitore scrollabile in entrambe le direzioni, testata e colonna nomi sticky */
.gantt-scroll[b-3esu5l3iz6] {
    overflow: auto;
    max-height: 72vh;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    /* Touch: trascinamento con inerzia e nessun "rubber band" che scrolli la pagina */
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-x pan-y;
}

.gantt-inner[b-3esu5l3iz6] { min-width: 100%; }

.gantt-head[b-3esu5l3iz6] {
    display: flex;
    position: sticky;
    top: 0;
    z-index: 3;
    background: #fff;
    border-bottom: 1px solid #dee2e6;
}

.gantt-head-nome[b-3esu5l3iz6] {
    display: flex;
    align-items: flex-end;
    font-weight: 600;
    font-size: 0.8rem;
    color: #495057;
    padding: 0.35rem 0.5rem;
}

.gantt-time[b-3esu5l3iz6] { overflow: hidden; }

.gantt-mesi[b-3esu5l3iz6], .gantt-ticks[b-3esu5l3iz6] {
    display: flex;
    overflow: hidden;
}

.gantt-mese[b-3esu5l3iz6] {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 600;
    color: #495057;
    padding: 0.2rem 0.3rem;
    border-left: 1px solid #dee2e6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gantt-tick[b-3esu5l3iz6] {
    flex: 0 0 auto;
    font-size: 0.68rem;
    color: #8a949e;
    padding: 0 0.2rem 0.15rem;
    border-left: 1px solid #eef1f4;
    white-space: nowrap;
    overflow: hidden;
}

/* Righe */
.gantt-row[b-3esu5l3iz6] {
    display: flex;
    height: var(--gantt-row-h);
    border-bottom: 1px solid #f1f3f5;
}

.gantt-row-root[b-3esu5l3iz6] { background: #fbfcfd; }
.gantt-row-root .gantt-nome[b-3esu5l3iz6] { background: #fbfcfd; font-weight: 600; }
.gantt-row:hover .gantt-lane[b-3esu5l3iz6] { background-color: #f8fafc; }

/* Colonna nomi: sticky a sinistra sopra le corsie */
.gantt-nome[b-3esu5l3iz6] {
    flex: 0 0 var(--gantt-nome-w);
    width: var(--gantt-nome-w);
    position: sticky;
    left: 0;
    z-index: 2;
    background: #fff;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    border-right: 1px solid #dee2e6;
    font-size: 0.82rem;
    overflow: hidden;
}

.gantt-head .gantt-nome[b-3esu5l3iz6] { z-index: 4; }

.gantt-codice[b-3esu5l3iz6] {
    color: #8a949e;
    font-size: 0.72rem;
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}

.gantt-nome-btn[b-3esu5l3iz6] {
    border: 0;
    background: none;
    padding: 0;
    text-align: left;
    color: inherit;
    font: inherit;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gantt-nome-btn:hover[b-3esu5l3iz6] { color: #0d6efd; text-decoration: underline; }

.gantt-exp[b-3esu5l3iz6] {
    border: 0;
    background: none;
    padding: 0;
    width: 18px;
    flex: 0 0 18px;
    color: #6c757d;
    cursor: pointer;
    font-size: 0.72rem;
}

.gantt-exp-spacer[b-3esu5l3iz6] { width: 18px; flex: 0 0 18px; }

/* Corpo delle righe: contesto di posizionamento per l'overlay delle frecce */
.gantt-body[b-3esu5l3iz6] { position: relative; }

/* Frecce di vincolo: sopra le barre (z1), sotto colonna nomi (z2) e testata (z3).
   pointer-events solo sul tratto: il resto dell'overlay lascia passare i click. */
.gantt-links[b-3esu5l3iz6] {
    position: absolute;
    top: 0;
    z-index: 1;
    pointer-events: none;
    overflow: visible;
}

.gantt-link[b-3esu5l3iz6] {
    fill: none;
    stroke: #7d93ab;
    stroke-width: 1.4;
    pointer-events: visibleStroke;
}

.gantt-link:hover[b-3esu5l3iz6] { stroke: #001B48; stroke-width: 2; }
.gantt-link-critica[b-3esu5l3iz6] { stroke: #d64545; }
.gantt-link-critica:hover[b-3esu5l3iz6] { stroke: #a92e2e; }

/* Corsie e barre */
.gantt-lane[b-3esu5l3iz6] {
    position: relative;
    flex: 0 0 auto;
    height: 100%;
}

.gantt-bar[b-3esu5l3iz6] {
    position: absolute;
    border-radius: 3px;
}

.gantt-bar-prev[b-3esu5l3iz6] {
    top: 8px;
    height: 13px;
    background: #4f83cc;
}

.gantt-bar-sum[b-3esu5l3iz6] {
    top: 6px;
    height: 7px;
    background: #37474f;
    border-radius: 2px;
}

.gantt-bar-reg[b-3esu5l3iz6] {
    top: 24px;
    height: 5px;
    background: #2e9e6b;
}

.gantt-bar-reg-corso[b-3esu5l3iz6] {
    background: repeating-linear-gradient(45deg, #2e9e6b 0 4px, #7fcaa8 4px 8px);
}

.gantt-bar-aperta[b-3esu5l3iz6] {
    top: 8px;
    height: 13px;
    background: rgba(79, 131, 204, 0.15);
    border: 1px dashed #4f83cc;
}

.gantt-today[b-3esu5l3iz6] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0;
    border-left: 2px solid #246B9A;   /* azzurro brand commessa.ai (accento del logo) */
    opacity: 0.6;
    z-index: 1;
}

/* ── Tablet, telefono e dispositivi touch ────────────────────────────────────
   La colonna nomi si restringe per lasciare spazio alle corsie: la larghezza è
   SOLO qui (--gantt-nome-w) e la leggono anche l'inner e l'overlay frecce.
   ⚠️ --gantt-row-h NON si tocca: 34px è la geometria con cui il componente
   calcola in C# i punti di attacco delle frecce (RowH, CentroBarra*).          */

@media (max-width: 1280px) {
    .gantt-card[b-3esu5l3iz6] { --gantt-nome-w: 240px; }
}

@media (max-width: 860px) {
    .gantt-card[b-3esu5l3iz6] { --gantt-nome-w: 200px; }
    .gantt-legenda[b-3esu5l3iz6] {
        margin-left: 0;
        width: 100%;
        flex-wrap: wrap;
        gap: 0.25rem 0.5rem;
        font-size: 0.74rem;
    }
    .gantt-toolbar[b-3esu5l3iz6] { gap: 0.5rem; }
}

@media (max-width: 640px) {
    .gantt-card[b-3esu5l3iz6] { --gantt-nome-w: 152px; padding: 0.5rem; }
    .gantt-scroll[b-3esu5l3iz6] { max-height: 68vh; }
    .gantt-codice[b-3esu5l3iz6] { display: none; }          /* il nome vince sullo spazio */
    .gantt-nome[b-3esu5l3iz6] { font-size: 0.78rem; }
}

/* Dita, non mouse: bersagli più grandi su espandi/collassa e sui pulsanti della
   toolbar (il nome dell'attività resta un bersaglio a tutta riga). */
@media (hover: none) and (pointer: coarse) {
    .gantt-exp[b-3esu5l3iz6], .gantt-exp-spacer[b-3esu5l3iz6] { width: 26px; flex: 0 0 26px; }
    .gantt-exp[b-3esu5l3iz6] { font-size: 0.85rem; }
    .gantt-toolbar .btn[b-3esu5l3iz6] { min-height: 40px; }
    .gantt-nome-btn[b-3esu5l3iz6] { padding: 4px 0; }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexGroupedByMonthYear.razor.rz.scp.css */
/* Riepilogo mensile — _IndexGroupedByMonthYear */

/* ── Card ────────────────────────────────────────────────────────────── */

.rm-card[b-6vo0qp7msm] {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

/* Standard di spaziatura (2026-09-04, identico ad Acquisti/Fornitori commessa): header,
   KPI e tabella sullo stesso asse sinistro a var(--eco-pad); header basso senza fascia. */
.rm-card-header[b-6vo0qp7msm] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: var(--eco-pad, 24px) var(--eco-pad, 24px) 0;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: var(--eco-block, 24px);
}

.rm-card-title[b-6vo0qp7msm] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 4px;
}

.rm-card-sub[b-6vo0qp7msm] {
    font-size: 0.78rem;
    color: #5B7A9A;
}

/* KPI (componenti condivisi) rientrano nell'asse della card: prima erano a filo. */
.rm-card[b-6vo0qp7msm]  .eco-kpis { padding: 0 var(--eco-pad, 24px); }

/* ── KPI strip ────────────────────────────────────────────────────────── */

.rm-kpi-strip[b-6vo0qp7msm] {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-bottom: 1px solid #E2E8F0;
}

.rm-kpi-item[b-6vo0qp7msm] {
    flex: 1 1 160px;
    padding: 20px 24px;
    border-right: 1px solid #E2E8F0;
}

.rm-kpi-item:last-child[b-6vo0qp7msm] { border-right: none; }

.rm-kpi-label[b-6vo0qp7msm] {
    font-size: 0.68rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

.rm-kpi-value[b-6vo0qp7msm] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1E334C;
    white-space: nowrap;
}

.rm-kpi-value.positive[b-6vo0qp7msm] { color: #27ae60; }
.rm-kpi-value.negative[b-6vo0qp7msm] { color: #c0392b; }

/* ── Table wrapper ────────────────────────────────────────────────────── */

.rm-table-wrapper[b-6vo0qp7msm] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #B7D8FF #fff;
}

.rm-table-wrapper[b-6vo0qp7msm]::-webkit-scrollbar { height: 4px; }
.rm-table-wrapper[b-6vo0qp7msm]::-webkit-scrollbar-thumb { background: #B7D8FF; border-radius: 4px; }

/* ── Table ────────────────────────────────────────────────────────────── */

.rm-table[b-6vo0qp7msm] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
    min-width: 980px;
}

.rm-table thead th[b-6vo0qp7msm] {
    background: #F5F8FC;
    color: #718096;
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    border-bottom: 2px solid #DCEAF8;
    white-space: nowrap;
    text-align: right;
}

.rm-table thead th:first-child[b-6vo0qp7msm] {
    text-align: left;
    position: sticky;
    left: 0;
    background: #F5F8FC;
    z-index: 2;
    min-width: 88px;
}

.rm-table tbody td[b-6vo0qp7msm] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    font-size: 0.8125rem;
    color: #334155;
    border-bottom: 1px solid #EDF2F7;
    vertical-align: middle;
    text-align: right;
    white-space: nowrap;
}

.rm-table tbody td:first-child[b-6vo0qp7msm] {
    text-align: left;
    font-weight: 600;
    color: #1E334C;
    position: sticky;
    left: 0;
    background: #fff;
    z-index: 1;
}

/* Prima/ultima colonna sull'asse della card (24px), come header e KPI (selettore
   > * > tr > per vincere sulla regola globale .table:not(.table-sm) di app.css) */
.rm-table > * > tr > th:first-child[b-6vo0qp7msm], .rm-table > * > tr > td:first-child[b-6vo0qp7msm] { padding-left: var(--eco-pad, 24px); }
.rm-table > * > tr > th:last-child[b-6vo0qp7msm],  .rm-table > * > tr > td:last-child[b-6vo0qp7msm]  { padding-right: var(--eco-pad, 24px); }

.rm-table tbody tr:hover td[b-6vo0qp7msm] { background: #F7FAFD; }
.rm-table tbody tr:hover td:first-child[b-6vo0qp7msm] { background: #F7FAFD; }

/* ── Value states ─────────────────────────────────────────────────────── */

.rm-val-neg[b-6vo0qp7msm] {
    color: #c0392b;
    font-weight: 600;
}

.rm-val-pos[b-6vo0qp7msm] {
    color: #27ae60;
    font-weight: 600;
}

/* ── Export button ────────────────────────────────────────────────────── */

.rm-export-btn[b-6vo0qp7msm] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.35rem 0.85rem;
    border-radius: 8px;
    border: 1px solid #CBD5E1;
    background: transparent;
    color: #1E334C;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s, border-color 0.12s;
    white-space: nowrap;
}

.rm-export-btn:hover[b-6vo0qp7msm] { background: #F1F5F9; border-color: #94A3B8; color: #1E334C; }
.rm-export-btn .dropdown-toggle[b-6vo0qp7msm]::after { display: none; }

/* ── Empty state ──────────────────────────────────────────────────────── */

.rm-empty[b-6vo0qp7msm] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
}

.rm-empty .bi[b-6vo0qp7msm] {
    font-size: 2.5rem;
    color: #C8D8E8;
    display: block;
    margin-bottom: 0.75rem;
}

.rm-empty-title[b-6vo0qp7msm] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.rm-empty-text[b-6vo0qp7msm] {
    font-size: 0.875rem;
    color: #8696A7;
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexImmagini.razor.rz.scp.css */
.imm-wrap[b-zeuxh90apn] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.imm-filters[b-zeuxh90apn] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    padding: 14px 16px;
    background: #f8f9fb;
    border: 1px solid #e9ecef;
    border-radius: 10px;
}

.imm-filter[b-zeuxh90apn] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 150px;
}

.imm-filter--grow[b-zeuxh90apn] {
    flex: 1 1 220px;
}

.imm-filter-label[b-zeuxh90apn] {
    font-size: .72rem;
    font-weight: 600;
    color: #1E334C;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.imm-reset[b-zeuxh90apn] {
    margin-bottom: 0;
}

.imm-count[b-zeuxh90apn] {
    font-size: .82rem;
    color: #6c757d;
    font-weight: 500;
}

.imm-empty[b-zeuxh90apn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 48px 16px;
    color: #adb5bd;
    text-align: center;
}

.imm-empty i[b-zeuxh90apn] {
    font-size: 2rem;
}

/* ── Tabella a righe ───────────────────────────────────────────── */
.imm-table[b-zeuxh90apn] {
    display: flex;
    flex-direction: column;
    border: 1px solid #e9ecef;
    border-radius: 10px;
    overflow: hidden;
}

.imm-date-header[b-zeuxh90apn] {
    background: #1E334C;
    color: #fff;
    font-weight: 600;
    font-size: .82rem;
    padding: 8px 16px;
    text-transform: capitalize;
}

.imm-row[b-zeuxh90apn] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 2fr) 160px;
    gap: 16px;
    align-items: center;
    padding: 14px 16px;
    border-top: 1px solid #f1f3f5;
    background: #fff;
}

.imm-row:hover[b-zeuxh90apn] {
    background: #fcfdff;
}

.imm-cell[b-zeuxh90apn] {
    min-width: 0;
}

.imm-meta[b-zeuxh90apn] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 4px;
}

.imm-cantiere-badge[b-zeuxh90apn] {
    display: inline-block;
    background: #e7eef7;
    color: #1E334C;
    font-size: .72rem;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 6px;
    white-space: nowrap;
}

.imm-autore[b-zeuxh90apn] {
    font-size: .78rem;
    color: #6c757d;
}

.imm-desc-text[b-zeuxh90apn] {
    font-size: .88rem;
    color: #2b3a4b;
    line-height: 1.35;
}

.imm-fase-badge[b-zeuxh90apn] {
    display: inline-block;
    background: #eef7ee;
    color: #2f6b3a;
    font-size: .76rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 6px;
}

@media (max-width: 768px) {
    .imm-row[b-zeuxh90apn] {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexPrevisioniCantiere.razor.rz.scp.css */
/* ── WBS (Work Breakdown Structure) ───────────────────────────────────────── */

/* Base visiva = .eco-table (economia.css, stesso stile del Riepilogo mensile):
   qui restano SOLO gli aggiustamenti operativi della WBS. Sfondo bianco. */
.wbs-table[b-d412ka4yxb] {
    font-size: 0.82rem;
    background: #fff;
}
.wbs-table thead th[b-d412ka4yxb] { white-space: nowrap; }
.wbs-table tbody td[b-d412ka4yxb] {
    height: auto;               /* righe compatte: è una tabella di lavoro, non di lettura */
    padding: 0.45rem 0.75rem;
}
.wbs-nome-cell[b-d412ka4yxb] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 160px;
}
.wbs-codice[b-d412ka4yxb] {
    font-size: 0.7rem;
    color: #8696a7;
    font-family: monospace;
    white-space: nowrap;
}
.wbs-nome[b-d412ka4yxb] {
    font-weight: 600;
    color: #1E334C;
}
.wbs-descr[b-d412ka4yxb] {
    font-size: 0.72rem;
    color: #7a8fa3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
}
.wbs-date-cell[b-d412ka4yxb] {
    white-space: nowrap;
    font-size: 0.78rem;
    color: #4a6880;
}
.wbs-date-cell.registrata[b-d412ka4yxb] { color: #3a6b27; }
.wbs-date-cell.mancante[b-d412ka4yxb]   { color: #c0c8d0; }
.wbs-budget-cell[b-d412ka4yxb] {
    text-align: right;
    font-weight: 600;
    color: #1E334C;
    white-space: nowrap;
}
.wbs-azioni-cell[b-d412ka4yxb] {
    white-space: nowrap;
    text-align: right;
}
.wbs-azioni-cell .btn[b-d412ka4yxb] { padding: 0.15rem 0.4rem; font-size: 0.75rem; }
.wbs-edit-card[b-d412ka4yxb] {
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1.5rem;
}
.wbs-edit-card .form-label[b-d412ka4yxb] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.2rem;
}
.wbs-section-label[b-d412ka4yxb] {
    font-size: 0.72rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.5rem;
    margin-top: 0.25rem;
}
.wbs-expand-btn[b-d412ka4yxb] {
    background: none;
    border: none;
    padding: 0 2px;
    color: #8696a7;
    cursor: pointer;
    font-size: 0.7rem;
    line-height: 1;
    width: 18px;
    flex-shrink: 0;
}
.wbs-expand-btn:hover[b-d412ka4yxb] { color: #1E334C; }
.wbs-expand-spacer[b-d412ka4yxb] { width: 18px; flex-shrink: 0; display: inline-block; }
.wbs-date-cell.calcolata[b-d412ka4yxb] { font-style: italic; color: #5B7A9A; }

/* ── Tab interne del contenuto ─────────────────────────────────────────────── */
.wbs-tabs[b-d412ka4yxb] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid #dceaf8;
}
.wbs-tab[b-d412ka4yxb] {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.5rem 0.9rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: #5B7A9A;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.12s, border-color 0.12s;
}
.wbs-tab:hover[b-d412ka4yxb] { color: #1E334C; }
.wbs-tab.active[b-d412ka4yxb] {
    color: #1E334C;
    font-weight: 700;
    border-bottom-color: #1E334C;
}

/* ── Gerarchia: attività principali vs sotto-attività ──────────────────────── */
.wbs-riga-root .wbs-nome[b-d412ka4yxb] { font-weight: 700; font-size: 0.86rem; }
.wbs-riga-root[b-d412ka4yxb] { background: #fff; }   /* sfondo bianco uniforme (decisione utente 2026-08-12) */
.wbs-nome-sub[b-d412ka4yxb] { border-left: 2px solid #e3ecf5; }
.wbs-nome-sub .wbs-nome[b-d412ka4yxb] { font-weight: 500; }
.wbs-figli-badge[b-d412ka4yxb] {
    display: inline-block;
    min-width: 1.35em;
    padding: 0 0.3em;
    margin-left: 0.35rem;
    border-radius: 8px;
    background: #edf3fb;
    color: #5B7A9A;
    font-size: 0.66rem;
    font-weight: 700;
    text-align: center;
}

/* ── Drag & drop ───────────────────────────────────────────────────────────── */
.wbs-grip[b-d412ka4yxb] {
    color: #b6c4d2;
    cursor: grab;
    flex-shrink: 0;
    font-size: 0.8rem;
}
.wbs-riga:hover .wbs-grip[b-d412ka4yxb] { color: #5B7A9A; }

/* Maniglia in modalità "tocca per spostare" (tablet e telefono): tre stati —
   normale (trascina o tocca), attiva (questa riga sta per essere spostata),
   destinazione (tocca per inserire prima di questa riga). */
.wbs-grip--attiva[b-d412ka4yxb] {
    color: #2f6fb5;
    background: #EDF3FB;
    border-radius: 6px;
    padding: 2px 3px;
    cursor: default;
}

.wbs-grip--target[b-d412ka4yxb] {
    color: #23824F;
    background: #E8F6EE;
    border-radius: 6px;
    padding: 2px 3px;
    cursor: pointer;
}

.wbs-grip--target:hover[b-d412ka4yxb] { color: #fff; background: #23824F; }

/* Dita, non mouse: la maniglia e le zone diventano bersagli veri */
@media (hover: none) and (pointer: coarse) {
    .wbs-grip[b-d412ka4yxb] {
        font-size: 1rem;
        padding: 6px 4px;
        margin: -6px 0;
    }
    .wbs-add-btn[b-d412ka4yxb] { min-height: 44px; }
}
.wbs-riga-drag td[b-d412ka4yxb] { background: #EDF3FB; opacity: 0.6; }
.wbs-riga-drop td[b-d412ka4yxb] { box-shadow: inset 0 2px 0 0 #2f6fb5; }
.wbs-riga-drop-zona td[b-d412ka4yxb] { background: #EAF3FC; box-shadow: inset 0 0 0 1px #9cc4e8; }

/* ── Righe di aggiunta contestuale ─────────────────────────────────────────── */
.wbs-add-row td[b-d412ka4yxb] { padding: 0; }
/* Add-button: colori allineati allo standard tratteggiato (.sf-add-btn);
   resta a tutta larghezza perché vive dentro le righe della tabella WBS */
.wbs-add-btn[b-d412ka4yxb] {
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    padding: 0.3rem 0.6rem;
    font-size: 0.76rem;
    color: #5B7A9A;
    cursor: pointer;
    transition: color 0.12s, background 0.12s;
}
.wbs-add-btn:hover[b-d412ka4yxb] { color: #1E334C; background: #F3F7FC; }
.wbs-add-row-root .wbs-add-btn[b-d412ka4yxb] { font-weight: 600; color: #5B7A9A; }
/* Durante il trascinamento la riga di aggiunta dichiara l'effetto del rilascio */
.wbs-drop-hint[b-d412ka4yxb] { display: block; cursor: default; font-style: italic; pointer-events: none; }

/* ── Riga di compilazione rapida ───────────────────────────────────────────── */
.wbs-quick-row td[b-d412ka4yxb] {
    background: #f4f9ff;
    border-top: 2px solid #9cc4e8;
    border-bottom: 2px solid #9cc4e8;
    vertical-align: top;
    padding-top: 0.5rem;
}
.wbs-quick-row .wbs-nome-cell input[b-d412ka4yxb] { min-width: 180px; }
.wbs-quick-row .wbs-azioni-cell .btn[b-d412ka4yxb] { padding: 0.15rem 0.4rem; font-size: 0.75rem; }

/* ── Durata inline in tabella ──────────────────────────────────────────────── */
.wbs-durata-inline[b-d412ka4yxb] {
    display: flex;
    align-items: center;
    gap: 4px;
}
.wbs-durata-input[b-d412ka4yxb] { width: 64px; font-size: 0.75rem; }
.wbs-durata-unita[b-d412ka4yxb] { font-size: 0.72rem; color: #8696a7; }

/* ── Pannello laterale di modifica (pattern rg-panel di Giornaliera) ───────── */
.wbs-panel-back[b-d412ka4yxb] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .40);
    z-index: 1040;
    animation: wbs-fade-b-d412ka4yxb .14s ease-out;
}
@keyframes wbs-fade-b-d412ka4yxb { from { opacity: 0; } to { opacity: 1; } }

.wbs-panel[b-d412ka4yxb] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1041;
    width: min(860px, 100vw);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-left: 1px solid #DDE5EF;
    box-shadow: -18px 0 50px rgba(0, 27, 72, .18);
    animation: wbs-slide-b-d412ka4yxb .2s ease-out;
}
@keyframes wbs-slide-b-d412ka4yxb {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}

.wbs-panel__head[b-d412ka4yxb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #DDE5EF;
    background: #F7FAFD;
    flex-shrink: 0;
}
.wbs-panel__id[b-d412ka4yxb] { min-width: 0; }
.wbs-panel__eyebrow[b-d412ka4yxb] {
    display: block;
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #718096;
}
.wbs-panel__title[b-d412ka4yxb] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    margin-top: 3px;
    font-size: .96rem;
    font-weight: 700;
    color: #1E334C;
}

.wbs-panel__body[b-d412ka4yxb] {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.25rem;
}
/* Dentro il pannello la card perde la cornice: è il pannello a fare da cornice. */
.wbs-panel__body .wbs-edit-card[b-d412ka4yxb] {
    background: #fff;
    border: none;
    border-radius: 0;
    padding: 0;
}

/* ── Responsive: mai comprimere le colonne fino all'illeggibilità ──────────── */
@media (max-width: 992px) {
    .wbs-table[b-d412ka4yxb] { min-width: 1020px; } /* la gerarchia resta leggibile, scorre in orizzontale */
}

/* ── Colonne Vincolo · Durata · Predecessore (split 2026-08-12) ────────────── */
.wbs-vincolo-cell[b-d412ka4yxb] { vertical-align: middle; }
.wbs-durata-cell[b-d412ka4yxb]  { vertical-align: middle; white-space: nowrap; }
.wbs-pred-cell[b-d412ka4yxb]    { vertical-align: middle; }
.wbs-vincolo-tipo[b-d412ka4yxb] { width: 70px; font-size: 0.78rem; }
.wbs-vincolo-col[b-d412ka4yxb]  { font-size: 0.75rem; max-width: 200px; }
.wbs-pred-riga[b-d412ka4yxb]    { display: flex; align-items: center; gap: 4px; }
.wbs-lag-input[b-d412ka4yxb]    { width: 52px; font-size: 0.75rem; }
.wbs-multi-btn[b-d412ka4yxb]    { font-size: 0.72rem; padding: 0.15rem 0.45rem; }
.wbs-multi-elenco[b-d412ka4yxb] { font-size: 0.72rem; color: #52606e; white-space: nowrap; }

/* ── Predecessori ad albero con checkbox nel pannello Dettagli (2026-09-08):
   stesso aspetto di .pv-tree/.pv-node della modale preventivo ── */
.wbs-pred-tree[b-d412ka4yxb] { border: 1px solid #DDE5EF; border-radius: 10px; max-height: 40vh; overflow-y: auto; padding: 6px 0; background: #fff; }
.wbs-pred-node[b-d412ka4yxb] { display: flex; align-items: center; gap: 10px; padding: 4px 12px; min-height: 34px; font-size: .86rem; color: #1E334C; }
.wbs-pred-node:hover[b-d412ka4yxb] { background: #F7FAFD; }
.wbs-pred-node.is-on[b-d412ka4yxb] { background: #EDF3FB; }
.wbs-pred-node.is-off[b-d412ka4yxb] { color: #9AA8B8; }
.wbs-pred-node__pick[b-d412ka4yxb] { display: flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; min-width: 0; flex: 1 1 auto; }
.wbs-pred-node.is-off .wbs-pred-node__pick[b-d412ka4yxb] { cursor: not-allowed; }
.wbs-pred-node__pick input[b-d412ka4yxb] { margin: 0; }
.wbs-pred-node__code[b-d412ka4yxb] { font-variant-numeric: tabular-nums; color: #5B7A9A; min-width: 34px; }
.wbs-pred-node.is-off .wbs-pred-node__code[b-d412ka4yxb] { color: #9AA8B8; }
.wbs-pred-node__name[b-d412ka4yxb] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wbs-pred-node__name.is-parent[b-d412ka4yxb] { font-weight: 700; }
.wbs-pred-node__opts[b-d412ka4yxb] { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; margin-left: auto; }
.wbs-pred-node__tipo[b-d412ka4yxb] { width: 170px; font-size: .78rem; }
.wbs-pred-node__lag[b-d412ka4yxb] { width: 120px; }
.wbs-pred-node__lag input[b-d412ka4yxb] { text-align: right; }
.wbs-pred-testa[b-d412ka4yxb] { display: flex; align-items: center; gap: 6px; font-size: .82rem; color: #52606e; background: #FBF7EC; border: 1px solid #EBDCB3; border-radius: 8px; padding: 4px 10px; margin-bottom: 6px; }
@media (max-width: 700px) {
    .wbs-pred-node[b-d412ka4yxb] { flex-wrap: wrap; }
    .wbs-pred-node__opts[b-d412ka4yxb] { margin-left: 0; width: 100%; padding-left: 26px; }
}

/* ── Cammino critico ───────────────────────────────────────────────────────── */
.wbs-riga-critica > td:first-child[b-d412ka4yxb] { box-shadow: inset 3px 0 0 #d64545; }
.wbs-critica-icona[b-d412ka4yxb] { color: #d64545; font-size: 0.78rem; margin-right: 0.2rem; }

/* ── Info popup (CSS-only, no JS) ──────────────────────────────────────────── */
.wbs-info-icon[b-d412ka4yxb] {
    position: relative;
    cursor: help;
    font-size: 0.8rem;
    color: #8696a7;
    display: inline-block;
    vertical-align: middle;
}
.wbs-info-popup[b-d412ka4yxb] {
    display: none;
    position: absolute;
    top: 1.4rem;
    left: 0;
    z-index: 200;
    background: #fff;
    border: 1px solid #dceaf8;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(30,51,76,.14);
    padding: 0.75rem 1rem;
    min-width: 300px;
    font-size: 0.78rem;
    font-weight: 400;
    color: #1E334C;
    line-height: 1.5;
    white-space: normal;
    text-transform: none;
    letter-spacing: 0;
    pointer-events: none;
}
.wbs-info-icon:hover .wbs-info-popup[b-d412ka4yxb],
.wbs-info-icon:focus .wbs-info-popup[b-d412ka4yxb] { display: block; }
.wbs-info-row[b-d412ka4yxb] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    margin-bottom: 0.45rem;
}
.wbs-info-row:last-child[b-d412ka4yxb] { margin-bottom: 0; }
.wbs-info-badge[b-d412ka4yxb] {
    background: #e8f0fe;
    color: #2d5be3;
    border-radius: 4px;
    padding: 1px 6px;
    font-size: 0.72rem;
    font-weight: 800;
    white-space: nowrap;
    flex-shrink: 0;
    margin-top: 2px;
}

/* ── Previsioni | Tracking cards ──────────────────────────────────────────── */
.wbs-piano-card[b-d412ka4yxb] {
    background: #f7fafd;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    padding: 1rem 1.1rem;
    height: 100%;
}
.wbs-piano-card.wbs-tracking-card[b-d412ka4yxb] {
    background: #f3fbf3;
    border-color: #c6e9c6;
}
.wbs-piano-header[b-d412ka4yxb] {
    font-size: 0.72rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.75rem;
}
.wbs-tracking-card .wbs-piano-header[b-d412ka4yxb] { color: #3a6b27; }

/* ── Liste budget ──────────────────────────────────────────────────────────── */
.wbs-lista-card[b-d412ka4yxb] {
    background: #fff;
    border: 1px solid #e2eaf3;
    border-radius: 8px;
    padding: 0.75rem 0.85rem;
    overflow-x: auto;   /* l'elenco non deve mai uscire dalla card */
}
.wbs-lista-header[b-d412ka4yxb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #1E334C;
}
.wbs-lista-header > span:first-child[b-d412ka4yxb] { flex: 1; }
.wbs-lista-totale[b-d412ka4yxb] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #2d5be3;
    background: #e8f0fe;
    border-radius: 4px;
    padding: 1px 7px;
    white-space: nowrap;
}
.wbs-lista-vuota[b-d412ka4yxb] {
    font-size: 0.75rem;
    color: #b0bec5;
    padding: 0.3rem 0;
}
.wbs-righe-table[b-d412ka4yxb] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.76rem;
}
.wbs-righe-table thead th[b-d412ka4yxb] {
    color: #8696a7;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.2rem 0.25rem;
    border-bottom: 1px solid #e2eaf3;
    white-space: nowrap;
}
.wbs-righe-table tbody tr[b-d412ka4yxb] { border-bottom: 1px solid #f0f4f8; }
.wbs-righe-table td[b-d412ka4yxb] { padding: 0.2rem 0.25rem; vertical-align: middle; }
.wbs-righe-table .form-control[b-d412ka4yxb],
.wbs-righe-table .form-select[b-d412ka4yxb] { font-size: 0.76rem; padding: 0.18rem 0.4rem; }
.wbs-righe-table input[type=number][b-d412ka4yxb] { width: 100px; }   /* importi a 5-6 cifre leggibili */
.wbs-col-tot[b-d412ka4yxb] {
    white-space: nowrap;
    text-align: right;
    font-weight: 600;
    color: #1E334C;
    min-width: 55px;
}
/* .btn-xs ora è globale (app.css, button system). */

/* ── Totale attività ──────────────────────────────────────────────────────── */
.wbs-totale-box[b-d412ka4yxb] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.75rem;
    background: #f0f4f8;
    border-radius: 8px;
    padding: 0.75rem 1rem;
}
.wbs-totale-label[b-d412ka4yxb] {
    font-size: 0.78rem;
    font-weight: 700;
    color: #5B7A9A;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.wbs-totale-val[b-d412ka4yxb] {
    font-size: 1.25rem;
    font-weight: 800;
    color: #1E334C;
}

/* ── Baseline CME (revisione attiva) ─────────────────────────────────────── */
.cme-baseline-card[b-d412ka4yxb] {
    border-left: 4px solid #001B48;
    padding: 1rem 1.1rem;
}
.cme-baseline-head[b-d412ka4yxb] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.8rem;
}
.cme-baseline-title[b-d412ka4yxb] {
    font-weight: 700;
    color: #001B48;
    font-size: 0.95rem;
}
.cme-baseline-rev[b-d412ka4yxb] {
    margin-left: 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #1d8348;
    background: #eafaf1;
    border-radius: 6px;
    padding: 0.1rem 0.5rem;
}
.cme-baseline-hint[b-d412ka4yxb] {
    font-size: 0.72rem;
    color: #8aa0b8;
}
.cme-baseline-stats[b-d412ka4yxb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
}
.cme-baseline-stat[b-d412ka4yxb] {
    display: flex;
    flex-direction: column;
    min-width: 90px;
}
.cme-baseline-stat .lbl[b-d412ka4yxb] {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #60748F;
    font-weight: 600;
}
.cme-baseline-stat .val[b-d412ka4yxb] {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1E334C;
}
.cme-baseline-stat--tot .val[b-d412ka4yxb] {
    color: #001B48;
}
.cme-baseline-stat--delta.neg .val[b-d412ka4yxb] {
    color: #c0392b;
}
.cme-baseline-stat--delta.pos .val[b-d412ka4yxb] {
    color: #1d8348;
}

/* ── Box Subappalti a tutta larghezza (2026-09-08): contratto · lavori · assegnato · contratto · rimanente ── */
.wbs-sub-table .wbs-sub-col-ctr[b-d412ka4yxb] { min-width: 260px; }
.wbs-sub-table .wbs-sub-importo[b-d412ka4yxb] { width: 120px; display: inline-block; }
.wbs-sub-table .wbs-sub-ro[b-d412ka4yxb] { white-space: nowrap; font-weight: 600; color: #1E334C; min-width: 90px; }
.wbs-sub-table .wbs-sub-neg[b-d412ka4yxb] { color: #9e2d1e; }
.wbs-sub-table tr.wbs-sub-over td[b-d412ka4yxb] { background: #FFF6F4; }
.wbs-sub-avviso[b-d412ka4yxb] { margin-top: 0.4rem; font-size: 0.74rem; color: #9e2d1e; background: #FFF6F4; border: 1px solid #F1C9C1; border-radius: 6px; padding: 0.3rem 0.6rem; }
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexRichiesteOfferta.razor.rz.scp.css */
/* Richieste d'offerta (2026-09-25). Token di spaziatura da economia.css (:root). */

.rdo-riga[b-wx3t1kgaep] { cursor: pointer; }

.rdo-testa[b-wx3t1kgaep] { margin-bottom: var(--eco-block, 24px); }
.rdo-testa__riga[b-wx3t1kgaep] { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 8px; }
.rdo-titolo[b-wx3t1kgaep] { font-size: 20px; font-weight: 700; color: #1E334C; margin: 0; }
.rdo-sub[b-wx3t1kgaep] { font-size: 13px; color: #6c757d; margin-top: 2px; }
.rdo-testa__azioni[b-wx3t1kgaep] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rdo-linea[b-wx3t1kgaep] {
    background: #fff;
    border: 1px solid #E3E8EF;
    border-radius: 12px;
    padding: 16px 12px 12px;
    margin-top: 12px;
}

.rdo-corpo[b-wx3t1kgaep] { border: 0; padding: 0; margin: 0; min-width: 0; }

.rdo-card[b-wx3t1kgaep] { padding: var(--eco-pad, 24px); margin-bottom: var(--eco-block, 24px); }
.rdo-card__titolo[b-wx3t1kgaep] { font-weight: 600; color: #1E334C; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rdo-n[b-wx3t1kgaep] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: 50%;
    background: #EDF3FB; color: #1d4f91; font-size: 12px; font-weight: 700;
}

.rdo-griglia[b-wx3t1kgaep] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; }
.rdo-campo--largo[b-wx3t1kgaep] { grid-column: 1 / -1; }
.rdo-campo .form-label[b-wx3t1kgaep] { font-size: 12px; font-weight: 600; color: #5B7A9A; margin-bottom: 4px; }

.rdo-voci .rdo-cod[b-wx3t1kgaep] { width: 90px; }
.rdo-voci .rdo-um[b-wx3t1kgaep] { width: 70px; }
.rdo-voci .rdo-qta[b-wx3t1kgaep] { width: 110px; }
.rdo-cerca[b-wx3t1kgaep] { max-width: 420px; }

.rdo-computo[b-wx3t1kgaep] { border: 1px solid #E3E8EF; border-radius: 10px; background: #F7FAFD; padding: 12px; margin-bottom: 14px; }
.rdo-computo__elenco[b-wx3t1kgaep] { max-height: 420px; overflow: auto; }
.rdo-computo__gruppo[b-wx3t1kgaep] { font-weight: 600; color: #1E334C; padding: 8px 4px 4px; }
.rdo-computo__voce[b-wx3t1kgaep] { display: flex; align-items: center; gap: 10px; padding: 6px 4px 6px 24px; font-size: 13px; cursor: pointer; }
.rdo-computo__voce:hover[b-wx3t1kgaep] { background: #fff; }
.rdo-computo__desc[b-wx3t1kgaep] { flex: 1; min-width: 0; }

.rdo-allegati__gruppo[b-wx3t1kgaep] { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #6c757d; margin: 12px 0 4px; }
.rdo-allegati__gruppo:first-child[b-wx3t1kgaep] { margin-top: 0; }
.rdo-allegati__voce[b-wx3t1kgaep] { display: flex; align-items: center; gap: 10px; padding: 6px 4px; min-height: 42px; border-top: 1px solid #f1f3f5; cursor: pointer; }

.rdo-pannello > td[b-wx3t1kgaep] { background: #F7FAFD; padding: 14px 16px 16px; }

@media (max-width: 768px) {
    .rdo-griglia[b-wx3t1kgaep] { grid-template-columns: 1fr; }
    .rdo-card[b-wx3t1kgaep] { padding: 16px; }
}

/* ── Confronto delle offerte (blocco 2) ────────────────────────────────────── */
.rdo-lav[b-wx3t1kgaep] { margin-bottom: 20px; }
.rdo-lav__titolo[b-wx3t1kgaep] { font-weight: 600; color: #1E334C; margin: 4px 0 8px; }
.rdo-comp .rdo-comp__voce[b-wx3t1kgaep] { min-width: 260px; }
.rdo-comp .rdo-comp__off[b-wx3t1kgaep] { min-width: 190px; white-space: nowrap; }
.rdo-cella[b-wx3t1kgaep] { vertical-align: top; }
.rdo-cella__input[b-wx3t1kgaep] { display: flex; gap: 4px; }
.rdo-cella__input .form-control:first-child[b-wx3t1kgaep] { min-width: 90px; }
.rdo-cella__um[b-wx3t1kgaep] { width: 56px; flex: 0 0 56px; }
.rdo-cella__importo[b-wx3t1kgaep] { font-size: 13px; margin-top: 4px; text-align: right; }
.rdo-cella__fattore[b-wx3t1kgaep] { margin-top: 4px; display: flex; flex-direction: column; gap: 4px; }
.rdo-cella--migliore[b-wx3t1kgaep] { background: #E8F6EE; }
.rdo-cella--mancante[b-wx3t1kgaep] { background: #FFFBF0; }
.rdo-cella--umdiversa[b-wx3t1kgaep] { background: #FFF4E0; }
.rdo-comp__totale td[b-wx3t1kgaep] { background: #F7F9FC; font-weight: 600; vertical-align: top; }
.rdo-comp__totale .rdo-cella--migliore[b-wx3t1kgaep] { background: #E8F6EE; }
.rdo-offerenti[b-wx3t1kgaep] { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-top: 8px; }
.rdo-offerente[b-wx3t1kgaep] { border: 1px solid #E3E8EF; border-radius: 10px; padding: 12px; background: #fff; }
.rdo-aggiudicati[b-wx3t1kgaep] { border-top: 1px solid #E3E8EF; margin-top: 16px; padding-top: 12px; }

/* ── AI (blocco 5): proposte da confermare ─────────────────────────────────── */
.rdo-proposta[b-wx3t1kgaep] { border: 1px solid #C9DAF0; background: #F4F8FD; border-radius: 10px; padding: 10px 12px; }
.rdo-proposta__testo[b-wx3t1kgaep] { white-space: pre-wrap; font-size: 13px; }
.rdo-dubbie[b-wx3t1kgaep] { border-top: 1px dashed #E3E8EF; padding-top: 6px; }
.rdo-natura > summary[b-wx3t1kgaep] { cursor: pointer; }

/* ── Link, email, domande (blocco 4) ───────────────────────────────────────── */
.rdo-registro[b-wx3t1kgaep] { padding-left: 18px; }
.rdo-domanda[b-wx3t1kgaep] { border-top: 1px solid #f1f3f5; padding: 10px 0; }
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexSubappaltatoriSicurezza.razor.rz.scp.css */
/* Subappaltatori — Sicurezza commessa: stile IDENTICO alla tab Documenti (_IndexDocumentiSicurezza) */

/* ── Section header ──────────────────────────────────────────────────── */
/* Standard di spaziatura (2026-09-04): titolo → 4px → sottotitolo → 24px → blocco successivo */
.pos-section-header[b-hwkebjca6r] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: var(--eco-block, 24px);
}

.pos-section-title[b-hwkebjca6r] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1E334C;
    margin-bottom: 4px;
}

.pos-section-sub[b-hwkebjca6r] {
    font-size: 0.8rem;
    color: #5B7A9A;
}

/* ── Card ────────────────────────────────────────────────────────────── */
.pos-card[b-hwkebjca6r] {
    background: white;
    border: 1px solid #dceaf8;
    border-radius: 10px;
    overflow: hidden;
}

/* ── Table ───────────────────────────────────────────────────────────── */
.pos-table[b-hwkebjca6r] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    margin: 0;
}

.pos-table thead th[b-hwkebjca6r] {
    background: #f7fafd;
    color: #5B7A9A;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-bottom: 2px solid #dceaf8;
    padding: var(--eco-head-y, 12px) var(--eco-cell-x, 16px);
    height: 48px;
    vertical-align: middle;
    white-space: nowrap;
    border-top: none;
}

.pos-table tbody td[b-hwkebjca6r] {
    padding: var(--eco-cell-y, 14px) var(--eco-cell-x, 16px);
    height: var(--eco-row-h, 54px);
    vertical-align: middle;
    color: #334155;
    border-bottom: 1px solid #f0f5fb;
}

/* Prima/ultima colonna: mai a filo del bordo della card */
.pos-table th:first-child[b-hwkebjca6r], .pos-table td:first-child[b-hwkebjca6r] { padding-left: var(--eco-cell-edge, 20px); }
.pos-table th:last-child[b-hwkebjca6r],  .pos-table td:last-child[b-hwkebjca6r]  { padding-right: var(--eco-cell-edge, 20px); }

.pos-table tbody tr:last-child td[b-hwkebjca6r] { border-bottom: none; }
.pos-table tbody tr:hover td[b-hwkebjca6r]      { background: #fafcff; }

/* Titolo/tipo documento (1ª colonna): su una sola riga quando possibile */
.pos-table td:first-child[b-hwkebjca6r] {
    white-space: nowrap;
    font-weight: 600;
    color: #1E334C;
}

/* ── Cell content ────────────────────────────────────────────────────── */
.pos-rev[b-hwkebjca6r] {
    font-weight: 600;
    color: #1E334C;
}

.pos-data[b-hwkebjca6r] {
    white-space: nowrap;
    color: #5B7A9A;
    font-size: 0.82rem;
}

.pos-sub[b-hwkebjca6r] {
    color: #5B7A9A;
    font-size: 0.82rem;
}

/* ── Icon buttons ────────────────────────────────────────────────────── */
/* Geometria canonica dell'icon button: token in app.css (button system) */
.pos-icon-btn[b-hwkebjca6r] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icobtn-size, 36px);
    height: var(--icobtn-size, 36px);
    border-radius: var(--icobtn-radius, 8px);
    border: none;
    background: transparent;
    color: var(--icobtn-ink, #5B7A9A);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    padding: 0;
    transition: background 0.12s, color 0.12s;
    flex-shrink: 0;
}

.pos-icon-btn:hover[b-hwkebjca6r]        { background: var(--icobtn-hover-bg, #EDF3FB); color: var(--icobtn-hover-ink, #001B48); }
.pos-icon-btn-danger:hover[b-hwkebjca6r] { background: var(--icobtn-danger-bg, #FBEBED); color: var(--btn-danger-hover, #A93226); }

.pos-actions[b-hwkebjca6r] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    white-space: nowrap;
}

/* ── Empty state ─────────────────────────────────────────────────────── */
.pos-empty[b-hwkebjca6r] {
    text-align: center;
    padding: 40px var(--eco-pad, 24px);
    color: #5B7A9A;
}

.pos-empty .bi[b-hwkebjca6r] {
    font-size: 2.5rem;
    display: block;
    opacity: 0.35;
    margin-bottom: 0.75rem;
}

.pos-empty-title[b-hwkebjca6r] {
    font-size: 1rem;
    font-weight: 600;
    color: #1E334C;
    margin-bottom: 0.3rem;
}

.pos-empty-text[b-hwkebjca6r] {
    font-size: 0.875rem;
    max-width: 360px;
    margin: 0 auto;
}

/* ── Documenti storici: azioni in riga + modifica in riga ─────────────── */

.sub-doc-actions[b-hwkebjca6r] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    white-space: nowrap;
}

/* Riga di modifica (colspan su tutta la tabella): i bordi coincidono con quelli
   della prima/ultima colonna, così i campi stanno sull'asse delle celle sopra */
.sub-doc-edit > td[b-hwkebjca6r] {
    background: #F7FAFD;
    padding: var(--eco-cell-y, 14px) var(--eco-cell-edge, 20px) 16px;
}

.sub-doc-edit__grid[b-hwkebjca6r] {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 0.6fr;
    gap: 0.75rem;
}

.sub-doc-edit__file[b-hwkebjca6r] { grid-column: 1 / -1; }

.sub-doc-edit .form-label[b-hwkebjca6r] {
    font-size: 0.74rem;
    font-weight: 600;
    color: #5B7A9A;
    margin-bottom: 0.2rem;
}

@media (max-width: 768px) {
    .sub-doc-edit__grid[b-hwkebjca6r] { grid-template-columns: 1fr 1fr; }
}

/* Intestazione di gruppo per persona nella tabella dei documenti del cantiere (2026-09-24). */
.sub-doc-gruppo td[b-hwkebjca6r] {
    background: #F7F9FC;
    font-weight: 600;
    color: #1E334C;
    padding-top: 10px;
    padding-bottom: 10px;
}

/* Barra delle operazioni massive sui documenti del cantiere (2026-09-24). */
.doc-massive-cant[b-hwkebjca6r] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 8px;
}

/* ── Riga di un file sotto la voce della checklist (2026-09-25) ───────────────
   La disegna questa pagina (RigaDocumento di ChecklistSubappaltatore): il ramo dell'albero è
   nel CSS del componente, la riga qui. Azioni = icone eco-act 36×36 come in ogni elenco. */
.sic-file[b-hwkebjca6r] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 8px;
    min-height: 48px;
}
.sic-file:hover[b-hwkebjca6r] { background: #F7F9FC; }
.sic-file--attivo[b-hwkebjca6r] { background: #EDF3FB; }
.sic-file__sel[b-hwkebjca6r] { flex-shrink: 0; margin: 0; }
.sic-file__ico[b-hwkebjca6r] { color: #C0392B; font-size: 18px; flex-shrink: 0; }
.sic-file__nome[b-hwkebjca6r] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sic-file__nome .eco-primary[b-hwkebjca6r] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sic-file__scad[b-hwkebjca6r] { flex-shrink: 0; white-space: nowrap; }
.sic-file__dove[b-hwkebjca6r] {
    flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px;
    font-size: 12px; font-weight: 600; border-radius: 999px; padding: 2px 10px; white-space: nowrap;
}
.sic-file__dove--fornitore[b-hwkebjca6r] { background: #EDF3FB; color: #1E334C; }
.sic-file__dove--cantiere[b-hwkebjca6r]  { background: #FBF0D9; color: #7a5a00; }
.sic-file__modifica[b-hwkebjca6r] {
    background: #F7FAFD;
    border: 1px solid #E3E8EF;
    border-radius: 10px;
    padding: 14px 16px 16px;
    margin: 4px 0 8px;
}

@media (max-width: 768px) {
    .sic-file[b-hwkebjca6r] { flex-wrap: wrap; }
    .sic-file__nome[b-hwkebjca6r] { flex-basis: calc(100% - 60px); }
    .sic-file__scad[b-hwkebjca6r], .sic-file__dove[b-hwkebjca6r] { margin-left: 28px; }
    .sic-file .sub-doc-actions[b-hwkebjca6r] { margin-left: auto; }
}
/* _content/GestioneCommessa.Shared/Pages/Worksites/Worksite/_IndexSubappalti.razor.rz.scp.css */
/* Subappalti della commessa: elenco dei subappaltatori e scheda a tab (2026-09-24).
   Spaziature dai token di economia.css (--eco-pad, --eco-block). */

.sa-riga[b-qndr12jzbz] { cursor: pointer; }
.sa-riga:hover td[b-qndr12jzbz], .sa-riga--aperta td[b-qndr12jzbz] { background: #f7f9fc; }
.sa-lav[b-qndr12jzbz] { color: #3a4a5e; max-width: 260px; }

/* ── Testata del soggetto ── */
.sa-testa[b-qndr12jzbz] { margin-bottom: var(--eco-block, 24px); }
.sa-indietro[b-qndr12jzbz] { font-size: 13px; text-decoration: none; margin-bottom: 8px; }
.sa-testa__riga[b-qndr12jzbz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.sa-nome[b-qndr12jzbz] { font-size: 22px; font-weight: 700; margin: 0; color: #1e334c; }
.sa-sub[b-qndr12jzbz] { font-size: 13px; color: #5b6b7f; margin-top: 2px; }
.sa-testa__azioni[b-qndr12jzbz] { display: flex; gap: 8px; flex-wrap: wrap; }

.sa-tabs[b-qndr12jzbz] {
    display: flex;
    gap: 2px;
    overflow-x: auto;
    border-bottom: 1px solid #dde3ea;
    scrollbar-width: thin;
}
.sa-tab[b-qndr12jzbz] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 500;
    color: #5b6b7f;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
}
.sa-tab:hover[b-qndr12jzbz] { color: #001b48; }
.sa-tab:focus-visible[b-qndr12jzbz] { outline: 2px solid #001b48; }
.sa-tab.active[b-qndr12jzbz] { color: #001b48; font-weight: 600; border-bottom-color: #001b48; }
.sa-tab__n[b-qndr12jzbz] {
    font-size: 11px;
    font-weight: 700;
    padding: 0 7px;
    border-radius: 999px;
    background: #fff4e0;
    color: #7a4f00;
}

/* ── Panoramica ── */
.sa-manca[b-qndr12jzbz] {
    background: #fff4e0;
    border: 1px solid #f2d29b;
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: var(--eco-block, 24px);
}
.sa-manca--ok[b-qndr12jzbz] { background: #e8f5ee; border-color: #b9dfc8; }
.sa-manca__titolo[b-qndr12jzbz] { font-weight: 600; color: #7a4f00; }
.sa-manca--ok .sa-manca__titolo[b-qndr12jzbz] { color: #1b6e43; }
.sa-manca__testo[b-qndr12jzbz] { font-size: 14px; color: #3a4a5e; margin-top: 4px; }

.sa-griglia[b-qndr12jzbz] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--eco-block, 24px);
}
.sa-card[b-qndr12jzbz] { padding: var(--eco-pad, 24px); }
.sa-card__titolo[b-qndr12jzbz] { font-size: 13px; font-weight: 600; color: #5b6b7f; margin-bottom: 12px; }
.sa-dl[b-qndr12jzbz] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px 16px;
    margin: 0;
    font-size: 14px;
}
.sa-dl dt[b-qndr12jzbz] { font-weight: 400; color: #3a4a5e; }
.sa-dl dd[b-qndr12jzbz] { margin: 0; font-weight: 600; text-align: right; }

.sa-barra[b-qndr12jzbz] { height: 8px; background: #eef1f5; border-radius: 999px; overflow: hidden; margin-top: 12px; }
.sa-barra > div[b-qndr12jzbz] { height: 100%; background: #1d4f91; }
.sa-barra--riga[b-qndr12jzbz] { display: inline-block; width: 90px; margin: 0 6px 0 0; vertical-align: middle; }

/* ── Autorizzazione e fascicolo ── */
.sa-contratto-titolo[b-qndr12jzbz] { font-weight: 600; margin: var(--eco-block, 24px) 0 12px; color: #1e334c; }
.sa-fascicolo[b-qndr12jzbz] {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
    gap: var(--eco-block, 24px);
    align-items: start;
    margin-bottom: var(--eco-block, 24px);
}
@media (max-width: 991px) {
    .sa-fascicolo[b-qndr12jzbz] { grid-template-columns: 1fr; }
}
.sa-form[b-qndr12jzbz] { display: flex; flex-direction: column; gap: 4px; }
.sa-form .form-label[b-qndr12jzbz] { font-size: 12px; margin: 8px 0 2px; color: #5b6b7f; }
.sa-iter-info[b-qndr12jzbz] { font-size: 13px; margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.sa-iter-avviso[b-qndr12jzbz] {
    background: #fff4e0;
    border: 1px solid #f2d29b;
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.sa-fascicolo__testa[b-qndr12jzbz] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid #dde3ea;
    flex-wrap: wrap;
}
.sa-fase td[b-qndr12jzbz] {
    background: #f7f9fc;
    font-size: 12px;
    font-weight: 600;
    color: #5b6b7f;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.sa-voce--manca td[b-qndr12jzbz] { background: #fffbf2; }
.sa-carica td[b-qndr12jzbz] { background: #f7f9fc; }
.sa-carica__griglia[b-qndr12jzbz] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}
.sa-carica__griglia .form-label[b-qndr12jzbz] { font-size: 12px; margin-bottom: 2px; color: #5b6b7f; }
.sa-carica__file[b-qndr12jzbz] { grid-column: span 2; }
@media (max-width: 575px) {
    .sa-carica__file[b-qndr12jzbz] { grid-column: auto; }
}

/* ── Economia: dettaglio di una fase ── */
.sa-dettaglio-fase > td[b-qndr12jzbz] { background: #fbfcfe; padding: 16px; }
.sa-dettaglio-fase__griglia[b-qndr12jzbz] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--eco-block, 24px);
}
.sa-voce-fase[b-qndr12jzbz] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    border-bottom: 1px solid #eef1f5;
    font-size: 13px;
}
.sa-voce-fase:last-child[b-qndr12jzbz] { border-bottom: none; }
.sa-versione td[b-qndr12jzbz] { background: #fbfcfe; font-size: 13px; color: #5b6b7f; }
.sa-versione__nome[b-qndr12jzbz] { padding-left: 18px; }

/* ── Fascicolo: una sezione per fase (2026-09-24) ── */
.sa-fasi[b-qndr12jzbz] { display: flex; flex-direction: column; gap: 16px; }
.sa-fasi > .sa-fascicolo__testa[b-qndr12jzbz] { border: 1px solid #dde3ea; border-radius: 12px; background: #fff; }
.sa-fase-card[b-qndr12jzbz] { border-left: 4px solid #dde3ea; margin-bottom: 0; }
.sa-fase-card--ok[b-qndr12jzbz] { border-left-color: #1b6e43; }
.sa-fase-card--manca[b-qndr12jzbz] { border-left-color: #d9a441; }
.sa-fase-card__testa[b-qndr12jzbz] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid #eef1f5;
}
.sa-fase-card__n[b-qndr12jzbz] {
    flex: 0 0 26px;
    height: 26px;
    border-radius: 999px;
    background: #001b48;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}
.sa-fase-card--ok .sa-fase-card__n[b-qndr12jzbz] { background: #1b6e43; }
.sa-fase-card__titolo[b-qndr12jzbz] { font-weight: 600; color: #1e334c; display: flex; flex-wrap: wrap; align-items: center; row-gap: 4px; }
.sa-fase-card__desc[b-qndr12jzbz] { font-size: 12px; color: #5b6b7f; margin-top: 2px; }

/* ── Iter dell'autorizzazione a passi ── */
.sa-passi[b-qndr12jzbz] { list-style: none; margin: 0 0 12px; padding: 0; }
.sa-passo[b-qndr12jzbz] { display: flex; gap: 12px; position: relative; padding-bottom: 16px; }
.sa-passo:not(:last-child)[b-qndr12jzbz]::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 28px;
    bottom: 2px;
    width: 2px;
    background: #dde3ea;
}
.sa-passo__n[b-qndr12jzbz] {
    flex: 0 0 26px;
    height: 26px;
    border-radius: 999px;
    border: 2px solid #c9d2dd;
    background: #fff;
    color: #5b6b7f;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}
.sa-passo--attivo .sa-passo__n[b-qndr12jzbz] { border-color: #1d4f91; color: #1d4f91; }
.sa-passo--fatto .sa-passo__n[b-qndr12jzbz] { background: #1b6e43; border-color: #1b6e43; color: #fff; }
.sa-passo--avviso .sa-passo__n[b-qndr12jzbz] { background: #fff4e0; border-color: #d9a441; color: #7a4f00; }
.sa-passo--negato .sa-passo__n[b-qndr12jzbz] { background: #a4262c; border-color: #a4262c; color: #fff; }
.sa-passo__corpo[b-qndr12jzbz] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.sa-passo__titolo[b-qndr12jzbz] { font-weight: 600; font-size: 14px; color: #1e334c; }
.sa-passo__desc[b-qndr12jzbz] { font-size: 12px; color: #5b6b7f; }

/* ── Avvio del procedimento: istanza e ricevute PEC ── */
.sa-allegati[b-qndr12jzbz] { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.sa-allegato[b-qndr12jzbz] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border: 1px solid #eef1f5;
    border-radius: 8px;
    background: #fbfcfe;
}
.sa-allegato__ruolo[b-qndr12jzbz] { font-size: 12px; font-weight: 600; color: #1e334c; }
.sa-allegato__nome[b-qndr12jzbz] { font-size: 12px; color: #5b6b7f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sa-allegato-modifica[b-qndr12jzbz] { display: flex; flex-direction: column; gap: 6px; padding: 8px; background: #f7f9fc; border-radius: 8px; }

/* ── Sezione Affidamenti (2026-09-25): linea di fase in testata, filtro per natura, mini-pallini ── */
.sa-linea[b-qndr12jzbz] {
    background: #fff;
    border: 1px solid #E3E8EF;
    border-radius: 12px;
    padding: 16px 12px 12px;
    margin: 12px 0 4px;
}
.sa-nature[b-qndr12jzbz] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.sa-fasi-col[b-qndr12jzbz] { white-space: nowrap; }
.sa-viste[b-qndr12jzbz] { display: flex; gap: 4px; border-bottom: 1px solid #E3E8EF; margin-bottom: 16px; flex-wrap: wrap; }
/* _content/GestioneCommessa.Shared/Pages/_Dash2Trend.razor.rz.scp.css */
.d2t-pie[b-p4za86nngn] {
    display: flex;
    gap: 28px;
    align-items: center;
    flex-wrap: wrap;
}

.d2t-pie__chart[b-p4za86nngn] {
    flex: 0 0 300px;
    width: 300px;
    max-width: 100%;
    height: 300px;
    position: relative;
}

.d2t-pie__legend[b-p4za86nngn] {
    flex: 1 1 260px;
    min-width: 240px;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.d2t-pie__legend li[b-p4za86nngn] {
    display: grid;
    grid-template-columns: 14px 1fr auto auto;
    gap: 10px;
    align-items: center;
    font-size: 13px;
}

.d2t-sw[b-p4za86nngn] {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    display: inline-block;
    flex: 0 0 auto;
}

.d2t-pie__name[b-p4za86nngn] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #33415C;
}

.d2t-pie__val[b-p4za86nngn] {
    font-weight: 600;
    color: #1E334C;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.d2t-pie__pct[b-p4za86nngn] {
    color: #9AA4B8;
    font-size: 11px;
    min-width: 34px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
