@import url('https://fonts.googleapis.com/css2?family=Science+Gothic:wght@400;500;600;700;800;900&display=swap');
:root{
  --bg:#eef1f4;--panel:#fff;--panel-soft:#f8f9fb;--text:#1f2933;--muted:#667085;--line:#d6dce3;--accent:#5f7588;--accent-dark:#34495e;--ok:#2f6f4e;--danger:#9b2c2c;
  --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:#fff;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:rgb(0 0 0 / .28);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:#fff}.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:#a15c07}.ifb-app-hero.ifb-status-expired:before{background:var(--danger)}.ifb-app-hero.ifb-status-awarded:before{background:#345d8c}.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:#f3faf6}.ifb-status-badge.ifb-status-soon{color:#a15c07;background:#fff8ed}.ifb-status-badge.ifb-status-expired,.ifb-badge-unverified{color:var(--danger);background:#fff5f5}.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:#5f7588;
  --steel-blue-soft:#eef4f8;
  --tender-accent:#a15c07;
  --tender-soft:#fff8ed;
  --company-accent:#2f6f4e;
  --company-soft:#f3faf6;
  --doc-accent:#44576a;
}
.card,
.panel,
.article,
.filter-bar{
  transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.card:hover,
.panel:hover{
  border-color:#c3ccd5;
  box-shadow:0 1px 0 rgb(31 41 51 / .04);
}
.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:#ead5b7;
}
.card-carpenteria .badge,
.sheet-carpenteria .badge,
.ifb-badge-verified{
  background:var(--company-soft);
  border-color:#cfe4d8;
}
.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:#566678;
}
.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, #f8fafc 0%, #eef3f8 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 #b9c5d1;
  background: #fff;
  color: var(--text);
  padding: 9px 11px;
  border-radius: 3px;
  box-shadow: 0 1px 0 rgb(16 24 40 / .03);
}

.ifb-filter-form:has(input[name="ifb_need"]) input:focus,
.ifb-filter-form:has(input[name="ifb_need"]) select:focus {
  outline: 3px solid rgb(95 117 136 / .18);
  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: #fff;
  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 rgb(95 117 136 / .18);
}

.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 rgb(95 117 136 / .14);
  background: rgb(255 255 255 / .62);
  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,#f8fafc 0%,#eef3f8 100%);
  --ifb-field-border:#b9c5d1;
  --ifb-soft-border:rgb(95 117 136 / .18);
  --ifb-focus:rgb(95 117 136 / .18);
}

/* 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:#fff;
}

/* 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:#fff;
  color:var(--text);
  padding:9px 11px;
  border-radius:3px;
  box-shadow:0 1px 0 rgb(16 24 40 / .03);
}

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:#fff;
  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:#fff;
  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:#fff;
}

.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:#fff;
}

.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:#fff;
}

.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 rgba(255,255,255,.65);
}

.sidebar-head{
  margin:10px;
  height:auto;
  min-height:58px;
  padding:12px 14px;
  background:#fff;
  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:#fff;
  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:#fff;
  border:1px solid var(--line);
  border-top:4px solid var(--accent);
  border-radius:4px;
}

.nav-level{
  padding:12px;
  background:#fff;
}

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

.nav-row:not(.nav-row-title):hover{
  border-color:#c5cfda;
}

.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:#fff;
  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:#b8c5d4;
  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:#fff;
  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:#fff !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:#c5cfda !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:#fff !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:#fff !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:#fff !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:#fff !important;
}

.nav-row.is-current,
.nav-row.current-menu-item,
.nav-row.current-menu-ancestor{
  border-color:#b8c5d4 !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:#fff !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:#dfe7ef;
  --app-chrome-soft:#edf3f8;
  --app-chrome-panel:#f6f9fc;
  --app-chrome-line:#b9c9d8;
  --app-chrome-accent:#496b88;
  --app-chrome-accent-dark:#29465f;
}

.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 rgba(255,255,255,.72) inset !important;
}

.app-brand,
.app-topbar .nav-toggle{
  background:rgba(255,255,255,.74) !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 rgba(255,255,255,.78) inset !important;
}

.app-brand:hover,
.app-topbar .nav-toggle:hover{
  background:#fff !important;
  border-color:#9fb4c7 !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 rgba(255,255,255,.62) inset !important;
}

.sidebar-head{
  background:rgba(255,255,255,.48) !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:rgba(255,255,255,.74) !important;
  border-color:var(--app-chrome-line) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset !important;
}

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

.nav-row.is-current,
.nav-row.current-menu-item,
.nav-row.current-menu-ancestor{
  border-color:#91a9bd !important;
  box-shadow:inset 4px 0 0 var(--app-chrome-accent),0 1px 0 rgba(255,255,255,.7) 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:rgba(255,255,255,.88) !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:rgba(255,255,255,.78) !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:#eef4f8;
  --ifb-app-bluegray-2:#d7e3ec;
  --ifb-app-bluegray-3:#c1d2df;
  --ifb-app-bluegray-4:#6f8ea6;
  --ifb-app-bluegray-5:#2f526d;
}

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 rgba(255,255,255,.85) inset,0 1px 2px rgba(47,82,109,.08) !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 rgba(255,255,255,.72) inset,1px 0 3px rgba(47,82,109,.07) !important;
}

body.app .sidebar-head,
body .sidebar-head{
  background:rgba(255,255,255,.52) !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:rgba(255,255,255,.82) !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 rgba(255,255,255,.9) inset !important;
}

body.app .quick-nav a,
body.app .nav-row,
body .quick-nav a,
body .nav-row{
  background:rgba(255,255,255,.78) !important;
  border:1px solid var(--ifb-app-bluegray-3) !important;
  color:var(--ifb-app-bluegray-5) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.85) 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:#fff !important;
  border-color:#95aec2 !important;
  box-shadow:inset 4px 0 0 var(--ifb-app-bluegray-4),0 1px 0 rgba(255,255,255,.9) inset !important;
}

body.app .nav-row-title,
body .nav-row-title{
  background:rgba(255,255,255,.56) !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:rgba(255,255,255,.38) !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:rgba(255,255,255,.78) !important;
  overflow:hidden !important;
  box-shadow:0 1px 0 rgba(255,255,255,.85) 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:rgba(255,255,255,.28) !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:rgba(255,255,255,.58) !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:#95aec2 !important;
}

body.app .nav-back,
body .nav-back{
  justify-content:flex-start !important;
  border:0 !important;
  background:rgba(255,255,255,.72) !important;
  font-weight:850 !important;
}

body.app .nav-row:hover,
body .nav-row:hover{
  border-color:#95aec2 !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:#fff !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:#fff !important;
  border-color:#8ea8bd !important;
  box-shadow:inset 4px 0 0 var(--ifb-app-bluegray-4),0 1px 0 rgba(255,255,255,.9) 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:rgba(255,255,255,.88) !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:rgba(255,255,255,.82) !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 rgba(255,255,255,.9) 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:#fff !important;
  border-color:#95aec2 !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:#496b88 !important;
}

body.app .ifb-top-steel-index strong,
body .ifb-top-steel-index strong{
  font-size:.9rem !important;
  font-weight:950 !important;
  color:#18344b !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, #d8e0e8);
    font-size: 14px;
    color: var(--muted, #53657a);
}

.lb-semantic-archive-mini__label {
    display: inline-block;
    margin: 0 8px 6px 0;
    color: var(--ink-soft, #1d3550);
    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, #d6dee8);
    background: #f7f9fb;
    color: var(--accent-strong, #24425f);
    text-decoration: none;
    border-radius: 3px;
    line-height: 1.35;
}

.lb-semantic-archive-mini a:hover {
    background: #edf3f8;
    border-color: #b9c9d8;
}

@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,#d6dee8);
  background:var(--panel-soft,#f7f9fb);
  color:var(--accent-dark,#24425f) !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 #b8c7d5;
  background:#fff;
  color:var(--accent-dark,#24425f);
  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,#66788a);
}
.if-submit-appalto-btn strong{
  display:inline;
  font-size:.86rem;
  font-weight:800;
  color:var(--text,#1f2933);
}
.if-submit-appalto-btn:hover{
  background:#edf3f8;
  border-color:#b9c9d8;
  color:var(--accent-dark,#24425f) !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:#f7f9fb;
    border-color:#cbd8e4;
    box-shadow:0 10px 24px rgb(31 41 51 / .16);
  }
  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:#e6e8ea;
  --panel:#ffffff;
  --panel-soft:#f2f3f4;
  --text:#1b2024;
  --muted:#5f666c;
  --line:#c8cdd1;
  --accent:#8f1f24;
  --accent-dark:#2b3035;
  --ok:#23613f;
  --danger:#8f1f24;
  --ifb-iron-1:#f3f4f4;
  --ifb-iron-2:#dfe2e4;
  --ifb-iron-3:#b8bec4;
  --ifb-iron-4:#6f767d;
  --ifb-iron-5:#272d33;
  --ifb-red:#9b1f24;
  --ifb-red-dark:#70161a;
}

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:rgba(255,255,255,.48) !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:#fff !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:#f1f2f3 !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:#fff !important;
  border-color:#9da4aa !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:#f7f7f7 !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:#8f969d !important;
  background:#fff !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:#fff !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,#b8bec4) !important;
  background:#fff !important;
  color:var(--ifb-iron-5,#272d33) !important;
  box-shadow:none !important;
}
.if-submit-appalto-btn:before{
  border-color:var(--ifb-red,#9b1f24) !important;
  background:var(--ifb-red,#9b1f24) !important;
  color:#fff !important;
}
.if-submit-appalto-btn span{
  color:var(--ifb-red-dark,#70161a) !important;
}
.if-submit-appalto-btn strong{
  color:var(--ifb-iron-5,#272d33) !important;
}
.if-submit-appalto-btn:hover{
  background:#f1f2f3 !important;
  border-color:#8f969d !important;
}
@media (max-width:1023px){
  .if-submit-appalto-float{
    background:#fff !important;
    border-color:#9da4aa !important;
    box-shadow:0 10px 24px rgb(27 32 36 / .20) !important;
  }
}


/* 0.2.26: uniformazione totale - blu grigio scuro, zero rosso */
:root{
  --bg:#e7eaed;
  --panel:#ffffff;
  --panel-soft:#f2f5f7;
  --text:#17212a;
  --muted:#596875;
  --line:#c3ccd4;
  --accent:#2f4356;
  --accent-dark:#1f3346;
  --ok:#2f4356;
  --danger:#2f4356;

  --steel-blue:#2f4356;
  --steel-blue-soft:#eef2f5;
  --tender-accent:#2f4356;
  --tender-soft:#eef2f5;
  --company-accent:#2f4356;
  --company-soft:#eef2f5;
  --doc-accent:#2f4356;

  --ifb-app-bluegray-1:#f1f4f6;
  --ifb-app-bluegray-2:#dce4ea;
  --ifb-app-bluegray-3:#b7c4cf;
  --ifb-app-bluegray-4:#2f4356;
  --ifb-app-bluegray-5:#182838;

  --app-chrome:#dce4ea;
  --app-chrome-soft:#f1f4f6;
  --app-chrome-panel:#f7f9fa;
  --app-chrome-line:#b7c4cf;
  --app-chrome-accent:#2f4356;
  --app-chrome-accent-dark:#182838;

  --ifb-iron-1:#f1f4f6;
  --ifb-iron-2:#dce4ea;
  --ifb-iron-3:#b7c4cf;
  --ifb-iron-4:#536879;
  --ifb-iron-5:#182838;
  --ifb-red:#2f4356;
  --ifb-red-dark:#1f3346;
  --ifb-unified-accent:#2f4356;
  --ifb-unified-accent-dark:#182838;
  --ifb-unified-soft:#eef2f5;
  --ifb-unified-line:#b7c4cf;
}

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,#ffffff 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:#fff !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:#899aaa !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:#fff !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:#fff !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:rgb(47 67 86 / .22) !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:#fff !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:#fff !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:#f7f9fa !important;
  border-color:#899aaa !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,#f4f7fa 0%,#e4ebf1 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:rgba(255,255,255,.82);
  box-shadow:0 1px 0 rgba(255,255,255,.72) 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:#fff;
  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,#ffffff,#eef2f5);
  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 #cfe4d8;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:#d4dee8;background:#eef3f7;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:#d4dee8;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;}}
