/* =============================================================================
   digging-network.css  ·  Dig & Chart Network
   -----------------------------------------------------------------------------
   SHARED by all five digging sites. Carries no palette of its own - every colour
   is a var() resolved by the site's own theme.css, which must load AFTER this.
   Edit layout and rules HERE, once, and all five change.
   ============================================================================= */

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(1200px 500px at 50% -220px, rgba(169,180,191,.10), rgba(0,0,0,0)), var(--ink);
  color:var(--text);
  font-family:'Archivo',system-ui,sans-serif;
  font-size:14px; line-height:1.45;
  min-height:100vh;
}
.mono{font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace}
.disp{font-family:'Fraunces',Georgia,serif}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.hidden{display:none !important}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}
a{color:inherit}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(169,180,191,.25);border-radius:8px}
::-webkit-scrollbar-track{background:transparent}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:40;background:rgba(10,9,8,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft)}
.hdr-in{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:14px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:10px}
.brand-au{width:38px;height:38px;border-radius:10px;background:var(--gold-grad);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:17px;color:#14171A;box-shadow:0 2px 14px rgba(169,180,191,.35)}
.brand-name{font-family:'Fraunces',Georgia,serif;font-size:19px;font-weight:700;line-height:1.2;color:#FFFFFF;margin:0}   /* 1.2, as the charting desks use - at 1 the descender in 'Digging' is clipped on Safari */
.gold-text{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-sub{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--faint);letter-spacing:.22em;margin-top:2px}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tab{display:flex;align-items:center;gap:6px;border-radius:10px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--mute);border:1px solid transparent;transition:color .15s,background .15s}
.tab.is-on{color:var(--gold-hi);background:rgba(169,180,191,.10);border-color:var(--border)}
.hdr-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.lbl{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint);letter-spacing:.12em}
.pricebox{text-align:right}
.price-top{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.dot{width:6px;height:6px;border-radius:50%;background:var(--faint)}
.dot.live{background:var(--up);animation:pulse 1.6s ease-in-out infinite}
.price-main{display:flex;align-items:baseline;gap:8px;justify-content:flex-end}
#priceVal{font-size:19px;font-weight:600;color:var(--gold-hi)}
#priceChg{font-size:12px}
#priceChg.pos{color:var(--up)} #priceChg.neg{color:var(--bear)}
.digbox{text-align:right}
#digTime{font-size:12px;color:var(--mute);margin-top:3px}
.btn-dig{border:1px solid var(--border);border-radius:10px;padding:8px 12px;color:var(--gold);font-size:12px;font-weight:600}
.btn-dig:disabled{opacity:.6;cursor:default}

/* ---------- panels & chips ---------- */
main{padding-top:20px;padding-bottom:60px}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px}
.panel-soft{background:var(--panel2);border:1px solid var(--border-soft);border-radius:12px}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint);letter-spacing:.14em}
.chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;font-family:'IBM Plex Mono',monospace;font-weight:600}
.chip-cat{font-size:10px;letter-spacing:.05em;padding:1px 8px}
.chip-cat.lg{font-size:11px;padding:2px 10px}
.chip-reg{font-size:9px;letter-spacing:.08em;padding:1px 5px;border-radius:6px;color:var(--mute);border:1px solid rgba(151,160,169,.3)}
.chip-reg.lg{font-size:10px;padding:2px 7px}
.chip-hz{font-size:10px;padding:1px 7px;color:var(--mute);border:1px solid rgba(151,160,169,.3)}
.chip-hz.lg{font-size:11px;padding:2px 9px}
.chip-st{font-size:10px;letter-spacing:.04em;padding:1px 7px}
.chip-st.lg{font-size:11px;padding:2px 9px}
.icon{display:inline-flex;vertical-align:-2px}
.icon svg{display:block}

/* ---------- article cards ---------- */
.card{display:flex;gap:12px;width:100%;text-align:left;background:var(--panel);border:1px solid var(--border-soft);border-radius:14px;padding:12px;transition:border-color .15s,background .15s}
.card:hover{border-color:var(--border);background:var(--panel2)}
.art{position:relative;flex-shrink:0;width:84px;height:84px;border-radius:10px;overflow:hidden}
.art .art-icon{position:absolute;right:-6px;bottom:-6px;opacity:.5;transform:rotate(-8deg)}
.art .fav{position:absolute;left:8px;top:8px;width:26px;height:26px;border-radius:7px;background:#fff;padding:2px;box-shadow:0 2px 8px rgba(0,0,0,.5)}
.card-body{min-width:0;flex:1;display:flex;flex-direction:column}
.card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card-time{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint)}
.card-h{margin-top:6px;font-size:14px;font-weight:600;line-height:1.35;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-foot{margin-top:auto;padding-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card-src{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--mute)}
.card-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.impact{display:inline-flex;align-items:center;gap:8px}
.impact-track{display:inline-block;height:5px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.impact-fill{display:block;height:100%;border-radius:99px;background:var(--gold-grad)}
.impact-num{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--mute)}

/* ---------- gauge / bias ---------- */
.grid-bias{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:20px}
.grid-main{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:1000px){
  .grid-bias{grid-template-columns:2fr 3fr}
  .grid-main{grid-template-columns:3fr 2fr}
}
.bias-card{display:flex;flex-direction:column;align-items:center}
.bias-head{width:100%;display:flex;justify-content:space-between;align-items:center}
.gauge{width:100%;max-width:340px;margin-top:8px}
.bias-label{font-family:'IBM Plex Mono',monospace;font-size:14px;font-weight:600;letter-spacing:.18em}
.bias-sub{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint);margin-top:4px;text-align:center}
.bias-counts{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:11px}
.bias-body{display:flex;flex-direction:column;align-items:center;width:100%;margin:auto 0}

/* ---------- drivers ---------- */
.drivers{display:grid;gap:12px;grid-template-columns:1fr;margin-top:12px}
@media(min-width:640px){.drivers{grid-template-columns:1fr 1fr}}
.driver{padding:12px;text-align:left;background:var(--panel2);border:1px solid var(--border-soft);border-radius:12px;transition:border-color .15s}
.driver-top{display:flex;align-items:center;gap:8px}
.driver-name{font-size:13px;font-weight:600}
.driver-n{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint)}
.driver-bar{margin-top:8px;display:flex;align-items:center;gap:8px}
.driver-track{flex:1;height:6px;border-radius:99px;background:#232830;overflow:hidden}
.driver-fill{display:block;height:100%;border-radius:99px}
.driver-pct{font-family:'IBM Plex Mono',monospace;font-size:11px;width:62px;text-align:right}
.sessions{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-soft);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sess-pill{font-family:'IBM Plex Mono',monospace;font-size:10px;border:1px solid var(--border-soft);background:var(--panel2);border-radius:999px;padding:2px 10px;color:var(--text)}
.sess-pill.is-zero{color:var(--faint)}

/* ---------- calendar ---------- */
.cal{margin-bottom:20px}
.cal-head{display:flex;align-items:center;gap:8px}
.cal-strip{margin-top:12px;display:flex;gap:12px;overflow-x:auto;padding-bottom:4px}
.cal-card{flex-shrink:0;min-width:190px;padding:12px;background:var(--panel2);border:1px solid var(--border-soft);border-radius:12px}
.cal-top{display:flex;align-items:center;gap:8px}
.cal-dot{width:7px;height:7px;border-radius:50%}
.cal-date{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--mute)}
.cal-imp{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:9px}
.cal-name{margin-top:6px;font-size:13px;font-weight:600}
.cal-note{margin-top:4px;font-size:11px;color:var(--mute);line-height:1.4}

/* ---------- latest & timeline ---------- */
.latest-head{display:flex;align-items:center;justify-content:space-between}
.linklike{display:inline-flex;align-items:center;gap:4px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--gold)}
.latest-list{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.tl{margin-top:12px;position:relative}
.tl-line{position:absolute;left:5px;top:4px;bottom:4px;width:1px;background:rgba(169,180,191,.22)}
.tl-day{padding-left:24px;padding-top:8px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--gold);letter-spacing:.1em}
.tl-item{position:relative;display:block;width:100%;text-align:left;padding:6px 6px 6px 24px;border-radius:10px}
.tl-item:hover{background:rgba(255,255,255,.03)}
.tl-dot{position:absolute;left:2px;top:12px;width:7px;height:7px;border-radius:50%}
.tl-h{font-size:12.5px;line-height:1.4;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tl-meta{margin-top:2px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint)}

/* ---------- feed ---------- */
.filters{display:flex;flex-direction:column;gap:16px;padding:18px;margin-bottom:16px}
.filters .filter-row{padding-bottom:14px;border-bottom:1px solid var(--border-soft)}
.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fgroup{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.flabel{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint);letter-spacing:.16em;width:76px;flex-shrink:0}
.fbtn{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;border-radius:999px;padding:5px 13px;border:1px solid;transition:all .15s}
.fbtn-sm{font-size:11px;font-weight:400;color:var(--mute);border-color:rgba(255,255,255,.08);background:transparent}
.fbtn-sm.is-on{color:var(--gold-hi);border-color:var(--border);background:rgba(169,180,191,.10)}
.searchbox{display:flex;align-items:center;gap:8px;border:1px solid var(--border-soft);background:var(--panel2);border-radius:10px;padding:8px 12px;flex:1;min-width:180px;max-width:420px}
.searchbox input{background:transparent;border:none;outline:none;color:var(--text);font-size:12.5px;width:100%;font-family:inherit}
.feed-meta{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint);margin-bottom:12px}
.feed-grid{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:820px){.feed-grid{grid-template-columns:1fr 1fr}}
.empty{padding:32px;text-align:center;background:var(--panel);border:1px solid var(--border-soft);border-radius:16px;color:var(--mute);font-size:13px}

/* ---------- setup / first-run ---------- */
.setup{padding:56px 0;display:flex;flex-direction:column;align-items:center;text-align:center}
.setup .brand-au{width:72px;height:72px;border-radius:18px;font-size:30px;box-shadow:0 8px 40px rgba(169,180,191,.35)}
.setup h1{font-family:'Fraunces',Georgia,serif;font-size:26px;font-weight:600;margin:20px 0 0}
.setup p{margin:8px 0 0;max-width:460px;color:var(--mute);line-height:1.6}
.setup code{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--gold-hi);background:var(--panel2);border:1px solid var(--border-soft);border-radius:6px;padding:2px 6px}

/* ---------- modal ---------- */
.modal-back{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:rgba(5,4,3,.78);backdrop-filter:blur(4px);padding:0}
@media(min-width:640px){.modal-back{align-items:center;padding:24px}}
.modal{width:100%;max-width:640px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:18px 18px 0 0;box-shadow:0 30px 80px rgba(0,0,0,.7)}
@media(min-width:640px){.modal{border-radius:18px}}
/* 62px, not 96: the chip row is 30px sitting 16px down, so 96 left a 50px band of
   empty tint under it. 16 above + 30 + 16 below is symmetric, and matches the phone. */
.modal-art{position:relative;height:62px;border-bottom:1px solid var(--border-soft)}
.modal-art .art-icon{position:absolute;right:-14px;top:-18px;opacity:.16;transform:rotate(-8deg)}
.modal-chips{position:absolute;left:16px;top:16px;display:flex;align-items:center;gap:8px}
.modal-chips .fav{width:30px;height:30px;border-radius:7px;background:#fff;padding:2px}
.modal-x{position:absolute;right:12px;top:12px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:11px;background:rgba(18,15,12,.82);color:#F3EFE6;border:1.5px solid rgba(237,230,216,.42);box-shadow:0 3px 12px rgba(0,0,0,.55);line-height:0}   /* the phone sheet's close, everywhere: 38px, a brighter hairline and a shadow, so it lifts off whatever it sits on */
.modal-x svg{width:18px;height:18px;stroke-width:2.4}   /* the thin 16px cross read as a different button */   /* the phone sheet's close, everywhere: a light glass square rather than a dark one on a faint gold hairline */   /* a rounded square, like the menu's close */
.modal-body{padding:20px;overflow-y:auto}
.modal-h{font-family:'Fraunces',Georgia,serif;font-size:22px;line-height:1.25;font-weight:600;margin:0}
.modal-meta{margin-top:8px;display:flex;align-items:center;gap:4px 12px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--mute)}
.modal-meta .src{color:var(--gold-hi)}
.modal-grid{margin-top:20px;display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:560px){.modal-grid{grid-template-columns:1fr 1fr}}
.stat{padding:16px;background:var(--panel2);border:1px solid var(--border-soft);border-radius:12px}
.split-track{display:flex;height:12px;border-radius:99px;overflow:hidden;background:#232830;margin-top:8px}
.split-bull{background:var(--up-grad)}
.split-bear{background:var(--bear-grad)}
.split-nums{display:flex;justify-content:space-between;margin-top:4px;font-family:'IBM Plex Mono',monospace;font-size:12px}
.split-nums .b{color:#57C97B} .split-nums .r{color:var(--bear)}
.big-impact{display:flex;align-items:center;gap:12px;margin-top:12px}
.big-impact .n{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600;color:var(--gold-hi)}
.big-impact .track{flex:1;height:8px;border-radius:99px;background:#232830;overflow:hidden}
.big-impact .fill{display:block;height:100%;border-radius:99px;background:var(--gold-grad)}
.impact-scale{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2px 12px;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--faint);margin-top:5px;letter-spacing:.08em}
.kp{margin-top:20px}
.kp ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.kp li{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.5}
.kp li .icon{color:var(--gold);margin-top:3px;flex-shrink:0}
.read-btn{margin-top:24px;display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:10px 16px;font-weight:600;font-size:13px;background:var(--gold-grad);color:#0E1114;text-decoration:none}
.no-link{margin-top:24px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--faint)}

/* ---------- footer / misc ---------- */
.foot{margin-top:28px;padding-bottom:32px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint);line-height:1.7}
.dig-status{padding-bottom:8px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--mute)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.pulse{animation:pulse 1.6s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.dot.live,.pulse{animation:none !important}.drawer,.drawer-back{transition:none !important}}

/* ---------- SEO / static content section ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.seo{margin-top:28px;padding-top:8px;border-top:1px solid var(--border-soft)}
.seo h2{font-family:'Fraunces',Georgia,serif;font-size:19px;font-weight:600;color:var(--text);margin:26px 0 8px}
.seo p{font-size:13.5px;line-height:1.7;color:var(--mute);margin:0 0 8px;max-width:820px}
.seo strong{color:var(--text);font-weight:600}
.seo details{max-width:820px;border:1px solid var(--border-soft);background:var(--panel);border-radius:12px;padding:10px 14px;margin:8px 0}
.seo summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--text)}
.seo summary::marker{color:var(--gold)}
.seo details p{margin:8px 0 2px}

/* ---------- learn page & nav links ---------- */
.hdr a,.hdr a:hover{text-decoration:none}
a.tab{text-decoration:none}
a.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:10px}
.page-title{font-family:'Fraunces',Georgia,serif;font-size:26px;font-weight:600;color:var(--text);margin:22px 0 6px}
.learnpage{border-top:0;margin-top:0}
.learnpage .lead{font-size:14px}
.learn-link{color:var(--gold-hi);font-weight:600;text-decoration:none}
.learn-link:hover{text-decoration:underline}

.learnpage p,.learnpage details{max-width:none}

/* ---------- burger + slide-in drawer (mobile nav) ---------- */
.burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--border);color:var(--gold);flex-shrink:0}
.drawer-back{position:fixed;inset:0;z-index:60;background:rgba(5,4,3,.62);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .25s ease}
.drawer-back.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:70;width:min(80vw,320px);background:var(--panel);border-left:1px solid var(--border);box-shadow:-20px 0 60px rgba(0,0,0,.55);transform:translateX(105%);transition:transform .28s ease;display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}
.drawer-title{font-family:'Fraunces',Georgia,serif;font-size:16px;font-weight:700;color:#FFFFFF}
.drawer-x{width:32px;height:32px;border-radius:8px;border:1px solid var(--border-soft);color:var(--mute);font-size:14px;line-height:1}
.drawer-link{display:block;width:100%;text-align:left;padding:15px 18px;font-size:15px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border-soft);text-decoration:none}
.drawer-link:hover{background:rgba(255,255,255,.03)}
.drawer-link.is-on{color:var(--gold-hi);background:rgba(169,180,191,.08)}
.drawer-foot{padding:16px 18px;border-top:1px solid var(--border-soft);font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint);letter-spacing:.12em}
body.no-scroll{overflow:hidden}
@media(max-width:640px){
  .hdr-nav{display:none}
  .burger{display:flex}
}
@media(max-width:640px){
  .digbox{display:none}
  .hdr-in{flex-wrap:nowrap;gap:10px}
  .brand-name{font-size:17px}
  .brand-sub{display:none}
  #priceVal{font-size:16px}
}
@media(min-width:641px){.drawer,.drawer-back{display:none}}

/* ---------- Au/Ag metal switcher ---------- */
.metal-switch{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border-soft);background:var(--panel2);border-radius:999px;margin-left:4px;flex-shrink:0}
.ms-opt{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:4px 11px;border-radius:999px;color:var(--mute);text-decoration:none;white-space:nowrap}
a.ms-opt:hover{color:var(--text);background:rgba(255,255,255,.05);text-decoration:none}
.ms-opt.is-cur{color:var(--ink);background:var(--gold-grad)}
.drawer-switch-group{margin-top:auto;border-top:1px solid var(--border-soft)}
.drawer-switch-group .drawer-link:last-child{border-bottom:none}
.drawer-switch{color:var(--gold-hi)}
@media(max-width:640px){.metal-switch{display:none}}

.hdr-nav{display:flex;padding-bottom:17px}
@media(max-width:640px){.hdr-nav{display:none}.hdr-in{padding-bottom:14px}}
@media(max-width:900px){.ms-opt{font-size:10px;padding:4px 8px}}
main.wrap{padding-top:20px;padding-bottom:30px}
@keyframes tickU{0%{color:#57C97B}100%{color:inherit}}
@keyframes tickD{0%{color:#E4572E}100%{color:inherit}}
#priceVal.tick-up{animation:tickU .8s ease}
#priceVal.tick-down{animation:tickD .8s ease}

/* ---------- market intelligence ---------- */
.pulse-bar{background:var(--ink);border-bottom:1px solid var(--border-soft)}
.pb-in{display:flex;align-items:center;gap:18px;overflow-x:auto;padding-top:7px;padding-bottom:7px;scrollbar-width:none}
.pb-in::-webkit-scrollbar{display:none}
.pb-item{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.08em;color:var(--mute);text-decoration:none;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
a.pb-item:hover{color:var(--text);text-decoration:none}
.pb-item b{font-weight:600}
.pb-cur{color:var(--gold-hi)}
.pulse-wait{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--faint)}
.bias-delta{margin-top:7px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.04em}
.bias-driven{margin-top:8px;font-size:11.5px;color:var(--mute)}
.gs-note{margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--faint)}
.gs-note span{color:var(--mute)}
.cal .cal-head{flex-wrap:wrap;row-gap:6px}
.cal-next{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--gold-hi);border:1px solid var(--border-soft);border-radius:999px;padding:3px 9px;white-space:nowrap}
.cal-card{display:flex;flex-direction:column}
.cal-data{margin-top:auto;padding-top:7px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.03em;color:var(--text)}
.cal-actual{font-weight:600}
@media(max-width:640px){.cal-next{display:none}}
.impact-lbl{font-family:'IBM Plex Mono',monospace;font-size:8.5px;letter-spacing:.12em;color:var(--faint);margin-right:3px}
.cal-card[data-act]{cursor:pointer;text-align:left}
.cal-card[data-act]:hover{border-color:var(--gold)}
.ev-top{display:flex;align-items:center;gap:12px;padding:18px 18px 0}
.ev-top .modal-x{position:static;margin-left:auto}
.ev-imp,.ev-date{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.12em;color:var(--mute)}
.ev-data{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--text);margin:2px 0 4px}
.ev-res{font-size:12.5px;color:var(--mute);margin-bottom:4px}
.ev-why{font-size:13px;color:var(--mute);margin:10px 0 14px;line-height:1.55}
.ev-scn{border:1px solid var(--border-soft);border-radius:12px;padding:11px 13px;margin-top:10px;background:var(--panel2)}
.ev-scn-hit{border-color:var(--gold)}
.ev-scn-l{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.13em;color:var(--faint);display:flex;align-items:center;gap:8px}
.ev-hit{color:var(--gold-hi)}
.ev-verdict{font-weight:700;font-size:13.5px;margin:5px 0 3px}
.ev-x{font-size:12.5px;color:var(--text);line-height:1.5;opacity:.92}
.ev-foot{margin-top:14px;font-size:10.5px;color:var(--faint)}
.cal-hint{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.08em;color:var(--faint);white-space:nowrap}
.cal-q{margin-left:6px;width:15px;height:15px;border:1px solid var(--border-soft);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--mute);flex:0 0 auto}
.cal-card[data-act]:hover .cal-q{border-color:var(--gold);color:var(--gold-hi)}
.cal .cal-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;overflow:visible;padding-bottom:0}
.cal .cal-card{width:auto;min-width:0}
.cal-open{position:absolute;right:11px;bottom:10px;color:var(--faint);display:inline-flex}
.cal-card[data-act]:hover .cal-open{color:var(--gold-hi)}
@media(max-width:999px){.cal .cal-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.cal .cal-strip{grid-template-columns:1fr}}
.cal .cal-card{padding:15px;position:relative}
.cal .cal-name{margin-top:9px}
.cal .cal-note{margin-top:7px;line-height:1.5}
.cal .cal-data{padding-top:10px;padding-right:22px}
/* symmetric gap around the desktop menu: match the space below it */
.hdr-nav{padding-top:5px} /* .hdr-nav-sym */
.card{position:relative}
.card .art{align-self:stretch;height:auto;min-height:84px;display:flex;align-items:center;justify-content:center}
.card .card-body{padding-bottom:18px}
.art-open{position:absolute;right:12px;bottom:9px;color:var(--faint);display:inline-flex}
.card:hover .art-open{color:var(--gold-hi)}
@media(max-width:640px){
.card .art{display:none}
.card .card-top{row-gap:6px}
.card .card-h{margin-top:10px;margin-bottom:4px}
.card .card-foot{padding-top:12px}
}

/* fundamentals macro scoreboard */
.fund-panel{margin-bottom:20px}
.fund-groups{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(var(--fund-rows,6),auto);column-gap:12px;row-gap:0}
.fund-g{display:grid;grid-template-rows:subgrid;grid-row:1/-1;background:var(--panel2);border:1px solid var(--border-soft);border-radius:14px;padding:0;overflow:hidden}
.fund-gh{display:flex;justify-content:space-between;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding-bottom:8px;border-bottom:1px solid var(--border-soft);margin-bottom:4px}
.fund-i{position:relative;padding:16px;border-bottom:1px solid var(--border-soft)}
/* only a row that actually opens something looks clickable. Fed Watch's rows and the macro dials are
   plain readings - they carried the scoreboard's pointer, hover tint and focus ring and invited a click
   that never did anything. The affordances now follow the data-act attribute, not the class. */
.fund-i[data-act]{cursor:pointer}
.fund-i:last-child{border-bottom:none}
.fund-r{display:flex;align-items:center;gap:8px}
.fund-m{margin-top:3px;font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.04em;color:var(--faint)}
.fund-n{flex:1;font-size:12.5px;color:var(--text)}
.fund-v{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--mute)}
.fund-pill{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;border:1px solid;border-radius:999px;padding:2px 8px;text-transform:uppercase}
.fund-note{margin-top:20px;font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.08em;color:var(--faint);line-height:1.6}
.fund-note + .fund-note{margin-top:8px}   /* the A / F / P key sits under the footnote, tighter than the footnote sits under the rows */
.cal > .fund-note{margin-top:14px}   /* under the calendar strip, which has its own air */
@media(max-width:900px){.fund-groups{grid-template-columns:1fr}}

/* network footer line */
.net-line{display:block;margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.net-line b{color:var(--mute);font-weight:600}

/* cross-promo banners (design ported from Charting 4 Gold) */
.side-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.promo{position:relative;display:flex;align-items:center;gap:12px;padding:14px 15px;border:1px solid rgba(52,201,140,.5);border-radius:14px;background:radial-gradient(130% 160% at 12% 0%,rgba(52,201,140,.16),rgba(52,201,140,.03) 48%,rgba(0,0,0,0) 75%),#11100d;text-decoration:none;overflow:hidden;transition:transform .15s,box-shadow .15s}
.promo::after{content:"";position:absolute;top:0;bottom:0;width:46px;left:-70px;background:linear-gradient(105deg,transparent,rgba(190,255,222,.13),transparent);transform:skewX(-18deg);animation:promoSheen 5.5s ease-in-out infinite}
@keyframes promoSheen{0%,55%{left:-70px}80%,100%{left:120%}}
.promo:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(52,201,140,.22)}
.promo-open{position:absolute;right:12px;bottom:9px;color:#fff;font-size:14px;line-height:1}
.promo-logo{width:60px;height:60px;border-radius:15px;display:flex;align-items:center;justify-content:center;flex:0 0 60px;margin-right:4px}
.promo-logo-tsh{background:#0f1411;border:1.5px solid #34c98c}
.promo-logo-tsh svg{width:34px;height:27px}
.promo-logo-c4g{background:#151109;border:1.5px solid #d4a017}
.promo-logo-c4g svg{width:34px;height:27px}
.promo-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.promo-txt b{font-size:13.5px;font-weight:700;color:#f2efe9;line-height:1.3}
.promo-sub{display:block;margin-top:3px;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--mute);letter-spacing:.03em}
.promo-sub-em{color:#34c98c;letter-spacing:.03em;font-size:9px}
.promo-bgc{position:absolute;right:28px;top:50%;transform:translateY(-50%);opacity:.22;pointer-events:none}
@media(max-width:1150px){.promo-bgc{display:none}}
.promo-hub .promo-txt b{font-family:'Noto Sans','DejaVu Sans',Inter,Arial,sans-serif;font-weight:800;font-size:14.5px;letter-spacing:-.01em}
.promo-hub .promo-txt i{color:#34c98c;font-style:normal;font-weight:800}
.promo-c4g{background:radial-gradient(130% 150% at 50% -45%,rgba(212,160,23,.34),rgba(0,0,0,0) 58%),var(--panel2);border-color:rgba(212,160,23,.5)}
.promo-c4g:hover{box-shadow:0 6px 22px rgba(212,160,23,.22)}
.promo-c4g::after{background:linear-gradient(105deg,transparent,rgba(255,232,178,.13),transparent)}
.promo-c4g .promo-txt b{font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:16.5px;letter-spacing:.01em;color:#fff}
.promo-c4g .promo-txt i{color:#f2c14e;font-style:normal}

/* month-ahead key releases list */
.mo-list{margin-top:10px}
.mo-r{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.08);padding:14px 2px;cursor:pointer;font:inherit;color:var(--text)}
.mo-r:last-child{border-bottom:none}
.mo-r:hover{background:rgba(255,255,255,.025)}
.mo-dot{width:6px;height:6px;border-radius:50%;flex:0 0 6px}
.mo-date{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--mute);flex:0 0 92px}
.mo-name{flex:1;font-size:12.5px;line-height:1.35;min-width:0}
.mo-t{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--faint);white-space:nowrap}
.mo-open{margin-left:2px;color:var(--faint);display:inline-flex;flex:0 0 auto}
.mo-r:hover .mo-open{color:var(--gold-hi)}

/* desk read + fed watch sidebar cards */
.read-p{margin:10px 0 0;font-size:13px;line-height:1.7;color:var(--mute)}
.read-p b{font-weight:600}
.fed-big{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--text);font-weight:600}
.fed-card .fund-i:first-child{padding-top:4px}
/* Fed Watch's rows carried 16px of their own padding INSIDE a panel that already has 20px, so the row
   text sat 37px from the panel's edge while its title sat at 21px - a double inset, visible as a wide
   left and right margin. The rows are flush with the title now; the fundamentals scoreboard keeps its
   own padding, since its rows are clickable and want the inset for their hover state. */
.fed-card .fund-i{padding-left:0;padding-right:0}
.fed-card .fund-n{font-size:13.5px;font-weight:500;color:var(--text)}

/* ---- THE DESK READ, in the main column (matches Charting's Chart Read card) ---- */
.main-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.read-main{background:linear-gradient(180deg,var(--panel) 0%,var(--panel2) 100%);border-color:var(--border-soft)}
.read-main .read-p{margin-top:12px;font-size:14px;line-height:1.65;color:var(--text)}
.read-main .read-p b{font-weight:600}
@media(max-width:640px){.read-main .read-p{font-size:13.5px}}
/* ---- macro scoreboard: forecast / actual / difference, rows aligned across the three cards ---- */
.fund-gh{padding:16px 16px 10px;border-bottom:1px solid var(--border-soft)}
.fund-i:last-child{border-bottom:0}
.fund-i[data-act]:hover{background:color-mix(in srgb, var(--gold) 4%, transparent)}
.fund-i[data-act]:hover .fund-a{opacity:1}
.fund-i[data-act]:focus-visible{outline:1px solid var(--gold);outline-offset:-2px}
.fund-a{position:absolute;right:14px;bottom:14px;color:var(--gold);font-size:12px;opacity:.25;transition:opacity .15s}
.fund-r{display:flex;align-items:baseline;gap:8px}
.fund-n{flex:1;min-width:0;font-size:13px;line-height:1.35}
.fund-m{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--faint);margin-top:7px;line-height:1.55}
.fund-s{display:flex;gap:16px;margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:11.5px}
.fund-s u{text-decoration:none;color:var(--faint);font-size:11.5px;margin-right:5px}
.fund-s b{font-weight:400}
@media(max-width:900px){.fund-groups{grid-template-columns:1fr;grid-template-rows:none;row-gap:12px}.fund-g{grid-row:auto;grid-template-rows:none}.fund-panel .bias-head{flex-direction:column;align-items:flex-start;gap:4px}}
.fund-gv{font-weight:600}   /* inherits the header's size, so the figure and the word match */
.fund-panel .bias-head{margin-bottom:14px}

/* the line between the header and the desk: one pixel in the asset colour, fading to the edges */
.hdr{border-bottom:0;box-shadow:0 12px 24px -16px rgba(0,0,0,.9)}
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;opacity:.6;background:linear-gradient(90deg,transparent,var(--gold-hi) 50%,transparent)}
/* the dashboard's headline list ends with the door to the rest */
.feed-more{display:flex;width:100%;justify-content:center;align-items:center;gap:8px;margin-top:20px;padding:11px 14px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--gold-hi);background:rgba(255,255,255,.03);border:1px solid var(--gold-hi);border-radius:999px;cursor:pointer;transition:.16s}
@supports (color: color-mix(in srgb, red 50%, transparent)){.feed-more{border-color:color-mix(in srgb, var(--gold-hi) 40%, transparent);background:color-mix(in srgb, var(--gold-hi) 8%, transparent)}.feed-more:hover{background:color-mix(in srgb, var(--gold-hi) 16%, transparent)}}
.feed-more span{font-size:14px;line-height:1}

/* the line above the footer: the header's line, the other way up */
.seo{border-top:0;position:relative}
.seo::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;opacity:.6;background:linear-gradient(90deg,transparent,var(--gold-hi) 50%,transparent)}

/* the macro dials - the desk's own furniture: Fed Watch's rows, the desk's mono for every figure,
   the fund-pill for the change and its small mono caption for the explanation. No decoration of its own:
   the panel is a fed-card like the ones around it, and the only addition is the move bar under each figure. */
.macro{position:relative}
/* the rows sit inside the panel's own padding, as Fed Watch's do, so the divider between them starts and
   stops with the text rather than running to the card's edges. Nothing here is clickable. */
.macro .macro-grid{margin:16px 0 0}
.macro .macro-dial{padding:19px 0;border-bottom:1px solid color-mix(in srgb, var(--gold) 22%, transparent);cursor:default}
.macro .macro-dial:hover{background:none}
.macro .macro-dial:first-child{padding-top:2px}
.macro .macro-dial:last-child{border-bottom:0;padding-bottom:2px}
.macro-more{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.04em;line-height:1.6;color:var(--gold-hi);margin-top:7px}   /* the asset's colour: it belongs to the bar above it, not to the prose */
.macro .fund-r{align-items:center}
.macro .fund-m{margin-top:11px}
.macro .fund-n{flex:1}
.macro .macro-chg{flex:0 0 auto}
.macro-vrow{display:flex;align-items:center;gap:14px;margin-top:11px}
.macro-v{font-family:'IBM Plex Mono',monospace;font-size:17px;font-weight:600;line-height:1.1;color:var(--text);white-space:nowrap}   /* between Fed Watch's 14px row value and the header price's 19px */
.macro-u{font-style:normal;font-size:11px;font-weight:500;color:var(--mute);margin-left:1px}
.macro-bar{position:relative;flex:1;min-width:60px;height:3px;border-radius:99px;background:rgba(255,255,255,.05);overflow:hidden}
.macro-bar::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--border)}
.macro-bar i{position:absolute;top:0;bottom:0;border-radius:99px;opacity:.85}
.macro .macro-stale{opacity:.8}
.macro-dial.is-stale .macro-v{opacity:.6}
.macro-wait{font-size:12.5px;line-height:1.55;color:var(--mute);margin-top:14px}
.macro-foot{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.04em;line-height:1.6;color:var(--faint);margin-top:20px}

/* the day's headline event: a band across the top of the desk, above every panel - the site's own
   background under a soft wash of the asset's colour, with that colour as its border, so it belongs to
   the page rather than sitting on it.
   One size per line: the small label above the name, and the small things that are not the name (the
   desk's note, the impact, the cue) grouped together on the right. It opens the calendar's own modal. */
.topev{display:flex;align-items:center;justify-content:space-between;gap:22px;width:100%;text-align:left;
  appearance:none;font:inherit;color:inherit;cursor:pointer;margin:0 0 20px;padding:12px 18px;border-radius:13px;   /* the gap below matches the 20px the page leaves above it */
  border:1px solid var(--border);   /* the same border every panel on the desk uses */
  background:linear-gradient(96deg,color-mix(in srgb, var(--gold) 16%, transparent),color-mix(in srgb, var(--gold) 5%, transparent) 58%,color-mix(in srgb, var(--gold) 2%, transparent)),var(--ink);
  background-clip:padding-box;   /* a background paints under a border by default, and this border is a
                                    translucent tint - the wash was showing through it and thickening the
                                    left edge. Clipped to the padding box the border reads as the panels' do. */
  transition:border-color .16s,background .16s,transform .16s}
.topev:hover{border-color:color-mix(in srgb, var(--gold) 42%, transparent);
  background:linear-gradient(96deg,color-mix(in srgb, var(--gold) 26%, transparent),color-mix(in srgb, var(--gold) 9%, transparent) 58%,color-mix(in srgb, var(--gold) 4%, transparent)),var(--ink);
  background-clip:padding-box}
.topev:active{transform:translateY(1px)}
.topev:focus-visible{outline:1px solid var(--gold-hi);outline-offset:3px}
.topev-l{display:flex;flex-direction:column;gap:4px;min-width:0}
.topev-lead{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-hi)}
.topev-name{font-size:16px;font-weight:600;line-height:1.25;color:var(--text)}
.topev-r{display:flex;align-items:center;gap:14px;flex:0 1 auto;min-width:0}
.topev-note{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.03em;color:var(--mute);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.topev-imp{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-hi);border:1px solid color-mix(in srgb, var(--gold) 50%, transparent);border-radius:999px;padding:4px 9px;white-space:nowrap;flex:0 0 auto}
.topev-cta{display:flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);white-space:nowrap;flex:0 0 auto}
.topev-cta i{display:inline-flex;transition:transform .16s}
.topev:hover .topev-cta i{transform:translateX(3px)}
@media(max-width:860px){.topev-note{display:none}}   /* the note is in the modal a tap away; the name is not */
@media(max-width:760px){
  .topev{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px}
  .topev-name{font-size:15.5px}
  .topev-r{width:100%;justify-content:space-between}
}

/* The Technicals cross-link - the mirror of Charting's Fundamentals button, and styled exactly as that one
   is. It lived in each site's theme.css, which is a site-only file: the moment a theme was replaced the
   pill vanished. It is the same on all five desks, so it belongs here, in the shared sheet, tinted from
   the desk's own accent rather than a literal. */
.tabs{flex:1 1 100%;align-items:center}
.fund-row{display:flex;margin-left:auto;align-self:center}
.fund-link{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:1px solid var(--gold);
  border-radius:999px;background:color-mix(in srgb, var(--gold-hi) 8%, transparent);
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.14em;color:var(--gold-hi);text-decoration:none;text-transform:uppercase;line-height:13px}
.fund-link:hover{background:color-mix(in srgb, var(--gold-hi) 16%, transparent)}
.fund-panel{margin-bottom:20px}
@media(max-width:760px){.topev{margin-bottom:14px}}   /* match the 14px the phone wrap leaves above it */

/* The cross-family link at the foot of the phone menu is not a sister DESK, it is the other half of the
   pair - so it reads white while the switch-to-<asset> links keep the accent. Gold's theme had this rule
   hard-coded to its own twin's URL, which is why gold was the only desk where it worked. */
.drawer-link.drawer-switch[href*="charting4"]{color:#fff}

/* the sheets' close, written inline by app.js, gets the same shape from here so every close on the site
   is one object: rounded square, never a circle */
@media(max-width:900px){
  .m-sh-x{border-radius:11px !important}
}

/* THE MUTED TONE, MATCHED TO THE CHARTING DESKS. Every neutral in the two families already agreed except
   --faint, which was several steps darker here - so the same small labels (the logo's tagline among them)
   read dimmer on a news desk than on its twin. It is derived from this desk's own --mute rather than
   fixed, so each site keeps its own colour and only the tone lines up: within two or three points of the
   charting twin's value on all five. It is !important because theme.css loads after this sheet; when a
   theme's own --faint is next updated to match, this can go. */
:root{--faint:color-mix(in srgb, var(--mute) 81%, var(--ink))}
/* no !important: a theme that already sets the matched value wins, as it should. Gold's theme carries it
   now; the other four still need it, and until they do this derived value stands in - it lands within a
   few points of each charting twin's. */
