/*
 * NEEMIA RSF - Design system
 * Progettazione e direzione del prodotto: Marco Orlando.
 * Copyright (c) 2026 Marco Orlando. Tutti i diritti riservati.
 */
:root {
  --faro-ink: #121716;
  --faro-ink-soft: #202725;
  --faro-paper: #f2f5f3;
  --faro-panel: #ffffff;
  --faro-muted: #63706b;
  --faro-line: #d5dcda;
  --faro-line-strong: #aeb9b5;
  --faro-red: #a62b2b;
  --faro-amber: #a65a17;
  --faro-green: #196247;
  --faro-blue: #285478;
  --faro-violet: #5c486f;
  --faro-shadow: 0 12px 32px rgba(18, 23, 22, .09);
  --faro-sidebar: 226px;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--faro-paper); }
body.faro-home {
  --faro-ink: #10182b;
  --faro-ink-soft: #173d89;
  --faro-paper: #eaf0fb;
  --faro-panel: #ffffff;
  --faro-muted: #53617a;
  --faro-line: #becae0;
  --faro-line-strong: #8799bc;
  --faro-amber: #f2ad00;
  --faro-green: #009878;
  --faro-blue: #194392;
  --faro-violet: #4b5fd1;
  --faro-sidebar: 190px;
  min-height: 100vh;
  margin: 0;
  background: var(--faro-paper);
  color: var(--faro-ink);
  font-family: Inter, Aptos, "Segoe UI", Arial, sans-serif;
}
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }

/* Shared runtime controls: account menu and mobile module navigation. */
.rd-account-trigger {
  box-sizing: border-box;
  height: 34px;
  max-width: 220px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  padding: 0 10px;
  border: 1px solid #3a5665;
  border-radius: 3px;
  background: #102838;
  color: #e6dfd2;
  font: 700 11px Arial, sans-serif;
  cursor: pointer;
  white-space: nowrap;
}
.rd-account-trigger:hover,
.rd-account-trigger[aria-expanded="true"] {
  border-color: #c9a45c;
  background: #193345;
}
.rd-account-trigger:focus-visible,
.rd-account-logout:focus-visible {
  outline: 2px solid #c9a45c;
  outline-offset: 2px;
}
.rd-account-avatar {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 50%;
  background: #c9a45c;
  color: #07141d;
  font-size: 10px;
  line-height: 1;
}
.rd-account-name {
  max-width: 158px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rd-account-menu {
  box-sizing: border-box;
  position: fixed;
  z-index: 10020;
  width: 270px;
  max-width: calc(100vw - 24px);
  display: none;
  background: #0c1f2d;
  color: #f2eee5;
  border: 1px solid #3d5867;
  border-top: 2px solid #c9a45c;
  border-radius: 5px;
  box-shadow: 0 22px 60px rgba(0,4,8,.56);
  font-family: Arial, sans-serif;
}
.rd-account-menu.open { display: block; }
.rd-account-profile {
  padding: 14px 15px 12px;
  border-bottom: 1px solid #294454;
}
.rd-account-profile strong,
.rd-account-profile span {
  display: block;
  overflow-wrap: anywhere;
}
.rd-account-profile strong {
  font-size: 13px;
  line-height: 1.35;
}
.rd-account-profile span {
  margin-top: 3px;
  color: #91a4ae;
  font-size: 11px;
  line-height: 1.4;
}
.rd-account-actions { padding: 7px; }
.rd-account-owner,
.rd-account-password,
.rd-account-logout {
  box-sizing: border-box;
  width: 100%;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 0;
  border-radius: 3px;
  background: transparent;
  padding: 0 9px;
  font: 800 12px Arial, sans-serif;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
}
.rd-account-owner,
.rd-account-password { color: #e5e2db; }
.rd-account-owner:hover,
.rd-account-password:hover {
  background: #102838;
  color: #e0c483;
}
.rd-account-logout { color: #e39b95; }
.rd-account-logout:hover { background: #2d1c1f; }
.rd-account-logout[disabled] {
  opacity: .55;
  cursor: wait;
}

:root { --rd-nav-h: 62px; }
.rd-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 100;
  display: none;
  grid-template-columns: repeat(var(--rd-nav-cols, 4), 1fr);
  background: #071722;
  border-top: 1px solid rgba(201,164,92,.46);
  padding-bottom: env(safe-area-inset-bottom);
  font-family: "Instrument Sans", Arial, sans-serif;
  box-shadow: 0 -12px 34px rgba(0,7,12,.34);
}
.rd-nav a {
  height: var(--rd-nav-h);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  position: relative;
  color: #8fa2ad;
  text-decoration: none;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
}
.rd-nav a svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.rd-nav a.active {
  color: var(--rd-accent, #c9a45c);
  background: #0d2331;
}
.rd-nav a.active::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 22%;
  right: 22%;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: var(--rd-accent, #c9a45c);
}
.rd-nav.single {
  grid-template-columns: minmax(160px, 240px);
  justify-content: center;
}

@media (max-width: 820px) {
  .rd-account-trigger {
    width: 36px;
    height: 36px;
    padding: 0;
    justify-content: center;
  }
  .rd-account-name { display: none; }
  .rd-topbar-meta { display: none !important; }
  .rd-nav { display: grid; }
}

.faro-skip { position: fixed; left: 12px; top: -60px; z-index: 10050; padding: 10px 14px; background: #fff; color: #111; border: 2px solid #111; }
.faro-skip:focus { top: 12px; }

.faro-layout { min-height: 100vh; display: grid; grid-template-columns: var(--faro-sidebar) minmax(0, 1fr); }
.faro-rail { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; background: #194392; color: #fff; border-right: 1px solid #103273; }
.faro-brand { min-height: 84px; padding: 18px 18px 14px; border-bottom: 1px solid rgba(255,255,255,.15); }
.faro-brand strong { display: block; font-family: "Arial Narrow", Impact, sans-serif; font-size: 30px; line-height: 1; letter-spacing: 0; }
.faro-brand strong span { color: #ffd447; }
.faro-brand small { display: block; margin-top: 6px; color: #d6e2ff; font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.faro-company { padding: 13px 18px; border-bottom: 1px solid rgba(255,255,255,.12); }
.faro-company b, .faro-company span { display: block; }
.faro-company b { font-size: 11px; }
.faro-company span { margin-top: 3px; color: #d6e2ff; font-size: 10px; line-height: 1.35; }
.faro-nav { padding: 12px 8px; display: grid; gap: 3px; }
.faro-nav-label { padding: 10px 10px 5px; color: #a9c1f2; font-size: 8px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.faro-nav a { min-height: 39px; display: flex; align-items: center; gap: 10px; padding: 0 10px; border-left: 3px solid transparent; color: #e4ecff; text-decoration: none; font-size: 11px; font-weight: 750; }
.faro-nav a:hover { background: rgba(255,255,255,.1); color: #fff; }
.faro-nav a[aria-current="page"] { border-left-color: #ffd447; background: #ffd447; color: #10265a; }
.faro-nav a[aria-current="page"] .faro-nav-mark { border-color: #10265a; color: #10265a; }
.faro-nav-mark { width: 25px; height: 25px; display: grid; place-items: center; flex: none; border: 1px solid rgba(255,255,255,.22); border-radius: 4px; color: #fff; font-size: 9px; font-weight: 900; }
.faro-rail-foot { margin-top: auto; padding: 15px 18px; border-top: 1px solid rgba(255,255,255,.2); color: #d6e2ff; font-size: 9px; line-height: 1.5; }

.faro-workspace { min-width: 0; }
.top.faro-top { height: 58px; position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 14px; padding: 0 24px; background: #102e6b; color: #fff; border-bottom: 1px solid #102e6b; }
.faro-top-title { min-width: 0; flex: 1; }
.faro-top-title b { display: block; font-size: 13px; }
.faro-top-title span { display: block; margin-top: 1px; color: #bed0f5; font-size: 10px; }
.faro-live { display: inline-flex; align-items: center; gap: 7px; color: #63e1bc; font-size: 10px; font-weight: 850; white-space: nowrap; }
.faro-live:before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.faro-live.error { color: #ffd447; }

.faro-main { width: min(1460px, 100%); margin: 0 auto; padding: 24px; }
.faro-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.faro-eyebrow { margin-bottom: 5px; color: var(--faro-amber); font-size: 9px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.faro-heading h1 { margin: 0; font-size: 32px; line-height: 1; letter-spacing: 0; font-weight: 900; text-transform: uppercase; }
.faro-heading p { max-width: 650px; margin: 7px 0 0; color: var(--faro-muted); font-size: 12px; line-height: 1.5; }
.faro-date { color: var(--faro-muted); font-size: 10px; white-space: nowrap; }

.faro-modules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.faro-module { min-width: 0; min-height: 306px; display: flex; flex-direction: column; padding: 18px; background: var(--faro-panel); border: 1px solid var(--faro-line); border-top: 6px solid var(--module-accent); border-radius: 2px; box-shadow: none; }
.faro-module.mog { --module-accent: var(--faro-violet); }
.faro-module.gare { --module-accent: var(--faro-amber); }
.faro-module.cantieri { --module-accent: var(--faro-green); }
.faro-module-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.faro-module-code { color: var(--faro-muted); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.faro-module h2 { margin: 3px 0 0; font-size: 21px; letter-spacing: 0; }
.faro-module-state { padding: 4px 7px; border: 1px solid var(--faro-line); border-radius: 4px; color: var(--faro-green); background: #f3faf6; font-size: 9px; font-weight: 850; white-space: nowrap; }
.faro-module p { min-height: 47px; margin: 13px 0; color: var(--faro-muted); font-size: 11px; line-height: 1.5; }
.faro-module-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 13px; }
.faro-module-meta span { padding: 4px 6px; border: 1px solid var(--faro-line); border-radius: 3px; color: #4f5a56; background: #f8faf9; font-size: 9px; font-weight: 750; }
.faro-module-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--faro-line); }
.faro-module-metrics div { min-width: 0; padding: 11px 9px; }
.faro-module-metrics div + div { border-left: 1px solid var(--faro-line); }
.faro-module-metrics b, .faro-module-metrics span { display: block; }
.faro-module-metrics b { font-size: 18px; line-height: 1; }
.faro-module-metrics span { margin-top: 5px; color: var(--faro-muted); font-size: 8px; font-weight: 850; text-transform: uppercase; overflow-wrap: anywhere; }
.faro-module.gare .faro-module-metrics div { background: #fff7d7; }
.faro-module.cantieri .faro-module-metrics div { background: #e5fbf5; }
.faro-module.mog .faro-module-metrics div { background: #edf0ff; }
.faro-module-alert { min-height: 42px; margin-top: 12px; padding: 9px 10px; display: flex; align-items: center; border-left: 3px solid var(--faro-line-strong); background: #f7f8fb; color: #4b576e; font-size: 9px; line-height: 1.4; }
.faro-module-alert.good { border-left-color: var(--faro-green); background: #ecf9f5; color: #17624f; }
.faro-module-alert.warning { border-left-color: var(--faro-amber); background: #fff8df; color: #765300; }
.faro-module-alert.error { border-left-color: var(--faro-red); background: #fff1f1; color: #842b2b; }
.faro-module-actions { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.faro-open { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 13px; border-radius: 2px; background: #173d89; color: #fff; text-decoration: none; font-size: 10px; font-weight: 850; }
.faro-open:hover { background: var(--faro-ink-soft); }
.faro-module-actions small { color: var(--faro-muted); font-size: 9px; }

.faro-signal { margin: 13px 0 0; display: grid; grid-template-columns: 1.25fr repeat(4, minmax(100px, .7fr)); background: var(--faro-panel); border: 1px solid var(--faro-line); border-radius: 2px; overflow: hidden; }
.faro-signal-intro, .faro-signal-item { min-height: 66px; padding: 12px 14px; display: flex; flex-direction: column; justify-content: center; }
.faro-signal-intro { background: #ffd447; color: #10265a; }
.faro-signal-intro b { font-size: 12px; }
.faro-signal-intro span { margin-top: 4px; color: #5f4a00; font-size: 9px; }
.faro-signal-item { border-left: 1px solid var(--faro-line); }
.faro-signal-item b { font-size: 11px; }
.faro-signal-item span { margin-top: 3px; color: var(--faro-muted); font-size: 9px; }
.faro-signal-item.good b { color: var(--faro-green); }
.faro-signal-item.warning b { color: #a36300; }

.faro-band { margin-top: 12px; background: var(--faro-panel); border: 1px solid var(--faro-line); border-radius: 6px; overflow: hidden; }
.faro-band-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 15px; border-bottom: 1px solid var(--faro-line); }
.faro-band-head h2 { margin: 0; font-size: 15px; }
.faro-band-head p { margin: 3px 0 0; color: var(--faro-muted); font-size: 10px; }
.backend-pill { padding: 6px 8px; border: 1px solid var(--faro-line); border-radius: 4px; background: #f8faf9; color: var(--faro-muted); font-size: 9px; font-weight: 750; white-space: nowrap; }
.tender-grid, .ops-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 12px; }
.tender-card, .op-card { min-width: 0; padding: 13px; border: 1px solid var(--faro-line); border-radius: 5px; background: #fff; }
.tender-card h3, .op-top h3 { margin: 0; font-size: 15px; }
.tender-card p, .op-body p { margin: 7px 0 10px; color: var(--faro-muted); font-size: 10px; line-height: 1.45; }
.tender-meta, .op-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.tender-meta span, .op-meta span { min-width: 0; padding: 6px; border: 1px solid #e1e6e4; background: #f8faf9; color: var(--faro-muted); font-size: 8px; font-weight: 800; text-transform: uppercase; overflow-wrap: anywhere; }
.tender-meta b, .op-meta b { display: block; margin-top: 2px; color: var(--faro-ink); font-size: 10px; text-transform: none; }
.risk, .op-state { display: inline-flex; width: max-content; max-width: 100%; margin-top: 9px; padding: 4px 6px; border-radius: 3px; font-size: 9px; font-weight: 850; }
.risk.high { color: var(--faro-red); background: #fff3f3; border: 1px solid #eebcbc; }
.risk.medium, .op-state { color: #865018; background: #fff8ed; border: 1px solid #ebcf9f; }
.risk.low { color: var(--faro-green); background: #eff9f3; border: 1px solid #b7dfc7; }
.tender-docs, .op-actions button, .doc-row-actions button, .retry { min-height: 32px; border: 1px solid var(--faro-ink); border-radius: 4px; background: #fff; color: var(--faro-ink); padding: 0 10px; font-size: 9px; font-weight: 850; cursor: pointer; }
.tender-docs { width: 100%; margin-top: 10px; background: var(--faro-ink); color: #fff; }
.op-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.op-body { margin-top: 8px; }
.op-section { margin-top: 10px; }
.op-section h4 { margin: 0 0 5px; color: var(--faro-muted); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.op-list { margin: 0; padding: 0; display: grid; gap: 4px; }
.op-list li { list-style: none; padding: 6px; border-left: 3px solid var(--faro-line-strong); background: #f8faf9; font-size: 9px; line-height: 1.4; }
.op-list li.block { border-left-color: var(--faro-red); color: #781f1f; background: #fff4f4; }
.op-actions { display: flex; gap: 6px; margin-top: 10px; }
.op-actions button:first-child { background: var(--faro-ink); color: #fff; }

.doc-archive { border-top: 1px solid var(--faro-line); }
.doc-toolbar { display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 7px; padding: 10px 12px; background: #f6f8f7; border-bottom: 1px solid var(--faro-line); }
.doc-toolbar select, .doc-toolbar input { width: 100%; min-height: 36px; margin: 0; padding: 0 10px; border: 1px solid var(--faro-line-strong); border-radius: 4px; background: #fff; color: var(--faro-ink); font-size: 10px; }
.doc-table-wrap { max-height: 310px; overflow: auto; }
.doc-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.doc-table th { position: sticky; top: 0; z-index: 1; padding: 8px; background: #f6f8f7; color: var(--faro-muted); text-align: left; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.doc-table td { padding: 8px; border-top: 1px solid #e7ebe9; vertical-align: top; }
.doc-table tr:hover td { background: #fafcfb; }
.doc-table .mono { margin-top: 2px; color: var(--faro-muted); font: 8px Consolas, monospace; overflow-wrap: anywhere; }
.doc-row-actions { display: flex; gap: 4px; }
.doc-row-actions button:first-child { background: var(--faro-ink); color: #fff; }
.doc-summary { min-height: 39px; display: flex; gap: 7px; align-items: center; flex-wrap: wrap; padding: 8px 12px; border-top: 1px solid var(--faro-line); }
.doc-summary span { padding: 4px 6px; border: 1px solid var(--faro-line); border-radius: 3px; color: var(--faro-muted); font-size: 8px; font-weight: 800; }
.state { grid-column: 1 / -1; padding: 24px 16px; text-align: center; color: var(--faro-muted); }
.state svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.state b, .state p { display: block; }
.state b { margin-top: 7px; color: var(--faro-ink); font-size: 12px; }
.state p { max-width: 460px; margin: 5px auto 10px; font-size: 10px; line-height: 1.45; }
.state.error { color: var(--faro-red); }
.skel { position: relative; overflow: hidden; background: #e7ebe9; border-radius: 3px; }
.skel:after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent); animation: faro-skel 1.1s infinite; }
.skel-line { height: 10px; margin: 3px 0; }
@keyframes faro-skel { to { transform: translateX(100%); } }

.faro-legal-note { margin-top: 12px; padding: 11px 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--faro-line); border-radius: 5px; color: var(--faro-muted); background: #e9eeec; font-size: 9px; line-height: 1.45; }
.faro-legal-note a { color: var(--faro-ink); font-weight: 850; white-space: nowrap; }

.legal-page { min-height: 100vh; margin: 0; padding: 36px 18px; background: var(--faro-paper); color: var(--faro-ink); font-family: Inter, Aptos, "Segoe UI", Arial, sans-serif; }
.legal-sheet { width: min(900px, 100%); margin: 0 auto; background: #fff; border: 1px solid var(--faro-line); border-top: 5px solid var(--faro-ink); border-radius: 6px; box-shadow: var(--faro-shadow); }
.legal-head { padding: 28px 30px 20px; border-bottom: 1px solid var(--faro-line); }
.legal-head a { display: inline-block; margin-bottom: 20px; color: var(--faro-muted); font-size: 10px; font-weight: 800; text-decoration: none; }
.legal-kicker { display: block; margin-bottom: 8px; color: var(--faro-amber); font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.legal-head h1 { margin: 0; font-size: 30px; }
.legal-head p { margin: 8px 0 0; color: var(--faro-muted); font-size: 12px; line-height: 1.5; }
.legal-content { padding: 26px 30px 32px; }
.legal-content section + section { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--faro-line); }
.legal-content h2 { margin: 0 0 9px; font-size: 15px; }
.legal-content p, .legal-content li { color: #48524f; font-size: 11px; line-height: 1.65; }
.legal-content ul { margin: 0; padding-left: 19px; }
.legal-content a { color: var(--faro-blue); font-weight: 750; }
.legal-claim { padding: 16px 18px; border-left: 4px solid var(--faro-amber); background: #fff8ee; color: #553719; font-size: 13px; font-weight: 750; line-height: 1.55; }
.legal-claim > span { display: block; margin-bottom: 4px; color: #8b5b23; font-size: 8px; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.legal-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 13px; }
.legal-meta div { padding: 10px; border: 1px solid var(--faro-line); background: #f8faf9; }
.legal-meta b, .legal-meta span { display: block; }
.legal-meta b { font-size: 9px; text-transform: uppercase; }
.legal-meta span { margin-top: 3px; color: var(--faro-muted); font-size: 10px; }
.legal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 15px; }
.legal-grid article { min-width: 0; padding: 14px; border: 1px solid var(--faro-line); border-top: 3px solid #81908b; background: #f8faf9; }
.legal-grid article:nth-child(2) { border-top-color: var(--faro-blue); }
.legal-grid article:nth-child(3) { border-top-color: var(--faro-amber); }
.legal-grid article:nth-child(4) { border-top-color: var(--faro-green); }
.legal-grid b { color: var(--faro-ink); font-size: 10px; text-transform: uppercase; }
.legal-grid p { margin: 6px 0 0; }
.legal-rules { display: grid; gap: 8px; padding: 0 !important; list-style: none; }
.legal-rules li { padding: 11px 13px; border-left: 3px solid #b5c0bc; background: #f8faf9; }
.legal-rules b { color: var(--faro-ink); }
.legal-evidence { display: grid; gap: 7px; margin: 14px 0 0; padding: 0; list-style: none; }
.legal-evidence li { display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: start; padding: 10px 0; border-bottom: 1px solid var(--faro-line); }
.legal-evidence li:last-child { border-bottom: 0; }
.legal-evidence > li > span { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid var(--faro-line); color: var(--faro-amber); font-size: 9px; font-weight: 850; }
.legal-evidence b { color: var(--faro-ink); font-size: 10px; text-transform: uppercase; }
.legal-evidence p { margin: 2px 0 0; }
.legal-sources { display: grid; gap: 8px; margin-top: 14px !important; padding: 0 !important; list-style: none; }
.legal-sources li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 13px 14px; border: 1px solid var(--faro-line); background: #f8faf9; }
.legal-sources b, .legal-sources span { display: block; }
.legal-sources b { color: var(--faro-ink); font-size: 10px; }
.legal-sources div > span { margin-top: 3px; color: var(--faro-muted); font-size: 10px; line-height: 1.5; }
.legal-sources a { white-space: nowrap; text-decoration: none; }
.legal-sources a span { display: inline; }
.legal-notice { padding: 18px; border: 1px solid #d7dfdc !important; background: #eef3f1; }
.legal-notice p:last-child { margin-bottom: 0; font-size: 10px; }

/* Coordinated visual system for the three operational modules. */
body.faro-operational {
  --ink: #10182b;
  --paper: #edf2fb;
  --cream: #e7edf8;
  --warm: #dce5f5;
  --muted: #53617a;
  --line: #bdc9df;
  --line2: #dbe3f0;
  --panel: #ffffff;
  --red: #b4233a;
  --green: #087f63;
  --blue: #194392;
  --amber: #8a5c00;
  --module-accent: #ffd447;
  --module-accent-strong: #f2ad00;
  --module-accent-ink: #10265a;
  --module-soft: #fff7d7;
  --module-rail: #194392;
  --module-rail-deep: #102e6b;
  --module-rail-copy: #dbe6ff;
  background: var(--paper) !important;
  color: var(--ink) !important;
  font-family: "Instrument Sans", Inter, Aptos, "Segoe UI", Arial, sans-serif !important;
}
body.faro-garawin {
  --ORO: #d79500;
  --ORO2: #b77900;
}
body.faro-cantiere {
  --module-accent: #2dd4ad;
  --module-accent-strong: #009878;
  --module-accent-ink: #073b3c;
  --module-soft: #e3faf4;
  --module-rail: #145777;
  --module-rail-deep: #0e3c5a;
  --module-rail-copy: #d9f4f1;
  --green: #087f63;
  --green2: #06654f;
  --gold: #009878;
  --gold2: #08745e;
}
body.faro-mog {
  --module-accent: #9ca8ff;
  --module-accent-strong: #5a63d8;
  --module-accent-ink: #20275f;
  --module-soft: #ecefff;
  --module-rail: #3d468f;
  --module-rail-deep: #252d68;
  --module-rail-copy: #e1e4ff;
  --gold: #5a63d8;
  --gold2: #424bb6;
  --purple: #5a63d8;
}

body.faro-operational #app { background: var(--paper); }
body.faro-operational #sb,
body.faro-operational #sidebar {
  width: 220px;
  background: var(--module-rail) !important;
  color: #fff !important;
  border-right: 1px solid var(--module-rail-deep) !important;
  scrollbar-color: rgba(255,255,255,.28) transparent;
}
body.faro-operational #sb::-webkit-scrollbar-track,
body.faro-operational #sidebar::-webkit-scrollbar-track { background: transparent; }
body.faro-operational #sb::-webkit-scrollbar-thumb,
body.faro-operational #sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.28); }
body.faro-operational .sb-logo,
body.faro-operational .sb-top {
  min-height: 82px;
  padding: 18px 16px 13px !important;
  border-bottom: 1px solid rgba(255,255,255,.16) !important;
}
body.faro-operational .sb-mark,
body.faro-operational .sb-logo-mark,
body.faro-operational .sb-brand {
  color: #fff !important;
  font-size: 25px !important;
  letter-spacing: 0 !important;
}
body.faro-operational .sb-sub,
body.faro-operational .sb-logo-sub,
body.faro-operational .sb-brand-sub {
  margin-top: 5px !important;
  color: var(--module-rail-copy) !important;
  letter-spacing: .14em !important;
}
body.faro-operational .sb-logo > div:last-child {
  border-top-color: rgba(255,255,255,.14) !important;
}
body.faro-operational .sb-logo > div:last-child div { color: var(--module-rail-copy) !important; }
body.faro-operational .sb-logo > div:last-child div:first-child { color: #fff !important; }
body.faro-operational .sb-user,
body.faro-operational .sb-azienda,
body.faro-operational .sb-project {
  background: var(--module-rail-deep) !important;
  color: #fff !important;
  border: 0 !important;
}
body.faro-operational .sb-user [style*="color:#aaa"],
body.faro-operational .sb-azienda [style*="color:#aaa"],
body.faro-operational .sb-project [style*="color:#aaa"] { color: var(--module-rail-copy) !important; }
body.faro-operational .sb-sect,
body.faro-operational .sb-section,
body.faro-operational .si-label {
  color: rgba(229,237,255,.7) !important;
  letter-spacing: .15em !important;
}
body.faro-operational .sb-div,
body.faro-operational .sb-divider {
  background: rgba(255,255,255,.14) !important;
}
body.faro-operational .si,
body.faro-operational .sb-item {
  min-height: 37px;
  color: var(--module-rail-copy) !important;
  border-left: 3px solid transparent !important;
  border-radius: 0 !important;
}
body.faro-operational .si:hover,
body.faro-operational .sb-item:hover {
  color: #fff !important;
  background: rgba(255,255,255,.1) !important;
}
body.faro-operational .si.active,
body.faro-operational .si.g.active,
body.faro-operational .si.r.active,
body.faro-operational .si.b.active,
body.faro-operational .si.o.active,
body.faro-operational .si.p.active,
body.faro-operational .sb-item.active,
body.faro-operational .sb-item.legal.active,
body.faro-operational .sb-item.safety.active,
body.faro-operational .sb-item.docs.active,
body.faro-operational .sb-item.bim.active {
  color: var(--module-accent-ink) !important;
  background: var(--module-accent) !important;
  border-left-color: var(--module-accent) !important;
}
body.faro-operational .sb-item[data-view="overview"] {
  margin-top: 7px !important;
  color: var(--module-rail-copy) !important;
  background: rgba(255,255,255,.08) !important;
  border-left-color: var(--module-accent) !important;
}
body.faro-operational .sb-item[data-view="overview"] span { color: inherit !important; }
body.faro-operational #sb a[href$=".html"],
body.faro-operational #sidebar a[href$=".html"] {
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  border-radius: 3px !important;
}
body.faro-operational #sb a[href$=".html"]:hover,
body.faro-operational #sidebar a[href$=".html"]:hover { background: rgba(255,255,255,.16) !important; }
body.faro-operational .faro-back-home {
  min-height: 38px;
  display: flex !important;
  align-items: center;
  gap: 8px;
  padding: 0 11px;
  color: #fff !important;
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
}

body.faro-operational .topbar {
  height: 58px !important;
  min-height: 58px !important;
  padding: 0 20px !important;
  background: var(--module-rail-deep) !important;
  color: #fff !important;
  border-bottom: 1px solid var(--module-rail-deep) !important;
}
body.faro-operational .tb-title,
body.faro-operational .topbar-title {
  color: #fff !important;
  font-size: 18px !important;
  letter-spacing: 0 !important;
}
body.faro-operational .topbar .rd-topbar-meta,
body.faro-operational .topbar .rd-topbar-meta > *,
body.faro-operational .topbar .topbar-status,
body.faro-operational .topbar .topbar-status > * {
  color: var(--module-rail-copy) !important;
}
body.faro-operational .topbar .badge {
  color: #064e3b !important;
  background: #d1fae5 !important;
  border-color: #6ee7b7 !important;
}
body.faro-operational .topbar .gw-cloud-status,
body.faro-operational .topbar .mog-cloud {
  color: #166534 !important;
  background: #f0fdf4 !important;
  border-color: #16a34a !important;
}
body.faro-operational .topbar .btn-gh {
  color: var(--module-accent-ink) !important;
  background: var(--module-soft) !important;
  border-color: var(--module-accent) !important;
}
body.faro-operational .rd-account-trigger {
  color: var(--module-accent-ink) !important;
  background: #fff !important;
  border-color: rgba(255,255,255,.55) !important;
}
body.faro-operational .rd-account-trigger:hover,
body.faro-operational .rd-account-trigger[aria-expanded="true"] {
  background: var(--module-soft) !important;
  border-color: var(--module-accent) !important;
}
body.faro-operational .rd-account-avatar { background: var(--module-rail-deep) !important; }
body.faro-operational #cs-menu-toggle {
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.28) !important;
}

body.faro-operational .content {
  padding: 22px 24px 32px !important;
  background: var(--paper) !important;
}
body.faro-operational .sh {
  position: relative;
  align-items: center !important;
  padding: 4px 0 4px 14px;
  margin-bottom: 18px !important;
  border-left: 5px solid var(--module-accent-strong);
}
body.faro-operational .st {
  color: var(--ink) !important;
  font-size: 30px !important;
  letter-spacing: 0 !important;
}
body.faro-operational .ss { color: var(--muted) !important; }
body.faro-operational .card,
body.faro-operational .panel,
body.faro-operational .kpi,
body.faro-operational .gara-card {
  background: #fff !important;
  border-color: var(--line) !important;
  border-radius: 3px !important;
  box-shadow: none !important;
}
body.faro-operational .kpi { border-top: 4px solid var(--module-accent-strong) !important; }
body.faro-operational .kl { color: var(--muted) !important; }
body.faro-operational .kv { color: var(--ink) !important; }
body.faro-operational .tbl th {
  color: var(--module-accent-ink) !important;
  background: var(--module-soft) !important;
  border-bottom-color: var(--line) !important;
}
body.faro-operational .tbl td { border-bottom-color: var(--line2) !important; }
body.faro-operational .tbl tr:hover td { background: color-mix(in srgb, var(--module-soft) 48%, #fff) !important; }
body.faro-operational .btn,
body.faro-operational button { border-radius: 3px !important; }
body.faro-operational .btn-ink { background: var(--module-rail-deep) !important; color: #fff !important; }
body.faro-operational .btn-oro,
body.faro-operational .btn-g,
body.faro-operational .btn-b {
  background: var(--module-accent-strong) !important;
  color: #fff !important;
}
body.faro-operational .btn-gh {
  color: var(--module-rail-deep) !important;
  background: #fff !important;
  border-color: var(--line) !important;
}
body.faro-operational input,
body.faro-operational select,
body.faro-operational textarea {
  background: #fff !important;
  border-color: var(--line) !important;
  border-radius: 3px !important;
}
body.faro-operational input:focus,
body.faro-operational select:focus,
body.faro-operational textarea:focus {
  border-color: var(--module-accent-strong) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--module-accent) 25%, transparent);
}
body.faro-operational .modal {
  background: #fff !important;
  border-color: var(--module-rail-deep) !important;
  border-top: 5px solid var(--module-accent-strong) !important;
  border-radius: 3px !important;
  box-shadow: 0 22px 60px rgba(16,46,107,.24) !important;
}
body.faro-operational .mhd,
body.faro-operational .modal-head { background: var(--module-soft) !important; }
body.faro-operational .mfoot,
body.faro-operational .modal-foot { background: #f6f8fc !important; }
body.faro-operational .prog { background: var(--line2) !important; }

@media (max-width: 820px) {
  body.faro-operational #sb {
    width: 100%;
    background: var(--module-rail) !important;
    border-right: 0 !important;
    border-bottom-color: var(--module-rail-deep) !important;
  }
  body.faro-operational #sidebar {
    width: min(86vw, 290px);
    background: var(--module-rail) !important;
  }
  body.faro-operational #sb .si.active,
  body.faro-operational #sb .si.g.active,
  body.faro-operational #sb .si.r.active,
  body.faro-operational #sb .si.b.active,
  body.faro-operational #sb .si.o.active,
  body.faro-operational #sb .si.p.active {
    color: var(--module-accent-ink) !important;
    border-bottom-color: var(--module-accent) !important;
  }
  body.faro-mog #app {
    height: auto;
    min-height: 100vh;
    flex-direction: row;
    overflow: visible;
  }
  body.faro-mog #sb {
    width: min(86vw, 244px);
    height: auto;
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    overflow-x: hidden;
    overflow-y: auto;
    border-right: 1px solid var(--module-rail-deep) !important;
    border-bottom: 0 !important;
  }
  body.faro-mog #sb .si,
  body.faro-mog #sb .si.active,
  body.faro-mog #sb .si.g.active,
  body.faro-mog #sb .si.r.active,
  body.faro-mog #sb .si.b.active,
  body.faro-mog #sb .si.o.active,
  body.faro-mog #sb .si.p.active {
    border-bottom: 0 !important;
  }
  body.faro-mog #main {
    width: 100%;
    min-width: 0;
  }
  body.faro-operational .topbar {
    height: 52px !important;
    min-height: 52px !important;
    padding: 0 10px !important;
  }
  body.faro-operational .content { padding: 16px 12px calc(78px + env(safe-area-inset-bottom)) !important; }
  body.faro-operational .st { font-size: 26px !important; }
}

@media (max-width: 1060px) {
  .faro-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .faro-modules, .tender-grid, .ops-grid { grid-template-columns: 1fr; }
  .faro-signal { grid-template-columns: repeat(2, 1fr); }
  .faro-signal-intro { grid-column: 1 / -1; }
  .faro-signal-item:nth-child(even) { border-left: 0; }
}
@media (max-width: 820px) {
  .faro-layout { display: block; }
  .faro-rail { display: none; }
  .top.faro-top { height: 52px; padding: 0 12px; }
  .faro-live { display: none; }
  .faro-main { padding: 16px 12px calc(82px + env(safe-area-inset-bottom)); }
  .faro-heading { display: block; }
  .faro-date { margin-top: 8px; }
  .faro-modules { grid-template-columns: 1fr; }
  .faro-module { min-height: 276px; }
  .faro-signal { grid-template-columns: 1fr 1fr; }
  .faro-signal-intro { grid-column: 1 / -1; }
  .faro-band-head { align-items: flex-start; }
  .doc-toolbar { grid-template-columns: 1fr; }
  .doc-table-wrap { max-height: 62vh; overflow-x: hidden; padding: 8px; }
  .doc-table thead { display: none; }
  .doc-table, .doc-table tbody, .doc-table tr, .doc-table td { display: block; width: 100%; }
  .doc-table tr { margin-bottom: 8px; padding: 8px 10px; border: 1px solid var(--faro-line); border-radius: 4px; }
  .doc-table td { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border: 0; border-bottom: 1px solid #edf0ef; }
  .doc-table td:before { content: attr(data-label); flex: none; color: var(--faro-muted); font-size: 8px; font-weight: 850; text-transform: uppercase; }
  .doc-table td:last-child { border-bottom: 0; }
  .doc-table td[colspan] { display: block; }
  .doc-table td[colspan]:before { content: ""; }
  .faro-legal-note { align-items: flex-start; }
}
@media (max-width: 480px) {
  .faro-module-metrics { grid-template-columns: 1fr; }
  .faro-module-metrics div + div { border-left: 0; border-top: 1px solid var(--faro-line); }
  .faro-signal { grid-template-columns: 1fr; }
  .faro-signal-intro { grid-column: auto; }
  .faro-signal-item { border-left: 0; border-top: 1px solid var(--faro-line); }
  .faro-band-head { display: block; }
  .backend-pill { display: inline-flex; margin-top: 8px; }
  .tender-meta, .op-meta { grid-template-columns: 1fr; }
  .faro-legal-note { display: block; }
  .faro-legal-note a { display: inline-block; margin-top: 7px; }
  .legal-page { padding: 12px; }
  .legal-head, .legal-content { padding-left: 18px; padding-right: 18px; }
  .legal-meta, .legal-grid { grid-template-columns: 1fr; }
  .legal-sources li { grid-template-columns: 1fr; gap: 8px; }
}

/* --------------------------------------------------------------------------
   NEEMIA RSF 2.7 - Deep Sea / Gold
   Visual layer only: no component behavior or application flow is changed.
   -------------------------------------------------------------------------- */
:root {
  --faro-ink: #f2eee5;
  --faro-ink-soft: #d7c18f;
  --faro-paper: #06131d;
  --faro-panel: #0c1f2d;
  --faro-panel-raised: #102838;
  --faro-muted: #95a7b2;
  --faro-line: #294454;
  --faro-line-strong: #456172;
  --faro-red: #d66f66;
  --faro-amber: #c9a45c;
  --faro-green: #4ba98c;
  --faro-blue: #77aabd;
  --faro-violet: #9b8ab2;
  --faro-gold: #c9a45c;
  --faro-gold-pale: #e3c98e;
  --faro-shadow: 0 22px 60px rgba(0, 7, 12, .34);
}

html { background: #06131d; }
body.faro-home {
  --faro-ink: #f2eee5;
  --faro-ink-soft: #e3c98e;
  --faro-paper: #06131d;
  --faro-panel: #0c1f2d;
  --faro-muted: #95a7b2;
  --faro-line: #294454;
  --faro-line-strong: #456172;
  --faro-amber: #c9a45c;
  --faro-green: #4ba98c;
  --faro-blue: #77aabd;
  --faro-violet: #9b8ab2;
  --faro-sidebar: 206px;
  background: #06131d;
  color: var(--faro-ink);
}

body.faro-home *,
body.faro-operational *,
.legal-page * {
  letter-spacing: 0 !important;
}

.faro-layout { background: #06131d; }
.faro-rail {
  background: #071722;
  color: var(--faro-ink);
  border-right: 1px solid rgba(201, 164, 92, .28);
  box-shadow: 14px 0 36px rgba(0, 7, 12, .16);
}
.faro-brand {
  min-height: 92px;
  padding: 22px 19px 16px;
  border-bottom: 1px solid rgba(201, 164, 92, .23);
}
.faro-brand strong {
  color: #f5f1e8;
  font-size: 31px;
  font-weight: 800;
}
.faro-brand strong span { color: var(--faro-gold-pale); }
.faro-brand small {
  margin-top: 8px;
  color: #889eaa;
  font-size: 8px;
}
.faro-company {
  padding: 16px 19px;
  border-bottom: 1px solid rgba(201, 164, 92, .14);
}
.faro-company b { color: #e9e5dc; font-size: 11px; font-weight: 700; }
.faro-company span { margin-top: 6px; color: #8599a5; line-height: 1.55; }
.faro-nav { gap: 4px; padding: 14px 9px; }
.faro-nav-label { padding: 13px 10px 6px; color: #6f8795; font-size: 8px; }
.faro-nav a {
  min-height: 42px;
  padding: 0 10px;
  border-left: 2px solid transparent;
  color: #aebbc2;
  font-weight: 650;
}
.faro-nav a:hover {
  background: #0d2230;
  color: #f3efe7;
}
.faro-nav a[aria-current="page"] {
  border-left-color: var(--faro-gold);
  background: #102838;
  color: var(--faro-gold-pale);
}
.faro-nav a[aria-current="page"] .faro-nav-mark {
  border-color: var(--faro-gold);
  color: var(--faro-gold-pale);
  background: rgba(201, 164, 92, .08);
}
.faro-nav-mark {
  border-color: #35505f;
  border-radius: 3px;
  color: #90a3ad;
  background: #091a25;
}
.faro-rail-foot {
  border-top: 1px solid rgba(201, 164, 92, .17);
  color: #738b98;
}

.faro-workspace { background: #07151f; }
.top.faro-top {
  height: 64px;
  padding: 0 28px;
  background: #081a27;
  color: #f2eee5;
  border-bottom: 1px solid rgba(201, 164, 92, .25);
  box-shadow: 0 12px 34px rgba(0, 7, 12, .18);
}
.faro-top-title b { color: #f2eee5; font-size: 13px; font-weight: 750; }
.faro-top-title span { margin-top: 3px; color: #8398a5; }
.faro-live { color: #71bea5; }
.faro-live.error { color: var(--faro-gold-pale); }

.faro-main { padding: 30px; }
.faro-heading {
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(201, 164, 92, .18);
}
.faro-eyebrow { margin-bottom: 8px; color: var(--faro-gold); }
.faro-heading h1 {
  color: #f4f0e7;
  font-size: 34px;
  font-weight: 780;
  text-transform: none;
}
.faro-heading p { margin-top: 9px; color: #93a5af; font-size: 12px; }
.faro-date { color: #8498a4; }

.faro-modules { gap: 14px; }
.faro-module {
  min-height: 326px;
  padding: 21px;
  background: #0c1f2d;
  border: 1px solid #294454;
  border-top: 2px solid var(--module-accent);
  border-radius: 5px;
  box-shadow: 0 18px 44px rgba(0, 7, 12, .22);
}
.faro-module.gare { --module-accent: #c9a45c; }
.faro-module.cantieri { --module-accent: #5ba88f; }
.faro-module.mog { --module-accent: #9b8ab2; }
.faro-module-code { color: var(--module-accent); font-weight: 750; }
.faro-module h2 { margin-top: 6px; color: #f4f0e8; font-size: 23px; font-weight: 730; }
.faro-module-state {
  padding: 5px 8px;
  border-color: #355160;
  background: #0a1924;
  color: #75bda5;
}
.faro-module p { color: #91a3ae; }
.faro-module-meta span {
  border-color: #2b4757;
  background: #091a25;
  color: #9cafb9;
}
.faro-module-metrics { border-color: #2b4757; background: #091a25; }
.faro-module-metrics div,
.faro-module.gare .faro-module-metrics div,
.faro-module.cantieri .faro-module-metrics div,
.faro-module.mog .faro-module-metrics div {
  background: #0a1b27;
}
.faro-module-metrics div + div { border-left-color: #2b4757; }
.faro-module-metrics b { color: #f0ece3; font-size: 20px; font-weight: 720; }
.faro-module-metrics span { color: #8196a2; }
.faro-module-alert {
  border-left-color: #4b6370;
  background: #0a1a25;
  color: #9aacb5;
}
.faro-module-alert.good {
  border-left-color: #4ba98c;
  background: #0b2928;
  color: #86cdb6;
}
.faro-module-alert.warning {
  border-left-color: #c9a45c;
  background: #2b2518;
  color: #e0c98f;
}
.faro-module-alert.error {
  border-left-color: #d66f66;
  background: #301d20;
  color: #e4a09a;
}
.faro-open {
  min-height: 38px;
  border: 1px solid #c9a45c;
  border-radius: 3px;
  background: #c9a45c;
  color: #08141d;
  font-weight: 850;
}
.faro-open:hover { background: #e0c483; color: #07131c; }
.faro-module-actions small { color: #758c99; }

.faro-signal {
  margin-top: 14px;
  background: #0b1d2a;
  border-color: #294454;
  border-radius: 5px;
}
.faro-signal-intro {
  background: #102938;
  color: #e7d39f;
  border-right: 1px solid rgba(201, 164, 92, .26);
}
.faro-signal-intro span { color: #91a3ad; }
.faro-signal-item { border-left-color: #294454; }
.faro-signal-item b { color: #d9e0e1; }
.faro-signal-item span { color: #8398a4; }
.faro-signal-item.good b { color: #72bea5; }
.faro-signal-item.warning b { color: #d5b66f; }

.faro-band,
.owner-band {
  background: #0c1f2d;
  border-color: #294454;
  border-radius: 5px;
  box-shadow: 0 18px 44px rgba(0, 7, 12, .16);
}
.faro-band-head,
.owner-band-head { border-bottom-color: #294454; }
.faro-band-head h2,
.owner-band-head h2 { color: #f1ede4; }
.faro-band-head p,
.owner-band-head p { color: #8fa2ad; }
.backend-pill {
  border-color: #355160;
  background: #091a25;
  color: #9aabb4;
}
.tender-card,
.op-card {
  border-color: #294454;
  background: #0a1b27;
}
.tender-card h3,
.op-top h3 { color: #efebe3; }
.tender-card p,
.op-body p { color: #8fa2ad; }
.tender-meta span,
.op-meta span {
  border-color: #284554;
  background: #081923;
  color: #8499a5;
}
.tender-meta b,
.op-meta b { color: #e7e4dd; }
.risk.high { color: #e49b95; background: #2b1b1e; border-color: #77464a; }
.risk.medium,
.op-state { color: #dfc27e; background: #292316; border-color: #6d5a31; }
.risk.low { color: #80c6af; background: #0c2826; border-color: #316a5c; }
.tender-docs,
.op-actions button,
.doc-row-actions button,
.retry {
  border-color: #49616d;
  background: #0a1a25;
  color: #dfe4e3;
}
.tender-docs,
.op-actions button:first-child,
.doc-row-actions button:first-child {
  border-color: #c9a45c;
  background: #c9a45c;
  color: #07141e;
}
.op-list li { border-left-color: #4b6573; background: #091a25; color: #aab8bf; }
.op-list li.block { border-left-color: #d66f66; background: #2c1b1e; color: #e4a29c; }
.op-section h4 { color: #8fa2ad; }

.doc-archive { border-top-color: #294454; }
.doc-toolbar {
  background: #091a25;
  border-bottom-color: #294454;
}
.doc-toolbar select,
.doc-toolbar input {
  border-color: #3b5665;
  background: #071722;
  color: #edf0ed;
}
.doc-table th {
  background: #102838;
  color: #d6c28f;
}
.doc-table td { border-top-color: #213b4a; color: #dbe1df; }
.doc-table tr:hover td { background: #102736; }
.doc-table .mono { color: #8298a4; }
.doc-summary { border-top-color: #294454; }
.doc-summary span { border-color: #355160; color: #91a4ae; }
.state { color: #8fa2ad; }
.state b { color: #ece9e2; }
.skel { background: #173142; }
.skel:after { display: none; }

.faro-legal-note {
  border-color: #294454;
  background: #091a25;
  color: #899da8;
}
.faro-legal-note a { color: #ddc585; }

/* Legal page keeps document structure while adopting the suite identity. */
.legal-page {
  background: #06131d;
  color: #f2eee5;
}
.legal-sheet {
  background: #0c1f2d;
  border-color: #294454;
  border-top-color: #c9a45c;
  box-shadow: 0 24px 70px rgba(0, 7, 12, .38);
}
.legal-head,
.legal-content section + section { border-color: #294454; }
.legal-head a,
.legal-head p,
.legal-content p,
.legal-content li { color: #9aabb4; }
.legal-head h1,
.legal-content h2 { color: #f2eee5; }
.legal-kicker { color: #c9a45c; }
.legal-claim {
  border-left-color: #c9a45c;
  background: #16283a;
  color: #ead9ae;
}
.legal-claim > span { color: #c9a45c; }
.legal-meta div,
.legal-grid article,
.legal-rules li,
.legal-sources li {
  border-color: #294454;
  background: #091a25;
}
.legal-meta b,
.legal-grid b,
.legal-rules b,
.legal-evidence b,
.legal-sources b { color: #eae7df; }
.legal-meta span,
.legal-sources div > span { color: #8da0aa; }
.legal-content a { color: #e0c582; }
.legal-evidence li { border-bottom-color: #294454; }
.legal-evidence > li > span { border-color: #3a5665; color: #d6b86d; }
.legal-notice {
  border-color: #345160 !important;
  background: #102838;
}

/* The three modules share one architectural language and retain a quiet cue. */
body.faro-operational {
  --ink: #f2eee5;
  --paper: #06131d;
  --cream: #102838;
  --warm: #173142;
  --muted: #95a7b2;
  --line: #294454;
  --line2: #1c3544;
  --panel: #0c1f2d;
  --red: #d66f66;
  --green: #4ba98c;
  --blue: #77aabd;
  --amber: #d2ab60;
  --purple: #9b8ab2;
  --module-accent: #c9a45c;
  --module-accent-strong: #c9a45c;
  --module-accent-ink: #07141d;
  --module-soft: #162a38;
  --module-rail: #071722;
  --module-rail-deep: #06131d;
  --module-rail-copy: #9fb0b9;
  background: #06131d !important;
  color: #f2eee5 !important;
}
body.faro-garawin {
  --ORO: #c9a45c;
  --ORO2: #e0c483;
  --module-secondary: #77aabd;
}
body.faro-cantiere {
  --module-secondary: #4ba98c;
  --gold: #c9a45c;
  --gold2: #a98341;
  --green: #4ba98c;
  --green2: #378a72;
  --module-accent: #c9a45c;
  --module-accent-strong: #c9a45c;
  --module-accent-ink: #07141d;
  --module-soft: #132d35;
  --module-rail: #071922;
  --module-rail-deep: #06131d;
  --module-rail-copy: #9eb4b4;
}
body.faro-mog {
  --module-secondary: #9b8ab2;
  --gold: #c9a45c;
  --gold2: #a98341;
  --purple: #9b8ab2;
  --module-accent: #c9a45c;
  --module-accent-strong: #c9a45c;
  --module-accent-ink: #07141d;
  --module-soft: #1c2938;
  --module-rail: #091824;
  --module-rail-deep: #06131d;
  --module-rail-copy: #a9acb8;
}
body.faro-operational #app { background: #06131d; }
body.faro-operational #sb,
body.faro-operational #sidebar {
  width: 224px;
  background: #071722 !important;
  border-right: 1px solid rgba(201, 164, 92, .28) !important;
  box-shadow: 14px 0 36px rgba(0, 7, 12, .2);
}
body.faro-operational .sb-logo,
body.faro-operational .sb-top {
  min-height: 90px;
  padding: 22px 17px 15px !important;
  border-bottom-color: rgba(201, 164, 92, .22) !important;
}
body.faro-operational .sb-mark,
body.faro-operational .sb-logo-mark,
body.faro-operational .sb-brand {
  color: #f3efe7 !important;
  font-size: 25px !important;
  font-weight: 700 !important;
}
body.faro-operational .sb-sub,
body.faro-operational .sb-logo-sub,
body.faro-operational .sb-brand-sub {
  color: #c9a45c !important;
}
body.faro-operational .sb-user,
body.faro-operational .sb-azienda,
body.faro-operational .sb-project {
  background: #0b202d !important;
  color: #e9e5dd !important;
  border-bottom: 1px solid #223d4c !important;
}
body.faro-operational .sb-user [style*="color:#aaa"],
body.faro-operational .sb-azienda [style*="color:#aaa"],
body.faro-operational .sb-project [style*="color:#aaa"] { color: #8da1ac !important; }
body.faro-operational .sb-sect,
body.faro-operational .sb-section,
body.faro-operational .si-label { color: #687f8c !important; }
body.faro-operational .sb-div,
body.faro-operational .sb-divider { background: #213c4a !important; }
body.faro-operational .si,
body.faro-operational .sb-item {
  min-height: 39px;
  color: #9cafb8 !important;
  border-left-width: 2px !important;
}
body.faro-operational .si:hover,
body.faro-operational .sb-item:hover {
  color: #f0ece4 !important;
  background: #0d2331 !important;
}
body.faro-operational .si.active,
body.faro-operational .si.g.active,
body.faro-operational .si.r.active,
body.faro-operational .si.b.active,
body.faro-operational .si.o.active,
body.faro-operational .si.p.active,
body.faro-operational .sb-item.active,
body.faro-operational .sb-item.legal.active,
body.faro-operational .sb-item.safety.active,
body.faro-operational .sb-item.docs.active,
body.faro-operational .sb-item.bim.active {
  color: #e7d39f !important;
  background: #102838 !important;
  border-left-color: #c9a45c !important;
}
body.faro-operational .sb-item[data-view="overview"] {
  color: #d6c38f !important;
  background: #0d2331 !important;
  border-left-color: #c9a45c !important;
}
body.faro-operational #sb a[href$=".html"],
body.faro-operational #sidebar a[href$=".html"] {
  color: #dfd9cc !important;
  background: #0a1d29 !important;
  border-color: #385362 !important;
}
body.faro-operational #sb a[href$=".html"]:hover,
body.faro-operational #sidebar a[href$=".html"]:hover {
  color: #f1dfb5 !important;
  background: #102838 !important;
  border-color: #8e7646 !important;
}
body.faro-operational .faro-back-home { color: #e3ca8c !important; }

body.faro-operational .topbar {
  height: 62px !important;
  min-height: 62px !important;
  padding: 0 24px !important;
  background: #081a27 !important;
  color: #f2eee5 !important;
  border-bottom: 1px solid rgba(201, 164, 92, .25) !important;
  box-shadow: 0 12px 34px rgba(0, 7, 12, .18);
}
body.faro-operational .tb-title,
body.faro-operational .topbar-title {
  color: #f2eee5 !important;
  font-size: 18px !important;
}
body.faro-operational .topbar .rd-topbar-meta,
body.faro-operational .topbar .rd-topbar-meta > *,
body.faro-operational .topbar .topbar-status,
body.faro-operational .topbar .topbar-status > * { color: #8fa4af !important; }
body.faro-operational .topbar .badge,
body.faro-operational .topbar .gw-cloud-status,
body.faro-operational .topbar .mog-cloud {
  color: #8dd2ba !important;
  background: #0b2928 !important;
  border-color: #316a5c !important;
}
body.faro-operational .topbar .btn-gh {
  color: #e1ca91 !important;
  background: #102838 !important;
  border-color: #826c42 !important;
}
body.faro-operational .rd-account-trigger {
  color: #e6dfd2 !important;
  background: #102838 !important;
  border-color: #3a5665 !important;
}
body.faro-operational .rd-account-trigger:hover,
body.faro-operational .rd-account-trigger[aria-expanded="true"] {
  background: #193345 !important;
  border-color: #c9a45c !important;
}
body.faro-operational .rd-account-avatar {
  background: #c9a45c !important;
  color: #07141d !important;
}
body.faro-operational #cs-menu-toggle {
  color: #e6dfd2 !important;
  background: #102838 !important;
  border-color: #3a5665 !important;
}
body.faro-operational .mog-mobile-menu {
  color: #e6dfd2 !important;
  background: #102838 !important;
  border: 1px solid #3a5665 !important;
}
body.faro-operational .mog-mobile-menu:hover,
body.faro-operational .mog-mobile-menu[aria-expanded="true"] {
  color: #e0c483 !important;
  background: #193345 !important;
  border-color: #c9a45c !important;
}

body.faro-operational .content {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  padding: 28px 30px 38px !important;
  background: #07151f !important;
}
body.faro-operational #main {
  min-width: 0;
  min-height: 0;
}
body.faro-garawin .gw-score-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}
body.faro-garawin .gw-score-item {
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid #294454;
  border-radius: 3px;
  background: #102838;
  color: #c6d0d2;
  font-size: 10px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
body.faro-garawin .gw-score-item span { color: currentColor !important; }
body.faro-garawin .gw-score-ok {
  border-color: #316a5c;
  background: #0b2928;
  color: #8dd2ba;
}
body.faro-garawin .gw-score-warn {
  border-color: #725f35;
  background: #2a2417;
  color: #dec789;
}
body.faro-garawin .gw-score-no {
  border-color: #77464a;
  background: #2d1c1f;
  color: #e3a29c;
}
body.faro-operational .sh,
body.faro-operational .section-hd {
  align-items: center !important;
  padding: 5px 0 5px 15px;
  margin-bottom: 22px !important;
  border-left: 2px solid #c9a45c;
}
body.faro-operational .st,
body.faro-operational .section-title {
  color: #f3efe7 !important;
  font-size: 30px !important;
  font-weight: 650 !important;
}
body.faro-operational .ss,
body.faro-operational .section-sub { color: #8fa2ad !important; }
body.faro-operational .card,
body.faro-operational .panel,
body.faro-operational .kpi,
body.faro-operational .gara-card,
body.faro-operational .tbl-wrap,
body.faro-operational .tbl-w,
body.faro-operational .risk-panel,
body.faro-operational .risk-box {
  background: #0c1f2d !important;
  border-color: #294454 !important;
  border-radius: 5px !important;
  box-shadow: 0 16px 38px rgba(0, 7, 12, .16) !important;
  color: #dfe4e2 !important;
}
body.faro-operational .kpi {
  border-top: 2px solid #c9a45c !important;
}
body.faro-operational .kl,
body.faro-operational .kpi-label { color: #8fa2ad !important; }
body.faro-operational .kv,
body.faro-operational .kpi-value { color: #f1ede5 !important; font-weight: 650 !important; }
body.faro-operational .ks,
body.faro-operational .kpi-sub { color: #7f95a1 !important; }
body.faro-operational .tbl th {
  color: #d9c58f !important;
  background: #102838 !important;
  border-bottom-color: #3b5665 !important;
}
body.faro-operational .tbl td {
  color: #d8dfde !important;
  border-bottom-color: #1f3948 !important;
}
body.faro-operational .tbl tr:hover td { background: #102736 !important; }
body.faro-operational .tbl tfoot td { background: #102838 !important; }

body.faro-operational .btn,
body.faro-operational button { border-radius: 3px !important; }
body.faro-operational .btn-ink,
body.faro-operational .btn-oro,
body.faro-operational .btn-gold,
body.faro-operational .btn-o {
  background: #c9a45c !important;
  border-color: #c9a45c !important;
  color: #07141d !important;
}
body.faro-operational .btn-g,
body.faro-operational .btn-green { background: #378a72 !important; color: #fff !important; }
body.faro-operational .btn-b,
body.faro-operational .btn-blue { background: #3f7087 !important; color: #fff !important; }
body.faro-operational .btn-p { background: #786b91 !important; color: #fff !important; }
body.faro-operational .btn-r,
body.faro-operational .btn-red { background: #a84f4a !important; color: #fff !important; }
body.faro-operational .btn-gh,
body.faro-operational .btn-ghost,
body.faro-operational .btn-out,
body.faro-operational .btn-outline {
  color: #d9dedc !important;
  background: #0a1a25 !important;
  border-color: #49616d !important;
}
body.faro-operational .btn-gh:hover,
body.faro-operational .btn-ghost:hover,
body.faro-operational .btn-out:hover,
body.faro-operational .btn-outline:hover {
  color: #f0dca9 !important;
  background: #102838 !important;
  border-color: #c9a45c !important;
}

body.faro-operational input,
body.faro-operational select,
body.faro-operational textarea {
  background: #081923 !important;
  border-color: #3a5665 !important;
  color: #eef0ed !important;
}
body.faro-operational input::placeholder,
body.faro-operational textarea::placeholder { color: #718692 !important; }
body.faro-operational input:focus,
body.faro-operational select:focus,
body.faro-operational textarea:focus {
  border-color: #c9a45c !important;
  box-shadow: 0 0 0 2px rgba(201, 164, 92, .16) !important;
}
body.faro-operational .fl { color: #9aabb4 !important; }
body.faro-operational option { background: #0c1f2d; color: #eef0ed; }

body.faro-operational .modal-bg { background: rgba(1, 8, 13, .82) !important; }
body.faro-operational .modal {
  background: #0c1f2d !important;
  border: 1px solid #566d79 !important;
  border-top: 2px solid #c9a45c !important;
  border-radius: 5px !important;
  box-shadow: 0 30px 90px rgba(0, 4, 8, .65) !important;
  color: #e8e7e1 !important;
}
body.faro-operational .mhd,
body.faro-operational .modal-hd,
body.faro-operational .modal-head {
  background: #102838 !important;
  border-bottom-color: #355160 !important;
}
body.faro-operational .mht,
body.faro-operational .modal-ht { color: #f1ede5 !important; }
body.faro-operational .mx,
body.faro-operational .modal-x { color: #aab7bd !important; }
body.faro-operational .mfoot,
body.faro-operational .modal-foot {
  background: #091a25 !important;
  border-top-color: #294454 !important;
}

body.faro-operational .badge,
body.faro-operational .bgr {
  border-color: #3a5665 !important;
  background: #102838 !important;
  color: #aebbc2 !important;
}
body.faro-operational .bg {
  border-color: #316a5c !important;
  background: #0b2928 !important;
  color: #83cbb3 !important;
}
body.faro-operational .br {
  border-color: #77464a !important;
  background: #2d1c1f !important;
  color: #e39b95 !important;
}
body.faro-operational .ba,
body.faro-operational .bo {
  border-color: #725f35 !important;
  background: #2a2417 !important;
  color: #dec27e !important;
}
body.faro-operational .bb {
  border-color: #3f6576 !important;
  background: #102a38 !important;
  color: #9bc6d7 !important;
}
body.faro-operational .bp {
  border-color: #5e536d !important;
  background: #251f31 !important;
  color: #c0b0d1 !important;
}
body.faro-operational .bk { background: #06131d !important; color: #dfd8ca !important; }

body.faro-operational .alert {
  border-radius: 3px !important;
  color: #b9c4c8 !important;
}
body.faro-operational .alert-r,
body.faro-operational .alert-red {
  border-left-color: #d66f66 !important;
  background: #2d1c1f !important;
  color: #e3a29c !important;
}
body.faro-operational .alert-a,
body.faro-operational .alert-amber {
  border-left-color: #c9a45c !important;
  background: #2a2417 !important;
  color: #dec789 !important;
}
body.faro-operational .alert-g,
body.faro-operational .alert-green {
  border-left-color: #4ba98c !important;
  background: #0b2928 !important;
  color: #85cbb5 !important;
}
body.faro-operational .alert-b,
body.faro-operational .alert-blue {
  border-left-color: #77aabd !important;
  background: #102a38 !important;
  color: #a2c8d5 !important;
}
body.faro-operational .alert-p {
  border-left-color: #9b8ab2 !important;
  background: #251f31 !important;
  color: #c2b3d1 !important;
}
body.faro-operational .prog { background: #1a3443 !important; }
body.faro-operational .doc-pill { background: #102838 !important; border-color: #3a5665 !important; }
body.faro-operational .risk-bd { background: #0c1f2d !important; color: #ccd4d4 !important; }
body.faro-operational .step-todo { background: #102838 !important; color: #91a4ae !important; border-color: #3a5665 !important; }
body.faro-operational .step-active { background: #c9a45c !important; color: #07141d !important; }
body.faro-operational .doc-tpl {
  background: #f0ede5 !important;
  border-color: #a99362 !important;
  color: #172630 !important;
  box-shadow: 0 18px 44px rgba(0, 7, 12, .28) !important;
}
body.faro-operational .doc-tpl h4 { border-bottom-color: #17313f !important; color: #172630 !important; }
body.faro-operational .fe { border-bottom-color: #9f7d38 !important; background: #fff8e7 !important; color: #563f10 !important; }
body.faro-operational #login-screen { background: #06131d !important; }
body.faro-operational .login-box {
  background: #0c1f2d !important;
  border: 1px solid #566d79 !important;
  border-top: 2px solid #c9a45c !important;
  color: #f2eee5 !important;
}

body.faro-operational,
body.faro-home {
  scrollbar-color: #456172 #07151f;
}
body.faro-operational ::-webkit-scrollbar-track,
body.faro-home ::-webkit-scrollbar-track { background: #07151f; }
body.faro-operational ::-webkit-scrollbar-thumb,
body.faro-home ::-webkit-scrollbar-thumb { background: #456172; }

@media (max-width: 1060px) {
  .faro-main { padding: 24px 20px; }
  .faro-heading h1 { font-size: 31px; }
}

@media (max-width: 820px) {
  .top.faro-top {
    height: 56px;
    padding: 0 14px;
    border-bottom-color: rgba(201, 164, 92, .28);
  }
  .faro-main { padding: 18px 13px calc(86px + env(safe-area-inset-bottom)); }
  .faro-heading {
    margin-bottom: 16px;
    padding-bottom: 16px;
  }
  .faro-heading h1 { font-size: 28px; line-height: 1.08; }
  .faro-module { min-height: 0; padding: 18px; }
  .faro-module p { min-height: 0; }
  .faro-module-actions { margin-top: 18px; }
  .faro-open { min-height: 42px; }
  .faro-signal-item:nth-child(even) { border-left-color: #294454; }
  .doc-table tr { border-color: #294454; background: #091a25; }
  .doc-table td { border-bottom-color: #213b4a; }

  body.faro-operational #sb {
    background: #071722 !important;
    border-bottom: 1px solid rgba(201, 164, 92, .28) !important;
  }
  body.faro-operational #sidebar { background: #071722 !important; }
  body.faro-operational #sb .si.active,
  body.faro-operational #sb .si.g.active,
  body.faro-operational #sb .si.r.active,
  body.faro-operational #sb .si.b.active,
  body.faro-operational #sb .si.o.active,
  body.faro-operational #sb .si.p.active {
    color: #e7d39f !important;
    border-bottom-color: #c9a45c !important;
  }
  body.faro-operational .topbar {
    height: 56px !important;
    min-height: 56px !important;
    padding: 0 12px !important;
  }
  body.faro-operational .content {
    padding: 18px 12px calc(84px + env(safe-area-inset-bottom)) !important;
  }
  body.faro-garawin .gw-score-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.faro-operational .sh,
  body.faro-operational .section-hd {
    padding-left: 11px;
    margin-bottom: 18px !important;
  }
  body.faro-operational .st,
  body.faro-operational .section-title { font-size: 26px !important; }
  body.faro-operational .modal-bg {
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
    align-items: flex-end;
  }
  body.faro-operational .modal {
    max-height: calc(100dvh - 16px) !important;
    border-radius: 5px 5px 0 0 !important;
  }
  body.faro-operational .mhd,
  body.faro-operational .modal-hd { padding: 13px 15px !important; }
  body.faro-operational .mbody,
  body.faro-operational .modal-body { padding: 16px 15px !important; }
  body.faro-operational .mfoot,
  body.faro-operational .modal-foot {
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding: 11px 15px calc(11px + env(safe-area-inset-bottom)) !important;
    flex-wrap: wrap;
  }
  body.faro-operational .mfoot .btn,
  body.faro-operational .modal-foot .btn { min-height: 40px; }
}

@media (max-width: 480px) {
  .faro-module-head { display: block; }
  .faro-module-state { display: inline-flex; margin-top: 10px; }
  .faro-module-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .faro-module-metrics div + div {
    border-left: 1px solid #2b4757;
    border-top: 0;
  }
  .faro-module-metrics b { font-size: 18px; }
  .faro-module-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .faro-module-actions small { order: -1; }
  .faro-open { width: 100%; }
  .faro-signal { grid-template-columns: 1fr; }
  .faro-signal-intro { border-right: 0; }
  .faro-signal-item { border-top-color: #294454; }
  body.faro-operational .content { padding-left: 10px !important; padding-right: 10px !important; }
  body.faro-operational .card,
  body.faro-operational .kpi,
  body.faro-operational .gara-card { padding-left: 14px !important; padding-right: 14px !important; }
  body.faro-garawin .gw-score-grid { grid-template-columns: 1fr; }
  body.faro-operational .btn { min-height: 38px; white-space: normal; text-align: center; justify-content: center; }
  body.faro-operational .mfoot,
  body.faro-operational .modal-foot { display: grid !important; grid-template-columns: 1fr; }
  body.faro-operational .mfoot .btn,
  body.faro-operational .modal-foot .btn { width: 100%; }
}

/* ==========================================================================
   NEEMIA RSF 3.0 - Architectural control room
   Home-only art direction. Operational modules retain their stable layout.
   ========================================================================== */
body.faro-home {
  --home-ink: #f4f0e7;
  --home-muted: #9ca8a8;
  --home-line: rgba(224, 215, 194, .2);
  --home-line-soft: rgba(224, 215, 194, .1);
  --home-gold: #d2b36c;
  --home-green: #79b89f;
  --home-red: #d77b72;
  min-width: 320px;
  background: #080e11;
  color: var(--home-ink);
  font-family: "Helvetica Neue", "Segoe UI", Arial, sans-serif;
}

body.faro-home .faro-layout {
  display: block;
  min-height: 100vh;
  background: #080e11;
}

body.faro-home .faro-top {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  height: 72px;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 0 32px;
  background: rgba(6, 12, 15, .94);
  border: 0;
  border-bottom: 1px solid var(--home-line);
  color: var(--home-ink);
  backdrop-filter: blur(18px);
}

body.faro-home .faro-brand {
  min-width: 0;
  min-height: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 0;
  border: 0;
  color: var(--home-ink);
  text-decoration: none;
}

body.faro-home .faro-brand strong {
  display: inline;
  font: 700 25px/1 "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0;
}

body.faro-home .faro-brand > span {
  color: var(--home-gold);
  font: 600 11px/1 "Helvetica Neue", Arial, sans-serif;
}

body.faro-home .faro-top-title {
  min-width: 0;
  flex: 1;
  padding-left: 22px;
  border-left: 1px solid var(--home-line);
}

body.faro-home .faro-top-title b {
  color: #ddd9d0;
  font-size: 11px;
  font-weight: 600;
}

body.faro-home .faro-top-title span {
  margin-top: 3px;
  color: #778687;
  font-size: 9px;
  text-transform: uppercase;
}

body.faro-home .faro-nav {
  display: flex;
  align-items: center;
  gap: 25px;
  padding: 0;
}

body.faro-home .faro-nav a {
  min-height: 0;
  display: inline-flex;
  padding: 3px 0;
  border: 0;
  color: #aeb7b6;
  font-size: 10px;
  font-weight: 600;
  text-decoration: none;
}

body.faro-home .faro-nav a:hover {
  background: transparent;
  color: var(--home-gold);
}

body.faro-home .faro-live {
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(121, 184, 159, .35);
  color: #8dccb3;
  font-size: 9px;
  font-weight: 700;
}

body.faro-home .faro-live::before {
  width: 5px;
  height: 5px;
}

body.faro-home .faro-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 32px 28px;
}

body.faro-home .faro-stage {
  position: relative;
  min-height: 240px;
  height: 30vh;
  max-height: 310px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  border-right: 1px solid var(--home-line-soft);
  border-bottom: 1px solid var(--home-line);
  border-left: 1px solid var(--home-line-soft);
  background: #0b1215;
}

body.faro-home .faro-stage::before {
  content: "";
  position: absolute;
  inset: -2%;
  z-index: -2;
  background: url("restedil-hero.webp") center 49% / cover no-repeat;
  transform: scale(1.02);
  animation: faro-stage-breathe 18s ease-in-out infinite alternate;
}

body.faro-home .faro-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(4, 9, 12, .96) 0%, rgba(4, 9, 12, .84) 37%, rgba(4, 9, 12, .19) 72%, rgba(4, 9, 12, .38) 100%),
    linear-gradient(0deg, rgba(4, 9, 12, .8) 0%, transparent 42%);
}

@keyframes faro-stage-breathe {
  from { transform: scale(1.02); }
  to { transform: scale(1.055); }
}

body.faro-home .faro-stage-copy {
  width: min(680px, 58%);
  padding: 0 0 40px 46px;
}

body.faro-home .faro-eyebrow {
  margin: 0 0 12px;
  color: var(--home-gold);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

body.faro-home .faro-stage h1 {
  margin: 0;
  color: #f4efe4;
  font-family: "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  font-size: 74px;
  font-weight: 500;
  line-height: .82;
  letter-spacing: 0;
}

body.faro-home .faro-stage h1 span {
  color: var(--home-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  font-style: italic;
  font-weight: 400;
  vertical-align: top;
}

body.faro-home .faro-stage-copy > p {
  width: min(500px, 100%);
  margin: 18px 0 0;
  color: #c0c7c5;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  line-height: 1.45;
}

body.faro-home .faro-stage-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 20px;
}

body.faro-home .faro-stage-meta span {
  padding: 0 18px;
  border-left: 1px solid rgba(210, 179, 108, .5);
  color: #aeb8b6;
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
}

body.faro-home .faro-stage-meta span:first-child {
  padding-left: 0;
  border-left: 0;
}

body.faro-home .faro-stage-foot {
  position: absolute;
  right: 24px;
  bottom: 19px;
  left: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: rgba(225, 225, 218, .66);
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
}

body.faro-home .faro-date {
  color: inherit;
  font-size: inherit;
}

body.faro-home .faro-modules {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-right: 1px solid var(--home-line);
  border-bottom: 1px solid var(--home-line);
  border-left: 1px solid var(--home-line);
  background: #0b1317;
}

body.faro-home .faro-module {
  --module-accent: var(--home-gold);
  position: relative;
  min-width: 0;
  min-height: 318px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 25px 24px 22px;
  border: 0;
  border-radius: 0;
  background: #0b1317;
  box-shadow: none;
  transition: background-color .3s ease;
}

body.faro-home .faro-module + .faro-module {
  border-left: 1px solid var(--home-line);
}

body.faro-home .faro-module::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: var(--module-accent);
  transform: scaleX(.2);
  transform-origin: left;
  transition: transform .35s ease;
}

body.faro-home .faro-module:hover {
  background: #101b20;
}

body.faro-home .faro-module:hover::before {
  transform: scaleX(1);
}

body.faro-home .faro-module.gare { --module-accent: #d2b36c; }
body.faro-home .faro-module.cantieri { --module-accent: #72aa97; }
body.faro-home .faro-module.mog { --module-accent: #a99ab4; }

body.faro-home .faro-module-index {
  position: absolute;
  top: 15px;
  right: 24px;
  color: rgba(255, 255, 255, .045);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 68px;
  line-height: 1;
  pointer-events: none;
}

body.faro-home .faro-module-head {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

body.faro-home .faro-module-code {
  color: var(--module-accent);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}

body.faro-home .faro-module h2 {
  margin: 8px 0 0;
  color: #f0ece3;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.05;
}

body.faro-home .faro-module-subtitle {
  max-width: 280px;
  margin-top: 7px;
  color: #b8aa8a;
  font-size: 8px;
  font-weight: 600;
  line-height: 1.35;
  text-transform: uppercase;
}

body.faro-home .faro-module-state {
  position: relative;
  z-index: 1;
  max-width: 112px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #7fb59f;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.4;
  text-align: right;
  white-space: normal;
}

body.faro-home .faro-module > p {
  min-height: 42px;
  margin: 15px 0 13px;
  color: #95a2a2;
  font-size: 11px;
  line-height: 1.5;
}

body.faro-home .faro-module-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 0;
  border-top: 1px solid var(--home-line-soft);
  border-bottom: 1px solid var(--home-line-soft);
  background: transparent;
}

body.faro-home .faro-module-metrics div,
body.faro-home .faro-module.gare .faro-module-metrics div,
body.faro-home .faro-module.cantieri .faro-module-metrics div,
body.faro-home .faro-module.mog .faro-module-metrics div {
  min-width: 0;
  padding: 11px 8px 10px;
  background: transparent;
}

body.faro-home .faro-module-metrics div:first-child { padding-left: 0; }
body.faro-home .faro-module-metrics div + div { border-left: 1px solid var(--home-line-soft); }

body.faro-home .faro-module-metrics b {
  color: #ece8df;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1;
}

body.faro-home .faro-module-metrics span {
  margin-top: 7px;
  color: #718081;
  font-size: 7px;
  font-weight: 700;
  line-height: 1.3;
  text-transform: uppercase;
}

body.faro-home .faro-module-alert {
  min-height: 30px;
  margin: 11px 0 0;
  padding: 0 0 0 11px;
  border: 0;
  border-left: 1px solid var(--module-accent);
  background: transparent;
  color: #8d9a9a;
  font-size: 9px;
  line-height: 1.5;
}

body.faro-home .faro-module-alert.good,
body.faro-home .faro-module-alert.warning,
body.faro-home .faro-module-alert.error {
  border-left-color: var(--module-accent);
  background: transparent;
}

body.faro-home .faro-module-alert.good { color: #85bca6; }
body.faro-home .faro-module-alert.warning { color: #ceb46f; }
body.faro-home .faro-module-alert.error { color: var(--home-red); }

body.faro-home .faro-module-actions {
  margin-top: auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  padding-top: 11px;
}

body.faro-home .faro-open {
  width: max-content;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  gap: 26px;
  padding: 0 0 7px;
  border: 0;
  border-bottom: 1px solid var(--module-accent);
  border-radius: 0;
  background: transparent;
  color: #e6e2d9;
  font-size: 10px;
  font-weight: 600;
  text-decoration: none;
}

body.faro-home .faro-open span:last-child {
  font-size: 17px;
  font-weight: 400;
  transition: transform .25s ease;
}

body.faro-home .faro-open:hover {
  background: transparent;
  color: var(--module-accent);
}

body.faro-home .faro-open:hover span:last-child {
  transform: translate(3px, -3px);
}

body.faro-home .faro-module-actions small {
  max-width: 120px;
  color: #657475;
  font-size: 8px;
  line-height: 1.4;
  text-align: right;
}

body.faro-home .faro-signal {
  margin: 0;
  display: grid;
  grid-template-columns: 1.2fr repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 0;
  border-right: 1px solid var(--home-line);
  border-bottom: 1px solid var(--home-line);
  border-left: 1px solid var(--home-line);
  border-radius: 0;
  background: #080e11;
}

body.faro-home .faro-signal-intro,
body.faro-home .faro-signal-item {
  min-height: 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 11px 16px;
  background: transparent;
}

body.faro-home .faro-signal-intro span,
body.faro-home .faro-signal-item span {
  order: 0;
  margin: 0 0 7px;
  color: #697778;
  font-size: 7px;
  font-weight: 700;
  text-transform: uppercase;
}

body.faro-home .faro-signal-intro b,
body.faro-home .faro-signal-item b {
  order: 1;
  color: #d6d3cb;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-weight: 400;
}

body.faro-home .faro-signal-item {
  border-left: 1px solid var(--home-line-soft);
}

body.faro-home .faro-signal-item.good b { color: #8ab5a5; }
body.faro-home .faro-signal-item.warning b { color: #cfb46f; }

body.faro-home .faro-legal-note {
  margin: 0;
  min-height: 43px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 10px 1px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #596667;
  font-size: 8px;
}

body.faro-home .faro-legal-note a {
  color: #9d906f;
  font-weight: 600;
  text-decoration: none;
}

body.faro-home .faro-legal-note a:hover { color: var(--home-gold); }

body.faro-home .rd-account-trigger {
  height: 30px;
  max-width: 180px;
  border-color: var(--home-line);
  border-radius: 0;
  background: transparent;
  color: #d8d4cb;
}

body.faro-home .rd-account-trigger:hover,
body.faro-home .rd-account-trigger[aria-expanded="true"] {
  border-color: var(--home-gold);
  background: #101b20;
}

body.faro-home .rd-account-avatar {
  width: 19px;
  height: 19px;
  background: var(--home-gold);
  color: #0b1215;
  font-size: 8px;
}

@media (max-width: 1120px) {
  body.faro-home .faro-top { padding-right: 22px; padding-left: 22px; }
  body.faro-home .faro-main { padding-right: 22px; padding-left: 22px; }
  body.faro-home .faro-nav { display: none; }
  body.faro-home .faro-stage-copy { width: 68%; }
  body.faro-home .faro-module { padding-right: 21px; padding-left: 21px; }
  body.faro-home .faro-module h2 { font-size: 25px; }
}

@media (max-width: 820px) {
  body.faro-home {
    padding-bottom: 0 !important;
  }

  body.faro-home .faro-top {
    position: sticky;
    height: 62px;
    gap: 13px;
    padding: 0 14px;
  }

  body.faro-home .faro-top-title {
    padding-left: 13px;
  }

  body.faro-home .faro-top-title b {
    max-width: 155px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.faro-home .faro-top-title span,
  body.faro-home .faro-live {
    display: none;
  }

  body.faro-home .faro-nav {
    display: flex;
    margin-left: auto;
  }

  body.faro-home .faro-nav a { display: none; }

  body.faro-home .faro-nav a[href$="legal.html"] {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--home-line);
    color: var(--home-gold);
    font-size: 0;
  }

  body.faro-home .faro-nav a[href$="legal.html"]::after {
    content: "\00a7";
    font-family: Georgia, "Times New Roman", serif;
    font-size: 14px;
  }

  body.faro-home .faro-main {
    padding: 0 12px 12px;
  }

  body.faro-home .faro-stage {
    min-height: 200px;
    height: 24vh;
    max-height: 220px;
    align-items: flex-end;
  }

  body.faro-home .faro-stage::before {
    background-position: 62% center;
  }

  body.faro-home .faro-stage::after {
    background:
      linear-gradient(0deg, rgba(4, 9, 12, .95) 0%, rgba(4, 9, 12, .69) 57%, rgba(4, 9, 12, .22) 100%),
      linear-gradient(90deg, rgba(4, 9, 12, .72), rgba(4, 9, 12, .12));
  }

  body.faro-home .faro-stage-copy {
    width: 100%;
    padding: 0 18px 43px;
  }

  body.faro-home .faro-eyebrow { display: none; }
  body.faro-home .faro-stage h1 { font-size: 43px; }
  body.faro-home .faro-stage h1 span { font-size: 19px; }

  body.faro-home .faro-stage-copy > p {
    max-width: 440px;
    margin-top: 12px;
    font-size: 12px;
    line-height: 1.35;
  }

  body.faro-home .faro-stage-meta { display: none; }

  body.faro-home .faro-stage-foot {
    right: 16px;
    bottom: 11px;
    left: 18px;
  }

  body.faro-home .faro-modules {
    grid-template-columns: 1fr;
  }

  body.faro-home .faro-module {
    min-height: 142px;
    padding: 13px 14px 12px;
  }

  body.faro-home .faro-module + .faro-module {
    border-top: 1px solid var(--home-line);
    border-left: 0;
  }

  body.faro-home .faro-module-index {
    top: 8px;
    right: 12px;
    font-size: 45px;
  }

  body.faro-home .faro-module-code { font-size: 6px; }
  body.faro-home .faro-module h2 { margin-top: 4px; font-size: 20px; }
  body.faro-home .faro-module-subtitle {
    max-width: 230px;
    margin-top: 4px;
    font-size: 6px;
  }
  body.faro-home .faro-module-state { font-size: 7px; }
  body.faro-home .faro-module > p,
  body.faro-home .faro-module-alert { display: none; }

  body.faro-home .faro-module-metrics {
    margin-top: 10px;
  }

  body.faro-home .faro-module-metrics div,
  body.faro-home .faro-module.gare .faro-module-metrics div,
  body.faro-home .faro-module.cantieri .faro-module-metrics div,
  body.faro-home .faro-module.mog .faro-module-metrics div {
    padding-top: 7px;
    padding-bottom: 6px;
  }

  body.faro-home .faro-module-metrics b { font-size: 17px; }
  body.faro-home .faro-module-metrics span { margin-top: 3px; font-size: 6px; }
  body.faro-home .faro-module-actions { padding-top: 8px; }
  body.faro-home .faro-open { padding-bottom: 4px; font-size: 8px; }
  body.faro-home .faro-open span:last-child { font-size: 13px; }
  body.faro-home .faro-module-actions small { display: none; }

  body.faro-home .faro-signal {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  body.faro-home .faro-signal-intro {
    grid-column: auto;
    min-height: 54px;
  }

  body.faro-home .faro-signal-item {
    min-height: 54px;
    padding: 6px 5px;
    border-top: 0;
  }

  body.faro-home .faro-signal-intro { padding: 6px 5px; }
  body.faro-home .faro-signal-intro span { display: none; }
  body.faro-home .faro-signal-intro b,
  body.faro-home .faro-signal-item b { font-size: 8px; line-height: 1.2; }
  body.faro-home .faro-signal-item span { margin-bottom: 3px; font-size: 5px; }
  body.faro-home .faro-signal-item.good b { font-size: 0; }
  body.faro-home .faro-signal-item.good b::after { content: "Attivo"; font-size: 8px; }

  body.faro-home .faro-legal-note {
    display: none;
  }

  body.faro-home .rd-account-trigger {
    width: 32px;
    height: 32px;
    margin-left: 0;
  }

  body.faro-home .rd-account-name { display: none; }
}

@media (max-width: 430px) {
  body.faro-home .faro-brand strong { font-size: 22px; }
  body.faro-home .faro-top-title { display: none; }
  body.faro-home .faro-stage { min-height: 200px; }
  body.faro-home .faro-stage-copy { padding-right: 18px; padding-left: 18px; }
  body.faro-home .faro-stage h1 { font-size: 42px; }
  body.faro-home .faro-stage-copy > p { font-size: 12px; }
  body.faro-home .faro-stage-foot { left: 18px; }
  body.faro-home .faro-module { padding-right: 14px; padding-left: 14px; }
  body.faro-home .faro-module-head { display: flex; }
  body.faro-home .faro-module-state {
    max-width: 100px;
    margin-top: 0;
    text-align: right;
  }
  body.faro-home .faro-module-metrics b { font-size: 17px; }
}

@media (min-width: 821px) and (max-height: 780px) {
  body.faro-home .faro-top { height: 60px; }
  body.faro-home .faro-stage { min-height: 185px; height: 27vh; max-height: 210px; }
  body.faro-home .faro-stage-copy { padding-bottom: 33px; }
  body.faro-home .faro-stage h1 { font-size: 60px; }
  body.faro-home .faro-stage-copy > p { margin-top: 12px; font-size: 13px; }
  body.faro-home .faro-stage-meta { margin-top: 13px; }
  body.faro-home .faro-module { min-height: 284px; padding-top: 20px; padding-bottom: 17px; }
  body.faro-home .faro-module > p { margin-top: 10px; margin-bottom: 9px; }
  body.faro-home .faro-module-alert { margin-top: 8px; }
  body.faro-home .faro-signal-intro,
  body.faro-home .faro-signal-item { min-height: 56px; }
  body.faro-home .faro-legal-note { min-height: 34px; padding-top: 6px; padding-bottom: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  body.faro-home .faro-stage::before { animation: none; }
  body.faro-home .faro-module,
  body.faro-home .faro-module::before,
  body.faro-home .faro-open span:last-child { transition: none; }
}

/* ==========================================================================
   NEEMIA RSF 4.0 - Process table
   The operating environments use a horizontal command architecture. Internal
   identifiers stay unchanged so data, permissions and workflows remain stable.
   ========================================================================== */
body.faro-operational #app {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  grid-template-columns: minmax(0, 1fr);
  height: 100dvh !important;
  overflow: hidden !important;
}

body.faro-operational #sb,
body.faro-operational #sidebar {
  position: relative !important;
  inset: auto !important;
  z-index: 40;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  display: block !important;
  flex: none !important;
  overflow: visible !important;
  transform: none !important;
  background: var(--op-rail) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--op-line) !important;
  box-shadow: none !important;
}

body.faro-operational .op-command-head {
  min-height: 66px;
  display: grid;
  grid-template-columns: minmax(210px, 280px) minmax(220px, 1fr) auto;
  align-items: stretch;
  background: #070d10;
  border-bottom: 1px solid var(--op-line-soft);
}

body.faro-operational .op-command-head > .sb-logo,
body.faro-operational .op-command-head > .sb-top {
  min-height: 66px !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 11px 22px !important;
  border: 0 !important;
  border-right: 1px solid var(--op-line) !important;
}

body.faro-operational .op-command-head > .sb-user,
body.faro-operational .op-command-head > .sb-azienda,
body.faro-operational .op-command-head > .sb-project {
  min-width: 0;
  min-height: 66px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10px 20px !important;
  border: 0 !important;
  background: var(--op-surface) !important;
}

body.faro-operational .op-command-head > .sb-project {
  position: relative;
}

body.faro-operational .op-command-head > .faro-back-home {
  min-width: 166px;
  min-height: 66px;
  align-self: stretch;
  justify-content: center;
  gap: 12px;
  margin: 0 !important;
  padding: 0 18px !important;
  border: 0 !important;
  border-left: 1px solid var(--op-line) !important;
  background: transparent !important;
}

body.faro-operational .op-command-head > .faro-back-home::after {
  content: "\2197";
}

body.faro-operational .op-tabs {
  position: relative;
  width: 100%;
  min-width: 0;
  height: 43px;
  display: flex;
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--module-tone-rgb), .45) transparent;
  background: #091115;
  overscroll-behavior-x: contain;
}

body.faro-operational .op-tabs::-webkit-scrollbar {
  height: 3px;
}

body.faro-operational .op-tabs .sb-sect,
body.faro-operational .op-tabs .sb-section,
body.faro-operational .op-tabs .si-label,
body.faro-operational .op-tabs .sb-div,
body.faro-operational .op-tabs .sb-divider {
  display: none !important;
}

body.faro-operational .op-tabs .si,
body.faro-operational .op-tabs .sb-item,
body.faro-operational .op-tabs .sb-item[data-view="overview"] {
  position: relative;
  min-width: max-content;
  min-height: 43px;
  flex: 0 0 auto;
  display: flex !important;
  align-items: center;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 0 !important;
  border-right: 1px solid var(--op-line-soft) !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
  color: #929b98 !important;
  font-size: 9px !important;
  font-weight: 650 !important;
  line-height: 1;
  letter-spacing: .035em;
  white-space: nowrap;
}

body.faro-operational .op-tabs .si > span:first-child,
body.faro-operational .op-tabs .sb-icon {
  width: auto;
  color: #687572 !important;
  font-size: 9px !important;
}

body.faro-operational .op-tabs .si:hover,
body.faro-operational .op-tabs .sb-item:hover {
  background: rgba(var(--module-tone-rgb), .055) !important;
  color: var(--op-copy) !important;
}

body.faro-operational .op-tabs .si.active,
body.faro-operational .op-tabs .si.g.active,
body.faro-operational .op-tabs .si.r.active,
body.faro-operational .op-tabs .si.b.active,
body.faro-operational .op-tabs .si.o.active,
body.faro-operational .op-tabs .si.p.active,
body.faro-operational .op-tabs .sb-item.active,
body.faro-operational .op-tabs .sb-item.legal.active,
body.faro-operational .op-tabs .sb-item.safety.active,
body.faro-operational .op-tabs .sb-item.docs.active,
body.faro-operational .op-tabs .sb-item.bim.active {
  border: 0 !important;
  border-right: 1px solid var(--op-line-soft) !important;
  border-bottom: 2px solid var(--module-tone) !important;
  background: rgba(var(--module-tone-rgb), .1) !important;
  color: var(--op-copy) !important;
}

body.faro-operational .op-tabs .sb-badge {
  margin-left: 7px !important;
}

body.faro-operational #main {
  width: 100% !important;
  min-width: 0;
  min-height: 0;
}

body.faro-operational .topbar {
  height: 48px !important;
  min-height: 48px !important;
  padding: 0 24px !important;
}

body.faro-operational .content {
  padding: 18px 24px 26px !important;
}

body.faro-cantiere #cantiere-picker {
  position: absolute;
  top: calc(100% - 3px);
  left: min(280px, 25vw);
  z-index: 1000;
  width: min(440px, calc(100vw - 48px));
  max-height: min(520px, calc(100dvh - 150px));
  overflow-y: auto;
  border: 1px solid var(--op-line) !important;
  background: var(--op-surface) !important;
  box-shadow: 0 22px 60px rgba(0, 0, 0, .42);
}

body.faro-operational #cs-menu-toggle,
body.faro-operational .mog-mobile-menu,
body.faro-operational .mog-menu-backdrop {
  display: none !important;
}

body.faro-operational .topbar > a[href="index.html"] {
  display: none !important;
}

@media (max-width: 760px) {
  body.faro-operational .op-command-head {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  body.faro-operational .op-command-head > .sb-logo,
  body.faro-operational .op-command-head > .sb-top {
    min-height: 52px !important;
    padding: 9px 14px !important;
    border-right: 0 !important;
  }

  body.faro-operational .op-command-head > .sb-user,
  body.faro-operational .op-command-head > .sb-azienda,
  body.faro-operational .op-command-head > .sb-project {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 36px;
    padding: 7px 14px !important;
    border-top: 1px solid var(--op-line-soft) !important;
  }

  body.faro-operational .op-command-head > .sb-user > div:nth-child(2),
  body.faro-operational .op-command-head > .sb-user > div:nth-child(3),
  body.faro-operational .op-command-head > .sb-azienda > div:nth-child(2) {
    display: none;
  }

  body.faro-operational .op-command-head > .faro-back-home {
    grid-column: 2;
    grid-row: 1;
    min-width: 54px;
    min-height: 52px;
    padding: 0 13px !important;
    border-left: 1px solid var(--op-line) !important;
    color: transparent !important;
    font-size: 0 !important;
  }

  body.faro-operational .op-command-head > .faro-back-home::before {
    content: "\2190";
    color: var(--op-copy);
    font-size: 17px;
  }

  body.faro-operational .op-command-head > .faro-back-home::after {
    display: none;
  }

  body.faro-operational .op-tabs {
    height: 42px;
  }

  body.faro-operational .op-tabs .si,
  body.faro-operational .op-tabs .sb-item,
  body.faro-operational .op-tabs .sb-item[data-view="overview"] {
    min-height: 42px;
    padding: 0 12px !important;
    font-size: 8.5px !important;
  }

  body.faro-operational .topbar {
    height: 43px !important;
    min-height: 43px !important;
    padding: 0 12px !important;
  }

  body.faro-operational .content {
    padding: 14px 12px calc(76px + env(safe-area-inset-bottom)) !important;
  }

  body.faro-cantiere #cantiere-picker {
    position: fixed;
    top: 88px;
    left: 10px;
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 164px);
  }
}

/* ==========================================================================
   NEEMIA RSF 3.0 - Operational architecture
   Shared visual system for the three working environments. Functionality and
   document structure remain isolated in their original modules.
   ========================================================================== */
body.faro-operational {
  --op-bg: #080e11;
  --op-rail: #070c0f;
  --op-surface: #0c1418;
  --op-surface-2: #101b20;
  --op-surface-3: #142229;
  --op-copy: #f1ede4;
  --op-copy-soft: #bdc2bd;
  --op-muted: #858f8d;
  --op-line: rgba(224, 215, 194, .18);
  --op-line-soft: rgba(224, 215, 194, .1);
  --op-gold: #d2b36c;
  --op-green: #79b89f;
  --op-red: #d77b72;
  --op-blue: #86aec0;
  --op-purple: #aa9dbc;
  --module-tone: var(--op-gold);
  --module-tone-rgb: 210, 179, 108;
  min-width: 320px;
  background: var(--op-bg) !important;
  color: var(--op-copy) !important;
  font-family: "Instrument Sans", Aptos, "Segoe UI", sans-serif !important;
}

body.faro-garawin {
  --module-tone: #d2b36c;
  --module-tone-rgb: 210, 179, 108;
}

body.faro-cantiere {
  --module-tone: #79b89f;
  --module-tone-rgb: 121, 184, 159;
}

body.faro-mog {
  --module-tone: #aa9dbc;
  --module-tone-rgb: 170, 157, 188;
}

body.faro-operational #app {
  height: 100dvh;
  background: var(--op-bg) !important;
}

body.faro-operational #sb,
body.faro-operational #sidebar {
  width: 208px;
  background: var(--op-rail) !important;
  border: 0 !important;
  border-right: 1px solid var(--op-line) !important;
  box-shadow: none !important;
  scrollbar-color: rgba(var(--module-tone-rgb), .45) var(--op-rail);
}

body.faro-operational .sb-logo,
body.faro-operational .sb-top {
  min-height: 78px;
  padding: 18px 15px 13px !important;
  background: var(--op-rail) !important;
  border-bottom: 1px solid var(--op-line) !important;
}

body.faro-operational .sb-mark,
body.faro-operational .sb-logo-mark,
body.faro-operational .sb-brand {
  color: var(--op-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 23px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none;
}

body.faro-operational .sb-sub,
body.faro-operational .sb-logo-sub,
body.faro-operational .sb-brand-sub {
  margin-top: 7px !important;
  color: var(--module-tone) !important;
  font-size: 7px !important;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}

body.faro-operational .sb-logo > div[style*="border-top"] {
  margin-top: 10px !important;
  padding-top: 9px !important;
  border-top-color: var(--op-line-soft) !important;
}

body.faro-operational .sb-logo > div[style*="border-top"] > div:first-child {
  color: var(--op-copy-soft) !important;
  font-size: 9px !important;
  font-weight: 600 !important;
}

body.faro-operational .sb-logo > div[style*="border-top"] > div:last-child {
  color: var(--op-muted) !important;
  font-size: 8px !important;
}

body.faro-operational .sb-user,
body.faro-operational .sb-azienda,
body.faro-operational .sb-project {
  padding: 10px 14px !important;
  background: var(--op-surface) !important;
  color: var(--op-copy-soft) !important;
  border-bottom: 1px solid var(--op-line-soft) !important;
}

body.faro-operational .sb-user > div:first-child,
body.faro-operational .sb-azienda > div:first-child,
body.faro-operational .sb-project #sb-pname {
  color: var(--op-copy) !important;
  font-weight: 600 !important;
}

body.faro-operational .sb-user [style*="color:#aaa"],
body.faro-operational .sb-azienda [style*="color:#aaa"],
body.faro-operational .sb-project [style*="color:#aaa"] {
  color: var(--op-muted) !important;
}

body.faro-operational .sb-sect,
body.faro-operational .sb-section,
body.faro-operational .si-label {
  margin-top: 8px !important;
  padding: 5px 13px 3px !important;
  color: #68726f !important;
  font-size: 7px !important;
  font-weight: 700 !important;
  letter-spacing: .17em !important;
  text-transform: uppercase;
}

body.faro-operational .sb-div,
body.faro-operational .sb-divider {
  height: 1px !important;
  margin: 6px 13px !important;
  background: var(--op-line-soft) !important;
}

body.faro-operational .si,
body.faro-operational .sb-item {
  min-height: 34px;
  gap: 8px !important;
  padding: 7px 13px !important;
  border-left: 1px solid transparent !important;
  background: transparent !important;
  color: #929b98 !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  line-height: 1.2;
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}

body.faro-operational .si > span:first-child,
body.faro-operational .sb-icon {
  width: 16px;
  color: #717c79 !important;
  font-size: 10px;
  text-align: center;
}

body.faro-operational .si:hover,
body.faro-operational .sb-item:hover {
  color: var(--op-copy) !important;
  background: rgba(var(--module-tone-rgb), .05) !important;
}

body.faro-operational .si.active,
body.faro-operational .si.g.active,
body.faro-operational .si.r.active,
body.faro-operational .si.b.active,
body.faro-operational .si.o.active,
body.faro-operational .si.p.active,
body.faro-operational .sb-item.active,
body.faro-operational .sb-item.legal.active,
body.faro-operational .sb-item.safety.active,
body.faro-operational .sb-item.docs.active,
body.faro-operational .sb-item.bim.active {
  color: var(--op-copy) !important;
  background: rgba(var(--module-tone-rgb), .09) !important;
  border-left-color: var(--module-tone) !important;
  font-weight: 650 !important;
}

body.faro-operational .si.active > span:first-child,
body.faro-operational .sb-item.active .sb-icon {
  color: var(--module-tone) !important;
}

body.faro-operational .sb-item[data-view="overview"] {
  margin: 6px 0 0 !important;
  color: var(--op-copy-soft) !important;
  background: transparent !important;
  border-left: 1px solid transparent !important;
}

body.faro-operational .sb-item[data-view="overview"]:hover {
  background: rgba(var(--module-tone-rgb), .05) !important;
  color: var(--op-copy) !important;
}

body.faro-operational .sb-item[data-view="overview"] span {
  color: var(--module-tone) !important;
  font-size: 8px !important;
  letter-spacing: .13em !important;
}

body.faro-operational .sb-badge {
  min-width: 20px;
  margin-left: auto;
  padding: 1px 5px !important;
  border: 1px solid rgba(var(--module-tone-rgb), .42);
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--module-tone) !important;
  font-family: "DM Mono", monospace;
  font-size: 8px !important;
  text-align: center;
}

body.faro-operational #sb > div:last-child,
body.faro-operational #sidebar > div:last-child {
  margin-top: auto;
  padding: 9px 13px 13px !important;
}

body.faro-operational .faro-back-home,
body.faro-operational #sb a[href$=".html"],
body.faro-operational #sidebar a[href$=".html"] {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 10px !important;
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

body.faro-operational .faro-back-home::after {
  content: "\2197";
  color: var(--module-tone);
  font-size: 13px;
}

body.faro-operational .faro-back-home:hover,
body.faro-operational #sb a[href$=".html"]:hover,
body.faro-operational #sidebar a[href$=".html"]:hover {
  border-color: var(--module-tone) !important;
  background: rgba(var(--module-tone-rgb), .06) !important;
  color: var(--op-copy) !important;
}

body.faro-operational #main {
  min-width: 0;
  min-height: 0;
  background: var(--op-bg) !important;
}

body.faro-operational .topbar {
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 20px !important;
  gap: 12px;
  background: var(--op-bg) !important;
  color: var(--op-copy) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--op-line) !important;
  box-shadow: none !important;
}

body.faro-operational .tb-title,
body.faro-operational .topbar-title {
  min-width: 0;
  color: var(--op-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.1;
  letter-spacing: 0 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.faro-operational .topbar .rd-topbar-meta,
body.faro-operational .topbar .rd-topbar-meta > *,
body.faro-operational .topbar .topbar-status,
body.faro-operational .topbar .topbar-status > * {
  color: var(--op-muted) !important;
  font-size: 9px !important;
}

body.faro-operational .topbar .badge,
body.faro-operational .topbar .gw-cloud-status,
body.faro-operational .topbar .mog-cloud {
  border: 1px solid rgba(121, 184, 159, .38) !important;
  border-radius: 0 !important;
  background: rgba(121, 184, 159, .08) !important;
  color: var(--op-green) !important;
}

body.faro-operational .topbar .btn-gh {
  min-height: 30px;
  padding: 0 10px;
  border-color: var(--op-line) !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .rd-account-trigger,
body.faro-operational #cs-menu-toggle,
body.faro-operational .mog-mobile-menu {
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
  box-shadow: none !important;
}

body.faro-operational .rd-account-trigger:hover,
body.faro-operational .rd-account-trigger[aria-expanded="true"],
body.faro-operational #cs-menu-toggle:hover,
body.faro-operational .mog-mobile-menu:hover,
body.faro-operational .mog-mobile-menu[aria-expanded="true"] {
  border-color: var(--module-tone) !important;
  background: rgba(var(--module-tone-rgb), .07) !important;
  color: var(--op-copy) !important;
}

body.faro-operational .rd-account-avatar {
  border-radius: 50%;
  background: var(--module-tone) !important;
  color: var(--op-bg) !important;
}

body.faro-operational .content {
  min-width: 0;
  min-height: 0;
  padding: 20px 24px 28px !important;
  overflow-x: hidden;
  overflow-y: auto;
  background: var(--op-bg) !important;
  scrollbar-gutter: stable;
  overscroll-behavior-y: contain;
}

body.faro-operational .sh,
body.faro-operational .section-hd {
  min-height: 58px;
  align-items: flex-end !important;
  margin-bottom: 16px !important;
  padding: 0 0 12px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--op-line) !important;
}

body.faro-operational .st,
body.faro-operational .section-title {
  color: var(--op-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(24px, 2.25vw, 31px) !important;
  font-weight: 400 !important;
  line-height: 1.06 !important;
  letter-spacing: 0 !important;
  text-transform: none;
}

body.faro-operational .ss,
body.faro-operational .section-sub {
  max-width: 820px;
  margin-top: 6px !important;
  color: var(--op-muted) !important;
  font-size: 10px !important;
  line-height: 1.45;
}

body.faro-operational .card,
body.faro-operational .panel,
body.faro-operational .kpi,
body.faro-operational .gara-card,
body.faro-operational .tbl-wrap,
body.faro-operational .tbl-w,
body.faro-operational .risk-panel,
body.faro-operational .risk-box,
body.faro-operational .sub-card {
  background: var(--op-surface) !important;
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .card,
body.faro-operational .panel {
  padding: 15px 16px;
}

body.faro-operational .card-sm {
  padding: 12px 13px !important;
}

body.faro-operational .kpi {
  position: relative;
  min-height: 96px;
  padding: 15px 15px 13px !important;
  border-top: 1px solid var(--module-tone) !important;
}

body.faro-operational .kpi::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: 28px;
  height: 2px;
  background: var(--module-tone);
}

body.faro-operational .kl,
body.faro-operational .kpi-label {
  color: var(--op-muted) !important;
  font-size: 7px !important;
  font-weight: 700 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase;
}

body.faro-operational .kv,
body.faro-operational .kpi-value {
  margin-top: 7px;
  color: var(--op-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 25px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}

body.faro-operational .ks,
body.faro-operational .kpi-sub {
  margin-top: 6px !important;
  color: var(--op-muted) !important;
  font-size: 9px !important;
}

body.faro-operational .tbl-wrap,
body.faro-operational .tbl-w {
  overflow-x: auto;
}

body.faro-operational .tbl {
  min-width: 680px;
}

body.faro-operational .tbl th {
  padding: 9px 10px !important;
  background: var(--op-surface-2) !important;
  border-bottom: 1px solid var(--op-line) !important;
  color: var(--module-tone) !important;
  font-size: 7px !important;
  font-weight: 700 !important;
  line-height: 1.3;
  letter-spacing: .14em !important;
  text-transform: uppercase;
}

body.faro-operational .tbl td {
  padding: 9px 10px !important;
  border-bottom: 1px solid var(--op-line-soft) !important;
  color: var(--op-copy-soft) !important;
  font-size: 10.5px !important;
  line-height: 1.4;
}

body.faro-operational .tbl tr:hover td {
  background: rgba(var(--module-tone-rgb), .045) !important;
  color: var(--op-copy) !important;
}

body.faro-operational .tbl tfoot td {
  background: var(--op-surface-2) !important;
  border-top: 1px solid var(--op-line) !important;
}

body.faro-operational .gara-card {
  position: relative;
  padding: 15px 16px 16px !important;
  border-left: 1px solid var(--module-tone) !important;
}

body.faro-operational .gara-card::before,
body.faro-operational .sub-card::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1px;
  width: 2px;
  background: var(--module-tone);
}

body.faro-operational .gara-card,
body.faro-operational .sub-card {
  position: relative;
}

body.faro-operational .btn,
body.faro-operational button {
  border-radius: 0 !important;
  box-shadow: none !important;
  letter-spacing: 0 !important;
}

body.faro-operational .btn {
  min-height: 34px;
  justify-content: center;
  padding: 7px 12px;
  font-size: 9.5px;
  font-weight: 650;
}

body.faro-operational .btn-sm { min-height: 30px; padding: 5px 10px; font-size: 9px; }
body.faro-operational .btn-xs { min-height: 27px; padding: 4px 8px; font-size: 8px; }

body.faro-operational .btn-ink,
body.faro-operational .btn-oro,
body.faro-operational .btn-gold,
body.faro-operational .btn-o {
  border: 1px solid var(--module-tone) !important;
  background: var(--module-tone) !important;
  color: var(--op-bg) !important;
}

body.faro-operational .btn-ink:hover,
body.faro-operational .btn-oro:hover,
body.faro-operational .btn-gold:hover,
body.faro-operational .btn-o:hover {
  border-color: var(--op-copy) !important;
  background: var(--op-copy) !important;
  color: var(--op-bg) !important;
}

body.faro-operational .btn-g,
body.faro-operational .btn-green {
  border: 1px solid var(--op-green) !important;
  background: rgba(121, 184, 159, .14) !important;
  color: #a5d8c4 !important;
}

body.faro-operational .btn-b,
body.faro-operational .btn-blue {
  border: 1px solid var(--op-blue) !important;
  background: rgba(134, 174, 192, .12) !important;
  color: #b4d0dc !important;
}

body.faro-operational .btn-p {
  border: 1px solid var(--op-purple) !important;
  background: rgba(170, 157, 188, .12) !important;
  color: #cec5d9 !important;
}

body.faro-operational .btn-r,
body.faro-operational .btn-red {
  border: 1px solid var(--op-red) !important;
  background: rgba(215, 123, 114, .13) !important;
  color: #edaaa3 !important;
}

body.faro-operational .btn-gh,
body.faro-operational .btn-ghost,
body.faro-operational .btn-out,
body.faro-operational .btn-outline,
body.faro-operational .cs-op-btn {
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .btn-gh:hover,
body.faro-operational .btn-ghost:hover,
body.faro-operational .btn-out:hover,
body.faro-operational .btn-outline:hover,
body.faro-operational .cs-op-btn:hover {
  border-color: var(--module-tone) !important;
  background: rgba(var(--module-tone-rgb), .07) !important;
  color: var(--op-copy) !important;
}

body.faro-operational input,
body.faro-operational select,
body.faro-operational textarea {
  min-height: 38px;
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: #091115 !important;
  color: var(--op-copy) !important;
}

body.faro-operational textarea { min-height: 78px; }

body.faro-operational input::placeholder,
body.faro-operational textarea::placeholder {
  color: #626c6a !important;
}

body.faro-operational input:focus,
body.faro-operational select:focus,
body.faro-operational textarea:focus {
  border-color: var(--module-tone) !important;
  box-shadow: 0 0 0 1px var(--module-tone) !important;
}

body.faro-operational .fl {
  margin-bottom: 6px !important;
  color: var(--op-muted) !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
}

body.faro-operational option {
  background: var(--op-surface);
  color: var(--op-copy);
}

body.faro-operational .modal-bg {
  padding: 18px !important;
  background: rgba(2, 6, 8, .88) !important;
  backdrop-filter: blur(2px);
}

body.faro-operational .modal {
  border: 1px solid var(--op-line) !important;
  border-top: 2px solid var(--module-tone) !important;
  border-radius: 0 !important;
  background: var(--op-surface) !important;
  box-shadow: 0 34px 100px rgba(0, 0, 0, .58) !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .mhd,
body.faro-operational .modal-hd,
body.faro-operational .modal-head {
  min-height: 54px;
  padding: 12px 17px !important;
  background: var(--op-surface-2) !important;
  border-bottom: 1px solid var(--op-line) !important;
}

body.faro-operational .mht,
body.faro-operational .modal-ht {
  color: var(--op-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}

body.faro-operational .mx,
body.faro-operational .modal-x {
  width: 32px;
  height: 32px;
  color: var(--op-muted) !important;
}

body.faro-operational .mbody,
body.faro-operational .modal-body {
  padding: 18px 18px !important;
}

body.faro-operational .mfoot,
body.faro-operational .modal-foot {
  padding: 11px 18px !important;
  background: #091115 !important;
  border-top: 1px solid var(--op-line) !important;
}

body.faro-operational .badge,
body.faro-operational .bgr {
  padding: 2px 6px !important;
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
  font-size: 8px !important;
  line-height: 1.3;
}

body.faro-operational .bg {
  border-color: rgba(121, 184, 159, .42) !important;
  background: rgba(121, 184, 159, .08) !important;
  color: #9ed0bc !important;
}

body.faro-operational .br {
  border-color: rgba(215, 123, 114, .44) !important;
  background: rgba(215, 123, 114, .09) !important;
  color: #e5a098 !important;
}

body.faro-operational .ba,
body.faro-operational .bo {
  border-color: rgba(210, 179, 108, .44) !important;
  background: rgba(210, 179, 108, .09) !important;
  color: #dec78f !important;
}

body.faro-operational .bb {
  border-color: rgba(134, 174, 192, .44) !important;
  background: rgba(134, 174, 192, .09) !important;
  color: #afd0dc !important;
}

body.faro-operational .bp {
  border-color: rgba(170, 157, 188, .44) !important;
  background: rgba(170, 157, 188, .09) !important;
  color: #cec5d9 !important;
}

body.faro-operational .bk {
  border-color: var(--op-line) !important;
  background: var(--op-copy) !important;
  color: var(--op-bg) !important;
}

body.faro-operational .alert {
  padding: 10px 12px !important;
  border: 1px solid var(--op-line-soft) !important;
  border-left-width: 2px !important;
  border-radius: 0 !important;
  background: var(--op-surface-2) !important;
  color: var(--op-copy-soft) !important;
  font-size: 10px !important;
  line-height: 1.55 !important;
}

body.faro-operational .alert-r,
body.faro-operational .alert-red {
  border-left-color: var(--op-red) !important;
  background: rgba(215, 123, 114, .08) !important;
  color: #e7aaa3 !important;
}

body.faro-operational .alert-a,
body.faro-operational .alert-amber {
  border-left-color: var(--op-gold) !important;
  background: rgba(210, 179, 108, .08) !important;
  color: #dec78f !important;
}

body.faro-operational .alert-g,
body.faro-operational .alert-green {
  border-left-color: var(--op-green) !important;
  background: rgba(121, 184, 159, .08) !important;
  color: #a0d1be !important;
}

body.faro-operational .alert-b,
body.faro-operational .alert-blue {
  border-left-color: var(--op-blue) !important;
  background: rgba(134, 174, 192, .08) !important;
  color: #b0ced9 !important;
}

body.faro-operational .alert-p {
  border-left-color: var(--op-purple) !important;
  background: rgba(170, 157, 188, .08) !important;
  color: #cec5d9 !important;
}

body.faro-operational .prog {
  height: 3px !important;
  border-radius: 0 !important;
  background: var(--op-surface-3) !important;
}

body.faro-operational .prog > *,
body.faro-operational .pf,
body.faro-operational .prog-f {
  border-radius: 0 !important;
}

body.faro-operational .gw-score-item,
body.faro-operational .doc-pill,
body.faro-operational .step-todo {
  border: 1px solid var(--op-line-soft) !important;
  border-radius: 0 !important;
  background: var(--op-surface-2) !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .gw-score-ok {
  border-color: rgba(121, 184, 159, .35) !important;
  background: rgba(121, 184, 159, .08) !important;
  color: #9ed0bc !important;
}

body.faro-operational .gw-score-warn {
  border-color: rgba(210, 179, 108, .35) !important;
  background: rgba(210, 179, 108, .08) !important;
  color: #dec78f !important;
}

body.faro-operational .gw-score-no {
  border-color: rgba(215, 123, 114, .35) !important;
  background: rgba(215, 123, 114, .08) !important;
  color: #e5a098 !important;
}

body.faro-operational .step-n {
  border-radius: 0 !important;
}

body.faro-operational .step-active {
  background: var(--module-tone) !important;
  color: var(--op-bg) !important;
}

body.faro-operational .risk-hd,
body.faro-operational .rh {
  border-bottom: 1px solid var(--op-line) !important;
  background: var(--op-surface-2) !important;
}

body.faro-operational .risk-hd.hi,
body.faro-operational .rh.hi { color: var(--op-red) !important; }
body.faro-operational .risk-hd.med,
body.faro-operational .rh.med { color: var(--op-gold) !important; }
body.faro-operational .risk-hd.low,
body.faro-operational .rh.low { color: var(--op-green) !important; }

body.faro-operational .risk-bd,
body.faro-operational .rb {
  background: var(--op-surface) !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .doc-tpl {
  border: 1px solid #b6a982 !important;
  border-radius: 0 !important;
  background: #f3f0e8 !important;
  color: #172026 !important;
  box-shadow: none !important;
}

body.faro-operational .doc-tpl h4 {
  border-bottom-color: #38474e !important;
  color: #172026 !important;
  font-family: Georgia, "Times New Roman", serif !important;
}

body.faro-operational .fe,
body.faro-operational .fp {
  border-radius: 0 !important;
  background: #fff8df !important;
  color: #5d4516 !important;
}

body.faro-operational #login-screen {
  background: var(--op-bg) !important;
}

body.faro-operational .login-box {
  border: 1px solid var(--op-line) !important;
  border-top: 2px solid var(--module-tone) !important;
  border-radius: 0 !important;
  background: var(--op-surface) !important;
  color: var(--op-copy) !important;
  box-shadow: none !important;
}

/* Late-mounted operational components */
body.faro-operational .anac-panel {
  border: 1px solid var(--op-line) !important;
  border-left: 2px solid var(--op-green) !important;
  border-radius: 0 !important;
  background: var(--op-surface) !important;
}

body.faro-operational .anac-head {
  padding: 14px 16px !important;
  border-bottom: 1px solid var(--op-line) !important;
  background: var(--op-surface-2) !important;
}

body.faro-operational .anac-title {
  color: var(--op-green) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 18px !important;
  font-weight: 400;
  letter-spacing: 0 !important;
  text-transform: none;
}

body.faro-operational .anac-meta,
body.faro-operational .anac-row-sub,
body.faro-operational .anac-lot-meta,
body.faro-operational .anac-empty {
  color: var(--op-muted) !important;
}

body.faro-operational .anac-kpis,
body.faro-operational .anac-tools,
body.faro-operational .anac-row,
body.faro-operational .anac-lots,
body.faro-operational .anac-lot-row {
  border-color: var(--op-line) !important;
}

body.faro-operational .anac-kpi {
  border-right-color: var(--op-line) !important;
  background: var(--op-surface) !important;
}

body.faro-operational .anac-kpi b {
  color: var(--op-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 400;
}

body.faro-operational .anac-kpi span {
  color: var(--op-muted) !important;
}

body.faro-operational .anac-row:hover {
  background: rgba(var(--module-tone-rgb), .045) !important;
}

body.faro-operational .anac-lots {
  background: #091216 !important;
}

body.faro-operational .anac-row-title,
body.faro-operational .anac-lot-title {
  color: var(--op-copy) !important;
}

body.faro-operational .anac-reason { color: var(--op-green) !important; }
body.faro-operational .anac-warning { color: var(--op-gold) !important; }
body.faro-operational .anac-amount b { color: var(--module-tone) !important; }

body.faro-operational .rd-ng-back {
  padding: 18px !important;
  background: rgba(2, 6, 8, .9) !important;
  backdrop-filter: blur(2px);
}

body.faro-operational .rd-ng {
  border: 1px solid var(--op-line) !important;
  border-top: 2px solid var(--module-tone) !important;
  border-radius: 0 !important;
  background: var(--op-surface) !important;
  color: var(--op-copy-soft) !important;
  box-shadow: 0 34px 100px rgba(0, 0, 0, .58) !important;
}

body.faro-operational .rd-ng-h {
  min-height: 54px;
  padding: 12px 18px !important;
  border-bottom: 1px solid var(--op-line) !important;
  background: var(--op-surface-2) !important;
}

body.faro-operational .rd-ng-h b {
  color: var(--op-copy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.faro-operational .rd-ng-h button {
  width: 32px;
  height: 32px;
  color: var(--op-muted) !important;
}

body.faro-operational .rd-ng-body {
  padding: 18px !important;
  gap: 12px 18px !important;
}

body.faro-operational .rd-ng label {
  margin-bottom: 6px !important;
  color: var(--op-muted) !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
}

body.faro-operational .rd-ng input,
body.faro-operational .rd-ng select,
body.faro-operational .rd-ng textarea {
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: #091115 !important;
  color: var(--op-copy) !important;
}

body.faro-operational .rd-ng input:focus,
body.faro-operational .rd-ng select:focus,
body.faro-operational .rd-ng textarea:focus {
  border-color: var(--module-tone) !important;
  outline: 1px solid var(--module-tone) !important;
}

body.faro-operational .rd-ng .files,
body.faro-operational .rd-ng .filelist span {
  border-color: var(--op-line) !important;
  border-radius: 0 !important;
  background: var(--op-surface-2) !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .rd-ng-foot {
  padding: 11px 18px !important;
  border-top: 1px solid var(--op-line) !important;
  background: #091115 !important;
}

body.faro-operational .rd-ng-foot .msg {
  color: var(--op-muted) !important;
}

body.faro-operational .rd-ng-foot button {
  min-height: 36px;
  border-radius: 0 !important;
  font-size: 9px !important;
}

body.faro-operational .rd-ng-foot .cancel {
  border: 1px solid var(--op-line) !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .rd-ng-foot .save {
  border: 1px solid var(--module-tone) !important;
  background: var(--module-tone) !important;
  color: var(--op-bg) !important;
}

body.faro-operational .cs-live-file,
body.faro-operational .cs-live-msg,
body.faro-operational .cs-actor {
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: var(--op-surface-2) !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .cs-live-file small,
body.faro-operational .cs-live-msg {
  color: var(--op-muted) !important;
}

body.faro-operational .cs-live-actions a,
body.faro-operational .cs-live-actions button,
body.faro-operational .mog-doc-actions a,
body.faro-operational .mog-doc-actions button {
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .cs-live-actions a:hover,
body.faro-operational .cs-live-actions button:hover,
body.faro-operational .mog-doc-actions a:hover,
body.faro-operational .mog-doc-actions button:hover {
  border-color: var(--module-tone) !important;
  color: var(--op-copy) !important;
}

body.faro-operational .cs-actor strong {
  color: var(--module-tone) !important;
}

body.faro-operational .cs-saved { color: var(--op-green) !important; }

body.faro-operational .mog-cloud {
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .mog-cloud[data-state="online"] {
  border-color: rgba(121, 184, 159, .38) !important;
  background: rgba(121, 184, 159, .08) !important;
  color: var(--op-green) !important;
}

body.faro-operational .mog-cloud[data-state="saving"] {
  border-color: rgba(210, 179, 108, .38) !important;
  background: rgba(210, 179, 108, .08) !important;
  color: var(--op-gold) !important;
}

body.faro-operational .mog-cloud[data-state="error"] {
  border-color: rgba(215, 123, 114, .38) !important;
  background: rgba(215, 123, 114, .08) !important;
  color: var(--op-red) !important;
}

body.faro-mog .mog-phase {
  margin-bottom: 22px !important;
}

body.faro-mog .mog-phase-title {
  margin-bottom: 10px !important;
  padding-bottom: 7px !important;
  border-bottom: 1px solid var(--op-line) !important;
  color: var(--op-muted) !important;
  font-size: 7px !important;
  letter-spacing: .16em !important;
}

body.faro-mog .mog-step-card {
  margin-bottom: 9px !important;
  border: 1px solid var(--op-line) !important;
  border-radius: 0 !important;
  background: var(--op-surface) !important;
}

body.faro-mog .mog-step-card.is-active {
  border-left: 2px solid var(--module-tone) !important;
}

body.faro-mog .mog-step-card.is-done {
  border-left: 2px solid var(--op-green) !important;
}

body.faro-mog .mog-step-head {
  min-height: 55px;
  padding: 10px 13px !important;
  border-bottom: 1px solid var(--op-line-soft);
  background: var(--op-surface-2) !important;
}

body.faro-mog .mog-step-card.is-active .mog-step-head {
  background: rgba(var(--module-tone-rgb), .09) !important;
}

body.faro-mog .mog-step-card.is-done .mog-step-head {
  background: rgba(121, 184, 159, .07) !important;
}

body.faro-mog .mog-step-title {
  color: var(--op-copy) !important;
  font-size: 11px !important;
  font-weight: 650 !important;
}

body.faro-mog .mog-step-meta {
  margin-top: 2px;
  color: var(--op-muted) !important;
  font-size: 8px !important;
  line-height: 1.4;
}

body.faro-mog .mog-step-body {
  padding: 10px 13px 11px !important;
  background: var(--op-surface) !important;
}

body.faro-mog .mog-step-description {
  margin-bottom: 8px !important;
  color: var(--op-copy-soft) !important;
  font-size: 10px !important;
  line-height: 1.5 !important;
}

body.faro-mog .mog-step-check-title {
  margin-bottom: 5px !important;
  color: var(--op-muted) !important;
  font-size: 7px !important;
}

body.faro-mog .mog-step-checks {
  gap: 2px 16px !important;
}

body.faro-mog .mog-step-check {
  padding: 2px 0 !important;
  color: var(--op-copy-soft);
  font-size: 9px !important;
}

body.faro-operational .rd-account-menu {
  border: 1px solid var(--op-line) !important;
  border-top: 2px solid var(--module-tone) !important;
  border-radius: 0 !important;
  background: var(--op-surface) !important;
  color: var(--op-copy) !important;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .52) !important;
  font-family: "Instrument Sans", Aptos, "Segoe UI", sans-serif !important;
}

body.faro-operational .rd-account-profile {
  border-bottom-color: var(--op-line) !important;
}

body.faro-operational .rd-account-profile span {
  color: var(--op-muted) !important;
}

body.faro-operational .rd-account-owner,
body.faro-operational .rd-account-password,
body.faro-operational .rd-account-logout {
  border-radius: 0 !important;
  color: var(--op-copy-soft) !important;
}

body.faro-operational .rd-account-owner:hover,
body.faro-operational .rd-account-password:hover {
  background: rgba(var(--module-tone-rgb), .07) !important;
  color: var(--module-tone) !important;
}

body.faro-operational .rd-account-logout {
  color: #e5a098 !important;
}

body.faro-operational .rd-account-logout:hover {
  background: rgba(215, 123, 114, .08) !important;
}

body.faro-operational,
body.faro-operational * {
  scrollbar-color: rgba(var(--module-tone-rgb), .42) var(--op-bg);
}

body.faro-operational ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

body.faro-operational ::-webkit-scrollbar-track {
  background: var(--op-bg);
}

body.faro-operational ::-webkit-scrollbar-thumb {
  border-radius: 0;
  background: rgba(var(--module-tone-rgb), .42);
}

@media (max-width: 980px) {
  body.faro-operational .content {
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  body.faro-operational .topbar .rd-topbar-meta {
    gap: 8px !important;
  }
}

@media (max-width: 820px) {
  body.faro-operational .topbar {
    height: 50px !important;
    min-height: 50px !important;
    padding: 0 11px !important;
  }

  body.faro-operational .tb-title,
  body.faro-operational .topbar-title {
    font-size: 16px !important;
  }

  body.faro-operational .content {
    padding: 14px 10px calc(78px + env(safe-area-inset-bottom)) !important;
  }

  body.faro-operational .sh,
  body.faro-operational .section-hd {
    min-height: 0;
    align-items: flex-start !important;
    margin-bottom: 12px !important;
    padding-bottom: 10px !important;
  }

  body.faro-operational .st,
  body.faro-operational .section-title {
    font-size: 24px !important;
  }

  body.faro-operational .card,
  body.faro-operational .panel {
    padding: 13px !important;
  }

  body.faro-operational .kpi {
    min-height: 86px;
    padding: 12px !important;
  }

  body.faro-operational .tbl {
    min-width: 640px;
  }

  body.faro-operational .modal-bg {
    align-items: flex-end !important;
    padding: max(6px, env(safe-area-inset-top)) 6px max(6px, env(safe-area-inset-bottom)) !important;
  }

  body.faro-operational .modal {
    max-height: calc(100dvh - 12px) !important;
  }

  body.faro-operational .rd-ng-back {
    align-items: flex-end !important;
    padding: max(6px, env(safe-area-inset-top)) 6px max(6px, env(safe-area-inset-bottom)) !important;
  }

  body.faro-operational .rd-ng {
    max-height: calc(100dvh - 12px) !important;
  }

  body.faro-operational .rd-ng-body {
    padding: 14px 13px !important;
  }

  body.faro-operational .rd-ng-foot {
    padding: 10px 13px calc(10px + env(safe-area-inset-bottom)) !important;
  }

  body.faro-mog .mog-step-head {
    align-items: flex-start !important;
    gap: 10px;
    flex-direction: column;
  }

  body.faro-mog .mog-step-head > div:last-child {
    width: 100%;
  }

  body.faro-mog .mog-step-head > div:last-child .btn {
    width: 100%;
  }

  body.faro-mog .mog-step-checks {
    grid-template-columns: 1fr !important;
  }

  body.faro-operational .mhd,
  body.faro-operational .modal-hd {
    min-height: 50px;
    padding: 10px 13px !important;
  }

  body.faro-operational .mbody,
  body.faro-operational .modal-body {
    padding: 14px 13px !important;
  }

  body.faro-operational .mfoot,
  body.faro-operational .modal-foot {
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding: 10px 13px calc(10px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 760px) {
  body.faro-cantiere #sidebar {
    width: min(88vw, 286px);
    background: var(--op-rail) !important;
  }

  body.faro-cantiere #sidebar.cs-open {
    box-shadow: 18px 0 54px rgba(0, 0, 0, .55) !important;
  }
}

@media (max-width: 480px) {
  body.faro-operational .btn {
    min-height: 38px;
    white-space: normal;
  }

  body.faro-operational .mfoot,
  body.faro-operational .modal-foot {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  body.faro-operational .mfoot .btn,
  body.faro-operational .modal-foot .btn {
    width: 100%;
  }

  body.faro-operational .rd-ng-foot {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  body.faro-operational .rd-ng-foot .msg {
    grid-column: 1;
  }

  body.faro-operational .rd-ng-foot button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.faro-operational *,
  body.faro-operational *::before,
  body.faro-operational *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Final responsive enforcement for the horizontal process table. */
@media (max-width: 820px) {
  body.faro-operational #sb > .op-command-head,
  body.faro-operational #sidebar > .op-command-head {
    display: grid !important;
  }

  body.faro-operational #sb > .op-tabs,
  body.faro-operational #sidebar > .op-tabs {
    display: flex !important;
  }

  body.faro-operational .op-command-head > .sb-logo,
  body.faro-operational .op-command-head > .sb-top,
  body.faro-operational .op-command-head > .sb-user,
  body.faro-operational .op-command-head > .sb-azienda,
  body.faro-operational .op-command-head > .sb-project {
    display: flex !important;
  }

  body.faro-operational .op-command-head > .faro-back-home {
    display: flex !important;
  }
}

/* ==========================================================================
   NEEMIA RSF 4.1 - Tactile system selector
   GUI-only command deck for the Regia. Operational routes remain unchanged.
   ========================================================================== */

body.faro-home .faro-command-deck {
  min-height: 64px;
  display: grid;
  grid-template-columns: 164px minmax(0, 1fr) 184px;
  align-items: stretch;
  gap: 10px;
  padding: 8px 10px;
  border-right: 1px solid var(--home-line);
  border-bottom: 1px solid var(--home-line);
  border-left: 1px solid var(--home-line);
  background: #071116;
}

body.faro-home .faro-command-label {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 14px 0 7px;
  border-right: 1px solid var(--home-line-soft);
}

body.faro-home .faro-command-label span {
  color: #61757f;
  font-size: 7px;
  font-weight: 750;
  letter-spacing: .13em;
  text-transform: uppercase;
}

body.faro-home .faro-command-label strong {
  margin-top: 5px;
  overflow: hidden;
  color: #d7d1c5;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 11px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.faro-home .faro-command-switches {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

body.faro-home .faro-command-switch {
  --command-accent: #d2b36c;
  --command-glow: rgba(210, 179, 108, .62);
  position: relative;
  min-width: 0;
  min-height: 46px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 8px;
  align-items: center;
  gap: 9px;
  padding: 0 13px;
  border: 1px solid #263842;
  border-radius: 2px;
  appearance: none;
  background: linear-gradient(180deg, #14222a 0%, #0b151b 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .06),
    inset 0 -2px 0 #02070a,
    0 3px 0 #02070a,
    0 5px 12px rgba(0, 0, 0, .22);
  color: #a8b3b6;
  cursor: pointer;
  transform: translateY(-1px);
  transition:
    transform .12s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    background-color .18s ease;
}

body.faro-home .faro-command-switch.cantieri {
  --command-accent: #72aa97;
  --command-glow: rgba(114, 170, 151, .62);
}

body.faro-home .faro-command-switch.mog {
  --command-accent: #a99ab4;
  --command-glow: rgba(169, 154, 180, .62);
}

body.faro-home .faro-command-switch:hover {
  border-color: #3a5260;
  color: #e7e2d8;
}

body.faro-home .faro-command-switch:active,
body.faro-home .faro-command-switch[aria-pressed="true"] {
  border-color: var(--command-accent);
  background: #091218;
  box-shadow:
    inset 0 3px 9px rgba(0, 0, 0, .75),
    inset 0 0 0 1px rgba(255, 255, 255, .025),
    0 1px 0 #02070a;
  color: #f1ece1;
  transform: translateY(2px);
}

body.faro-home .faro-command-switch:focus-visible,
body.faro-home .faro-command-enter:focus-visible {
  outline: 2px solid #e2c476;
  outline-offset: 3px;
}

body.faro-home .faro-command-number {
  color: var(--command-accent);
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .08em;
}

body.faro-home .faro-command-name {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  font-weight: 400;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.faro-home .faro-command-led {
  width: 6px;
  height: 6px;
  border: 1px solid #34434a;
  border-radius: 50%;
  background: #17242a;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .8);
}

body.faro-home .faro-command-switch[aria-pressed="true"] .faro-command-led {
  border-color: var(--command-accent);
  background: var(--command-accent);
  box-shadow: 0 0 8px var(--command-glow);
}

body.faro-home .faro-command-enter {
  min-width: 0;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 16px;
  border: 1px solid #b99b58;
  border-radius: 2px;
  background: #c9aa64;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .3),
    0 3px 0 #5b4724;
  color: #071116;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
  transform: translateY(-1px);
  transition: transform .12s ease, background-color .18s ease, box-shadow .12s ease;
}

body.faro-home .faro-command-enter:hover {
  background: #dfc27d;
  color: #071116;
}

body.faro-home .faro-command-enter:active {
  box-shadow: inset 0 3px 8px rgba(58, 40, 10, .42), 0 1px 0 #5b4724;
  transform: translateY(2px);
}

body.faro-home .faro-command-enter span:last-child {
  font-size: 17px;
  font-weight: 400;
}

body.faro-home .faro-module.is-selected {
  z-index: 1;
  background: #101c21;
  box-shadow: inset 0 0 0 1px var(--module-accent);
}

body.faro-home .faro-module.is-selected::before {
  transform: scaleX(1);
}

body.faro-home .faro-module.is-selected .faro-module-index {
  color: rgba(255, 255, 255, .075);
}

@media (max-width: 820px) {
  body.faro-home .faro-command-deck {
    min-height: 58px;
    grid-template-columns: minmax(0, 1fr) 46px;
    gap: 7px;
    padding: 7px;
  }

  body.faro-home .faro-command-label { display: none; }
  body.faro-home .faro-command-switches { gap: 6px; }

  body.faro-home .faro-command-switch {
    min-height: 42px;
    grid-template-columns: auto minmax(0, 1fr) 6px;
    gap: 6px;
    padding: 0 8px;
  }

  body.faro-home .faro-command-number { font-size: 6px; }
  body.faro-home .faro-command-name { font-size: 10px; }
  body.faro-home .faro-command-led { width: 5px; height: 5px; }

  body.faro-home .faro-command-enter {
    width: 46px;
    min-height: 42px;
    justify-content: center;
    padding: 0;
  }

  body.faro-home .faro-command-enter span:first-child { display: none; }
  body.faro-home .faro-command-enter span:last-child { font-size: 18px; }
}

@media (max-width: 430px) {
  body.faro-home { min-width: 0; }

  body.faro-home .faro-command-switch {
    grid-template-columns: minmax(0, 1fr) 5px;
    padding: 0 7px;
  }

  body.faro-home .faro-command-number { display: none; }
  body.faro-home .faro-command-name { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  body.faro-home .faro-command-switch,
  body.faro-home .faro-command-enter {
    transition: none;
  }
}

/* ==========================================================================
   NEEMIA RSF 4.2 - Legibility and interaction finish
   Visual refinements only. Data structures and operational flows are unchanged.
   ========================================================================== */

body.faro-home a,
body.faro-home button,
body.faro-operational a,
body.faro-operational button {
  -webkit-tap-highlight-color: rgba(210, 179, 108, .16);
}

body.faro-home button,
body.faro-operational button,
body.faro-operational [role="button"] {
  cursor: pointer;
}

body.faro-home a:focus-visible,
body.faro-home button:focus-visible,
body.faro-operational a:focus-visible,
body.faro-operational button:focus-visible,
body.faro-operational input:focus-visible,
body.faro-operational select:focus-visible,
body.faro-operational textarea:focus-visible {
  outline: 2px solid var(--module-tone, var(--home-gold, #d2b36c)) !important;
  outline-offset: 3px;
}

body.faro-home .faro-command-label span,
body.faro-home .faro-command-number {
  font-size: 8px;
}

body.faro-home .faro-command-enter {
  font-size: 10px;
}

body.faro-home .faro-module-code,
body.faro-home .faro-module-state,
body.faro-home .faro-module-subtitle,
body.faro-home .faro-module-metrics span,
body.faro-home .faro-module-actions small {
  font-size: 8px;
}

body.faro-home .faro-module-alert {
  font-size: 9.5px;
}

body.faro-operational .op-command-head .sb-logo-sub,
body.faro-operational .op-command-head .sb-brand-sub {
  font-size: 8px !important;
}

body.faro-operational .op-tabs {
  scroll-padding-inline: 10px;
  scroll-snap-type: x proximity;
}

body.faro-operational .op-tabs .si,
body.faro-operational .op-tabs .sb-item,
body.faro-operational .op-tabs .sb-item[data-view="overview"] {
  font-size: 9.5px !important;
  scroll-snap-align: start;
}

body.faro-operational .op-tabs .si > span:first-child,
body.faro-operational .op-tabs .sb-icon {
  font-size: 9.5px !important;
}

body.faro-operational .topbar .rd-topbar-meta a[href="index.html"] {
  display: none !important;
}

body.faro-operational .tbl th {
  font-size: 8px !important;
}

body.faro-operational .btn-xs,
body.faro-operational .badge,
body.faro-operational .bgr {
  font-size: 9px !important;
}

body.faro-operational .btn-sm,
body.faro-operational .fl,
body.faro-operational .kl {
  font-size: 9.5px !important;
}

@media (max-width: 820px) {
  body.faro-home .faro-module-code,
  body.faro-home .faro-module-subtitle {
    font-size: 7px;
  }

  body.faro-home .faro-module-state,
  body.faro-home .faro-module-metrics span {
    font-size: 7.5px;
  }

  body.faro-home .faro-signal-intro b,
  body.faro-home .faro-signal-item b {
    font-size: 9px;
  }

  body.faro-home .faro-signal-item span {
    font-size: 7px;
  }

  body.faro-home .faro-signal-item.good b::after {
    font-size: 9px;
  }

  body.faro-operational .op-tabs {
    height: 46px;
  }

  body.faro-operational .op-tabs .si,
  body.faro-operational .op-tabs .sb-item,
  body.faro-operational .op-tabs .sb-item[data-view="overview"] {
    min-height: 46px;
    padding-inline: 13px !important;
    font-size: 9.5px !important;
  }
}

@media (min-width: 821px) and (max-height: 780px) {
  body.faro-home .faro-main {
    padding-bottom: 8px;
  }
}

@media (max-width: 820px) {
  body {
    padding-bottom: calc(var(--rd-nav-h) + env(safe-area-inset-bottom)) !important;
  }

  .rd-pwa {
    bottom: calc(var(--rd-nav-h) + 14px + env(safe-area-inset-bottom)) !important;
  }
}

/* ==========================================================================
   NEEMIA RSF 4.3 - Command preview and measured legibility
   ========================================================================== */

body.faro-home .faro-command-switch.is-preview:not([aria-pressed="true"]) {
  z-index: 2;
  border-color: var(--command-accent);
  background: linear-gradient(180deg, #1a2b34 0%, #0c181e 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .1),
    0 0 0 1px color-mix(in srgb, var(--command-accent) 42%, transparent),
    0 0 20px color-mix(in srgb, var(--command-glow) 42%, transparent),
    0 5px 12px rgba(0, 0, 0, .3);
  color: #fffaf0;
  transform: translateY(-2px);
}

body.faro-home[data-command-preview] .faro-command-switch[aria-pressed="true"]:not(.is-preview) {
  opacity: .72;
}

body.faro-home .faro-command-switch.is-preview .faro-command-led {
  border-color: var(--command-accent);
  background: var(--command-accent);
  box-shadow: 0 0 10px var(--command-glow);
}

body.faro-home .faro-module {
  transition: background-color .24s ease, box-shadow .24s ease, opacity .24s ease;
}

body.faro-home[data-command-preview] .faro-module:not(.is-preview) {
  opacity: .62;
}

body.faro-home .faro-module.is-preview {
  z-index: 2;
  background: #13242b;
  box-shadow:
    inset 0 0 0 1px var(--module-accent),
    0 14px 34px rgba(0, 0, 0, .3);
}

body.faro-home .faro-module.is-preview::before {
  height: 3px;
  transform: scaleX(1);
}

body.faro-home .faro-command-label span,
body.faro-home .faro-command-number {
  font-size: 9px;
}

body.faro-home .faro-command-label strong {
  font-size: 12px;
}

body.faro-home .faro-command-name {
  font-size: 13px;
}

body.faro-home .faro-module-code,
body.faro-home .faro-module-state,
body.faro-home .faro-module-subtitle,
body.faro-home .faro-module-metrics span,
body.faro-home .faro-module-actions small {
  font-size: 9px;
}

body.faro-home .faro-module > p {
  font-size: 12px;
}

body.faro-home .faro-module-alert {
  font-size: 10.5px;
}

body.faro-home .faro-open {
  font-size: 11px;
}

body.faro-home .faro-signal-intro span,
body.faro-home .faro-signal-item span {
  font-size: 8px;
}

body.faro-home .faro-signal-intro b,
body.faro-home .faro-signal-item b {
  font-size: 10px;
}

body.faro-operational .op-tabs .si,
body.faro-operational .op-tabs .sb-item,
body.faro-operational .op-tabs .sb-item[data-view="overview"] {
  font-size: 10.5px !important;
}

body.faro-operational .tbl th {
  font-size: 9px !important;
}

body.faro-operational .btn-xs,
body.faro-operational .badge,
body.faro-operational .bgr {
  font-size: 10px !important;
}

body.faro-operational .btn-sm,
body.faro-operational .fl,
body.faro-operational .kl {
  font-size: 10.5px !important;
}

@media (max-width: 820px) {
  body.faro-home .faro-command-name { font-size: 10px; }

  body.faro-home .faro-module-code,
  body.faro-home .faro-module-subtitle { font-size: 8px; }

  body.faro-home .faro-module-state,
  body.faro-home .faro-module-metrics span { font-size: 8.5px; }

  body.faro-home .faro-module > p { font-size: 11.5px; }
  body.faro-home .faro-module-alert { font-size: 10px; }

  body.faro-home[data-command-preview] .faro-module:not(.is-preview) {
    opacity: 1;
  }
}

@media (max-width: 430px) {
  body.faro-home .faro-stage {
    min-height: 185px;
    height: 185px;
    max-height: 185px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.faro-home .faro-module { transition: none; }
}

/* Mobile performance: preserve the visual language without continuous GPU work. */
@media (max-width: 820px), (pointer: coarse) {
  body.faro-home .faro-top {
    background: #060c0f;
    backdrop-filter: none;
  }

  body.faro-home .faro-stage::before {
    animation: none;
  }

  body.faro-home .faro-module {
    transition: background-color .16s ease, opacity .16s ease;
  }

  body.faro-operational .modal-bg,
  body.faro-operational .rd-ng-back {
    backdrop-filter: none;
  }
}
