/* GFC Builds: More, Deals, Portfolio, Onboarding (11/1). Same tokens as app.css:
   navy chrome, 2px edges, 48px+ targets. The export pages print clean on white:
   on a phone, Share > Print > pinch out saves a PDF. */

.tb-body { padding-bottom: 12px; }
.tb-more { margin-top: 16px; }
.tb-more-row { min-height: 76px; }
.tb-more-row .row-ic { width: 48px; height: 48px; }

/* list rows (deals, packets, runs) */
.tb-group { margin-top: 20px; }
.tb-gh { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 2px 8px; }
.tb-gh h2 { margin: 0; font: 850 16px/1.25 var(--font); color: var(--ink); }
.tb-gh .num { font: 750 14.5px/1.2 var(--font); color: var(--ink-2); }
.tb-rows { display: grid; gap: 8px; margin-top: 14px; }
.tb-group .tb-rows { margin-top: 0; }
.tb-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%;
  min-height: 68px; padding: 11px 14px; border-radius: var(--r-lg); border: var(--bw) solid var(--line);
  background: var(--card); color: var(--ink); text-decoration: none;
}
.tb-row:active { border-color: var(--navy); }
.tb-row > .ic { flex: none; color: var(--ink-3); }
.tb-who { min-width: 0; flex: 1; }
.tb-who b { display: block; font: 800 16.5px/1.25 var(--font); }
.tb-who .s { display: block; margin-top: 3px; font: 600 14px/1.3 var(--font); color: var(--ink-2); }
.tb-right { display: grid; justify-items: end; gap: 6px; flex: none; }
.tb-right .s { font: 650 13px/1.2 var(--font); color: var(--ink-2); }
.tb-ret { font: 850 16.5px/1 var(--font); }
.tb-run .tb-bar { margin-top: 9px; }

/* verdict chips */
.tb-verdict { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: var(--r-pill); font: 900 13px/1 var(--font); letter-spacing: .06em; white-space: nowrap; }
.tb-verdict.big { min-height: 38px; padding: 0 14px; font-size: 16px; }
.tb-go { background: var(--green-tint); color: var(--green); box-shadow: inset 0 0 0 1.5px var(--green-edge); }
.tb-cond { background: var(--amber-tint); color: var(--amber-ink); box-shadow: inset 0 0 0 1.5px var(--amber-edge); }
.tb-nogo { background: var(--red-tint); color: var(--red); box-shadow: inset 0 0 0 1.5px var(--red-edge); }
.tb-needs { background: var(--sunk); color: var(--ink-2); box-shadow: inset 0 0 0 1.5px var(--hair); }

/* deal page */
.tb-vcard { margin-top: 16px; }
.tb-vtop { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tb-vret { font: 900 30px/1 var(--font); letter-spacing: -.02em; }
.tb-reason { margin: 12px 0 0; font: 650 15.5px/1.4 var(--font); color: var(--ink); }
.tb-max { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.tb-max > div { padding: 11px 12px; border-radius: var(--r-md); background: var(--sunk); border: var(--bw) solid var(--hair); }
.tb-max .lbl { margin-bottom: 6px; }
.tb-max b { display: block; font: 900 21px/1.1 var(--font); }
.tb-real { margin-top: 12px; }
.tb-export { margin-top: 12px; }
.tb-num { width: 100%; margin-top: 14px; border-collapse: collapse; background: var(--card); border: var(--bw) solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.tb-num th, .tb-num td { padding: 11px 14px; font: 650 15px/1.3 var(--font); text-align: left; border-top: var(--bw-hair) solid var(--hair); }
.tb-num tr:first-child th, .tb-num tr:first-child td { border-top: 0; }
.tb-num td { text-align: right; font-weight: 800; white-space: nowrap; }
.tb-num tr.sub th, .tb-num tr.sub td { background: var(--sunk); font-weight: 850; }
.tb-num tr.big th, .tb-num tr.big td { font: 900 17px/1.2 var(--font); }
.tb-formcard { margin-top: 14px; }
.tb-g { margin-top: 18px; }
.tb-more-costs { margin-top: 18px; border-top: var(--bw-hair) solid var(--hair); padding-top: 6px; }
.tb-more-costs summary { display: flex; align-items: center; gap: 8px; min-height: 48px; cursor: pointer; list-style: none; font: 850 15.5px/1.2 var(--font); color: var(--blue); }
.tb-more-costs summary::-webkit-details-marker { display: none; }
.tb-more-costs[open] summary .ic { transform: rotate(180deg); }
.tb-actions { display: grid; gap: 10px; margin-top: 16px; }
.brain-slot:empty { display: none; }
/* the brain-dump box: sticks above the tab bar while the list scrolls, like Rent's */
.brain-slot:not(:empty) { position: sticky; bottom: calc(var(--tabbar-h) + var(--net-h) + var(--safe-b) + 10px); z-index: 5; margin-top: 22px; }

/* portfolio: pick deals and jobs */
.tb-picks { display: grid; gap: 8px; }
.tb-pick {
  appearance: none; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 60px; padding: 9px 12px;
  border: var(--bw) solid var(--line); border-radius: var(--r-md); background: var(--card); color: var(--ink); font: inherit; text-align: left; cursor: pointer;
}
.tb-pick .sel { flex: none; width: 26px; height: 26px; padding: 3px; border-radius: 8px; border: var(--bw) solid var(--edge); color: transparent; stroke-width: 3; }
.tb-pick[aria-checked="true"] { border-color: var(--navy); background: var(--navy-tint); }
.tb-pick[aria-checked="true"] .sel { background: var(--navy); border-color: var(--navy); color: #fff; }
.tb-pick b { display: block; font: 800 15.5px/1.25 var(--font); }
.tb-pick .s { display: block; margin-top: 2px; font: 600 13.5px/1.3 var(--font); color: var(--ink-2); }

/* onboarding */
.tb-bar { height: 10px; border-radius: 6px; background: var(--track, var(--hair)); overflow: hidden; }
.tb-bar i { display: block; height: 100%; border-radius: 6px; background: var(--green); }
.tb-progress { margin-top: 16px; }
.tb-ptop { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.tb-ptop b { font: 900 28px/1 var(--font); }
.tb-ptop span { font: 650 15px/1.3 var(--font); color: var(--ink-2); }
.tb-steps { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.tb-step { display: flex; align-items: flex-start; gap: 12px; padding: 12px; border-radius: var(--r-lg); border: var(--bw) solid var(--line); background: var(--card); }
.tb-step.done { border-color: var(--green-edge); }
.tb-tick {
  appearance: none; flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px;
  border: var(--bw) solid var(--edge); background: var(--card); color: var(--ink-2); font: 850 16px/1 var(--font); cursor: pointer;
}
.tb-tick.on { background: var(--green); border-color: var(--green); color: #fff; }
.tb-tick .ic { width: 26px; height: 26px; stroke-width: 3; }
.tb-stxt { flex: 1; min-width: 0; padding-top: 2px; }
.tb-stxt b { display: block; font: 800 16px/1.25 var(--font); }
.tb-stxt .s { display: block; margin-top: 3px; font: 600 14px/1.35 var(--font); color: var(--ink-2); }
.tb-smeta { display: block; margin-top: 6px; font: 700 13.5px/1.35 var(--font); color: var(--green); }
.tb-snote { flex: none; background: var(--card); color: var(--ink); border: var(--bw) solid var(--line); }

/* ---------- printable pages (Export for Luis, portfolio packet) ---------- */
.tb-print-view { background: var(--page); min-height: 100vh; padding: calc(var(--safe-t) + 12px) 12px 40px; }
.tb-ptools { display: flex; flex-wrap: wrap; gap: 8px; max-width: 820px; margin: 0 auto 12px; }
.tb-ptools .btn { min-height: 48px; padding: 0 14px; font-size: 15.5px; }
.tb-ptools .btn-navy { margin-left: auto; }
.tb-doc { display: grid; gap: 14px; }
.tb-page {
  max-width: 820px; margin: 0 auto; width: 100%; padding: 26px 22px 22px; background: #fff; color: #0A1A31;
  border-radius: var(--r-lg); border: var(--bw) solid var(--line);
}
.tb-phead { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 2px solid #0B2241; }
.tb-phead .mark { width: 44px; height: 44px; border-radius: 11px; font-size: 15px; }
.tb-phead > div > b { display: block; font: 850 17px/1.2 var(--font); }
.tb-phead > div > span { display: block; margin-top: 2px; font: 650 13.5px/1.3 var(--font); color: #4A5568; }
.tb-ptitle { margin: 18px 0 4px; font: 900 26px/1.15 var(--font); letter-spacing: -.02em; }
h2.tb-ptitle { margin-top: 4px; }
.tb-pkind { margin: 0; font: 850 13px/1.2 var(--font); letter-spacing: .1em; text-transform: uppercase; color: #4A5568; }
.tb-psub { margin: 4px 0 0; font: 650 15px/1.4 var(--font); color: #33435A; }
.tb-pverdict { display: flex; align-items: flex-start; gap: 12px; margin-top: 18px; padding: 14px; border-radius: 12px; background: #F6F8FA; border: 1.5px solid #E0E5EC; }
.tb-pverdict b { display: block; font: 900 19px/1.2 var(--font); }
.tb-pverdict p { margin: 4px 0 0; font: 600 14.5px/1.4 var(--font); color: #33435A; }
.tb-pnum { margin-top: 16px; }
.tb-pmax { margin-top: 12px; }
.tb-pfoot { margin: 12px 0 0; font: 600 13.5px/1.45 var(--font); color: #4A5568; }
.tb-pnote { margin-top: 16px; }
.tb-pnote p { margin: 0; font: 600 15px/1.5 var(--font); white-space: pre-wrap; }
.tb-pcnote { margin: 14px 0 0; font: 600 15.5px/1.5 var(--font); white-space: pre-wrap; }
.tb-ptoc { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 0; border: 1.5px solid #E0E5EC; border-radius: 12px; overflow: hidden; }
.tb-ptoc li { display: flex; align-items: center; gap: 12px; padding: 11px 14px; font: 700 15px/1.3 var(--font); }
.tb-ptoc li + li { border-top: 1px solid #E0E5EC; }
.tb-ptoc .num { flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: #E6ECF5; color: #0B2241; font: 850 13px/1 var(--font); }
.tb-ptoc span:nth-child(2) { flex: 1; min-width: 0; }
.tb-ptoc em { font: 750 13px/1 var(--font); font-style: normal; color: #4A5568; }
.tb-ph3 { margin: 20px 0 0; font: 850 17px/1.25 var(--font); }
.tb-psign { margin-top: 22px; padding-top: 12px; border-top: 1px solid #E0E5EC; font: 650 13.5px/1.3 var(--font); color: #4A5568; }
.tb-page .tb-bar { margin-top: 14px; }
.tb-pslot { max-width: 820px; margin: 14px auto 0; }

@media print {
  @page { margin: 14mm; }
  html, body { background: #fff !important; }
  .no-print, .tabbar, .side, .toast-wrap { display: none !important; }
  .tb-print-view { padding: 0; background: #fff; min-height: 0; }
  .tb-doc { display: block; }
  .tb-page { max-width: none; border: 0; border-radius: 0; padding: 0; break-after: page; page-break-after: always; }
  .tb-page:last-child { break-after: auto; page-break-after: auto; }
  .tb-num, .tb-pverdict, .tb-max > div { break-inside: avoid; }
  .tb-verdict, .tb-phead .mark, .tb-pverdict, .tb-num tr.sub td, .tb-num tr.sub th, .tb-bar i { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
