/* IFB_COLOR_SYSTEM_START
   Due colori modificabili: accento e testo, entrambi in Personalizza > Colori Italfaber.
   Le altre tinte sono derivate automaticamente. */
:root{
  --ifb-accent:#003b7a;
  --ifb-text:#1f2933;
  --ifb-text-muted:color-mix(in srgb,var(--ifb-text) 72%,var(--ifb-white));
  --ink:var(--ifb-text);
  --ink-soft:var(--ifb-text-muted);
  --ifb-white:#fff;
  --ifb-soft:#f6f8f9;
  --ifb-border:color-mix(in srgb,var(--ifb-accent) 16%,var(--ifb-white));
  --ifb-accent-soft:color-mix(in srgb,var(--ifb-accent) 7%,var(--ifb-white));
  --ifb-accent-mid:color-mix(in srgb,var(--ifb-accent) 58%,var(--ifb-white));
  --ifb-accent-deep:color-mix(in srgb,var(--ifb-accent) 82%,black);
  --steelcolor:var(--ifb-accent);
}
/* IFB_COLOR_SYSTEM_END */

:root{
  --bg:var(--ifb-soft);--panel:var(--ifb-soft);--panel-soft:var(--ifb-soft);--text:var(--ifb-text);--muted:var(--ifb-text-muted);--line:var(--ifb-soft);--accent:var(--ifb-accent);--accent-dark:var(--ifb-accent);--ok:var(--ifb-accent);--danger:var(--ifb-accent);
  --topbar:56px;--sidebar:320px;--radius:3px;--wide:1280px;--measure:820px
}
*{box-sizing:border-box}html{font-size:16px}body.app{margin:0;min-height:100vh;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}img{max-width:100%;height:auto}a{color:var(--accent-dark);text-decoration-thickness:1px;text-underline-offset:3px}button,input,select,textarea{font:inherit}.app-topbar{position:sticky;top:0;z-index:50;height:var(--topbar);display:flex;align-items:center;gap:16px;padding:0 18px;background:var(--panel);border-bottom:1px solid var(--line)}.app-brand{font-weight:850;letter-spacing:.04em;color:var(--text);text-decoration:none}.app-actions{display:flex;align-items:center;gap:14px;margin-left:auto}.app-actions a{color:var(--muted);text-decoration:none;font-size:.92rem}.app-actions a:hover{color:var(--text)}.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);grid-template-areas:"sidebar main";min-height:calc(100vh - var(--topbar))}.app-sidebar{grid-area:sidebar;position:sticky;top:var(--topbar);height:calc(100vh - var(--topbar));background:var(--panel);border-right:1px solid var(--line);overflow:hidden}.app-main{grid-area:main;min-width:0;padding:24px}.workspace-head,.workspace{width:min(100%,var(--wide));margin-inline:auto}.workspace-head{margin-bottom:18px}.workspace-head h1,.document-head h1{margin:0;font-size:clamp(1.5rem,2vw,2.25rem);line-height:1.15}.eyebrow{margin:0 0 6px;color:var(--accent-dark);font-size:.76rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.lead{max-width:var(--measure);color:var(--muted);font-size:1.04rem}.meta{color:var(--muted);font-size:.9rem}.panel,.card,.article,.tool,.filter-bar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.panel,.article,.tool,.filter-bar{padding:clamp(18px,3vw,34px)}.card{padding:18px}.grid,.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.list{display:grid;gap:10px}.card-title,.card h2{margin:.45rem 0 .5rem;font-size:1.05rem;line-height:1.3}.card p{margin:.4rem 0}.badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border:1px solid var(--line);background:var(--panel-soft);color:var(--muted);font-size:.78rem;font-weight:650}.button,.nav-toggle,.nav-close,.nav-next,.nav-back{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.button,.nav-toggle{min-height:38px;padding:8px 13px;border:1px solid var(--accent);background:var(--accent);color:var(--ifb-soft);text-decoration:none;font-weight:650}.button-soft{background:var(--panel);color:var(--accent-dark)}.nav-toggle{gap:7px;border-color:var(--line);background:var(--panel);color:var(--text)}.sidebar-head{height:56px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 14px;border-bottom:1px solid var(--line)}.nav-close{width:36px;height:36px;border:1px solid var(--line);background:var(--panel-soft);color:var(--text)}.quick-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;border-bottom:1px solid var(--line)}.quick-nav a{display:flex;align-items:center;min-height:34px;padding:6px 8px;background:var(--panel-soft);border:1px solid var(--line);color:var(--text);text-decoration:none;font-size:.88rem}.nav-tree{position:relative;height:calc(100vh - var(--topbar) - 56px);overflow:hidden}.nav-level{position:absolute;inset:0;list-style:none;margin:0;padding:8px;background:var(--panel);overflow-y:auto;transform:translateX(100%);transition:transform .22s ease}.nav-level.is-active{transform:translateX(0)}.nav-level.is-parent{transform:translateX(-25%)}.nav-row{border-bottom:1px solid var(--line)}.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a{font-weight:750;color:var(--accent-dark);background:var(--panel-soft)}.sidebar-empty{padding:16px;color:var(--muted);font-size:.92rem}.sidebar-empty p{margin:.4rem 0}.nav-row:not(.nav-row-title){display:grid;grid-template-columns:minmax(0,1fr) 44px}.nav-row a,.nav-back,.nav-row-title span{min-height:44px;display:flex;align-items:center;gap:8px;width:100%;padding:9px 8px;color:var(--text);text-decoration:none}.nav-next,.nav-back{border:0;background:transparent;color:var(--muted)}.nav-next{border-left:1px solid var(--line);font-size:1.25rem}.nav-back{justify-content:flex-start;color:var(--accent-dark);font-weight:750}.nav-row-back{grid-template-columns:1fr!important}.nav-row-title{padding:10px 8px;background:var(--panel-soft);color:var(--muted);font-size:.82rem;font-weight:750;text-transform:uppercase;letter-spacing:.07em}.nav-count{margin-left:auto;color:var(--muted);font-size:.78rem}.nav-backdrop{position:fixed;inset:0;background:color-mix(in srgb, var(--steelcolor) 28%, transparent);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:70}body.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.document{max-width:var(--wide)}.document-head{margin-bottom:20px}.document-body{max-width:100%}.document-body h2,.document-body h3{margin-top:2em;line-height:1.25}.document-body p,.document-body ul,.document-body ol,.document-body table{margin-bottom:1.1em}.document-body table{width:100%;border-collapse:collapse;background:var(--panel);font-size:.95rem}.document-body th,.document-body td{border:1px solid var(--line);padding:9px 10px;text-align:left}.document-body blockquote,.notice{margin:22px 0;padding:14px 16px;border-left:4px solid var(--accent);background:var(--panel-soft)}.hero-media{margin:0 0 22px}.hero-media img{display:block;border:1px solid var(--line)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.post-nav>div{background:var(--panel);border:1px solid var(--line);padding:12px}.post-nav>div:last-child{text-align:right}.pagination{width:min(100%,var(--wide));margin:20px auto}.pagination ul{list-style:none;display:flex;gap:6px;flex-wrap:wrap;padding:0;margin:0}.pagination a,.pagination span{display:inline-flex;min-height:34px;align-items:center;padding:6px 10px;border:1px solid var(--line);background:var(--panel);text-decoration:none}.pagination .current{background:var(--accent);border-color:var(--accent);color:var(--ifb-soft)}.filter-bar{margin:16px 0;display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filter-bar label{display:grid;gap:4px}.filter-bar input,.filter-bar select{min-height:38px;border:1px solid var(--line);background:var(--panel);padding:7px 9px}.section-title{width:min(100%,var(--wide));margin:26px auto 12px}.app-footer{padding:18px 24px;border-top:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:.9rem}.app-footer p{margin:0}.wp-caption,.gallery{max-width:100%}.alignleft{float:left;margin:0 18px 14px 0}.alignright{float:right;margin:0 0 14px 18px}.aligncenter{display:block;margin-inline:auto}
@media (max-width:1023px){.app-actions{display:none}.app-shell{display:block}.app-main{padding:16px}.app-sidebar{position:fixed;inset:0 auto 0 0;top:0;width:min(90vw,360px);height:100vh;transform:translateX(-100%);transition:transform .22s ease;z-index:80}.sidebar-head{height:var(--topbar)}.nav-tree{height:calc(100vh - var(--topbar) - 57px)}body.nav-open .app-sidebar{transform:translateX(0)}.post-nav{grid-template-columns:1fr}.post-nav>div:last-child{text-align:left}}
@media (min-width:1024px){.nav-toggle,.nav-close{display:none}.nav-backdrop{display:none!important}}

/* Italfaber Atlante Carpenterie: il plugin porta dati, il tema porta forma */
.ifb-atlante{display:grid;gap:16px}.ifb-atlante .ifb-breadcrumb,.ifb-breadcrumb{font-size:.9rem;color:var(--muted);margin:0 0 12px}.ifb-breadcrumb a{color:var(--accent-dark);text-decoration:none}.ifb-company-grid{display:grid;gap:10px}.ifb-company-card h2{margin:.35rem 0 .45rem;font-size:1.05rem;line-height:1.28}.ifb-company-card-body{grid-column:1/-1}.ifb-tags,.ifb-tags-large,.ifb-pill-list,.ifb-related-links{display:flex;flex-wrap:wrap;gap:6px}.ifb-tags span,.ifb-tags-large span,.ifb-pill-list a,.ifb-related-links a{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);font-size:.82rem;text-decoration:none}.ifb-company-meta,.meta-list{display:grid;gap:7px;margin:12px 0 0}.ifb-company-meta div,.meta-list div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;border-top:1px solid var(--line);padding-top:7px}.ifb-company-meta dt,.meta-list dt{color:var(--muted);font-size:.82rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em}.ifb-company-meta dd,.meta-list dd{margin:0;min-width:0;overflow-wrap:anywhere}.ifb-company-sheet{display:grid;gap:18px}.ifb-company-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:18px}.ifb-company-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.ifb-sheet-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:14px}.ifb-sheet-grid-lists{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ifb-sheet-block h3,.ifb-company-updates h3,.ifb-related-territory h3{margin-top:0}.ifb-check-list{margin:0;padding-left:1.2rem}.ifb-context-box,.ifb-update-box,.ifb-archive-seo{border-left:4px solid var(--accent)}.ifb-company-updates{display:grid;gap:14px}.ifb-update-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.ifb-update-card{display:block}.ifb-update-card-has-image{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px}.ifb-update-thumb img{width:120px;height:120px;object-fit:cover;border:1px solid var(--line)}.ifb-update-body h4{margin:0 0 7px;font-size:1rem}.ifb-small-note,.ifb-update-excerpt,.ifb-ethical-note,.ifb-archive-ethic{color:var(--muted);font-size:.94rem}.ifb-regioni{margin-top:16px}.ifb-hidden-title{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:760px){.ifb-company-hero-card,.ifb-sheet-grid,.ifb-update-card-has-image{grid-template-columns:1fr}.ifb-company-actions{justify-content:flex-start}.ifb-company-meta div,.meta-list div{grid-template-columns:1fr;gap:2px}.ifb-update-thumb img{width:100%;height:auto;max-height:220px}}


/* Italfaber Appalti e Lavori: il plugin porta dati, il tema porta forma */
.ifb-appalti-archive,.ifb-appalto-scheda,.ifb-front-form,.ifb-submit-intro{width:min(100%,var(--wide));margin-inline:auto}.ifb-appalto-scheda{display:grid;gap:16px}.ifb-app-hero{position:relative;overflow:hidden}.ifb-app-hero:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--accent)}.ifb-app-hero.ifb-status-open:before{background:var(--ok)}.ifb-app-hero.ifb-status-soon:before{background:var(--ifb-accent)}.ifb-app-hero.ifb-status-expired:before{background:var(--danger)}.ifb-app-hero.ifb-status-awarded:before{background:var(--ifb-accent)}.ifb-app-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.ifb-app-eyebrow,.ifb-eyebrow{margin:0 0 6px;color:var(--accent-dark);font-size:.76rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.ifb-app-title{margin:0;font-size:clamp(1.55rem,2.6vw,2.75rem);line-height:1.08;letter-spacing:-.035em}.ifb-app-subline,.ifb-app-actions,.ifb-app-badges,.ifb-badges,.ifb-mini-actions,.ifb-filter-actions{display:flex;flex-wrap:wrap;gap:8px 12px}.ifb-app-subline{margin-top:12px;color:var(--muted)}.ifb-app-actions{margin-top:16px}.ifb-app-badges span,.ifb-status-badge,.ifb-badge-neutral,.ifb-badge-verified,.ifb-badge-unverified,.ifb-badges span{display:inline-flex;align-items:center;min-height:25px;padding:3px 9px;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);font-size:.78rem;font-weight:700}.ifb-status-badge.ifb-status-open,.ifb-badge-verified{color:var(--ok);background:var(--ifb-soft)}.ifb-status-badge.ifb-status-soon{color:var(--ifb-accent);background:var(--ifb-soft)}.ifb-status-badge.ifb-status-expired,.ifb-badge-unverified{color:var(--danger);background:var(--ifb-soft)}.ifb-app-kpi-grid{margin:16px 0}.ifb-app-kpi{display:block;min-height:100%;position:relative}.ifb-app-kpi span,.ifb-kpi span,.ifb-data-item dt,.ifb-side-row span,.ifb-filter-grid label,.ifb-front-form label span{display:block;color:var(--muted);font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.045em}.ifb-app-kpi strong,.ifb-kpi strong{display:block;margin-top:5px;font-size:1.08rem;line-height:1.25;overflow-wrap:anywhere}.ifb-app-kpi em{display:block;margin-top:6px;color:var(--muted);font-style:normal;font-size:.88rem}.ifb-app-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.ifb-app-main{display:grid;gap:14px}.ifb-app-side{position:sticky;top:calc(var(--topbar) + 16px);display:grid;gap:12px}.ifb-app-panel h2,.ifb-side-card h2,.ifb-app-warning h2{margin-top:0}.ifb-app-summary p,.ifb-evidence p{line-height:1.65}.ifb-app-object,.ifb-evidence,.ifb-card-mini,.ifb-policy-box,.ifb-policy-small{border:1px solid var(--line);background:var(--panel-soft);padding:11px 12px}.ifb-evidence{margin:10px 0}.ifb-evidence span{display:block;color:var(--muted);font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.045em}.ifb-evidence strong{display:block;margin-top:4px}.ifb-data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin:0}.ifb-data-item{border:1px solid var(--line);background:var(--panel);padding:11px}.ifb-data-item dd{margin:5px 0 0;overflow-wrap:anywhere}.ifb-value-muted dd{color:var(--muted)}.ifb-side-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;border-top:1px solid var(--line);padding-top:8px}.ifb-side-row:first-of-type{border-top:0}.ifb-side-row strong{text-align:right;overflow-wrap:anywhere}.ifb-side-link{display:block;margin-top:7px;padding:9px 10px;border:1px solid var(--line);background:var(--panel-soft);text-decoration:none;font-weight:650;overflow-wrap:anywhere}.ifb-filter-form{display:block;margin-bottom:16px}.ifb-filter-form:before{content:"Trova appalti e lavori";display:block;margin-bottom:12px;font-weight:800;font-size:1.1rem}.ifb-filter-grid,.ifb-front-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.ifb-filter-grid p,.ifb-front-grid p{margin:0}.ifb-filter-grid input,.ifb-filter-grid select,.ifb-front-form input,.ifb-front-form textarea{width:100%;min-height:38px;border:1px solid var(--line);background:var(--panel);padding:8px 9px}.ifb-front-form textarea{resize:vertical}.ifb-check{display:flex;align-items:end}.ifb-check input{width:auto}.ifb-results-head{margin:12px 0 14px}.ifb-result-card{display:flex;flex-direction:column;gap:8px}.ifb-result-card h3{margin:.25rem 0;font-size:1.04rem;line-height:1.25}.ifb-place-small{margin:0;color:var(--muted)}.ifb-badges{margin:2px 0}.ifb-card-mini{margin-top:auto;font-size:.92rem}.ifb-mini-actions,.ifb-filter-actions{margin-top:10px}.ifb-archive-pages{margin-top:18px}.ifb-submit-intro{margin-bottom:14px}.ifb-form-title{margin-top:0}.ifb-form-help,.ifb-small-note{color:var(--muted)}.ifb-form-section-title{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}.ifb-field-wide{margin:12px 0}.ifb-required{color:var(--danger)}.ifb-privacy-check label{display:flex;gap:8px;align-items:flex-start}.ifb-privacy-check input{width:auto;margin-top:4px}
@media (max-width:900px){.ifb-app-layout{grid-template-columns:1fr}.ifb-app-side{position:static;grid-template-columns:1fr 1fr}.ifb-app-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media (max-width:640px){.ifb-app-hero-top,.ifb-app-subline,.ifb-app-actions,.ifb-app-badges,.ifb-mini-actions,.ifb-filter-actions{display:grid;grid-template-columns:1fr}.ifb-app-side{grid-template-columns:1fr}.ifb-side-row{grid-template-columns:1fr}.ifb-side-row strong{text-align:left}.ifb-btn,.ifb-mini-actions .button,.ifb-filter-actions .button{width:100%}.ifb-data-grid,.ifb-front-grid,.ifb-filter-grid{grid-template-columns:1fr}}

.archive-tools{margin-bottom:16px}.archive-tools .ifb-filter-form{margin-top:0;margin-bottom:0}.workspace-head + .archive-tools{margin-top:-2px}

/* Italfaber Lean Console 0.2 - template pubblici nel tema */
.item-rich { display: grid; gap: 14px; }
.item-main > :first-child { margin-top: 0; }
.compact-list { gap: 4px; font-size: .92rem; }
.compact-list div { grid-template-columns: minmax(105px, 150px) 1fr; }
.details-panel { margin-top: 10px; padding: 0; overflow: hidden; }
.details-panel > summary { cursor: pointer; padding: 12px 14px; font-weight: 700; color: var(--accent-dark); background: var(--panel-soft); }
.details-panel[open] > summary { border-bottom: 1px solid var(--line); }
.details-panel .meta-list { padding: 14px; }
.technical-sheet { background: transparent; border: 0; padding: 0; max-width: var(--wide); }
.sheet-hero { margin-bottom: 16px; }
.sheet-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }
.kpi-grid { margin: 0 0 16px; }
.kpi-grid .card { display: grid; gap: 5px; }
.kpi-grid strong { font-size: 1.02rem; line-height: 1.25; }
.sheet-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.sheet-main, .sheet-side { display: grid; gap: 16px; }
.sheet-side { position: sticky; top: calc(var(--topbar) + 16px); }
.all-data-grid div { align-items: start; }
@media (max-width: 1080px) {
  .sheet-layout { grid-template-columns: 1fr; }
  .sheet-side { position: static; }
}
@media (max-width: 640px) {
  .compact-list div, .all-data-grid div { grid-template-columns: 1fr; }
}


/* Carpenterie 0.2.1: contatti cliccabili e schede più complete */
.contact-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mini-actions.contact-actions { margin-top: 12px; }
.contact-actions .button { min-height: 34px; padding: 7px 10px; font-size: .9rem; }
.sheet-carpenteria .panel h2 { margin-top: 0; }
.sheet-carpenteria .meta-list dd a,
.card-carpenteria .meta-list dd a,
.kpi-grid a { font-weight: 650; overflow-wrap: anywhere; }
.card-carpenteria .compact-list { margin-top: 4px; }
.card-carpenteria .details-panel { border: 1px solid var(--line); background: var(--panel); }
.sheet-carpenteria .details-panel { margin-top: 0; }
@media (max-width: 640px) {
  .contact-actions { display: grid; grid-template-columns: 1fr; }
  .contact-actions .button { width: 100%; }
}

/* 0.2.3: archivio articoli uniforme, senza formattazioni ereditarie strane */
.archive-item { display: block; width: 100%; }
.archive-item-head { display: grid; gap: 8px; }
.archive-item .badge { width: max-content; max-width: 100%; }
.archive-item-title { margin: 0; font-size: 1.08rem; line-height: 1.28; }
.archive-item-title a { color: var(--text); text-decoration: none; }
.archive-item-title a:hover { color: var(--accent-dark); text-decoration: underline; }
.archive-item-excerpt { margin: 10px 0 0; color: var(--text); max-width: 92ch; }
.archive-item-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.archive-item-meta span + span:before { content: ""; }
.archive-post-item { overflow: hidden; }
.archive-post-item * { overflow-wrap: anywhere; }
.list > .archive-item + .archive-item { margin-top: 0; }


/* 0.2.4: breadcrumb e descrizione SEO visuale gestiti dal tema, dati dal plugin SEO */
.breadcrumb {
  width: min(100%, var(--wide));
  margin: 0 auto 14px;
  color: var(--muted);
  font-size: .88rem;
}
.breadcrumb a {
  color: var(--accent-dark);
  text-decoration: none;
}
.breadcrumb a:hover { text-decoration: underline; }
.lb-breadcrumb-separator { color: var(--muted); margin: 0 6px; }
.lb-breadcrumb-current { color: var(--text); }
.seo-description { margin-top: 12px; }
.sheet-subtitle { margin: 10px 0 0; }
.document-head .seo-description,
.workspace-head .seo-description { max-width: var(--measure); }
.breadcrumb-wrap { width: min(100%, var(--wide)); margin: 0 auto 14px; }
.breadcrumb-wrap .lb-breadcrumb { margin: 0; color: var(--muted); font-size: .88rem; }
.breadcrumb-wrap .lb-breadcrumb a { color: var(--accent-dark); text-decoration: none; }
.breadcrumb-wrap .lb-breadcrumb a:hover { text-decoration: underline; }
.breadcrumb-wrap .lb-breadcrumb-current { color: var(--text); }


/* 0.2.5: contenuto prima della sidebar nel DOM, sidebar a sinistra solo via CSS */
.app-main { grid-area: main; }
.app-sidebar { grid-area: sidebar; }
.comment-respond, .comments-area, .wp-block-post-comments, .wp-block-comments, #comments { display: none !important; }
@media (max-width:1023px){ .app-shell{display:block;} .app-main{grid-area:auto;} .app-sidebar{grid-area:auto;} }

/* Hard reset menu/list markers: il menu applicazione non deve mai mostrare pallini da lista. */
.app-topbar ul,
.app-topbar li,
.app-actions ul,
.app-actions li,
.app-sidebar ul,
.app-sidebar li,
.nav-tree ul,
.nav-tree li,
.nav-level,
.nav-level li,
.quick-nav ul,
.quick-nav li {
  list-style: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.app-topbar li::marker,
.app-actions li::marker,
.app-sidebar li::marker,
.nav-tree li::marker,
.nav-level li::marker,
.quick-nav li::marker {
  content: "" !important;
  font-size: 0 !important;
}

.app-actions .menu,
.app-actions .menu > ul {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  padding: 0;
}

.nav-tree .menu,
.nav-tree .sub-menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 0.2.9: dettagli grafici funzionali, leggeri e reversibili */
:root{
  --steel-blue:var(--ifb-accent);
  --steel-blue-soft:var(--ifb-soft);
  --tender-accent:var(--ifb-accent);
  --tender-soft:var(--ifb-soft);
  --company-accent:var(--ifb-accent);
  --company-soft:var(--ifb-soft);
  --doc-accent:var(--ifb-accent);
}
.card,
.panel,
.article,
.filter-bar{
  transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.card:hover,
.panel:hover{
  border-color:var(--ifb-soft);
  box-shadow:0 1px 0 color-mix(in srgb, var(--steelcolor) 4%, transparent);
}
.archive-post-item,
.document:not(.technical-sheet){
  border-left:4px solid var(--doc-accent);
}
.card-appalto,
.sheet-appalto .sheet-hero,
.ifb-result-card{
  border-left:4px solid var(--tender-accent);
}
.card-carpenteria,
.sheet-carpenteria .sheet-hero,
.ifb-company-card{
  border-left:4px solid var(--company-accent);
}
.card-appalto .badge,
.sheet-appalto .badge,
.ifb-status-badge{
  background:var(--tender-soft);
  border-color:var(--ifb-soft);
}
.card-carpenteria .badge,
.sheet-carpenteria .badge,
.ifb-badge-verified{
  background:var(--company-soft);
  border-color:var(--ifb-soft);
}
.breadcrumb-wrap,
.breadcrumb{
  padding:9px 12px;
  border:1px solid var(--line);
  background:var(--panel-soft);
  border-radius:var(--radius);
}
.filter-bar,
.archive-tools .ifb-filter-form{
  border-top:3px solid var(--steel-blue);
}
.filter-bar:before,
.archive-tools .ifb-filter-form:before{
  color:var(--accent-dark);
}
.button:hover,
.nav-toggle:hover,
.contact-actions .button:hover{
  filter:brightness(.96);
}
.button-soft:hover,
.nav-row a:hover,
.quick-nav a:hover,
.side-link:hover{
  background:var(--steel-blue-soft);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.button:focus-visible{
  outline:2px solid var(--accent-dark);
  outline-offset:2px;
}
.contact-actions .button[href^="tel:"],
.contact-actions .button[href^="mailto:"],
.contact-actions .button[target="_blank"]{
  border-color:var(--line);
  background:var(--panel-soft);
  color:var(--accent-dark);
}
.contact-actions .button[href^="tel:"]{
  border-left:4px solid var(--company-accent);
}
.contact-actions .button[href^="mailto:"]{
  border-left:4px solid var(--steel-blue);
}
.contact-actions .button[target="_blank"]{
  border-left:4px solid var(--doc-accent);
}
.meta-list dt,
.ifb-data-item dt,
.ifb-side-row span{
  color:var(--ifb-accent);
}
.details-panel > summary:hover{
  background:var(--steel-blue-soft);
}

.claim-box { border-left: 4px solid var(--accent); }
.claim-box .button { margin-top: 8px; }

/* 0.2.12: filtro archivio carpenterie integrato nello stile console */
.archive-tools .ifb-filter-form:has(input[name="ifb_need"]),
.ifb-archive-filter-wrap .ifb-filter-form:has(input[name="ifb_need"]),
.ifb-filter-form:has(input[name="ifb_need"]) {
  position: relative;
  padding: 22px;
  margin: 0 0 18px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  background: linear-gradient(180deg, var(--ifb-soft) 0%, var(--ifb-soft) 100%);
  border-radius: 4px;
}

.archive-tools .ifb-filter-form:has(input[name="ifb_need"]):before,
.ifb-archive-filter-wrap .ifb-filter-form:has(input[name="ifb_need"]):before,
.ifb-filter-form:has(input[name="ifb_need"]):before {
  content: "Trova carpenterie metalliche";
  display: block;
  margin: 0 0 14px;
  color: var(--accent-dark);
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
  line-height: 1.15;
  font-weight: 850;
  letter-spacing: -.02em;
}

.ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-simple {
  display: grid;
  grid-template-columns: minmax(240px, 1.1fr) minmax(240px, 1.1fr) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 12px;
}

.ifb-filter-form:has(input[name="ifb_need"]) label {
  display: grid;
  gap: 6px;
  margin: 0;
}

.ifb-filter-form:has(input[name="ifb_need"]) label span,
.ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-grid label span {
  display: block;
  color: var(--accent-dark);
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .065em;
}

.ifb-filter-form:has(input[name="ifb_need"]) input,
.ifb-filter-form:has(input[name="ifb_need"]) select {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--ifb-accent);
  background: var(--ifb-soft);
  color: var(--text);
  padding: 9px 11px;
  border-radius: 3px;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--steelcolor) 3%, transparent);
}

.ifb-filter-form:has(input[name="ifb_need"]) input:focus,
.ifb-filter-form:has(input[name="ifb_need"]) select:focus {
  outline: 3px solid color-mix(in srgb, var(--steelcolor) 18%, transparent);
  border-color: var(--accent);
}

.ifb-filter-form:has(input[name="ifb_need"]) button,
.ifb-filter-form:has(input[name="ifb_need"]) input[type="submit"] {
  min-height: 46px;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: var(--ifb-soft);
  padding: 9px 16px;
  border-radius: 3px;
  font-weight: 750;
  cursor: pointer;
}

.ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-advanced {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid color-mix(in srgb, var(--steelcolor) 18%, transparent);
}

.ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-advanced summary {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  color: var(--accent-dark);
  font-weight: 800;
  cursor: pointer;
}

.ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(150px, 1fr));
  gap: 12px;
  margin-top: 10px;
}

.ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-help {
  margin: 14px 0 0;
  padding: 11px 12px;
  border: 1px solid color-mix(in srgb, var(--steelcolor) 14%, transparent);
  background: color-mix(in srgb, var(--paper) 62%, transparent);
  color: var(--muted);
  font-size: .95rem;
}

.ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-help em {
  color: var(--text);
  font-style: italic;
}

.ifb-archive-filter-wrap {
  padding: 0;
  border: 0;
  background: transparent;
}

.ifb-archive-filter-wrap .ifb-filter-head {
  margin: 0 0 10px;
}

.ifb-archive-filter-wrap .ifb-filter-head h2 {
  margin: 0;
  color: var(--accent-dark);
  font-size: 1.25rem;
}

.ifb-archive-filter-wrap .ifb-filter-head p {
  margin: 4px 0 0;
  color: var(--muted);
}

@media (max-width: 1180px) {
  .ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-grid {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
  }
}

@media (max-width: 760px) {
  .ifb-filter-form:has(input[name="ifb_need"]) {
    padding: 16px;
  }

  .ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-simple,
  .ifb-filter-form:has(input[name="ifb_need"]) .ifb-filter-grid {
    grid-template-columns: 1fr;
  }

  .ifb-filter-form:has(input[name="ifb_need"]) button,
  .ifb-filter-form:has(input[name="ifb_need"]) input[type="submit"] {
    width: 100%;
  }
}

/* 0.2.13: linguaggio grafico unico stile filtro console in tutto il tema */
:root{
  --ifb-panel-gradient: linear-gradient(180deg,var(--ifb-soft) 0%,var(--ifb-soft) 100%);
  --ifb-field-border:var(--ifb-accent);
  --ifb-soft-border:color-mix(in srgb, var(--steelcolor) 18%, transparent);
  --ifb-focus:color-mix(in srgb, var(--steelcolor) 18%, transparent);
}

/* Superfici principali: stesso respiro del filtro */
.workspace-head,
.panel,
.card,
.article,
.tool,
.filter-bar,
.sheet-hero,
.sheet-main > section,
.sheet-side > section,
.technical-sheet .panel,
.archive-item,
.details-panel,
.notice,
.ifb-company-card,
.ifb-result-card,
.ifb-app-hero,
.ifb-app-side .card,
.ifb-sheet-block,
.ifb-context-box,
.ifb-update-box,
.ifb-archive-seo,
.ifb-policy-box,
.ifb-policy-small{
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--panel);
}

.workspace-head,
.panel,
.article,
.tool,
.filter-bar,
.sheet-hero,
.technical-sheet .panel,
.ifb-app-hero,
.ifb-context-box,
.ifb-archive-seo{
  border-top:4px solid var(--accent);
  background:var(--ifb-panel-gradient);
}

.workspace-head{
  padding:clamp(18px,3vw,30px);
}

.card,
.archive-item,
.ifb-company-card,
.ifb-result-card{
  background:var(--ifb-soft);
}

/* Titoli e intestazioni uniformi */
.workspace-head h1,
.document-head h1,
.sheet-hero h1,
.ifb-app-title,
.card h2,
.card h3,
.archive-item-title,
.ifb-result-card h3,
.ifb-company-card h2{
  color:var(--text);
  letter-spacing:-.025em;
}

.eyebrow,
.badge,
.ifb-filter-form label span,
.filter-bar label span,
.meta-list dt,
.ifb-company-meta dt,
.ifb-data-item dt,
.ifb-side-row span,
.ifb-evidence span{
  color:var(--accent-dark);
  font-size:.76rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.065em;
}

/* Form globali: stessa identica mano del filtro carpenterie */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="date"],
select,
textarea,
.filter-bar input,
.filter-bar select,
.ifb-filter-grid input,
.ifb-filter-grid select,
.ifb-front-form input,
.ifb-front-form textarea,
.ifb-front-form select,
.ifb-app input,
.ifb-app select,
.ifb-app textarea{
  min-height:46px;
  width:100%;
  border:1px solid var(--ifb-field-border);
  background:var(--ifb-soft);
  color:var(--text);
  padding:9px 11px;
  border-radius:3px;
  box-shadow:0 1px 0 color-mix(in srgb, var(--steelcolor) 3%, transparent);
}

textarea{
  min-height:120px;
}

input:focus,
select:focus,
textarea:focus,
a:focus-visible,
button:focus-visible,
summary:focus-visible{
  outline:3px solid var(--ifb-focus);
  outline-offset:2px;
  border-color:var(--accent);
}

label{
  color:var(--text);
}

/* Bottoni unificati */
.button,
button,
input[type="submit"],
.wp-element-button,
.ifb-btn,
.ifb-mini-actions .button,
.ifb-filter-actions .button,
.contact-actions .button{
  min-height:46px;
  border:1px solid var(--accent);
  background:var(--accent);
  color:var(--ifb-soft);
  padding:9px 16px;
  border-radius:3px;
  font-weight:750;
  text-decoration:none;
  cursor:pointer;
}

.button-soft,
.nav-toggle,
.nav-close,
.nav-next,
.nav-back,
.details-panel > summary,
.ifb-all-data summary{
  background:var(--ifb-soft);
  color:var(--accent-dark);
  border-color:var(--line);
}

.button:hover,
button:hover,
input[type="submit"]:hover,
.ifb-btn:hover,
.contact-actions .button:hover{
  filter:brightness(.96);
}

/* Liste dati e tabelle: stessa griglia tecnica */
.meta-list,
.ifb-company-meta,
.ifb-data-grid,
.all-data-grid,
.ifb-app-card-meta,
.ifb-card-meta-compact{
  gap:8px;
}

.meta-list div,
.ifb-company-meta div,
.ifb-data-item,
.ifb-side-row,
.ifb-app-card-meta div,
.ifb-card-meta-compact div,
.all-data-grid div{
  border-top:1px solid var(--line);
  padding-top:8px;
}

.ifb-data-item,
.kpi-grid .card,
.sheet-side .card{
  background:var(--ifb-soft);
}

.document-body table,
.uni-table-wrapper table{
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden;
}

.document-body th,
.uni-table-wrapper th{
  background:var(--panel-soft);
  color:var(--accent-dark);
  font-size:.76rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.065em;
}

/* Details e box apribili */
.details-panel,
.ifb-all-data{
  overflow:hidden;
  background:var(--ifb-soft);
}

.details-panel > summary,
.ifb-all-data summary{
  display:flex;
  align-items:center;
  min-height:46px;
  padding:10px 13px;
  border-bottom:1px solid transparent;
  cursor:pointer;
}

.details-panel[open] > summary,
.ifb-all-data[open] summary{
  border-bottom-color:var(--line);
  background:var(--panel-soft);
}

/* Header, sidebar, navigazione: stesso linguaggio console */
.app-topbar,
.app-sidebar,
.app-footer{
  background:var(--ifb-soft);
}

.quick-nav a,
.nav-row a,
.nav-back,
.nav-row-title span{
  border-radius:3px;
}

.quick-nav a:hover,
.nav-row a:hover,
.nav-next:hover,
.nav-back:hover{
  background:var(--panel-soft);
}

.nav-row.is-current>a,
.nav-row.current-menu-item>a,
.nav-row.current-menu-ancestor>a{
  border-left:3px solid var(--accent);
}

/* Card operative: archivi, appalti, carpenterie, articoli */
.archive-item,
.card,
.ifb-company-card,
.ifb-result-card{
  padding:18px;
}

.archive-item-meta,
.ifb-card-mini,
.ifb-company-legal{
  color:var(--muted);
}

.card-appalto,
.sheet-appalto .sheet-hero,
.ifb-result-card{
  border-left:4px solid var(--tender-accent);
}

.card-carpenteria,
.sheet-carpenteria .sheet-hero,
.ifb-company-card{
  border-left:4px solid var(--company-accent);
}

/* Pannelli avviso e note */
.notice,
.claim-box,
.ifb-context-box,
.ifb-policy-box,
.ifb-policy-small{
  background:var(--panel-soft);
  border-left:4px solid var(--accent);
}

.claim-box{
  padding:16px;
}

/* Azioni contatto coerenti */
.contact-actions,
.sheet-actions,
.ifb-mini-actions,
.ifb-filter-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.contact-actions .button,
.sheet-actions .button,
.ifb-mini-actions .button{
  min-height:40px;
  padding:8px 12px;
}

/* Filter bar generica identica alla console */
.filter-bar,
.archive-tools .ifb-filter-form:not(:has(input[name="ifb_need"])){
  position:relative;
  padding:22px;
  margin:0 0 18px;
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  background:var(--ifb-panel-gradient);
  border-radius:4px;
}

.filter-bar label,
.archive-tools .ifb-filter-form label{
  display:grid;
  gap:6px;
  margin:0;
}

/* Mobile: la stessa identità resta leggibile */
@media (max-width:760px){
  .workspace-head,
  .panel,
  .article,
  .tool,
  .filter-bar,
  .sheet-hero,
  .technical-sheet .panel,
  .archive-tools .ifb-filter-form{
    padding:16px;
  }

  .contact-actions,
  .sheet-actions,
  .ifb-mini-actions,
  .ifb-filter-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .button,
  button,
  input[type="submit"],
  .ifb-btn,
  .contact-actions .button,
  .sheet-actions .button{
    width:100%;
  }
}


/* Sidebar applicazione: stessa identica grammatica dei filtri tecnici */
.app-sidebar{
  background:var(--panel-soft);
  border-right:1px solid var(--line);
  box-shadow:inset -1px 0 0 color-mix(in srgb, var(--paper) 65%, transparent);
}

.sidebar-head{
  margin:10px;
  height:auto;
  min-height:58px;
  padding:12px 14px;
  background:var(--ifb-soft);
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  border-radius:4px;
}

.sidebar-head strong,
.sidebar-title,
.app-sidebar .eyebrow{
  color:var(--accent-dark);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.quick-nav{
  margin:0 10px 10px;
  padding:12px;
  background:var(--ifb-soft);
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  border-radius:4px;
}

.quick-nav a{
  min-height:40px;
  background:var(--panel-soft);
  border:1px solid var(--line);
  color:var(--text);
  font-weight:700;
}

.nav-tree{
  margin:0 10px 10px;
  height:calc(100vh - var(--topbar) - 104px);
  background:var(--ifb-soft);
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  border-radius:4px;
}

.nav-level{
  padding:12px;
  background:var(--ifb-soft);
}

.nav-row{
  margin:0 0 7px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--ifb-soft);
  overflow:hidden;
}

.nav-row:not(.nav-row-title):hover{
  border-color:var(--ifb-soft);
}

.nav-row:not(.nav-row-title)>a{
  min-height:44px;
  padding:10px 12px;
  font-weight:650;
}

.nav-row a:hover,
.nav-next:hover,
.nav-back:hover,
.quick-nav a:hover{
  background:var(--panel-soft);
}

.nav-next{
  min-height:44px;
  border-left:1px solid var(--line);
  background:var(--ifb-soft);
  font-weight:900;
}

.nav-row-title{
  margin:0 0 8px;
  padding:0;
  border:0;
  background:transparent;
}

.nav-row-title span{
  min-height:auto;
  padding:4px 2px 8px;
  color:var(--accent-dark);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.nav-row-back{
  border-color:var(--line);
  background:var(--panel-soft);
}

.nav-back{
  min-height:42px;
  padding:9px 12px;
  font-weight:850;
  color:var(--accent-dark);
  background:var(--panel-soft);
}

.nav-row.is-current,
.nav-row.current-menu-item,
.nav-row.current-menu-ancestor{
  border-color:var(--ifb-accent);
  box-shadow:inset 4px 0 0 var(--accent);
}

.nav-row.is-current>a,
.nav-row.current-menu-item>a,
.nav-row.current-menu-ancestor>a{
  border-left:0;
  background:var(--panel-soft);
  color:var(--accent-dark);
}

.sidebar-empty{
  margin:10px;
  background:var(--ifb-soft);
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  border-radius:4px;
}

@media (max-width:1023px){
  .app-sidebar{
    background:var(--panel-soft);
    border-right:1px solid var(--line);
  }

  .sidebar-head{
    margin:10px;
    min-height:54px;
  }

  .nav-tree{
    height:calc(100vh - 84px);
    margin:0 10px 10px;
  }
}


/* 0.2.15 - Uniformazione forte di barra alta, sidebar e footer alla grafica filtro */
.app-topbar{
  height:auto !important;
  min-height:var(--topbar) !important;
  padding:10px 18px !important;
  background:var(--panel-soft) !important;
  border-bottom:1px solid var(--line) !important;
  box-shadow:none !important;
}

.app-topbar .nav-toggle,
.app-brand{
  min-height:42px !important;
  display:inline-flex !important;
  align-items:center !important;
  padding:9px 13px !important;
  background:var(--ifb-soft) !important;
  border:1px solid var(--line) !important;
  border-top:4px solid var(--accent) !important;
  border-radius:4px !important;
  color:var(--accent-dark) !important;
  font-weight:900 !important;
  letter-spacing:.075em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
}

.app-topbar .nav-toggle{
  gap:8px !important;
  color:var(--text) !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.app-topbar .nav-toggle:hover,
.app-brand:hover{
  background:var(--ifb-panel-gradient) !important;
  border-color:var(--ifb-soft) !important;
}

.app-sidebar{
  padding:10px !important;
  background:var(--panel-soft) !important;
  border-right:1px solid var(--line) !important;
  overflow:hidden !important;
}

.sidebar-head,
.quick-nav,
.nav-tree,
.sidebar-empty{
  margin:0 0 10px !important;
  background:var(--ifb-panel-gradient) !important;
  border:1px solid var(--line) !important;
  border-top:4px solid var(--accent) !important;
  border-radius:4px !important;
  box-shadow:none !important;
}

.sidebar-head{
  min-height:58px !important;
  height:auto !important;
  padding:12px 14px !important;
}

.sidebar-head strong,
.sidebar-title{
  color:var(--accent-dark) !important;
  font-size:.82rem !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}

.nav-close{
  width:38px !important;
  height:38px !important;
  border:1px solid var(--line) !important;
  border-top:4px solid var(--accent) !important;
  background:var(--ifb-soft) !important;
  color:var(--accent-dark) !important;
  border-radius:4px !important;
  font-weight:900 !important;
}

.quick-nav{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px !important;
  padding:12px !important;
}

.quick-nav a,
.nav-row:not(.nav-row-title):not(.nav-row-back),
.nav-row-back,
.nav-next,
.nav-back{
  background:var(--ifb-soft) !important;
}

.quick-nav a,
.nav-row a,
.nav-next,
.nav-back{
  border-radius:4px !important;
}

.quick-nav a{
  min-height:42px !important;
  border:1px solid var(--line) !important;
  padding:9px 11px !important;
  color:var(--text) !important;
  font-weight:750 !important;
  text-decoration:none !important;
}

.nav-tree{
  height:calc(100vh - var(--topbar) - 30px) !important;
  padding:12px !important;
  overflow:hidden !important;
}

.nav-level{
  padding:0 !important;
  background:transparent !important;
}

.nav-row{
  margin:0 0 8px !important;
  border:1px solid var(--line) !important;
  border-radius:4px !important;
  background:var(--ifb-soft) !important;
  overflow:hidden !important;
}

.nav-row:not(.nav-row-title)>a,
.nav-next,
.nav-back{
  min-height:44px !important;
  padding:10px 12px !important;
  color:var(--text) !important;
  font-weight:700 !important;
  text-decoration:none !important;
}

.nav-row:not(.nav-row-title)>a:hover,
.nav-next:hover,
.nav-back:hover,
.quick-nav a:hover{
  background:var(--panel-soft) !important;
}

.nav-next{
  border-left:1px solid var(--line) !important;
  border-top:0 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  color:var(--accent-dark) !important;
  font-size:1.2rem !important;
  font-weight:900 !important;
}

.nav-row-title{
  margin:0 0 10px !important;
  border:0 !important;
  background:transparent !important;
}

.nav-row-title span{
  min-height:auto !important;
  padding:2px 0 8px !important;
  color:var(--accent-dark) !important;
  font-size:.76rem !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}

.nav-row-back{
  border-top:4px solid var(--accent) !important;
}

.nav-back{
  justify-content:flex-start !important;
  color:var(--accent-dark) !important;
  background:var(--ifb-soft) !important;
}

.nav-row.is-current,
.nav-row.current-menu-item,
.nav-row.current-menu-ancestor{
  border-color:var(--ifb-accent) !important;
  box-shadow:inset 4px 0 0 var(--accent) !important;
}

.nav-row.is-current>a,
.nav-row.current-menu-item>a,
.nav-row.current-menu-ancestor>a{
  color:var(--accent-dark) !important;
  background:var(--panel-soft) !important;
}

.app-footer{
  margin:0 !important;
  padding:10px 18px !important;
  background:var(--panel-soft) !important;
  border-top:1px solid var(--line) !important;
}

.app-footer p{
  display:inline-flex !important;
  align-items:center !important;
  min-height:38px !important;
  margin:0 !important;
  padding:8px 12px !important;
  background:var(--ifb-soft) !important;
  border:1px solid var(--line) !important;
  border-top:4px solid var(--accent) !important;
  border-radius:4px !important;
  color:var(--muted) !important;
  font-weight:650 !important;
}

@media (max-width:1023px){
  .app-topbar{padding:8px 10px !important;}
  .app-topbar .nav-toggle,.app-brand{min-height:40px !important;padding:8px 11px !important;}
  .app-sidebar{padding:10px !important;background:var(--panel-soft) !important;}
  .sidebar-head{min-height:54px !important;}
  .nav-tree{height:calc(100vh - 84px) !important;}
}


/* 0.2.16: shell applicativa grigio-azzurra professionale */
:root{
  --app-chrome:var(--ifb-soft);
  --app-chrome-soft:var(--ifb-soft);
  --app-chrome-panel:var(--ifb-soft);
  --app-chrome-line:var(--ifb-accent);
  --app-chrome-accent:var(--ifb-accent);
  --app-chrome-accent-dark:var(--ifb-accent);
}

.app-topbar{
  background:linear-gradient(180deg,var(--app-chrome-soft),var(--app-chrome)) !important;
  border-bottom:1px solid var(--app-chrome-line) !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 72%, transparent) inset !important;
}

.app-brand,
.app-topbar .nav-toggle{
  background:color-mix(in srgb, var(--paper) 74%, transparent) !important;
  border:1px solid var(--app-chrome-line) !important;
  border-top:4px solid var(--app-chrome-accent) !important;
  color:var(--app-chrome-accent-dark) !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 78%, transparent) inset !important;
}

.app-brand:hover,
.app-topbar .nav-toggle:hover{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
}

.app-sidebar{
  background:linear-gradient(180deg,var(--app-chrome-soft),var(--app-chrome)) !important;
  border-right:1px solid var(--app-chrome-line) !important;
  box-shadow:1px 0 0 color-mix(in srgb, var(--paper) 62%, transparent) inset !important;
}

.sidebar-head{
  background:color-mix(in srgb, var(--paper) 48%, transparent) !important;
  border-bottom:1px solid var(--app-chrome-line) !important;
}

.sidebar-head strong,
.app-sidebar .eyebrow,
.nav-row-title span{
  color:var(--app-chrome-accent-dark) !important;
}

.quick-nav a,
.nav-row{
  background:color-mix(in srgb, var(--paper) 74%, transparent) !important;
  border-color:var(--app-chrome-line) !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 70%, transparent) inset !important;
}

.quick-nav a:hover,
.nav-row:not(.nav-row-title)>a:hover,
.nav-next:hover,
.nav-back:hover{
  background:var(--ifb-soft) !important;
}

.nav-row.is-current,
.nav-row.current-menu-item,
.nav-row.current-menu-ancestor{
  border-color:var(--ifb-accent) !important;
  box-shadow:inset 4px 0 0 var(--app-chrome-accent),0 1px 0 color-mix(in srgb, var(--paper) 70%, transparent) inset !important;
}

.nav-row.is-current>a,
.nav-row.current-menu-item>a,
.nav-row.current-menu-ancestor>a{
  color:var(--app-chrome-accent-dark) !important;
  background:color-mix(in srgb, var(--paper) 88%, transparent) !important;
}

.nav-next{
  border-left:1px solid var(--app-chrome-line) !important;
  color:var(--app-chrome-accent-dark) !important;
}

.nav-back{
  color:var(--app-chrome-accent-dark) !important;
  background:color-mix(in srgb, var(--paper) 78%, transparent) !important;
}

.app-footer{
  background:linear-gradient(180deg,var(--app-chrome-soft),var(--app-chrome)) !important;
  border-top:1px solid var(--app-chrome-line) !important;
}

.app-footer p{
  border-color:var(--app-chrome-line) !important;
  border-top-color:var(--app-chrome-accent) !important;
  color:var(--app-chrome-accent-dark) !important;
}

@media (max-width:1023px){
  .app-sidebar{
    background:linear-gradient(180deg,var(--app-chrome-soft),var(--app-chrome)) !important;
  }
}

/* 0.2.17: chrome app grigio-azzurro forzato + cache bust corretta */
:root{
  --ifb-app-bluegray-1:var(--ifb-soft);
  --ifb-app-bluegray-2:var(--ifb-soft);
  --ifb-app-bluegray-3:var(--ifb-soft);
  --ifb-app-bluegray-4:var(--ifb-accent);
  --ifb-app-bluegray-5:var(--ifb-text);
}

body.app .app-topbar,
body .app-topbar{
  background:linear-gradient(180deg,var(--ifb-app-bluegray-1) 0%,var(--ifb-app-bluegray-2) 100%) !important;
  border-bottom:1px solid var(--ifb-app-bluegray-3) !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 85%, transparent) inset,0 1px 2px color-mix(in srgb, var(--steelcolor) 8%, transparent) !important;
}

body.app .app-sidebar,
body .app-sidebar{
  background:linear-gradient(180deg,var(--ifb-app-bluegray-1) 0%,var(--ifb-app-bluegray-2) 100%) !important;
  border-right:1px solid var(--ifb-app-bluegray-3) !important;
  box-shadow:1px 0 0 color-mix(in srgb, var(--paper) 72%, transparent) inset,1px 0 3px color-mix(in srgb, var(--steelcolor) 7%, transparent) !important;
}

body.app .sidebar-head,
body .sidebar-head{
  background:color-mix(in srgb, var(--paper) 52%, transparent) !important;
  border-bottom:1px solid var(--ifb-app-bluegray-3) !important;
}

body.app .app-brand,
body.app .app-topbar .nav-toggle,
body .app-brand,
body .app-topbar .nav-toggle{
  background:color-mix(in srgb, var(--paper) 82%, transparent) !important;
  color:var(--ifb-app-bluegray-5) !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  border-top:4px solid var(--ifb-app-bluegray-4) !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 90%, transparent) inset !important;
}

body.app .quick-nav a,
body.app .nav-row,
body .quick-nav a,
body .nav-row{
  background:color-mix(in srgb, var(--paper) 78%, transparent) !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  color:var(--ifb-app-bluegray-5) !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 85%, transparent) inset !important;
}

body.app .nav-row a,
body.app .nav-next,
body.app .nav-back,
body .nav-row a,
body .nav-next,
body .nav-back{
  color:var(--ifb-app-bluegray-5) !important;
}

body.app .nav-level,
body .nav-level{
  background:transparent !important;
}

body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
  box-shadow:inset 4px 0 0 var(--ifb-app-bluegray-4),0 1px 0 color-mix(in srgb, var(--paper) 90%, transparent) inset !important;
}

body.app .nav-row-title,
body .nav-row-title{
  background:color-mix(in srgb, var(--paper) 56%, transparent) !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  border-top:4px solid var(--ifb-app-bluegray-4) !important;
  color:var(--ifb-app-bluegray-5) !important;
}

body.app .app-footer,
body .app-footer{
  background:linear-gradient(180deg,var(--ifb-app-bluegray-1) 0%,var(--ifb-app-bluegray-2) 100%) !important;
  border-top:1px solid var(--ifb-app-bluegray-3) !important;
}

@media (max-width:1023px){
  body.app .app-sidebar,
  body .app-sidebar{
    background:linear-gradient(180deg,var(--ifb-app-bluegray-1) 0%,var(--ifb-app-bluegray-2) 100%) !important;
  }
}


/* 0.2.18: fix definitivo sidebar slide/subcategorie
   Mantiene il grigio-azzurro app, ma riallinea livelli, righe, frecce e pannelli. */
body.app .app-sidebar,
body .app-sidebar{
  padding:10px !important;
  overflow:hidden !important;
}

body.app .sidebar-head,
body .sidebar-head{
  margin:0 0 10px !important;
  min-height:56px !important;
  height:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  padding:10px 12px !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  border-top:4px solid var(--ifb-app-bluegray-4) !important;
  border-radius:4px !important;
}

body.app .nav-tree,
body .nav-tree{
  position:relative !important;
  height:calc(100vh - var(--topbar) - 86px) !important;
  min-height:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  background:color-mix(in srgb, var(--paper) 38%, transparent) !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  border-top:4px solid var(--ifb-app-bluegray-4) !important;
  border-radius:4px !important;
}

body.app .nav-level,
body .nav-level{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:10px !important;
  list-style:none !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  background:transparent !important;
  transform:translateX(100%) !important;
  transition:transform .22s ease !important;
  z-index:1 !important;
}

body.app .nav-level.is-active,
body .nav-level.is-active{
  transform:translateX(0) !important;
  z-index:3 !important;
}

body.app .nav-level.is-parent,
body .nav-level.is-parent{
  transform:translateX(-100%) !important;
  z-index:2 !important;
}

body.app .nav-level,
body.app .nav-level li,
body .nav-level,
body .nav-level li{
  list-style:none !important;
  margin-left:0 !important;
  padding-left:0 !important;
}

body.app .nav-level li::marker,
body .nav-level li::marker{content:"" !important;}

body.app .nav-row,
body .nav-row{
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 0 7px !important;
  padding:0 !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  border-radius:4px !important;
  background:color-mix(in srgb, var(--paper) 78%, transparent) !important;
  overflow:hidden !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 85%, transparent) inset !important;
}

body.app .nav-row.has-children,
body .nav-row.has-children{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 44px !important;
  align-items:stretch !important;
}

body.app .nav-row:not(.has-children),
body .nav-row:not(.has-children),
body.app .nav-row-back,
body .nav-row-back,
body.app .nav-row-title,
body .nav-row-title{
  display:block !important;
}

body.app .nav-row a,
body.app .nav-back,
body.app .nav-row-title span,
body .nav-row a,
body .nav-back,
body .nav-row-title span{
  box-sizing:border-box !important;
  min-width:0 !important;
  width:100% !important;
  min-height:42px !important;
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  padding:9px 11px !important;
  color:var(--ifb-app-bluegray-5) !important;
  text-decoration:none !important;
  line-height:1.25 !important;
  overflow-wrap:anywhere !important;
}

body.app .nav-row.has-children > a,
body .nav-row.has-children > a{
  grid-column:1 !important;
  grid-row:1 !important;
}

body.app .nav-next,
body .nav-next{
  grid-column:2 !important;
  grid-row:1 !important;
  width:44px !important;
  min-width:44px !important;
  height:100% !important;
  min-height:42px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-left:1px solid var(--ifb-app-bluegray-3) !important;
  border-radius:0 !important;
  background:color-mix(in srgb, var(--paper) 28%, transparent) !important;
  color:var(--ifb-app-bluegray-5) !important;
  font-size:1.15rem !important;
  line-height:1 !important;
}

body.app .nav-row-title,
body .nav-row-title{
  background:color-mix(in srgb, var(--paper) 58%, transparent) !important;
  border-top:4px solid var(--ifb-app-bluegray-4) !important;
}

body.app .nav-row-title span,
body .nav-row-title span{
  min-height:38px !important;
  color:var(--ifb-app-bluegray-5) !important;
  font-size:.78rem !important;
  font-weight:900 !important;
  letter-spacing:.075em !important;
  text-transform:uppercase !important;
}

body.app .nav-row-back,
body .nav-row-back{
  border-color:var(--ifb-accent) !important;
}

body.app .nav-back,
body .nav-back{
  justify-content:flex-start !important;
  border:0 !important;
  background:color-mix(in srgb, var(--paper) 72%, transparent) !important;
  font-weight:850 !important;
}

body.app .nav-row:hover,
body .nav-row:hover{
  border-color:var(--ifb-accent) !important;
}

body.app .nav-row a:hover,
body.app .nav-next:hover,
body.app .nav-back:hover,
body .nav-row a:hover,
body .nav-next:hover,
body .nav-back:hover{
  background:var(--ifb-soft) !important;
}

body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
  box-shadow:inset 4px 0 0 var(--ifb-app-bluegray-4),0 1px 0 color-mix(in srgb, var(--paper) 90%, transparent) inset !important;
}

body.app .nav-row.is-current > a,
body.app .nav-row.current-menu-item > a,
body.app .nav-row.current-menu-ancestor > a,
body .nav-row.is-current > a,
body .nav-row.current-menu-item > a,
body .nav-row.current-menu-ancestor > a{
  background:color-mix(in srgb, var(--paper) 88%, transparent) !important;
  color:var(--ifb-app-bluegray-5) !important;
  font-weight:850 !important;
}

@media (max-width:1023px){
  body.app .app-sidebar,
  body .app-sidebar{
    width:min(90vw,360px) !important;
    height:100vh !important;
    padding:10px !important;
  }
  body.app .nav-tree,
  body .nav-tree{
    height:calc(100vh - 86px) !important;
  }
}


/* 0.2.21: badge desktop Indice Italfaber nella barra alta */
body.app .ifb-top-steel-index,
body .ifb-top-steel-index{
  margin-left:auto !important;
  min-height:42px !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  padding:9px 13px !important;
  background:color-mix(in srgb, var(--paper) 82%, transparent) !important;
  color:var(--ifb-app-bluegray-5) !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  border-top:4px solid var(--ifb-app-bluegray-4) !important;
  border-radius:4px !important;
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 90%, transparent) inset !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  line-height:1 !important;
}

body.app .ifb-top-steel-index:hover,
body .ifb-top-steel-index:hover{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
}

body.app .ifb-top-steel-label,
body .ifb-top-steel-label{
  font-size:.78rem !important;
  font-weight:850 !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
  color:var(--ifb-accent) !important;
}

body.app .ifb-top-steel-index strong,
body .ifb-top-steel-index strong{
  font-size:.9rem !important;
  font-weight:950 !important;
  color:var(--ifb-accent) !important;
}

@media (max-width:1023px){
  body.app .ifb-top-steel-index,
  body .ifb-top-steel-index{
    display:none !important;
  }
}


/* Mini correlati nelle card archivio: integrato con Lean Bunker Semantic Archive Mini */
.lb-semantic-archive-mini {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line, var(--ifb-soft));
    font-size: 14px;
    color: var(--muted, var(--ifb-accent));
}

.lb-semantic-archive-mini__label {
    display: inline-block;
    margin: 0 8px 6px 0;
    color: var(--ink-soft, var(--ifb-accent));
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: 12px;
}

.lb-semantic-archive-mini__links {
    display: inline;
}

.lb-semantic-archive-mini a {
    display: inline-block;
    margin: 4px 6px 4px 0;
    padding: 5px 9px;
    border: 1px solid var(--line, var(--ifb-soft));
    background: var(--ifb-soft);
    color: var(--accent-strong, var(--ifb-accent));
    text-decoration: none;
    border-radius: 3px;
    line-height: 1.35;
}

.lb-semantic-archive-mini a:hover {
    background: var(--ifb-soft);
    border-color: var(--ifb-accent);
}

@media (max-width: 700px) {
    .lb-semantic-archive-mini { font-size: 13px; }
    .lb-semantic-archive-mini__label { display: block; }
    .lb-semantic-archive-mini a { display: block; margin: 6px 0; }
}


/* 0.2.24: pulsante globale appalti/lavori coerente con tema Lean Console */
.if-submit-appalto-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:36px;
  padding:7px 11px;
  border:1px solid var(--line,var(--ifb-soft));
  background:var(--panel-soft,var(--ifb-soft));
  color:var(--accent-dark,var(--ifb-accent)) !important;
  text-decoration:none !important;
  border-radius:4px;
  line-height:1.15;
  box-shadow:none;
  white-space:nowrap;
}
.if-submit-appalto-btn:before{
  content:"+";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border:1px solid var(--ifb-accent);
  background:var(--ifb-soft);
  color:var(--accent-dark,var(--ifb-accent));
  font-size:14px;
  font-weight:800;
  line-height:1;
}
.if-submit-appalto-btn span{
  display:inline;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:var(--muted,var(--ifb-accent));
}
.if-submit-appalto-btn strong{
  display:inline;
  font-size:.86rem;
  font-weight:800;
  color:var(--text,var(--ifb-accent));
}
.if-submit-appalto-btn:hover{
  background:var(--ifb-soft);
  border-color:var(--ifb-accent);
  color:var(--accent-dark,var(--ifb-accent)) !important;
  filter:none;
}
.if-submit-appalto-float{
  display:none;
}
@media (max-width:1023px){
  .if-submit-appalto-top{display:none;}
  .if-submit-appalto-float{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:60;
    display:flex;
    min-height:50px;
    text-align:center;
    background:var(--ifb-soft);
    border-color:var(--ifb-soft);
    box-shadow:0 10px 24px color-mix(in srgb, var(--steelcolor) 16%, transparent);
  }
  body.app{padding-bottom:72px;}
}
@media (min-width:1024px){
  .if-submit-appalto-top{border-radius:4px;}
}


/* 0.2.25: palette industriale Italfaber - ferro, officina, appalti */
:root{
  --bg:var(--ifb-soft);
  --panel:var(--ifb-soft);
  --panel-soft:var(--ifb-soft);
  --text:var(--ifb-text);
  --muted:var(--ifb-text-muted);
  --line:var(--ifb-soft);
  --accent:var(--ifb-accent);
  --accent-dark:var(--ifb-accent);
  --ok:var(--ifb-accent);
  --danger:var(--ifb-accent);
  --ifb-iron-1:var(--ifb-soft);
  --ifb-iron-2:var(--ifb-soft);
  --ifb-iron-3:var(--ifb-accent);
  --ifb-iron-4:var(--ifb-accent);
  --ifb-iron-5:var(--ifb-text);
  --ifb-red:var(--ifb-accent);
  --ifb-red-dark:var(--ifb-accent);
}

body.app{
  background:var(--bg) !important;
  color:var(--text) !important;
}

body.app .app-topbar,
body .app-topbar,
body.app .app-sidebar,
body .app-sidebar,
body.app .app-footer,
body .app-footer{
  background:linear-gradient(180deg,var(--ifb-iron-1) 0%,var(--ifb-iron-2) 100%) !important;
  border-color:var(--ifb-iron-3) !important;
  box-shadow:none !important;
}

body.app .sidebar-head,
body .sidebar-head,
body.app .nav-tree,
body .nav-tree{
  background:color-mix(in srgb, var(--paper) 48%, transparent) !important;
  border-color:var(--ifb-iron-3) !important;
  border-top-color:var(--ifb-red) !important;
}

body.app .app-brand,
body.app .app-topbar .nav-toggle,
body .app-brand,
body .app-topbar .nav-toggle,
body.app .ifb-top-steel-index,
body .ifb-top-steel-index,
body.app .quick-nav a,
body.app .nav-row,
body .quick-nav a,
body .nav-row,
body.app .nav-row-title,
body .nav-row-title{
  background:var(--ifb-soft) !important;
  color:var(--ifb-iron-5) !important;
  border-color:var(--ifb-iron-3) !important;
  box-shadow:none !important;
}

body.app .app-brand,
body.app .app-topbar .nav-toggle,
body .app-brand,
body .app-topbar .nav-toggle,
body.app .ifb-top-steel-index,
body .ifb-top-steel-index,
body.app .nav-row-title,
body .nav-row-title{
  border-top-color:var(--ifb-red) !important;
}

body.app .nav-row a,
body.app .nav-next,
body.app .nav-back,
body .nav-row a,
body .nav-next,
body .nav-back,
body.app .sidebar-head strong,
body .sidebar-head strong,
body.app .app-sidebar .eyebrow,
body .app-sidebar .eyebrow,
body.app .nav-row-title span,
body .nav-row-title span{
  color:var(--ifb-iron-5) !important;
}

body.app .nav-next,
body .nav-next{
  border-left-color:var(--ifb-iron-3) !important;
  background:var(--ifb-soft) !important;
}

body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
  box-shadow:inset 4px 0 0 var(--ifb-red) !important;
}

body.app .nav-row.is-current > a,
body.app .nav-row.current-menu-item > a,
body.app .nav-row.current-menu-ancestor > a,
body .nav-row.is-current > a,
body .nav-row.current-menu-item > a,
body .nav-row.current-menu-ancestor > a{
  background:var(--ifb-soft) !important;
  color:var(--ifb-iron-5) !important;
}

body.app .nav-row:hover,
body .nav-row:hover,
body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .app-brand:hover,
body .app-brand:hover,
body.app .app-topbar .nav-toggle:hover,
body .app-topbar .nav-toggle:hover{
  border-color:var(--ifb-accent) !important;
  background:var(--ifb-soft) !important;
}

body.app .eyebrow,
body.app a,
body .eyebrow,
body a{
  color:var(--accent-dark);
}

body.app .button,
body .button,
body.app .pagination .current,
body .pagination .current{
  background:var(--ifb-iron-5) !important;
  border-color:var(--ifb-iron-5) !important;
  color:var(--ifb-soft) !important;
}

body.app .notice,
body.app blockquote,
body.app .ifb-context-box,
body.app .ifb-update-box,
body.app .ifb-archive-seo,
body .notice,
body blockquote,
body .ifb-context-box,
body .ifb-update-box,
body .ifb-archive-seo{
  border-left-color:var(--ifb-red) !important;
}

body.app .ifb-top-steel-label,
body .ifb-top-steel-label{
  color:var(--ifb-red-dark) !important;
}

body.app .ifb-top-steel-index strong,
body .ifb-top-steel-index strong{
  color:var(--ifb-iron-5) !important;
}

.if-submit-appalto-btn{
  border:1px solid var(--ifb-iron-3,var(--ifb-accent)) !important;
  background:var(--ifb-soft) !important;
  color:var(--ifb-iron-5,var(--ifb-accent)) !important;
  box-shadow:none !important;
}
.if-submit-appalto-btn:before{
  border-color:var(--ifb-red,var(--ifb-accent)) !important;
  background:var(--ifb-red,var(--ifb-accent)) !important;
  color:var(--ifb-soft) !important;
}
.if-submit-appalto-btn span{
  color:var(--ifb-red-dark,var(--ifb-accent)) !important;
}
.if-submit-appalto-btn strong{
  color:var(--ifb-iron-5,var(--ifb-accent)) !important;
}
.if-submit-appalto-btn:hover{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
}
@media (max-width:1023px){
  .if-submit-appalto-float{
    background:var(--ifb-soft) !important;
    border-color:var(--ifb-accent) !important;
    box-shadow:0 10px 24px color-mix(in srgb, var(--steelcolor) 20%, transparent) !important;
  }
}


/* 0.2.26: uniformazione totale - blu grigio scuro, zero rosso */
:root{
  --bg:var(--ifb-soft);
  --panel:var(--ifb-soft);
  --panel-soft:var(--ifb-soft);
  --text:var(--ifb-text);
  --muted:var(--ifb-text-muted);
  --line:var(--ifb-soft);
  --accent:var(--ifb-accent);
  --accent-dark:var(--ifb-accent);
  --ok:var(--ifb-accent);
  --danger:var(--ifb-accent);

  --steel-blue:var(--ifb-accent);
  --steel-blue-soft:var(--ifb-soft);
  --tender-accent:var(--ifb-accent);
  --tender-soft:var(--ifb-soft);
  --company-accent:var(--ifb-accent);
  --company-soft:var(--ifb-soft);
  --doc-accent:var(--ifb-accent);

  --ifb-app-bluegray-1:var(--ifb-soft);
  --ifb-app-bluegray-2:var(--ifb-soft);
  --ifb-app-bluegray-3:var(--ifb-accent);
  --ifb-app-bluegray-4:var(--ifb-accent);
  --ifb-app-bluegray-5:var(--ifb-text);

  --app-chrome:var(--ifb-soft);
  --app-chrome-soft:var(--ifb-soft);
  --app-chrome-panel:var(--ifb-soft);
  --app-chrome-line:var(--ifb-accent);
  --app-chrome-accent:var(--ifb-accent);
  --app-chrome-accent-dark:var(--ifb-accent);

  --ifb-iron-1:var(--ifb-soft);
  --ifb-iron-2:var(--ifb-soft);
  --ifb-iron-3:var(--ifb-accent);
  --ifb-iron-4:var(--ifb-accent);
  --ifb-iron-5:var(--ifb-text);
  --ifb-red:var(--ifb-accent);
  --ifb-red-dark:var(--ifb-accent);
  --ifb-unified-accent:var(--ifb-accent);
  --ifb-unified-accent-dark:var(--ifb-accent);
  --ifb-unified-soft:var(--ifb-soft);
  --ifb-unified-line:var(--ifb-accent);
}

body.app,
body{
  color:var(--text) !important;
}

body.app .app-topbar,
body .app-topbar,
body.app .app-sidebar,
body .app-sidebar,
body.app .app-footer,
body .app-footer{
  background:linear-gradient(180deg,var(--ifb-app-bluegray-1) 0%,var(--ifb-app-bluegray-2) 100%) !important;
  border-color:var(--ifb-unified-line) !important;
  box-shadow:none !important;
}

body.app .workspace-head,
body.app .panel,
body.app .article,
body.app .tool,
body.app .filter-bar,
body.app .sheet-hero,
body.app .technical-sheet .panel,
body.app .archive-tools .ifb-filter-form,
body.app .ifb-filter-form:has(input[name="ifb_need"]),
body.app .ifb-app-hero,
body.app .ifb-context-box,
body.app .ifb-archive-seo,
body .workspace-head,
body .panel,
body .article,
body .tool,
body .filter-bar,
body .sheet-hero,
body .technical-sheet .panel,
body .archive-tools .ifb-filter-form,
body .ifb-filter-form:has(input[name="ifb_need"]),
body .ifb-app-hero,
body .ifb-context-box,
body .ifb-archive-seo{
  border-color:var(--line) !important;
  border-top-color:var(--ifb-unified-accent) !important;
  background:linear-gradient(180deg,var(--ifb-soft) 0%,var(--ifb-unified-soft) 100%) !important;
}

body.app .card,
body.app .archive-item,
body.app .ifb-company-card,
body.app .ifb-result-card,
body.app .ifb-app-side .card,
body.app .ifb-sheet-block,
body.app .ifb-policy-box,
body.app .ifb-policy-small,
body .card,
body .archive-item,
body .ifb-company-card,
body .ifb-result-card,
body .ifb-app-side .card,
body .ifb-sheet-block,
body .ifb-policy-box,
body .ifb-policy-small{
  border-color:var(--line) !important;
  background:var(--ifb-soft) !important;
}

body.app .archive-post-item,
body.app .document:not(.technical-sheet),
body.app .card-appalto,
body.app .sheet-appalto .sheet-hero,
body.app .ifb-result-card,
body.app .card-carpenteria,
body.app .sheet-carpenteria .sheet-hero,
body.app .ifb-company-card,
body .archive-post-item,
body .document:not(.technical-sheet),
body .card-appalto,
body .sheet-appalto .sheet-hero,
body .ifb-result-card,
body .card-carpenteria,
body .sheet-carpenteria .sheet-hero,
body .ifb-company-card{
  border-left-color:var(--ifb-unified-accent) !important;
}

body.app .notice,
body.app blockquote,
body.app .claim-box,
body.app .ifb-context-box,
body.app .ifb-update-box,
body.app .ifb-archive-seo,
body.app .ifb-policy-box,
body.app .ifb-policy-small,
body .notice,
body blockquote,
body .claim-box,
body .ifb-context-box,
body .ifb-update-box,
body .ifb-archive-seo,
body .ifb-policy-box,
body .ifb-policy-small{
  border-left-color:var(--ifb-unified-accent) !important;
  background:var(--ifb-unified-soft) !important;
}

body.app .badge,
body.app .card-appalto .badge,
body.app .sheet-appalto .badge,
body.app .ifb-status-badge,
body.app .card-carpenteria .badge,
body.app .sheet-carpenteria .badge,
body.app .ifb-badge-verified,
body.app .ifb-tags span,
body.app .ifb-tags-large span,
body.app .ifb-pill-list a,
body.app .ifb-related-links a,
body .badge,
body .card-appalto .badge,
body .sheet-appalto .badge,
body .ifb-status-badge,
body .card-carpenteria .badge,
body .sheet-carpenteria .badge,
body .ifb-badge-verified,
body .ifb-tags span,
body .ifb-tags-large span,
body .ifb-pill-list a,
body .ifb-related-links a{
  background:var(--ifb-unified-soft) !important;
  border-color:var(--line) !important;
  color:var(--ifb-unified-accent-dark) !important;
}

body.app .app-brand,
body.app .app-topbar .nav-toggle,
body.app .ifb-top-steel-index,
body.app .sidebar-head,
body.app .quick-nav,
body.app .quick-nav a,
body.app .nav-tree,
body.app .nav-row,
body.app .nav-row-title,
body.app .nav-row-back,
body.app .nav-close,
body.app .app-footer p,
body .app-brand,
body .app-topbar .nav-toggle,
body .ifb-top-steel-index,
body .sidebar-head,
body .quick-nav,
body .quick-nav a,
body .nav-tree,
body .nav-row,
body .nav-row-title,
body .nav-row-back,
body .nav-close,
body .app-footer p{
  border-color:var(--ifb-unified-line) !important;
  border-top-color:var(--ifb-unified-accent) !important;
  color:var(--ifb-unified-accent-dark) !important;
  box-shadow:none !important;
}

body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  border-color:var(--ifb-accent) !important;
  box-shadow:inset 4px 0 0 var(--ifb-unified-accent) !important;
}

body.app .nav-row a,
body.app .nav-next,
body.app .nav-back,
body.app .sidebar-head strong,
body.app .app-sidebar .eyebrow,
body.app .nav-row-title span,
body .nav-row a,
body .nav-next,
body .nav-back,
body .sidebar-head strong,
body .app-sidebar .eyebrow,
body .nav-row-title span{
  color:var(--ifb-unified-accent-dark) !important;
}

body.app .nav-next,
body .nav-next{
  border-left-color:var(--ifb-unified-line) !important;
  background:var(--ifb-unified-soft) !important;
}

body.app a,
body.app .eyebrow,
body.app .breadcrumb a,
body.app .breadcrumb-wrap .lb-breadcrumb a,
body.app .ifb-breadcrumb a,
body.app .filter-bar:before,
body.app .archive-tools .ifb-filter-form:before,
body .eyebrow,
body a,
body .breadcrumb a,
body .breadcrumb-wrap .lb-breadcrumb a,
body .ifb-breadcrumb a,
body .filter-bar:before,
body .archive-tools .ifb-filter-form:before{
  color:var(--ifb-unified-accent-dark) !important;
}

body.app .button,
body.app button,
body.app input[type="submit"],
body.app .wp-element-button,
body.app .ifb-btn,
body.app .pagination .current,
body .button,
body button,
body input[type="submit"],
body .wp-element-button,
body .ifb-btn,
body .pagination .current{
  background:var(--ifb-unified-accent) !important;
  border-color:var(--ifb-unified-accent) !important;
  color:var(--ifb-soft) !important;
}

body.app .button-soft,
body.app .contact-actions .button[href^="tel:"],
body.app .contact-actions .button[href^="mailto:"],
body.app .contact-actions .button[target="_blank"],
body .button-soft,
body .contact-actions .button[href^="tel:"],
body .contact-actions .button[href^="mailto:"],
body .contact-actions .button[target="_blank"]{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-unified-line) !important;
  border-left-color:var(--ifb-unified-accent) !important;
  color:var(--ifb-unified-accent-dark) !important;
}

body.app input:focus,
body.app select:focus,
body.app textarea:focus,
body.app a:focus-visible,
body.app button:focus-visible,
body.app summary:focus-visible,
body input:focus,
body select:focus,
body textarea:focus,
body a:focus-visible,
body button:focus-visible,
body summary:focus-visible{
  outline-color:color-mix(in srgb, var(--steelcolor) 22%, transparent) !important;
  border-color:var(--ifb-unified-accent) !important;
}

body.app .ifb-top-steel-label,
body .ifb-top-steel-label,
body.app .if-submit-appalto-btn span,
body .if-submit-appalto-btn span{
  color:var(--ifb-unified-accent) !important;
}

body.app .ifb-top-steel-index strong,
body .ifb-top-steel-index strong,
body.app .if-submit-appalto-btn strong,
body .if-submit-appalto-btn strong{
  color:var(--ifb-unified-accent-dark) !important;
}

body.app .if-submit-appalto-btn,
body .if-submit-appalto-btn{
  background:var(--ifb-soft) !important;
  border:1px solid var(--ifb-unified-line) !important;
  color:var(--ifb-unified-accent-dark) !important;
  box-shadow:none !important;
}

body.app .if-submit-appalto-btn:before,
body .if-submit-appalto-btn:before{
  background:var(--ifb-unified-accent) !important;
  border-color:var(--ifb-unified-accent) !important;
  color:var(--ifb-soft) !important;
}

body.app .if-submit-appalto-btn:hover,
body .if-submit-appalto-btn:hover,
body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .nav-row a:hover,
body .nav-row a:hover,
body.app .nav-next:hover,
body .nav-next:hover,
body.app .nav-back:hover,
body .nav-back:hover{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
}

.lb-semantic-archive-mini__label,
.lb-semantic-archive-mini a{
  color:var(--ifb-unified-accent-dark) !important;
}
.lb-semantic-archive-mini a:hover{
  background:var(--ifb-unified-soft) !important;
  border-color:var(--ifb-unified-line) !important;
}


/* 0.2.27: sidebar tecnica destra desktop, indipendente e coerente con la console */
:root{
  --right-rail:300px;
}

@media (min-width:1280px){
  .app-shell{
    grid-template-columns:var(--sidebar) minmax(0,1fr) var(--right-rail) !important;
    grid-template-areas:"sidebar main rail" !important;
  }

  .ifb-right-rail{
    grid-area:rail;
    position:sticky;
    top:var(--topbar);
    height:calc(100vh - var(--topbar));
    overflow:hidden;
    border-left:1px solid var(--line);
    background:linear-gradient(180deg,var(--ifb-soft) 0%,var(--ifb-soft) 100%);
  }

  .ifb-rail-inner{
    height:100%;
    overflow-y:auto;
    padding:12px;
    display:grid;
    align-content:start;
    gap:12px;
  }
}

@media (max-width:1279px){
  .ifb-right-rail{display:none !important;}
}

.ifb-rail-card{
  border:1px solid var(--line);
  border-top:4px solid var(--accent-dark);
  background:color-mix(in srgb, var(--paper) 82%, transparent);
  box-shadow:0 1px 0 color-mix(in srgb, var(--paper) 72%, transparent) inset;
  padding:12px;
}

.ifb-rail-card h2{
  margin:0 0 10px;
  font-size:.88rem;
  line-height:1.25;
  color:var(--accent-dark);
  text-transform:uppercase;
  letter-spacing:.06em;
}

.ifb-rail-kicker{
  margin:0 0 4px;
  color:var(--muted);
  font-size:.72rem;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.ifb-rail-links,
.ifb-rail-mini-list{
  display:grid;
  gap:7px;
}

.ifb-rail-link,
.ifb-rail-mini-list a{
  display:grid;
  gap:2px;
  padding:9px 10px;
  border:1px solid var(--line);
  background:var(--ifb-soft);
  color:var(--text);
  text-decoration:none;
}

.ifb-rail-link strong,
.ifb-rail-mini-list strong{
  font-size:.92rem;
  line-height:1.25;
  color:var(--text);
}

.ifb-rail-link span,
.ifb-rail-mini-list span{
  color:var(--muted);
  font-size:.78rem;
  line-height:1.35;
}

.ifb-rail-link:hover,
.ifb-rail-mini-list a:hover{
  border-color:var(--accent);
  background:var(--panel-soft);
}

.ifb-rail-link.is-primary{
  border-color:var(--accent-dark);
  background:linear-gradient(180deg,var(--ifb-soft),var(--ifb-soft));
  box-shadow:inset 4px 0 0 var(--accent-dark);
}

.ifb-rail-note p{
  margin:0;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.5;
}

.ifb-rail-latest h2{
  margin-bottom:9px;
}

@media (min-width:1280px) and (max-width:1480px){
  :root{--right-rail:280px;--sidebar:300px;}
  .app-main{padding-inline:18px !important;}
}


/* 0.2.28: Science Gothic solo per titoli e interfaccia tecnica */
:root{
  --ifb-title-font:"Science Gothic", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.app-brand,
.workspace-head h1,
.document-head h1,
.document-body h1,
.document-body h2,
.document-body h3,
.section-title,
.card-title,
.card h2,
.card h3,
.panel h2,
.panel h3,
.article h1,
.article h2,
.article h3,
.archive-item-title,
.ifb-form-title,
.ifb-form-section-title,
.ifb-filter-form:before,
.ifb-app-panel h2,
.ifb-side-card h2,
.ifb-app-warning h2,
.ifb-rail-card h2,
.ifb-rail-link strong,
.ifb-rail-mini-list strong,
.sheet-hero h1,
.sheet-main h2,
.sheet-side h2,
.details-panel > summary,
.nav-row-title,
.eyebrow,
.badge,
.button,
.ifb-btn,
.if-submit-appalto-btn,
.ifb-top-steel-index,
.ifb-app-kpi span,
.ifb-kpi span,
.ifb-data-item dt,
.ifb-side-row span,
.ifb-filter-grid label,
.ifb-front-form label span{
  font-family:var(--ifb-title-font);
  font-optical-sizing:auto;
}

.workspace-head h1,
.document-head h1,
.article h1,
.sheet-hero h1{
  font-weight:800;
  letter-spacing:-.018em;
}

.document-body h2,
.document-body h3,
.card-title,
.card h2,
.card h3,
.panel h2,
.panel h3,
.archive-item-title,
.ifb-rail-card h2,
.ifb-form-title,
.ifb-form-section-title{
  font-weight:720;
  letter-spacing:-.006em;
}

.eyebrow,
.badge,
.nav-row-title,
.ifb-rail-kicker,
.ifb-app-kpi span,
.ifb-kpi span,
.ifb-data-item dt,
.ifb-side-row span,
.ifb-filter-grid label,
.ifb-front-form label span{
  font-weight:700;
  letter-spacing:.055em;
}

.button,
.ifb-btn,
.if-submit-appalto-btn,
.ifb-top-steel-index,
.details-panel > summary{
  font-weight:700;
}


/* 0.2.29: applicazione più esplicita di Science Gothic su titoli e UI tecnica */
:root{
  --ifb-title-font:"Science Gothic", "Arial Narrow", "Segoe UI", system-ui, sans-serif;
}

h1,h2,h3,h4,h5,h6,
.app-brand,
.workspace-head h1,
.document-head h1,
.document-body h1,
.document-body h2,
.document-body h3,
.section-title,
.card-title,
.card h2,
.card h3,
.panel h2,
.panel h3,
.article h1,
.article h2,
.article h3,
.archive-item-title,
.ifb-form-title,
.ifb-form-section-title,
.ifb-app-panel h2,
.ifb-side-card h2,
.ifb-app-warning h2,
.ifb-rail-card h2,
.ifb-rail-link strong,
.ifb-rail-mini-list strong,
.sheet-hero h1,
.sheet-main h2,
.sheet-side h2,
.details-panel > summary,
.nav-row-title,
.eyebrow,
.badge,
.button,
.ifb-btn,
.if-submit-appalto-btn,
.ifb-top-steel-index,
.ifb-app-kpi span,
.ifb-kpi span,
.ifb-data-item dt,
.ifb-side-row span,
.ifb-filter-grid label,
.ifb-front-form label span{
  font-family:var(--ifb-title-font) !important;
  font-optical-sizing:auto;
  font-variation-settings:"wght" 760;
}

h1,
.workspace-head h1,
.document-head h1,
.article h1,
.sheet-hero h1{
  font-weight:800 !important;
  letter-spacing:-.012em;
}

h2,h3,
.document-body h2,
.document-body h3,
.card-title,
.card h2,
.card h3,
.panel h2,
.panel h3,
.archive-item-title,
.ifb-rail-card h2,
.ifb-form-title,
.ifb-form-section-title{
  font-weight:740 !important;
  letter-spacing:-.004em;
}

.eyebrow,
.badge,
.nav-row-title,
.ifb-rail-kicker,
.ifb-app-kpi span,
.ifb-kpi span,
.ifb-data-item dt,
.ifb-side-row span,
.ifb-filter-grid label,
.ifb-front-form label span{
  font-weight:700 !important;
  letter-spacing:.055em;
}

.button,
.ifb-btn,
.if-submit-appalto-btn,
.ifb-top-steel-index,
.details-panel > summary{
  font-weight:700 !important;
}


/* 0.2.30: Science Gothic anche sul menu, ma controllato e leggibile */
body.app .app-sidebar .sidebar-head strong,
body .app-sidebar .sidebar-head strong,
body.app .app-sidebar .quick-nav a,
body .app-sidebar .quick-nav a,
body.app .app-sidebar .nav-row > a,
body .app-sidebar .nav-row > a,
body.app .app-sidebar .nav-back,
body .app-sidebar .nav-back,
body.app .app-sidebar .nav-next,
body .app-sidebar .nav-next,
body.app .app-sidebar .nav-row-title span,
body .app-sidebar .nav-row-title span,
body.app .app-sidebar .nav-count,
body .app-sidebar .nav-count,
body.app .app-actions a,
body .app-actions a{
  font-family:var(--ifb-title-font) !important;
  font-optical-sizing:auto;
}

body.app .app-sidebar .nav-row > a,
body .app-sidebar .nav-row > a,
body.app .app-sidebar .quick-nav a,
body .app-sidebar .quick-nav a{
  font-weight:620 !important;
  letter-spacing:.006em;
  line-height:1.22;
}

body.app .app-sidebar .nav-row-title span,
body .app-sidebar .nav-row-title span,
body.app .app-sidebar .nav-back,
body .app-sidebar .nav-back,
body.app .app-sidebar .sidebar-head strong,
body .app-sidebar .sidebar-head strong{
  font-weight:760 !important;
  letter-spacing:.045em;
}

body.app .app-sidebar .nav-row.current-menu-item > a,
body.app .app-sidebar .nav-row.current-menu-ancestor > a,
body .app-sidebar .nav-row.current-menu-item > a,
body .app-sidebar .nav-row.current-menu-ancestor > a{
  font-weight:780 !important;
}

body.app .app-sidebar .nav-count,
body .app-sidebar .nav-count{
  font-weight:650 !important;
  letter-spacing:.02em;
}

body.app .app-actions a,
body .app-actions a{
  font-weight:650 !important;
  letter-spacing:.018em;
}


/* 0.2.32 - Card funzionali globali uniformate allo stile carpenterie */
.ifb-home-tools{margin-bottom:16px;}
.ifb-home-tools .section-title{margin:0 0 10px;width:auto;}
.ifb-tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
.ifb-tool-grid .ifb-rail-link{min-height:88px;background:var(--panel);}
.ifb-stats-panel{margin-top:12px;margin-bottom:16px;}
.ifb-stat-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.ifb-stat-card{display:grid;align-content:start;gap:6px;min-height:104px;border-left:4px solid var(--company-accent);background:var(--panel);box-shadow:var(--shadow-soft);}
.ifb-stat-card span{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 8px;border:1px solid var(--ifb-soft);background:var(--company-soft);color:var(--accent-dark);font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.055em;}
.ifb-stat-card strong{font-family:var(--ifb-title-font);font-size:clamp(1.3rem,2vw,1.82rem);line-height:1.05;color:var(--text);letter-spacing:.01em;}
.ifb-stat-card em{font-style:normal;color:var(--muted);font-size:.86rem;line-height:1.35;}
.ifb-stats-panel.is-appalti .ifb-stat-card{border-left-color:var(--tender-accent);}
.ifb-stats-panel.is-appalti .ifb-stat-card span{border-color:var(--ifb-soft);background:var(--ifb-soft);color:var(--steel-blue);}
.ifb-stats-panel.is-articles .ifb-stat-card{border-left-color:var(--doc-accent);}
.ifb-stats-panel.is-articles .ifb-stat-card span{border-color:var(--ifb-soft);background:var(--panel-soft);color:var(--accent-dark);}
.ifb-right-rail .ifb-stat-card{min-height:auto;padding:11px 12px;}
@media (max-width:900px){.ifb-tool-grid,.ifb-stat-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.ifb-tool-grid,.ifb-stat-grid{grid-template-columns:1fr;}.ifb-stat-card{min-height:auto;}}


/* 0.2.40 - Giornale cercabile, area produttiva e barra contatti sticky */
body.app{padding-bottom:86px;}
.ifb-news-search{margin-top:16px;margin-bottom:18px;padding:18px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--panel-soft));border-radius:var(--radius);}
.ifb-news-search-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:12px;}
.ifb-news-search h2{margin:0;font-size:clamp(1.25rem,2vw,1.85rem);}
.ifb-news-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;}
.ifb-news-search-form input{min-height:52px;width:100%;border:1px solid var(--line);background:var(--ifb-soft);padding:12px 14px;font-size:1.02rem;}
.ifb-news-search-form button{min-height:52px;border:1px solid var(--accent);background:var(--accent);color:var(--ifb-soft);padding:0 22px;font-weight:800;cursor:pointer;}
.ifb-news-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.ifb-news-filters a{display:inline-flex;align-items:center;min-height:34px;padding:6px 10px;border:1px solid var(--line);background:var(--ifb-soft);color:var(--text);text-decoration:none;font-size:.9rem;font-weight:650;}
.ifb-news-filters a:hover{border-color:var(--accent);color:var(--accent-dark);}
.ifb-productive-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:16px;margin-bottom:18px;padding:20px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--panel);border-radius:var(--radius);box-shadow:0 10px 28px color-mix(in srgb, var(--steelcolor) 6%, transparent);}
.ifb-productive-copy h2{margin:.1rem 0 .35rem;font-size:clamp(1.25rem,2vw,1.8rem);}
.ifb-productive-copy p:last-child{margin:0;color:var(--muted);max-width:760px;}
.ifb-productive-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;}
.ifb-contact-sticky{position:fixed;left:50%;bottom:12px;z-index:999;transform:translateX(-50%);width:min(calc(100% - 24px),1040px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:8px;border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 96%, transparent);backdrop-filter:blur(10px);box-shadow:0 12px 35px color-mix(in srgb, var(--steelcolor) 18%, transparent);border-radius:18px;}
.ifb-contact-item{min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);text-decoration:none;border-radius:12px;}
.ifb-contact-item span{grid-row:1/3;font-size:1.2rem;line-height:1;}
.ifb-contact-item strong{font-size:.92rem;line-height:1.1;}
.ifb-contact-item em{font-style:normal;color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ifb-contact-item:hover{border-color:var(--accent);background:var(--ifb-soft);color:var(--accent-dark);}
.ifb-contact-item.is-call,.ifb-contact-item.is-whatsapp{background:var(--ifb-soft);}
@media (max-width:900px){.ifb-productive-panel{grid-template-columns:1fr}.ifb-productive-actions{justify-content:flex-start}.ifb-contact-sticky{grid-template-columns:repeat(5,1fr);bottom:0;width:100%;border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0}.ifb-contact-item{min-height:54px;padding:7px 5px;display:flex;flex-direction:column;justify-content:center;gap:2px;text-align:center}.ifb-contact-item em{display:none}.ifb-contact-item span{font-size:1.15rem}.ifb-contact-item strong{font-size:.75rem}}
@media (max-width:640px){body.app{padding-bottom:74px}.ifb-news-search-form{grid-template-columns:1fr}.ifb-news-search-form button{width:100%}.ifb-contact-sticky{gap:4px;padding:6px}.ifb-contact-item{border-radius:10px}.ifb-contact-item.is-mail{display:none}.ifb-contact-sticky{grid-template-columns:repeat(4,1fr)}}

/* 0.2.41 - Ricerca giornale più ordinata e icone sticky a tema */
.ifb-news-search{margin-top:14px;margin-bottom:18px;padding:18px 20px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));background:linear-gradient(180deg,var(--ifb-soft),var(--panel-soft));border-radius:14px;box-shadow:0 8px 24px color-mix(in srgb, var(--steelcolor) 4%, transparent);}
.ifb-news-search-top{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(340px,1.25fr) auto;gap:18px;align-items:center;}
.ifb-news-search-title{display:flex;gap:12px;align-items:flex-start;min-width:0;}
.ifb-news-search-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent-dark);flex:0 0 auto;}
.ifb-news-search-icon svg{width:28px;height:28px;display:block;}
.ifb-news-search .eyebrow{margin:0 0 3px;color:var(--accent-dark);}
.ifb-news-search h2{margin:0;font-size:clamp(1.05rem,1.35vw,1.35rem);letter-spacing:.01em;text-transform:uppercase;color:var(--accent-dark);}
.ifb-news-search-title p:last-child{margin:.25rem 0 0;color:var(--muted);font-size:.92rem;}
.ifb-news-search-form{display:grid;grid-template-columns:minmax(0,1fr) 94px;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--ifb-soft);}
.ifb-news-search-form input{min-height:46px;border:0;background:var(--ifb-soft);padding:10px 14px;font-size:.98rem;outline:none;}
.ifb-news-search-form input:focus{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent);}
.ifb-news-search-form button{min-height:46px;border:0;background:var(--accent);color:var(--ifb-soft);padding:0 18px;font-weight:850;cursor:pointer;text-transform:uppercase;font-size:.86rem;}
.ifb-news-date-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:260px;}
.ifb-news-date-filters>span,.ifb-news-category-row>strong{width:100%;display:block;color:var(--accent-dark);font-weight:850;text-transform:uppercase;font-size:.82rem;letter-spacing:.035em;}
.ifb-news-date-filters a,.ifb-news-filters a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;border:1px solid var(--line);background:var(--ifb-soft);color:var(--accent-dark);text-decoration:none;font-size:.86rem;font-weight:750;border-radius:5px;white-space:nowrap;}
.ifb-news-date-filters a.is-active,.ifb-news-filters a.is-main{background:var(--accent);border-color:var(--accent);color:var(--ifb-soft);}
.ifb-news-date-filters a svg,.ifb-news-filters a svg{width:18px;height:18px;display:block;}
.ifb-news-category-row{margin-top:16px;}
.ifb-news-category-row>strong{margin-bottom:8px;}
.ifb-news-filters{display:flex;flex-wrap:wrap;gap:8px;}
.ifb-news-filters a:hover,.ifb-news-date-filters a:hover{border-color:var(--accent);box-shadow:0 4px 12px color-mix(in srgb, var(--steelcolor) 6%, transparent);}
.ifb-contact-item span{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--accent-dark);}
.ifb-contact-item span svg{width:30px;height:30px;display:block;}
.ifb-contact-item:hover span{color:var(--accent);}
.ifb-contact-item.is-call,.ifb-contact-item.is-whatsapp{background:var(--panel-soft);}
@media (max-width:1100px){.ifb-news-search-top{grid-template-columns:1fr;align-items:stretch}.ifb-news-date-filters{justify-content:flex-start;min-width:0}.ifb-news-search-form{grid-template-columns:minmax(0,1fr) 88px}}
@media (max-width:640px){.ifb-news-search{padding:14px}.ifb-news-search-form{grid-template-columns:1fr}.ifb-news-search-form button{width:100%}.ifb-news-date-filters a,.ifb-news-filters a{flex:1 1 auto}.ifb-news-filters a.is-main{flex-basis:100%}.ifb-contact-item span{width:28px;height:28px}.ifb-contact-item span svg{width:26px;height:26px}}


/* 0.2.42 - Fix icone SVG: evita icone enormi a tutta pagina se il browser applica dimensioni anomale */
.ifb-news-search svg,
.ifb-contact-sticky svg{
    width:24px !important;
    height:24px !important;
    max-width:24px !important;
    max-height:24px !important;
    min-width:0 !important;
    min-height:0 !important;
    display:block;
    overflow:visible;
}
.ifb-news-search-icon svg{width:28px !important;height:28px !important;max-width:28px !important;max-height:28px !important;}
.ifb-contact-item span svg{width:30px !important;height:30px !important;max-width:30px !important;max-height:30px !important;}
.ifb-news-date-filters a svg,
.ifb-news-filters a svg{width:18px !important;height:18px !important;max-width:18px !important;max-height:18px !important;flex:0 0 18px;}
@media (max-width:640px){.ifb-contact-item span svg{width:26px !important;height:26px !important;max-width:26px !important;max-height:26px !important;}}


/* 0.2.43 - Ricerca giornale rifinita: campo grande, pulsante normale, filtri separati e tutte le categorie */
.ifb-news-search{
    max-width:var(--wide);
    padding:16px 18px !important;
}
.ifb-news-search-top{
    display:grid !important;
    grid-template-columns:minmax(210px,320px) minmax(420px,1fr) minmax(260px,auto) !important;
    gap:16px !important;
    align-items:start !important;
}
.ifb-news-search-form{
    width:100% !important;
    display:grid !important;
    grid-template-columns:minmax(260px,1fr) 112px !important;
    align-self:center !important;
    border-radius:8px !important;
}
.ifb-news-search-form input{
    width:100% !important;
    min-width:0 !important;
    min-height:44px !important;
}
.ifb-news-search-form button{
    width:auto !important;
    min-width:112px !important;
    max-width:130px !important;
    min-height:44px !important;
    padding:0 18px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:0 !important;
    line-height:1 !important;
}
.ifb-news-date-filters{
    justify-content:flex-start !important;
    align-content:start !important;
    gap:8px !important;
}
.ifb-news-category-row{
    margin-top:14px !important;
    padding-top:12px !important;
    border-top:1px solid var(--line);
}
.ifb-news-filters{
    gap:8px !important;
    align-items:flex-start !important;
}
.ifb-news-filters a,.ifb-news-date-filters a{
    margin:0 !important;
    min-height:36px !important;
    padding:7px 11px !important;
}
.ifb-news-search-title h2{font-size:1.08rem !important;}
.ifb-news-search-title p:last-child{font-size:.88rem !important;}
@media (max-width:1180px){
    .ifb-news-search-top{grid-template-columns:1fr !important;}
    .ifb-news-search-form{grid-template-columns:minmax(0,1fr) 104px !important;}
}
@media (max-width:640px){
    .ifb-news-search-form{grid-template-columns:1fr !important;}
    .ifb-news-search-form button{width:100% !important;max-width:none !important;border-radius:0 !important;}
}


/* 0.2.44 - Ricerca giornale corretta: input largo, pulsante normale, filtri chiari, categorie in menu a tendina */
.ifb-news-search{
    padding:14px 16px !important;
    margin:16px auto 18px !important;
}
.ifb-news-search-top{
    display:grid !important;
    grid-template-columns: minmax(220px,300px) minmax(520px,1fr) !important;
    gap:14px 18px !important;
    align-items:center !important;
}
.ifb-news-search-title{
    min-width:0 !important;
}
.ifb-news-search-title h2{
    font-size:1.02rem !important;
    line-height:1.2 !important;
}
.ifb-news-search-title p:last-child{
    display:none !important;
}
.ifb-news-search-form{
    display:grid !important;
    grid-template-columns:minmax(360px,1fr) 92px !important;
    gap:0 !important;
    width:100% !important;
    max-width:none !important;
    height:44px !important;
    min-height:44px !important;
    border:1px solid var(--line) !important;
    border-radius:8px !important;
    overflow:hidden !important;
    background:var(--ifb-soft) !important;
}
.ifb-news-search-form input[type="search"]{
    width:100% !important;
    min-width:0 !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 14px !important;
    font-size:1rem !important;
    border:0 !important;
    box-sizing:border-box !important;
}
.ifb-news-search-form button[type="submit"]{
    width:92px !important;
    min-width:92px !important;
    max-width:92px !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    border-radius:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:.84rem !important;
    line-height:1 !important;
    text-transform:uppercase !important;
    box-sizing:border-box !important;
}
.ifb-news-date-filters{
    grid-column:1 / -1 !important;
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    align-items:center !important;
    justify-content:flex-start !important;
    min-width:0 !important;
    margin-top:0 !important;
}
.ifb-news-date-filters>span{
    width:auto !important;
    margin-right:4px !important;
    white-space:nowrap !important;
}
.ifb-news-date-filters a{
    display:inline-flex !important;
    flex:0 0 auto !important;
    min-height:34px !important;
    height:34px !important;
    padding:0 12px !important;
    margin:0 !important;
    border-radius:999px !important;
    border:1px solid var(--line) !important;
    background:var(--ifb-soft) !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    text-decoration:none !important;
}
.ifb-news-date-filters a.is-active{
    background:var(--accent) !important;
    color:var(--ifb-soft) !important;
    border-color:var(--accent) !important;
}
.ifb-news-category-row{
    margin-top:12px !important;
    padding-top:12px !important;
    border-top:1px solid var(--line) !important;
}
.ifb-news-category-form{
    display:grid !important;
    grid-template-columns:auto minmax(260px,420px) 124px 82px !important;
    gap:8px !important;
    align-items:center !important;
}
.ifb-news-category-form label{
    color:var(--accent-dark) !important;
    font-weight:850 !important;
    text-transform:uppercase !important;
    font-size:.82rem !important;
    letter-spacing:.035em !important;
}
.ifb-news-category-form select{
    width:100% !important;
    height:40px !important;
    min-height:40px !important;
    border:1px solid var(--line) !important;
    border-radius:8px !important;
    background:var(--ifb-soft) !important;
    padding:0 12px !important;
    font-size:.95rem !important;
}
.ifb-news-category-form button,
.ifb-news-category-form .ifb-news-all-cats{
    height:40px !important;
    min-height:40px !important;
    padding:0 12px !important;
    border-radius:8px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:.82rem !important;
    font-weight:850 !important;
    text-decoration:none !important;
    box-sizing:border-box !important;
}
.ifb-news-category-form button{
    width:124px !important;
    min-width:124px !important;
    max-width:124px !important;
    border:1px solid var(--accent) !important;
    background:var(--accent) !important;
    color:var(--ifb-soft) !important;
}
.ifb-news-category-form .ifb-news-all-cats{
    width:82px !important;
    border:1px solid var(--line) !important;
    background:var(--ifb-soft) !important;
    color:var(--accent-dark) !important;
    gap:5px !important;
}
.ifb-news-category-form .ifb-news-all-cats svg{
    width:16px !important;height:16px !important;max-width:16px !important;max-height:16px !important;
}
@media (max-width:980px){
    .ifb-news-search-top{grid-template-columns:1fr !important;}
    .ifb-news-search-form{grid-template-columns:minmax(0,1fr) 88px !important;}
    .ifb-news-category-form{grid-template-columns:1fr !important;}
    .ifb-news-category-form button,.ifb-news-category-form .ifb-news-all-cats{width:100% !important;max-width:none !important;}
}
@media (max-width:560px){
    .ifb-news-search{padding:12px !important;}
    .ifb-news-search-form{grid-template-columns:1fr !important;height:auto !important;}
    .ifb-news-search-form input[type="search"]{height:44px !important;}
    .ifb-news-search-form button[type="submit"]{width:100% !important;max-width:none !important;height:40px !important;}
    .ifb-news-date-filters>span{width:100% !important;}
    .ifb-news-date-filters a{flex:1 1 auto !important;}
}


/* 0.2.45 - Filtro frontend integrato: cerca + categoria + periodo + ordinamento */
.ifb-front-filter{
  margin:16px auto 20px !important;
  padding:18px !important;
  border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line)) !important;
  background:linear-gradient(180deg,var(--ifb-soft),var(--panel-soft)) !important;
  border-radius:16px !important;
  box-shadow:0 10px 26px color-mix(in srgb, var(--steelcolor) 6%, transparent) !important;
}
.ifb-front-filter-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px;}
.ifb-front-filter-title{display:flex;gap:12px;align-items:flex-start;min-width:0;}
.ifb-front-filter-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent-dark);flex:0 0 auto;}
.ifb-front-filter-icon svg{width:28px !important;height:28px !important;max-width:28px !important;max-height:28px !important;display:block;}
.ifb-front-filter-title .eyebrow{margin:0 0 3px;color:var(--accent-dark);}
.ifb-front-filter-title h2{margin:0;font-size:clamp(1.1rem,1.5vw,1.45rem);line-height:1.15;color:var(--accent-dark);}
.ifb-front-filter-title p:last-child{margin:.25rem 0 0;color:var(--muted);font-size:.92rem;}
.ifb-front-filter-form{display:grid !important;grid-template-columns:minmax(280px,1.5fr) minmax(180px,.75fr) minmax(160px,.6fr) minmax(150px,.55fr) auto;gap:10px !important;align-items:end !important;}
.ifb-front-field{display:grid;gap:5px;min-width:0;}
.ifb-front-field span{color:var(--accent-dark);font-weight:850;text-transform:uppercase;font-size:.76rem;letter-spacing:.045em;}
.ifb-front-field input,.ifb-front-field select{width:100%;height:44px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--ifb-soft);padding:0 12px;font-size:.96rem;color:var(--text);box-sizing:border-box;}
.ifb-front-field-search input{font-size:1rem;}
.ifb-front-field input:focus,.ifb-front-field select:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 42%,var(--line));}
.ifb-front-filter-actions{display:flex;gap:8px;align-items:center;}
.ifb-front-filter-actions button,.ifb-front-filter-actions a{height:44px;min-height:44px;border-radius:8px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;font-size:.84rem;font-weight:850;text-decoration:none;box-sizing:border-box;white-space:nowrap;}
.ifb-front-filter-actions button{border:1px solid var(--accent);background:var(--accent);color:var(--ifb-soft);cursor:pointer;min-width:82px;}
.ifb-front-filter-actions a{border:1px solid var(--line);background:var(--ifb-soft);color:var(--accent-dark);}
.ifb-front-filter-note{margin:12px 0 0;color:var(--muted);font-size:.92rem;}
.ifb-front-results .section-title{margin-top:0;}
/* Spegne le vecchie regole della ricerca che avevano prodotto pulsanti enormi */
.ifb-front-filter .ifb-news-search-form,.ifb-front-filter .ifb-news-category-form{all:unset;}
@media (max-width:1180px){.ifb-front-filter-form{grid-template-columns:1fr 1fr;}.ifb-front-field-search{grid-column:1 / -1;}.ifb-front-filter-actions{grid-column:1 / -1;justify-content:flex-start;}}
@media (max-width:640px){.ifb-front-filter{padding:14px !important;}.ifb-front-filter-title p:last-child{display:none;}.ifb-front-filter-form{grid-template-columns:1fr !important;}.ifb-front-field-search{grid-column:auto;}.ifb-front-filter-actions{display:grid;grid-template-columns:1fr 1fr;}.ifb-front-filter-actions button,.ifb-front-filter-actions a{width:100%;}}


/* 0.2.51 - Micro-tab VT/VU frontend: filtro, card archivio, singolo post */
.ifb-archive-vtvu,
.ifb-filter-vtvu,
.ifb-card-vtvu{margin-top:6px;}
.ifb-card-vtvu{display:flex;align-items:center;min-height:22px;}
.ifb-card-vtvu:empty,
.ifb-filter-vtvu:empty,
.ifb-archive-vtvu:empty{display:none;}
.ifb-vtvu-theme.itf-vtvu-microtabs,
.ifb-vtvu-card.itf-vtvu-microtabs,
.ifb-vtvu-filter.itf-vtvu-microtabs,
.ifb-vtvu-archive.itf-vtvu-microtabs,
.ifb-vtvu-single.itf-vtvu-microtabs{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;vertical-align:middle;font-size:.74rem;line-height:1.15;}
.ifb-vtvu-theme .itf-vtvu-tab,
.ifb-vtvu-card .itf-vtvu-tab,
.ifb-vtvu-filter .itf-vtvu-tab,
.ifb-vtvu-archive .itf-vtvu-tab,
.ifb-vtvu-single .itf-vtvu-tab{display:inline-flex;gap:4px;align-items:center;border:1px solid color-mix(in srgb, var(--steelcolor) 18%, transparent);background:var(--ifb-soft);color:var(--ifb-accent);border-radius:999px;padding:3px 8px;white-space:nowrap;font-size:inherit;}
.ifb-vtvu-theme .itf-vtvu-tab b,
.ifb-vtvu-card .itf-vtvu-tab b,
.ifb-vtvu-filter .itf-vtvu-tab b,
.ifb-vtvu-archive .itf-vtvu-tab b,
.ifb-vtvu-single .itf-vtvu-tab b{font-weight:800;color:var(--accent-dark);}
.single-post-meta .itf-vtvu-microtabs{margin-left:2px;}
@media (max-width:640px){.ifb-card-vtvu{margin-top:8px}.single-post-meta .itf-vtvu-microtabs{display:flex;margin-top:8px;margin-left:0}}


/* 0.2.52 - Minicard entità + VT/VU coerenti con tema */
.ifer-related-cards{width:min(100%,var(--wide));margin:24px auto 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft);box-sizing:border-box;}
.ifer-related-head{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-bottom:14px;}
.ifer-related-head h2{margin:.15rem 0 0;color:var(--accent-dark);}
.ifer-kicker{margin:0;color:var(--accent-dark);text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;font-weight:850;}
.ifer-related-head>span{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--ifb-soft);padding:5px 10px;color:var(--muted);font-size:.8rem;font-weight:800;white-space:nowrap;}
.ifer-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;}
.ifer-mini-card{border:1px solid var(--line);border-radius:14px;background:var(--ifb-soft);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0;}
.ifer-mini-top,.ifer-mini-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;}
.ifer-mini-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-dark);font-weight:850;}
.ifer-mini-card h3{font-size:1rem;line-height:1.25;margin:0;}
.ifer-mini-card h3 a{text-decoration:none;color:var(--text);}
.ifer-mini-card p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45;}
.ifer-mini-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:8px;font-size:.78rem;color:var(--muted);}
.ifer-mini-foot a{font-weight:850;text-decoration:none;color:var(--accent-dark);}
.ifer-mini-vtvu .itf-vtvu-microtabs{font-size:.7rem;}
.ifer-mini-vtvu .itf-vtvu-tab{padding:2px 7px;}
@media(max-width:640px){.ifer-related-head{align-items:flex-start;flex-direction:column}.ifer-card-grid{grid-template-columns:1fr}}


/* 0.2.54: GTranslate integrato nella topbar, compatto e sempre accessibile */
.ifb-language-switcher{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  min-width:0;
}
.ifb-language-switcher > *{
  margin:0!important;
}
.ifb-language-switcher select,
.ifb-language-switcher .gt_selector{
  width:auto;
  max-width:170px;
  min-height:36px;
  margin:0!important;
  padding:6px 30px 6px 10px;
  border:1px solid var(--line);
  border-radius:0;
  background-color:var(--panel);
  color:var(--text);
  font:inherit;
  font-size:.88rem;
  line-height:1.2;
  cursor:pointer;
}
.ifb-language-switcher img{
  display:inline-block;
  width:auto;
  max-height:24px;
  margin:0 3px;
  vertical-align:middle;
}
.ifb-language-switcher a{
  color:var(--muted);
  text-decoration:none;
}
.ifb-language-switcher a:hover{
  color:var(--text);
}
@media (min-width:1024px){
  .ifb-language-switcher{margin-left:auto;}
  .app-actions{margin-left:0;}
}
@media (max-width:1023px){
  .ifb-language-switcher{margin-left:auto;}
  .ifb-language-switcher select,
  .ifb-language-switcher .gt_selector{max-width:145px;}
}
@media (max-width:480px){
  .app-topbar{gap:10px;padding-inline:10px;}
  .app-brand{font-size:.92rem;}
  .nav-toggle{padding-inline:10px;}
  .nav-toggle span{display:none;}
  .ifb-language-switcher select,
  .ifb-language-switcher .gt_selector{max-width:118px;font-size:.82rem;padding-left:7px;}
}

/* 0.2.55: barra operativa nativa Italfaber, piatta e compatta */
.ifb-operational-bar{
  display:flex;
  align-items:center;
  gap:.42rem;
  flex-wrap:wrap;
  margin:14px 0 0;
  padding:8px 10px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--panel-soft);
  color:var(--muted);
  font-size:.79rem;
  line-height:1.35;
}
.ifb-opbar-label{
  color:var(--accent-dark);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.ifb-opbar-score strong{color:var(--text)}
.ifb-opbar-sep{opacity:.42}
.ifb-operational-bar[data-action="agire_subito"]{border-left:3px solid var(--ifb-accent)}
.ifb-operational-bar[data-action="monitorare"]{border-left:3px solid var(--ifb-accent)}
.ifb-operational-bar[data-action="approfondire"]{border-left:3px solid var(--steel-blue)}
.ifb-operational-bar[data-action="nessuna_azione"]{border-left:3px solid var(--ifb-accent)}
@media (max-width:680px){
  .ifb-operational-bar{font-size:.75rem;padding:7px 9px;gap:.3rem}
  .ifb-opbar-label{width:100%}
  .ifb-opbar-sep{display:none}
  .ifb-operational-bar>span:not(.ifb-opbar-label){margin-right:.45rem}
}

/* 0.2.57: sidebar acciaio scuro + body alleggerito */
:root{
  --ifb-sidebar-dark:var(--ifb-accent);
  --ifb-sidebar-dark-2:var(--ifb-accent);
  --ifb-sidebar-line:var(--ifb-accent);
  --ifb-sidebar-text:var(--ifb-soft);
  --ifb-sidebar-muted:var(--ifb-soft);
  --ifb-sidebar-hover:var(--ifb-accent);
}

body.app .app-sidebar,
body .app-sidebar{
  background:linear-gradient(180deg,var(--ifb-sidebar-dark) 0%,var(--ifb-sidebar-dark-2) 100%) !important;
  border-right:1px solid var(--ifb-accent) !important;
  box-shadow:none !important;
}

body.app .sidebar-head,
body .sidebar-head,
body.app .nav-tree,
body .nav-tree{
  background:color-mix(in srgb, var(--paper) 4%, transparent) !important;
  border-color:color-mix(in srgb, var(--paper) 18%, transparent) !important;
  border-top-color:color-mix(in srgb, var(--paper) 28%, transparent) !important;
  box-shadow:none !important;
}

body.app .sidebar-head strong,
body .sidebar-head strong,
body.app .app-sidebar .eyebrow,
body .app-sidebar .eyebrow,
body.app .nav-row-title span,
body .nav-row-title span{
  color:var(--ifb-sidebar-text) !important;
}

body.app .quick-nav a,
body.app .nav-row,
body .quick-nav a,
body .nav-row{
  background:color-mix(in srgb, var(--paper) 8%, transparent) !important;
  border-color:color-mix(in srgb, var(--paper) 16%, transparent) !important;
  box-shadow:none !important;
}

body.app .nav-row a,
body.app .nav-next,
body.app .nav-back,
body .nav-row a,
body .nav-next,
body .nav-back{
  color:var(--ifb-sidebar-text) !important;
}

body.app .nav-next,
body .nav-next{
  border-left-color:color-mix(in srgb, var(--paper) 16%, transparent) !important;
  background:color-mix(in srgb, var(--paper) 4%, transparent) !important;
}

body.app .nav-row-title,
body .nav-row-title,
body.app .nav-back,
body .nav-back{
  background:color-mix(in srgb, var(--paper) 9%, transparent) !important;
}

body.app .nav-row:hover,
body .nav-row:hover,
body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .nav-row a:hover,
body.app .nav-next:hover,
body.app .nav-back:hover,
body .nav-row a:hover,
body .nav-next:hover,
body .nav-back:hover{
  background:var(--ifb-sidebar-hover) !important;
  border-color:color-mix(in srgb, var(--paper) 30%, transparent) !important;
  color:var(--ifb-soft) !important;
}

body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  background:color-mix(in srgb, var(--paper) 15%, transparent) !important;
  border-color:color-mix(in srgb, var(--paper) 34%, transparent) !important;
  box-shadow:inset 4px 0 0 var(--ifb-accent) !important;
}

body.app .nav-row.is-current > a,
body.app .nav-row.current-menu-item > a,
body.app .nav-row.current-menu-ancestor > a,
body .nav-row.is-current > a,
body .nav-row.current-menu-item > a,
body .nav-row.current-menu-ancestor > a{
  background:transparent !important;
  color:var(--ifb-soft) !important;
}

body.app .sidebar-empty,
body .sidebar-empty{
  color:var(--ifb-sidebar-muted) !important;
}

/* Il contenuto non deve sembrare chiuso in una scatola pesante. */
body.app .workspace-head,
body.app .article,
body.app .document,
body .workspace-head,
body .article,
body .document{
  border:0 !important;
  border-top:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:var(--ifb-soft) !important;
}

body.app .article,
body .article{
  padding:clamp(10px,2vw,24px) 0 !important;
}

body.app .workspace-head,
body .workspace-head{
  padding:0 !important;
}

/* Barra operativa coerente con il nuovo acciaio scuro, ma sempre piatta. */
.ifb-operational-bar{
  background:var(--ifb-soft) !important;
  border-color:var(--ifb-accent) !important;
  color:var(--ifb-accent) !important;
  box-shadow:none !important;
}

.ifb-operational-bar .ifb-opbar-label{
  color:var(--ifb-accent) !important;
}

@media (max-width:1023px){
  body.app .app-sidebar,
  body .app-sidebar{
    background:linear-gradient(180deg,var(--ifb-sidebar-dark) 0%,var(--ifb-sidebar-dark-2) 100%) !important;
  }
}


/* 0.2.58: Industrial UI rifinita — sidebar uniforme, contrasti controllati, superfici leggere */
:root{
  --steel-950:var(--ifb-accent);
  --steel-900:var(--ifb-accent);
  --steel-850:var(--ifb-accent);
  --steel-800:var(--ifb-accent);
  --steel-700:var(--ifb-accent);
  --steel-600:var(--ifb-accent);
  --steel-300:var(--ifb-soft);
  --steel-200:var(--ifb-soft);
  --steel-100:var(--ifb-soft);
  --steel-050:var(--ifb-soft);
  --paper:var(--ifb-soft);
  --ink-on-steel:var(--ifb-soft);
  --ink-on-steel-soft:var(--ifb-accent);
  --signal-blue:var(--ifb-accent);
}

body.app .app-sidebar,
body .app-sidebar{
  background:linear-gradient(180deg,var(--steel-850) 0%,var(--steel-900) 100%) !important;
  border-right:1px solid var(--steel-950) !important;
}

body.app .sidebar-head,
body .sidebar-head{
  background:color-mix(in srgb, var(--paper) 2%, transparent) !important;
  border-bottom:1px solid color-mix(in srgb, var(--steelcolor-light) 14%, transparent) !important;
}

body.app .nav-tree,
body .nav-tree,
body.app .nav-level,
body .nav-level{
  background:transparent !important;
}

body.app .sidebar-head strong,
body .sidebar-head strong,
body.app .app-sidebar .eyebrow,
body .app-sidebar .eyebrow,
body.app .nav-row-title span,
body .nav-row-title span{
  color:var(--ink-on-steel) !important;
}

body.app .quick-nav,
body .quick-nav{
  border-bottom:1px solid color-mix(in srgb, var(--steelcolor-light) 12%, transparent) !important;
}

body.app .quick-nav a,
body .quick-nav a,
body.app .nav-row,
body .nav-row{
  background:transparent !important;
  border-color:color-mix(in srgb, var(--steelcolor-light) 10%, transparent) !important;
}

body.app .quick-nav a,
body .quick-nav a,
body.app .nav-row > a,
body .nav-row > a,
body.app .nav-next,
body .nav-next,
body.app .nav-back,
body .nav-back{
  color:var(--ink-on-steel) !important;
}

body.app .nav-count,
body .nav-count,
body.app .sidebar-empty,
body .sidebar-empty{
  color:var(--ink-on-steel-soft) !important;
}

body.app .nav-next,
body .nav-next{
  background:transparent !important;
  border-left-color:color-mix(in srgb, var(--steelcolor-light) 10%, transparent) !important;
  color:var(--ink-on-steel-soft) !important;
}

body.app .nav-row-title,
body .nav-row-title,
body.app .nav-back,
body .nav-back{
  background:color-mix(in srgb, var(--paper) 4%, transparent) !important;
  color:var(--ink-on-steel) !important;
}

body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .nav-row:hover,
body .nav-row:hover,
body.app .nav-row a:hover,
body .nav-row a:hover,
body.app .nav-next:hover,
body .nav-next:hover,
body.app .nav-back:hover,
body .nav-back:hover{
  background:color-mix(in srgb, var(--accent) 12%, transparent) !important;
  border-color:color-mix(in srgb, var(--accent) 22%, transparent) !important;
  color:var(--ifb-soft) !important;
}

body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  background:color-mix(in srgb, var(--accent) 14%, transparent) !important;
  border-color:color-mix(in srgb, var(--accent) 24%, transparent) !important;
  box-shadow:inset 3px 0 0 var(--signal-blue) !important;
}

body.app .nav-row.is-current > a,
body.app .nav-row.current-menu-item > a,
body.app .nav-row.current-menu-ancestor > a,
body .nav-row.is-current > a,
body .nav-row.current-menu-item > a,
body .nav-row.current-menu-ancestor > a{
  color:var(--ifb-soft) !important;
  background:transparent !important;
}

body.app .nav-close,
body .nav-close{
  border-color:color-mix(in srgb, var(--steelcolor-light) 16%, transparent) !important;
  background:color-mix(in srgb, var(--paper) 4%, transparent) !important;
  color:var(--ink-on-steel) !important;
}

/* Superfici editoriali: niente scatole pesanti, solo gerarchia tipografica e respiro. */
body.app .article,
body .article,
body.app .document,
body .document,
body.app .workspace-head,
body .workspace-head{
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:var(--paper) !important;
}

body.app .article,
body .article{
  padding:clamp(12px,2vw,26px) 0 !important;
}

body.app .panel,
body .panel,
body.app .tool,
body .tool,
body.app .filter-bar,
body .filter-bar{
  border-color:var(--steel-200) !important;
  box-shadow:none !important;
}

body.app .card,
body .card{
  border-color:var(--steel-200) !important;
  box-shadow:none !important;
}

/* Barra operativa: parte del sistema, non un box decorativo. */
.ifb-operational-bar{
  background:var(--steel-100) !important;
  border-top:1px solid var(--steel-300) !important;
  border-bottom:1px solid var(--steel-300) !important;
  color:var(--steel-850) !important;
}

.ifb-operational-bar .ifb-opbar-label{
  color:var(--steel-900) !important;
}

/* Breadcrumb più leggero e coerente con la barra tecnica. */
.breadcrumb-wrap,
.breadcrumb{
  color:var(--steel-700) !important;
}
.breadcrumb-wrap a,
.breadcrumb a{
  color:var(--steel-800) !important;
}

@media (max-width:1023px){
  body.app .app-sidebar,
  body .app-sidebar{
    background:linear-gradient(180deg,var(--steel-850) 0%,var(--steel-900) 100%) !important;
  }
}

/* 0.2.59: sidebar piena nel blu di accento, senza pannelli bianchi */
:root{
  --ifb-sidebar-base:var(--accent);
  --ifb-sidebar-deep:var(--ifb-accent);
  --ifb-sidebar-darker:var(--ifb-accent);
  --ifb-sidebar-soft:var(--ifb-accent);
  --ifb-sidebar-text:var(--ifb-soft);
  --ifb-sidebar-text-strong:var(--ifb-soft);
  --ifb-sidebar-line:color-mix(in srgb, var(--steelcolor-light) 22%, transparent);
  --ifb-sidebar-hover:color-mix(in srgb, var(--steelcolor-light) 9%, transparent);
  --ifb-sidebar-active:color-mix(in srgb, var(--steelcolor-light) 15%, transparent);
}

body.app .app-sidebar,
body .app-sidebar{
  background:linear-gradient(180deg,var(--ifb-sidebar-base) 0%,var(--ifb-sidebar-deep) 100%) !important;
  border-right:1px solid var(--ifb-sidebar-darker) !important;
  box-shadow:none !important;
}

body.app .sidebar-head,
body .sidebar-head,
body.app .nav-tree,
body .nav-tree,
body.app .quick-nav,
body .quick-nav,
body.app .sidebar-empty,
body .sidebar-empty{
  background:transparent !important;
  border-color:var(--ifb-sidebar-line) !important;
  box-shadow:none !important;
}

body.app .sidebar-head,
body .sidebar-head,
body.app .nav-tree,
body .nav-tree{
  border-top-color:var(--ifb-sidebar-soft) !important;
}

body.app .sidebar-head strong,
body .sidebar-head strong,
body.app .sidebar-title,
body .sidebar-title,
body.app .app-sidebar .eyebrow,
body .app-sidebar .eyebrow,
body.app .nav-row-title span,
body .nav-row-title span,
body.app .sidebar-empty,
body .sidebar-empty{
  color:var(--ifb-sidebar-text-strong) !important;
}

body.app .quick-nav a,
body .quick-nav a,
body.app .nav-row,
body .nav-row,
body.app .nav-row-title,
body .nav-row-title,
body.app .nav-row-back,
body .nav-row-back{
  background:transparent !important;
  border-color:var(--ifb-sidebar-line) !important;
  box-shadow:none !important;
}

body.app .quick-nav a,
body .quick-nav a,
body.app .nav-row a,
body .nav-row a,
body.app .nav-next,
body .nav-next,
body.app .nav-back,
body .nav-back,
body.app .nav-count,
body .nav-count{
  color:var(--ifb-sidebar-text) !important;
}

body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .nav-row:not(.nav-row-title)>a:hover,
body .nav-row:not(.nav-row-title)>a:hover,
body.app .nav-next:hover,
body .nav-next:hover,
body.app .nav-back:hover,
body .nav-back:hover,
body.app .nav-row:not(.nav-row-title):hover,
body .nav-row:not(.nav-row-title):hover{
  background:var(--ifb-sidebar-hover) !important;
  color:var(--ifb-sidebar-text-strong) !important;
}

body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  background:var(--ifb-sidebar-active) !important;
  border-color:var(--ifb-sidebar-line) !important;
  box-shadow:inset 4px 0 0 var(--ifb-sidebar-text-strong) !important;
}

body.app .nav-row.is-current>a,
body.app .nav-row.current-menu-item>a,
body.app .nav-row.current-menu-ancestor>a,
body .nav-row.is-current>a,
body .nav-row.current-menu-item>a,
body .nav-row.current-menu-ancestor>a{
  background:transparent !important;
  color:var(--ifb-sidebar-text-strong) !important;
}

body.app .nav-next,
body .nav-next{
  border-left-color:var(--ifb-sidebar-line) !important;
}

body.app .nav-close,
body .nav-close{
  background:transparent !important;
  border-color:var(--ifb-sidebar-line) !important;
  border-top-color:var(--ifb-sidebar-soft) !important;
  color:var(--ifb-sidebar-text-strong) !important;
  box-shadow:none !important;
}

body.app .nav-close:hover,
body .nav-close:hover{
  background:var(--ifb-sidebar-hover) !important;
}

@media (max-width:1023px){
  body.app .app-sidebar,
  body .app-sidebar{
    background:linear-gradient(180deg,var(--ifb-sidebar-base) 0%,var(--ifb-sidebar-deep) 100%) !important;
  }
}

/* 0.2.60: pulsanti sidebar tono su tono, mantenendo forma e gerarchia */
:root{
  --ifb-sidebar-button:var(--ifb-accent);
  --ifb-sidebar-button-hover:var(--ifb-accent);
  --ifb-sidebar-button-active:var(--ifb-accent);
  --ifb-sidebar-button-text:var(--ifb-soft);
  --ifb-sidebar-button-text-strong:var(--ifb-soft);
  --ifb-sidebar-button-line:color-mix(in srgb, var(--steelcolor-light) 16%, transparent);
}

/* Forza il colore anche sull'anchor interno, che nelle versioni precedenti
   poteva mantenere il pannello bianco. */
body.app .nav-level .nav-row,
body .nav-level .nav-row,
body.app .quick-nav a,
body .quick-nav a,
body.app .nav-row-back,
body .nav-row-back,
body.app .nav-row-title,
body .nav-row-title{
  background:var(--ifb-sidebar-button) !important;
  border-color:var(--ifb-sidebar-button-line) !important;
  box-shadow:none !important;
}

body.app .nav-level .nav-row > a,
body .nav-level .nav-row > a,
body.app .nav-level .nav-row > .nav-next,
body .nav-level .nav-row > .nav-next,
body.app .nav-row-back > .nav-back,
body .nav-row-back > .nav-back,
body.app .quick-nav a,
body .quick-nav a{
  background:transparent !important;
  color:var(--ifb-sidebar-button-text) !important;
  box-shadow:none !important;
}

body.app .nav-level .nav-row:hover,
body .nav-level .nav-row:hover,
body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .nav-row-back:hover,
body .nav-row-back:hover{
  background:var(--ifb-sidebar-button-hover) !important;
}

body.app .nav-level .nav-row:hover > a,
body .nav-level .nav-row:hover > a,
body.app .nav-level .nav-row:hover > .nav-next,
body .nav-level .nav-row:hover > .nav-next,
body.app .quick-nav a:hover,
body .quick-nav a:hover{
  color:var(--ifb-sidebar-button-text-strong) !important;
}

body.app .nav-level .nav-row.is-current,
body.app .nav-level .nav-row.current-menu-item,
body.app .nav-level .nav-row.current-menu-ancestor,
body .nav-level .nav-row.is-current,
body .nav-level .nav-row.current-menu-item,
body .nav-level .nav-row.current-menu-ancestor{
  background:var(--ifb-sidebar-button-active) !important;
  border-color:var(--ifb-sidebar-button-line) !important;
  box-shadow:inset 4px 0 0 var(--ifb-sidebar-button-text-strong) !important;
}

body.app .nav-level .nav-row.is-current > a,
body.app .nav-level .nav-row.current-menu-item > a,
body.app .nav-level .nav-row.current-menu-ancestor > a,
body .nav-level .nav-row.is-current > a,
body .nav-level .nav-row.current-menu-item > a,
body .nav-level .nav-row.current-menu-ancestor > a{
  background:transparent !important;
  color:var(--ifb-sidebar-button-text-strong) !important;
}

body.app .nav-row-title span,
body .nav-row-title span,
body.app .sidebar-head strong,
body .sidebar-head strong{
  color:var(--ifb-sidebar-button-text-strong) !important;
}

body.app .nav-next,
body .nav-next{
  border-left-color:var(--ifb-sidebar-button-line) !important;
  color:var(--ifb-sidebar-button-text) !important;
}


/* 0.2.61: barra superiore coordinata alla sidebar, senza pannelli bianchi */
body.app .app-topbar,
body .app-topbar{
  background:linear-gradient(90deg,var(--ifb-sidebar-base) 0%,var(--ifb-sidebar-deep) 100%) !important;
  border-bottom:1px solid var(--ifb-sidebar-darker) !important;
  box-shadow:none !important;
}

body.app .app-brand,
body .app-brand,
body.app .app-topbar .nav-toggle,
body .app-topbar .nav-toggle,
body.app .app-topbar .app-actions a,
body .app-topbar .app-actions a,
body.app .app-topbar .language-switcher,
body .app-topbar .language-switcher{
  background:var(--ifb-sidebar-button) !important;
  border-color:var(--ifb-sidebar-button-line) !important;
  color:var(--ifb-sidebar-button-text-strong) !important;
  box-shadow:none !important;
}

body.app .app-brand,
body .app-brand{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  padding:7px 14px;
  border:1px solid var(--ifb-sidebar-button-line) !important;
  text-decoration:none !important;
}

body.app .app-brand:hover,
body .app-brand:hover,
body.app .app-topbar .nav-toggle:hover,
body .app-topbar .nav-toggle:hover,
body.app .app-topbar .app-actions a:hover,
body .app-topbar .app-actions a:hover{
  background:var(--ifb-sidebar-button-hover) !important;
  color:var(--ifb-sidebar-button-text-strong) !important;
}

body.app .app-topbar .button,
body .app-topbar .button,
body.app .app-topbar select,
body .app-topbar select{
  background:var(--ifb-sidebar-button) !important;
  border-color:var(--ifb-sidebar-button-line) !important;
  color:var(--ifb-sidebar-button-text-strong) !important;
  box-shadow:none !important;
}

body.app .app-topbar .button:hover,
body .app-topbar .button:hover,
body.app .app-topbar select:hover,
body .app-topbar select:hover{
  background:var(--ifb-sidebar-button-hover) !important;
}

@media (max-width:1023px){
  body.app .app-topbar,
  body .app-topbar{
    background:linear-gradient(90deg,var(--ifb-sidebar-base) 0%,var(--ifb-sidebar-deep) 100%) !important;
  }
}


/* 0.2.62: barra contatti sticky coordinata con topbar e sidebar */
body.app .ifb-contact-sticky,
body .ifb-contact-sticky{
  background:linear-gradient(90deg,var(--ifb-sidebar-base) 0%,var(--ifb-sidebar-deep) 100%) !important;
  border-color:var(--ifb-sidebar-darker) !important;
  box-shadow:0 10px 28px color-mix(in srgb, var(--steelcolor) 28%, transparent) !important;
  backdrop-filter:none !important;
}

body.app .ifb-contact-item,
body .ifb-contact-item,
body.app .ifb-contact-item.is-call,
body.app .ifb-contact-item.is-whatsapp,
body .ifb-contact-item.is-call,
body .ifb-contact-item.is-whatsapp{
  background:var(--ifb-sidebar-button) !important;
  border-color:var(--ifb-sidebar-button-line) !important;
  color:var(--ifb-sidebar-button-text-strong) !important;
  box-shadow:none !important;
}

body.app .ifb-contact-item strong,
body .ifb-contact-item strong{
  color:var(--ifb-sidebar-button-text-strong) !important;
}

body.app .ifb-contact-item em,
body .ifb-contact-item em{
  color:var(--ifb-sidebar-button-text) !important;
}

body.app .ifb-contact-item span,
body .ifb-contact-item span,
body.app .ifb-contact-item span svg,
body .ifb-contact-item span svg{
  color:var(--ifb-sidebar-button-text-strong) !important;
}

body.app .ifb-contact-item:hover,
body .ifb-contact-item:hover{
  background:var(--ifb-sidebar-button-hover) !important;
  border-color:var(--ifb-sidebar-button-active-line) !important;
  color:var(--ifb-sidebar-button-text-strong) !important;
}

body.app .ifb-contact-item:hover span,
body .ifb-contact-item:hover span{
  color:var(--ifb-sidebar-button-text-strong) !important;
}

@media (max-width:900px){
  body.app .ifb-contact-sticky,
  body .ifb-contact-sticky{
    border-top-color:var(--ifb-sidebar-button-line) !important;
    box-shadow:0 -6px 22px color-mix(in srgb, var(--steelcolor) 24%, transparent) !important;
  }
}

/* ==========================================================
   0.3.0 — STEELCOLOR DESIGN SYSTEM
   Un solo materiale, bordi sottili, raggi quasi nulli,
   hover minimi e componenti coerenti da console tecnica.
   ========================================================== */
:root{
  --steelcolor-dark:var(--ifb-accent);
  --steelcolor:var(--ifb-accent);
  --steelcolor-panel:var(--ifb-accent);
  --steelcolor-hover:var(--ifb-accent);
  --steelcolor-active:var(--ifb-accent);
  --steelcolor-line:color-mix(in srgb, var(--steelcolor-light) 18%, transparent);
  --steelcolor-line-strong:color-mix(in srgb, var(--steelcolor-light) 28%, transparent);
  --steelcolor-text:var(--ifb-soft);
  --steelcolor-text-strong:var(--ifb-soft);
  --steelcolor-text-soft:var(--ifb-accent);
  --steelcolor-accent:var(--ifb-accent);

  --ifb-radius:2px;
  --ifb-radius-large:3px;
  --ifb-border:1px;
  --ifb-shadow:none;

  /* Compatibilità con le variabili storiche del tema */
  --radius:var(--ifb-radius);
  --ifb-sidebar-base:var(--steelcolor);
  --ifb-sidebar-deep:var(--steelcolor-dark);
  --ifb-sidebar-darker:var(--ifb-accent);
  --ifb-sidebar-button:var(--steelcolor-panel);
  --ifb-sidebar-button-hover:var(--steelcolor-hover);
  --ifb-sidebar-button-active:var(--steelcolor-active);
  --ifb-sidebar-button-line:var(--steelcolor-line);
  --ifb-sidebar-button-active-line:var(--steelcolor-line-strong);
  --ifb-sidebar-button-text:var(--steelcolor-text);
  --ifb-sidebar-button-text-strong:var(--steelcolor-text-strong);
}

/* Telaio monolitico: topbar, sidebar e sticky nello stesso materiale */
body.app .app-topbar,
body .app-topbar,
body.app .app-sidebar,
body .app-sidebar,
body.app .ifb-contact-sticky,
body .ifb-contact-sticky{
  background:var(--steelcolor) !important;
  background-image:none !important;
  border-color:var(--steelcolor-line) !important;
  box-shadow:none !important;
}

/* Tutti i comandi sullo SteelColor restano dello stesso colore:
   la gerarchia è affidata a bordo, testo e hover minimo. */
body.app .app-brand,
body .app-brand,
body.app .app-topbar .nav-toggle,
body .app-topbar .nav-toggle,
body.app .app-topbar .app-actions a,
body .app-topbar .app-actions a,
body.app .app-topbar .button,
body .app-topbar .button,
body.app .app-topbar select,
body .app-topbar select,
body.app .sidebar-head,
body .sidebar-head,
body.app .quick-nav a,
body .quick-nav a,
body.app .nav-level .nav-row,
body .nav-level .nav-row,
body.app .nav-row-back,
body .nav-row-back,
body.app .nav-row-title,
body .nav-row-title,
body.app .nav-close,
body .nav-close,
body.app .ifb-contact-item,
body .ifb-contact-item,
body.app .ifb-contact-item.is-call,
body.app .ifb-contact-item.is-whatsapp,
body .ifb-contact-item.is-call,
body .ifb-contact-item.is-whatsapp{
  background:var(--steelcolor) !important;
  background-image:none !important;
  border:var(--ifb-border) solid var(--steelcolor-line) !important;
  border-radius:var(--ifb-radius) !important;
  box-shadow:none !important;
}

body.app .nav-level,
body .nav-level{
  background:var(--steelcolor) !important;
}

body.app .app-brand,
body .app-brand,
body.app .app-topbar .nav-toggle,
body .app-topbar .nav-toggle,
body.app .app-topbar .app-actions a,
body .app-topbar .app-actions a,
body.app .app-topbar .button,
body .app-topbar .button,
body.app .app-topbar select,
body .app-topbar select,
body.app .sidebar-head strong,
body .sidebar-head strong,
body.app .app-sidebar .eyebrow,
body .app-sidebar .eyebrow,
body.app .nav-level .nav-row > a,
body .nav-level .nav-row > a,
body.app .nav-level .nav-row > .nav-next,
body .nav-level .nav-row > .nav-next,
body.app .nav-row-back > .nav-back,
body .nav-row-back > .nav-back,
body.app .quick-nav a,
body .quick-nav a,
body.app .nav-close,
body .nav-close,
body.app .ifb-contact-item,
body .ifb-contact-item,
body.app .ifb-contact-item strong,
body .ifb-contact-item strong{
  color:var(--steelcolor-text) !important;
}

/* Hover appena percepibile: nessun cambio di materiale */
body.app .app-brand:hover,
body .app-brand:hover,
body.app .app-topbar .nav-toggle:hover,
body .app-topbar .nav-toggle:hover,
body.app .app-topbar .app-actions a:hover,
body .app-topbar .app-actions a:hover,
body.app .app-topbar .button:hover,
body .app-topbar .button:hover,
body.app .app-topbar select:hover,
body .app-topbar select:hover,
body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .nav-level .nav-row:hover,
body .nav-level .nav-row:hover,
body.app .nav-row-back:hover,
body .nav-row-back:hover,
body.app .nav-close:hover,
body .nav-close:hover,
body.app .ifb-contact-item:hover,
body .ifb-contact-item:hover{
  background:var(--steelcolor-hover) !important;
  border-color:var(--steelcolor-line-strong) !important;
  color:var(--steelcolor-text-strong) !important;
}

/* Stato attivo: stesso colore, solo segnale tecnico laterale */
body.app .nav-level .nav-row.is-current,
body.app .nav-level .nav-row.current-menu-item,
body.app .nav-level .nav-row.current-menu-ancestor,
body .nav-level .nav-row.is-current,
body .nav-level .nav-row.current-menu-item,
body .nav-level .nav-row.current-menu-ancestor{
  background:var(--steelcolor) !important;
  border-color:var(--steelcolor-line-strong) !important;
  box-shadow:inset 3px 0 0 var(--steelcolor-accent) !important;
}

body.app .nav-level .nav-row.is-current > a,
body.app .nav-level .nav-row.current-menu-item > a,
body.app .nav-level .nav-row.current-menu-ancestor > a,
body .nav-level .nav-row.is-current > a,
body .nav-level .nav-row.current-menu-item > a,
body .nav-level .nav-row.current-menu-ancestor > a{
  color:var(--steelcolor-text-strong) !important;
  font-weight:700 !important;
}

/* Raggi coerenti e quasi nulli su tutta la UI */
body.app :where(.panel,.card,.article,.tool,.filter-bar,.badge,.button,.button-soft,
  .pagination a,.pagination span,.post-nav>div,.notice,.document-body blockquote,
  .ifb-news-search,.ifb-productive-panel,.ifb-operational-bar,.ifb-barra-operativa,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-app-kpi,
  .ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,input,select,textarea),
body :where(.panel,.card,.article,.tool,.filter-bar,.badge,.button,.button-soft,
  .pagination a,.pagination span,.post-nav>div,.notice,.document-body blockquote,
  .ifb-news-search,.ifb-productive-panel,.ifb-operational-bar,.ifb-barra-operativa,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-app-kpi,
  .ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,input,select,textarea){
  border-radius:var(--ifb-radius) !important;
  box-shadow:none !important;
}

/* La sticky è una barra tecnica, non una pillola mobile */
body.app .ifb-contact-sticky,
body .ifb-contact-sticky{
  border-radius:var(--ifb-radius-large) !important;
  padding:7px !important;
}
body.app .ifb-contact-item,
body .ifb-contact-item{
  border-radius:var(--ifb-radius) !important;
}

/* Body e pannelli: separazione tramite spazio e linea, non cornici pesanti */
body.app .article,
body .article,
body.app .panel,
body .panel,
body.app .card,
body .card,
body.app .tool,
body .tool,
body.app .filter-bar,
body .filter-bar{
  border-width:1px !important;
  box-shadow:none !important;
}

/* Barra operativa nativa coerente con SteelColor */
body.app .ifb-operational-bar,
body .ifb-operational-bar,
body.app .ifb-barra-operativa,
body .ifb-barra-operativa{
  background:var(--steelcolor) !important;
  border:1px solid var(--steelcolor-line) !important;
  color:var(--steelcolor-text) !important;
  border-radius:var(--ifb-radius) !important;
  box-shadow:none !important;
}
body.app .ifb-operational-bar strong,
body .ifb-operational-bar strong,
body.app .ifb-barra-operativa strong,
body .ifb-barra-operativa strong{
  color:var(--steelcolor-text-strong) !important;
}

/* Piccoli dettagli per togliere l'effetto app morbida */
body.app .hero-media img,
body .hero-media img,
body.app .document-body table,
body .document-body table{
  border-radius:0 !important;
  box-shadow:none !important;
}

@media (max-width:1023px){
  body.app .app-sidebar,
  body .app-sidebar,
  body.app .app-topbar,
  body .app-topbar{
    background:var(--steelcolor) !important;
  }
}

/* ==========================================================
   0.3.1 — STEELCOLOR FERRO OLIATO
   Finitura cromatica e normalizzazione delle superfici centrali.
   Il layout resta invariato.
   ========================================================== */
:root{
  /* Ferro oliato: più scuro, meno azzurro, più materico. */
  --steelcolor-dark:var(--ifb-accent);
  --steelcolor:var(--ifb-accent);
  --steelcolor-panel:var(--ifb-accent);
  --steelcolor-hover:var(--ifb-accent);
  --steelcolor-active:var(--ifb-accent);
  --steelcolor-line:color-mix(in srgb, var(--steelcolor-light) 16%, transparent);
  --steelcolor-line-strong:color-mix(in srgb, var(--steelcolor-light) 28%, transparent);
  --steelcolor-text:var(--ifb-soft);
  --steelcolor-text-strong:var(--ifb-soft);
  --steelcolor-text-soft:var(--ifb-accent);
  --steelcolor-accent:var(--ifb-accent);

  --ifb-content-line:var(--ifb-soft);
  --ifb-content-line-soft:var(--ifb-soft);
  --ifb-content-surface:var(--ifb-soft);
  --ifb-content-surface-soft:var(--ifb-soft);
  --ifb-space-xs:6px;
  --ifb-space-sm:10px;
  --ifb-space-md:16px;
  --ifb-space-lg:24px;
  --ifb-radius:2px;
  --ifb-radius-large:3px;
}

/* Telaio SteelColor: tono unico più profondo, senza dominante celeste. */
body.app .app-topbar,
body .app-topbar,
body.app .app-sidebar,
body .app-sidebar,
body.app .ifb-contact-sticky,
body .ifb-contact-sticky{
  background:var(--steelcolor) !important;
  color:var(--steelcolor-text) !important;
}

/* Comandi del telaio: stesso materiale, solo bordo e hover minimo. */
body.app .app-brand,
body .app-brand,
body.app .app-topbar .nav-toggle,
body .app-topbar .nav-toggle,
body.app .app-topbar .app-actions a,
body .app-topbar .app-actions a,
body.app .app-topbar .button,
body .app-topbar .button,
body.app .app-topbar select,
body .app-topbar select,
body.app .sidebar-head,
body .sidebar-head,
body.app .quick-nav a,
body .quick-nav a,
body.app .nav-level .nav-row,
body .nav-level .nav-row,
body.app .nav-row-back,
body .nav-row-back,
body.app .nav-row-title,
body .nav-row-title,
body.app .nav-close,
body .nav-close,
body.app .ifb-contact-item,
body .ifb-contact-item{
  background:var(--steelcolor) !important;
  border-color:var(--steelcolor-line) !important;
  color:var(--steelcolor-text) !important;
}

/* Testi e icone meno celesti, più simili ad alluminio satinato. */
body.app .app-topbar :where(a,button,strong,span),
body .app-topbar :where(a,button,strong,span),
body.app .app-sidebar :where(a,button,strong,span),
body .app-sidebar :where(a,button,strong,span),
body.app .ifb-contact-sticky :where(a,strong,span,small),
body .ifb-contact-sticky :where(a,strong,span,small){
  color:inherit;
}
body.app .app-sidebar svg,
body .app-sidebar svg,
body.app .app-topbar svg,
body .app-topbar svg,
body.app .ifb-contact-sticky svg,
body .ifb-contact-sticky svg{
  color:var(--steelcolor-text) !important;
  stroke:currentColor;
}

/* I due pulsanti operativi in alto a destra: stessi pesi e proporzioni. */
body.app .app-topbar .app-actions,
body .app-topbar .app-actions{
  gap:8px !important;
}
body.app .app-topbar .app-actions > a,
body .app-topbar .app-actions > a{
  min-height:40px !important;
  padding:7px 14px !important;
  border:1px solid var(--steelcolor-line-strong) !important;
  border-radius:var(--ifb-radius) !important;
  background:var(--steelcolor) !important;
  box-shadow:none !important;
  color:var(--steelcolor-text) !important;
}
body.app .app-topbar .app-actions > a:hover,
body .app-topbar .app-actions > a:hover{
  background:var(--steelcolor-hover) !important;
  border-color:color-mix(in srgb, var(--steelcolor-light) 36%, transparent) !important;
  color:var(--steelcolor-text-strong) !important;
}
body.app .app-topbar .app-actions > a strong,
body .app-topbar .app-actions > a strong{
  color:var(--steelcolor-text-strong) !important;
}
body.app .app-topbar .app-actions > a small,
body .app-topbar .app-actions > a small{
  color:var(--steelcolor-text-soft) !important;
}

/* Parte centrale: una sola grammatica per bordi, raggi e padding. */
body.app :where(.panel,.card,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-app-kpi,
  .ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,.post-nav>div),
body :where(.panel,.card,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-app-kpi,
  .ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,.post-nav>div){
  background:var(--ifb-content-surface) !important;
  border:1px solid var(--ifb-content-line) !important;
  border-radius:var(--ifb-radius) !important;
  box-shadow:none !important;
}

/* Padding uniforme sui contenitori principali; non altera i moduli compatti. */
body.app :where(.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-result-card-rich,
  .ifb-company-card-rich,.ifb-app-object,.ifb-evidence,.ifb-policy-box),
body :where(.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-result-card-rich,
  .ifb-company-card-rich,.ifb-app-object,.ifb-evidence,.ifb-policy-box){
  padding:var(--ifb-space-md) !important;
}

body.app :where(.card,.ifb-card-mini,.ifb-app-kpi,.ifb-policy-small),
body :where(.card,.ifb-card-mini,.ifb-app-kpi,.ifb-policy-small){
  padding:var(--ifb-space-sm) !important;
}

/* Distanze verticali coerenti fra i blocchi centrali. */
body.app .main-content > :where(.panel,.card,.tool,.filter-bar,.ifb-news-search,
  .ifb-productive-panel,.article,.document,.workspace-head) +
  :where(.panel,.card,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,
  .article,.document,.workspace-head),
body .main-content > :where(.panel,.card,.tool,.filter-bar,.ifb-news-search,
  .ifb-productive-panel,.article,.document,.workspace-head) +
  :where(.panel,.card,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,
  .article,.document,.workspace-head){
  margin-top:var(--ifb-space-md) !important;
}

/* Elementi form centrali: stessi spessori e stesso raggio. */
body.app :where(input,select,textarea,.button,.button-soft),
body :where(input,select,textarea,.button,.button-soft){
  border-width:1px !important;
  border-color:var(--ifb-content-line) !important;
  border-radius:var(--ifb-radius) !important;
  box-shadow:none !important;
}

/* Breadcrumb più piatto e con lo stesso passo delle card. */
body.app .breadcrumb-wrap,
body .breadcrumb-wrap,
body.app .breadcrumb,
body .breadcrumb{
  border:1px solid var(--ifb-content-line-soft) !important;
  border-radius:var(--ifb-radius) !important;
  box-shadow:none !important;
}

/* Colonna destra: card tecniche senza doppi spessori. */
body.app .right-rail :where(.panel,.card,.tool),
body .right-rail :where(.panel,.card,.tool),
body.app .app-rail :where(.panel,.card,.tool),
body .app-rail :where(.panel,.card,.tool){
  border-color:var(--ifb-content-line) !important;
  border-radius:var(--ifb-radius) !important;
  box-shadow:none !important;
}

/* Sticky più tecnico e squadrato. */
body.app .ifb-contact-sticky,
body .ifb-contact-sticky{
  border-radius:var(--ifb-radius-large) !important;
  border:1px solid var(--steelcolor-line-strong) !important;
  padding:5px !important;
}
body.app .ifb-contact-item,
body .ifb-contact-item{
  border-radius:var(--ifb-radius) !important;
}

@media (max-width:1023px){
  body.app .app-topbar .app-actions > a,
  body .app-topbar .app-actions > a{
    min-height:38px !important;
    padding:6px 10px !important;
  }
}


/* 0.3.3 — Palette essenziale Italfaber: SteelColor, accento, fondo chiaro e bianco sporco */
:root{
  --steelcolor:var(--ifb-accent);
  --steelcolor-light:var(--ifb-soft);
  --paper:var(--ifb-soft);
  --accent:var(--ifb-accent);
  --bg:var(--steelcolor-light);
  --panel:var(--paper);
  --panel-soft:var(--steelcolor-light);
  --text:var(--steelcolor);
  --muted:var(--steelcolor);
  --line:var(--steelcolor-light);
  --accent-dark:var(--steelcolor);
  --ok:var(--steelcolor);
  --danger:var(--steelcolor);
}
body.app,.app-main{background:var(--steelcolor-light);color:var(--steelcolor)}
.app-topbar,.app-sidebar,.app-footer,.ifb-sticky-contact,.sticky-contact-bar{background:var(--steelcolor)!important;color:var(--paper)!important;border-color:var(--accent)!important}
.app-topbar a,.app-sidebar a,.app-sidebar button,.app-footer a,.ifb-sticky-contact a,.sticky-contact-bar a{color:var(--paper)!important}
.app-topbar .button,.app-topbar button,.app-sidebar .button,.app-sidebar button,.quick-nav a,.nav-row a,.ifb-sticky-contact a,.sticky-contact-bar a{background:var(--steelcolor)!important;border:1px solid var(--accent)!important;color:var(--paper)!important;box-shadow:none!important}
.app-topbar .button:hover,.app-topbar button:hover,.app-sidebar .button:hover,.app-sidebar button:hover,.quick-nav a:hover,.nav-row a:hover,.ifb-sticky-contact a:hover,.sticky-contact-bar a:hover{background:var(--accent)!important;color:var(--steelcolor)!important}
.panel,.card,.article,.tool,.filter-bar,.post-nav>div,.pagination a,.pagination span,.document-body table,.details-panel,.ifb-filter-form,.breadcrumb-wrap,.breadcrumb{background:var(--paper)!important;border-color:var(--steelcolor-light)!important;box-shadow:none!important}
.badge,.notice,.document-body blockquote,.nav-row-title,.details-panel>summary,.ifb-tags span,.ifb-tags-large span,.ifb-pill-list a,.ifb-related-links a{background:var(--steelcolor-light)!important;color:var(--steelcolor)!important;border-color:var(--accent)!important}
.button,.pagination .current{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--steelcolor)!important}
.button-soft{background:var(--paper)!important;color:var(--steelcolor)!important;border-color:var(--accent)!important}
input,select,textarea{background:var(--paper)!important;color:var(--steelcolor)!important;border-color:var(--accent)!important}
a{color:var(--steelcolor)}

/* 0.3.4 — Sidebar SteelColor pura: nessun bordo celeste/accento */
:root{
  --sidebar-line:color-mix(in srgb,var(--steelcolor) 78%,var(--paper) 22%);
  --sidebar-hover:color-mix(in srgb,var(--steelcolor) 93%,var(--paper) 7%);
  --sidebar-active:color-mix(in srgb,var(--steelcolor) 88%,var(--paper) 12%);
}
.app-sidebar{
  border-right-color:var(--sidebar-line)!important;
}
.app-sidebar :where(.sidebar-head,.quick-nav,.nav-row,.nav-next,.nav-close,.nav-level,.nav-row-title){
  border-color:var(--sidebar-line)!important;
}
.app-sidebar :where(.button,button,.quick-nav a,.nav-row a,.nav-back,.nav-next){
  background:var(--steelcolor)!important;
  border-color:var(--sidebar-line)!important;
  color:var(--paper)!important;
  box-shadow:none!important;
}
.app-sidebar :where(.button,button,.quick-nav a,.nav-row a,.nav-back,.nav-next):hover{
  background:var(--sidebar-hover)!important;
  border-color:var(--sidebar-line)!important;
  color:var(--paper)!important;
}
.app-sidebar :where(.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a){
  background:var(--sidebar-active)!important;
  color:var(--paper)!important;
  border-color:var(--sidebar-line)!important;
  box-shadow:inset 2px 0 0 var(--paper)!important;
}
.app-sidebar .nav-row-title{
  background:var(--sidebar-hover)!important;
  color:var(--paper)!important;
}

/* 0.3.6 — Fondo grigio freddo: niente giallo, lieve tono SteelColor chiaro */
:root{
  --steelcolor:var(--ifb-accent);
  --accent:var(--ifb-accent);
  --steel-light:var(--ifb-soft);
  --paper:var(--ifb-soft);

  --bg:var(--paper);
  --panel:var(--paper);
  --panel-soft:var(--steel-light);
  --text:var(--steelcolor);
  --muted:var(--steelcolor);
  --line:color-mix(in srgb,var(--steelcolor) 15%,var(--paper));
  --line-strong:color-mix(in srgb,var(--steelcolor) 28%,var(--paper));
  --accent-dark:var(--steelcolor);
  --ok:var(--steelcolor);
  --danger:var(--steelcolor);

  --sidebar-line:color-mix(in srgb,var(--paper) 18%,var(--steelcolor));
  --sidebar-hover:color-mix(in srgb,var(--paper) 5%,var(--steelcolor));
  --sidebar-active:color-mix(in srgb,var(--paper) 9%,var(--steelcolor));
}

/* Carta tecnica al centro: niente dominante azzurra. */
html,body,body.app,.app-shell,.app-main,.main-content,.workspace,.document{
  background:var(--paper) !important;
  color:var(--steelcolor) !important;
}

/* Il fondo chiaro della famiglia SteelColor resta solo come separazione discreta. */
.app-shell,
.workspace-wrap,
.content-shell,
.app-content{
  background:var(--steel-light) !important;
}
.app-main,
.main-content,
.workspace,
.document,
.article,
.entry-content{
  background:var(--paper) !important;
}

/* Tutti i bordi strutturali sono grigio-ferro, mai accent/celeste. */
body.app :where(
  .panel,.card,.article,.tool,.filter-bar,.post-nav>div,.pagination a,.pagination span,
  .document-body table,.document-body th,.document-body td,.details-panel,.ifb-filter-form,
  .breadcrumb-wrap,.breadcrumb,.hero-media img,.ifb-news-search,.ifb-productive-panel,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-app-kpi,
  .ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,.ifb-front-filter,.ifer-related-cards,
  input,select,textarea
),
body :where(
  .panel,.card,.article,.tool,.filter-bar,.post-nav>div,.pagination a,.pagination span,
  .document-body table,.document-body th,.document-body td,.details-panel,.ifb-filter-form,
  .breadcrumb-wrap,.breadcrumb,.hero-media img,.ifb-news-search,.ifb-productive-panel,
  .ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,.ifb-app-kpi,
  .ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,.ifb-front-filter,.ifer-related-cards,
  input,select,textarea
){
  border-color:var(--line) !important;
  box-shadow:none !important;
}

/* Card e pannelli: bianco sporco, senza sfumature celesti. */
body.app :where(
  .panel,.card,.article,.tool,.filter-bar,.post-nav>div,.document-body table,
  .details-panel,.ifb-filter-form,.breadcrumb-wrap,.breadcrumb,.ifb-news-search,
  .ifb-productive-panel,.ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,
  .ifb-app-kpi,.ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,.ifb-front-filter,.ifer-related-cards
),
body :where(
  .panel,.card,.article,.tool,.filter-bar,.post-nav>div,.document-body table,
  .details-panel,.ifb-filter-form,.breadcrumb-wrap,.breadcrumb,.ifb-news-search,
  .ifb-productive-panel,.ifb-app-hero,.ifb-app-panel,.ifb-side-card,.ifb-app-warning,
  .ifb-app-kpi,.ifb-result-card-rich,.ifb-company-card-rich,.ifb-app-object,.ifb-evidence,
  .ifb-card-mini,.ifb-policy-box,.ifb-policy-small,.ifb-front-filter,.ifer-related-cards
){
  background:var(--paper) !important;
}

/* Elementi secondari: solo il fondo Steel chiaro, con bordo ferro neutro. */
body.app :where(.badge,.notice,.document-body blockquote,.nav-row-title,.details-panel>summary,
  .ifb-tags span,.ifb-tags-large span,.ifb-pill-list a,.ifb-related-links a),
body :where(.badge,.notice,.document-body blockquote,.nav-row-title,.details-panel>summary,
  .ifb-tags span,.ifb-tags-large span,.ifb-pill-list a,.ifb-related-links a){
  background:var(--steel-light) !important;
  color:var(--steelcolor) !important;
  border-color:var(--line) !important;
  box-shadow:none !important;
}

/* Sidebar: nessuna traccia di accent nei bordi, hover o focus. */
body.app .app-sidebar,
body .app-sidebar{
  background:var(--steelcolor) !important;
  border-color:var(--sidebar-line) !important;
}
body.app .app-sidebar :where(*),
body .app-sidebar :where(*){
  --accent:var(--steelcolor) !important;
  --accent-dark:var(--paper) !important;
}
body.app .app-sidebar :where(.sidebar-head,.quick-nav,.quick-nav a,.nav-level,.nav-row,.nav-row a,
  .nav-next,.nav-back,.nav-close,.nav-row-title,.button,button),
body .app-sidebar :where(.sidebar-head,.quick-nav,.quick-nav a,.nav-level,.nav-row,.nav-row a,
  .nav-next,.nav-back,.nav-close,.nav-row-title,.button,button){
  background:var(--steelcolor) !important;
  color:var(--paper) !important;
  border-color:var(--sidebar-line) !important;
  outline-color:var(--sidebar-line) !important;
  box-shadow:none !important;
}
body.app .app-sidebar :where(.quick-nav a,.nav-row a,.nav-next,.nav-back,.nav-close,.button,button):hover,
body .app-sidebar :where(.quick-nav a,.nav-row a,.nav-next,.nav-back,.nav-close,.button,button):hover{
  background:var(--sidebar-hover) !important;
  color:var(--paper) !important;
  border-color:var(--sidebar-line) !important;
  box-shadow:none !important;
}
body.app .app-sidebar :where(.quick-nav a,.nav-row a,.nav-next,.nav-back,.nav-close,.button,button):focus,
body.app .app-sidebar :where(.quick-nav a,.nav-row a,.nav-next,.nav-back,.nav-close,.button,button):focus-visible,
body .app-sidebar :where(.quick-nav a,.nav-row a,.nav-next,.nav-back,.nav-close,.button,button):focus,
body .app-sidebar :where(.quick-nav a,.nav-row a,.nav-next,.nav-back,.nav-close,.button,button):focus-visible{
  outline:1px solid var(--sidebar-line) !important;
  outline-offset:-1px !important;
  border-color:var(--sidebar-line) !important;
  box-shadow:none !important;
}
body.app .app-sidebar :where(.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a),
body .app-sidebar :where(.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a){
  background:var(--sidebar-active) !important;
  color:var(--paper) !important;
  border-color:var(--sidebar-line) !important;
  box-shadow:inset 2px 0 0 color-mix(in srgb,var(--paper) 72%,var(--steelcolor)) !important;
}

/* Topbar e sticky: stesso ferro; bordi neutri, accento solo per azioni primarie. */
body.app .app-topbar,
body .app-topbar,
body.app .ifb-contact-sticky,
body .ifb-contact-sticky,
body.app .sticky-contact-bar,
body .sticky-contact-bar{
  background:var(--steelcolor) !important;
  border-color:var(--sidebar-line) !important;
  color:var(--paper) !important;
}
body.app .app-topbar :where(a,button,.button),
body .app-topbar :where(a,button,.button),
body.app .ifb-contact-sticky :where(a,.ifb-contact-item),
body .ifb-contact-sticky :where(a,.ifb-contact-item){
  background:var(--steelcolor) !important;
  color:var(--paper) !important;
  border-color:var(--sidebar-line) !important;
  box-shadow:none !important;
}
body.app .app-topbar :where(a,button,.button):hover,
body .app-topbar :where(a,button,.button):hover,
body.app .ifb-contact-sticky :where(a,.ifb-contact-item):hover,
body .ifb-contact-sticky :where(a,.ifb-contact-item):hover{
  background:var(--sidebar-hover) !important;
  color:var(--paper) !important;
  border-color:var(--sidebar-line) !important;
}

/* Accent esclusivamente come azione, non come cornice decorativa. */
body.app :where(.button:not(.button-soft),button[type=submit],input[type=submit],.pagination .current),
body :where(.button:not(.button-soft),button[type=submit],input[type=submit],.pagination .current){
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:var(--steelcolor) !important;
}
body.app :where(.button-soft,.pagination a,.pagination span),
body :where(.button-soft,.pagination a,.pagination span){
  background:var(--paper) !important;
  color:var(--steelcolor) !important;
  border-color:var(--line) !important;
}

/* Focus dei form: visibile ma neutro, senza alone celeste. */
body.app :where(input,select,textarea):focus,
body.app :where(input,select,textarea):focus-visible,
body :where(input,select,textarea):focus,
body :where(input,select,textarea):focus-visible{
  outline:1px solid var(--line-strong) !important;
  outline-offset:0 !important;
  border-color:var(--line-strong) !important;
  box-shadow:none !important;
}

/* Raggi uniformi e quasi nulli anche sulle vecchie componenti. */
body.app :where(.panel,.card,.article,.tool,.filter-bar,.button,.button-soft,input,select,textarea,
  .breadcrumb-wrap,.breadcrumb,.ifb-news-search,.ifb-productive-panel,.ifb-contact-sticky,
  .ifb-contact-item,.ifb-front-filter,.ifer-related-cards,.pagination a,.pagination span),
body :where(.panel,.card,.article,.tool,.filter-bar,.button,.button-soft,input,select,textarea,
  .breadcrumb-wrap,.breadcrumb,.ifb-news-search,.ifb-productive-panel,.ifb-contact-sticky,
  .ifb-contact-item,.ifb-front-filter,.ifer-related-cards,.pagination a,.pagination span){
  border-radius:3px !important;
}


/* 0.3.6 — Override finale fondo neutro-freddo */
:root{
  --steel-light:var(--ifb-soft);
  --paper:var(--ifb-soft);
  --bg:var(--steel-light);
  --panel:var(--paper);
  --panel-soft:var(--steel-light);
}
body.app,body{background:var(--steel-light)!important;}
.app-shell,.workspace-wrap,.content-shell,.app-content{background:var(--steel-light)!important;}
.app-main,.main-content,.workspace,.document,.article,.entry-content,
.panel,.card,.tool,.filter-bar,.breadcrumb-wrap,.breadcrumb{background:var(--paper)!important;}

/* 0.3.7 — Fondo appena più scuro per distinguere con discrezione le card */
:root{
  --steel-light:var(--ifb-soft);
  --paper:var(--ifb-soft);
  --bg:var(--steel-light);
  --panel:var(--paper);
  --panel-soft:var(--steel-light);
}
body.app,body,
.app-shell,.workspace-wrap,.content-shell,.app-content{
  background:var(--steel-light)!important;
}
.app-main,.main-content,.workspace,.document,.article,.entry-content,
.panel,.card,.tool,.filter-bar,.breadcrumb-wrap,.breadcrumb{
  background:var(--paper)!important;
}

/* ================================================================
   0.3.9 — TYPOGRAPHY AUDIT / RIMOZIONE BOX AREE OPERATIVE
   Nitidezza, gerarchia e lettura prolungata senza cambiare layout.
   ================================================================ */
:root{
  --ifb-body-font:"Segoe UI Variable Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ifb-ui-font:"Science Gothic","Segoe UI Variable Display","Segoe UI",system-ui,sans-serif;
  --ifb-reading-size:1.0125rem;
  --ifb-reading-leading:1.68;
}

html{
  font-size:16px;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  text-rendering:optimizeLegibility;
  font-kerning:normal;
}

body,
body.app{
  font-family:var(--ifb-body-font) !important;
  font-size:16px;
  line-height:1.6;
  font-weight:400;
  letter-spacing:0;
  font-synthesis:none;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Corpo editoriale: carattere neutro, più aperto e meno impastato. */
.document-body,
.entry-content,
.article-content,
.wp-block-post-content,
.ifb-app-description,
.ifb-company-description{
  font-family:var(--ifb-body-font) !important;
  font-size:var(--ifb-reading-size);
  line-height:var(--ifb-reading-leading);
  font-weight:400;
  letter-spacing:.002em;
  font-synthesis:none;
  font-optical-sizing:auto;
  overflow-wrap:break-word;
}

.document-body p,
.entry-content p,
.article-content p,
.wp-block-post-content p{
  max-width:78ch;
  margin-top:0;
  margin-bottom:1.15em;
}

.document-body li,
.entry-content li,
.article-content li,
.wp-block-post-content li{
  margin-bottom:.38em;
  padding-left:.08em;
}

/* Science Gothic resta la firma del sito, ma con pesi reali e puliti. */
:where(
  h1,h2,h3,h4,h5,h6,
  .app-brand,.sidebar-brand,.workspace-head h1,.document-head h1,
  .section-title,.card-title,.eyebrow,
  .nav-row a,.nav-back,.nav-row-title,.quick-nav a,
  .button,.button-soft,.nav-toggle,
  .badge,.meta-list dt,.ifb-company-meta dt,
  .ifb-operational-bar,.ifb-operational-bar__label
){
  font-family:var(--ifb-ui-font) !important;
  font-synthesis:none !important;
  font-optical-sizing:auto;
  font-kerning:normal;
}

h1,.workspace-head h1,.document-head h1{
  font-weight:700 !important;
  line-height:1.12;
  letter-spacing:-.018em !important;
}

h2,.document-body h2,.entry-content h2{
  font-weight:650 !important;
  line-height:1.22;
  letter-spacing:-.01em !important;
}

h3,.document-body h3,.entry-content h3{
  font-weight:600 !important;
  line-height:1.28;
  letter-spacing:-.004em !important;
}

h4,h5,h6,.card-title,.card h2{
  font-weight:600 !important;
  line-height:1.3;
  letter-spacing:0 !important;
}

/* Interfaccia: marcata ma non gonfia. */
.app-brand,.sidebar-brand{
  font-weight:700 !important;
  letter-spacing:.035em !important;
}

.nav-row a,.nav-back,.quick-nav a,
.app-actions a,.button,.button-soft,.nav-toggle,
.ifb-contact-item,.ifb-operational-bar{
  font-weight:550 !important;
  letter-spacing:.006em !important;
}

.nav-row.is-current>a,
.nav-row.current-menu-item>a,
.nav-row.current-menu-ancestor>a,
.nav-back,
.button,
button[type=submit],input[type=submit]{
  font-weight:650 !important;
}

.eyebrow,.nav-row-title,.badge,
.meta-list dt,.ifb-company-meta dt,
.ifb-operational-bar__label{
  font-weight:650 !important;
  letter-spacing:.055em !important;
}

/* Testi piccoli: mai troppo sottili o troppo compressi. */
.meta,.app-actions a,.sidebar-empty,.app-footer,
.ifb-small-note,.ifb-update-excerpt,.ifb-ethical-note,.ifb-archive-ethic,
.breadcrumb,.ifb-breadcrumb,.nav-count{
  font-family:var(--ifb-body-font) !important;
  font-weight:450 !important;
  line-height:1.48;
  letter-spacing:.004em;
}

/* Dati e tabelle: cifre più stabili e facilmente confrontabili. */
table,th,td,.meta-list,.ifb-company-meta,
.ifb-stat-card strong,.ifb-app-kpi strong{
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}

th{
  font-family:var(--ifb-ui-font) !important;
  font-weight:600 !important;
  letter-spacing:.012em;
}

td{
  line-height:1.48;
}

/* Form: testo nitido, senza pesi sintetici. */
button,input,select,textarea{
  font-family:var(--ifb-body-font);
  font-synthesis:none;
  font-optical-sizing:auto;
}
input,select,textarea{
  font-weight:400;
  line-height:1.45;
}

/* Evita il finto grassetto prodotto dal browser. */
strong,b{
  font-weight:650;
}

/* Migliore leggibilità della selezione senza introdurre nuovi colori. */
::selection{
  background:var(--steelcolor);
  color:var(--paper);
}

@media (max-width:720px){
  :root{
    --ifb-reading-size:1rem;
    --ifb-reading-leading:1.64;
  }
  .document-body p,
  .entry-content p,
  .article-content p,
  .wp-block-post-content p{
    max-width:none;
  }
}


/* ================================================================
   0.3.10 — USER BOX CLASSICO IN TOPBAR
   I pulsanti promozionali vengono sostituiti da un solo controllo utente.
   ================================================================ */
body.app .app-topbar .app-actions,
body .app-topbar .app-actions{
  display:flex;
  align-items:center;
  margin-left:auto;
  gap:0;
}

.ifb-user-box{
  position:relative;
  margin:0;
  font-family:var(--ifb-ui-font);
}

.ifb-user-box > summary{
  list-style:none;
  min-height:38px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:4px 9px 4px 6px;
  cursor:pointer;
  color:var(--paper);
  background:var(--steelcolor);
  border:1px solid color-mix(in srgb,var(--paper) 22%,var(--steelcolor));
  border-radius:3px;
  user-select:none;
}
.ifb-user-box > summary::-webkit-details-marker{display:none}
.ifb-user-box > summary:hover,
.ifb-user-box[open] > summary{
  background:color-mix(in srgb,var(--paper) 7%,var(--steelcolor));
  border-color:color-mix(in srgb,var(--paper) 34%,var(--steelcolor));
}
.ifb-user-avatar{
  width:28px!important;
  height:28px!important;
  display:block;
  border-radius:2px!important;
  border:1px solid color-mix(in srgb,var(--paper) 28%,var(--steelcolor));
}
.ifb-user-icon{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  color:color-mix(in srgb,var(--paper) 76%,var(--steelcolor));
  border:1px solid color-mix(in srgb,var(--paper) 25%,var(--steelcolor));
  border-radius:2px;
  font-size:.62rem;
}
.ifb-user-copy{display:grid;line-height:1.05;min-width:72px}
.ifb-user-copy strong{font-size:.82rem;font-weight:650;color:var(--paper)}
.ifb-user-copy small{margin-top:3px;font-size:.66rem;font-weight:450;color:color-mix(in srgb,var(--paper) 70%,var(--steelcolor))}
.ifb-user-chevron{margin-left:2px;font-size:.7rem;color:color-mix(in srgb,var(--paper) 70%,var(--steelcolor))}
.ifb-user-menu{
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  z-index:120;
  min-width:150px;
  padding:5px;
  display:grid;
  gap:2px;
  background:var(--steelcolor);
  border:1px solid color-mix(in srgb,var(--paper) 24%,var(--steelcolor));
  border-radius:3px;
}
body.app .app-topbar .ifb-user-menu a,
body .app-topbar .ifb-user-menu a{
  display:flex;
  align-items:center;
  min-height:34px;
  padding:7px 9px;
  color:var(--paper)!important;
  background:var(--steelcolor)!important;
  border:0!important;
  border-radius:2px;
  text-decoration:none;
  font-size:.82rem;
  font-weight:500;
}
body.app .app-topbar .ifb-user-menu a:hover,
body .app-topbar .ifb-user-menu a:hover{
  background:color-mix(in srgb,var(--paper) 8%,var(--steelcolor))!important;
}
@media (max-width:1023px){
  .app-actions{display:flex!important}
  .ifb-user-copy{display:none}
  .ifb-user-box > summary{padding:4px 6px;gap:4px}
  .ifb-user-chevron{display:none}
}

/* ================================================================
   0.3.12 — MOBILE REFINEMENT
   Rifinitura specifica smartphone senza alterare il desktop.
   ================================================================ */
@media (max-width: 767px){
  :root{
    --topbar:52px;
  }

  html{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    scroll-padding-top:calc(var(--topbar) + 10px);
  }

  body.app{
    overflow-x:hidden;
    padding-bottom:68px;
  }

  .app-topbar{
    height:var(--topbar);
    min-height:var(--topbar);
    gap:8px;
    padding:0 9px;
  }

  .nav-toggle{
    flex:0 0 auto;
    min-width:40px;
    min-height:36px;
    padding:7px 9px;
    gap:0;
  }
  .nav-toggle span{display:none;}

  .app-brand{
    flex:0 1 auto;
    min-width:0;
    font-size:.9rem;
    letter-spacing:.025em!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .ifb-language-switcher{
    margin-left:auto!important;
    min-width:0;
    max-width:118px;
  }
  .ifb-language-switcher select,
  .ifb-language-switcher .gt_selector{
    width:100%;
    max-width:118px!important;
    min-height:34px;
    padding:5px 24px 5px 7px!important;
    font-size:.76rem!important;
  }

  .app-actions{
    flex:0 0 auto;
    margin-left:0!important;
  }
  .ifb-user-box > summary{
    width:36px;
    min-width:36px;
    min-height:36px;
    padding:3px!important;
    justify-content:center;
  }
  .ifb-user-avatar,
  .ifb-user-icon{
    width:26px!important;
    height:26px!important;
  }
  .ifb-user-menu{
    position:fixed;
    top:calc(var(--topbar) + 6px);
    right:8px;
    width:min(210px,calc(100vw - 16px));
    min-width:0;
  }

  .app-main{
    padding:12px 10px 18px;
  }
  .workspace-head,
  .document-head{
    margin-bottom:13px;
  }
  .workspace-head h1,
  .document-head h1{
    font-size:clamp(1.38rem,7vw,1.85rem);
    line-height:1.13;
    overflow-wrap:anywhere;
  }
  .lead{
    margin:.65rem 0 0;
    font-size:.98rem;
    line-height:1.55;
  }
  .meta{
    font-size:.82rem;
    line-height:1.45;
  }

  .panel,.article,.tool,.filter-bar{
    padding:14px;
  }
  .card{
    padding:13px;
  }
  .grid,.dashboard-grid{
    grid-template-columns:minmax(0,1fr);
    gap:10px;
  }

  .document-body,
  .entry-content,
  .article-content,
  .wp-block-post-content{
    font-size:1rem;
    line-height:1.62;
  }
  .document-body h2,
  .entry-content h2{
    margin-top:1.65em;
    font-size:1.32rem;
  }
  .document-body h3,
  .entry-content h3{
    margin-top:1.45em;
    font-size:1.12rem;
  }

  .document-body table,
  .entry-content table{
    display:block;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    white-space:nowrap;
  }
  .document-body th,.document-body td,
  .entry-content th,.entry-content td{
    padding:8px;
    font-size:.88rem;
  }

  .filter-bar,
  .ifb-news-search-form,
  .ifb-front-filter-form{
    align-items:stretch;
  }
  .filter-bar > *,
  .filter-bar label,
  .filter-bar input,
  .filter-bar select,
  .filter-bar .button,
  .filter-bar button{
    width:100%;
    min-width:0;
  }

  .button,.button-soft,button,input[type=submit],.nav-toggle{
    min-height:40px;
  }

  .app-sidebar{
    width:min(88vw,336px);
    max-width:336px;
  }
  .sidebar-head{
    padding:0 10px;
  }
  .quick-nav{
    grid-template-columns:1fr;
    padding:8px;
  }
  .quick-nav a,
  .nav-row a,
  .nav-back,
  .nav-row-title span{
    min-height:42px;
  }
  .nav-row:not(.nav-row-title){
    grid-template-columns:minmax(0,1fr) 42px;
  }

  .ifb-operational-bar{
    display:flex!important;
    flex-wrap:wrap;
    gap:4px 8px!important;
    padding:8px 10px!important;
    font-size:.78rem!important;
    line-height:1.35;
  }

  .ifb-contact-sticky{
    min-height:58px;
    gap:2px!important;
    padding:4px!important;
    border-radius:0!important;
  }
  .ifb-contact-item{
    min-width:0;
    min-height:50px!important;
    padding:5px 2px!important;
    border-radius:2px!important;
  }
  .ifb-contact-item span{
    width:25px!important;
    height:25px!important;
  }
  .ifb-contact-item span svg{
    width:23px!important;
    height:23px!important;
  }
  .ifb-contact-item strong{
    max-width:100%;
    font-size:.68rem!important;
    line-height:1.1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .app-footer{
    padding:14px 10px 82px;
    font-size:.78rem;
    line-height:1.45;
  }

  .alignleft,.alignright{
    float:none;
    display:block;
    margin:0 auto 14px;
  }
}

@media (max-width: 380px){
  .app-brand{font-size:.82rem;}
  .ifb-language-switcher{max-width:96px;}
  .ifb-language-switcher select,
  .ifb-language-switcher .gt_selector{max-width:96px!important;font-size:.7rem!important;}
  .app-main{padding-inline:8px;}
  .panel,.article,.tool,.filter-bar{padding:12px;}
}


/* 0.3.13: integrazione Italfaber Icone Contestuali */
.app-sidebar .ifci-sidebar-icon{color:inherit;flex:0 0 auto;width:1.12rem;height:1.12rem}
.app-sidebar .ifb-nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ifci-document-title-row{display:flex;align-items:center;gap:12px}
.ifci-document-title-row h1{min-width:0}
.document-head .ifci-heading-icon{color:var(--accent-dark);width:2.15rem;height:2.15rem}
@media (max-width:640px){.ifci-document-title-row{gap:9px}.document-head .ifci-heading-icon{width:1.75rem;height:1.75rem}}

/* Icone contestuali nelle card degli archivi: una sola identità, colore ereditato dal tema. */
.ifb-card-title-with-icon{display:flex;align-items:flex-start;gap:9px}
.ifb-card-title-with-icon>a{min-width:0}
.ifb-card-title-with-icon .ifci-card-icon{color:var(--accent-dark);flex:0 0 auto;width:1.18em;height:1.18em;margin-top:.04em}
.ifb-card-title-with-icon .ifci-card-icon svg,.ifb-card-title-with-icon .ifci-card-icon img{display:block;width:100%;height:100%;object-fit:contain}
@media (max-width:640px){.ifb-card-title-with-icon{gap:7px}.ifb-card-title-with-icon .ifci-card-icon{width:1.08em;height:1.08em}}


/* 0.3.16 — normalizzazione definitiva delle testate pagina e archivio.
   Un solo ritmo verticale per pagine, articoli, archivi e ricerca. */
:where(.workspace-head,.document-head){
  padding:0;
}

:where(.workspace-head,.document-head) > :first-child{
  margin-top:0 !important;
}

:where(.workspace-head,.document-head) > :last-child{
  margin-bottom:0 !important;
}

:where(.workspace-head,.document-head) .eyebrow{
  margin:0 0 7px !important;
}

:where(.workspace-head,.document-head) h1,
:where(.workspace-head,.document-head) .ifci-document-title-row{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

.ifci-document-title-row{
  display:flex;
  align-items:flex-start;
  gap:12px;
  width:100%;
}

.ifci-document-title-row h1{
  flex:1 1 auto;
  min-width:0;
  margin:0 !important;
}

.document-head .ifci-heading-icon{
  flex:0 0 auto;
  margin-top:.08em;
}

:where(.workspace-head,.document-head) h1 + :where(.lead,.meta,.seo-description,.filter-bar,.ifb-archive-vtvu),
:where(.workspace-head,.document-head) .ifci-document-title-row + :where(.lead,.meta,.seo-description,.filter-bar,.ifb-archive-vtvu){
  margin-top:12px !important;
}

:where(.workspace-head,.document-head) :where(.lead,.meta,.seo-description){
  margin-bottom:0;
}

/* La testata esterna mantiene il distacco dall'elenco; quella interna
   usa solo il distacco dal corpo del documento. */
.workspace-head{
  margin-top:0 !important;
  margin-bottom:18px !important;
}

.document-head{
  margin-top:0 !important;
  margin-bottom:22px !important;
}

@media (max-width:640px){
  :where(.workspace-head,.document-head) .eyebrow{
    margin-bottom:5px !important;
  }
  .ifci-document-title-row{
    gap:9px;
  }
  :where(.workspace-head,.document-head) h1 + :where(.lead,.meta,.seo-description,.filter-bar,.ifb-archive-vtvu),
  :where(.workspace-head,.document-head) .ifci-document-title-row + :where(.lead,.meta,.seo-description,.filter-bar,.ifb-archive-vtvu){
    margin-top:9px !important;
  }
  .workspace-head{
    margin-bottom:14px !important;
  }
  .document-head{
    margin-bottom:17px !important;
  }
}


/* 0.3.17 — maggiore respiro e separazione cromatica delle card.
   Usa esclusivamente i colori già presenti nel tema. */
:root{
  --ifb-card-surface:color-mix(in srgb, var(--panel) 88%, var(--bg) 12%);
  --ifb-card-surface-hover:color-mix(in srgb, var(--panel) 94%, var(--bg) 6%);
  --ifb-card-gap:18px;
  --ifb-card-padding:clamp(21px,2.2vw,28px);
}

/* Card degli archivi, risultati e schede speciali. */
:where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card,.card-appalto,.card-carpenteria){
  padding:var(--ifb-card-padding) !important;
  background:var(--ifb-card-surface) !important;
  border-color:color-mix(in srgb, var(--line) 82%, var(--text) 18%) !important;
}

:where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card,.card-appalto,.card-carpenteria):hover{
  background:var(--ifb-card-surface-hover) !important;
}

/* Più aria tra le card senza alterare le griglie interne delle schede. */
:where(.workspace,.ifb-appalti-archive,.ifb-atlante) > :where(.grid,.list,.dashboard-grid),
:where(.archive-main,.archive-content,.search-results) :where(.grid,.list){
  gap:var(--ifb-card-gap) !important;
}

.list{
  gap:var(--ifb-card-gap);
}

.grid,.dashboard-grid{
  gap:var(--ifb-card-gap);
}

/* Ritmo interno più leggibile. */
:where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card) :where(.card-title,h2,h3):first-child{
  margin-top:0;
}

:where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card) :where(.card-title,.archive-item-title,h2,h3){
  margin-bottom:11px;
}

:where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card) :where(p,.archive-item-excerpt){
  line-height:1.62;
}

:where(.archive-item-meta,.ifb-card-meta-compact,.ifb-app-card-meta,.ifb-company-meta){
  margin-top:16px;
  padding-top:13px;
}

.ifb-card-title-with-icon{
  gap:11px;
  margin-bottom:3px;
}

/* Distacco coerente tra la testata archivio e la prima card. */
.workspace-head + :where(.grid,.list,.dashboard-grid,.ifb-appalti-archive,.ifb-atlante){
  margin-top:4px;
}

@media (max-width:640px){
  :root{
    --ifb-card-gap:14px;
    --ifb-card-padding:18px;
  }

  :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card,.card-appalto,.card-carpenteria){
    padding:var(--ifb-card-padding) !important;
  }

  :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card) :where(.card-title,.archive-item-title,h2,h3){
    margin-bottom:9px;
  }

  :where(.archive-item-meta,.ifb-card-meta-compact,.ifb-app-card-meta,.ifb-company-meta){
    margin-top:13px;
    padding-top:11px;
  }
}


/* 0.3.21 — pagina pubblica Italfaber AI con conversazione completa */
.ifb-ai-page{
  --ifb-ai-ink:var(--ifb-soft);
  --ifb-ai-muted:var(--ifb-border);
  --ifb-ai-surface:var(--ifb-accent-deep);
  --ifb-ai-surface-2:var(--ifb-accent);
  --ifb-ai-line:color-mix(in srgb, var(--ifb-accent) 18%, transparent);
  --ifb-ai-bright:var(--ifb-soft);
  width:min(1220px,100%);
  margin:0 auto;
  display:grid;
  gap:clamp(22px,3vw,38px);
}
.ifb-ai-page *{box-sizing:border-box}
.ifb-ai-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  align-items:center;
  gap:clamp(26px,5vw,70px);
  min-height:570px;
  padding:clamp(34px,6vw,82px);
  color:var(--ifb-ai-ink);
  background:
    linear-gradient(115deg,color-mix(in srgb, var(--ifb-accent) 98%, transparent),color-mix(in srgb, var(--ifb-accent) 94%, transparent)),
    repeating-linear-gradient(90deg,transparent 0 79px,color-mix(in srgb, var(--ifb-white) 2%, transparent) 80px),
    repeating-linear-gradient(0deg,transparent 0 79px,color-mix(in srgb, var(--ifb-white) 2%, transparent) 80px);
  border:1px solid var(--ifb-ai-line);
  box-shadow:0 26px 70px color-mix(in srgb, var(--ifb-accent) 20%, transparent);
}
.ifb-ai-hero:after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:auto -12% -48% 34%;
  height:90%;
  background:radial-gradient(circle,color-mix(in srgb, var(--ifb-accent) 18%, transparent),transparent 67%);
}
.ifb-ai-kicker,.ifb-ai-section-label{
  margin:0 0 10px;
  font-size:.76rem;
  line-height:1.2;
  letter-spacing:.17em;
  text-transform:uppercase;
  font-weight:800;
}
.ifb-ai-kicker{color:var(--ifb-border)}
.ifb-ai-hero h1{
  margin:0;
  color:var(--ifb-white);
  font-size:clamp(3.35rem,8vw,7.5rem);
  line-height:.88;
  letter-spacing:-.065em;
  text-wrap:balance;
}
.ifb-ai-subtitle{
  margin:14px 0 0;
  color:var(--ifb-border);
  font-size:clamp(1.05rem,2vw,1.42rem);
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
}
.ifb-ai-lead{
  max-width:760px;
  margin:28px 0 0;
  color:var(--ifb-border);
  font-size:clamp(1.05rem,1.6vw,1.3rem);
  line-height:1.65;
}
.ifb-ai-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.ifb-ai-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:13px 21px;
  border:1px solid transparent;
  border-radius:2px;
  font-weight:800;
  text-decoration:none!important;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.ifb-ai-button:hover{transform:translateY(-2px)}
.ifb-ai-button--primary{background:var(--ifb-soft);color:var(--ifb-accent-deep)!important;border-color:var(--ifb-soft)}
.ifb-ai-button--primary:hover{background:var(--ifb-white);border-color:var(--ifb-white)}
.ifb-ai-button--secondary{color:var(--ifb-soft)!important;border-color:color-mix(in srgb, var(--ifb-accent) 38%, transparent);background:color-mix(in srgb, var(--ifb-white) 4%, transparent)}
.ifb-ai-button--secondary:hover{background:color-mix(in srgb, var(--ifb-white) 9%, transparent);border-color:color-mix(in srgb, var(--ifb-accent) 70%, transparent)}
.ifb-ai-access-note{max-width:660px;margin:16px 0 0;color:var(--ifb-border);font-size:.84rem;line-height:1.55}
.ifb-ai-hero-visual{display:flex;justify-content:center}
.ifb-ai-logo-frame{position:relative;width:min(100%,410px);aspect-ratio:1;border-radius:50%;filter:drop-shadow(0 30px 38px color-mix(in srgb, var(--ifb-accent) 35%, transparent))}
.ifb-ai-logo-frame:before{content:"";position:absolute;inset:-10%;border-radius:50%;border:1px solid color-mix(in srgb, var(--ifb-white) 9%, transparent)}
.ifb-ai-logo-frame img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.ifb-ai-manifesto,.ifb-ai-capabilities,.ifb-ai-method,.ifb-ai-principles,.ifb-ai-final-cta,.ifb-ai-disclaimer{
  border:1px solid color-mix(in srgb,var(--line) 82%,var(--text) 18%);
  background:color-mix(in srgb,var(--panel) 94%,var(--bg) 6%);
}
.ifb-ai-manifesto{padding:clamp(32px,6vw,78px);display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr);gap:clamp(24px,5vw,70px);align-items:start}
.ifb-ai-section-label{color:var(--accent-dark)}
.ifb-ai-manifesto h2,.ifb-ai-section-head h2,.ifb-ai-method h2,.ifb-ai-principles h2,.ifb-ai-final-cta h2{
  margin:0;
  font-size:clamp(1.75rem,3.5vw,3.1rem);
  line-height:1.08;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.ifb-ai-manifesto>p:last-child{margin:0;font-size:clamp(1.04rem,1.5vw,1.25rem);line-height:1.75;color:var(--text)}
.ifb-ai-capabilities{padding:clamp(30px,5vw,66px)}
.ifb-ai-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);column-gap:clamp(24px,5vw,70px);align-items:end;margin-bottom:30px}
.ifb-ai-section-head .ifb-ai-section-label{grid-column:1/-1}
.ifb-ai-section-head>p:last-child{margin:0;color:var(--muted);line-height:1.65}
.ifb-ai-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ifb-ai-card{position:relative;min-height:230px;padding:26px;background:color-mix(in srgb,var(--panel) 84%,var(--bg) 16%);border:1px solid var(--line)}
.ifb-ai-card-index{display:block;margin-bottom:48px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.12em}
.ifb-ai-card h3{margin:0 0 12px;font-size:1.18rem;line-height:1.2}
.ifb-ai-card p{margin:0;color:var(--muted);line-height:1.62}
.ifb-ai-method{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);gap:clamp(28px,6vw,80px);padding:clamp(32px,6vw,78px)}
.ifb-ai-steps{list-style:none;counter-reset:ifb-ai-step;margin:0;padding:0;border-top:1px solid var(--line)}
.ifb-ai-steps li{counter-increment:ifb-ai-step;display:grid;grid-template-columns:42px minmax(150px,.55fr) minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}
.ifb-ai-steps li:before{content:counter(ifb-ai-step,decimal-leading-zero);font-size:.72rem;font-weight:800;color:var(--accent-dark);letter-spacing:.08em}
.ifb-ai-steps strong{font-size:1rem}
.ifb-ai-steps span{color:var(--muted);line-height:1.55}
.ifb-ai-principles{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr);gap:clamp(26px,6vw,82px);padding:clamp(32px,6vw,78px);background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 90%,var(--bg) 10%),color-mix(in srgb,var(--panel) 76%,var(--accent) 24%))}
.ifb-ai-principles-list{border-top:1px solid var(--line)}
.ifb-ai-principles-list p{display:grid;grid-template-columns:minmax(145px,.55fr) minmax(0,1fr);gap:20px;margin:0;padding:19px 0;border-bottom:1px solid var(--line)}
.ifb-ai-principles-list span{color:var(--muted);line-height:1.55}
.ifb-ai-final-cta{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:clamp(32px,5vw,64px);color:var(--ifb-ai-ink);background:linear-gradient(115deg,var(--ifb-accent-deep),var(--ifb-accent))}
.ifb-ai-final-cta .ifb-ai-section-label{color:var(--ifb-border)}
.ifb-ai-final-cta h2{color:var(--ifb-white);max-width:760px}
.ifb-ai-final-cta p:not(.ifb-ai-section-label){max-width:760px;margin:15px 0 0;color:var(--ifb-border);line-height:1.65}
.ifb-ai-final-cta .ifb-ai-button{flex:0 0 auto}
.ifb-ai-disclaimer{padding:22px 26px}
.ifb-ai-disclaimer strong{display:block;margin-bottom:5px;color:var(--accent-dark)}
.ifb-ai-disclaimer p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.55}
@media(max-width:980px){
  .ifb-ai-hero{grid-template-columns:1fr;min-height:auto}
  .ifb-ai-hero-visual{grid-row:1;justify-content:flex-start}
  .ifb-ai-logo-frame{width:190px}
  .ifb-ai-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ifb-ai-section-head{grid-template-columns:1fr;gap:15px}
}
@media(max-width:720px){
  .ifb-ai-page{gap:14px}
  .ifb-ai-hero,.ifb-ai-manifesto,.ifb-ai-method,.ifb-ai-principles{grid-template-columns:1fr}
  .ifb-ai-hero{padding:28px 21px}
  .ifb-ai-hero h1{font-size:clamp(3rem,17vw,4.8rem)}
  .ifb-ai-logo-frame{width:150px}
  .ifb-ai-actions{display:grid}
  .ifb-ai-button{width:100%}
  .ifb-ai-grid{grid-template-columns:1fr}
  .ifb-ai-card{min-height:0}
  .ifb-ai-card-index{margin-bottom:28px}
  .ifb-ai-steps li{grid-template-columns:34px 1fr}
  .ifb-ai-steps li span{grid-column:2}
  .ifb-ai-principles-list p{grid-template-columns:1fr;gap:6px}
  .ifb-ai-final-cta{display:grid;padding:30px 22px}
}

/* Conversazione pubblica Italfaber AI */
.ifb-ai-conversation{display:grid;gap:18px;padding:clamp(24px,4vw,52px);background:var(--panel);border:1px solid var(--line)}
.ifb-ai-dialogue{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,2fr);gap:clamp(22px,4vw,64px);padding:clamp(24px,4vw,44px) 0;border-top:1px solid var(--line)}
.ifb-ai-dialogue:first-of-type{margin-top:8px}
.ifb-ai-question{margin:0;font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.16;letter-spacing:-.025em}
.ifb-ai-answer{min-width:0;color:var(--text)}
.ifb-ai-answer p{margin:0 0 16px;line-height:1.72}
.ifb-ai-answer h4{margin:28px 0 8px;font-size:1.05rem;line-height:1.3}
.ifb-ai-answer-lead{font-size:1.08rem;font-weight:650}
.ifb-ai-start-note{margin-top:24px!important;padding:18px 20px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--bg) 62%,var(--panel) 38%)}
.ifb-ai-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}
.ifb-ai-status-grid p{display:grid;gap:6px;margin:0;padding:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 82%,var(--bg) 18%)}
.ifb-ai-status-grid strong{font-size:.78rem;letter-spacing:.08em}
.ifb-ai-status-grid span{color:var(--muted);font-size:.92rem;line-height:1.45}
@media (max-width:820px){.ifb-ai-dialogue{grid-template-columns:1fr;gap:16px}.ifb-ai-status-grid{grid-template-columns:1fr}}

/* 0.3.22 — Ritorno all'identità storica Italfaber: bianco, blu e layout boxed */
:root{
  --ifb-blue:var(--ifb-accent);
  --ifb-blue-dark:var(--ifb-accent);
  --ifb-blue-light:var(--ifb-soft);
  --ifb-page:var(--ifb-soft);
  --ifb-white:var(--ifb-white);
  --ifb-border:var(--ifb-border);
  --ifb-box-width:1240px;

  --steelcolor:var(--ifb-blue-dark);
  --accent:var(--ifb-blue);
  --accent-dark:var(--ifb-blue-dark);
  --bg:var(--ifb-page);
  --panel:var(--ifb-white);
  --panel-soft:var(--ifb-blue-light);
  --paper:var(--ifb-white);
  --text:var(--ifb-text);
  --muted:var(--ifb-text-muted);
  --line:var(--ifb-border);
  --line-strong:var(--ifb-accent);
  --radius:2px;
  --ifb-radius:2px;
  --ifb-radius-large:3px;
}

html{background:var(--ifb-page)!important}
body.app{
  margin:0!important;
  background:var(--ifb-page)!important;
  color:var(--text)!important;
}

/* Il sito torna a essere un portale centrale, non una pagina a tutta larghezza. */
body.app .app-topbar,
body.app .app-shell,
body.app .app-footer{
  width:min(calc(100% - 32px),var(--ifb-box-width));
  margin-inline:auto;
}
body.app .app-topbar{
  top:0;
  height:64px;
  padding:0 18px;
  background:var(--ifb-blue)!important;
  border:1px solid var(--ifb-blue-dark)!important;
  border-top:0!important;
  box-shadow:0 2px 6px color-mix(in srgb, var(--ifb-accent) 18%, transparent)!important;
}
body.app .app-brand{
  color:var(--ifb-white)!important;
  font-size:1.28rem;
  letter-spacing:.075em;
  text-shadow:0 1px 0 color-mix(in srgb, var(--ifb-accent) 18%, transparent);
}
body.app .app-topbar a,
body.app .app-topbar button{color:var(--ifb-white)!important}
body.app .app-topbar .nav-toggle{
  background:var(--ifb-blue-dark)!important;
  border-color:color-mix(in srgb, var(--ifb-white) 42%, transparent)!important;
  border-radius:2px!important;
}

body.app .app-shell{
  min-height:calc(100vh - 64px);
  background:var(--ifb-white)!important;
  border-left:1px solid var(--ifb-border);
  border-right:1px solid var(--ifb-border);
  box-shadow:0 0 10px color-mix(in srgb, var(--ifb-accent) 12%, transparent);
}
body.app .app-main{
  background:var(--ifb-white)!important;
  padding:24px 26px 36px;
}
body.app .app-sidebar{
  background:var(--ifb-soft)!important;
  border-right:1px solid var(--ifb-border)!important;
}
body.app .app-sidebar :where(.sidebar-head,.nav-level){background:var(--ifb-soft)!important}
body.app .app-sidebar :where(.quick-nav a,.nav-row a,.nav-back,.nav-next,.nav-close){
  background:var(--ifb-white)!important;
  color:var(--ifb-blue-dark)!important;
  border-color:var(--ifb-border)!important;
}
body.app .app-sidebar :where(.quick-nav a,.nav-row a,.nav-back,.nav-next,.nav-close):hover{
  background:var(--ifb-blue-light)!important;
  color:var(--ifb-blue-dark)!important;
}
body.app .app-sidebar :where(.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a){
  background:var(--ifb-blue)!important;
  color:var(--ifb-white)!important;
  box-shadow:inset 4px 0 0 var(--ifb-blue-dark)!important;
}
body.app .app-sidebar .nav-row-title{
  background:var(--ifb-blue-dark)!important;
  color:var(--ifb-white)!important;
}

body.app .workspace-head{
  padding:18px 20px;
  border:1px solid var(--ifb-border);
  border-top:5px solid var(--ifb-blue);
  background:var(--ifb-white);
}
body.app .workspace-head h1,
body.app .document-head h1,
body.app .section-title{color:var(--ifb-blue-dark)}
body.app .eyebrow{color:var(--ifb-blue)!important}

body.app :where(.panel,.card,.article,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter,.ifb-ai-conversation){
  background:var(--ifb-white)!important;
  border:1px solid var(--ifb-border)!important;
  border-radius:2px!important;
  box-shadow:none!important;
}
body.app :where(.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter){
  border-top:4px solid var(--ifb-blue)!important;
}
body.app .card:hover{border-color:var(--ifb-blue)!important}

body.app :where(.button,.pagination .current,.ifb-news-search-form button,.ifb-front-filter-actions button){
  background:var(--ifb-blue)!important;
  border-color:var(--ifb-blue)!important;
  color:var(--ifb-white)!important;
  border-radius:2px!important;
}
body.app :where(.button,.ifb-news-search-form button,.ifb-front-filter-actions button):hover{
  background:var(--ifb-blue-dark)!important;
  border-color:var(--ifb-blue-dark)!important;
}
body.app .button-soft{
  background:var(--ifb-white)!important;
  color:var(--ifb-blue-dark)!important;
  border-color:var(--ifb-blue)!important;
}
body.app a{color:var(--ifb-blue-dark)}
body.app :where(input,select,textarea){
  background:var(--ifb-white)!important;
  border-color:var(--ifb-border)!important;
  border-radius:2px!important;
  color:var(--text)!important;
}
body.app :where(input,select,textarea):focus{
  outline:2px solid var(--ifb-blue-light)!important;
  border-color:var(--ifb-blue)!important;
}
body.app :where(.badge,.notice,.document-body blockquote,.ifb-tags span,.ifb-tags-large span,.ifb-pill-list a,.ifb-related-links a){
  background:var(--ifb-blue-light)!important;
  color:var(--ifb-blue-dark)!important;
  border-color:var(--ifb-border)!important;
  border-radius:2px!important;
}

body.app .app-footer{
  padding:18px 22px;
  background:var(--ifb-blue-dark)!important;
  border:1px solid var(--ifb-blue-dark)!important;
  color:var(--ifb-white)!important;
  box-shadow:0 3px 8px color-mix(in srgb, var(--ifb-accent) 14%, transparent);
}
body.app .app-footer a{color:var(--ifb-white)!important}

@media (max-width:1023px){
  body.app .app-topbar,
  body.app .app-shell,
  body.app .app-footer{width:100%;border-left:0;border-right:0}
  body.app .app-main{padding:16px}
  body.app .app-sidebar{background:var(--ifb-white)!important}
}

/* 0.3.23 — Rifinitura completa del tema boxed Italfaber */
:root{
  --ifb-shadow:0 2px 8px color-mix(in srgb, var(--ifb-accent) 10%, transparent);
  --ifb-shadow-soft:0 1px 3px color-mix(in srgb, var(--ifb-accent) 8%, transparent);
  --ifb-focus:var(--ifb-accent);
  --ifb-content-gap:20px;
}

html{scroll-behavior:smooth}
body.app{
  min-width:320px;
  font-family:"Science Gothic",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.58;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body.app ::selection{background:var(--ifb-blue);color:var(--ifb-white)}
body.app :where(h1,h2,h3,h4){text-wrap:balance}
body.app :where(p,li,dd){text-wrap:pretty}

/* Accessibilità: focus sempre visibile e coerente. */
body.app :where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--ifb-focus)!important;
  outline-offset:2px!important;
  box-shadow:none!important;
}
.screen-reader-text.skip-link:focus{
  position:fixed!important;
  z-index:99999;
  top:10px;
  left:10px;
  width:auto;
  height:auto;
  clip:auto!important;
  clip-path:none!important;
  padding:10px 14px;
  background:var(--ifb-white);
  color:var(--ifb-blue-dark);
  border:2px solid var(--ifb-blue-dark);
  font-weight:800;
  text-decoration:none;
}

/* Cornice boxed più precisa e più simile a un portale editoriale. */
@media (min-width:1024px){
  body.app{padding:14px 0 22px}
  body.app .app-topbar{
    border-radius:3px 3px 0 0!important;
  }
  body.app .app-shell{
    box-shadow:var(--ifb-shadow)!important;
  }
  body.app .app-footer{
    border-radius:0 0 3px 3px;
  }
}

body.app .app-topbar{
  min-height:64px;
  gap:14px;
  background:linear-gradient(180deg,var(--ifb-accent) 0%,var(--ifb-blue) 100%)!important;
}
body.app .app-brand{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  white-space:nowrap;
}
body.app .app-actions{gap:10px}
body.app .app-topbar :where(.app-actions a,.language-switcher,select){font-size:.9rem}
body.app .app-topbar :where(.app-actions a,.language-switcher){opacity:.94}
body.app .app-topbar :where(.app-actions a,.language-switcher):hover{opacity:1}
body.app .app-topbar .nav-toggle{
  min-width:92px;
  transition:background-color .16s ease,border-color .16s ease,transform .16s ease;
}
body.app .app-topbar .nav-toggle:hover{transform:translateY(-1px)}

body.app .app-shell{align-items:stretch}
body.app .app-main{min-height:720px}
body.app .workspace,
body.app .workspace-head,
body.app .document,
body.app .pagination{width:min(100%,1120px)}

/* Ritmo verticale uniforme tra testata, strumenti e contenuti. */
body.app .app-main > :where(.workspace-head,.workspace,.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter,.ifb-ai-page){
  margin-bottom:var(--ifb-content-gap);
}
body.app .workspace-head{
  position:relative;
  box-shadow:var(--ifb-shadow-soft);
}
body.app .workspace-head:before{
  content:"";
  position:absolute;
  top:-1px;
  right:-1px;
  width:44px;
  height:5px;
  background:var(--ifb-blue-dark);
}
body.app .workspace-head h1{
  font-size:clamp(1.65rem,2.4vw,2.45rem);
  line-height:1.13;
  letter-spacing:-.022em;
}
body.app .workspace-head .lead{
  max-width:820px;
  margin-top:10px!important;
  line-height:1.62;
}
body.app .section-title{
  padding-bottom:8px;
  border-bottom:2px solid var(--ifb-blue-light);
  font-size:clamp(1.3rem,1.8vw,1.65rem);
}

/* Pannelli: gerarchia più chiara senza tornare allo stile SaaS. */
body.app :where(.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter){
  box-shadow:var(--ifb-shadow-soft)!important;
}
body.app :where(.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter) > :first-child{margin-top:0}
body.app :where(.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter) > :last-child{margin-bottom:0}

/* Card più compatte, leggibili e nettamente editoriali. */
body.app :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card,.card-appalto,.card-carpenteria){
  position:relative;
  background:var(--ifb-white)!important;
  border-left:4px solid var(--ifb-border)!important;
  box-shadow:var(--ifb-shadow-soft)!important;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
body.app :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card,.card-appalto,.card-carpenteria):hover{
  border-left-color:var(--ifb-blue)!important;
  box-shadow:0 3px 10px color-mix(in srgb, var(--ifb-accent) 13%, transparent)!important;
  transform:translateY(-1px);
}
body.app :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card) :where(h2,h3,.card-title,.archive-item-title) a{
  color:var(--ifb-blue-dark);
  text-decoration:none;
}
body.app :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card) :where(h2,h3,.card-title,.archive-item-title) a:hover{
  color:var(--ifb-blue);
  text-decoration:underline;
}
body.app :where(.meta,.archive-item-meta,.ifb-card-meta-compact,.ifb-app-card-meta,.ifb-company-meta){
  color:var(--ifb-accent);
}

/* Controlli e pulsanti: stati completi. */
body.app :where(.button,.ifb-news-search-form button,.ifb-front-filter-actions button){
  min-height:40px;
  padding:9px 15px;
  box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--ifb-accent) 12%, transparent);
  transition:background-color .16s ease,border-color .16s ease,transform .16s ease;
}
body.app :where(.button,.ifb-news-search-form button,.ifb-front-filter-actions button):hover{transform:translateY(-1px)}
body.app :where(.button,.ifb-news-search-form button,.ifb-front-filter-actions button):active{transform:translateY(0)}
body.app :where(input,select,textarea){
  min-height:40px;
  padding:8px 10px;
  transition:border-color .16s ease,box-shadow .16s ease;
}
body.app textarea{min-height:130px;resize:vertical}
body.app :where(input,select,textarea)::placeholder{color:var(--ifb-accent);opacity:1}

/* Tabelle tecniche e contenuti lunghi. */
body.app .document-body{font-size:1rem}
body.app .document-body :where(h2,h3,h4){color:var(--ifb-blue-dark)}
body.app .document-body h2{
  padding-bottom:7px;
  border-bottom:2px solid var(--ifb-blue-light);
}
body.app .document-body table{
  display:table;
  box-shadow:var(--ifb-shadow-soft);
}
body.app .document-body th{
  background:var(--ifb-blue-dark);
  color:var(--ifb-white);
  font-weight:750;
}
body.app .document-body tbody tr:nth-child(even){background:var(--ifb-soft)}
body.app .document-body tbody tr:hover{background:var(--ifb-blue-light)}
body.app .document-body :where(code,kbd){font-size:.9em}
body.app .document-body code{padding:.12em .32em;background:var(--ifb-soft);border:1px solid var(--ifb-border)}

/* Sidebar: menu più ordinato e meno piatto. */
body.app .app-sidebar{box-shadow:inset -1px 0 0 color-mix(in srgb, var(--ifb-white) 70%, transparent)}
body.app .sidebar-head{font-weight:800;color:var(--ifb-blue-dark)}
body.app .quick-nav{gap:7px}
body.app .quick-nav a{font-weight:700}
body.app .nav-row a{line-height:1.3}
body.app .nav-row:not(.nav-row-title){margin-bottom:2px}
body.app .nav-count{
  padding:1px 6px;
  background:var(--ifb-blue-light);
  border:1px solid var(--ifb-border);
  color:var(--ifb-blue-dark);
}

/* Footer più compatto e leggibile. */
body.app .app-footer{
  line-height:1.5;
  text-align:center;
}
body.app .app-footer strong{letter-spacing:.055em}

/* Responsive: il boxed scompare naturalmente, non viene semplicemente schiacciato. */
@media (max-width:1023px){
  body.app{padding:0}
  body.app .app-topbar{position:sticky}
  body.app .app-main{min-height:0;padding:18px 16px 28px}
  body.app .workspace-head{padding:16px 17px}
  body.app .app-main > :where(.workspace-head,.workspace,.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter,.ifb-ai-page){margin-bottom:16px}
}
@media (max-width:640px){
  body.app{font-size:15.5px}
  body.app .app-topbar{height:auto;min-height:58px;padding:7px 10px}
  body.app .app-brand{font-size:1.08rem;letter-spacing:.055em}
  body.app .app-topbar .nav-toggle{min-width:44px;padding:8px 10px}
  body.app .app-topbar .nav-toggle span{display:none}
  body.app .app-main{padding:14px 11px 24px}
  body.app .workspace-head{padding:14px;border-top-width:4px}
  body.app .workspace-head h1{font-size:1.55rem}
  body.app .workspace-head .lead{font-size:.98rem}
  body.app :where(.panel,.tool,.filter-bar,.ifb-news-search,.ifb-productive-panel,.ifb-front-filter){padding:16px!important}
  body.app :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card,.card-appalto,.card-carpenteria){
    padding:16px!important;
    border-left-width:3px!important;
  }
  body.app .filter-bar{align-items:stretch}
  body.app .filter-bar :where(label,input,select,.button,button){width:100%}
  body.app .document-body table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body.app .app-footer{padding:16px 14px;font-size:.84rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body.app *,body.app *:before,body.app *:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* 0.3.24 — Micro-rifiniture, coerenza e robustezza */
:root{
  --accent-strong:var(--ifb-blue-dark);
  --ink-soft:var(--ifb-accent);
  --shadow-soft:var(--ifb-shadow-soft);
}
body.app{overflow-x:hidden}
body.app .app-topbar{isolation:isolate}
body.app .app-brand{flex:0 0 auto}
body.app .ifb-language-switcher{min-width:0;max-width:190px}
body.app .ifb-language-switcher :where(select,.gt_selector){max-width:100%;text-overflow:ellipsis}
body.app .app-actions{min-width:0;flex:0 1 auto}
body.app .ifb-user-box{max-width:220px}
body.app .ifb-user-box > summary{min-height:42px}
body.app .ifb-user-copy{min-width:0}
body.app .ifb-user-copy :where(strong,small){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.app .ifb-user-menu{z-index:120}

/* Collegamenti: sottolineatura solo dove aiuta davvero la lettura. */
body.app .document-body a:not(.button),
body.app .article a:not(.button){text-decoration-thickness:1px;text-underline-offset:3px}
body.app .document-body a:not(.button):hover,
body.app .article a:not(.button):hover{text-decoration-thickness:2px}

/* Evita salti di layout e rende le immagini più editoriali. */
body.app :where(.hero-media,.wp-caption,figure){max-width:100%}
body.app .document-body :where(img,video,iframe){border-radius:2px}
body.app .document-body iframe{display:block;width:100%;max-width:100%;border:1px solid var(--ifb-border)}
body.app .wp-caption-text,body.app figcaption{margin-top:7px;color:var(--muted);font-size:.86rem;line-height:1.45}

/* Liste e separatori più regolari nei contenuti lunghi. */
body.app .document-body :where(ul,ol){padding-left:1.35rem}
body.app .document-body li+li{margin-top:.32em}
body.app .document-body hr{margin:2rem 0;border:0;border-top:1px solid var(--ifb-border)}
body.app .document-body pre{max-width:100%;overflow:auto;padding:14px;background:var(--ifb-soft);border:1px solid var(--ifb-border)}

/* Stati disabilitati e validazione form coerenti. */
body.app :where(button,input,select,textarea):disabled,
body.app :where(.button,[aria-disabled="true"]){cursor:not-allowed}
body.app :where(button,input,select,textarea):disabled{opacity:.62}
body.app :where(input,select,textarea):user-invalid{border-color:var(--ifb-accent)!important}
body.app :where(input,select,textarea):user-valid{border-color:var(--ifb-accent)}
body.app label{font-weight:650;color:var(--text)}
body.app :where(input[type="checkbox"],input[type="radio"]){min-height:auto;accent-color:var(--ifb-blue)}

/* Details/summary: indicatore uniforme e area cliccabile chiara. */
body.app details>summary{list-style:none}
body.app details>summary::-webkit-details-marker{display:none}
body.app .details-panel>summary:after,
body.app .ifb-all-data>summary:after{content:"+";float:right;margin-left:12px;color:var(--ifb-blue);font-weight:900}
body.app .details-panel[open]>summary:after,
body.app .ifb-all-data[open]>summary:after{content:"−"}

/* Tabelle: intestazioni ferme e numeri più leggibili. */
body.app .document-body table{font-variant-numeric:tabular-nums}
body.app .document-body th{vertical-align:bottom}
body.app .document-body td{vertical-align:top}
body.app .document-body caption{padding:0 0 8px;color:var(--ifb-blue-dark);font-weight:800;text-align:left}

@media (min-width:1024px){
  body.app .app-topbar,body.app .app-shell,body.app .app-footer{width:min(calc(100% - 40px),var(--ifb-box-width))}
  body.app .app-main{padding-inline:28px}
}
@media (max-width:760px){
  body.app .ifb-language-switcher{max-width:118px;margin-left:auto}
  body.app .app-actions{margin-left:0}
  body.app .ifb-user-copy{display:none}
  body.app .ifb-user-box{max-width:none}
}
@media (max-width:460px){
  body.app .app-topbar{gap:7px}
  body.app .app-brand{font-size:1rem;letter-spacing:.04em}
  body.app .ifb-language-switcher{max-width:88px}
  body.app .app-main{padding-inline:9px}
  body.app .workspace-head{padding-inline:12px}
  body.app :where(.card,.archive-item,.archive-post-item,.ifb-result-card,.ifb-company-card,.card-appalto,.card-carpenteria){padding:14px!important}
}
@media print{
  body.app{background:var(--ifb-white)!important;padding:0!important;font-size:11pt}
  body.app :where(.app-topbar,.app-sidebar,.nav-backdrop,.app-footer,.button,.filter-bar){display:none!important}
  body.app .app-shell,body.app .app-main,body.app .workspace,body.app .workspace-head,body.app .document{width:100%!important;max-width:none!important;border:0!important;box-shadow:none!important;padding:0!important}
  body.app a{color:var(--ifb-accent-deep)!important;text-decoration:none!important}
  body.app .document-body a[href]:after{content:" (" attr(href) ")";font-size:.8em;overflow-wrap:anywhere}
  body.app .document-body table{box-shadow:none!important}
  body.app :where(.card,.panel,.article){break-inside:avoid;box-shadow:none!important}
}


/* 0.3.26 — Home centrata sui servizi reali di carpenteria */
body.home .app-main{padding-top:22px}
.app-brand{display:flex;align-items:center;min-width:148px}
.app-brand img{display:block;width:148px;max-height:42px;object-fit:contain;object-position:left center}

.ifb-home-hero,
.ifb-home-services,
.ifb-home-cta,
.ifb-home-resources,
.ifb-home-latest{width:min(100%,var(--wide));margin-inline:auto}

.ifb-home-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr);background:var(--ifb-white);border:1px solid var(--ifb-border);border-top:5px solid var(--ifb-accent);box-shadow:0 8px 24px color-mix(in srgb, var(--ifb-accent) 8%, transparent);margin-bottom:22px}
.ifb-home-hero__copy{padding:clamp(28px,4vw,58px);background:linear-gradient(135deg,var(--ifb-white) 0%,var(--ifb-white) 70%,var(--ifb-soft) 100%);position:relative;overflow:hidden}
.ifb-home-hero__copy:after{content:"";position:absolute;right:-80px;bottom:-95px;width:260px;height:260px;border:34px solid color-mix(in srgb, var(--ifb-accent) 4%, transparent);transform:rotate(45deg);pointer-events:none}
.ifb-home-hero h1{max-width:780px;margin:.08em 0 .48em;font-size:clamp(2rem,4.2vw,4.15rem);line-height:1.02;letter-spacing:-.035em;color:var(--ifb-accent-deep)}
.ifb-home-hero__lead{max-width:720px;margin:0;color:var(--ifb-accent);font-size:clamp(1rem,1.45vw,1.17rem);line-height:1.65}
.ifb-home-hero__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.ifb-home-primary{min-height:46px;padding-inline:20px;background:var(--ifb-accent);border-color:var(--ifb-accent)}
.ifb-home-trust{display:flex;flex-wrap:wrap;gap:10px 24px;list-style:none;margin:26px 0 0;padding:18px 0 0;border-top:1px solid var(--ifb-border);color:var(--ifb-accent);font-size:.9rem;font-weight:650}
.ifb-home-trust li{position:relative;padding-left:18px}
.ifb-home-trust li:before{content:"";position:absolute;left:0;top:.48em;width:8px;height:8px;background:var(--ifb-accent)}

.ifb-home-hero__request{position:relative;padding:clamp(26px,3vw,42px);background:var(--ifb-accent);color:var(--ifb-white);display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.ifb-home-hero__request:after{content:"";position:absolute;inset:auto -48px -80px auto;width:190px;height:190px;border:24px solid color-mix(in srgb, var(--ifb-white) 7%, transparent);transform:rotate(45deg)}
.ifb-home-hero__request .eyebrow{color:var(--ifb-border)}
.ifb-home-hero__request h2{position:relative;margin:4px 0 14px;font-size:clamp(1.45rem,2vw,2.05rem);line-height:1.12;color:var(--ifb-white)}
.ifb-home-hero__request p:not(.eyebrow){position:relative;margin:0;color:var(--ifb-border);line-height:1.62}
.ifb-home-request__number{position:absolute;right:22px;top:14px;font-size:4.5rem;line-height:1;color:color-mix(in srgb, var(--ifb-white) 8%, transparent);font-weight:900}
.ifb-home-request__link{position:relative;display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding:14px 0;border-top:1px solid color-mix(in srgb, var(--ifb-white) 25%, transparent);color:var(--ifb-white);text-decoration:none;font-weight:800}
.ifb-home-request__link span{font-size:1.3rem;transition:transform .18s ease}
.ifb-home-request__link:hover span{transform:translateX(4px)}

.ifb-home-services{background:var(--ifb-white);border:1px solid var(--ifb-border);padding:clamp(20px,3vw,36px);margin-bottom:22px}
.ifb-home-section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px;padding-bottom:16px;border-bottom:2px solid var(--ifb-accent)}
.ifb-home-section-head h2,.ifb-home-section-head .section-title{width:auto;margin:0;color:var(--ifb-accent);font-size:clamp(1.55rem,2.3vw,2.35rem);line-height:1.1}
.ifb-home-section-head>p{max-width:520px;margin:0;color:var(--ifb-accent);text-align:right}
.ifb-home-section-head--compact{align-items:center;margin-bottom:14px}
.ifb-home-section-head--compact .section-title{margin:0}
.ifb-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ifb-border);border-left:1px solid var(--ifb-border)}
.ifb-service-card{position:relative;display:flex;min-height:220px;flex-direction:column;gap:16px;padding:24px 22px 20px;background:var(--ifb-white);border-right:1px solid var(--ifb-border);border-bottom:1px solid var(--ifb-border);color:var(--ifb-accent);text-decoration:none;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}
.ifb-service-card:hover{z-index:2;background:var(--ifb-soft);box-shadow:inset 0 4px 0 var(--ifb-accent);transform:translateY(-2px)}
.ifb-service-card__icon{width:48px;height:48px;display:grid;place-items:center;background:var(--ifb-soft);border:1px solid var(--ifb-border);color:var(--ifb-accent)}
.ifb-service-card__icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:square;stroke-linejoin:miter}
.ifb-service-card__body{display:grid;gap:8px}
.ifb-service-card__number{position:absolute;top:18px;right:18px;color:var(--ifb-accent);font-size:.75rem;font-weight:850;letter-spacing:.1em}
.ifb-service-card strong{font-size:1.08rem;line-height:1.2;color:var(--ifb-accent)}
.ifb-service-card__body>span:last-child{color:var(--ifb-accent);font-size:.9rem;line-height:1.5}
.ifb-service-card__arrow{margin-top:auto;color:var(--ifb-accent);font-size:1.25rem;font-weight:800}

.ifb-home-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:22px;padding:28px clamp(22px,3.5vw,44px);background:var(--ifb-accent);color:var(--ifb-white);border-left:8px solid var(--ifb-accent)}
.ifb-home-cta .eyebrow{color:var(--ifb-border)}
.ifb-home-cta h2{margin:3px 0 7px;color:var(--ifb-white);font-size:clamp(1.45rem,2.2vw,2.15rem)}
.ifb-home-cta p:not(.eyebrow){max-width:760px;margin:0;color:var(--ifb-border)}
.ifb-home-cta__actions{display:flex;align-items:center;gap:14px;flex-shrink:0}
.ifb-home-cta .button{background:var(--ifb-white);border-color:var(--ifb-white);color:var(--ifb-accent)}
.ifb-home-whatsapp{color:var(--ifb-white);font-weight:800;text-underline-offset:4px}

.ifb-home-resources{padding:clamp(20px,3vw,34px);background:var(--ifb-soft);border:1px solid var(--ifb-border);margin-bottom:22px}
.ifb-home-resources>:not(.ifb-home-section-head){margin-inline:0!important;width:100%!important;max-width:none!important}
.ifb-home-resources>:last-child{margin-bottom:0!important}
.ifb-home-latest{padding:clamp(20px,3vw,34px);background:var(--ifb-white);border:1px solid var(--ifb-border)}

@media(max-width:1080px){
  .ifb-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ifb-home-hero{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr)}
}
@media(max-width:760px){
  body.home .app-main{padding-top:12px}
  .app-brand{min-width:118px}.app-brand img{width:118px}
  .ifb-home-hero{grid-template-columns:1fr;border-top-width:4px}
  .ifb-home-hero__copy,.ifb-home-hero__request{padding:24px 19px}
  .ifb-home-hero h1{font-size:clamp(2rem,10vw,3rem)}
  .ifb-home-section-head,.ifb-home-cta{display:block}
  .ifb-home-section-head>p{text-align:left;margin-top:9px}
  .ifb-home-cta__actions{margin-top:18px;flex-wrap:wrap}
  .ifb-home-services,.ifb-home-resources,.ifb-home-latest{padding:18px 14px}
}
@media(max-width:520px){
  .ifb-service-grid{grid-template-columns:1fr}
  .ifb-service-card{min-height:190px;padding:20px 18px}
  .ifb-home-hero__actions .button{width:100%}
  .ifb-home-trust{display:grid;gap:10px}
}

/* 0.3.27 — Home e archivi a una sola colonna di contenuto */
@media (min-width:1280px){
  body.ifb-content-single-column .app-shell{
    grid-template-columns:var(--sidebar) minmax(0,1fr)!important;
    grid-template-areas:"sidebar main"!important;
  }
  body.ifb-content-single-column .ifb-right-rail{
    display:none!important;
  }
}

/* Gli archivi non devono mai trasformarsi in mosaici o colonne affiancate. */
body.archive .workspace.list,
body.blog .workspace.list,
body.search-results .workspace.list,
body.search-no-results .workspace.list,
body.home .ifb-home-latest .list,
body.ifb-content-single-column .archive-list,
body.ifb-content-single-column .results-list{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:14px!important;
  width:100%!important;
  max-width:none!important;
}

body.archive .workspace.list > *,
body.blog .workspace.list > *,
body.search-results .workspace.list > *,
body.search-no-results .workspace.list > *,
body.home .ifb-home-latest .list > *{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

/* Hero stabile: una sola composizione, senza testo schiacciato tra due rail. */
body.home .ifb-home-hero{
  display:block!important;
  position:relative;
  overflow:hidden;
  background:var(--ifb-white);
}
body.home .ifb-home-hero__copy{
  min-height:360px;
  padding:clamp(34px,5vw,66px)!important;
  padding-right:min(46%,560px)!important;
}
body.home .ifb-home-hero h1{
  max-width:760px!important;
  font-size:clamp(2.15rem,4vw,4rem)!important;
  line-height:1.04!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}
body.home .ifb-home-hero__request{
  position:absolute!important;
  top:0;
  right:0;
  bottom:0;
  width:min(40%,470px);
  min-width:340px;
  padding:clamp(28px,3vw,46px)!important;
}
body.home .ifb-home-hero__request h2{
  font-size:clamp(1.35rem,2vw,2rem)!important;
  overflow-wrap:break-word;
  word-break:normal;
}

@media (max-width:1100px){
  body.home .ifb-home-hero__copy{
    min-height:0;
    padding-right:clamp(28px,5vw,58px)!important;
  }
  body.home .ifb-home-hero__request{
    position:relative!important;
    width:100%;
    min-width:0;
  }
}

/* La barra contatti non deve coprire il contenuto sul desktop del portale. */
@media (min-width:1024px){
  body.ifb-content-single-column .ifb-contact-sticky,
  body.ifb-content-single-column .contact-sticky-bar,
  body.ifb-content-single-column .ifb-sticky-contact-bar{
    position:static!important;
    width:100%!important;
    max-width:none!important;
    margin:18px 0 0!important;
  }
}

/* ================================================================
   0.3.28 — CHROME TUTTO BIANCO
   Header, menu e sidebar bianchi; il blu resta solo come segno grafico.
   ================================================================ */
:root{
  --ifb-white:var(--ifb-white);
  --ifb-blue:var(--ifb-accent);
  --ifb-blue-dark:var(--ifb-accent);
  --ifb-blue-soft:var(--ifb-soft);
  --ifb-white-line:var(--ifb-border);
}

body.app .app-topbar,
body .app-topbar{
  background:var(--ifb-white)!important;
  border-bottom:1px solid var(--ifb-white-line)!important;
  box-shadow:0 2px 8px color-mix(in srgb, var(--ifb-accent) 6%, transparent)!important;
}

body.app .app-brand,
body .app-brand,
body.app .app-topbar .nav-toggle,
body .app-topbar .nav-toggle{
  background:var(--ifb-white)!important;
  color:var(--ifb-blue-dark)!important;
  border:1px solid var(--ifb-white-line)!important;
  border-top:3px solid var(--ifb-blue)!important;
  box-shadow:none!important;
}
body.app .app-brand:hover,
body .app-brand:hover,
body.app .app-topbar .nav-toggle:hover,
body .app-topbar .nav-toggle:hover{
  background:var(--ifb-blue-soft)!important;
  border-color:var(--ifb-accent)!important;
}

body.app .app-sidebar,
body .app-sidebar{
  background:var(--ifb-white)!important;
  border-right:1px solid var(--ifb-white-line)!important;
  box-shadow:none!important;
}
body.app .sidebar-head,
body .sidebar-head,
body.app .quick-nav,
body .quick-nav,
body.app .nav-level,
body .nav-level,
body.app .sidebar-empty,
body .sidebar-empty{
  background:var(--ifb-white)!important;
}
body.app .sidebar-head,
body .sidebar-head,
body.app .quick-nav,
body .quick-nav{
  border-color:var(--ifb-white-line)!important;
}

body.app .quick-nav a,
body .quick-nav a,
body.app .nav-row,
body .nav-row,
body.app .nav-row-title,
body .nav-row-title,
body.app .nav-back,
body .nav-back{
  background:var(--ifb-white)!important;
  color:var(--ifb-blue-dark)!important;
  border-color:var(--ifb-white-line)!important;
  box-shadow:none!important;
}
body.app .nav-row a,
body .nav-row a,
body.app .nav-next,
body .nav-next,
body.app .nav-back,
body .nav-back,
body.app .sidebar-head strong,
body .sidebar-head strong,
body.app .app-sidebar .eyebrow,
body .app-sidebar .eyebrow,
body.app .nav-row-title span,
body .nav-row-title span{
  color:var(--ifb-blue-dark)!important;
}
body.app .quick-nav a:hover,
body .quick-nav a:hover,
body.app .nav-row:not(.nav-row-title)>a:hover,
body .nav-row:not(.nav-row-title)>a:hover,
body.app .nav-next:hover,
body .nav-next:hover,
body.app .nav-back:hover,
body .nav-back:hover{
  background:var(--ifb-blue-soft)!important;
}
body.app .nav-row.is-current,
body.app .nav-row.current-menu-item,
body.app .nav-row.current-menu-ancestor,
body .nav-row.is-current,
body .nav-row.current-menu-item,
body .nav-row.current-menu-ancestor{
  background:var(--ifb-white)!important;
  border-color:var(--ifb-accent)!important;
  box-shadow:inset 4px 0 0 var(--ifb-blue)!important;
}
body.app .nav-row.is-current>a,
body.app .nav-row.current-menu-item>a,
body.app .nav-row.current-menu-ancestor>a,
body .nav-row.is-current>a,
body .nav-row.current-menu-item>a,
body .nav-row.current-menu-ancestor>a{
  background:var(--ifb-blue-soft)!important;
  color:var(--ifb-blue-dark)!important;
}
body.app .nav-next,
body .nav-next{
  border-left-color:var(--ifb-white-line)!important;
}

/* Lingua e account: stessi controlli bianchi del resto della testata. */
body.app .ifb-language-switcher select,
body .ifb-language-switcher select,
body.app .ifb-language-switcher .gt_selector,
body .ifb-language-switcher .gt_selector,
.ifb-user-box > summary{
  background:var(--ifb-white)!important;
  color:var(--ifb-blue-dark)!important;
  border:1px solid var(--ifb-white-line)!important;
  box-shadow:none!important;
}
.ifb-user-box > summary:hover,
.ifb-user-box[open] > summary{
  background:var(--ifb-blue-soft)!important;
  border-color:var(--ifb-accent)!important;
}
.ifb-user-copy strong,
.ifb-user-copy small,
.ifb-user-chevron,
.ifb-user-icon{
  color:var(--ifb-blue-dark)!important;
}
.ifb-user-avatar,
.ifb-user-icon{
  border-color:var(--ifb-white-line)!important;
}
.ifb-user-menu{
  background:var(--ifb-white)!important;
  border:1px solid var(--ifb-white-line)!important;
  box-shadow:0 8px 24px color-mix(in srgb, var(--ifb-accent) 12%, transparent)!important;
}
body.app .app-topbar .ifb-user-menu a,
body .app-topbar .ifb-user-menu a{
  color:var(--ifb-blue-dark)!important;
  background:var(--ifb-white)!important;
}
body.app .app-topbar .ifb-user-menu a:hover,
body .app-topbar .ifb-user-menu a:hover{
  background:var(--ifb-blue-soft)!important;
}

body.app .app-footer,
body .app-footer{
  background:var(--ifb-white)!important;
  border-top:1px solid var(--ifb-white-line)!important;
  box-shadow:none!important;
}

@media (max-width:1023px){
  body.app .app-sidebar,
  body .app-sidebar{
    background:var(--ifb-white)!important;
  }
}

/* ================================================================
   0.3.29 — MENU LATERALE BIANCO
   Elimina i blocchi blu pieni: bianco, bordi tecnici e accenti blu.
   ================================================================ */
body.app .app-sidebar :where(.nav-level,.nav-row,.nav-row-title,.nav-row a,.nav-back,.nav-next,.nav-close,.quick-nav,.quick-nav a,.sidebar-head),
body .app-sidebar :where(.nav-level,.nav-row,.nav-row-title,.nav-row a,.nav-back,.nav-next,.nav-close,.quick-nav,.quick-nav a,.sidebar-head){
  background:var(--ifb-white)!important;
  color:var(--ifb-blue-dark)!important;
  box-shadow:none!important;
}

body.app .app-sidebar .nav-row,
body .app-sidebar .nav-row{
  margin:0 0 9px!important;
  border:1px solid var(--ifb-white-line)!important;
  border-radius:3px!important;
  overflow:hidden!important;
}

body.app .app-sidebar .nav-row a,
body .app-sidebar .nav-row a{
  min-height:48px!important;
  padding:10px 14px!important;
  font-weight:750!important;
  color:var(--ifb-blue-dark)!important;
}

body.app .app-sidebar .nav-next,
body .app-sidebar .nav-next{
  min-height:48px!important;
  color:var(--ifb-blue)!important;
  border-left:1px solid var(--ifb-white-line)!important;
  background:var(--ifb-white)!important;
}

body.app .app-sidebar .nav-row:hover,
body .app-sidebar .nav-row:hover,
body.app .app-sidebar .nav-row:focus-within,
body .app-sidebar .nav-row:focus-within{
  border-color:var(--ifb-accent)!important;
}
body.app .app-sidebar .nav-row a:hover,
body .app-sidebar .nav-row a:hover,
body.app .app-sidebar .nav-next:hover,
body .app-sidebar .nav-next:hover,
body.app .app-sidebar .nav-back:hover,
body .app-sidebar .nav-back:hover{
  background:var(--ifb-blue-soft)!important;
  color:var(--ifb-blue-dark)!important;
}

body.app .app-sidebar :where(.nav-row.is-current,.nav-row.current-menu-item,.nav-row.current-menu-ancestor),
body .app-sidebar :where(.nav-row.is-current,.nav-row.current-menu-item,.nav-row.current-menu-ancestor){
  background:var(--ifb-white)!important;
  border-color:var(--ifb-accent)!important;
  box-shadow:inset 4px 0 0 var(--ifb-blue)!important;
}
body.app .app-sidebar :where(.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a),
body .app-sidebar :where(.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a){
  background:var(--ifb-blue-soft)!important;
  color:var(--ifb-blue-dark)!important;
}

body.app .app-sidebar .nav-row-title,
body .app-sidebar .nav-row-title{
  border:0!important;
  border-bottom:2px solid var(--ifb-accent)!important;
  border-radius:0!important;
  margin:0 0 12px!important;
  color:var(--ifb-blue-dark)!important;
}
body.app .app-sidebar .nav-row-title span,
body .app-sidebar .nav-row-title span{
  color:var(--ifb-blue-dark)!important;
}

body.app .app-sidebar svg,
body .app-sidebar svg,
body.app .app-sidebar .ifci-sidebar-icon,
body .app-sidebar .ifci-sidebar-icon{
  color:var(--ifb-blue)!important;
  stroke:currentColor!important;
}

/* ================================================================
   0.3.30 — FIX DEFINITIVO MENU BIANCO
   Selettori espliciti ad alta specificita: prevalgono sulle vecchie
   regole blu anche quando queste usano !important.
   ================================================================ */
html body.app aside.app-sidebar,
html body aside.app-sidebar,
html body.app .app-sidebar .nav-tree,
html body .app-sidebar .nav-tree,
html body.app .app-sidebar ul.nav-level,
html body .app-sidebar ul.nav-level {
  background:var(--ifb-white)!important;
  color:var(--ifb-accent)!important;
}

html body.app .app-sidebar ul.nav-level > li.nav-row,
html body .app-sidebar ul.nav-level > li.nav-row {
  background:var(--ifb-white)!important;
  color:var(--ifb-accent)!important;
  border:1px solid var(--ifb-border)!important;
  box-shadow:none!important;
}

html body.app .app-sidebar ul.nav-level > li.nav-row > a,
html body .app-sidebar ul.nav-level > li.nav-row > a,
html body.app .app-sidebar ul.nav-level > li.nav-row > a span,
html body .app-sidebar ul.nav-level > li.nav-row > a span {
  background:var(--ifb-white)!important;
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
  opacity:1!important;
}

html body.app .app-sidebar ul.nav-level > li.nav-row > button.nav-next,
html body .app-sidebar ul.nav-level > li.nav-row > button.nav-next,
html body.app .app-sidebar ul.nav-level > li.nav-row > button.nav-back,
html body .app-sidebar ul.nav-level > li.nav-row > button.nav-back {
  background:var(--ifb-white)!important;
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
  border-color:var(--ifb-border)!important;
  opacity:1!important;
}

html body.app .app-sidebar ul.nav-level > li.nav-row > a:hover,
html body .app-sidebar ul.nav-level > li.nav-row > a:hover,
html body.app .app-sidebar ul.nav-level > li.nav-row > button:hover,
html body .app-sidebar ul.nav-level > li.nav-row > button:hover,
html body.app .app-sidebar ul.nav-level > li.nav-row:focus-within > a,
html body .app-sidebar ul.nav-level > li.nav-row:focus-within > a {
  background:var(--ifb-soft)!important;
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
}

html body.app .app-sidebar ul.nav-level > li.nav-row.is-current,
html body.app .app-sidebar ul.nav-level > li.nav-row.current-menu-item,
html body.app .app-sidebar ul.nav-level > li.nav-row.current-menu-ancestor,
html body .app-sidebar ul.nav-level > li.nav-row.is-current,
html body .app-sidebar ul.nav-level > li.nav-row.current-menu-item,
html body .app-sidebar ul.nav-level > li.nav-row.current-menu-ancestor {
  background:var(--ifb-white)!important;
  border-color:var(--ifb-accent)!important;
  box-shadow:inset 4px 0 0 var(--ifb-accent)!important;
}

html body.app .app-sidebar ul.nav-level > li.nav-row.is-current > a,
html body.app .app-sidebar ul.nav-level > li.nav-row.current-menu-item > a,
html body.app .app-sidebar ul.nav-level > li.nav-row.current-menu-ancestor > a,
html body .app-sidebar ul.nav-level > li.nav-row.is-current > a,
html body .app-sidebar ul.nav-level > li.nav-row.current-menu-item > a,
html body .app-sidebar ul.nav-level > li.nav-row.current-menu-ancestor > a {
  background:var(--ifb-soft)!important;
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
}

html body.app .app-sidebar ul.nav-level > li.nav-row svg,
html body .app-sidebar ul.nav-level > li.nav-row svg,
html body.app .app-sidebar ul.nav-level > li.nav-row .ifci-sidebar-icon,
html body .app-sidebar ul.nav-level > li.nav-row .ifci-sidebar-icon {
  color:var(--ifb-accent)!important;
  stroke:var(--ifb-accent)!important;
  fill:none!important;
  opacity:1!important;
}


/* ================================================================
   0.3.31 — BLU ACCIAIO OPACO
   Palette meno digitale e più metalmeccanica: blu ardesia, acciaio,
   bordi freddi e superfici bianche. Nessun grande blocco saturo.
   ================================================================ */
:root,
body.app{
  --ifb-blue:var(--ifb-accent);
  --ifb-blue-dark:var(--ifb-accent);
  --ifb-blue-soft:var(--ifb-soft);
  --ifb-white-line:var(--ifb-border);
  --steelcolor:var(--ifb-accent);
  --steel-blue:var(--ifb-accent);
  --steel-blue-soft:var(--ifb-soft);
  --accent:var(--ifb-accent);
  --accent-dark:var(--ifb-accent);
  --line:var(--ifb-border);
  --panel-soft:var(--ifb-soft);
  --text:var(--ifb-text);
  --muted:var(--ifb-text-muted);
}

body.app a,
body.app .section-title,
body.app .document-body :where(h1,h2,h3,h4),
body.app .workspace-head :where(h1,h2),
body.app .sidebar-head,
body.app .app-brand{
  color:var(--ifb-accent);
}

body.app .eyebrow,
body.app .ifci-sidebar-icon,
body.app .app-sidebar svg{
  color:var(--ifb-accent)!important;
  stroke:var(--ifb-accent)!important;
}

body.app .button:not(.button-soft),
body.app button[type="submit"],
body.app input[type="submit"]{
  background:var(--ifb-accent)!important;
  border-color:var(--ifb-accent)!important;
  color:var(--ifb-white)!important;
  box-shadow:none!important;
}
body.app .button:not(.button-soft):hover,
body.app button[type="submit"]:hover,
body.app input[type="submit"]:hover{
  background:var(--ifb-accent)!important;
  border-color:var(--ifb-accent)!important;
}

body.app .button-soft,
body.app .badge,
body.app .pagination a,
body.app .pagination span,
body.app input,
body.app select,
body.app textarea{
  border-color:var(--ifb-border)!important;
}

body.app .card,
body.app .panel,
body.app .article,
body.app .tool,
body.app .filter-bar,
body.app .app-topbar,
body.app .app-sidebar,
body.app .app-footer{
  border-color:var(--ifb-border)!important;
}
body.app .card:hover,
body.app .panel:hover{
  border-color:var(--ifb-accent)!important;
  box-shadow:0 2px 8px color-mix(in srgb, var(--ifb-accent) 7%, transparent)!important;
}

body.app ::selection{
  background:var(--ifb-accent);
  color:var(--ifb-white);
}

html body.app .app-sidebar ul.nav-level > li.nav-row,
html body .app-sidebar ul.nav-level > li.nav-row{
  background:var(--ifb-white)!important;
  color:var(--ifb-accent)!important;
  border-color:var(--ifb-border)!important;
}
html body.app .app-sidebar ul.nav-level > li.nav-row > a,
html body .app-sidebar ul.nav-level > li.nav-row > a,
html body.app .app-sidebar ul.nav-level > li.nav-row > a span,
html body .app-sidebar ul.nav-level > li.nav-row > a span{
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
}
html body.app .app-sidebar ul.nav-level > li.nav-row > button.nav-next,
html body .app-sidebar ul.nav-level > li.nav-row > button.nav-next,
html body.app .app-sidebar ul.nav-level > li.nav-row > button.nav-back,
html body .app-sidebar ul.nav-level > li.nav-row > button.nav-back{
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
  border-color:var(--ifb-border)!important;
}
html body.app .app-sidebar ul.nav-level > li.nav-row > a:hover,
html body .app-sidebar ul.nav-level > li.nav-row > a:hover,
html body.app .app-sidebar ul.nav-level > li.nav-row > button:hover,
html body .app-sidebar ul.nav-level > li.nav-row > button:hover{
  background:var(--ifb-soft)!important;
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
}
html body.app .app-sidebar ul.nav-level > li.nav-row.is-current,
html body.app .app-sidebar ul.nav-level > li.nav-row.current-menu-item,
html body.app .app-sidebar ul.nav-level > li.nav-row.current-menu-ancestor,
html body .app-sidebar ul.nav-level > li.nav-row.is-current,
html body .app-sidebar ul.nav-level > li.nav-row.current-menu-item,
html body .app-sidebar ul.nav-level > li.nav-row.current-menu-ancestor{
  border-color:var(--ifb-accent)!important;
  box-shadow:inset 4px 0 0 var(--ifb-accent)!important;
}

/* ================================================================
   0.3.32 — HERO CORRETTA E TESTATA RIEQUILIBRATA
   Layout affidabile nel boxed: titolo leggibile, richiesta sotto,
   nessuna sovrapposizione e contrasto tecnico coerente.
   ================================================================ */

/* Lo skip-link deve essere invisibile finché non riceve il focus. */
.screen-reader-text.skip-link:not(:focus){
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Testata: logo più leggibile e controlli allineati senza elementi sospesi. */
body.app .app-topbar{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}
body.app .app-brand{
  min-width:156px!important;
  padding:7px 10px!important;
}
body.app .app-brand img{
  width:154px!important;
  max-height:46px!important;
}
body.app .ifb-language-switcher{
  margin-left:auto!important;
  max-width:120px!important;
}
body.app .app-actions{
  margin-left:0!important;
}

/* Hero: un unico blocco verticale. Il pannello richiesta diventa fascia. */
body.home .ifb-home-hero{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border-top:4px solid var(--ifb-accent)!important;
  box-shadow:0 2px 10px color-mix(in srgb, var(--ifb-accent) 6%, transparent)!important;
}
body.home .ifb-home-hero__copy{
  min-height:0!important;
  padding:clamp(30px,5vw,58px)!important;
  padding-right:clamp(30px,5vw,58px)!important;
  background:var(--ifb-white)!important;
  overflow:visible!important;
}
body.home .ifb-home-hero__copy:after{
  display:none!important;
}
body.home .ifb-home-hero h1{
  width:100%!important;
  max-width:780px!important;
  margin:.1em 0 .42em!important;
  font-size:clamp(2.25rem,4.1vw,3.55rem)!important;
  line-height:1.04!important;
  letter-spacing:-.025em!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}
body.home .ifb-home-hero__lead{
  max-width:720px!important;
  font-size:clamp(1rem,1.35vw,1.15rem)!important;
}
body.home .ifb-home-hero__request{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  padding:24px clamp(24px,4vw,44px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(220px,.58fr)!important;
  grid-template-areas:
    "eyebrow number"
    "title link"
    "text link"!important;
  align-items:center!important;
  gap:5px 34px!important;
  background:var(--ifb-accent)!important;
  border-top:1px solid var(--ifb-accent)!important;
  overflow:hidden!important;
}
body.home .ifb-home-hero__request:after{
  display:none!important;
}
body.home .ifb-home-hero__request .eyebrow{
  grid-area:eyebrow!important;
  margin:0!important;
  color:var(--ifb-border)!important;
  opacity:1!important;
}
body.home .ifb-home-hero__request h2{
  grid-area:title!important;
  margin:3px 0 7px!important;
  max-width:650px!important;
  font-size:clamp(1.35rem,2.2vw,2rem)!important;
  line-height:1.15!important;
  color:var(--ifb-white)!important;
}
body.home .ifb-home-hero__request p:not(.eyebrow){
  grid-area:text!important;
  max-width:720px!important;
  color:var(--ifb-soft)!important;
  line-height:1.55!important;
}
body.home .ifb-home-request__number{
  grid-area:number!important;
  position:static!important;
  justify-self:end!important;
  align-self:start!important;
  font-size:2.4rem!important;
  color:color-mix(in srgb, var(--ifb-white) 28%, transparent)!important;
}
body.home .ifb-home-request__link{
  grid-area:link!important;
  align-self:stretch!important;
  display:flex!important;
  justify-content:space-between!important;
  min-height:58px!important;
  margin:0!important;
  padding:14px 16px!important;
  border:1px solid color-mix(in srgb, var(--ifb-white) 48%, transparent)!important;
  background:color-mix(in srgb, var(--ifb-white) 8%, transparent)!important;
  color:var(--ifb-white)!important;
  opacity:1!important;
}
body.home .ifb-home-request__link:hover{
  background:var(--ifb-white)!important;
  color:var(--ifb-accent)!important;
}

/* Azioni più nette: il primario non deve sembrare disabilitato. */
body.home .ifb-home-primary{
  background:var(--ifb-accent)!important;
  border-color:var(--ifb-accent)!important;
  color:var(--ifb-white)!important;
}
body.home .ifb-home-primary:hover{
  background:var(--ifb-accent)!important;
  border-color:var(--ifb-accent)!important;
}

/* Menu laterale: altezza uniforme ma testo lungo libero di andare a capo. */
html body.app .app-sidebar ul.nav-level > li.nav-row > a,
html body .app-sidebar ul.nav-level > li.nav-row > a{
  min-height:50px!important;
  line-height:1.2!important;
  white-space:normal!important;
}
html body.app .app-sidebar ul.nav-level > li.nav-row > button.nav-next,
html body .app-sidebar ul.nav-level > li.nav-row > button.nav-next{
  min-width:40px!important;
}

@media(max-width:900px){
  body.home .ifb-home-hero__request{
    grid-template-columns:1fr!important;
    grid-template-areas:"eyebrow" "title" "text" "link"!important;
    gap:7px!important;
  }
  body.home .ifb-home-request__number{display:none!important}
  body.home .ifb-home-request__link{margin-top:10px!important}
}

@media(max-width:600px){
  body.app .app-brand{min-width:118px!important;padding:6px 8px!important}
  body.app .app-brand img{width:116px!important}
  body.app .ifb-language-switcher{margin-left:0!important;max-width:88px!important}
  body.app .app-actions{margin-left:auto!important}
  body.home .ifb-home-hero__copy{padding:25px 19px!important}
  body.home .ifb-home-hero h1{font-size:clamp(2rem,10.2vw,2.8rem)!important}
  body.home .ifb-home-hero__request{padding:22px 19px!important}
}

/* ==========================================================
   0.3.34 — PALETTE BIANCO / BLU ITALFABER
   Solo tre tinte: bianco, blu industriale, grigio chiarissimo.
   ========================================================== */
:root{
  --ifb-white:var(--ifb-white);
  --ifb-blue:var(--ifb-accent);
  --ifb-light:var(--ifb-soft);

  --bg:var(--ifb-light)!important;
  --panel:var(--ifb-white)!important;
  --panel-soft:var(--ifb-light)!important;
  --text:var(--ifb-blue)!important;
  --muted:var(--ifb-blue)!important;
  --line:var(--ifb-light)!important;
  --accent:var(--ifb-blue)!important;
  --accent-dark:var(--ifb-blue)!important;
  --ok:var(--ifb-blue)!important;
  --danger:var(--ifb-blue)!important;
  --steelcolor:var(--ifb-blue)!important;
  --steel-blue:var(--ifb-blue)!important;
  --company-soft:var(--ifb-light)!important;

  --steel-950:var(--ifb-blue)!important;
  --steel-900:var(--ifb-blue)!important;
  --steel-850:var(--ifb-blue)!important;
  --steel-800:var(--ifb-blue)!important;
  --steel-700:var(--ifb-blue)!important;
  --steel-600:var(--ifb-blue)!important;
  --steel-300:var(--ifb-light)!important;
  --steel-200:var(--ifb-light)!important;
  --steel-100:var(--ifb-light)!important;
  --steel-050:var(--ifb-white)!important;
  --paper:var(--ifb-white)!important;
  --ink-on-steel:var(--ifb-white)!important;
  --ink-on-steel-soft:var(--ifb-white)!important;
  --signal-blue:var(--ifb-blue)!important;

  --ifb-sidebar-dark:var(--ifb-white)!important;
  --ifb-sidebar-dark-2:var(--ifb-white)!important;
  --ifb-sidebar-line:var(--ifb-light)!important;
  --ifb-sidebar-text:var(--ifb-blue)!important;
  --ifb-sidebar-muted:var(--ifb-blue)!important;
  --ifb-sidebar-hover:var(--ifb-light)!important;
}

html,body,body.app{background:var(--ifb-light)!important;color:var(--ifb-blue)!important}
.app-shell,.app-topbar,.app-sidebar,.app-main,.app-footer,
.panel,.card,.article,.tool,.filter-bar,.document-body table,
.post-nav>div,.pagination a,.pagination span,
input,select,textarea,.nav-level,.sidebar-head{
  background:var(--ifb-white)!important;
  color:var(--ifb-blue)!important;
}

/* Niente sfumature o ombre colorate: grafica piatta e tecnica. */
.app-topbar,.app-sidebar,.app-main,.app-footer,
.panel,.card,.article,.tool,.filter-bar,
[class*="hero"],[class*="panel"],[class*="card"],[class*="banner"],[class*="box"]{
  box-shadow:none!important;
  background-image:none!important;
}

/* Bordi: esclusivamente grigio chiarissimo. */
.app-topbar,.app-sidebar,.app-footer,.sidebar-head,
.panel,.card,.article,.tool,.filter-bar,
input,select,textarea,table,th,td,
.nav-row,.nav-next,.quick-nav a,
.pagination a,.pagination span,.post-nav>div,
[class*="card"],[class*="panel"],[class*="box"]{
  border-color:var(--ifb-light)!important;
}

/* Testi, icone e collegamenti: un unico blu. */
a,h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,small,strong,
.eyebrow,.lead,.meta,.app-brand,.app-actions a,
.nav-row a,.nav-next,.nav-back,.nav-row-title,.nav-count,
svg:not([fill="none"]),svg *{
  color:var(--ifb-blue)!important;
}

/* Elementi pieni: solo blu con testo bianco. */
.button:not(.button-soft),button[type="submit"],input[type="submit"],
.pagination .current,
body.home .ifb-home-primary,
body.home .ifb-home-hero__request,
.ifb-news-search-form button,
.ifb-news-date-filters a.is-active,.ifb-news-filters a.is-main{
  background:var(--ifb-blue)!important;
  border-color:var(--ifb-blue)!important;
  color:var(--ifb-white)!important;
}
.button:not(.button-soft) *,button[type="submit"] *,
body.home .ifb-home-hero__request h1,
body.home .ifb-home-hero__request h2,
body.home .ifb-home-hero__request h3,
body.home .ifb-home-hero__request p,
body.home .ifb-home-hero__request a,
body.home .ifb-home-hero__request span{
  color:var(--ifb-white)!important;
}

/* Elementi chiari e stati interattivi. */
.button-soft,.badge,.quick-nav a,
.nav-row.is-current>a,.nav-row.current-menu-item>a,.nav-row.current-menu-ancestor>a,
.nav-row a:hover,.nav-next:hover,.nav-back:hover,
.pagination a:hover,
input:focus,select:focus,textarea:focus{
  background:var(--ifb-light)!important;
  color:var(--ifb-blue)!important;
  border-color:var(--ifb-blue)!important;
}

/* Sidebar definitivamente bianca. */
html body.app .app-sidebar,
html body.app .app-sidebar .nav-level,
html body.app .app-sidebar .nav-row,
html body.app .app-sidebar .nav-row>a,
html body.app .app-sidebar .nav-next,
html body.app .app-sidebar .nav-back,
html body.app .app-sidebar .nav-row-title{
  background:var(--ifb-white)!important;
  color:var(--ifb-blue)!important;
}
html body.app .app-sidebar .nav-row>a:hover,
html body.app .app-sidebar .nav-next:hover,
html body.app .app-sidebar .nav-back:hover,
html body.app .app-sidebar .nav-row.is-current>a,
html body.app .app-sidebar .nav-row.current-menu-item>a,
html body.app .app-sidebar .nav-row.current-menu-ancestor>a{
  background:var(--ifb-light)!important;
}

/* Hero: il pannello blu resta l'unico grande campo cromatico. */
body.home .ifb-home-hero__copy{background:var(--ifb-white)!important}
body.home .ifb-home-hero__request{background:var(--ifb-blue)!important}
body.home .ifb-home-request__link{
  background:var(--ifb-blue)!important;
  border-color:var(--ifb-white)!important;
  color:var(--ifb-white)!important;
}
body.home .ifb-home-request__link:hover{
  background:var(--ifb-white)!important;
  color:var(--ifb-blue)!important;
}
body.home .ifb-home-request__number{color:var(--ifb-white)!important;opacity:.32!important}

/* Neutralizza colori semantici dei plugin: stessa lingua visiva ovunque. */
[class*="status"],[class*="badge"],[class*="notice"],[class*="alert"],
[class*="success"],[class*="error"],[class*="warning"]{
  border-color:var(--ifb-light)!important;
}
[class*="status"]:not(.button),[class*="badge"]:not(.button),
[class*="notice"],[class*="alert"]{
  background:var(--ifb-light)!important;
  color:var(--ifb-blue)!important;
}

/* Focus visibile, sempre nello stesso blu. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--ifb-blue)!important;
  outline-offset:2px!important;
}


/* ==========================================================
   0.3.34 — BLU ITALFABER REALE
   Correzione cromatica: il precedente ardesia appariva grigio.
   ========================================================== */
:root{
  --ifb-blue:var(--ifb-accent)!important;
  --ifb-light:var(--ifb-soft)!important;
}

/* Il blu deve essere inequivocabile in tutti i punti identitari. */
body.app,
body.app a,
body.app h1,body.app h2,body.app h3,body.app h4,
body.app .app-brand,
body.app .nav-row>a,
body.app .nav-row-title,
body.app .nav-next,
body.app .nav-back,
body.app .app-actions,
body.app .ifb-language-switcher,
body.app .eyebrow,
body.app .button-soft{
  color:var(--ifb-accent)!important;
}

body.app .app-topbar,
body.app .app-sidebar,
body.app .app-main,
body.app .app-footer,
body.app .panel,
body.app .card,
body.app .article,
body.app .tool{
  background-color:var(--ifb-white)!important;
}

body.app .button:not(.button-soft),
body.app button[type="submit"],
body.app input[type="submit"],
body.home .ifb-home-primary,
body.home .ifb-home-hero__request,
body.app .pagination .current{
  background-color:var(--ifb-accent)!important;
  border-color:var(--ifb-accent)!important;
  color:var(--ifb-white)!important;
}

body.app .app-topbar,
body.app .app-sidebar,
body.app .app-main,
body.app .app-footer,
body.app .sidebar-head,
body.app .nav-row,
body.app .nav-next,
body.app .panel,
body.app .card,
body.app input,
body.app select,
body.app textarea{
  border-color:var(--ifb-soft)!important;
}

body.app .nav-row>a:hover,
body.app .nav-next:hover,
body.app .nav-back:hover,
body.app .nav-row.is-current>a,
body.app .nav-row.current-menu-item>a,
body.app .nav-row.current-menu-ancestor>a,
body.app .button-soft:hover{
  background:var(--ifb-soft)!important;
  color:var(--ifb-accent)!important;
  border-color:var(--ifb-accent)!important;
}

body.app svg,
body.app svg *{
  color:var(--ifb-accent)!important;
}
body.app svg [stroke]:not([stroke="none"]){stroke:var(--ifb-accent)!important}
body.app svg [fill]:not([fill="none"]):not([fill="currentColor"]){fill:var(--ifb-accent)!important}

body.home .ifb-home-hero__request,
body.home .ifb-home-hero__request *{
  color:var(--ifb-white)!important;
}
body.home .ifb-home-request__link{
  background:var(--ifb-accent)!important;
  border-color:var(--ifb-white)!important;
  color:var(--ifb-white)!important;
}
body.home .ifb-home-request__link:hover{
  background:var(--ifb-white)!important;
  color:var(--ifb-accent)!important;
}

/* ==========================================================
   0.3.37 — COLORE TESTO REALE + OMBRA BOXED
   Il colore testo governa i contenuti normali; l'accento resta
   riservato a titoli, link, icone, pulsanti e stati attivi.
   ========================================================== */

/* Testo normale: usa davvero la scelta del Personalizza. */
body.app,
body.app p,
body.app li,
body.app dt,
body.app dd,
body.app label,
body.app small,
body.app figcaption,
body.app caption,
body.app blockquote,
body.app .lead,
body.app .meta,
body.app .muted,
body.app .app-actions,
body.app .app-actions a,
body.app .app-footer,
body.app .app-footer a,
body.app .sidebar-empty,
body.app .nav-row > a,
body.app .nav-row-title,
body.app .nav-count,
body.app .nav-back,
body.app .nav-next,
body.app .quick-nav a,
body.app .card p,
body.app .article p,
body.app .tool p,
body.app .panel p,
body.app .document-body,
body.app .document-body p,
body.app .document-body li,
body.app .document-body td,
body.app .document-body th,
body.app input,
body.app select,
body.app textarea,
body.app input::placeholder,
body.app textarea::placeholder,
body.app [class*="meta"],
body.app [class*="description"],
body.app [class*="excerpt"],
body.app [class*="summary"]{
  color:var(--ifb-text)!important;
}

/* Testi secondari derivati automaticamente dal colore testo. */
body.app .meta,
body.app .muted,
body.app small,
body.app figcaption,
body.app caption,
body.app .nav-count,
body.app input::placeholder,
body.app textarea::placeholder{
  color:var(--ifb-text-muted)!important;
}

/* Elementi identitari: restano nel colore di accento. */
body.app a:not(.button):not(.quick-nav a):not(.nav-row > a):not(.app-footer a),
body.app h1,
body.app h2,
body.app h3,
body.app h4,
body.app h5,
body.app h6,
body.app .eyebrow,
body.app .app-brand,
body.app .section-title,
body.app .card-title,
body.app .nav-row.is-current > a,
body.app .nav-row.current-menu-item > a,
body.app .nav-row.current-menu-ancestor > a{
  color:var(--ifb-accent)!important;
}

/* I controlli pieni conservano il contrasto bianco su accento. */
body.app .button:not(.button-soft),
body.app button[type="submit"],
body.app input[type="submit"],
body.app .pagination .current,
body.home .ifb-home-hero__request,
body.home .ifb-home-hero__request *{
  color:var(--ifb-white)!important;
}

/* Boxed: ombra ampia, diffusa e nettamente percepibile. */
@media (min-width:1024px){
  body.app .app-shell{
    position:relative;
    z-index:1;
    border-left:1px solid var(--ifb-border)!important;
    border-right:1px solid var(--ifb-border)!important;
    box-shadow:
      0 0 0 1px color-mix(in srgb,var(--ifb-accent) 12%,var(--ifb-white)),
      0 18px 55px color-mix(in srgb,var(--ifb-accent) 24%,transparent),
      0 4px 16px color-mix(in srgb,var(--ifb-accent) 16%,transparent)!important;
  }

  body.app .app-topbar{
    box-shadow:
      0 0 0 1px color-mix(in srgb,var(--ifb-accent) 12%,var(--ifb-white)),
      0 8px 24px color-mix(in srgb,var(--ifb-accent) 18%,transparent)!important;
  }

  body.app .app-footer{
    position:relative;
    z-index:1;
    box-shadow:
      0 0 0 1px color-mix(in srgb,var(--ifb-accent) 10%,var(--ifb-white)),
      0 16px 42px color-mix(in srgb,var(--ifb-accent) 18%,transparent)!important;
  }
}


/* ==========================================================
   0.3.38 — TESTO SUL COLORE DI ACCENTO
   Controllo indipendente per testi e icone sopra superfici piene.
   ========================================================== */
:root{
  --ifb-on-accent:#ffffff;
  --ink-on-steel:var(--ifb-on-accent)!important;
  --ink-on-steel-soft:var(--ifb-on-accent)!important;
  --ifb-ai-ink:var(--ifb-on-accent)!important;
}

/* Pannelli e fasce riempiti con il colore di accento. */
body.app :is(
  .ifb-home-hero__request,
  .ifb-home-cta,
  .ifb-operational-bar.is-accent,
  .ifb-ai-final-cta,
  [class*="accent-panel"],
  [class*="accent-banner"],
  [class*="accent-box"]
),
body.app :is(
  .ifb-home-hero__request,
  .ifb-home-cta,
  .ifb-operational-bar.is-accent,
  .ifb-ai-final-cta,
  [class*="accent-panel"],
  [class*="accent-banner"],
  [class*="accent-box"]
) :is(h1,h2,h3,h4,h5,h6,p,span,small,strong,em,li,a,label,svg){
  color:var(--ifb-on-accent)!important;
  -webkit-text-fill-color:var(--ifb-on-accent)!important;
}

body.app :is(
  .ifb-home-hero__request,
  .ifb-home-cta,
  .ifb-operational-bar.is-accent,
  .ifb-ai-final-cta,
  [class*="accent-panel"],
  [class*="accent-banner"],
  [class*="accent-box"]
) svg [stroke]:not([stroke="none"]){stroke:var(--ifb-on-accent)!important}
body.app :is(
  .ifb-home-hero__request,
  .ifb-home-cta,
  .ifb-operational-bar.is-accent,
  .ifb-ai-final-cta,
  [class*="accent-panel"],
  [class*="accent-banner"],
  [class*="accent-box"]
) svg [fill]:not([fill="none"]){fill:var(--ifb-on-accent)!important}

/* Controlli pieni: testo e icone seguono lo stesso controllo. */
body.app :is(
  .button:not(.button-soft),
  button[type="submit"],
  input[type="submit"],
  .pagination .current,
  .ifb-home-primary,
  .ifb-news-search-form button,
  .ifb-news-date-filters a.is-active,
  .ifb-news-filters a.is-main
),
body.app :is(
  .button:not(.button-soft),
  button[type="submit"],
  .pagination .current,
  .ifb-home-primary,
  .ifb-news-search-form button,
  .ifb-news-date-filters a.is-active,
  .ifb-news-filters a.is-main
) *{
  color:var(--ifb-on-accent)!important;
  -webkit-text-fill-color:var(--ifb-on-accent)!important;
}
body.app :is(
  .button:not(.button-soft),
  button[type="submit"],
  .pagination .current,
  .ifb-home-primary,
  .ifb-news-search-form button
) svg [stroke]:not([stroke="none"]){stroke:var(--ifb-on-accent)!important}
body.app :is(
  .button:not(.button-soft),
  button[type="submit"],
  .pagination .current,
  .ifb-home-primary,
  .ifb-news-search-form button
) svg [fill]:not([fill="none"]){fill:var(--ifb-on-accent)!important}

/* Il link invertito nella fascia resta volutamente opposto. */
body.home .ifb-home-request__link{
  color:var(--ifb-on-accent)!important;
  border-color:var(--ifb-on-accent)!important;
}
body.home .ifb-home-request__link:hover{
  background:var(--ifb-on-accent)!important;
  color:var(--ifb-accent)!important;
  -webkit-text-fill-color:var(--ifb-accent)!important;
}

/* ==========================================================
   0.3.39 — BOXED NETTO + BARRA CONTATTI GLOBALE
   Un'unica cornice visiva e barra sempre disponibile.
   ========================================================== */

:root{
  --ifb-box-shadow:
    0 0 0 1px color-mix(in srgb,var(--ifb-accent) 20%,#ffffff),
    0 10px 24px rgba(0,0,0,.16),
    0 32px 80px rgba(0,0,0,.22);
}

/* Il boxed deve apparire come un unico foglio sollevato dallo sfondo. */
@media (min-width:1024px){
  body.app{
    background:#f3f5f7!important;
    padding-bottom:118px!important;
  }

  body.app .app-topbar,
  body.app .app-shell,
  body.app .app-footer{
    position:relative;
    width:min(calc(100% - 56px),var(--ifb-box-width))!important;
    margin-inline:auto!important;
    border-left:1px solid color-mix(in srgb,var(--ifb-accent) 20%,#ffffff)!important;
    border-right:1px solid color-mix(in srgb,var(--ifb-accent) 20%,#ffffff)!important;
  }

  body.app .app-topbar{
    z-index:52;
    border-top:1px solid color-mix(in srgb,var(--ifb-accent) 20%,#ffffff)!important;
    box-shadow:
      -18px 0 34px -24px rgba(0,0,0,.48),
       18px 0 34px -24px rgba(0,0,0,.48),
       0 -2px 8px rgba(0,0,0,.08)!important;
  }

  body.app .app-shell{
    z-index:2;
    box-shadow:var(--ifb-box-shadow)!important;
  }

  body.app .app-footer{
    z-index:3;
    border-bottom:1px solid color-mix(in srgb,var(--ifb-accent) 20%,#ffffff)!important;
    box-shadow:
      -18px 0 34px -24px rgba(0,0,0,.48),
       18px 0 34px -24px rgba(0,0,0,.48),
       0 24px 58px rgba(0,0,0,.20)!important;
  }
}

/* Barra unica: non diventa più statica negli archivi o nelle pagine speciali. */
body.app .ifb-contact-sticky,
body.ifb-content-single-column .ifb-contact-sticky,
body.home .ifb-contact-sticky,
body.archive .ifb-contact-sticky,
body.search .ifb-contact-sticky,
body.single .ifb-contact-sticky,
body.page .ifb-contact-sticky{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:16px!important;
  transform:translateX(-50%)!important;
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  width:min(calc(100% - 72px),calc(var(--ifb-box-width) - 48px))!important;
  max-width:none!important;
  margin:0!important;
  z-index:99999!important;
  overflow:visible!important;
  background:var(--ifb-accent)!important;
  border:1px solid color-mix(in srgb,var(--ifb-accent) 72%,#ffffff)!important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.20),
    0 12px 34px rgba(0,0,0,.28)!important;
}

body.app .ifb-contact-sticky .ifb-contact-item{
  min-width:0!important;
}

@media (max-width:1023px){
  body.app{padding-bottom:88px!important}
  body.app .ifb-contact-sticky,
  body.ifb-content-single-column .ifb-contact-sticky{
    left:0!important;
    right:0!important;
    bottom:0!important;
    transform:none!important;
    width:100%!important;
    border-left:0!important;
    border-right:0!important;
    border-bottom:0!important;
  }
}

@media print{
  body.app{padding-bottom:0!important}
  body.app .ifb-contact-sticky{display:none!important}
}

/* ==========================================================
   0.3.41 — SFONDO E BORDO GLOBALI DEI BOX (FIX REALE)
   Tutti i riquadri usano le due variabili del Personalizza.
   ========================================================== */
:root {
  --ifb-box-bg: #ffffff;
  --ifb-box-border: #d9e1e8;
  --panel: var(--ifb-box-bg);
  --panel-soft: var(--ifb-box-bg);
  --line: var(--ifb-box-border);
  --ifb-border: var(--ifb-box-border);
}

/* Sfondo e bordo comuni per tutti i riquadri neutri del tema. */
body.app :is(
  .panel, .card, .article, .tool, .filter-bar, .workspace,
  .app-sidebar, .sidebar-head, .quick-nav a, .nav-level, .nav-row-title,
  .nav-row > a, .nav-next, .nav-back, .nav-close, .nav-toggle,
  .archive-item, .archive-post-item, .post-nav > div,
  .ifb-company-card, .ifb-company-hero-card, .ifb-result-card,
  .ifb-app-hero, .ifb-app-panel, .ifb-side-card, .ifb-app-kpi,
  .ifb-app-object, .ifb-evidence, .ifb-card-mini, .ifb-policy-box,
  .ifb-policy-small, .ifb-data-item, .ifb-side-link,
  .ifb-productive-panel, .details-panel, .ifb-all-data,
  .ifb-news-card, .ifb-news-list-item, .ifb-home-service-card,
  .ifb-home-resource-card, .ifb-home-article-card,
  .ifb-home-services, .ifb-home-resources, .ifb-home-articles,
  .ifb-ai-card, .ifb-ai-panel, .ifb-ai-step, .ifb-ai-feature,
  fieldset, details, blockquote, .notice, .badge,
  table, th, td, input, select, textarea
) {
  border-color: var(--ifb-box-border) !important;
}

body.app :is(
  .panel, .card, .article, .tool, .filter-bar,
  .app-sidebar, .sidebar-head, .quick-nav a, .nav-level, .nav-row-title,
  .nav-row > a, .nav-next, .nav-back, .nav-close, .nav-toggle,
  .archive-item, .archive-post-item, .post-nav > div,
  .ifb-company-card, .ifb-company-hero-card, .ifb-result-card,
  .ifb-app-hero, .ifb-app-panel, .ifb-side-card, .ifb-app-kpi,
  .ifb-app-object, .ifb-evidence, .ifb-card-mini, .ifb-policy-box,
  .ifb-policy-small, .ifb-data-item, .ifb-side-link,
  .ifb-productive-panel, .details-panel, .ifb-all-data,
  .ifb-news-card, .ifb-news-list-item, .ifb-home-service-card,
  .ifb-home-resource-card, .ifb-home-article-card,
  .ifb-home-services, .ifb-home-resources, .ifb-home-articles,
  .ifb-ai-card, .ifb-ai-panel, .ifb-ai-step, .ifb-ai-feature,
  fieldset, details, blockquote, .notice, .badge,
  table, th, td, input, select, textarea
):not(.ifb-home-hero__request):not(.ifb-home-cta):not(.ifb-contact-sticky) {
  background-color: var(--ifb-box-bg) !important;
}

/* Copre anche i contenitori generati da plugin che usano nomi ricorrenti. */
body.app :is(
  [class*="card"], [class*="panel"], [class*="box"],
  [class*="tile"], [class*="result"], [class*="archive-item"]
):not(.ifb-home-hero__request):not(.ifb-home-cta):not(.ifb-contact-sticky):not([class*="accent"]) {
  border-color: var(--ifb-box-border) !important;
}

body.app :is(
  [class*="card"], [class*="panel"], [class*="box"],
  [class*="tile"], [class*="result"], [class*="archive-item"]
):not(.ifb-home-hero__request):not(.ifb-home-cta):not(.ifb-contact-sticky):not([class*="accent"]) {
  background-color: var(--ifb-box-bg) !important;
}

/* Hover e selezione conservano lo sfondo scelto e usano l'accento sul bordo. */
body.app .nav-row.is-current > a,
body.app .nav-row.current-menu-item > a,
body.app .nav-row.current-menu-ancestor > a,
body.app .nav-row > a:hover,
body.app .quick-nav a:hover,
body.app .card:hover {
  background-color: var(--ifb-box-bg) !important;
  border-color: var(--ifb-accent) !important;
}

/* I pannelli pieni restano governati dal colore di accento. */
body.app :is(
  .ifb-home-hero__request, .ifb-home-cta, .ifb-contact-sticky,
  .ifb-operational-bar.is-accent, .ifb-ai-final-cta,
  [class*="accent-panel"], [class*="accent-banner"], [class*="accent-box"]
) {
  background-color: var(--ifb-accent) !important;
  border-color: var(--ifb-accent) !important;
}

/* ==========================================================
   0.3.42 — Header boxed ordinato e coerente
   ========================================================== */
@media (min-width: 1024px){
  body.app .app-topbar,
  body .app-topbar{
    display:grid!important;
    grid-template-columns:auto auto minmax(24px,1fr) auto!important;
    align-items:center!important;
    column-gap:14px!important;
    min-height:76px!important;
    height:76px!important;
    padding:10px 18px!important;
    background:#fff!important;
    border:1px solid var(--ifb-box-border)!important;
    border-bottom-color:var(--ifb-box-border)!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  body.app .app-topbar .nav-toggle,
  body .app-topbar .nav-toggle{
    display:inline-flex!important;
    grid-column:1!important;
    align-self:center!important;
    min-width:104px!important;
    min-height:46px!important;
    height:46px!important;
    padding:0 16px!important;
    margin:0!important;
    gap:8px!important;
    background:#fff!important;
    color:var(--ifb-accent)!important;
    border:1px solid var(--ifb-box-border)!important;
    border-top:3px solid var(--ifb-accent)!important;
    border-radius:0!important;
    font-weight:800!important;
    line-height:1!important;
    box-shadow:none!important;
  }

  body.app .app-brand,
  body .app-brand{
    grid-column:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:174px!important;
    min-width:174px!important;
    height:54px!important;
    margin:0!important;
    padding:4px 10px!important;
    background:#fff!important;
    border:1px solid var(--ifb-box-border)!important;
    border-top:3px solid var(--ifb-accent)!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  body.app .app-brand img,
  body .app-brand img{
    display:block!important;
    width:154px!important;
    max-width:154px!important;
    height:44px!important;
    max-height:44px!important;
    object-fit:contain!important;
    object-position:left center!important;
  }

  body.app .ifb-language-switcher,
  body .ifb-language-switcher{
    grid-column:3!important;
    justify-self:end!important;
    align-self:center!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }

  body.app .ifb-language-switcher select,
  body .ifb-language-switcher select,
  body.app .ifb-language-switcher a,
  body .ifb-language-switcher a{
    min-height:42px!important;
    background:#fff!important;
    color:var(--ifb-accent)!important;
    border:1px solid var(--ifb-box-border)!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  body.app .app-actions,
  body .app-actions{
    grid-column:4!important;
    justify-self:end!important;
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    gap:0!important;
  }

  body.app .ifb-user-box,
  body .ifb-user-box{
    position:relative!important;
    margin:0!important;
  }

  body.app .ifb-user-box > summary,
  body .ifb-user-box > summary{
    display:grid!important;
    grid-template-columns:30px minmax(112px,auto) 18px!important;
    align-items:center!important;
    gap:9px!important;
    min-width:188px!important;
    min-height:46px!important;
    height:46px!important;
    margin:0!important;
    padding:5px 10px!important;
    background:#fff!important;
    color:var(--ifb-accent)!important;
    border:1px solid var(--ifb-box-border)!important;
    border-radius:0!important;
    box-shadow:none!important;
    list-style:none!important;
  }

  body.app .ifb-user-box > summary::-webkit-details-marker,
  body .ifb-user-box > summary::-webkit-details-marker{display:none!important}

  body.app .ifb-user-avatar,
  body .ifb-user-avatar{
    width:30px!important;
    height:30px!important;
    border-radius:0!important;
    object-fit:cover!important;
  }

  body.app .ifb-user-copy,
  body .ifb-user-copy{
    display:grid!important;
    min-width:0!important;
    line-height:1.05!important;
  }

  body.app .ifb-user-copy strong,
  body .ifb-user-copy strong{
    overflow:hidden!important;
    color:var(--ifb-accent)!important;
    font-size:.88rem!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
  }

  body.app .ifb-user-copy small,
  body .ifb-user-copy small{
    margin-top:3px!important;
    color:var(--ifb-text)!important;
    font-size:.68rem!important;
  }

  body.app .ifb-user-chevron,
  body .ifb-user-chevron{
    color:var(--ifb-accent)!important;
    text-align:right!important;
  }

  body.app .ifb-user-menu,
  body .ifb-user-menu{
    right:0!important;
    left:auto!important;
    top:calc(100% + 6px)!important;
    min-width:188px!important;
    background:#fff!important;
    border:1px solid var(--ifb-box-border)!important;
    box-shadow:0 14px 30px color-mix(in srgb,var(--ifb-accent) 18%,transparent)!important;
  }
}

@media (max-width: 1023px){
  body.app .app-topbar,
  body .app-topbar{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:8px!important;
    min-height:64px!important;
    height:auto!important;
    padding:7px 10px!important;
    background:#fff!important;
    border-bottom:1px solid var(--ifb-box-border)!important;
  }
  body.app .app-topbar .nav-toggle,
  body .app-topbar .nav-toggle{
    display:inline-flex!important;
    min-width:44px!important;
    width:44px!important;
    min-height:44px!important;
    padding:0!important;
    background:#fff!important;
    color:var(--ifb-accent)!important;
    border:1px solid var(--ifb-box-border)!important;
  }
  body.app .app-topbar .nav-toggle span,
  body .app-topbar .nav-toggle span{display:none!important}
  body.app .app-brand,
  body .app-brand{
    justify-self:start!important;
    width:132px!important;
    min-width:132px!important;
    height:48px!important;
    padding:3px 7px!important;
    background:#fff!important;
    border:1px solid var(--ifb-box-border)!important;
  }
  body.app .app-brand img,
  body .app-brand img{width:118px!important;height:40px!important;object-fit:contain!important}
  body.app .ifb-language-switcher,
  body .ifb-language-switcher{display:none!important}
  body.app .app-actions,
  body .app-actions{display:flex!important;margin:0!important;justify-self:end!important}
  body.app .ifb-user-box > summary,
  body .ifb-user-box > summary{
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    padding:6px!important;
    background:#fff!important;
    border:1px solid var(--ifb-box-border)!important;
  }
  body.app .ifb-user-copy,
  body .ifb-user-copy,
  body.app .ifb-user-chevron,
  body .ifb-user-chevron{display:none!important}
}

/* ==========================================================
   0.3.44 — Fascia identitaria ITALFABER dal 1972
   ========================================================== */
.ifb-home-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  width: 100%;
  min-height: 330px;
  margin: 0;
  padding: clamp(56px, 7vw, 92px) clamp(28px, 6vw, 80px);
  background: var(--ifb-accent, #003b7a) !important;
  color: var(--ifb-on-accent, #fff) !important;
  text-align: center;
  border: 0;
  overflow: hidden;
}
.ifb-home-brand__logo {
  display: block;
  width: min(94%, 1120px);
  height: auto;
  max-height: 165px;
  object-fit: contain;
  object-position: center;
}
.ifb-home-brand p {
  margin: 0;
  color: var(--ifb-on-accent, #fff) !important;
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .045em;
}
@media (max-width: 700px) {
  .ifb-home-brand {
    min-height: 220px;
    gap: 18px;
    padding: 44px 22px;
  }
  .ifb-home-brand__logo {
    width: 100%;
    max-height: 90px;
  }
  .ifb-home-brand p {
    max-width: 28ch;
    font-size: 1rem;
    line-height: 1.45;
  }
}

/* 0.3.45 — firma storica Italfaber realmente visibile in testa alla home */
.ifb-home-brand {
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 24px;
  padding: clamp(38px, 5vw, 72px) clamp(24px, 5vw, 72px) clamp(28px, 4vw, 52px);
  background: var(--ifb-accent) !important;
  color: var(--ifb-on-accent) !important;
  border: 1px solid var(--ifb-accent) !important;
  text-align: center;
  overflow: hidden;
}
.ifb-home-brand__logo {
  display: block;
  width: min(100%, 1180px);
  max-height: 210px;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  filter: none !important;
  opacity: 1 !important;
}
.ifb-home-brand p {
  margin: clamp(18px, 2.5vw, 30px) 0 0;
  color: var(--ifb-on-accent) !important;
  font-size: clamp(18px, 2vw, 30px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;
}
@media (max-width: 700px) {
  .ifb-home-brand {
    margin-bottom: 16px;
    padding: 30px 18px 24px;
  }
  .ifb-home-brand__logo {
    width: 100%;
    max-height: 110px;
  }
  .ifb-home-brand p {
    font-size: 17px;
  }
}


/* ==========================================================
   0.3.46 — Testo fascia storica realmente collegato al Customizer
   Specificità finale per neutralizzare le vecchie regole globali.
   ========================================================== */
body.home .ifb-home-brand,
body.app.home .ifb-home-brand {
  color: var(--ifb-on-accent, #ffffff) !important;
  -webkit-text-fill-color: var(--ifb-on-accent, #ffffff) !important;
}
body.home .ifb-home-brand > p,
body.app.home .ifb-home-brand > p,
body.home .ifb-home-brand p,
body.app.home .ifb-home-brand p {
  color: var(--ifb-on-accent, #ffffff) !important;
  -webkit-text-fill-color: var(--ifb-on-accent, #ffffff) !important;
  opacity: 1 !important;
}

/* =========================================================
   0.3.47 — Header minimale: logo completo a sinistra, utente a destra
   ========================================================= */
body.app .app-topbar.app-topbar-minimal,
body .app-topbar.app-topbar-minimal{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:24px!important;
  min-height:92px!important;
  padding:14px 26px!important;
  background:#fff!important;
  border-top:0!important;
  border-bottom:1px solid var(--ifb-box-border,#e5e7eb)!important;
  box-shadow:none!important;
}
body.app .app-topbar-minimal .app-brand-full,
body .app-topbar-minimal .app-brand-full{
  display:flex!important;
  align-items:center!important;
  width:auto!important;
  min-width:0!important;
  max-width:min(520px,60vw)!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.app .app-topbar-minimal .app-brand-full img,
body .app-topbar-minimal .app-brand-full img{
  display:block!important;
  width:min(430px,42vw)!important;
  max-width:100%!important;
  height:auto!important;
  max-height:64px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
body.app .app-topbar-minimal .app-actions,
body .app-topbar-minimal .app-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  margin:0 0 0 auto!important;
  min-width:0!important;
}
body.app .app-topbar-minimal .app-actions > *,
body .app-topbar-minimal .app-actions > *{
  margin:0!important;
}
.nav-toggle-mobile-only{display:none!important}

@media (max-width: 760px){
  body.app .app-topbar.app-topbar-minimal,
  body .app-topbar.app-topbar-minimal{
    min-height:70px!important;
    padding:10px 14px!important;
    gap:12px!important;
  }
  body.app .app-topbar-minimal .app-brand-full,
  body .app-topbar-minimal .app-brand-full{
    max-width:58vw!important;
  }
  body.app .app-topbar-minimal .app-brand-full img,
  body .app-topbar-minimal .app-brand-full img{
    width:min(290px,58vw)!important;
    max-height:48px!important;
  }
  body.app .app-topbar-minimal .app-actions,
  body .app-topbar-minimal .app-actions{
    max-width:38vw!important;
  }
  .nav-toggle-mobile-only{
    display:flex!important;
    position:fixed!important;
    left:14px!important;
    bottom:88px!important;
    z-index:10020!important;
    width:44px!important;
    height:44px!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    border:1px solid var(--ifb-accent)!important;
    border-radius:0!important;
    background:#fff!important;
    color:var(--ifb-accent)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.16)!important;
    font-size:22px!important;
    line-height:1!important;
  }
}


/* =========================================================
   0.3.48 — Menu mobile sempre visibile dentro l'header
   ========================================================= */
body .app-topbar-minimal > .nav-toggle-mobile-only,
body.app .app-topbar-minimal > .nav-toggle-mobile-only {
  display: none !important;
}
@media (max-width: 760px) {
  body .app-topbar.app-topbar-minimal,
  body.app .app-topbar.app-topbar-minimal {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 10px !important;
  }
  body .app-topbar-minimal > .nav-toggle-mobile-only,
  body.app .app-topbar-minimal > .nav-toggle-mobile-only {
    display: inline-flex !important;
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid var(--ifb-box-border) !important;
    border-radius: 0 !important;
    background: var(--ifb-box-bg, #fff) !important;
    color: var(--ifb-accent) !important;
    box-shadow: none !important;
    font: inherit !important;
    line-height: 1 !important;
  }
  body .app-topbar-minimal > .nav-toggle-mobile-only > span[aria-hidden="true"],
  body.app .app-topbar-minimal > .nav-toggle-mobile-only > span[aria-hidden="true"] {
    display: inline !important;
    color: currentColor !important;
    font-size: 22px !important;
    line-height: 1 !important;
  }
  body .app-topbar-minimal .app-brand-full,
  body.app .app-topbar-minimal .app-brand-full {
    justify-self: start !important;
    max-width: 100% !important;
  }
  body .app-topbar-minimal .app-brand-full img,
  body.app .app-topbar-minimal .app-brand-full img {
    width: min(250px, 48vw) !important;
    max-height: 44px !important;
  }
  body .app-topbar-minimal .app-actions,
  body.app .app-topbar-minimal .app-actions {
    justify-self: end !important;
    max-width: none !important;
  }
}

/* =========================================================
   0.3.49 — Pulsante menu mobile ancorato dentro l'header
   ========================================================= */
@media (max-width: 760px) {
  body .app-topbar.app-topbar-minimal,
  body.app .app-topbar.app-topbar-minimal {
    position: sticky !important;
    top: 0 !important;
    display: flex !important;
    align-items: center !important;
    min-height: 68px !important;
    padding: 10px 10px 10px 64px !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  body .app-topbar-minimal > .nav-toggle-mobile-only,
  body.app .app-topbar-minimal > .nav-toggle-mobile-only {
    display: inline-flex !important;
    position: absolute !important;
    left: 10px !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    z-index: 3 !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
  }

  body .app-topbar-minimal .app-brand-full,
  body.app .app-topbar-minimal .app-brand-full {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100vw - 150px) !important;
  }

  body .app-topbar-minimal .app-brand-full img,
  body.app .app-topbar-minimal .app-brand-full img {
    width: min(230px, 48vw) !important;
    max-width: 100% !important;
    max-height: 42px !important;
  }

  body .app-topbar-minimal .app-actions,
  body.app .app-topbar-minimal .app-actions {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    max-width: 96px !important;
    overflow: hidden !important;
  }
}

/* =========================================================
   0.3.50 — Un solo menu “Tutto Italfaber” nell'header
   Il menu laterale storico diventa una tendina compatta.
   ========================================================= */
body.app .app-shell,
body .app-shell{
  display:block!important;
  min-height:calc(100vh - var(--topbar))!important;
}
body.app .app-main,
body .app-main{
  width:100%!important;
  max-width:none!important;
}

body.app .app-topbar-minimal .nav-toggle-primary,
body .app-topbar-minimal .nav-toggle-primary{
  display:inline-flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-height:42px!important;
  padding:8px 14px!important;
  margin:0!important;
  border:1px solid var(--ifb-box-border,#e5e7eb)!important;
  border-radius:0!important;
  background:var(--ifb-box-bg,#fff)!important;
  color:var(--ifb-accent)!important;
  box-shadow:none!important;
  font-size:.88rem!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
}
body.app .app-topbar-minimal .nav-toggle-primary:hover,
body .app-topbar-minimal .nav-toggle-primary:hover,
body.nav-open .app-topbar-minimal .nav-toggle-primary{
  background:var(--ifb-soft,#f3f5f7)!important;
  border-color:var(--ifb-accent)!important;
}

body.app .app-sidebar,
body .app-sidebar{
  position:fixed!important;
  top:104px!important;
  left:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:min(430px,calc(100vw - 40px))!important;
  height:min(70vh,680px)!important;
  max-height:calc(100vh - 130px)!important;
  transform:translate(-50%,-12px)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  z-index:10010!important;
  overflow:hidden!important;
  background:var(--ifb-box-bg,#fff)!important;
  border:1px solid var(--ifb-accent)!important;
  box-shadow:0 20px 60px rgba(0,0,0,.24)!important;
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease!important;
}
body.nav-open .app-sidebar{
  transform:translate(-50%,0)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
body.app .app-sidebar .sidebar-head,
body .app-sidebar .sidebar-head{
  min-height:48px!important;
  height:48px!important;
  padding:0 10px 0 14px!important;
}
body.app .app-sidebar .sidebar-head strong,
body .app-sidebar .sidebar-head strong{
  font-size:.88rem!important;
  letter-spacing:.02em!important;
}
body.app .app-sidebar .nav-tree,
body .app-sidebar .nav-tree{
  height:calc(100% - 48px)!important;
}
body.app .app-sidebar .nav-row > a,
body .app-sidebar .nav-row > a,
body.app .app-sidebar .nav-back,
body .app-sidebar .nav-back,
body.app .app-sidebar .nav-row-title span,
body .app-sidebar .nav-row-title span{
  min-height:38px!important;
  padding:7px 8px!important;
  font-size:.82rem!important;
  line-height:1.2!important;
}
body.app .app-sidebar .nav-next,
body .app-sidebar .nav-next{
  min-height:38px!important;
  width:38px!important;
  font-size:1rem!important;
}
body.app .app-sidebar .nav-row:not(.nav-row-title),
body .app-sidebar .nav-row:not(.nav-row-title){
  grid-template-columns:minmax(0,1fr) 38px!important;
}
body.app .nav-backdrop,
body .nav-backdrop{
  z-index:10000!important;
}

@media (max-width:760px){
  body.app .app-topbar.app-topbar-minimal,
  body .app-topbar.app-topbar-minimal{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
    padding:10px!important;
    gap:8px!important;
  }
  body.app .app-topbar-minimal .app-brand-full,
  body .app-topbar-minimal .app-brand-full{
    max-width:100%!important;
  }
  body.app .app-topbar-minimal .app-brand-full img,
  body .app-topbar-minimal .app-brand-full img{
    width:min(210px,42vw)!important;
    max-height:42px!important;
  }
  body.app .app-topbar-minimal .nav-toggle-primary,
  body .app-topbar-minimal .nav-toggle-primary{
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    padding:0!important;
  }
  body.app .app-topbar-minimal .nav-toggle-primary span:last-child,
  body .app-topbar-minimal .nav-toggle-primary span:last-child{
    display:none!important;
  }
  body.app .app-sidebar,
  body .app-sidebar{
    top:76px!important;
    width:calc(100vw - 20px)!important;
    height:calc(100vh - 96px)!important;
    max-height:none!important;
  }
  body.app .app-topbar-minimal .app-actions,
  body .app-topbar-minimal .app-actions{
    max-width:88px!important;
  }
}


/* =========================================================
   0.3.51 — ITALFABER è il pulsante unico del menu
   ========================================================= */
body .app-topbar.app-topbar-wordmark,
body.app .app-topbar.app-topbar-wordmark{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  min-height:82px!important;
  padding:12px 24px!important;
  gap:20px!important;
}
body .app-topbar-wordmark .ifb-wordmark-menu,
body.app .app-topbar-wordmark .ifb-wordmark-menu{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  width:auto!important;
  min-width:0!important;
  min-height:54px!important;
  height:auto!important;
  padding:4px 2px!important;
  margin:0!important;
  border:0!important;
  border-bottom:3px solid transparent!important;
  background:transparent!important;
  color:var(--ifb-accent)!important;
  box-shadow:none!important;
  font-family:"Science Gothic","Arial Narrow","Segoe UI",system-ui,sans-serif!important;
  text-decoration:none!important;
}
body .app-topbar-wordmark .ifb-wordmark-menu:hover,
body.app .app-topbar-wordmark .ifb-wordmark-menu:hover,
body.nav-open .app-topbar-wordmark .ifb-wordmark-menu{
  background:transparent!important;
  border-color:var(--ifb-accent)!important;
}
body .ifb-wordmark-text,
body.app .ifb-wordmark-text{
  display:block!important;
  font-size:clamp(2rem,4vw,3.35rem)!important;
  font-weight:900!important;
  font-stretch:expanded!important;
  letter-spacing:-.045em!important;
  line-height:.9!important;
  white-space:nowrap!important;
}
body .ifb-wordmark-arrow,
body.app .ifb-wordmark-arrow{
  display:inline-block!important;
  font-size:1.15rem!important;
  line-height:1!important;
  transform-origin:center!important;
  transition:transform .16s ease!important;
}
body.nav-open .ifb-wordmark-arrow{
  transform:rotate(180deg)!important;
}
body .app-topbar-wordmark .app-actions,
body.app .app-topbar-wordmark .app-actions{
  margin-left:auto!important;
  flex:0 0 auto!important;
}
body .app-sidebar .nav-close,
body.app .app-sidebar .nav-close{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  width:36px!important;
  height:36px!important;
  font-size:1.35rem!important;
  font-weight:700!important;
}
@media (max-width:760px){
  body .app-topbar.app-topbar-wordmark,
  body.app .app-topbar.app-topbar-wordmark{
    min-height:68px!important;
    padding:8px 10px!important;
    gap:8px!important;
  }
  body .app-topbar-wordmark .ifb-wordmark-menu,
  body.app .app-topbar-wordmark .ifb-wordmark-menu{
    min-height:46px!important;
    max-width:calc(100vw - 110px)!important;
    padding:2px 0!important;
  }
  body .ifb-wordmark-text,
  body.app .ifb-wordmark-text{
    font-size:clamp(1.55rem,9vw,2.25rem)!important;
  }
  body .ifb-wordmark-arrow,
  body.app .ifb-wordmark-arrow{
    font-size:.95rem!important;
  }
  body .app-topbar-wordmark .app-actions,
  body.app .app-topbar-wordmark .app-actions{
    max-width:92px!important;
  }
}

/* =========================================================
   0.3.52 — Verifica hover/focus e robustezza mobile wordmark
   ========================================================= */
body .app-topbar-wordmark .ifb-wordmark-menu,
body.app .app-topbar-wordmark .ifb-wordmark-menu,
body .app-topbar-wordmark .ifb-user-box > summary,
body.app .app-topbar-wordmark .ifb-user-box > summary{
  transition:color .14s ease,background-color .14s ease,border-color .14s ease,opacity .14s ease!important;
}

/* Hover solo sui dispositivi che possiedono un vero puntatore. */
@media (hover:hover) and (pointer:fine){
  body .app-topbar-wordmark .ifb-wordmark-menu:hover,
  body.app .app-topbar-wordmark .ifb-wordmark-menu:hover{
    color:var(--ifb-accent)!important;
    background:color-mix(in srgb,var(--ifb-accent) 5%,#fff)!important;
    border-bottom-color:var(--ifb-accent)!important;
  }
  body .app-topbar-wordmark .ifb-user-box > summary:hover,
  body.app .app-topbar-wordmark .ifb-user-box > summary:hover{
    color:var(--ifb-accent)!important;
    background:color-mix(in srgb,var(--ifb-accent) 5%,#fff)!important;
    border-color:var(--ifb-accent)!important;
  }
}

body .app-topbar-wordmark .ifb-wordmark-menu:focus,
body.app .app-topbar-wordmark .ifb-wordmark-menu:focus{
  outline:none!important;
}
body .app-topbar-wordmark .ifb-wordmark-menu:focus-visible,
body.app .app-topbar-wordmark .ifb-wordmark-menu:focus-visible,
body .app-topbar-wordmark .ifb-user-box > summary:focus-visible,
body.app .app-topbar-wordmark .ifb-user-box > summary:focus-visible{
  outline:3px solid color-mix(in srgb,var(--ifb-accent) 32%,transparent)!important;
  outline-offset:3px!important;
}
body .app-topbar-wordmark .ifb-wordmark-menu:active,
body.app .app-topbar-wordmark .ifb-wordmark-menu:active{
  opacity:.78!important;
}

/* Impedisce alle vecchie regole del pulsante mobile di nascondere il wordmark. */
@media (max-width:1023px){
  body .app-topbar.app-topbar-wordmark,
  body.app .app-topbar.app-topbar-wordmark{
    display:flex!important;
    grid-template-columns:none!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  body .app-topbar-wordmark .ifb-wordmark-menu,
  body.app .app-topbar-wordmark .ifb-wordmark-menu{
    display:inline-flex!important;
    flex:1 1 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:calc(100% - 54px)!important;
    overflow:visible!important;
  }
  body .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-text,
  body.app .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-text{
    display:block!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    -webkit-text-fill-color:currentColor!important;
  }
  body .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-arrow,
  body.app .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-arrow{
    display:inline-block!important;
    flex:0 0 auto!important;
    -webkit-text-fill-color:currentColor!important;
  }
  body .app-topbar-wordmark .app-actions,
  body.app .app-topbar-wordmark .app-actions{
    flex:0 0 44px!important;
    width:44px!important;
    max-width:44px!important;
    min-width:44px!important;
  }
  body .app-topbar-wordmark .ifb-user-box,
  body.app .app-topbar-wordmark .ifb-user-box{
    width:44px!important;
    max-width:44px!important;
  }
}

@media (max-width:480px){
  body .app-topbar.app-topbar-wordmark,
  body.app .app-topbar.app-topbar-wordmark{
    min-height:62px!important;
    padding:7px 9px!important;
    gap:7px!important;
  }
  body .app-topbar-wordmark .ifb-wordmark-menu,
  body.app .app-topbar-wordmark .ifb-wordmark-menu{
    min-height:44px!important;
    max-width:calc(100% - 51px)!important;
    gap:6px!important;
    padding:2px 0!important;
  }
  body .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-text,
  body.app .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-text{
    font-size:clamp(1.42rem,8.2vw,2rem)!important;
    letter-spacing:-.05em!important;
  }
  body .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-arrow,
  body.app .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-arrow{
    font-size:.82rem!important;
  }
  body .app-sidebar,
  body.app .app-sidebar{
    top:68px!important;
    left:10px!important;
    width:calc(100vw - 20px)!important;
    height:calc(100dvh - 88px)!important;
    max-height:calc(100dvh - 88px)!important;
    transform:translateY(-10px)!important;
  }
  body.nav-open .app-sidebar,
  body.app.nav-open .app-sidebar{
    transform:translateY(0)!important;
  }
}

@media (max-width:340px){
  body .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-text,
  body.app .app-topbar-wordmark .ifb-wordmark-menu .ifb-wordmark-text{
    font-size:1.34rem!important;
  }
}
