:root {
  --site-header-height: 78px;
  --gold: #AA8453;
  --gold-dark: #8e6b40;
  --ink: #0F1D21;
  --ink-deep: #0C1315;
  --cream: #F7EDDF;
  --sand: #F2DDC5;
  --sage: #7F9A92;
  --white: #fffdf9;
  --line: rgba(15, 29, 33, .13);
  --shadow: 0 18px 50px rgba(12, 19, 21, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: "Barlow", sans-serif; font-size: 16px; line-height: 1.45; }
a { color: inherit; }
h1, h2, h3 { margin: 0; font-family: "Playfair Display", serif; font-weight: 600; }
h1 { font-size: clamp(2.15rem, 5vw, 3.7rem); line-height: 1.05; }
h2 { font-size: clamp(1.55rem, 3vw, 2.15rem); }
h3 { font-size: 1.18rem; }
code { border: 1px solid var(--line); border-radius: 5px; background: rgba(255,255,255,.45); padding: .15rem .35rem; font-size: .82em; }

.site-header { position: static; display: flex; min-height: var(--site-header-height); align-items: center; justify-content: space-between; padding: 0 clamp(1.2rem, 4vw, 4.5rem); background: rgba(12, 19, 21, .97); color: var(--white); box-shadow: 0 8px 30px rgba(12, 19, 21, .16); }
.brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; letter-spacing: .13em; }
.brand-mark { display: grid; width: 39px; height: 39px; place-items: center; border: 1px solid var(--gold); color: var(--gold); font-family: "Playfair Display", serif; font-size: 1.25rem; }
.brand strong { display: block; font-size: .9rem; }
.brand small { display: block; margin-top: .15rem; color: rgba(255,255,255,.65); font-size: .68rem; letter-spacing: .08em; }
.site-header nav { display: flex; align-items: center; gap: 1.35rem; }
.site-header nav > a { text-decoration: none; font-size: .9rem; }
.site-header form { margin: 0; }
.menu-toggle { display: none; border: 0; background: none; color: white; }
.button-link { border: 0; background: none; color: rgba(255,255,255,.72); cursor: pointer; font: inherit; }

.page-shell { width: min(1760px, 100%); min-width: 0; min-height: calc(100vh - 132px); margin: 0 auto; padding: clamp(2rem, 4vw, 4.2rem) clamp(1rem, 3vw, 3rem); }
.portfolio-workspace, #table-results { width: 100%; min-width: 0; max-width: 100%; }
.site-footer { padding: 1.3rem; background: var(--ink-deep); color: rgba(255,255,255,.55); text-align: center; font-size: .78rem; letter-spacing: .08em; }
.eyebrow, .section-kicker { margin: 0 0 .65rem; color: var(--gold-dark); font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.lead { max-width: 650px; margin: .75rem 0 0; color: rgba(15, 29, 33, .68); font-size: 1.03rem; }
.hero-row, .detail-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }

.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--gold); border-radius: 2px; background: var(--gold); color: white; cursor: pointer; padding: .75rem 1.15rem; font-family: inherit; font-size: .88rem; font-weight: 600; letter-spacing: .04em; text-decoration: none; transition: .18s ease; }
.button:hover { border-color: var(--gold-dark); background: var(--gold-dark); transform: translateY(-1px); }
.button-small { min-height: 36px; padding: .48rem .8rem; }
.button-wide { width: 100%; margin-top: .4rem; }
.button-outline { background: transparent; color: var(--gold-dark); }
.site-header .button-outline { color: white; }

.filter-card, .table-card, .detail-card, .login-card, .raw-details { border: 1px solid var(--line); background: rgba(255,253,249,.88); box-shadow: var(--shadow); }
.filter-card { position: relative; z-index: 2; margin-bottom: 1.2rem; padding: 1rem; }
.filters { display: grid; grid-template-columns: repeat(5, minmax(145px, 1fr)); gap: .8rem; align-items: end; }
.filters > .search-field { grid-column: 1 / -1; }
.filters > label:not(.search-field) > span, .advanced-filter-grid > label > span, .stack-form label, .form-grid label { display: grid; gap: .38rem; color: rgba(15,29,33,.72); font-size: .78rem; font-weight: 600; letter-spacing: .02em; }
input, select, textarea { width: 100%; border: 1px solid rgba(15,29,33,.18); border-radius: 2px; outline: none; background: var(--white); color: var(--ink); padding: .71rem .76rem; font: inherit; transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(170,132,83,.12); }
input[readonly] { background: rgba(242,221,197,.35); color: rgba(15,29,33,.63); }
textarea { resize: vertical; }
label small { color: rgba(15,29,33,.5); font-weight: 400; }
.scope-switch { display: inline-flex; grid-column: 1 / -1; width: auto; max-width: 100%; flex-wrap: wrap; padding: 3px; border: 1px solid var(--line); background: var(--cream); }
.scope-switch label { position: relative; cursor: pointer; }
.scope-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.scope-switch span { display: block; padding: .48rem .65rem; text-align: center; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.scope-switch input:checked + span { background: var(--ink); color: white; box-shadow: 0 4px 12px rgba(12,19,21,.13); }
.advanced-filter-toolbar { position: relative; grid-column: 1 / -1; min-width: 0; border-top: 1px solid var(--line); padding-top: .8rem; }
.advanced-filters { width: 100%; min-width: 0; }
.advanced-filters > summary { display: inline-flex; min-height: 34px; align-items: center; gap: .35rem; max-width: calc(100% - 125px); color: var(--gold-dark); cursor: pointer; font-size: .82rem; font-weight: 600; list-style: none; }
.advanced-filters > summary::-webkit-details-marker { display: none; }
.advanced-filter-icon { width: .85rem; color: var(--gold); font-size: 1rem; text-align: center; }
.advanced-filter-count { color: var(--ink); }
.advanced-filter-grid { display: grid; grid-template-columns: repeat(5, minmax(145px, 1fr)); gap: .8rem; align-items: end; padding-top: .8rem; }
.clear-advanced-filters { position: absolute; top: .55rem; right: 0; }
.clear-advanced-filters:disabled { opacity: .4; cursor: default; }
.clear-advanced-filters:disabled:hover { transform: none; border-color: var(--gold); background: var(--gold); }
.htmx-indicator { position: absolute; top: 1rem; right: 1rem; color: var(--gold-dark); font-size: .76rem; opacity: 0; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { opacity: 1; }
.range-filter { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; min-width: 0; margin: 0; border: 0; padding: 0; }
.range-filter legend { grid-column: 1 / -1; margin-bottom: .38rem; color: rgba(15,29,33,.72); font-size: .78rem; font-weight: 600; }
.column-picker { margin-top: .9rem; border-top: 1px solid var(--line); padding-top: .8rem; }
.column-picker summary { display: inline-flex; align-items: center; gap: .35rem; min-height: 34px; list-style: none; cursor: pointer; color: var(--gold-dark); font-size: .82rem; font-weight: 600; }
.column-picker summary::-webkit-details-marker { display: none; }
.column-picker summary::before { content: "▸"; width: .85rem; color: var(--gold); font-size: 1rem; text-align: center; }
.column-picker[open] > summary::before { content: "▾"; }
.column-picker > div { display: flex; flex-wrap: wrap; gap: .45rem 1rem; padding-top: .7rem; }
.column-picker label { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; }
.column-picker input { width: auto; }

.table-card { width: max-content; min-width: 100%; }
.table-summary { padding: .9rem 1rem; border-bottom: 1px solid var(--line); color: rgba(15,29,33,.62); font-size: .86rem; }
.table-summary strong { color: var(--ink); font-size: 1.2rem; }
.table-summary span { margin-left: .25rem; }
.table-summary .warning { float: right; color: #8b4a33; }
.master-table-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.master-filter-tools { display: flex; align-items: center; gap: .75rem; }
.master-filter-tools .warning { float: none; }
.master-filter-tools .button:disabled { border-color: rgba(15,29,33,.18); background: rgba(15,29,33,.08); color: rgba(15,29,33,.4); cursor: default; transform: none; }
.table-scroll { width: max-content; min-width: 100%; }
table { width: 100%; min-width: 1400px; border-collapse: separate; border-spacing: 0; background: var(--white); font-size: .82rem; }
thead th { position: sticky; z-index: 15; top: 0; background: var(--ink); box-shadow: 0 1px 0 var(--ink); color: rgba(255,255,255,.72); padding: .85rem .75rem; text-align: left; font-size: .68rem; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; }
.master-table { width: max-content; min-width: 3900px; }
.master-filter-row th { position: static; background: #f3ecdf; padding: .42rem .35rem; box-shadow: 0 1px 0 var(--line); }
.master-filter-row input, .master-filter-row select, .onboarding-filter-row input { width: 100%; min-width: 0; padding: .42rem .45rem; border-color: rgba(15,29,33,.16); background: rgba(255,255,255,.82); font-size: .7rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.multi-select-filter { width: 100%; min-width: 0; }
.multi-select-trigger { display: flex; width: 100%; min-width: 0; min-height: 31px; align-items: center; gap: .32rem; border: 1px solid rgba(15,29,33,.16); border-radius: 2px; background: rgba(255,255,255,.82); color: var(--ink); cursor: pointer; padding: .4rem .45rem; font: inherit; font-size: .7rem; font-weight: 500; text-align: left; white-space: nowrap; }
.multi-select-trigger:hover, .multi-select-trigger:focus-visible, .multi-select-trigger[aria-expanded="true"] { border-color: var(--gold); outline: none; box-shadow: 0 0 0 3px rgba(170,132,83,.12); }
.multi-select-trigger > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.multi-select-count { display: inline-grid; min-width: 18px; height: 18px; flex: 0 0 auto; place-items: center; border-radius: 999px; background: var(--gold); color: white; padding: 0 .3rem; font-size: .62rem; font-weight: 700; }
.multi-select-caret { flex: 0 0 auto; margin-left: auto; color: var(--gold-dark); }
.multi-select-panel { position: fixed; z-index: 1000; display: grid; max-height: min(430px, calc(100vh - 16px)); grid-template-rows: auto auto minmax(70px, 1fr) auto; overflow: hidden; border: 1px solid rgba(15,29,33,.2); border-radius: 3px; background: var(--white); color: var(--ink); box-shadow: 0 20px 55px rgba(12,19,21,.24); padding: .7rem; font-family: "Barlow", sans-serif; font-size: .8rem; text-align: left; text-transform: none; }
.multi-select-search input { width: 100%; padding: .55rem .6rem; font-size: .78rem; }
.multi-select-links { display: flex; align-items: center; gap: .35rem; padding: .55rem .08rem .45rem; color: rgba(15,29,33,.35); font-size: .72rem; }
.multi-select-progress { margin-left: auto; color: var(--gold-dark); font-weight: 700; font-variant-numeric: tabular-nums; }
.multi-select-links button, .multi-select-reset { border: 0; background: transparent; color: var(--gold-dark); cursor: pointer; padding: 0; font: inherit; font-weight: 600; }
.multi-select-links button:hover, .multi-select-links button:focus-visible, .multi-select-reset:hover, .multi-select-reset:focus-visible { color: var(--ink); outline: none; text-decoration: underline; text-underline-offset: 2px; }
.multi-select-options { min-height: 70px; overflow-y: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: .3rem 0; }
.multi-select-option { position: relative; display: flex; min-height: 32px; align-items: center; gap: .5rem; cursor: pointer; padding: .35rem .3rem; font-weight: 500; line-height: 1.25; }
.multi-select-option:hover { background: rgba(242,221,197,.38); }
.multi-select-option input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.multi-select-check { display: inline-grid; width: 17px; height: 17px; flex: 0 0 17px; place-items: center; border: 1px solid rgba(15,29,33,.35); border-radius: 1px; background: white; color: white; font-size: .72rem; font-weight: 700; line-height: 1; }
.multi-select-option input:checked + .multi-select-check { border-color: var(--gold); background: var(--gold); }
.multi-select-option input:checked + .multi-select-check::after { content: "✓"; }
.multi-select-option input:focus-visible + .multi-select-check { outline: 2px solid var(--gold); outline-offset: 2px; }
.multi-select-empty { margin: .7rem .3rem; color: rgba(15,29,33,.5); font-size: .75rem; }
.multi-select-actions { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding-top: .65rem; }
.multi-select-actions .button { min-height: 34px; padding: .42rem .75rem; }
.sort-link { display: flex; align-items: center; justify-content: space-between; gap: .45rem; color: inherit; text-decoration: none; white-space: nowrap; }
.sort-link span { color: var(--gold); }
td { max-width: 210px; padding: .82rem .75rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
tbody tr:not(.group-row):hover { background: rgba(242,221,197,.24); }
td small { display: block; margin-top: .18rem; color: rgba(15,29,33,.55); }
.group-row td { max-width: none; padding: .7rem .75rem; background: var(--sand); color: var(--ink); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.group-row td span { margin-left: .5rem; color: rgba(15,29,33,.55); font-size: .73rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.group-inactive td { background: #e8e3d9; }
.property-link { color: var(--ink); font-family: "Playfair Display", serif; font-size: .98rem; font-weight: 600; text-decoration-color: rgba(170,132,83,.5); text-underline-offset: 3px; }
.name-cell { min-width: 270px; }
.name-cell .inline-display-text { font-family: "Playfair Display", serif; font-size: .98rem; font-weight: 600; }
.row-actions { display: flex; align-items: center; gap: .4rem; margin-top: .28rem; }
.property-detail-link { display: inline-block; color: var(--gold-dark); font-size: .7rem; font-weight: 600; text-decoration: none; }
.row-edit-toggle { display: inline-grid; width: 28px; height: 28px; place-items: center; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--gold-dark); cursor: pointer; font: inherit; font-size: .98rem; line-height: 1; }
.row-edit-toggle:hover, .row-edit-toggle:focus-visible, .row-editing .row-edit-toggle { border-color: rgba(170,132,83,.45); background: rgba(242,221,197,.55); outline: none; }
.origin, .badge { display: inline-block; border-radius: 999px; padding: .27rem .55rem; white-space: nowrap; font-size: .68rem; font-weight: 600; }
.origin-inom { background: rgba(170,132,83,.14); color: #74562f; }
.origin-ai { background: rgba(127,154,146,.18); color: #3e6258; }
.badge { border: 1px solid currentColor; text-transform: capitalize; }
.badge-idoneo { color: #426b50; background: #edf5ec; }
.badge-idoneo-riserva { color: #596c43; background: #f3f5e8; }
.badge-non-idoneo { color: #8b4a42; background: #fbefeb; }
.badge-standard { color: #58666b; background: #eef2f2; }
.badge-non-valutato { color: #806d55; background: #f7f1e8; }
.score { display: inline-grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--sage); border-radius: 50%; color: #42675e; font-weight: 600; }
.score-inom { border-color: var(--gold); color: var(--gold-dark); }
.status-dot { display: inline-block; width: 7px; height: 7px; margin-right: .25rem; border-radius: 50%; background: #c8c8c5; }
.status-dot.on { background: var(--sage); box-shadow: 0 0 0 3px rgba(127,154,146,.15); }
.external-link { color: var(--gold-dark); font-weight: 600; }
.map-address-link { color: var(--gold-dark); font-weight: 600; overflow-wrap: anywhere; text-underline-offset: 2px; }
.preview-cell { width: 290px; min-width: 220px; max-width: 290px; overflow: hidden; }
.description-cell { position: relative; width: 330px; min-width: 270px; max-width: 330px; padding-right: 2.7rem; padding-bottom: 2rem; }
.note-cell { width: 290px; min-width: 220px; max-width: 290px; }
.text-preview {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.description-preview { min-height: 2.6em; }
.description-open { position: absolute; right: .42rem; bottom: .42rem; display: inline-grid; width: 28px; height: 28px; place-items: center; border: 1px solid rgba(170,132,83,.45); border-radius: 3px; background: rgba(242,221,197,.42); color: var(--gold-dark); cursor: pointer; padding: 0; font: inherit; font-size: 1.08rem; line-height: 1; }
.description-open:hover, .description-open:focus-visible { border-color: var(--gold-dark); background: var(--sand); outline: none; }
.description-dialog { width: min(900px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow: auto; border: 1px solid var(--line); border-radius: 4px; background: var(--cream); color: var(--ink); padding: 0; box-shadow: 0 28px 90px rgba(12,19,21,.3); }
.description-dialog::backdrop { background: rgba(12,19,21,.62); }
.description-modal-form { display: grid; gap: 1rem; padding: clamp(1.2rem, 3vw, 2rem); }
.description-modal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.description-modal-heading .section-kicker { margin-bottom: .25rem; }
.description-close { border: 0; background: transparent; color: var(--ink); cursor: pointer; font-size: 2rem; line-height: 1; }
.description-modal-form label { display: grid; gap: .45rem; color: rgba(15,29,33,.72); font-size: .78rem; font-weight: 600; }
.description-modal-textarea { min-height: min(55vh, 560px); resize: vertical; line-height: 1.55; }
.description-protection-note { margin: 0; color: rgba(15,29,33,.58); font-size: .78rem; }
.posizione-ai-cell { min-width: 170px; }
.posizione-ai-cell-content { display: flex; align-items: center; gap: .45rem; }
.posizione-ai-cell-content .inline-editor { min-width: 78px; }
.posizione-ai-open { flex: 0 0 auto; border: 1px solid rgba(170,132,83,.45); border-radius: 999px; background: rgba(242,221,197,.42); color: var(--gold-dark); cursor: pointer; padding: .24rem .48rem; font: inherit; font-size: .66rem; font-weight: 700; }
.posizione-ai-open:hover, .posizione-ai-open:focus-visible { border-color: var(--gold-dark); background: var(--sand); outline: none; }
.posizione-ai-dialog { width: min(960px, calc(100vw - 2rem)); }
.posizione-ai-modal { padding: clamp(1.2rem, 3vw, 2rem); }
.posizione-ai-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.posizione-ai-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 1.3rem 0; }
.posizione-ai-score { color: var(--gold-dark); font-family: "Playfair Display", serif; font-size: clamp(2.5rem, 7vw, 4.4rem); line-height: 1; }
.posizione-ai-badges { display: flex; flex-wrap: wrap; gap: .45rem; }
.trend-badge, .meta-badge { display: inline-flex; align-items: center; border: 1px solid currentColor; border-radius: 999px; padding: .28rem .58rem; font-size: .7rem; font-weight: 700; text-transform: capitalize; }
.trend-in-crescita { background: #edf5ec; color: #426b50; }
.trend-stabile { background: #eef2f2; color: #58666b; }
.trend-in-calo { background: #fbefeb; color: #8b4a42; }
.meta-badge { border-color: var(--line); background: rgba(255,255,255,.5); color: rgba(15,29,33,.68); }
.posizione-ai-reason { margin: 0; border-left: 4px solid var(--gold); background: rgba(242,221,197,.35); padding: 1rem 1.1rem; font-size: 1.02rem; line-height: 1.6; white-space: pre-wrap; }
.posizione-ai-section, .posizione-ai-history { margin-top: 1.35rem; }
.posizione-ai-section h3, .posizione-ai-history h3 { margin-bottom: .7rem; font-size: 1rem; }
.posizione-ai-section ul, .posizione-ai-history ul { margin: 0; padding-left: 1.25rem; }
.posizione-ai-section li + li, .posizione-ai-history li + li { margin-top: .35rem; }
.posizione-ai-criteria { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); background: var(--line); }
.posizione-ai-criteria > div { min-width: 0; background: var(--white); padding: .8rem; }
.posizione-ai-criteria span, .posizione-ai-criteria strong { display: block; overflow-wrap: anywhere; }
.posizione-ai-criteria span { color: rgba(15,29,33,.55); font-size: .68rem; text-transform: uppercase; }
.posizione-ai-criteria strong { margin-top: .35rem; font-size: .84rem; }
.posizione-ai-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 1.35rem 0 0; }
.posizione-ai-metadata > div { border: 1px solid var(--line); background: rgba(255,255,255,.42); padding: .75rem .85rem; }
.posizione-ai-metadata dt { color: rgba(15,29,33,.55); font-size: .68rem; font-weight: 600; text-transform: uppercase; }
.posizione-ai-metadata dd { margin: .3rem 0 0; overflow-wrap: anywhere; }
.posizione-ai-empty, .posizione-ai-empty-history { margin: 1.2rem 0 0; color: rgba(15,29,33,.62); }
.posizione-ai-detail-block { margin-top: .25rem; border: 1px solid var(--line); background: var(--cream); padding: clamp(1rem, 2.5vw, 1.5rem); }
.inline-edit-cell { min-width: 128px; }
.inline-editor { position: relative; width: 100%; min-width: 112px; border-radius: 3px; }
.inline-display {
  display: block;
  width: 100%;
  min-height: 0;
  overflow: hidden;
  color: inherit;
}
.inline-display-text { min-width: 0; overflow: hidden; overflow-wrap: anywhere; }
.inline-control { display: none; min-width: 110px; padding: .48rem .55rem; }
.row-editing .inline-edit-cell { padding: .36rem; background: rgba(242,221,197,.16); }
.row-editing .inline-display { display: none; }
.row-editing .inline-control { display: block; }
.inline-editor.saved { animation: inline-saved-flash 1.6s ease-out; }
.inline-feedback { position: absolute; z-index: 2; right: .25rem; bottom: -.8rem; border-radius: 999px; background: #31584d; color: white; padding: .15rem .42rem; font-size: .64rem; font-weight: 600; white-space: nowrap; }
.inline-editor.error .inline-display { border-color: #9a4037; background: #faeee9; }
.inline-editor.error .inline-feedback { background: #9a4037; }
/* Onboarding: chip di stato colorati (lettura rapida, schema semaforo) */
.onboarding-table td[data-onb-status] .inline-display-text {
  display: inline-block; padding: .16rem .58rem; border-radius: 999px;
  font-weight: 600; font-size: .8rem; line-height: 1.35; letter-spacing: .01em;
}
.onboarding-table td[data-onb-status=""] .inline-display-text {
  padding: 0; border-radius: 0; background: none; color: inherit; font-weight: inherit;
}
/* niente pallino dentro i chip bool (Esclusiva, Pubblicazione portali) */
.onboarding-table td[data-onb-status] .status-dot { display: none; }
/* Schema semantico: 1 verde, 1 rosso, giallo, arancione, grigio */
/* 🟢 VERDE (unico) — fatto / opzione positiva */
.onboarding-table td[data-onb-status="ok"] .inline-display-text,
.onboarding-table td[data-onb-status="ok-archiviato"] .inline-display-text,
.onboarding-table td[data-onb-status="attiva"] .inline-display-text,
.onboarding-table td[data-onb-status="firmata-p7m"] .inline-display-text,
.onboarding-table td[data-onb-status="a-pagamento"] .inline-display-text,
.onboarding-table td[data-onb-status="pubblica"] .inline-display-text,
.onboarding-table td[data-onb-status="si"] .inline-display-text { background: #d9ead3; color: #38761d; }
/* 🔴 ROSSO (unico) — fermo / opzione negativa */
.onboarding-table td[data-onb-status="stand-by"] .inline-display-text,
.onboarding-table td[data-onb-status="free"] .inline-display-text,
.onboarding-table td[data-onb-status="riservata"] .inline-display-text,
.onboarding-table td[data-onb-status="no"] .inline-display-text { background: #f4cccc; color: #a5231a; }
/* 🟡 GIALLO — in corso / inviato (in attesa) */
.onboarding-table td[data-onb-status="inviata-per-ok"] .inline-display-text,
.onboarding-table td[data-onb-status="inviata-pec"] .inline-display-text,
.onboarding-table td[data-onb-status="inviata-bozza"] .inline-display-text,
.onboarding-table td[data-onb-status="da-editare"] .inline-display-text,
.onboarding-table td[data-onb-status="in-preparazione"] .inline-display-text,
.onboarding-table td[data-onb-status="inviato-per-firma"] .inline-display-text { background: #fce8b2; color: #7f6000; }
/* 🟠 ARANCIONE — da fare (tocca a noi) */
.onboarding-table td[data-onb-status="da-preparare"] .inline-display-text,
.onboarding-table td[data-onb-status="da-fare"] .inline-display-text,
.onboarding-table td[data-onb-status="da-richiedere"] .inline-display-text { background: #f9cb9c; color: #7a3f04; }
/* ⚪ GRIGIO — documento / neutro / chiuso */
.onboarding-table td[data-onb-status="loi"] .inline-display-text,
.onboarding-table td[data-onb-status="chiusa"] .inline-display-text { background: #efefef; color: #666666; }
/* Portfolio: chip colorati (palette accesa) sulle colonne-decisione */
.master-table td[data-pf-color] .inline-display-text { display: inline-block; padding: .16rem .55rem; border-radius: 999px; font-weight: 600; font-size: .7rem; color: #fff; }
.master-table td[data-pf-color=""] .inline-display-text { padding: 0; border-radius: 0; background: none; color: inherit; font-weight: inherit; }
.master-table td[data-pf-color] .status-dot { display: none; }
.master-table td[data-pf-color="green"] .inline-display-text { background: #1a9d4f; }
.master-table td[data-pf-color="red"] .inline-display-text { background: #e23b3b; }
.master-table td[data-pf-color="yellow"] .inline-display-text { background: #f2c200; color: #4a3b00; }
.master-table td[data-pf-color="orange"] .inline-display-text { background: #f57c1f; }
.master-table td[data-pf-color="blue"] .inline-display-text { background: #1f6fe5; }
.master-table td[data-pf-color="magenta"] .inline-display-text { background: #d13c8e; }
.master-table td[data-pf-color="gray-d"] .inline-display-text { background: #55565a; }
.master-table td[data-pf-color="gray-l"] .inline-display-text { background: #d7d8dc; color: #4a4a4a; }
/* Idoneità: badge in palette accesa (stesso stile dei chip) */
.badge-idoneo { color: #fff; background: #1a9d4f; border-color: #1a9d4f; }
.badge-idoneo-riserva { color: #4a3b00; background: #f2c200; border-color: #f2c200; }
.badge-non-idoneo { color: #fff; background: #e23b3b; border-color: #e23b3b; }
.badge-standard { color: #fff; background: #1f6fe5; border-color: #1f6fe5; }
.badge-non-valutato { color: #4a4a4a; background: #d7d8dc; border-color: #d7d8dc; }
/* Provenienza: colore per ruolo */
.role-badge.role-venditore { color: #fff; background: #1f6fe5; border-color: #1f6fe5; }
.role-badge.role-intermediario { color: #fff; background: #f57c1f; border-color: #f57c1f; }
.role-badge.role-segnalatore { color: #fff; background: #f57c1f; border-color: #f57c1f; }
@keyframes inline-saved-flash {
  0% { background: rgba(72, 150, 105, .48); box-shadow: 0 0 0 4px rgba(72,150,105,.2); }
  100% { background: transparent; box-shadow: 0 0 0 0 rgba(72,150,105,0); }
}
.muted { color: rgba(15,29,33,.35); }
.referrer-cell > span:first-child { display: block; }
.role-badge { display: inline-block; margin-top: .3rem; border: 1px solid rgba(170,132,83,.55); border-radius: 999px; background: rgba(242,221,197,.42); color: var(--gold-dark); padding: .18rem .45rem; font-size: .66rem; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.empty-state { max-width: none; padding: 4rem; text-align: center; }

.detail-heading { align-items: center; }
.map-location { display: flex; align-items: baseline; gap: .65rem; border-left: 3px solid var(--gold); background: var(--cream); padding: .7rem .85rem; }
.map-location > span { color: rgba(15,29,33,.58); font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.edit-guidance { margin: 0 0 1.25rem; border-left: 4px solid var(--gold); background: rgba(255,253,249,.82); padding: .9rem 1rem; color: rgba(15,29,33,.76); }
.back-link { display: inline-block; margin-bottom: 1.5rem; color: var(--gold-dark); font-size: .84rem; text-decoration: none; }
.heading-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 1rem; }
.section-nav { position: sticky; z-index: 10; top: 0; display: flex; overflow-x: auto; gap: .2rem; margin: 0 0 1.25rem; border: 1px solid var(--line); background: rgba(247,237,223,.96); padding: .45rem; }
.section-nav a { padding: .5rem .68rem; color: rgba(15,29,33,.72); font-size: .78rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.section-nav a:hover { background: var(--sand); color: var(--ink); }
.detail-card { margin-bottom: 1.25rem; padding: clamp(1.25rem, 3vw, 2.25rem); scroll-margin-top: 70px; }
.detail-card > h2, .placeholder-heading { margin-bottom: 1.4rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.span-2 { grid-column: 1 / -1; }
.subsection-title { margin-top: .65rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.subsection-title:has(.primary-contact-label) { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.primary-contact-label { border-radius: 999px; background: var(--ink); color: white; padding: .24rem .55rem; font-size: .66rem; font-weight: 700; letter-spacing: .02em; }
.form-actions { display: flex; justify-content: flex-end; gap: .7rem; padding-top: .4rem; }
.contact-card { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line); background: var(--line); }
.referrer-contact-card { grid-template-columns: repeat(4, 1fr); }
.contact-card > div { min-width: 0; background: var(--cream); padding: .85rem; }
.contact-card span, .contact-card strong { display: block; overflow-wrap: anywhere; }
.contact-card span { color: rgba(15,29,33,.53); font-size: .7rem; text-transform: uppercase; }
.contact-card strong { margin-top: .3rem; font-size: .85rem; }
.contact-card .role-badge { width: fit-content; }
.placeholder-card { border-style: dashed; background: rgba(255,253,249,.62); }
.placeholder-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.placeholder-heading span { border: 1px solid var(--sage); border-radius: 999px; color: #45675e; padding: .3rem .6rem; font-size: .7rem; }
.placeholder-card > p:not(.section-kicker) { color: rgba(15,29,33,.62); }
.check-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .65rem; margin-top: 1.2rem; }
.readonly-check { display: flex; align-items: center; gap: .55rem; border: 1px solid var(--line); background: rgba(255,255,255,.52); padding: .7rem; color: rgba(15,29,33,.68); font-size: .8rem; }
.check-box { width: 15px; height: 15px; border: 1px solid var(--sage); }
.check-box.checked { background: var(--sage); box-shadow: inset 0 0 0 3px white; }
.placeholder-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; margin-top: 1.2rem; }
.placeholder-grid > div { display: grid; gap: .5rem; border: 1px solid var(--line); background: rgba(255,255,255,.5); padding: 1rem; }
.placeholder-grid span { color: rgba(15,29,33,.5); font-size: .78rem; }
.placeholder-grid button { border: 1px solid var(--line); background: transparent; padding: .45rem; color: rgba(15,29,33,.35); }
.placeholder-progress { height: 8px; margin-top: 1.2rem; background: rgba(127,154,146,.18); }
.placeholder-progress span { display: block; height: 100%; background: var(--sage); }
.onboarding-table { min-width: 2100px; }
.onboarding-filter-row th { position: static; background: #f3ecdf; padding: .42rem .35rem; box-shadow: 0 1px 0 var(--line); }
.onboarding-table-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.onboarding-table-summary .button:disabled { border-color: rgba(15,29,33,.18); background: rgba(15,29,33,.08); color: rgba(15,29,33,.4); cursor: default; transform: none; }
.progress-label { margin-bottom: .3rem; font-size: .76rem; }
.progress-track { overflow: hidden; height: 7px; min-width: 92px; background: rgba(127,154,146,.18); }
.progress-track span { display: block; height: 100%; background: var(--sage); }
.expiry { font-weight: 600; }
.expiry-ok { color: #426b50; }
.expiry-urgent { color: #9a681f; }
.expiry-expired, .expiry-invalid { color: #9a4037; }
.onboarding-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.3rem 0; }
.onboarding-metrics > div { display: grid; gap: .38rem; border: 1px solid var(--line); background: var(--cream); padding: 1rem; }
.onboarding-metrics span { color: rgba(15,29,33,.55); font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.onboarding-metrics strong { font-family: "Playfair Display", serif; font-size: 1.25rem; }
.onboarding-metrics small { display: block; }
.drive-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.drive-links a { color: var(--gold-dark); font-weight: 600; }
.raw-details { padding: 1rem 1.25rem; }
.raw-details summary { cursor: pointer; color: rgba(15,29,33,.67); font-size: .85rem; }
.raw-details pre { overflow-x: auto; margin: 1rem 0 0; border-radius: 3px; background: var(--ink-deep); color: #d9e1de; padding: 1.2rem; font-size: .75rem; }
.section-intro { margin: .6rem 0 1.2rem; color: rgba(15,29,33,.62); }
.description-textarea { min-height: 300px; resize: vertical; line-height: 1.55; }
.description-sources { display: grid; gap: 1rem; margin-top: 1.5rem; }
.description-sources section { border-left: 3px solid var(--sage); background: rgba(127,154,146,.09); padding: 1rem 1.1rem; }
.description-sources h3 { margin-bottom: .65rem; font-size: 1rem; }
.readonly-description { overflow-wrap: anywhere; white-space: pre-wrap; line-height: 1.55; }
.generic-fields label > small { margin-left: .35rem; text-transform: uppercase; }
.narrow-card { max-width: 920px; }
.narrow-card > p:not(.section-kicker) { color: rgba(15,29,33,.65); }

.alert { margin: 0 0 1.2rem; border: 1px solid; padding: .8rem 1rem; font-size: .86rem; }
.alert-success { border-color: rgba(69,103,94,.35); background: #edf4f1; color: #31584d; }
.alert-error { border-color: rgba(139,74,51,.35); background: #faeee9; color: #7e402e; }
.login-shell { display: grid; place-items: center; min-height: calc(100vh - 54px); }
.login-card { width: min(440px, 100%); padding: clamp(1.6rem, 5vw, 3rem); }
.login-brand { margin-bottom: 2rem; }
.login-card h1 { font-size: 2.5rem; }
.login-card .lead { margin-bottom: 1.6rem; }
.stack-form { display: grid; gap: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
[x-cloak] { display: none !important; }

.page-shell.portfolio-shell { width: min(100%, 2900px); }
.page-shell.portfolio-shell .table-card { width: 100%; min-width: 0; }
.page-shell.portfolio-shell .table-scroll { width: 100%; min-width: 0; max-height: calc(100vh - 150px); overflow: auto; }
.page-shell.portfolio-shell .master-table { --master-column-header-height: 44px; }
.page-shell.portfolio-shell .master-table thead tr:first-child th { z-index: 30; top: 0; height: var(--master-column-header-height); background: var(--ink); white-space: nowrap; }
.page-shell.portfolio-shell .master-table .master-filter-row th { position: sticky; z-index: 29; top: var(--master-column-header-height); background: #f3ecdf; box-shadow: 0 1px 0 var(--line); }
.page-shell.portfolio-shell .onboarding-table { --onboarding-column-header-height: 44px; }
.page-shell.portfolio-shell .onboarding-table thead tr:first-child th { z-index: 30; top: 0; height: var(--onboarding-column-header-height); background: var(--ink); white-space: nowrap; }
.page-shell.portfolio-shell .onboarding-table .onboarding-filter-row th { position: sticky; z-index: 29; top: var(--onboarding-column-header-height); background: #f3ecdf; box-shadow: 0 1px 0 var(--line); }

.page-shell.board-shell { width: min(100%, 2900px); }
.board-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 1.4rem; }
.partner-contacts { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: .75rem; }
.partner-contacts a { color: var(--gold-dark); font-size: .88rem; font-weight: 600; }
.partner-summary { display: grid; min-width: min(100%, 360px); gap: .22rem; border-left: 4px solid var(--gold); background: rgba(255,253,249,.72); padding: 1rem 1.2rem; }
.partner-summary .section-kicker { margin-bottom: .2rem; }
.partner-summary strong { font-family: "Playfair Display", serif; font-size: 1.2rem; }
.partner-summary span { color: rgba(15,29,33,.65); }
.partner-summary a { width: fit-content; color: var(--gold-dark); font-size: .85rem; font-weight: 600; }
.manual-lead-card { margin-bottom: 1.2rem; padding: 1rem; }
.manual-lead-card > summary { width: fit-content; list-style: none; }
.manual-lead-card > summary::-webkit-details-marker { display: none; }
.manual-lead-card[open] > summary { margin-bottom: 1rem; }
.manual-lead-form { display: grid; grid-template-columns: repeat(6, minmax(140px, 1fr)); gap: .8rem; align-items: end; }
.manual-lead-form label { display: grid; gap: .38rem; color: rgba(15,29,33,.72); font-size: .78rem; font-weight: 600; }
.manual-lead-form .button { grid-column: -2 / -1; }
.manual-lead-form .manual-lead-notes { grid-column: 1 / -1; }
.manual-lead-form fieldset.manual-lead-checks { grid-column: 1 / -1; margin: 0; border: 1px solid rgba(15,29,33,.16); border-radius: 8px; padding: .55rem .75rem; display: flex; flex-wrap: wrap; gap: .45rem 1.1rem; align-items: center; }
.manual-lead-checks legend { padding: 0 .35rem; font-size: .78rem; font-weight: 600; color: rgba(15,29,33,.72); }
.manual-lead-form .manual-lead-checks .check-inline { display: flex; flex-direction: row; align-items: center; gap: .4rem; font-weight: 500; color: rgba(15,29,33,.86); cursor: pointer; }
.manual-lead-checks .check-inline input { width: auto; margin: 0; }
.page-shell.board-shell > .board-heading, .page-shell.board-shell > .manual-lead-card { flex: 0 0 auto; }
.page-shell.board-shell > .board-table-card { width: 100%; }
.page-shell.board-shell .board-table-scroll { width: 100%; max-height: calc(100vh - 150px); overflow: auto; }
.board-table { width: max-content; min-width: 2020px; }
.page-shell.board-shell .board-table { --board-column-header-height: 44px; }
.page-shell.board-shell .board-table thead tr:first-child th { z-index: 30; top: 0; height: var(--board-column-header-height); background: var(--ink); white-space: nowrap; }
.page-shell.board-shell .board-table .board-filter-row th { z-index: 29; top: var(--board-column-header-height); background: #f3ecdf; box-shadow: 0 1px 0 var(--line); }
.board-table th:nth-child(1) { width: 112px; min-width: 112px; }
.board-table th:nth-child(2) { min-width: 180px; }
.board-table th:nth-child(3) { min-width: 190px; }
.board-table th:nth-child(4), .board-table th:nth-child(5) { min-width: 165px; }
.board-table th:nth-child(6) { min-width: 125px; }
.board-table th:nth-child(7) { min-width: 145px; }
.board-table th:nth-child(8) { min-width: 320px; }
.board-table th:nth-child(9) { min-width: 210px; }
.board-table th:nth-child(10) { min-width: 340px; }
.board-table td { max-width: 340px; vertical-align: top; }
.board-row > td { height: 168px; vertical-align: top; }
.board-toggle-cell { width: 112px; padding-right: .35rem; padding-left: .6rem; }
.board-detail-toggle { display: inline-flex; width: auto; min-width: 88px; height: auto; align-items: center; justify-content: center; border-color: rgba(170,132,83,.45); background: rgba(242,221,197,.38); color: var(--gold-dark); cursor: pointer; font-size: .72rem; line-height: 1.2; }
.board-detail-toggle:hover, .board-detail-toggle:focus-visible, .board-detail-toggle[aria-expanded="true"] { border-color: rgba(170,132,83,.45); outline: none; background: rgba(242,221,197,.55); }
.board-property-cell strong { display: block; font-size: .84rem; }
.board-lead-cell strong { display: block; font-size: .92rem; }
.board-detail-row, .board-detail-row:hover { background: rgba(127,154,146,.09); }
.board-detail-row > td { max-width: none; border-bottom-color: rgba(15,29,33,.2); padding: 1.25rem 1.4rem 1.45rem; }
.board-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; position: sticky; left: 0; width: min(1180px, calc(100vw - 5rem)); }
.board-detail-group { min-width: 0; border: 1px solid var(--line); background: rgba(255,253,249,.72); padding: 1rem; }
.board-detail-group h3 { margin-bottom: .85rem; color: var(--gold-dark); font-size: 1rem; }
.board-detail-group h4 { margin: 1rem 0 .55rem; font-size: .76rem; letter-spacing: .07em; text-transform: uppercase; }
.board-detail-group dl { display: grid; gap: .6rem; margin: 0; }
.board-detail-group dl > div { display: grid; grid-template-columns: minmax(120px, .7fr) minmax(0, 1.3fr); gap: .7rem; border-bottom: 1px solid var(--line); padding-bottom: .55rem; }
.board-detail-group dl > div:last-child { border-bottom: 0; padding-bottom: 0; }
.board-detail-group dt { color: rgba(15,29,33,.57); font-size: .72rem; font-weight: 600; }
.board-detail-group dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.status-timeline { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.status-timeline li { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem; border-left: 2px solid var(--sage); padding-left: .75rem; font-size: .76rem; }
.status-timeline time { color: rgba(15,29,33,.57); white-space: nowrap; }
.status-timeline strong { font-weight: 600; }
.status-timeline small { display: inline; margin: 0; color: rgba(15,29,33,.55); }
.status-history-empty { margin: 0; font-size: .76rem; }
.contact-link { color: var(--gold-dark); font-weight: 600; overflow-wrap: anywhere; }
.contacted-check { display: inline-flex; align-items: center; gap: .45rem; cursor: pointer; }
.contacted-check input { width: auto; }
.status-confirm-form { display: flex; align-items: flex-start; gap: .4rem; }
.status-confirm-form .button { white-space: nowrap; }

/* Tendina "stato lead" in stile filtri portfolio */
.status-picker { min-width: 0; flex: 1 1 auto; }
.status-trigger { display: flex; width: 100%; min-width: 0; min-height: 31px; align-items: center; gap: .32rem; border: 1px solid rgba(15,29,33,.16); border-left: 4px solid var(--sage); border-radius: 2px; background: rgba(255,255,255,.82); color: var(--ink); cursor: pointer; padding: .4rem .45rem; font: inherit; font-size: .72rem; font-weight: 600; text-align: left; white-space: nowrap; }
.status-trigger:hover, .status-trigger:focus-visible, .status-trigger[aria-expanded="true"] { border-color: var(--gold); border-left-color: var(--gold); outline: none; box-shadow: 0 0 0 3px rgba(170,132,83,.12); }
.status-trigger.is-msg { border-left-color: var(--gold); background: rgba(170,132,83,.12); }
.status-trigger-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.status-caret { margin-left: auto; color: var(--gold-dark); font-size: .7rem; }

.status-panel { position: fixed; z-index: 1000; display: grid; max-height: min(460px, calc(100vh - 16px)); overflow: hidden; grid-template-rows: auto minmax(0, 1fr); border: 1px solid rgba(15,29,33,.2); border-radius: 3px; background: var(--white); color: var(--ink); box-shadow: 0 20px 55px rgba(12,19,21,.24); padding: .55rem; font-family: "Barlow", sans-serif; font-size: .8rem; text-align: left; text-transform: none; }
.status-nurture-note { margin: 0 0 .5rem; border-left: 3px solid var(--sage); background: rgba(127,154,146,.12); padding: .45rem .55rem; color: rgba(15,29,33,.72); font-size: .72rem; line-height: 1.4; }
.status-options { display: grid; gap: .3rem; overflow-y: auto; padding: .1rem; }
.status-option { display: grid; gap: .2rem; width: 100%; border: 1px solid var(--line); border-left: 3px solid rgba(127,154,146,.55); border-radius: 2px; background: var(--white); cursor: pointer; padding: .5rem .55rem; font: inherit; text-align: left; }
.status-option:hover { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(170,132,83,.1); }
.status-option.is-msg { border-left-color: var(--gold); background: rgba(170,132,83,.1); }
.status-option.is-selected { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(170,132,83,.22); }
.status-option-head { display: flex; align-items: center; gap: .45rem; }
.status-option-label { font-size: .8rem; font-weight: 700; color: var(--ink); }
.status-option-badge { margin-left: auto; border-radius: 999px; background: var(--gold); color: var(--white); padding: .08rem .45rem; font-size: .58rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.status-option-guide { color: rgba(15,29,33,.66); font-size: .72rem; line-height: 1.35; }
.status-option-cadence { color: var(--gold-dark); font-size: .68rem; font-style: italic; line-height: 1.35; }
.status-option:disabled { cursor: not-allowed; opacity: .55; background: rgba(15,29,33,.04); border-left-color: rgba(15,29,33,.2); }
.status-option:disabled:hover { border-color: var(--line); box-shadow: none; }
.status-option:disabled .status-option-badge { background: rgba(15,29,33,.35); }

/* Riquadro "Da fare / Avvisi" sempre visibile sotto ogni lead */
.board-flag { font-size: .82rem; }
.board-todo-row > td { background: rgba(127,154,146,.07); border-top: 1px solid var(--line); padding: .5rem .6rem .6rem; }
.board-todo { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; }
.board-todo-label { border-radius: 2px; background: var(--sage); color: var(--white); padding: .1rem .45rem; font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.board-todo-text { color: var(--ink); font-size: .82rem; font-weight: 600; }
.board-todo-notes { border: 1px solid rgba(170,132,83,.4); border-radius: 2px; background: rgba(170,132,83,.1); color: var(--gold-dark); cursor: pointer; padding: .12rem .5rem; font: inherit; font-size: .72rem; font-weight: 600; }
.board-todo-notes:hover { border-color: var(--gold); background: rgba(170,132,83,.18); }
.board-todo-avviso { margin-top: .45rem; border-left: 3px solid #b6852f; border-radius: 2px; background: rgba(215,160,54,.14); color: #7a5a12; padding: .45rem .6rem; font-size: .78rem; line-height: 1.4; }

/* Banner "aggiornamenti dai lead" (poll leggero) */
.board-updates-banner { position: sticky; top: calc(var(--site-header-height) + .3rem); z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: 0 0 1rem; border: 1px solid var(--gold); border-radius: 3px; background: var(--sand); color: var(--ink); padding: .6rem .85rem; box-shadow: 0 6px 18px rgba(12,19,21,.12); font-size: .82rem; font-weight: 600; }
.board-updates-banner .button { white-space: nowrap; }

/* Checkbox "Avvia sequenza INOM" nel form Aggiungi lead */
.manual-lead-sequenza { display: flex; flex-direction: row; align-items: flex-start; gap: .5rem; border: 1px solid rgba(170,132,83,.35); border-radius: 3px; background: rgba(170,132,83,.08); padding: .55rem .6rem; font-weight: 500; }
.manual-lead-sequenza input { width: auto; margin-top: .15rem; flex: none; }
.manual-lead-sequenza span { font-size: .74rem; line-height: 1.35; color: rgba(15,29,33,.72); }
.appointment-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; }
.appointment-editor label { display: grid; gap: .2rem; color: rgba(15,29,33,.62); font-size: .68rem; font-weight: 600; }
.appointment-editor input { min-width: 145px; padding: .48rem; font-size: .75rem; }
.appointment-editor .button { grid-column: 1 / -1; }
.appointment-cancel { margin-top: .4rem; }
.button-ghost { border: 1px solid #8b4a42; background: transparent; color: #8b4a42; }
.button-ghost:hover { background: #8b4a42; color: var(--white); }
.board-appointment-cell strong { display: block; }
.board-notes { min-width: 0; }
.inom-notes-history { margin-bottom: .55rem; border-left: 3px solid var(--sage); background: rgba(127,154,146,.1); color: rgba(15,29,33,.68); }
.inom-notes-history > summary { display: flex; align-items: center; gap: .35rem; cursor: pointer; padding: .48rem .6rem; color: var(--gold-dark); font-size: .7rem; font-weight: 600; letter-spacing: .04em; list-style: none; text-transform: uppercase; }
.inom-notes-history > summary::-webkit-details-marker { display: none; }
.inom-notes-history > summary::after { content: '▸'; color: var(--gold); font-size: .85rem; }
.inom-notes-history[open] > summary::after { content: '▾'; }
.inom-notes-history-text { overflow-wrap: anywhere; white-space: pre-wrap; border-top: 1px solid rgba(127,154,146,.24); padding: .55rem .65rem; font-size: .75rem; line-height: 1.4; }
.notes-thread { max-height: 58px; overflow-y: auto; padding-right: .2rem; }
.notes-thread p { margin: 0; overflow-wrap: anywhere; font-size: .75rem; line-height: 1.4; }
.notes-thread p + p { margin-top: .48rem; border-top: 1px solid var(--line); padding-top: .48rem; }
.notes-thread time { color: rgba(15,29,33,.57); white-space: nowrap; }
.note-form { display: grid; grid-template-columns: 1fr auto; gap: .4rem; margin-top: .65rem; }
.note-form textarea { min-height: 44px; max-height: 58px; padding: .5rem; font-size: .75rem; }
.note-form .button { align-self: end; }
.board-index-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.board-index-card { display: grid; gap: .55rem; border: 1px solid var(--line); background: rgba(255,253,249,.88); box-shadow: var(--shadow); padding: 1.4rem; text-decoration: none; transition: transform .18s, border-color .18s; }
.board-index-card:hover { border-color: var(--gold); transform: translateY(-2px); }
.board-index-card .section-kicker, .board-index-card p { margin: 0; }
.board-index-card p:not(.section-kicker) { color: rgba(15,29,33,.62); }
.board-index-card strong { color: var(--gold-dark); }
.board-table-summary { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.board-filter-tools { display: flex; align-items: end; gap: .6rem; }
.board-filter-control { display: grid; min-width: 170px; gap: .2rem; color: rgba(15,29,33,.62); font-size: .68rem; font-weight: 600; }
.board-filter-control .multi-select-trigger { min-width: 170px; padding: .42rem .5rem; font-size: .74rem; }
.board-filter-row th { background: #f3ecdf; padding: .42rem .35rem; }
.board-filter-row input { width: 100%; min-width: 0; padding: .42rem .45rem; border-color: rgba(15,29,33,.16); background: rgba(255,255,255,.78); font-size: .7rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.board-filter-row th:first-child { background: #f3ecdf; }

@media (max-width: 1100px) {
  .filters { grid-template-columns: repeat(3, 1fr); }
  .advanced-filter-grid { grid-template-columns: repeat(3, 1fr); }
  .placeholder-grid { grid-template-columns: repeat(2, 1fr); }
  .posizione-ai-criteria { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manual-lead-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manual-lead-form .button { grid-column: auto; }
  .board-detail-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
  .board-activity-group { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  :root { --site-header-height: 66px; }
  .menu-toggle { display: block; }
  .site-header nav { position: absolute; top: 66px; right: 0; left: 0; display: none; align-items: stretch; flex-direction: column; gap: .8rem; background: var(--ink-deep); padding: 1rem; }
  .site-header nav.open { display: flex; }
  .hero-row, .detail-heading { align-items: flex-start; flex-direction: column; }
  .filters, .advanced-filter-grid, .form-grid { grid-template-columns: 1fr; }
  .filters > *, .search-field, .span-2 { grid-column: 1; }
  .scope-switch { width: 100%; }
  .section-nav { top: 0; }
  .contact-card, .referrer-contact-card, .check-grid, .placeholder-grid, .onboarding-metrics { grid-template-columns: 1fr; }
  .posizione-ai-criteria, .posizione-ai-metadata { grid-template-columns: 1fr; }
  .posizione-ai-metadata .span-2 { grid-column: 1; }
  .table-summary .warning { display: block; float: none; margin: .35rem 0 0; }
  .master-table-summary, .master-filter-tools { align-items: stretch; flex-direction: column; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions .button { width: 100%; }
  .board-heading { align-items: stretch; flex-direction: column; }
  .board-table-summary, .board-filter-tools { align-items: stretch; flex-direction: column; }
  .manual-lead-form { grid-template-columns: 1fr; }
  .board-detail-grid { grid-template-columns: 1fr; }
  .board-activity-group { grid-column: auto; }
}

/* --- Coda "Da confermare" (revisione proposte AI, solo team) --- */
.nav-badge { display:inline-block; min-width:1.1rem; padding:0 .38rem; border-radius:999px; background:#e23b3b; color:#fff; font-size:.7rem; font-weight:700; line-height:1.35; text-align:center; vertical-align:middle; }
.confirm-empty { margin:0; font-size:1rem; color:#31584d; }
.confirm-card { padding:1.1rem 1.25rem; }
.confirm-card-head h2 { margin:0 0 .2rem; font-size:1.05rem; }
.confirm-meta { margin:0; font-size:.8rem; color:rgba(15,29,33,.62); display:flex; flex-wrap:wrap; gap:.35rem; }
.confirm-note { margin:.7rem 0; font-size:.82rem; }
.confirm-note summary { cursor:pointer; color:rgba(15,29,33,.7); font-weight:600; }
.confirm-note p { margin:.4rem 0 0; white-space:pre-wrap; color:rgba(15,29,33,.8); }
.confirm-fields { display:flex; flex-direction:column; gap:.55rem; margin-top:.7rem; }
.confirm-field { display:grid; grid-template-columns:minmax(140px,180px) minmax(0,1fr) auto; gap:.6rem; align-items:center; padding:.5rem .6rem; border:1px solid var(--line); border-radius:8px; background:rgba(255,253,249,.6); }
.confirm-field-label { font-size:.78rem; font-weight:600; color:rgba(15,29,33,.72); }
.confirm-field-label small { font-weight:400; color:rgba(15,29,33,.5); }
.confirm-field-value { width:100%; }
.confirm-actions { display:flex; gap:.4rem; align-items:center; }
.confirm-discard { color:#a5231a; font-size:.78rem; }
@media (max-width:640px){ .confirm-field { grid-template-columns:1fr; } .confirm-actions { flex-wrap:wrap; } }

/* --- Audit "Dati mancanti" (completezza immobili, solo team) --- */
.missing-table td { vertical-align: middle; }
.missing-name { min-width: 220px; }
.missing-count { display:inline-block; min-width:2.4rem; padding:.12rem .45rem; border-radius:999px; background:#f4cccc; color:#a5231a; font-size:.74rem; font-weight:700; text-align:center; }
.missing-chips { max-width:640px; }
.missing-chip { display:inline-block; margin:.12rem .25rem .12rem 0; padding:.12rem .5rem; border-radius:999px; background:#fbeaea; border:1px solid #ecc6c6; color:#8a2b22; font-size:.72rem; font-weight:600; }

.missing-summary { padding: 1rem 1.25rem; margin-bottom: 1.1rem; }
.missing-summary-hint { margin: .2rem 0 .7rem; font-size: .82rem; color: rgba(15,29,33,.6); }
.missing-summary-chips { display:flex; flex-wrap:wrap; gap:.4rem; }
.missing-sumchip { display:inline-flex; align-items:center; gap:.35rem; padding:.32rem .6rem; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--ink); font:inherit; font-size:.76rem; font-weight:600; cursor:pointer; transition:.15s; }
.missing-sumchip:hover { border-color:var(--gold); }
.missing-sumchip.is-active { background:var(--ink); color:#fff; border-color:var(--ink); }
.missing-sumchip.is-active .missing-count { background:rgba(255,255,255,.25); color:#fff; }
.missing-chip.is-target { background:#e23b3b; border-color:#e23b3b; color:#fff; }

.missing-group { margin-bottom: 2.2rem; }
.missing-group-head { margin-bottom: .7rem; }
.missing-group-head h2 { display:flex; align-items:center; gap:.5rem; }
.missing-group-count { display:inline-block; min-width:1.6rem; padding:.1rem .5rem; border-radius:999px; background:var(--ink); color:#fff; font-family:"Barlow",sans-serif; font-size:.8rem; font-weight:700; }

/* Toggle INOM/AI + tabella audit contenuta (larghezza 100%, chip a capo) */
.audit-tabs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.audit-tab { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem 1.05rem; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--ink); font:inherit; font-size:.85rem; font-weight:600; cursor:pointer; transition:.15s; }
.audit-tab:hover { border-color:var(--gold); }
.audit-tab.is-active { background:var(--ink); color:#fff; border-color:var(--ink); }
.audit-tab-count { display:inline-block; min-width:1.5rem; padding:.05rem .45rem; border-radius:999px; background:rgba(15,29,33,.12); font-size:.74rem; font-weight:700; text-align:center; }
.audit-tab.is-active .audit-tab-count { background:rgba(255,255,255,.25); color:#fff; }
.audit-card { padding:0; overflow-x:auto; }
.audit-table { width:100%; border-collapse:collapse; font-size:.86rem; }
.audit-table thead th { position:sticky; top:0; text-align:left; padding:.6rem .85rem; background:var(--ink); color:#fff; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600; white-space:nowrap; }
.audit-table td { padding:.6rem .85rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.audit-table tbody tr:hover { background:rgba(242,221,197,.22); }
.audit-name { font-weight:600; min-width:200px; }
.audit-table .missing-chips { white-space:normal; }
.audit-action { white-space:nowrap; text-align:right; }
