:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --chrome:#eef1f4; --chrome-2:#e3e7ec; --grid:#ffffff; --line:#d9dee5; --line-strong:#c2c9d3;
  --ink:#1b2230; --ink-soft:#5c6675; --accent:#2b50d8; --accent-ink:#ffffff;
  --sel:rgba(43,80,216,.12); --head-sel:#d3dcf8; --err:#c0341d;
  --ui:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --chrome:#171b22; --chrome-2:#202632; --grid:#10141a; --line:#272e39; --line-strong:#39424f;
    --ink:#e4e8ee; --ink-soft:#97a1b0; --accent:#7d9bff; --accent-ink:#0c1020;
    --sel:rgba(125,155,255,.18); --head-sel:#2a3657; --err:#ff8a73;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --chrome:#171b22; --chrome-2:#202632; --grid:#10141a; --line:#272e39; --line-strong:#39424f;
  --ink:#e4e8ee; --ink-soft:#97a1b0; --accent:#7d9bff; --accent-ink:#0c1020;
  --sel:rgba(125,155,255,.18); --head-sel:#2a3657; --err:#ff8a73;
}
*,*::before,*::after{box-sizing:inherit}
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}
body{height:100%;margin:0;background:var(--chrome);color:var(--ink);font:14px/1.3 var(--ui);
  display:flex;flex-direction:column;overflow:hidden;-webkit-text-size-adjust:100%}
button,select,input{font:inherit;color:inherit}

.bar{display:flex;align-items:center;gap:4px;padding:6px 8px;overflow-x:auto;scrollbar-width:none;
  border-bottom:1px solid var(--line)}
.bar::-webkit-scrollbar{display:none}
.name{font-weight:700;letter-spacing:-.01em;margin-right:6px;white-space:nowrap}
.sep{flex:none;width:1px;height:20px;background:var(--line-strong);margin:0 4px}
.tb{flex:none;min-width:34px;height:34px;padding:0 8px;border:1px solid transparent;border-radius:7px;
  background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
.tb:hover{background:var(--chrome-2)}
.tb[aria-pressed="true"]{background:var(--head-sel);border-color:var(--accent)}
.tb:focus-visible,.tab:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.tb svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tb.color{position:relative;flex-direction:column;gap:2px;padding:0 9px}
.tb.color span{font-weight:700;line-height:1}
.tb.color i{display:block;width:18px;height:4px;border-radius:2px;background:var(--sw)}
.tb.color input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
select.tb{padding:0 6px;border-color:var(--line-strong);background:var(--grid);font-size:16px}

.fxrow{display:flex;align-items:stretch;border-bottom:1px solid var(--line-strong);background:var(--grid)}
#nameBox{flex:none;width:76px;display:flex;align-items:center;justify-content:center;font:13px var(--mono);
  color:var(--ink-soft);border-right:1px solid var(--line)}
.fxrow label{flex:none;display:flex;align-items:center;padding:0 8px;font:italic 15px Georgia,serif;color:var(--ink-soft)}
#fx{flex:1;min-width:0;border:0;outline:0;background:none;padding:9px 8px 9px 0;font:16px var(--mono)}

#scroller{flex:1;min-height:0;overflow:auto;position:relative;background:var(--grid);outline:0;
  overscroll-behavior:contain}
table{border-collapse:separate;border-spacing:0;table-layout:fixed;user-select:none;-webkit-user-select:none}
th,td{height:26px;padding:0 6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;white-space:nowrap;font-size:13px}
th{background:var(--chrome);color:var(--ink-soft);font-weight:500;text-align:center;position:sticky;
  border-color:var(--line-strong)}
thead th{top:0;z-index:3}
th.rh{left:0;z-index:2;padding:0}
th.corner{left:0;z-index:4}
th.hsel{background:var(--head-sel);color:var(--ink)}
td{background-color:var(--grid);cursor:cell;font-variant-numeric:tabular-nums}
td.num{text-align:right}
td.err{color:var(--err);text-align:center}
td.b{font-weight:700}
td.i{font-style:italic}
td.rng{background-image:linear-gradient(var(--sel),var(--sel))}
td.act{outline:2px solid var(--accent);outline-offset:-2px;background-image:none}
.rz{position:absolute;top:0;right:-5px;width:11px;height:100%;cursor:col-resize;touch-action:none;z-index:1}
#ed{position:absolute;z-index:2;border:2px solid var(--accent);outline:0;background:var(--grid);color:var(--ink);
  padding:0 5px;font:16px var(--ui);min-width:120px;box-shadow:0 2px 10px rgba(0,0,0,.18)}
#ed[hidden]{display:none}

.foot{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line-strong);padding:0 8px;min-height:38px}
#tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;align-self:stretch;align-items:center}
#tabs::-webkit-scrollbar{display:none}
.tab{flex:none;border:0;background:none;padding:6px 10px;border-radius:6px;cursor:pointer;color:var(--ink-soft);
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tab.on{background:var(--grid);color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}
.tab .x{font-weight:400;color:var(--ink-soft);padding:0 2px}
.tab input{width:90px;border:1px solid var(--accent);border-radius:4px;background:var(--grid);padding:2px 4px;font-size:16px;outline:0}
#stats{flex:none;max-width:55%;font-size:12px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-variant-numeric:tabular-nums}
#stats b{color:var(--ink);font-weight:600}
label.tb input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
label.tb{position:relative}
input.tb{border-color:var(--line-strong);background:var(--grid);font-size:16px;cursor:text}
#flt{width:140px}
#cur{width:58px;text-align:center}
td.neg{color:var(--err)}
td.u{text-decoration:underline}
td.s{text-decoration:line-through}
td.u.s{text-decoration:underline line-through}
tr.hid{display:none}
#nameBox{display:block;width:96px;border:0;border-right:1px solid var(--line);background:none;text-align:center;outline:0;font-size:16px;color:var(--ink);padding:0 4px}
.findbar{display:flex;gap:4px;padding:6px 8px;overflow-x:auto;border-bottom:1px solid var(--line)}
.findbar[hidden]{display:none}
.findbar input{flex:1;min-width:110px}
tr.flt{display:none}
table.frz tbody tr:first-child td{position:sticky;top:27px;z-index:1;border-bottom-color:var(--line-strong)}
table.frz tbody tr:first-child th{top:27px;z-index:3}
@media print{
  :root:root:root{padding:0;color-scheme:light;--grid:#fff;--chrome:#fff;--line:#c4c4c4;--line-strong:#c4c4c4;--ink:#000;--ink-soft:#333}
  html,body{height:auto;overflow:visible;background:#fff}
  body{display:block}
  .bar,.fxrow,.foot,#ed,thead,th.rh,.np{display:none!important}
  #scroller{overflow:visible}
  table{width:auto!important;border-top:1px solid var(--line);border-left:1px solid var(--line)}
  col:first-child,col.np{width:0!important}
  td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  td.rng{background-image:none}
  td.act{outline:0}
}
/* SolanaDEX app shell */
:root[data-theme="dark"]{--chrome:#10182b;--chrome-2:#1a2540;--grid:#0b1020;--line:#222d43;--line-strong:#34405c;--ink:#e8eef8;--ink-soft:#a0aec5;--accent:#45e2bc;--accent-ink:#061611;--sel:rgba(69,226,188,.12);--head-sel:#193b3c}
.sdex-header{display:flex;align-items:center;gap:12px;min-height:54px;flex:none;padding:8px 12px;background:var(--grid);border-bottom:1px solid var(--line-strong)}
.sdex-brand{font-weight:800;font-size:17px;letter-spacing:-.6px;color:var(--ink);text-decoration:none;white-space:nowrap}
.sdex-brand span{color:var(--accent)}
.sdex-divider{width:1px;height:22px;background:var(--line-strong);flex:none}
.sdex-app{font-size:14px;font-weight:600}
.sdex-status{margin-left:auto;font-size:12px;color:var(--ink-soft)}
.sdex-status.error{color:var(--err)}
.sdex-theme{border-color:var(--line-strong);min-width:54px}
.sdex-brand:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:520px){.sdex-header{gap:9px;flex-wrap:wrap;padding:7px 10px}.sdex-brand{font-size:16px}.sdex-app{font-size:13px}.sdex-status{order:4;width:100%;margin:0;font-size:11px}.sdex-theme{margin-left:auto}.bar{padding-left:6px;padding-right:6px}}
@media print{.sdex-header{display:none!important}}
