/* Renua Hub — design system condiviso con renua-partner-portal (palette dal logo Renua) + layout a menu laterale. */
:root, [data-bs-theme="light"] {
  --rn-blue: #1f6fb2; --rn-blue-2: #2b7bbf; --rn-sky: #35aee6; --rn-orange: #f39200; --rn-amber: #f8b333;
  --rn-bg: #f4f6f9; --rn-surface: #ffffff; --rn-surface-2: #f8fafc; --rn-border: #e3e8ef; --rn-text: #1f2a37;
  --rn-muted: #5b6b7d; --rn-shadow: 0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.06);
  --bs-primary: #1f6fb2; --bs-primary-rgb: 31,111,178; --bs-link-color: #1f6fb2; --bs-link-hover-color: #185a91;
  --bs-body-bg: var(--rn-bg); --bs-body-color: var(--rn-text); --bs-border-color: var(--rn-border);
  --bs-secondary-color: var(--rn-muted);
}
[data-bs-theme="dark"] {
  --rn-blue: #5aa7e6; --rn-blue-2: #4f9bd8; --rn-sky: #5cc3f0; --rn-orange: #f6a531; --rn-amber: #f8c15a;
  --rn-bg: #0f1621; --rn-surface: #172131; --rn-surface-2: #1c2839; --rn-border: #2a3a50; --rn-text: #e3e9f1;
  --rn-muted: #9aabbf; --rn-shadow: 0 1px 2px rgba(0,0,0,.4);
  --bs-primary: #4f9bd8; --bs-primary-rgb: 79,155,216; --bs-link-color: #6bb2ec; --bs-link-hover-color: #8cc4f1;
  --bs-body-bg: var(--rn-bg); --bs-body-color: var(--rn-text); --bs-border-color: var(--rn-border);
  --bs-secondary-color: var(--rn-muted);
}
html, body { background: var(--rn-bg); color: var(--rn-text); }
.form-control, .form-select { background-color: var(--rn-surface); }
body { font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: .925rem; }
.btn-primary { --bs-btn-bg: var(--rn-blue); --bs-btn-border-color: var(--rn-blue); --bs-btn-hover-bg: var(--rn-blue-2);
  --bs-btn-hover-border-color: var(--rn-blue-2); --bs-btn-active-bg: var(--rn-blue-2); }
/* variabili Bootstrap: .btn:hover usa --bs-btn-hover-bg, senza il bottone diventava trasparente con testo bianco */
.btn-accent { --bs-btn-color: #fff; --bs-btn-bg: var(--rn-orange); --bs-btn-border-color: var(--rn-orange);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #d98300; --bs-btn-hover-border-color: #d98300;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #c47600; --bs-btn-active-border-color: #c47600;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--rn-orange); --bs-btn-disabled-border-color: var(--rn-orange);
  --bs-btn-focus-shadow-rgb: 243,146,0; }
.text-accent { color: var(--rn-orange) !important; }
.text-muted, .form-text { color: var(--rn-muted) !important; }

/* navbar */
.rn-nav { background: var(--rn-surface); border-bottom: 1px solid var(--rn-border); box-shadow: var(--rn-shadow); }
.rn-nav .navbar-brand img { height: 34px; }
[data-bs-theme="dark"] .rn-nav .navbar-brand img { filter: brightness(1.15) saturate(1.05); }
.rn-nav .nav-link { color: var(--rn-muted); font-weight: 500; border-radius: .6rem; padding: .45rem .8rem !important; }
.rn-nav .nav-link.active, .rn-nav .nav-link:hover { color: var(--rn-blue); background: color-mix(in srgb, var(--rn-blue) 9%, transparent); }
.rn-nav .area-label { font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: var(--rn-muted); }
.rn-bar { height: 3px; background: linear-gradient(90deg, var(--rn-blue) 0 40%, var(--rn-sky) 40% 60%, var(--rn-amber) 60% 80%, var(--rn-orange) 80%); }

/* layout */
.page { padding: 1.5rem 0 3rem; }
.page-head { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; justify-content: space-between; margin-bottom: 1.25rem; }
.page-head h1 { font-size: 1.45rem; font-weight: 650; margin: 0; }
.page-head .sub { color: var(--rn-muted); margin: .2rem 0 0; }
.eyebrow { font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rn-orange); }

/* card separate, angoli arrotondati, altezze uguali */
.card { background: var(--rn-surface); border: 1px solid var(--rn-border); border-radius: 1rem; box-shadow: var(--rn-shadow); }
.card-header { background: transparent; border-bottom: 1px solid var(--rn-border); font-weight: 600; padding: .85rem 1.1rem; }
.card-body { padding: 1.1rem; }
.row.equal > [class*="col"] { display: flex; }
.row.equal > [class*="col"] > .card { flex: 1 1 auto; }
.kpi .label { color: var(--rn-muted); font-size: .8rem; }
.kpi .value { font-size: 1.55rem; font-weight: 650; line-height: 1.2; }
.kpi .hint { color: var(--rn-muted); font-size: .78rem; }
.kpi .icon { width: 2.4rem; height: 2.4rem; border-radius: .8rem; display: grid; place-items: center; font-size: 1.15rem;
  background: color-mix(in srgb, var(--rn-blue) 12%, transparent); color: var(--rn-blue); }
.kpi .icon.orange { background: color-mix(in srgb, var(--rn-orange) 15%, transparent); color: var(--rn-orange); }
.kpi .icon.sky { background: color-mix(in srgb, var(--rn-sky) 15%, transparent); color: var(--rn-sky); }

/* tabelle */
.table { --bs-table-bg: transparent; --bs-table-color: var(--rn-text); margin: 0; }
.table > :not(caption) > * > * { border-bottom-color: var(--rn-border); padding: .55rem .7rem; }
.totals .grand { font-size: 1.15rem; font-weight: 700; color: var(--rn-text); }


/* shell: menu laterale + area di lavoro */
.shell { display: flex; min-height: calc(100vh - 3px); }
.side { width: 248px; flex: 0 0 248px; background: var(--rn-surface); border-right: 1px solid var(--rn-border); padding: 1rem .75rem;
  position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.side .brand { display: flex; align-items: center; gap: .6rem; padding: .25rem .5rem 1rem; text-decoration: none; }
.side .brand img { height: 34px; }
.side .brand span { font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rn-muted);
  border-left: 1px solid var(--rn-border); padding-left: .6rem; }
.side-group { font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rn-muted); margin: 1rem .6rem .3rem; }
.side-link { display: flex; align-items: center; gap: .6rem; padding: .42rem .6rem; border-radius: .6rem; color: var(--rn-text);
  text-decoration: none; font-size: .88rem; }
.side-link i { color: var(--rn-muted); width: 1.1rem; text-align: center; }
.side-link:hover { background: color-mix(in srgb, var(--rn-blue) 8%, transparent); color: var(--rn-blue); }
.side-link.active { background: color-mix(in srgb, var(--rn-blue) 12%, transparent); color: var(--rn-blue); font-weight: 600; }
.side-link.active i { color: var(--rn-blue); }
.side-link.soon { color: var(--rn-muted); opacity: .6; cursor: default; }
.side-link.soon:hover { background: none; color: var(--rn-muted); }
.main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.top { display: flex; align-items: center; gap: .5rem; padding: .6rem 1.5rem; background: var(--rn-surface); border-bottom: 1px solid var(--rn-border); }
.main .page { padding: 1.5rem; flex: 1 0 auto; max-width: 1480px; width: 100%; }
.foot { color: var(--rn-muted); font-size: .75rem; padding: 1rem 1.5rem; border-top: 1px solid var(--rn-border); }
.user-chip { background: var(--rn-surface-2); border-color: var(--rn-border); color: var(--rn-text); }
.login-logo { height: 48px; }
.req { color: #d63939; }
.pre { white-space: pre-wrap; }
.dl-compact dt { font-weight: 500; color: var(--rn-muted); font-size: .85rem; }
.dl-compact dd { margin-bottom: .45rem; }
.filters .form-label { font-size: .78rem; color: var(--rn-muted); margin-bottom: .2rem; }
.list-group-item { background: transparent; color: var(--rn-text); border-color: var(--rn-border); }

/* tipologie anagrafica */
.badge-type { font-weight: 600; border: 1px solid transparent; }
.type-prospect { background: color-mix(in srgb, var(--rn-sky) 18%, transparent); color: #0b5c86; }
.type-customer { background: color-mix(in srgb, var(--rn-blue) 16%, transparent); color: #164f80; }
.type-supplier { background: color-mix(in srgb, var(--rn-amber) 25%, transparent); color: #7a4b00; }
.type-partner { background: color-mix(in srgb, var(--rn-orange) 18%, transparent); color: #8a4a00; }
.type-other { background: var(--rn-surface-2); color: var(--rn-muted); border-color: var(--rn-border); }
[data-bs-theme="dark"] .type-prospect, [data-bs-theme="dark"] .type-customer { color: #a9d6f5; }
[data-bs-theme="dark"] .type-supplier, [data-bs-theme="dark"] .type-partner { color: var(--rn-amber); }

/* timeline commerciale */
.timeline { display: flex; flex-wrap: wrap; gap: .25rem; list-style: none; padding: 0; margin: 0 0 .75rem; counter-reset: s; }
.timeline .step { flex: 1 1 110px; display: flex; flex-direction: column; align-items: center; text-align: center; font-size: .78rem;
  color: var(--rn-muted); position: relative; padding-top: .2rem; }
.timeline .step .dot { width: .9rem; height: .9rem; border-radius: 50%; border: 2px solid var(--rn-border); background: var(--rn-surface); margin-bottom: .35rem; }
.timeline .step.done .dot { background: var(--rn-blue); border-color: var(--rn-blue); }
.timeline .step.done { color: var(--rn-text); }
.timeline .step.current .dot { border-color: var(--rn-orange); background: var(--rn-orange); box-shadow: 0 0 0 4px color-mix(in srgb, var(--rn-orange) 20%, transparent); }
.timeline .step.current { color: var(--rn-text); font-weight: 600; }

/* pipeline kanban */
.pipeline { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: .75rem; overflow-x: auto; padding-bottom: .5rem; }
.pipe-col { background: var(--rn-surface-2); border: 1px solid var(--rn-border); border-radius: 1rem; padding: .5rem; min-height: 200px; }
.pipe-col header { display: flex; justify-content: space-between; align-items: center; font-weight: 600; padding: .35rem .5rem; }
.pipe-card { display: block; background: var(--rn-surface); border: 1px solid var(--rn-border); border-radius: .8rem; padding: .6rem .7rem;
  margin-bottom: .5rem; color: var(--rn-text); text-decoration: none; box-shadow: var(--rn-shadow); }
.pipe-card:hover { border-color: var(--rn-blue); }

/* storico */
.history { list-style: none; padding: 0; margin: 0; }
.history li { border-left: 2px solid var(--rn-border); padding: 0 0 .8rem .8rem; position: relative; }
.history li::before { content: ""; position: absolute; left: -5px; top: .35rem; width: 8px; height: 8px; border-radius: 50%; background: var(--rn-sky); }
.history .diff s { color: var(--rn-muted); }

@media (max-width: 991.98px) {
  .side { position: fixed; z-index: 1040; left: -260px; transition: left .2s; box-shadow: var(--rn-shadow); }
  .side.open { left: 0; }
  .top, .main .page { padding-left: 16px; padding-right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .side { transition: none; } }

.side-sep { border-top: 1px solid var(--rn-border); margin: 1rem .4rem .6rem; }
.side-suggest { color: var(--rn-orange); font-weight: 600; }
.side-suggest i { color: var(--rn-orange); }
.notif-count { position: absolute; top: -6px; right: -8px; font-size: .62rem; }
.checklist { list-style: none; padding: 0; margin: 0; }
.checklist li { padding: .2rem 0; }
.checklist .bi-check-circle-fill { color: #2e9e5b; }
.checklist .bi-circle { color: var(--rn-muted); }
.status-pill { font-size: .72rem; }
.notif-unread { background: color-mix(in srgb, var(--rn-sky) 8%, transparent); }
.changelog ul { margin-bottom: .4rem; padding-left: 1.2rem; }
.changelog li { margin-bottom: .25rem; }
