/* css/home.css: the homepage's own styles, one file, in the order they
   used to sit inline in index1.html. Loaded after components/styles.css
   and components/sponsor-ad.css. */

/* ===== block 1 of 23 ===== */
/* 2026-10-01 r7-design: type scale for the shared sheet, this page only (164 rules) */
@media (max-width: 640px){.agsb-txt{font-size:.824rem}}
@media (prefers-reduced-motion: reduce){}
.agsb-txt{font-size:1rem}
.agsb-input{font-size:1rem}
.agsb-btn{font-size:.824rem}
.agsb-x{font-size:1rem}
.agsb-warn{font-size:.824rem}
.agsb-ok{font-size:.824rem}
.skip{font-size:.824rem}
.nav-btn{font-size:.824rem}
.nav-panel a{font-size:.824rem}
.nav-panel a.all{font-size:.824rem}
.theme-btn{font-size:.824rem}
@media (max-width: 960px){}
.draw-close{font-size:1rem}
.draw-lbl{font-size:.824rem}
.draw-item{font-size:.824rem}
.ticker-live span{font-size:.765rem}
/* 2026-10-08 Sig: the ticker status takes half the width it did. Two short
   lines ("Delayed" over "15 min", "Settle" over "Oct 7"), smaller type. */
.ticker-live{padding:0 .5rem;gap:.3rem}
.ticker-live #ticker-age{font-size:.6rem;line-height:1.1;letter-spacing:.04em;white-space:nowrap;display:inline-block}
.t-label{font-size:.824rem}
.t-price{font-size:.824rem}
.t-chg{font-size:.824rem}
.t-sep{font-size:.765rem}
.teaser-badge{font-size:.765rem}
.teaser-headline{font-size:1rem}
.teaser-action{font-size:1rem}
.teaser-preview{font-size:1rem}
.daily-eyebrow{font-size:.824rem}
.daily-date{font-size:.824rem}
.daily-greeting{font-size:1.294rem}
.daily-lead{font-size:1rem}
#daily-tmyk-wrap .daily-sec-icon{font-size:1.294rem}
.daily-sec-label{font-size:.765rem}
.daily-sec-text{font-size:1rem}
.s-card-label{font-size:.765rem}
.one-num{font-size:3.059rem}
.one-num-unit{font-size:.824rem}
.one-num-ctx{font-size:.824rem}
.watch-time{font-size:.824rem}
.watch-desc{font-size:1rem}
.btn-gold{font-size:.824rem}
.btn-ghost{font-size:.824rem}
.btn-dismiss{font-size:.824rem}
.sec-title{font-size:.824rem}
.sec-all{font-size:.824rem}
.pc-section-lbl{font-size:.765rem}
@media (hover: none){}
.pc-name{font-size:.824rem}
.pc-name-icon{font-size:1rem}
.pc-contract{font-size:.765rem}
.pc-price{font-size:2.353rem}
.pc-chg-val{font-size:1rem}
.pc-prev{font-size:.824rem}
.pc-range-labels{font-size:.765rem}
.pc-sm .pc-price{font-size:1.882rem}
.wx-icon{font-size:3.059rem}
.wx-temp{font-size:3.059rem}
.wx-desc{font-size:1rem}
.wx-loc{font-size:.824rem}
.wstat-lbl{font-size:.824rem}
.wstat-val{font-size:1.294rem}
.wx-today-icon{font-size:1.294rem}
.wx-today-text{font-size:.824rem}
.spray-badge{font-size:.824rem}
.tool-btn{font-size:.824rem}
.tool-widget-icon{font-size:1.294rem}
.tool-widget-status{font-size:.824rem}
.tool-widget-detail{font-size:.824rem}
.tool-widget-badge{font-size:.765rem}
.tool-widget-score{font-size:1.882rem}
.tool-widget-rec{font-size:.824rem}
.tool-widget-arr{font-size:.824rem}
@media (max-width: 520px){.tool-widget-icon{font-size:1.294rem}.tool-widget-status{font-size:.824rem}.tool-widget-detail{font-size:.765rem}.tool-widget-score{font-size:1.294rem}.tool-widget-badge{font-size:.765rem}.tool-widget-rec{font-size:.824rem}}
@media (max-width: 380px){.tool-widget-icon{font-size:1rem}.tool-widget-status{font-size:.824rem}.tool-widget-detail{font-size:.765rem}.tool-widget-score{font-size:1.294rem}.tool-widget-badge{font-size:.765rem}.tool-widget-rec{font-size:.765rem}.tool-widget-arr{font-size:.824rem}}
.wx-summary-title{font-size:1rem}
.wx-day-name{font-size:.765rem}
.wx-day-icon{font-size:1.294rem}
.wx-day-hi{font-size:.824rem}
.wx-day-lo{font-size:.824rem}
.wx-day-pop{font-size:.824rem}
.drought-fallback a{font-size:.824rem}
.cal-today-badge{font-size:.765rem}
.cal-date{font-size:.824rem}
.cal-name{font-size:.824rem}
.cal-time{font-size:.824rem}
@media (max-width: 520px){.cal-today-badge{font-size:.765rem}.cal-date{font-size:.765rem}.cal-name{font-size:.824rem}.cal-time{font-size:.765rem}}
.signup-icon{font-size:2.353rem}
.signup-eyebrow{font-size:.824rem}
.signup-sub{font-size:1rem}
.signup-tab{font-size:.824rem}
.signup-input{font-size:.824rem}
.signup-submit{font-size:.824rem}
.signup-disc{font-size:.824rem}
.sms-note{font-size:1rem}
.signup--compact .scu-eyebrow{font-size:.765rem}
.signup--compact .scu-text{font-size:.824rem}
.signup--compact .scu-input{font-size:.824rem}
.signup--compact .scu-btn{font-size:.824rem}
.signup--compact .scu-dismiss{font-size:.824rem}
.signup--slim .scs-text{font-size:.824rem}
.signup--slim a{font-size:.824rem}
.net-text strong{font-size:.824rem}
.net-text em{font-size:.765rem}
.net-arr{font-size:.824rem}
.noscript-banner{font-size:.824rem}
.ws-toast{font-size:.824rem}
.breadcrumb{font-size:.824rem}
@media (prefers-reduced-motion: reduce){}
@media (hover: none){}
.panel-head h1, .panel-head h2{font-size:.824rem}
.panel label{font-size:.824rem}
.panel input[type="number"], .panel input[type="text"], .panel select{font-size:.824rem}
.result-label{font-size:.824rem}
.result-value{font-size:1rem}
.result-value.highlight{font-size:1.294rem}
@media (max-width: 1100px){}
@media (max-width: 768px){}
@media (max-width: 640px){}
@media (max-width: 520px){.signup-input{font-size:.824rem}.signup-submit{font-size:.824rem}.signup-sub{font-size:.824rem}.signup-tab{font-size:.824rem}.sms-note{font-size:1rem}.t-price{font-size:.824rem}.t-label{font-size:.765rem}.daily-greeting{font-size:1rem}.daily-eyebrow{font-size:.765rem}.daily-date{font-size:.824rem}.daily-lead{font-size:1rem}.daily-sec-icon{font-size:.824rem}.daily-sec-label{font-size:.765rem}.daily-sec-text{font-size:.824rem}.teaser-action{font-size:1rem}.teaser-badge{font-size:.765rem}.teaser-preview{font-size:1rem}.s-card-label{font-size:.765rem}.one-num{font-size:2.353rem}.one-num-unit{font-size:.824rem}.one-num-ctx{font-size:.824rem}.watch-time{font-size:.824rem}.watch-desc{font-size:1rem}.pc-name{font-size:.824rem}.pc-contract{font-size:.765rem}.pc-price{font-size:1.294rem}.pc-sm .pc-price{font-size:1.294rem}.pc-chg-val{font-size:.824rem}.pc-prev{font-size:.765rem}.pc-range-labels{font-size:.765rem}.pc-section-lbl{font-size:.765rem}.pc-name{font-size:.824rem}.pc-name-icon{font-size:.824rem}.pc-contract{font-size:.765rem}.pc-sm .pc-price{font-size:1.294rem}.pc-prev{font-size:.765rem}.pc-chg-val{font-size:.824rem}}
@media (max-width: 380px){.pc-price{font-size:1.294rem}.pc-sm .pc-price{font-size:1rem}.pc-name{font-size:.765rem}.pc-contract{font-size:.765rem}.daily-headline{font-size:1.294rem}.one-num{font-size:1.882rem}.teaser-preview{font-size:1rem}.pc-sm .pc-price{font-size:1rem}.pc-chg-val{font-size:.824rem}.pc-prev{font-size:.765rem}}
.surprise-icon{font-size:1.294rem}
.surprise-text{font-size:.824rem}
.daily-mood{font-size:.765rem}
.daily-sec--surprise::after{font-size:.824rem}
.daily-sec--heat::before{font-size:.765rem}
.daily-sec-bottomline{font-size:.824rem}
.daily-sec-conviction{font-size:.765rem}
.daily-sec-action{font-size:.824rem}
@media (max-width: 520px){.surprise-icon{font-size:1rem}.surprise-text{font-size:.824rem}.daily-mood{font-size:.765rem}.daily-sec-bottomline{font-size:.824rem}.daily-sec-conviction{font-size:.765rem}.daily-sec-action{font-size:.824rem}.daily-sec--surprise::after{font-size:.824rem}.daily-sec--heat::before{font-size:.765rem}}
@media (max-width: 380px){.surprise-text{font-size:.824rem}.daily-sec-bottomline{font-size:.765rem}}
@media (prefers-reduced-motion: reduce){}
.nav-grp-lbl{font-size:.765rem}
.draw-grp-lbl{font-size:.765rem}
.skip-link{font-size:.824rem}
@media (max-width: 960px){}
@media (prefers-reduced-motion: reduce){}
.ag-sponsor-ribbon{font-size:.824rem}
.ag-sponsor-ribbon .ag-sponsor-tag{font-size:.765rem}
.vp-ver select{font-size:1rem}
.vp-big{font-size:3.059rem}
.vp-word{font-size:1.294rem}
.vp-sent{font-size:1rem}
.vp-geo{font-size:.824rem}
.vp-maplab{font-size:.824rem}
.vp-tst{font-size:1rem}
.vp-tge{font-size:1rem}
.vp-leg{font-size:.824rem}
.author-avatar{font-size:1rem}
.author-name{font-size:.824rem}
.author-role{font-size:.824rem}
.author-meta{font-size:.824rem}
.ph-info h1{font-size:1.294rem}
.ph-exch{font-size:.824rem}
.ph-val{font-size:2.353rem}
.ph-unit{font-size:.824rem}
.ph-chg{font-size:.824rem}
@media (prefers-reduced-motion: reduce){}

/* ===== block 2 of 23 ===== */
/* ── THE FOLD ─────────────────────────────────────────────────────────────
   Measured 2026-09-12 at 390px: 5,899 px of briefing sat above <main>, on a
   20,674 px page. A first-time visitor scrolled roughly seven screens before
   reaching the radar, the board or a cash bid. The briefing is the reason to
   come back, so it stays first -- but as the part you can read standing up:
   masthead, headline, the takeaway, the sponsor, yesterday's call. Everything
   longer is one tap away, and the whole thing still lives at /daily.
   Remove the class on #daily-hero to go back to the full wall.
   ──────────────────────────────────────────────────────────────────────── */
  #daily-hero.is-brief .daily-sections,
  #daily-hero.is-brief .daily-sec,
  #daily-hero.is-brief .daily-byline,
  #daily-hero.is-brief .hero-sidebar,
  #daily-hero.is-brief .daily-otp,
  #daily-hero.is-brief .daily-share{display:none}
  /* #daily-tmyk-wrap carries display:flex!important, so it needs naming. */
  #daily-hero.is-brief #daily-tmyk-wrap{display:none!important}
  #daily-hero.is-brief .daily-grid{grid-template-columns:1fr}
  #daily-hero:not(.is-brief) .daily-more{display:none}
  .daily-more{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:.9rem 0 .2rem}
  .daily-more button{font:inherit;font-size:1rem;font-weight:700;cursor:pointer;
    background:rgba(var(--gold-rgb),.09);color:var(--gold);
    border:1px solid rgba(var(--gold-rgb),.42);border-radius:8px;padding:.6rem 1rem;
    transition:background .15s ease,border-color .15s ease}
  .daily-more button:hover{background:rgba(var(--gold-rgb),.16);border-color:var(--gold)}
  .daily-more button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
  .daily-more .daily-more-alt{font-size:.824rem;color:var(--text-muted);text-decoration:none;
    border-bottom:1px solid var(--border-2);padding-bottom:1px}
  .daily-more .daily-more-alt:hover{color:var(--gold)}
  .daily-pre-dismissed .daily-full{grid-template-rows:0fr!important;opacity:0!important;pointer-events:none!important}
  .daily-pre-dismissed .daily-hero-inner{overflow:hidden!important}
  .daily-pre-dismissed .daily-teaser{display:flex!important}
  .daily-pre-dismissed .daily-dismiss-row{display:flex;flex-direction:column;gap:.7rem;padding:.85rem 0 1.1rem}
  .daily-dismiss-note{font-size:1rem;line-height:1.5;color:var(--text-muted)}
  .daily-dismiss-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
  .signup--hidden{display:none!important;}
  
  
  /* v3.5 DAILY BRIEFING FIXES — ensure quote/number/TMYK visible on mobile */
  .hero-sidebar > .s-card { display: block !important; }
  #daily-quote-text, #daily-quote-attr { display: block !important; }
  #daily-tmyk-wrap { display: flex !important; }
  /* 2026-08-16: the three rules above are unscoped !important, so they also beat
     the briefing script's own `style.display='none'`. On a day with no quote or
     no TMYK block the card could never be hidden and rendered an empty shell —
     a quote card containing nothing but an em dash. The script now toggles the
     `hidden` attribute instead, and these give it enough weight to win. */
  .hero-sidebar > .s-card[hidden],
  #daily-tmyk-wrap[hidden] { display: none !important; }
  .main{overflow-x:clip;padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right));}
  .spray-windows{margin-top:.4rem;margin-bottom:.15rem;display:none;}
  .spray-windows.loaded{display:block;}
  .spray-windows-lbl{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem;}
  .spray-days{display:flex;gap:.35rem;align-items:stretch;}
  .spray-day{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.22rem;padding:.55rem .25rem;border-radius:6px;border:1px solid;text-align:center;}
  .spray-day.go{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.25);}
  .spray-day.caution{background:rgba(var(--gold-rgb),.08);border-color:rgba(var(--gold-rgb),.25);}
  .spray-day.stop{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.20);}
  .spray-day-name{max-width:100%;font-family:'JetBrains Mono',monospace;font-size:clamp(.6rem,2.7vw,.68rem);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .spray-day-icon{font-size:.824rem;line-height:1;display:flex;align-items:center;justify-content:center;}
  .spray-day-icon .ic{width:1em;height:1em;}
  .spray-day-status{font-family:'JetBrains Mono',monospace;font-size:clamp(.62rem,2.7vw,.7rem);font-weight:700;letter-spacing:.03em;text-transform:uppercase;}
  .spray-day.go .spray-day-status{color:var(--green);}
  .spray-day.caution .spray-day-status{color:var(--gold);}
  .spray-day.stop .spray-day-status{color:#ef4444;}
  .spray-day-reason{max-width:100%;font-size:clamp(.6rem,2.6vw,.68rem);color:var(--text-muted);font-family:'JetBrains Mono',monospace;margin-top:.05rem;line-height:1.35;overflow-wrap:anywhere;}
  .wx-data-extra{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap;}
  #wx-today-summary{margin-top:1rem;}
  /* Watch list: stack description directly under the date/time, full width */
  #daily-watch-list .watch-item{flex-direction:column;gap:.25rem;align-items:stretch;}
  .wx-extra-stat{flex:1;min-width:140px;background:var(--surface2);border-radius:8px;padding:.65rem .8rem;display:none;}
  .wx-extra-stat.loaded{display:block;}
  .wx-extra-lbl{font-size:.824rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.25rem;}
  .wx-extra-val{font-family:'JetBrains Mono',monospace;font-size:1.294rem;font-weight:700;color:var(--text);line-height:1.1;}
  .wx-extra-ctx{font-size:.824rem;color:var(--text-dim);margin-top:.2rem;}
  /* Historical chart expandable (GDU + Precip) */
  .wx-extra-stat.with-chart{cursor:pointer;transition:background .15s;}
  .wx-extra-stat.with-chart:hover{background:var(--surface3,#2a2a2a);}
  .wx-extra-stat .wx-chart-toggle{font-size:.824rem;color:var(--gold);margin-top:.35rem;letter-spacing:.05em;display:flex;align-items:center;gap:.25rem;font-weight:700;min-height:24px;}
  .wx-chart-panel{display:none;padding:.8rem .7rem .65rem;background:var(--surface2);border-radius:8px;margin-top:.5rem;overflow-x:hidden;overflow-x:clip;}
  .wx-chart-panel.expanded{display:block;}
  .wx-chart-title{font-size:.824rem;color:var(--text-dim);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;}
  .wx-chart-legend{display:flex;gap:1rem;font-size:.824rem;color:var(--text-dim);margin-top:.45rem;flex-wrap:wrap;}
  .wx-chart-legend-sw{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;margin-right:.3rem;vertical-align:middle;}
  .wx-chart-takeaway{font-size:.824rem;line-height:1.55;color:var(--text-dim);margin-top:.55rem;padding-top:.55rem;border-top:1px solid rgba(255,255,255,.07);}
  .wx-chart-takeaway strong{color:var(--text);font-family:'JetBrains Mono',monospace;font-weight:700;}
  /* 5-day forecast strip (class names kept as wx-7day-* for backward-compat) */
  .wx-7day-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:.2rem 0;}
  .wx-7day-cell{background:var(--surface2);border-radius:8px;padding:.65rem .25rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.28rem;min-width:0;}
  .wx-7day-name{font-size:clamp(.66rem,2.6vw,.74rem);font-weight:700;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
  .wx-7day-icon{font-size:clamp(1.35rem,5.5vw,1.7rem);line-height:1;margin:.15rem 0;}
  /* temps locked to one line; size scales with width; hi prominent / lo smaller+muted for at-a-glance read */
  .wx-7day-temps{font-family:var(--font-display);font-weight:700;color:var(--text);white-space:nowrap;font-size:clamp(.82rem,4.1vw,1.12rem);letter-spacing:-.01em;display:flex;justify-content:center;align-items:baseline;gap:.26rem;line-height:1.1;}
  .wx-7day-temps .hi{color:var(--text);}
  .wx-7day-temps .lo{color:var(--text-muted);font-size:.82em;}
  .wx-7day-meta{font-size:clamp(.6rem,2.7vw,.72rem);font-family:'JetBrains Mono',monospace;color:var(--text-dim);margin-top:.15rem;line-height:1.5;}
  .wx-7day-meta .rain-hi{color:#5ba3e0;}
  .wx-7day-meta .wind-hi{color:var(--gold);}
  /* Hourly collapsible */
  .wx-hourly-toggle{background:none;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);font-size:.824rem;font-weight:600;cursor:pointer;padding:.5rem .85rem;border-radius:6px;margin-top:.55rem;width:100%;display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:44px;transition:background .15s,border-color .15s;}
  .wx-hourly-toggle:hover{background:var(--surface2);border-color:rgba(var(--gold-rgb),.35);color:var(--text);}
  .wx-hourly-panel{display:none;margin-top:.55rem;background:var(--surface2);border-radius:8px;padding:.5rem .3rem;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
  .wx-hourly-panel.expanded{display:block;}
  .wx-hourly-strip{display:flex;gap:.2rem;min-width:max-content;}
  .wx-hourly-cell{display:flex;flex-direction:column;align-items:center;gap:.12rem;padding:.3rem .22rem;background:var(--surface3,rgba(255,255,255,.02));border-radius:4px;min-width:42px;}
  .wx-hourly-cell.now{background:rgba(var(--gold-rgb),.12);border:1px solid rgba(var(--gold-rgb),.35);}
  .wx-hourly-hr{font-size:.765rem;color:var(--text-muted);font-weight:600;letter-spacing:.03em;}
  .wx-hourly-icon{font-size:1rem;line-height:1;}
  .wx-hourly-temp{font-family:var(--font-display);font-size:.824rem;font-weight:700;color:var(--text);}
  .wx-hourly-precip{font-size:.765rem;color:#5ba3e0;font-family:'JetBrains Mono',monospace;}
  .wx-hourly-wind{font-size:.765rem;color:var(--text-dim);font-family:'JetBrains Mono',monospace;}
  /* USDA calendar card container */
  .usda-cal-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.75rem .85rem .65rem;margin-top:.15rem;}
  .usda-cal-card .cal-strip{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent;}
  .usda-cal-card .cal-strip::-webkit-scrollbar{height:4px;}
  .usda-cal-card .cal-strip::-webkit-scrollbar-track{background:transparent;}
  .usda-cal-card .cal-strip::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
  /* NOAA grid — full-width taller cards */
  .noaa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;}
  .noaa-card img{display:block;width:100%;height:auto;min-height:180px;object-fit:contain;background:var(--surface2);}
  @media(max-width:540px){.noaa-grid{grid-template-columns:minmax(0,1fr);}}
  /* Radar section — equal columns, taller */
  .radar-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:.75rem;align-items:stretch;}
  .radar-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;}
  .radar-card iframe{min-height:380px;flex:1;}
  .radar-sidebar{display:flex;flex-direction:column;}
  .drought-embed{flex:1;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
  .drought-embed img{flex:1;object-fit:contain;}
  @media(max-width:680px){.radar-grid{grid-template-columns:minmax(0,1fr);}}
  .tool-list{display:flex;flex-direction:column;gap:.45rem;flex:1;}
  .card-body{display:flex;flex-direction:column;}

/* Bid-network announcement (2026-09-05). Sized off the geo bar directly below
   it so the two read as one stack rather than two competing strips. */
.bidnet-note{display:flex;align-items:center;gap:.6rem;text-decoration:none;
  border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:8px;
  padding:.62rem .8rem;margin:0 0 .85rem;background:var(--surface);
  font-size:.824rem;line-height:1.45;color:var(--text-dim);transition:border-color .15s}
.bidnet-note:hover{border-color:var(--gold)}
.bidnet-tag{font-family:'JetBrains Mono',monospace;font-size:.706rem;font-weight:700;
  letter-spacing:.11em;color:var(--gold);border:1px solid var(--gold);border-radius:3px;
  padding:.13rem .34rem;flex:none;align-self:flex-start;margin-top:.1rem}
.bidnet-txt{min-width:0}
.bidnet-txt strong{color:var(--text);font-weight:600}
.bidnet-go{margin-left:auto;color:var(--gold);font-weight:700;flex:none}
@media(max-width:520px){.bidnet-note{align-items:flex-start}.bidnet-go{display:none}}
/* cash-bids card: pin bids to top of stretched card (override dash-grid center) */
#f1>.card>.card-body{justify-content:flex-start}
#f2>.card>.card-body{justify-content:flex-start}
/* quick-tools card: pin to top, don't let tool-list stretch (pin so the tool list doesn't stretch) */
#f3>.card>.card-body{justify-content:flex-start}
#f3 .tool-list{flex:0 0 auto}
/* 2026-10-01: visual-language pass -- "hairlines, not boxes" everywhere except
   the hero row (the mockup's stated rule: a box means "this is the lead
   item"). Quick Tools was still full boxed-card chrome from the old shell, the
   one deferred item from the shell rebuild. Scoped to #f3 only -- .card,
   .tool-widget-inner and .tool-btn are shared classes used on 10+ other pages
   (fertilizer.html, the futures-price pages, etc.), so the base rules in
   components/styles.css are untouched; only this page's own copies change. */
#f3>.card{background:transparent;border:none;border-radius:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);transition:none}
#f3>.card:hover{border-color:var(--border)}
#f3 .card-body{padding:.3rem 0}
#f3 .tool-widget-inner{background:transparent;border:none;border-radius:0;padding:.65rem 0;border-bottom:1px solid var(--border);transition:background .15s}
#f3 .tool-widget:hover .tool-widget-inner{background:var(--surface2);border-color:var(--border)}
#f3 .tool-btn{background:transparent;border:none;border-radius:0;padding:.55rem 0;border-bottom:1px solid var(--border);transition:background .15s,color .15s}
#f3 .tool-btn:hover{background:var(--surface2);border-color:var(--border)}
#f3 .spray-windows{border-top:none;padding-top:.2rem}
  .km-tier-tag{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.18rem .42rem;border-radius:3px;border:1px solid;}
  .ratio-cot-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin:.6rem 0 .4rem;}
  .ratio-cot-grid .ratio-widget{margin:0}
  @media(max-width:720px){.ratio-cot-grid{grid-template-columns:minmax(0,1fr)}}
  .ratio-widget{background:linear-gradient(135deg,var(--surface) 0%,rgba(34,197,94,.025) 100%);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;display:flex;flex-direction:column;}
  .ratio-widget-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;}
  .ratio-widget-title{font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
  .ratio-body{display:flex;align-items:flex-start;gap:1rem;flex-wrap:nowrap;flex:1;}
  .ratio-num-block{flex-shrink:0;text-align:center;min-width:70px;padding-top:.1rem;}
  .ratio-big{font-family:var(--font-display);font-size:2.353rem;font-weight:800;line-height:1;color:var(--text);transition:color .4s;}
  .ratio-colon{font-size:1.294rem;color:var(--text-muted);vertical-align:middle;margin:0 1px}
  .ratio-one{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-muted)}
  .ratio-label{font-size:.765rem;color:var(--text-muted);font-weight:600;margin-top:.15rem;letter-spacing:.03em}
  .ratio-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:.6rem;}
  .ratio-gauge-track{position:relative;height:9px;border-radius:5px;margin-bottom:.3rem;background:linear-gradient(90deg,rgba(var(--gold-rgb),.32) 0%,rgba(var(--gold-rgb),.32) 30%,rgba(160,160,160,.12) 30%,rgba(160,160,160,.12) 55%,rgba(34,197,94,.28) 55%,rgba(34,197,94,.28) 100%);border:1px solid rgba(255,255,255,.06);}
  .ratio-gauge-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:15px;height:15px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1.5px var(--border);transition:left .5s ease,background .4s;z-index:2;}
  .ratio-gauge-zones{display:flex;justify-content:space-between;font-size:.765rem;color:var(--text-muted);letter-spacing:.03em;font-weight:600;padding:0 1px;margin-bottom:.3rem;}
  .ratio-verdict{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:20px;font-size:.824rem;font-weight:700;letter-spacing:.03em;border:1px solid;transition:all .3s;}
  .ratio-verdict.corn{background:rgba(var(--gold-rgb),.1);color:var(--gold);border-color:rgba(var(--gold-rgb),.28)}
  .ratio-verdict.neutral{background:var(--surface2);color:var(--text-dim);border-color:var(--border)}
  .ratio-verdict.beans{background:rgba(34,197,94,.08);color:var(--green);border-color:rgba(34,197,94,.22)}
  .ratio-meta{font-size:.765rem;color:var(--text-muted);font-family:'JetBrains Mono',monospace;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.2rem;}
  .ratio-meta-sep{color:var(--border)}
  .ratio-links{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.4rem;}
  .ratio-link{font-size:.765rem;font-weight:600;color:var(--text-muted);text-decoration:none;padding:.32rem .6rem;border:1px solid var(--border);border-radius:6px;transition:border-color .15s,color .15s;}
  .ratio-link:hover{border-color:var(--gold);color:var(--gold)}
  @media(max-width:720px){.ratio-body{flex-wrap:wrap;}.ratio-right{min-width:100%;}}
  @media(max-width:480px){.ratio-big{font-size:1.882rem;}.ratio-widget{padding:.75rem .85rem;}}
  .cot-widget{background:linear-gradient(135deg,var(--surface) 0%,rgba(91,163,224,.025) 100%);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;display:flex;flex-direction:column;}
  .cot-widget-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;}
  .cot-widget-title{font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
  .cot-caption{font-size:.84rem;color:var(--text-muted);line-height:1.45;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);}
  .cot-dir{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.1rem .32rem;border-radius:3px;flex-shrink:0;}
  .cot-dir.long{color:var(--green);background:rgba(34,197,94,.1);}
  .cot-dir.short{color:#ef4444;background:rgba(239,68,68,.1);}
  .cot-dir.nc{color:var(--text-muted);background:var(--surface2);}
  .cot-verdict{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:20px;font-size:.824rem;font-weight:700;letter-spacing:.03em;border:1px solid;transition:all .3s;}
  .cot-verdict.long{background:rgba(34,197,94,.08);color:var(--green);border-color:rgba(34,197,94,.22)}
  .cot-verdict.short{background:rgba(239,68,68,.08);color:#ef4444;border-color:rgba(239,68,68,.22)}
  .cot-verdict.mixed{background:var(--surface2);color:var(--text-dim);border-color:var(--border)}
  .cot-rows{display:flex;flex-direction:column;gap:.5rem;flex:1}
  .cot-row-top{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.2rem}
  .cot-label{display:flex;align-items:center;gap:.3rem}
  .cot-comm-icon{font-size:.824rem;line-height:1}
  .cot-comm-name{font-size:.824rem;font-weight:700;color:var(--text)}
  .cot-right{display:flex;align-items:center;gap:.4rem}
  .cot-net{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;color:var(--text)}
  .cot-chg{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700}
  .cot-chg.up{color:var(--green)} .cot-chg.dn{color:#ef4444} .cot-chg.nc{color:var(--text-muted)}
  .cot-bar-wrap{position:relative;height:8px;border-radius:4px;background:var(--surface2);overflow:visible}
  .cot-bar-fill{position:absolute;top:0;height:100%;border-radius:4px;transition:left .5s,width .5s}
  .cot-zero-mark{position:absolute;top:-3px;width:2px;height:14px;background:rgba(255,255,255,.2);border-radius:1px;z-index:1}
  .cot-bar-dot{position:absolute;top:50%;width:13px;height:13px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1.5px var(--border);transform:translate(-50%,-50%);transition:left .5s ease,background .4s;z-index:2;}
  .cot-bar-labels{display:flex;justify-content:space-between;font-size:.765rem;color:var(--text-muted);margin-top:.2rem;font-family:'JetBrains Mono',monospace;}
  .cot-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--border);}
  .cot-date{font-size:.824rem;color:var(--gold);font-family:'JetBrains Mono',monospace;font-weight:700;}
  .cot-full-link{font-size:.824rem;font-weight:600;color:var(--gold);text-decoration:none;padding:.22rem .52rem;border:1px solid rgba(var(--gold-rgb),.3);border-radius:6px;transition:border-color .15s;}
  .cot-full-link:hover{border-color:var(--gold)}
  .tariff-fert-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin:.5rem 0;}
  @media(max-width:720px){.tariff-fert-grid{grid-template-columns:minmax(0,1fr)}}
  .tariff-widget{background:linear-gradient(135deg,var(--surface) 0%,rgba(239,68,68,.02) 100%);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;display:flex;flex-direction:column;}
  .tariff-widget-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;}
  .tariff-widget-title{font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
  .tariff-status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:20px;font-size:.824rem;font-weight:700;letter-spacing:.03em;border:1px solid;}
  .tariff-status-badge.elevated{background:rgba(239,68,68,.08);color:#ef4444;border-color:rgba(239,68,68,.25);}
  .tariff-status-badge.normal{background:rgba(34,197,94,.08);color:var(--green);border-color:rgba(34,197,94,.22);}
  .tariff-status-badge.mixed{background:rgba(var(--gold-rgb),.08);color:var(--gold);border-color:rgba(var(--gold-rgb),.22);}
  .tariff-rows{display:flex;flex-direction:column;gap:.38rem;flex:1;}
  .tariff-row{display:flex;align-items:center;gap:.5rem;padding:.32rem .5rem;border-radius:6px;background:var(--surface2);}
  .tariff-row-icon{font-size:.824rem;line-height:1;flex-shrink:0;}
  .tariff-row-comm{font-size:.824rem;font-weight:700;color:var(--text);flex:1;min-width:0;}
  .tariff-row-dest{font-size:.765rem;color:var(--text-muted);flex-shrink:0;}
  .tariff-row-rate{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;flex-shrink:0;min-width:44px;text-align:right;}
  .tariff-row-rate.elevated{color:#ef4444;} .tariff-row-rate.normal{color:var(--green);} .tariff-row-rate.mixed{color:var(--gold);}
  .tariff-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--border);}
  .tariff-footer-date{font-size:.765rem;color:var(--text-muted);font-family:'JetBrains Mono',monospace;}
  .tariff-full-link{font-size:.824rem;font-weight:600;color:var(--gold);text-decoration:none;padding:.22rem .52rem;border:1px solid rgba(var(--gold-rgb),.3);border-radius:6px;transition:border-color .15s;}
  .tariff-full-link:hover{border-color:var(--gold);}
  @media(max-width:480px){.tariff-widget{padding:.75rem .85rem;}.tariff-row-dest{display:none;}}
  @media(max-width:480px){.cot-widget{padding:.75rem .85rem;}.cot-net{font-size:.824rem;}.cot-comm-name{font-size:.824rem;}}
  .noaa-tabs{display:flex;gap:.4rem;margin-bottom:.75rem;flex-wrap:wrap}
  .noaa-tab{padding:.38rem .9rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;transition:all .15s;min-height:44px;display:inline-flex;align-items:center;}
  .noaa-tab:hover{border-color:var(--gold);color:var(--text)}
  .noaa-tab.active{background:var(--gold-fill,var(--gold));color:#0a0c0d;border-color:var(--gold)}
  .noaa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
  @media(max-width:540px){.noaa-grid{grid-template-columns:minmax(0,1fr)}}
  .noaa-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}
  .noaa-card-head{display:flex;align-items:center;gap:.4rem;padding:.5rem .8rem;border-bottom:1px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
  .noaa-card-head.temp{color:#f4834a} .noaa-card-head.precip{color:#5bb8f5}
  /* 2026-09-30: this rule used to repeat the one above (line ~186) with a
     smaller min-height (100px vs 180px) — same selector, later in the
     cascade, so this one always won. The real NOAA GIFs render taller than
     100px, so the card grew and pushed content below it down when the lazy
     image loaded. Removed; the 180px/object-fit:contain rule above already
     covers this selector. */
  .noaa-note{margin-top:.5rem;font-size:1rem;color:var(--text-muted);line-height:1.55}
  .noaa-note a{color:var(--gold);text-decoration:none}
  .noaa-note a:hover{text-decoration:underline}
  .noaa-img-err{display:none;align-items:center;justify-content:center;min-height:120px;font-size:.824rem;color:var(--text-muted);text-align:center;padding:.75rem;flex-direction:column;gap:.4rem;}
  .noaa-img-err a{color:var(--gold);font-size:.824rem}
  
  .btn-dismiss{min-height:40px;display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .8rem;background:var(--surface);border:1px solid var(--border);border-radius:7px;font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;letter-spacing:.03em;color:var(--text-dim);text-decoration:none;cursor:pointer;transition:border-color .15s,color .15s}
  .btn-dismiss:hover{border-color:var(--gold);color:var(--text)}
  .btn-dismiss svg.ic{width:.9em;height:.9em}
  .btn-dismiss--primary{color:var(--gold);border-color:rgba(212,162,63,.35)}
  .btn-dismiss--primary:hover{background:rgba(212,162,63,.08)}
  #kalshi-grid{min-height:0}
  /* A PULSING DOT IS A CLAIM. components/styles.css gives .live-dot a 2s blink
     and the brand colour, which reads as a live feed. When the badge beside it
     is showing an age instead of the word LIVE, the dot has to stop making the
     claim the text just withdrew. Set here rather than in the shared
     stylesheet: that file is cache-busted by hand (?v=15) and a rule added
     there without a bump reaches nobody who has already loaded it. */
  .ticker-live.stale .live-dot{animation:none;background:var(--text-muted)}

  @media(prefers-reduced-motion:reduce){
    .ticker-track{animation:none!important}
    .live-dot,.status-dot,.daily-eyebrow-dot,.teaser-sponsor-dot{animation:none!important}
    .fade-up{opacity:1!important;transform:none!important;transition:none!important}
    .pc-spark{transition:none!important}
  }
  /* Accessibility — P10 audit Apr 13 2026 */
  .usda-cal-card .cal-strip:focus{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px;}
  /* Ensure links in body text are distinguishable by more than color */
  .noaa-note a,.drought-source-note a{text-decoration:underline;}
  @media(max-width:640px){
    .pc-contract{font-size:.824rem!important;}
  /* 2026-10-01: section links measured 22px tall at 390px; 44px is the floor. */
  .sec-head .sec-all{display:inline-flex;align-items:center;min-height:44px}
    .pc-range-labels span{font-size:.765rem!important;}
    .sec-head{flex-wrap:wrap;gap:.3rem;}
    .cal-card .cal-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px;}
  }
  .noscript-banner{background:var(--gold-fill,var(--gold));color:#0a0c0d;text-align:center;padding:.75rem 1rem;font-size:.824rem;font-weight:600}
  .km-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem .9rem;display:flex;flex-direction:column;gap:.38rem;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s,transform .1s;position:relative;overflow:hidden;}
  .km-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;opacity:0;transition:opacity .2s}
  .km-card[data-tier="1"]::before{background:linear-gradient(90deg,var(--green),transparent)}
  .km-card[data-tier="2"]::before{background:linear-gradient(90deg,var(--gold),transparent)}
  .km-card[data-tier="3"]::before{background:linear-gradient(90deg,var(--blue),transparent)}
  .km-card:hover{transform:translateY(-1px)}
  .km-card[data-tier="1"]:hover{border-color:rgba(34,197,94,.35)}
  .km-card[data-tier="2"]:hover{border-color:rgba(var(--gold-rgb),.35)}
  .km-card[data-tier="3"]:hover{border-color:rgba(91,163,224,.35)}
  .km-card:hover::before{opacity:1}
  .km-card-row{display:flex;align-items:center;gap:.5rem}
  .km-card-title{font-size:.824rem;font-weight:700;color:var(--text);line-height:1.35;flex:1}
  .km-card-pct{font-family:var(--font-display);font-size:1.294rem;font-weight:800;line-height:1;flex-shrink:0}
  .km-bar-track{height:6px;border-radius:3px;background:var(--surface2);overflow:hidden}
  .km-bar-fill{height:100%;border-radius:3px}
  .km-card-foot{display:flex;align-items:center;gap:.4rem;margin-top:.06rem;flex-wrap:wrap}
  .km-plat{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.18rem .42rem;border-radius:3px;border:1px solid}
  .km-plat.k{color:#00c7a8;border-color:rgba(0,199,168,.22);background:rgba(0,199,168,.05)}
  .km-plat.p{color:#5ba3e0;border-color:rgba(91,163,224,.22);background:rgba(91,163,224,.05)}
  .km-tl{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted)}
  .km-why{font-size:.824rem;color:var(--text-muted);line-height:1.5;padding:.32rem .5rem;background:rgba(255,255,255,.025);border-radius:4px;border-left:2px solid rgba(255,255,255,.12)}
  .crop-export-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin:.4rem 0 .5rem;}
  @media(max-width:720px){.crop-export-grid{grid-template-columns:minmax(0,1fr)}}
  @media(max-width:640px){.crop-export-grid{grid-template-columns:minmax(0,1fr)}}
  .crop-widget{background:linear-gradient(135deg,var(--surface) 0%,rgba(34,197,94,.025) 100%);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;display:flex;flex-direction:column;}
  .crop-widget-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;}
  .crop-widget-title{font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
  .crop-week-badge{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);padding:.15rem .4rem;border:1px solid var(--border);border-radius:4px;}
  .crop-rows{display:flex;flex-direction:column;gap:.5rem;flex:1;}
  .crop-row-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.2rem;}
  .crop-comm-label{display:flex;align-items:center;gap:.3rem;}
  .crop-comm-icon{font-size:.824rem;line-height:1;}
  .crop-comm-name{font-size:.824rem;font-weight:700;color:var(--text);}
  .crop-ge-val{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;}
  .crop-ge-val.good{color:var(--green);} .crop-ge-val.fair{color:var(--gold);} .crop-ge-val.poor{color:#ef4444;}
  .crop-chg-row{display:flex;gap:.55rem;margin-top:.1rem;}
  .crop-chg{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;}
  .crop-chg.up{color:var(--green);} .crop-chg.dn{color:#ef4444;} .crop-chg.nc{color:var(--text-muted);}
  .crop-chg-lbl{font-size:.765rem;color:var(--text-muted);}
  .crop-plant-row{display:flex;align-items:center;gap:.35rem;margin-top:.15rem;}
  .crop-plant-pct{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;color:var(--text);}
  .crop-plant-lbl{font-size:.765rem;color:var(--text-muted);}
  .crop-plant-bar{flex:1;height:5px;border-radius:3px;background:var(--surface2);overflow:hidden;}
  .crop-plant-fill{height:100%;border-radius:3px;background:var(--green);opacity:.7;transition:width .5s;}
  .crop-offseason{display:flex;align-items:center;justify-content:center;flex:1;font-size:.824rem;color:var(--text-muted);text-align:center;padding:.5rem 0;}
  .crop-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--border);}
  .crop-footer-date{font-size:.765rem;color:var(--text-muted);font-family:'JetBrains Mono',monospace;}
  .crop-full-link{font-size:.824rem;font-weight:600;color:var(--gold);text-decoration:none;padding:.22rem .52rem;border:1px solid rgba(var(--gold-rgb),.3);border-radius:6px;transition:border-color .15s;}
  .crop-full-link:hover{border-color:var(--gold);}
  @media(max-width:480px){.crop-widget{padding:.75rem .85rem;}}
  .export-widget{background:linear-gradient(135deg,var(--surface) 0%,rgba(59,130,246,.025) 100%);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;display:flex;flex-direction:column;}
  .export-widget-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;}
  .export-widget-title{font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
  .export-mkt-yr{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);padding:.15rem .4rem;border:1px solid var(--border);border-radius:4px;}
  .export-rows{display:flex;flex-direction:column;gap:.5rem;flex:1;}
  .export-row-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.2rem;}
  .export-comm-label{display:flex;align-items:center;gap:.3rem;}
  .export-comm-icon{font-size:.824rem;line-height:1;}
  .export-comm-name{font-size:.824rem;font-weight:700;color:var(--text);}
  .export-weekly{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;color:var(--text);}
  .export-pace-row{display:flex;align-items:center;gap:.4rem;}
  .export-pace-bar{flex:1;height:5px;border-radius:3px;background:var(--surface2);overflow:hidden;}
  .export-pace-fill{height:100%;border-radius:3px;transition:width .5s;}
  .export-pace-fill.on-track{background:var(--green);} .export-pace-fill.lagging{background:var(--gold-fill,var(--gold));} .export-pace-fill.behind{background:#ef4444;} .export-pace-fill.no-data{background:var(--surface3,#1d2324);}
  .export-pace-pct{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;flex-shrink:0;}
.export-wk-lbl{font-size:.765rem;font-weight:600;color:var(--text-muted);}
.export-cumul{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);margin-top:.2rem;}
  .export-pace-pct.on-track{color:var(--green);} .export-pace-pct.lagging{color:var(--gold);} .export-pace-pct.behind{color:#ef4444;} .export-pace-pct.no-data{color:var(--text-muted);}
  /* WHY A COMMODITY HAS NO FIGURE THIS WEEK. The widget prints one date for all
     three rows, so a row whose own week was a year old rendered under this
     week's date at 121% of target and nothing on the page could say otherwise. */
  .export-withheld{font-size:.765rem;line-height:1.45;color:var(--text-muted);margin-top:.2rem;}
  .export-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--border);}
  .export-footer-date{font-size:.765rem;color:var(--text-muted);font-family:'JetBrains Mono',monospace;}
  .export-full-link{font-size:.824rem;font-weight:600;color:var(--gold);text-decoration:none;padding:.22rem .52rem;border:1px solid rgba(var(--gold-rgb),.3);border-radius:6px;transition:border-color .15s;}
  .export-full-link:hover{border-color:var(--gold);}
  @media(max-width:480px){.export-widget{padding:.75rem .85rem;}}
  .fert-widget{background:linear-gradient(135deg,var(--surface) 0%,rgba(var(--gold-rgb),.02) 100%);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;display:flex;flex-direction:column;}
  .fert-widget-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;}
  .fert-widget-title{font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
  .fert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.4rem;flex:1;}
  .fert-card{background:var(--surface2);border-radius:8px;padding:.5rem .65rem;}
  .fert-card-head{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;margin-bottom:.25rem;}
  .fert-name{font-size:.824rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:.25rem;}
  .fert-sym{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);}
  .fert-price{font-family:'JetBrains Mono',monospace;font-size:1rem;font-weight:700;color:var(--text);line-height:1;}
  .fert-chg{display:flex;align-items:center;gap:.2rem;margin-top:.12rem;}
  .fert-chg-val{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;}
  .fert-chg-val.up{color:#ef4444;} .fert-chg-val.dn{color:var(--green);} .fert-chg-val.nc{color:var(--text-muted);}
  .fert-loc{font-size:.765rem;color:var(--text-muted);}
  .fert-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--border);}
  .fert-footer-note{font-size:1rem;color:var(--text-muted);font-family:var(--font-body,'Inter',system-ui,sans-serif);}
  .fert-full-link{font-size:.824rem;font-weight:600;color:var(--gold);text-decoration:none;padding:.22rem .52rem;border:1px solid rgba(var(--gold-rgb),.3);border-radius:6px;transition:border-color .15s;}
  .fert-full-link:hover{border-color:var(--gold);}
  @media(max-width:480px){.km-card{padding:.65rem .75rem;}.km-card-pct{font-size:1.294rem;}}
  @media(max-width:480px){.fert-widget{padding:.75rem .85rem;}.fert-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
  @media(max-width:560px){.ratio-body{flex-wrap:wrap!important;}.ratio-right{min-width:100%;}.ratio-big{font-size:1.882rem;}}
  /* v4.0 daily-hero blocks ── thread marker / yesterday's call / spread / basis / byline */
  /* daily-spattr legacy CSS retained for compat; element removed in v4.3 */
  .daily-spattr{display:none}
  /* v4.3: takeaway card — committable statement between lead and sponsor */
  .daily-takeaway{margin:1rem 0 .25rem;padding:.95rem 1.1rem;background:linear-gradient(135deg,rgba(var(--gold-rgb),.08) 0%,rgba(var(--gold-rgb),.02) 60%,var(--surface2) 100%);border:1px solid rgba(var(--gold-rgb),.3);border-left:4px solid var(--gold);border-radius:8px}
  .daily-takeaway-label{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:.4rem}
  .daily-takeaway-text{font-family:var(--font-display);font-size:1rem;line-height:1.45;color:var(--text);margin:0;font-weight:600;letter-spacing:-.005em}
  @media(max-width:640px){.daily-takeaway-text{font-size:1rem}}
  /* v4.3: per-section vs_yesterday continuity chip */
  .daily-sec-vs{display:flex;align-items:center;gap:.4rem;font-family:'JetBrains Mono',monospace;font-size:.824rem;color:var(--text-muted);margin:.4rem 0 .6rem;padding:.3rem .55rem;background:rgba(74,143,186,.04);border-left:2px solid rgba(74,143,186,.32);border-radius:0 4px 4px 0}
  .daily-sec-vs-icon{color:#5aa0d2;font-size:.824rem;flex-shrink:0}
  .daily-sec-vs-text{font-weight:600;letter-spacing:.01em;line-height:1.4}
  /* v4.4: per-section catalyst (driver) chip — names the news/data driving this move */
  .daily-sec-catalyst{display:flex;align-items:center;gap:.45rem;font-family:'JetBrains Mono',monospace;font-size:.824rem;color:var(--text-dim);margin:.4rem 0 .55rem;padding:.35rem .6rem;background:rgba(var(--gold-rgb),.05);border-left:2px solid rgba(var(--gold-rgb),.4);border-radius:0 4px 4px 0;flex-wrap:wrap}
  .daily-sec-catalyst-icon{color:var(--gold);font-size:.824rem;flex-shrink:0}
  .daily-sec-catalyst-label{color:var(--gold);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.765rem;flex-shrink:0}
  .daily-sec-catalyst-text{font-weight:500;letter-spacing:.01em;line-height:1.4}
  /* v4.4: outside_the_pit — full-width news block below hero, above cashbids/share */
  .daily-otp{margin:.85rem 0;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:var(--r-md,10px);display:none}
  .daily-otp.is-active{display:block}
  .daily-otp-header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.95rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
  .daily-otp-label{display:flex;align-items:center;gap:.4rem;font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
  .daily-otp-sub{font-size:.824rem;color:var(--text-muted);}
  .daily-otp-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem}
  @media(min-width:640px){.daily-otp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
  .daily-otp-item{padding:.75rem .85rem;background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;gap:.4rem;min-width:0}
  .daily-otp-tag{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);background:rgba(var(--gold-rgb),.08);padding:.18rem .5rem;border-radius:3px;align-self:flex-start;border:1px solid rgba(var(--gold-rgb),.22)}
  .daily-otp-title{font-size:.824rem;font-weight:700;color:var(--text);line-height:1.35}
  .daily-otp-body{font-size:.824rem;line-height:1.55;color:var(--text-dim)}
  /* v4.3: cash-bids inline conversion footer (weekday only) */
  .daily-cashbids-cta{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.15rem;background:rgba(74,171,76,.06);border:1px solid rgba(74,171,76,.22);border-radius:8px;margin:.5rem 0;text-decoration:none;color:var(--text);transition:border-color .15s,background .15s;min-height:44px}
  .daily-cashbids-cta:hover{border-color:var(--green);background:rgba(74,171,76,.10)}
  .daily-cashbids-icon{font-size:1rem;flex-shrink:0}
  .daily-cashbids-text{font-size:.824rem;line-height:1.4}
  .daily-cashbids-text strong{color:var(--text);font-weight:700}
  .daily-cashbids-arrow{color:var(--green);font-weight:700;margin-left:.2rem}
  /* v4.3: Copy The Number button */
  .dn-copy-btn{background:none;border:1px solid var(--border);color:var(--text-muted);font-size:.824rem;line-height:1;padding:.3rem .5rem;border-radius:4px;cursor:pointer;transition:border-color .15s,color .15s,background .15s;min-height:28px;min-width:28px;display:inline-flex;align-items:center;justify-content:center}
  .dn-copy-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(var(--gold-rgb),.06)}
  .daily-thread-marker{display:none;flex-direction:column;align-items:flex-start;gap:.3rem;margin-bottom:.45rem;padding:.45rem .75rem .5rem;background:rgba(91,163,224,.06);border:1px solid rgba(91,163,224,.22);border-radius:10px;font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);max-width:fit-content;line-height:1.5}
  .daily-thread-marker .dtm-day{color:var(--blue);font-weight:800;white-space:nowrap;flex-shrink:0}
  .daily-thread-marker .dtm-q{color:var(--text-dim);text-transform:none;letter-spacing:0;font-weight:600;min-width:0}
  .daily-yc{display:none;margin:.85rem 0 1rem;padding:.75rem .9rem;background:linear-gradient(135deg,var(--surface) 0%,rgba(255,255,255,.02) 100%);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:8px}
  .daily-yc-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.4rem;flex-wrap:wrap}
  .daily-yc-label{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
  .daily-yc-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem;border-radius:20px;font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border:1px solid;white-space:nowrap}
  .yc-pill--good{color:var(--green);background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.28)}
  .yc-pill--bad{color:#ef4444;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.28)}
  .yc-pill--pending{color:var(--gold);background:rgba(var(--gold-rgb),.08);border-color:rgba(var(--gold-rgb),.28)}
  .daily-yc-body{font-size:.824rem;line-height:1.6;color:var(--text-dim)}
  .daily-yc-note{color:var(--text-muted);}
  .daily-spread{display:none;margin:1rem 0;padding:.85rem 1rem;background:linear-gradient(135deg,var(--surface) 0%,rgba(160,120,200,.04) 100%);border:1px solid rgba(160,120,200,.22);border-radius:8px}
  .daily-spread-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.4rem;flex-wrap:wrap}
  .daily-spread-label{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#a87cd6}
  .daily-spread-level{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;color:var(--text)}
  .daily-spread-title{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.3rem;line-height:1.4}
  .daily-spread-body{font-size:.824rem;line-height:1.65;color:var(--text-dim)}
  .daily-basis{display:none;margin:1rem 0;padding:.85rem 1rem;background:linear-gradient(135deg,var(--surface) 0%,rgba(185,122,58,.04) 100%);border:1px solid rgba(185,122,58,.28);border-radius:8px}
  .daily-basis-label{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#c98a4a;margin-bottom:.4rem}
  .daily-basis-headline{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.3rem;line-height:1.4}
  .daily-basis-body{font-size:.824rem;line-height:1.65;color:var(--text-dim)}
  .daily-basis-body strong{color:var(--text)}
  .daily-byline{font-size:.824rem;color:var(--text-dim);line-height:1.55;padding:.7rem 0 .15rem;border-top:1px solid var(--border);margin-top:1rem}
  .daily-byline strong{color:var(--text);font-weight:700}
  .daily-byline a{color:var(--gold);text-decoration:none}
  .daily-byline a:hover{text-decoration:underline}
  :root{--ad-orange:#e8743a;--ad-orange-rgb:232,116,58;--ad-orange-hi:#f2935f}
  /* v4.1 sponsor block — billboard for empty state, restrained for paid sponsor */
  .daily-sponsor{position:relative;margin:1.25rem 0 1.5rem;padding:1.5rem 1.75rem;background:linear-gradient(135deg,rgba(var(--ad-orange-rgb),.10) 0%,rgba(var(--ad-orange-rgb),.02) 50%,var(--surface) 100%);border:2px solid var(--ad-orange);border-radius:12px;box-shadow:0 0 0 1px rgba(var(--ad-orange-rgb),.15),0 8px 24px rgba(0,0,0,.25)}
  .daily-hero.dismissed .daily-sponsor{display:none}
  .dsp-empty,.dsp-filled{display:block}
  /* Empty state — billboard treatment */
  .dsp-tags{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}
  .dsp-tag{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.4rem .75rem;border-radius:4px;display:inline-flex;align-items:center;gap:.35rem;line-height:1}
  .dsp-tag-available{background:var(--ad-orange);color:#0d1117;position:relative;z-index:1}
  .dsp-tag-available::before{content:'';position:absolute;inset:-4px;border:2px solid var(--ad-orange);border-radius:7px;opacity:0;animation:dsp-pulse 2.6s ease-in-out infinite;z-index:-1;pointer-events:none}
  @keyframes dsp-pulse{0%,100%{opacity:0;transform:scale(1)}50%{opacity:.45;transform:scale(1.06)}}
  .dsp-tag-founding{background:rgba(var(--ad-orange-rgb),.10);color:var(--ad-orange);border:1px solid rgba(var(--ad-orange-rgb),.4)}
  .dsp-headline{font-family:var(--font-display);font-size:1.882rem;font-weight:600;letter-spacing:.005em;color:var(--text);margin-bottom:.7rem;line-height:1.1}
  .dsp-pitch{font-size:1rem;line-height:1.65;color:var(--text-dim);margin-bottom:1.25rem;max-width:58rem}
  .dsp-pitch strong{color:var(--text);font-weight:700}
  .dsp-actions{margin-bottom:.85rem}
  .dsp-cta-primary{display:inline-flex;align-items:center;gap:.45rem;font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--ad-orange);color:#0d1117;text-decoration:none;padding:.85rem 1.5rem;border:2px solid var(--ad-orange);border-radius:6px;transition:background .15s,transform .1s,box-shadow .15s,border-color .15s;min-height:44px;box-shadow:0 4px 12px rgba(var(--ad-orange-rgb),.22)}
  .dsp-cta-primary:hover{background:var(--ad-orange-hi);border-color:var(--ad-orange-hi);transform:translateY(-1px);box-shadow:0 6px 18px rgba(var(--ad-orange-rgb),.38)}
  .dsp-contact{font-family:'JetBrains Mono',monospace;font-size:.824rem;color:var(--text-muted);letter-spacing:.03em}
  .dsp-contact a{color:var(--ad-orange);text-decoration:none}
  .dsp-contact a:hover{text-decoration:underline}
  .dsp-contact-sep{margin:0 .55rem;opacity:.5}
  /* Filled state — subdued so sponsor brand can breathe */
  /* Filled: the ad draws its own card (components/sponsor-ad.css), so the slot
     frame steps out of the way instead of boxing a box. */
  .daily-sponsor.filled{border:0;background:none;box-shadow:none;padding:0;border-radius:0}
  .daily-sponsor.filled .sa-ad{margin:0}
  .dsp-label{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ad-orange);margin-bottom:.5rem;display:flex;align-items:center;gap:.35rem}
  .dsp-sponsor-name{font-family:var(--font-display);font-size:1.294rem;font-weight:600;color:var(--text);margin-bottom:.3rem;line-height:1.15}
  .dsp-sponsor-tag{font-size:1rem;line-height:1.55;color:var(--text-dim);margin-bottom:.9rem;max-width:54rem}
  .dsp-sponsor-cta{display:inline-flex;align-items:center;gap:.35rem;font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ad-orange);text-decoration:none;padding:.55rem 1rem;border:1px solid var(--ad-orange);border-radius:6px;transition:background .15s,color .15s;min-height:36px}
  .dsp-sponsor-cta:hover{background:var(--ad-orange);color:#0d1117}
  /* Mobile */
  @media(max-width:520px){
    .daily-sponsor{margin:1rem 0 1.25rem;padding:1.15rem 1rem;border-radius:8px;border-width:2px}
    .dsp-headline{font-size:1.294rem}
    .dsp-pitch{font-size:.824rem;line-height:1.55;margin-bottom:1rem}
    .dsp-tag{font-size:.765rem;padding:.32rem .6rem;letter-spacing:.1em}
    .dsp-cta-primary{font-size:.824rem;padding:.7rem 1.1rem;letter-spacing:.07em}
    .dsp-contact{font-size:.824rem}
    .dsp-contact-sep{display:none}
    .dsp-contact a{display:block;margin-top:.25rem}
    .daily-sponsor.filled{padding:.95rem 1rem}
    .dsp-sponsor-name{font-size:1.294rem}
    .dsp-sponsor-tag{font-size:.824rem}
    .dsp-sponsor-cta{font-size:.824rem;padding:.45rem .8rem}
  }
  /* v4.1 collapsed-state teaser sponsor — tiny inline element on the collapsed bar */
  .teaser-sponsor{font-family:var(--font-body,'Inter',system-ui,sans-serif);font-size:1rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ad-orange);text-decoration:none;padding:.22rem .55rem;border:1px solid rgba(var(--ad-orange-rgb),.25);border-radius:4px;white-space:nowrap;transition:border-color .15s,background .15s,color .15s,opacity .15s;margin:0 .55rem 0 auto;flex-shrink:0;line-height:1.2}
  .teaser-sponsor:hover{border-color:var(--ad-orange);background:rgba(var(--ad-orange-rgb),.08)}
  .teaser-sponsor.empty-state{opacity:1;color:var(--ad-orange);border-color:rgba(var(--ad-orange-rgb),.5);background:rgba(var(--ad-orange-rgb),.07)}
  .teaser-sponsor.empty-state:hover{opacity:1;color:#0d1117;background:var(--ad-orange);border-color:var(--ad-orange)}
  .teaser-sponsor.has-sponsor{opacity:.9}
  .teaser-sponsor-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ad-orange);box-shadow:0 0 0 3px rgba(var(--ad-orange-rgb),.18);animation:tsp-pulse 2s ease-in-out infinite;margin-right:.35rem;vertical-align:middle;flex-shrink:0}
  .teaser-sponsor:hover .teaser-sponsor-dot,.teaser-sponsor.empty-state:hover .teaser-sponsor-dot{background:#0d1117;box-shadow:none}
  .teaser-sponsor-tag{font-size:.765rem;opacity:.85;padding-left:.4rem;margin-left:.35rem;border-left:1px solid rgba(var(--ad-orange-rgb),.4)}
  @keyframes tsp-pulse{0%,100%{box-shadow:0 0 0 3px rgba(var(--ad-orange-rgb),.18)}50%{box-shadow:0 0 0 5px rgba(var(--ad-orange-rgb),.04)}}
  @media(max-width:600px){.teaser-sponsor-tag{display:none}}
  @media(max-width:520px){.teaser-sponsor{font-size:1rem;padding:.18rem .45rem;letter-spacing:.03em;margin:0 .4rem 0 auto}}
  @media(max-width:380px){.teaser-sponsor{display:none}}
  .daily-share{padding:1rem 0 .5rem;border-top:1px solid var(--border)}
  .daily-share-lbl{display:flex;align-items:center;gap:.4rem;font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.7rem}
  .daily-share-lbl svg{width:.9em;height:.9em}
  .daily-share-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem}
  .daily-share-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:.7rem .3rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-dim);text-decoration:none;cursor:pointer;transition:border-color .15s,color .15s,background .15s;min-height:56px}
  .daily-share-btn:hover{border-color:var(--gold);color:var(--text);background:var(--surface2)}
  .daily-share-btn .dsb-ic{display:flex;align-items:center;justify-content:center;height:18px}
  .daily-share-btn .dsb-ic svg.ic{width:17px;height:17px}
  .daily-share-btn svg.dsb-svg{width:14px;height:14px;display:block}
  .daily-share-btn .dsb-lbl{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1;white-space:nowrap}
  @media(max-width:520px){.daily-otp{padding:.55rem .65rem}.daily-otp-header{margin-bottom:.7rem;padding-bottom:.55rem}.daily-otp-item{padding:.6rem .7rem}.daily-share{padding:.8rem 0 .4rem}.daily-share-grid{grid-template-columns:repeat(3,1fr);gap:.45rem}.daily-share-btn{padding:.65rem .3rem;min-height:52px;gap:.3rem}.daily-share-btn .dsb-lbl{font-size:.765rem}}
  /* PWA install hint — banner + visual modal (v2, May 4 2026) */
  .pwa-hint{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:linear-gradient(180deg,rgba(58,139,60,.96) 0%,rgba(38,90,40,.98) 100%);border-top:2px solid var(--gold);padding:.85rem 1rem;padding-bottom:max(.85rem,env(safe-area-inset-bottom));display:none;align-items:center;gap:.75rem;flex-wrap:wrap;box-shadow:0 -6px 20px rgba(0,0,0,.4);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#fff}
  .pwa-hint.show{display:flex;animation:pwa-slide-up .35s ease-out}
  @keyframes pwa-slide-up{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
  .pwa-hint-icon{font-size:1.294rem;line-height:1;flex-shrink:0}
  .pwa-hint-body{flex:1;min-width:0;font-size:.824rem;line-height:1.45}
  .pwa-hint-body strong{color:#fff;font-weight:700;display:block;margin-bottom:.12rem;font-size:1rem}
  .pwa-hint-body em{color:rgba(255,255,255,.88);font-style:normal}
  .pwa-hint-actions{display:flex;gap:.45rem;flex-shrink:0}
  .pwa-hint-btn{padding:.55rem 1.05rem;border-radius:6px;font-size:.824rem;font-weight:700;cursor:pointer;border:none;font-family:inherit;min-height:38px;transition:background .15s,transform .1s;letter-spacing:.02em}
  .pwa-hint-btn--primary{background:var(--gold-fill,var(--gold));color:#0a0c0d}
  .pwa-hint-btn--primary:hover{background:#f0c84a}
  .pwa-hint-btn--primary:active{transform:scale(.97)}
  .pwa-hint-close{background:none;border:none;color:rgba(255,255,255,.75);font-size:1.294rem;cursor:pointer;padding:.25rem .45rem;line-height:1;border-radius:4px;flex-shrink:0;min-height:38px;min-width:38px;font-family:inherit}
  .pwa-hint-close:hover{color:#fff;background:rgba(255,255,255,.12)}
  @media(max-width:540px){.pwa-hint{padding:.7rem .85rem;gap:.5rem;align-items:flex-start}.pwa-hint-icon{margin-top:.15rem}.pwa-hint-body{flex-basis:calc(100% - 5rem);font-size:.824rem;order:2}.pwa-hint-body strong{font-size:.824rem}.pwa-hint-close{order:3;margin-left:auto}.pwa-hint-actions{order:4;flex-basis:100%;justify-content:stretch;margin-top:.3rem}.pwa-hint-btn--primary{flex:1;text-align:center;justify-content:center}}
  @media all and (display-mode:standalone){.pwa-hint{display:none!important}.pwa-modal{display:none!important}}
  /* Visual instruction modal */
  .pwa-modal{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
  .pwa-modal.show{display:flex;animation:pwa-fade-in .25s ease-out}
  @keyframes pwa-fade-in{from{opacity:0}to{opacity:1}}
  .pwa-modal-card{position:relative;background:#0a0c0d;border:1px solid rgba(var(--gold-rgb),.45);border-radius:14px;max-width:430px;width:100%;max-height:calc(100vh - 2rem);overflow-y:auto;box-shadow:0 20px 50px rgba(0,0,0,.6);color:#fff}
  .pwa-modal-close{position:absolute;top:.6rem;right:.6rem;background:rgba(255,255,255,.1);border:none;width:36px;height:36px;border-radius:50%;color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .15s}
  .pwa-modal-close:hover{background:rgba(255,255,255,.22)}
  .pwa-modal-head{padding:1.4rem 1.4rem 1rem;border-bottom:1px solid rgba(var(--gold-rgb),.18);text-align:center}
  .pwa-modal-head h3{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.294rem;font-weight:700;letter-spacing:.005em;color:#fff}
  .pwa-modal-head p{margin:0;font-size:.824rem;color:rgba(255,255,255,.78);line-height:1.5}
  .pwa-modal-body{padding:1rem 1.2rem 1.4rem}
  /* Step-by-step blocks */
  .pwa-step{display:flex;gap:.85rem;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.06)}
  .pwa-step:last-child{border-bottom:none}
  .pwa-step-num{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--gold-fill,var(--gold));color:#0a0c0d;font-family:var(--font-display);font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
  .pwa-step-content{flex:1;min-width:0}
  .pwa-step-title{font-size:1rem;font-weight:700;color:#fff;margin-bottom:.25rem;line-height:1.35}
  .pwa-step-desc{font-size:1rem;color:rgba(255,255,255,.78);line-height:1.55}
  .pwa-step-desc strong{color:#fff;font-weight:600}
  .pwa-step-desc kbd{display:inline-block;padding:.05rem .42rem;margin:0 .12rem;background:rgba(var(--gold-rgb),.18);border:1px solid rgba(var(--gold-rgb),.35);border-radius:4px;font-family:inherit;font-size:1rem;font-weight:700;color:var(--gold);vertical-align:baseline}
  /* Visual diagrams (inline SVG) */
  .pwa-visual{margin:.7rem 0 .2rem;background:#1a2510;border:1px solid rgba(var(--gold-rgb),.18);border-radius:8px;padding:.7rem;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .pwa-visual svg{display:block;max-width:100%;height:auto}
  /* Pulsing finger / arrow indicator on the diagram */
  @keyframes pwa-pulse-tap{0%,100%{transform:translate(0,0);opacity:1}50%{transform:translate(0,3px);opacity:.55}}
  @keyframes pwa-pulse-glow{0%,100%{filter:drop-shadow(0 0 0 rgba(var(--gold-rgb),.9))}50%{filter:drop-shadow(0 0 6px rgba(var(--gold-rgb),.95))}}
  .pwa-arrow-anim{animation:pwa-pulse-tap 1.4s ease-in-out infinite,pwa-pulse-glow 1.4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
  .pwa-modal-footer{padding:.85rem 1.2rem 1.2rem;text-align:center;border-top:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.25)}
  .pwa-modal-footer-text{font-size:.824rem;color:rgba(255,255,255,.62);line-height:1.5}
  .pwa-modal-footer-text strong{color:var(--gold);font-weight:600}
  /* Mobile tweaks */
  @media(max-width:480px){
    .pwa-modal{padding:.5rem;align-items:flex-end}
    .pwa-modal-card{max-height:calc(100vh - 1rem);border-bottom-left-radius:0;border-bottom-right-radius:0}
    .pwa-modal-head h3{font-size:1.294rem}
    .pwa-modal-body{padding:.85rem 1rem 1.1rem}
    .pwa-step{padding:.75rem 0}
    .pwa-step-title{font-size:.824rem}
    .pwa-step-desc{font-size:1rem}
    .pwa-visual{padding:.5rem}
  }

/* per-contract staleness — a held quote must not pose as live.
   2026-10-08: marked with a word, not faded. Opacity .55 took every label in
   a held row (soybean meal, light and dark) under 4.5:1. */
.stale-tile{opacity:1}
.t-item.stale-tile .t-unit::after,#f-prices .r7-row.stale-tile .r7-cm::after{content:" \00b7  held"}

/* ===== block 3 of 23 ===== */
/* ===== 2026-09-30: real two-column page shell, replacing the Option-B
   `order:` hack above. .idx1-shell is a sibling wrapper inside <main>
   holding .idx1-content (everything that used to be main's direct
   children, now in real DOM order — no more CSS reordering) and a real
   <aside class="intel-rail"> that runs the FULL height of the page next
   to it, not just one grafted row. minmax(0,1fr) on the content track,
   same reasoning as the old .idx1-intel-row fix this replaces: a bare 1fr
   track's implicit minimum is its content's max-content width, which is
   how the 390px scrollWidth bug happened before. Collapses to one column
   under 900px; DOM order (content, then aside) is unchanged at that
   breakpoint, so a first-time mobile visitor still hits price/weather
   content before the rail — same call the mockup's own comment makes for
   reverting rail-first-on-mobile. ===== */
.idx1-shell{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.1rem;align-items:start}
.idx1-content{min-width:0;display:flex;flex-direction:column}
.intel-rail{display:flex;flex-direction:column;gap:1.1rem;min-width:0}
@media(max-width:900px){.idx1-shell{grid-template-columns:minmax(0,1fr)}}
/* Inside the 340px rail, COT + Nowcast stack (they sat side-by-side only
   when the row was 2x as wide as it is now as a standalone rail column). */
.intel-rail .ratio-cot-grid{grid-template-columns:1fr}
.intel-rail #f-cot-intel .sec-head,.intel-rail #f5 .sec-head{margin-bottom:.35rem}

/* Density pass: nothing here wraps a section in a second box. Real cards
   already have their own 2px border and radius (components/styles.css
   .card) -- a padded, bordered panel around a group of them was a container
   around containers, and it's gone. Zone identity is a thin colored rule
   above the section instead, and every spacing var that controls the gap
   between sections/cards/rows is tightened, scoped to this page only (these
   are the live site's own custom properties, redefined here, not edited in
   components/styles.css, so nothing else on the site is affected). */
body{--sp-md:.6rem;--sp-lg:.85rem;--sp-xl:1.1rem;--sp-2xl:1.5rem}
.card-body{padding:.6rem .75rem}
.sec-head{margin-bottom:.35rem}
.dash-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:.7rem}
.price-cards-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:.55rem}
.price-cards-grid-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:.5rem}
.ratio-cot-grid{gap:.7rem}
.pc-price{font-size:1.882rem}
.daily-hero{margin-bottom:.6rem}
.daily-teaser{padding:.55rem .9rem}
/* The real site's "brief" state still shows the full headline + lead
   paragraph (by design -- confirmed, not a bug) at up to 3.6rem type, which
   alone was over 1,300px tall and pushed every dashboard widget below the
   fold. That's real editorial content on the live homepage and stays
   untouched there. Here, where the point is density, collapsed means
   collapsed: just the one-line teaser pill until a reader clicks it open --
   the click handler already lives in index.html's own script and still
   works, since it only ever toggles the `is-brief` class. */
#daily-hero.is-brief .daily-full{display:none}
/* .daily-teaser is display:none by default on the real site -- it only
   shows once a reader actively dismisses the briefing (.dismissed class).
   Hiding .daily-full above left nothing at all in its place. Force the
   one-line teaser pill visible here instead, so there's still a compact
   entry point into the real briefing rather than an empty gap. */
#daily-hero.is-brief .daily-teaser{display:flex!important}

.idx1-zone-label{display:flex;align-items:center;gap:.5rem;font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;margin:0 0 .5rem;padding-top:.5rem;border-top:2px solid}
.idx1-zone-label::before{content:'';width:7px;height:7px;border-radius:50%;flex:none}
.idx1-zone-label.idx1-zone-live{border-top-color:#4caf50;color:#8fd98f}
.idx1-zone-label.idx1-zone-live::before{background:#4caf50}
.idx1-zone-label small{font-weight:600;letter-spacing:0;text-transform:none;opacity:.7;font-size:.85em}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
fieldset.visually-hidden{border:0;margin:0;padding:0;min-width:0}
.idx1-extras-card .idx1-extras-title{margin-top:16px}
#idx1-trust-ledger{font-family:'JetBrains Mono',monospace;font-size:.706rem;color:var(--text-muted);font-weight:400;margin-top:8px;text-align:left;padding:8px 0 0;border-top:1px solid var(--border)}
/* ===== 2026-09-30: secondary bar under the real global header -- ZIP
   quick-access chip, ported from the Design canvas mockup's top-bar
   concept. Deliberately does NOT carry the mockup's "last 18h" example
   delta chips (up 6 cents / funds flipped short beans / frost advisory):
   no real feed on this page computes an 18-hour delta for those three
   things in one place, and honest-numbers says drop a chip rather than
   invent one. The ZIP chip is real: it focuses the actual bids-zip input
   already wired to live data below, it does not display or imply any
   number of its own.
   FIX 2026-09-30, round one: this block was first wrapped in its own
   nested style element, spliced in front of this page's already-open
   style element's own closing tag. Browsers do not parse nested style
   elements -- the HTML tokenizer stays in raw-text mode from the real
   opening tag and scans for the next literal closing-tag string, so that
   inner opening tag just became plain text inside the stylesheet, sitting
   in front of the idx1-subbar selector with no semicolon or brace between
   them; the CSS parser folded both into one invalid prelude and silently
   dropped that rule. Fixed by removing the inner tag pair.
   FIX 2026-09-30, round two: the fix above then repeated the same mistake
   one level up, inside this very comment, by spelling out that literal
   closing-tag text three times in prose. The HTML tokenizer has no idea
   CSS comments exist; once it is scanning raw text after a real style
   opening tag it ends that element at the first occurrence of that exact
   literal string it meets anywhere, even inside a slash-star comment.
   That first occurrence sat in this paragraph, truncating the whole style
   element right there and dumping every rule written after it back out as
   unstyled tag soup -- including idx1-subbar itself, again, silently,
   with no console error either time. Caught only by asking the real
   browser for its parsed stylesheet rules and finding none. Fixed by
   describing the tag in words from here on rather than ever spelling out
   that literal bracketed sequence inside a style element again. ===== */
.idx1-subbar{width:100%;box-sizing:border-box;padding:.5rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.idx1-zip-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;background:var(--surface2,rgba(255,255,255,.03));border:1px solid var(--border-2,var(--border));border-radius:20px;font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);cursor:pointer;min-height:30px}
.idx1-zip-chip:hover{border-color:var(--blue)}
.idx1-zip-chip .idx1-zip-label{color:var(--text-muted)}
.idx1-zip-chip .idx1-zip-val{color:var(--text);font-weight:600}
.idx1-zip-chip .idx1-zip-change{color:var(--blue);margin-left:.2rem}
@media(max-width:640px){.idx1-subbar{padding:.4rem .75rem}}

/* ===== block 4 of 23 ===== */
/* ===== 2026-10-01 cutover: phone length, folds, hairlines =====
   One boxed lead item on this page: the Cash Bids card. Everything else is
   ruled with a hairline. Spacing on the 4/8/12/16/24/32/48 scale. */
body{--hair:rgba(132,160,168,.12);--sp-md:12px;--sp-lg:16px;--sp-xl:24px;--sp-2xl:32px}

/* Folds. Open on desktop with the summary hidden, so desktop reads exactly as
   before. A script below closes them on a phone. */
.m-fold>summary.m-fold-sum{display:none}
@media(max-width:900px){
  .m-fold>summary.m-fold-sum{display:flex;align-items:center;justify-content:space-between;gap:12px;
    min-height:48px;padding:12px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
    cursor:pointer;list-style:none;font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}
  .m-fold>summary.m-fold-sum::-webkit-details-marker{display:none}
  .m-fold>summary.m-fold-sum::after{content:'+';font-size:1rem;color:var(--text-muted)}
  .m-fold[open]>summary.m-fold-sum::after{content:'\2212'}
  .m-fold>summary.m-fold-sum small{font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-muted)}
  .m-fold[open]>summary.m-fold-sum{border-bottom:0;margin-bottom:8px}
  .m-fold{margin:0 0 8px}
}

/* Phone. dash-grid stops being a box of its own so each card takes its own
   place in the column. 2026-10-06: the document is in the order the page
   shows (hero, bids, conditions, the wire, markets, the month, the rest), so
   no CSS order is needed and keyboard order matches the screen. */
@media(max-width:900px){
  #dash-grid{display:contents!important}
  #f1{margin-bottom:24px}
  #f2{margin-bottom:24px}
  #f-rail-scorecard-teaser{margin-bottom:16px}
  /* The bid-network note goes under the card on a phone, one line. */
  #f1{display:flex;flex-direction:column}
  #f1>.bidnet-note{margin:8px 0 0;padding:8px 0;border:0;border-top:1px solid var(--hair);border-radius:0;background:none;font-size:.706rem}
  #f1>.bidnet-note .bidnet-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Three signup asks on one phone screen was two too many. The compact one
     shows only when a reader asks for it from the bids card. */
  #signup-compact:not(.is-asked){display:none!important}
  /* Futures tiles two to a row on a phone. */
  #f-prices .price-cards-grid,#f-prices .price-cards-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 12px!important}
  #f-prices .pc{padding:12px 0!important}
  #f-prices .pc-price{font-size:1.294rem!important}
  #f-prices .pc-sm .pc-price{font-size:1.294rem!important}
  #f-prices .pc-head{margin-bottom:4px}
  #f-prices .pc-contract{padding:0;background:none}
}

/* Hairline walk (desktop and phone). Gradients and boxes come off the panels
   that are not the lead item. */
#f2 .card,#f-prices .pc,.crop-widget,.export-widget,.tariff-widget,.fert-widget,
.ratio-widget,.cot-widget,.noaa-card,#f-read .sig,#f-faq .faq-item,.usda-cal-card,.km-card{
  background:transparent!important;border:0!important;border-top:1px solid var(--hair)!important;
  border-radius:0!important;box-shadow:none!important}
#f-prices .pc::before{display:none}
#f-prices .pc:hover,#f-read .sig:hover,.km-card:hover{border-top-color:var(--border-2)!important;transform:none!important}
.crop-widget,.export-widget,.tariff-widget,.fert-widget,.ratio-widget,.cot-widget{padding:12px 0!important}
#f2 .card-body{padding:12px 0}
#f-read .sig{padding:12px 0!important}
#f-faq .faq-item{margin-bottom:0!important}
.usda-cal-card{padding:12px 0!important}
@media(max-width:900px){
  .m-fold--calc:not(:has(.idx1-extras-card[style*="block"])):not(:has(.idx1-extras-line[style*="block"])){display:none}
  .card-body:has(.idx1-extras-card[style*="block"]) .idx1-bids-hint{display:none}
  #signup-full .signup-icon,#signup-full .signup-sub{display:none}
  #signup-full{padding:16px 12px!important}
  #signup-full .signup-headline{font-size:1.294rem!important;margin-bottom:12px}
}
@media(max-width:900px){
  /* The field-scout link in the weather card: one ruled line, not a box. */
  #f2 .wx-fs-bridge{padding:8px 0!important;border:0!important;border-top:1px solid var(--hair)!important;border-bottom:1px solid var(--hair)!important;border-radius:0!important;background:none!important}
}
@media(min-width:1240px){
  /* Wide screens: bids and weather side by side, so the board is not three
     screens down on a desktop either. Bids stays left, the lead item. */
  #dash-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)!important;align-items:start}
  #f1{grid-column:1!important;grid-row:1/span 2}
  #f2{grid-column:2!important;grid-row:1}
  #f-rail-scorecard-teaser{grid-column:2;grid-row:2}
  #dash-grid>.m-fold--tools{grid-column:1/-1;grid-row:4}
}
@media(max-width:640px){
  /* The two chips share one row on a phone; the row scrolls sideways
     inside itself if a long ZIP label ever needs it. */
  .idx1-subbar{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}
  .idx1-subbar>*{flex:none}
}
@media(max-width:900px){
  /* Content ran edge to edge on a phone (main had no side padding). */
  #main.main{padding-left:16px!important;padding-right:16px!important}
}
/* Wire, harvest band and RMA discovery: ruled, not boxed. */
#wire-band.wr,#harvest-band.hbz,#pdw.pdw{background:none!important;border:0!important;border-top:1px solid var(--hair)!important;border-radius:0!important;padding:12px 0!important;margin:0 0 8px!important}
@media(max-width:640px){
  /* styles.css stacks the signup row in a column but keeps flex-basis 160px,
     which made each input 160px TALL on a phone. */
  #signup-full .signup-input{flex:none!important}
  /* One tab ("Email") is not a choice. */
  #signup-full .signup-tabs{display:none}
}
/* The lead item keeps its box. */
#f1>.card{border:1px solid var(--border-2);border-radius:8px;background:var(--surface)}

/* ===== block 5 of 23 ===== */
/* ===== 2026-10-01 cutover, round 2 (panel findings) ===== */
/* Keyboard: a focused ticker link stops the track, and the hidden clone
   copy is never a tab stop (geo.js marks it inert). */
.ticker-track:focus-within{animation-play-state:paused}
.t-link{color:inherit;text-decoration:none;min-height:24px;display:inline-flex;align-items:center}
.t-link:hover .t-label{text-decoration:underline}
/* Futures: the change is coloured text, not a filled chip; the contract
   label is plain text; the range ends never break mid-number. */
#f-prices .pc-chg-val{background:none!important;border:0!important;padding:0!important;border-radius:0!important}
#f-prices .pc-contract{background:none!important;padding:0!important}
#f-prices .pc-range-labels{gap:8px}
#f-prices .pc-range-labels>span:first-child,#f-prices .pc-range-labels>span:last-child{white-space:nowrap;flex:none}
#f-prices .pc-range-labels>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
/* Section labels in text colour; gold is kept for live and lead items. */
#main .sec-title{color:var(--text)}
/* Boxes that are not the lead item: weather sub-tiles, signup, teaser. */
#f2 .wx-grid>*,#f2 .wx-data-extra>*,#f2 .wx-today,#f2 .wx-fs-bridge,#f-rail-scorecard-teaser .rsc-teaser-link,
#signup-full,.tariff-row,.fert-card{background:none!important;border:0!important;border-top:1px solid var(--hair)!important;border-radius:0!important;box-shadow:none!important}
#f2 .wx-today{border-left:0!important}
@media(max-width:900px){
  /* A fold's own summary is its heading on a phone; the h2 inside would
     read the same title twice. */
  .m-fold>summary.m-fold-sum~* .sec-head>.sec-title{display:none}
  .m-fold>summary.m-fold-sum small{font-size:.765rem}
  .m-fold--more>summary~.pc-section-lbl{display:none}
  /* The weather card was pulled 16px past the gutter on each side. */
  #f1>.card,#f2 .wx-card{margin-left:0!important;margin-right:0!important;width:auto!important;max-width:100%}
}
@media(min-width:901px){
  #dash-grid>#f-prices{grid-column:1/-1}
}
@media(min-width:1240px){
  #dash-grid>#f-prices{grid-row:3}
}
@media(min-width:1240px){
  /* Four key contracts on one row, no empty fifth column. */
  #f-prices .price-cards-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}

/* ===== block 6 of 23 ===== */
/* ===== 2026-10-01 round 4: the Wire sits under the board, open ===== */
#dash-grid>#wire-band{grid-column:1/-1}
@media(min-width:1240px){
  #dash-grid>#wire-band{grid-row:4}
  #dash-grid>.m-fold--tools{grid-row:5!important}
}

/* ===== block 7 of 23 ===== */
/* ===== 2026-10-01 round 5: second panel ===== */
/* Reserve the bids card's height for a returning reader. */
html.has-zip #bids-list-area:has(.bids-skeleton){min-height:820px}
@media(min-width:901px){html.has-zip #bids-list-area:has(.bids-skeleton){min-height:760px}}
/* Tooltip: a visible text trigger, tap or Enter opens, Esc closes. */
.tip{position:relative;display:inline-block}
.tip-b{font:500 .765rem/24px 'JetBrains Mono',monospace;color:var(--text-dim);background:none;border:0;border-bottom:1px dotted currentColor;padding:0 2px;min-height:24px;cursor:pointer;letter-spacing:0;text-transform:none}
.tip-b:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.tip-t{position:absolute;z-index:60;top:calc(100% + 4px);left:0;width:max-content;max-width:min(300px,calc(100vw - 32px));padding:8px 12px;background:#161b1c;border:1px solid rgba(132,160,168,.24);font:400 .824rem/1.5 Inter,system-ui,sans-serif;color:var(--text);white-space:normal;text-align:left;text-transform:none;letter-spacing:0}
.tip-t[hidden]{display:none}
.cot-full-link{white-space:nowrap}
/* One email ask: the compact bar only when a reader asks for it. */
#signup-compact:not(.is-asked){display:none!important}
#signup-full .signup-icon,#signup-full .signup-tabs{display:none}
@media(min-width:901px){
  #signup-full{padding:24px!important}
  #signup-full .signup-headline{font-size:1.294rem!important;margin-bottom:8px}
  #signup-full .signup-sub{font-size:.824rem;margin-bottom:12px}
}
/* The bid-network note: one ruled line under the card at every width. */
#f1{display:flex;flex-direction:column}
#f1>.bidnet-note{margin:8px 0 0;padding:8px 0;border:0;border-top:1px solid var(--hair);border-radius:0;background:none;font-size:.706rem}
#f1>.bidnet-note .bidnet-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* The Wire: two columns of cards on wide screens, ruled not boxed. */
#wire-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:0 24px}
#wire-g .wr-c{background:none!important;border:0!important;border-top:1px solid var(--hair)!important;border-radius:0!important;padding:12px 0!important}
#wire-g .wr-c.hi strong{color:var(--gold)}
.wr-meta{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);margin:4px 0 0}
/* Land, storage & risk band. */
.idx1-land{margin:0 0 24px;padding-top:16px;border-top:1px solid var(--hair)}
.land-grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:0 24px}
.land-cell{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-top:1px solid var(--hair);text-decoration:none;color:inherit;min-height:44px}
.land-cell:hover .land-v{text-decoration:underline}
.land-k{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.land-v{font-size:1rem;font-weight:700;color:var(--text);line-height:1.3}
.land-lead .land-v{font-size:1.294rem}
.land-v .n{font-family:'JetBrains Mono',monospace}
.land-s{font-size:.824rem;color:var(--text-dim);line-height:1.45}
.land-links{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.824rem}
.land-links a{color:var(--text-dim);text-decoration:none;display:inline-flex;min-height:32px;align-items:center}
.land-links a:hover{color:var(--text);text-decoration:underline}
@media(max-width:900px){
  .land-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .land-lead{grid-column:1/-1}
}
/* 901-1239: the gutter, and Quick Tools full width. */
@media(min-width:901px) and (max-width:1239px){
  #main.main{padding-left:16px!important;padding-right:16px!important}
  #dash-grid>.m-fold--tools{grid-column:1/-1}
}
/* Desktop: the lower page runs full width under the rail. */
@media(min-width:1240px){
  .idx1-shell{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 340px!important;column-gap:24px;row-gap:0}
  .idx1-content,#dash-grid,#f-prices{display:contents!important}
  .idx1-content>*{grid-column:1/-1}
  .idx1-content>.home-h1{grid-column:1/3}
  .idx1-content>.idx1-zone-label{grid-column:1/3;grid-row:1}
  #f1{grid-column:1!important;grid-row:2/5!important;align-self:start;margin-bottom:24px}
  #f2{grid-column:2!important;grid-row:2!important;align-self:start}
  #wire-band{grid-column:2!important;grid-row:3!important;align-self:start}
  #wire-g{grid-template-columns:minmax(0,1fr)!important}
  /* Under the weather card there is room for two; the rest is one tap away. */
  #wire-g .wr-c:nth-child(n+3){display:none}
  #f-rail-scorecard-teaser{display:none}
  #market-intel{grid-column:3!important;grid-row:1/9!important;align-self:start}
  #f-prices>.sec-head{grid-column:1/3;grid-row:5;margin-top:24px}
  #f-prices>.pc-section-lbl{grid-column:1/3;grid-row:6}
  #f-prices>.price-cards-grid{grid-column:1/3;grid-row:7}
  #f-prices>.m-fold--usda{grid-column:1/3;grid-row:8}
  #f-prices>.m-fold--more{grid-column:1/-1;grid-row:9}
  #f-prices>.m-fold--outside{grid-column:1/-1;grid-row:10}
  #dash-grid>.m-fold--tools{grid-column:1/-1!important;grid-row:11!important}
  .faq-list{columns:2;column-gap:24px}
  .faq-list .faq-item{break-inside:avoid}
}

/* ===== block 8 of 23 ===== */
/* ===== 2026-10-01 round 6. Sig: "lets mute the sponsor this and not be in
   your face with it." The empty slot is a quiet ad-orange text link (paid
   space is always ad orange), no box, no pulse, no price; gone on a phone (the footer strip still sells the slot). A paid
   sponsor, when there is one, keeps its ad-orange label, smaller. ===== */
/* 2026-10-07, Sig: "make the sponsor slots catch your eye". The empty slot
   is back as a solid ad-orange pill with a pulsing dot and its price (written
   from data/rate-card.json by scripts/stamp_rates.py), on every screen size.
   #0d1117 on --ad-orange is 6.4:1. A paid sponsor's label stays small. */
#daily-teaser-sponsor.empty-state{display:inline-flex!important;align-items:center;gap:.45rem;font-size:.86rem!important;font-weight:800!important;letter-spacing:.02em!important;text-transform:none!important;
  color:#0d1117!important;background:var(--ad-orange)!important;border:0!important;border-radius:999px;padding:.42rem .95rem .42rem .8rem!important;box-shadow:0 3px 16px rgba(var(--ad-orange-rgb),.35)!important;text-decoration:none;min-height:36px}
#daily-teaser-sponsor.empty-state:hover{color:#0d1117!important;background:var(--ad-orange-hi)!important;text-decoration:none;transform:translateY(-1px)}
/* Sig's rule: anything that sells or shows paid space is ad orange, always.
   Light theme needs a darker orange to stay readable as text (4.5:1). */
html[data-theme="light"] #daily-teaser-sponsor:not(.empty-state){color:var(--ad-orange-ink)!important}
#daily-teaser-sponsor.empty-state .teaser-sponsor-dot{display:inline-block!important;margin:0;background:#0d1117!important;box-shadow:0 0 0 0 rgba(13,17,23,.5)!important;animation:ag-open-pulse 1.8s ease-out infinite!important}
#daily-teaser-sponsor.empty-state .teaser-sponsor-tag{display:inline!important;font-family:'JetBrains Mono',monospace;font-size:.78rem;font-weight:800;opacity:1;margin-left:.15rem;padding-left:.5rem;border-left:1px solid rgba(13,17,23,.35)}
@media(prefers-reduced-motion:reduce){#daily-teaser-sponsor.empty-state .teaser-sponsor-dot{animation:none!important}}
#daily-teaser-sponsor.has-sponsor{font-size:.765rem!important;padding:2px 6px!important}
@media(max-width:640px){#daily-teaser-sponsor.empty-state{font-size:.8rem!important;padding:.38rem .75rem!important;max-width:100%}.s7-adrow{justify-content:center!important}}
@media(max-width:480px){#daily-teaser-sponsor.empty-state{font-size:.74rem!important;gap:.3rem;padding:.34rem .6rem!important;letter-spacing:0!important}
  #daily-teaser-sponsor.empty-state .teaser-sponsor-tag{font-size:.7rem;padding-left:.35rem;margin-left:.05rem;letter-spacing:-.01em}}

/* ===== block 9 of 23 ===== */
/* ===== 2026-10-01 r7-prices: ticker, key contracts, ledger rows, crop progress, export sales, fertilizer, prediction markets ===== */
/* Ticker: units after every price; empty until loaded, never a bare dash. */
.prices-strip .t-unit{font:500 .765rem/1 'JetBrains Mono',monospace;color:var(--text-muted);margin-left:-.15rem}
.prices-strip .t-price:empty+.t-unit{display:none}
.prices-strip .t-price,.prices-strip .t-chg{font-variant-numeric:tabular-nums}
/* Key contracts: unit beside the price. Up/down in the light theme: the
   theme's --green #2e7d4f and --red #c0492f measured only 4.61:1 and 4.53:1
   on the rendered #f4f5f3 behind these tiles (4.40/4.33 on --bg2 #eef0ed),
   so two darker light-theme variants are used here, measured 5.87:1 and
   5.71:1 on #f4f5f3 and 5.60:1 / 5.45:1 on #eef0ed. */
[data-theme="light"]{--r7-up:#276b43;--r7-dn:#a63f28}
#f-prices .price-cards-grid .r7-pl{display:flex;align-items:baseline;gap:8px;min-width:0}
#f-prices .price-cards-grid .r7-pl .pc-price{min-width:0;overflow:visible}
.r7-frac{font-size:.55em;font-weight:600;letter-spacing:0;margin-left:.15em}
#f-prices .price-cards-grid .r7-unit{font:500 .765rem/1 'JetBrains Mono',monospace;color:var(--text-muted);white-space:nowrap}
#f-prices .pc-price:empty::before{content:'Not loaded yet';font:500 .824rem/1.4 Inter,system-ui,sans-serif;color:var(--text-muted);letter-spacing:0}
#f-prices .pc-price:empty+.r7-unit{display:none}
/* No stale numbers before (or without) the live file: the range, dot and
   contract chip ship empty and stay out of sight until written. */
#f-prices .price-cards-grid .pc-range:has(.pc-range-labels>span:first-child:empty){visibility:hidden}
#f-prices .price-cards-grid .pc-contract:empty{display:none}
[data-theme="light"] #f-prices .pc-chg-val.up,[data-theme="light"] #f-prices .r7-chg.up,[data-theme="light"] #f-prices .r7-pct.up,[data-theme="light"] .crop-chg.up,[data-theme="light"] #fert-grid .fert-chg-val.dn{color:var(--r7-up)!important}
[data-theme="light"] #f-prices .pc-chg-val.dn,[data-theme="light"] #f-prices .r7-chg.dn,[data-theme="light"] #f-prices .r7-pct.dn,[data-theme="light"] .crop-chg.dn,[data-theme="light"] .crop-ge-val.poor,[data-theme="light"] #fert-grid .fert-chg-val.up{color:var(--r7-dn)!important}

/* Ledger rows: one alignment line, hairlines, no boxes. */
.r7-ledgers{margin:0 0 8px}
@media(min-width:1240px){
  .r7-ledgers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;align-items:start}
  .r7-ledgers>.m-fold{margin:0}
}
@media(min-width:1240px){#f-prices>.r7-ledgers{grid-column:1/-1;grid-row:9}}
#f-prices .r7-led{display:block;margin:0 0 16px;font-variant-numeric:tabular-nums}
#f-prices .r7-lh,#f-prices .r7-led .pc.r7-row{display:grid!important;grid-template-columns:minmax(0,1.45fr) minmax(0,1.35fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,1.5fr);column-gap:16px;align-items:center}
#f-prices .r7-lh{padding:0 0 6px;font:500 .765rem/1.3 'JetBrains Mono',monospace;color:var(--text-muted);letter-spacing:.02em}
#f-prices .r7-lh span:nth-child(2),#f-prices .r7-lh span:nth-child(3),#f-prices .r7-lh span:nth-child(4){text-align:right}
#f-prices .r7-led .pc.r7-row{padding:8px 0!important;min-height:44px;margin:0;overflow:visible;border-radius:0!important;background:none!important;
  border:0!important;border-top:1px solid var(--hair)!important;box-shadow:none!important;animation:none!important;flex-direction:initial}
#f-prices .r7-led .pc.r7-row:last-child{border-bottom:1px solid var(--hair)!important}
#f-prices .r7-led .r7-row [hidden]{display:none!important}
#f-prices .r7-nm{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:0;min-width:0}
#f-prices .r7-n{font:600 .824rem/1.35 Inter,system-ui,sans-serif;color:var(--text)}
#f-prices .r7-cm{font:500 .765rem/1.35 'JetBrains Mono',monospace;color:var(--text-muted);white-space:nowrap}
#f-prices .r7-last{display:flex;justify-content:flex-end;align-items:baseline;gap:6px;min-width:0;white-space:nowrap}
#f-prices .r7-led .pc-price{font:600 1rem/1.2 'JetBrains Mono',monospace!important;letter-spacing:0!important;margin:0!important;color:var(--text);overflow:visible;font-variant-numeric:tabular-nums}
#f-prices .r7-led .pc-price:empty::before{font-size:.765rem}
#f-prices .r7-unit{font:500 .765rem/1 'JetBrains Mono',monospace;color:var(--text-muted)}
#f-prices .r7-ch,#f-prices .r7-pc{text-align:right;white-space:nowrap;font:500 .824rem/1.3 'JetBrains Mono',monospace}
#f-prices .r7-chg.up,#f-prices .r7-pct.up{color:#8ceeb2}
#f-prices .r7-chg.dn,#f-prices .r7-pct.dn{color:#ffa198}
#f-prices .r7-chg.nc,#f-prices .r7-pct.nc{color:var(--text-muted)}
#f-prices .r7-rg{display:grid;grid-template-columns:auto auto;grid-template-areas:"bar bar" "lo hi";row-gap:5px;align-items:center;min-width:0;font:500 .765rem/1 'JetBrains Mono',monospace;color:var(--text-muted);white-space:nowrap}
#f-prices .r7-lo{grid-area:lo}#f-prices .r7-hi{grid-area:hi;text-align:right}
#f-prices .r7-bar{grid-area:bar;position:relative;height:2px;margin:3px 4px 0;background:var(--border-2)}
#f-prices .r7-dot{position:absolute;top:50%;left:0;width:7px;height:7px;border-radius:50%;background:var(--text);transform:translate(-50%,-50%)}
#f-prices .r7-lo:empty~.r7-bar{visibility:hidden}
#f-prices .r7-row.stale-tile{opacity:1}
@media(max-width:600px){
  #f-prices .r7-lh{display:none!important}
  #f-prices .r7-led .pc.r7-row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"nm last last" "rg ch pc";row-gap:6px;column-gap:12px;padding:10px 0!important}
  #f-prices .r7-nm{grid-area:nm}#f-prices .r7-last{grid-area:last}#f-prices .r7-ch{grid-area:ch}#f-prices .r7-pc{grid-area:pc}#f-prices .r7-rg{grid-area:rg}
  #f-prices .r7-led .pc-price{font-size:1rem!important}
}

@media(max-width:900px){.m-fold--outside>summary+.pc-section-lbl{display:none}}

/* Crop progress: one honest line when harvest progress is not in the file. */
.r7-crop-note{font:500 .765rem/1.5 'JetBrains Mono',monospace;color:var(--text-muted);padding:8px 0 0;border-top:1px solid var(--hair);margin-top:8px}
/* Export and fertilizer tooltips: 44px tap target on phones. */
@media(max-width:900px){.r7-tip .tip-b{min-height:44px;line-height:44px}}
.r7-tip .tip-b{white-space:nowrap}
#export-widget .export-footer{flex-wrap:wrap;column-gap:12px;row-gap:4px}
#export-widget .export-comm-name{white-space:nowrap}
@media(max-width:600px){#export-widget .export-row-head{flex-wrap:wrap;row-gap:2px;column-gap:12px}}
#fert-src-note{font:500 .765rem/1.5 'JetBrains Mono',monospace;color:var(--text-muted)}

/* Fertilizer: ledger rows instead of cards (the change was wrapping "1 05"). */
#fert-grid.r7-fert{display:block}
#fert-grid .r7-fh,#fert-grid .r7-fr{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) minmax(0,.9fr) minmax(0,1fr);column-gap:12px;align-items:baseline}
#fert-grid .r7-fh{font:500 .765rem/1.3 'JetBrains Mono',monospace;color:var(--text-muted);padding:0 0 6px}
#fert-grid .r7-fh span:nth-child(n+2){text-align:right}
#fert-grid .r7-fr{padding:8px 0;border-top:1px solid var(--hair);min-height:44px;font-variant-numeric:tabular-nums}
#fert-grid .r7-fn{font:600 .824rem/1.35 Inter,system-ui,sans-serif;color:var(--text);min-width:0}
#fert-grid .r7-fn small{display:block;font:500 .765rem/1.35 'JetBrains Mono',monospace;color:var(--text-muted)}
#fert-grid .r7-fp,#fert-grid .r7-fc,#fert-grid .r7-fd{text-align:right;white-space:nowrap;font:500 .824rem/1.3 'JetBrains Mono',monospace}
#fert-grid .r7-fp{font-weight:600;color:var(--text)}
#fert-grid .r7-fd{font-size:.765rem;color:var(--text-muted)}
#fert-grid .r7-fnote{font:500 .765rem/1.5 'JetBrains Mono',monospace;color:var(--text-muted);padding:8px 0 0;border-top:1px solid var(--hair)}

/* Prediction markets: hidden unless the file holds an ag-linked market. */
.m-fold--kalshi:not(.r7-ag){display:none!important}
.m-fold--kalshi.r7-ag #kalshi-grid,.m-fold--kalshi.r7-ag #kalshi-footer{display:none!important}
.r7-odds-lbl{font:500 .765rem/1.5 'JetBrains Mono',monospace;color:var(--text-muted);margin:0 0 8px}
.r7-odds-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;padding:8px 0;border-top:1px solid var(--hair);min-height:44px}
.r7-odds-t{font:600 .824rem/1.4 Inter,system-ui,sans-serif;color:var(--text)}
.r7-odds-p{font:600 1rem/1.2 'JetBrains Mono',monospace;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}
.r7-odds-m{grid-column:1/-1;font:500 .765rem/1.5 'JetBrains Mono',monospace;color:var(--text-muted)}

/* ===== block 10 of 23 ===== */
/* ===== 2026-10-01 r7-season: the page changes with the month =====
   The "This month" strip, plain chips, the briefing stamp, frost and soil in
   Local Conditions, one spray rule, and the seasonal show/hide classes the
   SEASON table sets on <html>. Hairlines, JetBrains Mono for numbers, no new
   gold. Ad orange only on the ad link. */
.s7-month{margin:0 0 24px;padding-top:12px;border-top:1px solid var(--hair,rgba(132,160,168,.12))}
.s7-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 4px}
.s7-h{font-family:var(--font-display,'Archivo',sans-serif);font-size:1.294rem;font-weight:800;line-height:1.2;margin:0;color:var(--text)}
.s7-k{font:700 .765rem/1.4 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.s7-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 16px}
.s7-c{display:flex;flex-direction:column;gap:4px;padding:12px 0;min-height:44px;border-top:1px solid var(--hair,rgba(132,160,168,.12));text-decoration:none;color:inherit;min-width:0}
.s7-c:hover .s7-cv,.s7-c:focus-visible .s7-cv{text-decoration:underline}
.s7-c:active{opacity:.75}
.s7-c:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.s7-ck{font:700 .765rem/1.4 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.s7-cv{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700;line-height:1.35;color:var(--text)}
.s7-cv .s7-line{display:block}
.s7-cv small{font-size:.765rem;font-weight:500;color:var(--text-dim)}
.s7-cm{font-size:.824rem;line-height:1.45;color:var(--text)}
.s7-cs{font-size:.765rem;line-height:1.45;color:var(--text-muted)}
.s7-cs .n,.s7-cm .n{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.s7-nl{font-family:Inter,system-ui,sans-serif;font-size:.824rem;font-weight:500;color:var(--text-muted)}
.s7-warn{color:var(--red)}
.s7-ok{color:var(--green)}
@media(max-width:900px){
  .s7-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .s7-c.s7-wide{grid-column:1/-1}
  /* a last card left alone in its row spans the row instead of sitting in half
     of it. The full-width insurance cell, when it leads, shifts the count by one. */
  #s7-grid>.s7-c:last-child:nth-child(odd):not(.s7-wide ~ .s7-c){grid-column:1/-1}
  #s7-grid>.s7-wide:first-child ~ .s7-c:last-child:nth-child(even){grid-column:1/-1}
  .s7-c{min-height:64px}
}
/* Desktop: the strip shares row 1 of the main columns with the "Live now"
   label, which sits at the bottom of that row. The shell grid is unchanged. */
@media(min-width:1240px){
  .idx1-content>.s7-month{grid-column:1/3;grid-row:1;align-self:start;margin-bottom:24px}
  .idx1-content>.idx1-zone-label{align-self:end}
}
/* C: chips. Plain words, 44px tap targets on a phone. */
@media(max-width:640px){.idx1-subbar .idx1-zip-chip{min-height:44px}}
/* D: briefing stamp and the ad link on its own line, away from the data. */
.s7-stamp{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);margin-right:8px;white-space:nowrap}
.s7-adrow{display:flex;justify-content:flex-end;max-width:1400px;margin:0 auto;padding:4px 16px 8px}
/* the empty sponsor row shows on a phone too (2026-10-07) */
/* E: overnight low and soil in Local Conditions. */
.wstat .s7-flag{display:block;font-family:Inter,system-ui,sans-serif;font-size:.765rem;font-weight:600;margin-top:4px}
.wstat .s7-sub{display:block;font-family:Inter,system-ui,sans-serif;font-size:.765rem;font-weight:500;color:var(--text-muted);margin-top:4px}
/* F: one spray rule, documented in the tooltip beside the 5-day label. */
.spray-windows-lbl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.s7-wx-off{font-size:.824rem;color:var(--text-muted);padding:8px 0}
/* H: radar shows "Not loaded yet" until the map paints over it. */
.radar-card{position:relative}
.s7-radar-empty{position:absolute;left:0;right:0;top:50%;text-align:center;font-size:.824rem;color:var(--text-muted);z-index:0;pointer-events:none}
#windy-frame{position:relative;z-index:1;background:transparent}
/* F37: NOAA card headings in text colour (the temperature one read as ad orange). */
.noaa-card-head.temp,.noaa-card-head.precip{color:var(--text-dim)!important}
.s7-brief-note{font-size:.824rem;line-height:1.5;color:var(--text);margin:0 0 8px;padding-left:8px;border-left:2px solid var(--hair,rgba(132,160,168,.24))}
/* Seasonal show/hide, set from the SEASON table. */
html.s7-no-urea #f3 .tool-widget--urea{display:none!important}
html.s7-no-planting #rma-widget{display:none!important}
html.s7-no-gdu #gdu-stat,html.s7-no-gdu #gdu-chart-panel{display:none!important}
html.s7-no-gdu .wx-data-extra{grid-template-columns:minmax(0,1fr)!important}
html.s7-no-hail #land-hail{display:none!important}
html.s7-no-croptour .s7-croptour{display:none!important}
#idx1-land .land-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
html.s7-no-hail #idx1-land .land-grid{grid-template-columns:minmax(0,1fr)}
@media(max-width:900px){#idx1-land .land-grid{grid-template-columns:minmax(0,1fr)!important}}

/* ===== block 11 of 23 ===== */
/* ===== 2026-10-01 r7-bids: Cash Bids, The Read, the Wire, rail, signup, FAQ, footer ===== */
/* Claim line: a quiet ruled row at the foot of the bids card. Not ad orange: it is not paid space. */
#f1 .r7-claim{display:flex;align-items:center;min-height:44px;margin-top:12px;padding-top:8px;border-top:1px solid var(--hair);font-size:.824rem;color:var(--text-dim);text-decoration:none}
#f1 .r7-claim:hover,#f1 .r7-claim:focus-visible{color:var(--text);text-decoration:underline}
#idx1-calc-carry-src{margin:.25rem 0 .4rem}
/* The Read: "61st percentile", one word, no gap */
#f-read .r7-ord{font-size:.5em;font-weight:700}
#f-read .sig-price:not([data-r7]){visibility:hidden}
#f-read .r7-barcap{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted)}
/* Rail */
#cot-rows .r7-cot-px{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);margin-top:4px;font-variant-numeric:tabular-nums}
#cot-rows .r7-up{color:var(--green)}#cot-rows .r7-dn{color:var(--red)}
#cot-rows .r7-dim{opacity:.85}
/* Light theme: darker up/down for these small figures, measured to 4.5:1 on the widget. */
html[data-theme="light"] #cot-rows .cot-dir.short,html[data-theme="light"] #cot-rows .cot-chg.dn{color:var(--red)}
html[data-theme="light"] #cot-rows .r7-up{color:#23663f}html[data-theme="light"] #cot-rows .r7-dn{color:#9a3620}
.r7-nc-usda{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);margin-top:4px;font-variant-numeric:tabular-nums}
#r7-pa-now{font-family:'JetBrains Mono',monospace;font-size:.765rem;color:var(--text-muted);min-height:1.1em;font-variant-numeric:tabular-nums}
@media(max-width:600px){
  #f-price-alert select,#f-price-alert input,#f-price-alert button{min-height:44px;font-size:1rem!important}
}
/* Signup: one row on desktop (email + button), stacked on a phone */
#signup-full .signup-row{display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;align-items:stretch}
#signup-full .signup-row .signup-input{flex:1 1 auto!important;min-width:0;min-height:44px}
#signup-full .signup-row .signup-submit{flex:none;min-height:44px}
#signup-compact .scu-input,#signup-compact .scu-btn{min-height:44px}
@media(max-width:600px){
  #signup-full .signup-row{flex-direction:column}
  #signup-full .signup-row .signup-input{font-size:1rem;width:100%}
  #signup-full .signup-row .signup-submit{width:100%}
  #signup-compact .scu-input{font-size:1rem}
}
/* Footer strip: the "Open" tag sat orange on the orange slot. Dark ink on
   the orange, both themes (the same #0d1117 the briefing's orange buttons use). */

/* ===== block 12 of 23 ===== */
/* ===== 2026-10-01 r7-design: gold budget, hairlines, states, phone order ===== */
/* 1. Gold budget. These were gold; they are text now. */
#daily-teaser-date.teaser-badge{color:var(--text-muted)!important;background:none!important;border-color:var(--hair)!important}
#f1 .sec-title>span{color:var(--text-muted)!important}
#bids-list-area>a,#bids-cta-link{color:var(--text)!important;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-2)}
#prices-age{color:var(--text-muted)!important}
.crop-ge-val.fair,.tariff-row-rate.mixed,.spray-day.caution .spray-day-status{color:var(--text)!important}
.crop-full-link,.export-full-link,.tariff-full-link,.fert-full-link,.cot-full-link,.ratio-link{color:var(--text-dim)!important;border:0!important;background:none!important;padding:0!important;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-2)}
.tariff-status-badge{color:var(--text-dim)!important;background:none!important;border:0!important;padding:0!important}
.wx-today-text strong,#wire-g .wr-c.hi strong,#sig-cattle-read b{color:var(--text)!important}
.wx-chart-toggle,#wire-band .wr-all{color:var(--text-dim)!important}
#wire-band .wr-k,#hbz-kicker,.radar-card>div>span,.drought-embed>summary>span,#pdw>label,.signup-eyebrow,#cot-date,#cot-countdown{color:var(--text-muted)!important}
.drought-embed>div>a,.noaa-note a,.pdw-ft a,.faq-a a,.idx1-content a[style*="color:var(--gold)"],.main a[style*="color:var(--gold)"]{color:var(--text)!important;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-2)}
.tool-widget.tool-widget--scout{border-left-color:var(--hair)!important;border-color:var(--hair)!important}
#bids-geo-bar>span[aria-hidden="true"]{background:var(--text-muted)!important}
#f-rail-scorecard-teaser a{color:var(--text-dim)!important}
.tool-widget--scout .tool-widget-badge{background:none!important;color:var(--text-dim)!important}
.noaa-tab.active{background:none!important;color:var(--text)!important;border-color:transparent!important;box-shadow:inset 0 -2px 0 var(--text)!important}
#sig-corn-num,#sig-beans-num,#sig-wheat-num,#sig-cattle-num{color:var(--text)!important}
.sig-fill{background:var(--text-muted)!important}
.cal-card:not(.today):not(.is-today) .cal-date{color:var(--text)!important}
.ratio-verdict,.cot-verdict{background:none!important;border:0!important;padding:0!important}
.ratio-verdict{color:var(--text-dim)!important}
.wx-summary-title{color:var(--text)!important}
#drawer .draw-lbl,#drawer .draw-lbl-ic{color:var(--text-muted)!important}
#drawer .draw-item{color:var(--text)!important}
/* What stays gold, darker in the light theme so it reads (4.96:1 on the
   light page's deepest background, measured; #a87d1e was 3.4:1). */
html[data-theme="light"] .teaser-action,html[data-theme="light"] .bidnet-tag{color:#86600f!important;border-color:#86600f!important}

/* 2. Boxes to hairlines. Cash Bids is the only box. */
.crop-week-badge,.export-mkt-yr,.sig-tag,#f-whats-priced a[href="/whats-priced-in"],a[href="/whats-priced-in"][style*="border-radius:5px"]{border:0!important;padding:0!important;background:none!important;color:var(--text-muted)!important}
.cal-card,.hbz-c,.radar-card,.drought-embed,.spray-day{background:none!important;border:0!important;border-top:1px solid var(--hair)!important;border-radius:0!important;box-shadow:none!important}
.hbz-c,.spray-day{padding-left:0!important;padding-right:0!important}
.wx-7day-cell{background:none!important;border-radius:0!important;border-top:1px solid var(--hair)!important}
#nowcast-widget div[style*="border-radius:9px"]{background:none!important;border:0!important;border-top:1px solid var(--hair)!important;border-radius:0!important}
.cot-dir{background:none!important;padding:0!important}
.pdw-pill.open{background:none!important;color:var(--green)!important;padding:0!important}
.wx-hourly-toggle{background:none!important;border:0!important;border-top:1px solid var(--hair)!important;border-radius:0!important;color:var(--text-dim)!important}

/* One section-title style for the widget heads. */
.crop-widget-title,.export-widget-title,.tariff-widget-title,.fert-widget-title,.ratio-widget-title,.wx-summary-title{font-family:'JetBrains Mono',monospace!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--text)!important}

.r7-cov{font-family:'JetBrains Mono',monospace;font-size:.706rem;color:var(--text-muted);padding:8px 0 0;border-top:1px solid var(--hair)}
#idx1-trust-ledger{border-top:0!important;padding-top:4px!important}
/* Tooltips: theme colours (the box was hard-coded #161b1c, unreadable in
   light theme at 1:1), and an open tip rises above the next card. */
.tip-t{background:var(--surface2)!important;color:var(--text)!important;border-color:var(--border-2)!important;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.fade-up:has(.tip-t:not([hidden])),.card:has(.tip-t:not([hidden])){position:relative;z-index:61}
/* Light-theme contrast, measured against the real background (before ->
   after): skip links 3.48 -> 5.69, subbar chip words 2.58 -> 6.11 (#2d5d82),
   Live Now 1.56 -> 5.60 (#276b43), muted COT/scorecard notes 3.26-3.98 ->
   text-dim, footer sponsor label 3.0 -> ad-orange-ink. */
html[data-theme="light"] .skip-link,html[data-theme="light"] .idx1-skip-rail{background:#86600f!important;color:#fff!important}
html[data-theme="light"] .idx1-zip-change{color:#2d5d82!important}
html[data-theme="light"] .idx1-zone-live,html[data-theme="light"] .idx1-zone-live small{color:#276b43!important;opacity:1!important}
html[data-theme="light"] .r7-dim,html[data-theme="light"] #rsc-stats span{color:var(--text-dim)!important}
.rsc-teaser-cta{color:var(--text-dim)!important}
/* The calculator tooltip sits inside the Cash Bids card, which clipped it
   (overflow:hidden); let it show. */
#f1>.card,.card:has(.tip-t:not([hidden])){overflow:visible!important}
/* No ZIP set: there are no "your bids" yet, so the Live Now line waits. */
html:not(.has-zip) .idx1-zone-live small{display:none}
/* Gold budget: the NEW line's arrow is text, not a second gold mark. */
.bidnet-go{color:var(--text-muted)!important}
/* The three chips above the ticker: plain links on a hairline, not boxes. */
.idx1-zip-chip{background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding-left:0!important;padding-right:12px!important}
/* 4. States. */
a:active,button:active,summary:active,[role="button"]:active{opacity:.72}
details>summary{cursor:pointer}
details>summary:hover{color:var(--text)}
.m-fold>summary:hover .sec-title,.wr-summary:hover .wr-k{text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){
  #bids-list-area>a,main a[href="/contact"],.land-links a,a[href="/whats-priced-in"]:not(.wr-c),.tip-b,.noaa-note a,.pdw-ft a,.signup-disc a,.tool-btn,#f1>.bidnet-note,.drought-embed>div>a,.main a[href^="tel:"],.main a[href^="mailto:"],.main a[href="/privacy"],.signup-disc a{min-height:44px!important;display:inline-flex!important;align-items:center}
  .idx1-extras-field input{min-height:44px!important;font-size:1rem!important}
  .ticker-track .t-link{min-height:44px;display:inline-flex!important;align-items:center}
  .crop-full-link,.export-full-link,.tariff-full-link,.fert-full-link,.cot-full-link,.ratio-link,.wx-chart-toggle,.wx-hourly-toggle,#wire-band .wr-all,.faq-a a{display:inline-flex!important;align-items:center;min-height:44px}
}

.idx1-preview-flag{position:sticky;top:0;z-index:500;background:#d08a3c;color:#0a0c0d;font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:700;text-align:center;padding:.28rem .6rem;letter-spacing:.03em}

/* ===== block 13 of 23 id="ui-r8" ===== */
/* UI round 8 (2026-10-03). Scoped to this page. */

/* Tokens. Light-theme muted text was rgba(22,26,24,.66): 4.06:1 on the menu
   panel. .74 clears 4.5:1 on every light surface. Field borders and range
   tracks get their own tokens so they reach 3:1 (WCAG 1.4.11). */
:root{--ui-field:rgba(132,160,168,.6);--ui-track:rgba(132,160,168,.5)}
[data-theme="light"]{--text-muted:rgba(22,26,24,.74);--ui-field:rgba(20,30,28,.5);--ui-track:rgba(20,30,28,.42)}
/* Light gold #a87d1e is 3.5:1 as text; #86600f (already used on the
   briefing link) is 4.96:1. Text only; fills keep the brand gold. */
[data-theme="light"] #bids-cta-link,[data-theme="light"] .daily-eyebrow{color:#86600f!important}

/* Form fields: visible edges, and a real focus ring on the two ZIP boxes
   (their inline outline:none beat the page's :focus-visible). */
.idx1-shell input:not([type=checkbox]):not([type=radio]):not([type=range]),.idx1-shell select{border-color:var(--ui-field)!important}
#bids-zip:focus,#wx-zip:focus{outline:2px solid var(--gold)!important;outline-offset:2px}

/* Range tracks. The price-card track keeps its red-gold-green gradient
   (Sig, 2026-10-03: "i like the color gradient for 52wk range bar, my
   personal preference"); the label sits on its own line instead of an
   ellipsis. */
.idx1-shell .pc-range-labels{display:grid!important;grid-template-columns:auto 1fr auto;row-gap:2px}
.idx1-shell .pc-range-labels>span:nth-child(2){grid-row:1;grid-column:1/-1;text-align:left!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important}
.idx1-shell .pc-range-labels>span:first-child{grid-row:2;grid-column:1}
.idx1-shell .pc-range-labels>span:last-child{grid-row:2;grid-column:3;text-align:right}
.cot-bar-wrap{box-shadow:inset 0 0 0 1px var(--ui-track)}
.crop-plant-bar{box-shadow:inset 0 0 0 1px var(--ui-track)}
.crop-plant-fill{opacity:1}
#f-prices .r7-bar{background:var(--ui-track)}

/* The bids card was the one large box on a hairline page. */
#f1>.card{border:0!important;border-top:1px solid var(--border-2)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
#f1>.card>.card-body{padding-left:0!important;padding-right:0!important}

/* One type scale (12/14/17/22). The bids card is built by a shared script
   with its own sizes (12.75, 14.45, 16.15, 17.85px); snap them here. */
#bids-list-area [style*="font-size:.82rem"],#bids-list-area [style*="font-size:.85rem"]{font-size:.824rem!important}
#bids-list-area [style*="font-size:.95rem"],#bids-list-area [style*="font-size:1.05rem"]{font-size:1rem!important}
.spray-day-name,.spray-day-reason,.spray-day-status{font-size:.765rem!important}
.wx-7day-name{font-size:.824rem!important}
.t-item .r7-frac{font-size:.765rem!important}
.idx1-zone-label small{font-size:.765rem!important}
#bids-list-area a[style*="font-size:.76rem"]{font-size:.824rem!important}
[data-theme="light"] #bids-list-area a[style*="color:var(--gold)"]{color:#86600f!important}
#s7-usdm-valid,summary small{font-size:.765rem!important}
.footer-adspace .adspace-lbl,.ad-slot-tag{font-size:.765rem!important}
.footer-adspace .adspace-sub,.ad-slot-cta{font-size:.824rem!important}

/* Mono for numbers, not for sentences. */
.bids-read-time,.r7-cov,#idx1-trust-ledger,.s7-line small{font-family:var(--font-body,'Inter',system-ui,sans-serif)!important}

/* Section labels: tracking .14em to .08em. Same words, less shouting. */
.sec-title,.daily-eyebrow{letter-spacing:.08em!important}

/* Header: the briefing eyebrow was a bordered chip that looked like a
   button and did nothing. The empty "Become a sponsor" row was a strip of
   its own; the same offer sits in the briefing header. A sold slot is not
   empty-state and still shows. */
.daily-eyebrow,.teaser-badge{border:0!important;padding:0!important;background:none!important}
.teaser-line1{flex-wrap:wrap;row-gap:.2rem}
.teaser-badge{white-space:nowrap}
.teaser-left{flex:0 1 auto!important;overflow:visible!important}
/* .s7-adrow with an empty slot is shown again (2026-10-07, see #daily-teaser-sponsor.empty-state) */

/* Cut-off text. */
.bidnet-txt{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
@media(max-width:600px){
  #daily-teaser-text{white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical}
  /* Phone: the ZIP bar repeated the bids card's own "Change ZIP" and ran
     off the screen at "Funds and yield". Its two jump links go to sections
     that are folded on a phone, so the bar goes with them. */
  .idx1-subbar{display:none!important}
  /* USDA report cards scrolled sideways with no hint, cut at "Expor". */
  #usda-cal-strip{display:grid!important;grid-template-columns:1fr 1fr;overflow:visible!important}
  #usda-cal-strip .cal-card{min-width:0!important}
}

/* Tabs: one style. NOAA's boxed tabs now match the underline tabs above. */
.noaa-tab{border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;background:none!important;padding:.4rem .1rem!important;margin-right:1rem}
.noaa-tab.active{border-bottom-color:var(--text)!important}

/* Folds: one open/close mark, the same "+" and minus the phone folds use. */
details.wr>summary::after,details.hbz>summary::after{content:'+'!important;font-size:1rem!important;font-family:inherit!important}
details.wr[open]>summary::after,details.hbz[open]>summary::after{content:'\2212'!important}
details.wr>summary,details.hbz>summary{align-items:center!important}

/* The newsletter headline was the only all-caps headline on the page. */
.signup-headline{text-transform:none!important;letter-spacing:-.01em!important}
.signup-eyebrow{letter-spacing:.08em!important}
/* The Privacy link was a 44px flex box inside a sentence, which doubled the
   line height. A link inside a sentence is exempt from the target-size
   minimum (WCAG 2.5.8), so it is a plain inline link again. */
#signup-full .signup-disc a{display:inline!important;min-height:0!important;padding:0!important}

/* Quick tools: one row pattern; the gold left bar marked nothing. */
.tool-widget--scout{border-left:0!important;padding-left:0!important}

/* Fertilizer rises used #ef4444, off the palette. */
.fert-chg-val.up{color:var(--red)!important}

/* ===== block 14 of 23 id="copy-r9" ===== */
/* Round 9 (2026-10-03): sections that only repeated another one. Hidden,
   not deleted, so the scripts that fill them still find them. */
#s7-month-k{display:none!important}          /* "Changes with the month" */
#harvest-band{display:none!important}        /* 4 of 5 links repeat Quick Tools; the 5th moved there */
#pdw{display:none!important}                 /* 4th insurance harvest price on the page; October grid links the tracker */
#s7-hp-link{display:none!important}          /* Quick Tools insurance row, same */
/* 2026-10-06 EARN: #s7-falln-rec shows again; the fall-N line in Local conditions is now its one place. */
#wsp-spray-detail{display:none!important}    /* "Today: wind up to..." also in Local conditions */
#rsc-sample{display:none!important}          /* "87 calls graded": the headline is "41 of 87" */
#f1>.bidnet-note,.bidnet-note{display:none!important}         /* "NEW" strip from Sep 5; the network line and claim link stay */
#bids-list-area div:has(>#bids-cta-link){display:none!important} /* newsletter ask inside the bids card; the signup block is on the page */

/* ===== block 15 of 23 id="r10" ===== */
/* Round 10 (2026-10-03): the bids card without the air. */
/* The footnote stack under the elevators. */
/* Store or sell: four inputs across on desktop instead of 3 + 1. */
@media(min-width:601px){
  .idx1-extras-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}
  .idx1-extras-field input{width:100%!important;box-sizing:border-box}
  .idx1-extras-field{justify-content:flex-end}
}
/* With the card tighter, bids (1,177px at 1440) and weather (1,139px) are
   nearly level; the Wire under weather left 350px of nothing under bids.
   It runs full width beneath both now, two items side by side. */
@media(min-width:1240px){
  #f1{grid-row:2/3!important}
  #wire-band{grid-column:1/3!important;grid-row:3!important}
  #wire-g{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:24px}
}
/* Fund positioning with no data: no markers pinned at the left of a bar. */
.cot-na .cot-bar-wrap{visibility:hidden}
/* Quick Tools: plain links three across on wide screens. */
@media(min-width:1240px){
  .tool-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px}
  .tool-list>.tool-widget,.tool-list>.tool-widget--scout{grid-column:1/-1}
}
/* The NOAA source line ran into The Read heading. */
#f-noaa,.m-fold--noaa{margin-bottom:24px}
/* Section headers read as content (Sig: "cash bids & basis ... blends in
   with the content, it should jump out as a header"). Headers take the
   accent: gold text and icon on dark (#d4a23f, 8:1 on the page), #86600f on
   light (4.96:1; the light brand gold #a87d1e is 3.5:1 as text). The phone
   fold titles are the same headers, so they match. */
.sec-title,.m-fold>summary.m-fold-sum>span,.wr-k{color:var(--gold)!important}
[data-theme="light"] .sec-title,[data-theme="light"] .m-fold>summary.m-fold-sum>span,[data-theme="light"] .wr-k{color:#86600f!important}
.sec-title>span,.m-fold>summary.m-fold-sum small{color:var(--text-muted)!important}
/* The store-or-sell fold sits inside the bids card; it is not a section. */
.m-fold--calc>summary.m-fold-sum>span{color:var(--text-dim)!important}
/* Price cards. The price is a flex item with min-width:0, so at 1024-1280
   it shrank below its own digits and the fraction ran under "per bu"
   ("$12.77 1/4per bu", the 1/4 struck through). The price keeps its width
   and the unit wraps; under 1240 the cards are two across, not four at
   151px each. */
.r7-pl{flex-wrap:wrap;row-gap:0}
.r7-pl .pc-price{flex:none!important}
@media(min-width:601px) and (max-width:1239px){.price-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* Four across at 1240-1599 is 222-300px a card: "per bu" wrapped on three
   cards and not the fourth. It sits on its own line on all four there. */
@media(min-width:1240px) and (max-width:1599px){.price-cards-grid .r7-pl .r7-unit{flex-basis:100%}}
/* At 901-1000 the price-table rows are narrowest; the 52-week high ran
   14px out of its cell at 901. Up to 960 they stack, as on a phone. */
@media(min-width:901px) and (max-width:1000px){#f-prices .r7-led .pc.r7-row{column-gap:8px!important}}
@media(min-width:901px) and (max-width:960px){
  #f-prices .r7-lh{display:none!important}
  #f-prices .r7-led .pc.r7-row{grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"nm last last" "rg ch pc";row-gap:6px}
  #f-prices .r7-nm{grid-area:nm}#f-prices .r7-last{grid-area:last}#f-prices .r7-ch{grid-area:ch}#f-prices .r7-pc{grid-area:pc}#f-prices .r7-rg{grid-area:rg}
}
/* "+4 basis points" ran past its column at 768-1280. */
#f-prices .r7-chg{white-space:normal;overflow-wrap:anywhere}
/* A tip longer than the screen scrolls inside itself. */
.tip-t{max-height:min(60vh,420px);overflow:auto}
/* Spray windows were stretched across 1,000px. */
.spray-days{max-width:640px}

/* ===== block 16 of 23 ===== */
.idx1-skip-rail{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--brand-fill,var(--brand));color:#0a0c0d;font-family:var(--font-mono,'JetBrains Mono',monospace);font-size:.824rem;font-weight:700;padding:.6rem 1rem;border-radius:0 0 var(--r-sm) 0;text-decoration:none}
.idx1-skip-rail:focus{left:110px}

/* ===== block 17 of 23 ===== */
.dh{--dh-pad:1rem;max-width:1400px;margin:0 auto}
.dh *{box-sizing:border-box}
.dh-eyebrow{display:flex;align-items:center;gap:.45rem;font-size:.824rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:.15rem}
.dh-eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);animation:blink 1.5s infinite}
.dh-headline{font-family:var(--font-display);font-size:1.882rem;font-weight:800;line-height:1.15;color:var(--text);margin:0 0 .5rem;letter-spacing:-.01em}
.dh-field-call{display:flex;align-items:center;gap:.5rem;padding:.5rem .9rem;margin-bottom:.85rem;border-radius:8px;font-size:.824rem;font-weight:700;letter-spacing:.03em;font-family:'JetBrains Mono',monospace;line-height:1.45}
.dh-fc--plan{background:rgba(var(--gold-rgb),.1);color:var(--gold);border:1px solid rgba(var(--gold-rgb),.2)}
.dh-fc--go{background:rgba(34,197,94,.08);color:var(--green);border:1px solid rgba(34,197,94,.18)}
.dh-fc--stop{background:rgba(239,68,68,.1);color:#ef4444;border:1px solid rgba(239,68,68,.2)}
@media(min-width:700px){.dh{--dh-pad:1.75rem}.dh-headline{font-size:2.353rem}}
@media(min-width:1000px){.dh-headline{font-size:2.353rem}}
<style>
.idx1-extras-card{margin-top:1rem;padding:.85rem 1rem;background:var(--surface2,rgba(255,255,255,.02));border:1px solid var(--border);border-radius:8px}
.idx1-extras-title{display:flex;align-items:center;gap:.4rem;font-size:.824rem;font-weight:700;color:var(--text);margin-bottom:.3rem}
.idx1-extras-sub{font-size:.824rem;color:var(--text-dim);margin-bottom:.65rem;line-height:1.5}
.idx1-extras-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:.6rem}
.idx1-extras-field{display:flex;flex-direction:column;gap:.25rem;font-size:.706rem;color:var(--text-muted)}
.idx1-extras-field input{width:110px;font-family:'JetBrains Mono',monospace;font-size:.824rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem}
#idx1-calc-result{font-family:'JetBrains Mono',monospace;font-size:.824rem;font-weight:700;color:var(--text-dim)}
.idx1-extras-fine{font-size:.706rem;color:var(--text-muted);margin-top:.4rem;line-height:1.5}
.idx1-extras-line{max-width:1400px;margin:.4rem auto 0;padding:0 1rem;font-family:'JetBrains Mono',monospace;font-size:.706rem;color:var(--text-dim)}
.idx1-home-prompt{display:flex;align-items:center;gap:.6rem;max-width:1400px;margin:0 auto;padding:.55rem 1rem;background:var(--surface);border-bottom:1px solid var(--border)}

/* ===== block 18 of 23 ===== */


/* ===== block 19 of 23 ===== */
.wx-fs-bridge{display:flex;align-items:center;gap:.7rem;margin:.9rem 0 .15rem;padding:.8rem .9rem;background:linear-gradient(90deg,rgba(212,162,63,.10),rgba(212,162,63,.03));border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:8px;text-decoration:none;transition:border-color .15s,transform .15s}
          .wx-fs-bridge:hover{border-color:var(--gold);transform:translateY(-1px)}
          .wx-fs-bridge .wfb-ic{flex:none;color:var(--gold);display:flex}
          .wx-fs-bridge .wfb-ic .ic{width:1.55rem;height:1.55rem}
          .wx-fs-bridge .wfb-t{display:block;font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--text);line-height:1.2}
          .wx-fs-bridge .wfb-s{display:block;font-size:.824rem;color:var(--text-dim);margin-top:.16rem;line-height:1.3}
          /* v4.5 weather legibility pass — dissolve box-in-box, full-bleed on phones, bigger type */
          .wx-card #wx-data .wx-summary-card{background:none;border:0;border-radius:0;padding:1rem 0 0;border-top:1px solid var(--border)}
          .wx-card .wx-7day-strip{gap:.45rem}
          .wx-card .wx-7day-cell{padding:.75rem .3rem;gap:.32rem}
          .wx-card .wx-7day-name{font-size:clamp(.7rem,3vw,.8rem)}
          .wx-card .wx-7day-temps{font-size:clamp(.95rem,4.6vw,1.2rem)}
          .wx-card .wx-7day-meta{font-size:clamp(.68rem,3vw,.78rem);line-height:1.55}
          .wx-card .wx-hourly-toggle{font-size:.824rem}
          .wx-card .wx-hourly-cell{min-width:52px;padding:.42rem .3rem;gap:.16rem}
          .wx-card .wx-hourly-hr{font-size:.824rem}
          .wx-card .wx-hourly-temp{font-size:.824rem}
          .wx-card .wx-hourly-precip,.wx-card .wx-hourly-wind{font-size:.824rem}
          .wx-card .wx-chart-toggle{font-size:.824rem}
          .wx-card .wx-chart-title{font-size:.824rem}
          .wx-card .wx-chart-legend{font-size:.824rem}
          .wx-card .wx-chart-takeaway{font-size:.824rem;line-height:1.6}
          @media(max-width:520px){
            .wx-card{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);border-left:0;border-right:0;border-radius:0}
            .wx-card .card-body{padding:1rem .9rem}
            .wx-card .wx-chart-panel{padding:.8rem .55rem .65rem}
          }

/* ===== block 20 of 23 ===== */
.tool-widget--scout{border-left:3px solid var(--gold)!important}.tool-widget--scout .tool-widget-badge{background:rgba(212,162,63,.14);color:var(--gold)}

/* ===== block 21 of 23 ===== */
.rma-w{border-left:3px solid var(--gold,#d4a23f)!important}
            .rma-dates{display:flex;gap:.9rem;flex-wrap:wrap;margin:.35rem 0 0}
            .rma-d{min-width:9rem}
            .rma-d-l{display:block;font-size:.824rem;color:var(--text-muted,#7d8782)}
            .rma-d-v{font-family:var(--font-mono,'JetBrains Mono',monospace);font-weight:700;font-size:1rem}
            .rma-d-v.past{color:var(--text-muted,#7d8782);font-weight:600}
            .rma-d-v.soon{color:#e8743a}
            .rma-est{font-size:.765rem;color:var(--text-muted,#7d8782);display:block;margin-top:.1rem}
            .rma-src{font-size:.765rem;color:var(--text-muted,#7d8782);margin:.5rem 0 0;line-height:1.5}
            .rma-src a{color:var(--gold,#d4a23f)}

/* ===== block 22 of 23 ===== */
#f-read .read-sub{font-size:.824rem;color:var(--text-dim)}
    #f-read .sig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:13px}
    #f-read .sig{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:1.05rem 1.1rem;display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:inherit;transition:border-color .18s,transform .18s}
    #f-read .sig:hover{border-color:var(--gold);transform:translateY(-2px)}
    #f-read .sig-top{display:flex;align-items:center;justify-content:space-between}
    #f-read .sig-name{font-weight:700;font-size:1rem;color:var(--text);display:flex;align-items:center;gap:.4rem}
    #f-read .sig-tag{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.1em;color:var(--text-dim);border:1px solid var(--border);border-radius:5px;padding:2px 6px}
    #f-read .sig-num{font-family:var(--font-display);font-weight:700;font-size:2.353rem;line-height:1;color:var(--gold);display:flex;align-items:baseline;gap:.3rem}
    #f-read .sig-num small{font-size:.824rem;color:var(--text-dim);font-weight:400;font-family:'Inter',sans-serif}
    #f-read .sig-price{font-family:'JetBrains Mono',monospace;font-size:.824rem;color:var(--text-dim)}
    #f-read .sig-bar{position:relative;height:5px;background:rgba(255,255,255,.07);border-radius:3px;margin:.1rem 0}
    #f-read .sig-fill{position:absolute;left:0;top:0;height:100%;border-radius:3px;background:var(--gold-fill,var(--gold));transition:width .5s}
    #f-read .sig-dot{position:absolute;top:-3px;width:11px;height:11px;border-radius:50%;background:var(--gold-fill,var(--gold));border:2px solid var(--surface);transition:left .5s}
    #f-read .sig-read{font-size:.824rem;line-height:1.45;color:var(--text);min-height:2.1em}
    #f-read .sig-read b{color:var(--gold)}
    #f-read .sig-link{font-size:.824rem;color:var(--text-dim);font-weight:600;margin-top:auto}
    #f-read .sig:hover .sig-link{color:var(--gold)}

/* ===== block 23 of 23 ===== */
#f-faq .faq-list{margin-top:.5rem;}
      #f-faq .faq-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:.55rem;overflow:hidden;}
      #f-faq .faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;padding:.85rem 1rem;min-height:44px;font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text);line-height:1.4;}
      #f-faq .faq-item summary::-webkit-details-marker{display:none;}
      #f-faq .faq-item summary::after{content:'+';font-family:var(--font-body,'Inter',system-ui,sans-serif);font-size:1.294rem;font-weight:700;color:var(--gold);flex-shrink:0;line-height:1.1;transition:transform .2s ease;}
      #f-faq .faq-item[open] summary::after{content:'\2212';}
      #f-faq .faq-item summary:hover{color:var(--gold);}
      #f-faq .faq-item summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}
      #f-faq .faq-a{padding:0 1rem 1rem;font-size:1rem;line-height:1.7;color:var(--text-dim);}
      #f-faq .faq-a a{color:var(--gold);text-decoration:underline;font-weight:600;}
      @media (prefers-reduced-motion:reduce){#f-faq .faq-item summary::after{transition:none;}}
    
/* ── harvest band + price discovery widget (2026-08-15) ─────────────────
   Both are TOP-LEVEL children of <main>, siblings of .dash-grid, never
   inside it. An earlier attempt inserted them inside the grid's .fade-up
   wrappers: the div count stayed balanced while the nesting scrambled.
   Div balance is not a structure check — verify parentElement in a browser. */
.wr{background:linear-gradient(180deg,rgba(var(--gold-rgb),.06),transparent);border:1px solid rgba(var(--gold-rgb),.28);border-radius:12px;padding:.9rem 1rem;margin:0 0 var(--sp-xl)}
.wr-top{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.55rem}
.wr-k{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.wr-sub{font-size:.824rem;color:var(--text-muted)}
.wr-all{margin-left:auto;font-size:.824rem;color:var(--gold);text-decoration:none;white-space:nowrap}
.wr-all:hover{text-decoration:underline}
.wr-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:.5rem}
.wr-c{display:block;background:var(--surface2);border:1px solid var(--border);border-left:2px solid var(--border-2);border-radius:9px;padding:.6rem .7rem;text-decoration:none;min-height:44px}
.wr-c:hover{border-color:var(--border-2);border-left-color:var(--gold)}
.wr-c:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.wr-c.hi{border-left-color:var(--gold)}
.wr-when{font-family:'JetBrains Mono',monospace;font-size:.765rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);display:block;margin-bottom:.15rem}
.wr-c strong{display:block;font-size:.824rem;color:var(--text);font-weight:700;line-height:1.3}
.wr-c em{font-style:normal;font-size:.824rem;color:var(--text-muted);line-height:1.45;display:block;margin-top:.12rem}
@media(max-width:520px){ .wr-all{margin-left:0;width:100%} }
.hbz{background:linear-gradient(180deg,rgba(var(--brand-rgb),.07),transparent);border:1px solid rgba(var(--brand-rgb),.32);border-radius:12px;padding:.9rem 1rem;margin:0 0 var(--sp-xl)}
.hbz-k{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:.55rem}
.hbz-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:.5rem}
.hbz-c{display:block;background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:.6rem .7rem;text-decoration:none;min-height:44px}
.hbz-c:hover{border-color:var(--border-2)}
.hbz-c strong{display:block;font-size:.824rem;color:var(--text);font-weight:700;line-height:1.3}
.hbz-c em{font-style:normal;font-size:.824rem;color:var(--text-muted);line-height:1.45;display:block;margin-top:.12rem}
.wr>summary,.hbz>summary{cursor:pointer;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;list-style:none;padding:0;min-height:44px}
.wr>summary::-webkit-details-marker,.hbz>summary::-webkit-details-marker{display:none}
.wr>summary::marker,.hbz>summary::marker{content:''}
.wr>summary::after,.hbz>summary::after{content:'+ show';margin-left:auto;font-size:.765rem;color:var(--text-muted);font-family:'JetBrains Mono',monospace;align-self:center}
.wr[open]>summary::after,.hbz[open]>summary::after{content:'- hide'}
.wr[open]>summary{margin-bottom:.55rem}
.hbz[open]>summary{margin-bottom:.55rem}
.wr-body{margin-top:0}
.wr-body .wr-all{display:inline-block;margin:.5rem 0 0;font-size:.824rem;color:var(--gold);text-decoration:none}
.wr-body .wr-all:hover{text-decoration:underline}
@media(max-width:520px){ .wr>summary::after,.hbz>summary::after{font-size:.765rem} }
.rsc-teaser-link { display: none; align-items: baseline; gap: .6rem; padding: .65rem .9rem; background: var(--surface2); border: 1px solid var(--border); border-radius: var(--r-sm, 8px); text-decoration: none; margin: .5rem 0 }
.rsc-teaser-num { font-family: var(--font-display); font-weight: 700; font-size: 1.294rem; line-height: 1; color: var(--text); flex: none }
.rsc-teaser-body { display: flex; flex-direction: column; gap: .15rem; min-width: 0 }
.rsc-teaser-label { font-size: .765rem; color: var(--text-dim) }
.rsc-teaser-cta { font-size: .765rem; color: var(--gold); font-weight: 600 }
@media (max-width: 900px) { .rsc-teaser-link { display: flex } }
.pdw{background:var(--surface);border:1px solid var(--border-2);border-radius:12px;padding:.9rem 1rem;margin:0 0 var(--sp-xl)}
.pdw-sel{width:100%;max-width:340px;min-height:44px;padding:.45rem .6rem;background:var(--surface2);color:var(--text);border:1px solid var(--border-2);border-radius:8px;font-size:1rem;font-family:inherit;margin-bottom:.6rem}
.pdw-row{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.42rem 0;border-bottom:1px solid var(--border);flex-wrap:wrap}
.pdw-row:last-of-type{border-bottom:0}
.pdw-crop{font-weight:700;font-size:1rem;color:var(--text)}
.pdw-win{font-family:'JetBrains Mono',monospace;font-size:.824rem;color:var(--text-dim)}
.pdw-pill{font-family:'JetBrains Mono',monospace;font-size:.765rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.12rem .45rem;margin-left:.4rem;white-space:nowrap}
.pdw-pill.open{color:#0a1206;background:var(--green)}
.pdw-pill.soon{color:var(--brand);border:1px solid rgba(var(--brand-rgb),.5)}
.pdw-pill.done{color:var(--text-muted);border:1px solid var(--border-2)}
.pdw-bar{height:5px;border-radius:3px;background:var(--surface3);overflow:hidden;margin-top:.3rem}
.pdw-ft{font-size:.824rem;color:var(--text-muted);line-height:1.5;margin:.55rem 0 0}
.pdw-ft a{color:var(--brand)}

/* ===== WAVE1-A: cash bids card, store-or-sell picker, interest and shrink, the math */
.idx1-calc-pickwrap{margin:0 0 .6rem}
.idx1-calc-pickfield{width:100%}
.idx1-calc-pickfield select{width:100%;max-width:100%;min-height:44px;box-sizing:border-box;font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem;text-overflow:ellipsis}
#idx1-calc-why{margin-top:.3rem}
.idx1-opt{font-size:.66rem;color:var(--text-muted);font-weight:400;text-transform:none;letter-spacing:0}
.idx1-calc-mathbox{margin:.35rem 0 0;font-size:.75rem;color:var(--text-muted)}
.idx1-calc-mathbox>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--text-dim)}
.idx1-calc-mathbox pre{margin:.2rem 0 0;padding:.5rem .6rem;white-space:pre-wrap;word-break:break-word;font-family:'JetBrains Mono',monospace;font-size:.72rem;line-height:1.5;color:var(--text-dim);background:var(--surface2);border:1px solid var(--border);border-radius:6px}
#bids-list-area .bh-call-a:focus-visible,#bids-list-area .bh-crop:focus-visible,#bids-list-area .bh-retry:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* ===== WAVE1-B: insurance harvest price box, one row per crop + state picker */
#s7-c-insurance:hover .s7-cv{text-decoration:none}
#s7-c-insurance .s7-ck a{color:inherit;text-decoration:none}
#s7-c-insurance .s7-ck a:hover,#s7-c-insurance .s7-ck a:focus-visible{text-decoration:underline}
#s7-c-insurance a{color:var(--gold)}
.s7-ins-pick{display:block;max-width:100%}
.s7-ins-pick select{max-width:100%;min-height:44px;padding:6px 10px;font:700 1rem/1.3 Inter,system-ui,sans-serif;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px}
#s7-grid>.s7-c.s7-wide{grid-column:1/-1}
.s7-irs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));column-gap:24px}
.s7-ir{display:flex;flex-wrap:wrap;column-gap:10px;row-gap:1px;align-items:baseline;align-content:flex-start;padding:6px 0;border-top:1px solid var(--hair,var(--border));min-width:0}
.s7-ir-v{white-space:nowrap}
.s7-ir-k{font:600 .824rem/1.35 Inter,system-ui,sans-serif;color:var(--text);min-width:0;overflow-wrap:anywhere}
.s7-ir-k small{font-weight:500;color:var(--text-muted)}
.s7-ir-v{font-family:'JetBrains Mono',monospace;font-size:1rem;font-weight:700;line-height:1.35;color:var(--text);min-width:0;max-width:100%}
.s7-cv .s7-ir-d{flex-basis:100%;font:500 .765rem/1.45 Inter,system-ui,sans-serif;color:var(--text-dim);min-width:0;overflow-wrap:anywhere}
/* WAVE5-A: county windows (Texas corn has three) as sub-rows of one crop */
/* a long status ("RMA has not released a harvest price yet") wraps instead of running into the next column */
.s7-irs .s7-ir-v{white-space:normal}
.s7-iw{display:flex;flex-wrap:wrap;flex-basis:100%;column-gap:10px;row-gap:1px;align-items:baseline;margin-top:4px;padding:2px 0 2px 10px;border-left:2px solid var(--hair,var(--border));min-width:0}
/* ===== WAVE1-C: national markets (wheat classes, southern crops, COT rows, crop progress, export pace) */
#f-prices .r7-row[data-r7k="kcwheat"] .r7-cm,#f-prices .r7-row[data-r7k="mplswheat"] .r7-cm,
#f-prices .r7-row[data-r7k="cotton"] .r7-cm,#f-prices .r7-row[data-r7k="rice"] .r7-cm{white-space:normal}
.cot-more{margin-top:.15rem}
.cot-more>summary{cursor:pointer;font-size:.765rem;color:var(--text-muted);padding:.3rem 0;list-style:none}
.cot-more>summary::-webkit-details-marker{display:none}
.cot-more>summary::before{content:'+ ';color:var(--gold)}
.cot-more[open]>summary::before{content:'\2212  '}
.cot-more .cot-rows-more{display:flex;flex-direction:column;gap:.5rem;margin-top:.2rem}
.w1c-cp{display:block;font-size:.765rem;color:var(--text-muted);line-height:1.45}
.w1c-cp b{color:var(--text);font-weight:600}
.export-cumul .w1c-ly,.export-withheld.w1c-cls{display:block;font-size:.765rem;color:var(--text-muted);line-height:1.45}
/* ===== WAVE1-D: prediction bot card + The Action source line */
.daily-takeaway-src{margin:.5rem 0 0;font-size:.824rem;line-height:1.5;color:var(--text-muted)}
.daily-takeaway-src a{color:var(--gold)}
.pbc-verdict{margin:0 0 .55rem;font-size:.941rem;font-weight:700;line-height:1.4;color:var(--text)}
.pbc-calls{list-style:none;margin:0 0 .55rem;padding:0;display:flex;flex-direction:column;gap:.3rem}
.pbc-calls li{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .5rem;font-size:.824rem;line-height:1.4;color:var(--text-dim)}
.pbc-crop{min-width:7.2em;color:var(--text);font-weight:600}
.pbc-dir{min-width:3em;font-weight:700}
.pbc-up{color:var(--green)}
.pbc-down{color:var(--red)}
.pbc-meta{font-family:var(--font-mono);font-size:.765rem;color:var(--text-muted)}
.pbc-none{color:var(--text-muted)}
.pbc-line{margin:.3rem 0 0;font-size:.875rem;line-height:1.5;color:var(--text-dim)}
.pbc-asof{margin:.35rem 0 0;font-size:.875rem;color:var(--text-muted)}
.pbc-foot{font-size:.765rem;color:var(--text-muted);margin:8px 0 0;line-height:1.45}
/* ===== WAVE1-E: small fixes and presentation (2026-10-03) */
/* The Read: the bar's ends name what the dot measures. */
#f-read .r7-scale{display:flex;justify-content:space-between;gap:8px;margin:2px 0 0;line-height:1.3}
#f-read .r7-scale span:nth-child(2){text-align:center;min-width:0}
/* Layout shift: bids-homepage.js swaps the reserved skeleton for its own
   loading rows (no .bids-skeleton class), and the box fell from 820px to 122px
   and back. Hold the same height for that placeholder. */
html.has-zip #bids-list-area:has(>[aria-label="Loading cash bids"]){min-height:820px}
@media(min-width:901px){html.has-zip #bids-list-area:has(>[aria-label="Loading cash bids"]){min-height:760px}}
/* Daily teaser on a phone: the date badge pushed "Read" to a second line once
   the briefing loaded, and the preview grew from one line to three. Put the
   action on its own line from the start and hold three lines of preview. */
@media(max-width:700px){
  .teaser-line1 .teaser-action{flex:0 0 100%}
  #daily-teaser-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;line-height:1.45;min-height:4.35em}
}
/* Month grid: five columns left four of them about 89px at 1024. */
@media(min-width:901px) and (max-width:1239px){
  .s7-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .s7-c.s7-wide{grid-column:1/-1}
}
/* Ticker pause button. Reduced motion stops the track, so the button goes too. */
.ticker-pause{flex:none;align-self:stretch;min-width:56px;padding:0 .7rem;background:var(--surface2);color:var(--text-dim);border:0;border-left:1px solid var(--border);font:600 .765rem/1 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.ticker-pause:hover,.ticker-pause:focus-visible{color:var(--text)}
.ticker-pause:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
html.ticker-paused .ticker-track{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.ticker-pause{display:none}}
/* Phone tap target, 2026-10-09: the ticker is 38px tall on a phone, so the
   button's hit area reaches 1px above and below it (40px) through a
   transparent ::after. The strip and the ticker row clip sideways only (both
   hold nothing taller than the row), so the scrolling track is still cut off
   at the edges. Browsers without overflow:clip keep the 38px button. */
@media(max-width:600px){
  @supports (overflow:clip){.prices-strip,.prices-strip .ticker-outer{overflow-x:clip;overflow-y:visible}}
  .ticker-pause{position:relative}
  .ticker-pause::after{content:"";position:absolute;left:0;right:0;top:min(0px,calc(50% - 20px));bottom:min(0px,calc(50% - 20px))}
}
/* Fertilizer: the date each change is measured from, and the 30-day flag. */
#fert-grid .r7-fs{display:block;font-size:.765rem;font-weight:500;color:var(--text-muted);white-space:normal}
#fert-widget .fert-full-link{white-space:nowrap;flex:none}

/* ===== WAVE2-F: "What do you raise?" picker */
.pk-btn{cursor:pointer}
.pk-btn .idx1-zip-val:empty{display:none}
.pk-btn[aria-expanded="true"] .idx1-zip-change{color:var(--text)}
.pk-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.pk-panel{box-sizing:border-box;width:100%;padding:12px 16px 14px;background:var(--surface);border-bottom:1px solid var(--border)}
.pk-panel[hidden]{display:none}
.pk-fs{border:0;margin:0 auto;padding:0;min-width:0;max-width:1400px}
.pk-lg{padding:0;font-size:.941rem;font-weight:700;color:var(--text)}
.pk-hint{margin:2px 0 10px;font-size:.824rem;color:var(--text-muted)}
.pk-g{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:6px 0;border-top:1px solid var(--border)}
.pk-gk{flex:0 0 180px;font-family:'JetBrains Mono',monospace;font-size:.765rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.pk-opts{display:flex;flex-wrap:wrap;gap:4px 6px;min-width:0;flex:1 1 300px}
.pk-o{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px 0 8px;border:1px solid var(--border);border-radius:999px;font-size:.824rem;color:var(--text-dim);cursor:pointer;user-select:none}
.pk-o input{margin:0;width:16px;height:16px;accent-color:var(--gold);cursor:pointer}
.pk-o:has(input:checked){border-color:var(--gold);color:var(--text)}
.pk-o:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.pk-act{display:flex;gap:8px;padding-top:10px;border-top:1px solid var(--border)}
.pk-act button{min-height:36px;padding:0 16px;border-radius:6px;font-size:.824rem;font-weight:700;cursor:pointer}
.pk-done{background:var(--gold-fill,var(--gold));color:#0a0c0d;border:1px solid var(--gold)}
.pk-clear{background:none;color:var(--text-dim);border:1px solid var(--border)}
.pk-act button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
#s7-grid>.s7-c.pk-off{display:none!important}
.pk-led-lead{display:block!important}
/* Phone: the ZIP bar is hidden, but the picker stays, alone on that row. */
@media(max-width:600px){
  body .idx1-subbar{display:flex!important}
  body .idx1-subbar>.idx1-zip-chip:not(.pk-btn){display:none!important}
  .pk-btn{min-height:44px;white-space:normal;text-align:left;flex:1 1 auto!important}
  .pk-o{min-height:44px}
  .pk-act button{min-height:44px}
  .pk-gk{flex-basis:100%}
}
/* ===== WAVE2-G: elevator alert form */
/* The closed "Watch this elevator" link sits top-right of the elevator (r10).
   The open form needs the card's full width, so it drops back into the flow. */
#bids-list-area .watch-elevator-wrap.we-open{position:static!important;margin:.4rem 0 .2rem!important;width:100%}
#bids-list-area .we-form select,#bids-list-area .we-form input{max-width:100%}

/* ===== WAVE3-H: store-or-sell checks, basis chart end values, alert form errors */
.idx1-basis-ends{display:flex;justify-content:space-between;gap:.5rem;font-family:'JetBrains Mono',monospace;font-size:.706rem;color:var(--text-dim);margin-top:-.15rem}
#idx1-store-sell input[aria-invalid="true"],#pa-form input[aria-invalid="true"],.we-form [aria-invalid="true"]{border-color:var(--red)!important}
#pa-status:focus,#pa-done:focus,.watch-elevator-status:focus,.we-done:focus{outline:2px solid var(--gold);outline-offset:2px}
/* 2026-10-12: the price alert fields and button meet the 44px tap size */
#pa-form select,#pa-form input[type="number"],#pa-form input[type="email"],#pa-go{min-height:44px;box-sizing:border-box}
/* ===== WAVE3-L: no-quote rows, failure lines, ranking note, COT badges */
#f-prices .r7-row.r7-noq,#f-prices .r7-led .pc.r7-row.r7-noq,#f-prices .r7-led .r7-row.r7-noq{display:none!important}
.r7-noq-note{font-size:.765rem;color:var(--text-muted);margin:.3rem 0 0}
.prices-strip .t-item.t-noq,.prices-strip .t-item.t-noq+.t-sep{display:none!important}
.prices-strip.px-off{display:none!important}
#f-prices.px-off .price-cards-grid,#f-prices.px-off .r7-ledgers,#f-prices.px-off .pc-range{visibility:hidden}
.px-fail,.cot-fail,.crop-fail{font-size:.82rem;color:var(--text-dim);margin:.4rem 0}
.sig-asof{font-size:.765rem;color:var(--text-muted);margin:.4rem 0 0}
.cot-badges{display:flex;flex-wrap:wrap;gap:.2rem .9rem;justify-content:flex-start;width:100%}
:where(h3.idx1-sub-h){margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
/* 2026-10-06: labels that were divs and are now h3s. styles.css gives every h3 the
   display face and -0.01em tracking; these keep the inherited face they had as
   divs. Specificity 0,0,1: any class rule on them still wins. */
h3:where(.pc-section-lbl,.idx1-extras-title,.s7-ck){font-family:inherit;letter-spacing:inherit}

/* ===== WAVE3-M: header opacity, daily briefing failure state */
/* The sticky nav sits under the sticky preview flag; its .92 alpha let the
   page scroll through it. Opaque, from the surface token, both themes. */
.nav,[data-theme="light"] .nav{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
/* daily.json failed: keep the headline and the link to /daily, hide the empty
   briefing furniture around them. */
#daily-hero.daily-failed .daily-left>:not(#daily-headline):not(#daily-lead),
#daily-hero.daily-failed .hero-sidebar,#daily-hero.daily-failed #daily-otp,
#daily-hero.daily-failed #daily-cashbids-cta,#daily-hero.daily-failed #daily-surprise-banner,#daily-hero.daily-failed #daily-share{display:none!important}
/* Reduced motion: the ticker does not move, so let it scroll by hand instead of clipping. */
@media (prefers-reduced-motion:reduce){.prices-strip .ticker-track-wrap{overflow-x:auto!important}}
#daily-hero.daily-failed .daily-lead a{color:var(--gold);text-decoration:underline}

/* ===== 2026-10-06: homepage sponsor strip (#idx1-sponsor). The site's sponsor
   ribbon (.ag-sponsor-ribbon, components/styles.css), placed under the briefing
   teaser at the page's 1400px measure. Hidden unless a paid sponsor is live. */
.idx1-sponsor-wrap{max-width:1400px;margin:0 auto;padding:6px 16px 10px}
.idx1-sponsor-wrap[hidden]{display:none}
.idx1-sponsor.ag-sponsor-ribbon{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:0}
.idx1-sponsor .ag-sponsor-tag{margin-right:0}
.idx1-sp-logo{flex:none;display:inline-flex;align-items:center;justify-content:center;height:32px;padding:2px 6px;background:#fff;border-radius:6px}
.idx1-sp-logo img{display:block;max-height:28px;width:auto;max-width:72px}
.idx1-sp-txt{flex:1 1 220px;min-width:0;color:var(--text-dim)}
.idx1-sp-txt strong{color:var(--text);font-weight:700}
.idx1-sp-cta{flex:none;display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.idx1-sp-cta:hover,.idx1-sp-cta:focus-visible{text-decoration:underline}

/* ===== HERO-E (2026-10-06): the cash bids card as a price board =====
   The card's own layout ships inside components/bids-homepage.js (index.html
   draws the same card and does not load this file). Here: what only index1
   has around it. */
/* Feed counts now sit inside "How to read these bids". */
#bids-list-area .bh-feed .r7-cov,#bids-list-area .bh-feed #idx1-trust-ledger{font-family:inherit!important;font-size:.8125rem!important;color:var(--text-muted);border:0!important;padding:0!important;margin:0!important;text-align:left}
#bids-list-area .bh-feed #idx1-trust-ledger{margin-top:.2rem!important}
/* "Run an elevator? Claim your board." is one small link. */
#f1 .r7-claim{display:inline-flex!important;align-items:center;min-height:44px!important;margin:0!important;padding:0!important;border:0!important;font-size:.8125rem!important;color:var(--text-muted)!important;text-decoration:underline;text-underline-offset:3px}
/* Store or sell? starts closed on every screen. Desktop shows its summary,
   in the fold style the phone uses, at the page's 13px floor. */
.m-fold--calc:not(:has(.idx1-extras-card[style*="block"])):not(:has(.idx1-extras-line[style*="block"])){display:none}
.m-fold--calc{margin:.5rem 0 0}
.m-fold--calc>summary.m-fold-sum{display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);cursor:pointer;list-style:none;font-family:inherit!important;font-size:.875rem!important;font-weight:600;letter-spacing:0!important;text-transform:none!important}
.m-fold--calc>summary.m-fold-sum::-webkit-details-marker{display:none}
.m-fold--calc>summary.m-fold-sum::after{content:'+';font-size:1rem;color:var(--text-muted)}
.m-fold--calc[open]>summary.m-fold-sum::after{content:'\2212'}
.m-fold--calc[open]>summary.m-fold-sum{border-bottom:0;margin-bottom:8px}
.m-fold--calc>summary.m-fold-sum:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* ===== 2026-10-06: the hero band and the page order around it ==========
   Sig: "turn the homepage into the ultimate hero page". The first screen is
   numbers: the best local bid for corn and soybeans, the two harvest
   futures, and today's field read. Sans for words, mono for figures only.
   Order after the hero: cash bids beside local conditions, then markets,
   then the month, then the rest. ===== */
.hero-band{container:hero/inline-size;margin:0 0 16px;padding:12px 18px 6px;background:var(--surface2);border:1px solid var(--border-2);border-radius:8px;font-family:var(--font-body,Inter,system-ui,sans-serif)}
.hb-top{display:flex;align-items:center;gap:0 8px;flex-wrap:nowrap;font-size:1rem;line-height:1.3;color:var(--text);padding-bottom:4px}
.hb-where{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.hb-place{font-weight:700}
.hb-date{color:var(--text-dim)}
.hb-date:not(:empty)::before{content:"\00b7" / "";margin-right:8px;color:var(--text-dim)}
.hb-asof{font-size:.824rem;font-weight:700;color:var(--orange)}
.hb-asof[hidden]{display:none}
.hb-change{flex:none;white-space:nowrap;margin-left:auto;background:none;border:0;padding:0 2px;min-height:44px;font:inherit;font-size:.824rem;font-weight:600;color:var(--text-dim);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.hb-change:hover{color:var(--text)}
.hb-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}
.hb-cell{display:flex;flex-direction:column;gap:3px;min-width:0;padding:10px 0 12px;border-top:1px solid var(--border-2);color:inherit;text-decoration:none}
.hb-cell:hover .hb-k{color:var(--text)}
.hb-cell:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.hb-bid,.hb-wx{grid-column:1/-1}
.hb-k{font-size:.824rem;font-weight:600;line-height:1.3;color:var(--text-dim)}
.hb-v{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:800;line-height:1.1;color:var(--text);letter-spacing:-.01em;min-height:1.1em}
.hb-v2{font-size:1.55rem}
.hb-s{font-size:.824rem;line-height:1.4;color:var(--text-dim);min-height:1.4em;overflow-wrap:break-word}
/* futures cells: the change line and the "as of" line land with prices.json; hold both lines so the band does not grow 20px after first paint */
.hb-fut .hb-s{min-height:2.8em}
.hb-l{display:block}
.hb-name{color:var(--text);font-weight:600}
.hb-nw{white-space:nowrap}
.hb-age,.hb-ho{font-size:.8125rem}
.hb-n{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
/* A price can break before its fraction; it never runs into the next cell. */
.hb-v>.hb-n{white-space:normal}
.hb-frac{font-size:max(.6em,.765rem);font-weight:700;white-space:nowrap}
.hb-chg.up{color:var(--green)}.hb-chg.dn{color:var(--red)}
.hb-old,.hb-unk{font-family:var(--font-body,Inter,system-ui,sans-serif);font-size:.824rem;font-weight:700;letter-spacing:0;color:var(--orange)}
.hb-unk{color:var(--text-dim)}
.hb-s .hb-old{font-size:.8125rem}
.hb-none .hb-v{color:var(--text-dim)}
.hb-spray{font-weight:700}
.hb-spray.hb-go{color:var(--green)}.hb-spray.hb-caution{color:var(--gold)}.hb-spray.hb-stop{color:var(--red)}
[data-theme="light"] :is(.hb-old,.hb-asof,.hb-spray.hb-caution){color:#86600f}
.hb-skel{display:inline-block;width:5.5ch;height:.8em;border-radius:4px;background:var(--border-2);animation:hb-pulse 1.4s ease-in-out infinite}
@keyframes hb-pulse{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.hb-skel{animation:none}}
@media(max-width:639px){.hero-band{padding:6px 14px 2px}}
/* No ZIP: one row asks for it (index.html paintPlace); the empty bid rows
   go, so the futures sit right under it. */
.hb-nozip .hb-bid{display:none}
.hb-nozip .hb-change{color:var(--text)}
/* U1 (2026-10-06): the hero sizes from its own width, not the window. Five
   across only when the band is at least 1000px wide; 560-999px is bids two
   across over futures and today three across; under 560px the phone stack. */
@container hero (max-width:559px){
  .hb-cell{padding:8px 0 10px}
  /* The price on the left; elevator, town and what the bid is for beside it. */
  .hb-bid,.hb-wx{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px;row-gap:2px;align-items:center}
  .hb-bid>.hb-k,.hb-wx>.hb-k{grid-column:1/-1}
  .hb-v{font-size:2rem}.hb-v2{font-size:1.5rem}
  .hb-bid>.hb-v{flex-direction:column;align-items:flex-start;gap:2px}
  .hb-bid .hb-v .hb-frac{font-size:.765rem}
  /* The no-ZIP row stays one line on a phone: the date waits for a ZIP. */
  .hb-nozip .hb-date{display:none}
  .hb-nozip .hb-place{font-size:.941rem}
}
@container hero (max-width:299px){
  .hb-bid{display:flex;align-items:stretch}
  .hb-v2{font-size:1.3rem}
}
@container hero (min-width:560px){
  .hb-grid{grid-template-columns:repeat(6,minmax(0,1fr));column-gap:0}
  .hb-bid{grid-column:span 3}
  .hb-fut,.hb-wx{grid-column:span 2}
  .hb-cell{padding:12px 16px 14px;border-left:1px solid var(--border-2)}
  #hb-corn,#hb-fc{padding-left:0;border-left:0}
  .hb-v{font-size:2.2rem}.hb-v2{font-size:1.7rem}
}
@container hero (min-width:1000px){
  .hb-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1.25fr) repeat(3,minmax(0,1fr))}
  .hb-bid,.hb-fut,.hb-wx{grid-column:auto}
  .hb-cell{padding:12px 18px 14px}
  #hb-fc{padding-left:18px;border-left:1px solid var(--border-2)}
  .hb-v{font-size:clamp(1.9rem,3cqi,2.5rem)}.hb-v2{font-size:clamp(1.4rem,2.3cqi,1.9rem)}
  .hb-nozip .hb-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hb-nozip #hb-fc{padding-left:0;border-left:0}
}
/* The briefing teaser above the hero: one row and two lines at most on a phone. */
@media(max-width:640px){
  .daily-teaser .teaser-line1{flex-wrap:nowrap!important}
  .teaser-line1 .teaser-action{flex:0 0 auto!important;font-size:.824rem}
  .daily-teaser .teaser-preview{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
}

/* Wide desktop: the hero spans the page, rail included; cash bids and local
   conditions sit right under it, and the rail starts beside them. */
@media(min-width:1240px){
  .idx1-content>.hero-band{grid-column:1/-1;grid-row:1;align-self:start}
  html[data-look] .idx1-content>.s7-month{grid-column:1/3;grid-row:10;margin-top:0}
  html[data-look] #market-intel{grid-row:2/11!important}
}

/* ===== 2026-10-06 type pass (Sig: "too much text blur") ================
   Mono for figures and section eyebrows only; labels, sub-lines, notes and
   links in the sans. Nothing a reader needs under 13px (.765rem). No
   letter-spacing on anything longer than a few words. The cash bids card's
   own rows are left to the bids card. ===== */
.r7-frac{font-size:max(.55em,.765rem)}
.wx-7day-meta,.wx-card .wx-7day-meta{font-size:.8125rem!important}
:is(.wx-loc,.ticker-track .t-label,.ticker-track .t-unit,.m-fold-sum small,.fert-grid span,.idx1-subbar .idx1-zip-chip,.teaser-badge,.s7-stamp,.s7-ck,.s7-k,.s7-ir-v,.s7-cv small,.wstat-lbl,.wx-extra-lbl,.wx-extra-ctx,.wx-chart-toggle,.wx-7day-meta,.wr-when,.wr-meta,.pc-prev,#prices-age,.pc-section-lbl,.pc-contract,.r7-cm,.r7-unit,.cal-time,.land-k,.pbc-meta,.pbc-asof,#r7-pa-now,.idx1-sub-h,.export-cumul,.export-wk-lbl,.export-mkt-yr,.crop-week-badge,.crop-footer-date,.export-footer-date,.tariff-footer-date,.fert-footer-note,.r7-fnote,.spray-day-reason,.spray-day-status,.spray-day-name,.r7-cot-px,.r7-dim,.sig-price,.sig-tag,.noaa-card-head,#nc-week,.r7-nc-usda,.tool-widget-badge,.spray-windows-lbl,.daily-takeaway-frame,.rsc-teaser-label,.rsc-teaser-cta,.cot-bar-labels,.cot-dir,.cot-date,.crop-chg-lbl,.crop-plant-lbl,.tariff-row-dest,.ratio-link,.s7-notes,.gs-card,#idx1-calc-result,#ticker-age,.s7-cv .s7-line,.ad-slot-cta,.adspace-lbl,.wx-summary-title){
  font-family:var(--font-body,Inter,system-ui,sans-serif)!important;letter-spacing:0!important}
:is(.s7-ck,.s7-k,.wstat-lbl,.wx-extra-lbl,.pc-section-lbl,.pc-contract,.idx1-sub-h,.teaser-badge,.idx1-subbar .idx1-zip-chip,.cot-dir,.spray-day-status,.spray-day-name,.noaa-card-head,.tool-widget-badge,.land-k,.wr-when){text-transform:none!important}
.s7-ck,.wstat-lbl,.wx-extra-lbl,.pc-section-lbl,.land-k{font-weight:600;color:var(--text-dim)}
main .tip-b{font-family:var(--font-body,Inter,system-ui,sans-serif)!important;letter-spacing:0!important}
/* Section eyebrows stay mono; multi-word fold headers lose their tracking. */
.m-fold:not(.m-fold--calc)>summary.m-fold-sum,.cot-verdict,.ratio-verdict,.tariff-status-badge{letter-spacing:0!important}
.wx-7day-meta,.s7-cv .s7-line small{font-variant-numeric:tabular-nums}

/* Say it once: what stays visible, and what moved behind a fold. */
#wire-g .wr-c:nth-child(n+3){display:none}
.pc-prev{display:none}
@media(max-width:900px){#usda-cal-strip .cal-card:nth-child(n+5){display:none}}
.s7-notes{margin:4px 0 0;border-top:1px solid var(--border)}
.s7-notes>summary,.pbc-more>summary,.gs-more>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:6px;font-size:.824rem;font-weight:600;color:var(--text-dim);list-style:none}
.s7-notes>summary::-webkit-details-marker,.pbc-more>summary::-webkit-details-marker,.gs-more>summary::-webkit-details-marker{display:none}
.s7-notes>summary::after,.pbc-more>summary::after,.gs-more>summary::after{content:'+';color:var(--text-dim)}
.s7-notes[open]>summary::after,.pbc-more[open]>summary::after,.gs-more[open]>summary::after{content:'\2212'}
.s7-notes-b{display:grid;gap:8px;padding:0 0 12px}
.s7-note{margin:0;font-size:.824rem;line-height:1.5;color:var(--text-dim)}
.s7-note b{color:var(--text)}
.s7-note .w1c-cp{display:block;font-size:.824rem}
.pbc-more{margin-top:4px}
.pbc-more .pbc-line{margin:0 0 6px}
.gs-card{margin-bottom:.7rem;padding:.85rem 1rem;display:flex;flex-direction:column;gap:6px}
.gs-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.gs-t{font-size:.824rem;font-weight:700;color:var(--text)}
.gs-src{font-size:.824rem;color:var(--text-dim);text-decoration:underline;text-underline-offset:2px}
.gs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gs-k{font-size:.824rem;color:var(--text-dim)}
.gs-v{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;font-size:1.294rem;font-weight:800;color:var(--text)}
.gs-line{font-size:.824rem;color:var(--text-dim)}
.gs-more p{margin:0 0 6px;font-size:.824rem;line-height:1.5;color:var(--text-dim)}
.gs-more a{color:var(--text-dim)}
@media(max-width:640px){#daily-teaser-text{-webkit-line-clamp:2!important;min-height:0!important}}

/* Land: the page links fold away on a phone; on desktop the fold is open and its summary hidden. */
html[data-look] #idx1-land .m-fold--lite>summary.m-fold-sum{background:none!important;margin:0!important;padding:12px 0!important;border-radius:0!important;border-top:1px solid var(--border)!important;border-bottom:0!important;font-family:var(--font-body,Inter,system-ui,sans-serif)!important;font-size:.824rem!important;letter-spacing:0!important;text-transform:none!important}
html[data-look] #idx1-land .m-fold--lite>summary.m-fold-sum>span{color:var(--text-dim)!important}
/* The bot teaser repeats the rail card, which a phone reaches further down. */
@media(max-width:900px){#f-rail-scorecard-teaser{display:none!important}}

/* 13px range ends in the price cards and ledgers: the sans figures fit
   where 13px mono ran past the card edge. */
.pc-range-labels>span,.r7-lo,.r7-hi{font-family:var(--font-body,Inter,system-ui,sans-serif)!important;font-variant-numeric:tabular-nums;letter-spacing:0!important}
@media(max-width:360px){.daily-teaser .teaser-line1{flex-wrap:wrap!important}}

/* Off-palette red (#ef4444) was 3.8:1 on the light theme; the --red token
   passes AA in both. */
:is(.spray-day.stop .spray-day-status,.cot-dir.short,.cot-verdict.short,.cot-chg.dn,.tariff-status-badge.elevated,.tariff-row-rate.elevated,.crop-ge-val.poor,.crop-chg.dn,.export-pace-pct.behind,.fert-chg-val.up,.yc-pill--bad,.dh-fc--stop){color:var(--red)!important}
[data-theme="light"] :is(.s7-note,.gs-more,.pbc-more) a{color:#86600f}

/* ===== 2026-10-06 panel 6 fix round (index1 layout) =====================
   U9: on wide screens the Wire sits right under cash bids in the left column
   and local conditions spans both rows on the right. Row 3 is the flexible
   row, so it takes whatever height conditions needs beyond bids, and nothing
   is left empty under the bids card. */
@media(min-width:1240px){
  .idx1-shell{grid-template-rows:auto auto 1fr}
  #f1{grid-column:1!important;grid-row:2!important}
  #wire-band{grid-column:1!important;grid-row:3!important;align-self:start}
  #f2{grid-column:2!important;grid-row:2/4!important;align-self:start}
}
/* U8: the hero names the place once. The weather card's own place line and
   the desktop ZIP chip's number drop; every Change control stays. */
#idx1-zip-chip .idx1-zip-word{display:none}
.idx1-content:has(>#hero-band) #wx-loc{display:none}
@media(min-width:901px){
  body:has(#hero-band) #idx1-zip-chip :is(.idx1-zip-label,.idx1-zip-val,.idx1-zip-dot){display:none}
  body:has(#hero-band) #idx1-zip-chip .idx1-zip-word{display:inline}
  body:has(#hero-band) #idx1-zip-chip .idx1-zip-change{margin-left:0}
}
/* U5: nothing a reader needs under 13px in the Store or sell fold, the month
   notes or the 5-day strip. */
.m-fold--calc :is(.idx1-extras-field,.idx1-extras-field>span,.idx1-extras-fine,.idx1-opt,.idx1-basis-end-a,.idx1-basis-end-b,summary:not(.m-fold-sum)){font-size:.8125rem!important}
.s7-notes :is(small,.s7-note small){font-size:.8125rem!important}
:is(.idx1-basis-end-a,.idx1-basis-end-b){font-family:var(--font-body,Inter,system-ui,sans-serif)!important;font-variant-numeric:tabular-nums;letter-spacing:0!important}
.s7-cv .s7-line{font-variant-numeric:tabular-nums}
/* U13: September to November, Local conditions on a phone folds the GDU and
   soil tiles behind one button; the hero already gives today's read. */
#wx-fold-btn{display:none}
@media(max-width:900px){
  html.wx-fold-season #wx-fold-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;margin:8px 0 0;padding:10px 0;background:none;border:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font:inherit;font-size:.875rem;font-weight:600;color:var(--text-dim);cursor:pointer;text-align:left}
  html.wx-fold-season #wx-fold-btn::after{content:'+' / '';color:var(--text-dim)}
  html.wx-fold-season.wx-fold-open #wx-fold-btn::after{content:'\2212' / ''}
  html.wx-fold-season #wx-fold-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
  html.wx-fold-season:not(.wx-fold-open) :is(#gdu-stat,#gdu-chart-panel,#s7-wx-soil-w){display:none!important}
  html.wx-fold-season:not(.wx-fold-open) .wx-data-extra{grid-template-columns:minmax(0,1fr)!important}
}
/* Teaser: one line on a phone; the briefing stamp drops there. */
@media(max-width:640px){
  #daily-teaser-text .s7-stamp{display:none}
  #daily-teaser-text,.daily-teaser .teaser-preview{-webkit-line-clamp:1!important}
}

/* ===== 2026-10-06 EARN: "everything must earn its keep" =================
   1. Radar is its own card. Wide desktop: left column, row 3, under cash
      bids (index1.html sizes it 340-720px so the column ends level with
      Local conditions). Phone and 901-1239px: a fold after Local conditions,
      closed by default, its summary the header. Never inside #f1. */
#radar-fold .radar-card{border:0!important;border-radius:0!important;background:none!important;display:flex;flex-direction:column;height:360px;min-height:0;overflow:hidden}
#radar-fold .radar-card iframe{flex:1;min-height:0!important;height:auto!important}
#radar-fold .radar-by{font-size:.824rem;color:var(--text-muted)}
@media(max-width:1239px){
  #radar-fold #f-radar>.sec-head{display:none}
  #radar-fold[open]>summary.m-fold-sum{margin-bottom:12px!important}
  #dash-grid>#radar-fold{grid-column:1/-1}
}
/* Folds that stay folds on a desktop (Radar at 901-1239px, the FAQ at
   every width) show their summary there; it is the section header. */
@media(min-width:901px) and (max-width:1239px){
  #radar-fold>summary.m-fold-sum{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 0;cursor:pointer;list-style:none}
  #radar-fold>summary.m-fold-sum::-webkit-details-marker{display:none}
  #radar-fold>summary.m-fold-sum::after{content:'+';font-size:1rem;color:var(--text-muted)}
  #radar-fold[open]>summary.m-fold-sum::after{content:'\2212'}
}
@media(min-width:901px){
  #faq-fold>summary.m-fold-sum{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 0;cursor:pointer;list-style:none}
  #faq-fold>summary.m-fold-sum::-webkit-details-marker{display:none}
  #faq-fold>summary.m-fold-sum::after{content:'+';font-size:1rem;color:var(--text-muted)}
  #faq-fold[open]>summary.m-fold-sum::after{content:'\2212'}
}
#faq-fold #f-faq>.sec-head{display:none}
/* A closed fold is its header bar and nothing under it. */
html[data-look] #main details.m-fold:not(.m-fold--calc):not([open]){padding-bottom:0!important}
html[data-look] #main details.m-fold:not(.m-fold--calc):not([open])>summary.m-fold-sum{margin-bottom:0!important}
@media(min-width:1240px){
  #radar-fold{grid-column:1!important;grid-row:3!important;align-self:start}
  #radar-fold .radar-card{height:420px}
  #wire-band{grid-column:1/3!important;grid-row:4!important}
  /* Every row sizes to its content; the one flexible row is after the rail,
     so a rail longer than the main column never opens a gap between cards. */
  .idx1-shell{grid-template-rows:repeat(10,auto) 1fr!important}
  html[data-look] #market-intel{grid-row:2/12!important}
}

/* 2. One fact, one place (EARN). Fall nitrogen is one ruled line in Local
   conditions; the 5-day spray read sits under the 5-day forecast; export
   sales is the markets fold's one block; land is one row plus More tools. */
.wx-falln{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:10px 0;border-top:1px solid var(--hair);text-decoration:none;color:inherit;min-height:44px}
.wx-falln[hidden]{display:none}
.wx-falln:hover .wx-falln-v{text-decoration:underline}
.wx-falln-k{font-size:.824rem;font-weight:600;color:var(--text-dim)}
.wx-falln-v{font-size:.875rem;font-weight:700;color:var(--text)}
.wx-falln-s{flex-basis:100%;font-size:.8125rem;line-height:1.45;color:var(--text-muted)}
#f2 .spray-windows{margin:12px 0 4px;padding-top:10px;border-top:1px solid var(--hair)}
#f2 .spray-windows-lbl{font-family:var(--font-body,Inter,system-ui,sans-serif)!important;font-size:.824rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-dim)}
#f2 .spray-days{max-width:none;justify-content:space-between}
.crop-export-grid--one{grid-template-columns:minmax(0,1fr)!important}
#idx1-land .land-grid{grid-template-columns:minmax(0,1fr)}
#idx1-land:not(:has(#land-hail:not([hidden]))) .land-grid,html.s7-no-hail #idx1-land .land-grid{grid-template-columns:minmax(0,1fr)!important}
#idx1-land .land-lead{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 12px;border-top:0;padding-top:0}
#idx1-land .land-lead .land-v{font-size:1rem}
#idx1-land .land-lead .land-s{font-size:.824rem;color:var(--text-dim)}
.land-more{margin-top:4px;border-top:1px solid var(--hair);padding-top:10px}
.land-more-h{margin:0 0 2px;font-size:.824rem;font-weight:600;color:var(--text-dim)}
.land-more .land-links{margin-top:0}
@media(max-width:900px){.land-more-h{display:none}.land-more{border-top:0;padding-top:0}}

/* 3. Order, one story (EARN). Hero, [cash bids + radar | local conditions],
   the Wire across the main column with two items side by side, markets,
   the month, land and more tools, FAQ, signup. The rail runs beside rows 2
   onward. On a phone the document order is the reading order: the rail
   (calendar, market intelligence, bot, alert) comes after the month, and
   .idx1-tail (land, FAQ, signup) after the rail. */
.idx1-tail{min-width:0;display:flex;flex-direction:column}
@media(min-width:901px) and (max-width:1239px){
  .idx1-shell{grid-template-rows:auto 1fr}
  .idx1-content{grid-column:1;grid-row:1}
  #market-intel{grid-column:2;grid-row:1/3}
  .idx1-tail{grid-column:1;grid-row:2;align-self:start}
}
@media(min-width:1240px){
  .idx1-tail{display:contents!important}
  .idx1-tail>*{grid-column:1/3!important}
  html[data-look] .idx1-shell #f-prices{grid-row:5!important}
  html[data-look] .idx1-shell .idx1-content>.s7-month{grid-column:1/3!important;grid-row:6!important}
  .idx1-tail>#idx1-land{grid-row:7!important}
  .idx1-tail>#faq-fold{grid-row:8!important}
  .idx1-tail>#signup-full{grid-row:9!important}
  .idx1-tail>#signup-slim{grid-row:10!important}
  #wire-g{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* 4. One section header (EARN). Every section, rail card and top-level
   fold reads like the cash bids head: mono .824rem, bold, uppercase, .08em
   tracking, on the band bar with its family rule (THE LOOK draws the bar).
   October on the farm and the Wire now use the same .sec-head markup. A
   fold's summary is its header, at the same size. Folds inside Market
   prices are one level down: a ruled sub-head, no second bar. */
html[data-look] .m-fold:not(.m-fold--calc)>summary.m-fold-sum{box-sizing:border-box;min-height:44px!important;padding-top:10px!important;padding-bottom:10px!important;border-top:0!important;font-family:'JetBrains Mono',monospace!important;text-transform:uppercase!important}
html[data-look] .m-fold:not(.m-fold--calc)>summary.m-fold-sum>span{font-family:'JetBrains Mono',monospace!important;font-size:.824rem!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;line-height:1.6}
html[data-look] .m-fold:not(.m-fold--calc)>summary.m-fold-sum>span small{font-family:var(--font-body,Inter,system-ui,sans-serif)!important;font-size:.765rem!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important;margin-left:6px}
html[data-look] .m-fold:not(.m-fold--calc)[open]>summary.m-fold-sum{margin-bottom:12px!important}
html[data-look] .m-fold:not(.m-fold--calc)>summary.m-fold-sum::after{line-height:1}
html[data-look] #f-prices .m-fold>summary.m-fold-sum,html[data-look] #idx1-land .m-fold--lite>summary.m-fold-sum{background:none!important;margin:0!important;padding:10px 0!important;min-height:44px!important;border-radius:0!important;border-top:1px solid var(--hair)!important;border-bottom:0!important}
html[data-look] #main #f-prices .m-fold>summary.m-fold-sum>span,html[data-look] #main #idx1-land .m-fold--lite>summary.m-fold-sum>span{font-family:var(--font-body,Inter,system-ui,sans-serif)!important;font-size:.875rem!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--text-dim)!important}
html[data-look] #f-prices .m-fold[open]>summary.m-fold-sum{margin-bottom:4px!important}
#wire-band .wr-sub{font-size:.824rem;color:var(--text-muted)}
/* Equal gaps: every card carries the 16px gap below it, so the rail and the
   shell add none of their own. */
html[data-look] .intel-rail{gap:0}
@media(max-width:1239px){html[data-look] .idx1-shell{row-gap:0}}
@media(min-width:901px) and (max-width:1239px){html[data-look] #dash-grid{row-gap:0!important;margin-bottom:0!important}}
@media(max-width:420px){html[data-look] .m-fold--cot>summary.m-fold-sum>span small{display:none}}
#wire-band>.wr-body{padding-top:0}

/* ===== THE LOOK (2026-10-03) ==========================================
   Sig: "lots of still monotone and hard to differentiate one thing from
   another". Every top-level section belongs to a family, and the page
   frames sections one of three ways, chosen by <html data-look="...">:

     panels    each section on its own raised panel
     bands     square tinted blocks with a solid header bar
     families  no panel; a coloured rule and header per family

   Sig, 2026-10-03: "my favorite is b, second favoorite is c and then a, i
   like elements of all in that weight". Default is bands, carrying C's
   family-coloured headers and A's hairline border and rounded corners.

   Families and their colours, all existing tokens (no new colours):
     markets  --gold    cash bids, prices, the Wire, The Read, funds, scorecard, alerts
     weather  --blue    local conditions, radar, NOAA outlooks
     reports  --green   October on the farm, USDA calendar, crops/exports/inputs
     land     --orange  land, storage & risk
     tools    --border-2  quick tools, FAQ, signup
   Light theme: --blue and --orange are under 3:1 as text on white, so there
   they colour rules and icons only; header text stays dark. */

:root{--panel-bg:var(--surface2);--panel-line:var(--border-2);--band-bar:var(--surface3);--sec-gap:16px;--panel-pad:16px 18px}
[data-theme="light"]{--panel-bg:var(--surface);--band-bar:var(--surface2)}

:is(#f1,#f-prices,#wire-band,.m-fold--read,.m-fold--cot,#f-rail-scorecard,#f-rail-scorecard-teaser,#f-price-alert){--fam:var(--gold)}
:is(#f2,.m-fold--radar,.m-fold--noaa){--fam:var(--blue)}
:is(#s7-month,#f5,#f-prices>.m-fold--usda){--fam:var(--green)}
#idx1-land{--fam:var(--orange)}
:is(.m-fold--tools,.m-fold--faq,#signup-full){--fam:var(--border-2)}

/* The price section is one unit in every look. At 1240+ it used to be
   display:contents with its children placed on the page grid one by one,
   which left nothing to frame. */
@media(min-width:1240px){
  html[data-look] #f-prices{display:block!important;grid-column:1/3!important;grid-row:5/10!important;align-self:start}
  html[data-look] #f-prices>.sec-head{margin-top:0!important}
  /* Inside the section the two price tables would get ~480px each, too
     narrow for their 52-week ends; they stack. */
  html[data-look] #f-prices>.r7-ledgers{grid-template-columns:minmax(0,1fr)!important}
}

/* --- panels ----------------------------------------------------------- */
html[data-look="panels"] :is(#s7-month,#f1,#f2,#wire-band,#f-prices,#idx1-land,.m-fold--tools,.m-fold--radar,.m-fold--noaa,.m-fold--read,.m-fold--faq,#signup-full,#f5,.m-fold--cot,#f-rail-scorecard,.m-fold--alert,#f-rail-scorecard-teaser){
  background:var(--panel-bg)!important;border:1px solid var(--panel-line)!important;border-radius:10px!important;
  padding:var(--panel-pad)!important;margin-bottom:var(--sec-gap)!important;box-shadow:none!important}
html[data-look="panels"] #f-prices>.m-fold--usda{border-top:1px solid var(--panel-line);margin-top:12px;padding-top:12px}
html[data-look="panels"] .sec-head{border-bottom:1px solid var(--panel-line)!important;padding-bottom:8px!important;margin-bottom:12px!important}
html[data-look="panels"] .sec-title::before{content:"";width:3px;height:1.1em;background:var(--fam,var(--gold));border-radius:2px;flex:none;margin-right:2px}

/* --- bands ------------------------------------------------------------ */
html[data-look="bands"] :is(#s7-month,#f1,#f2,#wire-band,#f-prices,#idx1-land,.m-fold--tools,.m-fold--radar,.m-fold--noaa,.m-fold--read,.m-fold--faq,#signup-full,#f5,.m-fold--cot,#f-rail-scorecard,.m-fold--alert,#f-rail-scorecard-teaser){
  background:var(--panel-bg)!important;border:0!important;border-radius:0!important;
  padding:0 18px 16px!important;margin-bottom:var(--sec-gap)!important;box-shadow:none!important}
html[data-look="bands"] .sec-head{background:var(--band-bar);margin:0 -18px 12px!important;padding:10px 18px!important;border-bottom:2px solid var(--fam,var(--gold))!important}
/* 2026-10-07 (Sig): the radar map fills its card. It reaches into the band's
   18px sides and 16px foot the same way the header row above it does. */
@media(min-width:901px){
  html[data-look="bands"] #radar-fold .radar-card{margin:0 -18px -16px!important}
  html[data-look="bands"] #radar-fold #f-radar>.sec-head{margin-bottom:0!important}
  html[data-look="bands"] #radar-fold #f-radar{margin-bottom:0!important}
}
html[data-look="bands"] .m-fold:not(.m-fold--calc)>summary.m-fold-sum{background:var(--band-bar);margin:0 -18px!important;padding-left:18px!important;padding-right:18px!important;border-bottom:2px solid var(--fam,var(--gold))!important}

/* bands carries C's coloured header text and A's hairline and corners. */
html[data-look="bands"] :is(#s7-month,#f1,#f2,#wire-band,#f-prices,#idx1-land,.m-fold--tools,.m-fold--radar,.m-fold--noaa,.m-fold--read,.m-fold--faq,#signup-full,#f5,.m-fold--cot,#f-rail-scorecard,.m-fold--alert,#f-rail-scorecard-teaser){
  border:1px solid var(--panel-line)!important;border-radius:8px!important}
html[data-look="bands"] :is(#f1,#f2,#f-prices,#idx1-land,#f5,#f-rail-scorecard,#f-price-alert,#f-rail-scorecard-teaser,#signup-full)>.sec-head:first-child{border-radius:7px 7px 0 0}
html[data-look="bands"] .m-fold:not(.m-fold--calc)>summary.m-fold-sum{border-radius:7px 7px 0 0}
html[data-look="bands"] .m-fold:not(.m-fold--calc):not([open])>summary.m-fold-sum{border-radius:7px}
html[data-look="bands"] :is(.sec-title,.m-fold>summary.m-fold-sum>span,.wr-k){color:var(--fam,var(--gold))!important}
html[data-look="bands"] .sec-title svg{color:var(--fam,var(--gold))}
[data-theme="light"][data-look="bands"] :is(.sec-title,.m-fold>summary.m-fold-sum>span,.wr-k){color:var(--text)!important}
[data-theme="light"][data-look="bands"] :is(#f1,#f-prices,#wire-band,.m-fold--read,.m-fold--cot,#f-rail-scorecard,#f-price-alert) :is(.sec-title,.m-fold>summary.m-fold-sum>span,.wr-k){color:#86600f!important}
html[data-look="bands"] :is(.m-fold--tools,.m-fold--faq,#signup-full) .sec-title,
html[data-look="bands"] :is(.m-fold--tools,.m-fold--faq)>summary.m-fold-sum>span,
html[data-look="bands"] .m-fold--calc>summary.m-fold-sum>span{color:var(--text-dim)!important}

/* The month section and the Wire have their own header markup; they get
   the same bar. #wire-band .wr-k is muted by an id rule further up. */
html[data-look="bands"] :is(#s7-month>.s7-head,#wire-band>.wr-summary){background:var(--band-bar);margin:0 -18px 12px!important;padding:10px 18px!important;border-bottom:2px solid var(--fam,var(--gold))!important;border-radius:7px 7px 0 0}
html[data-look="bands"] #wire-band:not([open])>.wr-summary{margin-bottom:0!important;border-radius:7px}
html[data-look="bands"] #wire-band:not([open]){padding-bottom:0!important}
html[data-look="bands"] #s7-month .s7-h{color:var(--fam)}
[data-theme="light"][data-look="bands"] #s7-month .s7-h{color:var(--text)}
html[data-look="bands"] #wire-band .wr-k{color:var(--fam)!important}
[data-theme="light"][data-look="bands"] #wire-band .wr-k{color:#86600f!important}
@media(max-width:600px){html[data-look="bands"] :is(#s7-month>.s7-head,#wire-band>.wr-summary){margin-left:-14px!important;margin-right:-14px!important;padding-left:14px!important;padding-right:14px!important}}

/* --- families --------------------------------------------------------- */
html[data-look="families"] :is(#s7-month,#f1,#f2,#wire-band,#f-prices,#idx1-land,.m-fold--tools,.m-fold--radar,.m-fold--noaa,.m-fold--read,.m-fold--faq,#signup-full,#f5,.m-fold--cot,#f-rail-scorecard,.m-fold--alert,#f-rail-scorecard-teaser){
  background:none!important;border:0!important;border-left:3px solid var(--fam,var(--gold))!important;border-radius:0!important;
  padding:2px 0 4px 14px!important;margin-bottom:28px!important;box-shadow:none!important}
html[data-look="families"] :is(.sec-title,.m-fold>summary.m-fold-sum>span,.wr-k){color:var(--fam,var(--gold))!important}
[data-theme="light"][data-look="families"] :is(.sec-title,.m-fold>summary.m-fold-sum>span,.wr-k){color:var(--text)!important}
[data-theme="light"][data-look="families"] :is(#f1,#f-prices,#wire-band,.m-fold--read,.m-fold--cot,#f-rail-scorecard,#f-price-alert) :is(.sec-title,.m-fold>summary.m-fold-sum>span,.wr-k){color:#86600f!important}
html[data-look="families"] .sec-title svg{color:var(--fam,var(--gold))}
/* The tools family's colour is a hairline; as header text it is 1.45:1. */
html[data-look="families"] :is(.m-fold--tools,.m-fold--faq,#signup-full) .sec-title,
html[data-look="families"] :is(.m-fold--tools,.m-fold--faq)>summary.m-fold-sum>span{color:var(--text-dim)!important}

/* --- every look: what sits inside a section reads as one level down --- */
html[data-look] .m-fold--calc>summary.m-fold-sum>span{color:var(--text-dim)!important}
html[data-look] #f1 .bh-elev>div:first-child>div:first-child{font-size:1rem;font-weight:700}
@media(max-width:600px){
  :root{--panel-pad:14px 14px}
  html[data-look="bands"] .sec-head,html[data-look="bands"] .m-fold:not(.m-fold--calc)>summary.m-fold-sum{margin-left:-14px!important;margin-right:-14px!important;padding-left:14px!important;padding-right:14px!important}
  html[data-look="bands"] :is(#s7-month,#f1,#f2,#wire-band,#f-prices,#idx1-land,.m-fold--tools,.m-fold--radar,.m-fold--noaa,.m-fold--read,.m-fold--faq,#signup-full,#f5,.m-fold--cot,#f-rail-scorecard,.m-fold--alert,#f-rail-scorecard-teaser){padding:0 14px 14px!important}
}

/* 52-week range bars in the price tables: the same red-to-gold-to-green
   gradient as the price cards (Sig's preference, 2026-10-03). */
#f-prices .r7-bar{height:4px!important;border-radius:2px;background:linear-gradient(to right,var(--red),var(--gold) 50%,var(--green))!important}
#f-prices .r7-dot{box-shadow:0 0 0 2px var(--surface2)}

/* Rail headers: in a 340px rail with panel padding, "Upcoming USDA Reports"
   wrapped onto two lines beside its link. The title keeps one line; the
   link drops under it when there is no room. */
#market-intel .sec-head{flex-wrap:wrap;row-gap:2px}
#market-intel .sec-title{white-space:nowrap}
/* USDA calendar: the desktop strip scrolled sideways inside its panel and
   showed a card cut at the edge ("Crop Progre"). Two across everywhere,
   the next six; the full calendar is one link away. */
#usda-cal-strip{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;overflow:visible!important}
#usda-cal-strip .cal-card{min-width:0!important}
#usda-cal-strip .cal-card:nth-child(n+7){display:none}
/* the shared .cal-strip carries a 2rem bottom margin for a free-standing strip;
   inside this card it was dead space under the last row */
.usda-cal-card #usda-cal-strip{margin-bottom:0;padding-bottom:0}
/* In the 340px desktop rail, two across squeezed each card to ~140px. One
   column there, the next five. */
@media(min-width:1240px){#usda-cal-strip{grid-template-columns:minmax(0,1fr)}#usda-cal-strip .cal-card:nth-child(n+6){display:none}}


/* ===== 2026-10-11 polish: one ZIP box, a visible h1, phone order =====
   The hero band now opens <main> and sits above the briefing teaser, so the
   local bids answer is first at every width. */
#main #hero-band h1.hb-h1{margin:2px 0 4px;font-family:var(--font-body,Inter,system-ui,sans-serif);font-size:.941rem;font-weight:600;line-height:1.35;letter-spacing:0;text-transform:none;color:var(--text-dim);text-wrap:pretty}
@media(max-width:639px){#main #hero-band h1.hb-h1{font-size:.875rem;margin:4px 0 2px}}
/* The ZIP form: shown with no saved ZIP, behind "Change" once there is one. */
.hb-zip{display:none;flex-wrap:wrap;align-items:center;gap:8px;padding:2px 0 12px}
.hb-nozip .hb-zip,.hb-zip.is-open{display:flex}
.hb-nozip .hb-change{display:none}
.hb-zip input{flex:1 1 8rem;max-width:14rem;min-width:0;min-height:44px;box-sizing:border-box;padding:.55rem .8rem;font-family:'JetBrains Mono',monospace;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--ui-field,var(--border-2));border-radius:6px}
.hb-zip input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.hb-zip-go{flex:none;min-height:44px;padding:0 1.1rem;font:700 .941rem/1 var(--font-body,Inter,system-ui,sans-serif);color:#0a0c0d;background:var(--gold-fill,var(--gold));border:0;border-radius:6px;cursor:pointer}
.hb-zip-go:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.hb-zip-msg{flex-basis:100%;font-size:.824rem;font-weight:600;color:var(--orange)}
[data-theme="light"] .hb-zip-msg{color:#86600f}
.hb-zip-msg:empty{display:none}
/* The old ZIP rows in the bids and weather cards stay in the page (geo.js
   writes and reads them) but are never shown; the band is the one box. */
#hero-band~.idx1-shell #bids-zip-row{display:none!important}
.wx-zip-ask{margin:0;padding:12px 0;font-size:.882rem;line-height:1.5;color:var(--text-dim);text-align:center}
.wx-zip-ask-b{background:none;border:0;padding:0 2px;min-height:44px;font:inherit;font-weight:700;color:var(--text);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
/* The sub bar ZIP chip shows only a saved ZIP. */
.idx1-zip-chip[hidden]{display:none!important}
/* The briefing teaser is inside <main> now; on a phone it keeps its full
   width instead of taking main's 16px gutters. */
@media(max-width:900px){#main>.daily-hero{margin-left:-16px;margin-right:-16px}}
/* The link to /markets under the market tables. */
.r7-more{display:inline-flex;align-items:center;min-height:44px;margin:4px 0 0;font-size:.882rem;font-weight:600;color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-2)}
.r7-more:hover{text-decoration-color:currentColor}
/* Phone order: the local bids, then the USDA report days, then local
   conditions and the month; the market tables (all on /markets too) and
   fund positioning drop below them. Desktop keeps its columns. */
@media(max-width:900px){
  .idx1-shell{display:flex!important;flex-direction:column;align-items:stretch!important;gap:0}
  .idx1-shell>.idx1-content,.idx1-shell>#market-intel,.idx1-shell>.idx1-tail{display:contents!important}
  #f1{order:-2}
  #f5{order:-1;margin-bottom:24px}
  #market-intel>.m-fold{margin-bottom:8px}
  #f-prices{order:1;margin-bottom:16px}
  #market-intel>.m-fold--cot{order:1}
  .idx1-tail>*{order:2}
}
/* A returning reader's bid cells fill with three lines (elevator, town and
   miles, month and basis) about a second after first paint; hold them. */
html.has-zip .hb-bid .hb-s{min-height:4.2em}
/* On a phone the "Updated ... days old" stamp lands as a third line under the
   place and date; hold that line too. */
@container hero (max-width:559px){html.has-zip .hb-where{min-height:66px;align-content:flex-start}}
