/* Hyperion LP portfolio updates — one stylesheet for every page. */
:root{
  --bg:#0f1115; --panel:#171a21; --panel-2:#1c2029; --line:#2a2f3a;
  --ink:#e7e9ee; --muted:#98a1b3; --faint:#6b7280; --accent:#FF3D00;
  --radius:16px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink); font-family:var(--font);
  font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
  min-height:100vh; display:flex; flex-direction:column;
}
a{color:inherit}
.wrap{width:100%; max-width:920px; margin:0 auto; padding:0 22px}

/* ---------- top bar ---------- */
.topbar{border-bottom:1px solid var(--line); background:rgba(15,17,21,.86);
  backdrop-filter:saturate(140%) blur(8px); position:sticky; top:0; z-index:20}
.topbar .wrap{display:flex; align-items:center; gap:14px; height:62px}
.topbar img.lockup{height:22px; width:auto; display:block}
.topbar .spacer{flex:1}
.who{color:var(--faint); font-size:12.5px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; max-width:38vw}
.ghost{display:inline-block; padding:7px 13px; border:1px solid var(--line);
  border-radius:9px; color:var(--muted); font-size:13px; text-decoration:none;
  background:var(--panel); transition:border-color .15s,color .15s}
.ghost:hover{border-color:#3a4150; color:var(--ink)}
form.logout{display:inline}
button.linkish{background:none; border:0; color:var(--faint); font-size:12.5px;
  font-family:inherit; cursor:pointer; padding:0; white-space:nowrap}
button.linkish:hover{color:var(--muted); text-decoration:underline}

/* ---------- page furniture ---------- */
main{flex:1; padding:44px 0 72px}
.eyebrow{color:var(--muted); font-size:12px; letter-spacing:.9px;
  text-transform:uppercase; margin:0 0 8px}
h1{font-size:32px; line-height:1.2; margin:0 0 6px; letter-spacing:-.4px}
.lede{color:var(--muted); margin:0 0 34px; font-size:15px}
.back{display:inline-block; color:var(--faint); font-size:13px;
  text-decoration:none; margin:0 0 18px}
.back:hover{color:var(--muted)}
.empty{color:var(--faint); border:1px dashed var(--line); border-radius:var(--radius);
  padding:34px; text-align:center; margin:0}
.banner{background:rgba(255,61,0,.08); border:1px solid rgba(255,61,0,.35);
  color:#ffb59b; border-radius:12px; padding:11px 15px; font-size:13.5px; margin:0 0 24px}
.intro{color:var(--muted); font-size:15.5px; margin:0 0 30px;
  border-left:2px solid var(--line); padding-left:16px}

/* ---------- edition cards (home + admin) ---------- */
.editions{display:flex; flex-direction:column; gap:12px}
a.edition{display:flex; align-items:center; gap:18px; text-decoration:none;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px 24px; transition:border-color .15s, background .15s, transform .1s}
a.edition:hover{border-color:#3d4453; background:var(--panel-2)}
a.edition:active{transform:translateY(1px)}
.edition-main{flex:1; min-width:0}
.edition-main h2{margin:0; font-size:21px; letter-spacing:-.2px;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.edition-main p{margin:3px 0 0; color:var(--muted); font-size:14px}
.edition-meta{display:flex; align-items:center; gap:8px; color:var(--faint);
  font-size:13px; white-space:nowrap}
.edition-meta .dot{opacity:.5}
.chev{font-size:22px; color:var(--faint); line-height:1}

/* ---------- badges ---------- */
.badge{display:inline-block; font-size:10.5px; letter-spacing:.6px;
  text-transform:uppercase; padding:3px 8px; border-radius:999px;
  border:1px solid var(--line); color:var(--muted); background:var(--panel-2);
  white-space:nowrap; font-weight:600}
.badge.draft{border-color:rgba(255,61,0,.4); color:#ff8f6b; background:rgba(255,61,0,.08)}
.badge.published{border-color:rgba(74,222,128,.35); color:#7ee2a8; background:rgba(74,222,128,.08)}

/* ---------- company rows ---------- */
.companies{display:flex; flex-direction:column; gap:0}
.company{display:flex; gap:24px; padding:26px 0; border-top:1px solid var(--line)}
.company:first-child{border-top:0; padding-top:6px}
.logo{flex:0 0 84px; display:flex; flex-direction:column; align-items:center; gap:8px}
.logo img{width:84px; height:84px; object-fit:contain; border-radius:12px;
  background:#fff; padding:9px; display:block}
.logo .mono{width:84px; height:84px; border-radius:12px; display:flex;
  align-items:center; justify-content:center; background:var(--panel-2);
  border:1px solid var(--line); color:var(--muted); font-size:26px;
  font-weight:700; letter-spacing:.5px}
.company .body{flex:1; min-width:0}
.company .head{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.company h3{margin:0; font-size:19px; letter-spacing:-.2px}
.company h3 a{text-decoration:none; border-bottom:1px solid transparent}
.company h3 a:hover{border-bottom-color:var(--accent)}
.company .desc{margin:4px 0 0; color:var(--muted); font-size:14px}
ul.bullets{margin:14px 0 0; padding:0; list-style:none;
  display:flex; flex-direction:column; gap:9px}
ul.bullets li{position:relative; padding-left:20px; font-size:15px; line-height:1.6}
ul.bullets li::before{content:""; position:absolute; left:4px; top:.62em;
  width:5px; height:5px; border-radius:50%; background:var(--accent)}
ul.bullets li.placeholder{color:var(--faint); font-style:italic}
ul.bullets li.placeholder::before{background:var(--line)}

/* ---------- forms / auth pages ---------- */
.center{flex:1; display:flex; align-items:center; justify-content:center; padding:40px 22px}
.card{width:100%; max-width:420px; background:var(--panel); border:1px solid var(--line);
  border-radius:var(--radius); padding:34px 30px}
.card h1{font-size:22px; margin:8px 0 6px}
.card p{color:var(--muted); font-size:14.5px; margin:0 0 20px}
.card img.lockup{height:24px; width:auto; display:block; margin:0 0 18px}
label.field{display:block; color:var(--muted); font-size:12.5px; letter-spacing:.4px;
  text-transform:uppercase; margin:0 0 7px}
input[type=email], input[type=text], textarea{
  width:100%; background:#0d0f13; color:var(--ink); border:1px solid var(--line);
  border-radius:10px; padding:12px 14px; font-size:15px; font-family:inherit;
  line-height:1.5; resize:vertical}
input:focus, textarea:focus{outline:none; border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(255,61,0,.14)}
button.primary{width:100%; margin-top:16px; background:var(--accent); color:#fff;
  border:0; border-radius:10px; padding:13px 22px; font-size:15px; font-weight:600;
  font-family:inherit; cursor:pointer}
button.primary:hover{filter:brightness(1.07)}
button.primary:disabled{opacity:.55; cursor:default; filter:none}
.flash{display:none; margin:0 0 16px; padding:11px 14px; border-radius:10px;
  font-size:13.5px; line-height:1.5}
.flash.show{display:block}
.flash.err{background:rgba(255,61,0,.09); border:1px solid rgba(255,61,0,.35); color:#ffb59b}
.flash.ok{background:rgba(74,222,128,.08); border:1px solid rgba(74,222,128,.3); color:#9ff0bf}
.fineprint{color:var(--faint); font-size:12px; margin:18px 0 0; line-height:1.6}

/* ---------- admin editor ---------- */
.admin-head{display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap;
  margin:0 0 26px}
.admin-head .grow{flex:1; min-width:240px}
.toolbar{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
button.btn{background:var(--panel); color:var(--ink); border:1px solid var(--line);
  border-radius:10px; padding:10px 16px; font-size:14px; font-weight:600;
  font-family:inherit; cursor:pointer}
button.btn:hover{border-color:#3d4453}
button.btn.accent{background:var(--accent); border-color:var(--accent); color:#fff}
button.btn.danger{color:#ff8f6b; border-color:rgba(255,61,0,.3)}
button.btn:disabled{opacity:.5; cursor:default}
.meta-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:0 0 8px}
.meta-grid .full{grid-column:1 / -1}
.savebar{position:sticky; bottom:0; background:rgba(15,17,21,.94);
  backdrop-filter:blur(8px); border-top:1px solid var(--line);
  padding:14px 0; margin-top:30px; z-index:10}
.savebar .wrap{display:flex; align-items:center; gap:12px}
.savestate{color:var(--faint); font-size:13px; flex:1}
.fields{display:flex; flex-direction:column; gap:8px; margin-top:12px}
.fields textarea{font-size:14.5px; padding:10px 12px}
.logo-btn{font-size:11.5px; color:var(--muted); border:1px solid var(--line);
  border-radius:8px; padding:4px 10px; cursor:pointer; background:var(--panel)}
.logo-btn:hover{border-color:#3d4453; color:var(--ink)}
.admin .company .head .desc{color:var(--faint); font-size:13px}

@media (max-width:640px){
  h1{font-size:26px}
  main{padding:32px 0 60px}
  .company{gap:16px; padding:22px 0}
  .logo{flex-basis:56px}
  .logo img,.logo .mono{width:56px; height:56px; font-size:19px}
  .meta-grid{grid-template-columns:1fr}
  .edition-meta span:not(.chev){display:none}
  .who{display:none}
  /* Keep the whole top bar on one line: smaller mark, tighter controls. */
  .topbar .wrap{gap:9px; height:56px}
  .topbar img.lockup{height:17px}
  .ghost{padding:6px 10px; font-size:12.5px}
}

/* ---------- company roster admin ---------- */
.rowfoot{display:flex; align-items:center; gap:14px; margin-top:12px; flex-wrap:wrap}
.rowfoot .grow{flex:1}
.vehicles{display:flex; gap:14px}
label.vcheck{display:inline-flex; align-items:center; gap:6px; color:var(--muted);
  font-size:13px; cursor:pointer; user-select:none}
label.vcheck input{accent-color:var(--accent); margin:0}
.hint{color:var(--faint); font-size:12.5px}
button.btn.small{padding:6px 12px; font-size:12.5px}
.admin .meta-grid{margin-bottom:0}

/* ---------- performance ratings ---------- */
.company .head .grow{flex:1}
.rating{display:inline-flex; align-items:center; gap:6px; font-size:11px;
  font-weight:700; letter-spacing:.5px; text-transform:uppercase; white-space:nowrap;
  padding:4px 11px; border-radius:999px; border:1px solid var(--line);
  color:var(--muted); background:var(--panel-2)}
.rating::before{content:""; width:6px; height:6px; border-radius:50%;
  background:currentColor; flex:none}
.rating.r-xstrong{color:#7ee2a8; border-color:rgba(74,222,128,.38); background:rgba(74,222,128,.10)}
.rating.r-strong {color:#a9d8b4; border-color:rgba(74,222,128,.22); background:rgba(74,222,128,.06)}
.rating.r-neutral{color:#e0c07a; border-color:rgba(234,179,8,.34);  background:rgba(234,179,8,.09)}
.rating.r-weak   {color:#ff8f6b; border-color:rgba(255,61,0,.38);   background:rgba(255,61,0,.09)}
.rating.r-na     {color:var(--faint)}

.perf{margin-top:12px; max-width:300px}
select.rating-select{width:100%; background:#0d0f13; color:var(--ink);
  border:1px solid var(--line); border-radius:10px; padding:9px 12px;
  font-size:14px; font-family:inherit; cursor:pointer}
select.rating-select:focus{outline:none; border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(255,61,0,.14)}
select.rating-select.r-xstrong{color:#7ee2a8}
select.rating-select.r-strong {color:#a9d8b4}
select.rating-select.r-neutral{color:#e0c07a}
select.rating-select.r-weak   {color:#ff8f6b}

@media (max-width:640px){
  .company .head .grow{flex:0; width:100%; height:0}
  .rating{font-size:10px; padding:3px 9px}
}

/* ---------- estimated runway rail ---------- */
.runway{flex:0 0 132px; align-self:flex-start; margin-top:2px;
  border:1px solid var(--line); border-radius:12px; background:var(--panel);
  padding:12px 14px; display:flex; flex-direction:column; gap:4px; text-align:center}
.rw-label{color:var(--faint); font-size:9.5px; letter-spacing:.7px;
  text-transform:uppercase; font-weight:600}
.rw-value{color:var(--ink); font-size:17px; font-weight:600; line-height:1.25;
  letter-spacing:-.2px}
.admin .perf{margin-top:14px; max-width:520px}
.admin .perf > div{min-width:0}

@media (max-width:760px){
  .company{flex-wrap:wrap}
  .runway{flex:1 1 100%; flex-direction:row; align-items:baseline; justify-content:flex-start;
    gap:10px; text-align:left; margin:14px 0 0; padding:9px 13px}
  .rw-value{font-size:15px}
}
.rw-note{color:var(--faint); font-size:10.5px; line-height:1.35; margin-top:1px}
@media (max-width:760px){ .rw-note{margin-top:0} }
label.field .hint{text-transform:none; letter-spacing:0; font-size:11px}
input[type=month]{width:100%; background:#0d0f13; color:var(--ink);
  border:1px solid var(--line); border-radius:10px; padding:11px 13px;
  font-size:14px; font-family:inherit; color-scheme:dark}
input[type=month]:focus{outline:none; border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(255,61,0,.14)}
.admin .perf{max-width:none; display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
@media (max-width:760px){ .admin .perf{grid-template-columns:1fr} }

/* ---------- per-LP view ---------- */
.exposure-head{color:var(--muted); font-size:13px; margin:0 0 10px}
.exposure{display:flex; flex-wrap:wrap; gap:10px; margin:0 0 30px}
.exposure .cell{flex:1 1 160px; background:var(--panel); border:1px solid var(--line);
  border-radius:12px; padding:13px 16px}
.exposure .k{display:block; color:var(--faint); font-size:10.5px; letter-spacing:.7px;
  text-transform:uppercase; font-weight:600}
.exposure .v{display:block; font-size:20px; font-weight:600; letter-spacing:-.3px; margin-top:3px}
.holdings{display:flex; gap:6px; flex-wrap:wrap; margin-top:9px}
.holding{font-size:11px; font-weight:600; color:#ffb59b; background:rgba(255,61,0,.08);
  border:1px solid rgba(255,61,0,.3); border-radius:999px; padding:3px 10px; white-space:nowrap}
.preview{display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--panel);
  border:1px dashed var(--line); border-radius:12px; padding:10px 14px; margin:0 0 22px;
  font-size:13px; color:var(--muted)}
.preview select{background:#0d0f13; color:var(--ink); border:1px solid var(--line);
  border-radius:8px; padding:7px 10px; font-family:inherit; font-size:13px; max-width:100%}
.preview strong{color:var(--ink)}

/* ---------- tabs ---------- */
.tabs{display:flex; gap:2px; margin-left:14px}
.tabs a{color:var(--muted); text-decoration:none; font-size:13.5px; padding:7px 12px;
  border-radius:8px; white-space:nowrap}
.tabs a:hover{color:var(--ink); background:var(--panel)}
.tabs a.on{color:var(--ink); background:var(--panel-2); box-shadow:inset 0 -2px 0 var(--accent)}
.wrap.wide{max-width:1240px}

/* ---------- portfolio overview ---------- */
.exposure .sub{display:block; color:var(--faint); font-size:12px; margin-top:2px}
.tablewrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--panel)}
table.ptable{width:100%; border-collapse:collapse; font-size:13.5px; min-width:880px}
.ptable th{text-align:left; color:var(--faint); font-weight:600; font-size:10.5px;
  letter-spacing:.6px; text-transform:uppercase; padding:12px 14px;
  border-bottom:1px solid var(--line); white-space:nowrap}
.ptable td{padding:11px 14px; border-bottom:1px solid var(--line); white-space:nowrap;
  font-variant-numeric:tabular-nums}
.ptable .num{text-align:right}
.ptable td.up{color:#7ee2a8; font-weight:600}
.ptable tbody tr:last-child td{border-bottom:0}
.ptable tfoot td{font-weight:700; background:var(--panel-2); border-top:1px solid var(--line);
  border-bottom:0}
.ptable .co{display:flex; align-items:center; gap:10px}
.ptable .co img{width:30px; height:30px; object-fit:contain; background:#fff;
  border-radius:7px; padding:3px}
.ptable .co .mono{width:30px; height:30px; border-radius:7px; display:inline-flex;
  align-items:center; justify-content:center; background:var(--panel-2); font-size:11px;
  font-weight:700; color:var(--muted)}
.notes{color:var(--faint); font-size:12px; line-height:1.7; margin:16px 2px 0}

/* ---------- memos ---------- */
.memo-list{list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:7px}
.memo-list a{color:var(--ink); text-decoration:none; border-bottom:1px solid rgba(255,61,0,.45)}
.memo-list a:hover{border-bottom-color:var(--accent)}
.memo-none{margin:10px 0 0}
.memo-link{display:inline-block; margin-top:9px; font-size:12.5px; color:var(--muted);
  text-decoration:none}
.memo-link:hover{color:var(--ink)}
.memo-bar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 14px}
.memo-bar .back{margin:0}
.memo-bar .spacer{flex:1}
.memo-frame{width:100%; height:calc(100vh - 230px); min-height:560px;
  border:1px solid var(--line); border-radius:12px; background:#fff}

@media (max-width:700px){
  .tabs{margin-left:4px}
  .tabs a{padding:6px 7px; font-size:12.5px}
}

/* ---------- portfolio sections ---------- */
.psection{margin:0 0 40px}
.psection-head{display:flex; align-items:baseline; gap:12px; margin:0 0 12px}
.psection-head h2{font-size:20px; margin:0; letter-spacing:-.2px}
.psection .exposure{margin:14px 0 0}
table.ptable{min-width:760px}

/* Keep the portfolio tables inside the page at ~1000px: tighter gutters, and a
   multi-tranche Close cell may wrap after its comma instead of widening the table. */
.ptable th, .ptable td{padding-left:10px; padding-right:10px}
.ptable th:first-child, .ptable td:first-child{padding-left:14px}
.ptable th:last-child, .ptable td:last-child{padding-right:14px}
.ptable td.close{white-space:normal; min-width:72px}
.ptable th{vertical-align:bottom; line-height:1.35}

/* Four tabs: drop the email before the header crowds; tabs scroll on phones. */
.tabs{flex:0 1 auto; min-width:0; overflow-x:auto; scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{padding:7px 10px}
@media (max-width:1180px){ .who{display:none} }
h1.caps{font-size:24px; text-transform:uppercase; letter-spacing:.6px; margin:0 0 28px}

/* ---------- LP name header (portfolio tabs) ---------- */
.lp-head{display:flex; align-items:center; gap:16px; margin:6px 0 32px}
.lp-avatar{flex:none; width:54px; height:54px; border-radius:50%; display:flex;
  align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:18px;
  letter-spacing:.6px; background:linear-gradient(135deg, #FF3D00 0%, #ff8a50 100%);
  box-shadow:0 0 0 4px rgba(255,61,0,.14), 0 8px 24px rgba(255,61,0,.18)}
.lp-head h1{margin:0; font-size:32px; font-weight:700; letter-spacing:-.6px; line-height:1.15}
@media (max-width:640px){
  .lp-head{gap:12px}
  .lp-avatar{width:44px; height:44px; font-size:15px}
  .lp-head h1{font-size:24px}
}

/* Performance: underlined label over the pill; no dot in the pill. */
.perf-block{display:inline-flex; flex-direction:column; align-items:center; gap:6px}
.perf-label{color:var(--muted); font-size:11px; letter-spacing:.3px;
  text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(152,161,179,.5)}
.rating::before{content:none}
@media (max-width:640px){ .perf-block{align-items:flex-start} }

/* ---------- right rail: performance top-right, runway bottom-right ---------- */
.rail{flex:0 0 150px; align-self:stretch; display:flex; flex-direction:column;
  align-items:flex-end; gap:16px}
.rail .runway{flex:none; align-self:auto; width:132px; margin:auto 0 0}   /* pinned to bottom */
@media (max-width:760px){
  .rail{flex:1 1 100%; flex-direction:row; align-items:center; justify-content:space-between;
    margin-top:12px}
  .rail .runway{width:auto; margin:0 0 0 auto; flex:0 1 auto}
}

/* Vehicle badges: Fund I blue, SPV violet (kept clear of the rating colours). */
.badge.v-fund{color:#8cc8ff; border-color:rgba(56,152,255,.40); background:rgba(56,152,255,.11)}
.badge.v-spv{color:#c9b2ff; border-color:rgba(139,92,246,.45); background:rgba(139,92,246,.13)}
.ptable .fn{color:var(--accent); font-size:10px; font-weight:700; margin-left:2px; vertical-align:super; line-height:0}

/* Bigger logos and footnotes on the portfolio tabs. */
.ptable .co{gap:12px}
.ptable .co img{width:40px; height:40px; padding:4px; border-radius:8px}
.ptable .co .mono{width:40px; height:40px; border-radius:8px; font-size:13px}
.notes{font-size:13.5px; line-height:1.7}

/* Footnotes: white, larger, with bold legible markers (plain digits, not ¹²). */
.notes{color:var(--ink); font-size:14.5px; line-height:1.75}
.notes .fn-mark{font-weight:700; margin-right:3px}
.ptable .fn{color:var(--ink); font-size:12.5px; font-weight:700; margin-left:3px;
  vertical-align:super; line-height:0}

/* Performance: white caps label whose underline spans the pill; label, pill and
   runway box share one width so the right rail lines up. */
.perf-block{width:140px; align-items:stretch; gap:7px}
.perf-label{display:block; text-align:center; text-transform:uppercase; color:var(--ink);
  font-size:10.5px; font-weight:700; letter-spacing:1px; text-decoration:none;
  border-bottom:1.5px solid rgba(231,233,238,.6); padding-bottom:5px}
.perf-block .rating{justify-content:center; width:100%; padding:5px 8px}
.rail .runway{width:140px}
@media (max-width:640px){ .perf-block{align-items:stretch} }

.asof{color:var(--muted); font-size:14.5px; margin:0 0 28px}
input[type=date]{width:100%; background:#0d0f13; color:var(--ink); border:1px solid var(--line);
  border-radius:10px; padding:11px 13px; font-size:14px; font-family:inherit; color-scheme:dark}
.memo-status{margin:12px 0 0; color:var(--muted); font-size:14px; font-style:italic}

/* Performance label sits close to its underline. */
.perf-label{padding-bottom:1px; line-height:1.15}

/* Footnote markers float outside the number so right-aligned figures stay in line. */
.ptable .fn{position:absolute; margin:-5px 0 0 2px}
.ptable .fn{font-size:11px}

/* ---------- performance card (matches the runway card) ---------- */
.perf-card{width:140px; box-sizing:border-box; background:var(--panel); border:1px solid var(--line);
  border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; align-items:center;
  gap:4px; text-align:center}
.pc-label{color:var(--faint); font-size:9.5px; letter-spacing:.7px; text-transform:uppercase; font-weight:600}
.pc-value{font-size:14px; font-weight:600; line-height:1.25; color:var(--ink)}
.pc-meter{display:flex; gap:3px; width:100%; margin-top:6px}
.pc-meter span{flex:1; height:4px; border-radius:2px; background:var(--line)}
.perf-card.r-xstrong .pc-value{color:#7ee2a8}  .perf-card.r-xstrong .pc-meter .on{background:#4ade80}
.perf-card.r-strong  .pc-value{color:#a9d8b4}  .perf-card.r-strong  .pc-meter .on{background:#86c79a}
.perf-card.r-neutral .pc-value{color:#e0c07a}  .perf-card.r-neutral .pc-meter .on{background:#d9a93b}
.perf-card.r-weak    .pc-value{color:#ff8f6b}  .perf-card.r-weak    .pc-meter .on{background:#ff6a3d}
.perf-card.r-na      .pc-value{color:var(--faint)}
.rail .runway{padding:12px 14px}
/* Keep "Extremely Strong" on one line: slightly wider cards, both matched. */
.rail{flex:0 0 156px}
.perf-card, .rail .runway{width:150px; padding:12px 12px}
.pc-value{font-size:13.5px; white-space:nowrap}

/* Co-invest now has 11 columns: let headers wrap at word breaks (their single-line
   width was driving the table past the page) and trim the gutters. */
.ptable th{white-space:normal; letter-spacing:.4px}
.ptable th, .ptable td{padding-left:8px; padding-right:8px}
.ptable th:first-child, .ptable td:first-child{padding-left:12px}
.ptable th:last-child, .ptable td:last-child{padding-right:12px}

/* ---------- section band (Deal · At entry · Today · Your stake) + dividers ---------- */
.ptable thead .grp th{text-align:center; color:var(--ink); font-size:10.5px; letter-spacing:.9px;
  font-weight:700; padding:12px 10px 0; border-bottom:0}
.ptable thead .grp th span{display:block; padding-bottom:7px; border-bottom:1px solid rgba(231,233,238,.28)}
.ptable .gs{border-left:1px solid rgba(152,161,179,.22)}
.asof{font-style:italic}

/* Large logos in a landscape tile (64×46): full size for wide wordmarks, trimmed
   top/bottom so rows stay compact; stacked logos scale to fit rather than crop. */
.ptable .co img{width:64px; height:46px; padding:4px 6px; border-radius:10px; object-fit:contain}
.ptable .co .mono{width:64px; height:46px; border-radius:10px; font-size:14px}
/* Room on the right of Entry Valuation for the 1/2 markers (all rows share it, so figures stay aligned). */
.ptable .entry{padding-right:20px}

/* Breathing room either side of each section divider. */
.ptable .gs{padding-left:16px}
.ptable .ge, .ptable td:first-child, .ptable th:first-child{padding-right:16px}

/* Narrower screens: keep divider breathing room but a little tighter, and let long
   company names wrap beside the logo so the 11-column co-invest table still fits. */
@media (max-width:1180px){
  .ptable .gs{padding-left:12px}
  .ptable .ge, .ptable td:first-child, .ptable th:first-child{padding-right:12px}
  .ptable td:first-child{white-space:normal}
  .ptable .co span{line-height:1.3}
}

/* ---------- edition section bands (style B): orange small caps + rule ---------- */
.vsec{display:flex; align-items:center; gap:14px; margin:44px 0 10px}
.companies > .vsec:first-child{margin-top:10px}
.vsec h2{margin:0; font-size:12.5px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase;
  color:var(--accent); white-space:nowrap}
.vsec .hint{color:var(--faint); font-size:12px; white-space:nowrap}
.vsec::after{content:''; flex:1; height:1px; background:rgba(231,233,238,.22)}
.vsec + .company{border-top:0; padding-top:10px}

/* Former name under a renamed company (TeRAM, fka TC Lab). */
.fka{display:block; font-size:11.5px; font-style:italic; font-weight:400; color:var(--faint);
  letter-spacing:0; margin-top:2px; line-height:1.3}
.company .fka{margin:2px 0 0}
.fka{white-space:nowrap}
/* MOIC: a touch more room either side of the figure. */
.ptable .moic{padding-left:16px}
.ptable td.moic:last-child, .ptable th.moic:last-child{padding-right:16px}
@media (max-width:1060px){ .ptable .moic{padding-left:10px} }
/* Sign-in page: centred logo, compact button, fine print set apart from it */
.card.signin img.lockup{margin:0 auto 22px}
.card.signin h1{margin:0 0 18px}
.card.signin button.primary{padding:9px 22px; font-size:14.5px}
.card.signin .fineprint{margin-top:30px; font-size:12.5px}
.card.signin .fineprint a{color:var(--muted); text-decoration:underline; text-underline-offset:2px}
.card.signin .fineprint{margin-bottom:0}
.card.signin h1{text-align:center}
/* Confirm sign-in: everything centred above a slimmer button */
.card.signin h1, .card.signin p{text-align:center}
/* Metric boxes: labels wrap to 1-3 lines, so pin the big numbers (and their
   notes) to shared rows across the row of cells instead of letting each cell
   stack on its own. Falls back to the plain flex stack without subgrid. */
@supports (grid-template-rows: subgrid){
  .exposure{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    grid-template-rows:auto auto auto}
  .exposure .cell{display:grid; grid-template-rows:subgrid; grid-row:span 3}
  .exposure .k{align-self:start}
  .exposure .v{align-self:end}
  .exposure .sub{align-self:start}
}
/* Locked Fund I preview (LP with no Fund I commitment): names and logos stay
   legible; every figure is a server-side placeholder, blurred so the shape of
   the table still reads without implying real numbers are hidden in the page. */
.lockbar{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px;
  background:var(--panel); border:1px solid var(--line); border-radius:12px;
  padding:13px 16px; margin:0 0 18px}
.lockbar strong{font-size:14.5px; letter-spacing:.2px}
.lockbar span{color:var(--muted); font-size:13px}
.ptable.locked .rd{display:inline-block; filter:blur(4.5px); color:var(--muted);
  user-select:none; -webkit-user-select:none; pointer-events:none}
/* Page header with a right-hand figure (Investment Memos: total pages). */
.pagehead{display:flex; align-items:flex-start; justify-content:space-between; gap:12px 28px; flex-wrap:wrap}
.pagehead-main{min-width:0}
.head-stat{text-align:right; margin-left:auto; padding-top:6px}
.head-stat .hs-value{display:block; font-size:24px; font-weight:600; letter-spacing:-.4px}
.head-stat .hs-label{display:block; color:var(--faint); font-size:10.5px; letter-spacing:.7px;
  text-transform:uppercase; margin-top:2px}
@media (max-width:620px){ .head-stat{text-align:left; margin-left:0; padding-top:0} }
/* ...as a pill: accent border over a translucent accent wash. */
.head-stat{text-align:center; background:rgba(255,61,0,.10); border:1px solid rgba(255,61,0,.45);
  border-radius:12px; padding:10px 18px}
.head-stat .hs-value{color:var(--accent)}
.head-stat .hs-label{color:rgba(255,255,255,.62)}
.head-stat .hs-value{color:var(--ink)}
