/* BD DevCo Investor Portal — brand: charcoal / white / orange (matches bddev.co) */
:root{
  --ink:#16181d; --ink-2:#22252c; --ink-3:#2c3038;
  --paper:#f4f5f7; --white:#ffffff;
  --orange:#e8821e; --orange-dark:#c96c10; --orange-soft:#fdf1e4;
  --gray:#6b7078; --gray-2:#9aa0a8; --line:#e4e4e6;
  --good:#137333; --good-bg:#e6f4ea; --bad:#b3261e; --bad-bg:#fce8e6;
  --radius:6px; --max:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.5;-webkit-font-smoothing:antialiased;font-size:14px}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.num{font-variant-numeric:tabular-nums}

/* ---------- top bar ---------- */
.topbar{background:var(--ink);color:var(--white);position:sticky;top:0;z-index:40;border-bottom:3px solid var(--orange)}
.topbar-inner{max-width:var(--max);margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:14px}
.brand img{height:34px;width:auto}
.brand .tag{font-size:.62rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:#c9cdd4;border-left:1px solid rgba(255,255,255,.18);padding-left:14px}
.tabs{display:flex;gap:4px;flex:1}
.tabs a{color:#c9cdd4;font-weight:500;padding:8px 12px;border-radius:4px;font-size:.88rem;transition:color .15s,background .15s}
.tabs a:hover{color:var(--white);background:rgba(255,255,255,.06)}
.tabs a.active{color:var(--white);background:rgba(232,130,30,.16);box-shadow:inset 0 -2px 0 var(--orange)}
.who{display:flex;align-items:center;gap:12px;font-size:.82rem;color:#c9cdd4}
.who b{color:var(--white);font-weight:600}
.menu-btn{display:none;background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer}

/* ---------- layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:28px 24px 64px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.page-head h1{font-size:1.55rem;font-weight:800;letter-spacing:-.01em}
.page-head .sub{color:var(--gray);font-size:.88rem;margin-top:2px}
.kicker{font-size:.68rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--orange)}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ---------- cards ---------- */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.card h2{font-size:1.02rem;font-weight:700;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.card h3{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);margin:18px 0 10px}
.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orange)}
.stat .label{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
.stat .value{font-size:1.45rem;font-weight:800;margin-top:6px;letter-spacing:-.01em}
.stat .foot{font-size:.76rem;color:var(--gray);margin-top:2px}
.dark-stat{background:var(--ink);color:#fff;border-color:var(--ink)}
.dark-stat .label,.dark-stat .foot{color:#c9cdd4}

/* fund card */
.fund{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.fund-head{background:linear-gradient(135deg,var(--ink) 0%,var(--ink-3) 100%);color:#fff;padding:18px 20px;position:relative}
.fund-head .cover{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.28}
.fund-head > *{position:relative}
.fund-head .name{font-size:1.08rem;font-weight:800}
.fund-head .entity{font-size:.8rem;color:#c9cdd4;margin-top:2px}
.fund-head .own{position:absolute;right:20px;top:18px;text-align:right}
.fund-head .own b{display:block;font-size:1.5rem;font-weight:800;color:var(--orange)}
.fund-head .own span{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#c9cdd4}
.fund-body{padding:16px 20px;flex:1}
.kv{display:grid;grid-template-columns:1fr auto;gap:7px 12px;font-size:.88rem}
.kv dt{color:var(--gray)} .kv dd{font-weight:600;text-align:right}
.kv .hl{color:var(--orange-dark)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.chip{font-size:.72rem;font-weight:600;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--ink-2)}
.chip.o{background:var(--orange-soft);border-color:#f5d3ad;color:var(--orange-dark)}
.fund-foot{border-top:1px solid var(--line);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--gray)}

/* ---------- tables / lists ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
table{width:100%;border-collapse:collapse;font-size:.86rem}
th{text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);padding:11px 14px;border-bottom:1px solid var(--line);background:#fafafb;white-space:nowrap}
td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr.clickable{cursor:pointer} tr.clickable:hover td{background:#fbfbfc}
td.r,th.r{text-align:right}
.doc-title{font-weight:600}
.doc-sub{font-size:.76rem;color:var(--gray)}
.feed{display:flex;flex-direction:column}
.feed-item{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center;cursor:pointer}
.feed-item:last-child{border-bottom:none}
.feed-item .ico{width:38px;height:38px;border-radius:6px;background:var(--orange-soft);color:var(--orange-dark);display:grid;place-items:center;font-weight:800;font-size:.7rem;flex:none}
.feed-item .meta{flex:1;min-width:0}
.feed-item .meta b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feed-item .meta span{font-size:.76rem;color:var(--gray)}
.badge{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:3px;background:var(--paper);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap}
.badge.new{background:var(--orange);border-color:var(--orange);color:#fff}
.badge.good{background:var(--good-bg);border-color:#bfe2c9;color:var(--good)}
.badge.warn{background:var(--orange-soft);border-color:#f5d3ad;color:var(--orange-dark)}
.badge.bad{background:var(--bad-bg);border-color:#f3c3be;color:var(--bad)}
.empty{padding:28px;text-align:center;color:var(--gray);font-size:.88rem}

/* ---------- forms / buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--orange);color:#fff;border:none;border-radius:4px;padding:10px 18px;font-weight:600;cursor:pointer;font-size:.88rem;transition:background .15s}
.btn:hover{background:var(--orange-dark)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{background:var(--paper)}
.btn.dark{background:var(--ink)} .btn.dark:hover{background:var(--ink-3)}
.btn.sm{padding:6px 11px;font-size:.78rem}
.btn.link{background:none;color:var(--orange-dark);padding:0;font-weight:600}
.topbar .btn.ghost{color:#fff;border-color:rgba(255,255,255,.22)} .topbar .btn.ghost:hover{background:rgba(255,255,255,.08)}
label.f{display:flex;flex-direction:column;gap:5px;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray)}
.in{border:1px solid #cfd2d8;border-radius:4px;padding:10px 12px;background:#fff;font-size:.92rem;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink);width:100%}
.in:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(232,130,30,.15)}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.row > *{flex:1;min-width:150px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.filters .in{width:auto;min-width:170px}
.msg{padding:10px 14px;border-radius:4px;font-size:.84rem;margin-top:12px}
.msg.ok{background:var(--good-bg);color:var(--good)} .msg.err{background:var(--bad-bg);color:var(--bad)} .msg.info{background:var(--orange-soft);color:var(--orange-dark)}

/* ---------- auth screen ---------- */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.auth-art{background:var(--ink) center/cover no-repeat;position:relative;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:40px}
.auth-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,24,29,.55) 0%,rgba(22,24,29,.35) 45%,rgba(22,24,29,.92) 100%)}
.auth-art > *{position:relative;z-index:1}
.auth-art img.logo{height:46px;width:auto;align-self:flex-start;object-fit:contain}
.auth-art h2{font-size:2rem;font-weight:800;line-height:1.15;max-width:460px}
.auth-art p{color:#d5d8dd;max-width:440px;margin-top:10px}
.auth-art .rule{height:3px;width:64px;background:var(--orange);margin-bottom:16px}
.auth-panel{background:#fff;display:flex;align-items:center;justify-content:center;padding:40px 28px}
.auth-box{width:100%;max-width:380px}
.auth-box h1{font-size:1.4rem;font-weight:800;margin-bottom:6px}
.auth-box .sub{color:var(--gray);margin-bottom:22px;font-size:.9rem}
.auth-box form{display:flex;flex-direction:column;gap:14px}
.code-in{font-size:1.5rem;letter-spacing:.3em;text-align:center;font-weight:700}
.qr{display:flex;gap:16px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:6px}
.qr img{width:150px;height:150px;background:#fff;border-radius:4px}
.qr code{font-size:.72rem;word-break:break-all;color:var(--ink-2)}
.fine{font-size:.74rem;color:var(--gray);margin-top:18px;line-height:1.5}
.steps{display:flex;gap:6px;margin-bottom:18px}
.steps i{height:3px;flex:1;background:var(--line);border-radius:2px}
.steps i.on{background:var(--orange)}
@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-art{min-height:240px}}

/* ---------- misc ---------- */
.demo-bar{background:var(--orange);color:#fff;text-align:center;font-size:.76rem;font-weight:700;letter-spacing:.08em;padding:6px}
.pfoot{max-width:var(--max);margin:0 auto;padding:0 24px 40px;color:var(--gray-2);font-size:.72rem;line-height:1.6}
.spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--orange);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.section{margin-top:28px}
.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.section-title h2{font-size:1.02rem;font-weight:800}
.progress{height:8px;background:var(--paper);border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.progress > i{display:block;height:100%;background:var(--orange)}
.muted{color:var(--gray)}
.admin-tag{background:var(--orange);color:#fff;font-size:.6rem;font-weight:800;letter-spacing:.18em;padding:3px 7px;border-radius:3px}
@media (max-width:820px){
  .tabs{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ink);flex-direction:column;padding:10px 16px;border-bottom:3px solid var(--orange)}
  .tabs.open{display:flex}
  .menu-btn{display:block}
  .who .name{display:none}
  .brand .tag{display:none}
  .fund-head .own{position:static;text-align:left;margin-top:10px}
  .fund-head .own b{display:inline;font-size:1.2rem;margin-right:6px}
  .wrap{padding:20px 16px 48px}
  .topbar-inner{justify-content:space-between}
}

/* ---------- deal cards & deal page (v4) ---------- */
.deal{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}
.deal:hover{box-shadow:0 6px 22px rgba(22,24,29,.10);transform:translateY(-1px)}
.deal-cover{height:170px;background:var(--ink) center/cover no-repeat;position:relative}
.deal-cover .badge{position:absolute;left:14px;top:14px}
.deal-body{padding:16px 20px 14px;flex:1}
.deal-name{font-size:1.15rem;font-weight:800;letter-spacing:-.01em}
.deal-via{font-size:.74rem;color:var(--gray);margin-top:10px}
.deal-latest{font-size:.8rem;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.deal-hero{border-radius:var(--radius);min-height:260px;padding:22px 26px;background:var(--ink) center/cover no-repeat;color:var(--white);display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.deal-hero h1{font-size:2rem;font-weight:800;letter-spacing:-.02em;margin:8px 0 2px;color:var(--white)}
.deal-hero .sub{color:#d5d8de}
@media (max-width:620px){.deal-hero{min-height:200px;padding:18px}.deal-hero h1{font-size:1.5rem}.deal-cover{height:140px}}

/* ---- phones: less scrolling, nothing wider than the screen (2026-09-30) ---- */
.grid > *{min-width:0}
.kv dd{overflow-wrap:break-word}
/* label above value: for long pairs like "What to expect" (2026-10-05: on iPhone the value column collapsed to one letter) */
.kv.stack{grid-template-columns:minmax(0,1fr);gap:2px}
.kv.stack dd{text-align:left;margin:0 0 10px}
.kv.stack dd:last-child{margin-bottom:0}
.m-only{display:none}
@media (max-width:620px){
  .grid.g4, .grid.g3:has(> .stat){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stat{padding:12px 13px}
  .stat .value{font-size:1.12rem}
  .stat .label{font-size:.6rem;letter-spacing:.08em}
  .stat .foot{font-size:.68rem}
  .filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .filters .in{min-width:0;width:100%}
  .filters input.in{grid-column:1/-1}
  .doctbl thead{display:none}
  .doctbl td.col-date, .doctbl td.col-fund, .doctbl td.col-type{display:none}
  .doctbl td{padding:12px 10px}
  .m-only{display:block}
  .kv:not(.stack){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .chg-t th:nth-child(n+2), .chg-t td:nth-child(n+2){display:none}
}
/* photo label on opportunity cards (e.g. "Conceptual rendering") */
.deal-hero{position:relative}
.img-note{position:absolute;right:10px;bottom:8px;font-size:.66rem;letter-spacing:.02em;color:#fff;background:rgba(22,24,29,.55);padding:2px 7px;border-radius:999px}
.img-note.top{top:14px;bottom:auto;right:14px}
/* "Message Brendon" */
.msg-fab{position:fixed;right:16px;bottom:16px;z-index:60;box-shadow:0 6px 18px rgba(22,24,29,.18);display:inline-flex;align-items:center;gap:8px}
.msg-dot{background:#fff;color:var(--orange);border-radius:999px;font-size:.72rem;font-weight:800;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.msg-sheet-wrap{position:fixed;inset:0;background:rgba(22,24,29,.55);z-index:100;display:flex;align-items:flex-end;justify-content:flex-end;padding:16px}
.msg-sheet{width:100%;max-width:440px;max-height:min(640px,calc(100vh - 32px));display:flex;flex-direction:column;gap:10px;margin:0}
.msg-thread{flex:1;overflow-y:auto;min-height:120px;display:flex;flex-direction:column;gap:8px;padding:4px 0}
.bub{max-width:85%;padding:9px 12px;border-radius:12px;font-size:.92rem;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}
.bub.in{align-self:flex-end;background:#fdf0e3;border-bottom-right-radius:3px}
.bub.out{align-self:flex-start;background:#f1f2f4;border-bottom-left-radius:3px}
.bub-meta{font-size:.7rem;color:var(--muted,#6b7078);margin-top:4px}
@media (max-width:620px){.msg-sheet-wrap{padding:0}.msg-sheet{max-width:none;max-height:92vh;border-radius:14px 14px 0 0}}
/* progress photo gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.ph{position:relative;aspect-ratio:4/3;border:0;border-radius:6px;background:#e4e4e6 center/cover no-repeat;cursor:zoom-in;padding:0;overflow:hidden}
.ph-cap{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 6px;font-size:.72rem;color:#fff;text-align:left;background:linear-gradient(180deg,transparent,rgba(22,24,29,.75));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(22,24,29,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;cursor:zoom-out}
.lightbox img{max-width:100%;max-height:85vh;border-radius:6px}
.lb-cap{color:#e4e4e6;font-size:.88rem;margin-top:10px;text-align:center;max-width:720px}
@media (max-width:620px){.gallery{grid-template-columns:repeat(2,1fr)}}
/* GP Console header on phones: no sideways scroll */
@media (max-width:620px){.who{gap:6px}.who .hide-phone{display:none}.admin-tag{font-size:.62rem;padding:2px 5px}}
/* "Your journey" timeline (deal page) */
.tl{position:relative;padding-left:4px}
.tl::before{content:"";position:absolute;left:22px;top:10px;bottom:10px;width:2px;background:var(--line)}
.tl-item{position:relative;display:flex;gap:14px;align-items:center;padding:10px 0}
.tl-item[hidden]{display:none}
.tl-item.click{cursor:pointer}
.tl-item.click:hover .meta b{color:var(--orange-dark)}
.tl-dot{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;background:var(--paper);border:2px solid var(--line);display:grid;place-items:center;font-weight:800;font-size:.66rem;color:var(--ink-2);flex:none}
.tl-item.key .tl-dot{background:var(--orange-soft);border-color:var(--orange);color:var(--orange-dark);font-size:.9rem}
.tl-item.now .tl-dot{background:var(--orange);border-color:var(--orange);box-shadow:0 0 0 4px var(--orange-soft)}
.tl-item .meta{flex:1;min-width:0}
.tl-item .meta b{display:block;font-weight:600}
.tl-item .meta span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.76rem;color:var(--gray)}
.tl-item .meta .tl-when{display:none}
.tl-date{font-size:.76rem;color:var(--gray);white-space:nowrap;flex:none}
@media (max-width:620px){.tl-date{display:none}.tl-item .meta .tl-when{display:block}}
/* "Since your last visit" (portfolio) */
.since{border-left:3px solid var(--orange);margin-bottom:16px}
.since ul{margin:8px 0 0;padding-left:18px}
.since li{margin:4px 0;font-size:.92rem}
.since a,.since .lnk{color:var(--ink);text-decoration:none}
.since .lnk{display:inline;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.since a:hover b,.since .lnk:hover b{color:var(--orange-dark);text-decoration:underline}
/* "How investing with BD DevCo works" (opportunities) */
.how summary{cursor:pointer;list-style:none;display:block;position:relative;padding-right:26px}
.how summary .doc-sub{display:block;margin-top:2px}
.how summary::-webkit-details-marker{display:none}
.how summary::after{content:"+";position:absolute;right:0;top:0;font-weight:700;font-size:1.1rem;color:var(--orange-dark)}
.how[open] summary::after{content:"–"}
.how-steps{counter-reset:how;list-style:none;margin:14px 0 0;padding:0}
.how-steps li{counter-increment:how;position:relative;padding:0 0 14px 44px}
.how-steps li::before{content:counter(how);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;background:var(--orange-soft);color:var(--orange-dark);font-weight:800;display:grid;place-items:center;font-size:.85rem}
.how-steps li b{display:block}
.how-steps li span{display:block;font-size:.86rem;color:var(--gray);margin-top:2px}
.how-after{font-size:.88rem;padding-top:10px;border-top:1px solid var(--line)}
/* keep the floating "Message Brendon" button from covering the end of a page */
body:has(.msg-fab){padding-bottom:76px}
/* Capital account statement (Statements tab; prints to PDF) */
.stmt{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:20px;max-width:820px}
.stmt-head{background:#16181d;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:3px solid #e8821e;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.stmt-head img{height:34px}
.stmt-title{color:#fff;font-weight:700;letter-spacing:.04em;font-size:.95rem;text-align:right}
.stmt-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;padding:18px 24px;border-bottom:1px solid var(--line);font-size:.86rem}
.stmt-meta span,.stmt-grid span{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-bottom:2px}
.stmt-t{width:100%;border-collapse:collapse;font-size:.9rem}
.stmt-t th{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);font-weight:600;padding:12px 24px 6px;text-align:left}
.stmt-t th.r,.stmt-t td.r{text-align:right}
.stmt-t td{padding:9px 24px;border-top:1px solid var(--line)}
.stmt-t tr.total td{font-weight:700;border-top:2px solid var(--ink)}
.stmt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px 24px;padding:16px 24px;border-top:1px solid var(--line);background:var(--paper);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.stmt-grid b{font-size:1.02rem}
.stmt-grid em{display:block;font-style:normal;font-size:.74rem;color:var(--gray);margin-top:2px}
.stmt-foot{padding:14px 24px 18px;font-size:.72rem;color:var(--gray);line-height:1.5}
@media (max-width:620px){.stmt-meta{grid-template-columns:1fr}.stmt-t td,.stmt-t th{padding-left:14px;padding-right:14px}.stmt-head,.stmt-meta,.stmt-grid,.stmt-foot{padding-left:14px;padding-right:14px}.stmt-title{font-size:.8rem}
  .stmt-t{font-size:.8rem}.stmt-t td,.stmt-t th{padding-left:8px;padding-right:8px}.stmt-t td:first-child{padding-left:14px}.stmt-t th:nth-child(2),.stmt-t th:nth-child(3){width:auto}.stmt-t td.num{white-space:nowrap}}
@media print{
  @page{size:letter;margin:14mm}
  body{background:#fff!important;padding:0!important}
  .topbar,.pfoot,.msg-fab,.demo-bar,.no-print,#msgbox,.lightbox{display:none!important}
  main.wrap{padding:0!important;max-width:none!important}
  .stmt{border:none;max-width:none;margin:0;page-break-after:always;break-after:page}
  .stmt:last-child{page-break-after:auto;break-after:auto}
}
.stmt-t th:nth-child(2),.stmt-t th:nth-child(3){width:24%}
/* "At a glance" (project page) */
.glance .gl-steps{list-style:none;margin:4px 0 14px;padding:0;display:flex;gap:0}
.glance .gl-steps li{flex:1;min-width:0;position:relative;text-align:center;font-size:.72rem;color:var(--gray);padding:0 2px}
.glance .gl-steps li i{display:block;height:4px;background:var(--line);margin-bottom:6px;border-radius:2px}
.glance .gl-steps li.done i{background:var(--ink-3)}
.glance .gl-steps li.now i{background:var(--orange)}
.glance .gl-steps li.now span{color:var(--ink);font-weight:700}
.glance .gl-steps li.done span{color:var(--ink-2)}
.glance .gl-sold{display:inline-block;margin-bottom:12px;font-weight:700}
.glance .gl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 20px;border-top:1px solid var(--line);padding-top:12px}
.glance .gl-cell span{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-bottom:3px}
.glance .gl-cell b{display:block;font-size:1.15rem}
.glance .gl-cell em{display:block;font-style:normal;font-size:.76rem;color:var(--gray);margin-top:1px}
.glance .gl-cell.click{cursor:pointer}
.glance .gl-cell.click:hover b{color:var(--orange-dark)}
.glance .gl-bar{height:6px;background:var(--paper);border-radius:3px;margin-top:6px;overflow:hidden}
.glance .gl-bar span{display:block;height:100%;background:var(--orange)}
@media (max-width:620px){.glance .gl-steps li span{visibility:hidden;white-space:nowrap}.glance .gl-steps li.now span{visibility:visible;font-size:.7rem}}
/* Email notification preferences (Profile) */
.np-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}
.np-row:first-child{border-top:none}
.np-row input{width:auto;margin-top:3px}
.np-row b{display:block;font-size:.92rem}
.np-row em{display:block;font-style:normal;font-size:.8rem;color:var(--gray)}
/* Project page tabs (Overview · History · Documents) */
.subtabs{display:flex;gap:4px;margin:14px 0 0;border-bottom:1px solid var(--line);overflow-x:auto}
.subtabs a{padding:10px 14px;font-weight:600;font-size:.9rem;color:var(--gray);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;gap:6px;align-items:center}
.subtabs a.active{color:var(--ink);border-bottom-color:var(--orange)}
.subtabs a:hover{color:var(--ink)}
.gallery .ph[hidden]{display:none}
details.fold summary{cursor:pointer;list-style:none}
details.fold summary::-webkit-details-marker{display:none}
details.fold summary::after{content:" +";color:var(--orange-dark);font-weight:700}
details.fold[open] summary::after{content:" –"}
/* Statements fold + introductions line */
.stmt-fold{margin-bottom:12px}
.stmt-fold>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.stmt-fold>summary::-webkit-details-marker{display:none}
.stmt-fold>summary b{display:block}
.stmt-fold>summary em{display:block;font-style:normal;font-size:.78rem;color:var(--gray)}
.stmt-fold[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}
.stmt-fold[open] .stmt{border-top-left-radius:0;border-top-right-radius:0}
.intro-line .btn.link{padding:0;font-size:inherit}
@media print{.stmt-fold>summary{display:none}}
/* Opportunity cards: bigger titles, descriptive type label, three headline numbers (2026-10-01) */
.deal.opp .opp-cover{height:200px;position:relative}
.opp-kind{position:absolute;left:14px;bottom:12px;background:rgba(22,24,29,.78);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:3px;border-left:3px solid var(--orange)}
.opp-kind.static{position:static;display:inline-block;margin-bottom:8px}
.opp-title{font-size:1.3rem;font-weight:800;line-height:1.25;color:var(--ink);margin-bottom:2px}
.oh-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 4px}
.oh-tile{background:var(--paper);border-radius:6px;padding:10px 10px 9px;min-width:0}
.oh-tile b{display:block;font-size:1.25rem;font-weight:800;color:var(--ink);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oh-tile b.sm{font-size:.98rem;white-space:normal}
.oh-tile span{display:block;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--gray);margin-top:4px;line-height:1.3}
.oh-tile em,.terms em{font-style:normal;font-size:.6rem;font-weight:700;letter-spacing:.06em;color:var(--orange-dark);background:var(--orange-soft);border-radius:3px;padding:1px 5px;text-transform:uppercase;white-space:nowrap}
.opp-sum{font-size:.88rem;color:var(--ink-2);margin-top:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.opp-lead{font-size:1rem;line-height:1.55;color:var(--ink-2);margin:16px 2px 0;max-width:820px}
dl.terms{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:0;margin:0}
dl.terms dt,dl.terms dd{padding:9px 0;border-top:1px solid var(--line);margin:0}
dl.terms dt{color:var(--gray);font-size:.84rem;padding-right:14px}
dl.terms dd{font-weight:600;font-size:.92rem}
dl.terms dt:first-of-type,dl.terms dt:first-of-type+dd{border-top:none}
@media (max-width:620px){.oh-row{gap:6px}.oh-tile{padding:8px 7px}.oh-tile b{font-size:1.05rem}.opp-title{font-size:1.15rem}dl.terms{grid-template-columns:1fr}dl.terms dd{border-top:none;padding-top:0}}
/* Conversion funnel (GP Pipeline) */
.funnel .fn-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.funnel .fn-step{position:relative;padding:4px 0 4px 10px;border-left:3px solid var(--orange)}
.funnel .fn-step b{display:block;font-size:1.4rem;font-weight:800}
.funnel .fn-step span{display:block;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gray)}
.funnel .fn-step em{display:block;font-style:normal;font-size:.74rem;color:var(--orange-dark);font-weight:700}
@media (max-width:620px){.funnel .fn-steps{grid-template-columns:repeat(3,1fr);row-gap:12px}}
.demo-bar.pkg-bar{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:8px 12px}
.demo-bar.pkg-bar .in{width:auto;padding:4px 8px;font-size:.8rem}
.demo-bar.pkg-bar .btn{background:#fff;color:var(--ink)}
/* To-do replies (GP Desk) */
.tn{margin:8px 0 0 0;font-size:.86rem}
.tn-me{background:var(--paper);border-radius:6px;padding:7px 10px}
.tn-ai{background:#fff;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:6px;padding:7px 10px;margin-top:4px}
.tn-ai.ask{border-left-color:var(--bad)}
.tn-me b,.tn-ai b{font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;color:var(--gray)}
.tn-wait{font-size:.76rem;color:var(--gray);margin:4px 0 0 2px}
.tn-form{margin-top:8px}

/* Reserved for you (proposed allocations shared by Brendon) */
.alloc{border-left:3px solid var(--orange)}
.alloc-t th,.alloc-t td{padding:9px 6px}
.alloc-t th:first-child,.alloc-t td:first-child{padding-left:0}
.alloc-t td{border-top:1px solid var(--line)}
.alloc-t .r{text-align:right}
.alloc-t .tot td{font-weight:700;border-top:2px solid var(--charcoal,#16181d)}
.alloc-one{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;border-left:3px solid var(--orange);margin-top:12px}
.alloc-one .label{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gray)}
.alloc-one b{font-size:1.35rem}

/* ---------- investor portal (index.html), 2026-10-06 UI audit. Every rule below is scoped to classes only the investor
   pages use (.topbar.inv, .auth-inv, .wire-*, .sub-*, .dd-*, .opp-actions, .welcome, .totp-*), so the GP Console and the
   approval page are unaffected. ---------- */
/* top bar: tabs never wrap; when they don't fit on one line the menu button takes over (fitNav in index.html adds .compact) */
.topbar.inv .tabs a{white-space:nowrap}
.topbar.inv .who .btn{white-space:nowrap}
.topbar.inv .menu-btn{min-width:44px;min-height:44px;line-height:1;border-radius:4px}
.topbar.inv.compact .tabs{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ink);flex-direction:column;padding:10px 16px;border-bottom:3px solid var(--orange)}
.topbar.inv.compact .tabs.open{display:flex}
.topbar.inv.compact .menu-btn{display:block}
.topbar.inv.compact .brand .tag{display:none}
.topbar.inv.compact .topbar-inner{justify-content:space-between}
/* sign-in on a phone: the photo panel shrinks so each step's form is on the first screen */
@media (max-width:620px){
  .auth.auth-inv{grid-template-rows:auto 1fr}
  .auth-inv .auth-art{min-height:0;padding:20px 20px 18px}
  .auth-inv .auth-art img.logo{height:34px}
  .auth-inv .auth-art .rule{margin:14px 0 10px}
  .auth-inv .auth-art h2{font-size:1.3rem}
  .auth-inv .auth-art p{display:none}
  .auth-inv .auth-panel{padding:24px 20px;align-items:flex-start}
}
/* two-step setup: app link first on a phone; the setup key never breaks inside a group */
.totp-open{width:100%;margin-bottom:12px}
.qr.touch{display:block}
.qr code.totp-key{display:block;font-size:.86rem;word-break:normal;line-height:1.8;margin:2px 0 8px;color:var(--ink)}
.totp-key span{white-space:nowrap;letter-spacing:.06em}
.qr-more{margin:4px 0 2px;font-size:.82rem}
.qr-more summary{cursor:pointer;color:var(--orange-dark);font-weight:600}
.qr-more img{display:block;width:150px;height:150px;margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:4px}
.totp-apps{margin:8px 0 14px}
/* wire instructions: card (top of every page for a wire with no subscription card), modal, canvas */
.wire-card{border-left:3px solid var(--orange);margin-bottom:16px}
.wire-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.wire-head > div{flex:1 1 260px;min-width:0}
.wire-head .btn{flex:0 0 auto}
.wire-wrap{position:fixed;inset:0;background:rgba(22,24,29,.72);z-index:100;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:30px 12px}
.wire-modal{max-width:780px;width:100%}
.wire-modal canvas{display:block;border:1px solid var(--line);border-radius:4px;margin-top:14px}
.wire-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center;margin-top:16px}
.wire-actions .doc-sub{flex:1 1 220px}
.wire-actions .btn{flex:0 0 auto}
@media (max-width:620px){.wire-wrap{padding:10px 6px}.wire-modal{padding:14px}.wire-actions .doc-sub{flex:1 1 100%}.wire-actions .btn{flex:1 1 auto}}
/* subscription page */
.sub-card{margin-bottom:18px}
.sub-steps{display:flex;gap:6px;margin:14px 0 4px}
.sub-steps > div{flex:1;min-width:0}
.sub-steps i{display:block;height:6px;border-radius:3px;background:var(--line)}
.sub-steps i.on{background:var(--orange)}
.sub-steps span{display:block;font-size:.72rem;color:var(--gray);margin-top:4px;line-height:1.3}
.sub-next{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;border-radius:4px;margin:14px 0 4px;font-size:.88rem;background:var(--paper);border-left:3px solid var(--gray-2)}
.sub-next > div{flex:1 1 240px;min-width:0}
.sub-next .btn{flex:0 0 auto}
.sub-next.act{background:var(--orange-soft);border-left-color:var(--orange)}
.sub-next.done{background:var(--good-bg);border-left-color:var(--good);color:var(--good)}
.sub-sum{margin-top:12px}
.sub-edit{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.sub-btns > .btn{flex:0 0 auto}
@media (max-width:620px){.sub-steps span{display:none}.kv.sub-sum{grid-template-columns:minmax(0,1fr);gap:2px}.kv.sub-sum dd{text-align:left;margin:0 0 8px}.sub-btns > .btn{flex:1 1 auto}}
.alloc-go{font-size:.8rem;margin-top:2px}
/* new investor's first screen; load-failure card */
.welcome p{font-size:.95rem;color:var(--ink-2);max-width:640px}
.welcome-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.welcome-act .btn{flex:0 0 auto}
.load-err{max-width:640px}
/* opportunity page: actions under the headline numbers, natural width; due diligence rows */
.opp-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
.opp-actions .btn{flex:0 0 auto}
.int-done{font-size:.88rem;font-weight:600;color:var(--good)}
.dd-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.dd-row > div:first-child{flex:1 1 auto;min-width:0}
.dd-st{flex:0 0 auto;text-align:right}
.dd-ask{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:10px}
.dd-ask .doc-sub{flex:1 1 240px}
.dd-ask .btn{flex:0 0 auto}
/* ---------- investor portal, UI audit round 2 (2026-10-06). Scoped to ids/classes only index.html renders (#fbk, .tab-dot,
   .idle-warn, .no-photo, .st-*, #st-out, #op-intf, [role=button] rows inside main) so admin.html and approve.html are unchanged. ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* keyboard focus on rows that open something (feed, history, "Latest report", Since your last visit) */
.topbar.inv ~ main [role="button"]:focus-visible,#fbk:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}
.topbar.inv ~ main .feed-item[role="button"]:hover .meta b{color:var(--orange-dark)}
/* unseen opportunities: a dot on the tab (and on the phone menu button) until Opportunities is opened */
.topbar.inv .tab-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-left:6px;vertical-align:middle}
.topbar.inv .menu-btn{position:relative}
.topbar.inv .menu-btn .tab-dot{position:absolute;top:8px;right:6px;margin:0}
.deal-cover .badge.opp-new{position:absolute;left:auto;right:14px;top:14px;background:var(--orange);border-color:var(--orange);color:#fff}
/* "Message Brendon": icon + label on desktop, a compact round button on phones */
#fbk svg{width:18px;height:18px;flex:none}
@media (max-width:620px){
  #fbk.msg-fab{width:52px;height:52px;padding:0;border-radius:50%;right:14px;bottom:14px;gap:0}
  #fbk .fab-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  #fbk svg{width:22px;height:22px}
  #fbk .msg-dot{position:absolute;top:-4px;right:-4px;box-shadow:0 0 0 2px var(--orange)}
  body:has(#fbk){padding-bottom:72px}
}
/* idle sign-out warning (portal-core.js; investors only) */
.idle-warn{position:fixed;left:50%;top:72px;transform:translateX(-50%);z-index:130;width:max-content;max-width:calc(100% - 32px);display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;background:var(--ink);color:#fff;border-left:3px solid var(--orange);border-radius:6px;padding:12px 16px;font-size:.88rem;box-shadow:0 10px 30px rgba(22,24,29,.3)}
.idle-warn .btn{flex:0 0 auto}
/* no photo for a project or opportunity: a neutral branded panel, never another project's photo */
.deal-cover.no-photo,.deal-hero.no-photo{background:linear-gradient(135deg,var(--ink) 0%,var(--ink-3) 100%)}
.deal-cover.no-photo::before{content:"";position:absolute;inset:0;background:url(/img/logo-bddevco.png) center/auto 30px no-repeat;opacity:.3}
/* Statements: one width for the selector, the folds and the statement; "Save as PDF" hint */
.st-bar{max-width:820px}
.st-bar .btn{flex:0 0 auto}
.st-hint{flex:1 1 100%;font-size:.76rem;color:var(--gray)}
#st-out .stmt-fold{max-width:820px}
.st-one{margin:-6px 0 14px;text-align:right;max-width:820px}
/* a statement for a quarter whose close isn't posted yet: one line under the title, on screen and in the PDF */
#st-out .stmt-prelim{padding:10px 24px;background:#fff4e8;border-bottom:1px solid var(--line);font-size:.84rem;color:var(--ink);-webkit-print-color-adjust:exact;print-color-adjust:exact}
@media (max-width:620px){#st-out .stmt-prelim{padding-left:14px;padding-right:14px}}
@media print{
  #st-out > .stmt-fold:not(:last-child){break-after:page;page-break-after:always}
  #st-out .stmt{break-after:auto;page-break-after:auto;max-width:none}
  #st-out .stmt-t tr,#st-out .stmt-meta,#st-out .stmt-grid,#st-out .stmt-foot{break-inside:avoid;page-break-inside:avoid}
  body.print-one #st-out > .stmt-fold:not(.print-this){display:none!important}
  body.print-one #st-out > .stmt-fold.print-this{break-after:auto;page-break-after:auto}
  .st-one,.idle-warn,#fbk,.wire-card{display:none!important}
}
/* "Express interest" panel: chips large enough to tap on a phone */
@media (max-width:620px){#op-intf .chip{min-height:40px;padding:8px 12px;font-size:.8rem}}
/* the one-line wire notice on My Investments (index.html only; the full wire card lives on Subscription) */
.topbar.inv ~ main .wire-note{padding:12px 16px}
.topbar.inv ~ main .wire-note a{display:block;color:var(--ink);text-decoration:none;font-size:.92rem}
.topbar.inv ~ main .wire-note a span{color:var(--orange-dark);font-weight:600;white-space:nowrap}
.topbar.inv ~ main .wire-note a:hover b{color:var(--orange-dark)}
/* opportunity cards: the footer carries a reservation line and the next step; the step drops to its own line when both don't fit */
.topbar.inv ~ main .deal.opp .fund-foot{flex-wrap:wrap;gap:6px 14px}
.topbar.inv ~ main .deal.opp .fund-foot > .btn.link{white-space:nowrap;margin-left:auto}

/* GP Console phase 1 (2026-10-08): the Desk as one decision inbox (filter chips, sections of one-line rows that open in place,
   Signals folded, one footer line), the header person search, the contact action bar and the After-the-call sheet. Class names
   are the ones admin.html renders (ib-*, dk-*, hs-*, ct-*, sheet, seg). The fixes for every page come first; phone tap targets last. */
/* a button in a .row keeps its own width (the Desk "Done" buttons stretched to ~255 px under .row > *) */
.row > .btn{flex:0 0 auto;min-width:0}
@media (max-width:620px){.row.sub-btns > .btn{flex:1 1 auto}}   /* the investor subscription buttons still fill the row on a phone */
/* phones: sub-menus, sub-tabs and the Desk chips scroll sideways on one row instead of wrapping (44 px tap targets: end of block) */
@media (max-width:620px){
  main .subnav, main .subtabs, .ib-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  main .subnav a, main .subtabs a, .ib-chip{flex:0 0 auto;white-space:nowrap}
  main .subnav::-webkit-scrollbar, main .subtabs::-webkit-scrollbar, .ib-chips::-webkit-scrollbar{display:none}
}
/* Desk header: date · N to clear · who is reading, then the filter chips (one line on a laptop, stacked on a phone) */
.dk-top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;margin:0 0 12px}
.dk-head{font-size:.95rem;color:var(--ink-2)}
.dk-head b.num{font-size:1.1rem}
.dk-head a{text-decoration:underline}
@media (max-width:620px){.dk-top{flex-direction:column;flex-wrap:nowrap;align-items:stretch}}   /* nowrap: one flex line, so the chips take the screen's width and scroll */
.ib-chips{display:flex;gap:6px}
.ib-chip{display:inline-flex;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:6px 12px;min-height:36px;font-weight:600;font-size:.82rem;color:var(--ink);cursor:pointer}
.ib-chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ib-chip .ib-n{margin-left:6px;opacity:.8}
/* sections and rows */
.ib{max-width:880px}
.ib-sec{margin:14px 0 0}
.ib-h{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin:0 0 6px;display:flex;gap:6px;align-items:baseline}
.ib-list{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ib-item + .ib-item{border-top:1px solid var(--line)}
.ib-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 14px;min-height:40px}
.ib-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ib-x{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:none;width:100%}
.ib-x.ib-main{min-width:0}
.ib-t{font-weight:600;font-size:.9rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ib-t2{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ib-s{font-size:.76rem;line-height:1.3;color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ib-s a{color:var(--ink-2);text-decoration:underline}
.ib-cta{align-self:flex-start;margin-top:3px;font-size:.76rem;font-weight:700;color:var(--orange-dark)}
@media (min-width:621px){.ib-x.ib-main{flex-direction:row;align-items:center;gap:10px}.ib-x .ib-t{flex:0 1 auto}.ib-x .ib-s{flex:1}.ib-x .ib-cta{margin:0 0 0 auto}
  /* laptop: a package, data room or call row is one line too (title, then its meta); a to-do keeps two (its title may run long) */
  .ib-row > div.ib-main:not(:has(.ib-t2)){flex-direction:row;align-items:baseline;gap:10px}
  .ib-row > div.ib-main:not(:has(.ib-t2)) > .ib-t{flex:0 0 auto;width:auto;max-width:60%}
  .ib-row > div.ib-main:not(:has(.ib-t2)) > .ib-s{flex:1 1 auto;min-width:0}
  .ib-acts .btn.sm{padding-top:4px;padding-bottom:4px}}
.ib-acts{flex:0 0 auto;display:flex;gap:6px;align-items:center}
.ib-acts .btn.link{font-size:.82rem}
.ib-body{padding:4px 14px 14px;border-top:1px dashed var(--line)}
.ib-grp{padding:8px 14px 2px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray)}
.ib-item .sw-line, .ib-item .tn{padding:0 14px 8px}
/* "Show N more" and the filter: rows past the first few wait for Show more; a filter shows its whole section and nothing else */
.ib-sec:not(.expanded) .ib-item.more{display:none}
.ib:not([data-ibf="all"]) .ib-item.more{display:block}
.ib-showmore{margin:4px 0 0 2px;font-size:.82rem;line-height:1.3}
.ib:not([data-ibf="all"]) .ib-showmore{display:none}
.ib[data-ibf="approve"] .ib-sec:not([data-sec="approve"]), .ib[data-ibf="answer"] .ib-sec:not([data-sec="answer"]), .ib[data-ibf="calls"] .ib-sec:not([data-sec="calls"]), .ib[data-ibf="todos"] .ib-sec:not([data-sec="todos"]), .ib:not([data-ibf="all"]) .ib-signals, .ib:not([data-ibf="all"]) #dk-clear{display:none}
/* Signals (folded) and the footer line */
.ib-signals{margin-top:14px}
.ib-signals > .ib-list{margin-top:8px}
.ib-signals .ib-row{flex-wrap:wrap;align-items:flex-start;padding:8px 14px;font-size:.88rem}
.dk-foot{margin:14px 0 24px;font-size:.82rem;color:var(--gray);display:flex;flex-wrap:wrap;gap:4px 0}
main.wrap:has(> #ib){padding-top:20px;padding-bottom:16px}   /* the footer line ends the Desk: no extra page padding under it */
.dk-foot a{color:var(--ink-2);text-decoration:underline}
@media (max-width:620px){.dk-foot{gap:6px 16px}.dk-foot > span[aria-hidden]{display:none}}   /* phone: parts spaced, not dotted, so no "·" is left at a line start */
/* phone: what is being approved, and why to call, get two lines instead of being cut after a few words */
@media (max-width:620px){.ib-row > div.ib-main > span.ib-t, #sec-calls .ib-row > div.ib-main > .ib-s{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
/* Settings: the automations list has no rule above its first row; the header Settings button shows when it is the page */
#sec-auto .card > .row:first-child{border-top:0 !important}
.who .btn[aria-current="page"]{border-color:var(--orange)}
/* Snooze choices under a to-do */
.ib-snz{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 8px;justify-content:flex-end}
/* header person search (every Console page): in the top bar on a laptop; behind the magnifier on a phone */
.hs{position:relative;flex:0 1 240px;min-width:140px}
.hs-in{display:block;width:100%;height:34px;padding:6px 10px;border-radius:4px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:.86rem;-webkit-appearance:none;appearance:none}
.hs-in::placeholder{color:#9aa0a8}
.hs-in:focus{outline:none;border-color:var(--orange)}
.hs-list{position:absolute;top:calc(100% + 6px);left:0;width:min(420px,calc(100vw - 32px));max-height:60vh;overflow:auto;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px rgba(22,24,29,.18);z-index:60}
.hs-row{display:flex;gap:10px;align-items:center;padding:8px 12px;min-height:40px;color:var(--ink);text-decoration:none;width:100%;background:none;border:0;text-align:left;font:inherit;cursor:pointer}
.hs-row[aria-selected="true"], .hs-row:hover{background:var(--paper)}
.hs-name{font-weight:600}
.hs-sub{flex:1;min-width:0;font-size:.76rem;color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-chip{flex:0 0 auto}
.hs-btn{display:none;background:none;border:0;color:#fff;padding:8px;cursor:pointer}
@media (max-width:620px){
  .topbar-inner{position:relative}
  .hs{display:none;position:absolute;left:0;right:0;top:100%;padding:8px 16px;background:var(--ink);border-bottom:3px solid var(--orange)}
  .hs.open{display:block}
  .hs-btn{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}
  .hs-list{left:16px;right:16px;width:auto}
}
/* contact page: Call · Log a call · To-do · After the call, one panel open at a time; the After-the-call sheet */
.ct-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ct-panel, .sheet{background:#fff;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:var(--radius);padding:14px 16px;margin-top:10px}
.ib-body .sheet{border:0;padding:0}
.sheet-t{font-weight:700;margin-bottom:8px}
.seg{position:relative;display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer;margin:0 6px 6px 0;text-transform:none;letter-spacing:0;color:var(--ink)}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}
.seg:has(input:focus-visible){outline:2px solid var(--orange);outline-offset:2px}
/* accreditation basis chips in the sheet: a label is inline, so it needs a box for the phone tap height */
.bas-chip{display:inline-flex;align-items:center;gap:6px;margin:0 6px 6px 0;cursor:pointer;text-transform:none;letter-spacing:0}
.bas-chip input{width:auto;margin:0}
.bas-chip:has(input:checked){background:var(--orange-soft);border-color:#f5d3ad;color:var(--orange-dark)}
/* phones: 44 px tap targets (last, so they win over the sizes above) */
@media (max-width:620px){
  main .btn:not(.link){min-height:44px}
  .ib-chip, .ib-x.ib-main, .hs-row, .seg, .bas-chip{min-height:44px}
}

/* GP Console round 2 (2026-10-09): the guided Console. Desk additions (Decide, Going out, Just done, the walk-through), the help layer
   (tooltips, "?" lists, select lines, the glossary), the deliberate-step sheets (UI.ask), the tour, Settings alert rows and the
   After-the-call chips. Class names are the ones admin.html and help.js render (CONTRACT_console2 §3.3–3.5). Phone targets last. */
/* Desk header: date · N to clear · Walk me through on one line; Going out, Just done and the chips under it, each the full width */
.dk-top{flex-wrap:wrap;max-width:880px}
.dk-top > .dk-head{flex:1 1 auto;min-width:0}
#walk-go{flex:0 0 auto;white-space:nowrap}
.dk-top > .dk-going, .dk-top > .dk-just, .dk-top > .ib-chips{flex:1 1 100%;min-width:0;max-width:100%}
@media (max-width:620px){
  .dk-top{flex-direction:row;flex-wrap:wrap;align-items:center}
  .dk-top > .dk-head{flex:1 1 0}
}
/* Going out: one line (the title gives way, never the Hold button); a fold when more than one row or anything goes live within 24 h */
.dk-going{font-size:.86rem;color:var(--ink-2)}
div.dk-going{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;padding:2px 0}
div.dk-going > *{flex:0 0 auto}
div.dk-going > .go-t, div.dk-going > a{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.dk-going .go-t a{color:var(--ink);font-weight:600;text-decoration:underline}
.go-acts{display:inline-flex;gap:6px;align-items:center;flex:0 0 auto}
details.dk-going > summary{cursor:pointer;list-style:none;font-weight:600;padding:2px 0;overflow-wrap:anywhere}
details.dk-going > summary::-webkit-details-marker{display:none}
details.dk-going > summary::after{content:" +";color:var(--orange-dark);font-weight:700}
details.dk-going[open] > summary::after{content:" –"}
.go-list{margin-top:4px}
.go-list .go-row{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);white-space:normal}
.go-list .go-t{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}
.go-item{flex:1 1 100%}
/* Just done: what can still be undone on this device, newest first, and "Done for you today" */
.dk-just{font-size:.86rem}
.dk-just > summary{cursor:pointer;list-style:none;font-weight:600;color:var(--ink-2);padding:2px 0}
.dk-just > summary::-webkit-details-marker{display:none}
.dk-just > summary::after{content:" +";color:var(--orange-dark);font-weight:700}
.dk-just[open] > summary::after{content:" –"}
.jd-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.jd-row > :first-child{flex:1 1 auto;min-width:0}
.jd-row .btn{flex:0 0 auto}
.dk-just a{color:var(--ink-2);text-decoration:underline}
/* Decide: the red Compliance tag and edge, the primary option, the other options with their consequence under each */
.tag-comp{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:3px;background:var(--bad-bg);color:var(--bad);border:1px solid #f3c3be;vertical-align:1px;white-space:nowrap}
.tag-urg{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:3px;background:var(--orange-soft);color:var(--orange-dark);border:1px solid #f5d3ad;white-space:nowrap}
.ib-item.dk-dec.comp{box-shadow:inset 3px 0 0 var(--bad)}
.dk-opts{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:10px}
.dk-opts > *{max-width:100%}
.dk-opts .btn.link{justify-content:flex-start;text-align:left;white-space:normal}
.dk-opts .doc-sub{margin:-4px 0 0;max-width:640px}
.ib-age{color:var(--bad);font-weight:600;white-space:nowrap}
.dk-dont{margin-top:6px;color:var(--ink-2)}
.ib-item > .dk-dont{margin:0;padding:0 14px 8px}
.dk-dont b{color:var(--bad)}
.ib-fig{margin:6px 0 2px;font-size:.84rem;font-variant-numeric:tabular-nums;color:var(--ink-2)}
/* a filter chip shows its section only: Decide joins the phase 1 rules; Going out, Signals and "All clear" show under All only */
.ib[data-ibf="decide"] [data-sec]:not([data-sec="decide"]){display:none}
body:has(#ib:not([data-ibf="all"])) #sec-going, .ib:not([data-ibf="all"]) #sec-signals{display:none}
/* Walk me through: one card at a time */
.wk{max-width:640px}
.wk-top{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0 0 12px;font-size:.84rem;color:var(--gray)}
#wk-pass{font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}
#wk-prog{font-variant-numeric:tabular-nums}
.wk-bar{flex:1 1 120px;min-width:80px;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.wk-bar > i{display:block;height:100%;background:var(--orange);transition:width .2s}
#wk-exit{margin-left:auto}
.wk-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;outline:none}
.wk-card.comp{box-shadow:inset 3px 0 0 var(--bad)}
.wk-kind{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gray)}
.wk-card.comp .wk-kind{color:var(--bad)}
.wk-t{font-size:1.15rem;font-weight:800;line-height:1.3;margin:4px 0 10px;overflow-wrap:anywhere}
.wk-lines{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:2px}
.wk-lines dt{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-top:8px}
.wk-lines dt:first-child{margin-top:0}
.wk-lines dt span{color:var(--ink);letter-spacing:.04em}
.wk-lines dd{margin:0;font-size:.92rem;line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}
.wk-prev{white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-family:Aptos,Calibri,Arial,sans-serif;font-size:.9rem;line-height:1.45;color:var(--ink-2);background:var(--paper);border-radius:4px;padding:10px 12px;margin-top:10px}
.wk-fig{margin-top:10px;padding:8px 12px;border-left:3px solid var(--orange);background:var(--paper);border-radius:0 4px 4px 0;font-size:.9rem;font-variant-numeric:tabular-nums;line-height:1.6}
.wk-fig > *{display:block}
.wk-acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px;position:relative}
.wk-acts .wk-go{min-height:44px;padding-left:22px;padding-right:22px}
.wk-card > [data-wkmore]{margin-top:12px;font-size:.84rem}
.wk-body{margin-top:8px;padding-top:10px;border-top:1px dashed var(--line)}
.wk-rec{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.wk-rec .sheet{border:0;padding:0;margin:0}
.wk-card .msg.err{margin-top:12px}
/* Later's menu (Tomorrow · In 3 days · Next week) */
.wk-menu{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.wk-menu .btn{flex:0 0 auto}
.wk-done{text-align:center;padding:28px 20px}
.wk-done h2{font-size:1.2rem;font-weight:800;margin-bottom:6px}
.wk-done p{color:var(--gray);margin-bottom:14px}
.wk-done .btn{margin:4px}
/* back to the walk-through from any page: a bar at the bottom, above the phone's home indicator */
.wk-resume{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 16px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;font-weight:600;font-size:.88rem;text-decoration:none;border-top:3px solid var(--orange)}
.wk-resume:hover{background:var(--ink-3)}
.wk-resume::after{content:"→";color:var(--orange)}
main.wrap.has-wkr, body:has(.wk-resume) main.wrap{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
body:has(.wk-resume) .toast{bottom:calc(62px + env(safe-area-inset-bottom))}
/* After the call: Today next to Since, the suggested "How" (a tap fills the field; Save still records it) */
.ac-chip, .btn.link.ac-chip{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:4px 10px;margin:6px 6px 0 0;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink-2);font-size:.78rem;font-weight:600;cursor:pointer;text-transform:none;letter-spacing:0;max-width:100%;text-align:left;overflow-wrap:anywhere}
.ac-chip:hover, .btn.link.ac-chip:hover{border-color:var(--orange);color:var(--orange-dark);background:var(--white)}
.row > .btn.ac-chip{align-self:flex-end;margin:0 0 4px}
[id^="ac-accnote-"]{margin-top:6px}
/* Settings: one row per open automation alert */
.al-row{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:space-between;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:.86rem;overflow-wrap:anywhere}
.al-row > :first-child{flex:1 1 220px;min-width:0}
.al-row .doc-sub{flex:0 1 auto}
/* "?" next to a heading (22 px; a 44 px hit area on phones that doesn't make the heading taller) */
.hq{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;position:relative;width:22px;height:22px;padding:0;margin:0 0 0 6px;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--gray);font-family:inherit;font-size:.72rem;font-weight:700;line-height:1;letter-spacing:0;text-transform:none;cursor:pointer;vertical-align:middle;box-sizing:border-box}
.hq::before{content:"?"}
.hq:hover, .hq[aria-expanded="true"]{border-color:var(--orange);color:var(--orange-dark)}
.hq:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.section-title h2 .hq, .card > h2 .hq{margin-left:8px}
th .hq{margin-left:4px;vertical-align:-1px}
/* the line under a select: what the chosen option does, and a "?" for every option */
.hsel{display:flex;align-items:flex-start;gap:6px;margin-top:4px;font-size:.76rem;line-height:1.35;font-weight:400;color:var(--gray);text-transform:none;letter-spacing:0;overflow-wrap:anywhere;max-width:100%}
.hsel .hsel-t{flex:0 1 auto;min-width:0}
.hsel .hsel-t:empty{display:none}
.hsel .hq{margin:0;flex:0 0 auto}
.row > .hsel{flex:1 1 100%;min-width:0}
/* the tooltip (desktop: hover or keyboard focus) */
#help-tip{position:fixed;z-index:180;max-width:min(320px,calc(100vw - 16px));background:var(--ink);color:#fff;border-radius:6px;padding:8px 11px;font-size:.8rem;line-height:1.4;box-shadow:0 8px 24px rgba(22,24,29,.25);pointer-events:none;text-align:left;overflow-wrap:anywhere}
#help-tip .ht-n{color:#b9bec6;margin-top:3px}
/* the "?" list: anchored to its "?" on a laptop, a bottom sheet on a phone */
#help-pop{position:fixed;z-index:155;width:min(380px,calc(100vw - 16px));max-height:min(60vh,520px);overflow:auto;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px rgba(22,24,29,.2);padding:10px 14px 12px;outline:none;text-align:left;text-transform:none;letter-spacing:0;font-weight:400}
#help-pop.hp-sheet{left:0;right:0;bottom:0;top:auto;width:auto;max-height:70vh;border-radius:12px 12px 0 0;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
.hp-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.hp-title{font-size:.9rem;font-weight:800}
.hp-x{background:none;border:0;font-size:1.3rem;line-height:1;color:var(--gray);cursor:pointer;min-width:32px;min-height:32px}
.hp-list{list-style:none;margin:0;padding:0}
.hp-list li{padding:7px 0;border-top:1px solid var(--line);font-size:.84rem;line-height:1.4;overflow-wrap:anywhere}
.hp-list li b{display:block;font-weight:700;color:var(--ink)}
.hp-list .hp-h{display:block;color:var(--ink-2)}
.hp-list .hp-n{display:block;color:var(--gray);font-size:.78rem;margin-top:1px}
.hp-foot{border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
.hp-gl{margin:0}
.hp-gl dt{font-weight:700;font-size:.86rem;margin-top:8px}
.hp-gl dd{margin:0;font-size:.84rem;color:var(--ink-2)}
/* the deliberate step (UI.ask / UI.askText): a sheet with Cancel and the action; a bottom sheet on a phone */
html.ask-open{overflow:hidden}
.ask-ov{position:fixed;inset:0;z-index:170;background:rgba(22,24,29,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.ask{width:100%;max-width:620px;max-height:calc(100vh - 32px);overflow:auto;background:var(--white);color:var(--ink);border-radius:10px;padding:20px 22px;box-shadow:0 20px 50px rgba(22,24,29,.3);outline:none;text-align:left}
.ask.danger{border-top:4px solid var(--bad)}
.ask.money{border-top:4px solid var(--orange)}
.ask-t{font-size:1.08rem;font-weight:800;line-height:1.3;margin:0 0 8px;overflow-wrap:anywhere}
.ask-fig{font-size:1.9rem;font-weight:800;letter-spacing:-.01em;margin:2px 0 8px}
.ask-l{font-size:.9rem;line-height:1.5;color:var(--ink-2);margin:6px 0;overflow-wrap:anywhere}
.ask-f{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray)}
.ask-f textarea{text-transform:none;letter-spacing:0;font-weight:400;resize:vertical;min-height:72px}
.ask-err{color:var(--bad);font-size:.8rem;margin-top:6px}
.ask-b{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}
.ask .btn.danger{background:var(--bad)}
.ask .btn.danger:hover{background:#8f1e18}
/* the tour: a bottom card and a ring around what it describes */
.tour{position:fixed;z-index:150;left:50%;bottom:16px;transform:translateX(-50%);width:min(440px,calc(100vw - 24px));background:var(--ink);color:#fff;border-radius:10px;padding:14px 18px 16px;box-shadow:0 14px 40px rgba(22,24,29,.35);border-top:3px solid var(--orange)}
.tour-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
#tour-prog{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c9cdd4}
.tour h2{font-size:1rem;font-weight:800;margin:6px 0 4px;color:#fff}
.tour p{font-size:.88rem;line-height:1.5;color:#e4e6ea}
.tour-b{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.tour .btn.ghost{color:#fff;border-color:rgba(255,255,255,.3)}
.tour .btn.ghost:hover{background:rgba(255,255,255,.08)}
.tour .btn.link{color:#f5b36b}
.tour-ring{position:fixed;z-index:149;pointer-events:none;border:3px solid var(--orange);border-radius:8px;box-shadow:0 0 0 4px rgba(232,130,30,.25);transition:left .15s,top .15s,width .15s,height .15s}
/* phones: 44 px targets, the walk-through's primary full width (52 px), sheets and the tour at the bottom */
@media (max-width:620px){
  #walk-go{min-height:44px}
  .dk-opts .btn.link, .wk-acts .btn, .dk-going .btn, .go-acts .btn, .jd-row .btn, .ib-acts .btn.link, .wk-card > .btn.link, .wk-top .btn.link, .wk-menu .btn, .ac-chip, .tour .btn, .ask .btn, .sheet .btn.link{min-height:44px}
  .ib-showmore{min-height:44px}
  #sec-signals .btn.link{min-height:44px;margin-top:-12px;margin-bottom:-12px}   /* inline in a line of text: a 44 px target without a taller line */
  /* O2: row titles that open a row, and the Desk's stand-alone links, get a 44 px target without a taller row (padding offset by margin) */
  /* a row's title and the line under it are one target that opens the row (row padding included, so >= 44 px);
     links and buttons in that line sit above it and still work */
  .ib-row > div.ib-main{position:relative}
  .ib-row > div.ib-main > button.ib-x::after{content:'';position:absolute;left:0;right:0;top:-6px;bottom:-6px}
  .ib-row > div.ib-main > .ib-s :is(a,button){position:relative;z-index:1}
  .dk-foot a, .jd-for{display:inline-block;padding:14px 0;margin:-14px 0}
  #sec-signals > summary, #dk-just > summary{min-height:44px;display:flex;align-items:center}
  .wk-acts{flex-direction:column;align-items:stretch}
  .wk-acts .wk-go{width:100%;min-height:52px;font-size:1rem}
  .wk-acts .btn.link{justify-content:center}
  .wk-card{padding:16px}
  .hq{width:44px;height:44px;min-height:44px;margin:-11px -11px -11px -5px;border:0;background:none;color:var(--gray);z-index:0}
  .hq::after{content:"";position:absolute;left:11px;top:11px;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;background:var(--white);z-index:-1;box-sizing:border-box}
  .hq:hover, .hq[aria-expanded="true"]{color:var(--orange-dark)}
  .hq:hover::after, .hq[aria-expanded="true"]::after{border-color:var(--orange)}
  .hsel .hq, th .hq{margin:-11px -11px -11px -6px}
  .hp-x{min-width:44px;min-height:44px}
  .ask-ov{align-items:flex-end;padding:0}
  .ask{max-width:none;border-radius:14px 14px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom));max-height:88vh}
  .ask-b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .ask-b .btn{width:100%}
  .tour{left:0;right:0;bottom:0;transform:none;width:auto;border-radius:14px 14px 0 0;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
}

/* ---------- e-signature (esign §3.9, D13): the full-screen signing sheet (investor portal and GP Console; above the page and
   its dialogs, below the Console's ask sheets), the subscription buttons, the home notice and the LP consent card ---------- */
html.esign-open, html.esign-open body{overflow:hidden}
.esign-ov{position:fixed;inset:0;z-index:160;background:var(--paper,#fff)}
.esign-bar{position:absolute;left:0;right:0;top:0;height:52px;display:flex;align-items:center;gap:12px;padding:0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));background:var(--ink);color:#fff;border-bottom:3px solid var(--orange)}
.esign-bar h2{flex:1 1 auto;min-width:0;margin:0;font-size:.98rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.esign-bar .btn{flex:0 0 auto}
.esign-bar .btn.link{color:#fff;text-decoration:underline;text-underline-offset:3px}
.esign-bar .btn.link:hover{color:var(--orange)}
.esign-bar .btn.ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.esign-bar .btn.ghost:hover{background:rgba(255,255,255,.1)}
.esign-body{position:absolute;left:0;right:0;top:52px;bottom:0;background:var(--white)}
#esign-frame{display:block;width:100%;height:100%;border:0;background:var(--white)}
.esign-wait{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px 16px;text-align:center;background:var(--paper);color:var(--ink);font-size:.95rem}
.esign-wait p{max-width:460px}
.esign-warn{position:absolute;left:16px;right:16px;top:12px;z-index:2;max-width:620px;margin:0 auto;background:var(--ink);color:#fff;border-left:3px solid var(--orange);border-radius:6px;padding:10px 14px;font-size:.88rem;box-shadow:0 10px 30px rgba(22,24,29,.3)}
.esign-warn:not([hidden]){display:flex;align-items:center;gap:12px}
.esign-warn span{flex:1 1 auto}
.esign-warn .btn{flex:0 0 auto}
.esign-cf{position:absolute;inset:0;z-index:3;background:rgba(22,24,29,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.esign-cf-box{width:100%;max-width:440px;background:var(--white);color:var(--ink);border-radius:10px;padding:20px 22px;box-shadow:0 20px 50px rgba(22,24,29,.3)}
.esign-cf-b{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.sub-acts{display:flex;flex-wrap:wrap;gap:8px;flex:0 0 auto}
.esign-said{margin-top:6px}
.esign-card{border-left:3px solid var(--orange);margin-bottom:16px}
.esign-card h2{font-size:1rem;margin:0 0 6px}
.esign-card p{font-size:.9rem;margin-top:4px}
.esign-card .sub-acts{margin-top:12px}
.esign-note{border-left:3px solid var(--orange);margin-bottom:16px}
.topbar.inv ~ main .esign-note{padding:0}
.topbar.inv ~ main .esign-note a{display:block;padding:12px 16px;min-height:44px;color:var(--ink);text-decoration:none;font-size:.92rem}
.topbar.inv ~ main .esign-note a span{color:var(--orange-dark);font-weight:600;white-space:nowrap}
.topbar.inv ~ main .esign-note a:hover b{color:var(--orange-dark)}
/* signed.html: the page SignNow returns to (in the frame or the signing tab) */
.signed-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.signed-page .card{max-width:460px;width:100%;text-align:center;border-top:3px solid var(--orange)}
.signed-page h1{font-size:1.3rem;margin-bottom:8px}
.signed-page p{color:var(--gray);margin-bottom:16px}
@media (max-width:620px){
  .esign-bar{gap:8px}
  .esign-bar .btn, .esign-wait .btn, .esign-warn .btn, .esign-cf-b .btn, .sub-acts .btn, .esign-card .btn, .signed-page .btn{min-height:44px}
  .esign-bar .btn.sm{padding:6px 8px}
  .esign-bar h2{font-size:.9rem;line-height:1.2;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .sub-acts{flex:1 1 100%}
  .sub-acts .btn{flex:1 1 auto}
  .esign-cf{align-items:flex-end;padding:0}
  .esign-cf-box{max-width:none;border-radius:14px 14px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom))}
  .esign-cf-b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media print{.esign-ov,.esign-note,.esign-card .sub-acts{display:none!important}}
