/* ============================================================================
   EDGE BUY SIDE  |  buyside.css  |  v1_0  |  Phase 3b, 3 October 2026

   ONE SOURCE for the engagement pages' styles: the funnel, offers, Under
   Contract, the business panels, the fit check, the statements and counter
   offer tables, the targets board, the rail and the roadmap, the chooser,
   Conversations, Notable Deals, the CIM summary and the licence block.
   Lifted verbatim from client-portal-site/public/index.html (lines 102 to
   621, 1039 to 1141, 1183 to 1230 and 1856 to 1928 of the 3 October file).
   Assumes the host defines the EDGE tokens and the base chrome (header, bar,
   card, lede, tiles, gate). Authoritative copy: shared/buyside/buyside.css,
   vendored and checked. ASCII only. No em dashes.
   ============================================================================ */
.funnel{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.step{background:var(--cream);border:1.5px solid var(--border);border-radius:10px;
  padding:18px 16px}
.step .n{font-size:34px;font-weight:900;letter-spacing:-0.03em;line-height:1}
.step .l{font-size:11px;font-weight:700;color:var(--slate);margin-top:6px;line-height:1.35}
.step.lead{background:var(--dark);border-color:var(--dark)}
.step.lead .n{color:var(--lime)}
.step.lead .l{color:rgba(255,255,255,0.72)}
.live{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;
  color:var(--slate);margin-top:14px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}
.empty{background:var(--cream);border:1.5px dashed var(--border);border-radius:10px;
  padding:22px;text-align:center;font-size:13px;color:var(--slate);font-weight:600}
.empty b{display:block;color:var(--dark);font-weight:800;margin-bottom:4px;font-size:14px}
.offer{display:flex;align-items:center;gap:18px;padding:16px 18px;
  border:1.5px solid var(--border);border-radius:10px;margin-bottom:10px;
  background:var(--cream)}
.offer.lead{background:#fff;border-color:var(--green)}
.offer .ob{flex:1;min-width:0}
.who2{font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.oterms{font-size:11.5px;color:var(--slate);font-weight:600;margin-top:3px}
.oamt{flex:none;font-size:21px;font-weight:900;letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums}
/* ---- Under contract, item 26. The client's own diligence list and milestones. */
.steps{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.step{flex:1 1 150px;border:1.5px solid var(--border);border-radius:9px;
  padding:9px 11px;background:var(--cream)}
/* NOTE: THERE IS NO .step.not-started RULE, AND THAT IS DELIBERATE. The base .step
   above IS the not-started look; complete and in-progress override it. Named here
   so a class audit reading "not-started is unstyled" does not chase a rule that
   was never meant to exist. */
.step.complete{background:var(--green-tint);border-color:var(--green)}
.step.in-progress{background:#fffbe6;border-color:#f5a623}
.step .sl{display:block;font-size:11.5px;font-weight:800;color:var(--dark);
  line-height:1.35}
.step .sd{display:block;font-size:11px;color:var(--slate);font-weight:600;
  margin-top:3px;font-variant-numeric:tabular-nums}
.dhead{font-size:13px;color:var(--slate);font-weight:600;margin-bottom:10px}
.dhead b{font-size:19px;font-weight:900;color:var(--dark);
  font-variant-numeric:tabular-nums}
.dlist{display:flex;flex-direction:column;gap:7px}
.drow{border:1.5px solid var(--border);border-radius:9px;padding:10px 12px;
  background:var(--cream)}
.drow .dl{display:block;font-size:13px;font-weight:700;color:var(--dark);
  line-height:1.4}
.drow .dn{display:block;font-size:11.5px;color:var(--slate);font-weight:600;
  margin-top:3px}
.dfold{margin-top:10px}
.dfold summary{font-size:12px;font-weight:800;color:var(--slate);cursor:pointer;
  padding:6px 0}
.dfold summary:hover{color:var(--dark)}
.dfold .dlist{margin-top:8px}
.dnote{font-size:11.5px;color:var(--slate);font-weight:600;margin-top:12px;
  line-height:1.6;padding-top:12px;border-top:1.5px solid var(--border)}
footnote{display:block;font-size:11px;color:var(--slate);margin-top:8px;line-height:1.6}

/* ==========================================================================
   THE BUSINESS TARGET PAGE'S PANELS, 18 Sep 2026.
   business_panels.js draws these. ASCII only, like everything in this file:
   deploy_client.sh step 1 refuses any byte above 127 in a .html under public/.
   ========================================================================== */
.sh2{font-size:12px;font-weight:800;color:var(--slate);letter-spacing:0.04em;
  text-transform:uppercase;margin:14px 0 8px}
.bplist{margin:0;padding-left:18px;font-size:13px;color:var(--dark);line-height:1.8}

/* The Under Contract list, which replaced the old page's full checklist. */
.ucrow{display:flex;align-items:center;gap:12px;padding:12px 0;text-decoration:none;
  border-top:1.5px solid var(--border);color:var(--dark)}
.ucrow:first-child{border-top:0}
.ucrow:hover .ucn{color:var(--green)}
.ucn{flex:1;min-width:0;font-size:14px;font-weight:800}
/* the Under Contract summary under a target's top panel, in EDGE coral */
.card.uctop{border:2px solid var(--coral)}
.ucs{font-size:11.5px;font-weight:700;color:#fff;background:var(--coral);
  border-radius:999px;padding:3px 10px;white-space:nowrap}
.ucd{font-size:12px;color:var(--slate);white-space:nowrap}

/* The Fit Check. Three reads and a verdict, the Deal Hub's own words. */
.fitverdict{font-size:14px;font-weight:800;padding:10px 14px;border-radius:10px;
  margin-bottom:12px}
.fitverdict.green{background:var(--green-tint);color:#4c7a12}
.fitverdict.amber{background:rgba(245,166,35,0.14);color:#a86a00}
.fitverdict.red{background:rgba(214,69,69,0.12);color:#b03030}
.fitgrid{display:flex;flex-direction:column;gap:8px}
.fitrow{display:flex;align-items:baseline;gap:12px;padding:9px 12px;
  border-radius:9px;background:var(--cream);flex-wrap:wrap}
.fitv{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;
  padding:2px 8px;border-radius:999px;white-space:nowrap}
.fitrow.green .fitv{background:var(--green);color:#fff}
.fitrow.amber .fitv{background:#f5a623;color:#fff}
.fitrow.red .fitv{background:#d64545;color:#fff}
.fitn{font-size:13px;font-weight:800;min-width:120px}
.fitg{font-size:13px;font-weight:700;color:var(--dark)}
.fitw{font-size:12px;color:var(--slate);margin-left:auto;text-align:right}

/* The counter offer comparison and the three year statements. Both are wide
   tables on a page that has to work at 360px, so both scroll sideways inside
   their own box rather than forcing the whole page to. */
.ctablewrap,.ftablewrap{overflow-x:auto;margin-top:4px}
.ctable,.ftable{border-collapse:collapse;width:100%;font-size:12.5px}
.ctable th,.ftable th{text-align:left;font-size:11px;text-transform:uppercase;
  letter-spacing:0.04em;color:var(--slate);font-weight:800;padding:8px 10px;
  border-bottom:1.5px solid var(--border);white-space:nowrap}
.ctable td,.ftable td{padding:8px 10px;border-bottom:1px solid var(--border);
  vertical-align:top;line-height:1.6}
.cside{display:block;font-size:10px;font-weight:700;color:var(--slate);
  text-transform:none;letter-spacing:0}
.cnum{color:var(--slate);width:28px}
.ctopic{font-weight:800;white-space:nowrap}
.cmove{font-size:11.5px;color:var(--slate);white-space:nowrap}
.ctable tr.cnote td{border-bottom:1.5px solid var(--border);font-size:12px;
  color:var(--slate);padding-top:0}
/* The statements read down a column of money, so every figure is right aligned
   and tabular: a column of numbers that does not line up is one nobody trusts. */
.ftable td:not(:first-child),.ftable th:not(:first-child){text-align:right;
  font-variant-numeric:tabular-nums}
.ftable tr.fstrong td{font-weight:800}
.ftable tr.fexp td:first-child{padding-left:22px;color:var(--slate)}
.ftable tr.fsec td{font-size:11px;text-transform:uppercase;letter-spacing:0.04em;
  color:var(--slate);font-weight:800;padding-top:12px;border-bottom:0}
@media(max-width:560px){
  .fitw{margin-left:0;text-align:left;width:100%}
  .fitn{min-width:0}
}
.advisor{display:flex;align-items:center;gap:14px}
.av{width:44px;height:44px;border-radius:50%;background:var(--green-tint);flex:none;
  display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--green)}
.advisor .nm{font-weight:800;font-size:14px}
.advisor .rl{font-size:11.5px;color:var(--slate);font-weight:600}
/* TARGETS. Rows rather than cards: a client with 154 of them needs a list they
   can scan, not 154 boxes. */
.tsum{font-size:13px;font-weight:700;color:var(--slate);margin-bottom:13px}
.tsum b{color:var(--dark);font-weight:800}
.tlist{display:flex;flex-direction:column}
/* TARGET GROUPS, drawn as the advisor board draws them: a bordered section per
   stage, a banded header carrying the label, the count and the group total, and
   the rows inside. Ported from portal_ui.js's section component, since this page
   cannot require it; the band colours are the advisor board's own, so an advisor
   previewing the client view reads the same colour language they work in. */
/* THE RAIL SITS FIRST IN THE MARKUP AND LEFT ON A WIDE SCREEN, and on a
   narrow one it stacks ABOVE the list, which is the right order either way: the
   count and the averages are the summary, and a client opening this on a phone
   should meet the summary before 36 rows of businesses. */
.split{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;
  align-items:start}
.rail{display:flex;flex-direction:column;gap:14px;position:sticky;top:14px}
.main{min-width:0}
@media (max-width:860px){
  .split{grid-template-columns:1fr}
  .rail{position:static}
}
/* THE BLUE PANEL. Slate rather than the brand green, deliberately: green is the
   action colour across this portal and a panel that only reports would be
   claiming a prominence it has not earned. */
.card.blue{background:var(--dark);color:#fff;border-color:var(--dark)}
.card.blue .sh{color:rgba(255,255,255,0.62)}
.bignum{font-size:40px;font-weight:800;line-height:1.05;letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums}
.bigl{font-size:12px;color:rgba(255,255,255,0.72);font-weight:600;margin-top:2px}
.bigl b{color:var(--lime);font-weight:800}
.bnote{font-size:11.5px;color:rgba(255,255,255,0.6);margin-top:12px;line-height:1.5}
table.stat{width:100%;border-collapse:collapse;margin-top:16px}
table.stat th{font-size:9.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:0.05em;color:rgba(255,255,255,0.5);text-align:right;
  padding:0 0 5px}
table.stat th:first-child{text-align:left}
table.stat td{font-size:12px;font-weight:700;text-align:right;padding:6px 0;
  border-top:1px solid rgba(255,255,255,0.13);font-variant-numeric:tabular-nums}
table.stat td:first-child{text-align:left;font-weight:600;
  color:rgba(255,255,255,0.8)}
/* How many targets stated the figure. Without it an average is of an unknown
   denominator, which is how a number gets quietly believed. */
.of{display:block;font-size:9.5px;font-weight:600;color:rgba(255,255,255,0.45);
  letter-spacing:0.02em}

/* THE FIGURES ON A TARGET ROW, and the four things a client can ask for. */
.tfig{font-size:11px;color:var(--slate);font-weight:700;margin-top:3px;
  font-variant-numeric:tabular-nums}
.asks{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;align-items:center}
.askb{font-family:inherit;font-size:10px;font-weight:800;letter-spacing:0.03em;
  text-transform:uppercase;padding:5px 11px;border-radius:20px;cursor:pointer;
  border:1.5px solid var(--border);background:#fff;color:var(--slate)}
.askb:hover:not(:disabled){border-color:var(--green);color:var(--green)}
.askb:disabled{opacity:.55;cursor:default}
/* Asked for, and waiting. Amber is the chase colour used on the advisor panel
   for the same meaning: somebody is expected to do something. */
.askd{font-size:10px;font-weight:800;letter-spacing:0.03em;text-transform:uppercase;
  padding:5px 11px;border-radius:20px;background:rgba(245,166,35,0.16);
  color:#8a6212}
.askd.ok{background:var(--green-tint);color:var(--green)}
.askerr{font-size:11px;font-weight:600;color:#b0554a;width:100%;margin-top:2px}

/* THE MANDATE. A table of the brief, then chip rows for the rules of engagement,
   because a deal breaker is a tag and reads badly as a sentence in a cell. */
table.mand{width:100%;border-collapse:collapse}
table.mand td{font-size:12.5px;padding:7px 0;border-top:1px solid var(--border);
  vertical-align:top}
table.mand tr:first-child td{border-top:0}
table.mand td:first-child{color:var(--slate);font-weight:600;width:38%;
  padding-right:12px}
.mch{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:11px}
.mchl{font-size:9.5px;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--slate);width:100%}
.chip{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;
  background:var(--tint,rgba(89,109,123,0.1));color:var(--dark)}

/* THE ACQUISITION ROADMAP, 15 September 2026. The rail's summary of the brief,
   in Benjamin's five sections. It is a WHITE card between the blue stats tile
   and the advisor, because two dark panels stacked would read as one block and
   this is a different kind of thing from a count.
   EVERYTHING HERE IS SIZED FOR A 290px COLUMN. The chips reuse .mch and .chip
   from the mandate card rather than growing a second chip; only the section
   rhythm and the stack are new. */
.rmap .rmsec{margin-top:14px}
.rmap .rmsec:first-of-type{margin-top:4px}
.rmh{font-size:9.5px;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--slate);margin-bottom:6px}
.rmt{font-size:12.5px;font-weight:700;line-height:1.45}
.rmap .mch{margin-top:0}
/* A deal breaker is a refusal, so it wears the coral the rest of the estate
   uses for one rather than the neutral chip: a client scanning must not read
   "will not do" as another thing we are looking for. */
.rmno .chip{background:rgba(251,126,88,0.14);color:#a2452a}

/* THE CAPITAL STACK. A proportion bar, then the sources with their amounts.
   THE BAR IS FLEX WEIGHTED BY SHARE, not by a percentage width, so the
   segments always fill the row exactly and a stack whose shares do not total
   100 (a partly filled one) still draws something honest rather than a bar with
   a gap that looks like missing money. */
.csbar{display:flex;height:7px;border-radius:20px;overflow:hidden;gap:2px;
  margin-bottom:9px}
.csb{display:block}
.cs-equity{background:var(--green)}
.cs-debt{background:var(--dark);opacity:.55}
.csr{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  font-size:12px;padding:4px 0;border-top:1px solid var(--border)}
.csr:first-of-type{border-top:0}
.csn{color:var(--slate);font-weight:600;display:flex;align-items:center;gap:6px;
  min-width:0;overflow-wrap:anywhere}
.csd{width:7px;height:7px;border-radius:2px;flex:none;display:inline-block}
.csv{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.csv small{font-weight:700;color:var(--slate);margin-left:5px;font-size:10.5px}
.csfoot{font-size:11.5px;color:var(--slate);margin-top:9px;line-height:1.5;
  border-top:1px solid var(--border);padding-top:8px}

/* THE ADD A BUSINESS CARD in the rail. The form inside is the same .addt block
   it has always been; what changes is that it is a card of its own rather than
   a strip glued under 154 rows, so the border-top that separated it from those
   rows would now be a line under the card's own heading. */
.addtc .addt{margin-top:0;border-top:0;padding-top:0}

/* THE ACQUISITION REPORT. The title reads like a business name, the figures use
   the mandate table, the pages are chips. Green on the one button because it is
   the action on the card: opening the file the advisor published. */
/* A section heading's explanatory line sits under the heading in sentence case.
   Without this the span inherits the heading's uppercase and runs into it, which
   the mandate card had been doing since it shipped. */
.sh .sub{display:block;text-transform:none;letter-spacing:0;font-size:12px;
  font-weight:600;margin-top:4px;line-height:1.5}
.rtitle{font-size:20px;font-weight:800;letter-spacing:-0.01em;line-height:1.25}
.pdfb{font-family:inherit;font-size:12.5px;font-weight:800;color:#fff;
  background:var(--green);border:0;border-radius:20px;padding:9px 18px;
  margin-top:14px;cursor:pointer}
.pdfb:hover{filter:brightness(0.95)}
.rnote{font-size:12px;color:var(--slate);font-weight:600;margin-top:12px}
.rfig{margin-top:14px}

/* The acquisition calculator on a business page, 22 Sep 2026. Four figures
   wide on a laptop, two on a tablet, one on a phone. Quieter than the fit
   check above it on purpose: that panel is a verdict, this one is arithmetic. */
.bpcalc{display:grid;gap:12px 18px;margin:4px 0 10px;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.bpcalc-c{border-left:3px solid var(--border);padding:2px 0 2px 10px}
.bpcalc-l{font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:var(--slate)}
.bpcalc-v{font-size:19px;font-weight:800;color:var(--dark);line-height:1.2}
.bpcalc-s{font-size:11.5px;color:var(--slate);line-height:1.35}
.bpcalc-a{color:var(--green);font-weight:700}
.bpcalc-none{font-size:13px;line-height:1.55;color:var(--slate);margin:2px 0 4px}
/* The LISTING's market status on a target, 21 Sep 2026. Deliberately quieter
   than the stage heading above it: the group says where EDGE is, this says where
   the business is, and the two used to be impossible to tell apart because only
   one of them was on the page. Under Contract and Sold are picked out because
   they change what a buyer does next. */
.lstat{display:inline-block;margin-top:5px;font-size:11.5px;font-weight:700;
  letter-spacing:.03em;color:var(--slate);background:var(--cream);
  border-radius:20px;padding:2px 10px}
.lstat-warn{background:#fdf0e8;color:#b4561f}
.lstat-gone{background:#eef1f3;color:var(--slate);text-decoration:line-through}
/* The client's own interest signal. Buttons, not a select: four options is
   fewer taps as buttons and the chosen one stays visible without opening
   anything. */
.ilevels{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.ilvl{font:inherit;font-size:13px;font-weight:700;color:var(--slate);background:#fff;
  border:1.5px solid var(--border);border-radius:20px;padding:7px 15px;cursor:pointer}
.ilvl:hover{border-color:var(--green);color:var(--dark)}
.ilvl.on{background:var(--green);border-color:var(--green);color:#fff}
.tsec{background:#fff;border:1.5px solid var(--border);border-radius:10px;
  overflow:hidden;margin:10px 0}
.thead{display:flex;align-items:center;gap:10px;padding:11px 16px;
  border-bottom:1.5px solid var(--border)}
.tlabel{font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:0.05em}
.tcount{background:var(--dark);color:#fff;border-radius:20px;font-size:10px;
  padding:2px 9px;font-weight:800}
.ttotal{margin-left:auto;font-size:10.5px;font-weight:700;opacity:.8}
/* the bands, phase coloured exactly as the advisor board */
.tb-won{background:var(--green);color:#fff;border-bottom-color:var(--green)}
.tb-won .tcount{background:rgba(0,0,0,0.28)}
.tb-late{background:var(--green-tint);color:var(--green);
  box-shadow:inset 4px 0 0 var(--green)}
.tb-early{background:rgba(89,109,123,0.13);color:var(--dark);
  box-shadow:inset 4px 0 0 var(--slate)}
.tb-cold{background:rgba(89,109,123,0.07);color:var(--slate);
  box-shadow:inset 4px 0 0 var(--border)}
.tb-lost{background:rgba(196,86,74,0.10);color:#b0554a;
  box-shadow:inset 4px 0 0 #c4564a}
/* the asking price, the advisor board's money pill */
.tmoney{flex:none;background:var(--dark);color:var(--lime);border-radius:20px;
  padding:4px 11px;font-size:11px;font-weight:800;letter-spacing:0.03em;
  font-variant-numeric:tabular-nums}
.tsec .trow{padding:10px 16px}
.trow{display:flex;align-items:center;gap:16px;padding:12px 0;
  border-top:1.5px solid var(--border)}
.trow:first-child{border-top:0}
/* THE BUSINESS THAT IS UNDER CONTRACT, 18 Sep 2026, Benjamin's ruling 10.
   Five stages count: Under Contract, Due Diligence, Clearing Contingencies,
   Legal Documentation Stage and Acquired. UNDER_CONTRACT_STAGES in client_app.js
   is the one definition; this is only its colour.

   A left edge and a wash rather than coral text: the row already carries a name,
   a location, an industry and two figures, and recolouring any of those would
   make the coral compete with the information instead of pointing at it. */
.trow.uc{border-left:3px solid var(--coral);padding-left:11px;
  background:rgba(251,126,88,0.05)}
.tsec .trow.uc{padding-left:13px}
.tb{flex:1;min-width:0}
.tn{font-size:14px;font-weight:800;line-height:1.3}
/* A withheld name is STATED, not blank. Slate and italic so it reads as an
   explanation rather than as a business actually called "Name released once...". */
.anon{font-weight:600;font-style:italic;color:var(--slate);font-size:12.5px}
/* THE COMPANY NAME UNDER THE LISTING NAME, 15 Sep 2026. Quieter than the listing
   name and heavier than the meta line, because it is the same business named a
   second way rather than a second fact about it. It is drawn on three of 7,580
   companies: only past the NDA anchor, and only where the two names differ. */
.tco{font-size:12px;font-weight:700;color:var(--slate);margin-top:1px}
.tm{font-size:11.5px;color:var(--slate);font-weight:600;margin-top:2px}
/* THE LINK TO THE PUBLIC LISTING, 15 Sep 2026. It leaves our estate, so it is
   underlined and carries an arrow: the other controls on this row are buttons
   that ask us for something, and a link that navigates away must not look like
   one of them. It sits above the ask strip because reading the advertisement is
   what a client does BEFORE asking us for an NDA on it. */
.tlink{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:800;
  color:var(--green);text-decoration:underline;text-underline-offset:2px}
.tlink::after{content:" \2197";text-decoration:none;display:inline-block}
.tlink:hover{color:var(--dark)}
/* THE ADD A TARGET FORM, 14 Sep 2026. It borrows .askb for its button so the
   one control on this page that WRITES looks like the other controls that write,
   and it sits behind a rule of its own at the foot of the card rather than
   competing with the list above it.

   NOTE, PLAIN ASCII ONLY IN THIS FILE, and the deploy gate is what says so: it
   refuses any .html under public/ carrying a byte above 127, because this page
   is served to clients. The warning glyph this estate opens such comments with
   everywhere else is exactly what it caught, which is the gate doing its job on
   the first file it has ever had to. */
.addt{margin-top:16px;border-top:1.5px solid var(--border);padding-top:12px}
.sh2{font-size:11px;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--slate);margin-bottom:4px}
.addt-note{font-size:12px;color:var(--slate);line-height:1.5;margin-bottom:9px}
.addt-in{font-family:inherit;font-size:13px;width:100%;box-sizing:border-box;
  padding:7px 9px;margin-bottom:6px;border:1.5px solid var(--border);
  border-radius:8px;background:#fff;color:var(--dark)}
.addt-in:focus{outline:none;border-color:var(--green)}
.addt-go{margin-top:2px}
/* Absent rather than empty: a blank line under the button on every render would
   be a message slot pretending to be a message. */
.addmsg:empty{display:none}
.addmsg{font-size:12px;color:#8a2020;line-height:1.5;margin-top:7px}
.addmsg.ok{color:var(--green)}
.fold{margin-top:14px;border-top:1.5px solid var(--border);padding-top:10px}
.fold summary{font-size:12px;font-weight:700;color:var(--slate);cursor:pointer}
.fold summary:hover{color:var(--green)}

/* ADVISOR NOTICE. Lime rather than amber: it is a statement of which portal you
   are in, not a warning that something is wrong. */
.anote{background:var(--lime);border-radius:10px;padding:13px 16px;
  font-size:12.5px;font-weight:600;line-height:1.5;color:var(--dark);
  margin-bottom:18px}
.anote b{font-weight:800}

.rows{display:flex;flex-direction:column;gap:14px}
.row{background:#fff;border:1.5px solid var(--border);border-radius:12px;
  padding:22px 24px;display:flex;align-items:center;gap:22px;cursor:pointer;
  text-align:left;font-family:inherit;color:inherit;width:100%}
.row:hover{border-color:var(--green)}
.row .body{flex:1;min-width:0}
.sideflag{font-size:9.5px;font-weight:800;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--slate);margin-bottom:5px}
.name{font-size:19px;font-weight:800;letter-spacing:-0.01em}
.sub{font-size:12px;color:var(--slate);font-weight:600;margin-top:5px}
.fig{flex:none;text-align:right;min-width:112px}
.fig .n{font-size:30px;font-weight:900;letter-spacing:-0.03em;line-height:1}
.fig .l{font-size:10.5px;font-weight:700;color:var(--slate);margin-top:3px;line-height:1.3}
.lede{margin-bottom:22px}
.lede h1{font-size:24px;font-weight:800;letter-spacing:-0.02em}
.lede p{font-size:13px;color:var(--slate);font-weight:600;margin-top:4px}

/* THE TOP MENU AND THE TOOL TILES, 13 September 2026.
   The menu is a second row inside the same white header, under the brand bar and
   above its bottom border, so the header stays one block rather than becoming
   two stacked bars. It is only rendered when the client has been given at least
   one tool surface, so a client with none sees the header exactly as before. */
.tnav{max-width:1440px;margin:0 auto;display:flex;gap:4px;
  padding-bottom:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tnavin{display:flex;gap:4px;min-width:min-content}
/* An anchor since the routes exist, so these are real links: middle click, open
   in a new tab, copy link address, and the browser's own Back. text-decoration
   and display are set explicitly because an <a> brings both with it. */
.tlink{background:none;border:0;border-bottom:2.5px solid transparent;
  font-family:inherit;font-size:12px;font-weight:700;color:var(--slate);
  padding:10px 12px 12px;cursor:pointer;white-space:nowrap;
  text-decoration:none;display:inline-block}
.tlink:hover{color:var(--green)}
.tlink.on{color:var(--dark);border-bottom-color:var(--green)}

/* WARNING: auto-fit WITH A MINIMUM, NOT A FIXED COLUMN COUNT. The two surfaces carry
   five tiles and two, and a fixed three-across grid leaves the Seller's Corner
   looking like a page that failed to load its third tile. */
.tiles{display:grid;gap:14px;margin-bottom:20px;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
/* Section heading on a tile page. The Analyst Toolkit groups its tools under
   these from 21 Sep 2026; the Seller's Corner and Growth Center render one
   untitled group and never draw it.

   WARNING: THE CLASS IS `tksec`, NOT `tsec`, AND THAT IS NOT A TYPO. `.tsec` was
   already taken, at client_app.js:1978, by the Business Target group CARD:
   a white rounded box with its own border. Naming this one `.tsec` on
   21 September inherited that box, which is why the heading first shipped as
   a white pill with the word jammed against its edge, and it also pushed
   font-size, letter-spacing and text-transform:uppercase onto every target
   card on the site, so business names and locations rendered in capitals.
   Check a class name is free before taking it; a second rule for an existing
   class does not replace the first, it merges with it. */
.tksec{display:block;background:var(--green-tint);border:1.5px solid var(--border);
  border-left:4px solid var(--green);border-radius:8px;padding:9px 14px;
  margin:30px 0 12px;font-size:11.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.09em;color:var(--dark)}
.lede + .tksec{margin-top:6px}

/* WARNING: NOT INTERACTIVE, AND IT MUST NOT LOOK IT. No hover lift, no pointer cursor,
   no border colour change: every one of those promises a click that does
   nothing. The tile is deliberately quieter than a card the client can use. */
.tile{background:#fff;border:1.5px solid var(--border);border-radius:12px;
  padding:18px;opacity:0.72}
.tiletop{display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px}
.ticon{width:26px;height:26px;color:var(--green);flex:none}
.soon{font-size:10px;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--slate);background:var(--cream);border:1px solid var(--border);
  border-radius:20px;padding:3px 9px;white-space:nowrap}
.tname{font-size:14px;font-weight:800;color:var(--dark);margin-bottom:5px;
  letter-spacing:-0.01em}
.tblurb{font-size:12px;font-weight:600;color:var(--slate);line-height:1.55}

@media (max-width:560px){
  .tiles{grid-template-columns:1fr}
  .tnav{padding-left:0}
}

/* The Under contract summary in the left column, 13 September 2026. It is the
   dark tile like Your Search beside it, because both are a state of the
   engagement rather than a list of things; the difference is that this one is a
   door, so the whole tile reads as one and the link is explicit at the foot. */
.ucsum{margin-bottom:16px}
/* in EDGE coral, Benjamin 30 September 2026, with the deal it is about */
.card.blue.ucsum{border:2px solid var(--coral)}
.ucdeal{margin-bottom:0}
.ucname{font-size:15px;font-weight:800;color:#fff;margin-bottom:6px}
.ucfact{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;
  color:rgba(255,255,255,0.78);margin-top:3px}
.ucfact b{color:#fff;font-weight:700;text-align:right}
.ucdocs{font-size:12.5px;font-weight:600;color:rgba(255,255,255,0.78);
  margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.16)}
.ucdocs b{color:#fff;font-size:15px;font-weight:800}
.ucgo{display:inline-block;margin-top:12px;font-size:12px;font-weight:800;
  color:var(--lime);text-decoration:none}
.ucgo:hover{text-decoration:underline}

/* SIGN IN. The only editable input a client ever meets on this surface, which is
   why it is the only place coral appears. */
.gate{max-width:420px;margin:64px auto;padding:0 24px}
.gate h1{font-size:22px;font-weight:800;letter-spacing:-0.02em}
.gate p{font-size:13px;color:var(--slate);font-weight:600;margin-top:6px}
.gate input{width:100%;font-family:inherit;font-size:15px;font-weight:600;
  color:var(--coral);background:#fff;border:1.5px solid var(--border);
  border-radius:10px;padding:13px 15px;margin-top:18px}
.gate input:focus{outline:none;border-color:var(--green)}
.gate button{width:100%;font-family:inherit;font-size:14px;font-weight:800;
  color:#fff;background:var(--green);border:0;border-radius:10px;
  padding:14px;margin-top:12px;cursor:pointer}
.gate button:disabled{opacity:0.5;cursor:default}
.msg{font-size:12.5px;font-weight:600;margin-top:14px;padding:12px 14px;
  border-radius:9px;line-height:1.5}
.msg.ok{background:var(--green-tint);color:#4a6b1f}
.msg.err{background:rgba(200,60,40,0.10);color:#a3372a}
.spin{text-align:center;color:var(--slate);font-size:13px;font-weight:600;
  padding:64px 24px}
@media (max-width:720px){
  .funnel{grid-template-columns:repeat(2,1fr)}
  .trow{flex-wrap:wrap;gap:6px 12px}
  .bizname{font-size:23px}
  .who span{display:none}
  .offer{flex-wrap:wrap;gap:10px}
  .oamt{width:100%;font-size:19px}
  .row{flex-wrap:wrap;gap:14px}
  .fig{text-align:left;min-width:0;width:100%;border-top:1.5px solid var(--border);
    padding-top:12px}
}


/* Conversations, 30 Sep 2026. The cv- and cnv- prefixes were checked free in
   this sheet and in every script before they were taken. The page itself was
   widened from 940px to 1440px the same day, on Benjamin's word, with the
   header and menu bars so they stay aligned with it. */
.cv-split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.cv-main{min-width:0}
.cv-col{min-width:0;display:flex;flex-direction:column;gap:14px}
.cv-side{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto;background:#fff;
  border:1.5px solid var(--border);border-radius:12px;padding:16px}
@media (max-width:1100px){.cv-split{grid-template-columns:1fr}.cv-side{position:static;max-height:none}}
.cnv-title{font-size:15px;font-weight:800;color:var(--dark)}
.cnv-sub{font-size:12px;color:var(--slate);margin:2px 0 10px}
.cnv-input{font:inherit;font-size:14px;width:100%;box-sizing:border-box;border:1.5px solid var(--border);
  border-radius:8px;padding:8px 10px;resize:vertical}
.cnv-bar{display:flex;gap:8px;margin:6px 0 10px}
.cnv-btn{font:inherit;font-size:12.5px;font-weight:700;border:1.5px solid var(--border);background:#fff;
  color:var(--dark);border-radius:8px;padding:5px 10px;cursor:pointer}
.cnv-primary{background:var(--green);border-color:var(--green);color:#fff}
.cnv-btn:disabled{opacity:.5;cursor:default}
.cnv-thread{border-top:1px solid var(--border);padding:10px 0}
.cnv-item{margin:0 0 8px}
.cnv-reply{margin-left:16px;padding-left:10px;border-left:3px solid var(--green-tint)}
.cnv-head{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;font-size:12.5px}
.cnv-name{font-weight:800;color:var(--dark)}
.cnv-role{font-size:11px;font-weight:700;color:var(--slate)}
.cnv-role-edge{color:var(--green)}
.cnv-when{font-size:11.5px;color:var(--slate)}
.cnv-body{font-size:14px;white-space:pre-wrap;margin-top:3px;color:var(--dark)}
.cnv-withdrawn{font-style:italic;color:var(--slate)}
.cnv-edited{font-size:11px;color:var(--slate)}
.cnv-acts{display:flex;gap:6px;margin-top:4px}
.cnv-msg{font-size:12.5px;color:var(--coral);margin:4px 0}
.cnv-empty{font-size:13px;color:var(--slate);padding:8px 0}
/* Notable Deals, 29 Sep 2026. The nd- prefix was checked free in this sheet and
   in every script before it was taken. Buttons and messages reuse tk-. */
.nd-card{padding:16px 18px;margin-bottom:14px}
.nd-head{margin-bottom:10px}
.nd-hl{font-size:17px;font-weight:800;letter-spacing:-0.01em;color:var(--dark)}
.nd-name{font-size:13.5px;font-weight:600;margin-top:2px}
.nd-name a{color:var(--buy)}
.nd-meta{font-size:12.5px;color:var(--slate);font-weight:600;margin-top:2px}
.nd-figs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 14px;margin:10px 0}
.nd-fig span{display:block;font-size:11.5px;color:var(--slate);font-weight:600}
.nd-fig b{font-size:15px}
.nd-ns{font-weight:500;color:var(--slate);font-size:13px}
.nd-why{font-size:13.5px;margin:8px 0;white-space:pre-wrap}
.nd-why span{display:block;font-size:11.5px;color:var(--slate);font-weight:600}
.nd-link{margin:6px 0;font-size:13.5px;font-weight:600}
.nd-link a{color:var(--buy)}
.nd-dates{font-size:12px;color:var(--slate);margin-top:6px}
.nd-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px}
.nd-fine{font-size:12px;color:var(--slate)}
.nd-in{font:inherit;font-size:14px;border:1.5px solid var(--border);border-radius:8px;padding:8px 10px;background:#fff;color:var(--dark);min-height:40px;box-sizing:border-box;width:100%}
.nd-act .nd-in{width:auto}
.nd-form{padding:16px 18px;margin-bottom:18px}
.nd-sec{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--slate);margin:16px 0 8px}
.nd-sec2{font-size:12.5px;font-weight:700;margin:12px 0 6px}
.nd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 14px}
.nd-f span{display:block;font-size:12px;font-weight:600;color:var(--slate);margin-bottom:4px}
.nd-check{display:flex;align-items:center;gap:8px}
.nd-check span{margin:0;color:var(--dark);font-size:13px}
.nd-wide{display:block;margin-top:10px}
.nd-row{display:flex;gap:8px}
.nd-results{margin-top:8px;border:1.5px solid var(--border);border-radius:8px}
.nd-res{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-top:1px solid var(--border)}
.nd-res:first-child{border-top:none}
.nd-picked{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media (max-width:560px){.nd-row{flex-direction:column}.nd-act .nd-in{width:100%}}
.cr-target{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:6px}
.cr-tin{flex:1 1 260px}
.cr-tin input{font-size:18px;font-weight:800}
.cr-p{font-size:14px;line-height:1.6;color:var(--dark);margin-bottom:10px}
.cr-kv{display:grid;grid-template-columns:130px 1fr;gap:10px;font-size:13.5px;padding:4px 0;border-top:1px solid #eef1f3}
.cr-kv span{color:var(--slate);font-weight:600}
.cr-sub{margin-top:18px}
.cr-three{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 28px}
.cr-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px 32px}
.cr-shint{margin-bottom:12px}
.cr-str{text-transform:capitalize}
.cr-str-documented{color:var(--green)}
.cr-str-questionable,.cr-str-inferred{color:#d64545}
.cr-str-seller-stated{color:#c07800}
.cr-find{border:1.5px solid var(--border);border-left-width:5px;border-radius:10px;padding:12px 16px;margin-bottom:12px}
.cr-find.cr-critical{border-left-color:#d64545}
.cr-find.cr-high{border-left-color:var(--coral)}
.cr-find.cr-medium{border-left-color:#e0b040}
.cr-find.cr-low{border-left-color:var(--border)}
.cr-find-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:6px}
.cr-find-h b{font-size:15px;color:var(--dark)}
.cr-sev{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:10px;background:var(--cream);color:var(--slate)}
.cr-critical .cr-sev{background:rgba(214,69,69,.12);color:#d64545}
.cr-high .cr-sev{background:rgba(251,126,88,.14);color:#b8552f}
.cr-medium .cr-sev{background:rgba(224,176,64,.16);color:#8a6a10}
.cr-imp{margin-left:auto;font-weight:800;color:var(--dark)}
.cr-ev{font-size:12.5px;color:var(--slate);font-style:italic;margin-bottom:6px;line-height:1.5}
.cr-why{font-size:14px;line-height:1.55;color:var(--dark)}
.cr-ask{margin-top:10px;background:var(--cream);border-radius:8px;padding:10px 12px;font-size:13.5px;line-height:1.5}
.cr-ask-t{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--green);margin-bottom:2px}
.cr-marks{display:flex;gap:16px;margin-top:8px}
.cr-list{list-style:none;margin:0;padding:0}
.cr-list li{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid #eef1f3;font-size:13.5px;line-height:1.5;color:var(--dark)}
.cr-list em{color:var(--slate);font-style:normal;font-size:12.5px}
.cr-again{margin-top:12px;display:flex;justify-content:flex-end}
@media (max-width:560px){.cr-kv{grid-template-columns:1fr;gap:2px}}

/* ---- Buy and sell separation in the engagement chooser, and the roadmap list
     that replaced the grid of greyed out tiles. Both 17 September 2026. ---- */
.sidehead{font-size:11px;font-weight:800;letter-spacing:0.07em;text-transform:uppercase;color:var(--slate);margin:4px 0 10px;display:flex;align-items:center;gap:9px}
.sidehead::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--border)}
.sidehead + .rows{margin-bottom:22px}
.sidehead-buy::before{background:var(--buy)}
.sidehead-sell::before{background:var(--sell)}
/* The accent is a left edge on the row rather than a coloured border all round,
   so a hover still reads as a hover and the card does not change shape. */
.row.side-buy{border-left:4px solid var(--buy)}
.row.side-sell{border-left:4px solid var(--sell)}
.row.side-buy .sideflag{color:var(--buy)}
.row.side-sell .sideflag{color:var(--sell)}
.row.side-buy:hover{border-color:var(--buy)}
.soonlist .soonrow{padding:12px 0;border-top:1px solid var(--border)}
.soonlist .soonrow:first-of-type{border-top:0;padding-top:4px}
.soonname{font-size:14px;font-weight:800;color:var(--dark);letter-spacing:-0.01em}
.soonblurb{font-size:12px;font-weight:600;color:var(--slate);line-height:1.55;margin-top:3px}
/* ---- The advisor's note on a target, and the What's moved block. 17 Sep 2026. ---- */
.tnote{margin-top:9px;background:var(--cream);border-left:3px solid var(--lime);border-radius:7px;padding:9px 12px;font-size:13px;font-weight:600;color:var(--dark);line-height:1.5}
.tnotel{display:block;font-size:9.5px;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;color:var(--green);margin-bottom:3px}
.mvcard .mvrow{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--border)}
.mvcard .mvrow:first-of-type{border-top:0}
.mvwhat{font-size:14px;font-weight:700;color:var(--dark);flex:1 1 200px}
.mvstage{font-size:9.5px;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;color:var(--green);background:var(--green-tint);border-radius:10px;padding:3px 9px}
.mvwhen{font-size:12px;font-weight:600;color:var(--slate);white-space:nowrap}
.mvmore{font-size:12px;font-weight:600;color:var(--slate);padding-top:9px;border-top:1px solid var(--border)}
.mvnone{font-size:13px;font-weight:600;color:var(--slate);line-height:1.55}
/* ---- The badge saying EDGE has analysed a business, 17 September 2026. ---- */
.rbadge{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;background:var(--green-tint);border:1.5px solid var(--green);border-radius:8px;padding:8px 12px;font-size:11px;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;color:var(--green);text-decoration:none}
.rbadge:hover{background:var(--green);color:#fff}
.rbarrow{font-size:11px;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap}
/* ---- The optional sentence on a request, 17 September 2026. ---- */
.askg{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}
.askn{font:inherit;font-size:12px;font-weight:600;color:var(--dark);background:#fff;border:1.5px solid var(--border);border-radius:7px;padding:6px 9px;min-width:0;width:190px;max-width:100%}
.askn::placeholder{color:#b3bec6;font-weight:500}
.askn:focus{outline:none;border-color:var(--green)}
@media (max-width:560px){.askg{width:100%}.askn{width:100%}}
/* ---- A business on its own page, and the Active/All toggle. 17 Sep 2026. ---- */
.tnlink{color:inherit;text-decoration:none}
.tnlink:hover,.tnlink:focus-visible{color:var(--green);text-decoration:underline}
.tdgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 28px;margin:12px 0 4px}
.tdrow{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:14px;color:var(--slate);border-bottom:1px solid var(--border)}
.tdrow span:last-child{color:var(--dark);font-weight:700;white-space:nowrap}
.engtoggle{display:inline-flex;border:1.5px solid var(--border);border-radius:9px;overflow:hidden;margin-bottom:18px;background:#fff}
.engt{font:inherit;font-size:12.5px;font-weight:700;color:var(--slate);background:#fff;border:0;padding:8px 16px;cursor:pointer}
.engt+.engt{border-left:1.5px solid var(--border)}
.engt-on{background:var(--dark);color:#fff}

/* ---- A CIM's summary on a business, 2 Oct 2026 (PCR-2026-10-02-08). The cims-
   classes are vendor/cim_summary.js's, the same names the advisor portal styles. */
.cimup{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.cimup .askn{flex:1 1 240px}
.cimmsg{flex-basis:100%;font-size:12px;color:var(--slate)}
.cims{font-size:13px;line-height:1.55;color:var(--dark)}
.cims-by{font-size:11px;color:var(--slate);margin-bottom:6px}
.cims-head{font-size:15px;font-weight:700;margin:4px 0}
.cims-conf{font-size:12px;color:var(--slate);margin-bottom:8px}
.cims-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:8px 0}
.cims-stat{background:var(--cream);border-radius:8px;padding:8px 10px}
.cims-sl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;color:var(--slate)}
.cims-sv{font-size:15px;font-weight:800}
.cims-ss,.cims-sub{font-size:11px;color:var(--slate)}
.cims-h3{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;color:var(--green);margin:14px 0 6px}
.cims-t{width:100%;border-collapse:collapse;font-size:12px}
.cims-t th,.cims-t td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--border)}
.cims-src td{font-size:11px;color:var(--slate)}
.cims-three{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.cims-find{border-left:3px solid var(--border);padding:6px 10px;margin:8px 0}
.cims-find.cims-critical{border-color:#c0392b}
.cims-find.cims-high{border-color:var(--coral)}
.cims-fh{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.cims-sev{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--slate)}
.cims-imp{margin-left:auto;font-weight:700}
.cims-ev{font-size:12px;color:var(--slate)}
.cims-ask span{font-weight:700}
.cims-list{margin:4px 0;padding-left:18px}
.cims-fine{font-size:11px;color:var(--slate);margin-top:12px}

/* ---- THE BUYER PORTAL LICENCE, 2 Oct 2026 (PCR-2026-10-02-05) ----
   The representation button is the one primary call to action on a licence
   target: coral, Poppins Black, all caps, white, per the EDGE design standard.
   The chip that replaces it walks requested, agreement sent, EDGE engaged. */
.repbtn{font-family:inherit;font-weight:900;font-size:11px;letter-spacing:0.04em;
  text-transform:uppercase;color:#fff;background:var(--coral);border:0;border-radius:6px;
  padding:8px 12px;cursor:pointer;line-height:1.3;text-align:left}
.repbtn:hover{filter:brightness(0.95)}
.repchip{font-size:10px;font-weight:800;letter-spacing:0.03em;text-transform:uppercase;
  border-radius:12px;padding:4px 10px;display:inline-block}
.repchip.rep-requested{background:#fff1ec;color:#c4502c;border:1px solid var(--coral)}
.repchip.rep-agreement_sent{background:#fff7e0;color:#8a6a10;border:1px solid #e0b020}
.repchip.rep-engaged{background:var(--green);color:#fff}
.repmodal{position:fixed;inset:0;background:rgba(58,74,85,0.55);display:flex;
  align-items:center;justify-content:center;z-index:1000;padding:16px}
.repbox{background:#fff;border-radius:12px;max-width:560px;width:100%;max-height:90vh;
  overflow:auto;padding:22px 24px;color:var(--dark);font-size:14px;line-height:1.55}
.repbox h2{font-size:17px;font-weight:900;margin:0 0 12px}
.repbox ul{margin:4px 0 12px;padding-left:20px}
.repfees{font-weight:700;margin:0}
.repack{display:flex;gap:8px;align-items:flex-start;font-weight:700;margin:12px 0}
.repack input{accent-color:var(--coral);width:16px;height:16px;margin-top:3px}
.repbox textarea{width:100%;font:inherit;font-size:13px;border:1.5px solid var(--border);
  border-radius:8px;padding:8px 10px;resize:vertical;box-sizing:border-box}
.repacts{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.repgo{font-family:inherit;font-weight:900;text-transform:uppercase;letter-spacing:0.04em;
  font-size:12px;color:#fff;background:var(--coral);border:0;border-radius:6px;
  padding:10px 16px;cursor:pointer}
.repgo:disabled{opacity:.45;cursor:default}
.repno{font-family:inherit;font-weight:700;font-size:12px;color:var(--slate);background:none;
  border:1.5px solid var(--border);border-radius:6px;padding:9px 14px;cursor:pointer}
.repmsg,.rmmsg{font-size:12px;color:#c4502c;margin-top:8px}
.licc .tdrows{margin-top:6px}
.licban{background:#fff1ec;border:1.5px solid var(--coral);color:var(--dark);border-radius:10px;
  padding:12px 16px;margin-bottom:12px;font-size:14px;line-height:1.5}
.rmopen{margin:4px 0 8px}
.rmedit[hidden]{display:none !important}
.rmopen[hidden]{display:none !important}
.rmlab{display:block;font-size:11px;font-weight:700;color:var(--slate);margin:8px 0 0}
.rmlab span{font-weight:400;margin-left:6px}
.rmin{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:13px;color:var(--coral);
  border:1.5px solid var(--border);border-radius:6px;padding:6px 8px;margin-top:3px}
.rmacts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
