/* Chain switcher (dist/chain.js) and the Solana terminal (dist/sol-terminal.js). Same Zyper tokens as the rest;
   the only new color is the Solana gradient, used sparingly as the chain indicator. */
:root{--sol-a:153 69 255;--sol-b:20 241 149;--sol-band:167 139 250;--sol-grad:linear-gradient(90deg,rgb(var(--sol-a)),rgb(var(--sol-b)))}

/* Header chain control */
.chain-switch{position:relative;flex-shrink:0}header>.chain-switch{margin-left:auto}
.chain-button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 10px;font-size:.705882rem;white-space:nowrap}
.chain-button-icon{display:inline-grid;place-items:center;width:16px;height:16px}
.chain-caret{font-size:.588235rem;color:rgb(var(--z-muted));margin-left:-1px}
.chain-icon{display:block;width:16px;height:16px}
.chain-icon-robinhood{fill:#c6f135}
.chain-icon-solana{fill:url(#sol-icon-grad)}
body[data-chain=solana] .chain-button{border-color:rgb(var(--sol-a)/.38);box-shadow:var(--z-btn-shadow),inset 0 -1px rgb(var(--sol-b)/.45)}
.chain-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:228px;margin:0;padding:5px;list-style:none;background:rgb(var(--z-surface));border:1px solid var(--z-borderHi);border-radius:9px;box-shadow:var(--z-panel-shadow),0 18px 40px -16px rgb(0 0 0/.8);outline:none}
.chain-option{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:6px;cursor:pointer;color:rgb(var(--z-textDim))}
.chain-option .chain-icon{width:18px;height:18px}
.chain-option-text{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}
.chain-option-name{font-size:.764706rem;color:rgb(var(--z-text))}
.chain-option-tag{font-size:.588235rem;color:rgb(var(--z-muted))}
.chain-check{visibility:hidden;color:rgb(var(--z-accent));font-size:.705882rem}
.chain-option[aria-selected=true] .chain-check{visibility:visible}
.chain-option-active{background:var(--z-surface3)}
.chain-menu:focus-visible .chain-option-active{outline:1px solid rgb(var(--z-accent)/.6);outline-offset:-1px}
body[data-chain=solana] .network-card i{background:var(--sol-grad)}
body[data-chain=solana] .demo-pill{border-color:rgb(var(--sol-a)/.3);color:rgb(var(--z-textDim))}
body[data-chain=solana] .pool-search-filters>button{display:none}
body[data-chain=solana] .pool-search-filters>span{display:inline-flex;align-items:center;gap:6px}
/* The sidebar count is the Robinhood (demo) positions; the Solana list keeps its own count. */
body[data-chain=solana] #position-count{display:none}
body[data-chain=solana] .pool-search-filters>span::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--sol-grad)}
@media(max-width:850px){.chain-button{padding:7px 9px}}
@media(max-width:550px){body[data-chain=solana] .demo-pill{font-size:0}body[data-chain=solana] .demo-pill::before{content:'BETA';font-size:.588235rem}.chain-button{gap:3px;padding:7px 6px;min-width:36px}.chain-button-name{display:none}.chain-menu{position:fixed;top:56px;right:8px}}

/* Robinhood ⇄ Solana slot swap: Solana parts live inside the same grid slots (chart card, trade panel, positions). */
/* The Positions page shows both chains' tables (Robinhood, then Solana); every other view shows the selected chain's. */
body:not([data-chain=solana]) .sol-market,body:not([data-chain=solana]) .sol-trade,body:not([data-chain=solana]) main:not([data-view=positions]) .sol-positions{display:none!important}
body[data-chain=solana] .market>:not(.sol-market),body[data-chain=solana] .trade-panel>:not(.sol-trade),body[data-chain=solana] main:not([data-view=positions]) #positions-section>:not(.sol-positions){display:none!important}
main[data-view=positions] #positions-section>.section-header>div:first-child::before,main[data-view=positions] .sol-positions>.section-header>div:first-child::before{content:'Robinhood';font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--z-muted));margin-right:10px;align-self:center}
main[data-view=positions] .sol-positions>.section-header>div:first-child::before{content:'Solana'}
main[data-view=positions] .sol-positions{border-top:1px solid var(--z-border);margin-top:6px}
body[data-chain=solana] .trade-panel>.sol-trade{display:flex!important}

/* Chart card */
.sol-market{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.sol-heading .sol-title{display:inline-flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}
.sol-heading .sol-title>strong{overflow:hidden;text-overflow:ellipsis;font-weight:500}
.sol-chip{display:inline-flex;align-items:center;gap:5px;padding:1px 6px;border:1px solid rgb(var(--sol-a)/.35);border-radius:4px;background:rgb(var(--sol-a)/.08);color:rgb(var(--z-textDim));font-size:.529412rem;font-style:normal;font-weight:600;letter-spacing:.08em;line-height:1.5}
.sol-chip::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--sol-grad)}
.sol-toolbar .sol-timeframes,.sol-toolbar .sol-unit{display:flex;gap:2px}
.sol-toolbar .sol-unit button:disabled{opacity:.45;cursor:not-allowed}
.sol-toolbar .sol-axis{color:rgb(var(--z-muted));white-space:nowrap}
.sol-toolbar>.sol-reset{margin-left:auto}
.sol-chart-wrap{position:relative;height:410px;flex-grow:1;min-height:280px;overflow:hidden;isolation:isolate}
#sol-chart{position:absolute;inset:0}
.sol-band{position:absolute;left:0;right:56px;z-index:2;pointer-events:none;box-sizing:border-box;background:rgb(var(--sol-band)/.09)}
/* The band is fill only: the Upper/Lower price lines draw its edges, pixel-exact and following pan and zoom. */
.sol-band[hidden]{display:none}
.sol-band-label{position:absolute;left:8px;top:4px;padding:1px 5px;border-radius:4px;background:rgb(var(--z-surface)/.85);color:rgb(var(--sol-band));font-size:.529412rem;letter-spacing:.04em;white-space:nowrap}
.sol-chart-state{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center;color:rgb(var(--z-muted));font-size:.705882rem;background:rgb(var(--z-surface)/.55)}
.sol-chart-state[hidden]{display:none}
.sol-chart-state button{font-size:.705882rem;padding:6px 12px}
.sol-legend{flex-wrap:wrap;row-gap:4px}
.sol-legend a{text-decoration:underline;text-underline-offset:3px}
.sol-legend .sol-key{display:inline-flex;align-items:center;gap:5px}
.sol-legend .sol-key::before{content:'';width:12px;height:7px;border:1px dashed rgb(var(--sol-band));background:rgb(var(--sol-band)/.12);border-radius:2px}
@media(min-width:1550px){.sol-chart-wrap{height:455px}}
@media(max-width:1150px){.sol-chart-wrap{height:430px}.sol-heading .sol-sub{display:none}}
@media(max-width:850px){.sol-chart-wrap{height:385px}}
@media(max-width:550px){.sol-chart-wrap{height:310px;min-height:250px}.sol-toolbar .sol-axis{display:none}.sol-toolbar{gap:4px}}
@media(min-width:1151px) and (min-height:700px){.sol-chart-wrap{height:auto;flex:1;min-height:180px}}

/* Trade panel */
.sol-trade{flex-direction:column;flex:1;min-height:0;overflow-y:auto}
.sol-facts{display:flex;flex-direction:column;gap:12px;padding:14px 17px 13px;border-bottom:1px solid var(--z-border);font-size:.705882rem;line-height:1.4;color:rgb(var(--z-textDim));flex-shrink:0;font-variant-numeric:tabular-nums}
.sol-pc-empty{margin:0;color:rgb(var(--z-muted))}
.sol-form{padding:16px 17px 18px;flex-shrink:0}
.sol-form h3{display:flex;align-items:center;margin:0 0 4px;font-size:.764706rem;font-weight:500;color:rgb(var(--z-text))}
.sol-lock{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:.647059rem;color:rgb(var(--z-muted))}
.sol-lock.sol-warn{color:rgb(var(--z-warn))}
.sol-lock.sol-bad{color:rgb(var(--z-danger))}
.sol-lock button{padding:3px 9px;font-size:.647059rem}
.sol-form .label-row{margin:16px 0 8px}
.sol-form .label-row>span{display:inline-flex;align-items:center;color:inherit;font-size:inherit}
.sol-form .label-row>small{font-size:.588235rem;color:rgb(var(--z-muted))}
.sol-amount input{font-size:1.176471rem}
.sol-amount .coin{font-size:.529412rem;font-weight:600}
.sol-bins .sol-custom{flex:1;min-width:0;border:1px solid var(--z-btn-border);border-radius:7px;background:transparent;padding:0 4px;display:flex;align-items:center;justify-content:center;color:rgb(var(--z-textDim))}
.sol-bins .sol-custom.active{background:var(--z-surface3);border-color:var(--z-borderHi);box-shadow:inset 0 -1px rgb(var(--z-accent))}
.sol-bins .sol-custom input{width:100%;border:0;background:transparent;padding:8px 0;text-align:center;font-size:.705882rem;color:inherit;outline:none;appearance:textfield}
.sol-bins .sol-custom input::-webkit-inner-spin-button,.sol-bins .sol-custom input::-webkit-outer-spin-button{appearance:none;margin:0}
.sol-bins .sol-custom:focus-within{outline:2px solid rgb(var(--z-accent));outline-offset:2px}
/* Range line under the bins row: .lp-range-line in pool-liq.css (dist/pool-liq.js paintRangeLine). */
.sol-form .costs{margin-top:16px}
.sol-form .costs select{color:rgb(var(--z-textDim))}
.sol-form .costs .sol-sub-row{padding-left:10px}
.sol-form .costs .sol-total b{color:rgb(var(--z-text))}
.sol-form .sol-refund{color:rgb(var(--z-success))}
.sol-form .sol-burn{color:rgb(var(--z-warn))}
/* What an open costs before Open: transactions, refundable rent, never-refunded bin arrays (marked when there are any). */
.sol-plancost{margin:8px 0 0;font-size:.647059rem;line-height:1.5;color:rgb(var(--z-muted))}.sol-plancost[hidden]{display:none}
.sol-plancost .sol-sep{color:rgb(var(--z-muted)/.7)}.sol-plancost .sol-burn{font-weight:600}
.sol-plancost-burn{padding:.35rem .55rem;border:1px solid rgb(var(--z-warn)/.35);border-radius:6px;background:rgb(var(--z-warn)/.06)}
.sol-warnings{margin:6px 0 0;padding:0;list-style:none;font-size:.647059rem;line-height:1.5;color:rgb(var(--z-warn))}
.sol-warnings:empty{display:none}.sol-warnings li.info{color:rgb(var(--z-muted))}
.sol-error{min-height:0;margin:10px 0 0;color:rgb(var(--z-danger));font-size:.647059rem;line-height:1.5;overflow-wrap:anywhere}
.sol-error:empty{display:none}
.sol-form .primary{margin-top:12px}
.sol-form .primary span{float:right}
.sol-pending{display:flex;align-items:center;gap:.5rem;margin:12px 0 0;padding:.4rem .6rem;border:1px solid rgb(var(--z-warn)/.3);border-radius:6px;background:rgb(var(--z-warn)/.06);font-size:.647059rem;line-height:1.4;color:rgb(var(--z-textDim))}
.sol-pending[hidden]{display:none}
.sol-pending::before{content:'';width:.36rem;height:.36rem;border-radius:50%;background:rgb(var(--z-warn));flex-shrink:0}
.sol-pending span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sol-pending a{flex-shrink:0;text-decoration:underline;text-underline-offset:3px}
@media(max-width:550px){.sol-facts{padding:12px 15px}.sol-form{padding:14px 15px 16px}}
@media(min-width:1550px) and (min-height:700px){.sol-form{padding:18px 20px 20px}.sol-facts{padding:13px 20px}}

/* Positions */
.sol-positions{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.sol-positions .section-header>div{align-items:center}
.sol-pos-meta{display:inline-flex;align-items:center;gap:8px;min-width:0;font-size:.588235rem;color:rgb(var(--z-muted));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sol-positions .section-header>.sol-pos-meta:empty{display:none}
.sol-pos-meta{margin-left:auto}
.sol-table-scroll{flex:1;min-height:0;overflow:auto;min-width:0}
.sol-pos-table th{position:sticky;top:0;z-index:1;background:rgb(var(--z-surface))}
.sol-pos-table td{vertical-align:middle}
.sol-pos-table td:first-child small,.sol-pos-table td small{display:block;margin-top:2px;font-size:.588235rem;font-weight:400;color:rgb(var(--z-muted))}
.sol-pos-table .sol-actions{display:flex;gap:6px;justify-content:flex-end}
.sol-pos-table .sol-actions button{font-size:.647059rem;padding:5px 9px;white-space:nowrap}
.sol-pos-table tr.sol-selected-pool td:first-child{box-shadow:inset 2px 0 rgb(var(--sol-a)/.8)}
.sol-mobile-status{display:none!important}
.sol-pos-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 16px;color:rgb(var(--z-muted));font-size:.705882rem;text-align:center}
.sol-pos-empty[hidden]{display:none}
.sol-pos-empty button{font-size:.705882rem;padding:6px 14px}
@media(min-width:1151px) and (min-height:700px){.sol-pos-table th{font-size:.588235rem;padding:10px 12px}.sol-pos-table td{font-size:.647059rem;padding:9px 12px}.sol-pos-table td:first-child{font-size:.705882rem}}
@media(max-width:550px){
 .sol-pos-table{min-width:0}
 .sol-pos-table th,.sol-pos-table td{padding:10px 6px;font-size:.588235rem}
 .sol-pos-table th{letter-spacing:.1em}
 .sol-pos-table th:nth-child(2),.sol-pos-table td:nth-child(2),.sol-pos-table th:nth-child(4),.sol-pos-table td:nth-child(4){display:none}
 .sol-pos-table td:first-child{font-size:.647059rem}
 .sol-pos-table .sol-actions{gap:4px}
 .sol-pos-table .sol-actions{flex-wrap:wrap}
 .sol-pos-table th:nth-child(5),.sol-pos-table td:nth-child(5){display:none}
 .sol-pos-table td small.sol-mobile-status{display:block!important;color:rgb(var(--z-success))}
 .sol-pos-table td small.sol-mobile-status.out{color:rgb(var(--z-warn))}
 .sol-pos-table .sol-actions button{min-height:32px;font-size:.588235rem;padding:4px 8px}
}

/* Search rows (live-search.js modal, Solana provider) */
#pool-search-modal .sol-search-row .pool-search-icon{background:linear-gradient(rgb(var(--z-surface)),rgb(var(--z-surface))) padding-box,linear-gradient(135deg,rgb(var(--sol-a)/.7),rgb(var(--sol-b)/.6)) border-box;border:1px solid transparent;font-size:.705882rem}
#pool-search-modal .sol-search-row .pool-search-metrics{grid-template-columns:1fr 1fr}

/* Review & send (dialog#sol-review): reuses the .signing-* look of dist/signing.css */
#sol-review{width:min(39rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:1.5rem;border:1px solid var(--z-borderHi);border-radius:10px;background:rgb(var(--z-surface));color:var(--z-body-text);box-shadow:var(--z-panel-shadow);overflow:auto;font-size:.82rem}
#sol-review::backdrop{background:rgb(var(--z-bg)/.8);backdrop-filter:blur(5px)}
#sol-review .signing-eyebrow{display:flex;align-items:center;gap:7px}
#sol-review .signing-eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--sol-grad)}
#sol-review .signing-summary dd a,#sol-review .signing-result-summary dd a{text-decoration:underline;text-underline-offset:3px}
#sol-review .sol-state-pending{color:rgb(var(--z-warn))}
#sol-review .sol-review-loading{margin:.6rem 0;color:rgb(var(--z-textDim));font-size:.78rem}
#sol-review .sol-review-loading[hidden]{display:none}
.sol-withdraw{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 .6rem;padding:.6rem .7rem;border:1px solid var(--z-border);border-radius:7px;background:var(--z-surface2)}
.sol-withdraw[hidden]{display:none}
.sol-segment{display:flex;gap:4px}
.sol-segment button{padding:.35rem .6rem;font-size:.7rem;background:transparent;box-shadow:none;color:rgb(var(--z-textDim))}
.sol-segment button[aria-pressed=true]{background:var(--z-surface3);border-color:var(--z-borderHi);color:rgb(var(--z-text));box-shadow:inset 0 -1px rgb(var(--z-accent))}
.sol-withdraw label{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:.7rem;color:rgb(var(--z-textDim))}
.sol-withdraw input{width:auto;margin:0;accent-color:rgb(var(--z-accent))}
#sol-review .signing-steps{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:550px){#sol-review{padding:1rem;width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}}

/* Solana wallet menu (header button on Solana) */
#sol-wallet{position:fixed;inset:68px 20px auto auto;margin:0;width:min(340px,calc(100vw - 24px));max-height:calc(100dvh - 88px);padding:0;border:1px solid var(--z-borderHi);border-radius:10px;background:rgb(var(--z-surface));color:rgb(var(--z-text));box-shadow:var(--z-panel-shadow),0 24px 48px -20px rgb(0 0 0/.85);overflow:auto}
#sol-wallet::backdrop{background:rgb(var(--z-bg)/.45)}
.sw-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--z-border)}
.sw-head h2{display:flex;align-items:center;gap:8px;margin:0;font-size:.882353rem;font-weight:500;letter-spacing:-.02em}
.sw-close{width:1.8rem;height:1.8rem;padding:0;font-size:1.05rem;background:transparent;box-shadow:none;border-color:var(--z-ghost-border);color:var(--z-ghost-text)}
.sw-body{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;font-size:.705882rem}
.sw-note{margin:0;color:rgb(var(--z-textDim));line-height:1.5}
.sw-note.sw-bad{color:rgb(var(--z-danger))}
.sw-list{display:flex;flex-direction:column;gap:6px}
.sw-wallet{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;text-align:left;font-size:.764706rem}
.sw-wallet img,.sw-wallet .sw-glyph{width:22px;height:22px;border-radius:6px;flex:0 0 22px;object-fit:contain}
.sw-wallet .sw-glyph{display:grid;place-items:center;background:var(--z-surface3);color:rgb(var(--z-textDim));font-size:.588235rem}
.sw-wallet span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-wallet small{color:rgb(var(--z-muted));font-size:.588235rem}
.sw-account{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--z-panel-border);border-radius:8px;background:var(--z-panel-bg)}
.sw-account strong{flex:1;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-account button,.sw-account a{flex-shrink:0;padding:4px 8px;font-size:.647059rem;border:1px solid var(--z-ghost-border);border-radius:5px;background:transparent;box-shadow:none;color:rgb(var(--z-textDim))}
.sw-balances{display:grid;gap:2px}
.sw-balances>div{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--z-border)}
.sw-balances span{color:rgb(var(--z-muted))}
.sw-balances b{font-weight:500}
.sw-actions{display:flex;gap:8px}
.sw-actions button{flex:1;font-size:.705882rem;padding:8px}
.sw-links{display:flex;flex-wrap:wrap;gap:6px 12px}
.sw-actions{flex-wrap:wrap}
/* Local signer panel */
.sw-back{align-self:flex-start;padding:3px 8px;font-size:.647059rem;background:transparent;box-shadow:none;border-color:var(--z-ghost-border);color:rgb(var(--z-textDim))}
.sw-form{display:flex;flex-direction:column;gap:8px}
.sw-input{width:100%;box-sizing:border-box;margin:0;padding:8px 10px;border:1px solid var(--z-input-border);border-radius:6px;background:var(--z-input-bg);color:rgb(var(--z-text));font:inherit;font-size:.705882rem}
.sw-input:focus{outline:2px solid rgb(var(--sol-band)/.6);outline-offset:1px}
.sw-reveal{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid rgb(var(--z-danger)/.45);border-radius:8px;background:rgb(var(--z-danger)/.06)}
.sw-secret{display:block;padding:6px 8px;border-radius:5px;background:var(--z-surface3);font-size:.588235rem;word-break:break-all;user-select:all}
.sw-links a{color:rgb(var(--z-textDim));text-decoration:underline;text-underline-offset:3px}
.sw-foot{display:flex;align-items:center;gap:.5rem;padding:9px 14px;border-top:1px solid var(--z-border);color:rgb(var(--z-muted));font-size:.588235rem}
.sw-foot::before{content:'';width:.32rem;height:.32rem;border-radius:50%;background:var(--sol-grad)}
@media(max-width:850px){#sol-wallet{inset:64px 12px auto auto}}
@media(max-width:550px){#sol-wallet{inset:auto 0 0 0;width:100%;max-width:100%;max-height:85dvh;border-radius:12px 12px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}}
@media(prefers-reduced-motion:reduce){.chain-menu,#sol-wallet{animation:none}}
/* PnL share */
.sol-heading .sol-share{margin-left:auto;padding:5px 12px;font-size:.647059rem;font-weight:500;border-color:rgb(var(--sol-a)/.45);box-shadow:inset 0 -1px rgb(var(--sol-b)/.4)}
/* Liquidity shape (Spot · Curve · Bid-Ask): a compact segmented control on the Range width row, so the column keeps its height. */
.sol-form .sol-binrow{flex-wrap:nowrap;gap:6px}
.sol-form .sol-binrow>span:first-child{flex-shrink:0;white-space:nowrap}
.sol-shapes{display:inline-flex;align-items:center;gap:0;margin-left:auto;min-width:0}
.sol-shapes button:not(.tip){padding:3px 7px;font-size:.588235rem;line-height:1.25;border-radius:0;margin-left:-1px;background:transparent;box-shadow:none;border-color:var(--z-btn-border);color:rgb(var(--z-textDim));white-space:nowrap}
.sol-shapes button:first-child{border-radius:6px 0 0 6px;margin-left:0}
.sol-shapes button:nth-last-child(2){border-radius:0 6px 6px 0}
.sol-shapes button:not(.tip):hover:not(:disabled){color:rgb(var(--z-text))}
.sol-shapes button.active{position:relative;z-index:1;background:var(--z-surface3);border-color:var(--z-borderHi);color:rgb(var(--z-text));box-shadow:inset 0 -1px rgb(var(--z-accent))}
.sol-shapes .sol-shape-tip{margin-left:4px}
/* LP strategy segmented control (Lower · Upper · Both) and Both's derived base side. */
.sol-modes{margin:0 0 12px}
.sol-modes button{padding:7px 0}
.sol-derived{display:block;margin-top:6px;text-align:right;font-size:.588235rem;color:rgb(var(--z-textDim));font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
/* Both: swap the typed token */
.sol-swap{flex-shrink:0;padding:2px 7px;font-size:.705882rem;line-height:1.2;background:transparent;box-shadow:none;border-color:var(--z-ghost-border);color:rgb(var(--z-textDim))}
.sol-swap:hover{color:rgb(var(--z-text));border-color:rgb(var(--sol-a)/.5)}
/* Action notice in the chart header */
.sol-heading .sol-notice{flex:0 1 auto;min-width:0;max-width:min(560px,60%);margin:0 auto;display:flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid var(--z-border);border-radius:999px;font-size:.647059rem;font-weight:500;color:rgb(var(--z-text));background:var(--z-surface2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:sol-notice-in .18s ease-out}
.sol-heading .sol-notice[hidden]{display:none}
.sol-heading .sol-notice::before{content:'';flex-shrink:0;width:7px;height:7px;border-radius:50%;background:currentColor}
.sol-heading .sol-share{margin-left:0}
.sol-heading:has(.sol-notice[hidden]) .sol-share{margin-left:auto}
.sol-notice-busy{border-color:rgb(var(--sol-a)/.5)!important;background:rgb(var(--sol-a)/.10)!important}
.sol-notice-busy::before{background:rgb(var(--sol-a))!important;animation:sol-pulse 1s ease-in-out infinite}
.sol-notice-ok{border-color:rgb(var(--sol-b)/.45)!important;background:rgb(var(--sol-b)/.08)!important}
.sol-notice-ok::before{background:rgb(var(--sol-b))!important}
.sol-notice-bad{border-color:rgb(var(--z-danger)/.5)!important;background:rgb(var(--z-danger)/.08)!important}
.sol-notice-bad::before{background:rgb(var(--z-danger))!important}
@keyframes sol-notice-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@keyframes sol-pulse{50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.sol-heading .sol-notice,.sol-notice-busy::before{animation:none!important}}
/* Inline withdraw picker */
.sol-actions .sol-pick{border-color:rgb(var(--sol-a)/.5);color:rgb(var(--z-text))}
.sol-actions .sol-pick:hover{background:rgb(var(--sol-a)/.12)}
.sol-actions .sol-pick-cancel{padding-left:8px;padding-right:8px;background:transparent;box-shadow:none;color:rgb(var(--z-muted))}
/* Rebalance picker: the mode that reuses the position best. */
.sol-actions .sol-pick-suggest{border-color:rgb(var(--sol-b)/.6);box-shadow:inset 0 -1px rgb(var(--sol-b))}
/* Range grips: drag an LP edge on the chart (24px hit area, line in the middle). */
.sol-grip{position:absolute;left:0;height:24px;z-index:3;cursor:ns-resize;touch-action:none;user-select:none;outline:none}
.sol-grip[hidden]{display:none}
.sol-grip i{position:absolute;left:0;right:0;top:11px;height:2px;background:rgb(var(--sol-band)/.0)}
.sol-grip:hover i,.sol-grip:focus-visible i,.sol-grip.dragging i{background:rgb(var(--sol-band)/.8)}
.sol-grip::after{content:'';position:absolute;right:6px;top:7px;width:18px;height:10px;border-radius:3px;background:rgb(var(--sol-band));box-shadow:0 0 0 1px rgb(var(--z-surface))}
.sol-grip-label{position:absolute;right:30px;top:3px;padding:1px 6px;border-radius:4px;background:rgb(var(--z-surface)/.92);border:1px solid rgb(var(--sol-band)/.5);color:rgb(var(--z-text));font-size:.588235rem;white-space:nowrap;font-variant-numeric:tabular-nums;opacity:0;pointer-events:none;transition:opacity .12s}
.sol-grip:hover .sol-grip-label,.sol-grip:focus-visible .sol-grip-label,.sol-grip.dragging .sol-grip-label{opacity:1}
.sol-grip:focus-visible::after{outline:2px solid rgb(var(--z-accent));outline-offset:1px}
/* History tab: the closed-positions panel (style.css .ch-*, dist/closed-history.js). */
.sol-pos-pane[hidden],.sol-history[hidden],.sol-pos-meta[hidden]{display:none}
/* Legend shows only warnings (like the Robinhood chart): the info line is hidden and the row collapses when nothing is left. */
.sol-legend>:not(.live-warn){display:none}
.sol-legend:not(:has(>.live-warn)){display:none!important}
/* Positions tab: the shared pos-* / copy-chip / pnl-cell styles live in dist/style.css (both chains). Solana-only below. */
.sol-pos-header .pos-close-note{font-size:.588235rem;color:rgb(var(--z-textDim))}
.sol-pos-header .pos-close-confirm{margin-left:auto;flex-wrap:wrap}
.sol-pos-table .pos-actions{min-width:64px}
.sol-pos-table .pos-range-bar{width:130px}
.sol-pos-table .pnl-cell.pnl-flat .pnl-usd{color:rgb(var(--z-textDim))}
.sol-pos-table .sol-copy-tag{white-space:nowrap}
.sol-pos-table tr.pos-group.sol-pos-section .sol-pos-section-link{margin-left:8px;color:rgb(var(--z-accent));text-decoration:none}
.sol-pos-table tr.pos-group.sol-pos-sub td{letter-spacing:.12em;text-transform:uppercase;font-size:.53rem}
.sol-pos-table td.sol-pos-none{color:rgb(var(--z-muted))}
.sol-pos-table tr.sol-copy-row td:first-child{box-shadow:inset 2px 0 rgb(var(--z-accent) / .45)}
/* Phones: cards like the Robinhood table (range on top, liquidity / fees / PnL, then the action icons). */
@media(max-width:600px){
 .sol-pos-table thead{display:none}
 .sol-pos-table,.sol-pos-table tbody{display:block;min-width:0;width:100%}
 .sol-pos-table tr.pos-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;padding:10px 12px;border-top:1px solid var(--z-border)}
 .sol-pos-table tr.pos-row>td{display:block!important;padding:0!important;border:0;white-space:normal;min-width:0;font-size:.588235rem}
 .sol-pos-table tr.pos-row>td.pos-range,.sol-pos-table tr.pos-row>td:last-child{grid-column:1/-1}
 .sol-pos-table tr.pos-row>td.pos-liq::before{content:'Liquidity'}.sol-pos-table tr.pos-row>td.pos-fees::before{content:'Fees'}.sol-pos-table tr.pos-row>td.pnl-cell::before{content:'PnL'}
 .sol-pos-table tr.pos-row>td.pos-liq::before,.sol-pos-table tr.pos-row>td.pos-fees::before,.sol-pos-table tr.pos-row>td.pnl-cell::before{display:block;color:rgb(var(--z-muted));font-size:.529412rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px}
 .sol-pos-table tr.pos-row .pos-token{display:none}
 .sol-pos-table tr.pos-row .pos-range-line{white-space:normal;flex-wrap:wrap}
 .sol-pos-table tr.pos-row .pos-range-bar{width:100%}
 .sol-pos-table tr.pos-row .pos-actions{justify-content:flex-start;flex-wrap:wrap}
 .sol-pos-table tr.pos-group{display:block}.sol-pos-table tr.pos-group td{display:block}
 .sol-pos-header{flex-wrap:wrap}
}
/* Landing speed (perf/fast-tx): a compact select in the Amount row (no extra height), the review's speed segment. */
.sol-form .label-row>span>select.sol-speed{height:18px;margin-left:8px;padding:0 4px;border:1px solid var(--z-border);border-radius:5px;background:var(--z-surface2);box-shadow:none;font-size:.529412rem;line-height:16px;color:rgb(var(--z-textDim));cursor:pointer;width:auto;min-width:0}
.sol-form .label-row>span>select.sol-speed:hover{border-color:var(--z-borderHi);color:rgb(var(--z-text))}
.sol-speedbox{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:0 0 10px}
.sol-speedbox button{padding:.3rem .6rem;font-size:.68rem;background:transparent;box-shadow:none;color:rgb(var(--z-textDim))}
.sol-speedbox button.active{background:var(--z-surface3);border-color:var(--z-borderHi);color:rgb(var(--z-text));box-shadow:inset 0 -1px rgb(var(--z-accent))}
.sol-speedbox .sol-tipinput{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-size:.62rem;color:rgb(var(--z-muted))}
.sol-speedbox .sol-tipinput input{width:72px;height:24px;padding:0 6px;font-size:.66rem;text-align:right}
.sol-speedbox .sol-tipinput[hidden]{display:none}
