/* Identita condivisa Bova Capaldo: navy, argento, bianco e archi 3D. */
:root {
  --bc-navy-950: #050a12;
  --bc-navy-900: #08111d;
  --bc-navy-800: #102846;
  --bc-navy-700: #1b416f;
  --bc-blue: #315f98;
  --bc-silver-100: #f2f4f7;
  --bc-silver-300: #c8ced7;
  --bc-silver-500: #8894a5;
  --bc-panel: rgba(14, 23, 36, .97);
  --bc-line: rgba(205, 214, 226, .17);
  --bg: var(--bc-navy-950);
  --page: var(--bc-navy-950);
  --panel: var(--bc-panel);
  --panel-strong: #0c1725;
  --panel-soft: #121f30;
  --ink: #f7f9fc;
  --text: #f7f9fc;
  --muted: #aab4c3;
  --line: var(--bc-line);
  --accent: #426faa;
  --accent-strong: #264f83;
  --teal: #6689b8;
  --gold: #c8ced7;
  --blue: #426faa;
}

html { background: var(--bc-navy-950); }

body {
  position: relative;
  min-height: 100vh;
  color: #f7f9fc;
  background:
    radial-gradient(circle at 48% -15%, rgba(255,255,255,.12), transparent 31%),
    linear-gradient(145deg, #101c2c 0%, #060b13 48%, #0b1624 100%) !important;
  background-attachment: fixed !important;
}

body::before {
  position: fixed !important;
  z-index: 0 !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  content: "" !important;
  pointer-events: none !important;
  opacity: 1 !important;
  background:
    url("../assets/logo-bova-capaldo-3d.jpeg") calc(100% - 34px) 28px / 116px 116px no-repeat,
    linear-gradient(rgba(205,214,226,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(205,214,226,.022) 1px, transparent 1px) !important;
  background-size: 116px 116px, 46px 46px, 46px 46px !important;
  filter: none !important;
  box-shadow: none !important;
  mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
}

body::after {
  position: fixed !important;
  z-index: 0 !important;
  right: -50vw !important;
  bottom: -92vw !important;
  left: auto !important;
  top: auto !important;
  width: 150vw !important;
  height: 150vw !important;
  border: clamp(18px, 2.25vw, 42px) solid #102f5b !important;
  border-radius: 50% !important;
  content: "" !important;
  pointer-events: none !important;
  opacity: .58 !important;
  background: transparent !important;
  box-shadow:
    0 0 0 clamp(5px,.55vw,11px) #e0e4e9,
    0 0 0 clamp(27px,3vw,57px) rgba(8,29,57,.96),
    0 0 0 clamp(33px,3.6vw,69px) rgba(232,236,241,.74),
    0 0 0 clamp(62px,6vw,115px) rgba(25,51,86,.34),
    inset 14px 18px 28px rgba(255,255,255,.13),
    inset -20px -26px 36px rgba(0,0,0,.58),
    0 28px 75px rgba(0,0,0,.58) !important;
  transform: none !important;
}

body > main,
body > .app-shell,
body > .staff-shell,
body > .portal-shell,
body > .studio-login-shell { position: relative; z-index: 1; }

:where(.panel,.card,.dashboard-card,.data-card,.metric,.stat-card,.workspace,.toolbar,.filters,.app-card,.portal-header,.portal-panel,.studio-login-brand,.studio-login-panel) {
  border-color: var(--bc-line) !important;
  background: linear-gradient(145deg, rgba(24,35,51,.97), rgba(7,13,22,.98)) !important;
  box-shadow: 0 23px 58px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.055) !important;
}

:where(header.hero,.hero,.topbar,.page-header,.app-header,.staff-header) {
  border-color: rgba(214,221,231,.22) !important;
  background:
    radial-gradient(circle at 82% 20%, rgba(255,255,255,.11), transparent 27%),
    linear-gradient(125deg, #172b47, #0d1725 52%, #07101c) !important;
  box-shadow: 0 25px 65px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.13) !important;
}

:where(button,.button,.btn,.primary,.action-button) {
  border-color: rgba(225,230,237,.32) !important;
  color: #fff !important;
  background: linear-gradient(145deg, #3c6ca5, #142f55) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.23), 0 7px 16px rgba(0,0,0,.25) !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.55);
}

:where(button,.button,.btn,.primary,.action-button):hover {
  border-color: rgba(235,239,244,.55) !important;
  filter: brightness(1.08);
}

:where(.secondary,.ghost,.ghost-button) {
  border-color: rgba(207,216,227,.22) !important;
  color: #eef2f7 !important;
  background: linear-gradient(145deg, #2b3747, #121b28) !important;
}

:where(input,select,textarea) {
  border-color: rgba(200,210,224,.2) !important;
  color: #f6f8fb !important;
  background: #07111d !important;
  box-shadow: inset 0 1px 7px rgba(0,0,0,.35) !important;
}

:where(input,select,textarea):focus {
  border-color: #6489b9 !important;
  outline: 2px solid rgba(76,119,174,.22) !important;
}

:where(.eyebrow,.kicker,.section-label) { color: #c8ced7 !important; }
:where(a,.link,.open-link) { color: #91afd5; }
:where(th,.table-head) { color: #c2cbd7 !important; background: #091321 !important; }

/* Navigazione coordinata: stessa architettura visiva di Carbon Tax, con contrasto pieno. */
.sidebar {
  position: relative;
  z-index: 2;
  isolation: isolate;
  background-color: #091525 !important;
}

.sidebar :is(.nav-button, button.nav, a.nav, .dashboardLink) {
  border: 1px solid rgba(193,204,219,.20) !important;
  border-radius: 11px !important;
  color: #eef3f9 !important;
  background: linear-gradient(145deg, #293e5b, #0d1d32) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.08), 0 8px 18px rgba(0,0,0,.24) !important;
  opacity: 1 !important;
  text-shadow: 0 2px 4px rgba(0,0,0,.68) !important;
}

.sidebar :is(.nav-button, button.nav, a.nav, .dashboardLink):hover,
.sidebar :is(.nav-button, button.nav, a.nav, .dashboardLink).active {
  border-color: rgba(177,198,225,.58) !important;
  color: #fff !important;
  background: linear-gradient(145deg, #3c689d, #17365e) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.22), 0 10px 22px rgba(0,0,0,.32) !important;
}

.sidebar :is(.nav-icon, button.nav > span:first-child, a.nav > span:first-child) {
  display: inline-grid !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  place-items: center !important;
  border: 1px solid rgba(210,221,235,.30) !important;
  border-radius: 9px !important;
  color: #fff !important;
  background: linear-gradient(145deg, #4d82bd, #234b78) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.18), 0 4px 9px rgba(0,0,0,.25) !important;
  opacity: 1 !important;
  font-weight: 950 !important;
  text-shadow: 0 2px 3px rgba(0,0,0,.75) !important;
}

/* Nei menu che non avevano ancora il riquadro icona (Anagrafiche). */
.sidebar .nav-button:not(:has(.nav-icon)) {
  display: grid !important;
  grid-template-columns: 34px minmax(0,1fr) !important;
  align-items: center !important;
  gap: 10px !important;
}

.sidebar .nav-button:not(:has(.nav-icon))::before {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(210,221,235,.30);
  border-radius: 9px;
  content: "AP";
  color: #fff;
  background: linear-gradient(145deg, #426f9f, #1d3b61);
  box-shadow: inset 0 1px rgba(255,255,255,.18), 0 4px 9px rgba(0,0,0,.25);
  font-size: 10px;
  font-weight: 950;
  text-align: center;
  text-shadow: 0 2px 3px rgba(0,0,0,.75);
}

.sidebar .nav-button.nav-link::before { content: "IN"; }
.sidebar .nav-button[data-view="studioView"]::before { content: "ST"; }
.sidebar .nav-button[data-view="clientsView"]::before { content: "CL"; }

@media (max-width: 760px) {
  body::before { background-size: 78px 78px, 38px 38px, 38px 38px !important; background-position: calc(100% - 16px) 14px, 0 0, 0 0 !important; }
  body::after { right: -105vw !important; bottom: -66vw !important; width: 205vw !important; height: 205vw !important; opacity: .42 !important; }
}

@media print {
  html, body { background: #fff !important; }
  body::before, body::after { display: none !important; }
}
