/* ============================================================
   ALTSeek program page — Omnia build.

   The demo carries NO stylesheet: its look is 1089 inline style attributes on
   the template markup (design-system/styles.css is empty). So every value below
   is lifted verbatim from that markup rather than re-derived from the design
   tokens — a token-derived approximation is what made the first pass diverge.

   Source: package/app/altseek-demo-standalone.html, template region.
   ============================================================ */

:root {
  --as-gold: #DCC9A6;         /* section headings, hairlines */
  --as-gold-soft: #E2C27B;    /* chips, entity links */
  --as-cream: #FBF6EE;        /* headings on dark */
  --as-body: #E4E9EE;         /* fact values */
  --as-steel: #9FB0C0;        /* sublines, notes */
  --as-label: #6E7E8C;        /* uppercase labels */
  --as-card: #141414;
  --as-page: #0A0A0A;
  --as-line: rgba(220,201,166,.10);
  --as-line-soft: rgba(220,201,166,.06);
  --as-line-head: rgba(110,126,140,.3);
  --as-asset: var(--as-gold);  /* overridden per asset class, inline */

  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
}

.as-root, .as-root * { box-sizing: border-box; }
.as-root {
  margin: 0; background: var(--as-page); color: var(--as-body);
  font-family: var(--font-sans); font-size: 14px; line-height: 1.5;
  min-height: 100vh; -webkit-font-smoothing: antialiased;
}
.as-root a { color: var(--as-gold-soft); text-decoration: none; }

.as-wrap { max-width: 1120px; margin: 0 auto; padding: 0 20px 90px; }

@keyframes as-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes as-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---- top bar --------------------------------------------------------- */
.as-topbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 13px 26px; border-bottom: 1px solid var(--as-line);
  background: var(--as-page); position: sticky; top: 0; z-index: 20;
}
.as-back {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-steel);
}
.as-back:hover { color: var(--as-cream); }
.as-topbar-right { display: flex; align-items: center; gap: 10px; }
.as-chipbtn {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px;
  border-radius: 8px; border: 1px solid var(--as-line); background: var(--as-card);
  font-size: 11.5px; color: var(--as-steel);
}
.as-chipbtn:hover { border-color: rgba(226,194,123,.4); color: var(--as-cream); }

/* ---- title card ------------------------------------------------------ */
.as-titlecard {
  margin-top: 26px; background: var(--as-card);
  border: 1px solid var(--as-line); border-radius: 16px; padding: 30px 34px;
  animation: as-fade .4s ease;
}
.as-eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.as-eyebrow .as-rule {
  width: 38px; height: 3px; border-radius: 2px; flex: none; background: var(--as-asset);
}
.as-eyebrow-text {
  font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
  color: var(--as-asset);
}
.as-title {
  margin: 0; font-size: 34px; font-weight: 800; letter-spacing: -.025em;
  color: var(--as-cream); line-height: 1.08;
}
.as-subline { margin-top: 11px; font-size: 14px; color: var(--as-steel); }

/* The title card with something on its right: the due-diligence report button on the
   program page, the sponsor's logo on the sponsor profile (9/15/2026). */
.as-titlecard-split { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.as-titlecard-main { flex: 1 1 420px; min-width: 0; }
.as-titlecard-side { flex: 0 0 auto; }
.as-ddbtn {
  display: inline-flex; align-items: center; gap: 14px; padding: 14px 18px 14px 16px;
  border-radius: 12px; border: 1px solid rgba(226,194,123,.55);
  background: linear-gradient(135deg, #E9CF8E 0%, #C9A45E 100%); color: #141414;
  box-shadow: 0 10px 28px -12px rgba(226,194,123,.55), inset 0 1px 0 rgba(255,255,255,.35);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
/* .as-root a (0,1,1) outranks .as-ddbtn (0,1,0), so the button's text took the link gold
   (Buttonwood 9/30/2026: "update the text color to black on the DD report button"). */
.as-root a.as-ddbtn, .as-root a.as-ddbtn:hover { color: #0A0A0A; }
.as-ddbtn:hover { transform: translateY(-1px); filter: brightness(1.04); color: #0A0A0A;
  box-shadow: 0 14px 32px -12px rgba(226,194,123,.7), inset 0 1px 0 rgba(255,255,255,.4); }
.as-ddbtn-icon { flex: none; }
.as-ddbtn-text { display: flex; flex-direction: column; line-height: 1.15; }
.as-ddbtn-text b { font-size: 13.5px; font-weight: 800; letter-spacing: .01em; }
.as-ddbtn-text small { font-size: 11px; font-weight: 500; opacity: .78; margin-top: 3px; }
.as-ddbtn-go { flex: none; opacity: .65; }
.as-ddnone {
  display: flex; flex-direction: column; padding: 12px 16px; border-radius: 10px;
  border: 1px dashed rgba(226,194,123,.35); color: var(--as-steel); font-size: 12.5px; font-weight: 600;
}
.as-ddnone small { font-size: 10.5px; font-weight: 500; color: var(--as-label); margin-top: 3px; }
.as-crm-logo {
  display: block; width: 168px; height: 84px; border-radius: 10px;
  background: #FBF6EE center / contain no-repeat; background-origin: content-box; padding: 10px;
  border: 1px solid var(--as-line);
}
@media (max-width: 640px) {
  .as-titlecard-side { flex-basis: 100%; }
  .as-ddbtn { width: 100%; justify-content: center; }
}

/* ---- tabs ------------------------------------------------------------ */
.as-tabs {
  display: flex; gap: 4px; margin: 26px 0 24px;
  border-bottom: 1px solid var(--as-line);
}
.as-tab {
  padding: 12px 18px; font-size: 12px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; cursor: pointer; color: var(--as-label);
  background: none; border: 0; border-bottom: 2px solid transparent;
  margin-bottom: -1px; font-family: var(--font-sans);
}
.as-tab:hover { color: var(--as-steel); }
.as-tab.is-active { color: var(--as-cream); border-bottom-color: var(--as-gold-soft); }
.as-tab-ratings {
  color: var(--as-gold-soft); background: rgba(226,194,123,.10);
  border-radius: 8px 8px 0 0;
}
.as-tab-ratings.is-active { color: var(--as-gold-soft); border-bottom-color: var(--as-gold-soft); }

.as-panel { animation: as-rise .4s ease both; }
.as-panel[hidden] { display: none; }

/* ---- section heading ------------------------------------------------- */
.as-sec-head {
  margin-top: 34px; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 16px; padding-bottom: 12px;
  border-bottom: 1px solid var(--as-line-head);
}
.as-sec-title {
  margin: 0; font-family: var(--font-serif); font-style: italic; font-weight: 700;
  letter-spacing: .04em; color: var(--as-gold); font-size: 19.5px;
}
.as-sec-meta { font-size: 11px; color: var(--as-label); white-space: nowrap; }
/* Buttonwood's one-word descriptor beside a supporting score's name (APS = Quality,
   CDS = Depth, FMRP = Durability, 9/23/2026). Upright sans against the serif italic
   heading, so it reads as a tag on the score rather than part of its name. */
.as-sec-qual {
  font-family: var(--font-sans); font-style: normal; font-weight: 600;
  font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-steel); white-space: nowrap;
}
.as-sec-qual::before {
  content: "\2014"; margin: 0 10px; letter-spacing: 0; color: var(--as-line-head);
}

/* ---- overview card --------------------------------------------------- */
.as-overview {
  background: var(--as-card); border: 1px solid var(--as-line); border-radius: 12px;
  overflow: hidden; display: flex; align-items: stretch;
}
.as-gauge-col {
  flex: none; width: 250px; display: flex; flex-direction: column;
  align-items: center; justify-content: flex-start; gap: 10px; padding: 24px 16px 20px;
  border-right: 1px solid rgba(220,201,166,.12); background: rgba(44,62,80,.14);
}
.as-gauge-name {
  font-size: 13px; font-weight: 700; color: var(--as-cream);
  text-align: center; line-height: 1.35;
}
.as-nr {
  display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 6px 0 2px;
}
.as-nr-badge {
  display: flex; align-items: center; justify-content: center; width: 52px; height: 52px;
  border-radius: 50%; border: 1.5px dashed rgba(159,176,192,.45);
  font-size: 15px; font-weight: 800; letter-spacing: .04em; color: var(--as-steel);
}
.as-nr-label {
  font-size: 9.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: #7E8C99;
}
.as-rows { flex: 1; min-width: 0; padding: 8px 30px 14px; }
.as-row {
  display: grid; grid-template-columns: 210px 1fr; gap: 18px; padding: 15px 0;
  border-bottom: 1px solid var(--as-line-soft);
}
.as-row:last-child { border-bottom: 0; }
.as-row-label {
  font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--as-label);
}
.as-row-value {
  font-size: 13.5px; color: var(--as-body); line-height: 1.5;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.as-row-note {
  flex-basis: 100%; font-size: 11.5px; line-height: 1.5; color: var(--as-steel);
}
.as-entity { color: var(--as-gold-soft); border-bottom: 1px solid rgba(220,201,166,.35); }

.as-chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11.5px; font-weight: 600; color: var(--as-gold-soft);
  background: rgba(226,194,123,.12); border: 1px solid rgba(226,194,123,.32);
  padding: 4px 11px; border-radius: 999px;
}
/* Overview chips that open their own class on Securities & Terms. */
a.as-chip { text-decoration: none; cursor: pointer; transition: border-color .15s, background-color .15s, color .15s; }
a.as-chip:hover { border-color: rgba(226,194,123,.6); background: rgba(226,194,123,.2); color: var(--as-cream); }
a.as-chip:focus-visible { outline: 2px solid rgba(226,194,123,.55); outline-offset: 2px; }

/* ---- offering stat row ----------------------------------------------- */
.as-stats {
  border: 1px solid var(--as-line); border-radius: 12px; overflow: hidden;
  display: flex; flex-wrap: wrap; gap: 1px; background: var(--as-line); margin-top: 24px;
}
/* 190px, not 150: "MINIMUM INVESTMENT" (9/23/2026) measures 134px at 9px/.18em and the
   tile spends 44px on padding, so 179px is the point at which the label wraps and drops its
   own tile's value a line below its neighbours'. 190 keeps a margin for a fallback font, and
   below 380px of row the tiles are one per row anyway, where a wrap costs nothing. */
.as-stat { flex: 1; min-width: 190px; background: var(--as-card); padding: 14px 22px; }
.as-stat-label {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label);
}
.as-stat-value {
  margin-top: 7px; font-size: 19px; font-weight: 800; color: var(--as-cream);
  font-variant-numeric: tabular-nums; line-height: 1.2;
}
.as-stat-value.is-positive { color: #7FB89A; }
.as-stat-value.is-empty { color: var(--as-label); }
.as-stat-note { margin-top: 5px; font-size: 10.5px; color: var(--as-label); }

/* ---- prose panel ----------------------------------------------------- */
.as-prose {
  margin-top: 24px; background: var(--as-card); border: 1px solid var(--as-line);
  border-radius: 12px; padding: 22px 26px;
}
.as-prose-label {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label); margin-bottom: 12px;
}
.as-prose p { margin: 0; font-size: 13px; line-height: 1.7; color: #CBD5DF; }

/* ---- generic card ---------------------------------------------------- */
.as-card {
  background: var(--as-card); border: 1px solid var(--as-line);
  border-radius: 12px; overflow: hidden;
}
.as-kv { display: flex; flex-wrap: wrap; gap: 1px; background: var(--as-line); }
.as-kv-cell { flex: 1; min-width: 180px; background: var(--as-card); padding: 14px 22px; }
.as-kv-label {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label);
}
.as-kv-value { margin-top: 7px; font-size: 16px; font-weight: 800; color: var(--as-cream); }
.as-kv-note { margin-top: 5px; font-size: 10.5px; color: var(--as-label); line-height: 1.5; }

/* ---- share-class selector -------------------------------------------- */
.as-classbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 4px; }
.as-classbtn {
  padding: 11px 17px; border-radius: 10px; cursor: pointer; text-align: left;
  background: var(--as-card); border: 1px solid var(--as-line);
  border-left: 3px solid rgba(110,126,140,.35); font-family: var(--font-sans);
}
.as-classbtn.is-active { border-left-color: #6FBF8B; background: #131816; }
.as-classbtn-name { font-size: 13.5px; font-weight: 700; color: var(--as-body); }
.as-classbtn.is-active .as-classbtn-name { color: #6FBF8B; }
.as-classbtn-type {
  margin-top: 4px; font-size: 9px; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; color: var(--as-label);
}
.as-classbtn-type::before { content: '\25CF'; color: #6FBF8B; margin-right: 6px; font-size: 7px; }
/* Debt securities in blue so they read apart from the green equity ones (Buttonwood, 9/3/2026). */
.as-classbtn.as-cap-debt .as-classbtn-type::before { color: #69A6DB; }
.as-classbtn.as-cap-debt.is-active { border-left-color: #69A6DB; }
.as-classbtn.as-cap-debt.is-active .as-classbtn-name { color: #69A6DB; }

/* ---- availability strip ---------------------------------------------- */
.as-avail {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 13px 22px; border-bottom: 1px solid var(--as-line-soft);
}
.as-avail-label {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label);
}
.as-tag {
  display: inline-block; padding: 2px 7px; border-radius: 5px;
  font-size: 8.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--as-gold-soft); background: rgba(226,194,123,.12);
}
.as-avail-value { font-size: 12.5px; color: #CBD5DF; }

/* ---- term / objective tables ----------------------------------------- */
.as-terms { width: 100%; border-collapse: collapse; }
.as-terms tr { border-bottom: 1px solid var(--as-line-soft); }
.as-terms tr:last-child { border-bottom: 0; }
.as-terms th {
  width: 210px; text-align: left; vertical-align: top; padding: 15px 22px;
  font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--as-label);
}
.as-terms td { padding: 15px 22px; font-size: 13.5px; color: var(--as-body); line-height: 1.5; }

/* ---- fee table ------------------------------------------------------- */
/* table-layout:fixed, not auto. Under auto a single long cell dictates the whole
   table's proportions — a 190-character assessment base squeezed the fee-name column
   to one character per line. Fixed keeps the columns where the design put them no
   matter what the payload carries. */
.as-fees { width: 100%; border-collapse: collapse; table-layout: fixed; }
/* Column widths come from a per-table <colgroup> the page emits (feeColWidths), not from
   nth-child rules: the columns are chosen on the page now, so a width tied to a position
   would starve whichever column landed last — that is exactly how a five-column ongoing
   table gave its Notes column 0 width and wrapped a 280-character note into a 4,000px
   cell (9/3/2026). Weights per column code, normalised to 100% for whatever is shown. */
.as-fees thead th {
  text-align: left; padding: 11px 22px;
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label); border-bottom: 1px solid var(--as-line-soft);
}
.as-fees tbody td {
  padding: 13px 22px; border-bottom: 1px solid var(--as-line-soft);
  font-size: 12.5px; color: #CBD5DF;
  /* top, not middle: a row whose note runs six lines should not float its rate and
     amount to the vertical centre, away from the fee they belong to */
  vertical-align: top; overflow-wrap: break-word;
}
.as-fees tbody tr:last-child td { border-bottom: 0; }
.as-fees .as-fee-name { color: var(--as-body); font-weight: 600; font-size: 13px; }
.as-fees .as-fee-amount {
  color: var(--as-cream); font-weight: 800; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
/* A fee quoted in prose (program_fees[].charge) in the rate slot: the amount's weight and
   colour (Buttonwood, 9/18/2026: "the same bold font as rate_percent") but it WRAPS —
   .as-fee-amount is nowrap for "10.00%", and a 190-character nowrap span is what collapsed
   the fee table in the first place. */
.as-fees .as-fee-prose {
  color: var(--as-cream); font-weight: 800; font-size: 12.5px; line-height: 1.45;
  letter-spacing: 0; text-transform: none;
}
td.as-right .as-fee-prose { text-align: right; }
.as-badge-aff {
  display: inline-block; margin-left: 8px; padding: 2px 7px; border-radius: 5px;
  font-size: 8.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: #D9756B; background: rgba(194,85,75,.14);
}
.as-stage {
  display: inline-block; padding: 2px 7px; border-radius: 5px;
  font-size: 8.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--as-label); background: rgba(110,126,140,.14);
}

/* ---- ratings --------------------------------------------------------- */
.as-rating-top { display: flex; gap: 18px; align-items: stretch; flex-wrap: wrap; }
.as-rating-gauge {
  flex: none; width: 320px; background: var(--as-card); border: 1px solid var(--as-line);
  border-radius: 12px; padding: 22px; text-align: center;
}
.as-rating-side { flex: 1; min-width: 320px; }
.as-measures {
  display: flex; flex-wrap: wrap; gap: 1px; background: var(--as-line);
  border: 1px solid var(--as-line); border-radius: 12px; overflow: hidden;
}
.as-measure { flex: 1; min-width: 150px; background: var(--as-card); padding: 14px 22px; }
.as-measure-label {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label);
}
.as-measure-value {
  margin-top: 7px; font-size: 22px; font-weight: 800; color: var(--as-cream);
  font-variant-numeric: tabular-nums;
}
.as-measure-note { margin-top: 5px; font-size: 10.5px; color: var(--as-label); }

.as-bar-row { padding: 13px 22px; border-bottom: 1px solid var(--as-line-soft); }
.as-bar-row:last-child { border-bottom: 0; }
.as-bar-head {
  display: flex; justify-content: space-between; gap: 16px; margin-bottom: 8px;
  font-size: 12.5px;
}
.as-bar-name { color: var(--as-body); }
.as-bar-figure {
  color: var(--as-label); font-size: 10.5px; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.as-bar-track { height: 5px; border-radius: 3px; background: rgba(110,126,140,.18); overflow: hidden; }
.as-bar-fill { height: 100%; border-radius: 3px; background: var(--as-gold-soft); }
.as-bar-fill.is-low { background: #C2554B; }
.as-bar-fill.is-full { background: #6FBF8B; }

/* ---- empty ----------------------------------------------------------- */
.as-empty {
  margin-top: 26px; padding: 26px 24px; text-align: center; color: var(--as-label);
  font-size: 12.5px; background: var(--as-card);
  border: 1px dashed rgba(110,126,140,.3); border-radius: 12px;
}

/* ---- responsive ------------------------------------------------------ */
@media (max-width: 900px) {
  .as-overview { display: block; }
  .as-gauge-col { width: 100%; border-right: 0; border-bottom: 1px solid rgba(220,201,166,.12); }
  .as-rows { padding: 4px 20px 10px; }
  .as-row { grid-template-columns: 1fr; gap: 5px; }
  .as-title { font-size: 26px; }
  .as-rating-gauge { width: 100%; }
  .as-terms th { width: auto; display: block; padding-bottom: 0; }
  .as-terms td { display: block; padding-top: 6px; }
}

/* ============================================================
   Ratings tab — values lifted from the demo's template markup.
   ============================================================ */
.as-sec-title-lg { font-size: 22px; }
.as-sec-head-tight { border-bottom-color: rgba(220,201,166,.16); padding-bottom: 11px; }

.as-metric { display: flex; align-items: baseline; gap: 9px; }
.as-metric-label {
  font-size: 9.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--as-label);
}
.as-metric-value {
  font-size: 19px; font-weight: 800; color: var(--as-gold);
  font-variant-numeric: tabular-nums; line-height: 1;
}

/* The scorecard renders gauge + supporting scores + outlook/confidence itself, so it
   gets the full column width its wide layout expects. */
.as-ratecard { width: 100%; position: relative; }
.as-ratecard altseek-scorecard-lux { display: block; width: 100%; min-height: 420px; }

.as-card-pad { padding: 22px 30px 26px; box-shadow: 0 14px 34px -20px rgba(0,0,0,.75); }

/* ---- considerations --------------------------------------------------- */
.as-cons {
  margin-top: 24px; background: var(--as-card); border: 1px solid rgba(201,164,94,.34);
  border-radius: 12px; padding: 22px 26px;
  box-shadow: 0 14px 34px -20px rgba(0,0,0,.75);
}
.as-cons-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.as-cons-rule { width: 4px; height: 15px; border-radius: 1px; background: #C9A45E; }
.as-cons-label {
  font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: #C9A45E;
}
.as-cons-flag {
  font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: #0A0A0A; background: #C9A45E; padding: 2px 7px; border-radius: 4px;
}
.as-cons-body { font-size: 14px; line-height: 1.75; color: #CBD5DF; max-width: 88ch; }

/* ---- block heads ------------------------------------------------------ */
.as-block-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin-bottom: 18px;
}
.as-block-title {
  font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: #CBD5DF; white-space: nowrap;
}
.as-block-sub {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label);
}
.as-block-note { font-size: 10px; color: #5A6875; }

/* ---- band swatches ---------------------------------------------------- */
.as-legend { display: flex; gap: 16px; flex-wrap: wrap; }
.as-legend-item { display: flex; align-items: center; gap: 6px; font-size: 10px; color: var(--as-steel); }
.as-legend-range { color: var(--as-label); }
.as-sw { width: 9px; height: 9px; border-radius: 2px; display: inline-block; flex: none; }
.as-sw-1 { background: #DCC9A6; }
.as-sw-2 { background: #B08D57; }
.as-sw-3 { background: #8A6E42; }
.as-sw-4 { background: #5E4E30; }
.as-sw-1-t { color: #DCC9A6; }
.as-sw-2-t { color: #B08D57; }
.as-sw-3-t { color: #A8895A; }

/* ---- category / dimension bars ---------------------------------------- */
.as-cats { display: flex; flex-direction: column; gap: 11px; }
.as-catrow { display: grid; grid-template-columns: 206px 1fr 56px; align-items: center; gap: 16px; }
.as-catname { font-size: 12.5px; color: #CBD5DF; text-align: right; line-height: 1.3; }
.as-cattrack {
  position: relative; height: 10px; display: block; border-radius: 999px;
  background: #1A1A1A; border: 1px solid rgba(220,201,166,.07);
  /* the 55 and 70 threshold ticks, drawn into the track itself */
  background-image: linear-gradient(90deg,
    transparent 0 55%, rgba(220,201,166,.22) 55% calc(55% + 1px),
    transparent calc(55% + 1px) 70%, rgba(220,201,166,.22) 70% calc(70% + 1px),
    transparent calc(70% + 1px));
}
.as-catfill {
  position: absolute; top: 0; left: 0; display: block; height: 100%;
  border-radius: 999px; transform-origin: left;
}
.as-catval {
  font-size: 13px; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums;
}
/* Reached but not scored. The track keeps its ticks so the row still reads as part of
   the scale, but nothing is filled and the value is a dash — a red 0.0% here would
   assert a finding nobody made. */
.as-catrow-unscored .as-catname { color: #8A93A0; }
.as-catval-unscored { color: #6E7681; font-weight: 600; }
.as-band {
  display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 4px;
  font-size: 8.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  white-space: nowrap;
}
.as-sw-1-b { color: #0A0A0A; background: #DCC9A6; }
.as-sw-2-b { color: #0A0A0A; background: #B08D57; }
.as-sw-3-b { color: #F0DCAE; background: #8A6E42; }

.as-axis { margin-top: 12px; display: grid; grid-template-columns: 206px 1fr 56px; gap: 16px; }
.as-axis-scale {
  position: relative; height: 12px; font-size: 9px; font-weight: 600;
  letter-spacing: .08em; color: #5A6875;
}
.as-ax0 { position: absolute; left: 0; }
.as-ax55 { position: absolute; left: 55%; transform: translateX(-50%); }
.as-ax70 { position: absolute; left: 70%; transform: translateX(-50%); }
.as-ax100 { position: absolute; right: 0; }

/* ---- CDS contribution bar --------------------------------------------- */
.as-cdsbar { display: flex; height: 26px; border-radius: 999px; overflow: hidden; background: #1E1E1E; }
.as-cds-pos {
  background: #DCC9A6; box-shadow: 0 0 14px -4px #DCC9A6;
  display: flex; align-items: center; padding: 0 12px;
  font-size: 11.5px; font-weight: 800; color: #1A1408; font-variant-numeric: tabular-nums;
}
.as-cds-neg {
  background: #8A6E42; box-shadow: 0 0 14px -4px #8A6E42;
  display: flex; align-items: center; justify-content: flex-end; padding: 0 12px;
  font-size: 11.5px; font-weight: 800; color: #F0DCAE; font-variant-numeric: tabular-nums;
}
.as-cds-legend { display: flex; justify-content: space-between; margin-top: 7px; }
.as-cds-legend-pos, .as-cds-legend-neg {
  font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.as-cds-legend-pos { color: #E2C27B; }
.as-cds-legend-neg { color: #C9A45E; }

/* ---- ALTSeek Commentary — Buttonwood's note under a section ----------- */
.as-commentary {
  margin: 14px 0 28px; padding: 13px 18px 14px 20px;
  border-left: 3px solid #C9A45E; border-radius: 0 10px 10px 0;
  background: rgba(226,194,123,.05);
}
.as-commentary-label {
  font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: #C9A45E; margin-bottom: 6px;
}
.as-commentary-body { font-size: 13.5px; line-height: 1.65; color: #CBD5DF; white-space: pre-line; }
/* preview only: the placeholder that starts a note */
.as-commentary-empty { background: transparent; border-left-style: dashed; padding: 6px 12px 6px 16px; margin: 6px 0 22px; }

/* ---- durability scale (was "vulnerability" until 9/2/2026) ------------ */
.as-scale {
  margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--as-line-soft);
  display: flex; flex-direction: column; gap: 8px;
}
.as-scale-row { display: flex; align-items: center; gap: 9px; font-size: 10.5px; color: #8B9AA7; }
.as-scale-row b { color: #CBD5DF; font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---- dashed "not captured" note --------------------------------------- */
.as-note-dashed {
  display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px;
  border: 1px dashed rgba(220,201,166,.20); border-radius: 10px; background: rgba(44,62,80,.18);
  font-size: 11.5px; line-height: 1.5; color: #8B9AA7;
}
.as-note-dot { flex: none; width: 6px; height: 6px; margin-top: 6px; border-radius: 50%; background: #7FA6B8; }

@media (max-width: 780px) {
  .as-catrow, .as-axis { grid-template-columns: 1fr; }
  .as-catname { text-align: left; }
  .as-catval { text-align: left; }
}

/* ============================================================
   FMRP durability radar
   ============================================================ */
.as-fmrp-card { padding: 24px 30px; box-shadow: 0 14px 34px -20px rgba(0,0,0,.75); }
.as-fmrp-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; align-items: center; }

.as-radar-col { text-align: center; }
.as-radar-title { margin-bottom: 6px; display: block; }
.as-radar-box { position: relative; width: 320px; max-width: 100%; margin: 10px auto 0; }
.as-radar-svg { display: block; max-width: 100%; height: auto; }
.as-radar-ticks { font-size: 7px; font-weight: 700; fill: #8B9AA7; }
.as-radar-axis {
  position: absolute; transform: translate(-50%, -50%);
  font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--as-steel);
  white-space: nowrap; cursor: default;
}
.as-radar-axis:hover { color: #CBD5DF; }

.as-fmrp-list { display: flex; flex-direction: column; gap: 16px; max-width: 340px; margin: 0 auto; }
.as-fmrp-row { display: grid; grid-template-columns: 1fr 34px; align-items: baseline; gap: 8px; }
.as-fmrp-name { font-size: 11.5px; color: #CBD5DF; }
.as-fmrp-score {
  grid-row: 1; grid-column: 2; font-size: 11.5px; font-weight: 700; text-align: right;
  font-variant-numeric: tabular-nums; color: var(--as-body);
}
.as-fmrp-track {
  grid-column: 1 / -1; height: 7px; background: #1E1E1E; border-radius: 999px;
  overflow: hidden; display: block; margin-top: 6px;
}
.as-fmrp-fill { display: block; height: 100%; border-radius: 999px; }

/* four-step durability ramp — b1 (lightest) is the MOST durable band */
.as-b1 { background: #DCC9A6; }
.as-b2 { background: #C9A45E; }
.as-b3 { background: #B08D57; }
.as-b4 { background: #8A6E42; }
.as-b1-b { color: #0A0A0A; background: #DCC9A6; }
.as-b2-b { color: #0A0A0A; background: #C9A45E; }
.as-b3-b { color: #0A0A0A; background: #B08D57; }
.as-b4-b { color: #F0DCAE; background: #8A6E42; }

.as-scale-title {
  font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label); margin-bottom: 12px;
}
.as-scale-row b { min-width: 62px; display: inline-block; }
.as-scale-row em {
  font-style: normal; min-width: 136px; display: inline-block;
  font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--as-steel);
}
.as-scale { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--as-line); }

@media (max-width: 900px) {
  .as-fmrp-grid { grid-template-columns: 1fr; gap: 26px; }
  .as-scale-row { flex-wrap: wrap; }
}

/* ============================================================
   Overview — securities cards, valuation, sponsor, role ledger
   ============================================================ */
.as-right { text-align: right; }

/* ---- securities offered cards ----------------------------------------- */
.as-secgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.as-seccard {
  background: var(--as-card); border: 1px solid var(--as-line);
  border-radius: 12px; padding: 20px 22px;
}
.as-seccard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.as-seccard-name { font-size: 15px; font-weight: 700; color: var(--as-cream); }
.as-seccard-tags { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.as-kind, .as-status {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 9.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.as-kind { color: #6FBF8B; background: rgba(111,191,139,.12); border: 1px solid rgba(111,191,139,.3); padding: 3px 10px; border-radius: 6px; }
.as-kind.as-kind-debt { color: #69A6DB; background: rgba(105,166,219,.12); border-color: rgba(105,166,219,.3); }
.as-status { color: #6FBF8B; font-weight: 600; letter-spacing: .1em; }
/* A closed class reads as closed: muted red where an open one is green (Buttonwood, 9/18/2026). */
.as-status.is-closed { color: #BF6B62; }
.as-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }

.as-secstats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1px;
  margin-top: 16px; background: rgba(220,201,166,.12);
  border: 1px solid rgba(220,201,166,.12); border-radius: 10px; overflow: hidden;
}
.as-secstat { background: var(--as-card); padding: 14px 16px; min-width: 0; }
.as-secstat-label {
  font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--as-label);
}
.as-secstat-value {
  margin-top: 5px; font-size: 18px; font-weight: 800; color: var(--as-cream);
  font-variant-numeric: tabular-nums;
}
.as-secstat-value.is-gold { color: #C9A45E; }
.as-secstat-note { margin-top: 4px; font-size: 10.5px; line-height: 1.45; color: var(--as-steel); }

/* The whole card opens its class on Securities & Terms (data-tab-link, altseek-program.js). */
.as-seccard-link { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.as-seccard-link:hover, .as-seccard-link:focus-visible { border-color: rgba(226,194,123,.45); outline: none; }
.as-seccard-link:focus-visible { box-shadow: 0 0 0 2px rgba(226,194,123,.3); }
.as-seccard-foot { display: flex; justify-content: flex-end; margin-top: 14px; }
.as-seccard-more {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 9.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--as-gold-soft); text-decoration: none;
}
.as-seccard-link:hover .as-seccard-more { color: var(--as-cream); }

/* ---- valuation policy -------------------------------------------------- */
.as-prose-flat { border-radius: 12px; }
.as-valcard { margin-top: 16px; }
.as-valhead {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 16px 22px; border-bottom: 1px solid var(--as-line-soft); flex-wrap: wrap;
}
.as-val-label {
  font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
  color: #B08D57;
}
.as-val-class {
  font-family: var(--font-serif); font-style: italic; font-weight: 600;
  font-size: 13px; color: var(--as-gold);
}
/* Three cells since Policy Status came out (9/14/2026); a 2x2 grid left the fourth
   area drawn in the line colour. Collapses to one column with the rest at 780px. */
/* auto-fit, not three fixed columns: a hidden cell used to leave its third of the card
   empty (Buttonwood 9/30/2026: "dynamically resize the remaining content"). */
.as-valgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; background: var(--as-line-soft); }
.as-valcell { background: var(--as-card); padding: 16px 22px; }
.as-valcell-value { margin-top: 6px; font-size: 13.5px; font-weight: 700; color: var(--as-body); }
.as-valcell-value.is-prose { font-weight: 400; font-size: 12.5px; line-height: 1.6; color: #CBD5DF; }
.as-valparties { padding: 16px 22px; border-top: 1px solid var(--as-line-soft); }
.as-valparty {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; margin-top: 10px;
}
.as-valparty-name { font-size: 13px; font-weight: 700; color: var(--as-body); }
.as-valparty-role { margin-top: 3px; font-size: 11.5px; color: var(--as-steel); }
.as-valparty-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.as-tag-ok { color: #6FBF8B; background: rgba(111,191,139,.14); }
.as-tag-warn { color: #D9A05B; background: rgba(217,160,91,.14); }

/* ---- sponsor ----------------------------------------------------------- */
.as-sponsorcard { padding: 22px 26px; }
.as-sponsor-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
}
.as-sponsor-name { margin-top: 5px; font-size: 19px; font-weight: 700; color: var(--as-cream); }
.as-sponsor-stats { display: flex; gap: 28px; }
.as-sponsor-stat { text-align: right; }
.as-sponsor-stat-value {
  margin-top: 5px; font-size: 16px; font-weight: 800; color: var(--as-body);
  font-variant-numeric: tabular-nums;
}
.as-sponsor-bio { margin: 16px 0 0; font-size: 12.5px; line-height: 1.7; color: #CBD5DF; }

.as-team { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--as-line-soft); }
.as-team-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.as-team-title {
  font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: #CBD5DF;
}
.as-teamtable { width: 100%; border-collapse: collapse; }
.as-teamtable th {
  text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--as-line-soft);
  font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--as-label);
}
.as-teamtable td {
  padding: 12px; border-bottom: 1px solid var(--as-line-soft);
  font-size: 11.5px; line-height: 1.5; color: #CBD5DF; vertical-align: top;
}
.as-teamtable tbody tr:last-child td { border-bottom: 0; }
.as-team-name { font-size: 12.5px; font-weight: 700; color: var(--as-body); }
.as-team-title-sub { margin-top: 2px; font-size: 10.5px; color: var(--as-label); }
.as-team-exp { font-weight: 700; color: var(--as-body); font-variant-numeric: tabular-nums; }
.as-team-age { margin-top: 2px; font-size: 10px; color: var(--as-label); }
.as-team-creds { margin-top: 3px; font-size: 10px; color: var(--as-gold-soft); }

/* ---- role ledger ------------------------------------------------------- */
.as-ledger { width: 100%; border-collapse: collapse; }
.as-ledger th {
  text-align: left; padding: 11px 22px; border-bottom: 1px solid var(--as-line-soft);
  font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--as-label);
}
.as-ledger td { padding: 12px 22px; font-size: 12px; color: #CBD5DF; vertical-align: middle; }
.as-ledger tr.as-ledger-first td { border-top: 1px solid var(--as-line-soft); }
.as-ledger tbody tr:first-child td { border-top: 0; }
.as-ledger-party { font-weight: 700; color: var(--as-body); font-size: 12.5px; }

@media (max-width: 780px) {
  .as-valgrid { grid-template-columns: 1fr; }
  .as-sponsor-stats { gap: 18px; }
  .as-teamtable, .as-teamtable thead, .as-teamtable tbody, .as-teamtable tr, .as-teamtable td, .as-teamtable th { display: block; }
  .as-teamtable thead { display: none; }
  .as-teamtable tr { border-bottom: 1px solid var(--as-line-soft); padding: 8px 0; }
  .as-teamtable td { border-bottom: 0; padding: 3px 12px; }
}

/* ============================================================
   Securities & Terms — key terms, objectives, fee tables
   ============================================================ */
.as-keypill { padding: 16px 22px 4px; }
.as-kv-row2 { border-top: 1px solid var(--as-line-soft); }
.as-kv-value.is-gold { color: #C9A45E; }
.as-kv-value.is-plain { font-size: 13px; font-weight: 400; color: #CBD5DF; line-height: 1.5; }
.as-kv-2 .as-kv-cell { min-width: 260px; }

.as-addl { border-top: 1px solid var(--as-line-soft); padding-top: 4px; }
.as-addl-label {
  padding: 16px 22px 4px;
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label);
}

/* ---- investor objectives ---------------------------------------------- */
.as-obj { padding: 16px 22px; border-bottom: 1px solid var(--as-line-soft); }
.as-obj:last-child { border-bottom: 0; }
.as-obj-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.as-obj-name { font-size: 13px; font-weight: 700; color: var(--as-body); }
.as-tag-mute { color: var(--as-label); background: rgba(110,126,140,.16); }
.as-obj-body { margin: 8px 0 0; font-size: 12px; line-height: 1.65; color: #CBD5DF; }
/* Investor Objectives as a two-row grid + interpretation notes (Buttonwood, 9/3/2026). */
.as-objgrid-wrap { overflow-x: auto; }
.as-objgrid { width: 100%; border-collapse: collapse; }
.as-objgrid th, .as-objgrid td {
  padding: 12px 18px; text-align: center; border-bottom: 1px solid var(--as-line-soft);
  font-size: 12.5px; vertical-align: middle;
}
.as-objgrid tr:last-child th, .as-objgrid tr:last-child td { border-bottom: 0; }
.as-objgrid-rl {
  text-align: left; white-space: nowrap; color: var(--as-label);
  font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
}
.as-objgrid-stated td { color: var(--as-body); font-weight: 700; }
.as-objverdict { font-weight: 800; letter-spacing: .02em; }
.as-objverdict-yes { color: #6FBF8B; }
.as-objverdict-maybe { color: var(--as-gold-soft); }
.as-objverdict-no { color: var(--as-label); }
.as-objnotes-head {
  padding: 14px 22px 0; font-size: 9px; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; color: var(--as-label);
}
.as-objnote {
  display: grid; grid-template-columns: minmax(120px, 200px) 1fr; gap: 18px;
  padding: 12px 22px; border-top: 1px solid var(--as-line-soft);
}
.as-objnotes-head + .as-objnote { border-top: 0; }
.as-objnote-name { font-weight: 700; color: var(--as-body); font-size: 12.5px; }
.as-objnote-body { font-size: 12px; line-height: 1.65; color: #CBD5DF; }
@media (max-width: 640px) { .as-objnote { grid-template-columns: 1fr; gap: 4px; } }

/* ---- fee panels -------------------------------------------------------- */
.as-feecard { margin-top: 16px; }
.as-feehead {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; padding: 15px 22px; border-bottom: 1px solid var(--as-line-soft);
  border-left: 2px solid var(--as-gold); 
}
.as-feehead-title {
  font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: #CBD5DF;
}
.as-feehead-note { font-size: 10px; color: var(--as-label); font-variant-numeric: tabular-nums; }
/* A caption: "stated rate", "one time". Short by construction. */
.as-fee-sub { margin-top: 3px; font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--as-label); }
/* Prose. A fee note carries the hedge the rate is quoted with and any cap shared
   across two fees, so it runs to full sentences and must not inherit the caption's
   uppercase and letter-spacing — that is what turned a 500-character note into a
   column of single characters. */
.as-fee-note {
  margin-top: 6px; font-size: 11px; line-height: 1.55;
  font-weight: 400; letter-spacing: 0; text-transform: none;
  color: var(--as-label);
}
td.as-right .as-fee-note { text-align: right; }
.as-fee-total td { border-top: 1px solid var(--as-line); background: rgba(220,201,166,.04); }
.as-fee-total .as-fee-name { color: var(--as-cream); }
.as-fees th.as-right, .as-fees td.as-right { text-align: right; }
/* Supporting notes as bullets under a fee table, not a column (Buttonwood, 9/3/2026). */
.as-feenotes { padding: 14px 22px 4px; border-top: 1px solid var(--as-line-soft); }
.as-feenotes-head {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label); margin-bottom: 9px;
}
.as-feenotes-list { margin: 0; padding-left: 18px; }
.as-feenotes-list li { font-size: 12px; line-height: 1.6; color: #CBD5DF; margin-bottom: 7px; }
.as-feenotes-list li:last-child { margin-bottom: 0; }
.as-feenotes-fee { font-weight: 700; color: var(--as-body); }


/* ============================================================
   Payment Structure
   ============================================================ */
.as-gold-title { color: var(--as-gold-soft) !important; letter-spacing: .16em; }

/* Distribution & Liquidity follows the class bar: one card per class, switched with the
   class panels. The [hidden] rule is explicit so no card display rule can outrank it. */
[data-class-panel][hidden] { display: none !important; }
.as-distcard .as-feehead-note { color: var(--as-steel); }
.as-feehead-shared { color: var(--as-label); }
.as-payblock { padding: 16px 22px; border-bottom: 1px solid var(--as-line-soft); }
.as-payblock:last-child { border-bottom: 0; }
.as-payblock-label {
  font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: var(--as-label); margin-bottom: 8px;
}
.as-payblock-body { margin: 0; font-size: 13px; line-height: 1.7; color: #CBD5DF; }

.as-admingrid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1px; background: var(--as-line-soft);
}
.as-admincell { background: var(--as-card); padding: 16px 20px; }
.as-admin-body { margin: 8px 0 0; font-size: 12px; line-height: 1.6; color: #CBD5DF; }

.as-ptgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--as-line-soft); }
.as-ptcell {
  background: var(--as-card); padding: 14px 22px;
  display: grid; grid-template-columns: 150px 1fr; gap: 14px; align-items: baseline;
}
.as-pt-label {
  font-size: 9.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--as-label);
}
.as-pt-value { font-size: 13px; color: var(--as-body); line-height: 1.5; }

@media (max-width: 780px) {
  .as-ptgrid { grid-template-columns: 1fr; }
  .as-ptcell { grid-template-columns: 1fr; gap: 5px; }
}

/* ============================================================
   Entity profile
   ============================================================ */
.as-entgrid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; align-items: start; }
@media (max-width: 980px) { .as-entgrid { grid-template-columns: 1fr; } }

.as-terms-tight th { width: 165px; padding: 11px 22px; }
.as-terms-tight td { padding: 11px 22px; font-size: 13px; }

.as-progrow {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 15px 22px; border-bottom: 1px solid var(--as-line-soft);
}
.as-progrow:last-child { border-bottom: 0; }
.as-prog-name { font-size: 13.5px; font-weight: 700; color: var(--as-body); }
.as-prog-name:hover { color: var(--as-gold-soft); }
.as-prog-role { margin-top: 3px; font-size: 11.5px; color: var(--as-label); }
.as-prog-tier { font-size: 13px; font-weight: 700; color: var(--as-gold); }
.as-prog-status {
  margin-top: 3px; font-size: 9.5px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: var(--as-label);
}

.as-structrow {
  display: flex; align-items: flex-start; gap: 11px;
  padding: 13px 22px; border-bottom: 1px solid var(--as-line-soft);
}
.as-structrow:last-child { border-bottom: 0; }
.as-structrow.is-child { padding-left: 42px; }
.as-structrow.is-self { background: rgba(226,194,123,.05); }
.as-structdot {
  flex: none; width: 7px; height: 7px; margin-top: 6px; border-radius: 50%;
  background: rgba(226,194,123,.55);
}
.as-structrow.is-self .as-structdot { background: var(--as-gold-soft); }
.as-struct-name { font-size: 13px; font-weight: 700; color: var(--as-body); }
a.as-struct-name:hover { color: var(--as-gold-soft); }
.as-struct-role { margin-top: 3px; font-size: 11px; color: var(--as-label); }

.as-person {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 15px 22px; border-bottom: 1px solid var(--as-line-soft);
}
.as-person:last-child { border-bottom: 0; }
.as-person-name { font-size: 13.5px; font-weight: 700; color: var(--as-body); }
.as-person-title { margin-top: 2px; font-size: 11.5px; color: var(--as-label); }
.as-person-bio { margin-top: 7px; font-size: 12px; line-height: 1.6; color: #CBD5DF; }
.as-person-edu { margin-top: 5px; font-size: 11px; color: var(--as-steel); }
.as-person-tags { text-align: right; flex: none; }
.as-person-exp {
  margin-top: 6px; font-size: 11.5px; font-weight: 700; color: var(--as-body);
  font-variant-numeric: tabular-nums;
}
.as-person-joined { margin-top: 2px; font-size: 10.5px; color: var(--as-label); }

/* ---- asset detail / tenants & leases / reported results ---------------
   Added 2026-08-26 with the schema blocks these render (farmland, facilities,
   leases, issuer-reported results). Values are borrowed from the sections above
   rather than invented: .as-leasecard is .as-card with the .as-kv cell rhythm,
   and the flags reuse .as-chip's pill geometry at a smaller size. */

/* A flat row list outside the two-column overview grid, where there is no gauge
   column to sit beside. */
.as-rows-flat {
  margin-top: 20px; padding: 4px 26px 10px;
  background: var(--as-card); border: 1px solid var(--as-line); border-radius: 12px;
}

.as-leasegrid {
  margin-top: 20px; display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px;
}
.as-leasecard { padding: 20px 24px 8px; }
.as-lease-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.as-lease-tenant { font-size: 15px; font-weight: 800; color: var(--as-cream); }
.as-lease-sub { margin-top: 4px; font-size: 11.5px; color: var(--as-steel); }

/* The affiliate flag is amber rather than neutral on purpose: a sponsor-affiliated
   tenant means the rent covenant is not third-party credit, which is the single
   thing a reader of a net-lease program most needs to notice. */
.as-lease-flag {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 700; letter-spacing: .06em;
  color: var(--as-gold-soft); background: rgba(226,194,123,.12);
  border: 1px solid rgba(226,194,123,.32); padding: 3px 9px; border-radius: 999px;
}
.as-flag-quiet {
  color: var(--as-label); background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.12); letter-spacing: .1em;
}

.as-lease-stats { display: flex; flex-wrap: wrap; gap: 1px; background: transparent; margin-top: 14px; }
.as-lease-stat { flex: 1; min-width: 130px; padding: 10px 0 14px; }
.as-lease-stat-value {
  margin-top: 6px; font-size: 13.5px; font-weight: 700; color: var(--as-body);
  font-variant-numeric: tabular-nums;
}
.as-lease-warn { margin-top: 5px; font-size: 10.5px; line-height: 1.45; color: #D2734A; }

/* Losses and loss streaks. Muted rather than alarming — it is a reported fact,
   not a verdict, and the page draws verdicts only in the Ratings tab. */
.as-neg { color: #D2734A; }

/* ---- justified prose (Buttonwood, 9/14/2026: "justify paragraph text throughout") ----
   Every selector here is a block of running text. Labels, values, chips and table cells
   stay ragged; justifying a two-word value only opens gaps in it. Hyphenation goes with
   it so the narrower cells (admin, objectives) do not fill their lines with rivers. */
.as-prose p, .as-cons-body, .as-commentary-body, .as-valcell-value.is-prose, .as-sponsor-bio,
.as-obj-body, .as-objnote-body, .as-feenotes-list li, .as-payblock-body, .as-admin-body,
.as-person-bio {
  text-align: justify; text-justify: inter-word; -webkit-hyphens: auto; hyphens: auto;
}

/* ---- flag on the ratings scorecard (Buttonwood, 9/14/2026) ------------------
   The indicator is drawn INSIDE the scorecard component (its flag attribute adds a
   third block under Confidence, where the client boxed the empty space); the note
   under the card reuses the commentary aside in the flag colour. Both exist only
   while altseek_commentary.ratings_flag has text. */
.as-flagnote { border-left-color: #D6543F; background: rgba(214,84,63,.06); }
.as-flagnote-label { color: #F4B9A6; }
.as-flagnote-empty { border-left-color: rgba(214,84,63,.5); }

/* ---- ARIS: Carrier Loss Exposure (Buttonwood, 9/16/2026) -------------------
   The insurance-consideration sheet, ported value-for-value from Dani's "Insurance Tab"
   mock (inline styles, no classes) the way the rest of this page was ported from the demo.
   One hue, five weights on the band ruler: severity is carried by weight, not colour. */
.as-cle-card {
  margin-top: 4px; background: var(--as-card); border: 1px solid var(--as-line); border-radius: 12px;
  box-shadow: 0 14px 34px -20px rgba(0,0,0,.75); overflow: hidden;
  display: grid; grid-template-columns: minmax(300px, 1.06fr) minmax(320px, 1fr);
}
.as-cle-hero {
  padding: 30px 34px 24px; background: #101010; border-right: 1px solid rgba(110,126,140,.18);
  border-left: 4px solid rgba(220,201,166,.55); display: flex; flex-direction: column;
}
.as-cle-label { font-size: 9px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--as-label); }
.as-cle-label-strong { font-weight: 800; letter-spacing: .18em; }
.as-cle-rule { height: 1px; background: rgba(110,126,140,.18); margin-top: 14px; }
.as-cle-rule-lo { margin-top: 22px; }
.as-cle-rule-inset { margin: 0 30px; }
.as-cle-grid { margin-top: 20px; display: grid; grid-template-columns: auto 1px 1fr; gap: 0 26px; align-items: center; }
.as-cle-score { display: flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.as-cle-num { font-size: 76px; font-weight: 800; letter-spacing: -.035em; line-height: .9; color: var(--as-gold); font-variant-numeric: tabular-nums; }
.as-cle-den { font-size: 19px; font-weight: 600; color: var(--as-label); font-variant-numeric: tabular-nums; }
.as-cle-vrule { width: 1px; align-self: stretch; background: rgba(110,126,140,.35); }
.as-cle-vrule-short { height: 62px; align-self: center; background: rgba(110,126,140,.3); }
.as-cle-tier {
  display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--as-gold); border: 1px solid rgba(220,201,166,.45); background: rgba(220,201,166,.10);
  padding: 5px 13px; border-radius: 5px; line-height: 1;
}
.as-cle-action { margin-top: 10px; font-size: 13.5px; font-weight: 600; color: #CBD5DF; }
.as-cle-basis { margin-top: 6px; font-size: 10.5px; color: var(--as-label); }
.as-cle-ruler { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 22px 0; }
.as-cle-bands { display: flex; height: 11px; border-radius: 3px; overflow: hidden; }
.as-cle-band { display: block; height: 100%; }
.as-cle-band-1 { background: rgba(220,201,166,.16); }
.as-cle-band-2 { background: rgba(220,201,166,.30); }
.as-cle-band-3 { background: rgba(220,201,166,.48); }
.as-cle-band-4 { background: rgba(220,201,166,.68); }
.as-cle-band-5 { background: rgba(220,201,166,.92); }
.as-cle-needle-row { position: relative; height: 12px; margin-top: -15px; z-index: 2; }
.as-cle-needle { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
.as-cle-needle span { width: 3px; height: 19px; border-radius: 2px; background: var(--as-cream); }
.as-cle-bandlabels { display: flex; margin-top: 17px; }
.as-cle-bandlabel { font-size: 8.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--as-label); }
.as-cle-bandlabel.is-active { color: var(--as-cream); }
.as-cle-side { display: flex; flex-direction: column; justify-content: flex-start; }
.as-cle-stats { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 0 24px; align-items: start; padding: 30px 30px 24px; }
.as-cle-stat { text-align: center; }
.as-cle-stat-value { margin-top: 8px; display: flex; align-items: baseline; justify-content: center; gap: 6px; }
.as-cle-approx { font-size: 21px; font-weight: 600; color: #8B9AA7; line-height: 1; }
.as-cle-money { font-size: 35px; font-weight: 700; letter-spacing: -.03em; line-height: 1; color: var(--as-steel); font-variant-numeric: tabular-nums; }
.as-cle-money.is-empty { color: var(--as-label); }
.as-cle-per { font-size: 11.5px; color: var(--as-label); }
.as-cle-stat-note { margin-top: 6px; font-size: 11px; color: #8B9AA7; }
.as-cle-policy { padding: 20px 30px 24px; }
.as-cle-policy-list { margin-top: 11px; display: flex; flex-direction: column; gap: 6px; }
.as-cle-policy-row {
  display: flex; align-items: baseline; gap: 10px; font-size: 11px; color: var(--as-label);
  padding-bottom: 6px; border-bottom: 1px solid rgba(110,126,140,.14);
}
.as-cle-policy-row span:first-child { flex: 1; }
.as-cle-policy-row span:last-child { font-variant-numeric: tabular-nums; }
.as-cle-policy-hint { margin-top: 10px; font-size: 10.5px; color: var(--as-gold-soft); }
.as-cle-section { margin-top: 40px; }
.as-cle-indices { background: var(--as-card); border: 1px solid var(--as-line); border-radius: 12px; overflow: hidden; }
.as-cle-index {
  display: grid; grid-template-columns: 150px 74px 1fr; align-items: start; gap: 22px;
  padding: 20px 30px; border-top: 1px solid rgba(110,126,140,.18);
}
.as-cle-index:first-child { border-top-color: transparent; }
.as-cle-index-code { font-size: 9.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--as-gold); }
.as-cle-index-name { margin-top: 5px; font-size: 13px; font-weight: 700; color: var(--as-cream); line-height: 1.3; text-wrap: pretty; }
.as-cle-index-val { font-size: 28px; font-weight: 800; letter-spacing: -.02em; line-height: 1; color: var(--as-cream); font-variant-numeric: tabular-nums; }
.as-cle-index-val.is-empty { color: var(--as-label); }
.as-cle-index-track { margin-top: 8px; height: 6px; border-radius: 2px; background: #1E1E1E; overflow: hidden; }
.as-cle-index-fill { display: block; height: 100%; background: rgba(220,201,166,.62); }
.as-cle-index-note { font-size: 11.5px; line-height: 1.6; color: #8B9AA7; text-wrap: pretty; }
.as-cle-notes { margin-top: 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.as-cle-note { border: 1px dashed rgba(220,201,166,.2); background: rgba(44,62,80,.18); border-radius: 12px; padding: 18px 20px; }
.as-cle-note-body { margin-top: 9px; font-size: 11.5px; line-height: 1.65; color: #8B9AA7; text-wrap: pretty; }
.as-cle-link { color: var(--as-gold); border-bottom: 1px dotted rgba(220,201,166,.5); }
.as-cle-link:hover { color: var(--as-gold-soft); border-bottom-color: var(--as-gold-soft); }
.as-cle-foot { margin-top: 40px; font-size: 10.5px; color: var(--as-label); text-align: center; }
@media (max-width: 900px) {
  .as-cle-card { grid-template-columns: 1fr; }
  .as-cle-hero { border-right: 0; border-bottom: 1px solid rgba(110,126,140,.18); }
  .as-cle-index { grid-template-columns: 1fr 74px; }
  .as-cle-index-note { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .as-cle-num { font-size: 58px; }
  .as-cle-stats { grid-template-columns: 1fr; gap: 18px 0; }
  .as-cle-vrule-short { display: none; }
}

/* ---- "How the rating works" under the Ratings scorecard (9/30/2026) -------------------
   Buttonwood's descriptions of the three scores, ported value for value from her design
   (ALTSeek Rating Description 1a). Folded to its summary until the head is clicked;
   altseek-program.js toggles is-open. The values below are the design's inline styles. */
.as-howto { background: #141414; border: 1px solid rgba(220,201,166,.10); border-radius: 12px; overflow: hidden; }
.as-howto-head {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%;
  padding: 14px 22px; cursor: pointer; border: 0; background: transparent; text-align: left; font: inherit; color: inherit;
}
.as-howto-head:hover { background: #181818; }
.as-howto-titles { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.as-howto-kicker { font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #C9A45E; }
.as-howto-title { font-size: 13px; font-weight: 700; color: #FBF6EE; }
.as-howto-more { display: flex; align-items: center; gap: 8px; color: #8B9AA7; font-size: 11px; font-weight: 600; white-space: nowrap; }
.as-howto-chev { transition: transform .18s; }
.as-howto.is-open .as-howto-chev { transform: rotate(180deg); }
.as-howto-summary { padding: 0 22px 16px; font-size: 12px; line-height: 1.6; color: #8B9AA7; text-align: justify; hyphens: auto; }
.as-howto.is-open .as-howto-summary { display: none; }
.as-howto-body { padding: 0 22px 4px; border-top: 1px solid rgba(220,201,166,.08); }
.as-howto-body[hidden] { display: none !important; }
.as-howto-intro { margin: 14px 0 16px; padding-bottom: 14px; border-bottom: 1px solid rgba(220,201,166,.08); font-size: 12px; line-height: 1.6; color: #8B9AA7; text-align: justify; hyphens: auto; }
.as-howto-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.as-howto-cell { padding: 2px 0 16px; display: flex; flex-direction: column; gap: 6px; }
.as-howto-cell + .as-howto-cell { margin-left: -20px; padding-left: 20px; border-left: 1px solid rgba(220,201,166,.10); }
.as-howto-cellhead { display: flex; align-items: baseline; gap: 8px; }
.as-howto-code { font-size: 12px; font-weight: 800; color: #FBF6EE; }
.as-howto-name { font-size: 11px; color: #8B9AA7; }
.as-howto-qual { color: #C9A45E; font-weight: 600; }
.as-howto-desc { font-size: 11.5px; line-height: 1.55; color: #8B9AA7; text-wrap: pretty; }
.as-howto-scale { margin-top: auto; padding-top: 6px; font-size: 10.5px; line-height: 1.55; color: #6E7E8C; font-variant-numeric: tabular-nums; }
.as-howto-foot { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 12px 0 14px; border-top: 1px solid rgba(220,201,166,.08); }
.as-howto-combine { font-size: 11.5px; line-height: 1.55; color: #8B9AA7; flex: 1 1 360px; min-width: 0; text-wrap: pretty; }
.as-howto-combine-lead { color: #FBF6EE; font-weight: 700; }
.as-howto-tiers { display: flex; gap: 6px; flex-wrap: wrap; }
.as-howto-tier { display: flex; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid rgba(220,201,166,.12); border-radius: 999px; font-size: 10.5px; color: #CBD5DF; }
.as-howto-tier-n { font-weight: 800; font-variant-numeric: tabular-nums; }
.as-howto-dot { width: 6px; height: 6px; border-radius: 50%; }
.as-howto-dot.t1 { background: #55647D; }
.as-howto-dot.t2 { background: #6E8398; }
.as-howto-dot.t3 { background: #A6A6A6; }
.as-howto-dot.t4 { background: #C9A24A; }
.as-howto-dot.t5 { background: #E2C27B; }
@media (max-width: 900px) {
  .as-howto-grid { grid-template-columns: 1fr; gap: 0; }
  .as-howto-cell + .as-howto-cell { margin-left: 0; padding-left: 0; border-left: 0; border-top: 1px solid rgba(220,201,166,.10); padding-top: 14px; }
}
