/* RUVO WORKSPACE / RESPONSIVE SYSTEM — REV 38
   Consistent 7-page layouts. All rules are presentation-only; data, wallet, and route logic unchanged. */
:root{--rw-space:clamp(16px,2.6vw,42px);--rw-border:var(--r-grid,#DCDCD7);--rw-muted:var(--r-text-2,#62625D)}
html,body.app-body{width:100%;min-width:0}
body.app-body .app-layout{min-width:0}
body.app-body .app-main{max-width:1760px;min-width:0;padding:0 var(--rw-space) 68px;overflow:clip}
body.app-body .view{min-width:0;width:100%}
body.app-body .view[hidden]{display:none!important}
body.app-body .heading{padding:23px 0 20px;align-items:center;min-width:0}
body.app-body .heading h1{font-size:clamp(30px,3vw,40px);font-weight:550;letter-spacing:-.055em}
body.app-body .topbar{height:66px;position:relative;gap:14px}
.rw-current-page{font:500 10px var(--g-mono,ui-monospace,monospace);letter-spacing:.10em;text-transform:uppercase;color:var(--rw-muted)}
.rw-current-page strong{font-weight:650;color:var(--r-text)}
.rw-current-page:before{content:"RUVO / ";opacity:.6}
body.app-body .board{min-width:0}
body.app-body .mk-wrap,body.app-body #tk-root,body.app-body #pf-root,body.app-body #sw-root,body.app-body #liquidity-root{min-width:0}
body.app-body .app-foot{width:100%;max-width:none;min-width:0;margin-top:30px;flex-wrap:wrap;border-top:1px solid var(--rw-border);color:var(--r-text-2)}
body.app-body .app-foot a{color:var(--r-text-2)}
/* Overview: research and issuer universe side-by-side, while preserving real data. */
#overview .mk-wrap{max-width:none;width:100%;display:grid;grid-template-columns:minmax(0,1.72fr) minmax(265px,.87fr);gap:22px;align-items:start}
#overview .mk-sec,#overview .mk-all{min-width:0;margin:0}
#overview .mk-sec-h,#overview .mk-all-top{min-height:47px}
#overview .mk-sec-h{position:relative;top:auto}
#overview .mk-panel{background:var(--r-panel);border:1px solid var(--rw-border);border-radius:12px;overflow:hidden}
#overview .mk-fold{padding:16px 18px;line-height:1.35}
#overview .mk-body{padding:0 18px 18px}
#overview .mk-pick{min-width:0}
#overview .mk-chart{border:1px solid var(--rw-border);min-width:0;padding:16px;background:var(--r-bg)}
#overview .mk-svg{height:clamp(220px,23vw,360px);min-width:0}
#overview .mk-price{font-size:clamp(24px,2.4vw,32px)}
#overview .mk-quote{flex-wrap:wrap;gap:3px 12px}
#overview .mk-meta,#overview .mk-chain,#overview .mk-list{overflow-wrap:anywhere}
#overview .mk-all{padding:0;border:0;min-width:0}
#overview .mk-all-top{padding:10px 0 17px}
#overview .mk-all-top h2{font-size:18px}
#overview .mk-grp{min-width:0;padding:0}
#overview .mk-tab{table-layout:fixed;width:100%;min-width:0}
#overview .mk-tab td,#overview .mk-tab th{min-width:0!important;max-width:100%;font-size:11px;padding:9px 6px}
#overview .mk-tab td:first-child{width:22%;min-width:0!important}
#overview .mk-tab td:nth-child(2){width:26%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#overview .mk-tab td:nth-child(3){width:25%;white-space:nowrap}
#overview .mk-tab td:nth-child(4){width:27%;white-space:normal;overflow-wrap:anywhere;font-size:10px}
#overview .mk-tab th:first-child{width:22%}
#overview .mk-tab th:nth-child(2){width:26%}
#overview .mk-tab th:nth-child(3){width:25%}
#overview .mk-tab th:nth-child(4){width:27%}
#overview .mk-grp-h{z-index:3;font-size:13px;position:sticky;top:0}
#overview .mk-all-st{font-size:12px;line-height:1.55}
#overview .mk-list{margin-top:10px}
#overview .mk-row{grid-template-columns:minmax(100px,132px) minmax(0,1fr)}
#overview .mk-tone{min-width:0;align-items:flex-start}
#overview .mk-hl{font-size:13px}
#overview .mk-src{overflow-wrap:anywhere}
/* Wide asset chart / technical research panels */
#technicals #tk-root>.board{padding:clamp(14px,2vw,28px);border-radius:12px}
#technicals .tk-rows{margin-top:16px}
#technicals .tk-rows li{grid-template-columns:minmax(128px,1.08fr) minmax(90px,.92fr) minmax(120px,1.4fr);align-items:center;gap:10px;padding:10px}
#technicals .tk-charts{gap:14px}
#technicals .tk-charts figure{min-width:0}
#technicals .tk-charts .tk-svg{max-width:100%}
#technicals .ri-lab{overflow:hidden;min-width:0}
#technicals .ri-chart-figure{min-width:0}
#technicals .ri-visual-gridwrap{grid-template-columns:repeat(2,minmax(0,1fr))}
#technicals .ri-visual-gridwrap>.ri-chart-figure:first-child{grid-column:1/-1}
#technicals .ri-lab-head{flex-wrap:wrap}
#technicals .ri-tabs{display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin;max-width:100%}
#technicals .ri-tabs button{white-space:nowrap}
/* Portfolio: readable wallets and holdings; responsive table becomes annotated cards on phones. */
#portfolio #pf-root>.wb{max-width:1160px}
#portfolio .wb-row{gap:12px 18px}
#portfolio .wb-in{max-width:100%}
#portfolio .wb-paste input{width:min(440px,100%);max-width:100%;min-width:0}
#portfolio .pf-out{max-width:100%;min-width:0}
#portfolio .pf-table{font-size:13px;max-width:100%;font-variant-numeric:tabular-nums}
#portfolio .pf-table td{overflow-wrap:anywhere}
#portfolio .wb-list li{max-width:100%;overflow-wrap:anywhere}
#portfolio .pf-cta{max-width:800px;margin:8px 0 18px;text-align:left;border-style:solid;background:var(--r-panel);padding:26px;border-radius:12px}
#portfolio .pf-cta p{max-width:530px}
/* Swap: central execution form with verified, non-transactional context beside it. */
#swap .rw-swap-grid{width:min(100%,1140px);margin:2px auto 0;display:grid;grid-template-columns:minmax(330px,510px) minmax(260px,1fr);gap:30px;align-items:start}
#swap #sw-root{width:100%;min-width:0}
#swap #sw-root .sw-col{margin:0;max-width:none;width:100%}
#swap #sw-root .sw-card{border-radius:12px}
#swap #sw-root .sw-blk{border-radius:9px}
#swap #sw-root .sw-amt{min-width:0}
#swap #sw-root .sw-pill{white-space:nowrap}
#swap .rw-swap-aside{border-top:1px solid var(--rw-border);padding:18px 5px 0;min-width:0}
#swap .rw-eyebrow{font:10px var(--g-mono,ui-monospace,monospace);letter-spacing:.13em;color:var(--rw-muted);text-transform:uppercase}
#swap .rw-swap-aside h2{font:500 clamp(24px,2.4vw,34px)/1.2 Manrope,system-ui,sans-serif;letter-spacing:-.05em;margin:12px 0 10px}
#swap .rw-swap-aside>p{font-size:13px;line-height:1.65;color:var(--rw-muted);max-width:340px}
#swap .rw-swap-aside ol{list-style:none;margin:24px 0 0;padding:0}
#swap .rw-swap-aside li{display:grid;grid-template-columns:35px minmax(0,1fr);gap:10px;padding:16px 0;border-top:1px solid var(--rw-border)}
#swap .rw-swap-aside li>span{font:11px var(--g-mono,ui-monospace,monospace);color:var(--rw-muted);padding-top:2px}
#swap .rw-swap-aside li strong{font-size:13px;font-weight:650}
#swap .rw-swap-aside li p{margin:5px 0 0;color:var(--rw-muted);font-size:12px;line-height:1.5}
#swap .rw-swap-risk{border:1px solid var(--rw-border);background:var(--r-panel);padding:15px;margin-top:24px;border-radius:8px;font-size:12px;line-height:1.55;color:var(--rw-muted)}
/* Q&A: a responsive knowledge grid, clearly interactive. */
#qa .ruvo-reference{max-width:none;width:100%;gap:17px}
#qa .ruvo-doc-lead{max-width:680px}
#qa .ruvo-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0;align-items:start}
#qa .ruvo-faq details{border:1px solid var(--rw-border);border-radius:10px;overflow:hidden;min-width:0;background:var(--r-panel)}
#qa .ruvo-faq summary{min-height:78px;padding:22px 44px 19px 18px;line-height:1.5;font-size:14px;display:flex;align-items:center}
#qa .ruvo-faq summary::after{right:17px;top:calc(50% - 15px)}
#qa .ruvo-faq details[open]{background:var(--r-bg)}
#qa .ruvo-faq details[open] summary{border-bottom:1px solid var(--rw-border)}
#qa .ruvo-faq details p{padding:17px 18px 19px;margin:0;line-height:1.7;color:var(--rw-muted)!important}
#qa .ruvo-doc-foot{font-size:13px}
/* Docs: concise sticky table-of-contents and full editorial reading column. */
#docs .ruvo-reference{max-width:none;display:grid;grid-template-columns:minmax(180px,220px) minmax(0,780px);column-gap:clamp(24px,4vw,64px);align-items:start;justify-content:start}
#docs .ruvo-doc-lead{grid-column:1/-1;max-width:720px}
#docs .ruvo-doc-jump{grid-column:1;grid-row:2/span 40;display:flex;flex-direction:column;gap:3px;align-self:start;position:sticky;top:26px;min-width:0;margin:0;border:1px solid var(--rw-border);background:var(--r-panel);border-radius:9px;padding:10px}
#docs .ruvo-doc-jump::before{content:"ON THIS PAGE";font:10px var(--g-mono,ui-monospace,monospace);letter-spacing:.12em;color:var(--rw-muted);padding:8px 10px}
#docs .ruvo-doc-jump a{display:block;padding:11px 10px;font-size:12px;font-weight:600;text-decoration:none;border-radius:5px;margin:0}
#docs .ruvo-doc-jump a:hover,#docs .ruvo-doc-jump a:focus-visible{background:var(--r-grid)}
#docs .ruvo-reference>section{grid-column:2;min-width:0;padding:21px 0}
#docs .ruvo-reference>section h2{font-size:20px;line-height:1.4}
#docs .ruvo-reference>section p{max-width:75ch;line-height:1.8}
#docs .ruvo-reference a:not(.ruvo-doc-jump a){overflow-wrap:anywhere}
/* Touch navigation: five functional tools + drawer access to Q&A and Docs */
.rw-mobile-nav{display:none}
@media(max-width:1400px){
 #overview .mk-wrap{grid-template-columns:minmax(0,1.55fr) minmax(275px,.92fr);gap:16px}
 #overview .mk-tab td:first-child,#overview .mk-tab th:first-child{width:24%}
 #overview .mk-tab td:nth-child(2),#overview .mk-tab th:nth-child(2){width:28%}
 #overview .mk-tab td:nth-child(3),#overview .mk-tab th:nth-child(3){width:24%}
 #overview .mk-tab td:nth-child(4),#overview .mk-tab th:nth-child(4){width:24%}
}
@media(max-width:1170px){
 #overview .mk-wrap{display:flex;flex-direction:column;gap:25px}
 #overview .mk-sec,#overview .mk-all{width:100%}
 #overview .mk-all .mk-grp{overflow-x:hidden}
 #overview .mk-all .mk-tab td,#overview .mk-all .mk-tab th{font-size:12px}
 #overview .mk-svg{height:clamp(215px,34vw,310px)}
 #swap .rw-swap-grid{grid-template-columns:minmax(330px,490px) minmax(0,1fr);gap:23px}
}
@media(max-width:900px){
 #docs .ruvo-reference{grid-template-columns:170px minmax(0,1fr);column-gap:20px}
 #qa .ruvo-faq summary{font-size:13px}
 #swap .rw-swap-grid{grid-template-columns:minmax(0,1fr);max-width:580px}
 #swap .rw-swap-aside{margin-top:2px}
 #technicals .ri-visual-gridwrap{grid-template-columns:minmax(0,1fr)}
 #technicals .ri-visual-gridwrap>.ri-chart-figure{grid-column:1!important}
}
@media(max-width:768px){
 :root{--rw-space:clamp(12px,3vw,22px)}
 body.app-body .app-main{padding:0 var(--rw-space) 112px}
 body.app-body .topbar{position:sticky;top:0;height:60px;background:var(--r-bg);z-index:22;border-bottom:1px solid var(--rw-border)}
 body.app-body .heading{padding:18px 0}
 body.app-body .heading h1{font-size:31px}
 .rw-current-page{margin-left:2px;font-size:10px}
 .rw-mobile-nav{display:grid;position:fixed;z-index:35;bottom:0;left:0;right:0;grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch;gap:1px;padding:8px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));border-top:1px solid var(--rw-border);background:var(--r-bg);box-shadow:0 -10px 32px rgba(0,0,0,.06);min-height:64px}
 .rw-mobile-nav a,.rw-mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:45px;min-width:0;gap:4px;border:1px solid transparent;border-radius:7px;padding:4px 1px;background:transparent;color:var(--rw-muted);font:500 9px/1.25 Manrope,system-ui,sans-serif;text-align:center;text-decoration:none}
 .rw-mobile-nav svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
 .rw-mobile-nav a[aria-current=page],.rw-mobile-nav a:hover,.rw-mobile-nav button:hover{border-color:var(--rw-border);color:var(--r-text);background:var(--r-panel)}
 .rw-mobile-nav span{max-width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
 #overview .mk-svg{height:clamp(190px,37vw,300px)}
 #overview .mk-quote{flex-wrap:wrap}
 #qa .ruvo-faq{grid-template-columns:1fr}
 #docs .ruvo-reference{grid-template-columns:1fr;gap:10px}
 #docs .ruvo-doc-lead,#docs .ruvo-doc-jump,#docs .ruvo-reference>section{grid-column:1;grid-row:auto}
 #docs .ruvo-doc-jump{position:static;display:flex;flex-direction:row;flex-wrap:wrap;padding:7px;gap:5px}
 #docs .ruvo-doc-jump::before{width:100%;padding:5px 6px}
 #docs .ruvo-doc-jump a{padding:8px 10px;border:1px solid var(--rw-border)}
}
@media(max-width:540px){
 body.app-body .app-main{padding-left:12px;padding-right:12px}
 body.app-body .heading{padding:17px 0 14px}
 body.app-body .heading h1{font-size:29px}
 #overview .mk-sec-h,#overview .mk-all-top{min-height:32px}
 #overview .mk-sec-h h2,#overview .mk-all-top h2{font-size:15px}
 #overview .mk-fold{padding:13px 12px;gap:6px;flex-wrap:wrap;font-size:13px}
 #overview .mk-sum{margin-left:auto;font-size:11px}
 #overview .mk-body{padding:0 10px 10px}
 #overview .mk-chart{padding:10px 8px}
 #overview .mk-price{font-size:24px}
 #overview .mk-svg{height:215px}
 #overview .mk-row{grid-template-columns:1fr}
 #overview .mk-tone{grid-row:auto}
 #overview .mk-note{font-size:11px;line-height:1.6}
 #overview .mk-grp{width:100%;overflow:visible}
 #overview .mk-tab{display:block;width:100%;table-layout:auto}
 #overview .mk-tab thead{display:none}
 #overview .mk-tab tbody{display:grid;grid-template-columns:1fr;gap:5px}
 #overview .mk-tab tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.92fr);grid-template-areas:"ticker price" "name source";gap:4px 7px;align-items:start;min-width:0;padding:11px 12px;border:1px solid var(--rw-border);background:var(--r-panel);border-radius:9px}
 #overview .mk-tab td{display:block;min-width:0!important;width:auto!important;border:0;padding:0!important;max-width:100%;font-size:12px!important}
 #overview .mk-tab td:nth-child(1){grid-area:ticker}
 #overview .mk-tab td:nth-child(2){grid-area:name;color:var(--rw-muted);white-space:normal;overflow-wrap:anywhere;font-size:11px!important}
 #overview .mk-tab td:nth-child(3){grid-area:price;text-align:right;font-family:var(--g-mono,ui-monospace,monospace);font-size:12px!important}
 #overview .mk-tab td:nth-child(4){grid-area:source;text-align:right;overflow-wrap:anywhere;font-size:10px!important;color:var(--rw-muted)}
 #overview .mk-tab td .mk-lt{min-width:0}
 #overview .mk-tab td:first-child .mk-lt{font-size:12px}
 #portfolio .pf-cta{padding:20px}
 #portfolio .wb-in{flex-wrap:wrap}
 #portfolio .wb-paste{width:100%}
 #portfolio .wb-paste input{width:100%}
 #portfolio .pf-out{overflow:visible}
 #portfolio .pf-table,#portfolio .pf-table tbody{display:block;width:100%}
 #portfolio .pf-table thead{display:none}
 #portfolio .pf-table tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px 12px;margin-bottom:7px;border:1px solid var(--rw-border);border-radius:9px;background:var(--r-panel)}
 #portfolio .pf-table td{display:flex;flex-direction:column;gap:2px;min-width:0;padding:0;border:0;overflow-wrap:anywhere}
 #portfolio .pf-table td::before{content:attr(data-rw-label);font:9px var(--g-mono,ui-monospace,monospace);letter-spacing:.07em;text-transform:uppercase;color:var(--rw-muted)}
 #portfolio .pf-table caption{display:block}
 #technicals #tk-root>.board{padding:12px}
 #technicals .tk-rows li{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 8px;padding:10px 4px}
 #technicals .tk-rows li .tk-n{grid-column:1}
 #technicals .tk-rows li .tk-v{grid-column:2;text-align:right}
 #technicals .tk-rows li .tk-r{grid-column:1/-1;font-size:11px;line-height:1.5}
 #technicals .tk-charts{grid-template-columns:1fr}
 #technicals .tk-charts .tk-svg{height:auto;max-height:245px}
 #technicals .ri-lab{padding:11px!important}
 #technicals .ri-lab-head h2{font-size:21px}
 #technicals .ri-coverage{white-space:normal}
 #technicals .ri-chart-figure{padding:9px}
 #technicals .ri-indicator-list{grid-template-columns:1fr}
 #swap .rw-swap-grid{gap:20px}
 #swap #sw-root .sw-row{gap:6px}
 #swap #sw-root .sw-card{padding:8px}
 #swap #sw-root .sw-pill{font-size:12px;padding:6px}
 #swap #sw-root .sw-amt{font-size:27px}
 #swap .rw-swap-aside h2{font-size:25px}
 #qa .ruvo-faq summary{font-size:13px;min-height:62px;padding:17px 38px 17px 14px}
 #qa .ruvo-faq details p{padding:15px}
 #docs .ruvo-reference>section{padding:16px 0}
 #docs .ruvo-reference>section h2{font-size:18px}
 .rw-mobile-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
 .rw-mobile-nav a,.rw-mobile-nav button{font-size:8px}
}
@media(max-width:370px){
 #overview .mk-price{font-size:22px}
 .rw-mobile-nav svg{width:17px;height:17px}
 #swap .rw-swap-aside{padding-right:0}
}
@media(prefers-reduced-motion:reduce){.rw-mobile-nav *{transition:none!important}}

/* Pool universe is a browsable instrument list, not thousands of pixels of page scroll. */
#overview .mk-all .mk-groups{max-height:min(880px,calc(100dvh - 225px));min-height:260px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--r-line-2) transparent;padding-right:3px}
#overview .mk-all .mk-grp-h{background:var(--r-bg);top:0}
@media(min-width:1171px){
 #overview .mk-tab{display:block;width:100%;table-layout:auto}
 #overview .mk-tab thead{display:none}
 #overview .mk-tab tbody{display:block}
 #overview .mk-tab tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(95px,.72fr);grid-template-areas:"ticker price" "name source";padding:10px 4px;gap:5px 8px;align-items:center;border-bottom:1px solid var(--rw-border)}
 #overview .mk-tab td{display:block!important;min-width:0!important;max-width:100%;width:auto!important;border:0;padding:0!important;font-size:11px!important}
 #overview .mk-tab td:nth-child(1){grid-area:ticker}
 #overview .mk-tab td:nth-child(2){grid-area:name;white-space:normal;font-size:10px!important;color:var(--rw-muted);overflow-wrap:anywhere}
 #overview .mk-tab td:nth-child(3){grid-area:price;text-align:right;font-size:12px!important;font-weight:600;font-family:var(--g-mono,ui-monospace,monospace)}
 #overview .mk-tab td:nth-child(4){grid-area:source;text-align:right;font-size:10px!important;color:var(--rw-muted);overflow-wrap:anywhere}
 #overview .mk-tab td .mk-lt{display:inline-flex;align-items:center;gap:8px;min-width:0}
 #overview .mk-tab td .mk-lt .tile{flex:none}
}
@media(max-width:1170px){
 #overview .mk-all .mk-groups{max-height:620px}
}
@media(max-width:540px){
 #overview .mk-all .mk-groups{max-height:540px}
 #overview .mk-tab tbody{display:grid}
 #overview .mk-grp-h{position:sticky;top:0}
}

@media (max-width:768px){
 body.app-body .r-theme,body.app-body .mk-seg button,body.app-body .mk-lt,body.app-body .ri-tabs button,body.app-body .wb-btn,body.app-body .sw-pill,body.app-body .sw-flip,body.app-body .sw-max,body.app-body .sw-slip button,body.app-body #liquidity button{min-width:44px;min-height:44px}
 body.app-body .r-theme{width:44px;height:44px}
 body.app-body .as-btn{width:44px;height:44px}
 body.app-body .as-in{padding-right:48px}
 body.app-body #sw-amt{min-height:44px}
 body.app-body .mk-seg,body.app-body .ri-tabs{flex-wrap:wrap}
}