/* ============================================================================
   components/consolidated.css  ·  THE ONE CONSOLIDATED FORM
   ----------------------------------------------------------------------------
   Paired with components/consolidated.js. One ring (components/subscriber-ring.css)
   or one number, the words beside it, one table under it. Tokens only.

   THE SINGULAR FORM IS HIDDEN, NOT DELETED, at the consolidated altitude: a page
   marks the blocks that belong to one client's lens with data-singular, and this
   rule keeps them out of the consolidated view. At the singular altitude the
   consolidated mount stays hidden by the same attribute the other way round.
   ========================================================================== */
html[data-altitude="vertical"] [data-singular]{ display:none !important; }
html:not([data-altitude="vertical"]) [data-consolidated-mount]{ display:none !important; }

.consol{
  display:flex; flex-direction:column; gap:var(--space-lg);
  margin:var(--space-md) 0 var(--space-xl);
}
.consol-head{
  display:flex; align-items:center; gap:var(--space-xl);
  padding:var(--space-lg);
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  --sub-ring-hole:var(--surface);
}
.consol-ring{ flex:0 0 auto; }
.consol-number{ display:flex; flex-direction:column; align-items:center; justify-content:center; flex:0 0 auto; min-width:140px; padding:var(--space-sm) 0; }
.consol-number .v{ font-family:var(--font-heading); font-weight:var(--fw-bold); font-size:var(--fs-xxl); line-height:1.05; color:var(--text); }
.consol-number .l{ margin-top:4px; font-family:var(--font-mono); font-size:var(--fs-xs); letter-spacing:var(--ls-wide); text-transform:uppercase; color:var(--text-tertiary); white-space:nowrap; }
.consol-words{ display:flex; flex-direction:column; gap:var(--space-xs); min-width:0; }
.consol-across{ margin:0; font-family:var(--font-mono); font-size:var(--fs-xs); letter-spacing:var(--ls-wide); text-transform:uppercase; color:var(--text-tertiary); }
.consol-sentence{ margin:0; font-size:var(--fs-md); line-height:var(--lh-tight); color:var(--text-secondary); max-width:46rem; }
.consol-rows{ padding:0 var(--space-lg); }

.consol-table{ width:100%; border-collapse:collapse; font-size:var(--fs-sm); }
.consol-table th{
  text-align:left; padding:8px var(--space-md);
  font-family:var(--font-mono); font-size:var(--fs-xs); letter-spacing:var(--ls-wide); text-transform:uppercase; font-weight:var(--fw-regular);
  color:var(--text-tertiary); border-bottom:1px solid var(--border);
}
.consol-table td{ padding:12px var(--space-md); border-bottom:1px solid var(--border-subtle); vertical-align:top; color:var(--text); }
.consol-table th.right, .consol-table td.right{ text-align:right; font-variant-numeric:tabular-nums; }
.consol-table td.client a{ color:var(--text); font-weight:var(--fw-semibold); text-decoration:none; }
.consol-table td.client a:hover{ text-decoration:underline; }
.consol-table td .sub{ display:block; font-size:var(--fs-xs); color:var(--text-tertiary); margin-top:2px; }
.consol-table td.dash{ color:var(--text-tertiary); }
.consol-table tr[data-href]{ cursor:pointer; }
.consol-table tr[data-href]:hover td{ background:var(--surface-raised); }

@media (max-width:767px){
  .consol-head{ flex-direction:column; align-items:flex-start; gap:var(--space-md); }
  .consol-table{ display:block; overflow-x:auto; }
}

/* ORGANISATION ALTITUDE BANDS (Amendment 2, O2). At the organisation altitude the Customers,
   Leads and Appointments pages lead with the organisation's OWN rows (its clients, its own
   leads, its own bookings) and the cross-client aggregate moves under a second band reading
   "Across your clients". Both bands vanish at a client lens, so the singular pages are as on
   main. Tokens only. */
.ora-band{ margin-bottom:var(--space-lg); }
.ora-band-h{ font-family:var(--font-heading); font-size:var(--text-lg); font-weight:var(--fw-semibold); color:var(--text); display:flex; align-items:center; gap:.5rem; margin:var(--space-lg) 0 var(--space-md); }
.ora-band-h .sub{ font-family:var(--font-mono); font-size:var(--text-xs); color:var(--text-tertiary); font-weight:400; letter-spacing:normal; text-transform:none; }
.ora-band .ora-own-card{ background:var(--surface); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); overflow:auto; }
.ora-band table.ora-own{ width:100%; border-collapse:collapse; font-size:var(--text-sm); }
.ora-band table.ora-own th{ text-align:left; font-family:var(--font-mono); font-size:var(--text-2xs); letter-spacing:.08em; text-transform:uppercase; color:var(--text-tertiary); padding:var(--space-sm) var(--space-md); border-bottom:1px solid var(--border-subtle); white-space:nowrap; }
.ora-band table.ora-own td{ padding:var(--space-sm) var(--space-md); border-bottom:1px solid var(--border-subtle); color:var(--text-secondary); }
.ora-band table.ora-own tr:last-child td{ border-bottom:0; }
.ora-band table.ora-own th.num,.ora-band table.ora-own td.num{ text-align:right; font-variant-numeric:tabular-nums; font-family:var(--font-mono); }
.ora-band table.ora-own tr[data-href]{ cursor:pointer; } .ora-band table.ora-own tr[data-href]:hover td{ background:var(--glass-bg); }
.ora-band table.ora-own td.cli{ color:var(--text); font-weight:var(--fw-semibold); }
.ora-band .ora-own-empty{ padding:var(--space-lg); color:var(--text-tertiary); font-size:var(--text-sm); } .ora-band .ora-own-empty b{ color:var(--text-secondary); font-weight:var(--fw-semibold); }
html:not([data-altitude="vertical"]) .ora-band, html:not([data-altitude="vertical"]) .ora-band-h{ display:none; }
