/* Signals Wire — SIG-WIRE-R1: the Round 1 board's WIRE-ONLY pieces (check bar, the
   rhythm disclosure). The archive grammar both the Wire and Records draw — ribbon,
   controls, rows, chips, inspector, footer — lives in signals-grammar.css. */

/* live-host boot gate (shell integration, not mock styling) */
html[data-signals-auth="member"][data-wire-booting="true"] .sv2-member:not([data-wire-ready="true"]){visibility:hidden;}
html[data-signals-auth="member"] .sv2-member[data-wire-ready="true"]{visibility:visible;}
main.signals-v2[data-wire-active]{max-width:min(1320px,100%);}
main.signals-v2[data-wire-active] .sv2-member{line-height:1.4;position:relative;}
/* the page's link colour never recolours a shared control (a primary read violet on violet in the inspector, 2026-09-02) */
#sv2-member[data-wire-ready] a:not([class*="vl-"]){color:var(--violet);}
#sv2-member[data-wire-ready] a:not([class*="vl-"]):hover{color:var(--ink);}
#sv2-member .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

/* ---------- check before you fund (board: .checkbar) ---------- */

/* ---------- network rhythm (collapsed by default) ---------- */
.rdisc{margin:.8rem 0 0;border:1px solid var(--border);border-radius:12px;background:var(--card);}
.rdisc summary{display:flex;align-items:center;gap:.5rem;padding:.65rem .9rem;cursor:pointer;font-weight:700;font-size:.78rem;color:var(--ink);list-style:none;min-height:44px;}
.rdisc summary::-webkit-details-marker{display:none;}
.rdisc summary svg{color:var(--violet);transition:transform var(--t-fast,.15s);}
.rdisc[open] summary svg{transform:rotate(180deg);}
.rdisc .rd{font-weight:400;font-family:var(--mono);font-size:.66rem;color:var(--muted);}
.rdisc .ro{margin-left:auto;font-family:var(--mono);font-size:.66rem;font-weight:700;color:var(--violet);letter-spacing:.05em;}
.rhythm{padding:.2rem .9rem .9rem;}
.heat svg{width:100%;max-width:640px;height:auto;display:block;}
.heatnote{font-family:var(--mono);font-size:.66rem;color:var(--muted);margin-top:.4rem;line-height:1.5;}
.heatnote b{color:var(--ink);}

/* ---------- responsive (wire-only pieces) ---------- */
@media (max-width:719px){
  .checkbar .cbl{display:none;}
  .checkbar .k{display:none;}
}

/* ---- D30 recomposition (2026-08-31): tabs · warnings lead · anonymous weather ---- */
.wtabs{display:flex;gap:.35rem;margin:0 0 var(--s3);border-bottom:1px solid var(--border)}
.wtab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;color:var(--dim);font:inherit;font-weight:600;font-size:.85rem;padding:.4rem .7rem;cursor:pointer;min-height:44px}
.wtab.on{color:var(--ink);border-bottom-color:var(--violet)}
.wtab:hover{color:var(--ink)}
/* SIG-LANGUAGE-2 (operator GO 2026-09-02): the Wire's heads, cards, chips, controls,
   readings and fine print are the shared D29 pieces in signals-grammar.css. This
   sheet keeps composition only — grids, gaps on the s-scale, the rows' phone areas. */
/* WIRE-TOP-1: the scope line — one quiet line under the tabs */
.scope{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s3);padding:var(--s1) 0 var(--s2);font-family:var(--mono);font-size:.64rem;color:var(--dim);}
.scope .n b{color:var(--ink);font-weight:700;}
.scope .obs{margin-left:auto;}
.scope .obs b{color:var(--ink);font-weight:600;}
.scope .obs b.warm{color:var(--goldHi);}
.scope .rlink{border:none;background:none;padding:0;font:inherit;color:var(--violet);cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.scope .ff{display:inline-flex;}
.scope .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
/* the in-your-book line is a band, not a card */
.yours{margin:0 0 var(--s3);padding:0 0 var(--s2);border-bottom:1px solid var(--border-2);}
.yours .prov{margin-left:.35em;}
.yours .vl-reading b{color:var(--violet)}
.yours a{color:var(--ink);font-family:var(--mono)}
.yours .vl-fine{margin-top:var(--s1)}
.warnzone{margin:0 0 var(--s6)}
.ribbon .wins{font-family:var(--mono);font-size:.64rem;color:var(--muted);flex:none;}
/* The shared ribbon is one clipped line. On the wire that cut the as-of stamp
   (the zone-bearing "latest approved record observed …") mid-word at 1366 and
   hid it outright at 1100 once the chips were already folded to one — the
   v0.60.60 acceptance finding. The wire's ribbon may wrap instead: the fitter
   still folds chips first, and only then does the stamp drop to a second line,
   whole. Items keep nowrap so each stays intact. */
main.signals-v2[data-wire-active] .ribbon{flex-wrap:wrap;overflow:visible}
/* One warning is a line of TWO controls: the row (role="button", opens the
   inspector) and its own record link beside it — the link is never inside the
   button's subtree. Both grids take the same fixed columns so the .whead labels
   sit over the cells they name. */
.warnlist .whead,.warnlist .wline{display:grid;grid-template-columns:minmax(0,1fr) 10rem;align-items:center;gap:.6rem}
.warnlist .whead .wh,.warnlist .warnrow{display:grid;grid-template-columns:5.2rem 6.4rem minmax(0,1fr) 9.5rem;gap:.6rem;align-items:center}
.warnlist .whead{padding:var(--s2) var(--s3)}
.warnlist .wline{padding:0 var(--s3);border-bottom:1px solid var(--border-2);cursor:pointer}
/* the row button and its record link are siblings in one grid line, so the hover and the
   selection ride the LINE, edge to edge inside the register (operator, 2026-09-02: "only a
   portion of it highlighted") — the row itself carries no second tint or outline */
.warnlist .wline:hover{background:var(--row-hover,color-mix(in srgb,var(--ink) 4%,transparent))}
.warnlist .warnrow:hover,.warnlist .warnrow.sel{background:transparent;outline:none}
.warnlist .wline:has(>.warnrow.sel){background:color-mix(in srgb,var(--violet) 10%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--violet) 45%,transparent)}
.warnlist .rec:focus-visible{outline:2px solid var(--violet);outline-offset:-2px;border-radius:6px}
/* the register draws no hairline against its box; the page's own row rule outranks the piece's default, so the exception is stated here */
.warnlist .wline:last-child,.pulses .prow:last-child{border-bottom:0}
.warnlist .warnrow{padding:var(--s2) 0;border-top:0;cursor:pointer}
/* the warnings list is the board's plain table — the feed's timeline dot/rail
   (.row::before/::after) would sit under the time cell */
.warnlist .warnrow::before,.warnlist .warnrow::after{content:none}
.warnlist .warnrow:focus-visible{outline:2px solid var(--violet);outline-offset:-2px;border-radius:6px}
.warnlist .warnrow .who b{font-family:var(--mono);font-size:.78rem;font-weight:700}
.warnlist .rec{display:inline-flex;align-items:center;justify-self:end;min-height:44px;font-family:var(--mono);font-size:.66rem;color:var(--dim);text-decoration:none;white-space:nowrap}
.warnlist .rec:hover{color:var(--ink)}
.warnfoot{margin:var(--s2) 0 0}
.weather{margin:0 0 var(--s4)}
.wx{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:var(--s3);margin:0 0 var(--s3)}
.wxb{margin:var(--s1) 0 0;display:flex;align-items:baseline;gap:var(--s2)}
.wxs{margin-top:var(--s1)}
.wxch{margin-top:var(--s2);display:flex;flex-wrap:wrap;gap:var(--s1)}
.wxa{margin-top:var(--s2)}
.wxl{font-family:var(--mono);font-size:.66rem;text-decoration:none;display:inline-flex;align-items:center;gap:.25rem;min-height:32px}
.wxl:hover{text-decoration:underline}
.wxwhy{margin:0 0 var(--s3)}
.pulses .prow{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:baseline;padding:var(--s2) var(--s3);border-bottom:1px solid var(--border-2)}
.pulses .prow .pd{min-width:5.4rem}
/* the part-day chip is the metric chip with ONE property changed: a dashed edge says "an edge day" */
.pulses .prow .ppart{border:1px dashed var(--border-strong)}
.coverage{margin:var(--s3) 0 0}

/* ---- ASKS-LENS-1 (operator GO 2026-09-02): under the Asking-again lens the
   Asks tab says what it is, and every row carries the record behind it. The
   header rides the shared lens piece (.vl-lens, the card recipe); the row line
   is a full-width last grid row in the row's own box, mono like the meta cell. */
.lenshead{margin:var(--s1) 0 var(--s3)}
.lenshead h2{margin:0 0 var(--s1)}
.lenshead p+p{margin-top:var(--s1)}
.lenshead b{color:var(--ink);font-family:var(--mono)}
/* second pass (operator: the extra line made every row too tall): the record
   rides the LENDER column, which an ask never fills, as a two-line stack — a
   lens row is exactly as tall as any other. The phone keeps the grammar's
   in-cell prefix: "on record" here, "lender" on ordinary rows. */
.row .who.l.onrec{font-family:var(--mono);font-size:.64rem;font-weight:400;color:var(--dim);white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;min-width:0}
.row .who.l.onrec b{color:var(--ink);font-weight:700}
.row .who.l.onrec small{display:block;font-size:.6rem;opacity:.85}

/* ---- D30 corrections: the warnings list is not the feed, so it does not
   inherit the feed's phone layout. .warnrow carries the shared .row class for
   the grammar (chip, time, amount), which at <=719px hands it the FEED's
   grid-template-areas ("tag t" / "who who" / "whol whol" / "amt src") — areas
   for cells a warning row does not have, against columns it does not use. The
   row declares its own areas here; that IS the reset. ---- */
@media (max-width:719px){
  .warnlist .whead{display:none}
  .warnlist .wline{grid-template-columns:minmax(0,1fr);gap:.1rem;padding:var(--s2) var(--s3)}
  /* 44px is the tap-target floor the rest of this page already keeps (the check
     bar, the rhythm disclosure). The phone layout above dropped the row to
     min-height:0 and the record link to 36px — and these two are the primary
     targets on the surface the wire exists for: a lender checking a handle on a
     phone. Both are back over the floor. */
  .warnlist .warnrow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who t" "amt tag";gap:.25rem .6rem;padding:var(--s1) 0;min-height:44px;align-content:center}
  .warnlist .warnrow .t{grid-area:t;justify-self:end}
  .warnlist .warnrow .vl-chip{grid-area:tag;justify-self:end}
  .warnlist .warnrow .who{grid-area:who;white-space:normal;overflow-wrap:anywhere}
  .warnlist .warnrow .amt{grid-area:amt;white-space:normal}
  .warnlist .rec{justify-self:start;min-height:44px;padding:0}
  .warnfoot .vl-chip--act{width:100%;justify-content:center}
  .wxl{min-height:44px}
  .fsum .ff,.fsum .ff .vl-select{display:flex;width:100%}
  .row .who.l.onrec{font-size:.68rem}
  /* the shared ribbon is a single clipped line, sized for a desk. On a phone
     that cut the D30 window disclosure off mid-word, so the wire's ribbon —
     and only the wire's — wraps here instead of truncating. */
  main.signals-v2[data-wire-active] .ribbon{flex-wrap:wrap;white-space:normal;overflow:visible}
  main.signals-v2[data-wire-active] .ribbon>b,main.signals-v2[data-wire-active] .ribbon .wins{width:100%}
}

/* ---- FLOW tab (FLOW-1, 2026-09-01 · FLOW-STRUCTURE-1, 2026-09-03): the money lane with history ----
   Same grammar as the weather it deepens — mono figures, violet marks, the
   card and register recipes. Nothing floats: the lane lives in a card with
   its head and its window control, the figures are that card's foot, the
   communities are a register, Asking again is a card. No new colour, no new
   type size. */
.wflow{margin:0 0 1rem}
.fcard{margin:0 0 var(--s4)}
.fwhy{margin:0 0 var(--s3)}
.flane{border:1px solid var(--border-2)}
.flane svg{width:100%;height:96px;display:block}
.fedges{display:flex;justify-content:space-between;margin-top:var(--s1)}
.fpeak{margin:var(--s3) 0 0}
.fpeak b{font-family:var(--mono)}
.fnone{margin:var(--s3) 0 0}
.fnote{margin:var(--s3) 0 0}
.fsec{margin:0 0 var(--s4)}
.fsec.vl-register>.vl-head{padding:var(--s3) var(--s3) var(--s2);margin:0}
.fsec.vl-register>.fnote{padding:var(--s2) var(--s3) var(--s3);margin:0}
.fcomms{display:flex;flex-direction:column}
.fcomm{display:grid;grid-template-columns:9rem minmax(0,1fr) 9.5rem;gap:var(--s3);align-items:center;padding:var(--s2) var(--s3);border-top:1px solid var(--border-2)}
.fcomm:first-child{border-top:0}
.fcomm .fc-n{color:var(--ink);overflow-wrap:anywhere}
.fcomm .fc-v .fc-r{display:block}
.fcomm .fc-bar{height:8px;border-radius:2px;background:var(--oc-grey-soft);overflow:hidden}
.fcomm .fc-bar i{display:block;height:100%;background:var(--violet);border-radius:2px}
.fcomm .fc-v{text-align:right}
.fcomm .fc-v small{opacity:.75}
.frep{max-width:68ch}
.frep b{font-family:var(--mono)}
/* the depth line (PRO-OVERLAY-1): what Pro adds, named once under the free answer — one sanctioned link, never a wall */
.fdepth{margin:0 0 var(--s4);max-width:68ch}
.fdepth .vl-chip{margin-left:.35em}
.fup{text-decoration:none}

@media (max-width:719px){
  .fcomm{grid-template-columns:minmax(0,1fr) 5.5rem;grid-template-areas:"n v" "bar bar";gap:.15rem .5rem}
  .fcomm .fc-n{grid-area:n}
  .fcomm .fc-v{grid-area:v}
  .fcomm .fc-bar{grid-area:bar}
  .fwin{width:100%}
  .fwin .vl-select{width:100%;min-height:44px}
}

/* ---- Forced colours (Windows High Contrast) ----
   forced-colors: active drops box-shadow ENTIRELY and overrides every author
   colour with the user's system palette. The wire showed focus with a violet
   outline and, on the check bar, a box-shadow ring: the shadow ring vanished
   outright, and any ring whose only definition is a custom colour is at the
   mercy of the override. A keyboard user in high contrast could not see where
   they were. System colours survive forced colours, and Highlight is the one
   the user's own theme reserves for exactly this. */
@media (forced-colors: active){
  #sv2-member :focus-visible,
  .warnlist .rec:focus-visible,
  .wtab:focus-visible,
  .wxl:focus-visible,
  .fup:focus-visible,
  .fwin select:focus-visible,
  .warnfoot .more:focus-visible{outline:2px solid Highlight;outline-offset:2px}
  /* a bar chart drawn in one colour is a solid block once the palette forces
     it — an outline keeps the marks distinguishable from their own ground */
  .fcomm .fc-bar i{outline:1px solid CanvasText}
  /* the day mark on the spine is a filled disc in one colour — keep it a shape */
  .band:not(.head)::before,.band.head .bl::before{outline:1px solid CanvasText;box-shadow:none}
  /* a full-width row's ring has nowhere to sit outside the box */
  .warnlist .warnrow:focus-visible{outline:2px solid Highlight;outline-offset:-2px}
  .checkbar .cb:focus-within{outline:2px solid Highlight;outline-offset:2px}
  /* the selected tab is marked only by a violet underline, which the palette
     flattens into the same colour as the unselected ones */
  .wtab[aria-selected="true"]{border-bottom-color:Highlight}
}
