:root {
  --primary: #ee3f4d;
  --primary-dark: #bd2635;
  --up: #e43d4f;
  --down: #169b74;
  --ink: #15161b;
  --muted: #737681;
  --line: #e8e9ee;
  --surface: #ffffff;
  --canvas: #f5f6f9;
  --soft-red: #fff1f2;
  --soft-green: #ecfaf5;
  --sidebar: #17181d;
  --font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-scale: 1;
  --font-brand-size: 16px;
  --font-navigation-size: 12px;
  --font-page-title-size: 21px;
  --font-section-title-size: 20px;
  --font-card-title-size: 15px;
  --font-body-size: 12px;
  --font-auxiliary-size: 10px;
  --font-button-size: 11px;
  --font-input-size: 12px;
  --font-metric-size: 15px;
  --font-amount-size: 40px;
  --font-plate-name-size: 15px;
  --font-fund-name-size: 14px;
  --font-ai-size: 10px;
  --font-table-size: 10px;
  --holding-list-header-size: 12px;
  --holding-list-date-size: 10px;
  --asset-summary-amount-size: 34px;
  --asset-summary-label-size: 12px;
  --asset-summary-today-size: 34px;
  --mobile-nav-opacity: .7;
  --announcement-speed: 18s;
  --card-radius: 20px;
  --background-image: none;
  --background-opacity: .16;
  --liuge-accent: #a36e25;
  --liuge-hero-background: #fff8ec;
  --liuge-latest-card-background: #fff;
  --liuge-history-card-background: #fff;
  --liuge-red: #ec5f68;
  --liuge-blue: #4c86dc;
  --liuge-green: #47a97b;
  --referral-recharge-label-color: #606574;
  --referral-recharge-value-color: #15161b;
  --referral-recharge-amount-color: #ee3f4d;
  --referral-recharge-auxiliary-color: #8a8e9b;
  --liuge-ball-size: 58px;
  --liuge-ball-mobile-size: 42px;
  --liuge-ball-font-size: 21px;
  --liuge-history-ball-size: 38px;
  --liuge-history-ball-mobile-size: 34px;
  --liuge-history-ball-font-size: 11px;
  --liuge-ball-border-width: 3px;
  --liuge-hero-radius: 24px;
  --liuge-latest-card-radius: 22px;
  --liuge-history-card-radius: 16px;
  --liuge-history-columns: 1;
  --shadow: 0 18px 50px rgba(31, 34, 46, .08);
  --asset-fixed-offset-x: 0px;
  --asset-fixed-offset-y: 0px;
  --asset-decoration-offset-x: 0px;
  --asset-decoration-offset-y: 18px;
  --mobile-top-text-offset-x: 0px;
  --mobile-top-text-offset-y: 0px;
  --mobile-top-text-space: 0px;
  --home-ai-offset-y: 0px;
  --home-news-offset-y: 0px;
  --home-hot-offset-y: 0px;
  font-family: var(--font-family);
  color: var(--ink);
  background: var(--canvas);
}
[hidden] { display:none!important; }

* { box-sizing: border-box; }
button,a,input,select,textarea { -webkit-tap-highlight-color: transparent; }
html { background: var(--canvas); }
html, body { max-width: 100%; overflow-x: hidden; touch-action: pan-y; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 80% -10%, rgba(238, 63, 77, .09), transparent 28rem), var(--canvas); zoom: var(--font-scale); }
body::before { content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:var(--background-image);background-size:cover;background-position:center;background-attachment:fixed;opacity:var(--background-opacity); }
button, input, select { font: inherit; }
button { color: inherit; }
.app-shell { min-height: 100vh; position:relative;z-index:1; }
.side-nav { position: fixed; inset: 0 auto 0 0; z-index: 60; width: 230px; padding: 28px 20px; background: var(--sidebar); color: #fff; display: flex; flex-direction: column; }
.brand-block { display: flex; align-items: center; gap: 12px; padding: 0 8px 30px; }
.brand-mark { width: 40px; height: 40px; border-radius: 14px; background: linear-gradient(135deg, var(--primary), #ff8d74); color: #fff; display: inline-grid; place-items: center; font-weight: 900; box-shadow: 0 10px 24px rgba(238, 63, 77, .28); }
.brand-mark img { width:100%;height:100%;object-fit:cover;border-radius:inherit; }
.brand-block strong { display: block; font-size: 16px; }
.brand-block small { display: block; color: #8d9099; margin-top: 4px; font-size: 8px; letter-spacing: .14em; }
.side-nav nav { display: grid; gap: 8px; }
.nav-button { width: 100%; border: 0; background: transparent; color: #a8aab2; padding: 13px 14px; border-radius: 14px; display: flex; gap: 12px; align-items: center; cursor: pointer; text-align: left; transition: .2s ease; }
.nav-button:hover { background: #23252c; color: #fff; }
.nav-button.active { background: linear-gradient(135deg, rgba(238,63,77,.24), rgba(238,63,77,.08)); color: #fff; }
.nav-icon { width: 24px; font-size: 18px; text-align: center; }
.nav-icon svg { display:block;width:1em;height:1em;margin:auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round; }
.side-risk { margin-top: auto; padding: 14px; border: 1px solid #30323b; border-radius: 14px; color: #7f828c; font-size: 11px; line-height: 1.7; }
.app-body { margin-left: 230px; min-height: 100vh; }
.topbar { height: 84px; position: sticky; top: 0; z-index: 15; background: color-mix(in srgb,var(--canvas) 86%,transparent); backdrop-filter: blur(18px); display: flex; align-items: center; justify-content: space-between; padding: 0 34px; border-bottom: 1px solid rgba(226,227,233,.8); }
.topbar { display:none; }
.topbar h1 { font-size: 21px; margin: 0 0 4px; }
.topbar p { margin: 0; color: var(--muted); font-size: 12px; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.us-night-market-button { display:grid;gap:2px;min-width:116px;height:42px;padding:5px 11px;border:1px solid #27364a;border-radius:14px;background:#0b1725;color:#f8fafc;text-align:left;cursor:pointer;box-shadow:0 6px 18px rgba(8,19,32,.16); }
.us-night-market-button span { color:#9cabc0;font-size:8px;line-height:1; }
.us-night-market-button b { max-width:150px;overflow:hidden;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap; }
.icon-button, .account-button { border: 1px solid var(--line); background: rgba(255,255,255,.9); border-radius: 14px; cursor: pointer; box-shadow: 0 5px 18px rgba(35,36,44,.04); }
.icon-button { width: 42px; height: 42px; font-size: 22px; }
.account-button { height: 42px; padding: 4px 12px 4px 5px; display: flex; align-items: center; gap: 8px; }
.account-button span { width: 32px; height: 32px; border-radius: 11px; display: grid; place-items: center; background: var(--soft-red); color: var(--primary); font-weight: 800; }
.account-button span img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.account-button b { font-size: 12px; }
.announcement { margin: 18px 34px 0; padding: 12px 16px; border: 1px solid #ffd9dc; border-radius: 14px; background: #fff7f7; color: #9c313d; font-size: 12px; }
.asset-sticky-shell.has-assets { position:fixed;z-index:45;top:calc(28px + var(--asset-fixed-offset-y));isolation:isolate;width:100%;padding:3px 4px 4px;background:var(--canvas);transform:translate3d(var(--asset-fixed-offset-x),0,0); }
.asset-sticky-shell.has-assets::before { content:"";position:absolute;z-index:-1;right:-100vw;bottom:0;left:-100vw;height:calc(100% + 120px);background:var(--canvas);pointer-events:none; }
.view.has-fixed-assets { padding-top:var(--asset-fixed-height,0px); }
.control-sticky-shell.has-assets { padding:8px 4px 6px; }
.control-sticky-shell .market-list-toolbar { margin-bottom:0; }
.fund-ranking-sticky-shell .section-heading { margin:0 0 8px; }
.fund-ranking-controls { display:grid;gap:8px; }
.fund-ranking-fixed-status { padding:8px 10px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface) 95%,var(--primary) 5%); }
.fund-ranking-fixed-status .fund-ranking-group-status { margin:3px 0 0; }
.mobile-top-text { position:fixed;z-index:155;top:calc(16px + var(--mobile-top-text-offset-y));left:calc(50% + var(--mobile-top-text-offset-x));width:min(46vw,250px);padding:1px 6px;color:var(--ink);font-size:10px;font-weight:750;line-height:1.15;text-align:center;white-space:pre-wrap;transform:translateX(-50%);pointer-events:none; }
main { width: min(1240px, calc(100% - 68px)); margin: 0 auto; padding: 28px 0 70px; }
.view { display: none; animation: viewIn .24s ease; }
.view.active { display: block; }
@keyframes viewIn { from { opacity: 0; } }
.liuge-hero { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;border:1px solid color-mix(in srgb,var(--liuge-accent) 24%,var(--line));border-radius:var(--liuge-hero-radius);background:radial-gradient(circle at 92% 10%,color-mix(in srgb,var(--liuge-accent) 20%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--liuge-hero-background) 45%,var(--surface)),var(--liuge-hero-background));box-shadow:var(--shadow); }
.liuge-hero span { color:var(--liuge-accent);font-size:9px;font-weight:800;letter-spacing:.14em; }
.liuge-hero h2 { margin:6px 0 0;font-size:24px; }
.liuge-hero p { margin:7px 0 0;color:var(--muted);font-size:10px; }
.liuge-latest { margin-top:18px; }
.liuge-latest-card { padding:24px;border:1px solid color-mix(in srgb,var(--liuge-accent) 18%,var(--line));border-radius:var(--liuge-latest-card-radius);background:var(--liuge-latest-card-background);box-shadow:var(--shadow); }
.liuge-latest-head { display:flex;align-items:flex-start;justify-content:space-between;gap:16px; }
.liuge-latest-head span { display:block;color:var(--muted);font-size:9px; }
.liuge-latest-head h3 { margin:5px 0 0;font-size:20px; }
.liuge-latest-head time { color:var(--liuge-accent);font-size:10px; }
.liuge-wave-legend { display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:16px;color:var(--muted);font-size:9px; }
.liuge-wave-legend span { padding:5px 8px;border-radius:999px;background:#f7f7f8;font-weight:750; }
.liuge-wave-legend .red { color:var(--liuge-red);background:color-mix(in srgb,var(--liuge-red) 10%,var(--surface)); }
.liuge-wave-legend .blue { color:var(--liuge-blue);background:color-mix(in srgb,var(--liuge-blue) 10%,var(--surface)); }
.liuge-wave-legend .green { color:var(--liuge-green);background:color-mix(in srgb,var(--liuge-green) 10%,var(--surface)); }
.liuge-wave-legend .special { color:var(--liuge-accent);background:color-mix(in srgb,var(--liuge-accent) 12%,var(--surface)); }
html[data-liuge-show-wave-legend="false"] .liuge-wave-legend { display:none; }
.liuge-balls { display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px; }
.liuge-ball-wrap { display:flex;align-items:center;gap:12px; }
.liuge-special-separator { color:#b4a58e;font-size:20px;font-weight:800; }
.liuge-ball { width:var(--liuge-ball-size);height:var(--liuge-ball-size);display:grid;place-items:center;padding:7px 4px;border:var(--liuge-ball-border-width) solid #d6d8dd;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 3px #fff,0 6px 16px rgba(33,34,42,.08);transition:border-radius .2s ease,width .2s ease; }
.liuge-ball b { font-size:var(--liuge-ball-font-size);line-height:1; }
.liuge-ball small { display:flex;align-items:center;gap:2px;margin-top:2px;color:#6f7380;font-size:9px;font-weight:700; }
.liuge-ball small i,.liuge-mini-ball small i { font-style:normal;line-height:1; }
.liuge-ball.red { border-color:var(--liuge-red);background:color-mix(in srgb,var(--liuge-red) 10%,var(--surface)); }
.liuge-ball.blue { border-color:var(--liuge-blue);background:color-mix(in srgb,var(--liuge-blue) 10%,var(--surface)); }
.liuge-ball.green { border-color:var(--liuge-green);background:color-mix(in srgb,var(--liuge-green) 10%,var(--surface)); }
html[data-liuge-ball-shape="rounded"] .liuge-ball { border-radius:20%; }
html[data-liuge-ball-shape="square"] .liuge-ball { border-radius:0; }
html[data-liuge-ball-shape="pill"] .liuge-ball { width:calc(var(--liuge-ball-size) * 1.2);border-radius:999px; }
.liuge-section-heading { align-items:flex-end; }
.liuge-year-filter { display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px; }
.liuge-year-filter select { min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink); }
.liuge-zodiac-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px; }
.liuge-zodiac-card { padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface); }
.liuge-zodiac-title { display:flex;align-items:center;gap:8px; }
.liuge-zodiac-title i { width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--liuge-accent) 12%,var(--surface));font-size:19px;font-style:normal; }
.liuge-zodiac-card b { display:block;color:var(--liuge-accent);font-size:14px; }
.liuge-zodiac-card span { display:block;margin-top:7px;color:var(--muted);font-size:10px;line-height:1.6; }
.liuge-history-list { display:grid;grid-template-columns:repeat(var(--liuge-history-columns),minmax(0,1fr));gap:10px; }
.liuge-history-row { display:grid;grid-template-columns:minmax(130px,.55fr) minmax(0,1.45fr);align-items:center;gap:16px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--liuge-history-card-radius);background:var(--liuge-history-card-background); }
html[data-liuge-history-columns="2"] .liuge-history-row { grid-template-columns:1fr; }
html[data-liuge-history-columns="2"] .liuge-history-balls { justify-content:flex-start; }
.liuge-history-meta b,.liuge-history-meta span { display:block; }
.liuge-history-meta b { font-size:12px; }
.liuge-history-meta span { margin-top:5px;color:var(--muted);font-size:9px; }
.liuge-history-balls { display:flex;justify-content:flex-end;align-items:center;gap:7px; }
.liuge-mini-ball { width:var(--liuge-history-ball-size);height:var(--liuge-history-ball-size);display:grid;place-items:center;padding:4px 2px;border:max(1px,calc(var(--liuge-ball-border-width) - 1px)) solid #d6d8dd;border-radius:50%;background:#fff;font-size:var(--liuge-history-ball-font-size);font-weight:800;transition:border-radius .2s ease,width .2s ease; }
.liuge-mini-ball small { display:block;color:#707480;font-size:10px;font-weight:700;line-height:1; }
.liuge-mini-ball.red { border-color:var(--liuge-red);background:color-mix(in srgb,var(--liuge-red) 10%,var(--surface)); }
.liuge-mini-ball.blue { border-color:var(--liuge-blue);background:color-mix(in srgb,var(--liuge-blue) 10%,var(--surface)); }
.liuge-mini-ball.green { border-color:var(--liuge-green);background:color-mix(in srgb,var(--liuge-green) 10%,var(--surface)); }
html[data-liuge-history-ball-shape="rounded"] .liuge-mini-ball { border-radius:20%; }
html[data-liuge-history-ball-shape="square"] .liuge-mini-ball { border-radius:0; }
html[data-liuge-history-ball-shape="pill"] .liuge-mini-ball { width:calc(var(--liuge-history-ball-size) * 1.2);border-radius:999px; }
.liuge-source-note { margin:16px 2px 0;color:var(--muted);font-size:9px;line-height:1.7;text-align:center; }
.liuge-error,.liuge-empty { padding:30px;border:1px dashed var(--line);border-radius:18px;background:var(--surface);color:var(--muted);font-size:11px;text-align:center; }
.portfolio-hero { min-height: 228px; border-radius: 28px; padding: 28px; background: linear-gradient(125deg, #22242b, #17181d 58%, #351d22); color: #fff; position: relative; overflow: hidden; box-shadow: var(--shadow); }
.portfolio-hero::after { content: ""; position: absolute; width: 280px; height: 280px; border-radius: 50%; right: -80px; top: -120px; background: radial-gradient(circle, rgba(238,63,77,.52), rgba(238,63,77,0)); }
.hero-label { color: #a9abb2; font-size: 12px; }
.hero-value { position: relative; z-index: 1; font-size: clamp(36px, 6vw, 58px); font-weight: 800; letter-spacing: -.04em; margin: 11px 0 6px; }
.hero-pnl { font-size: 14px; color: #ff939c; }
.hero-pnl.down { color: #6ad7b4; }
.hero-stats { position: relative; z-index: 1; margin-top: 30px; display: grid; grid-template-columns: repeat(4, minmax(100px, 1fr)); gap: 12px; }
.hero-stat { border-top: 1px solid rgba(255,255,255,.12); padding-top: 13px; }
.hero-stat span { display: block; color: #93969f; font-size: 10px; }
.hero-stat b { display: block; margin-top: 5px; font-size: 15px; }
.guest-hero { position: relative; z-index: 1; max-width: 620px; }
.guest-hero h2 { font-size: clamp(26px, 4vw, 44px); margin: 8px 0; letter-spacing: -.03em; }
.guest-hero p { color: #aeb0b8; line-height: 1.7; }
.primary-button { border: 0; border-radius: 14px; background: linear-gradient(135deg, var(--primary), #ff7567); color: #fff; min-height: 44px; padding: 0 20px; font-weight: 700; cursor: pointer; box-shadow: 0 10px 24px rgba(238,63,77,.2); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 30px 2px 14px; }
.section-heading span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.section-heading h2 { margin: 5px 0 0; font-size: 20px; }
.status-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 7px 11px; background: #fff; border: 1px solid var(--line); color: var(--muted) !important; font-size: 10px !important; letter-spacing: 0 !important; }
.text-button { border: 0; background: transparent; color: var(--primary); cursor: pointer; font-size: 12px; font-weight: 700; }
.plan-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--card-radius); padding: 20px; box-shadow: 0 10px 34px rgba(31,34,46,.04); }
.plan-head { display: flex; justify-content: space-between; gap: 16px; }
.plan-head h3 { margin: 0; font-size: 17px; }
.plan-head p { margin: 7px 0 0; color: var(--muted); line-height: 1.6; font-size: 12px; }
.plan-head .plan-analysis-time { width: fit-content; padding: 5px 8px; border-radius: 8px; background: #fff0f1; color: var(--primary); font-weight: 750; }
.plan-head-actions { flex: none; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.plan-toggle-button { min-height: 32px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--muted); cursor: pointer; font-size: var(--font-button-size); }
.plan-collapsible { margin-top: 10px; }
.plan-collapsible > p { margin: 7px 0 0; color: var(--muted); line-height: 1.6; font-size: var(--font-body-size); }
.plan-collapsible.collapsed { display: none; }
.model-chip { flex: none; color: var(--primary); background: var(--soft-red); padding: 8px 10px; border-radius: 11px; font-size: 10px; height: fit-content; }
.membership-preview-lock { position:relative!important;min-height:76px;overflow:hidden!important;cursor:pointer;isolation:isolate; }
.membership-preview-lock > * { filter:blur(6px);opacity:.68;pointer-events:none!important;user-select:none; }
.membership-preview-lock::after { content:attr(data-membership-preview-label) " · 点击查看原因";position:absolute;z-index:4;left:50%;top:50%;width:max-content;max-width:calc(100% - 28px);transform:translate(-50%,-50%);padding:10px 14px;border:1px solid color-mix(in srgb,var(--primary) 26%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--primary);box-shadow:0 12px 34px rgba(31,34,46,.13);font-size:var(--font-button-size);font-weight:850;text-align:center;white-space:normal;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px); }
.analysis-source-badge { flex: none; padding: 7px 9px; border: 1px solid transparent; border-radius: 10px; font-size: var(--font-button-size); font-weight: 800; white-space: nowrap; }
.analysis-source-badge.ai { color: #315ba6; border-color: #cedcff; background: #eef3ff; }
.analysis-source-badge.local { color: #865b14; border-color: #f0d7a7; background: #fff8e8; }
.analysis-source-badge.mixed { color: #6b4aa4; border-color: #decff3; background: #f6f0ff; }
.analysis-source-banner { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 13px; }
.analysis-source-banner > div { min-width: 0; }
.analysis-source-banner strong, .analysis-source-banner span { display: block; }
.analysis-source-banner strong { font-size: var(--font-card-title-size); }
.analysis-source-banner span { margin-top: 3px; color: var(--muted); font-size: var(--font-ai-size); line-height: 1.45; }
.analysis-source-banner > b { flex: none; max-width: 45%; overflow: hidden; color: var(--muted); font-size: var(--font-ai-size); text-overflow: ellipsis; white-space: nowrap; }
.valuation-analysis-badges { display: flex; flex: none; align-items: flex-end; gap: 6px; max-width: 48%; }
.valuation-analysis-badges > b { max-width: 100%; overflow: hidden; color: var(--muted); font-size: var(--font-ai-size); text-overflow: ellipsis; white-space: nowrap; }
.analysis-source-banner .valuation-risk-mode { display: inline-flex; flex: none; align-items: center; margin: 0; padding: 4px 8px; border-radius: 999px; font-size: var(--font-ai-size); font-weight: 800; line-height: 1.2; white-space: nowrap; }
.analysis-source-banner .valuation-risk-mode.strict { color: #1b65c8; background: #e8f0ff; }
.analysis-source-banner .valuation-risk-mode.autonomous { color: #8b3fc0; background: #f2e8ff; }
.analysis-source-banner.ai { border-color: #cedcff; background: #f5f8ff; }
.analysis-source-banner.local { border-color: #efd9ad; background: #fffaf0; }
.analysis-source-banner.mixed { border-color: #ddcff2; background: #faf7ff; }
.analysis-source-banner.screened { border-color: #dfe3ea; background: #f7f8fa; }
.home-news-heading { padding: 16px 18px; border: 1px solid #dbe4fb; border-radius: var(--card-radius); background: linear-gradient(135deg,#f7f9ff,#fff); box-shadow: 0 10px 30px rgba(49,91,166,.05); }
.home-news-heading .primary-button { min-height: 40px; }
.home-section-block { display:flow-root; }
.home-ai-block { margin-top:var(--home-ai-offset-y); }
.home-news-block { margin-top:var(--home-news-offset-y); }
.home-hot-block { margin-top:var(--home-hot-offset-y); }
.home-portfolio-block { margin-top:4px; }
.home-trades-heading { margin-top:22px!important; }
.home-section-block .section-heading { margin-top:8px;margin-bottom:8px; }
.asset-sticky-shell.has-assets > .announcement { margin:2px 0 0;padding:6px 10px;border-radius:11px;font-size:max(9px,var(--font-body-size)); }
.plan-items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 16px; }
.plan-recommendations-first { margin-top:10px; }
.plan-analysis-details { margin-top:16px;padding-top:14px;border-top:1px solid var(--line); }
.plan-item { border: 1px solid var(--line); border-radius: 16px; padding: 14px; }
.plan-item.buy { background: var(--soft-red); border-color: #ffd9dc; }
.plan-item.sell { background: var(--soft-green); border-color: #cdf0e3; }
.plan-item header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.plan-item h4 { margin: 0; }
.plan-item p { margin: 10px 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.plan-meta { font-size: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
.action-tag { padding: 4px 8px; border-radius: 999px; background: #fff; color: var(--muted); font-size: 9px; }
.plate-grid,.plate-grid.compact { display:grid;grid-template-columns:minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface);overflow:hidden; }
.plate-card { position:relative;display:grid;grid-template-columns:minmax(180px,1.6fr) minmax(90px,.72fr) minmax(110px,.9fr) minmax(130px,1fr) 34px;align-items:center;gap:12px;min-width:0;padding:13px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;transition:background .18s ease; }
.plate-card:last-child { border-bottom:0; }
.plate-card:hover { background:color-mix(in srgb,var(--primary) 3%,var(--surface)); }
.plate-card.market-data-masked .plate-list-cell b.masked,.plate-card.market-data-masked .plate-streak { color:var(--muted)!important;letter-spacing:.08em; }
.plate-list-main,.plate-list-cell { min-width:0; }
.plate-card h3 { margin:0;overflow:hidden;font-size:var(--font-card-title-size);text-overflow:ellipsis;white-space:nowrap; }
.plate-list-main span,.plate-list-cell span { display:block;margin-top:4px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap; }
.plate-list-main span { font-size:var(--market-meta-font-size,var(--font-auxiliary-size)); }
.plate-list-cell span { font-size:var(--market-metric-label-font-size,var(--font-auxiliary-size)); }
.plate-list-main .plate-streak { color:var(--muted);font-size:var(--market-streak-font-size,var(--font-auxiliary-size));font-style:normal;font-weight:700; }
.plate-list-main .plate-streak.rising { color:var(--market-up-streak-color,#ef3f52); }
.plate-list-main .plate-streak.falling { color:var(--market-down-streak-color,#12a276); }
.plate-list-cell { text-align:right; }
.plate-list-cell b { display:block;overflow:hidden;font-size:var(--market-metric-value-font-size,var(--font-card-title-size));text-overflow:ellipsis;white-space:nowrap; }
.up { color: var(--up) !important; }
.down { color: var(--down) !important; }
.plate-flow-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 18px 0 9px; }
.plate-flow { min-width: 0; padding: 10px; border-radius: 12px; background: #f7f8fa; }
.plate-flow span { display: block; color: var(--muted); font-size: 9px; }
.plate-flow b { display: block; font-size: 13px; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.plate-market-metrics { display: flex; gap: 14px; margin: 0 0 12px; color: var(--muted); font-size: 9px; }
.plate-market-metrics b { color: var(--ink); font-size: 10px; }
.plate-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.plate-meta span { padding: 5px 7px; border-radius: 8px; background: #f6f7f9; color: var(--muted); font-size: 9px; }
.favorite-button { position:static;width:30px;height:30px;border:0;border-radius:10px;background:#f4f5f8;color:#a3a6af;cursor:pointer;z-index:2; }
.favorite-button.active { color: #f3a500; background: #fff6db; }
.market-toolbar { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.72fr); grid-template-rows: auto auto; gap: 14px; align-items: stretch; }
.market-toolbar > .search-box { grid-column: 1; grid-row: 1; }
.market-toolbar > .market-indices-card { grid-column: 2; grid-row: 1 / span 2; }
.market-toolbar > .segment { grid-column: 1; grid-row: 2; justify-self: start; }
.search-box { flex: 1; max-width: 580px; display: flex; align-items: center; gap: 9px; height: 46px; padding: 0 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 15px; }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; }
.segment { display: inline-flex; padding: 4px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.segment button { border: 0; background: transparent; padding: 8px 14px; border-radius: 9px; color: var(--muted); cursor: pointer; font-size: 11px; }
.segment button.active { background: #202127; color: #fff; }
.market-indices-card { min-width: 0; padding: 12px 14px; border: 1px solid #dce5f5; border-radius: 16px; background: linear-gradient(145deg,#fff,#f6f9ff); box-shadow: 0 10px 24px rgba(45,80,150,.06); }
.market-indices-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.market-indices-head div { min-width: 0; }
.market-indices-head span { display: block; color: #5673a8; font-size: 8px; letter-spacing: .08em; }
.market-indices-head strong { display: block; margin-top: 3px; overflow: hidden; color: var(--ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.market-indices-head button { flex: none; min-height: 28px; padding: 0 9px; }
.market-indices-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin-top: 9px; }
.market-index-row { display: flex; align-items: center; justify-content: space-between; gap: 7px; min-width: 0; padding: 8px 9px; border-radius: 11px; background: rgba(255,255,255,.78); }
.market-index-row > div { min-width: 0; }
.market-index-row b, .market-index-row span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.market-index-row b { font-size: 11px; }
.market-index-row span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.market-index-quote { flex: none; text-align: right; }
.market-index-quote b { font-size: 11px; }
.market-index-quote span { font-size: 8px; }
.market-indices-note { grid-column: 1 / -1; color: var(--muted); font-size: 8px; line-height: 1.4; }
.market-indices-empty { grid-column: 1 / -1; color: var(--muted); font-size: 9px; }
.market-list-toolbar { display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 14px; }
.market-summary { flex:1;margin:0;color:var(--muted);font-size:11px;display:flex;justify-content:space-between;gap:12px; }
.market-sort { flex:none; }
.load-more { display: block; margin: 22px auto 0; border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 10px 24px; cursor: pointer; color: var(--muted); }
.empty-card { background: var(--surface); border: 1px dashed #d8dae2; border-radius: var(--card-radius); padding: 38px 20px; text-align: center; color: var(--muted); }
.profile-card { padding: 24px; border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.profile-main { display: flex; align-items: center; gap: 14px; }
.profile-avatar { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--soft-red); color: var(--primary); font-size: 22px; font-weight: 800; overflow: hidden; }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.member-frame { position:relative;box-shadow:0 0 0 2px #f4c85d,0 0 0 5px rgba(244,200,93,.2),0 8px 22px rgba(190,132,25,.24)!important; }
.member-frame::after { content:"VIP";position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;min-width:22px;height:14px;padding:0 4px;border:2px solid var(--surface);border-radius:999px;background:linear-gradient(135deg,#fff2a6,#d69a27);color:#7e4b00;font-size:7px;font-weight:900;line-height:1; }
.account-button .member-frame { overflow:visible; }
.account-button .member-frame img { overflow:hidden; }
.profile-main h2 { margin: 0 0 5px; font-size: 20px; }
.profile-main p { margin: 0; color: var(--muted); font-size: 11px; }
.profile-balance { text-align: right; }
.profile-balance span { color: var(--muted); font-size: 10px; }
.profile-balance b { display: block; margin-top: 5px; font-size: 22px; }
.profile-balance small { display:block;margin-top:5px;color:var(--muted);font-size:var(--font-auxiliary-size);white-space:nowrap; }
.profile-balance em { font-style:normal; }
.profile-card-side { display: flex; align-items: center; gap: 14px; }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.settings-card { border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); padding: 18px; }
.card-title { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.card-title span { color: var(--muted); font-size: 9px; }
.card-title h3 { margin: 4px 0 0; font-size: 15px; }
.card-title > b { font-size: 10px; padding: 6px 8px; color: var(--primary); background: var(--soft-red); border-radius: 8px; }
.settings-card > p { margin: 13px 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.mine-strategy-meta { display: grid; gap: 4px; margin: 12px 0 10px; padding: 10px 11px; border: 1px solid #dce5f5; border-radius: 11px; background: #f7faff; }
.mine-strategy-meta strong { color: var(--text); font-size: var(--font-card-title-size); }
.mine-strategy-meta span, .mine-strategy-meta small { color: var(--muted); font-size: var(--font-auxiliary-size); line-height: 1.5; }
.mine-strategy-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.mine-strategy-head > div { display: grid; min-width: 0; gap: 4px; }
.mine-strategy-details { min-width: 0; margin-top: 7px; padding-top: 8px; border-top: 1px solid #dce5f5; }
.mine-strategy-details p { margin: 0 0 7px; color: var(--muted); font-size: var(--font-ai-size); line-height: 1.65; overflow-wrap: anywhere; }
.mine-strategy-details.collapsed { display: none; }
.switch input { display: none; }
.switch span { width: 46px; height: 26px; border-radius: 999px; background: #d9dbe2; display: block; position: relative; cursor: pointer; transition: .2s; }
.switch span::after { content: ""; position: absolute; width: 20px; height: 20px; left: 3px; top: 3px; background: #fff; border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.15); transition: .2s; }
.switch input:checked + span { background: var(--primary); }
.switch input:checked + span::after { transform: translateX(20px); }
.guardrails, .fee-tiers { display: flex; gap: 6px; flex-wrap: wrap; }
.guardrails span, .fee-tiers span { padding: 6px 8px; border-radius: 8px; background: #f5f6f8; color: var(--muted); font-size: 9px; }
.plan-risk { margin-top: 14px; }
.plan-risk span { background: #fff7f8; border: 1px solid #ffdadd; color: #b92f3c; }
.position-card, .trade-row { border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); padding: 16px; margin-bottom: 10px; }
.position-head, .trade-row { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.position-head h3, .trade-row h4 { margin: 0; font-size: 14px; }
.position-head p, .trade-row p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.trade-content { min-width: 0; flex: 1; }
.trade-time { line-height: 1.5; }
.trade-detail-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.trade-detail-chips span { padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; background: #f8f9fb; color: #555d6f; font-size: 9px; }
.trade-reason { max-width: 900px; line-height: 1.65; }
.position-value, .trade-money { text-align: right; }
.position-value b, .trade-money b { display: block; }
.position-value span, .trade-money span { font-size: 10px; color: var(--muted); }
.position-return { display: block; width: max-content; margin: 6px 0 0 auto; padding: 4px 7px; border-radius: 7px; background: #f7f8fa; font-size: 9px; font-style: normal; white-space: nowrap; }
.position-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 14px; }
.position-stat { padding: 10px; background: #f7f8fa; border-radius: 11px; }
.position-stat span { color: var(--muted); font-size: 9px; display: block; }
.position-stat b { font-size: 11px; display: block; margin-top: 4px; }
.position-stat small { display: block; margin-top: 2px; font-size: 9px; }
.valuation-hero { min-height: 222px; padding: 28px; border: 1px solid #dbeef4; border-radius: 28px; background: radial-gradient(circle at 90% 100%, rgba(106,245,206,.42), transparent 30%), linear-gradient(125deg, #edfaff, #f7fbff 65%, #effff9); color: #14204b; box-shadow: var(--shadow); overflow: hidden; }
.valuation-guest h2 { margin: 8px 0; font-size: clamp(28px,5vw,48px); }
.valuation-guest p { color: #65708e; line-height: 1.7; }
.valuation-hero-head { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.valuation-hero-label { color: #65708e; font-size: 11px; }
.valuation-total { margin-top: 7px; font-size: clamp(34px,6vw,56px); font-weight: 850; letter-spacing: -.04em; }
.valuation-update { color: #7d87a1; font-size: 9px; margin-top: 6px; }
.valuation-today { text-align: right; }
.valuation-today span { display: block; color: #65708e; font-size: 11px; }
.valuation-today b { display: block; margin-top: 8px; font-size: clamp(26px,4vw,42px); }
.valuation-today em { display: block; margin-top: 5px; font-size: 11px; font-style: normal; font-weight: 700; }
.valuation-summary-grid { display: grid; grid-template-columns: repeat(var(--valuation-metric-columns,5), minmax(0,1fr)); gap: 10px; margin-top: 26px; }
.valuation-summary-item { padding-top: 12px; border-top: 1px solid rgba(20,32,75,.12); }
.valuation-summary-item span { display: block; color: #65708e; font-size: 9px; }
.valuation-summary-item b { display: block; margin-top: 5px; font-size: 14px; }
.valuation-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 28px 2px 14px; }
.valuation-toolbar > div:first-child > span { color: var(--muted); font-size: 9px; letter-spacing: .1em; }
.valuation-toolbar h2 { margin: 5px 0 0; font-size: 20px; }
.valuation-actions { display: flex; gap: 8px; align-items: center; }
.valuation-actions .secondary-button { color: #245a74; border-color: #cfe4ec; background: #f3fbfe; }
.valuation-filters { position:relative;display: grid; grid-template-columns: minmax(240px,1fr) auto minmax(360px,auto); gap: 10px; margin-bottom: 12px; }
.valuation-account-controls { display: grid; grid-template-columns: minmax(130px,1fr) repeat(3,auto); gap: 7px; }
.valuation-filters select { min-width: 140px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); padding: 0 13px; outline: none; }
.valuation-search-button { min-height: 46px; padding: 0 18px; white-space: nowrap; }
.valuation-account-button { white-space: nowrap; }
.valuation-account-manage { min-width: 54px; padding: 0 10px; }
.valuation-ai-panel { min-width: 0; max-width: 100%; overflow: hidden; margin: 14px 0 18px; padding: 20px; border: 1px solid #d9e7ff; border-radius: 22px; background: linear-gradient(145deg, #fbfdff, #f4f8ff); box-shadow: 0 14px 34px rgba(45,80,150,.08); }
.valuation-ai-panel *, #valuationAiAnalysis { min-width: 0; max-width: 100%; }
.valuation-ai-panel p, .valuation-ai-panel li, .valuation-ai-panel span, .valuation-ai-panel b { overflow-wrap: anywhere; word-break: break-word; }
.valuation-ai-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.valuation-ai-head span { color: #5673a8; font-size: 9px; letter-spacing: .1em; }
.valuation-ai-head h2 { margin: 5px 0 0; font-size: 18px; }
.valuation-ai-head p { max-width: 760px; margin: 7px 0 0; color: var(--muted); font-size: 9px; line-height: 1.7; }
.valuation-ai-head button { flex: 0 0 auto; min-width: 150px; }
.valuation-ai-buttons { display: flex; flex: 0 0 auto; gap: 8px; align-items: center; }
.valuation-ai-buttons .secondary-button { min-width: 92px; }
.valuation-ai-success-time { color: #16885f !important; border: 1px solid #bde8d7; border-radius: 999px; background: #ecfbf5; padding: 7px 10px; font-size: 9px !important; font-weight: 800; letter-spacing: 0 !important; white-space: nowrap; }
.valuation-ai-collapsed { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; padding: 13px 15px; border: 1px solid #d9e7ff; border-radius: 14px; background: rgba(255,255,255,.78); }
.valuation-ai-collapsed strong, .valuation-ai-collapsed span { display: block; }
.valuation-ai-collapsed strong { color: var(--ink); font-size: 11px; }
.valuation-ai-collapsed span { margin-top: 4px; color: var(--muted); font-size: 9px; letter-spacing: 0; }
.valuation-ai-collapsed b { color: #5673a8; font-size: 9px; white-space: nowrap; }
.valuation-ai-empty { margin-top: 16px; padding: 18px; border: 1px dashed #cddcf7; border-radius: 15px; color: var(--muted); background: rgba(255,255,255,.7); font-size: 10px; text-align: center; }
.valuation-ai-overview { display: grid; grid-template-columns: minmax(0,1.6fr) repeat(3,minmax(0,.55fr)); gap: 10px; margin-top: 16px; }
.valuation-ai-summary, .valuation-ai-stat { padding: 14px; border: 1px solid #e2eafb; border-radius: 15px; background: rgba(255,255,255,.85); }
.valuation-ai-summary h3 { margin: 0; font-size: 13px; }
.valuation-ai-summary p { margin: 7px 0 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.valuation-ai-stat span { display: block; color: var(--muted); font-size: 8px; }
.valuation-ai-stat b { display: block; margin-top: 7px; font-size: 15px; }
.valuation-ai-meta { margin-top: 10px; color: var(--muted); font-size: 8px; line-height: 1.6; }
.valuation-ai-saved-note { margin-top: 10px; padding: 10px 12px; border: 1px dashed #cddcf7; border-radius: 12px; color: #5673a8; background: rgba(255,255,255,.72); font-size: 9px; line-height: 1.6; }
.valuation-ai-stale { margin-top: 10px; padding: 10px 12px; border-radius: 12px; color: #8a5a16; background: #fff7e8; font-size: 9px; line-height: 1.6; }
.valuation-ai-section-title { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin: 20px 2px 9px; }
.valuation-ai-section-title h3 { margin: 0; font-size: 13px; }
.valuation-ai-section-title span { color: var(--muted); font-size: 8px; }
.valuation-advice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.valuation-advice-card { min-width: 0; overflow: hidden; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.valuation-advice-card.add { border-color: #ffd4da; background: linear-gradient(145deg,#fff,#fff7f8); }
.valuation-advice-card.reduce { border-color: #ccecdf; background: linear-gradient(145deg,#fff,#f4fcf8); }
.valuation-advice-card.opportunity { border-color: #d4e0ff; background: linear-gradient(145deg,#fff,#f6f8ff); }
.valuation-advice-card.opportunity.watch { border-style: dashed; border-color: #c9d4ea; background: linear-gradient(145deg,#fff,#f8faff); }
.valuation-advice-title { display: flex; justify-content: space-between; gap: 10px; align-items: start; }
.valuation-advice-title > div { min-width: 0; }
.valuation-advice-title h4 { margin: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.valuation-advice-title p { margin: 5px 0 0; color: var(--muted); font-size: 8px; }
.valuation-action-pill { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; background: #f0f1f5; color: var(--muted); font-size: 8px; font-weight: 750; white-space: nowrap; }
.valuation-advice-card.add .valuation-action-pill { color: var(--up); background: var(--soft-red); }
.valuation-advice-card.reduce .valuation-action-pill { color: var(--down); background: var(--soft-green); }
.valuation-advice-card.opportunity .valuation-action-pill { color: #3f61ad; background: #edf2ff; }
.valuation-advice-card.opportunity.watch .valuation-action-pill { color: #64718d; background: #eef1f6; }
.valuation-advice-numbers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin-top: 12px; }
.valuation-advice-numbers div { padding: 8px; border-radius: 10px; background: rgba(247,248,251,.9); }
.valuation-advice-numbers span { display: block; color: var(--muted); font-size: 7px; }
.valuation-advice-numbers b { display: block; margin-top: 4px; font-size: 10px; }
.valuation-adjustment-note { display: block; margin-top: 5px; color: #8a5a16; font-size: var(--font-ai-size); line-height: 1.45; }
.valuation-advice-reason { margin: 11px 0 0; font-size: 9px; line-height: 1.65; }
.valuation-evidence { margin: 8px 0 0; padding-left: 16px; color: var(--muted); font-size: 8px; line-height: 1.65; }
.valuation-ai-risks { margin-top: 14px; padding: 13px 15px; border-radius: 14px; background: #fff8ef; color: #795526; font-size: 8px; line-height: 1.7; }
.valuation-ai-risks strong { display: block; margin-bottom: 4px; font-size: 9px; }
.valuation-position-list { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.valuation-list-head, .valuation-fund-row { display: grid; grid-template-columns: minmax(0,1.55fr) repeat(3,minmax(92px,.62fr)); gap: 14px; align-items: center; }
.valuation-list-head { padding: 0 12px 9px; color: var(--muted); font-size: var(--holding-list-header-size); text-align: right; }
.valuation-list-head button { min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:right;cursor:pointer; }
.valuation-list-head button:first-child { text-align:left; }
.valuation-list-head button span { display:flex;align-items:center;justify-content:flex-end;gap:3px;font-size:var(--holding-list-header-size);font-weight:750;white-space:nowrap; }
.valuation-list-head button:first-child span { justify-content:flex-start; }
.valuation-list-head button small { display:block;margin-top:2px;color:var(--muted);font-size:var(--holding-list-date-size);font-weight:500;line-height:1.2; }
.valuation-list-head button em { color:var(--primary);font-size:.85em;font-style:normal; }
.valuation-fund-row { min-height: 68px; padding: 12px; border-bottom: 1px solid var(--line); background: var(--surface); cursor: pointer; transition: background .15s ease; }
.valuation-fund-row:last-child { border-bottom: 0; }
.valuation-fund-row.pending-only { background: color-mix(in srgb,var(--surface) 88%,#edf3ff); }
.valuation-fund-row:hover, .valuation-fund-row:focus-visible { outline: 0; background: color-mix(in srgb,var(--surface) 88%,#edf3ff); }
.valuation-fund-topbar { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; margin: -2px 0 1px; }
.valuation-card-label { color: #64718d; font-size: 9px; font-weight: 800; }
.valuation-card-label.qdii { color: #5b43aa; }
.valuation-detail-button { min-height: 30px; padding: 0 12px; border-color: #d6deed; border-radius: 10px; color: #3f61ad; background: #f6f8ff; }
.valuation-fund-main { min-width: 0; }
.valuation-fund-main h3 { margin: 0; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.valuation-fund-main p { margin: 6px 0 0; color: var(--muted); font-size: 9px; }
.valuation-fund-main b { display: block; margin-top: 8px; font-size: 13px; }
.valuation-fund-subline { display: flex; align-items: center; gap: 5px; min-width: 0; margin-top: 6px; color: var(--muted); font-size: 9px; white-space: nowrap; }
.valuation-fund-subline > span { flex: 0 0 auto; }
.valuation-fund-favorite { color: #f1a2aa; font-size: 10px; }
.valuation-pending-inline { min-width: 0; overflow: hidden; color: #9a6a24; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.valuation-pending-badge { display: inline-flex; margin-top: 7px; padding: 4px 7px; border-radius: 999px; color: #8a5a16; background: #fff3d9; font-size: 8px; font-weight: 750; }
.valuation-pending-badge.qdii-components { white-space: normal; line-height: 1.55; }
.qdii-date-map { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; margin-top: 8px; padding: 8px; border: 1px solid #dfe7fb; border-radius: 10px; background: #f5f8ff; }
.qdii-date-map span { min-width: 0; color: var(--muted); font-size: 8px; line-height: 1.45; overflow-wrap: anywhere; }
.qdii-date-map b { display: block; margin-top: 2px; color: var(--ink); font-size: 9px; }
.valuation-metric { text-align: right; }
.valuation-metric span { display: block; color: var(--muted); font-size: 9px; }
.valuation-metric b { display: block; margin-top: 4px; font-size: 15px; }
.valuation-metric small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; }
.valuation-official-updated { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; margin: 0; padding: 1px 4px; border: 1px solid #8db5ff; border-radius: 3px; background: #f4f8ff; color: #4e79d8; font-size: 7px; font-style: normal; font-weight: 800; line-height: 1.2; }
.valuation-row-actions { display: flex; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
.valuation-row-actions button { min-width: 34px; height: 30px; padding: 0 8px; border: 1px solid var(--line); border-radius: 9px; background: #f8f9fb; color: var(--muted); cursor: pointer; font-size: 9px; }
.valuation-row-actions button:first-child { color: var(--up); background: var(--soft-red); border-color: #ffdadd; }
.valuation-row-actions button:nth-child(2) { color: var(--down); background: var(--soft-green); border-color: #cfeee2; }
.valuation-row-actions button.danger { color: #a9abb3; }
.valuation-row-actions button:disabled { opacity: .45; cursor: not-allowed; }
.valuation-fund-history { grid-column: 1 / -1; min-width: 0; overflow: hidden; margin-top: 2px; padding-top: 12px; border-top: 1px solid var(--line); }
.valuation-fund-history-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.valuation-fund-history-head b { font-size: 11px; }
.valuation-fund-history-head span { color: var(--muted); font-size: 9px; }
.fund-my-position { padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: color-mix(in srgb,var(--surface) 90%,var(--canvas)); }
.fund-my-position + .fund-my-position { margin-top: 10px; }
.fund-my-position-info b { display: block; font-size: 12px; }
.fund-my-position-info span { display: block; margin-top: 6px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.fund-my-position-info em { font-style: normal; font-weight: 750; }
.fund-my-position .valuation-row-actions { margin-top: 12px; justify-content: flex-start; }
.fund-my-position .valuation-fund-history { margin-top: 12px; }
.valuation-ledger-row { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: var(--surface); }
.valuation-ledger-row.pending { background: #fffaf0; }
.valuation-ledger-row.failed { background: #fff6f6; }
.valuation-ledger-row.cancelled { opacity: .65; background: #f5f6f8; }
.valuation-ledger-row.compact { padding: 10px 12px; border: 1px solid var(--line); border-bottom: 0; }
.valuation-ledger-row.compact:last-child { border-bottom: 1px solid var(--line); }
.valuation-ledger-row > div { min-width: 0; }
.valuation-ledger-row:first-child { border-radius: 14px 14px 0 0; }
.valuation-ledger-row:last-child { border-bottom: 0; border-radius: 0 0 14px 14px; }
.valuation-ledger-row h4 { margin: 0; font-size: 11px; }
.valuation-ledger-row p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.valuation-ledger-row b { font-size: 11px; text-align: right; }
.valuation-ledger-actions { flex: 0 0 auto; display: grid; justify-items: end; align-content: start; gap: 7px; }
.valuation-transaction-cancel { min-width: 48px; height: 28px; padding: 0 9px; border: 1px solid #f0aeb4; border-radius: 8px; color: #c43c49; background: #fff; cursor: pointer; font-size: 9px; }
.account-links { display: flex; gap: 10px; margin-top: 18px; }
.secondary-button { border: 1px solid var(--line); background: #fff; min-height: 40px; border-radius: 12px; padding: 0 16px; cursor: pointer; font-size: 11px; }
.secondary-button.danger { color: var(--primary); }
.bottom-nav { display: none; }
.market-atmosphere { position:fixed;inset:0;z-index:9998;width:100vw;height:100vh;height:100dvh;pointer-events:none;overflow:hidden;isolation:isolate; }
.market-atmosphere i { position:absolute;top:-12vh;left:var(--rain-x);width:2px;height:64px;border-radius:999px;background:linear-gradient(to bottom,transparent,rgba(88,143,222,.48));transform:rotate(12deg);animation:market-rain var(--rain-duration) linear infinite;animation-delay:var(--rain-delay); }
@keyframes market-rain { to { transform:translate3d(-10vw,120vh,0) rotate(12deg); } }
.valuation-assets-bar { position:relative; }
.profit-sun { position:absolute;top:-13px;left:7px;font-size:31px;filter:drop-shadow(0 0 12px rgba(255,184,40,.78));animation:profit-sun-pulse 2.2s ease-in-out infinite; }
@keyframes profit-sun-pulse { 50% { transform:scale(1.12) rotate(7deg);filter:drop-shadow(0 0 20px rgba(255,184,40,.92)); } }
.asset-privacy-toggle { position:absolute;z-index:2;top:2px;right:2px;width:34px;height:30px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--muted);cursor:pointer; }
.fund-ranking-board { display:grid;grid-template-columns:1fr;gap:18px; }
.fund-ranking-tabs { position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:100%;padding:5px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 8px 24px rgba(20,30,55,.06);backdrop-filter:blur(18px); }
.fund-ranking-tabs button { min-height:42px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-weight:750;cursor:pointer; }
.fund-ranking-tabs button.active { background:var(--ink);color:var(--surface);box-shadow:0 7px 18px rgba(22,28,49,.16); }
.fund-ranking-group { min-width:0;padding:16px;border:1px solid var(--line);border-radius:var(--card-radius);background:color-mix(in srgb,var(--surface) 96%,var(--primary) 4%); }
.fund-ranking-group.compact { padding:11px; }
.fund-ranking-group-meta { overflow:hidden;color:var(--muted);font-size:var(--font-auxiliary-size);text-overflow:ellipsis;white-space:nowrap; }
.fund-ranking-group-head { display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:6px; }
.fund-ranking-group-head small { display:block;margin-bottom:4px;color:var(--primary);font-size:var(--font-auxiliary-size);font-weight:800;letter-spacing:.12em; }
.fund-ranking-group-head h2 { margin:0;font-size:var(--font-section-title-size); }
.fund-ranking-group-head > span,.fund-ranking-group-status { color:var(--muted);font-size:var(--font-auxiliary-size); }
.fund-ranking-group-status { margin:0 0 12px; }
.fund-ranking-columns { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.fund-ranking-columns.single { grid-template-columns:1fr; }
.fund-ranking-column { min-width:0;padding:16px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface); }
.fund-ranking-group.compact .fund-ranking-column { padding:4px 12px; }
.fund-ranking-head { display:flex;align-items:end;justify-content:space-between;gap:8px;padding:0 2px 10px;border-bottom:1px solid var(--line); }
.fund-ranking-head h3 { margin:0;font-size:var(--font-section-title-size); }
.fund-ranking-head span { color:var(--muted);font-size:var(--font-auxiliary-size); }
.fund-ranking-row { display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:12px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer; }
.fund-ranking-row:last-child { border-bottom:0; }
.fund-ranking-row > em { display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:var(--canvas);color:var(--muted);font-style:normal;font-weight:800; }
.fund-ranking-row > div,.fund-ranking-row > span { min-width:0; }
.fund-ranking-row b,.fund-ranking-row small { display:block; }
.fund-ranking-row > div b { overflow:hidden;font-size:var(--font-card-title-size);text-overflow:ellipsis;white-space:nowrap; }
.fund-ranking-row small { margin-top:4px;color:var(--muted);font-size:var(--font-auxiliary-size); }
.fund-ranking-streak { color:var(--muted);font-size:var(--fund-ranking-streak-font-size,var(--font-auxiliary-size));font-style:normal;font-weight:700; }
.fund-ranking-streak.rising { color:var(--fund-ranking-up-streak-color,#ef3f52); }
.fund-ranking-streak.falling { color:var(--fund-ranking-down-streak-color,#12a276); }
.fund-ranking-row .fund-ranking-sector { display:block;max-width:120px;margin-left:auto;overflow:hidden;color:var(--fund-ranking-sector-color,var(--primary));font-size:var(--fund-ranking-sector-font-size,var(--font-auxiliary-size));font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap; }
.fund-ranking-row > span { text-align:right; }
.fund-ranking-column.gain .fund-ranking-row > span b { color:var(--up); }
.fund-ranking-column.loss .fund-ranking-row > span b { color:var(--down); }
.fund-ranking-source { margin:10px 2px 0;color:var(--muted);font-size:var(--font-auxiliary-size);line-height:1.55; }
.fund-detail-freshness { display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--canvas); }
.fund-detail-freshness b { font-size:var(--font-card-title-size); }
.fund-detail-freshness span { color:var(--muted);font-size:var(--font-auxiliary-size);text-align:right; }
.fund-detail-freshness.realtime b,.fund-detail-freshness.official b { color:var(--up); }
.fund-detail-freshness.delayed b { color:#d78b17; }
.fund-detail-freshness.stale b,.fund-detail-freshness.unavailable b { color:var(--muted); }
.modal { position: fixed; inset: 0; z-index: 100; display: none; }
.modal.open { display: block; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(17,18,23,.5); backdrop-filter: blur(4px); }
.auth-sheet, .detail-sheet, .valuation-sheet, .valuation-import-sheet, .fund-lookup-sheet, .news-sheet, .confirm-sheet { position: absolute; background: var(--surface); box-shadow: 0 30px 90px rgba(15,16,22,.25); }
.auth-sheet { width: min(430px, calc(100% - 28px)); left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 26px; padding: 28px; }
.detail-sheet { inset: 24px 24px 24px auto; width: min(720px, calc(100% - 48px)); border-radius: 26px; overflow: auto; padding: 28px; }
.valuation-sheet { width: min(620px, calc(100% - 28px)); max-width: calc(100vw - 28px); max-height: calc(100vh - 40px); left: 50%; top: 50%; transform: translate(-50%,-50%); border-radius: 26px; padding: 28px; overflow-y: auto; overflow-x: hidden; overscroll-behavior-x: none; touch-action: pan-y; }
.valuation-import-sheet { inset: 24px 24px 24px auto; width: min(820px, calc(100% - 48px)); border-radius: 26px; padding: 28px; overflow: auto; }
.fund-lookup-sheet { inset: 24px 24px 24px auto; width: min(860px, calc(100% - 48px)); border-radius: 26px; padding: 28px; overflow: auto; }
.news-sheet { inset: 24px 24px 24px auto; width: min(780px, calc(100% - 48px)); border-radius: 26px; padding: 28px; overflow: auto; }
.confirm-sheet { width: min(460px, calc(100% - 28px)); left: 50%; top: 50%; transform: translate(-50%,-50%); border-radius: 24px; padding: 28px; }
.modal-close { position: absolute; right: 18px; top: 16px; border: 0; background: #f3f4f6; width: 32px; height: 32px; border-radius: 10px; cursor: pointer; font-size: 20px; }
.auth-brand { display: flex; gap: 12px; align-items: center; margin-bottom: 22px; }
.auth-brand h2 { margin: 0; font-size: 20px; }
.auth-brand p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.auth-tabs { width: 100%; margin-bottom: 16px; }
.auth-tabs button { flex: 1; }
.auth-login-modes { width:100%;margin:-5px 0 15px;padding:4px;background:color-mix(in srgb,var(--surface) 72%,var(--canvas)); }
.auth-login-modes button { flex:1;min-height:38px;font-size:13px; }
.auth-captcha-row { display: grid; grid-template-columns: minmax(0, 1fr) 132px; gap: 10px; align-items: end; }
.auth-captcha-refresh { display: flex; align-items: center; justify-content: center; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 12px; background: #f3f5ff; cursor: pointer; overflow: hidden; }
.auth-captcha-refresh img { display: block; width: 100%; height: 100%; object-fit: cover; }
.auth-captcha-note { margin: -7px 0 0; color: var(--muted); font-size: 10px; }
.auth-honeypot { 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; }
#authForm { display: grid; gap: 13px; }
#authForm label { color: var(--muted); font-size: 10px; }
#authForm input { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 12px; padding: 0 12px; outline: 0; margin-top: 5px; }
#authForm input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(238,63,77,.09); }
.profile-sheet { max-height: calc(100dvh - 28px); overflow-y: auto; }
.valuation-transactions-heading { align-items:center; }
.valuation-transactions-toggle { flex:0 0 auto;min-height:38px;padding:7px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--primary); }
#profileForm { display: grid; gap: 13px; }
#profileForm > label { color: var(--muted); font-size: 10px; }
#profileForm input:not([type="file"]) { width: 100%; height: 44px; border: 1px solid var(--line); border-radius: 12px; padding: 0 12px; outline: 0; margin-top: 5px; }
#profileForm input:not([type="file"]):focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(238,63,77,.09); }
.profile-avatar-editor { display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:13px;padding:13px;border:1px solid var(--line);border-radius:15px;background:#f8f9fb; }
.profile-avatar-preview img { width: 100%; height: 100%; object-fit: cover; }
.profile-avatar-preview.member-frame { overflow:visible; }
.profile-avatar-preview.member-frame img { border-radius:inherit; }
.profile-identity-editor { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px 10px; }
.profile-identity-editor .profile-nickname-field { min-width:0;color:var(--muted);font-size:10px; }
.profile-identity-editor .profile-nickname-field input { margin-top:5px; }
.profile-identity-editor .avatar-upload-button { align-self:end;min-height:44px;display:grid;place-items:center; }
.profile-identity-editor > small { grid-column:1 / -1; }
.avatar-upload-button { width: fit-content; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); cursor: pointer; font-size: 10px; }
.avatar-upload-button input { display: none; }
.profile-avatar-editor small { color: var(--muted); font-size: 8px; }
.profile-section-toggle { width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-align:left; }
.profile-section-toggle span,.profile-section-toggle b,.profile-section-toggle small { display:block; }
.profile-section-toggle b { font-size:13px; }
.profile-section-toggle small { margin-top:4px;color:var(--muted);font-size:9px;font-weight:500; }
.profile-section-toggle strong { color:var(--muted);font-size:24px;line-height:1;transition:transform .2s ease; }
.profile-section-toggle[aria-expanded="true"] strong { transform:rotate(90deg); }
.profile-collapsible-section { display:grid;gap:13px;padding:4px 2px 8px; }
.profile-collapsible-section[hidden] { display:none; }
.profile-collapsible-section > label,.profile-phone-sms-row label { color:var(--muted);font-size:10px; }
.profile-password-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 4px; padding-top: 13px; border-top: 1px solid var(--line); }
.profile-password-title b { font-size: 12px; }
.profile-password-title span { color: var(--muted); font-size: 8px; text-align: right; }
.profile-phone-title { display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:4px;padding-top:13px;border-top:1px solid var(--line); }
.profile-phone-title b { font-size:12px; }
.profile-phone-title span { color:var(--muted);font-size:8px;text-align:right; }
.profile-phone-sms-row { display:grid;grid-template-columns:minmax(0,1fr) 118px;align-items:end;gap:8px; }
.profile-phone-sms-row .secondary-button { min-height:46px; }
.auth-error { margin: -4px 0 0; padding: 9px 11px; border-radius: 10px; background: #fff0f1; color: #c82f3d; font-size: 11px; line-height: 1.5; }
.wechat-button { width: 100%; height: 44px; border: 1px solid #ccebdd; color: #11845f; background: #effaf5; border-radius: 12px; margin-top: 12px; cursor: pointer; }
.auth-note { text-align: center; color: var(--muted); font-size: 9px; margin: 16px 0 0; }
.confirm-message { margin: 0; padding: 14px; border-radius: 13px; background: #f6f7f9; color: var(--muted); font-size: var(--font-body-size); line-height: 1.7; }
.confirm-message b { color: var(--ink); }
.confirm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.confirm-actions button { width: 100%; }
.danger-confirm { background: #c92d3c; }
.news-sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 2px 44px 18px 0; }
.news-sheet-head > div { min-width: 0; }
.news-sheet-head span { color: #315ba6; font-size: var(--font-auxiliary-size); font-weight: 800; letter-spacing: .08em; }
.news-sheet-head h2 { margin: 6px 0 0; font-size: var(--font-page-title-size); }
.news-sheet-head p { margin: 7px 0 0; color: var(--muted); font-size: var(--font-body-size); line-height: 1.55; }
.news-sheet-head button { flex: none; }
.news-loading { min-height: 260px; display: grid; place-items: center; align-content: center; gap: 14px; color: var(--muted); text-align: center; }
.news-loading .skeleton { width: 100%; height: 90px; }
.news-loading p { max-width: 520px; margin: 0; font-size: var(--font-body-size); line-height: 1.7; }
.news-feed-summary { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin: 4px 0 12px; }
.news-feed-summary p { margin: 0; font-size: var(--font-body-size); line-height: 1.6; }
.news-feed-summary span { flex: none; color: var(--muted); font-size: var(--font-auxiliary-size); }
.news-error-note, .news-refresh-note { margin: 9px 0; padding: 9px 11px; border-radius: 10px; font-size: var(--font-ai-size); line-height: 1.55; }
.news-error-note { color: #8d5a17; background: #fff7e8; }
.news-refresh-note { color: #315ba6; background: #eef3ff; }
.news-impact-summary { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 14px; }
.news-impact-summary span, .news-impact-badge { padding: 4px 8px; border-radius: 999px; font-size: var(--font-auxiliary-size); font-weight: 800; }
.news-impact-summary .high, .news-impact-badge.high { color: #a72632; background: #ffe7ea; }
.news-impact-summary .medium, .news-impact-badge.medium { color: #9a5a00; background: #fff0cf; }
.news-impact-summary .low, .news-impact-badge.low { color: #315ba6; background: #eaf1ff; }
.news-impact-summary .none, .news-impact-badge.none { color: #667085; background: #eef0f3; }
.realtime-news-list { display: grid; gap: 10px; }
.realtime-news-card { padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.realtime-news-card.impact-low, .realtime-news-card.impact-none { opacity: .86; }
.realtime-news-card.bullish { border-left: 4px solid var(--up); }
.realtime-news-card.bearish { border-left: 4px solid var(--down); }
.realtime-news-card.neutral { border-left: 4px solid #a4a7b0; }
.realtime-news-meta { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: var(--font-auxiliary-size); }
.realtime-news-meta .item-source { margin-left: auto; padding: 3px 6px; border-radius: 7px; font-weight: 750; }
.realtime-news-meta .item-source.ai { color: #315ba6; background: #eef3ff; }
.realtime-news-meta .item-source.local { color: #865b14; background: #fff4da; }
.realtime-news-meta .item-source.screened { color: #667085; background: #eef0f3; }
.valuation-pending-badge.qdii-night { color: #5b43aa; background: #f1edff; }
.realtime-news-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-top: 9px; }
.realtime-news-title a { min-width: 0; color: inherit; text-decoration: none; }
.realtime-news-title strong { font-size: var(--font-card-title-size); line-height: 1.55; }
.realtime-news-title > b { flex: none; padding: 5px 8px; border-radius: 9px; font-size: var(--font-button-size); }
.realtime-news-card.bullish .realtime-news-title > b { color: var(--up); background: var(--soft-red); }
.realtime-news-card.bearish .realtime-news-title > b { color: var(--down); background: var(--soft-green); }
.realtime-news-card.neutral .realtime-news-title > b { color: var(--muted); background: #f1f2f5; }
.realtime-news-excerpt { margin: 8px 0 0; color: var(--muted); font-size: var(--font-ai-size); line-height: 1.65; }
.realtime-news-analysis { display: grid; grid-template-columns: auto 1fr; gap: 10px; margin-top: 10px; padding: 9px 10px; border-radius: 10px; background: #f7f8fa; }
.realtime-news-analysis span { color: var(--muted); font-size: var(--font-ai-size); white-space: nowrap; }
.realtime-news-analysis p { margin: 0; font-size: var(--font-ai-size); line-height: 1.55; }
.realtime-news-analysis em { color: var(--muted); font-style: normal; font-weight: 700; }
.news-themes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.news-themes span { padding: 4px 7px; border-radius: 999px; color: #50617d; background: #edf1f8; font-size: var(--font-ai-size); }
#valuationTradeForm { display: grid; gap: 13px; }
#valuationTradeForm, #valuationTradeForm > *, .valuation-simple-sheet * { min-width: 0; max-width: 100%; }
#valuationTradeForm label, .import-field { color: var(--muted); font-size: 9px; }
#valuationTradeForm input, #valuationTradeForm select, .import-field input, .import-field select { width: 100%; height: 42px; margin-top: 5px; padding: 0 11px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); outline: none; }
#valuationTradeForm input:focus, #valuationTradeForm select:focus, .import-field input:focus, .import-field select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--soft-red); }
#valuationTradeForm input[readonly] { background: #f4f5f7; color: var(--muted); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.form-field { display: block; }
.form-note { margin: 0; padding: 10px 12px; border-radius: 11px; color: var(--muted); background: #f6f7f9; font-size: 9px; line-height: 1.6; }
.valuation-new-fund-fields { display: grid; gap: 13px; }
.valuation-new-fund-fields[hidden] { display: none; }
.valuation-trade-fund-summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px; border: 1px solid #dfe5f1; border-radius: 16px; background: linear-gradient(145deg,#fff,#f7f9fd); }
.valuation-trade-fund-summary[hidden] { display: none; }
.valuation-trade-fund-summary h3 { margin: 0; overflow: hidden; color: #17234d; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.valuation-trade-fund-summary p { margin: 7px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.valuation-trade-fund-summary p span { display: inline-block; margin-left: 5px; padding: 2px 7px; border: 1px solid #b9c3d7; border-radius: 999px; color: #42506e; }
.valuation-trade-quote { flex: none; text-align: right; }
.valuation-trade-quote span, .valuation-trade-quote b { display: block; }
.valuation-trade-quote span { color: var(--muted); font-size: 9px; }
.valuation-trade-quote b { margin-top: 6px; font-size: 15px; }
.valuation-simple-block { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.valuation-simple-block h3 { margin: 0 0 14px; padding-left: 10px; border-left: 4px solid #17234d; color: #17234d; font-size: 14px; }
.valuation-simple-amount { display: flex; align-items: center; gap: 10px; color: var(--ink) !important; }
.valuation-simple-amount > span { flex: none; font-size: 34px; font-weight: 500; }
.valuation-sell-shares-block[hidden] { display: none; }
.valuation-simple-shares > span { color: var(--muted); font-size: 18px; font-weight: 700; }
#valuationTradeForm .valuation-simple-amount input { height: 62px; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; font-size: 24px; font-weight: 700; }
#valuationTradeForm .valuation-simple-amount input::placeholder { color: #a2a5ad; font-weight: 500; }
.valuation-fee-hint { margin: 10px 0 0 45px; color: var(--muted); font-size: 9px; }
.valuation-date-row, .valuation-cutoff-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 48px; color: var(--muted); }
.valuation-date-row > span, .valuation-cutoff-row > span { flex: none; font-size: 11px; }
#valuationTradeForm .valuation-date-row input { width: auto; max-width: 190px; margin: 0; border: 0; color: #17234d; background: transparent; font-weight: 800; text-align: right; }
.valuation-cutoff-row[hidden] { display: none; }
.valuation-cutoff-switch { display: grid; grid-template-columns: 1fr 1fr; width: 190px; overflow: hidden; border: 1px solid #9da7bc; border-radius: 12px; }
.valuation-cutoff-switch button { height: 42px; border: 0; background: #fff; color: #17234d; cursor: pointer; font-size: 11px; }
.valuation-cutoff-switch button.active { background: #17234d; color: #fff; }
.valuation-simple-sheet #valuationTradeSubmit { width: 100%; min-height: 50px; margin-top: 2px; background: #17234d; }
.fund-suggestions { display: grid; gap: 5px; max-height: 160px; overflow: auto; }
.fund-suggestion { width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; display: flex; justify-content: space-between; gap: 10px; text-align: left; cursor: pointer; font-size: 10px; }
.fund-suggestion span { color: var(--muted); }
.valuation-import-sheet { display: flex; flex-direction: column; min-width: 0; overflow-x: hidden; }
.valuation-import-header { display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; min-height: 42px; margin: -4px 0 18px; }
.valuation-import-header button { width: 38px; height: 38px; padding: 0; border: 0; background: transparent; color: #17234d; cursor: pointer; font-size: 32px; line-height: 1; }
.valuation-import-header h2 { margin: 0; color: #111526; font-size: 20px; text-align: center; }
.valuation-import-summary { min-width: 0; }
.valuation-import-summary h3 { margin: 0; color: #202432; font-size: 17px; }
.valuation-import-summary p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.6; overflow-wrap: anywhere; }
.valuation-import-preview { display: grid; gap: 12px; min-width: 0; margin: 14px 0; }
.valuation-import-account { align-self: flex-start; margin: 10px 0 0; padding: 7px 10px; border-radius: 999px; background: #eef3f8; color: var(--muted); font-size: 9px; }
.valuation-import-account b { color: #17234d; }
.valuation-import-loading { min-height: 240px; display: grid; place-items: center; color: var(--muted); font-size: 11px; }
.valuation-import-row { min-width: 0; max-width: 100%; overflow: hidden; padding: 16px; border: 1px solid transparent; border-radius: 17px; background: #fff; box-shadow: 0 7px 24px rgba(22,33,72,.07); }
.valuation-import-row.review { border-color: #ffb4ba; background: #fffafb; }
.valuation-import-row-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.valuation-import-row-top > div { display: flex; align-items: center; gap: 4px; }
.valuation-import-action { color: #ff6871; font-size: 12px; }
.valuation-import-action.sell { color: #12aa6b; }
.valuation-import-action.convert { color: #6b55c8; }
.valuation-import-action.sync { color: #536078; }
.valuation-import-edit { height: 28px; padding: 0 8px; border: 0; border-radius: 8px; background: #f2f4f8; color: #536078; cursor: pointer; font-size: 9px; }
.valuation-import-remove { width: 30px; height: 30px; padding: 0; border: 0; background: transparent; color: #9b9ea5; cursor: pointer; font-size: 25px; line-height: 1; }
.valuation-import-main { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; margin-top: 12px; }
.valuation-import-main b { min-width: 0; color: #242831; font-size: 13px; overflow-wrap: anywhere; }
.valuation-import-main strong { color: #242831; font-size: 14px; white-space: nowrap; }
.valuation-import-meta { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 8px; margin-top: 10px; color: #91949c; font-size: 9px; }
.valuation-import-meta span:nth-child(2) { color: #17234d; }
.valuation-import-meta time { text-align: right; white-space: nowrap; }
.valuation-import-rule { margin-top: 10px; padding: 7px 9px; border-radius: 9px; background: #f2f4f8; color: #616979; font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }
.valuation-import-rule.ready { background: #eaf8f1; color: #148358; }
.valuation-import-rule.pending { background: #fff5e7; color: #b16a14; }
.valuation-import-rule.missing { background: #fff0f1; color: #be4852; }
.valuation-import-editor { min-width: 0; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eceef2; }
.valuation-import-resolve { width: 100%; height: 38px; margin-top: 9px; border: 1px solid #cfd5e1; border-radius: 10px; background: #fff; color: #17234d; cursor: pointer; font-size: 9px; }
.valuation-import-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.valuation-import-name-field { grid-column: 1 / -1; }
.valuation-import-fields .import-field { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.valuation-import-fields .import-field input, .valuation-import-fields .import-field select { height: 38px; }
.valuation-import-candidate { display: block; min-width: 0; max-width: 100%; margin-bottom: 10px; color: var(--muted); font-size: 9px; overflow-wrap: anywhere; }
.valuation-import-candidate select { display: block; min-width: 0; max-width: 100%; width: 100%; height: 40px; margin-top: 5px; padding: 0 10px; border: 1px solid #f0aab1; border-radius: 10px; background: #fff; color: var(--ink); outline: none; text-overflow: ellipsis; }
.valuation-import-continue { width: 100%; min-height: 50px; border: 0; border-radius: 11px; background: #17234d; color: #fff; cursor: pointer; font-size: 12px; }
.valuation-import-note { margin: 12px 0; }
.valuation-import-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: auto; padding-top: 12px; }
.valuation-import-footer button { width: 100%; min-height: 48px; }
#valuationImportConfirm { width: 100%; background: #17234d; }
.valuation-account-sheet { width: min(440px,calc(100% - 32px)); }
.valuation-account-sheet .form-field { margin-top: 14px; }
.valuation-account-sheet select, .valuation-account-sheet input { width: 100%; min-height: 46px; font-size: 16px; }
.valuation-account-sheet .confirm-message { line-height: 1.7; }
.valuation-account-sheet.delete-mode #valuationAccountSubmit { background: #d43b49; }
.fund-lookup-heading { padding: 2px 42px 18px 0; }
.fund-lookup-heading span { color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.fund-lookup-heading h2 { margin: 6px 0 0; font-size: 24px; }
.fund-lookup-results { display: grid; gap: 8px; }
.fund-lookup-result { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.fund-lookup-result b { display: block; font-size: 12px; }
.fund-lookup-result span { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; }
.fund-lookup-result em { color: var(--primary); font-size: 10px; font-style: normal; white-space: nowrap; }
.fund-detail-hero { padding: 4px 0 20px; border-bottom: 1px solid var(--line); }
.fund-detail-hero small { color: var(--muted); font-size: 9px; }
.fund-detail-hero h2 { margin: 7px 48px 16px 0; font-size: 26px; }
.fund-detail-quote { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.fund-detail-quote > div { padding: 14px; border-radius: 14px; background: #f6f7f9; }
.fund-detail-quote span { display: block; color: var(--muted); font-size: 9px; }
.fund-detail-quote b { display: block; margin-top: 6px; font-size: 18px; }
.qdii-detail-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.qdii-detail-grid > div { min-width: 0; padding: 10px; border: 1px solid #dfe7fb; border-radius: 12px; background: #f5f8ff; }
.qdii-detail-grid span { display: block; color: var(--muted); font-size: 8px; }
.qdii-detail-grid b { display: block; margin-top: 5px; font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.fund-detail-actions { display: flex; gap: 8px; margin-top: 14px; }
.fund-detail-section { margin-top: 22px; }
.fund-detail-section-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.fund-detail-section h3 { margin: 0; font-size: 16px; }
.fund-detail-section-head span { color: var(--muted); font-size: 9px; }
.fund-detail-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; }
.fund-detail-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 10px; }
.fund-detail-table th, .fund-detail-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.fund-detail-table th:first-child, .fund-detail-table td:first-child { text-align: left; }
.fund-detail-table tr:last-child td { border-bottom: 0; }
.fund-detail-notice { margin-top: 12px; padding: 10px 12px; border-radius: 11px; background: #f6f7f9; color: var(--muted); font-size: 9px; line-height: 1.6; }
.detail-hero { padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.detail-hero small { color: var(--muted); }
.detail-hero h2 { margin: 6px 0 12px; font-size: 28px; }
.detail-figures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.detail-figure { padding: 12px; border-radius: 13px; background: #f6f7f9; }
.detail-figure span { color: var(--muted); font-size: 9px; display: block; }
.detail-figure b { display: block; margin-top: 5px; }
.data-definition-note { margin: 12px 0 0; padding: 10px 12px; border-radius: 11px; background: #f6f7f9; color: var(--muted); font-size: 9px; line-height: 1.65; }
.detail-section { margin-top: 22px; }
.detail-section h3 { font-size: 16px; margin: 0 0 12px; }
.news-policy-summary { margin: 0 0 10px; color: var(--muted); line-height: 1.65; }
.news-evidence-list { display: grid; gap: 9px; }
.news-evidence-row { padding: 12px 14px; border: 1px solid var(--line); border-radius: 13px; background: #fafbfc; }
.news-evidence-row a { color: inherit; text-decoration: none; }
.news-evidence-row a:hover strong { color: var(--accent); }
.news-evidence-row strong { display: block; margin-top: 7px; line-height: 1.5; }
.news-evidence-row p { margin: 7px 0 0; color: var(--muted); line-height: 1.6; }
.news-evidence-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: var(--font-auxiliary-size); }
.news-evidence-meta b { margin-left: auto; font-weight: 700; }
.news-evidence-empty { padding: 18px; border-radius: 13px; background: #f6f7f9; color: var(--muted); text-align: center; }
.history-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.history-head h3 { margin: 0; }
.history-head span { padding: 5px 8px; border-radius: 8px; background: #f4f5f8; color: var(--muted); font-size: 9px; }
.history-table-wrap { margin-top: 12px; overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; }
.history-table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 10px; }
.history-table th, .history-table td { padding: 10px 12px; text-align: right; border-bottom: 1px solid var(--line); white-space: nowrap; }
.history-table th:first-child, .history-table td:first-child { text-align: left; }
.history-table th { color: var(--muted); background: #f7f8fa; font-weight: 600; }
.history-table tbody tr:last-child td { border-bottom: 0; }
.probability-card { border: 1px solid #ffdadd; background: #fff7f8; border-radius: 18px; padding: 16px; }
.probability-head { display: flex; justify-content: space-between; gap: 12px; }
.probability-value { font-size: 34px; font-weight: 900; color: var(--primary); }
.probability-card p { color: #6f5054; font-size: 11px; line-height: 1.7; }
.reason-list { margin: 10px 0 0; padding-left: 18px; color: var(--muted); font-size: 10px; line-height: 1.8; }
.fund-list { display: grid; gap: 8px; }
.fund-list-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 12px; }
.fund-list-head h3 { margin: 0; }
.fund-list-head span { color: var(--muted); font-size: 9px; }
.fund-row { padding: 12px; border: 1px solid var(--line); border-radius: 13px; display: flex; justify-content: space-between; gap: 12px; }
.fund-row h4 { margin: 0; font-size: 12px; }
.fund-row p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.fund-name-line { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.fund-hot-badge { border-radius: 999px; padding: 3px 7px; color: #d22f3d; background: #fff0f1; font-size: 8px; font-weight: 800; white-space: nowrap; }
.fund-match-badge { border-radius: 999px; padding: 3px 7px; color: #176844; background: #eaf8f0; font-size: 8px; font-weight: 800; white-space: nowrap; }
.fund-row p.fund-match-evidence { color: #4d6659; line-height: 1.45; max-width: 620px; }
.fund-load-more { width: 100%; height: 42px; margin-top: 10px; border: 1px solid color-mix(in srgb,var(--primary) 34%,var(--line)); border-radius: 12px; color: var(--primary); background: var(--surface); font-weight: 800; cursor: pointer; }
.fund-load-more:disabled { cursor: wait; opacity: .65; }
.detail-loading { min-height: 300px; display: grid; place-items: center; color: var(--muted); }
.toast { position: fixed; z-index: 200; left: 50%; bottom: 30px; transform: translate(-50%, 20px); background: #202127; color: #fff; border-radius: 12px; padding: 11px 16px; font-size: 11px; opacity: 0; pointer-events: none; transition: .25s; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.ai-analysis-progress { width:min(460px,100%);height:8px;margin:12px 0 8px;border-radius:999px;background:color-mix(in srgb,var(--muted) 16%,transparent);overflow:hidden; }
.ai-analysis-progress i { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#ff9a73);transition:width .35s ease; }
.ai-analysis-progress.failed i { background:linear-gradient(90deg,#d63b49,#ff8b95); }
.skeleton { border-radius: 10px; background: linear-gradient(90deg, #f0f1f4 25%, #f8f8fa 50%, #f0f1f4 75%); background-size: 200% 100%; animation: shimmer 1.3s infinite; }
@keyframes shimmer { to { background-position: -200% 0; } }

@media (max-width: 1000px) {
  .plate-grid, .plate-grid.compact { grid-template-columns: minmax(0,1fr); }
  .plan-items { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  body { background: var(--canvas); }
  .side-nav { display: none; }
  .app-body { margin-left: 0; }
  .topbar { display:none; }
  .topbar > div:first-child { min-width:0;flex:1; }
  .topbar h1 { font-size: 18px; }
  .topbar p { max-width: 210px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .top-actions { flex:none;gap:6px;margin-left:8px; }
  .icon-button { width:38px;height:38px; }
  .account-button b { display: none; }
  .account-button { width:38px;height:38px;padding:4px; }
  .account-button span { width:28px;height:28px;border-radius:9px; }
  .announcement { margin: 8px 0 0; }
  main { width: calc(100% - 28px); padding: max(16px,env(safe-area-inset-top)) 0 calc(116px + env(safe-area-inset-bottom)); }
  .portfolio-hero { min-height: 240px; padding: 22px; border-radius: 24px; }
  .hero-stats { grid-template-columns: 1fr 1fr; }
  .hero-value { font-size: 40px; }
  .section-heading { margin-top: 24px; }
  .home-news-heading { display: block; padding: 15px; }
  .home-news-heading .primary-button { width: 100%; margin-top: 12px; }
  .plate-grid, .plate-grid.compact { grid-template-columns: 1fr; }
  .plate-card { grid-template-columns:minmax(0,1.35fr) minmax(68px,.7fr) minmax(82px,.86fr) 30px;gap:7px;padding:12px 9px; }
  .plate-list-volume { display:none; }
  .plate-card h3 { font-size:11px; }
  .plate-list-main span { font-size:var(--market-meta-font-size,8px); }
  .plate-list-cell span { font-size:var(--market-metric-label-font-size,8px); }
  .plate-list-cell b { font-size:var(--market-metric-value-font-size,10px); }
  .favorite-button { width:28px;height:28px; }
  .market-list-toolbar { align-items:stretch;flex-direction:column; }
  .market-sort { align-self:flex-end; }
  .plan-items { grid-template-columns: 1fr; }
  .plan-head { display: block; }
  .plan-head-actions { justify-content: space-between; margin-top: 12px; }
  .market-toolbar { grid-template-columns: minmax(0,1fr) 142px; grid-template-rows: auto auto; gap: 10px; }
  .market-toolbar > .search-box { grid-column: 1; grid-row: 1; width: 100%; max-width: none; }
  .market-toolbar > .market-indices-card { grid-column: 2; grid-row: 1 / span 2; padding: 10px 9px; }
  .market-toolbar > .segment { grid-column: 1; grid-row: 2; width: 100%; justify-self: stretch; }
  .market-indices-head { align-items: flex-start; }
  .market-indices-head strong { font-size: 11px; }
  .market-indices-head button { padding: 0 6px; font-size: 9px !important; }
  .market-indices-list { grid-template-columns: 1fr; gap: 5px; margin-top: 7px; }
  .market-index-row { display: block; padding: 7px; }
  .market-index-quote { margin-top: 4px; text-align: left; }
  .market-index-row b { font-size: 9px; }
  .market-index-quote b { font-size: 11px; }
  .market-indices-note { font-size: 7px; }
  .market-toolbar.indices-expanded { grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto auto; }
  .market-toolbar.indices-expanded > .search-box { grid-column: 1; grid-row: 1; }
  .market-toolbar.indices-expanded > .market-indices-card { grid-column: 1; grid-row: 2; }
  .market-toolbar.indices-expanded > .segment { grid-column: 1; grid-row: 3; }
  .market-toolbar.indices-expanded .market-indices-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .market-toolbar.indices-expanded .market-index-row { display: flex; }
  .market-toolbar.indices-expanded .market-index-quote { margin-top: 0; text-align: right; }
  .search-box { width: 100%; max-width: none; }
  .segment { width: 100%; }
  .segment button { flex: 1; }
  .settings-grid { grid-template-columns: 1fr; }
  .profile-card { display: block; }
  .profile-card-side { align-items: flex-end; justify-content: space-between; border-top: 1px solid var(--line); margin-top: 16px; padding-top: 14px; }
  .profile-balance { text-align: left; }
  .position-stats { grid-template-columns: 1fr 1fr; }
  .trade-row { align-items: flex-start; padding: 14px 12px; }
  .trade-money { min-width: 96px; }
  .trade-detail-chips span { font-size: 8px; }
  .bottom-nav { --mobile-nav-item-width:20%;--mobile-nav-indicator-x:0px;--mobile-nav-drag-x:0px;position:fixed;display:grid;grid-template-columns:repeat(var(--mobile-nav-columns,5),1fr);z-index:40;bottom:calc(10px + env(safe-area-inset-bottom));left:12px;right:12px;min-height:76px;padding:7px;border:1px solid rgba(120,125,138,.22);border-radius:34px;background:rgba(255,255,255,var(--mobile-nav-opacity));box-shadow:0 15px 40px rgba(31,38,56,.13),inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(255,255,255,.42);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);overflow:hidden;isolation:isolate;touch-action:none;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease; }
  .bottom-nav::before { content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(150deg,rgba(255,255,255,.58),rgba(255,255,255,.08) 52%,color-mix(in srgb,var(--primary) 5%,transparent));pointer-events:none; }
  .bottom-nav::after { content:"";position:absolute;z-index:1;top:7px;bottom:7px;left:9px;width:calc(var(--mobile-nav-item-width) - 4px);border:1px solid rgba(255,255,255,.72);border-radius:27px;background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(205,208,216,.38));box-shadow:0 8px 20px rgba(43,49,65,.11),inset 0 1px 1px rgba(255,255,255,.92);transform:translateX(calc(var(--mobile-nav-indicator-x) + var(--mobile-nav-drag-x)));transition:transform .34s cubic-bezier(.2,.86,.22,1),background .2s ease,box-shadow .2s ease;pointer-events:none; }
  .bottom-nav.dragging::after { transition:none; }
  .bottom-nav .nav-button { position:relative;z-index:2;display:grid;place-items:center;align-content:center;gap:3px;min-width:0;min-height:62px;padding:5px 2px;border:0;border-radius:27px;color:color-mix(in srgb,var(--ink) 68%,transparent);text-align:center;font-size:10px;font-weight:500;transition:transform .18s cubic-bezier(.2,.8,.2,1),color .18s ease; }
  .bottom-nav .nav-button:active,.bottom-nav .nav-button:focus,.bottom-nav .nav-button:hover { transform:scale(.96);background:transparent!important;box-shadow:none!important;outline:none; }
  .bottom-nav .nav-button.active { color:var(--primary);background:transparent;box-shadow:none; }
  .bottom-nav .nav-button.active::after { content:"";position:absolute;top:3px;left:24%;right:24%;height:1px;border-radius:999px;background:rgba(255,255,255,.95); }
  .bottom-nav .nav-icon { display:grid;place-items:center;width:25px;height:25px;filter:drop-shadow(0 1px 2px rgba(255,255,255,.7)); }
  .bottom-nav .nav-icon svg { width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round; }
  .liuge-hero { padding:18px;border-radius:var(--liuge-hero-radius); }
  .liuge-hero h2 { font-size:20px; }
  .liuge-latest-card { padding:18px 14px; }
  .liuge-latest-head { align-items:center; }
  .liuge-balls { justify-content:center;gap:6px;margin-top:18px; }
  .liuge-ball-wrap { gap:6px; }
  .liuge-ball { width:var(--liuge-ball-mobile-size);height:var(--liuge-ball-mobile-size);border-width:min(3px,var(--liuge-ball-border-width)); }
  html[data-liuge-ball-shape="pill"] .liuge-ball { width:calc(var(--liuge-ball-mobile-size) * 1.16); }
  .liuge-ball b { font-size:16px; }
  .liuge-ball small { font-size:7px; }
  .liuge-special-separator { font-size:14px; }
  .liuge-zodiac-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .liuge-history-row { grid-template-columns:1fr;gap:12px;padding:14px 12px; }
  .liuge-history-balls { justify-content:flex-start;gap:4px; }
  .liuge-history-list { grid-template-columns:1fr; }
  .liuge-mini-ball { width:var(--liuge-history-ball-mobile-size);height:var(--liuge-history-ball-mobile-size); }
  html[data-liuge-history-ball-shape="pill"] .liuge-mini-ball { width:calc(var(--liuge-history-ball-mobile-size) * 1.16); }
  .liuge-section-heading { align-items:center; }
  .detail-sheet { inset: auto 0 0; width: 100%; max-height: 88vh; border-radius: 26px 26px 0 0; padding: 24px 18px calc(24px + env(safe-area-inset-bottom)); }
  .auth-sheet, .confirm-sheet { inset: auto 0 0; transform: none; width: 100%; border-radius: 26px 26px 0 0; padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
  .valuation-sheet, .valuation-import-sheet, .fund-lookup-sheet, .news-sheet { inset: auto 0 0; transform: none; width: 100%; max-height: 92vh; border-radius: 26px 26px 0 0; padding: 24px 16px calc(24px + env(safe-area-inset-bottom)); }
  .valuation-import-sheet { inset: 0; display: block; width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; padding: calc(14px + env(safe-area-inset-top)) 14px calc(12px + env(safe-area-inset-bottom)); overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; background: #f5f6fa; }
  .valuation-import-header { flex: none; margin-bottom: 14px; }
  .valuation-import-summary, .valuation-import-account { flex: none; }
  .valuation-import-preview { min-height: 0; margin: 12px 0; padding: 1px 1px 6px; overflow: visible; }
  .valuation-import-continue, .valuation-import-note, .valuation-import-footer { flex: none; }
  .valuation-import-footer { position: sticky; bottom: calc(-12px - env(safe-area-inset-bottom)); z-index: 3; margin: 0 -14px; padding: 12px 14px calc(12px + env(safe-area-inset-bottom)); background: rgba(245,246,250,.96); backdrop-filter: blur(12px); }
  .valuation-import-note { max-height: 44px; overflow-y: auto; }
  .valuation-import-row { padding: 14px 12px; }
  .valuation-import-main b { font-size: 12px; }
  .valuation-import-main strong { font-size: 13px; }
  .valuation-import-meta { grid-template-columns: auto auto minmax(0,1fr); }
  .valuation-import-meta time { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
  .valuation-sheet.valuation-simple-sheet { inset: 0; width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; padding: calc(22px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; overflow-x: hidden; }
  .valuation-sheet.valuation-simple-sheet > .modal-close { position:fixed;z-index:120;top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 12px);display:grid;place-items:center;width:40px;height:40px;box-shadow:0 7px 20px rgba(22,27,42,.14); }
  .valuation-simple-sheet .auth-brand { padding-right: 40px; }
  .valuation-simple-sheet .form-grid { grid-template-columns: minmax(0,1fr); }
  .valuation-trade-fund-summary { align-items: flex-start; padding: 14px 12px; }
  .valuation-trade-fund-summary h3 { font-size: 14px; }
  .valuation-trade-fund-summary p { white-space: normal; overflow-wrap: anywhere; }
  .valuation-simple-block { padding: 15px 12px; }
  .valuation-fee-hint { margin-left: 42px; }
  .news-sheet-head { display: block; padding-right: 42px; }
  .news-sheet-head button { width: 100%; margin-top: 12px; }
  .analysis-source-banner { display: block; }
  .analysis-source-banner > b { display: block; max-width: 100%; margin-top: 8px; overflow-wrap: anywhere; white-space: normal; }
  .valuation-analysis-badges { align-items: flex-start; max-width: 100%; margin-top: 8px; }
  .valuation-analysis-badges > b { overflow-wrap: anywhere; white-space: normal; }
  .news-feed-summary { display: block; }
  .news-feed-summary span { display: block; margin-top: 6px; }
  .realtime-news-title { display: block; }
  .realtime-news-title > b { display: inline-block; margin-top: 8px; }
  .realtime-news-analysis { grid-template-columns: 1fr; gap: 5px; }
  .detail-figures { grid-template-columns: 1fr 1fr; }
  .valuation-hero { min-height: 250px; padding: 20px; border-radius: 24px; }
  .valuation-hero-head { display: block; }
  .valuation-today { margin-top: 20px; text-align: left; }
  .valuation-summary-grid { grid-template-columns: repeat(var(--valuation-metric-columns,5), minmax(128px,1fr)); overflow-x: auto; padding-bottom: 4px; }
  .valuation-toolbar { display: block; }
  .valuation-actions { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr 42px; }
  .valuation-actions .secondary-button, .valuation-actions .primary-button { padding: 0 8px; font-size: 9px; }
  .valuation-filters { display: grid; grid-template-columns: minmax(0,1fr) 90px; }
  .valuation-filters .search-box { min-width: 0; }
  .valuation-search-button { padding: 0 8px; font-size: 9px; }
  .valuation-account-controls { grid-column: 1 / -1; grid-template-columns: minmax(0,1fr) repeat(3,auto); }
  .valuation-filters select { min-width: 0; width: 100%; }
  .valuation-account-button { min-height: 46px; padding: 0 7px; font-size: 8px; }
  .valuation-account-manage { min-width: 45px; padding: 0 6px; font-size: 8px; }
  .valuation-ai-panel { padding: 15px 12px; border-radius: 18px; }
  .valuation-ai-head { display: block; }
  .valuation-ai-buttons { display: grid; grid-template-columns: minmax(90px,.65fr) minmax(0,1.35fr); margin-top: 12px; }
  .valuation-ai-head button { width: 100%; min-width: 0; }
  .valuation-ai-success-time { grid-column: 1 / -1; justify-self: end; }
  .valuation-ai-collapsed { display: block; }
  .valuation-ai-collapsed b { display: block; margin-top: 8px; white-space: normal; }
  .valuation-ai-overview { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .valuation-ai-summary { grid-column: 1 / -1; }
  .valuation-ai-stat { padding: 10px 7px; }
  .valuation-ai-stat b { font-size: 11px; }
  .valuation-advice-grid { grid-template-columns: 1fr; }
  .valuation-advice-numbers { gap: 5px; }
  .valuation-ai-section-title { display: block; }
  .valuation-ai-section-title span { display: block; margin-top: 5px; }
  .valuation-position-list { border-width: 1px 0; border-radius: 0; }
  .valuation-list-head { grid-template-columns: minmax(0,1.42fr) repeat(3,minmax(0,.72fr)); padding: 0 5px 7px; gap: 4px; }
  .valuation-list-head span { display: block !important; font-size: 7px; }
  .valuation-fund-row { grid-template-columns: minmax(0,1.42fr) repeat(3,minmax(0,.72fr)); gap: 4px; min-height: 62px; padding: 10px 5px; }
  .valuation-fund-main h3 { font-size: 10px; }
  .valuation-fund-subline { gap: 3px; margin-top: 5px; font-size: 7px; }
  .valuation-pending-inline { max-width: 56px; font-size: 6px; }
  .valuation-metric b { margin-top: 0; font-size: 10px; }
  .valuation-metric small { margin-top: 4px; font-size: 7px; line-height: 1.25; }
  .valuation-theme-metric small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .qdii-date-map { grid-template-columns: 1fr; }
  .valuation-fund-row > .valuation-nav-metric { display: none; }
  .valuation-row-actions { grid-column: 1 / -1; justify-content: stretch; padding-top: 9px; border-top: 1px solid var(--line); }
  .valuation-row-actions button { flex: 1; }
  .valuation-fund-history { grid-column: 1 / -1; }
  .valuation-ledger-row { align-items: flex-start; padding: 10px; }
  .valuation-ledger-row b { flex: 0 0 auto; }
  .fund-my-position .valuation-row-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .fund-my-position .valuation-row-actions button { min-width: 0; }
  .valuation-import-fields { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .valuation-import-fields .import-field:nth-child(2) { grid-column: auto; }
  .valuation-import-fields .valuation-import-name-field { grid-column: 1 / -1; }
  .fund-detail-quote { grid-template-columns: 1fr 1fr; }
  .qdii-detail-grid { grid-template-columns: 1fr 1fr; }
  .toast { bottom: calc(82px + env(safe-area-inset-bottom)); }
}

body { font-size: var(--font-body-size); }
.brand-block strong { font-size: var(--font-brand-size); }
.nav-button, .bottom-nav .nav-button { font-size: var(--font-navigation-size); }
.topbar h1, .guest-hero h2, .valuation-guest h2, .fund-lookup-heading h2, .fund-detail-hero h2, .detail-hero h2 { font-size: var(--font-page-title-size); }
.section-heading h2, .valuation-toolbar h2, .valuation-ai-head h2, .fund-detail-section h3, .detail-section h3 { font-size: var(--font-section-title-size); }
.plan-head h3, .card-title h3, .profile-main h2, .valuation-ai-summary h3, .valuation-ai-section-title h3, .auth-brand h2 { font-size: var(--font-card-title-size); }
.announcement, .topbar p, .plan-head p, .settings-card > p, .probability-card p, .side-risk, .auth-brand p, .form-note, .data-definition-note, .fund-detail-notice { font-size: var(--font-body-size); }
.brand-block small, .section-heading span, .hero-label, .hero-stat span, .plate-type, .plate-flow span, .plate-market-metrics, .plate-meta span, .market-summary, .profile-main p, .profile-balance span, .card-title span, .guardrails span, .fee-tiers span, .position-head p, .trade-row p, .position-value span, .trade-money span, .position-stat span, .position-stat small, .valuation-hero-label, .valuation-update, .valuation-today span, .valuation-today em, .valuation-summary-item span, .valuation-toolbar > div:first-child > span, .valuation-list-head, .valuation-fund-main p, .valuation-metric span, .valuation-metric small, .auth-note, #authForm label, #valuationTradeForm label, .import-field, .fund-lookup-heading span, .fund-lookup-result span, .fund-detail-hero small, .fund-detail-quote span, .fund-detail-section-head span, .detail-figure span, .fund-list-head span, .fund-row p { font-size: var(--font-auxiliary-size); }
.primary-button, .secondary-button, .text-button, .segment button, .valuation-row-actions button, .action-tag, .status-pill, .account-button b { font-size: var(--font-button-size) !important; }
input, select, textarea, .search-box input, .fund-suggestion { font-size: var(--font-input-size); }
.trade-row h4, .trade-row p, .trade-detail-chips span, .valuation-ledger-row h4, .valuation-ledger-row p, .valuation-ledger-row b, .history-table, .fund-detail-table, .fund-list-head, .valuation-list-head { font-size: var(--font-table-size); }
.valuation-ai-head p, .valuation-ai-empty, .valuation-ai-summary p, .valuation-ai-meta, .valuation-ai-saved-note, .valuation-ai-stale, .valuation-ai-section-title span, .valuation-advice-title p, .valuation-action-pill, .valuation-advice-numbers span, .valuation-adjustment-note, .valuation-advice-reason, .valuation-evidence, .valuation-ai-risks, .valuation-ai-risks strong { font-size: var(--font-ai-size); }
.hero-stat b, .plate-change, .plate-flow b, .plate-market-metrics b, .profile-balance b, .position-stat b, .valuation-summary-item b, .valuation-ai-stat b, .valuation-advice-numbers b, .valuation-metric b, .fund-detail-quote b, .detail-figure b { font-size: var(--font-metric-size); }
.hero-value, .valuation-total, .valuation-today b, .probability-value { font-size: var(--font-amount-size); }
.plate-card h3 { font-size: var(--font-plate-name-size); }
.position-head h3, .valuation-fund-main h3, .fund-row h4, .fund-lookup-result b, .valuation-advice-title h4 { font-size: var(--font-fund-name-size); }

@media (max-width: 760px) {
  input, select, textarea, .search-box input { font-size: 16px !important; }
}

/* 六哥 AI 分析卡片 */
.liuge-ai-analysis { margin: 16px 0; }
.liuge-ai-card { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 18px; }
.liuge-ai-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.liuge-ai-head span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: 0.4px; }
.liuge-ai-head h3 { font-size: 15px; margin-top: 4px; }
.liuge-ai-body { display: flex; flex-direction: column; gap: 12px; }
.liuge-ai-recommendation { display: flex; align-items: center; gap: 12px; padding: 14px; background: linear-gradient(135deg,color-mix(in srgb,var(--liuge-accent) 9%,var(--surface)),color-mix(in srgb,var(--primary) 8%,var(--surface))); border-radius: 14px; border: 1px solid color-mix(in srgb,var(--liuge-accent) 22%,var(--line)); }
.liuge-ai-recommendation i { font-size: 32px; }
.liuge-ai-recommendation b { display: block; font-size: 16px; color: #d4380d; }
.liuge-ai-recommendation span { font-size: 11px; color: var(--muted); }
.liuge-ai-reason { font-size: 12px; color: var(--ink); line-height: 1.6; margin: 0; }
.liuge-ai-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.liuge-ai-tags span { font-size: 10px; padding: 4px 10px; background: var(--canvas); border-radius: 20px; color: var(--muted); }
.liuge-ai-empty { padding: 20px; text-align: center; color: var(--muted); font-size: 11px; }
.liuge-ai-analyzing .liuge-ai-status { text-align: center; color: var(--muted); font-size: 12px; margin: 8px 0 0; }
.liuge-progress-bar { height: 6px; background: var(--canvas); border-radius: 3px; overflow: hidden; margin: 8px 0; }
.liuge-progress-fill { height: 100%; background: linear-gradient(90deg, #ee3f4d, #ff7a45); border-radius: 3px; transition: width 0.3s ease; animation: liugeProgressPulse 1.5s ease-in-out infinite; }
@keyframes liugeProgressPulse { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
.liuge-ai-section { margin-top: 8px; }
.liuge-ai-section b { font-size: 12px; color: var(--ink); display: block; margin-bottom: 6px; }
.liuge-special-numbers { display: flex; gap: 8px; flex-wrap: wrap; }
.liuge-special-number { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 52px; padding: 6px 8px; border-radius: 10px; font-size: 14px; font-weight: 700; color: #fff; background: var(--primary); line-height: 1.2; }
.liuge-special-number.red { background: var(--liuge-red); }
.liuge-special-number.blue { background: var(--liuge-blue); }
.liuge-special-number.green { background: var(--liuge-green); }
.liuge-special-number small { font-size: 10px; font-weight: 400; opacity: 0.9; white-space: nowrap; }
.liuge-special-number { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; font-size: 14px; font-weight: 700; color: #fff; background: var(--primary); }
.liuge-special-number.red { background: var(--liuge-red); }
.liuge-special-number.blue { background: var(--liuge-blue); }
.liuge-special-number.green { background: var(--liuge-green); }
.liuge-special-number small { font-size: 9px; font-weight: 400; opacity: 0.9; }
.liuge-hit-stats { margin-top: 6px; padding: 8px 12px; background: var(--canvas); border-radius: 10px; font-size: 11px; color: var(--muted); }
@media (max-width: 760px) {
  .liuge-ai-recommendation i { font-size: 28px; }
  .liuge-ai-recommendation b { font-size: 14px; }
}

/* 六哥手动分析栏 */
.liuge-analyze-bar { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; margin: 12px 0 16px; padding: 0 4px; }
.liuge-analyze-bar .secondary-button { padding: 10px 18px; font-size: 13px; border-radius: 14px; }
.liuge-analyze-bar .secondary-button:disabled { opacity: 0.6; cursor: not-allowed; }
.liuge-analyze-bar #liugeHistoryToggle { min-width: 164px; min-height: 48px; padding: 0 20px; border: 1px solid color-mix(in srgb,var(--primary) 28%,var(--line)); border-radius: 15px; background: color-mix(in srgb,var(--primary) 8%,var(--surface)); font-size: 14px; white-space: nowrap; box-shadow: 0 6px 16px rgba(25,31,45,.06); }
.liuge-analyze-status { min-width: 0; font-size: 11px; color: var(--muted); }
@media (max-width: 760px) {
  .liuge-analyze-bar { grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 0; }
  .liuge-analyze-bar .secondary-button { width: 100%; min-height: 48px; padding: 8px 12px; }
  .liuge-analyze-bar #liugeHistoryToggle { min-width: 154px; min-height: 50px; padding: 0 14px; font-size: 13px; }
  .liuge-analyze-status { grid-column: 1 / -1; min-height: 0; }
}
/* 六哥历史分析 */
.liuge-ai-history { margin: 12px 0 16px; }
.liuge-streak-banner { background: linear-gradient(90deg, #ee3f4d, #ff7a45); color: #fff; padding: 10px 16px; border-radius: 12px; font-size: 13px; font-weight: 600; margin-bottom: 12px; text-align: center; }
.liuge-ai-history-list { display: flex; flex-direction: column; gap: 8px; }
.liuge-history-ai-row { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; }
.liuge-history-ai-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.liuge-history-ai-meta b { font-size: 12px; color: var(--ink); }
.liuge-history-ai-meta span { font-size: 11px; color: var(--muted); }
.liuge-history-ai-predict { display: flex; gap: 16px; font-size: 12px; color: var(--ink); margin-bottom: 6px; }
.liuge-history-ai-result { display: flex; gap: 12px; font-size: 11px; color: var(--muted); }
.liuge-history-num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-size: 11px; font-weight: 700; color: #fff; background: var(--primary); margin-right: 4px; }
.liuge-history-num.red { background: var(--liuge-red); }
.liuge-history-num.blue { background: var(--liuge-blue); }
.liuge-history-num.green { background: var(--liuge-green); }
.liuge-ai-history-empty { text-align: center; padding: 24px; color: var(--muted); font-size: 13px; }
/* Liuge AI stats tags */
.liuge-stat-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; align-items: center; }
.liuge-stat-label { font-size: 10px; color: var(--muted); min-width: 32px; }
.liuge-stat-tag { font-size: 11px; padding: 3px 8px; background: var(--canvas); border-radius: 10px; color: var(--ink); border: 1px solid var(--line); }
.liuge-stat-tag em { font-style: normal; color: var(--muted); font-size: 10px; }

@media (prefers-color-scheme: dark) {
  html[data-color-scheme="dark"] body { background:radial-gradient(circle at 80% -10%,color-mix(in srgb,var(--primary) 18%,transparent),transparent 28rem),var(--canvas); }
  html[data-color-scheme="dark"] .topbar { background:color-mix(in srgb,var(--surface) 82%,transparent);border-color:var(--line); }
  html[data-color-scheme="dark"] input,
  html[data-color-scheme="dark"] select,
  html[data-color-scheme="dark"] textarea { color:var(--ink);background:color-mix(in srgb,var(--surface) 90%,#000);border-color:var(--line); }
  html[data-color-scheme="dark"] .announcement { color:#ff9ba5;background:rgba(238,63,77,.11);border-color:rgba(238,63,77,.28); }
  html[data-color-scheme="dark"] .liuge-ball,
  html[data-color-scheme="dark"] .liuge-mini-ball { color:var(--ink);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--surface) 82%,transparent),0 7px 18px rgba(0,0,0,.24); }
  html[data-color-scheme="dark"] .bottom-nav { border-color:rgba(255,255,255,.15);background:rgba(25,28,36,var(--mobile-nav-opacity));box-shadow:0 20px 52px rgba(0,0,0,.44),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(255,255,255,.05); }
  html[data-color-scheme="dark"] .bottom-nav::before { background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.025) 48%,color-mix(in srgb,var(--primary) 14%,transparent)); }
  html[data-color-scheme="dark"] .bottom-nav::after { border-color:rgba(255,255,255,.18);background:linear-gradient(145deg,rgba(255,255,255,.16),color-mix(in srgb,var(--primary) 20%,rgba(255,255,255,.055)));box-shadow:0 9px 24px rgba(0,0,0,.3),inset 0 1px 1px rgba(255,255,255,.18); }
  html[data-color-scheme="dark"] .bottom-nav .nav-button { color:#a9afbd; }
  html[data-color-scheme="dark"] .bottom-nav .nav-button.active { color:color-mix(in srgb,var(--primary) 70%,#fff); }
}

@media (max-width:760px) and (prefers-reduced-transparency:reduce), (max-width:760px) and (prefers-contrast:more) {
  .bottom-nav { background:color-mix(in srgb,var(--surface) 96%,var(--canvas));-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--line); }
  .bottom-nav::before { opacity:.18; }
}

@supports not ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))) {
  @media (max-width:760px) {
    .bottom-nav { background:color-mix(in srgb,var(--surface) 96%,var(--canvas)); }
  }
}

/* AI task Dynamic Island */
.ai-dynamic-island { position:fixed;z-index:220;top:calc(10px + env(safe-area-inset-top));left:50%;width:min(420px,calc(100vw - 28px));padding:5px;border:1px solid rgba(255,255,255,.16);border-radius:26px;background:rgba(7,8,12,.94);color:#fff;box-shadow:0 14px 42px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.09);transform:translateX(-50%);-webkit-backdrop-filter:blur(22px) saturate(155%);backdrop-filter:blur(22px) saturate(155%);overflow:hidden;animation:aiIslandEnter .32s cubic-bezier(.2,.85,.25,1); }
.ai-dynamic-island[hidden],.ai-completion-popup[hidden] { display:none!important; }
.ai-island-main { display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:46px;padding:4px 8px;border:0;border-radius:20px;background:transparent;color:inherit;text-align:left;cursor:pointer; }
.ai-island-orb { position:relative;width:27px;height:27px;border-radius:50%;background:conic-gradient(from 20deg,#53a3ff,#a878ff,#ff6574,#53e2bd,#53a3ff);box-shadow:0 0 16px rgba(103,151,255,.42);animation:aiIslandOrb 2s linear infinite; }
.ai-island-orb::after { content:"AI";position:absolute;inset:3px;display:grid;place-items:center;border-radius:50%;background:#0b0c11;color:#fff;font-size:8px;font-weight:800;letter-spacing:.02em; }
.ai-dynamic-island.completed .ai-island-orb { background:#32d583;animation:none; }
.ai-dynamic-island.failed .ai-island-orb { background:#ff5c68;animation:none; }
.ai-island-copy { display:flex;min-width:0;flex-direction:column;gap:1px; }
.ai-island-copy b { overflow:hidden;color:#fff;font-size:12px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap; }
.ai-island-copy small { overflow:hidden;color:rgba(255,255,255,.62);font-size:9px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap; }
.ai-island-main > strong { min-width:38px;color:#fff;font-size:12px;text-align:right;font-variant-numeric:tabular-nums; }
.ai-island-progress { height:3px;margin:0 8px 3px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden; }
.ai-island-progress i { display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4da5ff,#a574ff,#ff6574);box-shadow:0 0 10px rgba(105,141,255,.7);transition:width .45s ease; }
.ai-dynamic-island.completed .ai-island-progress i { background:#32d583; }
.ai-dynamic-island.failed .ai-island-progress i { background:#ff5c68; }
.ai-island-details { display:grid;gap:7px;padding:7px 8px 8px;border-top:1px solid rgba(255,255,255,.09); }
.ai-island-task { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:7px 8px;border-radius:13px;background:rgba(255,255,255,.07); }
.ai-island-task b { overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap; }
.ai-island-task span { color:rgba(255,255,255,.67);font-size:9px; }
.ai-island-task strong { grid-row:1 / span 2;grid-column:2;align-self:center;font-size:10px;font-variant-numeric:tabular-nums; }
.ai-island-notification { width:100%;min-height:34px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.1);color:#fff;font-size:10px;font-weight:700;cursor:pointer; }
.ai-completion-popup { position:fixed;z-index:219;top:calc(78px + env(safe-area-inset-top));left:50%;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;width:min(390px,calc(100vw - 30px));padding:12px 14px;border:1px solid color-mix(in srgb,#32d583 34%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--ink);box-shadow:0 16px 42px rgba(20,30,45,.2);transform:translateX(-50%);-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%);animation:aiPopupEnter .28s ease; }
.ai-completion-popup.failed { border-color:color-mix(in srgb,#ff5c68 42%,var(--line)); }
.ai-completion-icon { display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(50,213,131,.13);color:#169b74;font-size:16px;font-weight:800; }
.ai-completion-popup.failed .ai-completion-icon { background:rgba(255,92,104,.12);color:#ef4d5c; }
.ai-completion-copy { min-width:0; }
.ai-completion-copy b,.ai-completion-copy small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.ai-completion-copy b { font-size:12px; }
.ai-completion-copy small { margin-top:2px;color:var(--muted);font-size:9px; }
.ai-completion-close { width:28px;height:28px;border:0;border-radius:9px;background:color-mix(in srgb,var(--canvas) 80%,transparent);color:var(--muted);font-size:16px;cursor:pointer; }
@keyframes aiIslandEnter { from { opacity:0;transform:translate(-50%,-18px) scale(.92); } to { opacity:1;transform:translate(-50%,0) scale(1); } }
@keyframes aiIslandOrb { to { transform:rotate(360deg); } }
@keyframes aiPopupEnter { from { opacity:0;transform:translate(-50%,-10px); } to { opacity:1;transform:translate(-50%,0); } }
@media (min-width:761px) { .ai-dynamic-island { left:calc(50% + 115px); }.ai-completion-popup { left:calc(50% + 115px); } }
@media (max-width:760px) { .ai-dynamic-island { top:calc(7px + env(safe-area-inset-top));width:min(370px,calc(100vw - 24px)); }.ai-completion-popup { top:calc(72px + env(safe-area-inset-top)); } }
@media (prefers-reduced-motion:reduce) { .ai-dynamic-island,.ai-completion-popup,.ai-island-orb { animation:none; }.ai-island-progress i { transition:none; } }
@media (prefers-reduced-transparency:reduce),(prefers-contrast:more) { .ai-dynamic-island { background:#08090d;-webkit-backdrop-filter:none;backdrop-filter:none; }.ai-completion-popup { background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none; } }

/* Compact holdings, account tabs and valuation performance calendar */
.valuation-ai-panel[hidden] { display:none!important; }
.valuation-hero { min-height:0;padding:4px 2px 12px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;color:var(--ink); }
.valuation-assets-bar { display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.72fr);align-items:end;gap:28px;padding:40px 0 18px;border-bottom:1px solid var(--line); }
.portfolio-assets-bar { padding-top:18px; }
.valuation-assets-total span,.valuation-assets-today span { display:block;color:var(--muted);font-size:var(--asset-summary-label-size); }
.valuation-assets-total b { display:block;margin-top:8px;color:var(--ink);font-size:var(--asset-summary-amount-size);line-height:1;font-weight:850;letter-spacing:-.04em; }
.valuation-assets-total small { display:block;margin-top:9px;color:var(--muted);font-size:var(--holding-list-auxiliary-size);line-height:1.55; }
.valuation-assets-today { text-align:right; }
.valuation-assets-today b { display:block;margin-top:8px;font-size:var(--asset-summary-today-size);line-height:1;font-weight:850; }
.valuation-performance-button { margin-top:10px;padding:0;border:0;background:transparent;color:#4e79d8;font-size:var(--font-button-size);font-weight:800;cursor:pointer; }
.portfolio-hero.plain-assets { min-height:0;padding:4px 2px 12px;border-radius:0;background:transparent;color:var(--ink);box-shadow:none;overflow:visible; }
.portfolio-hero.plain-assets::after { display:none; }
.valuation-account-strip { position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42px 42px;align-items:start;gap:8px;min-width:0; }
.valuation-account-tabs { display:flex;gap:8px;width:100%;min-width:0;padding:2px 1px 5px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch; }
.valuation-account-tabs::-webkit-scrollbar { display:none; }
.valuation-account-tabs button { flex:0 0 auto;min-height:38px;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:var(--font-button-size);font-weight:750;cursor:pointer;white-space:nowrap; }
.valuation-account-tabs button.active { border-color:color-mix(in srgb,var(--primary) 36%,var(--line));background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary); }
.valuation-account-settings-button { width:42px;height:38px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);font-size:17px;cursor:pointer;box-shadow:0 8px 22px rgba(31,34,46,.06); }
.valuation-account-privacy-button { display:grid;place-items:center;width:42px;height:38px;padding:0;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:0 8px 22px rgba(31,34,46,.06); }
.valuation-account-privacy-button svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.valuation-account-select-fallback { display:none!important; }
.valuation-account-controls { position:absolute;z-index:40;top:46px;right:0;left:auto;display:grid;grid-template-columns:1fr;min-width:164px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 22px 60px rgba(31,34,46,.24); }
.valuation-account-controls[hidden] { display:none!important; }
.valuation-account-controls button { width:100%;min-height:38px;border:0;border-radius:10px;background:transparent;text-align:left; }
.valuation-account-controls button:hover { background:var(--canvas); }
.valuation-account-controls .valuation-account-menu-close { margin-bottom:4px;border-bottom:1px solid var(--line);border-radius:8px;color:var(--muted);text-align:right; }
.valuation-position-list,.simulation-position-list { overflow:hidden; }
.valuation-fund-main h3 { color:var(--holding-list-fund-name-color);font-size:var(--holding-list-fund-name-size); }
.valuation-fund-subline { color:var(--holding-list-auxiliary-color);font-size:var(--holding-list-auxiliary-size); }
.valuation-fund-subline > span { color:var(--holding-list-amount-color);font-size:var(--holding-list-amount-size);font-weight:750; }
.valuation-metric b { font-size:var(--holding-list-metric-size);font-variant-numeric:tabular-nums; }
.valuation-metric small { color:var(--holding-list-auxiliary-color);font-size:var(--holding-list-auxiliary-size); }
.valuation-position-list .up,.simulation-position-list .up { color:var(--holding-list-positive-color)!important; }
.valuation-position-list .down,.simulation-position-list .down { color:var(--holding-list-negative-color)!important; }
.valuation-theme-metric b.waiting { color:var(--holding-list-auxiliary-color);font-size:var(--holding-list-auxiliary-size); }
.simulation-list-head { margin-top:2px; }
.simulation-fund-row { cursor:default; }
.simulation-fund-row:hover { background:var(--surface); }
.valuation-performance-sheet { position:absolute;inset:24px 24px 24px auto;width:min(820px,calc(100% - 48px));padding:28px;border-radius:26px;background:var(--surface);box-shadow:0 30px 90px rgba(15,16,22,.25);overflow:auto; }
.valuation-performance-head { padding-right:42px; }
.valuation-performance-head > span { color:#4e79d8;font-size:var(--font-auxiliary-size);font-weight:850;letter-spacing:.08em; }
.valuation-performance-head h2 { margin:7px 0 0;font-size:var(--font-page-title-size); }
.valuation-performance-head p { margin:7px 0 0;color:var(--muted);font-size:var(--font-body-size);line-height:1.6; }
.valuation-performance-metrics { display:grid;grid-template-columns:repeat(var(--valuation-metric-columns,5),minmax(0,1fr));gap:9px;margin-top:20px; }
.valuation-performance-metrics > div,.valuation-calendar-summary > div { padding:13px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,var(--canvas)); }
.valuation-performance-metrics span,.valuation-calendar-summary span { display:block;color:var(--muted);font-size:var(--font-auxiliary-size); }
.valuation-performance-metrics b,.valuation-calendar-summary b { display:block;margin-top:6px;font-size:var(--font-metric-size); }
.valuation-calendar-summary { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px; }
.valuation-calendar-toolbar { display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:10px;margin:22px 0 10px; }
.valuation-calendar-toolbar strong { text-align:center;font-size:var(--font-card-title-size); }
.valuation-calendar-toolbar button { width:40px;height:36px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);font-size:22px;cursor:pointer; }
.valuation-calendar-week,.valuation-calendar-grid { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px; }
.valuation-calendar-week span { padding:5px;color:var(--muted);font-size:var(--font-auxiliary-size);text-align:center; }
.valuation-calendar-day { min-height:82px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface); }
.valuation-calendar-day.empty { visibility:hidden; }
.valuation-calendar-day > span { display:block;color:var(--muted);font-size:var(--font-auxiliary-size); }
.valuation-calendar-day b,.valuation-calendar-day small { display:block;margin-top:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.valuation-calendar-day b { font-size:var(--calendar-amount-size,13px); }
.valuation-calendar-day small { margin-top:3px;color:var(--muted);font-size:var(--holding-list-date-size); }
.valuation-calendar-day.has-value.positive { border-color:rgba(244,67,83,.24);background:rgba(255,75,91,.09); }
.valuation-calendar-day.has-value.positive b,.valuation-calendar-day.has-value.positive small { color:#e93146!important; }
.valuation-calendar-day.has-value.negative { border-color:rgba(22,165,116,.24);background:rgba(25,181,125,.1); }
.valuation-calendar-day.has-value.negative b,.valuation-calendar-day.has-value.negative small { color:#079768!important; }

@media (max-width:760px) {
  .membership-preview-lock::after { max-width:calc(100% - 20px);padding:9px 11px;font-size:10px; }
  .valuation-hero { min-height:0;padding:0 0 8px;border-radius:0; }
  .valuation-assets-bar { grid-template-columns:minmax(0,1fr) minmax(120px,.7fr);gap:14px;padding:40px 3px 15px; }
  .portfolio-assets-bar { padding-top:15px; }
  .valuation-assets-total b { font-size:var(--asset-summary-amount-size); }
  .valuation-assets-today b { font-size:var(--asset-summary-today-size); }
  .valuation-assets-total small { max-width:210px;font-size:8px; }
  .valuation-account-strip { grid-template-columns:minmax(0,1fr) 40px 40px;gap:6px; }
  .fund-ranking-columns { grid-template-columns:1fr; }
  .fund-ranking-group { padding:12px 9px; }
  .fund-ranking-group-head { align-items:flex-start;flex-direction:column;gap:5px; }
  .fund-ranking-column { padding:13px 11px; }
  .fund-detail-freshness { align-items:flex-start;flex-direction:column;gap:4px; }
  .fund-detail-freshness span { text-align:left; }
  .profit-sun { top:-10px;left:3px;font-size:25px; }
  .valuation-account-settings-button { width:40px;height:38px; }
  .valuation-account-privacy-button { width:40px;height:38px; }
  .valuation-account-controls { top:44px;right:0;left:auto;grid-template-columns:1fr; }
  .valuation-filters select { display:none!important; }
  .valuation-fund-main h3 { font-size:var(--holding-list-fund-name-size); }
  .valuation-fund-subline { font-size:var(--holding-list-auxiliary-size); }
  .valuation-fund-subline > span { font-size:var(--holding-list-amount-size); }
  .valuation-metric b { font-size:var(--holding-list-metric-size); }
  .valuation-list-head button span { font-size:var(--holding-list-header-size)!important; }
  .valuation-list-head button small { font-size:var(--holding-list-date-size)!important; }
  .valuation-metric small { font-size:var(--holding-list-auxiliary-size)!important; }
  .valuation-performance-sheet { inset:0;width:100%;max-width:100vw;min-height:100%;padding:calc(18px + env(safe-area-inset-top)) 14px calc(28px + env(safe-area-inset-bottom));border-radius:0; }
  .valuation-performance-sheet > .modal-close { position:fixed;z-index:160;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 12px);display:grid;place-items:center;width:42px;height:42px;border-radius:13px;box-shadow:0 7px 22px rgba(22,27,42,.16); }
  .valuation-performance-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .valuation-calendar-day { min-height:62px;padding:5px 4px;border-radius:9px; }
  .valuation-calendar-day b { font-size:var(--calendar-amount-size,13px); }
  .valuation-calendar-day small { font-size:max(8px,var(--holding-list-date-size)); }
  .valuation-calendar-week,.valuation-calendar-grid { gap:3px; }
}

.valuation-guest-assets .valuation-assets-total small { color:var(--muted); }
.valuation-guest-list-empty { margin-top:0;border-top:0;border-radius:0; }

/* Personal controls, effects and compact valuation toolbar */
.announcement { overflow:hidden;white-space:nowrap; }
.announcement > span { display:inline-block;min-width:100%;white-space:nowrap; }
.announcement.scrolling > span { padding-left:100%;animation:announcement-marquee var(--announcement-speed,18s) linear infinite; }
@keyframes announcement-marquee { to { transform:translateX(-200%); } }

html[data-background-preset="aurora"] body { background:radial-gradient(circle at 15% 5%,rgba(86,126,255,.19),transparent 28rem),radial-gradient(circle at 92% 20%,rgba(209,89,255,.14),transparent 24rem),var(--canvas); }
html[data-background-preset="finance"] body { background:linear-gradient(135deg,rgba(20,160,115,.08),transparent 38%),radial-gradient(circle at 90% 5%,rgba(238,63,77,.1),transparent 26rem),var(--canvas); }
html[data-background-preset="midnight"] body { background:radial-gradient(circle at 70% 0,rgba(84,79,220,.18),transparent 28rem),linear-gradient(145deg,color-mix(in srgb,var(--canvas) 88%,#080b22),var(--canvas)); }
html[data-background-preset="warm"] body { background:radial-gradient(circle at 85% 0,rgba(255,167,72,.2),transparent 28rem),radial-gradient(circle at 10% 25%,rgba(255,97,116,.1),transparent 24rem),var(--canvas); }

.valuation-toolbar { justify-content:flex-start; }
.valuation-actions { width:100%; }
.valuation-filters { display:block;position:relative; }
.valuation-search-popover { position:absolute;z-index:38;top:-4px;left:0;display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;width:min(520px,calc(100vw - 34px));padding:9px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 20px 52px rgba(31,34,46,.18); }
.valuation-search-popover[hidden] { display:none!important; }
.valuation-account-strip { width:100%; }
.valuation-account-settings-button { justify-self:end;margin-left:auto; }

.mine-action-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 26px; }
.mine-action-button { display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto;align-items:center;gap:11px;min-height:62px;padding:9px 12px;border:1px solid var(--line);border-radius:17px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 10px 28px rgba(31,34,46,.05); }
.mine-action-button > span { grid-row:1 / span 2;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:color-mix(in srgb,var(--primary) 9%,var(--surface));font-size:22px; }
.mine-action-button b { align-self:center;font-size:var(--font-card-title-size); }
.mine-action-button small { align-self:start;color:var(--muted);font-size:var(--font-auxiliary-size); }
.mine-profile-shell { width:min(680px,100%);margin:0 auto 8px; }
.mine-profile-card { width:100%;display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:15px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 12px 32px rgba(31,34,46,.06); }
.mine-profile-card.guest { grid-template-columns:minmax(0,1fr) auto; }
.mine-profile-card.guest .profile-main { min-width:0; }
.mine-profile-copy { min-width:0; }
.mine-profile-copy b,.mine-profile-copy small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.mine-profile-copy b { font-size:var(--font-card-title-size); }
.mine-profile-copy small { margin-top:5px;color:var(--muted);font-size:var(--font-auxiliary-size); }
.mine-profile-arrow { color:var(--muted);font-size:24px;line-height:1; }
.mine-feature-sheet { width:min(620px,calc(100% - 28px));max-height:calc(100vh - 40px);left:50%;top:50%;padding:26px;border-radius:24px;overflow:auto;transform:translate(-50%,-50%); }
.personalization-options { display:grid;gap:9px;margin-top:18px; }
.personalization-options label { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,var(--canvas)); }
.personalization-options b,.personalization-options small { display:block; }
.personalization-options small { margin-top:4px;color:var(--muted);font-size:var(--font-auxiliary-size); }
.personalization-options input { width:22px;height:22px;accent-color:var(--primary); }
.personalization-options .personal-effect-field select,.personalization-options .personal-effect-field input[type="number"] { width:min(150px,42vw);height:40px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);font-size:var(--font-body-size); }
.auth-help-actions { display:flex;justify-content:center;gap:18px;margin:14px 0 2px; }
.auth-help-actions button { min-height:38px;padding:6px 12px; }
.auth-sms-row { display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:10px;align-items:end; }
.auth-sms-row .secondary-button { min-height:48px;padding:0 10px; }
.profile-membership-status { grid-column:1 / -1;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:0;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--surface) 88%,var(--canvas)); }
.profile-membership-status div { min-width:0; }
.profile-membership-status b,.profile-membership-status span { display:block; }
.profile-membership-status b { font-size:10px;line-height:1.45; }
.profile-membership-status span { margin-top:2px;color:var(--muted);font-size:8px;line-height:1.45;overflow-wrap:anywhere; }
.profile-membership-status strong { flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#fff4cf;color:#9b6700;font-size:8px;white-space:nowrap; }
.profile-personalization-button { width:100%;margin-bottom:14px; }
.profile-account-actions { display:flex;gap:10px;margin-top:14px; }
.profile-account-actions > * { flex:1;justify-content:center;align-items:center;text-decoration:none; }
.account-links { display:none!important; }
.app-share-sheet { overflow-x:hidden;text-align:center; }
.app-share-title { display:flex;align-items:center;justify-content:center;gap:12px;text-align:left;margin-bottom:18px; }
.app-share-title .brand-mark { flex:0 0 40px;width:40px;height:40px;overflow:hidden; }
.app-share-title .brand-mark img { width:100%;height:100%;margin:0;padding:0;border:0;border-radius:inherit;object-fit:cover; }
.app-share-title h2,.app-share-title p { margin:0; }
.app-share-title p { margin-top:4px;color:var(--muted);font-size:var(--font-auxiliary-size); }
#appShareQr { display:block;width:min(260px,68vw)!important;max-width:260px!important;height:auto!important;aspect-ratio:1;margin:0 auto 18px!important;padding:10px!important;border:1px solid var(--line)!important;border-radius:20px!important;background:#fff!important;object-fit:contain; }
.app-share-sheet a { display:inline-flex;justify-content:center;align-items:center;text-decoration:none; }
.app-share-sheet > .secondary-button { width:100%;margin-top:9px; }
.app-download-actions { display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px; }
.app-download-actions .secondary-button { min-width:0; }
.app-download-actions .secondary-button.unconfigured { color:var(--muted);background:#f5f6f8; }
.app-download-actions .ios-download-button { grid-column:1 / -1; }
.ios-download-notice-sheet { text-align:left; }
.ios-download-notice-text { margin:8px 0 18px;padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--canvas);color:var(--muted);font-size:var(--font-body-size);line-height:1.75;white-space:pre-wrap; }
.ios-download-notice-sheet .primary-button { width:100%; }
.membership-package strong del { margin-right:5px;color:var(--muted);font-size:.8em;font-weight:500; }
.app-share-referral { display:grid;gap:5px;margin:0 0 14px;padding:13px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 88%,var(--canvas));text-align:left; }
.app-share-referral span,.app-share-referral p { margin:0;color:var(--muted);font-size:var(--font-auxiliary-size); }
.app-share-generation { display:grid;gap:3px;padding-top:7px;border-top:1px dashed var(--line); }
.app-share-generation b { font-size:var(--font-body-size); }
.referral-recharge-sheet { max-width:820px;overflow-x:hidden; }
.referral-recharge-toolbar { display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-bottom:12px; }
.referral-recharge-toolbar label { display:grid;gap:5px;color:var(--muted);font-size:var(--font-auxiliary-size); }
.referral-recharge-toolbar select,.referral-recharge-toolbar input { min-width:0;height:44px;padding:0 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink); }
.referral-recharge-toolbar .secondary-button { min-height:44px; }
.referral-recharge-status { margin:8px 0 14px;color:var(--referral-recharge-auxiliary-color);font-size:var(--font-auxiliary-size); }
.referral-recharge-content { display:grid;gap:16px; }
.referral-recharge-metrics { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px; }
.referral-recharge-metrics > div { min-width:0;padding:13px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--surface) 88%,var(--canvas)); }
.referral-recharge-metrics span,.referral-recharge-metrics b { display:block; }
.referral-recharge-metrics span { color:var(--referral-recharge-label-color);font-size:var(--font-auxiliary-size); }
.referral-recharge-metrics b { margin-top:5px;color:var(--referral-recharge-value-color);font-size:var(--font-card-title-size);overflow-wrap:anywhere; }
.referral-recharge-metrics > div:last-child b { color:var(--referral-recharge-amount-color); }
.referral-generation-grid { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px; }
.referral-generation-stat { display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface); }
.referral-generation-stat span { color:var(--referral-recharge-label-color);font-size:var(--font-auxiliary-size); }
.referral-generation-stat small { color:var(--referral-recharge-auxiliary-color);font-size:var(--font-auxiliary-size); }
.referral-generation-stat b { color:var(--referral-recharge-value-color);font-size:var(--font-body-size); }
.referral-recharge-section { display:grid;gap:8px; }
.referral-recharge-section h3 { margin:0 0 2px;color:var(--referral-recharge-label-color);font-size:var(--font-section-title-size); }
.referral-descendant-row,.referral-order-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line); }
.referral-descendant-row b,.referral-descendant-row span,.referral-descendant-row small,.referral-order-row b,.referral-order-row span,.referral-order-row small { display:block; }
.referral-descendant-row b,.referral-order-row b { color:var(--referral-recharge-value-color); }
.referral-descendant-row span,.referral-descendant-row small,.referral-order-row span,.referral-order-row small { margin-top:3px;color:var(--referral-recharge-auxiliary-color);font-size:var(--font-auxiliary-size); }
.referral-descendant-row > strong,.referral-order-row > strong { color:var(--referral-recharge-amount-color);font-size:var(--font-card-title-size);white-space:nowrap; }
@media(max-width:620px){.referral-recharge-toolbar{grid-template-columns:1fr 1fr}.referral-recharge-toolbar .secondary-button{grid-column:1 / -1}.referral-recharge-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.referral-generation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.membership-package-list,.membership-payment-methods { display:grid;gap:10px;margin:16px 0; }
.membership-level-group { display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:17px;background:color-mix(in srgb,var(--surface) 92%,var(--canvas)); }
.membership-level-heading { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.membership-level-heading h3,.membership-level-heading span { margin:0; }
.membership-level-heading span { color:var(--muted);font-size:var(--font-auxiliary-size); }
.membership-level-options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
.membership-package { display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);text-align:left; }
.membership-package span { color:var(--muted);font-size:var(--font-auxiliary-size); }
.membership-package strong { grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--primary);font-size:var(--font-metric-size); }
.membership-package.active,.membership-payment-method.active { border-color:color-mix(in srgb,var(--primary) 56%,var(--line));background:color-mix(in srgb,var(--primary) 8%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 10%,transparent); }
.membership-payment-method { display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);text-align:left; }
.membership-payment-method span { max-width:65%;color:var(--muted);font-size:var(--font-auxiliary-size); }
.membership-payment-result { display:grid;gap:8px;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 88%,var(--canvas));text-align:center; }
.membership-payment-result img { width:min(260px,70vw);margin:auto;border-radius:16px;background:#fff; }
.membership-payment-result p,.membership-payment-result small { margin:0;color:var(--muted); }
.payment-proof-upload,.payment-proof-submitted { display:grid;gap:4px;width:100%;padding:12px 14px;border-radius:14px;text-align:left; }
.payment-proof-control { display:grid;gap:10px;width:100%; }
.payment-proof-control.prominent { order:-2; }
.payment-proof-upload { border:1px solid color-mix(in srgb,var(--primary) 58%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 12%,var(--surface)),var(--surface));color:var(--primary);cursor:pointer; }
.payment-proof-upload.prominent { order:-2;padding:16px;border-width:2px;box-shadow:0 10px 28px color-mix(in srgb,var(--primary) 18%,transparent); }
.payment-proof-upload b { font-size:var(--font-button-size); }
.payment-proof-upload span,.payment-proof-submitted span { color:var(--muted);font-size:var(--font-auxiliary-size); }
.payment-proof-submitted { border:1px solid color-mix(in srgb,#12a276 38%,var(--line));background:color-mix(in srgb,#12a276 8%,var(--surface));color:#12a276; }
.payment-proof-preview { display:flex;align-items:center;gap:10px;padding:9px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;text-align:left; }
.payment-proof-preview img { flex:0 0 64px!important;width:64px!important;height:64px;margin:0!important;border-radius:10px;object-fit:cover; }
.payment-proof-preview span { min-width:0;overflow:hidden;color:var(--muted);font-size:var(--font-auxiliary-size);text-overflow:ellipsis;white-space:nowrap; }
.payment-proof-confirm { width:100%;min-height:48px;font-size:var(--font-button-size); }
.membership-order-list { display:grid;gap:8px;margin-top:18px; }
.membership-order-row { display:grid;gap:9px;padding:11px;border-bottom:1px solid var(--line); }
.membership-order-main { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.membership-order-row b,.membership-order-row span { display:block; }
.membership-order-row span { margin-top:3px;color:var(--muted);font-size:var(--font-auxiliary-size); }
.membership-rejection-reason { margin:0;padding:9px 11px;border-radius:10px;background:rgba(20,155,105,.08);color:var(--green);font-size:var(--font-auxiliary-size);line-height:1.55; }
@media(max-width:540px){.membership-level-options{grid-template-columns:1fr}.membership-recharge-sheet{padding-bottom:max(28px,env(safe-area-inset-bottom))}}
.mine-assets-bar { margin-bottom:18px; }
.customer-service-sheet img { display:block;width:min(280px,100%);max-height:360px;margin:20px auto 0;border:1px solid var(--line);border-radius:18px;object-fit:contain; }
.customer-service-sheet img[hidden] { display:none!important; }
#feedbackForm textarea { width:100%;resize:vertical; }
.feedback-image-field input { width:100%;padding:10px;border:1px dashed var(--line);border-radius:14px;background:var(--canvas); }
.feedback-image-field small { display:block;margin-top:6px;color:var(--muted); }
.feedback-image-preview { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px; }
.feedback-image-preview figure { min-width:0;margin:0;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--canvas); }
.feedback-image-preview img { display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px; }
.feedback-image-preview figcaption { overflow:hidden;margin-top:5px;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap; }

.profit-mood { position:absolute;z-index:2;top:calc(-15px + var(--asset-decoration-offset-y));left:calc(5px + var(--asset-decoration-offset-x));font-size:31px;filter:drop-shadow(0 5px 13px rgba(31,34,46,.2));animation:profit-mood-float 2.4s ease-in-out infinite; }
.asset-us-night-button { position:absolute;z-index:3;top:calc(-13px + var(--asset-decoration-offset-y));left:calc(48px + var(--asset-decoration-offset-x));display:block;min-width:0;max-width:118px;padding:6px 9px;border:1px solid #26364a;border-radius:12px;background:#0b1725;color:#f8fafc;text-align:left;box-shadow:0 7px 20px rgba(8,19,32,.2);cursor:pointer; }
.asset-us-night-button span { color:#9cabc0;font-size:8px;line-height:1; }
.asset-us-night-button b { overflow:hidden;font-size:9px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap; }
.asset-us-night-button b.up { color:#ff5965; }
.asset-us-night-button b.down { color:#42ca9e; }
.icon-button.refreshing span { display:inline-block;animation:refresh-button-spin .72s linear infinite; }
@keyframes refresh-button-spin { to { transform:rotate(360deg); } }
.profit-mood.negative { animation-name:loss-mood-shake; }
@keyframes profit-mood-float { 50% { transform:translateY(-5px) rotate(5deg) scale(1.08); } }
@keyframes loss-mood-shake { 25% { transform:rotate(-5deg); } 75% { transform:rotate(5deg); } }
.market-effect-layer { position:absolute;inset:0;overflow:hidden; }
.market-effect-layer.full { position:fixed;width:100vw;height:100vh;height:100dvh;inset:0; }
.market-effect-layer.bottom { top:auto;height:125px;bottom:0; }
.market-effect-layer i { position:absolute;left:var(--effect-x);animation-delay:var(--effect-delay)!important;animation-duration:var(--effect-duration)!important; }
.market-effect-layer.fire i { bottom:-18px;width:12px;height:20px;border-radius:55% 55% 55% 10%;background:radial-gradient(circle at 55% 68%,#fff48b 0 18%,#ff7a24 36%,#ed253e 72%,transparent 74%);filter:drop-shadow(0 0 7px rgba(255,57,38,.65));animation:effect-fire 1.7s ease-out infinite; }
.market-effect-layer.sparkle i { top:var(--effect-x);width:7px;height:7px;border-radius:50%;background:#ff4d62;box-shadow:0 0 13px #ff6a78;animation:effect-sparkle 2.2s ease-in-out infinite; }
.market-effect-layer.confetti i { top:-15px;width:8px;height:15px;border-radius:2px;background:hsl(var(--effect-hue) 88% 62%);animation:effect-confetti 2.8s linear infinite; }
.market-effect-layer.rain i { top:-70px;width:2px;height:64px;border-radius:999px;background:linear-gradient(to bottom,transparent,rgba(88,143,222,.52));transform:rotate(12deg);animation:effect-rain 1s linear infinite; }
.market-effect-layer.snow i { top:-15px;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.88);box-shadow:0 0 7px rgba(133,178,255,.55);animation:effect-snow 3.4s linear infinite; }
.market-effect-layer.cloud i { top:var(--effect-x);width:95px;height:32px;border-radius:999px;background:rgba(95,109,138,.18);filter:blur(2px);animation:effect-cloud 8s ease-in-out infinite alternate; }
.market-effect-layer.fireworks { --fireworks-scale:1.6;position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;background:radial-gradient(circle at 50% 115%,rgba(22,5,88,.58),rgba(7,4,35,.15) 58%,transparent 84%);overflow:hidden!important;contain:strict;transform:translateZ(0); }
.market-effect-layer.fireworks i,.market-effect-layer.full.fireworks i { top:auto;bottom:-18px;width:12px;height:12px;border-radius:50%;background:#fff7a6;box-shadow:0 0 16px #fff,0 0 30px hsl(var(--effect-hue) 100% 56%);animation:effect-firework-launch 4.2s cubic-bezier(.12,.78,.18,1) 1 both;will-change:transform,opacity; }
.market-effect-layer.fireworks i::before,.market-effect-layer.full.fireworks i::before { content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 -190px 0 7px hsl(var(--effect-hue) 100% 55%),112px -154px 0 7px hsl(calc(var(--effect-hue) + 32) 100% 57%),181px -59px 0 7px hsl(calc(var(--effect-hue) + 64) 100% 57%),181px 59px 0 7px hsl(calc(var(--effect-hue) + 96) 100% 57%),112px 154px 0 7px hsl(calc(var(--effect-hue) + 128) 100% 57%),0 190px 0 7px hsl(calc(var(--effect-hue) + 160) 100% 57%),-112px 154px 0 7px hsl(calc(var(--effect-hue) + 192) 100% 57%),-181px 59px 0 7px hsl(calc(var(--effect-hue) + 224) 100% 57%),-181px -59px 0 7px hsl(calc(var(--effect-hue) + 256) 100% 57%),-112px -154px 0 7px hsl(calc(var(--effect-hue) + 288) 100% 57%);opacity:0;transform:translate(-50%,-50%) scale(.04);animation:effect-firework-burst 4.2s ease-out 1 both;animation-delay:inherit;will-change:transform,opacity; }
.market-effect-layer.fireworks i::after,.market-effect-layer.full.fireworks i::after { content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 -126px 0 6px hsl(calc(var(--effect-hue) + 35) 100% 64%),89px -89px 0 6px hsl(calc(var(--effect-hue) + 80) 100% 64%),126px 0 0 6px hsl(calc(var(--effect-hue) + 125) 100% 64%),89px 89px 0 6px hsl(calc(var(--effect-hue) + 170) 100% 64%),0 126px 0 6px hsl(calc(var(--effect-hue) + 215) 100% 64%),-89px 89px 0 6px hsl(calc(var(--effect-hue) + 260) 100% 64%),-126px 0 0 6px hsl(calc(var(--effect-hue) + 305) 100% 64%),-89px -89px 0 6px hsl(calc(var(--effect-hue) + 350) 100% 64%);opacity:0;transform:translate(-50%,-50%) scale(.04);animation:effect-firework-full-burst 4.2s ease-out 1 both;animation-delay:inherit;will-change:transform,opacity; }
.market-effect-layer.waterfall { background:linear-gradient(to bottom,rgba(105,190,255,.12),rgba(48,133,228,.25) 60%,rgba(25,105,194,.08));animation:effect-water-sheet 5.2s ease-in-out infinite; }
.market-effect-layer.waterfall::before { content:"";position:absolute;z-index:1;left:50%;top:min(27vh,245px);width:min(30vw,155px);height:110vh;border-radius:45% 45% 8px 8px;background:linear-gradient(90deg,rgba(211,244,255,.12),rgba(60,178,248,.82) 24%,rgba(194,239,255,.95) 53%,rgba(50,157,235,.76) 78%,rgba(73,173,238,.1));filter:blur(1px) drop-shadow(0 16px 18px rgba(33,126,215,.22));transform:translateX(-50%);animation:effect-bear-water-stream 5.2s ease-in infinite; }
.market-effect-layer.waterfall i { z-index:1;top:min(29vh,255px);width:10px;height:105vh;border-radius:0 0 50% 50%;background:linear-gradient(to bottom,rgba(225,248,255,.9),rgba(54,157,235,.66),rgba(75,181,245,.04));filter:blur(.4px);animation:effect-bear-waterfall 5.2s cubic-bezier(.18,.75,.25,1) infinite; }
.crying-bear-waterfall { position:absolute;z-index:3;top:max(env(safe-area-inset-top),4px);left:50%;display:block;width:min(190px,48vw);height:auto;transform:translateX(-50%);filter:drop-shadow(0 12px 18px rgba(22,59,104,.24));animation:effect-crying-bear 5.2s ease-in-out infinite; }
@keyframes effect-fire { from { transform:translateY(14px) scale(.65) rotate(45deg);opacity:0; } 30% { opacity:1; } to { transform:translateY(-115px) scale(.15) rotate(45deg);opacity:0; } }
@keyframes effect-sparkle { 0%,100% { opacity:0;transform:scale(.2); } 45% { opacity:.9;transform:scale(1.25); } }
@keyframes effect-confetti { to { transform:translate3d(8vw,110vh,0) rotate(620deg); } }
@keyframes effect-rain { to { transform:translate3d(-10vw,120vh,0) rotate(12deg); } }
@keyframes effect-snow { to { transform:translate3d(7vw,110vh,0) rotate(360deg); } }
@keyframes effect-cloud { to { transform:translateX(34vw); } }
@keyframes effect-firework-launch { 0%,2% { transform:translateY(0);opacity:0; } 7% { opacity:1; } 34%,82% { transform:translateY(calc(-1 * var(--effect-y)));opacity:1; } 100% { transform:translateY(calc(-1 * var(--effect-y)));opacity:0; } }
@keyframes effect-firework-burst { 0%,34% { opacity:0;transform:translate(-50%,-50%) scale(.04); } 40% { opacity:1;transform:translate(-50%,-50%) scale(calc(var(--fireworks-scale) * .2)); } 62% { opacity:1;transform:translate(-50%,-50%) scale(var(--fireworks-scale)); } 82% { opacity:.72;transform:translate(-50%,-50%) scale(calc(var(--fireworks-scale) * 1.18)); } 100% { opacity:0;transform:translate(-50%,-50%) scale(calc(var(--fireworks-scale) * 1.32)); } }
@keyframes effect-firework-core { 0%,18% { opacity:0;transform:scale(.08); } 24% { opacity:1;transform:scale(1); } 58% { opacity:.75;transform:scale(.45); } 72%,100% { opacity:0;transform:scale(.08); } }
@keyframes effect-firework-full-burst { 0%,36% { opacity:0;transform:translate(-50%,-50%) scale(.04); } 42% { opacity:1;transform:translate(-50%,-50%) scale(calc(var(--fireworks-scale) * .24)); } 61% { opacity:1;transform:translate(-50%,-50%) scale(calc(var(--fireworks-scale) * .86)); } 82% { opacity:.68;transform:translate(-50%,-50%) scale(calc(var(--fireworks-scale) * 1.08)); } 100% { opacity:0;transform:translate(-50%,-50%) scale(calc(var(--fireworks-scale) * 1.22)); } }
@keyframes effect-bear-waterfall { 0%,10% { transform:translateY(-12vh) scaleY(.2);opacity:0; } 22% { opacity:.9; } 78% { transform:translateY(78vh) scaleY(1.2);opacity:.84; } 100% { transform:translateY(100vh) scaleY(.45);opacity:0; } }
@keyframes effect-bear-water-stream { 0%,8% { opacity:0;transform:translateX(-50%) scaleY(.08);transform-origin:top; } 22%,76% { opacity:.9;transform:translateX(-50%) scaleY(1);transform-origin:top; } 100% { opacity:0;transform:translateX(-50%) scaleY(1.08);transform-origin:top; } }
@keyframes effect-crying-bear { 0%,100% { transform:translateX(-50%) rotate(-1deg); } 45% { transform:translateX(-50%) rotate(1.8deg) translateY(4px); } 72% { transform:translateX(-50%) rotate(-1.5deg); } }
@keyframes effect-water-sheet { 0%,100% { opacity:.18; } 24%,70% { opacity:.88; } }

.simulation-fund-row { position:relative; }
.simulation-fund-row::after { content:"›";position:absolute;right:4px;top:50%;color:var(--muted);font-size:16px;transform:translateY(-50%);opacity:.55; }
.fund-detail-history-wrap { overflow-x:hidden; }
.fund-detail-history-table { min-width:0;table-layout:fixed; }
.fund-detail-history-table th,.fund-detail-history-table td { width:33.333%;text-align:center!important; }

@media (max-width:900px) {
  .mine-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .profile-sheet { inset:0;width:100%;max-width:100%;min-height:100%;max-height:100%;padding:calc(18px + env(safe-area-inset-top)) 16px calc(30px + env(safe-area-inset-bottom));border-radius:0;transform:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch; }
  .profile-sheet > .modal-close { position:fixed;z-index:160;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 12px);display:grid;float:none;place-items:center;width:42px;height:42px;margin:0;border-radius:13px;box-shadow:0 7px 22px rgba(22,27,42,.16); }
  .profile-sheet > .auth-brand { padding-right:46px; }
}

@media (max-width:760px) {
  .asset-sticky-shell.has-assets { top:calc(env(safe-area-inset-top) + var(--asset-fixed-offset-y));right:auto;padding:1px 4px 3px; }
  .control-sticky-shell.has-assets { padding:4px 4px 5px; }
  .control-sticky-shell .market-toolbar { gap:6px; }
  .control-sticky-shell .market-list-toolbar { gap:5px;margin:6px 0 0; }
  .control-sticky-shell .market-summary { line-height:1.25; }
  .fund-ranking-sticky-shell .section-heading { margin:0 0 5px; }
  .fund-ranking-controls { gap:5px; }
  .fund-ranking-fixed-status { padding:5px 8px; }
  .fund-ranking-fixed-status .fund-ranking-group-status { margin:1px 0 0; }
  .asset-sticky-shell.has-assets .portfolio-hero,.asset-sticky-shell.has-assets .valuation-hero { padding-bottom:0; }
  .asset-sticky-shell.has-assets .valuation-assets-bar { padding-top:28px;padding-bottom:7px; }
  .asset-sticky-shell.has-assets .mine-assets-bar { margin-bottom:0; }
  .asset-sticky-shell.has-assets > .announcement { margin-top:1px;padding:5px 9px; }
  .announcement { margin:10px 14px 0;padding:10px 12px; }
  .home-section-block .section-heading { margin-top:7px;margin-bottom:7px; }
  .home-ai-block .plan-card { padding:14px; }
  .home-news-heading { padding:11px 12px; }
  .home-news-heading .primary-button { margin-top:8px; }
  .valuation-toolbar { margin:6px 0 5px; }
  .valuation-actions { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px 42px;gap:6px;margin:0; }
  .valuation-actions .secondary-button,.valuation-actions .primary-button { min-width:0;padding:0 5px;font-size:8px; }
  .valuation-search-popover { top:0;right:0;left:auto;grid-template-columns:minmax(0,1fr) 72px;width:100%; }
  .valuation-account-settings-button { margin-right:0; }
  #valuationAssetSticky .valuation-filters { margin-bottom:4px; }
  #valuationAssetSticky .valuation-list-head { padding-bottom:3px; }
  .home-news-block + .home-portfolio-block { margin-top:0; }
  .mine-action-grid { gap:7px;margin:10px 0 16px; }
  .mine-action-button { grid-template-columns:38px minmax(0,1fr);min-height:56px;padding:8px 10px; }
  .mine-action-button > span { width:38px;height:38px;border-radius:12px;font-size:19px; }
  .mine-profile-shell { margin-bottom:2px; }
  .mine-profile-card { grid-template-columns:50px minmax(0,1fr) auto;gap:12px;padding:12px 13px; }
  .mine-profile-card .profile-avatar { width:50px;height:50px;border-radius:16px; }
  .mine-profile-card.guest { grid-template-columns:minmax(0,1fr) auto; }
  .mine-feature-sheet { inset:0;width:100%;max-width:100%;max-height:100%;min-height:100%;padding:calc(18px + env(safe-area-inset-top)) 16px calc(30px + env(safe-area-inset-bottom));border-radius:0;transform:none; }
  .mine-feature-sheet > .modal-close { position:fixed;z-index:160;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 12px);display:grid;place-items:center;width:42px;height:42px;border-radius:13px;box-shadow:0 7px 22px rgba(22,27,42,.16); }
  .mine-feature-sheet > .auth-brand,.mine-feature-sheet > .app-share-title { padding-right:46px; }
  .referral-recharge-sheet { inset:0;width:100%;max-width:100%;min-height:100%;max-height:100%;padding:calc(18px + env(safe-area-inset-top)) 16px calc(30px + env(safe-area-inset-bottom));border-radius:0;transform:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch; }
  .referral-recharge-sheet > .modal-close { position:fixed;z-index:160;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 12px);display:grid;place-items:center;width:42px;height:42px;border-radius:13px;box-shadow:0 7px 22px rgba(22,27,42,.16); }
  .referral-recharge-sheet > .auth-brand { padding-right:46px; }
  .profit-mood { top:calc(-10px + var(--asset-decoration-offset-y));left:calc(2px + var(--asset-decoration-offset-x));font-size:25px; }
  .asset-us-night-button { top:calc(-10px + var(--asset-decoration-offset-y));left:calc(39px + var(--asset-decoration-offset-x));min-width:0;max-width:110px;padding:5px 7px;border-radius:10px; }
}

@media (min-width:761px) { .mobile-top-text { display:none!important; } }

@media (min-width:761px) {
  .asset-sticky-shell.has-assets::before { left:-36px;right:-36px; }
}

.us-night-open,.us-night-open body { background:#08131f!important; }
.us-night-open .mobile-top-text { color:#f8fafc; }
#usNightMarketModal.open { background:#08131f; }
#usNightMarketModal.open::before { content:"";position:fixed;z-index:-1;inset:-140px;background:#08131f; }
.us-night-market-sheet { position:fixed;inset:-2px 0 0;display:flex;flex-direction:column;width:100vw;max-width:none;height:calc(100dvh + 2px);min-height:100%;max-height:none;padding:calc(24px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));border-radius:0;background:#08131f;color:#f8fafc;transform:none;overflow:hidden; }
.us-night-market-sheet > .modal-close { position:fixed;z-index:3;top:calc(env(safe-area-inset-top) + 46px);right:calc(env(safe-area-inset-right) + 14px);display:grid;place-items:center;width:40px;height:40px;color:#e7edf6;background:#182536;box-shadow:0 8px 24px rgba(0,0,0,.28); }
.us-night-market-title { display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px;padding-right:48px; }
.us-night-market-title span { color:#f3bd40;font-size:9px;letter-spacing:.12em; }
.us-night-market-title h2 { margin:5px 0 4px;font-size:22px; }
.us-night-market-title p { margin:0;color:#91a0b4;font-size:10px; }
.us-night-market-quotes { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
.us-night-market-quotes article { min-width:0;padding:14px 10px;border:1px solid #1d2d40;border-radius:14px;background:#111e2e;text-align:center; }
.us-night-market-quotes span,.us-night-market-quotes b,.us-night-market-quotes strong { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.us-night-market-quotes span { color:#a5b1c2;font-size:9px; }
.us-night-market-quotes b { margin:7px 0 5px;font-size:14px; }
.us-night-market-quotes strong { font-size:16px; }
.us-night-fund-toolbar { display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:18px;padding:0 2px; }
.us-night-fund-toolbar h3 { margin:0 0 3px;font-size:13px; }
.us-night-fund-toolbar span { color:#8f9db0;font-size:9px; }
.us-night-funds { flex:1;min-height:0;max-height:none;margin-top:10px;padding:4px 15px;border-radius:16px;background:#101d2c;overflow:auto;overscroll-behavior:contain; }
.us-night-fund-row { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #223247; }
.us-night-fund-row:first-of-type { border-top:0; }
.us-night-fund-row div { min-width:0; }
.us-night-fund-row b,.us-night-fund-row span { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.us-night-fund-row b { font-size:var(--us-night-fund-name-size,13px); }
.us-night-fund-row span { color:#8f9db0;font-size:var(--us-night-fund-code-size,10px);line-height:1.55; }
.us-night-empty,.us-night-market-note { color:#8f9db0;font-size:9px;line-height:1.55; }
.us-night-fund-main { flex:1; }
.us-night-fund-change { flex:0 0 128px;text-align:right; }
.us-night-fund-change strong { display:block;font-size:var(--us-night-fund-change-size,16px); }
.us-night-fund-change strong.neutral { color:#8f9db0; }
.us-night-fund-change small { display:block;margin-top:5px;font-size:var(--us-night-fund-limit-size,10px);line-height:1.4; }
.us-night-fund-change small.open { color:#58d8aa; }
.us-night-fund-change small.closed { color:#ff8585; }
.us-night-market-note { margin:14px 2px 0; }

@media (max-width:760px) {
  .us-night-market-button { min-width:72px;max-width:78px;height:38px;padding:5px 7px; }
  .us-night-market-button b { font-size:8px; }
  .us-night-market-sheet { padding-right:12px;padding-left:12px; }
  .us-night-market-quotes { grid-template-columns:repeat(3,minmax(0,1fr));gap:5px; }
  .us-night-market-quotes article { padding:11px 4px; }
  .us-night-market-quotes b { font-size:12px; }
  .us-night-market-quotes strong { font-size:13px; }
  .us-night-fund-change { flex-basis:92px; }
  .app-download-actions { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .announcement.scrolling > span,.market-effect-layer i,.profit-mood { animation:none!important; }
}

.modal.detail-mode .modal-backdrop { background:var(--surface);backdrop-filter:none; }
.modal.detail-mode .fund-lookup-sheet { position:fixed;inset:0;width:100vw;height:100dvh;max-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) max(24px,calc((100vw - 1120px)/2)) calc(116px + env(safe-area-inset-bottom));border-radius:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch; }
.modal.detail-mode .fund-lookup-sheet > .modal-close { position:fixed;z-index:112;top:calc(16px + env(safe-area-inset-top));right:max(18px,calc((100vw - 1120px)/2));display:grid;place-items:center;width:42px;height:42px;border-radius:14px;box-shadow:0 8px 22px rgba(24,31,48,.14); }
.fund-detail-page { width:min(100%,1120px);margin:0 auto; }
.fund-detail-page .fund-detail-hero { padding-right:54px; }
.fund-detail-page .fund-detail-section { padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 12px 32px rgba(21,31,56,.05); }
.fund-detail-page .fund-detail-section-head { align-items:flex-start; }
.fund-detail-page .fund-detail-section-head > span { text-align:right; }
.fund-detail-page .fund-my-position.selected { border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:color-mix(in srgb,var(--surface) 92%,var(--primary) 8%); }
.fund-detail-more { display:block;width:100%;min-height:42px;margin-top:10px;border:1px solid var(--line);border-radius:12px;background:var(--canvas);color:var(--primary);font-weight:750;cursor:pointer; }
.fund-detail-history-table { font-size:var(--fund-detail-history-font-size,12px)!important; }
.fund-detail-holdings-table { font-size:var(--fund-detail-holdings-font-size,12px)!important; }
.fund-performance-summary { display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin:2px 0 12px;color:var(--muted);font-size:var(--font-body-size); }
.fund-performance-summary span::before { content:"";display:inline-block;width:22px;height:4px;margin-right:8px;border-radius:999px;vertical-align:middle; }
.fund-performance-summary .fund-line::before { background:#2588ef; }
.fund-performance-summary .benchmark-line::before { background:#9aa3ae; }
.fund-performance-chart,.fund-signal-chart { overflow:hidden;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--canvas) 72%,var(--surface)),var(--surface)); }
.fund-performance-chart svg,.fund-signal-chart svg { display:block;width:100%;height:auto;min-height:210px; }
.fund-chart-date-axis { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 10px 0;color:var(--muted);font-size:var(--font-meta-size,11px);font-variant-numeric:tabular-nums; }
.fund-chart-date-axis span:nth-child(2) { text-align:center; }
.fund-chart-date-axis span:last-child { text-align:right; }
.fund-performance-chart .chart-grid line { stroke:color-mix(in srgb,var(--line) 82%,transparent);stroke-width:1;stroke-dasharray:5 6; }
.fund-performance-chart .chart-grid text { fill:var(--muted);font-size:13px; }
.fund-performance-chart path,.fund-signal-chart path { fill:none;stroke-linecap:round;stroke-linejoin:round; }
.fund-performance-chart .fund-path { stroke:#2588ef;stroke-width:5; }
.fund-performance-chart .benchmark-path { stroke:#99a3ae;stroke-width:2.5; }
.fund-period-tabs { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:12px;padding:5px;border-radius:14px;background:var(--canvas); }
.fund-period-tabs.compact { grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 12px; }
.fund-period-tabs button { min-height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:750;cursor:pointer; }
.fund-period-tabs button.active { background:var(--ink);color:var(--surface);box-shadow:0 6px 16px rgba(20,27,46,.14); }
.fund-signal-pill { padding:7px 11px;border-radius:999px;background:var(--canvas);font-weight:750; }
.fund-signal-pill.low { color:var(--up);background:var(--soft-red); }
.fund-signal-pill.high { color:var(--down);background:var(--soft-green); }
.fund-signal-chart path { stroke:#717b89;stroke-width:4; }
.fund-signal-chart line { stroke-width:2;stroke-dasharray:9 8; }
.fund-signal-chart .signal-high-line { stroke:#65d8b0; }
.fund-signal-chart .signal-low-line { stroke:#ff8ca0; }
.fund-signal-advice { margin-top:14px;padding:16px;border-radius:16px;background:var(--canvas); }
.fund-signal-advice > div:first-child { display:flex;align-items:center;justify-content:space-between;gap:14px; }
.fund-signal-advice b { font-size:var(--font-card-title-size); }
.fund-signal-advice span,.fund-signal-advice small { color:var(--muted); }
.fund-signal-scale { position:relative;height:10px;margin:18px 0 9px;border-radius:999px;background:linear-gradient(90deg,#ffd5dc,#e5e7eb 50%,#b9efd9); }
.fund-signal-scale i { position:absolute;top:50%;width:20px;height:20px;border:5px solid #ffd058;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(255,208,88,.2);transform:translate(-50%,-50%); }
.fund-signal-advice small { display:block;text-align:center; }
.fund-detail-sticky-actions { position:fixed;z-index:111;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:10px max(12px,calc((100vw - 900px)/2)) calc(10px + env(safe-area-inset-bottom));border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 -10px 32px rgba(18,26,45,.1);backdrop-filter:blur(22px) saturate(1.25); }
.fund-detail-sticky-actions button { display:grid;place-items:center;gap:3px;min-width:0;min-height:58px;padding:5px;border:1px solid color-mix(in srgb,var(--ink) 18%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--surface) 88%,var(--canvas));color:var(--ink);font-size:var(--font-button-size);font-weight:750;box-shadow:0 3px 10px rgba(21,29,48,.06);cursor:pointer; }
.fund-detail-sticky-actions button span { font-size:22px;line-height:1; }
.fund-detail-sticky-actions button:first-child { border-color:#bdc9f4;background:#f1f4ff;color:#425cad; }
.fund-detail-sticky-actions button:nth-child(2) { border-color:#ffc7cd;background:var(--soft-red);color:var(--up); }
.fund-detail-sticky-actions button:nth-child(3) { border-color:#bfe8da;background:var(--soft-green);color:var(--down); }
.fund-detail-sticky-actions button:nth-child(4) { border-color:#cfd6e2;background:#f4f6f9;color:#465269; }
.fund-detail-sticky-actions button.danger { border-color:#e0e2e8;background:#f5f5f7;color:#777d89; }
.fund-detail-sticky-actions button:disabled { opacity:.35;cursor:not-allowed; }

@media (max-width:760px) {
  .fund-ranking-group { padding:11px; }
  .fund-ranking-tabs button { min-height:38px;font-size:11px; }
  .modal.detail-mode .fund-lookup-sheet { inset:0;width:100%;height:100dvh;max-height:100dvh;padding:calc(64px + env(safe-area-inset-top)) 12px calc(100px + env(safe-area-inset-bottom));border-radius:0; }
  .modal.detail-mode .fund-lookup-sheet > .modal-close { top:calc(12px + env(safe-area-inset-top));right:12px; }
  .fund-detail-page .fund-detail-hero { padding-right:0; }
  .fund-detail-page .fund-detail-hero h2 { margin-right:0; }
  .fund-detail-page .fund-detail-section { margin-top:14px;padding:14px 11px;border-radius:18px; }
  .fund-detail-page .fund-detail-quote { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fund-detail-page .fund-detail-table { min-width:0;font-size:9px;table-layout:fixed; }
  .fund-detail-page .fund-detail-table th,.fund-detail-page .fund-detail-table td { padding:9px 5px;overflow:hidden;text-overflow:ellipsis; }
  .fund-performance-chart svg,.fund-signal-chart svg { min-height:165px; }
  .fund-period-tabs button { min-height:36px;padding:0 2px;font-size:9px; }
  .fund-signal-advice > div:first-child { align-items:flex-start;flex-direction:column;gap:5px; }
  .fund-signal-advice small { font-size:8px; }
  .fund-detail-sticky-actions { padding-right:5px;padding-left:5px; }
  .fund-detail-sticky-actions button { min-height:55px;padding:4px 1px;font-size:8px!important; }
  .fund-detail-sticky-actions button span { font-size:19px; }
}
