@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/ibm-plex-mono-400.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('/fonts/ibm-plex-mono-500.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap; src:url('/fonts/ibm-plex-mono-600.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:700; font-display:swap; src:url('/fonts/ibm-plex-mono-700.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-style:normal; font-weight:300 700; font-display:swap; src:url('/fonts/ibm-plex-sans-var.woff2') format('woff2'); }

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
[hidden] { display:none !important; }
[data-theme="dark"] {
  --bg:#0f1117; --bg-grad:linear-gradient(155deg,#171720 0%,#0f1117 48%,#15131b 100%);
  --surface:#1c1c26; --surface2:#22222e; --paper:#23232f; --paper2:#1f1f2a;
  --border:#2f2f3e; --border2:#414154; --text:#f2f2f7; --text2:#c5c5d5; --muted:#a0a0b7;
  --green:#22c55e; --green-rgb:34,197,94; --gold:#f59e0b; --gold-rgb:245,158,11;
  --red:#ef4444; --red-rgb:239,68,68; --blue:#60a5fa; --blue-rgb:96,165,250;
  --nav:rgba(15,17,23,.9); --nav-border:rgba(60,60,80,.65); --shadow:rgba(0,0,0,.58);
  --toggle:#38384a; --knob:#f2f2f7; --chart-grid:#343444; --recession:rgba(255,255,255,.055);
}
[data-theme="light"] {
  --bg:#f0e9da; --bg-grad:linear-gradient(155deg,#f8f3ea 0%,#f0e9da 52%,#ece2d1 100%);
  --surface:#eee6d8; --surface2:#e8dfcf; --paper:#fbf7ee; --paper2:#f5eee1;
  --border:#d6ccbd; --border2:#c3b7a5; --text:#2b2112; --text2:#5c503e; --muted:#766957;
  --green:#15803d; --green-rgb:21,128,61; --gold:#a13f0b; --gold-rgb:161,63,11;
  --red:#b91c1c; --red-rgb:185,28,28; --blue:#1d4ed8; --blue-rgb:29,78,216;
  --nav:rgba(240,233,218,.92); --nav-border:rgba(200,188,170,.82); --shadow:rgba(46,34,16,.18);
  --toggle:#c7bcaa; --knob:#2b2112; --chart-grid:#ded4c4; --recession:rgba(42,32,16,.06);
}

html { min-height:100%; scroll-behavior:smooth; --utility-nav-height:60px; --section-nav-height:54px; --site-header-height:114px; }
body { min-height:100vh; overflow-x:clip; background:var(--bg); background-image:var(--bg-grad); background-attachment:fixed; color:var(--text); font-family:'IBM Plex Sans',sans-serif; -webkit-font-smoothing:antialiased; transition:background-color .25s,color .25s; }
button,input,select { font:inherit; }
button,a,select,input { -webkit-tap-highlight-color:transparent; }
a { color:inherit; }
:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.skip-link { position:fixed; top:8px; left:8px; z-index:500; padding:8px 12px; border:2px solid var(--blue); border-radius:5px; background:var(--paper); color:var(--text); transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }

.macro-nav { position:sticky; top:0; z-index:80; height:var(--utility-nav-height); border-bottom:1px solid var(--nav-border); background:var(--nav); backdrop-filter:blur(16px); }
.macro-nav-inner { width:100%; max-width:1200px; height:100%; margin:0 auto; padding:0 20px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.macro-brand { min-width:0; display:flex; align-items:center; gap:10px; text-decoration:none; }
.macro-brand-logo { width:34px; height:34px; flex:0 0 34px; overflow:hidden; border-radius:9px; box-shadow:0 4px 14px -8px var(--shadow); }
.macro-brand-logo img { display:block; width:100%; height:100%; object-fit:cover; }
.macro-brand-copy { min-width:0; display:block; }
.macro-brand-title { display:block; font-family:'IBM Plex Mono',monospace; font-size:15px; font-weight:700; letter-spacing:.035em; }
.macro-brand-sub { display:block; margin-top:1px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.site-section-nav { position:sticky; top:var(--utility-nav-height); z-index:70; height:var(--section-nav-height); background-color:var(--bg-solid,transparent); background-image:var(--bg-grad,var(--bg)); background-attachment:fixed; transition:background-color .25s; }
.site-section-inner { width:100%; max-width:1200px; height:100%; margin:0 auto; padding:12px 20px 0; display:flex; align-items:flex-start; justify-content:flex-start; }
.site-section-links { width:380px; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); align-items:stretch; gap:0; padding:4px; border:1px solid var(--border2); border-radius:12px; background:rgba(128,128,128,.035); }
.site-section-links a { position:relative; min-width:0; min-height:32px; display:flex; align-items:center; justify-content:center; padding:0 12px; border:0; border-radius:9px; background:transparent; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; white-space:nowrap; transition:color .18s,background .18s; }
.site-section-links a::after { content:""; position:absolute; bottom:3px; left:50%; width:36px; height:2px; border-radius:999px; background:var(--gold); transform:translateX(-50%) scaleX(0); transition:transform .18s; }
.site-section-links a:hover { background:rgba(var(--gold-rgb),.055); color:var(--gold); }
.site-section-links a[aria-current="page"] { background:rgba(var(--gold-rgb),.1); color:var(--gold); font-weight:700; }
.site-section-links a[aria-current="page"]::after { transform:translateX(-50%) scaleX(1); }
.macro-nav-actions { min-width:0; display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.theme-toggle { display:flex; align-items:center; gap:7px; border:0; background:transparent; color:inherit; cursor:pointer; }
.theme-toggle-label { min-width:27px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.toggle-track { position:relative; width:44px; height:25px; flex:0 0 44px; border:1px solid var(--border2); border-radius:13px; background:var(--toggle); }
.toggle-knob { position:absolute; top:3px; left:3px; width:17px; height:17px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--knob); box-shadow:0 1px 4px rgba(0,0,0,.28); font-size:14px; transition:transform .22s; }
[data-theme="light"] .toggle-knob { transform:translateX(19px); }
.refresh-button { min-height:36px; display:flex; align-items:center; gap:7px; padding:0 12px; border:1px solid var(--border2); border-radius:999px; background:rgba(128,128,128,.05); color:var(--text2); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; letter-spacing:.04em; cursor:pointer; }
.refresh-button:hover { border-color:var(--gold); color:var(--gold); }
.refresh-button.is-loading span:first-child { animation:spin .8s linear infinite; }
.macro-utility-button,.macro-session-badge,.macro-time-badge { min-height:36px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:0 11px; border:1px solid var(--border2); border-radius:999px; background:rgba(128,128,128,.05); color:var(--text2); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; letter-spacing:.03em; white-space:nowrap; }
.macro-utility-button { border-color:var(--gold); color:var(--gold); cursor:pointer; }
.macro-markets-wrap { position:relative; }
.macro-clock-wrap { position:relative; }
.macro-time-badge { cursor:pointer; }
.macro-time-chevron { display:inline-block; font-size:11px; transition:transform .2s; }
.macro-clock-wrap.open .macro-time-chevron { transform:rotate(180deg); }
.macro-markets-panel { position:absolute; top:calc(100% + 10px); right:0; width:280px; overflow:hidden; border:1px solid var(--border2); border-radius:12px; background:var(--paper); box-shadow:0 18px 38px -18px var(--shadow); }
.macro-markets-wrap:not(.open) .macro-markets-panel { display:none; }
.macro-clock-wrap:not(.open) .macro-worldclock-panel { display:none; }
.macro-market-row { display:grid; grid-template-columns:1fr auto auto; gap:10px; padding:9px 12px; border-bottom:1px solid var(--border); font-family:'IBM Plex Mono',monospace; font-size:11px; }
.macro-market-row:last-child { border-bottom:0; }.macro-market-row .up { color:var(--green); }.macro-market-row .down { color:var(--red); }
.macro-market-error { padding:10px 12px; color:var(--red); font-size:12px; }
.macro-worldclock-panel { width:max-content; min-width:156px; }
.macro-clock-row { display:grid; grid-template-columns:72px 48px; justify-content:start; column-gap:16px; padding:8px 10px; border-bottom:1px solid var(--border); font-family:'IBM Plex Mono',monospace; font-size:11px; }
.macro-clock-row:last-child { border-bottom:0; }
.macro-clock-row span { color:var(--text2); white-space:nowrap; }
.macro-clock-row strong { color:var(--text); text-align:left; }
.macro-session-badge i { width:6px; height:6px; border-radius:50%; background:var(--red); }.macro-session-badge.is-open i { background:var(--green); }.macro-session-badge.is-extended i { background:var(--gold); }

#macro-main,#terms-main { width:100%; max-width:1200px; margin:0 auto; padding:12px 20px 76px; }
.macro-hero { position:relative; min-height:176px; overflow:hidden; display:flex; align-items:center; padding:24px 34px; border:1px solid var(--border); border-radius:20px; background:var(--paper); box-shadow:0 28px 54px -36px var(--shadow); }
.macro-hero::before { content:''; position:absolute; width:360px; height:360px; top:-180px; right:-80px; border-radius:50%; background:radial-gradient(circle,rgba(var(--gold-rgb),.09),transparent 70%); }
.macro-hero-copy { position:relative; z-index:2; max-width:940px; padding-right:135px; }
.eyebrow,.section-kicker { color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.eyebrow { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 10px rgba(var(--gold-rgb),.45); }
h1,h2,h3 { font-family:'IBM Plex Mono',monospace; }
h1 { font-size:clamp(32px,4vw,48px); line-height:1; letter-spacing:-.05em; }
.macro-hero h1 { white-space:nowrap; }
.hero-description { max-width:760px; margin-top:11px; color:var(--text2); font-size:16px; line-height:1.55; }
.hero-description strong { color:var(--text); font-weight:600; }
.hero-meta { display:flex; align-items:center; gap:10px; margin-top:13px; flex-wrap:wrap; }
.data-state { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid rgba(var(--green-rgb),.25); border-radius:999px; background:rgba(var(--green-rgb),.08); color:var(--green); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.data-state-dot { width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; }
.data-state.is-loading,.data-state.is-unavailable { border-color:var(--border2); background:rgba(128,128,128,.07); color:var(--muted); }
.data-state.is-stale { border-color:rgba(var(--gold-rgb),.3); background:rgba(var(--gold-rgb),.08); color:var(--gold); }
.hero-updated { color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.macro-support-trigger { min-height:34px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 12px; border:1px solid var(--gold); border-radius:999px; background:rgba(var(--gold-rgb),.06); color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; animation:support-glow 2.4s ease-in-out infinite; transition:background .15s,color .15s,transform .15s; }
.macro-support-trigger:hover { background:var(--gold); color:var(--paper); transform:translateY(-1px); }
.cycle-orbit { position:absolute; right:58px; top:50%; width:128px; height:128px; transform:translateY(-50%); opacity:.9; }
.cycle-ring { position:absolute; inset:0; border:1px dashed var(--border2); border-radius:50%; }
.cycle-ring.inner,.cycle-track.inner { inset:22px; }
.cycle-ring.inner { opacity:.6; }
.cycle-track { position:absolute; inset:0; animation:orbit 11s linear infinite; }
.cycle-track.inner { animation-duration:17s; animation-direction:reverse; }
.cycle-dot { position:absolute; top:-5px; left:50%; width:10px; height:10px; margin-left:-5px; border-radius:50%; }
.cycle-dot.gold { background:var(--gold); box-shadow:0 0 10px rgba(var(--gold-rgb),.65); }
.cycle-dot.green { background:var(--green); box-shadow:0 0 10px rgba(var(--green-rgb),.6); }
.cycle-core { position:absolute; top:50%; left:50%; width:18px; height:18px; margin:-9px; border-radius:50%; background:radial-gradient(circle,var(--gold),rgba(var(--gold-rgb),.18) 55%,transparent 72%); box-shadow:0 0 25px rgba(var(--gold-rgb),.42); }

.cycle-summary { margin-top:18px; padding:28px 30px; border:1px solid var(--border); border-radius:16px; background:var(--surface); }
.cycle-summary-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.cycle-summary h2,.compare-panel h2,.methodology h2 { margin-top:6px; font-size:22px; letter-spacing:-.025em; }
.cycle-summary-head p,.compare-copy p { max-width:670px; margin-top:8px; color:var(--muted); font-size:15px; line-height:1.6; }
.pulse-state { min-width:132px; padding:10px 14px; border:1px solid var(--border2); border-radius:10px; background:var(--paper2); text-align:center; }
.pulse-state span { display:block; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.pulse-state strong { display:block; margin-top:4px; color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:17px; letter-spacing:.03em; }
.pulse-state.supportive strong { color:var(--green); }.pulse-state.balanced strong { color:var(--blue); }.pulse-state.soft strong { color:var(--gold); }.pulse-state.weak strong { color:var(--red); }
.breadth-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; margin-top:22px; }
.breadth-stat { padding:13px 15px; border:1px solid var(--border); background:var(--paper2); }
.breadth-stat:first-child { border-radius:10px 0 0 10px; }.breadth-stat:last-child { border-radius:0 10px 10px 0; }
.breadth-stat span { display:block; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.breadth-stat strong { display:block; margin-top:4px; font-family:'IBM Plex Mono',monospace; font-size:20px; }
.breadth-stat:nth-child(1) strong { color:var(--green); }.breadth-stat:nth-child(3) strong { color:var(--gold); }.breadth-stat:nth-child(4) strong { color:var(--red); }
.breadth-track { display:flex; height:5px; overflow:hidden; margin-top:10px; border-radius:999px; background:var(--border); }
.breadth-track span { width:0; transition:width .45s ease; }.breadth-track span:nth-child(1) { background:var(--green); }.breadth-track span:nth-child(2) { background:var(--blue); }.breadth-track span:nth-child(3) { background:var(--gold); }.breadth-track span:nth-child(4) { background:var(--red); }
.breadth-raw { margin-top:9px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; letter-spacing:.03em; }

.compare-panel { margin-top:12px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:24px; padding:24px 30px; border:1px solid var(--border); border-radius:16px; background:var(--paper); }
.compare-controls { display:flex; align-items:end; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.field-label { align-self:center; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
input[type="month"],select { min-height:40px; padding:0 11px; border:1px solid var(--border2); border-radius:8px; background:var(--surface); color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:13px; }
.primary-button,.text-button { min-height:40px; border-radius:8px; font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.primary-button { padding:0 14px; border:1px solid var(--gold); background:rgba(var(--gold-rgb),.08); color:var(--gold); }
.primary-button:hover { background:rgba(var(--gold-rgb),.15); }
.primary-button:disabled { cursor:wait; opacity:.55; }
.text-button { padding:0 8px; border:0; background:none; color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.compare-result { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:6px 14px; padding-top:16px; border-top:1px solid var(--border); color:var(--text2); font-size:15px; line-height:1.6; }
.compare-result strong { width:100%; color:var(--gold); }.compare-result b { color:var(--text); }
.compare-advanced { flex:1 0 100%; max-width:440px; margin-left:auto; color:var(--muted); font-size:13px; }
.compare-advanced summary { width:max-content; margin-left:auto; color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.compare-advanced label { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:9px; color:var(--text2); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.compare-advanced p { margin-top:8px; color:var(--muted); font-size:13px; line-height:1.5; text-align:right; }

.macro-legend { display:flex; align-items:center; gap:16px; margin:28px 2px 14px; overflow-x:auto; scrollbar-width:none; }
.macro-legend span { flex:0 0 auto; display:flex; align-items:center; gap:7px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; }
.signal-dot { width:6px; height:6px; border-radius:50%; background:var(--muted); }.signal-dot.supportive { background:var(--green); }.signal-dot.balanced { background:var(--blue); }.signal-dot.soft { background:var(--gold); }.signal-dot.weak { background:var(--red); }.signal-dot.unavailable { background:var(--border2); }

.score-explainer { margin:0 0 12px; border:1px solid rgba(var(--blue-rgb),.28); border-radius:13px; background:rgba(var(--blue-rgb),.045); overflow:hidden; }
.score-guide-toggle { width:100%; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; padding:13px 16px; border:0; background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.score-guide-toggle:hover { background:rgba(var(--blue-rgb),.06); }
.score-guide-mark { width:28px; height:28px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(var(--blue-rgb),.45); border-radius:50%; color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; }
.score-guide-copy { min-width:0; }
.score-guide-copy strong { display:block; font-family:'IBM Plex Mono',monospace; font-size:14px; letter-spacing:.02em; }
.score-guide-copy small { display:block; margin-top:4px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:13px; }
.score-guide-action { display:flex; align-items:center; gap:9px; color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.score-guide-action b { width:24px; height:24px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(var(--blue-rgb),.36); border-radius:50%; font-size:14px; }
.score-guide-panel { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:16px; border-top:1px solid rgba(var(--blue-rgb),.2); background:var(--paper); }
.score-guide-panel > div { padding:13px; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.score-guide-panel > div > span { color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; }
.score-guide-panel > div > strong { display:block; margin-top:7px; font-family:'IBM Plex Mono',monospace; font-size:13px; }
.score-guide-panel > div > p { margin-top:7px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:14px; line-height:1.6; }
.score-guide-panel code { grid-column:1/-1; display:block; padding:12px 14px; overflow-x:auto; border-radius:7px; background:var(--surface); color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:12px; white-space:nowrap; }
.score-guide-bands { grid-column:1/-1; color:var(--text2); font-size:14px; line-height:1.6; }

.category-nav { position:sticky; top:calc(var(--site-header-height) + 8px); z-index:60; display:flex; align-items:center; justify-content:flex-start; gap:10px; margin:0 0 18px; padding:7px; border:1px solid var(--nav-border); border-radius:12px; background:var(--nav); backdrop-filter:blur(16px); }
.category-links { min-width:0; flex:1; display:flex; align-items:stretch; overflow-x:auto; border:1px solid var(--border2); border-radius:9px; background:var(--surface); box-shadow:0 6px 18px -14px var(--shadow); scrollbar-width:none; }
.category-nav a,.view-switcher button { min-height:40px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; padding:0 15px; border:0; border-radius:0; background:transparent; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; cursor:pointer; }
.category-links a + a { border-left:1px solid var(--border2); }
.category-links a:last-child { border-right:1px solid var(--border2); }
.category-nav a:hover,.category-nav a[aria-current="location"],.view-switcher button:hover { background:rgba(var(--gold-rgb),.1); color:var(--gold); }
.category-nav a[aria-current="location"] { box-shadow:inset 0 -2px 0 var(--gold); }
.view-switcher { flex:0 0 auto; display:flex; align-items:stretch; gap:0; overflow:hidden; border:1px solid var(--border2); border-radius:9px; background:var(--surface); box-shadow:0 6px 18px -14px var(--shadow); }
.view-switcher > span { padding:0 8px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.view-switcher > span { display:flex; align-items:center; justify-content:center; min-width:44px; border-right:1px solid var(--border2); }
.view-switcher button { min-width:76px; border-left:1px solid var(--border2); }
.view-switcher button:first-of-type { border-left:0; }
.view-switcher button[aria-pressed="true"] { background:var(--gold); color:var(--paper); box-shadow:0 3px 10px rgba(var(--gold-rgb),.2); }

.macro-sections { display:grid; gap:36px; }
.indicator-section { scroll-margin-top:calc(var(--site-header-height) + 72px); }
.indicator-section-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:12px; padding-bottom:11px; border-bottom:1px solid var(--border); }
.indicator-section-head h2 { margin-top:5px; font-size:22px; letter-spacing:-.015em; }
.indicator-section-head p { max-width:520px; color:var(--muted); font-size:15px; line-height:1.55; text-align:right; }
.indicator-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.backdrop-groups { display:grid; gap:22px; }
.backdrop-group { display:grid; gap:9px; }
.backdrop-group-head { display:flex; align-items:end; justify-content:space-between; gap:18px; padding:0 2px; }
.backdrop-group-head span { color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.backdrop-group-head h3 { margin-top:5px; font-size:18px; }
.backdrop-group-head p { max-width:480px; color:var(--muted); font-size:14px; line-height:1.55; text-align:right; }
.macro-card { position:relative; min-width:0; min-height:250px; width:100%; overflow:hidden; display:flex; flex-direction:column; padding:20px; border:1px solid var(--border); border-top:3px solid var(--border2); border-radius:12px; background:var(--paper); color:var(--text); text-align:left; cursor:pointer; transition:transform .15s,border-color .15s,background .25s,box-shadow .15s; }
.macro-card:hover { transform:translateY(-2px); border-color:var(--border2); box-shadow:0 18px 30px -28px var(--shadow); }
.macro-card[data-state="supportive"],.macro-card[data-state="no signal"],.macro-card[data-state="no 3ds signal"] { border-top-color:var(--green); }.macro-card[data-state="balanced"] { border-top-color:var(--blue); }.macro-card[data-state="soft"],.macro-card[data-state="watch"],.macro-card[data-state="3ds warning"] { border-top-color:var(--gold); }.macro-card[data-state="weak"],.macro-card[data-state="triggered"],.macro-card[data-state="3ds recession signal"] { border-top-color:var(--red); }
.macro-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.card-provider { color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.card-status { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.card-status::before { content:''; width:5px; height:5px; border-radius:50%; background:currentColor; }
.card-status.current { color:var(--green); }.card-status.stale,.card-status.rights { color:var(--gold); }.card-status.error { color:var(--red); }
.macro-card h3 { margin-top:14px; font-size:17px; line-height:1.35; letter-spacing:.01em; }
.card-value-row { display:flex; align-items:baseline; gap:9px; margin-top:15px; }
.card-value { font-family:'IBM Plex Mono',monospace; font-size:28px; font-weight:700; letter-spacing:-.035em; }
.card-state { color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.macro-card[data-state="supportive"] .card-state,.macro-card[data-state="no signal"] .card-state { color:var(--green); }.macro-card[data-state="balanced"] .card-state { color:var(--blue); }.macro-card[data-state="soft"] .card-state,.macro-card[data-state="watch"] .card-state { color:var(--gold); }.macro-card[data-state="weak"] .card-state,.macro-card[data-state="triggered"] .card-state { color:var(--red); }
.card-date { margin-top:5px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; letter-spacing:.02em; }
.card-comparison { display:grid; gap:4px; margin-top:10px; padding:10px 11px; border:1px solid rgba(var(--blue-rgb),.24); border-radius:8px; background:rgba(var(--blue-rgb),.05); }
.card-comparison small { color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.card-comparison strong { color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:14px; }
.card-comparison em { color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:13px; font-style:normal; line-height:1.5; }
.card-comparison.unavailable { border-color:var(--border); background:var(--surface); }.card-comparison.unavailable strong { color:var(--muted); font-size:13px; }
.signal-triad { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-top:auto; padding-top:17px; }
.signal-cell { padding:8px 7px; border:1px solid var(--border); border-radius:7px; background:var(--surface); }
.signal-cell span { display:block; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.signal-cell strong { display:block; margin-top:4px; font-family:'IBM Plex Mono',monospace; font-size:13px; }
.signal-cell strong.up { color:var(--green); }.signal-cell strong.down { color:var(--red); }.signal-cell strong.flat { color:var(--muted); }
.threshold-signal { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:16px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.threshold-signal strong { color:var(--red); font-size:13px; }
.card-why { margin-top:13px; color:var(--muted); font-size:14px; line-height:1.55; }
.card-context-summary { display:block; margin-top:auto; padding-top:17px; color:var(--text); font-family:'IBM Plex Sans',sans-serif; font-size:14px; font-weight:600; line-height:1.5; }
.published-snapshot-summary { display:flex; flex-direction:column; gap:5px; margin-top:auto; padding-top:16px; border-top:1px solid var(--border); color:var(--text2); font-family:'IBM Plex Mono',monospace; font-size:11px; line-height:1.5; }
.published-snapshot-summary strong { color:var(--gold); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.macro-card.unavailable { min-height:174px; cursor:pointer; background:var(--surface); }
.macro-card.unavailable .card-value { color:var(--muted); font-size:22px; }.macro-card.unavailable .card-why { color:var(--text2); }
.macro-card.context { border-top-color:var(--border2); }
.card-rights { display:inline-flex; align-items:center; margin-top:auto; padding-top:14px; color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.card-open { display:flex; align-items:center; justify-content:space-between; margin-top:14px; padding-top:11px; border-top:1px solid var(--border); color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.macro-card:hover .card-open,.macro-card:focus-visible .card-open { color:var(--gold); }

.indicator-table { overflow:hidden; border:1px solid var(--border); border-radius:12px; background:var(--paper); }
.indicator-table-head,.indicator-table-row { display:grid; grid-template-columns:minmax(190px,1.7fr) minmax(150px,1fr) minmax(150px,1fr) 82px 82px 82px 100px 92px; align-items:center; gap:8px; }
.indicator-table-head { min-height:48px; padding:0 18px; border-bottom:1px solid var(--border2); background:var(--surface); color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.indicator-table-row { position:relative; min-height:86px; padding:15px 18px; border-bottom:1px solid var(--border); color:var(--text2); cursor:pointer; transition:background .15s,border-color .15s; }
.indicator-table-row:last-child { border-bottom:0; }
.indicator-table-row:nth-child(even) { background:rgba(128,128,128,.025); }
.indicator-table-row:hover { background:rgba(var(--gold-rgb),.045); }
.indicator-table-row::before { content:''; position:absolute; inset:0 auto 0 0; width:3px; background:var(--border2); }
.indicator-table-row[data-state="supportive"]::before,.indicator-table-row[data-state="no signal"]::before { background:var(--green); }.indicator-table-row[data-state="balanced"]::before { background:var(--blue); }.indicator-table-row[data-state="soft"]::before,.indicator-table-row[data-state="watch"]::before { background:var(--gold); }.indicator-table-row[data-state="weak"]::before,.indicator-table-row[data-state="triggered"]::before { background:var(--red); }
.table-indicator,.table-reading { min-width:0; }
.table-indicator strong,.table-reading strong { display:block; color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:15px; font-weight:700; line-height:1.35; overflow-wrap:anywhere; }
.table-indicator small,.table-reading small { display:block; margin-top:5px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
.table-state { color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.025em; line-height:1.45; text-transform:uppercase; overflow-wrap:anywhere; }
.indicator-table-row[data-state="supportive"] .table-state,.indicator-table-row[data-state="no signal"] .table-state { color:var(--green); }.indicator-table-row[data-state="soft"] .table-state,.indicator-table-row[data-state="watch"] .table-state { color:var(--gold); }.indicator-table-row[data-state="weak"] .table-state,.indicator-table-row[data-state="triggered"] .table-state { color:var(--red); }
.table-score { font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:700; }.table-score.up { color:var(--green); }.table-score.down { color:var(--red); }.table-score.flat { color:var(--muted); }
.table-date { color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; line-height:1.4; }
.table-action button { width:100%; padding:9px 8px; border:1px solid rgba(var(--blue-rgb),.35); border-radius:7px; background:rgba(var(--blue-rgb),.055); color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; }
.indicator-table-row:hover .table-action button,.table-action button:hover { border-color:var(--gold); color:var(--gold); }
.indicator-table-row.unavailable { background:var(--surface); }
.context-table .indicator-table-head,.context-table .indicator-table-row { grid-template-columns:minmax(230px,1.4fr) minmax(180px,.9fr) minmax(260px,1.35fr) 120px 96px; }
.context-table .indicator-table-row::before { background:var(--border2); }
.context-table .table-state { color:var(--text2); white-space:normal; }
.context-label-compact,.context-heading-compact,.context-indicator-compact { display:none; }

.loading-section { padding-top:12px; }.loading-heading { width:210px; height:24px; border-radius:6px; background:var(--surface); animation:pulse 1.4s ease-in-out infinite; }.loading-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:16px; }.loading-grid div { height:220px; border:1px solid var(--border); border-radius:12px; background:var(--paper); animation:pulse 1.4s ease-in-out infinite; }
.empty-state { padding:30px; border:1px solid var(--border); border-radius:14px; background:var(--paper); color:var(--text2); text-align:center; }

.methodology { margin-top:50px; padding:34px; border:1px solid var(--border); border-radius:20px; background:var(--paper); box-shadow:0 24px 48px -38px var(--shadow); scroll-margin-top:80px; }
.methodology-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.methodology-badge { padding:7px 10px; border:1px solid rgba(var(--green-rgb),.25); border-radius:999px; background:rgba(var(--green-rgb),.07); color:var(--green); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.methodology-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:24px; }
.methodology-grid article { padding:22px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.method-number { color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; }
.methodology-grid h3 { margin-top:10px; font-size:17px; }
.methodology-grid p { margin-top:10px; color:var(--text2); font-size:15px; line-height:1.65; }
.methodology-grid strong { color:var(--text); }
.methodology-grid a { color:var(--blue); text-underline-offset:3px; }
.source-notice { display:grid; gap:7px; margin-top:14px; padding:16px 18px; border-left:3px solid var(--gold); border-radius:0 8px 8px 0; background:rgba(var(--gold-rgb),.055); }
.source-notice p { color:var(--text2); font-size:14px; line-height:1.65; }
.source-notice strong { color:var(--text); }
.source-notice a { color:var(--blue); text-underline-offset:3px; }
.macro-footer { margin-top:30px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; line-height:1.8; text-align:center; }
.macro-footer-links { display:flex; justify-content:center; align-items:center; gap:8px; margin:6px 0; }.macro-footer-links a { color:var(--text2); text-underline-offset:3px; }.macro-footer-links a:hover { color:var(--gold); }
.macro-footer-links button { padding:0; border:0; background:none; color:var(--gold); font-family:inherit; font-size:inherit; text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:3px; cursor:pointer; }

.detail-overlay { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:22px; background:rgba(5,6,10,.78); backdrop-filter:blur(7px); }
.detail-overlay.is-open { display:flex; }
.detail-panel { width:min(980px,100%); max-height:min(900px,92vh); overflow:auto; border:1px solid var(--border2); border-radius:20px; background:var(--paper); box-shadow:0 34px 90px rgba(0,0,0,.45); }
.detail-header { position:sticky; top:0; z-index:3; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 28px 18px; border-bottom:1px solid var(--border); background:var(--paper); }
.detail-header h2 { margin-top:6px; font-size:21px; }
.detail-close { width:40px; height:40px; flex:0 0 40px; border:1px solid var(--border2); border-radius:50%; background:var(--surface); color:var(--muted); font-size:21px; cursor:pointer; }.detail-close:hover { border-color:var(--gold); color:var(--gold); }
.detail-body { padding:22px 28px 30px; }
.detail-toolbar { display:flex; align-items:end; gap:10px; flex-wrap:wrap; }
.detail-toolbar label { display:grid; gap:6px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.source-link { margin-left:auto; padding:9px 0; color:var(--blue); font-family:'IBM Plex Sans',sans-serif; font-size:13px; font-weight:600; text-underline-offset:3px; }
.detail-status { margin:16px 0 9px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; }
.chart-wrap { position:relative; min-height:340px; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.chart-wrap svg { width:100%; height:auto; display:block; }
.chart-grid { stroke:var(--chart-grid); stroke-width:1; }.chart-axis-label,.chart-threshold-label,.chart-comparison-label { fill:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; }.chart-recession { fill:var(--recession); }.chart-line { fill:none; stroke:var(--gold); stroke-width:2.5; vector-effect:non-scaling-stroke; }.chart-last { fill:var(--gold); stroke:var(--paper); stroke-width:2; }.chart-zero { stroke:var(--border2); stroke-width:1; stroke-dasharray:4 4; }.chart-threshold { stroke:var(--red); stroke-width:1.5; stroke-dasharray:6 4; }.chart-threshold-label { fill:var(--red); font-size:11px; }
.chart-comparison { stroke:var(--blue); stroke-width:1.5; stroke-dasharray:5 4; vector-effect:non-scaling-stroke; }.chart-comparison-point { fill:var(--blue); stroke:var(--paper); stroke-width:2; }.chart-comparison-label { fill:var(--blue); font-size:11px; font-weight:700; text-transform:uppercase; }
.chart-crosshair { stroke:var(--text2); stroke-width:1; stroke-dasharray:3 3; vector-effect:non-scaling-stroke; }.chart-hover-point { fill:var(--paper); stroke:var(--gold); stroke-width:3; vector-effect:non-scaling-stroke; }.chart-hit-target { fill:transparent; cursor:crosshair; }.chart-hit-target:focus { outline:none; stroke:var(--blue); stroke-width:2; stroke-dasharray:4 4; }
.chart-tooltip { position:absolute; top:10px; z-index:2; min-width:132px; display:grid; gap:3px; padding:9px 11px; border:1px solid var(--border2); border-radius:7px; background:var(--paper); color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:12px; pointer-events:none; transform:translateX(-50%); box-shadow:0 8px 24px -15px var(--shadow); }.chart-tooltip strong { color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:11px; }.chart-tooltip span { color:var(--gold); font-weight:700; }.chart-tooltip[hidden] { display:none; }
.chart-empty { padding:36px; color:var(--muted); text-align:center; }
.detail-comparison { margin-top:14px; }
.detail-comparison:empty { display:none; }
.detail-comparison-title { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:8px; }
.detail-comparison-title span { color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.detail-comparison-title h3 { margin-top:5px; font-size:16px; }.detail-comparison-title small { max-width:330px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:13px; line-height:1.5; text-align:right; }
.detail-comparison-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.detail-comparison-grid > section,.detail-comparison-unavailable { padding:15px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.detail-comparison-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.detail-comparison-heading strong { color:var(--text); }.detail-comparison-reading { display:flex; align-items:baseline; gap:9px; margin-top:10px; font-family:'IBM Plex Mono',monospace; }.detail-comparison-reading b { color:var(--gold); font-size:20px; }.detail-comparison-reading span { color:var(--muted); font-size:12px; }
.detail-comparison-components { display:grid; gap:6px; margin-top:13px; padding-top:11px; border-top:1px solid var(--border); }.detail-comparison-components > div { display:flex; align-items:center; justify-content:space-between; gap:12px; font-family:'IBM Plex Mono',monospace; font-size:13px; }.detail-comparison-components span { color:var(--muted); }.detail-comparison-components strong.up { color:var(--green); }.detail-comparison-components strong.down { color:var(--red); }.detail-comparison-components strong.flat { color:var(--text2); }
.detail-comparison-context,.detail-comparison-grid > section > p,.detail-comparison-unavailable p { margin-top:10px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:14px; line-height:1.55; }.detail-comparison-unavailable strong { color:var(--text); }
.signal-guide { margin-top:16px; padding:16px 18px; border:1px solid rgba(var(--blue-rgb),.24); border-radius:10px; background:rgba(var(--blue-rgb),.055); }
.signal-guide:empty { display:none; }
.signal-guide h3 { font-size:16px; }
.signal-guide p { margin-top:8px; color:var(--text2); font-size:15px; line-height:1.6; }
.signal-scale { position:relative; display:grid; grid-template-columns:1fr 1fr 1fr; margin-top:42px; padding-top:9px; border-top:3px solid transparent; border-image:linear-gradient(90deg,var(--red),var(--muted),var(--green)) 1; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.signal-scale-marker { position:absolute; top:-37px; left:var(--score-position); width:0; height:37px; color:var(--gold); filter:drop-shadow(0 2px 5px rgba(var(--gold-rgb),.28)); }
.signal-scale-marker::after { content:'▼'; position:absolute; top:23px; left:0; transform:translateX(-50%); font-size:13px; line-height:1; }
.signal-scale-marker span { position:absolute; top:0; left:0; transform:translateX(-50%); padding:3px 6px; border:1px solid rgba(var(--gold-rgb),.45); border-radius:5px; background:var(--paper); color:var(--gold); font-size:11px; line-height:1.2; white-space:nowrap; }
.signal-scale-marker.edge-start span { transform:none; }.signal-scale-marker.edge-end span { right:0; left:auto; transform:none; }
.signal-scale-label.normal { text-align:center; }.signal-scale-label.stronger { text-align:right; }
.signal-guide .signal-scale-caption { margin-top:8px; color:var(--muted); font-size:13px; line-height:1.5; }
.signal-breakdown { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.detail-signal { padding:15px; border:1px solid var(--border); border-radius:9px; background:var(--surface); }
.detail-signal span { display:block; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.detail-signal strong { display:flex; align-items:baseline; gap:9px; margin-top:8px; font-family:'IBM Plex Mono',monospace; font-size:14px; }
.detail-signal strong b { min-width:58px; color:var(--gold); font-size:20px; }
.detail-signal p { margin-top:10px; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:14px; line-height:1.58; }
.score-math { margin-top:10px; border:1px solid var(--border); border-radius:9px; overflow:hidden; background:var(--surface); }
.score-math summary { padding:13px 15px; color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.score-math[open] summary { border-bottom:1px solid var(--border); }
.score-math-body { display:grid; gap:7px; padding:14px 15px; }
.score-math-body > p { color:var(--text2); font-family:'IBM Plex Sans',sans-serif; font-size:14px; line-height:1.6; }
.score-input-row { display:grid; grid-template-columns:90px 1fr; gap:12px; padding:10px 0; border-top:1px solid var(--border); color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:13px; line-height:1.55; }
.score-input-row strong { color:var(--text); }.score-input-row b { color:var(--gold); }.score-input-row small { display:block; margin-top:4px; color:var(--muted); }.score-input-row.overall { color:var(--text2); }
.detail-notes { display:grid; gap:11px; margin-top:19px; }.detail-notes p { color:var(--text2); font-family:'IBM Plex Sans',sans-serif; font-size:15px; line-height:1.65; }.detail-notes strong { color:var(--text); }.detail-notes a { color:var(--blue); }

.macro-support-overlay { position:fixed; inset:0; z-index:260; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(5,6,10,.84); backdrop-filter:blur(8px); }
.macro-support-overlay.is-open { display:flex; }
.macro-support-panel { width:min(680px,100%); max-height:calc(100vh - 40px); overflow-y:auto; border:1px solid var(--border2); border-radius:18px; background:var(--paper); box-shadow:0 28px 80px rgba(0,0,0,.5); }
.macro-support-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 26px 20px; border-bottom:1px solid var(--border); }
.macro-support-header h2 { margin-top:7px; color:var(--text); font-size:20px; letter-spacing:.04em; text-transform:uppercase; }
.macro-support-close { flex:0 0 auto; width:38px; height:38px; border:1px solid var(--border2); border-radius:50%; background:transparent; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:18px; cursor:pointer; }
.macro-support-close:hover { color:var(--gold); border-color:var(--gold); background:rgba(var(--gold-rgb),.06); }
.macro-support-body { padding:22px 26px 26px; }
.macro-support-intro { max-width:610px; margin-bottom:20px; color:var(--text2); font-size:14px; line-height:1.55; }
.macro-support-offers { display:grid; grid-template-columns:1.15fr .85fr; gap:12px; }
.macro-support-offer { display:flex; flex-direction:column; min-height:218px; padding:18px; border:1px solid var(--border); border-radius:12px; background:var(--surface2); transition:border-color .15s,transform .15s; }
.macro-support-offer:hover { border-color:var(--border2); transform:translateY(-2px); }
.macro-support-offer.is-featured { border-color:rgba(var(--gold-rgb),.5); background:linear-gradient(145deg,rgba(var(--gold-rgb),.08),var(--surface2) 55%); }
.macro-support-provider { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.macro-support-provider > strong { color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:14px; letter-spacing:.05em; text-transform:uppercase; }
.macro-support-logo { width:44px; height:44px; flex:0 0 44px; overflow:hidden; display:flex; align-items:center; justify-content:center; border:1px solid var(--border2); border-radius:10px; background:#fff; }
.macro-support-logo img { display:block; width:100%; height:100%; object-fit:cover; transform-origin:center; }
.macro-support-logo.etherfi img { transform:scale(1.18); }
.macro-support-logo.tradingview { border-color:#000; background:#000; }
.macro-support-logo.tradingview img { transform:scale(1.38); }
.macro-support-badge { margin-left:auto; padding:5px 8px; border:1px solid rgba(var(--gold-rgb),.45); border-radius:999px; color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.macro-support-offer h3 { margin-bottom:7px; color:var(--text); font-family:'IBM Plex Sans',sans-serif; font-size:16px; line-height:1.3; }
.macro-support-offer p { flex:1; color:var(--muted); font-size:14px; line-height:1.6; }
.macro-support-offer ul { display:grid; gap:7px; margin-top:14px; list-style:none; }
.macro-support-offer li { display:flex; align-items:flex-start; gap:8px; color:var(--text2); font-size:13px; line-height:1.45; }
.macro-support-offer li::before { content:'+'; flex:0 0 auto; color:var(--gold); font-family:'IBM Plex Mono',monospace; font-weight:700; }
.macro-support-offer > a { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:18px; padding:11px 12px; border:1px solid var(--gold); border-radius:6px; color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
.macro-support-offer > a:hover { background:var(--gold); color:var(--surface); }
.macro-support-disclosure { margin-top:18px; padding-top:16px; border-top:1px solid var(--border); color:var(--muted); font-size:13px; line-height:1.6; }
.macro-support-disclosure strong { color:var(--text2); }
.support-nudge[hidden] { display:none; }
.support-nudge { position:fixed; right:18px; bottom:18px; z-index:240; width:min(370px,calc(100vw - 36px)); padding:19px; border:1px solid rgba(var(--gold-rgb),.48); border-radius:15px; background:var(--paper); box-shadow:0 20px 55px rgba(0,0,0,.42); color:var(--text); font-family:'IBM Plex Sans',sans-serif; }
.support-nudge-close { position:absolute; top:10px; right:10px; width:34px; height:34px; border:1px solid var(--border2); border-radius:50%; background:transparent; color:var(--muted); font-size:18px; line-height:1; cursor:pointer; }
.support-nudge-close:hover { color:var(--gold); border-color:var(--gold); }
.support-nudge-kicker { padding-right:36px; color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.support-nudge h2 { margin-top:7px; padding-right:36px; font-family:'IBM Plex Mono',monospace; font-size:18px; letter-spacing:.02em; }
.support-nudge p { margin-top:10px; color:var(--text2); font-size:13px; line-height:1.5; }
.support-nudge p strong { color:var(--text); }
.support-nudge-actions { display:grid; gap:8px; margin-top:15px; }
.support-nudge-actions a,.support-nudge-actions button { min-height:42px; display:flex; align-items:center; justify-content:center; padding:9px 12px; border-radius:7px; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.055em; text-align:center; text-transform:uppercase; cursor:pointer; }
.support-nudge-actions a { border:1px solid var(--gold); background:rgba(var(--gold-rgb),.08); color:var(--gold); text-decoration:none; }
.support-nudge-actions a:hover { background:var(--gold); color:var(--paper); }
.support-nudge-actions button { border:1px solid var(--border2); background:transparent; color:var(--text2); }
.support-nudge-actions button:hover { border-color:var(--text2); color:var(--text); }
.support-nudge-later { display:block; margin:10px auto 0; padding:6px 10px; border:0; background:transparent; color:var(--muted); font-family:'IBM Plex Sans',sans-serif; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
body.dialog-open { overflow:hidden; }

@keyframes spin { to { transform:rotate(360deg); } }
@keyframes orbit { to { transform:rotate(360deg); } }
@keyframes pulse { 0%,100% { opacity:.55; } 50% { opacity:1; } }
@keyframes support-glow { 0%,100% { box-shadow:0 0 0 1px rgba(var(--gold-rgb),.12),0 0 10px rgba(var(--gold-rgb),.12); } 50% { box-shadow:0 0 0 1px rgba(var(--gold-rgb),.28),0 0 18px rgba(var(--gold-rgb),.28); } }

@media(max-width:1080px) {
  .indicator-grid { grid-template-columns:1fr 1fr; }
  .compare-panel { grid-template-columns:1fr; align-items:start; }.compare-controls { justify-content:flex-start; }
  .macro-hero { padding:24px 28px; }.cycle-orbit { right:34px; }
  .score-guide-panel { grid-template-columns:1fr 1fr; }
  .indicator-table-head { display:none; }
  .indicator-table-row { grid-template-columns:repeat(3,minmax(0,1fr)) auto; gap:12px 14px; min-height:0; padding:17px 16px 17px 19px; }
  .table-indicator { grid-column:1/-1; padding-bottom:7px; border-bottom:1px solid var(--border); }
  .table-indicator strong { font-size:15px; }.table-indicator small { font-size:13px; }
  .table-reading { grid-column:1/3; }.table-state { grid-column:3/4; align-self:center; text-align:right; }
  .indicator-table-row > [role="cell"][data-label]::before { content:attr(data-label); display:block; margin-bottom:5px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
  .indicator-table-row > [role="cell"]:nth-child(4) { grid-column:1; }.indicator-table-row > [role="cell"]:nth-child(5) { grid-column:2; }.indicator-table-row > [role="cell"]:nth-child(6) { grid-column:3; }
  .table-date { grid-column:1/4; }.table-action { grid-column:4; grid-row:2/5; align-self:stretch; }
  .table-action button { width:72px; height:100%; padding:9px 6px; }
  .context-table .indicator-table-row { grid-template-columns:repeat(3,minmax(0,1fr)) auto; }
  .context-table .indicator-table-row > .table-date { grid-column:1/4; }
}

@media(max-width:700px) {
  html { --utility-nav-height:60px; --section-nav-height:52px; --site-header-height:112px; }
  .macro-nav { z-index:180; }
  .macro-nav-inner { padding:0 8px; gap:5px; }
  .macro-brand-sub,.theme-toggle-label,.refresh-button span:last-child { display:none; }
  .macro-brand-title { font-size:13px; }.macro-nav-actions { gap:4px; }.refresh-button { width:36px; justify-content:center; padding:0; }
  .site-section-inner { padding:8px 8px 0; }.site-section-links { width:100%; }.site-section-links a { min-height:34px; padding-inline:6px; font-size:11px; }
  .macro-utility-button,.macro-session-badge,.macro-time-badge { min-height:34px; padding-inline:7px; font-size:11px; }
  .macro-session-badge { width:28px; padding:0; }.macro-session-badge span { display:none; }.macro-time-badge { padding-inline:6px; }
  .macro-markets-panel { position:fixed; top:calc(var(--utility-nav-height) + 7px); right:8px; left:8px; z-index:205; width:auto; max-height:calc(100vh - var(--utility-nav-height) - 23px); overflow-y:auto; }
  #macro-main,#terms-main { padding:8px 12px 55px; }
  .macro-hero { min-height:190px; padding:21px 18px; border-radius:16px; }.macro-hero-copy { max-width:none; padding-right:0; }
  .macro-hero h1 { font-size:clamp(21px,7vw,28px); max-width:none; }.hero-description { max-width:82%; font-size:15px; line-height:1.55; }.cycle-orbit { top:53px; right:14px; width:48px; height:48px; transform:none; opacity:.62; }.cycle-ring.inner,.cycle-track.inner { inset:8px; }.cycle-dot { top:-3px; width:6px; height:6px; margin-left:-3px; }.cycle-core { width:12px; height:12px; margin:-6px; }
  .cycle-summary,.compare-panel { padding:21px 18px; }.cycle-summary-head { align-items:stretch; flex-direction:column; }.pulse-state { min-width:0; text-align:center; }
  .breadth-grid { grid-template-columns:1fr 1fr; gap:3px; }.breadth-stat,.breadth-stat:first-child,.breadth-stat:last-child { border-radius:0; }.breadth-stat:first-child { border-radius:9px 0 0 0; }.breadth-stat:nth-child(2) { border-radius:0 9px 0 0; }.breadth-stat:nth-child(3) { border-radius:0 0 0 9px; }.breadth-stat:nth-child(4) { border-radius:0 0 9px 0; }.breadth-stat:last-child { grid-column:1/-1; border-radius:9px; }
  .compare-controls { align-items:stretch; }.field-label { width:100%; }.primary-button { flex:1; }.text-button { width:100%; }
  .indicator-grid { grid-template-columns:1fr; }.indicator-section-head { align-items:flex-start; flex-direction:column; gap:5px; }.indicator-section-head p { text-align:left; }
  .indicator-table-head,.indicator-table-row { grid-template-columns:minmax(0,1fr) 88px 76px 52px; gap:6px; }
  .context-table .indicator-table-head,.context-table .indicator-table-row { grid-template-columns:minmax(0,1fr) 76px 94px 44px; gap:8px; }
  .indicator-table-head { display:grid; min-height:40px; padding:0 10px 0 13px; letter-spacing:.02em; }
  .indicator-table-head > *:nth-child(4),.indicator-table-head > *:nth-child(5),.indicator-table-head > *:nth-child(6),.indicator-table-head > *:nth-child(7),.context-table .indicator-table-head > *:nth-child(4) { display:none; }
  .indicator-table-head > *:last-child { display:block; grid-column:4; min-width:0; text-align:center; }
  .indicator-table-row { min-height:76px; padding:12px 8px 11px 13px; }
  .table-indicator { grid-column:1; grid-row:1; min-width:0; padding:0; border:0; }.table-indicator strong { display:-webkit-box; overflow:hidden; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:13px; }.table-indicator small { display:none; }
  .table-reading { grid-column:2; grid-row:1; min-width:0; }.table-reading strong { font-size:13px; overflow-wrap:normal; }.table-reading small { display:none; }
  .table-state { grid-column:3; grid-row:1; min-width:0; align-self:center; font-size:11px; line-height:1.25; text-align:left; letter-spacing:0; overflow-wrap:normal; word-break:normal; }
  .context-table .indicator-table-row { min-height:0; }
  .context-label-full,.context-heading-full { display:none; }
  .context-label-compact,.context-heading-compact { display:inline; }
  .context-indicator-full { display:none; }
  .context-indicator-compact { display:inline; }
  .context-table .table-state { white-space:nowrap; overflow-wrap:normal; word-break:normal; font-size:11px; letter-spacing:-.06em; }
  .indicator-table-row:not(.context-table-row) > [role="cell"]:nth-child(4),.indicator-table-row:not(.context-table-row) > [role="cell"]:nth-child(5),.indicator-table-row:not(.context-table-row) > [role="cell"]:nth-child(6) { display:none; }
  .indicator-table-row > [role="cell"][data-label]::before { display:none; }
  .table-date,.context-table .indicator-table-row>.table-date { grid-column:1/4; grid-row:2; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.25; }
  .table-action { grid-column:4; grid-row:1/3; align-self:stretch; }.table-action button { width:52px; height:100%; min-height:40px; padding:0; font-size:0; }.table-action button span { font-size:14px; }
  .context-table .indicator-table-row>.table-action { grid-column:4; grid-row:1/3; align-self:center; }
  .context-table .table-action button { width:44px; height:44px; min-height:44px; }
  .score-guide-toggle { padding:12px; }.score-guide-copy strong { font-size:13px; }.score-guide-copy small { font-size:12px; }.score-guide-action > span { display:none; }.score-guide-panel { grid-template-columns:1fr; padding:12px; }.score-guide-panel > div { padding:12px; }
  .category-nav { top:calc(var(--site-header-height) + 6px); flex-wrap:wrap; margin-bottom:14px; }.category-links { order:2; flex:1 0 100%; }.view-switcher { order:1; margin-left:0; }.indicator-section { scroll-margin-top:calc(var(--site-header-height) + 124px); }
  .backdrop-group-head { align-items:flex-start; flex-direction:column; gap:4px; }.backdrop-group-head p { text-align:left; }
  .macro-card { min-height:220px; padding:18px; }
  .methodology { margin-top:36px; padding:24px 18px; }.methodology-grid { grid-template-columns:1fr; }.methodology-header { flex-direction:column; }
  .detail-overlay,.macro-support-overlay { padding:0; align-items:flex-end; }.detail-panel,.macro-support-panel { max-height:94vh; border-radius:18px 18px 0 0; }.detail-header { padding:20px 18px 15px; }.detail-header h2 { font-size:17px; }.detail-body { padding:17px 16px 25px; }.source-link { width:100%; margin-left:0; }.chart-wrap { min-height:245px; }.signal-breakdown { grid-template-columns:1fr; }.detail-comparison-title { align-items:start; flex-direction:column; }.detail-comparison-title small { text-align:left; }.detail-comparison-grid { grid-template-columns:1fr; }
  .macro-support-header { padding:20px 18px 16px; }.macro-support-body { padding:18px; }.macro-support-intro { font-size:13px; }.macro-support-offers { grid-template-columns:1fr; }.macro-support-offer { min-height:0; padding:16px; }
  .support-nudge { left:12px; right:12px; bottom:12px; width:auto; padding:17px; }
  .score-input-row { grid-template-columns:1fr; gap:4px; }
}

@media(max-width:390px) {
  .macro-brand-copy { display:none; }.macro-brand-logo { width:32px; height:32px; flex-basis:32px; }
  .macro-hero h1 { font-size:clamp(19px,6.7vw,24px); }.hero-description { max-width:86%; }.hero-meta { align-items:flex-start; }
  .indicator-table-head,.indicator-table-row { grid-template-columns:minmax(0,1fr) 68px 70px 48px; }
  .indicator-table-row { min-height:84px; }
  .table-action button { width:48px; }
  .context-table .indicator-table-head,.context-table .indicator-table-row { grid-template-columns:minmax(0,1fr) 58px 82px 42px; gap:4px; padding-inline:5px; }
  .context-table .indicator-table-head { letter-spacing:-.07em; }
  .context-table .table-indicator strong { font-size:12px; letter-spacing:-.03em; }
  .context-table .table-action button { width:42px; height:42px; min-height:42px; }
  input[type="month"] { flex:1; min-width:0; }.signal-triad { gap:3px; }.signal-cell { padding:7px 5px; }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
