/* ==========================================================================
   NITIDO — style Emporia Digital Group
   Tecnico, monocromo, preciso (Vercel, doc di Bootstrap, Linear).
   Bianco e nero; l'arancione chiaro è solo un segnale, mai un bottone.
   Drop-in dopo bootstrap.css. Niente build step, niente SCSS.
   Blocchi: (1) token light  (2) token dark  (3) bridge --bs-*
            (4) override componenti  (5) print
   ========================================================================== */

/* --------------------------------------------------------------------------
   (1) TOKEN — light
   -------------------------------------------------------------------------- */
:root {
  /* superfici */
  --clb-color-bg:             #FAFAFA;
  --clb-color-surface:        #FFFFFF;
  --clb-color-surface-2:      #F2F2F2;
  --clb-color-surface-sunk:   #F5F5F5;
  --clb-color-border:         #E5E5E5;
  --clb-color-border-hair:    #EDEDED;
  --clb-color-border-strong:  #C7C7C7;

  /* testo */
  --clb-color-text:           #0A0A0A;
  --clb-color-text-2:         #4D4D4D;
  --clb-color-text-3:         #6B6B6B;
  --clb-color-text-4:         #A3A3A3;
  --clb-color-text-inv:       #FAFAFA;
  --clb-color-inv-bg:         #0A0A0A;

  /* accento = nero: l'azione primaria è monocroma */
  --clb-color-accent:         #0A0A0A;
  --clb-color-accent-hover:   #2B2B2B;
  --clb-color-accent-fg:      #FAFAFA;   /* testo SU accento */
  --clb-color-on-accent:      #FAFAFA;
  --clb-color-accent-bg:      #EFEFEF;
  --clb-color-accent-text:    #0A0A0A;

  /* segnale: arancione chiaro, solo come indicatore (mai testo piccolo, mai bottone) */
  --clb-color-signal:         #FF9147;
  --clb-color-signal-bg:      rgba(255, 145, 71, .14);
  --clb-color-signal-text:    #9C440B;   /* arancione quando deve essere testo */

  /* semantici */
  --clb-color-success:        #166534;
  --clb-color-success-bg:     rgba(22, 163, 74, .10);
  --clb-color-info:           #1D4ED8;
  --clb-color-info-bg:        rgba(37, 99, 235, .09);
  --clb-color-warning:        #92400E;
  --clb-color-warning-bg:     rgba(245, 158, 11, .14);
  --clb-color-danger:         #B91C1C;
  --clb-color-danger-bg:      rgba(220, 38, 38, .09);

  /* decorazioni */
  --clb-shadow-sm:            0 1px 2px rgba(0, 0, 0, .05);
  --clb-shadow-md:            0 4px 12px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);
  --clb-shadow-lg:            0 16px 40px rgba(0, 0, 0, .10), 0 2px 6px rgba(0, 0, 0, .04);
  --clb-focus-ring:           0 0 0 2px var(--clb-color-bg), 0 0 0 4px var(--clb-color-signal);
  --clb-color-backdrop:       #000000;

  /* tipografia */
  --clb-font-display: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --clb-font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --clb-font-sans:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --clb-font-mono:    "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  --clb-text-xs:   12px;
  --clb-text-sm:   13px;
  --clb-text-base: 15px;
  --clb-text-md:   17px;
  --clb-text-lg:   20px;
  --clb-text-xl:   24px;
  --clb-text-2xl:  32px;
  --clb-text-3xl:  44px;

  --clb-leading-tight:  1.15;
  --clb-leading-snug:   1.35;
  --clb-leading-base:   1.6;

  /* spaziatura base 4 */
  --clb-space-1: 4px;
  --clb-space-2: 8px;
  --clb-space-3: 12px;
  --clb-space-4: 16px;
  --clb-space-5: 20px;
  --clb-space-6: 24px;
  --clb-space-8: 32px;
  --clb-space-10: 40px;
  --clb-space-12: 48px;
  --clb-space-16: 64px;

  /* raggi */
  --clb-radius-xs:   4px;
  --clb-radius-sm:   6px;
  --clb-radius-md:   8px;
  --clb-radius-lg:   12px;
  --clb-radius-pill: 999px;

  /* layout */
  --clb-navbar-h:   64px;
  --clb-sidebar-w:  260px;
}

/* --------------------------------------------------------------------------
   (2) TOKEN — dark
   -------------------------------------------------------------------------- */
[data-bs-theme="dark"] {
  --clb-color-bg:             #0A0A0A;
  --clb-color-surface:        #111111;
  --clb-color-surface-2:      #1C1C1C;
  --clb-color-surface-sunk:   #070707;
  --clb-color-border:         #262626;
  --clb-color-border-hair:    #1C1C1C;
  --clb-color-border-strong:  #3D3D3D;

  --clb-color-text:           #EDEDED;
  --clb-color-text-2:         #B3B3B3;
  --clb-color-text-3:         #8F8F8F;
  --clb-color-text-4:         #5C5C5C;
  --clb-color-text-inv:       #0A0A0A;
  --clb-color-inv-bg:         #EDEDED;

  --clb-color-accent:         #EDEDED;
  --clb-color-accent-hover:   #CFCFCF;
  --clb-color-accent-fg:      #0A0A0A;
  --clb-color-on-accent:      #0A0A0A;
  --clb-color-accent-bg:      #1F1F1F;
  --clb-color-accent-text:    #EDEDED;

  --clb-color-signal:         #FF9F5A;
  --clb-color-signal-bg:      rgba(255, 159, 90, .14);
  --clb-color-signal-text:    #FFB07A;

  --clb-color-success:        #4ADE80;
  --clb-color-success-bg:     rgba(74, 222, 128, .12);
  --clb-color-info:           #7AB4FF;
  --clb-color-info-bg:        rgba(96, 165, 250, .13);
  --clb-color-warning:        #FBBF24;
  --clb-color-warning-bg:     rgba(251, 191, 36, .13);
  --clb-color-danger:         #FF7B7B;
  --clb-color-danger-bg:      rgba(248, 113, 113, .13);

  --clb-shadow-sm:            none;
  --clb-shadow-md:            0 0 0 1px var(--clb-color-border);
  --clb-shadow-lg:            0 0 0 1px var(--clb-color-border), 0 16px 40px rgba(0, 0, 0, .6);
}

/* --------------------------------------------------------------------------
   (3) BRIDGE Bootstrap 5.3
   -------------------------------------------------------------------------- */
:root,
[data-bs-theme="light"],
[data-bs-theme="dark"] {
  --bs-body-bg:            var(--clb-color-bg);
  --bs-body-color:         var(--clb-color-text);
  --bs-body-font-family:   var(--clb-font-body);
  --bs-body-font-size:     var(--clb-text-base);
  --bs-body-line-height:   var(--clb-leading-base);
  --bs-primary:            var(--clb-color-accent);
  --bs-secondary-color:    var(--clb-color-text-3);
  --bs-tertiary-color:     var(--clb-color-text-4);
  --bs-tertiary-bg:        var(--clb-color-surface-2);
  --bs-secondary-bg:       var(--clb-color-surface);
  --bs-border-color:       var(--clb-color-border);
  --bs-border-radius:      var(--clb-radius-md);
  --bs-border-radius-sm:   var(--clb-radius-sm);
  --bs-border-radius-lg:   var(--clb-radius-lg);
  --bs-font-sans-serif:    var(--clb-font-sans);
  --bs-font-monospace:     var(--clb-font-mono);
  --bs-heading-color:      var(--clb-color-text);
  --bs-emphasis-color:     var(--clb-color-text);
  --bs-success:            var(--clb-color-success);
  --bs-info:               var(--clb-color-info);
  --bs-warning:            var(--clb-color-warning);
  --bs-danger:             var(--clb-color-danger);
  --bs-code-color:         var(--clb-color-signal-text);
  --bs-form-valid-color:   var(--clb-color-success);
  --bs-form-valid-border-color: var(--clb-color-success);
  --bs-form-invalid-color: var(--clb-color-danger);
  --bs-form-invalid-border-color: var(--clb-color-danger);
}
:root, [data-bs-theme="light"] {
  --bs-primary-rgb:        10, 10, 10;
  --bs-link-color:         var(--clb-color-text);
  --bs-link-color-rgb:     10, 10, 10;
  --bs-link-hover-color:   var(--clb-color-text-2);
  --bs-link-hover-color-rgb: 77, 77, 77;
}
[data-bs-theme="dark"] {
  --bs-primary-rgb:        237, 237, 237;
  --bs-link-color:         var(--clb-color-text);
  --bs-link-color-rgb:     237, 237, 237;
  --bs-link-hover-color:   var(--clb-color-text-2);
  --bs-link-hover-color-rgb: 179, 179, 179;
}

/* --------------------------------------------------------------------------
   (4) OVERRIDE COMPONENTI
   -------------------------------------------------------------------------- */

/* base */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
body {
  background: var(--clb-color-bg);
  color: var(--clb-color-text);
  font-feature-settings: "cv11", "ss01";   /* Inter: 1 e a più "tecniche" */
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--clb-font-display);
  font-weight: 600;
  color: var(--clb-color-text);
  line-height: var(--clb-leading-tight);
}
h1, .h1 { font-size: clamp(2rem, 1.4rem + 2vw, var(--clb-text-3xl)); font-weight: 700; letter-spacing: -.035em; }
h2, .h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, var(--clb-text-2xl)); letter-spacing: -.028em; }
h3, .h3 { font-size: var(--clb-text-xl); letter-spacing: -.02em; }
h4, .h4 { font-size: var(--clb-text-lg); letter-spacing: -.015em; }
h5, .h5 { font-size: var(--clb-text-md); letter-spacing: -.01em; }
h6, .h6 { font-size: var(--clb-text-base); }
.lead { font-size: var(--clb-text-md); color: var(--clb-color-text-2); line-height: var(--clb-leading-base); }
small, .small, .form-text { font-size: var(--clb-text-sm); }
.text-muted, .text-secondary, .text-body-secondary { color: var(--clb-color-text-3) !important; }
.text-success { color: var(--clb-color-success) !important; }
.text-danger  { color: var(--clb-color-danger) !important; }
.text-warning { color: var(--clb-color-warning) !important; }
.text-info    { color: var(--clb-color-info) !important; }
.clb-eyebrow {
  font-family: var(--clb-font-mono); font-size: var(--clb-text-xs); font-weight: 500;
  letter-spacing: .06em; text-transform: uppercase; color: var(--clb-color-text-3);
}
.clb-signal { color: var(--clb-color-signal-text); }
hr { border-top: 1px solid var(--clb-color-border); opacity: 1; }
a { text-decoration: underline; text-decoration-color: var(--clb-color-border-strong); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { text-decoration-color: currentColor; }
.btn, .nav-link, .navbar-brand, .dropdown-item, .page-link, .list-group-item-action, .card a.stretched-link { text-decoration: none; }
::selection { background: var(--clb-color-signal-bg); }
:focus-visible { outline: none; box-shadow: var(--clb-focus-ring); border-radius: var(--clb-radius-xs); }

/* codice */
code, kbd, pre, samp { font-family: var(--clb-font-mono); }
code { font-size: .875em; }
:not(pre) > code {
  padding: .1em .35em; border-radius: var(--clb-radius-xs);
  background: var(--clb-color-surface-2); border: 1px solid var(--clb-color-border-hair);
  color: var(--clb-color-text);
}
pre {
  font-size: var(--clb-text-sm); line-height: 1.7;
  padding: var(--clb-space-4) var(--clb-space-5);
  background: var(--clb-color-surface-sunk); color: var(--clb-color-text);
  border: 1px solid var(--clb-color-border); border-radius: var(--clb-radius-md);
}
kbd {
  display: inline-block; min-width: 1.6em; padding: .1em .45em;
  font-size: var(--clb-text-xs); font-weight: 500; text-align: center;
  color: var(--clb-color-text-2); background: var(--clb-color-surface);
  border: 1px solid var(--clb-color-border); border-bottom-width: 2px; border-radius: var(--clb-radius-xs);
  box-shadow: none;
}

/* blocco di codice con bottone copia: <div class="clb-code"><button data-clb-copy>…</button><pre>…</pre></div> */
.clb-code { position: relative; }
.clb-code > [data-clb-copy] {
  position: absolute; top: var(--clb-space-2); right: var(--clb-space-2);
  font: 500 var(--clb-text-xs)/1 var(--clb-font-sans); padding: 6px 8px;
  color: var(--clb-color-text-3); background: var(--clb-color-surface);
  border: 1px solid var(--clb-color-border); border-radius: var(--clb-radius-xs); cursor: pointer;
}
.clb-code > [data-clb-copy]:hover { color: var(--clb-color-text); border-color: var(--clb-color-border-strong); }
.clb-code > [data-clb-copy].is-copied { color: var(--clb-color-success); }

/* bottoni — una sola azione primaria (nera) per schermata */
.btn {
  --bs-btn-font-weight: 500;
  --bs-btn-font-size: 14px;
  --bs-btn-padding-y: 8px;
  --bs-btn-padding-x: 14px;
  --bs-btn-border-radius: var(--clb-radius-sm);
  letter-spacing: -.005em;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.btn-lg { --bs-btn-font-size: 15px; --bs-btn-padding-y: 11px; --bs-btn-padding-x: 20px; --bs-btn-border-radius: var(--clb-radius-md); }
.btn-sm { --bs-btn-font-size: 13px; --bs-btn-padding-y: 5px; --bs-btn-padding-x: 10px; }
.btn:focus-visible { box-shadow: var(--clb-focus-ring); }
.btn-primary {
  --bs-btn-bg: var(--clb-color-accent); --bs-btn-border-color: var(--clb-color-accent); --bs-btn-color: var(--clb-color-on-accent);
  --bs-btn-hover-bg: var(--clb-color-accent-hover); --bs-btn-hover-border-color: var(--clb-color-accent-hover); --bs-btn-hover-color: var(--clb-color-on-accent);
  --bs-btn-active-bg: var(--clb-color-accent-hover); --bs-btn-active-border-color: var(--clb-color-accent-hover); --bs-btn-active-color: var(--clb-color-on-accent);
  --bs-btn-disabled-bg: var(--clb-color-surface-2); --bs-btn-disabled-border-color: var(--clb-color-border); --bs-btn-disabled-color: var(--clb-color-text-3);
}
.btn-secondary, .btn-outline-secondary, .btn-light, .btn-outline-primary {
  --bs-btn-bg: var(--clb-color-surface); --bs-btn-border-color: var(--clb-color-border); --bs-btn-color: var(--clb-color-text);
  --bs-btn-hover-bg: var(--clb-color-surface-2); --bs-btn-hover-border-color: var(--clb-color-border-strong); --bs-btn-hover-color: var(--clb-color-text);
  --bs-btn-active-bg: var(--clb-color-surface-2); --bs-btn-active-border-color: var(--clb-color-border-strong); --bs-btn-active-color: var(--clb-color-text);
  --bs-btn-disabled-bg: var(--clb-color-surface); --bs-btn-disabled-border-color: var(--clb-color-border); --bs-btn-disabled-color: var(--clb-color-text-3);
}
.btn-dark {
  --bs-btn-bg: var(--clb-color-inv-bg); --bs-btn-border-color: var(--clb-color-inv-bg); --bs-btn-color: var(--clb-color-text-inv);
  --bs-btn-hover-bg: var(--clb-color-accent-hover); --bs-btn-hover-border-color: var(--clb-color-accent-hover); --bs-btn-hover-color: var(--clb-color-text-inv);
}
.btn-ghost, .btn-link {
  --bs-btn-bg: transparent; --bs-btn-border-color: transparent; --bs-btn-color: var(--clb-color-text-2);
  --bs-btn-hover-bg: var(--clb-color-surface-2); --bs-btn-hover-border-color: transparent; --bs-btn-hover-color: var(--clb-color-text);
  --bs-btn-active-bg: var(--clb-color-surface-2); --bs-btn-active-color: var(--clb-color-text);
  text-decoration: none;
}
.btn-outline-danger, .btn-danger {
  --bs-btn-bg: var(--clb-color-surface); --bs-btn-border-color: var(--clb-color-border); --bs-btn-color: var(--clb-color-danger);
  --bs-btn-hover-bg: var(--clb-color-danger-bg); --bs-btn-hover-border-color: var(--clb-color-danger); --bs-btn-hover-color: var(--clb-color-danger);
  --bs-btn-active-bg: var(--clb-color-danger-bg); --bs-btn-active-border-color: var(--clb-color-danger); --bs-btn-active-color: var(--clb-color-danger);
}
.btn-outline-success, .btn-success {
  --bs-btn-bg: var(--clb-color-surface); --bs-btn-border-color: var(--clb-color-border); --bs-btn-color: var(--clb-color-success);
  --bs-btn-hover-bg: var(--clb-color-success-bg); --bs-btn-hover-border-color: var(--clb-color-success); --bs-btn-hover-color: var(--clb-color-success);
}
.btn-outline-warning, .btn-warning {
  --bs-btn-bg: var(--clb-color-surface); --bs-btn-border-color: var(--clb-color-border); --bs-btn-color: var(--clb-color-warning);
  --bs-btn-hover-bg: var(--clb-color-warning-bg); --bs-btn-hover-border-color: var(--clb-color-warning); --bs-btn-hover-color: var(--clb-color-warning);
}
.btn-outline-info, .btn-info {
  --bs-btn-bg: var(--clb-color-surface); --bs-btn-border-color: var(--clb-color-border); --bs-btn-color: var(--clb-color-info);
  --bs-btn-hover-bg: var(--clb-color-info-bg); --bs-btn-hover-border-color: var(--clb-color-info); --bs-btn-hover-color: var(--clb-color-info);
}

/* form */
.form-control, .form-select {
  font-size: 14px; padding: 8px 12px;
  background-color: var(--clb-color-surface); color: var(--clb-color-text);
  border: 1px solid var(--clb-color-border); border-radius: var(--clb-radius-sm);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:hover, .form-select:hover { border-color: var(--clb-color-border-strong); }
.form-control:focus, .form-select:focus {
  background-color: var(--clb-color-surface); color: var(--clb-color-text);
  border-color: var(--clb-color-text-3); box-shadow: 0 0 0 3px var(--clb-color-signal-bg);
}
.form-control::placeholder { color: var(--clb-color-text-4); }
.form-control:disabled, .form-select:disabled { background-color: var(--clb-color-surface-2); color: var(--clb-color-text-3); }
.form-control-lg, .form-select-lg { font-size: 15px; padding: 11px 14px; border-radius: var(--clb-radius-md); }
.form-label { font-size: 14px; font-weight: 500; color: var(--clb-color-text); margin-bottom: 6px; }
.form-text { color: var(--clb-color-text-3); }
.form-check-input { border-color: var(--clb-color-border-strong); background-color: var(--clb-color-surface); }
.form-check-input:checked { background-color: var(--clb-color-accent); border-color: var(--clb-color-accent); }
[data-bs-theme="dark"] .form-check-input:checked[type="checkbox"] {
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%230A0A0A' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
.form-check-input:focus { box-shadow: var(--clb-focus-ring); border-color: var(--clb-color-text-3); }
.form-switch .form-check-input:focus { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23A3A3A3'/%3e%3c/svg%3e"); }
.input-group-text { background: var(--clb-color-surface-2); border-color: var(--clb-color-border); color: var(--clb-color-text-3); font-size: 14px; }
.invalid-feedback { color: var(--clb-color-danger); }
.valid-feedback { color: var(--clb-color-success); }

/* card — bordo 1px, ombra minima */
.card {
  --bs-card-bg: var(--clb-color-surface);
  --bs-card-border-color: var(--clb-color-border);
  --bs-card-border-radius: var(--clb-radius-lg);
  --bs-card-inner-border-radius: calc(var(--clb-radius-lg) - 1px);
  --bs-card-spacer-y: var(--clb-space-5);
  --bs-card-spacer-x: var(--clb-space-5);
  --bs-card-cap-bg: transparent;
  box-shadow: var(--clb-shadow-sm);
}
.card-header, .card-footer { border-color: var(--clb-color-border); font-size: 14px; }
.card-title { font-size: var(--clb-text-md); font-weight: 600; letter-spacing: -.01em; }
.card-subtitle, .card-text { color: var(--clb-color-text-2); }

/* tabelle */
.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--clb-color-text);
  --bs-table-border-color: var(--clb-color-border);
  --bs-table-striped-bg: var(--clb-color-surface-sunk);
  --bs-table-hover-bg: var(--clb-color-surface-2);
  --bs-table-hover-color: var(--clb-color-text);
  font-size: 14px;
}
.table > :not(caption) > * > * { padding: 10px 12px; border-bottom-color: var(--clb-color-border-hair); }
.table > thead th {
  font-size: var(--clb-text-xs); font-weight: 500; letter-spacing: .02em;
  color: var(--clb-color-text-3); background: var(--clb-color-surface-sunk);
  border-bottom: 1px solid var(--clb-color-border);
}
.table td code, .table td.clb-mono { font-size: 13px; }

/* badge — pill tenue, mai pieni */
.badge {
  font-family: var(--clb-font-sans); font-size: var(--clb-text-xs); font-weight: 500; letter-spacing: 0;
  padding: 3px 8px; border-radius: var(--clb-radius-pill); border: 1px solid transparent;
}
.badge.text-bg-primary, .badge.text-bg-dark { background: var(--clb-color-inv-bg) !important; color: var(--clb-color-text-inv) !important; }
.badge.text-bg-secondary, .badge.text-bg-light { background: var(--clb-color-surface-2) !important; color: var(--clb-color-text-2) !important; border-color: var(--clb-color-border); }
.badge.text-bg-success { background: var(--clb-color-success-bg) !important; color: var(--clb-color-success) !important; }
.badge.text-bg-info    { background: var(--clb-color-info-bg) !important;    color: var(--clb-color-info) !important; }
.badge.text-bg-warning { background: var(--clb-color-warning-bg) !important; color: var(--clb-color-warning) !important; }
.badge.text-bg-danger  { background: var(--clb-color-danger-bg) !important;  color: var(--clb-color-danger) !important; }
.clb-badge-new { background: var(--clb-color-signal-bg); color: var(--clb-color-signal-text); }

/* alert */
.alert {
  --bs-alert-border-radius: var(--clb-radius-md);
  font-size: 14px; border: 1px solid var(--clb-color-border);
  background: var(--clb-color-surface); color: var(--clb-color-text);
}
.alert-success { background: var(--clb-color-success-bg); border-color: transparent; color: var(--clb-color-success); }
.alert-info    { background: var(--clb-color-info-bg);    border-color: transparent; color: var(--clb-color-info); }
.alert-warning { background: var(--clb-color-warning-bg); border-color: transparent; color: var(--clb-color-warning); }
.alert-danger  { background: var(--clb-color-danger-bg);  border-color: transparent; color: var(--clb-color-danger); }
.alert .alert-link { color: inherit; }

/* navbar — trasparente con blur, bordo in basso */
.navbar {
  --bs-navbar-color: var(--clb-color-text-2);
  --bs-navbar-hover-color: var(--clb-color-text);
  --bs-navbar-active-color: var(--clb-color-text);
  --bs-navbar-brand-color: var(--clb-color-text);
  --bs-navbar-brand-hover-color: var(--clb-color-text);
  min-height: var(--clb-navbar-h);
  background: color-mix(in srgb, var(--clb-color-bg) 82%, transparent);
  backdrop-filter: saturate(1.6) blur(10px);
  border-bottom: 1px solid var(--clb-color-border);
}
.navbar-brand { font-weight: 700; font-size: 16px; letter-spacing: -.02em; }
.navbar .nav-link { font-size: 14px; font-weight: 500; }

/* nav, tab, pills */
.nav-link { color: var(--clb-color-text-2); }
.nav-link:hover, .nav-link:focus { color: var(--clb-color-text); }
.nav-tabs { --bs-nav-tabs-border-color: var(--clb-color-border); --bs-nav-tabs-link-active-bg: transparent; --bs-nav-tabs-link-active-border-color: transparent; gap: var(--clb-space-1); }
.nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; font-size: 14px; font-weight: 500; padding: 10px 12px; }
.nav-tabs .nav-link.active { color: var(--clb-color-text); border-bottom-color: var(--clb-color-text); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--clb-color-surface-2); --bs-nav-pills-link-active-color: var(--clb-color-text); --bs-nav-pills-border-radius: var(--clb-radius-sm); }
.nav-pills .nav-link { font-size: 14px; font-weight: 500; }

/* sidebar di documentazione: indicatore arancione sulla voce attiva */
.clb-sidenav { font-size: 14px; }
.clb-sidenav__title { font-size: 13px; font-weight: 600; color: var(--clb-color-text); margin: var(--clb-space-6) 0 var(--clb-space-2); }
.clb-sidenav a {
  display: flex; align-items: center; gap: var(--clb-space-2);
  padding: 6px 10px; margin-left: -10px; border-radius: var(--clb-radius-sm);
  color: var(--clb-color-text-2); text-decoration: none; position: relative;
}
.clb-sidenav a:hover { color: var(--clb-color-text); background: var(--clb-color-surface-2); }
.clb-sidenav a[aria-current="page"], .clb-sidenav a.active { color: var(--clb-color-text); font-weight: 500; background: var(--clb-color-surface-2); }
.clb-sidenav a[aria-current="page"]::before, .clb-sidenav a.active::before {
  content: ""; position: absolute; left: -1px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: var(--clb-color-signal);
}

/* dropdown, modal, offcanvas, popover, tooltip */
.dropdown-menu {
  --bs-dropdown-bg: var(--clb-color-surface);
  --bs-dropdown-border-color: var(--clb-color-border);
  --bs-dropdown-border-radius: var(--clb-radius-md);
  --bs-dropdown-link-color: var(--clb-color-text);
  --bs-dropdown-link-hover-bg: var(--clb-color-surface-2);
  --bs-dropdown-link-hover-color: var(--clb-color-text);
  --bs-dropdown-link-active-bg: var(--clb-color-surface-2);
  --bs-dropdown-link-active-color: var(--clb-color-text);
  --bs-dropdown-header-color: var(--clb-color-text-3);
  --bs-dropdown-divider-bg: var(--clb-color-border);
  --bs-dropdown-font-size: 14px;
  padding: 4px; box-shadow: var(--clb-shadow-lg);
}
.dropdown-item { border-radius: var(--clb-radius-xs); padding: 7px 10px; }
.modal {
  --bs-modal-bg: var(--clb-color-surface);
  --bs-modal-border-color: var(--clb-color-border);
  --bs-modal-border-radius: var(--clb-radius-lg);
  --bs-modal-header-border-color: var(--clb-color-border);
  --bs-modal-footer-border-color: var(--clb-color-border);
  --bs-modal-box-shadow: var(--clb-shadow-lg);
}
.modal-title { font-size: var(--clb-text-lg); font-weight: 600; letter-spacing: -.015em; }
.modal-backdrop { --bs-backdrop-bg: var(--clb-color-backdrop); --bs-backdrop-opacity: .45; }
.offcanvas { --bs-offcanvas-bg: var(--clb-color-surface); --bs-offcanvas-border-color: var(--clb-color-border); }
.tooltip { --bs-tooltip-bg: var(--clb-color-inv-bg); --bs-tooltip-color: var(--clb-color-text-inv); --bs-tooltip-font-size: 13px; --bs-tooltip-border-radius: var(--clb-radius-sm); }
.popover { --bs-popover-bg: var(--clb-color-surface); --bs-popover-border-color: var(--clb-color-border); --bs-popover-body-color: var(--clb-color-text); --bs-popover-box-shadow: var(--clb-shadow-lg); }

/* list group, paginazione, breadcrumb, progress, toast */
.list-group { --bs-list-group-bg: var(--clb-color-surface); --bs-list-group-border-color: var(--clb-color-border); --bs-list-group-color: var(--clb-color-text); --bs-list-group-action-hover-bg: var(--clb-color-surface-2); --bs-list-group-active-bg: var(--clb-color-surface-2); --bs-list-group-active-color: var(--clb-color-text); --bs-list-group-active-border-color: var(--clb-color-border); --bs-list-group-border-radius: var(--clb-radius-md); }
.pagination {
  --bs-pagination-bg: var(--clb-color-surface); --bs-pagination-color: var(--clb-color-text-2);
  --bs-pagination-border-color: var(--clb-color-border); --bs-pagination-hover-bg: var(--clb-color-surface-2);
  --bs-pagination-hover-color: var(--clb-color-text); --bs-pagination-hover-border-color: var(--clb-color-border);
  --bs-pagination-active-bg: var(--clb-color-accent); --bs-pagination-active-color: var(--clb-color-on-accent);
  --bs-pagination-active-border-color: var(--clb-color-accent); --bs-pagination-disabled-bg: var(--clb-color-surface);
  --bs-pagination-disabled-color: var(--clb-color-text-4); --bs-pagination-disabled-border-color: var(--clb-color-border);
  --bs-pagination-focus-box-shadow: var(--clb-focus-ring); --bs-pagination-font-size: 14px;
}
.breadcrumb { --bs-breadcrumb-font-size: 14px; --bs-breadcrumb-item-active-color: var(--clb-color-text); --bs-breadcrumb-divider-color: var(--clb-color-text-4); }
.breadcrumb a { color: var(--clb-color-text-3); text-decoration: none; }
.breadcrumb a:hover { color: var(--clb-color-text); }
.progress { --bs-progress-bg: var(--clb-color-surface-2); --bs-progress-bar-bg: var(--clb-color-accent); --bs-progress-height: 6px; --bs-progress-border-radius: var(--clb-radius-pill); }
.toast { --bs-toast-bg: var(--clb-color-surface); --bs-toast-border-color: var(--clb-color-border); --bs-toast-color: var(--clb-color-text); --bs-toast-header-bg: var(--clb-color-surface); --bs-toast-header-color: var(--clb-color-text); --bs-toast-box-shadow: var(--clb-shadow-lg); --bs-toast-border-radius: var(--clb-radius-md); }
.btn-close { --bs-btn-close-focus-shadow: var(--clb-focus-ring); }
[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* griglia di punti (decorazione hero) */
.clb-grid-bg {
  background-image:
    linear-gradient(var(--clb-color-border-hair) 1px, transparent 1px),
    linear-gradient(90deg, var(--clb-color-border-hair) 1px, transparent 1px);
  background-size: 48px 48px;
}

/* --------------------------------------------------------------------------
   (5) PRINT — bianco e nero, niente navigazione
   -------------------------------------------------------------------------- */
@media print {
  :root, [data-bs-theme="dark"] {
    --clb-color-bg: #ffffff; --clb-color-surface: #ffffff; --clb-color-surface-2: #f2f2f2; --clb-color-surface-sunk: #f7f7f7;
    --clb-color-border: #cccccc; --clb-color-border-strong: #000000;
    --clb-color-text: #000000; --clb-color-text-2: #222222; --clb-color-text-3: #444444;
    --clb-color-accent: #000000; --clb-color-on-accent: #ffffff; --clb-color-accent-text: #000000;
    --clb-color-signal: #000000; --clb-color-signal-text: #000000;
    --clb-color-success: #000000; --clb-color-info: #000000; --clb-color-warning: #000000; --clb-color-danger: #000000;
  }
  body { background: #ffffff; font-size: 11pt; }
  .navbar, .clb-sidenav, .btn, .pagination, .offcanvas, .dropdown-menu, .toast-container { display: none !important; }
  .card, pre { box-shadow: none; border-color: #cccccc; break-inside: avoid; }
  a { color: #000000; text-decoration: underline; }
}
