* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; }
html { color-scheme: light; }
body {
  font-family: var(--nv-font);
  background: var(--nv-bg);
  color: var(--nv-ink);
  font-size: 13px;
  line-height: 1.4;
  overflow: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button, input, select, textarea, summary, a { outline: none; }
:focus-visible { outline: 3px solid var(--nv-focus-outline); outline-offset: 2px; box-shadow: none !important; border-color: var(--nv-line-focus) !important; }
::selection { background: var(--nv-blue-soft); color: var(--nv-blue-strong); }
.mono, .money { font-family: var(--nv-mono); font-variant-numeric: tabular-nums lining-nums; }
.muted { color: var(--nv-muted); }
.small { font-size: 11px; }
.eyebrow { margin: 0; color: var(--nv-blue); font-size: 10px; font-weight: 800; letter-spacing: .105em; text-transform: uppercase; }
.right { text-align: right; }
.w-full { width: 100%; }
.mt-1 { margin-top: 7px; }
.mt-2 { margin-top: 10px; }
.pt-1 { padding-top: 8px; }
.overflow-auto { overflow: auto; }
.max-w-760 { max-width: 760px; }
.min-h-190 { min-height: 190px; }
.min-h-235 { min-height: 235px; }
.max-h-200 { max-height: 200px; }
.max-h-260 { max-height: 260px; }
.flex-between { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.nv-icon { width: 19px; height: 19px; display: block; flex: 0 0 auto; }
.skip-link { position: fixed; z-index: 200; top: 8px; left: 8px; transform: translateY(-160%); padding: 8px 12px; border-radius: var(--nv-radius-sm); background: var(--nv-ink); color: var(--nv-white); }
.skip-link:focus { transform: translateY(0); }

.nv-app { min-height: 100vh; }
.nv-rail {
  position: fixed;
  z-index: 50;
  inset: 0 auto 0 0;
  width: var(--nv-rail);
  overflow: hidden;
  border-right: 1px solid var(--nv-line);
  background: var(--nv-paper);
  box-shadow: var(--nv-shadow-rail);
  transition: width var(--nv-normal) ease, transform var(--nv-normal) ease;
}
.nv-rail:hover, .nv-rail:focus-within, .nv-app.rail-pinned .nv-rail { width: var(--nv-rail-open); }
.rail-brand { height: var(--nv-top); display: flex; align-items: center; gap: 10px; padding: 0 11px; border-bottom: 1px solid var(--nv-line); white-space: nowrap; }
.brand-shield, .brand-mark {
  width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center;
  border: 1px solid var(--nv-blue-line); border-radius: 11px; background: var(--nv-paper);
  color: var(--nv-blue-strong); font-weight: 900; font-size: 15px; box-shadow: var(--nv-shadow-brand-inset);
}
.brand-shield { width: 32px; height: 32px; flex-basis: 32px; }
.brand-copy { min-width: 0; opacity: 0; transition: opacity var(--nv-fast); }
.brand-copy strong, .brand-copy span { display: block; overflow: hidden; text-overflow: ellipsis; }
.brand-copy strong { font-size: 14px; line-height: 1.15; }
.brand-copy span { margin-top: 2px; color: var(--nv-muted); font-size: 10px; }
.nv-rail:hover .brand-copy, .nv-rail:focus-within .brand-copy, .rail-pinned .brand-copy { opacity: 1; }
.rail-pin { margin-left: auto; width: 28px; height: 28px; border: 0; border-radius: var(--nv-radius-sm); background: transparent; color: var(--nv-muted); opacity: 0; display: grid; place-items: center; }
.rail-pin:hover { background: var(--nv-blue-soft); color: var(--nv-blue); }
.nv-rail:hover .rail-pin, .nv-rail:focus-within .rail-pin, .rail-pinned .rail-pin { opacity: 1; }
.rail-section { padding: 12px 11px 5px; color: var(--nv-muted); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; opacity: 0; }
.nv-rail:hover .rail-section, .nv-rail:focus-within .rail-section, .rail-pinned .rail-section { opacity: 1; }
.rail-nav { display: flex; flex-direction: column; gap: 2px; padding: 0 6px; }
.rail-link, .rail-logout {
  position: relative; height: 36px; width: 100%; display: flex; align-items: center; gap: 12px; padding: 0 9px;
  border: 0; border-radius: 9px; background: transparent; color: var(--nv-muted-strong); white-space: nowrap;
  transition: color var(--nv-fast), background var(--nv-fast), transform var(--nv-fast);
}
.rail-link:hover, .rail-logout:hover { background: var(--nv-blue-faint); color: var(--nv-blue-strong); }
.rail-link.active { color: var(--nv-blue-strong); background: var(--nv-blue-soft); border-left: 3px solid var(--nv-blue); }
.rail-icon { width: 24px; min-width: 24px; display: grid; place-items: center; }
.rail-label { overflow: hidden; text-overflow: ellipsis; opacity: 0; font-size: 11px; font-weight: 720; transition: opacity var(--nv-fast); }
.nv-rail:hover .rail-label, .nv-rail:focus-within .rail-label, .rail-pinned .rail-label { opacity: 1; }
.nv-rail:not(:hover):not(:focus-within) .rail-link::after {
  content: attr(data-label); position: absolute; left: 47px; top: 50%; transform: translateY(-50%); pointer-events: none;
  padding: 5px 8px; border-radius: 7px; background: var(--nv-ink); color: var(--nv-white); font-size: 10px; font-weight: 700;
  opacity: 0; white-space: nowrap; box-shadow: var(--nv-shadow); transition: opacity var(--nv-fast);
}
.nv-app:not(.rail-pinned) .nv-rail:not(:hover):not(:focus-within) .rail-link:hover::after { opacity: 1; }
.rail-footer { position: absolute; left: 6px; right: 6px; bottom: 7px; }
.rail-user { padding: 7px; border: 1px solid var(--nv-line); border-radius: 10px; background: var(--nv-paper-soft); }
.rail-user-head { display: flex; align-items: center; gap: 10px; }
.avatar { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; border-radius: 50%; background: var(--nv-blue-soft); color: var(--nv-blue-strong); font-weight: 850; }
.user-copy { min-width: 0; flex: 1; opacity: 0; transition: opacity var(--nv-fast); }
.user-copy strong, .user-copy span { display: block; overflow: hidden; text-overflow: ellipsis; }
.user-copy strong { font-size: 10px; }
.user-copy span { color: var(--nv-muted); font-size: 10px; }
.nv-rail:hover .user-copy, .nv-rail:focus-within .user-copy, .rail-pinned .user-copy { opacity: 1; }
.rail-logout-form { margin: 5px 0 0; }
.rail-logout { height: 30px; padding-left: 8px; }
.rail-logout .nv-icon { width: 16px; height: 16px; }

.nv-topbar {
  position: fixed; z-index: 40; top: 0; left: var(--nv-rail); right: 0; height: var(--nv-top);
  display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 16px;
  border-bottom: 1px solid var(--nv-line); background: var(--nv-glass); backdrop-filter: blur(15px) saturate(130%);
  transition: left var(--nv-normal) ease;
}
.rail-pinned .nv-topbar { left: var(--nv-rail-open); }
.mobile-nav-toggle { display: none; width: 32px; height: 32px; padding: 0; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-sm); background: var(--nv-paper); color: var(--nv-ink-soft); align-items: center; justify-content: center; }
.top-title { min-width: 0; display: flex; align-items: baseline; gap: 9px; }
.top-title strong { font-size: 14px; white-space: nowrap; }
.top-title span { min-width: 0; overflow: hidden; color: var(--nv-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.top-actions { display: flex; align-items: center; gap: 7px; }
.release-lock { height: 25px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px; border: 1px solid var(--nv-amber-line); border-radius: var(--nv-radius-pill); background: var(--nv-amber-soft); color: var(--nv-amber); font-size: 10px; font-weight: 800; white-space: nowrap; }
.release-lock.off { border-color: var(--nv-red-line); background: var(--nv-red-soft); color: var(--nv-red); }
.version-chip { color: var(--nv-muted); font-family: var(--nv-mono); font-size: 10px; }
.mobile-overlay { display: none; }

.nv-main { position: fixed; inset: var(--nv-top) 0 0 var(--nv-rail); padding: 11px 13px 13px; overflow: hidden; transition: left var(--nv-normal) ease; }
.rail-pinned .nv-main { left: var(--nv-rail-open); }
.page { height: 100%; min-width: 0; display: flex; flex-direction: column; gap: 9px; }
.page-head { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.page-title { min-width: 0; }
.page-title h1 { margin: 1px 0 0; font-size: 20px; line-height: 1.2; letter-spacing: -.025em; }
.page-title p:not(.eyebrow) { margin: 3px 0 0; color: var(--nv-muted); font-size: 11px; }
.page-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.next-action { min-height: 38px; display: flex; align-items: center; gap: 9px; padding: 7px 11px; border: 1px solid var(--nv-blue-line); border-radius: var(--nv-radius-md); background: var(--nv-paper); }
.next-action strong { color: var(--nv-blue-strong); font-size: 10px; white-space: nowrap; }
.next-action span { color: var(--nv-muted); font-size: 10px; }

.btn { height: 30px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 10px; border: 1px solid var(--nv-line-strong); border-radius: var(--nv-radius-sm); background: var(--nv-paper); color: var(--nv-ink-soft); font-size: 11px; font-weight: 740; line-height: 1; white-space: nowrap; transition: border-color var(--nv-fast), background var(--nv-fast), color var(--nv-fast), transform var(--nv-fast); }
.btn:hover { border-color: var(--nv-line-hover); background: var(--nv-paper-soft); color: var(--nv-ink); }
.btn:active { transform: translateY(1px); }
.btn.primary { border-color: var(--nv-blue); background: var(--nv-blue); color: var(--nv-white); }
.btn.primary:hover { border-color: var(--nv-blue-strong); background: var(--nv-blue-strong); color: var(--nv-white); }
.btn.danger { border-color: var(--nv-red-line); background: var(--nv-red-faint); color: var(--nv-red); }
.btn.ghost { border-color: transparent; background: transparent; }
.btn.icon { width: 30px; padding: 0; }
.btn.small { height: 25px; padding: 0 8px; font-size: 10px; }
.btn:disabled { cursor: not-allowed; opacity: .48; transform: none; }

.card, .table-shell { min-width: 0; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-md); background: var(--nv-paper); box-shadow: var(--nv-shadow-card); }
.card-head { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 11px; border-bottom: 1px solid var(--nv-line); }
.card-head h2, .card-head h3 { margin: 0; font-size: 12px; }
.card-body { padding: 11px; }
.card-fill { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.kpi-grid.kpi-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kpi { position: relative; min-height: 68px; overflow: hidden; padding: 9px 11px; transition: border-color var(--nv-fast), box-shadow var(--nv-fast), transform var(--nv-fast); }
a.kpi:hover { border-color: var(--nv-line-hover); box-shadow: var(--nv-shadow); transform: translateY(-1px); }
.kpi::after { content: ""; position: absolute; right: -17px; top: -20px; width: 62px; height: 62px; border-radius: 50%; background: var(--nv-blue-soft); opacity: .8; }
.kpi.warn::after { background: var(--nv-amber-soft); }
.kpi.bad::after { background: var(--nv-red-soft); }
.kpi.ok::after { background: var(--nv-green-soft); }
.kpi-label { position: relative; z-index: 1; color: var(--nv-muted); font-size: 10px; font-weight: 760; letter-spacing: .045em; text-transform: uppercase; }
.kpi-value { position: relative; z-index: 1; margin-top: 5px; font-size: 22px; font-weight: 850; line-height: 1; }
.kpi-note { position: relative; z-index: 1; margin-top: 5px; color: var(--nv-muted); font-size: 10px; }
.grid-2 { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .75fr); gap: 9px; }
.grid-even { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.stack { min-height: 0; display: flex; flex-direction: column; gap: 8px; }

.alert { padding: 8px 10px; border: 1px solid; border-radius: var(--nv-radius-sm); font-size: 11px; }
.alert.ok { border-color: var(--nv-green-line); background: var(--nv-green-soft); color: var(--nv-green); }
.alert.warn { border-color: var(--nv-amber-line); background: var(--nv-amber-soft); color: var(--nv-amber); }
.alert.bad { border-color: var(--nv-red-line); background: var(--nv-red-soft); color: var(--nv-red); }
.alert.info { border-color: var(--nv-blue-line); background: var(--nv-blue-soft); color: var(--nv-blue-strong); }
.flash-stack { position: fixed; z-index: 90; top: 61px; right: 14px; width: min(370px, calc(100vw - 28px)); display: flex; flex-direction: column; gap: 7px; }
.flash { position: relative; padding-right: 38px; background: var(--nv-paper); box-shadow: var(--nv-shadow); }
.flash-dismiss { position: absolute; top: 5px; right: 5px; }
.badge { height: 21px; display: inline-flex; align-items: center; gap: 5px; padding: 0 7px; border: 1px solid transparent; border-radius: var(--nv-radius-pill); font-size: 10px; font-weight: 820; white-space: nowrap; }
.badge.ok { border-color: var(--nv-green-line); background: var(--nv-green-soft); color: var(--nv-green); }
.badge.warn { border-color: var(--nv-amber-line); background: var(--nv-amber-soft); color: var(--nv-amber); }
.badge.bad { border-color: var(--nv-red-line); background: var(--nv-red-soft); color: var(--nv-red); }
.badge.info { border-color: var(--nv-blue-line); background: var(--nv-blue-soft); color: var(--nv-blue); }
.badge.muted { border-color: var(--nv-line); background: var(--nv-paper-soft); color: var(--nv-muted-strong); }
.dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--nv-neutral); }
.dot.ok { background: var(--nv-green); }
.dot.bad { background: var(--nv-red); }
.dot.warn { background: var(--nv-orange); }
.dot.info { background: var(--nv-blue); }
.dot.purple { background: var(--ledger-blue); }

.filters { display: flex; align-items: flex-end; gap: 7px; padding: 7px; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-md); background: var(--nv-paper); flex-wrap: wrap; }
.field { min-width: 116px; display: flex; flex-direction: column; gap: 3px; }
.field.grow { min-width: 210px; flex: 1; }
.field label, .form-grid > label, .menu-pop label { color: var(--nv-muted-strong); font-size: 10px; font-weight: 780; letter-spacing: .025em; }
input, select, textarea { width: 100%; border: 1px solid var(--nv-line-strong); border-radius: 7px; background: var(--nv-paper); transition: border-color var(--nv-fast), box-shadow var(--nv-fast), background var(--nv-fast); }
input, select { height: 30px; padding: 0 8px; }
textarea { min-height: 68px; padding: 7px 8px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: var(--nv-line-hover); }
input:disabled, select:disabled, textarea:disabled { background: var(--nv-paper-soft); color: var(--nv-muted); }
input[type="file"] { padding: 4px 6px; }
input[type="checkbox"], input[type="radio"] { width: 15px; height: 15px; margin: 0; accent-color: var(--nv-blue); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.form-grid > label { display: flex; flex-direction: column; gap: 4px; }
.span-2 { grid-column: 1 / -1; }
.check-field { flex-direction: row !important; align-items: center; gap: 7px !important; }
.help { color: var(--nv-muted); font-size: 10px; }

.table-shell { min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.table-toolbar { min-height: 37px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 10px; border-bottom: 1px solid var(--nv-line); }
.table-toolbar strong { font-size: 11px; }
.table-scroll { min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.data-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 10.5px; }
.data-table th, .data-table td { height: var(--nv-row); padding: 4px 7px; border-bottom: 1px solid var(--nv-line-soft); vertical-align: middle; white-space: nowrap; }
.data-table th { position: sticky; z-index: 3; top: 0; background: var(--nv-paper-soft); color: var(--nv-muted-strong); font-size: 10px; font-weight: 820; letter-spacing: .035em; text-align: left; text-transform: uppercase; }
.data-table th.right { text-align: right; }
.data-table tbody tr { transition: background var(--nv-fast); }
.data-table tbody tr:hover { background: var(--nv-blue-faint); }
.data-table tbody tr:last-child td { border-bottom: 0; }
.sticky-right { position: sticky; right: 0; z-index: 2; background: inherit; box-shadow: var(--nv-shadow-sticky); }
th.sticky-right { z-index: 4; background: var(--nv-paper-soft); }
.row-link { color: var(--nv-blue-strong); font-weight: 780; }
.row-link:hover { text-decoration: underline; text-underline-offset: 2px; }
.difference.negative { color: var(--nv-red); }
.difference.positive { color: var(--nv-green); }
.pagination { min-height: 37px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 10px; border-top: 1px solid var(--nv-line); color: var(--nv-muted); font-size: 10px; }
.empty { min-height: 150px; display: grid; place-items: center; padding: 20px; color: var(--nv-muted); text-align: center; }
.empty strong { display: block; margin-bottom: 4px; color: var(--nv-ink); font-size: 12px; }

.workspace-list { overflow: auto; }
.workspace-row { min-width: 850px; min-height: 46px; display: grid; grid-template-columns: minmax(180px, 1.15fr) 112px minmax(150px, .9fr) repeat(4, 66px) 22px; align-items: center; gap: 8px; padding: 6px 9px; border-bottom: 1px solid var(--nv-line-soft); transition: background var(--nv-fast); }
.workspace-row:hover { background: var(--nv-blue-faint); }
.workspace-name { min-width: 0; }
.workspace-name strong, .workspace-name span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workspace-name strong { font-size: 11px; }
.workspace-name span { margin-top: 2px; color: var(--nv-muted); font-size: 10px; }
.metric { text-align: right; }
.metric strong, .metric span { display: block; }
.metric strong { font-family: var(--nv-mono); font-size: 11px; }
.metric span { color: var(--nv-muted); font-size: 10px; text-transform: uppercase; }
.mini-coverage { height: 5px; overflow: hidden; border-radius: var(--nv-radius-pill); background: var(--nv-line); }
.mini-coverage > span { height: 100%; display: block; border-radius: inherit; background: var(--nv-blue); }
progress.mini-coverage { width: 100%; appearance: none; border: 0; }
progress.mini-coverage::-webkit-progress-bar { border-radius: var(--nv-radius-pill); background: var(--nv-line); }
progress.mini-coverage::-webkit-progress-value { border-radius: var(--nv-radius-pill); background: var(--nv-blue); }
progress.mini-coverage::-moz-progress-bar { border-radius: var(--nv-radius-pill); background: var(--nv-blue); }
.task-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.task { min-height: 54px; padding: 8px 10px; }
.timeline { display: flex; flex-direction: column; }
.timeline-item { position: relative; padding: 7px 7px 7px 17px; border-left: 1px solid var(--nv-line); }
.timeline-item::before { content: ""; position: absolute; top: 12px; left: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--nv-blue); }
.timeline-item strong, .timeline-item span { display: block; }
.timeline-item strong { font-size: 10px; }
.timeline-item span { margin-top: 2px; color: var(--nv-muted); font-size: 10px; }

.coverage-block { padding: 10px; }
.coverage-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.coverage-title strong { font-size: 18px; }
.coverage-title span { color: var(--nv-muted); font-size: 10px; }
.coverage-bar { height: 10px; display: flex; overflow: hidden; margin-top: 7px; border-radius: var(--nv-radius-pill); background: var(--nv-line); }
.coverage-bar .seg { height: 100%; }
.seg.matched { background: var(--nv-green); }
.seg.diff { background: var(--nv-red); }
.seg.partial { background: var(--nv-orange); }
.seg.identity { background: var(--ledger-blue); }
.seg.pending { background: var(--nv-neutral); }
.coverage-legend { display: flex; gap: 9px; margin-top: 7px; flex-wrap: wrap; }
.legend-item { display: inline-flex; align-items: center; gap: 5px; color: var(--nv-muted); font-size: 10px; }
.legend-item b { color: var(--nv-ink); font-family: var(--nv-mono); }
.pool-grid { display: grid; grid-template-columns: minmax(130px, 1fr) repeat(3, minmax(100px, .7fr)); gap: 0; }
.pool-grid > div { padding: 7px; border-bottom: 1px solid var(--nv-line); }
.pool-name { font-weight: 760; }
.detail-grid { min-height: 0; flex: 1; display: grid; grid-template-columns: 1.1fr .9fr; gap: 9px; }
.detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.detail-title h1 { margin: 0; font-size: 19px; }
.definition { display: grid; grid-template-columns: 150px 1fr; }
.definition dt, .definition dd { margin: 0; padding: 7px 8px; border-bottom: 1px solid var(--nv-line-soft); }
.definition dt { color: var(--nv-muted); font-size: 10px; font-weight: 820; text-transform: uppercase; }
.definition dd { min-width: 0; overflow-wrap: anywhere; font-size: 11px; }

.rule-layout { min-height: 0; flex: 1; display: grid; grid-template-columns: 260px minmax(0, 1fr) 330px; gap: 9px; }
.step-nav { padding: 8px; }
.step { margin-bottom: 5px; padding: 9px; border: 1px solid transparent; border-radius: 9px; }
.step.active { border-color: var(--nv-blue-line); background: var(--nv-blue-soft); }
.step strong { display: block; font-size: 11px; }
.step span { color: var(--nv-muted); font-size: 10px; }
.formula-card { overflow: hidden; margin-bottom: 8px; border: 1px solid var(--nv-line); border-radius: 9px; }
.formula-head { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 9px; border-bottom: 1px solid var(--nv-line); background: var(--nv-paper-soft); }
.formula-body { padding: 9px; }
.formula-row { display: grid; grid-template-columns: minmax(0, 1fr) 92px 28px; gap: 6px; margin-bottom: 6px; }
.formula-side { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.formula-box { padding: 8px; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-sm); background: var(--nv-paper-soft); }
.formula-box h4 { margin: 0 0 7px; color: var(--nv-muted); font-size: 10px; text-transform: uppercase; }
.column-chip { display: inline-flex; margin: 2px; padding: 4px 6px; border-radius: 6px; background: var(--nv-bg-subtle); font-size: 10px; }
.impact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.impact { padding: 8px; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-sm); }
.impact span { display: block; color: var(--nv-muted); font-size: 10px; text-transform: uppercase; }
.impact strong { display: block; margin-top: 4px; font-family: var(--nv-mono); }
.impact-policy-table td:first-child { max-width: 230px; }
.advanced-details { margin-top: 8px; padding-top: 7px; border-top: 1px solid var(--nv-line); }
.advanced-details summary { cursor: pointer; padding: 4px 0; color: var(--nv-blue); font-size: 10px; font-weight: 800; }

.drawer { position: fixed; z-index: 100; top: var(--nv-top); right: 0; bottom: 0; width: min(var(--nv-drawer), 100vw); border-left: 1px solid var(--nv-line); background: var(--nv-paper); box-shadow: var(--nv-shadow-float); transform: translateX(100%); transition: transform var(--nv-normal); }
.drawer.open { transform: translateX(0); }
.drawer-head { height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 12px; border-bottom: 1px solid var(--nv-line); }
.drawer-body { height: calc(100% - 48px); overflow: auto; padding: 11px; }
.tabs { height: 32px; display: flex; gap: 3px; border-bottom: 1px solid var(--nv-line); }
.tab { display: flex; align-items: center; padding: 0 9px; border-bottom: 2px solid transparent; color: var(--nv-muted); font-size: 10px; font-weight: 760; }
.tab.active { border-bottom-color: var(--nv-blue); color: var(--nv-blue); }
.menu { position: relative; }
.menu summary { list-style: none; }
.menu summary::-webkit-details-marker { display: none; }
.menu-pop { position: absolute; z-index: 30; top: 33px; right: 0; width: 270px; padding: 9px; border: 1px solid var(--nv-line); border-radius: 10px; background: var(--nv-paper); box-shadow: var(--nv-shadow); }
.menu-pop form { display: flex; flex-direction: column; gap: 7px; }
.menu-pop h4 { margin: 0; font-size: 11px; }

.policy-kpi-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.policy-kpi-strip > div { min-width: 0; min-height: 54px; display: flex; flex-direction: column; justify-content: center; padding: 8px 9px; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-md); background: var(--nv-paper); }
.policy-kpi-strip span { color: var(--nv-muted); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.policy-kpi-strip strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.policy-obligations { min-height: 310px; }
.evidence-list, .audit-list, .approval-list { overflow: auto; }
.evidence-list { display: flex; flex-direction: column; gap: 8px; }
.evidence-card { display: grid; gap: 7px; padding: 9px; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-md); background: var(--nv-paper); }
.evidence-card > div:first-child { display: flex; flex-direction: column; }
.evidence-card span { color: var(--nv-muted); font-size: 10px; }
.evidence-amounts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.evidence-amounts span { display: flex; flex-direction: column; padding: 5px 6px; border-radius: var(--nv-radius-sm); background: var(--nv-paper-soft); }
.evidence-amounts b { color: var(--nv-ink); font-variant-numeric: tabular-nums; }
.evidence-actions { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.policy-360 .detail-grid { grid-template-columns: minmax(0, 1.65fr) minmax(350px, .85fr); }
.evidence-file-help { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 4px; }
.evidence-file-help div { padding: 7px; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-sm); background: var(--nv-paper-soft); font-size: 10px; }
.evidence-file-help strong { display: block; margin-bottom: 2px; }
.health-note { color: var(--nv-muted); font-size: 10px; font-weight: 600; }
.check-row.optional strong { color: var(--nv-muted); }

.approval-list { display: flex; flex-direction: column; gap: 8px; }
.approval-card { flex: none; }
.approval-card .card-head > div { display: flex; flex-direction: column; gap: 2px; }
.approval-body { display: grid; grid-template-columns: 190px minmax(330px, 1.25fr) minmax(230px, .8fr) 250px; gap: 9px; padding: 9px; }
.approval-source, .approval-contract, .approval-change, .approval-action { min-width: 0; padding: 9px; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-sm); background: var(--nv-paper-soft); }
.approval-source { display: flex; flex-direction: column; gap: 5px; }
.approval-source span, .approval-change p { margin: 3px 0; color: var(--nv-muted); font-size: 10px; }
.approval-formula { display: grid; grid-template-columns: 75px 1fr 1fr; gap: 7px; padding: 5px 0; border-bottom: 1px solid var(--nv-line); font-size: 10px; }
.approval-formula:last-child { border-bottom: 0; }
.approval-formula span { color: var(--nv-muted); }
.approval-action { display: flex; flex-direction: column; gap: 7px; }
.approval-action label { display: flex; flex-direction: column; gap: 4px; color: var(--nv-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }

.install-body, .login-body { min-height: 100%; overflow: auto; background: var(--nv-bg); }
.install-shell { min-height: 100vh; max-width: 1180px; display: grid; grid-template-columns: minmax(320px, .85fr) minmax(520px, 1.15fr); align-items: center; gap: 34px; margin: auto; padding: 34px; }
.install-intro h1 { margin: 12px 0; font-size: 34px; line-height: 1.06; }
.install-intro > p { color: var(--nv-muted); line-height: 1.6; }
.install-card, .login-card { border: 1px solid var(--nv-line); border-radius: 18px; background: var(--nv-paper); box-shadow: var(--nv-shadow-login); }
.install-card { padding: 23px; }
.install-checks { overflow: hidden; margin-top: 18px; border: 1px solid var(--nv-line); border-radius: 11px; background: var(--nv-paper); }
.check-row { min-height: 34px; display: grid; grid-template-columns: 14px 1fr auto; align-items: center; gap: 7px; padding: 0 10px; border-bottom: 1px solid var(--nv-line-soft); font-size: 10px; }
.check-row:last-child { border-bottom: 0; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login-card { width: min(430px, 100%); padding: 26px; }
.login-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 20px; }
.login-brand strong { font-size: 14px; }
.login-brand p { margin: 2px 0 0; color: var(--nv-muted); font-size: 10px; }
.login-card h1 { margin: 7px 0 4px; font-size: 23px; }
.login-card > p:not(.eyebrow) { margin: 0; color: var(--nv-muted); }
.login-card form { display: flex; flex-direction: column; gap: 11px; margin-top: 20px; }
.login-card label { display: flex; flex-direction: column; gap: 5px; color: var(--nv-muted-strong); font-size: 10px; font-weight: 750; }
.login-submit { height: 36px; }
.login-foot { margin-top: 17px; padding-top: 13px; border-top: 1px solid var(--nv-line); color: var(--nv-muted); font-size: 10px; text-align: center; }

@media (max-width: 1180px) {
  .approval-body { grid-template-columns: 180px 1fr 250px; }
  .approval-change { grid-column: 1 / -1; }
  .rule-layout { grid-template-columns: 220px 1fr; }
  .rule-layout > .card:last-child { grid-column: 1 / -1; }
  .policy-360 .detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1050px) {
  .grid-2, .detail-grid { grid-template-columns: 1fr; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace-row { grid-template-columns: minmax(170px, 1fr) 105px minmax(150px, 1fr) repeat(2, 64px) 22px; }
  .workspace-row .optional { display: none; }
  .policy-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .evidence-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .approval-body { grid-template-columns: 1fr; }
  .approval-change { grid-column: auto; }
}
@media (max-width: 760px) {
  body { overflow: auto; }
  .nv-rail { width: 236px; transform: translateX(-100%); box-shadow: var(--nv-shadow-float); }
  .nv-rail:hover, .nv-rail:focus-within, .nv-app.rail-pinned .nv-rail { width: 236px; }
  .nv-app.mobile-nav-open .nv-rail { transform: translateX(0); }
  .brand-copy, .rail-section, .rail-label, .user-copy, .rail-pin { opacity: 1; }
  .rail-pin { display: none; }
  .mobile-overlay { position: fixed; z-index: 45; inset: 0; display: block; border: 0; background: var(--nv-overlay); opacity: 0; pointer-events: none; transition: opacity var(--nv-normal); }
  .mobile-nav-open .mobile-overlay { opacity: 1; pointer-events: auto; }
  .nv-topbar, .rail-pinned .nv-topbar { left: 0; padding-left: 9px; }
  .mobile-nav-toggle { display: inline-flex; }
  .top-title { flex: 1; }
  .top-title span, .version-chip, .top-actions .btn { display: none; }
  .nv-main, .rail-pinned .nv-main { position: relative; inset: var(--nv-top) auto auto 0; min-height: calc(100vh - var(--nv-top)); padding: 10px; overflow: visible; }
  .page { height: auto; }
  .page-head { align-items: flex-start; flex-direction: column; }
  .page-actions { width: 100%; justify-content: flex-start; }
  .next-action { width: 100%; align-items: flex-start; flex-direction: column; gap: 2px; }
  .kpi-grid, .kpi-grid.kpi-4, .task-strip, .grid-3, .grid-even, .policy-kpi-strip { grid-template-columns: 1fr; }
  .rule-layout { grid-template-columns: 1fr; }
  .install-shell { grid-template-columns: 1fr; padding: 20px; }
  .install-intro h1 { font-size: 28px; }
  .table-scroll { max-height: 65vh; }
  .filters { align-items: stretch; }
  .field, .field.grow { min-width: calc(50% - 4px); flex: 1; }
  .form-grid, .formula-side, .impact-grid, .evidence-file-help { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .pool-grid { grid-template-columns: 120px repeat(3, 120px); }
  .drawer { top: 0; }
}
@media (max-width: 480px) {
  .field, .field.grow { min-width: 100%; }
  .top-actions .release-lock { padding: 0 7px; }
  .release-lock .lock-copy { display: none; }
  .login-card { padding: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media print {
  body { overflow: visible; background: var(--nv-white); }
  .nv-rail, .nv-topbar, .page-actions, .filters, .btn, .flash-stack { display: none !important; }
  .nv-main { position: static; padding: 0; }
  .page { height: auto; }
  .table-scroll { overflow: visible; }
}

/* Identity decision workspace */
.identity-table { min-width: 980px; }
.review-row td { height: auto; }
.review-cell-top { padding-top: 9px !important; padding-bottom: 9px !important; vertical-align: top !important; }
.review-candidates { padding: 7px !important; white-space: normal !important; }
.candidate-form { min-width: 430px; }
.candidate-card { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 8px; cursor: pointer; }
.candidate-card:has(input:checked) { border-color: var(--nv-blue); background: var(--nv-blue-faint); }
.candidate-copy { min-width: 0; }
.candidate-meta { display: block; margin-top: 2px; }
.candidate-scores, .decision-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.decision-actions { justify-content: flex-start; }
.no-margin { margin: 0 !important; }
.rule-line { padding: 4px 0; }

/* =========================================================
   Novo OS 1.3 — daily operations ledger shell
   ========================================================= */
body { letter-spacing: -.005em; }
h1, .detail-title h1, .page-title h1, .login-card h1, .install-intro h1 { font-family: var(--nv-display); font-weight: 650; letter-spacing: -.025em; }
.field-label, label > span:first-child { color: var(--nv-muted); font-size: 10px; font-weight: 800; letter-spacing: .035em; }
.section-caption { display: block; margin-top: 2px; color: var(--nv-muted); font-size: 10px; font-weight: 500; }

.nv-rail { border-right-color: var(--rail); background: var(--rail); color: var(--paper-raised); }
.rail-brand { border-bottom-color: color-mix(in srgb, var(--paper-raised) 14%, transparent); }
.brand-shield, .brand-mark { border-color: color-mix(in srgb, var(--paper-raised) 32%, transparent); background: transparent; color: var(--paper-raised); box-shadow: none; }
.brand-copy strong, .user-copy strong { color: var(--paper-raised); }
.brand-copy span, .rail-section, .user-copy span { color: color-mix(in srgb, var(--paper-raised) 58%, transparent); }
.rail-pin { color: color-mix(in srgb, var(--paper-raised) 60%, transparent); }
.rail-pin:hover { background: color-mix(in srgb, var(--paper-raised) 10%, transparent); color: var(--paper-raised); }
.rail-link, .rail-logout { color: color-mix(in srgb, var(--paper-raised) 70%, transparent); }
.rail-link:hover, .rail-logout:hover { background: color-mix(in srgb, var(--paper-raised) 9%, transparent); color: var(--paper-raised); }
.rail-link.active { color: var(--paper-raised); background: color-mix(in srgb, var(--ledger-blue) 38%, var(--rail)); border-left: 3px solid var(--ledger-blue); }
.rail-user { border-color: color-mix(in srgb, var(--paper-raised) 14%, transparent); background: color-mix(in srgb, var(--paper-raised) 5%, transparent); }
.avatar { background: var(--paper-raised); color: var(--ledger-blue); }

.nv-topbar { background: var(--nv-glass); }
.next-action { background: var(--paper-raised); }
.card, .table-shell { box-shadow: none; }
.data-table tbody tr:hover td { background: var(--glass-lavender); }

.page-scroll { height: 100%; overflow-y: auto; overflow-x: hidden; padding-right: var(--nv-space-1); scrollbar-gutter: stable; }
.page-scroll > :last-child { margin-bottom: var(--nv-space-3); }
.workspace-page { gap: var(--nv-space-3); }
.workspace-page-head { flex: 0 0 auto; }
.workspace-tabs { flex: 0 0 auto; display: flex; align-items: center; gap: var(--nv-space-1); min-height: 36px; padding: 0 var(--nv-space-1); border-bottom: 1px solid var(--border); }
.workspace-tabs a { min-height: 35px; display: inline-flex; align-items: center; gap: var(--nv-space-2); padding: 0 var(--nv-space-3); border-bottom: 2px solid transparent; color: var(--ink-muted); font-size: 11px; font-weight: 750; }
.workspace-tabs a:hover, .workspace-tabs a.active { border-bottom-color: var(--ledger-blue); color: var(--ledger-blue); }
.workspace-tabs a span { width: 18px; height: 18px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: var(--nv-radius-pill); font-family: var(--nv-mono); font-size: 9px; }
.workspace-command { flex: 0 0 auto; justify-content: space-between; gap: var(--nv-space-4); padding: var(--nv-space-2) var(--nv-space-3); }
.workspace-command > div:first-child { min-width: 0; display: flex; align-items: center; gap: var(--nv-space-2); }
.workflow-ribbon { flex: 0 0 auto; display: flex; align-items: center; gap: 0; }
.workflow-ribbon .stage { position: relative; display: inline-flex; align-items: center; gap: 5px; padding: 0 11px 0 0; color: var(--ink-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.workflow-ribbon .stage:not(:last-child)::after { content: ""; width: 22px; height: 1px; margin-left: 7px; background: var(--border); }
.workflow-ribbon .stage i { width: 9px; height: 9px; border: 1px solid var(--ink-muted); border-radius: var(--nv-radius-pill); background: var(--paper-raised); }
.workflow-ribbon .stage.done { color: var(--matched); }
.workflow-ribbon .stage.done i { border-color: var(--matched); background: var(--matched); }
.workflow-ribbon .stage.current { color: var(--review); }
.workflow-ribbon .stage.current i { border-color: var(--review); background: var(--paper-raised); outline: 2px solid var(--review); outline-offset: 1px; }

.workspace-hero-grid { flex: 0 0 auto; display: grid; grid-template-columns: minmax(600px, 1.55fr) minmax(320px, .75fr); gap: var(--nv-space-3); align-items: stretch; }
.upload-card { scroll-margin-top: calc(var(--nv-top) + var(--nv-space-3)); border-color: color-mix(in srgb, var(--ledger-blue) 42%, var(--border)); }
.upload-card .card-head > div, .coverage-card .card-head > div, .ledger-card .card-head > div, .table-toolbar > div { min-width: 0; }
.upload-form-row { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: var(--nv-space-3); align-items: stretch; }
.evidence-period-field { min-width: 0; margin: 0; }
.evidence-period-field small { color: var(--ink-muted); font-size: 9px; }
.file-drop { min-height: 76px; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: var(--nv-space-3); padding: var(--nv-space-3); border: 1px dashed var(--ledger-blue); border-radius: var(--nv-radius-md); background: var(--paper); cursor: pointer; transition: background var(--nv-fast), border-color var(--nv-fast); }
.file-drop:hover, .file-drop.drag-active { background: var(--glass-lavender); border-style: solid; }
.file-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-drop-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--nv-radius-pill); background: var(--glass-lavender); color: var(--ledger-blue); }
.file-drop-copy { min-width: 0; }
.file-drop-copy strong, .file-drop-copy small { display: block; }
.file-drop-copy strong { color: var(--ink); font-size: 12px; }
.file-drop-copy small { margin-top: 3px; color: var(--ink-muted); font-size: 10px; }
.selected-files { min-height: 26px; display: flex; align-items: center; gap: var(--nv-space-2); overflow-x: auto; padding: var(--nv-space-1) 0; color: var(--ink-muted); font-size: 10px; }
.selected-files .file-chip { flex: 0 0 auto; max-width: 240px; display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border: 1px solid var(--border); border-radius: var(--nv-radius-pill); background: var(--paper); }
.selected-files .file-chip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.format-strip { display: flex; gap: var(--nv-space-2); flex-wrap: wrap; }
.format-strip span { padding: 4px 7px; border: 1px solid var(--border); border-radius: var(--nv-radius-xs); color: var(--ink-muted); font-size: 9px; }
.format-strip b { color: var(--ink); }
.upload-submit-row { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-4); padding-top: var(--nv-space-2); border-top: 1px solid var(--border); }
.upload-submit-row .help { max-width: 690px; margin: 0; }
.upload-submit { min-width: 210px; }
.upload-submit.is-loading { pointer-events: none; opacity: .72; }

.coverage-card .card-body { display: flex; flex-direction: column; gap: var(--nv-space-3); }
.coverage-number { color: var(--ledger-blue); font-size: 20px; }
.coverage-ledger { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.coverage-ledger a { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); padding: var(--nv-space-2); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.coverage-ledger a:hover { background: var(--glass-lavender); }
.coverage-ledger span { color: var(--ink-muted); font-size: 9px; text-transform: uppercase; }
.coverage-ledger strong { font-size: 15px; }

.ledger-card { flex: 0 0 auto; }
.ledger-table { display: grid; }
.ledger-row { min-height: 38px; display: grid; grid-template-columns: minmax(150px, 1fr) minmax(145px, .8fr) 54px minmax(145px, .8fr) minmax(145px, .8fr); align-items: center; border-bottom: 1px solid var(--border); }
.ledger-row:last-child { border-bottom: 0; }
.ledger-row > * { min-width: 0; padding: 0 var(--nv-space-3); }
.ledger-row .money { text-align: right; }
.ledger-head { min-height: 30px; background: var(--paper); color: var(--ink-muted); font-size: 9px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.ledger-head .tie-column { text-align: center; }
.ledger-note { padding: var(--nv-space-2) var(--nv-space-3); border-top: 1px solid var(--border); color: var(--ink-muted); font-size: 10px; }
.tie-mark { position: relative; width: 42px; height: 22px; display: inline-block; justify-self: center; color: var(--variance); }
.tie-mark::before { content: ""; position: absolute; left: 4px; right: 4px; top: 7px; height: 10px; border-top: 1.5px solid currentColor; border-radius: 50% 50% 0 0; transform: rotate(-4deg); }
.tie-mark::after { content: ""; position: absolute; left: 19px; top: 3px; width: 1.5px; height: 15px; background: currentColor; transform: rotate(8deg); }
.tie-mark i { position: absolute; right: 0; top: 5px; width: 8px; height: 10px; background: var(--paper-raised); }
.tie-mark.closed { color: var(--tie-violet); }
.tie-mark.closed i { display: none; }
.tie-mark.large { width: 56px; }
.tie-mark.hero { width: 92px; height: 42px; }
.tie-mark.hero::before { top: 11px; height: 20px; border-top-width: 2px; }
.tie-mark.hero::after { left: 44px; top: 5px; height: 29px; width: 2px; }
.tie-mark.hero i { width: 15px; height: 22px; }

.workspace-policy-table { flex: 0 0 auto; min-height: 320px; }
.table-scroll-lg { max-height: 430px; }
.table-scroll-md { max-height: 320px; }
.workspace-evidence-grid { flex: 0 0 auto; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: var(--nv-space-3); }
.evidence-panel { min-height: 250px; overflow: hidden; }
.empty.compact { min-height: 120px; }

/* Compact comparison studio */
.rule-studio-page { gap: var(--nv-space-3); }
.rule-safety-banner { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-3); padding: var(--nv-space-2) var(--nv-space-3); border: 1px solid var(--border); background: var(--paper-raised); }
.rule-safety-banner > div:first-child { display: flex; align-items: baseline; gap: var(--nv-space-2); }
.rule-safety-banner strong { color: var(--ledger-blue); font-size: 11px; }
.rule-safety-banner span { color: var(--ink-muted); font-size: 10px; }
.rule-guardrails { display: flex; gap: var(--nv-space-2); flex-wrap: wrap; }
.rule-guardrails span { padding: 3px 6px; border: 1px solid var(--border); border-radius: var(--nv-radius-pill); }
.rule-studio-form { flex: 0 0 auto; }
.rule-studio-grid { display: grid; grid-template-columns: minmax(690px, 1fr) minmax(360px, 430px); gap: var(--nv-space-3); align-items: start; }
.rule-editor-stack { display: flex; flex-direction: column; gap: var(--nv-space-3); min-width: 0; }
.compact-card { overflow: visible; }
.identity-map-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--nv-space-2); padding: var(--nv-space-3); }
.identity-map-grid label, .contract-options-grid label { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.identity-map-grid label span, .contract-options-grid label > span { color: var(--ink-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.comparison-matrix-head { min-height: 28px; display: grid; grid-template-columns: 130px minmax(0, 1fr) 58px minmax(0, 1fr); align-items: center; padding: 0 var(--nv-space-3); border-bottom: 1px solid var(--border); background: var(--paper); color: var(--ink-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.comparison-matrix-head .tie-column { text-align: center; }
.comparison-pool { display: grid; grid-template-columns: 130px minmax(0, 1fr) 58px minmax(0, 1fr); gap: var(--nv-space-2); align-items: center; padding: var(--nv-space-3); border-bottom: 1px solid var(--border); }
.comparison-pool:last-child { border-bottom: 0; }
.comparison-pool-title strong, .comparison-pool-title small { display: block; }
.comparison-pool-title strong { font-size: 12px; }
.comparison-pool-title small { margin-top: 3px; color: var(--ink-muted); font-size: 9px; }
.compact-formula-box { padding: var(--nv-space-2); background: var(--paper); }
.compact-rule-row { grid-template-columns: minmax(0, 1fr) 44px 26px; margin-bottom: 4px; }
.compact-rule-row select { min-width: 0; }
.text-action { padding: 2px 0; border: 0; background: transparent; color: var(--ledger-blue); font-size: 9px; font-weight: 800; }
.text-action:hover { text-decoration: underline; }
.contract-options-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--nv-space-3); padding: var(--nv-space-3); }
.source-columns-card details { padding: var(--nv-space-3); }
.source-columns-card summary { cursor: pointer; color: var(--ledger-blue); font-size: 11px; font-weight: 800; }
.column-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nv-space-3); margin-top: var(--nv-space-3); }
.column-groups > div { padding: var(--nv-space-2); border: 1px solid var(--border); }
.column-groups strong { display: block; margin-bottom: var(--nv-space-2); font-size: 10px; }
.rule-preview-column { min-width: 0; }
.sticky-preview { position: sticky; top: 0; overflow: hidden; }
.preview-empty { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.preview-empty strong { margin-top: var(--nv-space-2); font-family: var(--nv-display); font-size: 18px; }
.preview-empty p { max-width: 300px; color: var(--ink-muted); font-size: 10px; }
.preview-summary { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border); }
.preview-summary span { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); padding: var(--nv-space-2); color: var(--ink-muted); font-size: 9px; }
.preview-summary span + span { border-left: 1px solid var(--border); }
.preview-summary strong { color: var(--ink); font-size: 13px; }
.preview-ledger { margin-top: var(--nv-space-3); border: 1px solid var(--border); }
.preview-ledger-head, .preview-ledger-row { display: grid; grid-template-columns: minmax(90px, 1fr) repeat(3, minmax(78px, .8fr)); align-items: center; min-height: 32px; padding: 0 var(--nv-space-2); border-bottom: 1px solid var(--border); }
.preview-ledger-head { background: var(--paper); color: var(--ink-muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.preview-ledger-row { position: relative; font-size: 10px; }
.preview-ledger-row:last-child { border-bottom: 0; }
.preview-ledger-row .money { text-align: right; }
.preview-ledger-row .tie-mark { position: absolute; right: 4px; bottom: -12px; transform: scale(.48); transform-origin: right center; }
.compact-alert { margin-top: var(--nv-space-2); padding: var(--nv-space-2); font-size: 9px; }
.policy-impact-details { margin-top: var(--nv-space-3); border-top: 1px solid var(--border); }
.policy-impact-details summary { padding: var(--nv-space-2) 0; cursor: pointer; color: var(--ledger-blue); font-size: 10px; font-weight: 800; }
.correction-reason { margin-top: var(--nv-space-3); }
.apply-scope { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nv-space-2); margin: var(--nv-space-3) 0; }
.apply-scope label { display: flex; align-items: flex-start; gap: var(--nv-space-2); padding: var(--nv-space-2); border: 1px solid var(--border); cursor: pointer; }
.apply-scope label:has(input:checked) { border-color: var(--ledger-blue); background: var(--glass-lavender); }
.apply-scope strong, .apply-scope small { display: block; }
.apply-scope small { margin-top: 2px; color: var(--ink-muted); font-size: 9px; }

@media (max-width: 1180px) {
  .workspace-hero-grid { grid-template-columns: 1fr; }
  .workspace-evidence-grid { grid-template-columns: 1fr; }
  .rule-studio-grid { grid-template-columns: 1fr; }
  .sticky-preview { position: static; }
  .identity-map-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .workspace-command, .upload-submit-row, .rule-safety-banner { align-items: flex-start; flex-direction: column; }
  .workflow-ribbon { overflow-x: auto; width: 100%; }
  .upload-form-row { grid-template-columns: 1fr; }
  .ledger-row { grid-template-columns: minmax(120px, 1fr) minmax(120px, .8fr) 40px minmax(120px, .8fr) minmax(120px, .8fr); }
  .identity-map-grid, .contract-options-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-matrix-head { display: none; }
  .comparison-pool { grid-template-columns: 110px minmax(0, 1fr); }
  .comparison-pool > .tie-mark { display: none; }
  .comparison-pool .compact-formula-box:last-child { grid-column: 2; }
}
@media (max-width: 640px) {
  .workspace-tabs { overflow-x: auto; }
  .workspace-tabs a { flex: 0 0 auto; }
  .format-strip, .upload-submit-row { align-items: stretch; }
  .upload-submit { width: 100%; }
  .coverage-ledger, .identity-map-grid, .contract-options-grid, .column-groups, .apply-scope { grid-template-columns: 1fr; }
  .ledger-table { overflow-x: auto; }
  .ledger-row { min-width: 680px; }
  .comparison-pool { grid-template-columns: 1fr; }
  .comparison-pool .compact-formula-box:last-child { grid-column: auto; }
  .comparison-pool-title { padding-bottom: var(--nv-space-1); }
}

/* Financial profile registry */
.profiles-page { gap: var(--nv-space-3); }
.profile-kpi-strip { flex: 0 0 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); background: var(--paper-raised); }
.profile-kpi-strip > div { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); padding: var(--nv-space-3); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.profile-kpi-strip span { color: var(--ink-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.profile-kpi-strip strong { font-size: 19px; }
.profile-kpi-strip .needs-attention strong { color: var(--variance); }
.profile-kpi-strip .healthy strong { color: var(--matched); }
.profile-coverage-panel { flex: 0 0 auto; }
.profile-coverage-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-height: 210px; overflow: auto; }
.profile-coverage-item { min-height: 48px; display: flex; align-items: center; gap: var(--nv-space-2); padding: var(--nv-space-2); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.profile-coverage-item .tie-mark { flex: 0 0 34px; transform: scale(.72); }
.profile-coverage-item strong, .profile-coverage-item small { display: block; }
.profile-coverage-item strong { font-size: 10px; }
.profile-coverage-item small { margin-top: 2px; color: var(--ink-muted); font-family: var(--nv-mono); font-size: 8px; }
.profile-coverage-item.gap { background: color-mix(in srgb, var(--variance) 4%, var(--paper-raised)); }
.profile-registry-table { flex: 0 0 auto; min-height: 440px; }
.profile-filter-bar { min-height: 58px; }
.compact-filters { flex-wrap: nowrap; }
.compact-filters .field { min-width: 145px; }
.compact-filters .field:first-child { min-width: 260px; }
.table-scroll-xl { max-height: 600px; }
.profile-table { min-width: 1450px; }
.profile-table td { vertical-align: top; padding-top: 7px; padding-bottom: 7px; }
.formula-pair { display: grid; grid-template-columns: minmax(110px, 1fr) 20px minmax(110px, 1fr); align-items: start; gap: 3px; max-width: 360px; font-size: 9px; }
.formula-pair span { overflow-wrap: anywhere; }
.formula-pair i { color: var(--ledger-blue); font-style: normal; text-align: center; }
.hidden { display: none !important; }

@media (max-width: 1100px) {
  .profile-kpi-strip, .profile-coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-filter-bar { align-items: flex-start; flex-direction: column; }
  .compact-filters { width: 100%; flex-wrap: wrap; }
}
@media (max-width: 640px) {
  .profile-kpi-strip, .profile-coverage-grid { grid-template-columns: 1fr; }
  .compact-filters .field, .compact-filters .field:first-child { min-width: 100%; }
}

/* Novo OS 1.4 — screen-fit, known-profile-first workflow */
.page {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: var(--nv-space-1);
  scrollbar-gutter: stable;
}
.page > :last-child { margin-bottom: var(--nv-space-3); }
.page-head, .detail-head, .page-title, .page-actions, .card-head, .table-toolbar { min-width: 0; }
.page-head { flex: 0 0 auto; flex-wrap: wrap; }
.page-actions { max-width: 100%; }
.card, .table-shell, .grid-2, .grid-3, .detail-grid { min-width: 0; }
.table-scroll { max-width: 100%; overflow: auto; }
.data-table { width: 100%; }
input, select, textarea { max-width: 100%; }

.known-profile-banner {
  flex: 0 0 auto;
  min-height: 52px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--nv-space-3);
  padding: var(--nv-space-2) var(--nv-space-3);
  border: 1px solid var(--border);
  border-left: 3px solid var(--matched);
  background: var(--paper-raised);
}
.known-profile-banner strong, .known-profile-banner span { display: block; }
.known-profile-banner strong { font-size: 12px; }
.known-profile-banner div > span { margin-top: 2px; color: var(--ink-muted); font-size: 10px; }
.contract-summary-card { flex: 0 0 auto; overflow: hidden; }
.contract-ledger { display: grid; }
.contract-ledger-row {
  min-height: 58px;
  display: grid;
  grid-template-columns: 140px minmax(210px, 1fr) 52px minmax(210px, 1fr);
  align-items: center;
  border-bottom: 1px solid var(--border);
}
.contract-ledger-row:last-child { border-bottom: 0; }
.contract-ledger-row.total-row { background: var(--paper); }
.contract-ledger-row > * { min-width: 0; padding: var(--nv-space-2) var(--nv-space-3); }
.contract-pool strong, .contract-pool small, .contract-side span, .contract-side strong { display: block; }
.contract-pool strong { font-size: 12px; }
.contract-pool small { margin-top: 2px; color: var(--ink-muted); font-size: 9px; text-transform: capitalize; }
.contract-side span { color: var(--ink-muted); font-size: 8px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.contract-side strong { margin-top: 3px; overflow-wrap: anywhere; font-family: var(--nv-mono); font-size: 10px; font-weight: 650; }
.contract-governance-grid { flex: 0 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nv-space-3); }
.compact-definition { grid-template-columns: 120px minmax(0, 1fr); }
.compact-definition dt, .compact-definition dd { padding-top: 6px; padding-bottom: 6px; }
.correction-gate-card {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nv-space-4);
  padding: var(--nv-space-3);
  border-left: 3px solid var(--review);
}
.correction-gate-copy { min-width: 0; }
.correction-gate-copy strong, .correction-gate-copy span { display: block; }
.correction-gate-copy strong { font-size: 12px; }
.correction-gate-copy span { margin-top: 2px; color: var(--ink-muted); font-size: 10px; }

.locked-identity-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
}
.locked-identity-strip span {
  min-width: 0;
  min-height: 44px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--nv-space-2);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  color: var(--ink-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.locked-identity-strip b { color: var(--ink); font-size: 8px; letter-spacing: .04em; text-transform: uppercase; }
.rule-studio-form { position: relative; padding-bottom: 58px; }
.rule-action-dock {
  position: sticky;
  z-index: 22;
  left: 0;
  right: 0;
  bottom: 0;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nv-space-3);
  margin-top: var(--nv-space-3);
  padding: var(--nv-space-2) var(--nv-space-3);
  border: 1px solid var(--border);
  background: var(--nv-glass);
  backdrop-filter: blur(12px) saturate(120%);
  box-shadow: 0 -8px 24px color-mix(in srgb, var(--ink) 8%, transparent);
}
.rule-action-dock > div:first-child { min-width: 0; }
.rule-action-dock strong, .rule-action-dock span { display: block; }
.rule-action-dock strong { font-size: 10px; }
.rule-action-dock span { margin-top: 2px; color: var(--ink-muted); font-size: 9px; }
.rule-action-dock > div:last-child { display: flex; align-items: center; gap: var(--nv-space-2); }

.sheet-contract-title { display: flex; align-items: center; gap: var(--nv-space-2); flex-wrap: wrap; }
.sheet-contract-lines { display: grid; gap: 2px; margin-top: 4px; }
.sheet-contract-lines span {
  min-width: 0;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  overflow: hidden;
  color: var(--ink-muted);
  font-family: var(--nv-mono);
  font-size: 8px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sheet-contract-lines b { color: var(--ledger-blue); }
.sheet-contract-lines i { color: var(--ledger-blue); font-style: normal; }
.compact-profile-table { min-width: 720px; }
.compact-profile-table th:first-child { width: 28%; }
.compact-profile-table th:nth-child(2) { width: 48%; }
.compact-profile-table th:nth-child(3) { width: 13%; }
.compact-profile-table th:last-child { width: 11%; }

.profile-table { min-width: 820px; }
.profile-table th:first-child { width: 24%; }
.profile-table th:nth-child(2) { width: 48%; }
.profile-table th:nth-child(3) { width: 15%; }
.profile-table th:nth-child(4) { width: 8%; }
.profile-table th:last-child { width: 5%; }
.registry-contract-lines { display: grid; gap: 3px; }
.registry-contract-lines span {
  min-width: 0;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) 18px minmax(0, 1fr);
  align-items: start;
  gap: 3px;
  font-family: var(--nv-mono);
  font-size: 8px;
  line-height: 1.35;
}
.registry-contract-lines b { color: var(--ink); font-family: var(--nv-font); font-size: 8px; }
.registry-contract-lines i { overflow-wrap: anywhere; color: var(--ink-muted); font-style: normal; }
.registry-contract-lines em { color: var(--ledger-blue); font-style: normal; text-align: center; }
.matched-text { color: var(--matched); }
.review-text { color: var(--review); }

/* Compact viewport mode keeps primary controls visible without browser zoom. */
@media (max-height: 840px) {
  .nv-main { padding-top: 8px; padding-bottom: 8px; }
  .page { gap: 7px; }
  .page-head { min-height: 42px; }
  .page-title h1, .detail-title h1 { font-size: 18px; }
  .card-head, .table-toolbar { min-height: 34px; }
  .card-body { padding-top: 8px; padding-bottom: 8px; }
  .workspace-tabs { min-height: 32px; }
  .workspace-tabs a { min-height: 31px; }
  .next-action { min-height: 34px; padding-top: 5px; padding-bottom: 5px; }
  .file-drop { min-height: 62px; }
  .upload-card .card-body { padding-top: 8px; padding-bottom: 8px; }
  .selected-files { min-height: 22px; }
  .coverage-ledger a { min-height: 36px; }
  .contract-ledger-row { min-height: 50px; }
  .identity-map-grid, .comparison-pool, .contract-options-grid { padding-top: 8px; padding-bottom: 8px; }
}

@media (max-width: 1180px) {
  .page-head { align-items: flex-start; }
  .page-actions { justify-content: flex-start; }
  .contract-ledger-row { grid-template-columns: 120px minmax(180px, 1fr) 44px minmax(180px, 1fr); }
  .profile-coverage-grid { max-height: 160px; }
}

@media (max-width: 1024px) {
  .nv-main { padding-left: 9px; padding-right: 9px; }
  .page-head { gap: var(--nv-space-2); }
  .page-actions { width: 100%; }
  .page-actions .btn { flex: 0 0 auto; }
  .contract-ledger { overflow-x: auto; }
  .contract-ledger-row { min-width: 760px; }
  .contract-governance-grid { grid-template-columns: 1fr; }
  .locked-identity-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rule-action-dock { align-items: flex-start; flex-direction: column; }
  .rule-action-dock > div:last-child { width: 100%; justify-content: flex-end; flex-wrap: wrap; }
  .correction-gate-card { align-items: flex-start; flex-direction: column; }
  .profile-kpi-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .profile-kpi-strip > div { min-height: 50px; padding: var(--nv-space-2); }
}

@media (max-width: 760px) {
  .known-profile-banner { grid-template-columns: 46px minmax(0, 1fr); }
  .known-profile-banner > .badge { grid-column: 2; justify-self: start; }
  .locked-identity-strip { grid-template-columns: 1fr; }
  .rule-action-dock > div:last-child .btn { flex: 1 1 auto; }
  .profile-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* Safe fast-submit feedback: the action posts once, without hiding its name/value from PHP. */
form.is-submitting [type="submit"] { pointer-events: none; }
form.is-submitting [type="submit"][aria-disabled="true"] { opacity: .72; }
form.is-submitting [type="submit"].is-loading::after {
  content: "";
  width: 12px;
  height: 12px;
  margin-left: var(--nv-space-2);
  display: inline-block;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: var(--nv-radius-pill);
  animation: novo-spin var(--nv-slow) linear infinite;
  vertical-align: -2px;
}
@keyframes novo-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  form.is-submitting [type="submit"].is-loading::after { animation: none; border-right-color: currentColor; }
}

/* Resumable MIS source-accounting flow. */
.import-progress-card { flex: 0 0 auto; }
.import-progress-card .card-head { align-items: flex-start; }
.kpi-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); background: var(--paper-raised); }
.kpi-strip > div { min-width: 0; min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); padding: var(--nv-space-3); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.kpi-strip span { color: var(--ink-muted); font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.kpi-strip strong { font-family: var(--nv-mono); font-size: 18px; font-variant-numeric: tabular-nums; }
.preview-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.import-progress-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--nv-space-3); }
.import-progress-line progress { width: 100%; height: 10px; appearance: none; border: 0; }
.import-progress-line progress::-webkit-progress-bar { border-radius: var(--nv-radius-pill); background: var(--border); }
.import-progress-line progress::-webkit-progress-value { border-radius: var(--nv-radius-pill); background: var(--ledger-blue); }
.import-progress-line progress::-moz-progress-bar { border-radius: var(--nv-radius-pill); background: var(--ledger-blue); }
.import-progress-line strong { min-width: 54px; text-align: right; }
[data-mis-resume].is-loading { cursor: progress; opacity: .72; }
@media (max-width: 1180px) {
  .import-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .kpi-strip, .preview-kpis, .import-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Resumable insurer-statement source accounting. */
.statement-progress-stack { display: grid; gap: var(--nv-space-3); flex: 0 0 auto; }
.statement-import-progress .card-head { align-items: flex-start; }
.statement-accounting-counts { display: flex; flex-wrap: wrap; gap: var(--nv-space-2) var(--nv-space-4); margin-top: var(--nv-space-2); color: var(--ink-muted); font-size: 11px; }
.statement-accounting-counts b { color: var(--ink); font-family: var(--nv-mono); font-variant-numeric: tabular-nums; }
[data-statement-resume].is-loading { cursor: progress; opacity: .72; }
@media (max-width: 1024px) {
  .statement-accounting-counts { gap: var(--nv-space-2) var(--nv-space-3); }
}
.statement-source-kpis { grid-template-columns: repeat(6,minmax(0,1fr)); }
@media (max-width: 1180px) { .statement-source-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) { .statement-source-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* Multi-period Insurer Studio: operational proof without dashboard clutter */
.workshop-filters [hidden] { display: none !important; }
.workshop-kpi-strip, .insurer-summary-strip { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.workshop-kpi-strip .healthy strong, .insurer-summary-strip .healthy strong { color: var(--nv-green); }
.workshop-kpi-strip .needs-attention strong, .insurer-summary-strip .needs-attention strong { color: var(--nv-red); }
.workshop-queue-card { min-height: 300px; }
.workshop-row {
  min-width: 1040px;
  min-height: 52px;
  display: grid;
  grid-template-columns: minmax(210px, 1.2fr) 116px minmax(190px, .9fr) repeat(3, minmax(110px, .62fr)) 20px;
  align-items: center;
  gap: var(--nv-space-2);
  padding: var(--nv-space-2) var(--nv-space-3);
  border-bottom: 1px solid var(--nv-line-soft);
  transition: background var(--nv-fast);
}
.workshop-row:not(.workshop-row-head):hover { background: var(--nv-blue-faint); }
.workshop-row-head { position: sticky; z-index: 3; top: 0; min-height: 30px; background: var(--nv-paper-soft); color: var(--nv-muted-strong); font-size: 9px; font-weight: 820; letter-spacing: .04em; text-transform: uppercase; }
.workshop-progress { min-width: 0; }
.workshop-progress > span { display: block; overflow: hidden; margin-top: 4px; color: var(--nv-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.ledger-number { min-width: 0; text-align: right; }
.ledger-number span, .ledger-number strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ledger-number span { color: var(--nv-muted); font-size: 9px; text-transform: uppercase; }
.ledger-number strong { margin-top: 2px; font-family: var(--nv-mono); font-size: 11px; font-variant-numeric: tabular-nums; }
.insurer-detail-page { gap: var(--nv-space-2); }
.subfilters { display: flex; align-items: center; gap: var(--nv-space-2); padding: var(--nv-space-2); border-bottom: 1px solid var(--nv-line); background: var(--nv-paper-soft); flex-wrap: wrap; }
.subfilters input, .subfilters select { width: auto; min-width: 132px; }
.financial-detail-table { min-width: 1260px; }
.ledger-cell { min-width: 142px; font-family: var(--nv-mono); font-variant-numeric: tabular-nums; }
.ledger-cell span, .ledger-cell strong { display: block; line-height: 1.25; }
.ledger-cell span:first-child::before { content: "E "; color: var(--nv-muted); }
.ledger-cell span:nth-child(2)::before { content: "R "; color: var(--nv-muted); }
.ledger-cell strong::before { content: "Δ "; color: var(--nv-muted); }

@media (max-width: 1280px) {
  .workshop-kpi-strip, .insurer-summary-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .workshop-row { min-width: 980px; grid-template-columns: minmax(190px, 1.1fr) 108px minmax(170px, .85fr) repeat(3, minmax(105px, .62fr)) 20px; }
}
@media (max-width: 1024px) {
  .workshop-filters { align-items: stretch; }
  .workshop-filters .field { min-width: 145px; flex: 1 1 145px; }
  .workshop-kpi-strip, .insurer-summary-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .workshop-kpi-strip > div, .insurer-summary-strip > div { min-height: 48px; padding: var(--nv-space-2); }
  .workshop-row { min-width: 930px; }
}

/* =========================================================
   Novo OS 1.8 — automatic reconciliation control centre
   ========================================================= */
.compact-filter { display:flex; align-items:center; gap:var(--nv-space-2); padding:var(--nv-space-1) var(--nv-space-2); border:1px solid var(--border); border-radius:var(--nv-radius-sm); background:var(--paper-raised); }
.compact-filter label { color:var(--ink-muted); font-size:10px; font-weight:800; }
.compact-filter select { height:26px; min-width:145px; border:0; background:transparent; font-size:11px; }

.control-strip { flex:0 0 auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--border); border-radius:var(--nv-radius-md); background:var(--paper-raised); overflow:hidden; }
.control-strip-item { min-width:0; display:grid; grid-template-columns:1fr auto; grid-template-areas:"kicker value" "state state"; gap:2px var(--nv-space-2); padding:var(--nv-space-3) var(--nv-space-4); border-right:1px solid var(--border); }
.control-strip-item:last-child { border-right:0; }
.control-strip-item:hover { background:var(--glass-lavender); }
.control-kicker { grid-area:kicker; color:var(--ink-muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.control-strip-item > strong { grid-area:value; font-size:17px; line-height:1; }
.control-state { grid-area:state; font-size:10px; }
.control-state.ok { color:var(--matched); }.control-state.warn { color:var(--review); }.control-state.bad { color:var(--variance); }

.ledger-position { flex:0 0 auto; padding:var(--nv-space-3) var(--nv-space-4); }
.ledger-position-head { display:flex; align-items:center; justify-content:space-between; gap:var(--nv-space-3); }
.ledger-position-head h2 { margin:1px 0 0; font-size:15px; }
.twin-ledger-large { display:grid; grid-template-columns:minmax(160px,1fr) 52px minmax(160px,1fr) minmax(170px,.7fr); align-items:center; gap:var(--nv-space-3); margin-top:var(--nv-space-3); }
.twin-ledger-large > div { min-width:0; }
.twin-ledger-large span { display:block; color:var(--ink-muted); font-size:10px; }
.twin-ledger-large .money { display:block; margin-top:2px; font-size:21px; color:var(--ink); }
.ledger-difference { padding-left:var(--nv-space-4); border-left:1px solid var(--border); }
.ledger-difference strong { display:block; margin-top:2px; font-size:17px; }
.tie-mark { position:relative; width:34px; height:18px; display:inline-block; justify-self:center; }
.tie-mark::before { content:""; position:absolute; inset:2px 1px 3px; border:2px solid var(--tie-violet); border-top-color:transparent; border-radius:0 0 var(--nv-radius-pill) var(--nv-radius-pill); transform:rotate(-5deg); }
.tie-mark::after { content:""; position:absolute; left:10px; right:9px; top:8px; height:1px; background:var(--tie-violet); transform:rotate(-6deg); }
.tie-mark.open::before { border-right-color:transparent; border-bottom-color:var(--variance); }
.tie-mark.open::after { right:17px; background:var(--variance); }

.workflow-strip { flex:0 0 auto; display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border); border-radius:var(--nv-radius-md); background:var(--paper-raised); overflow:hidden; }
.workflow-strip a { min-height:52px; display:grid; grid-template-columns:22px auto; grid-template-rows:auto auto; align-content:center; column-gap:var(--nv-space-2); padding:var(--nv-space-2) var(--nv-space-3); border-right:1px solid var(--border); }
.workflow-strip a:last-child { border-right:0; }.workflow-strip a:hover { background:var(--glass-lavender); }
.workflow-strip a > span { grid-row:1/3; width:20px; height:20px; display:grid; place-items:center; align-self:center; border:1px solid var(--border); border-radius:50%; font-family:var(--nv-mono); color:var(--ledger-blue); font-size:9px; }
.workflow-strip strong { font-family:var(--nv-mono); font-size:15px; line-height:1; }.workflow-strip small { color:var(--ink-muted); font-size:9px; }

.operations-grid { min-height:340px; display:grid; grid-template-columns:minmax(0,1.7fr) minmax(285px,.7fr); gap:var(--nv-space-3); }
.operations-primary { min-height:0; display:flex; flex-direction:column; }.operations-primary .table-scroll { min-height:0; flex:1; }
.operations-side { min-width:0; display:flex; flex-direction:column; gap:var(--nv-space-3); }.operations-side .card { min-height:0; }
.category-ledger, .exception-list { display:flex; flex-direction:column; }
.category-ledger a { display:flex; align-items:center; justify-content:space-between; gap:var(--nv-space-3); padding:var(--nv-space-2) var(--nv-space-3); border-top:1px solid var(--border); }
.category-ledger a:first-child { border-top:0; }.category-ledger a:hover { background:var(--glass-lavender); }
.category-ledger span, .category-ledger small { display:block; }.category-ledger small { margin-top:2px; color:var(--ink-muted); font-size:9px; }
.exception-list > div { display:grid; grid-template-columns:auto minmax(0,1fr); gap:3px var(--nv-space-2); padding:var(--nv-space-2) var(--nv-space-3); border-top:1px solid var(--border); }
.exception-list > div:first-child { border-top:0; }.exception-list strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }.exception-list small { grid-column:2; color:var(--ink-muted); font-size:9px; }
.recent-batches { flex:0 0 auto; }.control-table { min-width:760px; }

.integrity-ledger { flex:0 0 auto; display:grid; grid-template-columns:1fr 1fr; gap:var(--nv-space-3); }
.integrity-card { padding:var(--nv-space-3); border-left:3px solid var(--matched); }.integrity-card.open { border-left-color:var(--variance); }
.integrity-head { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--nv-space-3); }.integrity-head h2 { margin:1px 0 0; font-size:15px; }
.integrity-values { display:grid; grid-template-columns:repeat(6,1fr); margin:var(--nv-space-3) 0 0; border-top:1px solid var(--border); border-left:1px solid var(--border); }
.integrity-values div { padding:var(--nv-space-2); border-right:1px solid var(--border); border-bottom:1px solid var(--border); }.integrity-values dt { color:var(--ink-muted); font-size:9px; }.integrity-values dd { margin:3px 0 0; font-family:var(--nv-mono); font-size:14px; }
.automation-panel { flex:0 0 auto; display:grid; grid-template-columns:minmax(240px,1fr) auto; align-items:center; gap:var(--nv-space-4); padding:var(--nv-space-3) var(--nv-space-4); }.automation-panel h2 { margin:1px 0 2px; font-size:15px; }.automation-panel p:not(.eyebrow) { margin:0; color:var(--ink-muted); font-size:10px; }
.automation-position { display:flex; align-items:center; gap:var(--nv-space-3); }.automation-position > span { min-width:92px; }.automation-position strong,.automation-position small { display:block; }.automation-position strong { font-size:15px; }.automation-position small { color:var(--ink-muted); font-size:9px; }
.automation-message { grid-column:1/-1; min-height:0; color:var(--ink-muted); font-size:10px; }.automation-message.bad { color:var(--variance); }.automation-message.ok { color:var(--matched); }
.integrity-exceptions { flex:0 0 auto; min-height:220px; }

.financial-summary-strip { flex:0 0 auto; display:grid; grid-template-columns:repeat(4,minmax(105px,.7fr)) repeat(3,minmax(140px,1fr)); border:1px solid var(--border); border-radius:var(--nv-radius-md); background:var(--paper-raised); overflow:hidden; }
.financial-summary-strip > * { min-width:0; padding:var(--nv-space-2) var(--nv-space-3); border-right:1px solid var(--border); }.financial-summary-strip > *:last-child { border-right:0; }.financial-summary-strip a:hover { background:var(--glass-lavender); }
.financial-summary-strip span,.financial-summary-strip strong { display:block; }.financial-summary-strip span { color:var(--ink-muted); font-size:9px; text-transform:uppercase; }.financial-summary-strip strong { margin-top:2px; font-family:var(--nv-mono); font-size:14px; overflow:hidden; text-overflow:ellipsis; }
.financial-filters { flex:0 0 auto; display:grid; grid-template-columns:repeat(5,minmax(130px,1fr)) auto auto; align-items:end; }.financial-filters .field { min-width:0; }
.financial-ledger-table { min-width:1540px; }.financial-ledger-table th:nth-child(1){min-width:235px}.financial-ledger-table th:nth-child(2){min-width:160px}.financial-ledger-table th:nth-child(3){min-width:135px}.financial-ledger-table th:nth-child(n+4):nth-child(-n+7){min-width:180px}
.ledger-cell { min-width:166px; display:grid; grid-template-columns:1fr 22px 1fr; grid-template-rows:auto auto; align-items:center; gap:1px var(--nv-space-1); }
.ledger-cell > span:not(.tie-mark) { min-width:0; }.ledger-cell small { color:var(--ink-muted); font-size:8px; }.ledger-cell b { display:block; overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }.ledger-cell .tie-mark { width:20px; height:14px; grid-row:1; }.ledger-cell .tie-mark::before { border-width:1px; }.ledger-cell em { grid-column:1/-1; justify-self:end; font-size:9px; font-style:normal; }.matched-value,.positive { color:var(--matched); }.negative { color:var(--variance); }
.chip-row { display:flex; align-items:center; gap:var(--nv-space-1); flex-wrap:wrap; margin-top:var(--nv-space-1); }.micro-chip { display:inline-flex; align-items:center; min-height:17px; padding:1px 5px; border:1px solid var(--border); border-radius:var(--nv-radius-pill); color:var(--ink-muted); background:var(--paper); font-size:8px; }
.row-actions { display:flex; gap:var(--nv-space-1); }

.identity-policy { flex:0 0 auto; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:var(--nv-space-4); padding:var(--nv-space-3) var(--nv-space-4); }.identity-policy h2 { margin:1px 0 2px; font-size:15px; }.identity-policy p:not(.eyebrow) { margin:0; color:var(--ink-muted); font-size:10px; }.identity-policy .automation-message { grid-column:1/-1; }
.identity-ledger { min-width:1180px; }.candidate-cell { min-width:620px; padding:var(--nv-space-2) !important; white-space:normal !important; }.candidate-form { min-width:0; }
.candidate-option { display:grid; grid-template-columns:18px minmax(0,1fr) auto; align-items:start; gap:var(--nv-space-2); padding:var(--nv-space-2); border:1px solid var(--border); border-radius:var(--nv-radius-sm); background:var(--paper-raised); cursor:pointer; }.candidate-option + .candidate-option { margin-top:var(--nv-space-1); }.candidate-option:has(input:checked) { border-color:var(--ledger-blue); background:var(--glass-lavender); }.candidate-option.candidate-conflict { border-left:3px solid var(--variance); }
.candidate-copy strong,.candidate-copy small { display:block; }.candidate-copy small { margin-top:2px; color:var(--ink-muted); font-size:9px; }.candidate-copy .candidate-reason { color:var(--ink); }.candidate-scores { justify-content:flex-end; }.candidate-empty { padding:var(--nv-space-3); border:1px dashed var(--border); color:var(--ink-muted); }.candidate-empty strong,.candidate-empty span { display:block; }.candidate-form textarea { min-height:48px; margin-top:var(--nv-space-2); }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.empty.compact { min-height:90px; }

@media (max-width: 1250px) {
  .control-strip { grid-template-columns:repeat(2,1fr); }.control-strip-item:nth-child(2) { border-right:0; }.control-strip-item:nth-child(-n+2) { border-bottom:1px solid var(--border); }
  .operations-grid { grid-template-columns:1fr; }.operations-side { display:grid; grid-template-columns:1fr 1fr; }
  .financial-summary-strip { grid-template-columns:repeat(4,1fr); }.financial-summary-strip > *:nth-child(4) { border-right:0; }.financial-summary-strip > *:nth-child(-n+4) { border-bottom:1px solid var(--border); }
  .financial-filters { grid-template-columns:repeat(3,minmax(130px,1fr)) auto auto; }
  .integrity-values { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 1024px) {
  .twin-ledger-large { grid-template-columns:1fr 38px 1fr; }.ledger-difference { grid-column:1/-1; padding:var(--nv-space-2) 0 0; border-left:0; border-top:1px solid var(--border); }
  .workflow-strip { grid-template-columns:repeat(2,1fr); }.workflow-strip a:nth-child(2) { border-right:0; }.workflow-strip a:nth-child(-n+2) { border-bottom:1px solid var(--border); }
  .operations-side { grid-template-columns:1fr; }.integrity-ledger { grid-template-columns:1fr; }.automation-panel { grid-template-columns:1fr; }.automation-position { flex-wrap:wrap; }.automation-message { grid-column:1; }
  .financial-filters { grid-template-columns:repeat(2,minmax(140px,1fr)); }.financial-summary-strip { grid-template-columns:repeat(2,1fr); }.financial-summary-strip > * { border-bottom:1px solid var(--border); }.financial-summary-strip > *:nth-child(even) { border-right:0; }
}

/* Novo OS 2.0 insurer operations centre */
.insurer-operations-page { gap: var(--nv-space-3); }
.insurer-hero { align-items: flex-start; }
.workshop-tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(116px, 1fr));
  gap: 0;
  overflow-x: auto;
  border: 1px solid var(--nv-line);
  border-radius: var(--nv-radius-md);
  background: var(--nv-paper);
  scrollbar-width: thin;
}
.workshop-tab {
  min-width: 116px;
  padding: var(--nv-space-2) var(--nv-space-3);
  border-right: 1px solid var(--nv-line);
  color: var(--nv-muted);
  transition: background var(--nv-fast), color var(--nv-fast);
}
.workshop-tab:last-child { border-right: 0; }
.workshop-tab strong, .workshop-tab span { display: block; }
.workshop-tab strong { color: var(--nv-ink); font-size: 11px; }
.workshop-tab span { margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.workshop-tab:hover { background: var(--nv-blue-faint); color: var(--nv-blue); }
.workshop-tab.active { background: var(--nv-blue-soft); border-bottom: 2px solid var(--nv-blue); }
.insurer-control-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.workshop-overview-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr); gap: var(--nv-space-3); }
.workshop-side-stack { display: grid; gap: var(--nv-space-3); align-content: start; }
.workshop-ledger { min-width: 0; }
.next-action-list { display: grid; }
.next-action-list > a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--nv-space-2);
  min-height: 38px;
  padding: var(--nv-space-2) var(--nv-space-3);
  border-top: 1px solid var(--nv-line);
}
.next-action-list > a:first-child { border-top: 0; }
.next-action-list > a:hover { background: var(--nv-blue-faint); }
.next-action-list > a strong { font-size: 11px; font-weight: 720; }
.compact-definition { grid-template-columns: minmax(0, 1fr) auto; padding: var(--nv-space-3); }
.workshop-bottom-grid { align-items: stretch; }
.profile-health-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-sm); overflow: hidden; }
.profile-health-strip > div { min-width: 0; padding: var(--nv-space-2); border-right: 1px solid var(--nv-line); background: var(--nv-paper-soft); }
.profile-health-strip > div:last-child { border-right: 0; }
.profile-health-strip span, .profile-health-strip strong { display: block; }
.profile-health-strip span { overflow: hidden; color: var(--nv-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.profile-health-strip strong { margin-top: 2px; font-size: 14px; }
.compact-profile-list { display: grid; border-top: 1px solid var(--nv-line); }
.compact-profile-list > a { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); min-height: 39px; padding: var(--nv-space-2) var(--nv-space-3); border-bottom: 1px solid var(--nv-line); }
.compact-profile-list > a:last-child { border-bottom: 0; }
.compact-profile-list > a:hover { background: var(--nv-blue-faint); }
.compact-profile-list strong, .compact-profile-list small { display: block; }
.compact-profile-list strong { font-size: 10px; }
.compact-profile-list small { margin-top: 2px; color: var(--nv-muted); font-size: 9px; }
.workshop-detail-card { min-height: 0; flex: 1 1 auto; }
.workshop-detail-card > .table-scroll { min-height: 240px; flex: 1 1 auto; }
.profile-contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nv-space-3); padding: var(--nv-space-3); overflow: auto; }
.profile-contract-card { min-width: 0; border: 1px solid var(--nv-line); border-radius: var(--nv-radius-md); background: var(--nv-paper); box-shadow: var(--nv-shadow-card); }
.profile-contract-card > header, .profile-contract-card > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--nv-space-2); padding: var(--nv-space-3); }
.profile-contract-card > header { border-bottom: 1px solid var(--nv-line); }
.profile-contract-card > header h3 { margin: var(--nv-space-1) 0 0; font-size: 12px; }
.profile-contract-card > header p { margin: 2px 0 0; color: var(--nv-muted); font-size: 9px; }
.profile-contract-card > footer { align-items: center; border-top: 1px solid var(--nv-line); color: var(--nv-muted); font-size: 9px; }
.contract-mini-ledger { display: grid; }
.contract-mini-ledger > div { display: grid; grid-template-columns: 74px minmax(0, 1fr) 20px minmax(0, 1fr); align-items: center; gap: var(--nv-space-2); min-height: 42px; padding: var(--nv-space-2) var(--nv-space-3); border-top: 1px solid var(--nv-line); }
.contract-mini-ledger > div:first-child { border-top: 0; }
.contract-mini-ledger strong { font-size: 9px; }
.contract-mini-ledger span { overflow: hidden; color: var(--nv-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.contract-mini-ledger i { color: var(--ledger-blue); font-style: normal; text-align: center; }

@media (max-width: 1180px) {
  .workshop-overview-grid { grid-template-columns: 1fr; }
  .workshop-side-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-contract-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  .insurer-control-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workshop-side-stack { grid-template-columns: 1fr; }
  .workshop-tabs { grid-template-columns: repeat(7, 128px); }
  .workshop-filters { overflow-x: auto; flex-wrap: nowrap; }
  .workshop-filters .field { min-width: 142px; }
}

/* Operations 2.1 — operator-focused reconciliation */
.money-compact { display:inline-block; max-width:100%; cursor:help; font-variant-numeric:tabular-nums; white-space:nowrap; }
.compact-page-head { flex:0 0 auto; }
.compact-summary-strip { grid-template-columns:repeat(6,minmax(0,1fr)); }
.compact-summary-strip > * { min-height:52px; }
.compact-filter-bar { flex:0 0 auto; gap:var(--nv-space-2); padding:var(--nv-space-2); }
.compact-filter-bar .field { min-width:128px; flex:1 1 128px; }
.finance-queue-shell { min-height:0; }
.financial-focus-table { min-width:1040px; }
.financial-focus-table th:nth-child(1){min-width:230px}.financial-focus-table th:nth-child(2){min-width:142px}.financial-focus-table th:nth-child(3){min-width:150px}.financial-focus-table th:nth-child(4){min-width:330px}.financial-focus-table th:nth-child(5){min-width:128px}.financial-focus-table th:nth-child(6){min-width:155px}
.total-ledger { display:grid; grid-template-columns:minmax(76px,1fr) 28px minmax(76px,1fr) minmax(78px,.9fr); align-items:center; gap:var(--nv-space-2); min-width:0; }
.total-ledger > span:not(.tie-mark) { display:grid; gap:2px; min-width:0; }
.total-ledger small { color:var(--nv-muted); font-size:9px; font-weight:760; text-transform:uppercase; letter-spacing:.035em; }
.total-ledger em { justify-self:end; font-style:normal; font-weight:760; }
.total-ledger.waiting { opacity:.78; }
.component-peek { margin-top:var(--nv-space-1); }
.component-peek summary { width:max-content; max-width:100%; color:var(--nv-blue); cursor:pointer; font-size:10px; font-weight:720; }
.component-peek-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--nv-space-2); margin-top:var(--nv-space-2); padding:var(--nv-space-2); border:1px solid var(--nv-line); border-radius:var(--nv-radius-sm); background:var(--nv-paper-soft); }
.component-peek-grid > span { min-width:0; font-size:10px; }
.component-peek-grid small { display:block; margin-bottom:2px; color:var(--nv-muted); font-size:8px; font-weight:760; text-transform:uppercase; }
.stage-stack { display:grid; gap:2px; }

.identity-decision-center { gap:var(--nv-space-3); }
.identity-automation-strip { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:var(--nv-space-4); padding:var(--nv-space-3) var(--nv-space-4); }
.identity-automation-strip h2 { margin:2px 0 4px; font-size:16px; }
.identity-automation-strip p:last-child { margin:0; max-width:850px; color:var(--nv-muted); font-size:11px; }
.identity-automation-actions { display:grid; justify-items:end; gap:4px; }
.identity-queue { display:grid; gap:var(--nv-space-3); }
.identity-case { overflow:hidden; border:1px solid var(--nv-line); border-radius:var(--nv-radius-lg); background:var(--nv-paper); box-shadow:var(--nv-shadow-card); }
.identity-case-head { display:flex; align-items:center; justify-content:space-between; gap:var(--nv-space-3); min-height:42px; padding:var(--nv-space-2) var(--nv-space-3); border-bottom:1px solid var(--nv-line); background:var(--nv-paper-soft); }
.identity-case-head > div:first-child { display:flex; align-items:center; gap:var(--nv-space-2); min-width:0; }
.identity-case-head strong { white-space:nowrap; }
.identity-case-head .muted { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.identity-case-grid { display:grid; grid-template-columns:minmax(260px,.64fr) minmax(0,1.7fr); min-height:0; }
.statement-identity-panel { padding:var(--nv-space-3); border-right:1px solid var(--nv-line); background:var(--nv-paper); }
.identity-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--nv-space-2); margin:var(--nv-space-2) 0 var(--nv-space-3); }
.identity-facts > div { min-width:0; padding-bottom:var(--nv-space-2); border-bottom:1px solid var(--nv-line); }
.identity-facts dt { color:var(--nv-muted); font-size:8px; font-weight:780; text-transform:uppercase; letter-spacing:.035em; }
.identity-facts dd { overflow-wrap:anywhere; margin:3px 0 0; color:var(--nv-ink); font-size:11px; font-weight:650; }
.identity-classification-note { display:grid; gap:3px; padding:var(--nv-space-2); border-radius:var(--nv-radius-sm); background:var(--nv-blue-faint); }
.identity-classification-note strong { font-size:10px; }
.identity-classification-note span,.privacy-note { color:var(--nv-muted); font-size:10px; line-height:1.45; }
.privacy-note { margin:var(--nv-space-3) 0 0; }
.candidate-decision-panel { min-width:0; padding:var(--nv-space-3); }
.candidate-panel-head { display:flex; justify-content:space-between; align-items:center; gap:var(--nv-space-2); margin-bottom:var(--nv-space-2); }
.candidate-panel-head h2 { margin:2px 0 0; font-size:14px; }
.recommendation-chip { padding:4px 8px; border:1px solid var(--nv-green-line); border-radius:var(--nv-radius-pill); color:var(--nv-green); background:var(--nv-green-soft); font-size:9px; font-weight:780; }
.candidate-stack { display:grid; gap:var(--nv-space-2); }
.candidate-card { display:grid; grid-template-columns:18px minmax(0,1fr) 88px; align-items:start; gap:var(--nv-space-2); padding:var(--nv-space-2); border:1px solid var(--nv-line); border-radius:var(--nv-radius-md); background:var(--nv-paper); cursor:pointer; transition:border-color var(--nv-fast),background var(--nv-fast); }
.candidate-card:hover,.candidate-card:focus-within { border-color:var(--nv-line-hover); background:var(--nv-blue-faint); }
.candidate-card:has(input:checked) { border-color:var(--nv-blue); outline:2px solid var(--nv-blue);outline-offset:1px; }
.candidate-card.candidate-recommended { background:var(--nv-green-soft); }
.candidate-card.candidate-conflict { border-left:3px solid var(--nv-red); }
.candidate-card > input { margin-top:4px; }
.candidate-card-main { display:grid; gap:5px; min-width:0; }
.candidate-title { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--nv-space-2); }
.candidate-title strong { font-size:11px; }
.candidate-title > span { color:var(--nv-ink); font-size:11px; font-weight:650; }
.candidate-meta,.candidate-proof { display:flex; flex-wrap:wrap; gap:4px; }
.candidate-meta b,.candidate-proof em { padding:2px 5px; border-radius:var(--nv-radius-pill); background:var(--nv-bg-subtle); color:var(--nv-muted-strong); font-size:8px; font-style:normal; font-weight:740; }
.candidate-context { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--nv-space-2); }
.candidate-context > span { min-width:0; }
.candidate-context small { display:block; color:var(--nv-muted); font-size:8px; text-transform:uppercase; }
.candidate-context b { display:block; overflow:hidden; margin-top:2px; font-size:9px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.candidate-reason,.candidate-ai-reason { color:var(--nv-muted); font-size:9px; line-height:1.35; }
.candidate-ai-reason { padding:5px 7px; border-radius:var(--nv-radius-xs); background:var(--glass-lavender); color:var(--nv-ink); }
.candidate-card-score { display:grid; grid-template-columns:repeat(2,40px); justify-content:end; gap:4px; }
.candidate-card-score > .badge { grid-column:1/-1; justify-self:end; }
.score-orb { display:grid; place-items:center; align-content:center; width:40px; height:40px; border:1px solid var(--nv-blue-line); border-radius:50%; background:var(--nv-blue-faint); color:var(--nv-blue); }
.score-orb.ai { border-color:var(--ledger-blue); color:var(--ledger-blue); background:var(--glass-lavender); }
.score-orb.bad { border-color:var(--nv-red-line); color:var(--nv-red); }
.score-orb strong { font:760 12px var(--nv-mono); }
.score-orb small { font-size:7px; text-transform:uppercase; }
.identity-reason { margin-top:var(--nv-space-2); }
.identity-reason textarea { min-height:48px; }
.identity-empty { min-height:360px; }

@media (max-width:1180px){
  .compact-summary-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .identity-case-grid { grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr); }
  .candidate-context { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1024px){
  .financial-focus-table { min-width:960px; }
  .compact-filter-bar { overflow-x:auto; flex-wrap:nowrap; }
  .compact-filter-bar .field { flex:0 0 140px; }
  .identity-automation-strip { grid-template-columns:1fr; }
  .identity-automation-actions { justify-items:start; }
  .identity-case-grid { grid-template-columns:1fr; }
  .statement-identity-panel { border-right:0; border-bottom:1px solid var(--nv-line); }
}
@media (max-width:760px){
  .compact-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .financial-focus-table { min-width:0; }
  .financial-focus-table thead { display:none; }
  .financial-focus-table tbody,.financial-focus-table tr,.financial-focus-table td { display:block; width:100%; }
  .financial-focus-table tr { padding:var(--nv-space-3); border-bottom:1px solid var(--nv-line); }
  .financial-focus-table td { position:static !important; min-width:0 !important; padding:5px 0 !important; border:0; box-shadow:none !important; white-space:normal; }
  .financial-focus-table td::before { display:block; margin-bottom:2px; color:var(--nv-muted); content:attr(data-label); font-size:8px; font-weight:780; text-transform:uppercase; }
  .total-ledger { grid-template-columns:minmax(72px,1fr) 24px minmax(72px,1fr); }
  .total-ledger em { grid-column:1/-1; justify-self:start; }
  .component-peek-grid { grid-template-columns:1fr; }
  .identity-case-head { align-items:flex-start; }
  .identity-case-head > div:first-child { align-items:flex-start; flex-wrap:wrap; }
  .identity-facts { grid-template-columns:1fr 1fr; }
  .candidate-card { grid-template-columns:18px minmax(0,1fr); }
  .candidate-card-score { grid-column:2; grid-template-columns:repeat(4,max-content); justify-content:start; }
  .candidate-card-score > .badge { grid-column:auto; align-self:center; }
  .candidate-context { grid-template-columns:1fr; }
  .decision-actions { position:sticky; bottom:0; z-index:5; padding:var(--nv-space-2) 0; background:var(--nv-paper); }
}

/* Insurer Studio branding and compact reconciliation */
.insurer-studio-identity { display:flex; align-items:center; gap:var(--nv-space-3); min-width:0; }
.insurer-avatar { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; overflow:hidden; border:1px solid var(--nv-line); border-radius:var(--nv-radius-lg); background:var(--nv-paper); color:var(--nv-blue); font:800 15px var(--nv-mono); box-shadow:var(--nv-shadow-card); }
.insurer-avatar img { width:100%; height:100%; object-fit:contain; background:var(--nv-paper-raised); }
.insurer-brand-control { position:relative; }
.insurer-brand-control > summary { list-style:none; cursor:pointer; }
.insurer-brand-control > summary::-webkit-details-marker { display:none; }
.insurer-brand-control[open] > form { position:absolute; z-index:30; top:calc(100% + 6px); right:0; display:grid; gap:var(--nv-space-2); width:280px; padding:var(--nv-space-3); border:1px solid var(--nv-line); border-radius:var(--nv-radius-md); background:var(--nv-paper-raised); box-shadow:var(--nv-shadow); }
.studio-financial-table { min-width:900px; }
.studio-financial-table th:nth-child(4) { min-width:340px; }
@media (max-width:760px){
  .insurer-hero { align-items:flex-start; }
  .insurer-avatar { flex-basis:42px; width:42px; height:42px; }
  .insurer-brand-control[open] > form { position:fixed; right:var(--nv-space-3); bottom:var(--nv-space-3); top:auto; left:var(--nv-space-3); width:auto; }
}
.contract-mini-ledger .contract-total {
  padding-bottom: var(--nv-space-2);
  border-bottom: 1px solid var(--nv-line);
  background: var(--nv-blue-faint);
}

/* Operations 2.1 mobile Insurer Studio and exact operator money */
@media (max-width:760px){
  .workshop-filters { overflow:visible; flex-wrap:wrap; }
  .workshop-filters .field { flex:1 1 calc(50% - var(--nv-space-1)); min-width:0; }
  .workshop-filters > .btn { flex:1 1 calc(50% - var(--nv-space-1)); justify-content:center; }
  .insurer-studio-identity { align-items:flex-start; }
  .insurer-studio-identity .detail-title { min-width:0; }
  .insurer-studio-identity .detail-title h1,
  .insurer-studio-identity .detail-title p { overflow-wrap:anywhere; }
  .insurer-control-strip { grid-template-columns:1fr; }
  .insurer-control-strip .control-strip-item { border-right:0; border-bottom:1px solid var(--nv-line); }
  .insurer-control-strip .control-strip-item:last-child { border-bottom:0; }
  .workshop-tabs { grid-template-columns:repeat(7,132px); }
  .ledger-row { grid-template-columns:minmax(70px,.75fr) minmax(72px,1fr) 24px minmax(72px,1fr) minmax(72px,.9fr); gap:var(--nv-space-1); padding-left:var(--nv-space-2); padding-right:var(--nv-space-2); }
  .ledger-row .money-compact { font-size:9px; }
  .profile-health-strip { grid-template-columns:1fr 1fr; }
  .profile-health-strip > div:nth-child(2) { border-right:0; }
  .profile-health-strip > div:nth-child(-n+2) { border-bottom:1px solid var(--nv-line); }
  .contract-mini-ledger > div { grid-template-columns:64px minmax(0,1fr) 16px minmax(0,1fr); padding-left:var(--nv-space-2); padding-right:var(--nv-space-2); }
}
.studio-month-table { min-width:960px; }
.studio-month-table th:nth-child(1){min-width:130px}.studio-month-table th:nth-child(2){min-width:170px}.studio-month-table th:nth-child(3){min-width:190px}.studio-month-table th:nth-child(4){min-width:150px}.studio-month-table th:nth-child(5){min-width:300px}
.monthly-total-ledger { display:grid; grid-template-columns:repeat(3,minmax(72px,1fr)); gap:var(--nv-space-2); align-items:start; }
.monthly-total-ledger > span { min-width:0; }
.monthly-total-ledger small { display:block; margin-bottom:2px; color:var(--nv-muted); font-size:8px; text-transform:uppercase; }
@media (max-width:760px){
  .studio-month-table { min-width:0; }
  .studio-month-table thead { display:none; }
  .studio-month-table tbody,.studio-month-table tr,.studio-month-table td { display:block; width:100%; }
  .studio-month-table tr { padding:var(--nv-space-3); border-bottom:1px solid var(--nv-line); }
  .studio-month-table td { position:static !important; min-width:0 !important; padding:5px 0 !important; border:0; box-shadow:none !important; white-space:normal; }
  .studio-month-table td::before { display:block; margin-bottom:2px; color:var(--nv-muted); content:attr(data-label); font-size:8px; font-weight:780; text-transform:uppercase; }
  .monthly-total-ledger { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
/* Keep the monthly Insurer Studio action visible at the 1024px supported minimum. */
.studio-month-table { min-width:880px; }
.studio-month-table th:nth-child(1){min-width:115px}.studio-month-table th:nth-child(2){min-width:145px}.studio-month-table th:nth-child(3){min-width:155px}.studio-month-table th:nth-child(4){min-width:130px}.studio-month-table th:nth-child(5){min-width:250px}
@media (max-width:760px){ .studio-month-table { min-width:0; } }

/* Finance closure, Pending Policy Ledger and audit components */
.brand-shield img,.brand-mark img{width:100%;height:100%;object-fit:contain;display:block}.brand-mark{width:58px;height:58px;padding:5px}.brand-shield{padding:3px}
.certification-strip{grid-template-columns:repeat(6,minmax(120px,1fr));overflow:auto}.certification-grid{align-items:start}.certification-stage{margin-top:var(--nv-space-3)}.cert-step-list{display:flex;flex-direction:column;min-height:0}.cert-step{min-height:var(--nv-row);display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--nv-space-2);align-items:center;padding:var(--nv-space-2) var(--nv-space-3);border-bottom:1px solid var(--nv-line)}.cert-step:last-child{border-bottom:0}.hash-wrap{overflow-wrap:anywhere;word-break:break-word}.hash-panel{padding:var(--nv-space-3);border:1px solid var(--nv-line);border-radius:var(--nv-radius-sm);background:var(--nv-paper-soft);overflow-wrap:anywhere}.plain-list{display:flex;flex-direction:column;gap:var(--nv-space-2);padding:0;margin:0;list-style:none}.plain-list>li,.plain-list>div{padding:var(--nv-space-2);border-bottom:1px solid var(--nv-line)}
.row-action{position:relative}.row-action>summary{list-style:none;cursor:pointer}.row-action>summary::-webkit-details-marker{display:none}.row-action-form{position:absolute;z-index:120;right:0;top:calc(100% + var(--nv-space-1));width:min(390px,calc(100vw - 24px));display:grid;gap:var(--nv-space-2);padding:var(--nv-space-3);border:1px solid var(--nv-line-strong);border-radius:var(--nv-radius-md);background:var(--nv-paper);box-shadow:var(--nv-shadow-float);text-align:left}.row-action-form label{display:grid;gap:var(--nv-space-1);font-size:10px;font-weight:760}.row-action-form textarea{min-height:64px}.compact-actions{flex-wrap:wrap}.pending-table th:first-child{min-width:210px}.pending-table th:nth-child(3){min-width:230px}.pending-table th:nth-child(7){min-width:240px}.pending-table td{vertical-align:top}.finance-closure-detail{align-items:start}.compact-form{display:grid;gap:var(--nv-space-2);border:1px solid var(--nv-line);border-radius:var(--nv-radius-md)}
.closure-certificate{padding:var(--nv-space-4)}.closure-brand{display:flex;align-items:center;gap:var(--nv-space-3);padding-bottom:var(--nv-space-3);border-bottom:1px solid var(--nv-line)}.closure-brand img{width:48px;height:48px;object-fit:contain}.closure-brand>div{min-width:0;flex:1}.closure-brand h2{margin:0}.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--nv-line);border-radius:var(--nv-radius-md);overflow:hidden;margin-top:var(--nv-space-3)}.kpi-strip>div{display:grid;gap:var(--nv-space-1);padding:var(--nv-space-3);border-right:1px solid var(--nv-line)}.kpi-strip>div:last-child{border-right:0}.kpi-strip span{font-size:9px;font-weight:800;text-transform:uppercase;color:var(--nv-muted)}.kpi-strip strong{font-size:15px}.mt-2{margin-top:var(--nv-space-2)}
@media(max-width:1100px){.certification-strip{grid-template-columns:repeat(3,minmax(145px,1fr))}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-strip>div:nth-child(2){border-right:0}.kpi-strip>div:nth-child(-n+2){border-bottom:1px solid var(--nv-line)}}
@media(max-width:720px){.cert-step{grid-template-columns:minmax(0,1fr) auto}.cert-step .row-action{grid-column:1/-1}.row-action-form{position:fixed;left:var(--nv-space-3);right:var(--nv-space-3);top:var(--nv-top);width:auto;max-height:calc(100vh - var(--nv-top) - var(--nv-space-3));overflow:auto}.kpi-strip{grid-template-columns:1fr}.kpi-strip>div{border-right:0;border-bottom:1px solid var(--nv-line)}.kpi-strip>div:last-child{border-bottom:0}}

/* Legacy certification-layout compatibility (not part of the daily operator path). */
.certification-page .certification-grid{flex:none;min-height:auto}

/* Governed Gemini assistance and focused identity queues */
.queue-tabs{display:flex;gap:var(--nv-space-2);align-items:stretch;border-bottom:1px solid var(--nv-line);padding:0 var(--nv-space-1)}
.queue-tab{display:flex;align-items:center;gap:var(--nv-space-2);min-height:42px;padding:var(--nv-space-2) var(--nv-space-3);border:1px solid transparent;border-bottom:0;border-radius:var(--nv-radius-md) var(--nv-radius-md) 0 0;color:var(--nv-muted);text-decoration:none}
.queue-tab strong{font:800 13px var(--nv-mono);font-variant-numeric:tabular-nums}.queue-tab span{font-size:10px;font-weight:760}.queue-tab:hover,.queue-tab:focus-visible{color:var(--nv-blue);border-color:var(--nv-line)}.queue-tab.active{color:var(--nv-ink);border-color:var(--nv-line);background:var(--nv-paper)}
.ai-assist-panel{display:grid;gap:var(--nv-space-2);padding:var(--nv-space-3);border:1px solid var(--nv-line);border-left:3px solid var(--nv-blue);border-radius:var(--nv-radius-md);background:var(--nv-paper-soft)}
.ai-assist-panel>div:first-child{display:flex;flex-direction:column;gap:2px}.ai-assist-panel>div:first-child>span{color:var(--nv-muted);font-size:10px}.inline-actions{display:flex;flex-wrap:wrap;gap:var(--nv-space-2);align-items:center}.inline-actions form{margin:0}
.ai-draft{display:grid;gap:var(--nv-space-2);padding:var(--nv-space-3);border:1px solid var(--nv-line);border-radius:var(--nv-radius-sm);background:var(--nv-paper)}.ai-draft header{display:flex;gap:var(--nv-space-2);align-items:center;justify-content:space-between}.ai-draft pre{max-height:220px;overflow:auto;margin:0;padding:var(--nv-space-2);border:1px solid var(--nv-line);border-radius:var(--nv-radius-sm);background:var(--nv-paper-soft);font:500 10px/1.55 var(--nv-font);white-space:pre-wrap;overflow-wrap:anywhere}
.warning-control{padding:var(--nv-space-2);border:1px solid var(--nv-amber-line);border-radius:var(--nv-radius-sm)}.warning-control span{display:grid;gap:2px}.warning-control small{color:var(--nv-muted);font-weight:500}
.ai-mapping-panel{margin-bottom:var(--nv-space-3)}.max-h-360{max-height:360px}.row-action[open]{z-index:130}.row-action[open]>.ai-assist-panel{position:absolute;z-index:121;right:0;top:calc(100% + var(--nv-space-1));width:min(440px,calc(100vw - 24px));max-height:70vh;overflow:auto}.row-action[open]>.ai-assist-panel+.row-action-form{top:calc(100% + 280px)}
@media(max-width:760px){.queue-tabs{overflow:auto}.queue-tab{flex:0 0 auto}.row-action[open]>.ai-assist-panel{position:fixed;left:var(--nv-space-3);right:var(--nv-space-3);top:var(--nv-top);width:auto;max-height:42vh}.row-action[open]>.ai-assist-panel+.row-action-form{top:calc(var(--nv-top) + 42vh + var(--nv-space-2));max-height:calc(58vh - var(--nv-top) - var(--nv-space-4))}}
.reconciliation-chain{display:flex;align-items:center;gap:var(--nv-space-2);overflow:auto;padding:var(--nv-space-2) var(--nv-space-3)}.reconciliation-chain>div{flex:0 0 auto;padding:var(--nv-space-2);border:1px solid var(--nv-line);border-radius:var(--nv-radius-sm);font-size:10px;font-weight:760;background:var(--nv-paper)}.reconciliation-chain>span{color:var(--nv-muted)}.evidence-trace-row{display:grid;gap:var(--nv-space-2)}.evidence-trace-row>div:first-child{display:flex;flex-direction:column;gap:2px}.financial-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--nv-space-2)}.financial-mini-grid>span{display:grid;gap:2px;padding:var(--nv-space-2);border:1px solid var(--nv-line);border-radius:var(--nv-radius-sm);font-size:9px;color:var(--nv-muted)}.allocation-hint-row{display:grid;grid-template-columns:130px 100px 120px minmax(180px,1fr);gap:var(--nv-space-2);align-items:start;padding:var(--nv-space-2);border-top:1px solid var(--nv-line);font-size:10px}@media(max-width:760px){.financial-mini-grid{grid-template-columns:1fr 1fr}.allocation-hint-row{grid-template-columns:1fr 1fr}.allocation-hint-row>span:last-child{grid-column:1/-1}}

/* Operations 4.0 visual contract: the working console is flat; login/install may retain depth. */
.nv-app .card,.nv-app .table-shell,.nv-app .drawer,.nv-app .menu-pop,.nv-app .flash,.nv-app .profile-contract-card,.nv-app .identity-case,.nv-app .insurer-avatar,.nv-app .row-action-form,.nv-app .insurer-brand-control[open]>form{box-shadow:none!important}
.login-card,.install-card{box-shadow:var(--nv-shadow-login)}
.badge,.kpi strong,.queue-tab strong,.version-chip,.coverage-number,.score-orb,.count,.data-table .right{font-family:var(--nv-mono);font-variant-numeric:tabular-nums lining-nums}
/* Operations 4.1 daily reconciliation additions */
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--nv-border,#d9d9d0);border:1px solid var(--nv-border,#d9d9d0);margin:0 0 12px}
.dashboard-kpi{display:flex;min-height:88px;flex-direction:column;justify-content:center;padding:12px 14px;background:var(--paper,#fafaf6);color:inherit;text-decoration:none}
.dashboard-kpi:hover,.dashboard-kpi:focus-visible{outline:2px solid var(--action,#2b4c7e);outline-offset:-2px}
.dashboard-kpi span,.pool-kpi-strip span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--nv-muted,#65655f)}
.dashboard-kpi strong{font-size:22px;line-height:1.1;margin:4px 0}
.dashboard-kpi small,.pool-kpi-strip small{font-size:11px;color:var(--nv-muted,#65655f)}
.pool-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--nv-border,#d9d9d0);margin:0 0 12px;background:var(--paper,#fafaf6)}
.pool-kpi-strip>div{padding:10px 14px;border-right:1px solid var(--nv-border,#d9d9d0)}
.pool-kpi-strip>div:last-child{border-right:0}
.pool-kpi-strip strong{display:block;margin:4px 0;font-family:var(--font-mono,"JetBrains Mono",monospace);font-variant-numeric:tabular-nums}
.source-value{max-width:360px;white-space:pre-wrap;word-break:break-word}
.tiny-hash{font-size:12px}
.source-ledger-page .filters .grow{min-width:300px;flex:1}
@media(max-width:1100px){.dashboard-kpi-grid,.pool-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dashboard-kpi-grid,.pool-kpi-strip{grid-template-columns:1fr}.pool-kpi-strip>div{border-right:0;border-bottom:1px solid var(--nv-border,#d9d9d0)}}
.upload-result-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin-bottom:12px;border:1px solid var(--nv-border,#d9d9d0);background:var(--paper,#fafaf6)}
.upload-result-banner.ready{border-left:4px solid var(--matched,#557a5c)}
.upload-result-banner.review{border-left:4px solid var(--review,#a47b16)}
.upload-result-banner h2{margin:2px 0 4px;font-size:18px}
.upload-result-banner p{margin:0}
@media(max-width:900px){.upload-result-banner{align-items:flex-start;flex-direction:column}}

/* Operations 4.2 — fixed profile-rule console. The editor and impact pane scroll independently. */
.rule-console-screen{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:var(--nv-space-3)}
.rule-console-screen>.page-head,.rule-console-screen>.rule-safety-banner,.rule-console-screen>.ai-assist-panel{flex:0 0 auto}
.rule-console-screen .rule-studio-form{flex:1 1 auto;min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) auto}
.rule-console-screen .rule-studio-grid{height:100%;min-height:0;overflow:hidden;align-items:stretch}
.rule-console-screen .rule-editor-stack,.rule-console-screen .rule-preview-column{min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding-right:2px}
.rule-console-screen .sticky-preview{position:relative;top:auto}
.rule-console-screen .rule-action-dock{position:relative;inset:auto;flex:0 0 auto}
.rule-console-screen select[multiple]{min-height:104px;font-family:var(--nv-mono);font-size:10px}
@media(max-width:1100px){.rule-console-screen{overflow-y:auto}.rule-console-screen .rule-studio-form{overflow:visible;display:block}.rule-console-screen .rule-studio-grid{height:auto;overflow:visible}.rule-console-screen .rule-editor-stack,.rule-console-screen .rule-preview-column{overflow:visible}}

/* Novo OS 5.2 operator-ready workflow additions */
.period-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:6px; }
.compact-transition { border-top:1px solid var(--nv-line); border-bottom:1px solid var(--nv-line); }
.form-grid fieldset { border:1px solid var(--nv-line); border-radius:var(--nv-radius-sm); padding:8px; display:flex; flex-wrap:wrap; gap:8px 14px; }
.form-grid legend { padding:0 4px; color:var(--nv-muted-strong); font-size:10px; font-weight:780; }
.form-grid .check { flex-direction:row; align-items:center; gap:6px; }
.form-grid .check input { width:auto; }
.danger-zone { margin-top:12px; border:1px solid var(--nv-red-line); border-radius:var(--nv-radius-sm); padding:8px; background:var(--nv-red-soft); }
.danger-zone summary { cursor:pointer; color:var(--nv-red); font-weight:760; }
.list-stack { display:grid; gap:6px; margin-top:10px; }
.query-thread { display:grid; gap:8px; max-height:360px; overflow:auto; padding-right:3px; }
.query-message { border:1px solid var(--nv-line); border-radius:var(--nv-radius-sm); padding:9px; background:var(--nv-paper); }
.query-message.outbound { border-left:3px solid var(--nv-blue); }
.query-message.inbound { border-left:3px solid var(--nv-green); }
.query-message header { display:flex; justify-content:space-between; gap:10px; color:var(--nv-muted-strong); font-size:10px; }
.query-message p { margin:6px 0 0; }
@media (max-width:900px){.period-commandbar,.period-actions{align-items:stretch}.create-period-form,.compact-transition{grid-template-columns:1fr}.period-actions{justify-content:stretch}}

/* Novo OS 5.2 governed segment allocation and aggregate evidence */
.inline-editor{margin-top:4px;font-size:12px}.inline-editor summary{cursor:pointer;color:var(--nv-accent);font-weight:700;list-style:none}.inline-editor summary::-webkit-details-marker{display:none}.mini-form{display:grid;gap:6px;min-width:220px;margin-top:6px;padding:8px;border:1px solid var(--nv-border);border-radius:var(--nv-radius-sm);background:var(--nv-paper)}.mini-form input,.mini-form select{width:100%;min-height:30px}.aggregate-workspace .two-column-workspace{align-items:start}.aggregate-workspace .trace-list{display:grid;gap:0;border:1px solid var(--nv-border);border-radius:var(--nv-radius-md);overflow:hidden}.aggregate-workspace .trace-row{display:grid;grid-template-columns:minmax(110px,1fr) repeat(3,minmax(130px,auto));gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--nv-border)}.aggregate-workspace .trace-row:last-child{border-bottom:0}.aggregate-workspace .approval-card{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid var(--nv-border);border-radius:var(--nv-radius-md);background:var(--nv-mist)}

/* Novo OS 5.2 database-governed access control */
.user-management-grid{grid-template-columns:minmax(0,1.65fr) minmax(320px,.7fr)}
.inline-governance{position:relative}.inline-governance>summary{list-style:none;cursor:pointer}.inline-governance>summary::-webkit-details-marker{display:none}.governance-popover{position:absolute;z-index:140;right:0;top:calc(100% + 5px);width:min(390px,calc(100vw - 30px));max-height:70vh;overflow:auto;display:grid;gap:8px;padding:10px;border:1px solid var(--nv-line);border-radius:var(--nv-radius-md);background:var(--nv-paper)}.compact-form{display:grid;grid-template-columns:1fr;gap:6px;padding:8px;border:1px solid var(--nv-line);border-radius:var(--nv-radius-sm);background:var(--nv-paper-soft)}.compact-form label{display:grid;gap:3px;font-size:10px;font-weight:700}.compact-form input,.compact-form select{min-height:30px;width:100%}
.access-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:var(--nv-space-3);min-height:0;flex:1}.access-role-list{display:flex;flex-direction:column;gap:4px;padding:10px;overflow:auto}.access-role-list h2{margin:0 0 6px}.access-role-link{display:grid;gap:2px;padding:9px;border:1px solid transparent;border-radius:var(--nv-radius-sm);color:inherit;text-decoration:none}.access-role-link:hover,.access-role-link.active{border-color:var(--nv-line);background:var(--nv-paper-soft)}.access-role-link span,.access-role-link small{color:var(--nv-muted);font-size:9px}.access-form{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow:auto;padding:2px}.permission-group{display:grid;gap:4px;align-content:start;border:1px solid var(--nv-line);border-radius:var(--nv-radius-sm);padding:8px}.permission-group legend{padding:0 4px;font-size:10px;font-weight:800;color:var(--nv-muted-strong)}.permission-option{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:7px;padding:7px;border-radius:var(--nv-radius-sm);cursor:pointer}.permission-option:hover{background:var(--nv-paper-soft)}.permission-option input{margin-top:2px}.permission-option span{display:grid;gap:2px}.permission-option small{color:var(--nv-muted);font-weight:500}.permission-option code{font-size:9px;color:var(--nv-muted-strong)}.governance-submit{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end;padding-top:10px;border-top:1px solid var(--nv-line)}.governance-submit label{display:grid;gap:4px;font-size:10px;font-weight:750}
@media(max-width:1050px){.user-management-grid,.access-layout{grid-template-columns:1fr}.access-role-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px}.access-role-list h2{grid-column:1/-1}.permission-groups{grid-template-columns:1fr}}@media(max-width:680px){.governance-popover{position:fixed;left:12px;right:12px;top:80px;width:auto}.access-role-list{grid-template-columns:1fr}.governance-submit{grid-template-columns:1fr}}
