:root{--bg:#061017;--surface:#101f2a;--surface2:#142733;--stroke:#233946;--text:#ecf2f4;--muted:#a8b7c1;--green:#87f3b3;--gold:#d4bc8c;--red:#ff969c;--nav:#09161e;--shadow:0 12px 36px #0004;color-scheme:dark}
:root[data-theme=light]{--bg:#f4f6f5;--surface:#fff;--surface2:#e8efed;--stroke:#ccd9d5;--text:#18332f;--muted:#59716b;--green:#147754;--gold:#927032;--red:#b23c45;--nav:#fff;--shadow:0 10px 30px #172c2521;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;height:100dvh;overscroll-behavior:none;overflow:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}a{color:var(--green)}.portal{height:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.portal[hidden],.auth-shell[hidden],[hidden]{display:none!important}
.topbar{height:82px;min-height:82px;padding:16px 20px 12px;padding-top:max(16px,env(safe-area-inset-top));height:calc(72px + env(safe-area-inset-top));min-height:calc(72px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;background:var(--bg);border-bottom:1px solid #ffffff08;z-index:10;flex-shrink:0}.brandline{display:flex;align-items:center;gap:10px;min-width:0}.brand-icon{width:48px;height:48px;border-radius:13px;object-fit:cover}.brandstack{display:flex;flex-direction:column;gap:3px;min-width:0}.brand-title{font-weight:750;font-size:19px;letter-spacing:.1px;white-space:nowrap}.brand-sub{color:var(--muted);font-size:12px;letter-spacing:1.3px;text-transform:uppercase;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:15px}.data-dot{display:block;height:8px;width:8px;border-radius:50%;background:#9c9f9c}.data-dot.ok{background:#70dba5}.data-dot.warn{background:#e4bb68}.round-action{height:35px;width:35px;border:1px solid var(--stroke);background:var(--surface);border-radius:100%;font-size:18px}.viewport{flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:var(--stroke) transparent}.viewport #page{width:min(1080px,100%);margin:auto;padding:20px 19px 38px;min-height:100%}.bottomnav{height:calc(69px + env(safe-area-inset-bottom));min-height:calc(69px + env(safe-area-inset-bottom));background:var(--nav);border-top:1px solid var(--stroke);display:flex;justify-content:space-evenly;align-items:flex-start;padding:8px 4px calc(5px + env(safe-area-inset-bottom));z-index:10;flex-shrink:0}.navbtn{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-width:67px;padding:4px 7px;background:none;border:0;color:var(--muted);font-size:11px;font-weight:600}.navbtn svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.navbtn.active{color:var(--green)}.navbtn.active:after{content:'';width:24px;height:2px;background:var(--green);border-radius:5px;position:absolute;transform:translateY(30px)}
.eyebrow{font-size:11px;color:var(--gold);letter-spacing:1.4px;text-transform:uppercase;font-weight:650}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 18px}.pagehead h1{font-size:27px;line-height:1.05;letter-spacing:-.9px;margin:8px 0 0;font-weight:780}.smallhead{color:var(--muted);font-size:12px}.sectiontitle{font-size:17px;font-weight:750;margin:27px 0 14px}.panel{border:1px solid var(--stroke);border-radius:21px;background:var(--surface);padding:18px;margin-bottom:16px}.market-panel{background:linear-gradient(130deg,var(--surface),var(--bg));position:relative;overflow:hidden}.market-panel:after{content:'';position:absolute;right:-55px;top:-70px;height:175px;width:175px;border:1px solid #63dca125;border-radius:50%;box-shadow:0 0 0 30px #3c9b7b0b,0 0 0 65px #3c9b7b07;pointer-events:none}.market-panel h2{font-size:22px;margin:0 0 8px;letter-spacing:-.4px}.summary{color:var(--muted);font-size:15px;line-height:1.55;max-width:700px;position:relative;z-index:1}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:16px}.stat{border:1px solid var(--stroke);background:var(--surface2);border-radius:11px;padding:11px 9px}.stat .caption{font-size:12px;color:var(--muted)}.stat .num{font-size:18px;color:var(--green);font-weight:750;margin-top:4px}.missing{font-size:12px;color:var(--muted);margin-top:5px}.feature{padding:17px 18px;background:linear-gradient(115deg,#103b2c,#0b3226,#174a32);border:1px solid #57b880;border-radius:18px;color:#ebfff6;margin-bottom:19px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:97px;position:relative;overflow:hidden}.feature:after{content:'';position:absolute;right:-20px;bottom:-62px;width:180px;height:120px;transform:rotate(-19deg);background:linear-gradient(45deg,#75efb52b,transparent);border-top:3px solid #8dffb1;border-radius:50%}.feature strong{font-size:23px}.feature .small{font-size:13px;color:#c8e5d6;margin-bottom:7px}.feature .arrow{z-index:1;font-size:22px}.table-wrap{border:1px solid var(--stroke);border-radius:16px;overflow:hidden;background:var(--bg)}.fund-tr{display:grid;grid-template-columns:minmax(0,1fr) 74px 80px 75px;gap:5px;align-items:center;border-bottom:1px solid var(--stroke);padding:14px 11px;font-size:14px;text-align:right}.fund-tr:last-child{border-bottom:0}.fund-tr.heading{color:var(--muted);font-size:11px;background:var(--surface2);padding:12px 11px}.fund-tr>[data-col=name]{text-align:left;min-width:0}.fund-tr strong{font-size:15px;font-weight:730}.fund-tr .fullname{color:var(--muted);font-size:11px;line-height:1.2;display:block;margin-top:4px;overflow-wrap:anywhere}.fund-tr.clickable{cursor:pointer}.fund-tr.clickable:active{background:var(--surface2)}.fund-tr .value{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.up{color:var(--green)}.down{color:var(--red)}.subnote{font-size:11px;line-height:1.6;color:var(--muted);margin:12px 1px 22px}.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--stroke);border-radius:100px;color:var(--muted);font-size:10px;white-space:nowrap}.pill.gold{color:var(--gold)}.fund-list .listrow,.listrow{border-bottom:1px solid var(--stroke);display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 0;cursor:pointer}.listrow:last-child{border-bottom:0}.listrow .code{font-weight:750;font-size:16px}.listrow .desc{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}.chevron{font-size:19px;color:var(--muted)}.section-actions{display:flex;gap:7px;flex-wrap:wrap}.chip{background:var(--surface2);border:1px solid var(--stroke);border-radius:20px;padding:8px 11px;font-size:12px;color:var(--muted)}.chip.selected{background:#184f36;border-color:#58bd84;color:#caffe0}.detail-hero{background:linear-gradient(130deg,#142b31,#0d3330 70%,#0a241c);border:1px solid #285d4a;border-radius:21px;padding:20px;margin-bottom:16px;color:#f5fffb}.detail-hero h1{margin:9px 0 4px;font-size:34px}.detail-hero .desc{color:#c2dbd4;font-size:14px}.detail-hero .metric{font-size:32px;font-weight:760;margin-top:22px}.detail-hero .caption{font-size:12px;color:#afccc4}.metricsgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mini{background:var(--surface2);border:1px solid var(--stroke);padding:15px;border-radius:14px}.mini .label{font-size:12px;color:var(--muted)}.mini .big{font-size:21px;font-weight:800;margin-top:8px}.bar{height:7px;border-radius:20px;background:var(--stroke);overflow:hidden;margin-top:7px}.bar b{height:100%;display:block;border-radius:20px;background:linear-gradient(90deg,#4fae87,#b2ffcf)}.inline-link{background:none;border:0;padding:0;color:var(--green);font-size:13px}.btnrow{display:flex;gap:10px;flex-wrap:wrap}.primary,.secondary{border-radius:11px;padding:12px 16px;border:0;font-weight:700;font-size:13px}.primary{color:#061710;background:#87f3b3}.secondary{color:var(--text);background:var(--surface2);border:1px solid var(--stroke)}.full{width:100%}.primary:disabled,.secondary:disabled{opacity:.5}.back{font-size:13px;background:none;border:0;color:var(--muted);padding:0 0 13px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}.field label{font-size:12px;font-weight:650;color:var(--muted)}input,select,textarea{background:var(--surface2);border:1px solid var(--stroke);border-radius:11px;padding:11px 12px;width:100%;color:var(--text);outline:none;font-size:14px}input:focus,select:focus,textarea:focus{border-color:#67ba93}textarea{resize:vertical;min-height:146px;line-height:1.6}.auth-shell{height:100%;height:100dvh;overflow-y:auto;background:radial-gradient(ellipse at 50% 5%,#104b3a 0%,#061018 55%);display:flex;justify-content:center;align-items:center;padding:30px 16px}.auth-card{width:min(420px,100%);text-align:center;background:#0c1b23;border:1px solid #25473c;border-radius:25px;padding:32px 26px;box-shadow:0 24px 75px #0008;color:#f1f4f4}.auth-icon{width:86px;height:86px;border-radius:20px;object-fit:cover;margin:0 0 20px}.auth-brand{font-size:20px;letter-spacing:2px;font-weight:780}.auth-sub{font-size:12px;color:#e1c58d;letter-spacing:4px;margin-top:7px}.auth-tagline{color:#a6bdc5;font-size:13px;margin:17px 0 30px}.auth-card .field{text-align:left}.auth-card input{background:#152a33;color:#fff;border-color:#34505a}.auth-message{color:#ffaaaa;font-size:12px;min-height:18px;margin-bottom:8px}.auth-footer{font-size:11px;color:#829ba2;margin-top:24px}.boot-note{margin-top:14px}.text-button{background:none;border:none;color:#99e7bf;font-size:12px}.toast{position:fixed;bottom:calc(83px + env(safe-area-inset-bottom));left:20px;right:20px;max-width:440px;margin:auto;padding:13px 14px;background:#1c4032;color:#fff;border-radius:10px;box-shadow:var(--shadow);z-index:30;text-align:center;font-size:13px}.empty{padding:23px 15px;text-align:center;color:var(--muted);line-height:1.5;font-size:13px}.newsitem{padding:16px 0;border-bottom:1px solid var(--stroke)}.newsitem:last-child{border-bottom:0}.newsitem .meta{color:var(--gold);font-size:11px;margin-bottom:8px}.newsitem h3{font-size:15px;line-height:1.4;margin:0 0 8px}.newsitem .text{font-size:12px;color:var(--muted)}.tabs{display:flex;gap:8px;margin:0 0 14px}.tabs button{padding:9px 12px;border-radius:40px;border:1px solid var(--stroke);background:var(--surface2);font-size:12px;color:var(--muted)}.tabs button.active{background:#245741;color:#a6ffca;border-color:#33835b}.logitem{border-bottom:1px solid var(--stroke);padding:9px 0;font-size:12px;color:var(--muted);line-height:1.55}.logitem b{color:var(--text)}.muted{color:var(--muted)}.banner{background:#3b2a15;border:1px solid #98733a;color:#f4d7a2;font-size:12px;line-height:1.5;padding:11px;border-radius:11px;margin:0 0 16px}.data-pair{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--stroke);font-size:12px}.data-pair b{font-weight:650;text-align:right}.settingrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0}.settingrow select{width:160px}.pagefoot{font-size:11px;color:var(--muted);line-height:1.6;margin-top:25px}.alert-danger{background:#501b27;border:1px solid #a24b5b;color:#ffbbc4;padding:10px;border-radius:10px;font-size:12px}.userrow{padding:12px 0;border-bottom:1px solid var(--stroke);display:flex;align-items:center;justify-content:space-between;gap:8px}.userrow .name{font-weight:700;font-size:13px}.userrow .meta{font-size:11px;color:var(--muted);margin-top:3px}.userrow button{font-size:11px;padding:7px 8px}.compact{padding:8px 10px}.mark{letter-spacing:.2px;font-weight:700}.split{display:grid;grid-template-columns:1fr 1fr;gap:10px}.right{text-align:right}
@media(max-width:430px){.topbar{padding-left:14px;padding-right:14px}.brand-icon{width:41px;height:41px;border-radius:11px}.brand-title{font-size:17px}.brand-sub{font-size:10px;letter-spacing:1.1px}.viewport #page{padding:17px 12px 28px}.pagehead h1{font-size:25px}.panel{padding:15px}.fund-tr{grid-template-columns:minmax(0,1fr) 58px 67px 62px;gap:3px;padding:12px 7px}.fund-tr.heading{font-size:10px;padding:10px 7px}.fund-tr .value{font-size:12px}.fund-tr strong{font-size:13px}.fund-tr .fullname{font-size:10px}.feature{min-height:86px}.feature strong{font-size:20px}.market-panel h2{font-size:21px}.stat{padding:9px 6px}.stat .caption{font-size:10px}.stat .num{font-size:15px}.bottomnav{height:calc(65px + env(safe-area-inset-bottom));min-height:calc(65px + env(safe-area-inset-bottom))}}
@media(max-width:355px){.brand-title{font-size:15px}.brand-sub{font-size:9px}.header-actions{gap:9px}.fund-tr{grid-template-columns:minmax(0,1fr) 54px 60px 58px;gap:2px}.fund-tr .value{font-size:11px}.fund-tr .fullname{font-size:9px}.fund-tr.heading{font-size:9px}}
@media(min-width:800px){.topbar{padding:13px max(30px,calc((100vw - 1060px)/2))}.viewport #page{padding:28px 25px 48px}.bottomnav{height:74px;min-height:74px;justify-content:center;gap:90px}.pagehead h1{font-size:36px}.fund-tr{grid-template-columns:minmax(0,1fr) 120px 140px 135px}.fund-tr .fullname{font-size:12px}}
@media(max-height:450px) and (orientation:landscape){.topbar{height:52px;min-height:52px;padding-top:4px;padding-bottom:4px}.brand-icon{width:36px;height:36px}.bottomnav{height:50px;min-height:50px;padding:3px}.navbtn svg{width:19px;height:19px}.viewport #page{padding:10px 16px 20px}.panel{padding:10px}.navbtn.active:after{transform:translateY(25px)}}

/* Native RYVO-inspired navigation: viewport-fixed, safe-area aware, no floating gap. */
.portal{position:fixed!important;inset:0!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:hidden!important}
.viewport{flex:1 1 auto;min-height:0;padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));overscroll-behavior-y:contain}
.bottomnav{position:absolute;left:50%;right:auto;bottom:calc(8px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(450px,calc(100% - 24px));height:72px;min-height:72px;max-height:72px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;justify-content:initial;gap:3px;margin:0;padding:6px 7px;background:linear-gradient(145deg,var(--surface),var(--nav));border:1px solid var(--stroke);border-radius:25px;box-shadow:0 13px 32px #0008;z-index:30;flex-shrink:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.navbtn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;width:100%;height:100%;padding:6px 2px 7px;border:0;border-radius:19px;gap:4px;background:transparent;color:var(--muted);font-size:11px;line-height:1.05;font-weight:650;transition:background .16s,color .16s}
.navbtn svg{width:23px;height:23px;flex-shrink:0;stroke-width:1.85}
.navbtn.active{color:var(--green);background:linear-gradient(150deg,#75ed9c1b,#76dd9e05);text-shadow:0 0 10px #70dba52a}
.navbtn.active:after{display:none!important;content:none!important}
.navbtn:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
:root[data-theme=light] .bottomnav{box-shadow:0 9px 26px #162b2526}
:root[data-theme=light] .navbtn.active{background:#1b886b15}
@media(max-width:374px){.bottomnav{width:calc(100% - 14px);height:66px;min-height:66px;max-height:66px;border-radius:21px;padding:4px;gap:1px}.navbtn{font-size:10px;gap:3px;border-radius:16px}.navbtn svg{width:20px;height:20px}.viewport{padding-bottom:calc(79px + env(safe-area-inset-bottom,0px))}}
@media(min-width:800px){.bottomnav{width:min(430px,calc(100% - 44px));height:72px;min-height:72px;max-height:72px;gap:4px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}.viewport{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}}
@media(orientation:landscape) and (max-height:500px){.bottomnav{height:48px;min-height:48px;max-height:48px;bottom:6px;max-width:460px;border-radius:17px;padding:4px}.navbtn{flex-direction:row;gap:6px;padding:3px 5px;border-radius:14px;font-size:11px}.navbtn svg{width:18px;height:18px}.viewport{padding-bottom:60px}}

/* V3: native-feel scroll and single viewport. Header is moved into content viewport. */
html,body{overscroll-behavior:none!important;overscroll-behavior-y:none!important;-webkit-overflow-scrolling:auto!important;touch-action:pan-y}
.portal{position:fixed!important;inset:0!important;overflow:hidden!important;height:100dvh!important;max-height:100dvh!important;display:flex!important;min-height:0!important}
.viewport{min-height:0!important;flex:1 1 auto!important;overscroll-behavior-y:none!important;overscroll-behavior-x:none!important;scrollbar-width:none;scroll-padding-top:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.viewport::-webkit-scrollbar{display:none}
.topbar{position:relative!important;top:auto!important;z-index:1!important;flex-shrink:0!important;box-sizing:border-box}
.bottomnav{z-index:35!important}
/* Only useful editable text is selectable; long-press shouldn't highlight ordinary dashboard labels. */
.portal, .auth-shell{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,select,[contenteditable],.copyable,.copyable *{-webkit-user-select:text!important;user-select:text!important;-webkit-touch-callout:default}
/* Distinctive but restrained tab iconography. */
.navbtn svg{stroke-width:1.85;filter:none!important;transition:transform .2s ease,opacity .2s ease}
.navbtn.active svg{transform:translateY(-1px)}
.navbtn.active{background:linear-gradient(150deg,#7ff3b31a,transparent 80%)}
/* Brand-specific six-fund exposure banners (QFR sector shares vs asset allocations). */
.detail-hero{--fcolor:#8ff1b9;--fbg:#114135;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 88% 21%,color-mix(in srgb,var(--fcolor) 24%,transparent),transparent 40%),linear-gradient(125deg,#0e202a 2%,var(--fbg) 100%)!important;border:1px solid color-mix(in srgb,var(--fcolor) 48%,#24454b)!important;min-height:300px;padding:25px 27px 25px!important}
.detail-hero.theme-paif{--fcolor:#94f7be;--fbg:#0b372f}
.detail-hero.theme-pistf{--fcolor:#e5c98b;--fbg:#322b22}
.detail-hero.theme-pitseq{--fcolor:#a1d1fe;--fbg:#1d3051}
.detail-hero.theme-pimxaf{--fcolor:#c6b9f6;--fbg:#2b2949}
.detail-hero.theme-pidf{--fcolor:#f3dc99;--fbg:#363324}
.detail-hero.theme-pesmacf{--fcolor:#83ddd0;--fbg:#12403f}
.detail-hero .eyebrow{color:var(--fcolor)!important;letter-spacing:.16em}
.detail-hero .metric{margin-top:14px!important;font-size:clamp(35px,8vw,45px)!important;line-height:1.05;letter-spacing:-.05em}
.detail-hero .hero-exposure{display:flex;align-items:center;gap:12px;width:max-content;max-width:100%;margin-top:21px;padding:10px 13px;border:1px solid color-mix(in srgb,var(--fcolor) 35%,transparent);border-radius:14px;background:#06171d70}
.hero-exposure b{color:var(--fcolor);font-size:22px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.hero-exposure .exp-copy{display:flex;flex-direction:column;gap:1px}
.hero-exposure .exp-label{font-size:13px;font-weight:650;color:var(--text)}
.hero-exposure .exp-meta{font-size:10px;color:var(--muted)}
.hero-mark{position:absolute;right:-8px;top:20px;width:155px;height:155px;opacity:.27;color:var(--fcolor);pointer-events:none;z-index:-1}
.hero-mark svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
/* Ranked holdings: separate reported names from undisclosed individual weights. */
.holding-head,.holding-row{display:grid;grid-template-columns:44px minmax(0,1fr) 76px;align-items:center;gap:11px;padding:10px 3px;border-bottom:1px solid var(--stroke)}
.holding-head{padding-top:3px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.holding-head>:last-child,.holding-row>:last-child{text-align:right}
.holding-row:last-of-type{border-bottom:0}
.holding-no{font-size:12px;font-weight:750;color:var(--gold);font-variant-numeric:tabular-nums}
.holding-name{font-size:13px;font-weight:620;line-height:1.4;overflow-wrap:anywhere}
.holding-weight{font-size:12px;color:var(--muted)}
.holding-footnote{font-size:11px;line-height:1.5;color:var(--muted);margin-top:13px}
/* Actual-data load only: no fabricated 0/6 flash. */
.sk{border-radius:8px;background:linear-gradient(90deg,var(--surface2) 19%,color-mix(in srgb,var(--surface2) 70%,var(--stroke)) 48%,var(--surface2) 79%);background-size:190% 100%;animation:skflow 1.6s ease-in-out infinite}
.sk-title{height:19px;width:37%;margin-bottom:20px}.sk-subtitle{height:13px;width:66%;margin-bottom:24px}.sk-stat{height:90px;flex:1;border-radius:13px}.sk-line{height:49px;width:100%;margin:9px 0}.skeleton-pane{padding:19px;border:1px solid var(--stroke);border-radius:22px;background:var(--surface);margin:12px 0 20px}.skeleton-row{display:flex;gap:10px}.skeleton-row .sk{flex:1}
@keyframes skflow{0%{background-position:150% 0}100%{background-position:-150% 0}}
@media(prefers-reduced-motion:reduce){.sk{animation:none!important}.navbtn svg{transition:none!important;transform:none!important}}
@media(max-width:374px){.detail-hero{padding:19px 18px!important;min-height:282px}.hero-mark{width:112px;height:112px}.hero-exposure{padding:8px 9px}.holding-head,.holding-row{grid-template-columns:30px minmax(0,1fr) 60px;gap:6px}}
@media(orientation:landscape) and (max-height:500px){.detail-hero{min-height:245px;padding:16px 22px!important}.hero-mark{width:110px;height:110px}.detail-hero .metric{font-size:32px!important}.detail-hero .hero-exposure{margin-top:12px}}

/* UI 4.1: definitive native capsule nav; previous filenames are never reused in this release. */
.portal{position:fixed!important;inset:0!important;height:100dvh!important;max-height:100dvh!important;display:block!important;overflow:hidden!important}
.viewport{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;min-height:0!important;display:block!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:none!important;padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))!important;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.viewport::-webkit-scrollbar{display:none!important}
.topbar{position:relative!important;top:auto!important;left:auto!important;right:auto!important;z-index:1!important}
.bottomnav{position:absolute!important;inset:auto auto calc(10px + env(safe-area-inset-bottom,0px)) 50%!important;transform:translateX(-50%)!important;width:min(450px,calc(100% - 24px))!important;height:72px!important;min-height:72px!important;max-height:72px!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important;justify-content:stretch!important;gap:3px!important;padding:6px 7px!important;margin:0!important;border:1px solid color-mix(in srgb,var(--green) 21%,var(--stroke))!important;border-radius:25px!important;background:color-mix(in srgb,var(--nav) 87%,var(--surface))!important;box-shadow:0 12px 42px #0009,0 0 0 1px #ffffff06!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;z-index:50!important}
.bottomnav .navbtn{position:relative!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;height:100%!important;min-width:0!important;width:100%!important;gap:5px!important;padding:5px 2px!important;margin:0!important;border:0!important;border-radius:18px!important;background:transparent!important;color:var(--muted)!important;font-weight:650!important;font-size:11px!important;line-height:1.08!important}
.bottomnav .navbtn svg{width:23px!important;height:23px!important;flex:none!important}
.bottomnav .navbtn.active{color:var(--green)!important;background:linear-gradient(130deg,#80f3b31c,#80f3b304)!important}
.bottomnav .navbtn.active:after{display:none!important;content:none!important}
.bottomnav .navbtn:focus-visible{outline:2px solid var(--green)!important;outline-offset:-2px!important}
@media(max-width:374px){.bottomnav{width:calc(100% - 16px)!important;height:65px!important;min-height:65px!important;max-height:65px!important;border-radius:22px!important;padding:4px!important;gap:1px!important}.bottomnav .navbtn{font-size:10px!important;gap:3px!important;border-radius:18px!important}.bottomnav .navbtn svg{width:21px!important;height:21px!important}.viewport{padding-bottom:calc(91px + env(safe-area-inset-bottom,0px))!important}}
@media(orientation:landscape) and (max-height:500px){.bottomnav{width:min(480px,calc(100% - 24px))!important;height:49px!important;min-height:49px!important;max-height:49px!important;bottom:7px!important;border-radius:18px!important;padding:4px!important}.bottomnav .navbtn{flex-direction:row!important;gap:6px!important;padding:4px!important;font-size:11px!important}.bottomnav .navbtn svg{width:19px!important;height:19px!important}.viewport{padding-bottom:65px!important}}
@media(min-width:800px) and (min-height:501px){.bottomnav{width:min(440px,calc(100% - 32px))!important}}

/* PWA push preferences: accessible opt-in panel. */
.push-panel{margin-top:18px}.push-panel h3{font-size:18px;margin:0 0 10px}.push-panel p{font-size:13px;line-height:1.5;color:var(--muted)}.push-state{margin:12px 0 16px;padding:10px 12px;border-radius:12px;background:var(--surface2);color:var(--muted);font-size:13px;line-height:1.5}.push-actions{display:flex;gap:9px;flex-wrap:wrap}.push-actions button{min-height:42px;padding:10px 12px;font-size:13px;border-radius:11px}.push-actions button[hidden]{display:none!important}.push-help{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.5}

/* 2026-11-13: native-edge nav. Keep home indicator safe area but remove wasted gap. */
.portal{position:fixed!important;inset:0!important;height:100%!important;height:100dvh!important;min-height:0!important;overflow:hidden!important;isolation:isolate}
.viewport{position:absolute!important;inset:0!important;bottom:0!important;height:100%!important;padding-bottom:calc(83px + env(safe-area-inset-bottom,0px))!important;overflow-y:auto!important;overscroll-behavior-y:none!important;-webkit-overflow-scrolling:touch}
.bottomnav{position:absolute!important;left:calc(8px + env(safe-area-inset-left,0px))!important;right:calc(8px + env(safe-area-inset-right,0px))!important;top:auto!important;bottom:max(2px,calc(env(safe-area-inset-bottom,0px) - 21px))!important;inset-block-start:auto!important;transform:none!important;width:auto!important;max-width:none!important;height:65px!important;min-height:65px!important;max-height:65px!important;padding:5px 6px!important;gap:3px!important;border-radius:23px!important;transition:width .22s ease, right .22s ease, height .22s ease, border-radius .22s ease, background .22s ease!important;will-change:width}
.bottomnav .navbtn{font-size:11px!important;gap:3px!important;padding:5px 2px!important;border-radius:18px!important;touch-action:manipulation}
.bottomnav .navbtn svg{height:22px!important;width:22px!important}
.bottomnav.compact{right:auto!important;left:calc(8px + env(safe-area-inset-left,0px))!important;width:64px!important;max-width:64px!important;height:60px!important;min-height:60px!important;max-height:60px!important;display:flex!important;padding:3px!important;border-radius:22px!important}
.bottomnav.compact .navbtn{display:none!important}
.bottomnav.compact .navbtn.active{display:flex!important;flex:1 1 auto!important;padding:0!important}
.bottomnav.compact .navbtn.active span{display:none!important}
.bottomnav.compact .navbtn.active svg{width:26px!important;height:26px!important}
.bottomnav.compact .navbtn.active:before{content:"";position:absolute;inset:-4px;border-radius:24px;pointer-events:none}
@media(orientation:landscape) and (max-height:500px){.bottomnav{height:49px!important;min-height:49px!important;max-height:49px!important;bottom:3px!important;border-radius:18px!important}.bottomnav.compact{height:48px!important;min-height:48px!important;max-height:48px!important;width:58px!important}.bottomnav .navbtn{flex-direction:row!important;gap:5px!important}.viewport{padding-bottom:65px!important}}
@media(max-width:350px){.bottomnav{height:59px!important;min-height:59px!important;max-height:59px!important}.viewport{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}}
/* Full-screen market pulse: matches user-selected GIF's green/red pulse and financial bars, but vector sharp at every orientation. */
.mt-launch{position:fixed;inset:0;overflow:hidden;background:radial-gradient(ellipse 80% 48% at 9% 0%,#064e3e70,transparent 75%),radial-gradient(ellipse 85% 50% at 94% 90%,#06493735,transparent 74%),linear-gradient(155deg,#03181a,#020f15 65%,#031117);z-index:200;isolation:isolate;pointer-events:all;user-select:none;-webkit-user-select:none}
.mt-launch[hidden]{display:none!important}.mt-launch:before{content:"";position:absolute;inset:0;background:linear-gradient(130deg,#165a4a10,transparent 34%,transparent 82%,#006d5420);pointer-events:none}
.mt-market-chart{position:absolute;inset:0;height:100%;width:100%;overflow:visible}.mt-market-chart.is-landscape{display:none}.mt-grid{fill:none;stroke:#1cb18a;stroke-width:1;opacity:.10;animation:mt-grid-in .4s both}.mt-chart-baseline{fill:none;stroke:#24b18a;stroke-opacity:.17;stroke-width:2}
.mt-pulse-bar{transform-box:fill-box;transform-origin:center bottom;transform:scaleY(0);animation:mt-grow .42s var(--bar-delay) cubic-bezier(.17,.8,.26,1) forwards}.mt-pulse-bar.up{fill:url(#mt-barup)}.mt-pulse-bar.down{fill:url(#mt-bardown)}
.mt-pulse-segment{stroke-dasharray:1;stroke-dashoffset:1;animation:mt-draw var(--seg-duration) var(--seg-delay) linear forwards;filter:drop-shadow(0 0 5px #43f9ac90)}.mt-pulse-segment.green{stroke:#76ffd0}.mt-pulse-segment.red{stroke:#ff666b;filter:drop-shadow(0 0 5px #f65b6aaa)}
.mt-market-dot{fill:#a0ffe0;opacity:0;animation:mt-dot-in .2s var(--dot-delay) ease-out forwards;filter:drop-shadow(0 0 5px #3cf4b0)}.mt-market-dot.down{fill:#ff8582;filter:drop-shadow(0 0 5px #ff6868)}
.mt-launch-brand{position:absolute;z-index:3;left:0;right:0;top:19%;display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateZ(0);pointer-events:none}
.mt-launch-logo{width:clamp(92px,29vw,146px);height:clamp(92px,29vw,146px);overflow:hidden;border-radius:24%;box-shadow:0 10px 33px #0008,0 0 29px #1af7a71c;opacity:0;animation:mt-brand-in .55s .35s ease-out forwards;position:relative}
.mt-launch-logo img{display:block;object-fit:cover;width:100%;height:100%}.mt-launch-logo:after{content:"";position:absolute;top:0;bottom:0;width:24%;left:-60%;transform:skew(-18deg);background:linear-gradient(90deg,transparent,#f2cf805c,transparent);animation:mt-sheen .65s 1.2s ease-out both}
.mt-launch-name{font-size:clamp(20px,5.25vw,31px);font-weight:760;letter-spacing:.06em;color:#f5f9f7;margin-top:20px;white-space:nowrap;opacity:0;animation:mt-brand-in .45s .53s ease-out forwards}
.mt-launch-sub{margin-top:10px;letter-spacing:.26em;color:#e4bc79;font-size:clamp(9px,2.5vw,12px);white-space:nowrap;opacity:0;animation:mt-brand-in .48s .7s ease-out forwards}
.mt-launch-rule{height:1px;width:150px;background:linear-gradient(90deg,transparent,#e6c681a1,transparent);margin-top:22px;opacity:0;animation:mt-brand-in .42s 1.05s ease-out forwards}
.mt-launch-caption{position:absolute;left:0;right:0;bottom:max(8%,calc(env(safe-area-inset-bottom,0px) + 26px));font-size:9px;letter-spacing:.24em;text-align:center;color:#709d92;opacity:0;animation:mt-brand-in .38s 1.2s ease-out forwards}
.mt-launch.is-exiting{opacity:0;transition:opacity .24s ease-out}
@media(orientation:landscape){.mt-market-chart.is-portrait{display:none}.mt-market-chart.is-landscape{display:block}.mt-launch-brand{left:7%;right:auto;top:50%;width:47%;align-items:flex-start;text-align:left;transform:translateY(-50%)}.mt-launch-logo{width:clamp(64px,17vh,120px);height:clamp(64px,17vh,120px)}.mt-launch-name{font-size:clamp(15px,2.65vw,28px);margin-top:14px;letter-spacing:.04em}.mt-launch-sub{font-size:clamp(8px,1.2vw,11px);letter-spacing:.22em}.mt-launch-rule{margin-top:12px}.mt-launch-caption{text-align:right;right:4%;bottom:6%;left:auto}}
@media(max-height:630px) and (orientation:portrait){.mt-launch-brand{top:12%}.mt-launch-logo{height:82px;width:82px}.mt-launch-name{margin-top:12px}.mt-launch-sub{margin-top:7px}}
@keyframes mt-grid-in{to{opacity:.11}}@keyframes mt-grow{to{transform:scaleY(1)}}@keyframes mt-draw{to{stroke-dashoffset:0}}@keyframes mt-dot-in{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes mt-brand-in{from{opacity:0;filter:brightness(.75);transform:translateY(9px) scale(.97)}to{opacity:1;filter:brightness(1);transform:none}}@keyframes mt-sheen{to{left:160%}}
@media(prefers-reduced-motion:reduce){.mt-launch *{animation-duration:.01ms!important;animation-delay:.01ms!important}.mt-launch{transition-duration:.01ms!important}.mt-pulse-segment{stroke-dashoffset:0!important}.mt-pulse-bar{transform:none!important}.mt-launch-logo,.mt-launch-name,.mt-launch-sub,.mt-launch-rule{opacity:1!important}}

/* v1.4.1: fixed-position root must fill the visual viewport via inset, not 100dvh.
   Installed iOS PWA can report 100dvh shorter than the visible Home Screen app. */
#portal.portal{
 position:fixed!important;
 inset:0!important;
 width:auto!important;
 height:auto!important;
 min-height:0!important;
 max-height:none!important;
}
/* Shared physical bottom anchor for expanded and compact dock. */
#portal.portal .bottomnav{
 bottom:max(7px,calc(env(safe-area-inset-bottom,0px) - 4px))!important;
}
@media (orientation:landscape) and (max-height:500px){
 #portal.portal .bottomnav{
  bottom:max(4px,calc(env(safe-area-inset-bottom,0px) - 4px))!important;
 }
}
/* Authentication resolves while splash is visible; login must not flash. */
body.mt-booting>#auth,body.mt-booting>#portal{visibility:hidden!important}
body.mt-booting>#mt-launch{visibility:visible!important;opacity:1!important}

/* v1.4.2: RYVO physical-screen anchored native iPhone frame.
   App stays fullscreen even when iOS standalone CSS 100dvh is shorter than the
   visible device screen. No manually guessed pixels or double safe-area inset. */
html.mt-native-frame,html.mt-native-frame body{
 height:var(--mt-screen-height)!important;
 min-height:var(--mt-screen-height)!important;
 max-height:var(--mt-screen-height)!important;
 overflow:hidden!important;
}
html.mt-native-frame #portal.portal{
 position:absolute!important;
 top:0!important;
 right:0!important;
 bottom:auto!important;
 left:0!important;
 width:100%!important;
 height:var(--mt-screen-height)!important;
 min-height:0!important;
 max-height:var(--mt-screen-height)!important;
 overflow:hidden!important;
}
html.mt-native-frame #portal.portal .viewport{
 position:absolute!important;
 inset:0!important;
 bottom:0!important;
 height:auto!important;
 min-height:0!important;
 padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))!important;
 overflow-x:hidden!important;
 overflow-y:auto!important;
 overscroll-behavior:none!important;
}
/* Expanded and collapsed nav use the same actual device-bottom anchor. */
html.mt-native-frame #portal.portal .bottomnav,
html.mt-native-frame #portal.portal .bottomnav.compact{
 position:absolute!important;
 bottom:max(8px,env(safe-area-inset-bottom,0px))!important;
 top:auto!important;
 z-index:60!important;
}
@media (orientation:landscape) and (max-height:500px){
 html.mt-native-frame #portal.portal .viewport{padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))!important}
 html.mt-native-frame #portal.portal .bottomnav,
 html.mt-native-frame #portal.portal .bottomnav.compact{bottom:max(4px,env(safe-area-inset-bottom,0px))!important}
}

/* v1.5.0: remove cumulative scroll padding; avoid a blank half-page after the last row. */
#portal.portal .viewport,
html.mt-native-frame #portal.portal .viewport {
 padding-bottom:0!important;
 scroll-padding-bottom:0!important;
}
#portal.portal .viewport #page,
html.mt-native-frame #portal.portal .viewport #page {
 min-height:0!important;
 padding-bottom:calc(75px + env(safe-area-inset-bottom,0px))!important;
}
/* Expanded dock overlays content; compact dock at bottom-left leaves most content unobscured. */
#portal.portal:has(.bottomnav.compact) .viewport #page,
html.mt-native-frame #portal.portal:has(.bottomnav.compact) .viewport #page {
 padding-bottom:calc(15px + env(safe-area-inset-bottom,0px))!important;
}
.detail-hero .hero-exposure .focus-label{font-size:clamp(17px,4.3vw,24px);line-height:1.2;letter-spacing:-.02em;max-width:65%;}
.detail-hero .metric{font-variant-numeric:tabular-nums}
.metricsgrid .mini .big.smaller{font-size:clamp(15px,3vw,20px);line-height:1.25;word-break:normal}
@media (max-width:355px){.detail-hero .hero-exposure .focus-label{font-size:16px;max-width:60%}}
@media (orientation:landscape) and (max-height:500px){
 #portal.portal .viewport #page,html.mt-native-frame #portal.portal .viewport #page {padding-bottom:61px!important}
 #portal.portal:has(.bottomnav.compact) .viewport #page,html.mt-native-frame #portal.portal:has(.bottomnav.compact) .viewport #page {padding-bottom:14px!important}
}

.detail-hero.theme-peismf{background:linear-gradient(140deg,#105149 0%,#062126 95%)!important}
.detail-hero.theme-peisitf{background:linear-gradient(140deg,#153a50 0%,#061821 95%)!important}
.detail-hero.theme-piresgf{background:linear-gradient(140deg,#193e37 0%,#082224 95%)!important}
.detail-hero.theme-pisgef{background:linear-gradient(140deg,#213f60 0%,#0c1824 95%)!important}
.detail-hero.theme-pisgsgf{background:linear-gradient(140deg,#294845 0%,#0a2221 95%)!important}
.detail-hero.theme-piusseqf{background:linear-gradient(140deg,#183d5c 0%,#0a1b2b 95%)!important}
.detail-hero.theme-pisgrtf{background:linear-gradient(140deg,#23442f 0%,#091c16 95%)!important}
.detail-hero.theme-piasgf{background:linear-gradient(140deg,#1e4750 0%,#091d28 95%)!important}
.detail-hero.theme-pientef{background:linear-gradient(140deg,#474127 0%,#1a1a13 95%)!important}
/* v1.6.0: all 13 QFR security lists and stock-market context */
.holding-market-head,.holding-market-row{display:grid!important;grid-template-columns:36px minmax(0,1fr) minmax(100px,134px)!important;gap:10px!important;align-items:start!important}
.holding-market-head{font-size:10px!important;letter-spacing:.055em!important}
.holding-market-row{padding:14px 0!important}
.holding-primary{min-width:0}.holding-market-row .holding-name{font-weight:650;line-height:1.28;font-size:13px!important}.holding-ticker{color:var(--muted);font-size:10px;margin-top:5px}.holding-news{display:block;font-size:11px;margin-top:6px;text-decoration:none;line-height:1.3}
.holding-market-side{text-align:right;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.holding-market-side strong{font-size:17px;white-space:nowrap}.holding-market-side .up{color:var(--green)}.holding-market-side .down{color:var(--red)}.holding-market-side .flat{color:var(--muted)}
.holding-market-side small{color:var(--muted);font-size:10px;line-height:1.32}.holding-market-side a{font-size:11px;text-decoration:none}
.holding-footnote{line-height:1.55!important}
.nav-share-row{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:21px 0 12px}
.nav-share-row strong{font-size:14px}.share-all-nav{font-size:12px!important;padding:10px 14px!important;white-space:nowrap;min-height:39px}
@media(max-width:365px){.holding-market-head,.holding-market-row{grid-template-columns:24px minmax(0,1fr) minmax(88px,113px)!important;gap:6px!important}.holding-market-row .holding-name{font-size:12px!important}.holding-market-side strong{font-size:15px}.holding-market-side small{font-size:9px}.share-all-nav{font-size:11px!important;padding:9px!important}}

/* Fund Intelligence v11: touch search, user-scoped favorites, NAV change semantics. */
.fund-search-wrap{position:relative;display:flex;align-items:center;margin:13px 0 8px;border:1px solid var(--line);border-radius:16px;background:var(--panel);min-height:47px;padding:0 13px;gap:8px}
.fund-search-icon{font-size:25px;line-height:1;color:var(--muted);transform:rotate(-25deg)}
#fund-search{width:100%;min-width:0;border:0!important;background:transparent!important;outline:0!important;color:var(--text)!important;font-size:14px!important;box-shadow:none!important;padding:12px 2px!important}
#fund-search::placeholder{color:var(--muted)}
#fund-search::-webkit-search-cancel-button{filter:grayscale(1)}
.fund-search-count{font-size:10px;white-space:nowrap;color:var(--muted)}
.favourite-hint{font-size:11px;line-height:1.4;color:var(--muted);margin-bottom:13px;padding-left:2px}
.fund-tr.clickable [data-col=name]{position:relative;min-width:0;padding-right:25px}
.favorite-btn{border:0;background:transparent;padding:4px;min-height:31px;min-width:30px;font-size:23px;line-height:1;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;z-index:2;touch-action:manipulation;transition:color .12s ease,transform .12s ease}
.fund-tr .favorite-btn{position:absolute;right:0;top:-6px}
.favorite-btn.selected{color:var(--gold,#dec99c)}
.favorite-btn:active{transform:scale(.91)}
.detail-hero{position:relative}
.detail-hero>.favorite-btn{position:absolute;right:16px;top:13px;font-size:27px;z-index:3;color:#c7d8d7}
.detail-hero>.favorite-btn.selected{color:#f5d58b}
.detail-hero .caption .nav-movement.up{color:var(--green)!important;font-weight:750}
.detail-hero .caption .nav-movement.down{color:var(--red)!important;font-weight:750}
.detail-hero .caption .nav-movement.flat{color:var(--muted)!important}
.news-context-tag{color:var(--green);font-size:11px;letter-spacing:.015em;font-weight:700}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:390px){.fund-tr.clickable [data-col=name]{padding-right:19px}.fund-tr .favorite-btn{right:-3px;font-size:21px}.fund-search-count{font-size:9px}}

dialog.panel{width:min(94vw,580px);max-height:85dvh;overflow:auto;color:var(--text);background:var(--surface)}dialog::backdrop{background:#0009}dialog textarea{width:100%}dialog fieldset{margin:12px 0}.nav-share-row .btnrow{display:flex;flex-wrap:wrap;gap:6px}
.overview-head{margin-bottom:5px}.overview-head .overview-date{font-size:16px;font-weight:650;line-height:1.25;margin:5px 0 0;color:var(--muted)}.nav-share-row{margin:7px 0 8px;gap:6px}.nav-share-row .daily-nav-share{padding:8px 12px;min-height:40px;font-size:12px;white-space:nowrap}.daily-nav-dialog{width:min(94vw,610px);max-height:90dvh;overflow:auto;color:var(--text);background:var(--surface)}.daily-nav-dialog img{width:100%;height:auto;display:block}.daily-nav-dialog .btnrow{margin-top:10px;gap:8px}.daily-nav-dialog .btnrow form{margin:0}.daily-nav-dialog::backdrop{background:#0009}.nav-status{text-align:center;min-width:84px;font-weight:700}.nav-job{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);gap:6px;align-items:center;padding:7px 0;border-bottom:1px solid var(--stroke)}.nav-job:last-child{border-bottom:0}.nav-job time{text-align:right;color:var(--muted);font-size:11px}.scheduler-history{margin-top:9px}.scheduler-history summary{font-weight:650;padding:6px 0}.nav-result{margin-top:8px}.nav-result p{margin:4px 0}@media(max-width:540px) and (orientation:portrait){.fund-tr{padding-block:7px}.fund-tr.heading{padding-block:7px}.fund-tr .fullname{margin-top:2px}.pagehead{margin-bottom:10px}.overview-head{margin-bottom:5px}.panel{margin-bottom:9px}.fund-list .listrow{padding-block:9px}.sectiontitle{margin-block:10px 6px}}
.fund-search-wrap.fund-search-visible{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--muted);border-color:color-mix(in srgb,var(--muted) 48%,var(--stroke));border-radius:13px;margin:8px 0 10px;padding:0 10px;min-height:43px}
.fund-search-visible:focus-within{border-color:var(--green)}
.fund-search-wrap.fund-search-visible input{background:transparent;border:0;box-shadow:none;padding:8px 0;min-width:0;flex:1}
.fund-search-visible .fund-search-count{white-space:nowrap;font-size:11px}
.exposure-section h2{font-size:17px;margin:12px 0 8px}
.exposure-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left;font-size:13px}
.exposure-table th,.exposure-table td{padding:8px;border-bottom:1px solid var(--stroke);vertical-align:middle;overflow-wrap:anywhere}
.exposure-table th{background:var(--surface2);color:var(--muted);font-weight:650;font-size:11px}
.exposure-table th:first-child{width:52%}
.exposure-table th:nth-child(2){width:29%}
.exposure-table th:last-child,.exposure-weight{text-align:right;white-space:nowrap}
.exposure-table tr:last-child td{border-bottom:0}
.exposure-fund{display:flex;gap:2px;align-items:center;justify-content:space-between}
.exposure-link,.news-fund-link{font:inherit;border:0;background:none;text-align:left;padding:0;color:inherit;min-width:0}
.exposure-link{font-weight:650;overflow-wrap:anywhere}
.exposure-table small{display:block;margin-top:2px;color:var(--muted);font-size:11px}
.exposure-fund .favorite-btn{position:static;flex-shrink:0}
.exposure-weight{font-variant-numeric:tabular-nums;font-weight:700}
.market-news .market-story{padding-block:13px;overflow-wrap:anywhere}
.market-news .market-story .summary{margin:6px 0 8px}
.news-fund-list{margin:8px 0}
.news-fund-link{display:block;color:var(--green);margin:4px 0}
.news-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 48px;color:var(--muted);font-size:12px}
.news-pagination button{min-height:40px}
.news-pagination button:disabled{opacity:.45}

#fund-search{font-size:16px!important;padding:9px 0!important}

[data-search-fund][hidden]{display:none!important}.auth-recovery-link{display:block;margin:14px auto 0}
.auth-recovery-link[hidden],#auth-form[hidden],#auth-form [hidden],.auth-card section[hidden]{display:none!important}
.auth-recovery-back{margin:0 0 12px;padding:8px 0}
.admin-run{display:grid;gap:4px;min-width:0;padding:10px 0;border-bottom:1px solid var(--stroke);overflow-wrap:anywhere}
.admin-run:last-child{border-bottom:0}
.admin-run time{font-size:12px;color:var(--muted)}
.infra-quota{border-top:1px solid var(--stroke);padding:12px 0}
.infra-quota h4,.infra-top h3,.infra-quota p{margin:0}
.infra-quota>div,.infra-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 10px}
.infra-top{padding-bottom:10px}
.infra-quota strong{color:var(--green);font-variant-numeric:tabular-nums}
.infra-quota meter{display:block;width:100%;height:8px;margin-top:8px;accent-color:var(--green)}
.infra-note{margin-top:0}

/* v1.8 UX polish: use skeletons only for genuine network pending states. */
.mt-loading{padding:4px 0 20px;pointer-events:none}
.skeleton-heading{padding:4px 3px 8px}
.skeleton-heading .sk-title{height:26px;width:min(210px,48%);margin-bottom:12px}
.skeleton-heading .sk-subtitle{height:12px;width:min(285px,72%);margin-bottom:5px}
.mt-loading .skeleton-pane{margin:10px 0;border-radius:18px;padding:16px}
.mt-loading .sk-line{height:19px;border-radius:6px;margin:13px 0}
.mt-loading .sk-price{height:36px;width:45%;margin-top:34px}
.mt-loading .sk-hero{min-height:158px;background:linear-gradient(145deg,var(--surface),var(--surface2))}
.mt-loading .sk-stat{height:67px;border-radius:12px}
@media(prefers-reduced-motion:reduce){.mt-loading .sk{animation:none!important}}
.auth-recovery-link{font-size:13px;font-weight:550;min-height:38px}

/* Subpage-only edge swipe: no gesture binding or indicator on root tabs. */
.mt-edge-back{position:fixed;z-index:100;left:5px;top:45%;width:32px;height:49px;border-radius:0 24px 24px 0;display:flex;align-items:center;justify-content:center;background:rgba(17,45,51,.91);border:1px solid rgba(135,245,190,.23);color:var(--green);font-size:31px;line-height:1;pointer-events:none;opacity:0;transform:translate3d(-14px,0,0) scale(.9);transition:opacity 130ms ease,transform 130ms ease;will-change:transform,opacity}
.mt-edge-back.visible{opacity:.9;transform:translate3d(5px,0,0) scale(1)}
.mt-edge-back.ready{background:rgba(29,77,66,.97);opacity:1}
#portal .viewport{touch-action:pan-y}
.exposure-table .fund-open-row{cursor:pointer;touch-action:pan-y;transition:background-color 125ms ease}
.exposure-table .fund-open-row:active{background:rgba(119,241,183,.085)}
.exposure-table .fund-open-row:focus-visible{outline:2px solid var(--green);outline-offset:-2px;background:rgba(119,241,183,.07)}
@media(hover:hover){.exposure-table .fund-open-row:hover{background:rgba(119,241,183,.055)}}
@media(prefers-reduced-motion:reduce){.mt-edge-back,.exposure-table .fund-open-row{transition:none!important}}

/* Fluid in-app content pop. Only actual subpages enable this class on active touch. */
.mt-edge-back{display:none!important}
#page.mt-swipe-dragging,#page.mt-swipe-settling{
 position:relative!important;z-index:3!important;min-height:100%!important;
 background:var(--bg)!important;box-shadow:-12px 0 32px #0005;
 border-radius:0!important;will-change:transform;overflow:clip;
}
#page.mt-swipe-dragging{transition:none!important}
#viewport .mt-swipe-underlay{
 position:fixed;left:0;right:0;bottom:0;z-index:2!important;overflow:hidden;
 pointer-events:none!important;background:var(--bg);opacity:.74;
}
.mt-swipe-underlay-inner{width:100%;height:100%;will-change:transform;overflow:hidden}
.mt-swipe-underlay-content{width:min(1080px,100%);margin:auto;padding:20px 19px 38px;min-height:100%}
@media(max-width:430px){.mt-swipe-underlay-content{padding:17px 12px 28px}}
#portal .viewport{touch-action:pan-y;overscroll-behavior-x:none!important}
@media(prefers-reduced-motion:reduce){#page.mt-swipe-settling,.mt-swipe-underlay-inner{transition-duration:0ms!important}}
