/* Premium intelligence components. Shared scales live in styles.css. */
.now-view{padding-block:var(--space-5) var(--space-7);color:var(--ink);scroll-margin-top:84px;font-family:var(--font-ui)}
.now-view h1{font-family:var(--font-heading);font-size:28px;line-height:1.2;letter-spacing:-.025em;font-weight:800;margin:0 0 var(--space-2)}
.now-view h2{font:700 18px/1.35 var(--font-heading);margin:0 0 var(--space-3)}
.now-view p{font-size:14px;line-height:1.6;max-width:70ch}
.now-heading .now-location{font:600 11px/1.5 var(--font-ui);color:var(--text-secondary);margin:0 0 var(--space-3)}
.now-location span{margin-inline:var(--space-2);color:var(--muted)}
.now-heading>p:last-child{color:var(--text-secondary);margin:0 0 var(--space-5)}
.now-search{display:flex;gap:var(--space-2);max-width:800px;margin:0 0 var(--space-5)}
.now-search input{flex:1;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--card);color:var(--ink);font:400 16px/1.4 var(--font-ui)}
.now-search input::placeholder,.scanbar input::placeholder{color:var(--text-secondary);opacity:1}
.now-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;font:600 13px/1.4 var(--font-ui);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}
.now-button:hover{background:var(--surface-subtle);border-color:var(--text-secondary)}
:root[data-theme] .now-button.primary{background:var(--green);border-color:var(--green);color:var(--accent-ink)}
:root[data-theme] .now-button.primary:hover{background:color-mix(in srgb,var(--green) 90%,var(--ink));border-color:transparent}
.now-button:disabled{opacity:.6;cursor:wait}
.now-button[aria-pressed=true]{border-color:var(--green-dark);color:var(--green-dark)}
:root[data-theme] :is(.now-button,.now-search input,.tool-row,.token-signal-link):focus-visible{outline:2px solid var(--focus-ring)!important;outline-offset:3px}
.now-system-strip{display:flex;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 var(--space-4);padding-block:var(--space-3);gap:var(--space-2) var(--space-5);color:var(--text-secondary);font:400 12px/1.5 var(--font-ui)}
.now-system-strip [hidden]{display:none!important}
#now-health{display:flex;align-items:center;gap:var(--space-2);color:var(--ink);font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.025em}
#now-health::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--text-secondary);flex:none}
.now-system-strip[data-state=observed] #now-health::before{background:var(--green-dark)}
.now-system-strip[data-state=delayed] #now-health::before{background:var(--status-warning)}
#now[data-initializing] .now-layout{visibility:hidden}
.now-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-6);align-items:start}
.now-layout>*{min-width:0}
.now-feed-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}
.now-feed-heading h2{margin:0}
.now-meta,.now-view .now-meta{color:var(--text-secondary);font:400 12px/1.65 var(--font-ui);overflow-wrap:anywhere}
#now-updated{margin:0;font-variant-numeric:tabular-nums}
.now-context{padding-top:var(--space-3)}
.now-context h2{font-size:14px}
#now-coverage-status{font-size:12px;font-weight:600;margin-block:var(--space-2) var(--space-4)}
#now-coverage,.coverage-rows{padding:0;list-style:none;font-size:12px;margin:0 0 var(--space-4)}
#now-coverage li,.coverage-rows li{display:flex;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-2);border-bottom:1px solid var(--line)}
#now-coverage b,.coverage-rows b{font-size:11px;font-weight:500;text-align:right;color:var(--text-secondary)}
#now-coverage li.coverage-scope,.coverage-rows li.coverage-scope{border:0;color:var(--text-secondary);font-size:11px;line-height:1.6}
.now-context-section{border-top:1px solid var(--line);padding-top:var(--space-5);margin-top:var(--space-5)}
.now-context-section p{font-size:13px}
.now-principle{display:flex;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--line);color:var(--text-secondary)}
.now-principle .ic{width:20px;height:20px;margin-top:var(--space-1)}
.now-principle p{font-size:12px;margin:0}
.now-principle span{font-size:11px}
.now-mobile-coverage{display:none}
.now-collection{font-size:12px;color:var(--text-secondary)}
.now-collection summary{cursor:pointer;padding-block:var(--space-2)}
.now-collection summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.now-state{display:flex;align-items:flex-start;gap:var(--space-5);background:var(--surface-subtle);border-radius:var(--radius-md);padding:var(--space-6) var(--space-5);margin:var(--space-4) 0 var(--space-5)}
.now-state>.now-icon{color:var(--text-secondary);opacity:.6;flex:none}
.now-state>.now-icon .ic{width:64px;height:64px}
.now-state-body{min-width:0}
.now-state h2{font-size:20px;line-height:1.35;margin:var(--space-2) 0 var(--space-3)}
.now-state p{color:var(--text-secondary);max-width:50ch;margin-block:0 var(--space-4)}
.now-state-label{font:500 11px/1.5 var(--font-ui);color:var(--text-secondary)}
.now-signal{padding:var(--space-5) 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.signal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}
.now-type{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font:650 11px/1.4 var(--font-ui);color:var(--text-secondary)}
.now-type .ic{width:18px;height:18px}
.signal-top time{flex:none;color:var(--text-secondary);font:400 11px/1.5 var(--font-ui)}
.signal-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.8fr);align-items:start;gap:var(--space-5);margin-bottom:var(--space-4)}
.signal-token{min-width:0;overflow-wrap:anywhere}
.signal-token h3,.signal-token h2{font:750 22px/1.25 var(--font-heading);margin:0}
.signal-token .signal-name{font:400 12px/1.5 var(--font-ui);color:var(--text-secondary);margin:var(--space-1) 0 0}
.now-signal .signal-token h3,.now-signal .signal-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.signal-story>.now-change{max-width:100%}
.now-change{font:750 20px/1.4 var(--font-heading)!important;font-variant-numeric:tabular-nums;margin:0;max-width:60%;text-align:right;letter-spacing:-.015em}
.signal-evidence{margin:0 0 var(--space-3);font-size:12px}
.signal-evidence>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-2)}
.signal-evidence dt{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);color:var(--text-secondary)}
.signal-evidence dd{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin:0;font-family:var(--font-data);font-variant-numeric:tabular-nums}
.signal-evidence dd small{color:var(--text-secondary);font-size:10px}
.value-before,.value-arrow{color:var(--text-secondary)}
.evidence-kind{font:600 9px/1.5 var(--font-ui);letter-spacing:.035em;color:var(--text-secondary);display:inline-block}
.evidence-kind.derived{border-bottom:1px dotted var(--text-secondary)}
.evidence-kind.unknown{font-style:italic}
.now-why{font:400 13px/1.6 var(--font-ui)!important;color:var(--text-secondary);margin:var(--space-3) 0 var(--space-4);max-width:68ch}
.signal-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font:400 11px/1.6 var(--font-ui);color:var(--text-secondary)}
.freshness[data-freshness=stale]{color:var(--status-warning)}
.now-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}
.severity-label{padding:2px var(--space-2);border-radius:var(--radius-sm);border:1px solid currentColor;font-size:9px}
.now-signal[data-severity=critical] .severity-label,.now-signal[data-severity=high] .severity-label{color:var(--status-danger)}
.now-signal[data-severity=medium] .severity-label{color:var(--status-warning)}
.now-signal[data-severity=low] .severity-label{color:var(--status-success)}
.now-signal[data-severity]::before{content:'';position:absolute;left:0;top:var(--space-5);width:3px;height:32px;border-radius:var(--radius-sm);background:var(--text-secondary)}
.now-signal[data-severity=high]::before,.now-signal[data-severity=critical]::before{background:var(--status-danger)}
.now-signal[data-severity=medium]::before{background:var(--status-warning)}
.now-signal[data-severity=low]::before{background:var(--status-success)}
.now-token-filter{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-subtle);border-radius:var(--radius-sm);font-size:12px;margin-bottom:var(--space-3)}
.now-token-filter .now-button{border:0}
.now-launches{padding-top:var(--space-5);margin-top:var(--space-5);border-top:1px solid var(--line)}
.now-launches h2{font-size:16px}
.now-launches>p{font-size:12px;color:var(--text-secondary)}
.now-drawer{inset:0 0 0 auto;margin:0;padding:0;width:min(600px,100%);height:100dvh;max-height:100dvh;max-width:100%;border:0;border-left:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink);font-family:var(--font-ui);overflow:hidden}
.now-drawer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.now-drawer::backdrop{background:rgb(0 0 0 / .56)}
body.has-now-dialog{overflow:hidden}
.drawer-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line);background:var(--card)}
.drawer-top h2{font:700 18px/1.4 var(--font-heading);margin:0}
.evidence-main{padding:var(--space-5);overflow:auto;overscroll-behavior:contain;min-height:0}
.evidence-main>.now-change{max-width:none;text-align:left;font-size:28px!important;margin:var(--space-4) 0 var(--space-2)}
.evidence-address{font:400 11px/1.6 var(--font-data);color:var(--text-secondary);overflow-wrap:anywhere}
.evidence-detected{display:flex;gap:var(--space-2) var(--space-4);flex-wrap:wrap;font-size:11px;color:var(--text-secondary);padding-block:var(--space-3);border-block:1px solid var(--line);margin-block:var(--space-4)}
.evidence-main h3{font:650 13px/1.5 var(--font-heading);margin:var(--space-5) 0 var(--space-3)}
.evidence-main>p{font-size:13px;line-height:1.6}
.now-provenance{font:400 11px/1.6 var(--font-ui)}
.now-provenance>div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--space-4);padding-block:var(--space-2);border-bottom:1px solid var(--line)}
.now-provenance dt{color:var(--text-secondary)}
.now-provenance dd{margin:0;overflow-wrap:anywhere}
.evidence-unknown{display:flex;gap:var(--space-2);align-items:baseline}
.drawer-foot{display:flex;gap:var(--space-2);flex-wrap:wrap;background:var(--card);border-top:1px solid var(--line);padding:var(--space-4) var(--space-5) max(var(--space-4),env(safe-area-inset-bottom))}
.drawer-foot p{flex-basis:100%;margin:0 0 var(--space-2);font-size:11px}
.drawer-foot .primary{flex:1}
.coverage-dialog[open]{grid-template-rows:auto minmax(0,1fr)}
#coverage-dialog-content{padding:var(--space-5);overflow:auto}
#coverage-dialog-content>p{font-size:13px}
.more-tools{max-width:800px;margin-top:var(--space-6)}
.more-tools section{display:grid;grid-template-columns:160px minmax(0,1fr);column-gap:var(--space-5);border-top:1px solid var(--line);padding-block:var(--space-4)}
.more-tools h2{grid-row:1/4;font:600 12px/1.5 var(--font-ui);color:var(--text-secondary);padding-top:var(--space-3)}
.tool-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3);min-height:64px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-decoration:none;text-align:left;cursor:pointer;font-family:var(--font-ui)}
.tool-row:hover{background:var(--surface-subtle)}
.tool-row>.ic{width:20px;height:20px;color:var(--text-secondary)}
.tool-row>span:nth-child(2){flex:1;min-width:0}
.tool-row b{font-size:14px;font-weight:650}
.tool-row small{display:block;font-size:12px;color:var(--text-secondary);margin-top:var(--space-1)}
.tool-row>span:last-child{color:var(--text-secondary)}
#ecosystem{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:var(--space-5) 0;margin-top:var(--space-5)}
#ecosystem::before,#ecosystem::after,#ecosystem .eco-stat::before,#ecosystem .eco-stat::after{display:none}
#ecosystem .eco-live{background:transparent;border:0;box-shadow:none;padding:0;font:600 11px/1.5 var(--font-ui);color:var(--text-secondary);letter-spacing:0}
#ecosystem .eco-live i{display:none}
#ecosystem .eco-stat{background:transparent;border:0;border-radius:0;box-shadow:none;padding:var(--space-4) var(--space-3)}
#ecosystem .eco-stat b{font:700 22px/1.4 var(--font-heading);color:var(--ink)}
#ecosystem .eco-stat span{font:400 11px/1.5 var(--font-ui);color:var(--text-secondary)}
.eco-freshness{display:block;color:var(--text-secondary);font:400 10px/1.6 var(--font-ui)!important;margin-top:var(--space-2);white-space:normal;overflow-wrap:anywhere}
.nav-primary .nav-tab-txt{display:inline!important}
.nav-primary .nav-tab{min-height:44px;font-family:var(--font-ui)}
.nav-primary .nav-tab.active{box-shadow:none;color:var(--green-dark)}
.tabbar-btn,.tabbar-btn span{font-family:var(--font-ui);white-space:nowrap}
.tabbar-btn.active{color:var(--green-dark)!important}
.how.hidden{display:none!important}
.term-local-note{font-size:12px;color:var(--text-secondary);padding:var(--space-3) var(--space-5)}
body[data-view=now] .nav-live-link,body[data-view=now] #live,body[data-view=now] .live-fab,body[data-view=watch] #live{display:none!important}
body[data-view=terminal] .term-hero{display:none!important}
body[data-view=scan] #tokens{display:none!important}
.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}
@media(min-width:1600px){#now.wrap{width:min(1280px,calc(100% - 64px))}.now-layout{grid-template-columns:minmax(0,1fr) 304px}}
@media(max-width:1100px){.nav .network{display:none!important}.nav-primary .nav-tab{gap:var(--space-1);padding-inline:var(--space-2)}.nav-primary .nav-tab-txt{font-size:12px}.now-layout{gap:var(--space-5);grid-template-columns:minmax(0,1fr) 232px}.signal-story{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.now-change{max-width:100%;text-align:left}}
@media(max-width:767px){.now-view{padding-block:var(--space-5) var(--space-6)}.now-view h1{font-size:23px}.now-heading .now-location{display:none}.now-heading>p:last-child{font-size:13px;margin-bottom:var(--space-4)}.now-search{margin-bottom:var(--space-4);flex-wrap:wrap}.now-search input{flex-basis:100%;min-height:48px}.now-search>.now-button{width:100%}.now-system-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);padding-block:var(--space-3);margin-bottom:var(--space-2)}.now-system-strip dt{font-size:10px}.now-system-strip dd{font-size:12px}.now-mobile-coverage{display:flex;justify-content:space-between;width:100%;margin-bottom:var(--space-5);border:0;border-bottom:1px solid var(--line);border-radius:0;padding-inline:0;font-size:12px}.now-mobile-coverage span:first-child{margin-left:auto}.now-layout{grid-template-columns:minmax(0,1fr)}.now-context{display:none}.now-feed-heading h2{font-size:17px}.now-state{padding:var(--space-5) var(--space-4);gap:var(--space-3)}.now-state>.now-icon .ic{width:36px;height:36px}.now-state h2{font-size:17px}.now-state p{font-size:13px}.now-signal{padding-block:var(--space-5)}.signal-top{gap:var(--space-2)}.now-type{font-size:10px}.signal-token h3{font-size:21px}.now-change{font-size:19px!important}.signal-evidence>div{align-items:flex-start}.signal-evidence dt{max-width:55%}.signal-evidence dd{max-width:50%}.now-why{font-size:12px!important}.now-actions .now-button{flex:1}.now-drawer{inset:auto 0 0;width:100%;height:92dvh;max-height:92dvh;border:0;border-top:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.drawer-top,.evidence-main,#coverage-dialog-content{padding:var(--space-4)}.drawer-foot{padding:var(--space-3) var(--space-4) max(var(--space-4),env(safe-area-inset-bottom))}.drawer-foot .now-button{font-size:12px}.evidence-main>.now-change{font-size:24px!important}.now-provenance>div{grid-template-columns:88px minmax(0,1fr);gap:var(--space-3)}.coverage-dialog{height:auto;max-height:85dvh;min-height:50dvh}.more-tools{margin-top:var(--space-5)}.more-tools section{display:block}.more-tools h2{padding-top:0;margin-bottom:var(--space-2)}.tool-row{width:100%;padding-inline:0}.tabbar{padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,minmax(0,1fr))}.tabbar-btn{min-width:0;min-height:52px}.tabbar-btn svg{width:20px;height:20px}.tabbar-btn span{font-size:10px}.eco-foot-inline{display:none}#ecosystem .eco-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}body{transition:none!important}.now-view *,.now-drawer *,.tabbar *,.nav-primary *{animation:none!important;transition:none!important}}

/* Focused NOW polish: one status strip and a stronger before/after story. */
#now.now-view{padding-top:var(--space-4)}
#now .now-heading{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-4)}
#now .now-heading h1{font:750 24px/1.3 var(--font-ui);margin:0;letter-spacing:-.02em}
#now .now-heading>p{margin:0;font-size:14px}
#now .now-search{max-width:none;margin-bottom:0}
#now .now-feed-heading{margin-bottom:var(--space-3)}
#now .now-feed-heading h2{font:650 17px/1.4 var(--font-ui);margin:0}
#now .now-context{padding-top:var(--space-3)}
#now .now-context-section,#now .now-principle{margin-top:var(--space-4);padding-top:var(--space-4)}
#now .now-signal{position:relative;background:var(--card);padding:var(--space-5);margin-bottom:var(--space-3);border:0;border-bottom:1px solid var(--line);border-radius:var(--radius-md)}
#now .signal-story{margin-bottom:var(--space-3)}
#now .signal-token h3{font:650 21px/1.3 var(--font-ui)}
#now .signal-top{margin-bottom:var(--space-4)}
#now .signal-evidence:empty{display:none}
#now .now-why{margin:var(--space-3) 0;font-size:13px!important}
#now .now-state{margin:0;padding:var(--space-5);background:var(--surface-subtle)}
#now .now-state h2{margin:0 0 var(--space-3);font:650 22px/1.3 var(--font-ui)}
#now .now-state .now-state-lead{color:var(--ink);font-weight:500;margin-bottom:var(--space-2)}
#now .now-state>.now-icon .ic{width:40px;height:40px}
#now .now-state p:last-of-type{margin-bottom:0}
.now-change .change-label{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2);font:550 11px/1.5 var(--font-ui);color:var(--text-secondary);margin-bottom:var(--space-2);letter-spacing:0}
.now-change .change-values{display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2);font:650 32px/1.25 var(--font-ui);letter-spacing:-.02em}
.change-values>small{font:400 12px/1.5 var(--font-ui);color:var(--text-secondary);letter-spacing:0}
.change-values .value-arrow{font-weight:400;font-size:24px}
.evidence-main>.now-change .change-values,.evidence-main>.now-change .change-label{justify-content:flex-start}
.evidence-main>.evidence-history-label{font:500 12px/1.5 var(--font-ui);color:var(--text-secondary);margin:0 0 var(--space-3)}
@media(max-width:1100px){.now-change .change-values,.now-change .change-label{justify-content:flex-start}}
@media(max-width:767px){
  #now .now-heading{display:block;margin-bottom:var(--space-3)}
  #now .now-heading h1{margin-bottom:var(--space-1)}
  #now .now-heading>p{font-size:13px}
  #now .now-search{flex-wrap:nowrap;gap:var(--space-2)}
  #now .now-search input{flex:1 1 0;width:0;padding-inline:var(--space-3);font-size:14px;min-height:44px}
  #now .now-search>.now-button{width:auto;padding-inline:var(--space-3);font-size:12px}
  #now .now-system-strip{display:flex;gap:var(--space-2) var(--space-3);padding-block:var(--space-3);margin-bottom:var(--space-3);font-size:11px}
  #now-health{font-size:10px}
  #now-rule-count{margin-right:auto}
  #now-strip-coverage{display:none}
  #now .now-mobile-coverage{display:inline-flex;align-items:center;gap:var(--space-2);width:auto;margin:0;padding:var(--space-2) 0;min-height:44px;border:0;background:transparent;color:var(--text-secondary);font:500 11px/1.5 var(--font-ui);cursor:pointer}
  #now .now-mobile-coverage span:first-child{margin-left:0}
  #now-coverage-open:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
  #now .now-signal{padding:var(--space-4)}
  #now .signal-story{gap:var(--space-4)}
  #now .signal-token h3{font-size:19px}
  #now .signal-meta{font-size:11px}
  #now .now-state{display:block;padding:var(--space-5) var(--space-4)}
  #now .now-state>.now-icon{display:block;margin-bottom:var(--space-3)}
  #now .now-state h2{font-size:21px}
}

/* ---------- NOW status hierarchy: value first, system health second ----------
   A delayed backend is a compact chip near the header, never a blocking panel.
   Only genuine unavailability earns a prominent warning treatment. */
.now-status-chip{display:inline-flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle);font:500 12px/1.4 var(--font-ui);color:var(--text-secondary)}
.now-status-chip[hidden]{display:none!important}
.now-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--text-secondary);flex:none}
.now-status-chip[data-status=healthy] .now-chip-dot{background:var(--green-dark)}
.now-status-chip[data-status=healthy]{color:var(--text-secondary)}
.now-status-chip[data-status=delayed] .now-chip-dot{background:var(--status-warning,#b7791f)}
.now-status-chip[data-status=delayed]{color:#7a5a12;border-color:#e2cf9b;background:#fdf6e6}
.now-status-chip[data-status=unavailable] .now-chip-dot{background:var(--red)}
.now-status-chip[data-status=unavailable]{color:#8a2b2f;border-color:#f0c4c4;background:#fdecec}
.now-chip-details{border:0;background:none;padding:0 0 0 var(--space-2);margin-left:2px;border-left:1px solid currentColor;color:inherit;font:600 12px/1.4 var(--font-ui);cursor:pointer;text-decoration:underline}
.now-chip-details:hover{opacity:.75}
:root[data-theme=dark] .now-status-chip[data-status=delayed]{color:#e8c97a;border-color:#5a4a22;background:#2a2211}
:root[data-theme=dark] .now-status-chip[data-status=unavailable]{color:#ff9ea1;border-color:#5c2b2e;background:#2a1516}

/* quiet and delayed feed states are calm; only unavailable is loud */
.now-state[data-tone=quiet],.now-state[data-tone=delayed]{background:var(--surface-subtle);padding:var(--space-5);gap:var(--space-3)}
.now-state[data-tone=quiet] h2,.now-state[data-tone=delayed] h2{font:650 18px/1.35 var(--font-ui);margin:0 0 var(--space-2)}
.now-state[data-tone=unavailable]{background:#fdecec;border:1px solid #f0c4c4}
:root[data-theme=dark] .now-state[data-tone=unavailable]{background:#2a1516;border-color:#5c2b2e}

/* early discovery ranks above an empty change feed */
.now-discovery{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);margin:0 0 var(--space-2);background:var(--card)}
.now-discovery[hidden]{display:none!important}
.now-discovery-head{display:flex;align-items:center;gap:var(--space-3)}
.now-discovery-head>.now-button{margin-left:auto;flex:none}
.now-discovery-head h2{margin:0;font:650 13px/1.4 var(--font-ui);letter-spacing:.02em;flex:none}
.now-discovery-summary{margin:0;color:var(--text-secondary);font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* watch stays separate from system health */
.now-watch-line{margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md)}
.now-watch-line[hidden]{display:none!important}
.now-watch-line h2{margin:0 0 2px;font:650 13px/1.4 var(--font-ui)}
.now-watch-line p{margin:0;color:var(--text-secondary);font-size:13px}

/* the verbose system strip now sits below the content in the DOM: health is secondary,
   not the headline. Ordering is structural, not a cascade fight. */
#now .now-system-strip{margin:var(--space-5) 0 0;border-bottom:0;border-top:1px solid var(--line)}
@media(max-width:767px){
  .now-status-chip{margin-bottom:var(--space-3);font-size:11.5px}
  .now-discovery{padding:var(--space-1) var(--space-3)}
  /* At 375px the summary truncates to a few pixels of ellipsis, which communicates
     nothing while still costing first-screen height. The count is shown on expand. */
  .now-discovery-summary{display:none}
  #now .now-state[data-tone=quiet],#now .now-state[data-tone=delayed]{padding:var(--space-4)}
  #now .now-state[data-tone=quiet]>.now-icon,#now .now-state[data-tone=delayed]>.now-icon{display:none}
}

/* ---------- Pulse scope: For You | Chain ---------- */
.now-tabs{display:inline-flex;gap:2px;padding:3px;margin:0 0 var(--space-2);border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle)}
.now-tab{border:0;background:none;padding:6px 14px;border-radius:999px;font:600 13px/1.4 var(--font-ui);color:var(--text-secondary);cursor:pointer}
.now-tab[data-active=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.now-tab:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}
.now-scope{margin:0 0 var(--space-3);color:var(--text-secondary);font:400 12px/1.5 var(--font-ui)}
@media(max-width:767px){.now-tabs{width:100%;justify-content:stretch}.now-tab{flex:1;text-align:center}.now-scope{font-size:11.5px}}

/* ---------- Early Discovery cards ----------
   Action hierarchy is carried by WEIGHT, not by equal buttons: Investigate is
   filled, Chart is outlined, Swap is quiet, Watch and overflow are icons. */
.launch-controls{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding-bottom:var(--space-3);border-bottom:1px solid var(--line)}
.launch-filters{display:flex;gap:var(--space-1);flex-wrap:wrap;flex:1;min-width:0}
.launch-filter{font:600 11px/1 var(--font-ui);padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text-secondary);cursor:pointer;min-height:32px}
.launch-filter:hover{color:var(--ink)}
.launch-filter.on{background:var(--ink);color:var(--card);border-color:var(--ink)}
.launch-sort select{font:600 11px/1 var(--font-ui);padding:6px 8px;min-height:32px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--text-secondary);cursor:pointer}
.launch-card{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);cursor:pointer}
.launch-card:hover{background:var(--hover,rgba(127,127,127,.05))}
.launch-card>.now-icon{flex:none;padding-top:2px}
.launch-body{flex:1;min-width:0}
/* One line. The eyebrow is a compact metadata row, and now that its label carries
   provenance (NEW LAUNCH / NEW POOL / NEWLY OBSERVED) plus an age basis, wrapping
   would cost a second line on every card at phone width. The kind truncates; the
   age never does, because it is the shorter and more perishable fact. */
.launch-eyebrow{display:flex;align-items:center;gap:var(--space-2);flex-wrap:nowrap;min-width:0;font-size:10px;letter-spacing:.06em;color:var(--text-secondary)}
.launch-kind{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.launch-age{white-space:nowrap;flex:0 0 auto}
.launch-age::before,.launch-source::before{content:"·";margin-right:var(--space-2);opacity:.6}
.launch-source{text-transform:none;letter-spacing:0;font-size:11px}
/* renamed from .launch-head: that class belongs to the token-launcher page in
   styles.css and its centring leaked into discovery cards. */
.now-launch-card-head{display:flex;align-items:center;gap:var(--space-2);margin:2px 0 4px;text-align:left}
.now-launch-card-source{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:4px;color:var(--text-secondary)}
.now-launch-card-source .launch-source::before{content:none}
.launch-sym{font:650 17px/1.2 var(--font-ui);overflow-wrap:anywhere;min-width:0;flex:1}
.launch-watch{flex:none;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer}
.launch-watch .ic{width:17px;height:17px}
.launch-watch.on{color:var(--green-dark);border-color:currentColor}
.launch-watch.on .ic{fill:currentColor}
/* probe state never relies on colour alone: it always carries its own words */
.launch-state{display:inline-flex;align-items:center;gap:6px;font:700 10px/1 var(--font-ui);letter-spacing:.06em;padding:5px 8px;border-radius:4px;border:1px solid var(--line);background:transparent;color:var(--text-secondary);cursor:pointer;min-height:26px}
.launch-state.static{cursor:default}
.launch-state-info{opacity:.6;font-weight:400}
.launch-state.ok{color:var(--status-success);border-color:currentColor}
.launch-state.warn{color:var(--status-warning);border-color:currentColor}
.launch-state.critical{color:var(--status-danger);border-color:currentColor}
.now-view .launch-market{margin:6px 0 0;font-size:12px;color:var(--text-secondary);overflow-wrap:anywhere}
.launch-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:nowrap}
.launch-actions>.launch-watch{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;padding:9px 12px;min-height:38px;font:600 12px/1 var(--font-ui)}
.launch-actions>.launch-act{white-space:nowrap;flex-shrink:0}
.launch-act{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:650 12px/1 var(--font-ui);padding:9px 12px;min-height:38px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.launch-act .ic{width:15px;height:15px}
.launch-act.now-launch-investigate{background:var(--green);border-color:var(--green);color:var(--accent-ink);flex:0 0 auto;padding-inline:16px}
.launch-act.now-launch-chart{color:var(--ink)}
.launch-act.now-launch-swap{color:var(--ink);font-weight:650}
.launch-act.now-launch-swap:hover{color:var(--ink)}
.launch-act[data-capability="unavailable"]{color:var(--text-secondary);border-style:dashed;background:var(--paper)}
.launch-act[data-capability="limited"] .launch-capability-mark{color:var(--status-warning)}
.launch-capability-mark{font-size:13px;line-height:1}
@media(min-width:768px){.launch-actions>.now-launch-swap,.launch-actions>.now-launch-chart{width:100px}}
.launch-more{margin-left:auto;flex:none;width:36px;height:36px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1}
.launch-more:hover{border-color:var(--line);color:var(--ink)}
.launch-drawer .launch-facts{margin:var(--space-3) 0 0;display:grid;gap:8px}
.launch-drawer .launch-facts div{display:flex;justify-content:space-between;gap:var(--space-4);font-size:13px;align-items:baseline}
.launch-drawer .launch-facts dt{color:var(--text-secondary);flex:none}
.launch-drawer .launch-facts dd{margin:0;text-align:right;overflow-wrap:anywhere}
.launch-drawer .drawer-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}
.launch-detail-text{font-size:13px;color:var(--text-secondary);margin:var(--space-2) 0 0}
.launch-consent-lead{font-size:14px;margin:var(--space-2) 0 0}
.launch-capability-dialog[open]{display:block;inset:auto 0 0 auto;height:auto;max-height:85dvh;overflow:auto;padding:var(--space-4) var(--space-4) max(var(--space-4),env(safe-area-inset-bottom))}
.launch-capability-dialog .drawer-top{padding:0 0 var(--space-3)}
.launch-capability-dialog .now-meta{font-size:13px;color:var(--text-secondary)}
.launch-market-dialog[open]{display:block;overflow:auto;padding:var(--space-4);width:min(780px,100%)}
.launch-market-dialog .drawer-top{padding:0 0 var(--space-3)}
.launch-market-dialog>.now-meta{font-size:13px;color:var(--text-secondary)}
.launch-contract-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0;color:var(--text-secondary);font-size:13px}
.launch-contract-row code{overflow-wrap:anywhere;min-width:0;user-select:all}
.launch-copy-contract{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);cursor:pointer}
.launch-copy-contract .ic{width:16px;height:16px}
.launch-copy-contract:hover{border-color:var(--text-secondary)}
.launch-copy-contract:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}
.launch-copy-status{font-size:12px}
.launch-price-chart{display:block;width:100%;height:380px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.launch-market-dialog.launch-chart-expanded{width:100%}
.launch-chart-expanded .launch-price-chart{height:65dvh}
.launch-market-tabs{display:flex;gap:var(--space-2);overflow-x:auto;margin-top:var(--space-4);padding-bottom:2px}
.launch-market-tabs button{flex:none;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text-secondary);font:650 12px/1 var(--font-ui);cursor:pointer}
.launch-market-tabs button[aria-selected="true"]{border-color:var(--green-dark);color:var(--ink);background:color-mix(in srgb,var(--green) 10%,transparent)}
.launch-market-tabs button:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}
.launch-market-intel{min-height:64px;margin-top:var(--space-2)}
.launch-market-rows{display:grid;border-top:1px solid var(--line)}
.launch-market-intel{overflow-x:auto}
.launch-trades-table{width:100%;min-width:650px;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.launch-trades-table caption{text-align:left;padding:12px 0;font-weight:600}
.launch-trades-table th,.launch-trades-table td{padding:12px 8px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.launch-trades-table th:first-child,.launch-trades-table td:first-child{text-align:left}
.launch-trades-table .buy td:first-child{color:var(--status-success);font-weight:700}
.launch-trades-table .sell td:first-child{color:var(--status-danger);font-weight:700}
.launch-market-row{display:grid;grid-template-columns:minmax(100px,1fr) repeat(3,minmax(80px,auto));gap:var(--space-3);align-items:center;padding:10px 2px;border-bottom:1px solid var(--line);font-size:12px}
.launch-market-row code{font:600 12px/1.3 var(--font-mono);overflow-wrap:anywhere}.market-side{font-size:10px}.market-side.buy{color:var(--status-success)}.market-side.sell{color:var(--status-danger)}
@media(max-width:767px){.launch-price-chart{height:350px}.launch-chart-expanded .launch-price-chart{height:60dvh}}
@media(max-width:767px){.launch-market-row{grid-template-columns:minmax(90px,1fr) minmax(100px,1fr)}.launch-market-row>*:nth-child(n+3){text-align:right}}
.launch-overflow-list{display:grid;gap:var(--space-2);margin-top:var(--space-3)}
.launch-overflow-list .now-button{width:100%;justify-content:flex-start}
:where(.launch-act,.launch-filter,.launch-watch,.launch-more,.launch-state):focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}
@media(max-width:767px){
  /* Fixed positions: Investigate / Swap, then Chart / Watch. */
  .launch-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2)}
  .launch-act.now-launch-investigate{width:100%}
  .launch-actions>.launch-watch{width:100%;min-height:44px}
  .launch-act{min-height:44px;padding-inline:10px}
  .launch-more{margin-left:0;width:44px;height:44px}
  .launch-watch{width:44px;height:44px}
  .launch-card{gap:var(--space-2)}
  .launch-sym{font-size:16px}
}

/* Early discovery: browser launch observation + instant automated probe.
   Deliberately styled apart from canonical event rows so a launch is never
   mistaken for a server-monitored evidence change. */
/* no duplicate margin rule here: .now-discovery-summary spacing is owned above.
   An empty summary must take no vertical space so the collapsed block stays compact
   and the intelligence state below it remains on the first screen. */
.now-discovery-summary:empty{display:none}
.now-launch-list{margin-top:var(--space-3)}
.now-launch-list[hidden]{display:none!important}

/* project links: identity, never evidence */
.plinks{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:8px 0 0}
.pdisc{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:6px 0 0}
.plink{display:inline-flex;align-items:center;gap:6px;font:600 11px/1 var(--font-ui,system-ui);padding:6px 9px;min-height:30px;
  border:1px solid var(--line,#232a31);border-radius:999px;color:var(--text-secondary,#9aa4b1);text-decoration:none}
.plink:hover{color:var(--text,#e9edf1);border-color:currentColor}
.plink .ic{width:13px;height:13px}
.plink:focus-visible{outline:2px solid var(--accent,#b6e400);outline-offset:2px}
.plink-note{font-size:10px;color:var(--text-secondary,#9aa4b1);opacity:.8}
.launch-overflow-head{margin:var(--space-3) 0 2px;font:700 10px/1 var(--font-ui,system-ui);letter-spacing:.08em;color:var(--text-secondary,#9aa4b1)}
.launch-overflow-head:first-child{margin-top:0}

/* ---------- official token card ----------
   Deliberately quiet. It sits inside the empty/quiet feed state, reads as a note
   rather than an advertisement, and never borrows the visual weight that real
   evidence rows use. No accent fill, no gradient, no success colour. */
.now-official{margin:var(--space-4,18px) 0 0;padding:var(--space-3,14px);border:1px solid var(--line);border-radius:var(--radius-md,8px);background:var(--card);display:flex;flex-direction:column;gap:8px;text-align:left}
.now-official-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.now-official-tag{font:600 9.5px/1 var(--font-ui);letter-spacing:.09em;color:var(--ink-3);border:1px solid var(--line);border-radius:3px;padding:3px 5px;white-space:nowrap}
.now-official-sym{font:600 13.5px/1.2 var(--font-ui);color:var(--ink)}
.now-official-px{font:500 12px/1.2 var(--font-mono,var(--font-ui));color:var(--ink-2,var(--ink-3));margin-inline-start:auto}
.now-official-copy{margin:0;font:400 12px/1.55 var(--font-ui);color:var(--ink-3)}
.now-official-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.now-official .now-official-primary{padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius-sm,6px);background:var(--card);color:var(--ink);font:500 12px/1 var(--font-ui);cursor:pointer}
.now-official .now-official-primary:hover{border-color:var(--ink-3)}
.now-official .now-official-addr{padding:7px 10px;border:1px dashed var(--line);border-radius:var(--radius-sm,6px);background:transparent;color:var(--ink-3);font:400 11.5px/1 var(--font-mono,var(--font-ui));cursor:pointer}
.now-official .now-official-addr:hover{color:var(--ink-2,var(--ink))}
@media (max-width:430px){
  .now-official-acts{flex-direction:column;align-items:stretch}
  .now-official .now-official-primary,.now-official .now-official-addr{width:100%;text-align:center}
  .now-official-px{margin-inline-start:0;width:100%}
}

/* ---------- collapsed discovery list ---------- */
.launch-showmore{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3,12px);flex-wrap:wrap;padding:var(--space-3,12px) 2px 2px}
.launch-showmore .now-meta{margin:0}
.launch-showmore-btn{padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius-sm,6px);background:var(--card);color:var(--ink);font:500 12px/1 var(--font-ui);cursor:pointer}
.launch-showmore-btn:hover{border-color:var(--ink-3)}
.launch-market-absent{margin:0;font:400 11.5px/1.5 var(--font-ui);color:var(--ink-3)}
.launch-venue{margin:0;font:400 11.5px/1.5 var(--font-ui);color:var(--ink-3)}
@media (max-width:640px){
  .launch-showmore{flex-direction:column;align-items:stretch}
  .launch-showmore-btn{width:100%}
}
