/* Rev 24: Portfolio, Manifesto, Technicals (soft palette tokens only) */
.wb{display:flex;flex-direction:column;gap:10px}
.wb-row{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end}
.wb-prov{display:flex;flex-wrap:wrap;gap:8px}
.wb-btn{font:inherit;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--r-text,#1C1C1C);background:var(--r-text,#1C1C1C);color:var(--r-on-ink,#F4F4F1);cursor:pointer}
.wb-btn:disabled{opacity:.6;cursor:wait}
.wb-btn:focus-visible,.wb-x:focus-visible,.wb-paste input:focus-visible{outline:2px solid var(--r-text,#1C1C1C);outline-offset:2px}
.wb-none,.wb-note,.wb-empty{font-size:13px;color:var(--r-text-2p,#62625D)}
.wb-paste label{display:block;font-size:13px;margin-bottom:4px}
.wb-in{display:flex;gap:6px}
.wb-paste input{font-size:13px;width:min(420px,70vw);padding:8px 10px;border-radius:8px;border:1px solid var(--r-line-2,#8A8A85);background:var(--r-bg,#F4F4F1);color:var(--r-text,#1C1C1C)}
.wb-err{margin:4px 0 0;font-size:13px;color:var(--r-text,#1C1C1C);font-weight:600}
.wb-err:empty{display:none}
.wb-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.wb-list li{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 10px;border-radius:999px;border:1px solid var(--r-grid,#DCDCD7);background:var(--r-bg,#F4F4F1);font-size:13px}
.wb-list li.wb-empty{border:0;background:none;padding:0}
.wb-list small{color:var(--r-text-2,#6B6B66)}
.wb-x{font:inherit;font-size:12px;border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer}
.wb-note{margin:0}
.pf-out,.mf-out{margin-top:16px}
.pf-empty{font-size:14px;color:var(--r-text-2,#6B6B66)}
.pf-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.pf-table caption{text-align:left;font-size:13px;color:var(--r-text-2,#6B6B66);padding-bottom:6px;caption-side:top}
.pf-table th,.pf-table td{padding:8px 6px;border-top:1px solid var(--r-grid,#DCDCD7);text-align:left;vertical-align:top}
.pf-table thead th{font-weight:600;font-size:12px}
.pf-table th small,.pf-table td small{display:block;font-size:11px;color:var(--r-text-2,#6B6B66);font-family:Manrope,system-ui,sans-serif}
.board{overflow-x:auto}
.mf-go{display:flex;align-items:center;gap:12px;margin-top:14px}
.mf-status{font-size:13px;color:var(--r-text-2,#6B6B66)}
.mf-man p{font-size:16px;line-height:1.55;margin:0 0 8px}
.mf-ref a{font-family:var(--g-mono,ui-monospace,monospace);font-size:11px;color:var(--r-text-2,#6B6B66);margin-left:2px}
.mf-stats{margin-top:16px}
.mf-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:10px 0}
.mf-dl div{padding:10px;border:1px solid var(--r-grid,#DCDCD7);border-radius:10px}
.mf-dl div:target{box-shadow:inset 0 0 0 2px var(--r-text,#1C1C1C)}
.mf-dl dt{font-size:12px;color:var(--r-text-2,#6B6B66)}.mf-dl dd{margin:4px 0 0;font-size:14px;font-weight:600}
.mf-dl dd small{display:block;font-weight:400;font-size:11px;color:var(--r-text-2,#6B6B66)}
.mf-hist{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:12px}
.mf-hist figure{margin:0}.mf-hist figcaption{font-size:12px;color:var(--r-text-2,#6B6B66);margin-bottom:6px}
.mf-bars{display:flex;align-items:flex-end;gap:2px;height:80px;border-bottom:1px solid var(--r-line-2,#8A8A85)}
.mf-bars i{flex:1;background:var(--r-line-1,#2A2A2A);min-height:1px}
.mf-ax{display:flex;justify-content:space-between;font-size:11px;color:var(--r-text-2,#6B6B66)}
.tk-meta{font-size:13px;color:var(--r-text-2,#6B6B66);margin:6px 0 10px}
.tk-meta strong{color:var(--r-text,#1C1C1C)}
.tk-charts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.tk-charts figure{margin:0;padding:10px;border:1px solid var(--r-grid,#DCDCD7);border-radius:10px}
.tk-charts figcaption{font-size:12px;color:var(--r-text-2,#6B6B66);margin-bottom:4px}
.tk-svg{display:block;width:100%;height:auto}
.tk-l{fill:none;stroke:var(--r-line-1,#2A2A2A);stroke-width:1.6;vector-effect:non-scaling-stroke}
.tk-l.d2{stroke:var(--r-line-2,#8A8A85);stroke-dasharray:4 3}
.tk-l.d3{stroke:var(--r-line-2,#8A8A85);stroke-dasharray:1 3}
.tk-guide{stroke:var(--r-grid,#DCDCD7);stroke-width:1;vector-effect:non-scaling-stroke}
.tk-band{fill:var(--r-grid,#DCDCD7);opacity:.7}
.tk-hbar{fill:var(--r-line-2,#8A8A85)}
.tk-hbar.neg{fill:none;stroke:var(--r-line-2,#8A8A85);stroke-width:1;vector-effect:non-scaling-stroke}
@media(max-width:700px){.tk-charts,.mf-hist{grid-template-columns:1fr}.pf-table{font-size:12px}}
html[data-theme=dark] .wb-btn{background:#E8E8E4;color:#141414;border-color:#E8E8E4}
html[data-theme=dark] .wb-list small,html[data-theme=dark] .pf-table small,html[data-theme=dark] .mf-dl dt{color:#9A9A95}
/* Rev 25 */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pf-cta{padding:28px 20px;border:1px dashed var(--r-line-2,#8A8A85);border-radius:14px;text-align:center;margin-bottom:12px}
.pf-cta p{margin:0 0 12px;font-size:14px;color:var(--r-text-2p,#62625D)}
.pf-cta-btn{font-size:15px;padding:12px 20px}
.mf-start{font-size:16px;padding:12px 28px}
.mf-cap{margin:0;font-size:14px;font-weight:600}
.mf-steps{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
.mf-steps li{display:flex;gap:8px;align-items:baseline}
.mf-steps li[data-state=wait],.mf-steps li[data-state=skip]{color:var(--r-text-2,#6B6B66)}
.mf-steps li[data-state=run] .mf-sl{font-weight:600}
.mf-mark{font-family:var(--g-mono,ui-monospace,monospace);width:1em}
.mf-sd{color:var(--r-text-2,#6B6B66)}
.tk-ctl{display:flex;flex-wrap:wrap;gap:8px 16px}
.tk-dir{font-family:var(--g-mono,ui-monospace,monospace);display:inline-block;width:1.1em}
.tk-na{color:var(--r-text-2,#6B6B66)}
.tk-thin{padding:12px;border-left:3px solid var(--r-text,#1C1C1C);background:var(--r-panel,#EAEAE6);border-radius:4px;font-size:14px}
.mk-seg button:disabled{opacity:.45;cursor:not-allowed}
.mf-start{white-space:nowrap}
.mf-steps li{display:grid;grid-template-columns:1.2em 1fr;column-gap:6px;align-items:baseline}
.mf-steps li .mf-sd{grid-column:2;display:block}
/* Rev 25b: wallet dialog, Technicals card, pool chart */
.pf-bar-empty{padding:0!important;border:0!important;background:none!important;min-height:0}
.pf-bar-empty>.wb-row,.pf-bar-empty>.wb-list,.pf-bar-empty>.wb-note{display:none}
.wb-dlg{border:1px solid var(--r-grid,#DCDCD7);border-radius:16px;padding:0;background:var(--r-bg,#F4F4F1);color:var(--r-text,#1C1C1C);width:min(440px,92vw)}
.wb-dlg::backdrop{background:rgba(20,20,20,.45)}
.wb-dlg-in{padding:20px;display:flex;flex-direction:column;gap:12px}
.wb-dlg-top{display:flex;justify-content:space-between;align-items:center}.wb-dlg h2{font-size:20px;margin:0}
.wb-prov{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.wb-pbtn{width:100%;display:flex;align-items:center;gap:10px;font:inherit;font-size:14px;font-weight:600;padding:10px 12px;border-radius:10px;border:1px solid var(--r-grid,#DCDCD7);background:var(--r-panel,#EAEAE6);color:var(--r-text,#1C1C1C);cursor:pointer;text-align:left}
.wb-pbtn:hover:not(:disabled){border-color:var(--r-text,#1C1C1C)}.wb-pbtn:disabled{opacity:.55;cursor:not-allowed}
.wb-pbtn small{font-weight:400;color:var(--r-text-2,#6B6B66)}
.wb-pbtn:focus-visible{outline:2px solid var(--r-text,#1C1C1C);outline-offset:2px}
.wb-noicon{width:20px;height:20px;border-radius:5px;border:1px solid var(--r-line-2,#8A8A85);flex:none}
.wb-dlg .wb-paste input{width:100%}.wb-dlg .wb-in{width:100%}
.tk-card{margin-top:12px;padding:14px 16px;border:1px solid var(--r-grid,#DCDCD7);border-radius:12px;background:var(--r-panel,#EAEAE6)}
.tk-ov{margin:0;font-size:20px;font-weight:600}.tk-ov small{font-size:13px;font-weight:400;color:var(--r-text-2,#6B6B66)}
.tk-card .tk-meta{margin:6px 0 0;font-size:12px;color:var(--r-text-2,#6B6B66)}
.tk-rows{list-style:none;margin:10px 0;padding:0;font-size:13px}
.tk-rows li{display:grid;grid-template-columns:minmax(110px,1fr) minmax(90px,1fr) 1.4fr;gap:8px;padding:7px 4px;border-top:1px solid var(--r-grid,#DCDCD7)}
.tk-rows li.tk-na{color:var(--r-text-2,#6B6B66)}
.tk-n{font-weight:600}
.mk-line.is-closed{stroke-dasharray:4 4}
/* Rev 26 Swap page */
.wb-btn:disabled{opacity:.45;cursor:not-allowed}
#sw-rev label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
#sw-rev input[type=checkbox]{appearance:auto;width:18px;height:18px;min-height:0;flex:0 0 18px;margin:2px 0 0;padding:0;accent-color:var(--r-text,#1C1C1C)}

/* Rev 27 Swap (Imogen): one centred card */
#sw-root .sw-col{max-width:440px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
#sw-root .sw-wbar .wb-note{font-size:12px}
.sw-card{background:var(--r-panel);border-radius:16px;padding:12px;position:relative;display:flex;flex-direction:column;gap:6px}
.sw-blk{background:var(--r-bg);border-radius:12px;padding:14px 14px 12px}
.sw-blk-h{font-size:13px;color:var(--r-text-2)}
.sw-row{display:flex;align-items:center;gap:10px;margin:6px 0}
.sw-amt{flex:1;min-width:0;font:600 32px/1.15 Manrope,system-ui,sans-serif;letter-spacing:-0.02em;color:var(--r-text);background:none;border:0;padding:0;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-amt:focus{outline:none}.sw-blk:focus-within{box-shadow:0 0 0 1.5px var(--r-text) inset}
.sw-pill{display:inline-flex;align-items:center;gap:6px;flex:none;font:600 15px Manrope,system-ui,sans-serif;color:var(--r-text);background:var(--r-panel);border:1px solid var(--r-grid);border-radius:999px;padding:6px 10px 6px 6px;cursor:pointer}
.sw-mono{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--r-text);color:var(--r-on-ink);font:700 12px Manrope,system-ui,sans-serif;flex:none}
.sw-meta{display:flex;justify-content:space-between;align-items:center;min-height:22px;font-size:13px;color:var(--r-text-2);font-variant-numeric:tabular-nums}
.sw-max{font:600 12px inherit;font-family:inherit;color:var(--r-text);background:none;border:1px solid var(--r-grid);border-radius:999px;padding:2px 10px;cursor:pointer}
.sw-flip{position:relative;align-self:center;margin:-24px 0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--r-bg);color:var(--r-text);border:4px solid var(--r-panel);cursor:pointer;z-index:1;padding:0}
.sw-flip:hover{background:var(--r-panel)}
.sw-qc:empty{display:none}.sw-qc{padding:4px 6px}
.sw-dl{margin:0;display:grid;gap:7px;font-size:13px}.sw-dl>div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.sw-dl dt{color:#6B6B66;flex:none}.sw-dl dd{margin:0;color:#1C1C1C;text-align:right;font-variant-numeric:tabular-nums}
html[data-theme=dark] .sw-dl dt{color:#9A9A95}html[data-theme=dark] .sw-dl dd{color:#E8E8E4}
.sw-dl .sw-wide{flex-direction:column;gap:2px}.sw-dl .sw-wide dd{text-align:left;word-break:break-all}
.sw-route{font-size:12px;max-width:70%}
.sw-imp.t2,.sw-imp.t3,.sw-imp.t4{font-weight:600}
.sw-slips{display:inline-flex;gap:4px;align-items:center}
.sw-slips button,.sw-slc{font:inherit;font-size:12px;color:var(--r-text);background:var(--r-bg);border:1px solid var(--r-grid);border-radius:999px;padding:2px 9px;cursor:pointer}
.sw-slips button[aria-pressed=true]{background:var(--r-text);color:var(--r-on-ink);border-color:var(--r-text)}
.sw-slc{width:64px;cursor:text;text-align:center}
.sw-warn:empty{display:none}.sw-warn{display:flex;flex-direction:column;gap:6px}
.sw-banner{margin:0;border:1.5px solid var(--r-text);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--r-text);background:transparent}
.sw-banner p{margin:0}.sw-ack{display:flex;align-items:center;gap:8px;margin-top:8px;font-weight:600}
.sw-ack input{accent-color:var(--r-text);width:16px;height:16px;margin:0}
.sw-note{margin:0;font-size:13px;color:var(--r-text-2)}.sw-msg{color:var(--r-text)}
.sw-main{font:600 16px Manrope,system-ui,sans-serif;width:100%;padding:14px;border-radius:12px;border:0;background:var(--r-text);color:var(--r-on-ink);cursor:pointer;margin-top:4px}
.sw-main:disabled{background:var(--r-grid);color:var(--r-text-2);cursor:default}
.sw-sec{font:600 15px Manrope,system-ui,sans-serif;padding:13px 18px;border-radius:12px;border:1px solid var(--r-grid);background:var(--r-bg);color:var(--r-text);cursor:pointer}
.sw-acts{display:flex;gap:8px}.sw-acts .sw-main{margin:0}
.sw-rev h2{font:700 18px Manrope,system-ui,sans-serif;margin:4px 6px 8px}.sw-rev .sw-dl{padding:0 6px}
.sw-ok{font-size:12px;color:var(--r-text-2);margin:8px 6px}.sw-steps{font-size:13px;margin:4px 6px 8px;padding-left:18px;display:grid;gap:4px}
.sw-st{font-weight:600}.sw-st a{color:inherit}
.sw-legal{font-size:12px;color:var(--r-text-2);margin:8px 6px 2px}
.sw-foot{font-size:12px;color:var(--r-text-2);margin:0}
#sw-root button:focus-visible,#sw-root input:focus-visible,.sw-dlg button:focus-visible,.sw-dlg input:focus-visible{outline:2px solid var(--r-text);outline-offset:2px}
.sw-dlg{border:0;border-radius:16px;padding:0;width:min(420px,94vw);max-height:80vh;background:var(--r-panel);color:var(--r-text)}
.sw-dlg::backdrop{background:rgba(20,20,20,.35)}
.sw-dlg-in{padding:16px;display:flex;flex-direction:column;gap:10px;max-height:80vh;box-sizing:border-box}
.sw-dlg-top{display:flex;justify-content:space-between;align-items:center}.sw-dlg h2{font:700 18px Manrope,system-ui,sans-serif;margin:0}
.sw-search{font:inherit;font-size:14px;padding:10px 12px;border-radius:10px;border:1px solid var(--r-grid);background:var(--r-bg);color:var(--r-text)}
.sw-chips{display:flex;gap:6px;flex-wrap:wrap}.sw-chips button{font:600 13px inherit;font-family:inherit;padding:4px 12px;border-radius:999px;border:1px solid var(--r-grid);background:var(--r-bg);color:var(--r-text);cursor:pointer}
.sw-list{overflow:auto;min-height:120px}.sw-list ul{list-style:none;margin:0;padding:0}
.sw-gh{position:sticky;top:0;background:var(--r-panel);font:700 12px Manrope,system-ui,sans-serif;letter-spacing:.02em;color:var(--r-text-2);margin:8px 0 2px;padding:4px 0}.sw-gh span{font-weight:500}
.sw-trow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;color:var(--r-text);background:none;border:0;border-radius:10px;padding:8px;cursor:pointer}
.sw-trow:hover{background:var(--r-bg)}.sw-trow[aria-disabled=true]{opacity:.45;cursor:default}
.sw-tn{flex:1;min-width:0;display:flex;flex-direction:column}.sw-tn small{color:var(--r-text-2);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-tb{font-size:13px;font-variant-numeric:tabular-nums;color:var(--r-text-2)}
.sw-tag{display:inline-block;font-size:11px;font-weight:600;color:var(--r-text);border:1px solid var(--r-text);border-radius:999px;padding:0 6px;margin-left:4px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sw-card[hidden]{display:none}
#sw-root input.sw-amt{border:0;box-shadow:none;outline:none;background:none;min-height:0;height:auto;padding:0;border-radius:0}
#sw-root .sw-dl>div{padding:0;border:0;min-height:0}#sw-root .sw-dl dt,#sw-root .sw-dl dd{padding:0;border:0}
#sw-root input.sw-slc{min-height:0;height:24px;padding:0 8px;border-radius:999px;box-shadow:none}
.sw-dl .sw-wide dd.sw-route{max-width:100%;width:100%;word-break:normal}


 /* Ruvo 33: normalized brand emblems, consistent baseline and no overlapping sprite glyphs. */
 .tile.is-img{width:24px!important;height:24px!important;min-width:24px;min-height:24px;object-fit:contain!important;object-position:center!important;border-radius:5px;display:inline-block;vertical-align:middle;background:transparent!important;flex-shrink:0;overflow:hidden}
 .tile.is-fallback{display:inline-grid!important;place-items:center!important;width:24px!important;height:24px!important;min-width:24px;min-height:24px;box-sizing:border-box;flex-shrink:0;vertical-align:middle;border-radius:6px!important;background:#252624!important;color:#f7f7f3!important;font:600 9px/1 Manrope,system-ui,sans-serif!important;letter-spacing:0!important}
 .sw-trow .tile,.as-o .tile,.mk-lt .tile{margin:0;align-self:center}
 .sw-trow .sw-tn{min-width:0}
 .sw-trow .sw-tn small{line-height:1.3}

/* Manifesto wallet quick-add · scoped to this view only. */
#mf-wb .wb-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
#mf-wb .wb-row>.wb-open{flex:none}
#mf-wb .mf-address-form{display:flex;align-items:center;flex:1 1 350px;gap:10px;min-width:0;margin:0}
#mf-wb .mf-address-form input{
  flex:1 1 auto;min-width:0;width:100%;height:39px;box-sizing:border-box;
  border:1px solid var(--r-line-2,#8A8A85);border-radius:10px;
  padding:8px 12px;background:var(--r-bg,#F4F4F1);color:var(--r-text,#1C1C1C);
  font:inherit;font-size:14px
}
#mf-wb .mf-address-form input::placeholder{color:var(--r-text-2,#6B6B66)}
#mf-wb .mf-address-form input:focus-visible{outline:2px solid var(--r-text,#1C1C1C);outline-offset:2px}
#mf-wb .mf-address-form input[aria-invalid=true]{border-color:var(--r-text,#1C1C1C)}
#mf-wb .mf-address-submit{flex:none;justify-content:center;min-width:56px}
#mf-wb .mf-paste-feedback{font-size:12px;margin:0;color:var(--r-text-2,#6B6B66)}
#mf-wb .mf-paste-feedback:empty,#mf-wb .wb-list:empty{display:none}
@media(max-width:600px){
  #mf-wb .wb-row{align-items:stretch}
  #mf-wb .mf-address-form{flex:1 1 100%}
  #mf-wb .mf-address-form input{min-width:0}
}

/* v38: Four technical charts, one full-width panel per row. */
.tk-charts{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:16px}
.tk-charts figure{min-width:0;padding:16px 18px}
.tk-charts figcaption{margin-bottom:10px}
.tk-charts .tk-svg{display:block;width:100%;height:215px}
.tk-charts .tk-price-svg{height:275px}
/* v39: monochrome price candles; technical indicator lines already use neutral ink. */
.tk-candle .tk-wick{stroke:currentColor;stroke-width:1.35;fill:none;vector-effect:non-scaling-stroke}
.tk-candle .tk-cbody{stroke:currentColor;stroke-width:1.2;vector-effect:non-scaling-stroke}
.tk-candle.is-up,.tk-candle.is-down{color:#171717}
.tk-candle.is-up .tk-cbody{fill:#fff;stroke:#171717}
.tk-candle.is-down .tk-cbody{fill:#171717;stroke:#171717}
html[data-theme=dark] .tk-candle.is-up,html[data-theme=dark] .tk-candle.is-down{color:#f4f4f1}
html[data-theme=dark] .tk-candle.is-up .tk-cbody{fill:#141414;stroke:#f4f4f1}
html[data-theme=dark] .tk-candle.is-down .tk-cbody{fill:#f4f4f1;stroke:#f4f4f1}
@media(max-width:600px){.tk-charts figure{padding:12px}.tk-charts .tk-svg{height:190px}.tk-charts .tk-price-svg{height:225px}}
