/* Client portal: one layout on every page. Loaded only for a portal account, after engine.css and
   portal.css. The BD pages are written in the house style (bd.css: a page head with eyebrow, title and
   sub-title, then "paper" panels on the dark shell). The engine's own pages - the Radar, the bid desk,
   a tender workspace, onboarding - are built from glass cards; this file redraws those components as
   the same paper, page head and finance tables, so a client never sees two products.

   Most of it is variables: engine.css paints cards from --text, --mist, --glass and friends, and
   Bootstrap 5.3 paints controls from --bs-*, so redefining them inside a panel recolours everything
   in it. The rest are the places engine.css or a template hard-codes a light-on-dark colour. */

/* ---------- Page frame: the BD page's width and rhythm ---------- */
body.tpe > .container, body.tpe > .container-fluid, body.tpe > main.container {
  max-width: 1440px !important; margin-left: auto; margin-right: auto;
  padding: 22px max(.75rem, clamp(12px, 3vw, 32px)) 72px !important;   /* never less than a row's gutter (larger phone text) */
}

/* ---------- Page head: the hero becomes the BD head ---------- */
.tpe .tpe-hero { background: none; border: 0; box-shadow: none; backdrop-filter: none; border-radius: 0; padding: 6px 0 4px; margin-bottom: 18px !important; overflow: visible; }
.tpe .tpe-hero::after { display: none; }
.tpe .tpe-hero h1 { font-family: Fraunces, Georgia, serif; font-weight: 700; font-size: clamp(1.3rem, 1.15rem + .9vw, 1.8rem); line-height: 1.2; color: #fff; margin: 6px 0 0; max-width: 62ch; }
.tpe .tpe-hero h1 > i.bi { display: none; }
.tpe .tpe-hero .meta { color: var(--mist); font-size: .95rem; max-width: 80ch; margin-top: 6px; }
.tpe .tpe-hero .eyebrow, .tpe .tpe-hero .bd-eyebrow { display: block; background: none; border: 0; padding: 0; margin: 0; border-radius: 0;
  text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; font-weight: 600; color: var(--brand-accent, var(--gold-2)); }
.tpe .tpe-hero .eyebrow i { display: none; }
.tpe .tpe-hero .tiny, .tpe .tpe-hero .hint { color: var(--mist-2) !important; }

/* A section heading on the shell reads as the BD pages' exhibit label: the page head already names the page. */
.tpe section > .d-flex > h2.h3, .tpe section > .row > .col-12 > .d-flex > h2.h3 { font-family: Inter, sans-serif; font-size: .74rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em; color: var(--brand-accent, var(--gold-2)); }
.tpe section > .d-flex > h2.h3 i, .tpe section > .row > .col-12 > .d-flex > h2.h3 i { display: none; }

/* ---------- Paper: every panel ---------- */
.tpe .card, .tpe .tpe-card, .tpe .stat-tile, .tpe .tender-card, .tpe .dashboard-card, .tpe .verdict,
.tpe .modal-content, .tpe .busy-overlay .box, .tpe .file-item, .tpe .card .dropdown-menu, .tpe .alert {
  --text: #13213a; --mist: #4a5568; --mist-2: #6b7280; --glass: #f3f1ec; --glass-2: #eceae4; --glass-b: #e3e1dc;
  --tpe-field-err: #9b1c1c;
  --gold-2: var(--brand-primary, #0F2B4C); --gold: var(--brand-accent, #B08A3E);
  --bs-body-color: #13213a; --bs-body-bg: #fff; --bs-emphasis-color: #000; --bs-secondary-color: #6b7280; --bs-tertiary-color: #8a94a6;
  --bs-secondary-bg: #f3f1ec; --bs-tertiary-bg: #f6f5f1; --bs-border-color: #e3e1dc; --bs-heading-color: #13213a;
  --bs-link-color: var(--brand-primary, #0F2B4C); --bs-link-hover-color: var(--brand-highlight, #B5121B);
  --bs-link-color-rgb: 15, 43, 76; --bs-secondary-color-rgb: 107, 114, 128;
  color: #13213a;
}
.tpe .card, .tpe .tpe-card, .tpe .tender-card, .tpe .dashboard-card {
  background: #fbfaf7; border: 0; border-top: 3px solid var(--brand-primary, #0F2B4C); border-radius: 14px; box-shadow: 0 22px 60px rgba(0,0,0,.32);
}
.tpe .card:hover { border-color: var(--brand-primary, #0F2B4C); }
.tpe .card .card { box-shadow: none; border: 1px solid #e3e1dc; border-top: 3px solid var(--brand-accent, #B08A3E); background: #fff; }
.tpe .stat-tile { background: #fbfaf7; border: 0; border-top: 3px solid var(--brand-accent, #B08A3E); border-radius: 14px; box-shadow: 0 22px 60px rgba(0,0,0,.32); }
.tpe .stat-tile .n { color: #13213a; }
.tpe .stat-tile .l { color: #4a5568; text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; font-weight: 600; }
.tpe .card-header { color: #13213a; border-bottom: 1px solid #e3e1dc; font-family: Fraunces, Georgia, serif; font-size: 1.02rem; }
.tpe .card-header i.bi { color: var(--brand-accent, #B08A3E); }
.tpe .card-header .card-title, .tpe .card-title, .tpe .card h1, .tpe .card h2, .tpe .card h3, .tpe .card h4, .tpe .card h5, .tpe .card h6 { color: #13213a; }
.tpe .card-header.bg-primary, .tpe .card-header.bg-success, .tpe .card-header.bg-light, .tpe .card-header.bg-info, .tpe .card-header.bg-warning { color: #13213a !important; }
.tpe .card .text-white, .tpe .modal-content .text-white, .tpe .card-header.text-white { color: #13213a !important; }
.tpe .card-footer { border-top: 1px solid #e3e1dc; }
.tpe .card a:not(.btn), .tpe .modal-content a:not(.btn), .tpe .alert a { color: var(--brand-primary, #0F2B4C); font-weight: 600; }
.tpe .card a:not(.btn):hover, .tpe .modal-content a:not(.btn):hover { color: var(--brand-highlight, #B5121B); }
.tpe .card hr, .tpe .modal-content hr { border-color: #e3e1dc; }
.tpe .card .list-group-item { color: #13213a; border-color: #e3e1dc; }

/* ---------- Text utilities inside paper ---------- */
.tpe .card .text-success, .tpe .modal-content .text-success { color: #1b6b3c !important; }
.tpe .card .text-danger, .tpe .modal-content .text-danger { color: #9b1c1c !important; }
.tpe .card .text-warning, .tpe .card .text-info, .tpe .modal-content .text-warning { color: #8a5a00 !important; }
.tpe .card .text-primary, .tpe .modal-content .text-primary { color: var(--brand-primary, #0F2B4C) !important; }
.tpe .card .text-light { color: #4a5568 !important; }
.tpe .card .border-secondary-subtle { border-color: #e3e1dc !important; }

/* ---------- Forms inside paper ---------- */
.tpe .card .form-control, .tpe .card .form-select, .tpe .modal-content .form-control, .tpe .modal-content .form-select, .tpe .card .input-group-text {
  background-color: #fff; border: 1px solid #d9d6cf; color: #13213a; }
.tpe .card .form-control:focus, .tpe .card .form-select:focus, .tpe .modal-content .form-control:focus, .tpe .modal-content .form-select:focus {
  background-color: #fff; color: #13213a; border-color: var(--brand-primary, #0F2B4C); box-shadow: 0 0 0 .2rem rgba(15,43,76,.12); }
.tpe .card .form-control::placeholder, .tpe .modal-content .form-control::placeholder { color: #9aa1ad; }
.tpe .card .form-select, .tpe .modal-content .form-select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%234a5568' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
.tpe .card .form-select option, .tpe .modal-content .form-select option { background-color: #fff; color: #13213a; }
.tpe .card .form-label, .tpe .modal-content .form-label, .tpe .modal-content label { color: #4a5568; }
/* Controls follow the paper wherever it is, not only in cards: the bid page's readiness bar (.verdict) holds the
   autopilot's tick boxes, and the dark theme's filled box read as a grey square there. :is() of single classes keeps
   these rules as specific as the card-only ones they replace. */
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) .form-check-input { background-color: #fff; border-color: #8a94a6; }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) .form-check-input:checked { background-color: var(--brand-primary, #0F2B4C); border-color: var(--brand-primary, #0F2B4C); }
.tpe .card input[type=range]::-webkit-slider-runnable-track { background: linear-gradient(90deg, var(--brand-primary, #0F2B4C) 0%, var(--brand-primary, #0F2B4C) var(--fill, 50%), #dedad2 var(--fill, 50%)); }
.tpe .card input[type=range]::-moz-range-track { background: #dedad2; }
.tpe .card input[type=range]::-moz-range-progress { background: var(--brand-primary, #0F2B4C); }
.tpe .card input[type=range]::-webkit-slider-thumb { border-color: var(--brand-primary, #0F2B4C); }

/* ---------- Buttons inside paper: ink, line and plain ----------
   Every paper panel, the readiness bar included: there the engine's gold gradient starts at --gold-2, which paper
   redefines as ink, so "Run autopilot" and "Build submission pack" were near-black text on navy. */
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) :is(.btn-tpe, .btn-primary), .tpe .busy-overlay .btn-tpe {
  background: var(--brand-primary, #0F2B4C); color: #fff !important; box-shadow: none; }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) :is(.btn-tpe, .btn-primary):hover { filter: brightness(1.15); color: #fff !important; }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) :is(.btn-gold, .btn-warning) {
  background: var(--brand-accent, #B08A3E); color: #13213a !important; border: 1px solid var(--brand-accent, #B08A3E); box-shadow: none; }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) :is(.btn-gold, .btn-warning):hover { filter: brightness(1.08); color: #13213a !important; }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) :is(.btn-tpe-green, .btn-success) { background: #1f8a4c; color: #fff !important; border: 1px solid #1f8a4c; }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) :is(.btn-ghost, .btn-light, .btn-secondary) {
  background: transparent; border: 1px solid var(--brand-primary, #0F2B4C); color: var(--brand-primary, #0F2B4C) !important; }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) :is(.btn-ghost, .btn-light, .btn-secondary):hover {
  background: var(--brand-primary, #0F2B4C); color: #fff !important; }
/* a tick box inside a line button (the autopilot's "and build the pack") keeps its own white face on hover */
.tpe .verdict label.btn:hover .form-check-input:not(:checked) { border-color: #fff; }
.tpe .card [class*="btn-outline-"], .tpe .modal-content [class*="btn-outline-"] { border-color: #d0ccc3; color: #4a5568; background: #fff; }
.tpe .card [class*="btn-outline-"]:hover, .tpe .modal-content [class*="btn-outline-"]:hover { border-color: var(--brand-primary, #0F2B4C); color: var(--brand-primary, #0F2B4C); background: #f6f7fb; }
.tpe .card .btn-outline-danger:hover { border-color: #c0392b; color: #9b1c1c; background: #fde8e6; }
.tpe .card .btn-danger, .tpe .modal-content .btn-danger { background: #fde8e6; color: #9b1c1c !important; border: 1px solid #f5c2bd; }
/* "Verify bid" is a line button like its neighbours: a pale fill on paper read as disabled (twice) */
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) .btn-info {
  background: transparent; color: var(--brand-primary, #0F2B4C) !important; border: 1px solid var(--brand-primary, #0F2B4C); }
.tpe :is(.card, .modal-content, .verdict, .tpe-card, .tender-card, .file-item) .btn-info:hover { background: var(--brand-primary, #0F2B4C); color: #fff !important; }
.tpe .card .btn-link { color: var(--brand-primary, #0F2B4C); }
.tpe .card .btn-close, .tpe .modal-content .btn-close, .tpe .alert .btn-close { filter: none; }
/* The in-app dialog's icons on paper (_nav.html draws them for the navy engine). */
.tpe #tpeDialog .tpe-dlg-ico.danger { color: #9b1c1c; }
.tpe #tpeDialog .tpe-dlg-ico.info { color: var(--brand-primary, #0F2B4C); }
.tpe #tpeDialog .tpe-dlg-ico.success { color: #1b6b3c; }
.tpe #tpeDialog .tpe-dlg-ico.warning { color: #8a5a00; }

/* ---------- Chips, pills and badges: the BD chip colours ---------- */
.tpe .card .pill, .tpe .modal-content .pill { border: 1px solid transparent; border-radius: 999px; letter-spacing: .02em; }
.tpe .card .pill.ok, .tpe .card .pill.done, .tpe .card .pill.valid, .tpe .card .pill.eligible, .tpe .card .pill.pass,
.tpe .tpe-hero .pill.eligible, .tpe .tpe-hero .pill.valid { background: #e3f4ea; color: #1b6b3c; border-color: #bfe3cd; }
.tpe .card .pill.expiring, .tpe .card .pill.warning, .tpe .card .pill.pending, .tpe .card .pill.unknown, .tpe .card .pill.fix_first, .tpe .card .pill.review,
.tpe .tpe-hero .pill.fix_first { background: #fdf3dc; color: #8a5a00; border-color: #f2dca5; }
.tpe .card .pill.expired, .tpe .card .pill.missing, .tpe .card .pill.short, .tpe .card .pill.blocked, .tpe .card .pill.fail,
.tpe .tpe-hero .pill.blocked { background: #fde8e6; color: #9b1c1c; border-color: #f5c2bd; }
.tpe .card .pill.partner, .tpe .tpe-hero .pill.partner { background: #e7edf8; color: #1d3f7a; border-color: #c8d5ee; }
.tpe .card .pill.manual, .tpe .card .pill.not_applicable, .tpe .card .pill.info, .tpe .card .pill.at_award { background: #eef0f4; color: #4a5568; border-color: #dde1e8; }
.tpe .card .badge.bg-success { background: #e3f4ea !important; color: #1b6b3c; }
.tpe .card .badge.bg-warning { background: #fdf3dc !important; color: #8a5a00; }
.tpe .card .badge.bg-danger { background: #fde8e6 !important; color: #9b1c1c; }
.tpe .card .badge.bg-secondary, .tpe .card .badge.bg-info, .tpe .card .badge.bg-primary { background: #eef0f4 !important; color: #4a5568; }
.tpe .card .reason { background: #f1efe9; border-color: #e3e1dc; color: #4a5568; }
.tpe .card .reason.text-warning { color: #8a5a00 !important; background: #fdf3dc; border-color: #f2dca5; }
.tpe .card .reason.text-danger { color: #9b1c1c !important; background: #fde8e6; border-color: #f5c2bd; }
.tpe .card .badge-private { background: #fdf3dc; color: #8a5a00; border: 1px solid #f2dca5; }
.tpe .card .badge-source { background: #e3f4ea; color: #1b6b3c; border: 1px solid #bfe3cd; }
.tpe .card .badge-invite { background: #e7edf8; color: #1d3f7a; border: 1px solid #c8d5ee; }
.tpe .card .tpe-chip, .tpe .card .eyebrow { background: #f1efe9; border-color: #e3e1dc; color: #4a5568; }
.tpe .card .line-tag { background: #e7edf8; color: #1d3f7a; border-color: #c8d5ee; }
.tpe .card .prio-badge { background: #fdf3dc; color: #8a5a00; border-color: #f2dca5; }
.tpe .card .focus-chip { background: #fff; border-color: #d9d6cf; color: #4a5568; }
.tpe .card .focus-chip.on { background: #e7edf8; border-color: #c8d5ee; color: #1d3f7a; }
.tpe .card .focus-chip:hover { border-color: var(--brand-primary, #0F2B4C); color: #13213a; }

/* ---------- Tables inside paper: finance style ---------- */
.tpe .card .table { --bs-table-color: #13213a; --bs-table-bg: transparent; --bs-table-striped-bg: rgba(0,0,0,.02); --bs-table-hover-bg: rgba(0,0,0,.025);
  color: #13213a; font-variant-numeric: tabular-nums; font-size: .86rem; }
.tpe .card .table th { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: #4a5568; font-weight: 700; border-bottom: 2px solid #13213a; }
.tpe .card .table td { border-color: #e3e1dc; }

/* ---------- Engine components ---------- */
.tpe .opp { border-left: 4px solid #d8d4cb; }
.tpe .opp.hot { border-left-color: #1f8a4c; } .tpe .opp.warm { border-left-color: var(--brand-accent, #B08A3E); }
.tpe .score-ring { color: #fff; }
.tpe .claude-box { background: #fdf6e3; border-left-color: var(--brand-accent, #B08A3E); color: #13213a; }
.tpe .card .rec-BID { color: #1b6b3c; } .tpe .card .rec-CONSIDER { color: #8a5a00; } .tpe .card .rec-SKIP { color: #9b1c1c; }
.tpe .brief { background: #f6f3ea; border-left-color: var(--brand-accent, #B08A3E); color: #13213a; }
.tpe .verdict { background: #fbfaf7; border: 0; border-left: 6px solid #8a94a6; border-radius: 14px; box-shadow: 0 22px 60px rgba(0,0,0,.32); color: #13213a; }
.tpe .verdict.READY { background: #fbfaf7; border-left-color: #1f8a4c; } .tpe .verdict.READY .score { color: #1f8a4c; }
.tpe .verdict.AT-RISK, .tpe .verdict.AT_RISK { background: #fbfaf7; border-left-color: #b7791f; } .tpe .verdict.AT-RISK .score, .tpe .verdict.AT_RISK .score { color: #b7791f; }
.tpe .verdict.NON-RESPONSIVE { background: #fbfaf7; border-left-color: #c0392b; } .tpe .verdict.NON-RESPONSIVE .score { color: #c0392b; }
.tpe .verdict.INCOMPLETE { background: #fbfaf7; border-left-color: var(--brand-primary, #0F2B4C); } .tpe .verdict.INCOMPLETE .score { color: var(--brand-primary, #0F2B4C); }
.tpe .verdict.CLOSED { background: #fbfaf7; } .tpe .verdict.CLOSED .score { color: #8a94a6; }
.tpe .verdict .btn-light { background: transparent; border: 1px solid var(--brand-primary, #0F2B4C); color: var(--brand-primary, #0F2B4C) !important; }
.tpe .check-row .lbl, .tpe .fact b { color: #13213a; }
.tpe .check-row .msg, .tpe .fact span, .tpe .trap, .tpe .audit-row { color: #4a5568; }
.tpe .check-row .act, .tpe #verifyReport .act, .tpe .trap .pg { color: var(--brand-primary, #0F2B4C); }
.tpe .check-row.mandatory .lbl::after { color: #c0392b; }
.tpe .doc-folder h6 { color: var(--brand-accent, #B08A3E); }
.tpe .doc-file a { color: #13213a; } .tpe .doc-file a:hover { color: var(--brand-primary, #0F2B4C); }
.tpe .doc-file .filled, .tpe .doc-file .signed { color: #1b6b3c; }
.tpe .countdown { color: #13213a; } .tpe .countdown.danger { color: #c0392b; }
.tpe .tpe-hero .countdown { color: #fff; }
.tpe .drop, .tpe .upload-zone { background: #fff; border: 2px dashed #cfcac0; color: #4a5568; }
.tpe .drop:hover, .tpe .upload-zone:hover, .tpe .drop.dragover, .tpe .upload-zone.dragover { border-color: var(--brand-primary, #0F2B4C); background: #f6f7fb; }
.tpe .upload-zone .display-1 { color: var(--brand-primary, #0F2B4C) !important; }
.tpe .file-item { background: #fff; border: 1px solid #e3e1dc !important; }
.tpe .progress-step { background: #fff; color: #13213a; }
.tpe .progress-step.success { background: #e3f4ea; } .tpe .progress-step.error { background: #fde8e6; } .tpe .progress-step.warning, .tpe .progress-step.info { background: #fdf3dc; }
.tpe .card .progress, .tpe .progress { background: #ebe8e1; }
.tpe .card .nav-pills .nav-link, .tpe .card .nav-tabs .nav-link { color: #4a5568; }
.tpe .card .nav-pills .nav-link.active { background: var(--brand-primary, #0F2B4C); color: #fff; border-color: var(--brand-primary, #0F2B4C); }
.tpe .doc-dropzone.drag-over { border-color: var(--brand-primary, #0F2B4C); background: #f6f7fb; }
.tpe .doc-row-expired { background: #fdf1ef; }
.tpe .esign-block, .tpe .esign-pad-wrap { background: #f6f5f1; border-color: #e3e1dc; }
.tpe .pb-table tr.pb-heading td { background: #f1efe9; }
.tpe .pb-table tr.pb-total td { border-top-color: #d8d3c4; }
.tpe .pb-table .pb-why { border-left-color: #d8d3c4; }
@media (min-width: 768px) { .tpe .pb-table .pb-amt, .tpe .pb-table .pb-rt { background: #fbfaf7; } .tpe .pb-table .pb-rt { box-shadow: -8px 0 8px -8px rgba(19,33,58,.25); } }
.tpe .pb-settings input, .tpe .pb-settings select { background-color: #fff; }

/* ---------- Modals, overlays, alerts, dropdowns inside panels ---------- */
.tpe .modal-content { background: #fbfaf7; border: 0; border-top: 3px solid var(--brand-primary, #0F2B4C); border-radius: 14px; --sheet-bg: #fbfaf7; }
.tpe .modal-header, .tpe .modal-footer { border-color: #e3e1dc; }
.tpe .modal-title { font-family: Fraunces, Georgia, serif; color: #13213a; }
.tpe .busy-overlay .box { background: #fbfaf7; border: 0; border-top: 3px solid var(--brand-primary, #0F2B4C); color: #13213a; }
.tpe .busy-overlay .spinner-border { color: var(--brand-primary, #0F2B4C) !important; }
.tpe .card .dropdown-menu { background: #fff; border: 1px solid #e3e1dc; box-shadow: 0 16px 40px rgba(0,0,0,.18); }
.tpe .card .dropdown-item { color: #13213a; } .tpe .card .dropdown-item:hover { background: #f3f1ec; color: #13213a; }
.tpe .alert { background: #fbfaf7; border: 0; border-left: 4px solid var(--brand-primary, #0F2B4C); color: #13213a; box-shadow: 0 12px 30px rgba(0,0,0,.25); }
.tpe .alert-success { background: #f1faf4; border-left-color: #1f8a4c; color: #13213a; }
.tpe .alert-warning { background: #fdf8ec; border-left-color: #b7791f; color: #13213a; }
.tpe .alert-danger { background: #fdf2f1; border-left-color: #c0392b; color: #13213a; }
.tpe .alert-info { background: #f3f6fb; border-left-color: var(--brand-primary, #0F2B4C); color: #13213a; }

@media print {
  .tpe .card, .tpe .tpe-card, .tpe .stat-tile { box-shadow: none; break-inside: avoid; }
  .tpe .tpe-hero h1, .tpe .tpe-hero .eyebrow, .tpe .tpe-hero .bd-eyebrow { color: #000 !important; }
}

/* the form viewer's tools on paper */
.tpe .modal-content .blank-status, .tpe .modal-content .tool-hint { color: #4a5568; }
.tpe .modal-content .blank-status.ok { color: #1b6b3c; }
.tpe .modal-content .blank-status.err { color: #9b1c1c; }
.tpe .modal-content .blank-tools .btn-group .btn.active { background: var(--brand-primary, #0F2B4C); border-color: var(--brand-primary, #0F2B4C); color: #fff; }

/* The portal footer (_footer.html): the pages set up once, the account's links and the one-line note. Quiet type
   on the page's own background, never a panel. */
.tpe-foot { border-top: 1px solid rgba(255,255,255,.12); margin-top: 12px; }
.tpe-foot-in { max-width: 1440px; margin: 0 auto; padding: 16px clamp(12px, 3vw, 32px) 28px; display: flex; flex-wrap: wrap;
               gap: 6px 28px; align-items: center; justify-content: space-between; }
.tpe-foot-links { display: flex; flex-wrap: wrap; gap: 2px 20px; }
.tpe-foot-links a { color: var(--mist); font-size: .84rem; text-decoration: none; padding: 8px 0; display: inline-flex; align-items: center; gap: 6px; }
.tpe-foot-links a:hover, .tpe-foot-links a[aria-current] { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.tpe-foot-links kbd { font-size: .68rem; padding: 1px 5px; background: rgba(255,255,255,.08); color: var(--mist); border: 1px solid rgba(255,255,255,.18); border-radius: 4px; }
.tpe-foot-note { color: var(--mist-2); font-size: .76rem; }
@media (max-width: 991.98px) { .tpe-foot-links kbd { display: none; } }
@media print { .tpe-foot { display: none; } }
/* Bid research on paper: the dark theme's light status colours are too faint on paper (AA on #fff) */
.tpe :is(.card, .modal-content, .tpe-card) { --br-good: #1e7a4f; --br-bad: #b3261e; --br-warn: #8a5a00; --br-web: #1f5fae; }

/* Bid page "More" tools and folds on paper (2026-11-01) */
.tpe .more-tools-menu { background: #fff; border: 1px solid #e3e1dc; box-shadow: 0 16px 40px rgba(0,0,0,.18); }
.tpe .more-tools-menu label, .tpe details.fold-group > summary { color: var(--text); }
