/* Market Pulse specification: viewport geometry and readable operating surfaces. */
:root{--bg:#050e16;--surface:#0a1a27;--surface-raised:#102333;--surface-selected:#172a39;--text-primary:#edf3fa;--text-secondary:#a8bbcd;--text-muted:#8198ad;--border:#233b4d;--accent:#ffab38;--positive:#36dba0;--negative:#ff6575}
@media(min-width:761px){.shell{grid-template-columns:64px minmax(0,1fr)}.rail{width:64px;padding:16px 8px}.rail nav button{width:48px}.brand{padding-bottom:24px}main{--workspace-gutter:16px}.topbar,.topbar:has(.reference-top-nav){height:64px;min-height:64px;gap:16px}.topbar h1{font-size:24px;line-height:30px;font-weight:650}.topbar p{font-size:12px;line-height:16px;margin-top:0}.reference-top-nav{height:40px}.reference-top-nav button{font-size:13px;min-width:100px}.ticker{height:32px;min-height:32px}.ticker button{font-size:11px}.view{padding-top:12px}.reference-workspace{grid-template-columns:minmax(0,1fr) minmax(380px,30%);gap:16px;margin-top:8px}.reference-workspace.inspector-hidden{grid-template-columns:minmax(0,1fr)}.reference-side-shell{max-width:560px;width:100%}.bastion.collapsed .section-head{min-height:40px;padding:4px 12px}.bastion.collapsed .bastion-summary{display:none}.bastion-modes button{font-size:11px}.reference-layout-tools{margin:8px 0 0}.reference-layout-tools button{min-height:32px;font-size:11px;padding:5px 10px}.bastion .section-head h2{font-size:14px;line-height:20px}.bastion-strip-state{font-size:11px;color:#aec4d5;font-weight:450;margin-left:16px}.bastion-strip-state:before{content:'·';margin-right:12px;color:#73b5d8}}
.source-freshness{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.bastion-summary,.bastion .bastion-row .project small,.bastion .bastion-row .score small,.bastion .bastion-row .flow b,.bastion .bastion-row .action-icon.buy-mini{font-size:11px!important}.bastion .bastion-row .project small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-side-tabs button{font-size:12px;min-height:36px}.candle-toolbar,.candle-toolbar button,.candle-coverage,.market-chart-legend{font-size:11px}.reference-workspace button:focus-visible{outline:2px solid #ffb34a;outline-offset:2px}.reference-workspace [hidden]{display:none!important}
.top-actions .pulse-alerts{position:relative;inset:auto;margin:0;padding:0;order:1;z-index:70}.top-actions #wallet-pill{order:2;font-size:12px}.top-actions .alert-dock>summary{width:40px;height:40px;min-height:40px;padding:2px;position:relative;border-radius:8px}.top-actions .companion-bell{width:34px;height:34px}.top-actions .companion-copy,.top-actions .alert-latest{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.top-actions .alert-badge{position:absolute;top:-4px;right:-4px;min-width:15px;font-size:10px;padding:1px 3px}.top-actions .pulse-alerts[data-sound=on] .alert-dock>summary{border-color:#36dba0}.top-actions .alert-drawer{top:48px;bottom:auto;right:0;max-height:calc(100dvh - 120px)}.top-actions .alert-live-rail{top:48px;bottom:auto;right:0}.top-actions .alert-drawer button{font-size:12px}.top-actions .alert-drawer label{font-size:12px}
@media(min-width:1280px) and (max-width:1599px){.reference-workspace{grid-template-columns:minmax(0,1fr) 380px}.reference-top-nav button{min-width:90px}.topbar p{max-width:36ch}}
@media(max-width:1279px){.reference-workspace{grid-template-columns:minmax(0,1fr)}.reference-side-shell{position:fixed;z-index:55;top:80px;right:16px;bottom:20px;width:440px;max-width:calc(100vw - 32px);overflow:auto;background:#050e16;border:1px solid #31536b;border-radius:12px;padding:8px;box-shadow:0 20px 60px #0009}.reference-side-tabs{position:sticky;top:-8px;z-index:3;background:#050e16;padding:6px 0}.reference-side-shell>.reference-detail{position:relative;top:auto}.reference-side-shell .x-stream-items{max-height:calc(100dvh - 330px)}}
@media(max-width:959px){.reference-side-shell{inset:72px 12px 90px;width:auto;max-width:none}.bastion-strip-state{display:block;margin:2px 0 0;font-size:11px;color:#aec4d5}.top-actions #wallet-pill{min-width:40px}.reference-side-tabs button{min-height:44px}.reference-side-tabs .side-collapse{min-width:44px}}
@media(max-width:760px){.topbar:has(.reference-top-nav){min-height:116px;height:116px}.topbar h1{font-size:24px;line-height:30px}.topbar p{font-size:11px}.reference-top-nav{height:40px}.reference-top-nav button{font-size:12px}.rail nav button{font-size:11px;min-width:70px}.reference-layout-tools{margin:8px 0}.reference-layout-tools button{min-height:44px;font-size:12px}.top-actions .alert-drawer{position:fixed;top:64px;right:12px;width:calc(100vw - 24px);max-height:calc(100dvh - 180px)}.top-actions .alert-live-rail{position:fixed;top:120px;right:12px;width:min(300px,calc(100vw - 24px));max-height:240px}.bastion-modes button{min-height:36px;font-size:11px}.reference-side-shell{top:12px}.reference-close{width:44px;height:44px}.x-sidebar button,.x-config-card button,.x-login-card button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.reference-side-shell,.reference-workspace *{animation:none!important;transition:none!important}}

.terminal-rows:empty:before{content:"Loading market feed…";display:block;padding:28px 16px;min-height:104px;color:#a8bbcd;font-size:14px;background:linear-gradient(90deg,#0a1a27,#102333)}

/* Keep precise token prices readable in the compact inspector. */
.reference-detail{container-type:inline-size}.reference-main-price>strong{white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums}
@container(max-width:490px){.reference-metrics{grid-template-columns:minmax(0,1fr);gap:12px}.reference-main-price>strong{font-size:26px}.reference-secondary-metrics strong{font-size:14px}.reference-metrics>.reference-secondary-metrics{padding:12px 4px}}

/* Continuous left-to-right market tape; the animated track survives data refreshes. */
#ticker{display:block;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}
#ticker .ticker-track{display:flex;width:max-content;height:100%;animation:market-tape-right 75s linear infinite;will-change:transform}
#ticker .ticker-group{display:flex;flex:none;align-items:center;justify-content:space-around;min-width:var(--ticker-window,100vw);padding:0 16px;box-sizing:border-box;gap:30px}
#ticker button{display:inline-flex;align-items:center;flex:none;gap:8px;border:0;border-radius:0;background:none;padding:0;white-space:nowrap;box-shadow:none}
#ticker:focus-within .ticker-track{animation-play-state:paused}
@media(hover:hover){#ticker:hover .ticker-track{animation-play-state:paused}}
@keyframes market-tape-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){#ticker{overflow-x:auto;mask-image:none}#ticker .ticker-track{animation:none;transform:none}#ticker .ticker-group[aria-hidden=true]{display:none}}

.home-runners{margin-top:18px;padding:24px;border:1px solid #284b61;border-radius:14px;background:linear-gradient(120deg,#081d2b,#03111b)}.home-runners header{display:flex;align-items:center;justify-content:space-between;gap:16px}.runners-eyebrow{color:#ffae53;font-size:11px;letter-spacing:.15em}.home-runners h2{font-size:22px;margin:6px 0}.runners-count{color:#69e1bd;margin-left:10px}.home-runners label{font-size:12px;color:#b4c9d7;display:flex;align-items:center;gap:10px}.home-runners select{background:#091c29;color:#dcecf5;border:1px solid #315568;border-radius:8px;padding:10px}.runners-coverage,.runners-empty{font-size:12px;line-height:1.6;color:#a0bacb}.runners-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:18px}.runner-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px;border:1px solid #29576a;border-radius:10px;background:#09202d;color:#e3f2fb;text-align:left;cursor:pointer}.runner-card:hover{border-color:#68c8e9;background:#102e3d}.runner-card img{width:44px;height:44px;border-radius:10px;object-fit:cover}.runner-identity{min-width:0}.runner-identity b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runner-card small{display:block;font-size:11px;color:#9dbbcb;margin-top:5px}.runner-performance{text-align:right}.runner-performance strong{font-size:24px;color:#64e1b6}.runner-current{grid-column:2 / 4;font-size:12px;color:#aac6d7}.runners-empty{grid-column:1/-1;padding:14px 0}@media(max-width:600px){.home-runners{padding:16px}.home-runners header{align-items:flex-start;flex-direction:column}.runners-list{grid-template-columns:1fr}.runner-card{min-height:100px}}

.ticker-loading{font-size:11px;color:#8eafc3;white-space:nowrap}#ticker[data-cached=true]:after{content:"Updating";position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;padding:0 12px;background:#071823;color:#adc7d5;font-size:10px;pointer-events:none}

/* Home intro becomes a single compact horizontal strip. */
.home-scene .home-intro{display:flex;align-items:center;gap:16px;min-height:72px;padding:12px 18px;margin-bottom:16px;border-radius:12px;overflow-x:auto;scrollbar-width:thin}
.home-intro>div{display:flex;align-items:center;gap:20px;flex:1 0 auto;white-space:nowrap}
.home-scene .home-intro h2{font-size:20px;line-height:1.25;letter-spacing:-.025em;max-width:none;margin:0;flex:none}
.home-scene .home-intro p{font-size:12px;line-height:1.4;max-width:none;margin:0;color:#9db8ca}
.home-intro a.primary{margin-left:auto}
.home-scene .home-intro a{flex:none;align-items:center;justify-content:center;min-height:38px;padding:9px 14px;font-size:12px;gap:14px;white-space:nowrap}
.home-scene .home-intro .home-motion{position:static;flex:none;min-height:34px;padding:8px 10px;white-space:nowrap;font-size:11px}
@media(max-width:1350px){.home-scene .home-intro p{display:none}}
@media(max-width:760px){.home-scene .home-intro{min-height:64px;padding:10px 12px;gap:12px}.home-intro>div{gap:14px}.home-scene .home-intro h2{font-size:16px}.home-scene .home-intro a{min-height:40px;padding:8px 10px}.home-scene .home-intro .home-motion{min-height:40px}}

/* Two planet states, driven by source health. */
.rail-status #source-dot{position:relative;display:block;flex:none;width:30px;height:30px;border-radius:50%;border:1px solid #ff997a99;background:radial-gradient(ellipse at 32% 25%,#ffcfab 0%,#f57462 17%,#b6293d 47%,#491329 76%,#130b20 100%);box-shadow:inset -6px -4px 10px #080919aa,0 0 15px #f1494933;transition:background .2s ease,box-shadow .2s ease}
.rail-status #source-dot:before{content:'';position:absolute;inset:4px 2px;border-radius:50%;background:repeating-linear-gradient(155deg,transparent 0 4px,#ffffff1c 5px 6px,transparent 8px 11px);transform:rotate(-15deg);opacity:.65}
.rail-status #source-dot:after{content:'';position:absolute;inset:9px -6px;border:1px solid #ffa08980;border-left-color:transparent;border-top-color:transparent;border-radius:50%;transform:rotate(-30deg);pointer-events:none}
.rail-status #source-dot.live{border-color:#91f9c399;background:radial-gradient(ellipse at 32% 25%,#d6ffe4 0%,#74e6ad 17%,#218f71 47%,#124347 76%,#081927 100%);box-shadow:inset -6px -4px 10px #061220aa,0 0 15px #47dda433}
.rail-status #source-dot.live:after{border-right-color:#8af8ca80;border-bottom-color:#8af8ca80}
@media(prefers-reduced-motion:reduce){.rail-status #source-dot{transition:none}}

#ticker .ticker-item{display:inline-flex;align-items:center;flex:none;gap:3px}#ticker .ticker-item>[data-ticker]{border:0;padding-left:2px}#ticker button.ticker-watch{display:grid;place-items:center;flex:none;width:26px;min-width:26px;height:28px;padding:4px;margin:0;border:0;border-radius:4px;background:transparent;color:#91a9bb;cursor:pointer}#ticker .ticker-watch svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}#ticker .ticker-watch:hover{background:#ffffff0d;color:#ffb34a}#ticker .ticker-watch[aria-pressed=true]{color:#ffb34a}#ticker .ticker-watch[aria-pressed=true] svg{fill:currentColor}#ticker .ticker-watch:focus-visible{outline:2px solid #ffb34a;outline-offset:-2px}

/* Shared project treatment across the summary strip and notification cards. */
.bastion .bastion-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-rows:auto auto;gap:5px 12px!important;align-items:center;padding:12px!important;min-width:0}
.bastion .bastion-row .project{grid-column:1;grid-row:1;min-width:0}.bastion .bastion-row .project small{display:none!important}.bastion .bastion-row .project img{width:30px;height:30px}
.bastion .bastion-row .score{grid-column:2;grid-row:1;display:flex;align-items:center;gap:6px}.bastion .bastion-row .score strong{font-size:16px}.bastion .bastion-row .market{display:flex!important;grid-column:1;grid-row:2;align-items:center;gap:8px;font-size:11px;min-width:0}.bastion .bastion-row .flow{grid-column:2;grid-row:2;min-width:0;font-size:11px}.bastion .bastion-row .flow small{display:none}.bastion .bastion-row .bastion-actions{display:flex!important;grid-column:3;grid-row:1/3;flex-wrap:wrap;width:94px;gap:4px}.bastion .bastion-row .bastion-actions .buy-mini{width:94px;min-height:28px;font-size:11px!important;color:#171009;background:#ff9e36;border-color:#ffaf55}.bastion .bastion-row .bastion-actions .action-icon:not(.buy-mini){width:28px;height:28px}
.signal-match{background:#103629!important;border-color:#3ba987!important}.signal-holo{background:linear-gradient(110deg,#123943,#382344,#20473c)!important;border-color:#9bdddf!important}.signal-dev-sold{position:relative;background:linear-gradient(105deg,#581425,#2d0c18)!important;border-color:#bc304b!important}.signal-dev-sold:before{content:'';position:absolute;inset:0 0 auto;height:36px;background:url('/assets/dev-sold-drips.svg') top/100% 36px no-repeat;opacity:.45;pointer-events:none}.signal-match .project b,.signal-match>span>b{color:#a0f3c8}.signal-dev-sold .project b,.signal-dev-sold>span>b{color:#ffb0be}
@media(max-width:600px){.bastion .bastion-row{gap:4px 6px!important}.bastion .bastion-row .score small{display:none}.bastion .bastion-row .market{flex-wrap:wrap;gap:3px}.bastion .bastion-row .flow b{font-size:10px!important}}


/* Six summaries retain the established two-line card design. */
.bastion #bastion-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.bastion .bastion-row{grid-template-columns:minmax(0,1fr) auto 82px!important;grid-template-rows:28px 22px;min-height:0!important;padding:10px 12px!important;gap:4px 12px!important}.bastion .bastion-row .project{gap:8px}.bastion .bastion-row .project-logo{width:28px;height:28px;flex-basis:28px}.bastion .bastion-row .market{white-space:nowrap}.bastion .bastion-row .market small{margin:0;font-size:10px}.bastion .bastion-row .market .bastion-change{display:none}.bastion .bastion-row .flow b{white-space:nowrap;font-size:11px}.bastion .bastion-row .bastion-actions{width:82px;gap:4px}.bastion .bastion-row .bastion-actions .action-icon,.bastion .bastion-row .bastion-actions .buy-mini{width:39px!important;height:27px;min-height:27px}.bastion .bastion-row .bastion-actions .buy-mini{font-size:15px!important;background:#092333;color:#7ed9ed;border-color:#275367}
@media(max-width:1100px){.bastion #bastion-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.bastion #bastion-list{grid-template-columns:1fr}}

.side-panel-label{font-size:12px;color:#adc6d8;padding:8px 0;align-self:center}.reference-side-tabs .side-collapse{margin-left:auto}
