/* Quantum Bid Board Live — full-screen 16:9 signage */
body.tv-body{background:#03172a!important;overflow:hidden}
.tv-live-v30{height:100dvh;width:100%;background:#03172a;color:#f4f9fe;display:flex;flex-direction:column;font-family:Inter,Segoe UI,Arial,sans-serif;overflow:hidden}
.tv-live-header{height:14vh;min-height:92px;display:flex;align-items:center;gap:2%;padding:1.1vh 1.7vw;background:linear-gradient(115deg,#012e55,#011527 55%,#402b29 85%,#03192a);border-bottom:1px solid #1b405c}
.tv-live-brand{display:flex;align-items:center;width:24%;gap:10px;min-width:0;border-right:1px solid #6085a1;padding-right:1.5vw}
.tv-live-brand img{width:5.8vw;height:6.8vw;max-height:10vh;object-fit:contain}
.tv-live-brand-label{font-family:Georgia,serif;letter-spacing:.07em;font-size:clamp(12px,1.95vw,36px);line-height:1.04;white-space:nowrap}
.tv-live-brand-label small{font-size:.48em;letter-spacing:.19em}
.tv-live-title{flex:1;min-width:0}
.tv-live-title h1{font-size:clamp(30px,4.3vw,85px);font-weight:900;letter-spacing:.05em;line-height:1;margin:0;white-space:nowrap}
.tv-live-title em{color:#d9a955;font-style:normal}
.tv-live-title p{font-size:clamp(10px,1vw,21px);letter-spacing:.31em;white-space:nowrap;margin:8px 0 0;color:#bfd3e0}
.tv-live-time{width:13%;display:flex;flex-direction:column;align-items:end;gap:5px;text-align:right}
.tv-live-time .tv-exit{font-size:clamp(9px,.65vw,13px);border:1px solid #375069;border-radius:6px;color:#bdcbd7;background:#062840;padding:4px 7px;cursor:pointer}
#tv-clock{display:flex;flex-direction:column;gap:4px}
#tv-clock small{font-size:clamp(10px,1vw,18px);font-weight:800}
#tv-clock strong{font-size:clamp(21px,2.4vw,44px)}
.tv-live-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1vw;padding:1vh 1.1vw 1.2vh}
.tv-live-kpi{height:10vh;min-height:65px;border-radius:7px;display:flex;align-items:center;gap:1vw;padding:0 1.4vw;border:1px solid #126cac;background:linear-gradient(110deg,#03447a,#01315b)}
.tv-kpi-gold{border-color:#aa7d05;background:linear-gradient(110deg,#493806,#322d1b)}
.tv-kpi-red{border-color:#df1738;background:linear-gradient(110deg,#510018,#350014)}
.tv-kpi-icon{font-size:clamp(26px,3vw,54px);color:#6ab6f1;border-right:1px solid #60809d;padding-right:1vw;line-height:1}
.tv-kpi-gold .tv-kpi-icon{color:#ffb719}
.tv-kpi-red .tv-kpi-icon{color:#ff234c}
.tv-live-kpi>strong{font-size:clamp(32px,4vw,78px);line-height:1;font-weight:900}
.tv-live-kpi>div{display:flex;flex-direction:column;gap:4px;border-left:1px solid #a1b7c455;padding-left:.9vw}
.tv-live-kpi b{font-size:clamp(12px,1.35vw,28px)}
.tv-live-kpi small{font-size:clamp(10px,1vw,20px);color:#d2dce6}
.tv-live-board{flex:1;min-height:0;overflow:hidden}
.tv-live-table{width:100%;height:auto;table-layout:fixed;border-collapse:collapse;align-self:start}
.tv-live-table thead{height:4.4vh}
.tv-live-table th{background:#031b2e;color:#a7c8df;text-align:left;font-size:clamp(10px,1vw,20px);letter-spacing:.045em;padding:.4vh 1vw}
.tv-live-table tbody tr{background:#041c2e;height:6.3vh;max-height:7vh;box-shadow:inset .65vw 0 #55768e}
.tv-live-table tbody tr:nth-child(even){background:#061f32}
.tv-live-table tbody tr.tv-priority-high{background:linear-gradient(90deg,#5a1021,#281221 45%,#041b2e);box-shadow:inset .75vw 0 #ff203d}
.tv-live-table tbody tr.tv-priority-normal{background:linear-gradient(90deg,#0b4939 0%,#0a302f 42%,#041b2e 100%);box-shadow:inset .75vw 0 #20a879}
.tv-live-table tbody tr.tv-priority-low{box-shadow:inset .65vw 0 #698ba0}
.tv-live-table td{border-top:1px solid #345063;padding:.3vh .95vw;font-size:clamp(11px,1.1vw,21px);overflow:hidden;text-overflow:ellipsis}
.tv-live-table .tv-live-file{font-size:clamp(17px,1.95vw,38px);font-weight:900;letter-spacing:.025em;white-space:nowrap;padding-left:2.7vw}
.tv-live-project{font-size:clamp(12px,1.18vw,24px);display:block}
.tv-live-table td small{font-size:clamp(10px,.95vw,18px);color:#c3cfda;display:block;margin-top:.3vh}
.tv-live-trades{display:flex;gap:.65vw;flex-wrap:wrap}
.tv-live-trade{font-size:clamp(10px,.85vw,17px);padding:.4vh .55vw;font-weight:800;border-radius:5px;white-space:nowrap}
.tv-live-mechanical{background:#8d441b;color:#fff}
.tv-live-plumbing{background:#145b95;color:#fff}
.tv-live-electrical{background:#a47611;color:#fff}
.tv-live-date strong{font-size:clamp(11px,1.18vw,23px);color:#c0def0;display:block;white-space:nowrap}
.tv-urgent .tv-live-date strong{color:#ff415a}
.tv-priority-pill{display:inline-block;padding:.5vh .55vw;border-radius:6px;font-weight:900;font-size:clamp(10px,.96vw,19px);white-space:nowrap}
.tv-pill-high{background:#b00e29;color:#fff}
.tv-pill-normal{background:#007358;color:#fff}
.tv-pill-low{background:#35546c;color:#e9f0f5}
.tv-live-person{display:flex;align-items:center;gap:.55vw;margin:.25vh 0;white-space:nowrap;font-size:clamp(10px,.96vw,19px)}
.tv-live-person span{display:grid;place-items:center;flex:none;width:clamp(21px,2vw,38px);height:clamp(21px,2vw,38px);border-radius:50%;background:#92c9ee;color:#08213a;font-weight:900;font-size:clamp(9px,.82vw,16px)}
.tv-unassigned{color:#fbbe86}
.tv-live-footer{height:4vh;min-height:25px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #254359;padding:0 1vw;font-size:clamp(10px,.85vw,17px);color:#ccd6e0}
@media(max-aspect-ratio:4/3){.tv-live-header{gap:1%}.tv-live-brand-label{display:none}.tv-live-brand{width:11%}.tv-live-title p{letter-spacing:.1em}.tv-live-time{width:16%}.tv-live-kpi{padding:0 8px;gap:8px}.tv-live-table .tv-live-file{font-size:15px}.tv-live-table td{padding:2px 5px}.tv-live-footer{font-size:10px}}

/* Keep bid listings directly under column headers even when only one or two bids exist. */
.tv-live-board{display:block;align-content:start;}
.tv-live-table tbody{height:auto;}
.tv-live-table tbody td{vertical-align:middle;}

/* Restored construction skyline fades toward the title, with a clean white logo panel. */
.tv-live-header{background:linear-gradient(90deg,#002643 0%,#061f36 40%,rgba(4,25,43,.82) 65%,rgba(4,20,35,.53) 84%,#071b30 100%),url('https://images.unsplash.com/photo-1756412067076-426753d84787?auto=format&fit=crop&w=1600&q=70') center 58%/cover no-repeat;}
.tv-live-brand img{background:#fff;border-radius:3px;padding:5px;box-sizing:border-box;width:clamp(75px,7vw,145px);height:clamp(72px,7vw,135px);max-height:11vh;object-fit:contain;}
.tv-live-brand-label{color:#fff;text-shadow:0 1px 5px #00121c;}

/* Transparent brand artwork + separately typeset company name; no boxed logo tile. */
.tv-live-header{background:linear-gradient(90deg,#edf4f8 0%,#c5dce9 13%,#315b79 27%,rgba(5,29,49,.95) 46%,rgba(5,29,49,.7) 72%,#071b30 100%),url('https://images.unsplash.com/photo-1756412067076-426753d84787?auto=format&fit=crop&w=1600&q=70') center 58%/cover no-repeat;}
.tv-live-brand{width:28%;gap:clamp(9px,1vw,22px);border-right:1px solid rgba(200,224,239,.55)}
.tv-live-brand img{background:transparent;border:0;border-radius:0;padding:0;width:clamp(88px,7vw,150px);height:clamp(75px,8vw,140px);max-height:11vh;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,15,30,.15));}
.tv-live-brand-label{font-family:Georgia,"Times New Roman",serif;font-size:clamp(17px,2vw,40px);font-weight:600;line-height:1.05;letter-spacing:.025em;text-transform:none;color:#092c4a;text-shadow:0 1px 1px rgba(255,255,255,.4)}
.tv-live-brand-label small{font-size:.57em;letter-spacing:.09em;font-weight:600}
.tv-live-title h1{font-size:clamp(30px,3.9vw,79px)}
@media(max-aspect-ratio:4/3){.tv-live-brand{width:18%}.tv-live-brand-label{display:none}}

/* Header refinement: solid, unfaded emblem; finish the light fade before BID BOARD. */
.tv-live-header{
  background:
    linear-gradient(90deg,
      #eaf3f8 0%,
      #d8e9f3 17%,
      #b8d3e4 23%,
      #143b58 31%,
      #06253e 35%,
      rgba(5,29,49,.91) 51%,
      rgba(5,29,49,.65) 80%,
      #071b30 100%),
    url('https://images.unsplash.com/photo-1756412067076-426753d84787?auto=format&fit=crop&w=1600&q=70')
      center 58%/cover no-repeat;
}
.tv-live-brand img{
  opacity:1;
  filter:none;
  mix-blend-mode:normal;
  flex-shrink:0;
}
.tv-live-brand-label{
  opacity:1;
  color:#092c4a;
  text-shadow:0 1px 2px rgba(255,255,255,.7);
}
.tv-live-title{
  position:relative;
  z-index:1;
}

/* TV header v42: predictable dark title field and legible full company wordmark. */
.tv-live-header{
  gap:1.25%;
  background:
    linear-gradient(90deg,
      #e9f3f8 0%,
      #dbeaf3 23%,
      #bed8e8 28%,
      #345b75 30.5%,
      #092c46 32%,
      rgba(4,28,47,.99) 34%,
      rgba(4,28,47,.96) 66%,
      rgba(4,28,47,.78) 84%,
      #071b30 100%),
    url('https://images.unsplash.com/photo-1756412067076-426753d84787?auto=format&fit=crop&w=1600&q=70') center 58%/cover no-repeat;
}
.tv-live-brand{
  flex:0 0 29%;
  width:29%;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding-right:1%;
  gap:clamp(8px,1vw,18px);
}
.tv-live-brand img{width:clamp(66px,7vw,132px);height:clamp(65px,8vw,136px);max-height:10vh;}
.tv-live-brand-label{
  display:block!important;
  flex:1 1 auto;
  min-width:0;
  font-size:clamp(15px,1.8vw,34px);
  line-height:1.1;
  color:#0b3654;
  white-space:normal;
  opacity:1;
}
.tv-live-brand-label small{display:block;font-size:.58em;white-space:nowrap;letter-spacing:.06em;}
.tv-live-title{flex:1 1 auto;min-width:0;}
.tv-live-title h1{font-size:clamp(28px,3.45vw,74px);white-space:nowrap;}
.tv-live-title p{font-size:clamp(9px,.82vw,17px);letter-spacing:.18em;color:#e7f0f7;white-space:nowrap;}
.tv-live-time{flex:0 0 12%;width:12%;}
@media(max-aspect-ratio:4/3){
  .tv-live-brand{flex-basis:29%;width:29%;}
  .tv-live-brand-label{display:block!important;font-size:clamp(12px,1.65vw,24px);}
  .tv-live-brand img{width:clamp(52px,6vw,96px);}
  .tv-live-title h1{font-size:clamp(25px,3vw,55px);}
  .tv-live-title p{letter-spacing:.06em;}
}

/* v43: two protected contrast zones, never place light wash behind title text. */
.tv-live-header{
 background:
 linear-gradient(90deg,#e8f2f9 0%,#d9eaf4 26%,#a6c7dc 28%,#06243c 30%,#06243c 64%,rgba(6,36,60,.93) 84%,#071b30 100%),
 url('https://images.unsplash.com/photo-1756412067076-426753d84787?auto=format&fit=crop&w=1600&q=70') center 58%/cover no-repeat;
}
.tv-live-brand{flex:0 0 28%;width:28%;border-right:none;gap:clamp(8px,1.15vw,21px);}
.tv-live-brand img{width:clamp(66px,6.5vw,122px);height:clamp(57px,7vw,114px);max-height:10vh;object-fit:contain;background:none;filter:none;opacity:1}
.tv-live-brand-label{display:block!important;opacity:1;color:#082b47;font-size:clamp(20px,1.9vw,37px);font-weight:700;line-height:1.07;white-space:nowrap;text-shadow:none}
.tv-live-brand-label small{display:block!important;font-size:.59em;letter-spacing:.065em;color:#082b47;white-space:nowrap}
.tv-live-title{flex:1;min-width:0;background:#06243c;border-radius:3px;padding:0 .55vw;align-self:center}
.tv-live-title h1{color:#ffffff!important;text-shadow:none!important;opacity:1!important;font-size:clamp(30px,3.5vw,76px);}
.tv-live-title p{color:#ecf5fd!important;text-shadow:none!important;opacity:1!important;letter-spacing:.17em;}
@media(max-aspect-ratio:4/3){.tv-live-brand{flex-basis:28%;width:28%}.tv-live-brand-label{font-size:clamp(12px,1.6vw,23px)}.tv-live-title h1{font-size:clamp(23px,3vw,51px)}}

/* v44 cinematic banner: complete design rebuild based on approved render.
   The header art is assembled in CSS with real, accessible text and live clock. */
.tv-live-header{
  position:relative;
  isolation:isolate;
  height:17vh;
  min-height:116px;
  padding:1.1vh 1.35vw;
  gap:1.2%;
  background:#052b4d;
  overflow:hidden;
}
.tv-live-header::before{
  content:"";
  position:absolute;
  z-index:-2;
  inset:0;
  background:
    linear-gradient(90deg,
      #d4edfb 0%,
      #afdbf2 14%,
      #5a9cc8 27%,
      #185784 37%,
      #063560 50%,
      #042443 70%,
      rgba(3,30,54,.62) 83%,
      rgba(3,30,54,.2) 100%);
}
.tv-live-header::after{
  content:"";
  position:absolute;
  z-index:-3;
  inset:0;
  background:url('https://images.unsplash.com/photo-1756412067076-426753d84787?auto=format&fit=crop&w=2200&q=85') right 52% / cover no-repeat;
}
.tv-live-brand{
  display:flex;
  flex:0 0 25%;
  width:25%;
  height:100%;
  border-right:1px solid rgba(225,243,253,.82);
  gap:1vw;
  align-items:center;
  justify-content:center;
  padding:0 1.2vw 0 0;
  min-width:0;
}
.tv-live-brand img{
  width:clamp(100px,8vw,165px);
  height:clamp(94px,10vh,160px);
  max-height:14vh;
  flex:none;
  filter:none;
  opacity:1;
  object-fit:contain;
  background:none;
  padding:0;
}
.tv-live-brand-label{
  display:flex!important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  white-space:nowrap;
  gap:.22em;
  color:#062d55;
  font-family:Georgia,"Times New Roman",serif;
  text-shadow:none;
  line-height:1;
  font-size:clamp(17px,1.92vw,39px);
}
.tv-live-brand-label strong{
  font-size:1em;
  font-weight:800;
  letter-spacing:.005em;
}
.tv-live-brand-label small{
  display:block!important;
  color:#0c3760;
  font-size:.55em;
  letter-spacing:.16em;
  font-weight:650;
}
.tv-live-title{
  flex:1 1 auto;
  min-width:0;
  padding:0 .6vw;
  border:0;
  background:none;
  align-self:center;
  z-index:1;
}
.tv-live-title h1{
  margin:0;
  padding:0;
  font-size:clamp(30px,4.1vw,83px);
  line-height:1.04;
  letter-spacing:.035em;
  color:white!important;
  text-shadow:0 2px 7px rgba(0,11,27,.4)!important;
}
.tv-live-title h1 em{
  color:#e9b354;
}
.tv-live-title p{
  margin:.7vh 0 0;
  color:#eaf3f9!important;
  opacity:1!important;
  font-size:clamp(9px,.92vw,20px);
  letter-spacing:.14em;
  white-space:nowrap;
  text-shadow:0 1px 6px rgba(0,15,28,.5)!important;
}
.tv-live-time{
  flex:0 0 12%;
  width:12%;
  background:linear-gradient(90deg,rgba(2,25,45,.2),rgba(2,23,42,.86));
  border-radius:8px;
  padding:.3vw;
}
@media(max-width:1250px){
  .tv-live-brand{flex-basis:24%;width:24%;gap:.35vw;}
  .tv-live-brand img{width:clamp(65px,6vw,100px);}
  .tv-live-brand-label{font-size:clamp(13px,1.4vw,25px);}
  .tv-live-title h1{font-size:clamp(27px,3.5vw,56px);}
  .tv-live-title p{letter-spacing:.07em;}
}
@media(max-aspect-ratio:4/3){
  .tv-live-brand{flex-basis:23%;width:23%;}
  .tv-live-brand-label{font-size:clamp(11px,1.5vw,19px);}
  .tv-live-brand img{width:clamp(55px,5.4vw,82px);}
  .tv-live-title h1{font-size:clamp(24px,3.1vw,48px);}
}

/* v45: ONE complete approved artwork, with NO legacy banner layers. */
.tv-live-header.tv-live-rendered{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  height:14vh;
  min-height:105px;
  padding:0 1vw;
  background:#03243f url("./bid-board-live-cinematic-banner.webp") left center / 100% 100% no-repeat !important;
  isolation:isolate;
}
.tv-live-header.tv-live-rendered::before,
.tv-live-header.tv-live-rendered::after{content:none!important;display:none!important;background:none!important;}
.tv-live-header.tv-live-rendered .tv-live-hero-copy{
  display:none!important;
}
.tv-live-header.tv-live-rendered .tv-live-time{
  position:relative;
  z-index:2;
  flex:0 0 14%;
  width:14%;
  min-width:170px;
  padding:8px 10px;
  background:linear-gradient(90deg,rgba(1,22,41,.15),rgba(1,22,41,.93) 45%);
  border-radius:7px;
}
.tv-live-table .tv-live-file{
  font-size:clamp(15px,1.48vw,29px);
  letter-spacing:0;
  padding-left:1.9vw;
}
.tv-live-table .tv-live-project{
  font-size:clamp(13px,1.2vw,24px);
  line-height:1.16;
  white-space:normal;
  overflow-wrap:break-word;
}
.tv-live-table td:nth-child(2){white-space:normal;overflow-wrap:break-word;}
@media(max-width:900px){
  .tv-live-table .tv-live-file{font-size:clamp(12px,1.5vw,18px);padding-left:1.3vw;}
  .tv-live-header.tv-live-rendered .tv-live-time{min-width:120px;flex-basis:15%;width:15%;}
}

/* v46: the baked-in raster starts with a clipped Q. Fully cover that area
   with a separate, uncut brand mark, keeping the approved banner behind it. */
.tv-live-header.tv-live-rendered .tv-brand-safe{
 position:absolute;
 left:0;
 top:0;
 bottom:0;
 width:19.2%;
 box-sizing:border-box;
 display:flex;
 align-items:center;
 justify-content:center;
 flex-direction:column;
 z-index:3;
 padding:.45vh 1.8vw .4vh 1.1vw;
 background:linear-gradient(90deg,#e6f3fa 0%,#dfedf6 76%,rgba(214,234,246,.98) 91%,rgba(209,232,244,0) 100%);
 overflow:visible;
}
.tv-brand-safe img{
 display:block;
 width:clamp(52px,4.7vw,104px);
 height:clamp(48px,5.5vh,95px);
 max-height:47%;
 object-fit:contain;
 opacity:1;
 filter:none;
}
.tv-brand-wordmark{
 display:flex;
 flex-direction:column;
 align-items:center;
 color:#083361;
 line-height:1;
 white-space:nowrap;
 text-shadow:none;
 margin-top:.2vh;
 font-family:Georgia,'Times New Roman',serif;
}
.tv-brand-wordmark strong{font-size:clamp(19px,2.05vw,41px);font-weight:800;letter-spacing:.045em}
.tv-brand-wordmark small{font-size:clamp(8px,.78vw,17px);letter-spacing:.21em;margin-top:.3vh}
@media(max-width:900px){
 .tv-live-header.tv-live-rendered .tv-brand-safe{width:19.3%;padding-left:3px}
 .tv-brand-wordmark strong{font-size:clamp(12px,1.75vw,21px)}
 .tv-brand-wordmark small{font-size:clamp(6px,.72vw,10px)}
 .tv-brand-safe img{width:clamp(35px,4vw,70px)}
}

/* New complete TV header image; old asset remains as fallback until upload. */
.tv-live-header.tv-live-rendered{background-image:url("./bid-board-live-cinematic-banner.webp")!important;background-size:100% 100%!important;background-position:center!important}
.tv-live-header.tv-live-rendered.tv-new-header-ready{background-image:url("./bid-board-tv-banner-ready.webp")!important}
.tv-live-header.tv-live-rendered.tv-new-header-ready .tv-brand-safe{display:none!important}
