:root{
  color-scheme:dark;
  /* opaque channels, use as rgb(var(--z-x) / alpha) */
  --z-bg:9 9 11; --z-surface:10 10 10; --z-text:255 255 255; --z-textDim:161 161 170; --z-muted:113 113 122;
  --z-accent:125 211 252; --z-success:125 211 160; --z-danger:255 89 89; --z-warn:232 198 108;
  --z-metalHi:255 255 255; --z-metalMid:113 113 122; --z-metalDark:42 42 42; --z-borderStrong:255 255 255;
  /* translucent overlays */
  --z-surface2:rgba(255,255,255,.04); --z-surface3:rgba(255,255,255,.06);
  --z-border:rgba(255,255,255,.08); --z-borderHi:rgba(255,255,255,.14);
  --z-body-bg:#09090b; --z-body-text:#e8e8e8; --z-placeholder:#616169;
  --z-selection-bg:rgba(125,211,252,.30); --z-selection-text:#fafafa;
  --z-scroll-thumb:rgba(255,255,255,.10); --z-scroll-thumb-hover:rgba(255,255,255,.18);
  --z-spot-1:rgba(125,211,252,.10); --z-spot-2:rgba(125,211,252,.04); --z-noise-opacity:.035;
  /* panels (from #76): translucent surface with a faint top-lit gradient, a hairline edge and a brighter top highlight.
     Always used as a `background:` shorthand (a gradient is not a colour). */
  --z-panel-bg:linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,0) 140px),rgba(12,12,14,.66); --z-panel-border:rgba(255,255,255,.075);
  --z-panel-shadow:inset 0 1px 0 0 rgba(255,255,255,.07),0 1px 0 0 rgba(0,0,0,.5),0 12px 32px -16px rgba(0,0,0,.7);
  --z-btn-text:#ededed; --z-btn-bg:rgba(255,255,255,.06); --z-btn-border:rgba(255,255,255,.14); --z-btn-shadow:inset 0 1px 0 0 rgba(255,255,255,.05);
  --z-btn-hover-text:#fff; --z-btn-hover-bg:rgba(255,255,255,.10); --z-btn-hover-border:rgba(255,255,255,.22);
  --z-btn-active-bg:rgba(255,255,255,.04); --z-btn-active-border:rgba(255,255,255,.14);
  --z-ghost-text:#9a9a9a; --z-ghost-border:rgba(255,255,255,.08); --z-ghost-hover-text:#ededed; --z-ghost-hover-border:rgba(255,255,255,.18); --z-ghost-hover-bg:rgba(255,255,255,.04);
  --z-btn-danger-text:#ff8585; --z-btn-danger-border:rgba(255,85,85,.22); --z-btn-danger-hover-text:#ffb8b8; --z-btn-danger-hover-border:rgba(255,85,85,.45); --z-btn-danger-hover-bg:rgba(255,85,85,.06);
  --z-btn-warn-text:#e8c66c; --z-btn-warn-border:rgba(232,198,108,.25); --z-btn-warn-hover-text:#f3d896; --z-btn-warn-hover-border:rgba(232,198,108,.5); --z-btn-warn-hover-bg:rgba(232,198,108,.06);
  --z-input-bg:rgba(255,255,255,.03); --z-input-border:rgba(255,255,255,.08);
  --z-pill-bg:rgba(125,211,252,.12); --z-pill-border:rgba(125,211,252,.35); --z-pill-text:#7dd3fc; --z-pill-dot:#7dd3fc;
  --z-chip-text:#71717a; --z-chip-ok:#22c55e; --z-chip-warn:#e8c66c; --z-chip-info:#7dd3fc;
  /* primary action (from #76): the one strong colour on the page (accent fill, dark text, restrained glow) */
  --z-cta-bg:#7dd3fc; --z-cta-hover-bg:#a5e2fd; --z-cta-active-bg:#6cc6f0; --z-cta-text:#03131c; --z-cta-border:rgba(186,230,253,.55);
  --z-cta-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 0 1px rgba(125,211,252,.18),0 8px 24px -10px rgba(125,211,252,.55);
  --z-cta-hover-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 0 1px rgba(125,211,252,.3),0 10px 28px -10px rgba(125,211,252,.7);
  /* live indicator glow (from #76) */
  --z-live-glow:0 0 0 2px rgba(125,211,160,.14),0 0 7px rgba(125,211,160,.7);
  /* charts (dist/live-chart.js, dist/sol-terminal.js read them via ZyperTheme.color); themes may override (dist/theme-boot.js) */
  --z-chart-bg:var(--z-surface); --z-candle-up:var(--z-success); --z-candle-down:var(--z-danger);
}

/* Shared foundations. All application color comes from the Zyper token set. */
*{box-sizing:border-box}html{font-size:17px;scroll-behavior:smooth}body{margin:0;min-height:100dvh;background:var(--z-body-bg);color:var(--z-body-text);font-family:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:.823529rem;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;isolation:isolate}
body::before,body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1}body::before{background:radial-gradient(ellipse at 4% 3%,var(--z-spot-1),transparent 48%),radial-gradient(ellipse at 95% 97%,var(--z-spot-2),transparent 48%)}body::after{opacity:var(--z-noise-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.8'/%3E%3C/svg%3E")}
::selection{background:var(--z-selection-bg);color:var(--z-selection-text)}*{scrollbar-width:thin;scrollbar-color:var(--z-scroll-thumb) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--z-scroll-thumb);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--z-scroll-thumb-hover)}
button,input,select,textarea,kbd,pre,code{font:inherit;font-variant-numeric:tabular-nums}button,input,select,textarea{min-width:0}button{cursor:pointer;border:1px solid var(--z-btn-border);border-radius:7px;color:var(--z-btn-text);background:var(--z-btn-bg);box-shadow:var(--z-btn-shadow);padding:.529412rem .705882rem;transition:background 170ms ease-out,border-color 170ms ease-out,color 170ms ease-out}button:hover{color:var(--z-btn-hover-text);background:var(--z-btn-hover-bg);border-color:var(--z-btn-hover-border)}button:active{background:var(--z-btn-active-bg);border-color:var(--z-btn-active-border)}button:disabled{opacity:.45;cursor:not-allowed}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgb(var(--z-accent));outline-offset:3px}input,select,textarea{background:var(--z-input-bg);border:1px solid var(--z-input-border);border-radius:7px;color:rgb(var(--z-text));padding:.588235rem;max-width:100%}input::placeholder,textarea::placeholder{color:var(--z-placeholder)}input:disabled{color:rgb(var(--z-muted));cursor:not-allowed}select{cursor:pointer}option{background:rgb(var(--z-surface));color:rgb(var(--z-text))}a{color:inherit;text-decoration:none}small{font-size:.705882rem;color:rgb(var(--z-textDim))}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{color:rgb(var(--z-text));line-height:1.2}i{display:inline-block;width:6px;height:6px;border-radius:50%;background:rgb(var(--z-accent));flex-shrink:0}.muted{color:rgb(var(--z-muted))}.positive{color:rgb(var(--z-success))!important}.negative{color:rgb(var(--z-danger))!important}.blue{background:rgb(var(--z-accent))}.green{background:rgb(var(--z-success))}.push{margin-left:auto}[hidden]{display:none!important}
aside{position:fixed;inset:0 auto 0 0;width:184px;z-index:30;display:flex;flex-direction:column;padding:27px 12px 18px;background:rgb(var(--z-surface));border-right:1px solid var(--z-border)}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap;letter-spacing:-.03em;font-size:1.058824rem;font-weight:600;padding:0 4px}.mark{display:block;width:28px;height:28px;flex-shrink:0}.brand-word{display:flex;align-items:center;font-weight:600;color:rgb(var(--z-text))}.brand-word b{display:inline-block;margin-left:8px;padding:2px 5px;border:1px solid var(--z-pill-border);border-radius:4px;background:var(--z-pill-bg);color:var(--z-pill-text);font-size:.588235rem;font-weight:500;letter-spacing:.18em;line-height:1.2}aside>nav{margin-top:40px}nav button{width:100%;display:flex;align-items:center;gap:11px;margin-bottom:6px;padding:11px 12px;border:0;border-radius:6px;background:transparent;box-shadow:none;color:rgb(var(--z-textDim));font-size:.941176rem;text-align:left;white-space:nowrap}nav button span{font-size:.764706rem}nav button.selected{color:rgb(var(--z-text));background:var(--z-surface3);box-shadow:inset 2px 0 rgb(var(--z-accent))}nav button:hover{background:var(--z-surface2)}kbd{font-size:.588235rem;border:1px solid var(--z-borderHi);border-radius:4px;padding:1px 5px;color:rgb(var(--z-muted))}nav b{margin-left:auto;font-size:.588235rem;font-weight:400}nav b{border-radius:4px;background:var(--z-surface3);padding:1px 5px}.sidebar-bottom{margin-top:auto}.network-card{display:flex;align-items:center;gap:8px;padding:12px 9px;border:1px solid var(--z-border);border-radius:8px;font-size:.647059rem;color:rgb(var(--z-textDim))}.wallet-link{display:flex;align-items:center;gap:7px;width:100%;margin:12px 0 28px;padding:7px;background:transparent;border:0;box-shadow:none;font-size:.647059rem;color:rgb(var(--z-textDim))}.wallet-link>span:last-child{margin-left:auto}.shell{margin-left:184px;min-width:0;min-height:100dvh}header{height:64px;padding:0 24px;display:flex;align-items:center;gap:18px;background:rgb(var(--z-surface));border-bottom:1px solid var(--z-border)}.search-wrap{position:relative;display:flex;align-items:center;gap:10px;width:min(390px,44%);color:rgb(var(--z-muted))}.search-wrap>span{font-size:1.294118rem}.search-wrap input{flex:1;width:100%;padding-left:0;border:0;background:transparent;font-size:.764706rem}.search-wrap kbd{margin-right:8px}.demo-pill{margin-left:auto;padding:5px 8px;border:1px solid var(--z-border);border-radius:5px;background:var(--z-surface2);color:rgb(var(--z-muted));font-size:.588235rem;letter-spacing:.18em;white-space:nowrap}.wallet-button{white-space:nowrap;font-size:.705882rem;padding:8px 12px;min-height:34px}.wallet-button>span{margin-left:15px;color:rgb(var(--z-textDim))}main{padding:24px 24px 0;min-width:0}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:14px}main[data-view="terminal"] .page-title{display:none}.eyebrow{font-size:.588235rem;letter-spacing:.18em;text-transform:uppercase;color:rgb(var(--z-muted))}h1{font-size:1.294118rem;letter-spacing:-.03em;font-weight:500;margin:0}.title-dot{color:rgb(var(--z-accent))}
.terminal-grid{display:grid;grid-template-columns:minmax(0,1fr) 304px;gap:12px;align-items:stretch;min-width:0}.market,.trade-panel,.side-card,.positions-section,.metric,.info-box{background:var(--z-panel-bg);border:1px solid var(--z-panel-border);box-shadow:var(--z-panel-shadow);border-radius:10px;min-width:0}.market{overflow:hidden;display:flex;flex-direction:column}
.chart-toolbar{display:flex;align-items:center;gap:12px;min-height:43px;padding:8px 12px;font-size:.647059rem;border-bottom:1px solid var(--z-border)}.chart-toolbar button:not(.tip){font-size:.647059rem;padding:4px 7px;color:rgb(var(--z-muted));background:transparent;border:0;box-shadow:none}.chart-toolbar button.active{color:rgb(var(--z-text));background:var(--z-surface3);box-shadow:inset 0 -1px rgb(var(--z-accent))}.chart-toolbar>button{margin-left:auto}.chart-wrap{height:410px;flex-grow:1;min-height:280px;position:relative;overflow:hidden;isolation:isolate}#chart{height:100%;width:100%;position:relative;z-index:0}.chart-watermark{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:calc(var(--z-noise-opacity) * 3);pointer-events:none;white-space:nowrap}.chart-watermark span{display:block;font-size:.588235rem;letter-spacing:.18em;text-transform:uppercase}.watermark-mark{width:80px;height:80px;flex-shrink:0}.mobile-brand-mark{display:none}.range-zone{position:absolute;left:0;right:56px;background:rgb(var(--z-accent) / .10);border-top:1px dashed rgb(var(--z-accent));border-bottom:1px dashed rgb(var(--z-accent));pointer-events:none;z-index:1}.range-handle{position:absolute;right:62px;padding:4px 6px;color:rgb(var(--z-accent));background:rgb(var(--z-surface));border:1px solid rgb(var(--z-accent) / .5);border-radius:4px;font-size:.529412rem;z-index:3;touch-action:none;cursor:ns-resize;box-shadow:none}.chart-legend{display:flex;align-items:center;gap:16px;padding:11px 14px;border-top:1px solid var(--z-border);font-size:.588235rem;color:rgb(var(--z-muted))}.chart-legend i{width:5px;height:5px;margin-right:4px}.chart-legend:empty{display:none}.market-heading:has(>b:empty):has(>span:empty):not(:has(>:not(b,span))){display:none}
.panel-tabs{display:flex;min-height:48px;border-bottom:1px solid var(--z-border)}.panel-tabs button{width:50%;border:0;border-radius:0;background:transparent;box-shadow:none;color:rgb(var(--z-muted));font-size:.705882rem}.panel-tabs button.active{color:rgb(var(--z-text));box-shadow:inset 0 -1px rgb(var(--z-accent))}.panel-body{padding:18px}.label-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:9px;font-size:.705882rem}.label-row>span{font-size:.588235rem;color:rgb(var(--z-muted))}.label-row>label+.tip{margin:0 auto 0 -3px}.panel-body>select{width:100%;padding:11px 9px;font-size:.705882rem;font-weight:500}.helper{font-size:.647059rem;line-height:1.65;color:rgb(var(--z-textDim));margin:10px 0 22px}.presets{display:flex;gap:6px}.presets button{flex:1;min-width:0;padding:8px 0;background:transparent;box-shadow:none;font-size:.705882rem;color:rgb(var(--z-textDim))}.presets 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))}.range-inputs{display:flex;gap:8px;margin-top:10px}.range-inputs label{width:50%;min-width:0;padding:9px;background:var(--z-input-bg);border:1px solid var(--z-input-border);border-radius:7px;font-size:.588235rem;color:rgb(var(--z-muted))}.range-inputs input{width:100%;padding:7px 0 0;border:0;background:transparent;font-size:.705882rem}.deposit-label{margin-top:22px}.amount-box{padding:12px;background:var(--z-input-bg);border:1px solid var(--z-borderHi);border-radius:7px}.amount-box>div{display:flex;align-items:center;gap:8px}.coin{width:22px;height:22px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:var(--z-surface3);border:1px solid var(--z-borderHi);color:rgb(var(--z-textDim))}.amount-box b{font-size:.705882rem;font-weight:500}.amount-box input{width:100%;text-align:right;padding:0;border:0;background:transparent;font-size:1.294118rem;letter-spacing:-.04em}.amount-box>div>button{flex-shrink:0;padding:3px 6px;border:1px solid var(--z-border);border-radius:4px;background:transparent;box-shadow:none;color:rgb(var(--z-textDim));font-size:.529412rem;letter-spacing:.08em}.allocation{display:flex;flex-wrap:wrap;justify-content:space-between;margin:13px 0 21px;font-size:.529412rem;color:rgb(var(--z-muted))}.allocation div{height:3px;width:100%;margin-top:8px;background:rgb(var(--z-metalMid));border-radius:3px}.costs{padding-top:14px;border-top:1px solid var(--z-border)}.costs>div{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:.647059rem;color:rgb(var(--z-muted))}.costs b{font-weight:400;color:rgb(var(--z-textDim));font-size:.647059rem}.costs select{padding:0;border:0;background:transparent;font-size:.647059rem}.one-click{display:flex;justify-content:space-between;align-items:center;margin:18px 0;font-size:.705882rem}.one-click input{accent-color:rgb(var(--z-accent));width:28px;height:16px}.primary{width:100%;padding:12px;font-weight:500;font-size:.764706rem;color:var(--z-btn-text);background:var(--z-btn-bg);border-color:var(--z-btn-border);box-shadow:var(--z-btn-shadow)}.primary:hover{background:var(--z-btn-hover-bg);border-color:var(--z-btn-hover-border);color:var(--z-btn-hover-text)}.primary span{float:right}#form-error{color:rgb(var(--z-danger));font-size:.647059rem;margin-bottom:8px}#form-error:empty{display:none}
.positions-section{margin-top:18px;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:0 14px;border-bottom:1px solid var(--z-border)}.section-header>div{display:flex;min-width:0;overflow:auto;scrollbar-width:none}.table-tab{border:0;border-radius:0;background:transparent;box-shadow:none;color:rgb(var(--z-muted));font-size:.705882rem;padding:15px 9px;white-space:nowrap;flex-shrink:0}.table-tab.active{color:rgb(var(--z-text));box-shadow:inset 0 -1px rgb(var(--z-accent))}.table-tab span{padding:1px 5px;background:var(--z-surface3);border-radius:4px;color:rgb(var(--z-textDim));font-size:.588235rem;margin-left:5px}.section-header>.muted{font-size:.588235rem;white-space:nowrap}.section-header>.muted:empty{display:none}
/* Bottom panel, shared by both chains: icon tools right of the tabs (like the chart toolbar's ↻ ⤢) and the centred
   connect / loading / empty / error state (no table header row). */
.panel-tools{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto}.panel-tool{min-height:0;padding:4px 7px;border:0;border-radius:6px;background:transparent;box-shadow:none;color:rgb(var(--z-muted));font-size:.647059rem;line-height:1.3;white-space:nowrap}.panel-tool:hover{color:rgb(var(--z-text));background:var(--z-surface2)}.panel-tool:disabled{opacity:.45;cursor:default}
.positions-section tbody tr:hover td{background:var(--z-surface2)}.positions-section tbody tr:has(td.empty):hover td{background:transparent}
.panel-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 16px;color:rgb(var(--z-muted));font-size:.705882rem;line-height:1.5;text-align:center}.panel-empty[hidden]{display:none}.panel-empty button{font-size:.705882rem;padding:6px 14px}.table-scroll{overflow:auto;min-width:0}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{font-size:.588235rem;letter-spacing:.18em;font-weight:400;color:rgb(var(--z-muted));padding:14px 16px}td{padding:14px 16px;border-top:1px solid var(--z-border);font-size:.705882rem}td:first-child{font-size:.764706rem;font-weight:500}td small{display:block;font-size:.588235rem;font-weight:400;margin-top:5px;color:rgb(var(--z-muted))}td button{font-size:.647059rem;padding:5px 8px}.status{font-size:.588235rem;padding:4px 6px;border-radius:4px;color:rgb(var(--z-success));background:rgb(var(--z-success) / .07);border:1px solid rgb(var(--z-success) / .14)}.status.out{color:rgb(var(--z-warn));background:rgb(var(--z-warn) / .06);border-color:rgb(var(--z-warn) / .14)}footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 0;color:rgb(var(--z-muted));font-size:.588235rem;line-height:1.5}footer i{width:4px;height:4px;margin-right:5px}footer a{text-decoration:underline;text-underline-offset:3px}
dialog{width:min(470px,calc(100% - 28px));max-width:none;max-height:90dvh;overflow:auto;margin:auto;padding:24px;border:1px solid var(--z-panel-border);border-radius:10px;background:rgb(var(--z-surface));box-shadow:var(--z-panel-shadow);color:var(--z-body-text)}dialog::backdrop{background:rgb(var(--z-bg) / .80);backdrop-filter:blur(6px)}dialog h2{font-weight:500;font-size:1.294118rem;letter-spacing:-.03em;margin:0 0 12px}dialog p{font-size:.764706rem;line-height:1.65;color:rgb(var(--z-textDim))}dialog .close{float:right;padding:2px 7px;background:transparent;border:0;box-shadow:none;font-size:1.176471rem}dialog label{display:block;font-size:.705882rem;margin:15px 0}dialog input{width:100%;margin-top:6px}dialog .summary-row{display:flex;justify-content:space-between;gap:16px;font-size:.705882rem;padding:12px 0;border-bottom:1px solid var(--z-border)}dialog .summary-row b{font-weight:500;text-align:right}dialog .primary{margin-top:18px}.secondary-actions{display:flex;gap:8px;margin-top:15px}.secondary-actions button{flex:1}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 18px;background:rgb(var(--z-surface));color:rgb(var(--z-text));border:1px solid var(--z-borderHi);box-shadow:var(--z-panel-shadow);border-radius:8px;font-size:.764706rem;z-index:100;display:none}.analytics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{padding:22px}.metric small{display:block}.metric strong{display:block;margin:16px 0;font-size:1.470588rem;font-weight:500;letter-spacing:-.04em}.info-box{padding:24px;margin-top:20px;line-height:1.8;color:rgb(var(--z-textDim))}#activity{padding:18px;font-size:.705882rem;line-height:2.5;color:rgb(var(--z-textDim))}#search-results{position:absolute;top:42px;left:0;right:0;z-index:35;background:rgb(var(--z-surface));border:1px solid var(--z-borderHi);border-radius:8px;padding:10px;box-shadow:var(--z-panel-shadow)}#search-results button{width:100%;text-align:left;background:transparent;border:0;box-shadow:none}.empty{padding:36px;text-align:center;color:rgb(var(--z-muted))}
.label-row>span.label-text{display:inline-flex;align-items:center;font-size:inherit;color:inherit;margin-right:auto}
/* Copy-CA icon beside the pair in the chart title (dist/copy-ca.js). */
.ca-copy{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;margin:0 2px;border:1px solid transparent;border-radius:5px;background:transparent;box-shadow:none;color:rgb(var(--z-textDim));cursor:pointer;vertical-align:middle}
.ca-copy:hover,.ca-copy:focus-visible{border-color:var(--z-ghost-border);color:rgb(var(--z-text))}.ca-copy.done{color:rgb(var(--z-success))}.ca-copy[hidden]{display:none}
/* LP form, shared by both chains: the amount box's token avatar (same gradient letter as the pool card) and the plan
   notes under the costs rows (muted for information, yellow only for real warnings). */
.coin.coin-avatar{border:0;color:#fff;font-size:.588235rem;font-weight:650;letter-spacing:-.02em;text-shadow:0 1px 2px rgb(0 0 0/.35);box-shadow:0 1px 4px rgb(0 0 0/.3)}
/* Right column card (dist/side-panel.js), both chains: "Your position in this pool". The column is a flex stack. */
.side-column{display:flex;flex-direction:column;gap:12px;min-width:0}
.side-card{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.side-card[hidden]{display:none}
.side-head{display:flex;align-items:center;gap:8px;flex-shrink:0;min-height:43px;padding:0 14px;border-bottom:1px solid var(--z-border);font-size:.705882rem;font-weight:500;color:rgb(var(--z-text))}
.side-head>small{font-weight:400;font-size:.588235rem;color:rgb(var(--z-muted))}
.live-chip.is-polling{border-color:rgb(var(--z-accent)/.35);background:rgb(var(--z-accent)/.07)}.live-chip.is-polling::before{background:rgb(var(--z-accent))}
.live-chip.is-stale{border-color:rgb(var(--z-warn)/.35);background:rgb(var(--z-warn)/.07)}.live-chip.is-stale::before{background:rgb(var(--z-warn))}
/* Trades tab of the bottom panel (dist/trades-tab.js), both chains: a bar (pair · state · Only my trades) over a
   full-width table, newest on top; big trades tinted, new rows slide in. Phones: each row is a compact card. */
.tt-pane[hidden]{display:none}
.tt-bar{display:flex;align-items:center;gap:8px;min-height:34px;padding:6px 12px;border-bottom:1px solid var(--z-border);font-size:.588235rem;color:rgb(var(--z-muted))}
.tt-pair{color:rgb(var(--z-textDim));font-weight:500}.tt-pair:empty{display:none}
.tt-bar .live-chip[hidden]{display:none}
.tt-mine{display:inline-flex;align-items:center;gap:5px;margin-left:auto;cursor:pointer;white-space:nowrap}.tt-mine input{margin:0;accent-color:rgb(var(--z-accent))}.tt-mine[hidden]{display:none}
.tt-table{width:100%;border-collapse:collapse;font-size:.647059rem;font-variant-numeric:tabular-nums}
.tt-table[hidden]{display:none}
.tt-table th{position:sticky;top:0;z-index:1;padding:7px 12px;text-align:left;font-size:.588235rem;font-weight:500;color:rgb(var(--z-muted));white-space:nowrap;background:var(--z-panel-bg);border-bottom:1px solid var(--z-border)}
.tt-table th small{margin-left:4px;font-size:.529412rem;color:rgb(var(--z-muted)/.8)}
.tt-table td{padding:7px 12px;border-top:1px solid var(--z-border);color:rgb(var(--z-textDim));white-space:nowrap}
.tt-table tbody tr:first-child td{border-top:0}
.tt-table .tt-price,.tt-table .tt-amount,.tt-table .tt-value{text-align:right}
.tt-table td.tt-amount,.tt-table td.tt-value{color:rgb(var(--z-text))}
.tt-table .tt-time{color:rgb(var(--z-muted))}
.tt-table .tt-tx{width:28px;text-align:right}
.tt-no-maker .tt-maker{display:none}
.tt-maker a{color:rgb(var(--z-textDim));text-decoration:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.588235rem}.tt-maker a:hover{color:rgb(var(--z-text));text-decoration:underline}
.tt-you{margin-left:6px;padding:0 5px;border-radius:4px;background:rgb(var(--z-accent)/.14);color:rgb(var(--z-accent));font-size:.529412rem;font-weight:600}
.tt-side{font-size:.529412rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.trade-buy .tt-side{color:rgb(var(--z-success))}.trade-sell .tt-side{color:rgb(var(--z-danger))}
.tt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.trade-link{color:rgb(var(--z-muted));text-decoration:none}.trade-link:hover{color:rgb(var(--z-text))}
.tt-row.trade-big td{background:rgb(var(--z-accent)/.06)}.tt-row.trade-big td.tt-amount,.tt-row.trade-big td.tt-value{font-weight:600}
.tt-row.trade-new td{animation:trade-in .35s ease-out}
@keyframes trade-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.tt-note{padding:18px 16px}.tt-note[hidden]{display:none}.tt-note button{margin-left:8px;font-size:.588235rem;padding:3px 9px}
@media(max-width:550px){
  .tt-bar{padding:6px 10px}
  .positions-section .tt-table thead{display:none}
  .positions-section .tt-table,.positions-section .tt-table tbody{display:block;width:100%;min-width:0}
  .positions-section .tt-table tr.tt-row{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 10px;padding:8px 34px 8px 10px;border-top:1px solid var(--z-border)}
  .positions-section .tt-table tbody tr.tt-row:first-child{border-top:0}
  .positions-section .tt-table tr.tt-row.trade-big{background:rgb(var(--z-accent)/.06)}
  .positions-section .tt-table tr.tt-row>td{display:block;padding:0;border:0;background:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;font-size:.588235rem;line-height:1.5}
  .positions-section .tt-table tr.tt-row>td[data-label]::before{content:attr(data-label);display:block;color:rgb(var(--z-muted));font-size:.5rem;letter-spacing:.08em;text-transform:uppercase}
  .positions-section .tt-table tr.tt-row>td.tt-type{grid-row:1;grid-column:1}
  .positions-section .tt-table tr.tt-row>td.tt-time{grid-row:1;grid-column:2/-1;text-align:right}
  .positions-section .tt-table tr.tt-row>td.tt-time::before{display:none}
  .positions-section .tt-table tr.tt-row>td.tt-tx{position:absolute;top:8px;right:10px;width:auto}
  .positions-section .tt-no-maker .tt-table tr.tt-row>td.tt-maker{display:none}
}
/* Liquidity-vs-price curve (dist/pos-curve.js + side-panel.js): own blocks accent, out-of-range warn, copies hatched. */
.side-pos-chart{position:relative;padding:4px 10px 0;min-width:0}
.side-pos-chart[hidden]{display:none}
.pos-curve{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}
.pos-axis{stroke:var(--z-border);stroke-width:1}
.pos-block{fill:rgb(var(--z-accent)/.32);stroke:rgb(var(--z-accent)/.85);stroke-width:1}
.pos-block-out{fill:rgb(var(--z-warn)/.2);stroke:rgb(var(--z-warn)/.75)}
.pos-block-copy{fill:rgb(var(--z-accent)/.12)}.pos-block-copy.pos-block-out{fill:rgb(var(--z-warn)/.08)}
.pos-hatch-bar{fill:rgb(var(--z-text)/.3)}
.pos-price-line{stroke:rgb(var(--z-text)/.85);stroke-width:1;stroke-dasharray:3 2}
.pos-hover-line{stroke:rgb(var(--z-muted));stroke-width:1}
.pos-tick{font-size:9px;fill:rgb(var(--z-muted));font-variant-numeric:tabular-nums}.pos-tick-price{fill:rgb(var(--z-text))}
.side-pos-tip{position:absolute;top:6px;left:10px;z-index:2;max-width:calc(100% - 20px);padding:3px 7px;border:1px solid var(--z-borderHi);border-radius:5px;background:rgb(var(--z-surface)/.95);font-size:.588235rem;color:rgb(var(--z-text));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.side-pos-tip.is-right{left:auto;right:10px}
.side-pos-tip[hidden]{display:none}
.side-pos-line{padding:2px 14px 4px;font-size:.647059rem;color:rgb(var(--z-textDim));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.side-pos-line b{font-weight:500;color:rgb(var(--z-text))}.side-pos-line .pnl-up{color:rgb(var(--z-success))}.side-pos-line .pnl-down{color:rgb(var(--z-danger))}
.side-pos-foot{display:flex;align-items:center;gap:8px;padding:0 14px 8px;font-size:.588235rem;color:rgb(var(--z-muted))}
.side-pos-foot .pos-ok{color:rgb(var(--z-success))}.side-pos-foot .pos-warn{color:rgb(var(--z-warn))}
.side-pos-foot button{margin-left:auto;padding:3px 8px;font-size:.588235rem;background:transparent;box-shadow:none;border-color:var(--z-ghost-border);color:rgb(var(--z-textDim));white-space:nowrap}
.side-pos-foot button:hover{color:rgb(var(--z-text))}
.positions-section tr.pos-flash td{animation:pos-flash 1.6s ease-out}
@keyframes pos-flash{0%,40%{background:rgb(var(--z-accent)/.18)}100%{background:transparent}}
@media(prefers-reduced-motion:reduce){.tt-row.trade-new td,.positions-section tr.pos-flash td{animation:none}}
@media(max-width:550px){.side-head{padding:0 10px}.side-pos-grid{padding:8px 10px 6px}.side-pos-foot{padding:0 10px 8px}}
.plan-notes{margin:6px 0 0;padding:0;list-style:none;font-size:.647059rem;line-height:1.5;color:rgb(var(--z-warn))}.plan-notes:empty{display:none}.plan-notes li+li{margin-top:3px}.plan-notes li.info{color:rgb(var(--z-muted))}

/* ---------- Positions table, both chains (dist/app.js, dist/sol-terminal.js). Shared class names:
   pos-header pos-total pos-close-all pos-range pos-range-bar pos-liq pos-fees pnl-cell copy-chip pos-actions pos-icon-btn
   (plus helpers: pos-row pos-group pos-token pos-coin pos-pill pos-warn pos-explorer pos-range-meta pnl-usd pnl-pct). */
.pos-header{caption-side:top;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--z-border);text-align:left}
.pos-header[hidden],.positions-section[data-pos-view=history] .pos-header,.positions-section[data-pos-view=trades] .pos-header{display:none}
.pos-total{font-size:.647059rem;color:rgb(var(--z-muted))}.pos-total b{color:rgb(var(--z-text));font-weight:600}.pos-total small{margin-left:6px;font-size:.588235rem}
.pos-close-all{font-size:.588235rem;padding:4px 10px}
.pos-confirm{display:flex;align-items:center;gap:8px;font-size:.588235rem;color:rgb(var(--z-text))}.pos-confirm button{font-size:.588235rem;padding:4px 10px}
tr.pos-row td{vertical-align:top;transition:background .12s}
tr.pos-row.pos-open{cursor:pointer}
tr.pos-row:hover td,tr.pos-row:focus-within td{background:rgb(var(--z-accent)/.04)}
tr.pos-row:hover td:first-child,tr.pos-row:focus-within td:first-child{box-shadow:inset 2px 0 rgb(var(--z-accent)/.7)}
tr.pos-group td{padding:8px 12px;font-size:.588235rem;color:rgb(var(--z-muted));border-top:1px solid var(--z-border)}
tr.pos-group b{color:rgb(var(--z-text));font-weight:600}tr.pos-group .pos-switch{margin-left:8px;font-size:.588235rem;padding:3px 8px}
.pos-range-line{display:flex;align-items:center;gap:6px;white-space:nowrap}
.pos-range-text{font-variant-numeric:tabular-nums}
.pos-warn{color:rgb(var(--z-warn));cursor:help}
.pos-explorer{color:rgb(var(--z-muted));text-decoration:none;font-size:.588235rem}.pos-explorer:hover{color:rgb(var(--z-text))}
.pos-range-meta{display:block;margin-top:2px;font-size:.588235rem;color:rgb(var(--z-muted))}
.pos-range-bar{display:block;width:120px;max-width:100%;height:8px;margin-top:5px}
.pos-range-track{fill:rgb(var(--z-muted)/.25)}.pos-range-band{fill:rgb(var(--z-accent)/.55)}.pos-range-mark{fill:rgb(var(--z-success))}
.pos-range-bar.out .pos-range-band{fill:rgb(var(--z-muted)/.5)}.pos-range-bar.out .pos-range-mark{fill:rgb(var(--z-warn))}
.copy-chip{display:inline-block;padding:0 6px;border:1px solid rgb(var(--z-accent)/.55);border-radius:999px;color:rgb(var(--z-accent));font-size:.529412rem;line-height:1.5;letter-spacing:.02em;vertical-align:1px}
.copy-chip-of{color:rgb(var(--z-muted));font-size:.588235rem}
a.copy-chip-of{text-decoration:underline dotted;text-underline-offset:2px}a.copy-chip-of:hover{color:rgb(var(--z-text))}
.pos-liq strong,.pos-fees strong,.pnl-cell .pnl-usd{display:block;font-weight:600;font-variant-numeric:tabular-nums}
.pos-token{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:.588235rem;white-space:nowrap}
.pos-token small{color:rgb(var(--z-muted))}
.pos-coin{width:14px;height:14px;min-width:14px;border-radius:50%;display:inline-grid;place-items:center;font-size:.47rem;font-weight:700;color:#fff}
.pos-fees-top{display:flex;align-items:center;gap:6px}
.pos-pill{padding:0 5px;border-radius:999px;background:rgb(var(--z-success)/.14);color:rgb(var(--z-success));font-size:.529412rem;line-height:1.6}
.pnl-cell .pnl-usd{display:inline-block;text-decoration:underline dashed;text-decoration-thickness:1px;text-underline-offset:3px;cursor:help}
.pnl-cell .pnl-pct{display:block;margin-top:2px;font-size:.588235rem}
.pnl-cell.pnl-pos .pnl-usd,.pnl-cell.pnl-pos .pnl-pct{color:rgb(var(--z-success))}
.pnl-cell.pnl-neg .pnl-usd,.pnl-cell.pnl-neg .pnl-pct{color:rgb(var(--z-danger))}
.pnl-cell small{color:rgb(var(--z-muted))}
.pos-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;align-items:center}
/* Row actions: glyph + short label, coloured by role (claim green, rebalance accent, close red). */
.pos-icon-btn{display:inline-flex;align-items:center;gap:5px;height:28px;min-height:0;padding:0 9px;border-radius:8px;font-size:.617647rem;font-weight:500;white-space:nowrap}
.pos-icon-btn[data-action=claim]{color:rgb(var(--z-success));border-color:rgb(var(--z-success)/.32);background:rgb(var(--z-success)/.07)}
.pos-icon-btn[data-action=rebalance]{color:rgb(var(--z-accent));border-color:rgb(var(--z-accent)/.32);background:rgb(var(--z-accent)/.07)}
.pos-icon-btn[data-action=close]{color:rgb(var(--z-danger));border-color:rgb(var(--z-danger)/.32);background:rgb(var(--z-danger)/.06)}
.pos-icon-btn svg{width:13px;height:13px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pos-icon-btn.busy{opacity:.7;cursor:progress}
.pos-icon-btn:disabled{opacity:.45;cursor:not-allowed}
/* Phones: each row is a card: range and status on top, liquidity / fees / PnL as three stats, then the action icons.
   Specific enough to win over mobile-tables.css (nowrap, 44 px buttons, hidden columns). */
@media(max-width:550px){
  .positions-section table.rh-pos-table,.positions-section .table-scroll>table.rh-pos-table{min-width:0;width:100%;table-layout:auto;white-space:normal}
  .positions-section table.rh-pos-table>thead{display:none}
  .positions-section table.rh-pos-table>tbody>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)}
  .positions-section table.rh-pos-table>tbody>tr.pos-row>td{display:block!important;padding:0!important;border:0;white-space:normal;font-size:.588235rem}
  .positions-section table.rh-pos-table>tbody>tr.pos-row>td.pos-range{grid-column:1/-1}
  .positions-section table.rh-pos-table>tbody>tr.pos-row>td:last-child{grid-column:1/-1}
  .positions-section table.rh-pos-table>tbody>tr.pos-row>td.pos-liq::before{content:'Liquidity'}
  .positions-section table.rh-pos-table>tbody>tr.pos-row>td.pos-fees::before{content:'Fees'}
  .positions-section table.rh-pos-table>tbody>tr.pos-row>td.pnl-cell::before{content:'PnL'}
  .positions-section table.rh-pos-table>tbody>tr.pos-row>td.pos-liq::before,.positions-section table.rh-pos-table>tbody>tr.pos-row>td.pos-fees::before,.positions-section table.rh-pos-table>tbody>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}
  .positions-section table.rh-pos-table>tbody>tr.pos-row .pos-token{display:none}
  .positions-section table.rh-pos-table>tbody>tr.pos-row .pos-range-line{white-space:normal;flex-wrap:wrap}
  .positions-section table.rh-pos-table>tbody>tr.pos-row .pos-range-bar{width:100%}
  .positions-section table.rh-pos-table>tbody>tr.pos-row small.rh-mobile-status{display:block!important;color:rgb(var(--z-success))}
  .positions-section table.rh-pos-table>tbody>tr.pos-row small.rh-mobile-status.out{color:rgb(var(--z-warn))}
  .positions-section table.rh-pos-table>tbody>tr.pos-row .pos-actions{justify-content:flex-start}
  .positions-section table.rh-pos-table>tbody>tr.pos-row .pos-actions button{min-height:32px;font-size:.588235rem}
  .positions-section table.rh-pos-table>tbody>tr.pos-row .pos-icon-btn{height:34px}
  .positions-section table.rh-pos-table>tbody>tr.pos-group>td{display:block}
  .positions-section table.rh-pos-table>tbody>tr.pos-row .rh-pos-id,.positions-section table.rh-pos-table>tbody>tr.pos-group .pos-switch{min-height:0;line-height:inherit}
  .pos-header{flex-wrap:wrap}
}

/* ---------- History tab, both chains (dist/closed-history.js): closed positions per pool, Meteora's closed view.
   Totals strip, then Pool · PnL · Total Deposit · Total Withdraw · Total Fees Earned; a pool row opens its positions. */
.ch-root{min-width:0}
.ch-bar{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid var(--z-border)}
.ch-totals{display:flex;flex-wrap:wrap;gap:6px 24px}
.ch-stat{display:flex;align-items:baseline;gap:6px;font-size:.705882rem;white-space:nowrap}
.ch-stat small{font-size:.588235rem;color:rgb(var(--z-muted))}
.ch-stat b{font-weight:600;color:rgb(var(--z-text));font-variant-numeric:tabular-nums}
.ch-stat-sub{font-size:.617647rem;font-variant-numeric:tabular-nums;color:rgb(var(--z-muted))}
.ch-stat b.ch-up,.ch-stat-sub.ch-up{color:rgb(var(--z-success))}.ch-stat b.ch-down,.ch-stat-sub.ch-down{color:rgb(var(--z-danger))}
.ch-tools{display:inline-flex;align-items:center;gap:6px;font-size:.588235rem;color:rgb(var(--z-muted))}
.ch-all{display:inline-flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}.ch-all input{margin:0;accent-color:rgb(var(--z-accent))}
.ch-scroll{overflow-x:auto}
.ch-table{width:100%;border-collapse:collapse;font-size:.647059rem}
.ch-table th{padding:8px 12px;text-align:left;font-size:.588235rem;font-weight:500;color:rgb(var(--z-muted));white-space:nowrap;border-bottom:1px solid var(--z-border)}
.ch-table td{padding:10px 12px;vertical-align:top;border-top:1px solid var(--z-border)}
.ch-table tbody tr:first-child td{border-top:0}
tr.ch-pool{cursor:pointer}tr.ch-pool td{transition:background .12s}
tr.ch-pool:hover td,tr.ch-pool:focus-visible td,tr.ch-pool.open td{background:rgb(var(--z-accent)/.045)}
tr.ch-pool:focus-visible{outline:none}tr.ch-pool:focus-visible td:first-child,tr.ch-pool.open td:first-child{box-shadow:inset 2px 0 rgb(var(--z-accent)/.7)}
.ch-poolwrap{display:flex;align-items:flex-start;gap:9px;min-width:0}
.ch-coins{display:inline-flex;flex-shrink:0}
.ch-coins .pos-coin+.pos-coin{margin-left:-5px;box-shadow:0 0 0 1.5px rgb(var(--z-surface))}
.ch-poolwrap .pos-coin{width:20px;height:20px;min-width:20px;font-size:.529412rem}
.ch-pool-info{display:flex;flex-direction:column;gap:1px;min-width:0}
.ch-pool-info b{font-weight:600;color:rgb(var(--z-text));white-space:nowrap}
.ch-pool-info small{font-size:.588235rem;color:rgb(var(--z-muted));white-space:nowrap}
.ch-pnl-usd{display:block;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ch-pnl-pct{display:block;margin-top:2px;font-size:.588235rem;color:rgb(var(--z-muted));font-variant-numeric:tabular-nums}
.ch-up .ch-pnl-usd,.ch-up .ch-pnl-pct{color:rgb(var(--z-success))}.ch-down .ch-pnl-usd,.ch-down .ch-pnl-pct{color:rgb(var(--z-danger))}
.ch-est{text-decoration:underline dashed;text-decoration-thickness:1px;text-underline-offset:3px;cursor:help}
.ch-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 3px;border:1px solid var(--z-border);border-radius:999px;background:rgb(var(--z-text)/.03);font-variant-numeric:tabular-nums;white-space:nowrap;color:rgb(var(--z-text))}
.ch-flow strong{display:block;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ch-chev-cell{width:34px;text-align:right}
.ch-chev{width:26px;height:26px;min-height:0;padding:0;display:inline-grid;place-items:center;border:0;border-radius:6px;background:transparent;box-shadow:none;color:rgb(var(--z-muted));font-size:.882353rem;line-height:1;transition:transform .15s}
.ch-chev:hover{color:rgb(var(--z-text));background:var(--z-surface2)}
tr.ch-pool.open .ch-chev{transform:rotate(180deg)}
tr.ch-subhead td{padding:9px 12px 3px 41px;border-top:0;font-size:.529412rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--z-muted))}
tr.ch-subhead td,tr.ch-posrow td,tr.ch-subnote td,tr.ch-pager td{background:rgb(var(--z-accent)/.02)}
tr.ch-posrow td{border-top:1px dashed var(--z-border)}tr.ch-posrow td:first-child{padding-left:41px}
tr.ch-subhead+tr.ch-posrow td{border-top:0}
.ch-range-line{display:flex;align-items:center;gap:6px;white-space:nowrap}
tr.ch-subnote td,tr.ch-pager td{border-top:0;padding:8px 12px 10px 41px;font-size:.588235rem;color:rgb(var(--z-muted))}
tr.ch-pager td{text-align:right}tr.ch-pager span{margin-right:8px;font-variant-numeric:tabular-nums}tr.ch-pager button:disabled{opacity:.4}
tr.ch-subnote button{font-size:.588235rem;padding:3px 9px}
.ch-note{margin:10px 12px 12px;color:rgb(var(--z-muted));font-size:.588235rem;text-align:center}
.ch-error{color:rgb(var(--z-warn))}.ch-error button{margin-left:6px;font-size:.588235rem;padding:3px 9px}
@media(prefers-reduced-motion:reduce){.ch-chev,tr.ch-pool td{transition:none}}
/* Phones: a pool (and each of its positions) is a card: name across, then PnL · Deposit / Withdraw · Fees. Specific
   enough to win over mobile-tables.css (.table-scroll td: nowrap, padding, 44 px buttons). */
@media(max-width:550px){
  .ch-bar{padding:8px 10px}.ch-totals{gap:4px 16px}
  .positions-section .ch-table thead{display:none}
  .positions-section .ch-table,.positions-section .ch-table tbody{display:block;width:100%}
  .positions-section .ch-table tr.ch-pool,.positions-section .ch-table tr.ch-posrow{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:10px;border-top:1px solid var(--z-border)}
  .positions-section .ch-table tr.ch-posrow{padding-left:16px;border-top-style:dashed;background:rgb(var(--z-accent)/.02)}
  .positions-section .ch-table tr.ch-pool>td,.positions-section .ch-table tr.ch-posrow>td{display:block;padding:0;border:0;background:none;box-shadow:none;white-space:normal;font-size:.588235rem}
  .positions-section .ch-table td.ch-poolcell,.positions-section .ch-table td.ch-range{grid-column:1/-1;padding-right:34px}
  .positions-section .ch-table td.ch-chev-cell{position:absolute;top:8px;right:6px;width:auto}
  .positions-section .ch-table tr.ch-posrow>td:last-child:empty{display:none}
  .positions-section .ch-table td[data-label]::before{content:attr(data-label);display:block;margin-bottom:2px;color:rgb(var(--z-muted));font-size:.529412rem;letter-spacing:.08em;text-transform:uppercase}
  .positions-section .ch-table tr.ch-subhead,.positions-section .ch-table tr.ch-subnote,.positions-section .ch-table tr.ch-pager{display:block}
  .positions-section .ch-table tr.ch-subhead>td,.positions-section .ch-table tr.ch-subnote>td,.positions-section .ch-table tr.ch-pager>td{display:block;padding:8px 10px 6px 16px;white-space:normal}
  .positions-section .ch-table .ch-pill{padding-right:7px}
  .positions-section .ch-table button.ch-chev,.positions-section .ch-table tr.ch-pager button{min-height:0;padding:0 8px}
  .positions-section .ch-table button.ch-chev{padding:0}
}

/* Primary action, both chains (from Donny's #76): Preview, Confirm & send, the copy runner's Add wallet / Move, vault
   Create / Unlock / Import, Download PNG. Colours only: sizes, margins and the disabled opacity stay with each form. */
button.primary,.signing-actions button.signing-confirm{color:var(--z-cta-text);background:var(--z-cta-bg);border-color:var(--z-cta-border);box-shadow:var(--z-cta-shadow);font-weight:600}
button.primary:hover:not(:disabled),.signing-actions button.signing-confirm:hover:not(:disabled){color:var(--z-cta-text);background:var(--z-cta-hover-bg);border-color:var(--z-cta-border);box-shadow:var(--z-cta-hover-shadow)}
button.primary:active:not(:disabled),.signing-actions button.signing-confirm:active:not(:disabled){background:var(--z-cta-active-bg)}
button.primary:disabled,.signing-actions button.signing-confirm:disabled{box-shadow:none}
/* LIVE chip (from #76): the dot glows and breathes; reduced motion keeps it still. */
.live-chip:not(.is-polling,.is-stale)::before{box-shadow:var(--z-live-glow);animation:z-live 2.4s ease-in-out infinite}
@keyframes z-live{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.live-chip::before{animation:none}}
