
.crumbs{padding-top:8px;font-size:var(--fs-small);color:var(--ink-3)}
.crumbs ol{display:flex;flex-wrap:nowrap;align-items:center;gap:0 10px}
.crumbs li{display:inline-flex;align-items:center;gap:10px;min-width:0;flex:0 1 auto}
.crumbs li:last-child{flex:none}
.crumbs a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crumbs a{min-width:0}
.crumbs li+li::before{content:"/";color:var(--ink-3)}
.crumbs a{color:var(--ink-2);font-weight:500;min-height:44px;display:inline-flex;align-items:center}
@media (hover: hover) and (pointer: fine){.crumbs a:hover{color:var(--ink)}}
@media (max-width:767px){.crumbs .far{display:none}.crumbs .far+li:not(.far)::before{display:none}}
.bidhead{padding:16px 0 36px;display:grid;gap:14px}
.bidhead h1{font-size:clamp(28px,4.2vw,52px);line-height:1.06;font-weight:600;letter-spacing:-.02em;word-spacing:.06em;max-width:22ch;text-wrap:balance}
.bid-head .bid-topline{font-size:var(--fs-body);color:var(--ink-2);max-width:68ch;text-wrap:pretty}
.bid-head .bid-topline b{color:var(--ink);font-weight:600}
.layout{display:grid;gap:24px;padding-bottom:88px}
.layout>*{min-width:0}
@media (min-width:1024px){.layout{grid-template-columns:minmax(0,1fr) 336px;grid-template-rows:auto 1fr;column-gap:40px;row-gap:0}
  .c-dl{grid-column:1;grid-row:1}.c-rest{grid-column:1;grid-row:2;margin-top:28px}.aside{grid-column:2;grid-row:1/span 2}}
@media (min-width:1280px){.layout{grid-template-columns:minmax(0,8fr) minmax(0,4fr);column-gap:56px}}
.block{padding:32px 0;border-top:1px solid var(--rule)}
@media (min-width:1024px){.block{padding:40px 0}}
.c-rest .block:first-of-type{border-top:1.5px solid var(--ink)}
.block h2{font-size:24px;line-height:1.2;font-weight:600;letter-spacing:-.012em;word-spacing:.04em}
.block .intro{color:var(--ink-2);max-width:62ch;margin-top:8px;text-wrap:pretty}
.block h2+.facts,.block h2+.infos,.block h2+.cards,.block .intro+*{margin-top:22px}

/* the deadline sheet */
.dl{padding:24px;container-type:inline-size}
@media (max-width:359px){.dl{padding:20px 16px}}
.dl-top{display:grid;gap:16px}
.dl-due .v{font-size:clamp(28px,3.4vw,40px);font-weight:600;letter-spacing:-.018em;word-spacing:.06em;line-height:1.12;margin-top:8px}
.dl-due .v span{display:block}
.dl-due .z{font-size:var(--fs-small);color:var(--ink-2);margin-top:6px}
.dl-left .v{font-size:40px;font-weight:560;letter-spacing:-.03em;line-height:1}
.dl-left .u{font-size:var(--fs-small);color:var(--ink-2);margin-top:4px}
/* KEYDATES23 A-S6: the pre-bid meeting, one compact row above the deadline; a required one is the next event to act on */
.dl-pre{padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--rule)}
.dl-pre .v{font-size:var(--fs-lede);font-weight:600;line-height:1.3;margin-top:6px;text-wrap:pretty}
.dl-pre.is-req .label{display:flex;align-items:center;gap:8px;color:var(--ink)}
.dl-pre.is-req .label::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--signal);flex:none}
.dl-pre.is-opt .v,.dl-pre.is-past .v{font-weight:500;color:var(--ink-2)}
.zone{margin-top:22px;padding-top:14px;border-top:1px solid var(--rule)}
/* timeline: vertical by default (direction A's phone timeline), a measured rail when the sheet is wide enough */
.tl{position:relative;margin-top:24px}
.tl li{position:relative;padding:0 0 18px 30px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:"";position:absolute;left:0;top:5px;width:13px;height:13px;border-radius:50%;background:var(--sheet);border:1.5px solid var(--ink)}
.tl li::after{content:"";position:absolute;left:6px;top:22px;bottom:-1px;width:1.5px;background:var(--rule-2)}
.tl li:last-child::after{display:none}
.tl li.past::before{background:var(--ink)}
.tl li.past::after{background:var(--ink)}
.tl li.now::before{background:var(--ink);box-shadow:0 0 0 3px var(--sheet),0 0 0 4.5px var(--ink)}
.tl li.due::before{background:var(--signal);border-color:var(--signal)}
.tl .d{display:block;font-weight:600;line-height:1.35}
.tl .w{display:block;font-size:var(--fs-small);color:var(--ink-2);line-height:1.4}
.tl .t{display:block;font-size:var(--fs-small);color:var(--ink-2);line-height:1.4}
.tl li.now .w{color:var(--ink);font-weight:600}
@container (min-width:440px){
  .dl-top{grid-template-columns:1fr auto;align-items:end}
  .dl-left{text-align:right}
}
@container (min-width:600px){
  .tl.tl-rail{height:152px;margin:28px 6px 0}
  .tl.tl-rail::before{content:"";position:absolute;left:0;right:0;top:75.5px;height:1px;background:var(--ink)}
  .tl.tl-rail::after{content:"";position:absolute;left:0;top:74.5px;height:3px;width:var(--now);background:var(--ink);transform-origin:left;animation:grow .9s var(--ease) .2s both}
  .tl.tl-rail li{position:absolute;left:var(--p);padding:0;width:max-content;text-align:center;transform:translateX(-50%)}
  .tl.tl-rail li::after{display:none}
  .tl.tl-rail li::before{left:50%;margin-left:-6.5px;top:auto;z-index:1}
  .tl.tl-rail li.up{bottom:92px}.tl.tl-rail li.up::before{bottom:-22.5px}
  .tl.tl-rail li.dn{top:92px}.tl.tl-rail li.dn::before{top:-22.5px}
  .tl.tl-rail li:first-child{transform:none;text-align:left}.tl.tl-rail li:first-child::before{left:0;margin-left:0}
  .tl.tl-rail li:last-child{transform:translateX(-100%);text-align:right;padding-bottom:0}.tl.tl-rail li:last-child::before{left:auto;right:0}
}

/* the one action */
.act-panel{display:grid;gap:16px;padding:24px}
@media (max-width:359px){.act-panel{padding:20px 16px}}
.act-panel .price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:-4px}
.act-panel .price .v{font-size:40px;font-weight:560;letter-spacing:-.03em;line-height:1}
.act-panel .price .u{font-size:var(--fs-small);color:var(--ink-2)}
.act-panel ul{display:grid;gap:10px;font-size:var(--fs-small);line-height:1.45;color:var(--ink)}
.act-panel li{display:grid;grid-template-columns:16px 1fr;gap:10px;text-wrap:pretty}
.act-panel li svg{margin-top:3px;color:var(--ink)}
.cta .btn{width:100%}
.cta .when{display:none}
.clause{font-size:var(--fs-fine);line-height:1.5;color:var(--ink-2)}
.aside-wrap{display:grid;gap:14px;align-content:start}
@media (min-width:1024px){.aside-wrap{position:sticky;top:88px}}
@media (max-width:1023px){
  .cta{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1.5px solid var(--ink)}
  .cta .btn{width:auto;flex:1 1 auto;padding:0 16px;white-space:nowrap}
  .cta .when{display:block;flex:none;font-size:var(--fs-fine);line-height:1.3;color:var(--ink-2)}
  .cta .when b{display:block;font-size:var(--fs-body);font-weight:600;color:var(--ink);white-space:nowrap}
}
@media (max-width:389px){.cta .when{display:none}}
@media (max-width:359px){.cta{padding-inline:16px}}
@media (min-width:640px) and (max-width:1023px){.cta{padding-inline:48px}.cta .btn{flex:0 0 320px}}

/* on this page: a long page needs a way down it */
.jump{display:flex;flex-wrap:wrap;align-items:center;gap:0 20px;padding:6px 0 10px}
.jump .label{margin-right:4px}
.jump a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font-size:var(--fs-small);font-weight:600}
@media (hover: hover) and (pointer: fine){.jump a:hover{color:var(--link-hover)}}
[id$="-h"]{scroll-margin-top:88px}
/* what we know */
.facts{display:grid;gap:0}
.facts>div{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--rule)}
.facts>div:first-child{border-top:0;padding-top:0}
.facts dt{font-size:var(--fs-label);line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-stretch:88%;color:var(--ink-2);padding-top:5px}
.facts dd{display:grid;gap:6px;max-width:62ch}
.facts ul{display:grid;gap:4px}
.facts li{padding-left:16px;position:relative}
.facts li::before{content:"";position:absolute;left:2px;top:.78em;width:6px;height:1px;background:var(--ink-3)}
@media (min-width:768px){.facts>div{grid-template-columns:168px minmax(0,1fr);gap:24px;padding:18px 0}}

/* documents: one row per file (direction A's row): plain label, true file name, status and reason, one action */
.docs{border-top:1.5px solid var(--ink)}
.docs>li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:0 16px;padding:18px 0;border-bottom:1px solid var(--rule);align-items:start}
.docs .ic{color:var(--ink-2);margin-top:2px}
.docs .dn{font-weight:600;line-height:1.35;text-wrap:pretty}
.docs .df{font-size:var(--fs-fine);color:var(--ink-3);margin-top:2px;overflow-wrap:anywhere}
.docs .ds{font-size:var(--fs-small);color:var(--ink-2);margin-top:8px}
.docs .st{font-weight:600;color:var(--ink);white-space:nowrap}
.docs .st svg{display:inline-block;vertical-align:-2px;margin-right:5px}
.docs .st-copy{color:var(--ink)}
.docs .dr{font-size:var(--fs-small);color:var(--ink-2);margin-top:2px;max-width:52ch}
.docs .act{grid-column:2;margin-top:12px;justify-self:start}
.docs details{grid-column:2;margin-top:2px}
.docs summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;cursor:pointer;font-size:var(--fs-small);font-weight:600;color:var(--ink-2);list-style:none;user-select:none;-webkit-user-select:none}
.docs summary::-webkit-details-marker{display:none}
.docs summary::marker{content:""}
@media (hover: hover) and (pointer: fine){.docs summary:hover{color:var(--ink)}}
.docs summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.docs details[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.docs .dd{font-size:var(--fs-small);color:var(--ink-2);padding:2px 0 6px;max-width:56ch}
.docs .dd a{display:inline-flex;align-items:center;min-height:44px}
.docs .rm{grid-column:2;font-size:var(--fs-small)}
.docs .rm a{display:inline-flex;align-items:center;min-height:44px}
.fp{font-variant-numeric:tabular-nums;letter-spacing:.02em}
@media (min-width:768px){
  .docs>li{grid-template-columns:32px minmax(0,1fr) auto}
  .docs .act{grid-column:3;grid-row:1;margin-top:0;justify-self:end}
}

/* information blocks: no buttons of their own (A-1) */
.infos{display:grid;gap:0;border-top:1.5px solid var(--ink)}
.info{padding:14px 0 16px;display:grid;gap:4px;align-content:start;border-bottom:1px solid var(--rule)}
@media (min-width:768px){.infos{grid-template-columns:1fr 1fr;gap:12px;border-top:0}
  .info{padding:20px 22px 22px;gap:6px;background:var(--well);border:0;box-shadow:inset 0 0 0 1px var(--rule);border-radius:8px}}
.info h3{font-size:var(--fs-body);font-weight:600}
.info p{font-size:var(--fs-small);color:var(--ink-2);text-wrap:pretty}
.listing{margin-top:18px}

/* ---------- H2 BIDS additions (app) ---------- */
@media (max-width:1023px){:root:has(body.has-bar){--bar:78px}body.has-bar .foot{padding-bottom:calc(40px + 78px)}}
.flag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:var(--fs-label);font-weight:600;letter-spacing:.04em;vertical-align:2px;white-space:nowrap}
.bid-head .bid-topline{font-size:var(--fs-body);color:var(--ink-2);max-width:68ch;text-wrap:pretty;margin:0}
.bid-head .bid-one-time{font-size:var(--fs-small)}
.bid-head .bid-one-time strong{color:var(--ink);font-weight:600}
.bid-head .bid-one-time a{display:inline-flex;align-items:center;min-height:44px;margin-left:6px}
.bid-head .bid-quick{padding:0;margin:-6px 0 0}
.bid-head .bid-quick:empty{display:none}
.bid-head h1.is-long{font-size:clamp(26px,3.6vw,44px);max-width:28ch}
/* the bid's name is set in the display face like every other page's h1 (ATLAS-PICK rule 1; critic 3). A heading this small takes more weight (ASTRA-READ) */
.bid-head h1.f-display{font-weight:520;letter-spacing:-.012em;word-spacing:0;text-wrap:balance}
.bid-head h1 .h-pair{display:inline-block}
.package-passed{padding:14px 16px;background:var(--warn-tint);color:var(--ink);border-radius:8px;font-size:var(--fs-small);max-width:68ch}
.milestone-note{position:relative;margin:0 0 24px;padding:16px 56px 16px 18px;background:var(--well);border-radius:8px;font-size:var(--fs-small);color:var(--ink)}
.milestone-note-x{position:absolute;right:6px;top:6px}
.milestone-note-x button{width:44px;height:44px;border:0;background:none;color:var(--ink-2);font:inherit;font-size:22px;cursor:pointer;border-radius:50%}

/* deadline sheet: states */
.dl.is-ended .dl-due .v{color:var(--ink-2)}
.dl .zone .datum+.datum{margin-top:6px}
.dl-due .z{margin-top:6px}

/* the action panel: its states */
.act-panel .act-h{font-size:24px;line-height:1.2;font-weight:600;letter-spacing:-.012em;margin-top:-6px}
.act-panel .bid-lead{font-size:var(--fs-body);color:var(--ink);text-wrap:pretty}
.act-panel .bid-lead strong{font-weight:600}
.act-panel .package-status,.act-panel .small{font-size:var(--fs-small);line-height:1.5;color:var(--ink-2);text-wrap:pretty}
.act-panel p+p{margin-top:0}
.act-panel .is-amber{padding:10px 12px;background:var(--warn-tint);color:var(--ink);border-radius:6px}
.act-panel .is-red{padding-left:14px;box-shadow:inset 3px 0 0 var(--ink);color:var(--ink)}
.act-panel .text-link,.act-panel .package-status a{display:inline-flex;align-items:center;min-height:44px}
.act-panel.is-quiet{border-color:var(--rule)}
.act-panel .upgrade-note{font-size:var(--fs-body);color:var(--ink);text-wrap:pretty}
.cta form{display:contents}
.aside-wrap>.datum{padding:0 2px}
@media (max-width:1023px){.cta .btn{min-height:52px}}

/* key facts */
.facts dd .bid-due-tip,.facts dd .bid-due-note,.facts dd .bid-url-note{display:block;font-size:var(--fs-small);color:var(--ink-2)}
.facts dd .bid-source{color:var(--ink-2)}
.facts dd a{display:inline-flex;align-items:center;min-height:44px}
.bid-facts .facts dd{display:block}
.facts>div{grid-template-columns:minmax(0,1fr)}
.facts dd{min-width:0;overflow-wrap:anywhere}
@media (min-width:768px){.facts>div{grid-template-columns:168px minmax(0,1fr)}}
.facts dd .datum .bid-source{color:var(--ink-3)}
.block .intro strong{color:var(--ink);font-weight:600}
.bid-note-unconfirmed{margin-top:16px;max-width:62ch}

/* documents: notes from the agency's posting, and the one-document form */
.doc-note{display:grid;gap:6px;margin-top:22px;padding:16px 18px;background:var(--well);border-radius:8px;box-shadow:inset 3px 0 0 var(--ink);font-size:var(--fs-small);color:var(--ink);max-width:68ch}
.doc-note p+p{margin-top:0}
.doc-note blockquote{margin:0;color:var(--ink-2);text-wrap:pretty}
.doc-note a{display:inline-flex;align-items:center;min-height:44px}
.doc-note+.docs{margin-top:22px}
.docs .dn .flag{vertical-align:1px}
.bid-docs.is-one .docs{border-top:0}
.bid-docs.is-one .docs>li{padding:22px 22px 20px;background:var(--sheet);border:1px solid var(--rule);border-radius:8px}
@media (max-width:359px){.bid-docs.is-one .docs>li{padding:18px 14px 16px}}
.bid-docs.is-one .docs .dn{font-size:var(--fs-lede);overflow-wrap:anywhere}
.docs .dn{overflow-wrap:anywhere}

/* the package: what the $199 buys, laid out page by page */
.bid-pack .label{margin-bottom:10px}
.block h2.pack-h{font-size:clamp(34px,4.6vw,56px);line-height:1.04;font-weight:400;letter-spacing:-.012em;word-spacing:0;text-wrap:balance}
/* TASTE #14: the numbered .pack/.pk/.pg/.pt list is replaced by the document stack (.tb-stack, d/stack.css) */
.pack-who{margin-top:18px;max-width:64ch;color:var(--ink);text-wrap:pretty}

/* how it goes in */
.bid-go .package-how{color:var(--ink-2);max-width:68ch;text-wrap:pretty;font-size:var(--fs-small)}
.bid-go .package-how strong{color:var(--ink);font-size:var(--fs-body)}
.bid-go .package-how+.package-how{margin-top:6px}
.bid-go .ledger{margin-top:22px}

/* a subscriber's own sections */
.bid-section h2{display:flex;align-items:center;gap:12px}
.bid-step{display:inline-grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--ink);font-size:var(--fs-small);font-weight:600;font-variant-numeric:tabular-nums}
.bid-section h3{font-size:var(--fs-body);font-weight:600;margin-top:22px}
.bid-section>p,.bid-section>ul,.bid-section>form,.bid-section>details,.bid-section>dl,.bid-section>div{margin-top:14px;max-width:68ch}
.bid-section .upgrade-note,.bid-section .package-status{color:var(--ink-2)}
.bid-section .upgrade-note a,.bid-section .package-status a,.doc-pdf a{display:inline-flex;align-items:center;min-height:44px}
.doc-pdf a+a{margin-left:16px}
.bid-actions,.still-to-do{display:grid;gap:8px}
.bid-actions li,.still-to-do li{padding-left:16px;position:relative}
.bid-actions li::before,.still-to-do li::before{content:"";position:absolute;left:2px;top:.78em;width:6px;height:1px;background:var(--ink-3)}
.bid-doc{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.bid-doc+.bid-doc{border-top:0;margin-top:0}
.bid-doc summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;cursor:pointer;font-weight:600;color:var(--ink);list-style:none}
.bid-doc summary::-webkit-details-marker{display:none}
.bid-doc summary::after{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);flex:none;margin-right:4px}
.bid-doc[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.bid-doc pre{margin:0 0 16px;padding:16px;background:var(--well);border-radius:6px;font:inherit;font-size:var(--fs-small);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.draft-hold{padding:14px 16px;background:var(--well);border-radius:8px}

/* nearby bids: one row each, title then who and when */
.near{border-top:1.5px solid var(--ink)}
.near li{border-bottom:1px solid var(--rule)}
.near a{display:grid;gap:4px;padding:16px 0;color:var(--ink);font-weight:400}
@media (hover: hover) and (pointer: fine){.near a:hover .what{color:var(--link-hover)}}
.near .what{font-size:var(--fs-lede);line-height:1.3;font-weight:600;text-wrap:pretty;transition:color .12s linear}
.near .who{font-size:var(--fs-small);color:var(--ink-2);font-variant-numeric:tabular-nums}


/* ---------- the bid lists (app/templates/bid_list.html) ---------- */
.listhead{padding:16px 0 28px;display:grid;gap:14px}
.listhead h1{font-size:clamp(32px,4.6vw,60px);line-height:1.05;max-width:20ch;text-wrap:balance}
.listcount{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.listcount .v{font-size:clamp(40px,5vw,56px);font-weight:560;letter-spacing:-.03em;line-height:1}
.listcount .u{font-size:var(--fs-body);color:var(--ink-2)}
.listhead .intro{color:var(--ink-2);max-width:62ch;text-wrap:pretty}
.listlay{display:grid;gap:28px;padding-bottom:88px}
.listlay>*{min-width:0}
@media (min-width:1024px){.listlay{grid-template-columns:minmax(0,1fr) 336px;column-gap:40px;align-items:start}.l-side{position:sticky;top:88px}}
@media (min-width:1280px){.listlay{grid-template-columns:minmax(0,8fr) minmax(0,4fr);column-gap:56px}}
.filter{display:grid;gap:12px;padding:16px;background:var(--well);border-radius:8px;align-items:end}
.filter label{display:grid;gap:6px;min-width:0}
.filter select{width:100%;min-height:48px;padding:0 36px 0 12px;border:1px solid var(--control-edge);border-radius:6px;background:var(--sheet);color:var(--ink);font:inherit;font-size:var(--fs-small);appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;background-size:5px 5px;background-repeat:no-repeat;text-overflow:ellipsis}
.filter .btn{min-height:44px;font-size:var(--fs-small)}
@media (min-width:640px){.filter{display:flex;flex-wrap:wrap;align-items:end}.filter label{flex:1 1 180px}.filter .btn{flex:0 0 auto;min-width:96px}}
.due-group{padding-top:30px}
.due-group h2{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-block);line-height:1.25;font-weight:600;padding-bottom:12px;border-bottom:2px solid var(--c);margin-bottom:14px}
.due-group .gh{min-width:0;text-wrap:balance}
.due-group .gn{flex:none;font-size:var(--fs-small);font-weight:600;color:var(--ink-2)}
.notice-list{list-style:none;margin:0;padding:0}.notice-list li{padding:12px 0;border-bottom:1px solid var(--rule,currentColor)}
.notice-list p{margin:0 0 4px}.notice-list .nt{font-weight:600}.notice-list .na,.notice-list .nl{font-size:var(--fs-small);color:var(--ink-2)}
.listpage .card .t{line-height:1.3}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}
.none{padding:28px 0;color:var(--ink-2)}
.none a{display:inline-flex;align-items:center;min-height:44px}
.ob-cta{display:grid;gap:14px;margin-top:36px;padding:24px;justify-items:start;border:1px solid var(--c-3);border-radius:8px}
.l-main>.ob-cta:first-child{margin-top:28px;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:16px 20px}
@media (max-width:639px){.l-main>.ob-cta:first-child{grid-template-columns:minmax(0,1fr)}}
.ob-cta p{font-size:var(--fs-lede);font-weight:600;line-height:1.3;max-width:30ch;text-wrap:balance}
@media (max-width:479px){.ob-cta .btn{width:100%}}
.section-link{display:flex;flex-wrap:wrap;gap:0 24px;margin-top:14px}
.bytrade{padding:20px 20px 18px;background:var(--sheet);border:1px solid var(--rule);border-radius:8px}
.bytrade h2{font-size:var(--fs-block);line-height:1.25;font-weight:600}
.tbars{display:grid;margin-top:10px}
.tbars a{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline;padding:9px 0 11px;min-height:44px;color:var(--ink);font-weight:500;font-size:var(--fs-small);border-top:1px solid var(--rule)}
.tbars li:first-child a{border-top:0}
@media (hover: hover) and (pointer: fine){.tbars a:hover{color:var(--link-hover)}}
.tbars a[aria-current]{font-weight:650}
.tbars .tc{font-weight:600}
.tbars .tb{grid-column:1/-1;height:8px;border-radius:4px;width:max(var(--w),8px);background:var(--t,var(--c))}
.bytrade .datum{margin-top:14px}
.listhead h1.coming-h{font-size:clamp(34px,5vw,64px);max-width:16ch}
.prog-meta{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;font-size:var(--fs-small);color:var(--ink-2)}
.prog-words{margin:12px 0 0;padding:0 0 0 14px;box-shadow:inset 3px 0 0 var(--rule-2);font-size:var(--fs-small);line-height:1.5;color:var(--ink-2);max-width:68ch;text-wrap:pretty}
.prog-words a{display:inline-flex;align-items:center;min-height:44px;margin-left:4px}
.projs{margin-top:14px;border-top:1px solid var(--rule)}
.projs li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--rule)}
.projs .pn{font-weight:600;line-height:1.35;text-wrap:pretty;overflow-wrap:anywhere}
.projs .pa{font-weight:600;white-space:nowrap}
.projs .pc{grid-column:1/-1}
.projs .pnote{grid-column:1/-1;font-size:var(--fs-small);color:var(--ink-2);text-wrap:pretty}
.prog .datum{margin-top:12px}
.prog .datum a,.bytrade .datum a{display:inline}
.afacts{display:grid;margin-top:8px}
.afacts>div{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--rule)}
.afacts>div:first-child{border-top:0}
.afacts dt{font-size:var(--fs-label);line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-stretch:88%;color:var(--ink-2)}
.afacts dd{font-size:var(--fs-small);line-height:1.5;color:var(--ink);overflow-wrap:anywhere;text-wrap:pretty}
.afacts dd p+p{margin-top:6px;color:var(--ink-2)}
.agencyfacts .btn{margin-top:6px;white-space:normal;text-align:left}
.agencyfacts .datum a{display:inline}
.agencypage .listhead h1{max-width:24ch}
.agencypage .ledger tbody th{white-space:normal;font-weight:600}
.agencypage .ledger a{display:inline-flex;align-items:center;min-height:44px}
.agencypage .due-group .small{margin-top:14px}
.facts dd a.agency-link{font-weight:600}


/* ---------- colour (PLAN-FINAL A-34, rule 17): H0's tokens only. The page's state sits on <body> (is-ga / is-tn), so --c, --c-ink,
   --c-deep and the tints reach every block; pure brand red stays on the one .btn-primary. ---------- */
.bandtop{padding-bottom:4px}
.bandtop .crumbs,.bandtop .crumbs li+li::before{color:var(--ink-2)}
.bandtop .bid-head{padding-bottom:30px}
.bandtop .listhead{padding-bottom:24px}
.bandtop .filter{margin-bottom:28px;background:var(--sheet);box-shadow:inset 0 0 0 1px var(--rule)}
.bid-head .bid-one-time a{color:var(--ink);gap:6px}
.dl{box-shadow:inset 4px 0 0 var(--c)}
.dl.is-ended{box-shadow:none}
/* UI-FIXES U6: how this bid goes in, beside the price */
.act-panel .act-channel{display:grid;gap:4px;padding:12px 0;border-block:1px solid var(--rule)}
.act-panel .act-channel p:not(.label){font-size:var(--fs-small);line-height:1.5;color:var(--ink);text-wrap:pretty}
.act-panel .next .btn{width:100%}
.act-panel .act-h{text-wrap:balance}
.docs .ds .pill{margin-right:2px}
.listoffer{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;padding:16px 18px;max-width:780px;background:var(--sheet);border:1px solid var(--rule);border-radius:8px}
.listoffer .offer{flex:1 1 280px}
@media (max-width:479px){.listoffer .btn{width:100%}}
.ob-cta{background:var(--c-1)}
.listlay.is-single{grid-template-columns:minmax(0,1fr);max-width:880px}
.tbars a[aria-current] .tn{box-shadow:inset 0 -2px 0 var(--t,var(--c))}
.moretrades{border-top:1px solid var(--rule)}
.moretrades summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;font-size:var(--fs-small);font-weight:600;color:var(--ink);list-style:none}
.moretrades summary::-webkit-details-marker{display:none}
.moretrades summary::after{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-right:4px}
.moretrades[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.moretrades .tbars{margin-top:0}
.card .row .tag{white-space:normal}

.table-scroll{overflow-x:auto}
.money-table td.num{white-space:nowrap}
.bid-back{padding:8px 0 0}
/* LOGINDOCS 7 (templates/_who_line.html): who submits, icon + a few words */
.who-line{display:flex;gap:10px;align-items:flex-start;margin:0 0 10px;font-size:var(--fs-small,15px);line-height:1.45}
.who-line .who-ico{flex:none;margin-top:1px}

/* ---------- TASTE-BID 1004 (Astra's taste audit, ranks 6, 10, 14: the bid page) ---------- */
/* #6 one deadline/price/action summary: the agency once under the title, the calendar link on the deadline sheet, the clock as one
   labelled line whose conditions open beside the button, and the page's ONE disclosure style (.tb-more), used by #6, #10 and #14 */
.bid-head .agency-link{color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.dl-cal{margin-top:12px;font-size:var(--fs-small)}
.dl-cal a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:none}
.tb-more summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:var(--fs-small);font-weight:600;color:var(--ink);list-style:none;user-select:none;-webkit-user-select:none}
.tb-more summary::-webkit-details-marker{display:none}
.tb-more summary::marker{content:""}
.tb-more summary::after{content:"";flex:none;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.tb-more[open] summary::after{transform:translateY(2px) rotate(-135deg)}
@media (hover: hover) and (pointer: fine){.tb-more summary:hover{color:var(--ink-2)}}
.tb-more>:not(summary){margin-top:6px}
.bid-go .go-more{margin-top:16px}
/* #10 what this bid asks: four labelled statuses under the deadline sheet. Required = ink with a solid dot; Not confirmed = the warn
   tint with a question badge and its words; none found / not required = quiet ink-2; a plain fact (method, addenda count) = ink */
.tb-asks-wrap{margin-top:16px;padding:18px 24px 6px;border:1px solid var(--rule);border-radius:8px;background:var(--sheet)}
@media (max-width:359px){.tb-asks-wrap{padding:16px 16px 4px}}
.tb-asks-wrap h2.label{margin:0 0 6px}
.tb-asks{list-style:none;margin:0;padding:0;display:grid}
.tb-asks li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:2px;padding:12px 0;border-top:1px solid var(--rule)}
.tb-asks li:first-child{border-top:0}
.tb-ask-k{font-weight:600;color:var(--ink)}
.tb-ask-v{display:inline-flex;align-items:center;gap:6px;justify-self:end;padding:3px 10px;border-radius:999px;font-size:var(--fs-small);font-weight:600;line-height:1.35;white-space:nowrap;color:var(--ink);background:var(--well)}
.tb-ask-d{grid-column:1 / -1;font-size:var(--fs-small);color:var(--ink-2);line-height:1.45;overflow-wrap:anywhere}
.tb-asks .is-req .tb-ask-v{background:var(--ink);color:var(--paper)}
.tb-asks .tb-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.tb-asks .is-unk .tb-ask-v{background:var(--warn-tint);color:var(--ink)}
.tb-asks .is-quiet .tb-ask-v{background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--rule-2)}
.tb-q{flex:none}
/* A-42 #8 fit rows: the document and page under the status, the agency's sentence behind one tap (the bond card's pattern) */
.tb-ask-c{grid-column:1 / -1;font-size:var(--fs-small);color:var(--ink-2);line-height:1.45;overflow-wrap:anywhere}
.tb-ask-q{grid-column:1 / -1;font-size:var(--fs-small)}
.tb-ask-q q{display:block;margin-top:6px;color:var(--ink);line-height:1.5;overflow-wrap:anywhere}
.tb-ask-qv{grid-column:1 / -1;display:block;margin-top:2px;font-size:var(--fs-small);color:var(--ink);line-height:1.5;overflow-wrap:anywhere}
@media (min-width:1024px){.tb-asks-wrap{margin-top:20px}.tb-asks{grid-template-columns:1fr 1fr;column-gap:32px}
  .tb-asks li:nth-child(2){border-top:0}
  /* BID23 N5: a short row (Bonds) beside a tall one keeps its own height; stretched, its words floated in a gap */
  .tb-asks li{align-self:start}}
/* the bond card on this page: the uncertainty reads as a badge, the sentence behind one tap */
.bt-bond-a .bt-unk{display:inline-flex;padding:2px 10px;border-radius:999px;background:var(--warn-tint);color:var(--ink);font-style:normal;font-weight:600;font-size:var(--fs-small)}
.bt-words .bt-quote{margin-top:6px}
/* #14 the package as documents: its rules live in ONE place, d/stack.css (PRICE's copy; MERGE-TASTE), linked by every page that
   draws _deliverable_stack.html */
.bid-pack .pack-who{margin-top:18px}
/* A-42 #8: the Required prequalification line, above the $199 action (information, not an action: ink on the sheet) */
.act-fit{display:flex;align-items:flex-start;gap:8px;margin:0 0 14px;font-size:var(--fs-small);font-weight:600;line-height:1.45;color:var(--ink)}
.act-fit svg{flex:none;margin-top:2px}
/* BID23 S8 (A-1): one button per bid page. Watch, Fit, What changed, the documents and "I'm bidding this" are text links; a form's
   submit wears the same link look (no fill, no edge, no ring), with the 44px tap height .more already gives */
button.more{padding:0;border:0;border-radius:0;background:none;box-shadow:none;font:inherit;font-weight:600;color:var(--link);cursor:pointer;text-align:left}
@media (hover: hover) and (pointer: fine){button.more:hover{color:var(--link-hover)}}
