@font-face { font-family:'Inter'; font-style:normal; font-weight:400 800; font-display:swap; src:url('/static/fonts/inter-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-style:normal; font-weight:400 800; font-display:swap; src:url('/static/fonts/inter-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root { --primary: #0f2a47; --text: #000000; --bg: #ffffff; --secondary: #6b7280; --accent: #10b981; --error: #ef4444; }
* { box-sizing: border-box; }
body { margin: 0; color: var(--text); background: var(--primary); font-family: 'Inter', sans-serif; }
.shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr); }
.intro { padding: clamp(40px, 8vw, 120px) clamp(28px, 8vw, 130px); background: var(--primary); color: var(--bg); display: flex; flex-direction: column; justify-content: center; }
.eyebrow { font: 500 13px/1.2 'Inter', sans-serif; letter-spacing: 1.5px; margin: 0 0 28px; color: #93c5fd; }
.intro .eyebrow { color: #93c5fd; display: flex; justify-content: space-between; }
h1 { font-size: clamp(54px, 7vw, 104px); line-height: .95; letter-spacing: -4px; margin: 0 0 38px; font-weight: 700; color: var(--bg); }
h1 em { color: #93c5fd; font-style: normal; }
.lede { max-width: 390px; color: #e0e7ff; line-height: 1.75; font-size: 15px; }
.formula { margin-top: 70px; padding-top: 24px; border-top: 1px solid #1e3a8a; font: 500 22px 'Inter', sans-serif; color: #93c5fd; }
.formula strong { color: var(--bg); }
.calculator { padding: clamp(40px, 7vw, 100px) clamp(28px, 8vw, 110px); max-width: 720px; width: 100%; justify-self: center; background: var(--bg); border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
.section-heading { margin-bottom: 42px; }
h2 { font-size: clamp(25px, 3vw, 38px); line-height: 1.1; margin: 0; letter-spacing: -1.5px; color: var(--primary); }
label { display: block; font-weight: 700; font-size: 14px; margin: 25px 0 9px; color: var(--primary); }
label small { color: var(--secondary); font: 13px 'Inter', sans-serif; font-weight: 400; margin-left: 5px; }
.input-wrap { display: flex; align-items: center; border-bottom: 2px solid var(--primary); background: transparent; padding: 0 15px; min-height: 56px; }
.input-wrap span { color: var(--secondary); font: 14px 'Inter', sans-serif; }
input { border: 0; outline: 0; background: transparent; color: var(--text); font: 600 19px 'Inter', sans-serif; width: 100%; padding: 15px 10px; }
input::placeholder { color: #9ca3af; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.hint { color: var(--secondary); font-size: 13px; line-height: 1.5; margin: 8px 0 0; }
.hint strong { color: var(--primary); font-family: 'Inter', sans-serif; font-weight: 500; }
button { width: 100%; margin-top: 32px; padding: 17px 20px; border: 0; background: var(--primary); color: var(--bg); font: 700 14px 'Inter', sans-serif; cursor: pointer; display: flex; justify-content: space-between; border-radius: 4px; transition: background-color 0.2s; }
button:hover { background: var(--accent); color: var(--text); }
button span { color: var(--accent); font-size: 20px; line-height: 12px; }
button:hover span { color: var(--text); }
.error { margin-top: 25px; padding: 13px 15px; border-left: 3px solid var(--error); background: #fef2f2; color: #991b1b; font-size: 14px; line-height: 1.5; border-radius: 4px; }
.result { margin-top: 58px; padding-top: 23px; border-top: 2px solid var(--primary); }
.result .eyebrow { margin-bottom: 20px; color: var(--secondary); }
.result-row, .result-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
.result-row span, .result-meta span { font-size: 14px; color: var(--secondary); }
.result-row strong { color: var(--accent); font: 500 clamp(28px, 4vw, 42px) 'Inter', sans-serif; }
.result-meta { border-top: 1px solid #e5e7eb; margin-top: 22px; padding-top: 15px; color: var(--secondary); }
.result-meta b { color: var(--primary); font: 500 14px 'Inter', sans-serif; }

.collapsible { margin-bottom: 28px; border: 1px solid #e5e7eb; border-radius: 6px; overflow: hidden; }
.collapsible-trigger { width: 100%; padding: 16px; background: #f9fafb; border: none; cursor: pointer; font: 600 14px 'Inter', sans-serif; color: var(--primary); text-align: left; display: flex; justify-content: space-between; align-items: center; transition: background-color 0.2s; }
.collapsible-trigger:hover { background: #f3f4f6; }
.collapsible-trigger.active { background: var(--primary); color: var(--bg); }
.collapsible-icon { display: inline-block; transition: transform 0.3s; font-size: 18px; }
.collapsible-trigger.active .collapsible-icon { transform: rotate(180deg); }
.collapsible-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; }
.collapsible-content.active { max-height: 500px; }
.collapsible-body { padding: 16px; line-height: 1.6; color: var(--text); font-size: 14px; }
.collapsible-body p { margin: 0 0 12px; }
.collapsible-body p:last-child { margin-bottom: 0; }
.collapsible-body strong { color: var(--primary); font-weight: 600; }

.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr); }
.auth-panel { padding: clamp(40px, 8vw, 120px) clamp(28px, 8vw, 130px); background: var(--primary); color: var(--bg); display: flex; flex-direction: column; justify-content: center; }
.auth-panel h1 { margin-bottom: 38px; }
.auth-form { padding: clamp(40px, 7vw, 100px) clamp(28px, 8vw, 110px); max-width: 720px; width: 100%; justify-self: center; background: var(--bg); border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
.auth-form input { display: block; border: 0; border-bottom: 2px solid var(--primary); outline: 0; background: transparent; color: var(--text); font: 600 19px 'Inter', sans-serif; width: 100%; padding: 15px 10px; }
.auth-form input:focus { border-bottom-color: var(--accent); }
.auth-form .error { margin-top: 0; }

.wallet-shell { min-height: 100vh; background: var(--bg); }
.wallet-header { padding: 34px clamp(28px, 8vw, 130px); background: var(--primary); color: var(--bg); display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.wallet-header .eyebrow { margin-bottom: 16px; }
.wallet-header h1 { font-size: clamp(38px, 6vw, 76px); letter-spacing: -3px; margin: 0; }
.wallet-nav { display: flex; gap: 22px; padding-bottom: 5px; }
.wallet-nav a { color: var(--bg); font: 600 14px 'Inter', sans-serif; text-decoration: none; border-bottom: 1px solid #93c5fd; padding-bottom: 5px; }
.wallet-nav a:hover { color: var(--accent); border-color: var(--accent); }
.wallet-content { max-width: 1100px; margin: 0 auto; padding: clamp(40px, 7vw, 90px) clamp(28px, 6vw, 80px); }
.wallet-content > .section-heading { margin-bottom: 30px; }
.section-lede { color: var(--secondary); font-size: 14px; line-height: 1.6; margin: 12px 0 0; max-width: 640px; }
.wallet-table-wrap { overflow-x: auto; border-top: 2px solid var(--primary); }
.wallet-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.wallet-table th, .wallet-table td { padding: 18px 12px; text-align: left; border-bottom: 1px solid #e5e7eb; white-space: nowrap; }
.wallet-table thead th { color: var(--secondary); font: 500 13px 'Inter', sans-serif; text-transform: uppercase; letter-spacing: .5px; }
.wallet-table tbody th { color: var(--primary); font: 700 15px 'Inter', sans-serif; }
.wallet-table tbody td { color: var(--text); font-family: 'Inter', sans-serif; }
.wallet-table tbody tr.selected-row { background: #f0fdf4; }
.ticker-link { color: var(--primary); font: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ticker-link:hover { color: #059669; }
.remove-button { width: auto; margin: 0; padding: 9px 12px; background: transparent; color: var(--error); border: 1px solid #fecaca; font-size: 13px; }
.remove-button:hover { background: #fef2f2; color: #991b1b; }
.wallet-empty { border-top: 2px solid var(--primary); padding: 34px 0; }
.wallet-empty .eyebrow { color: var(--secondary); margin-bottom: 18px; }
.wallet-empty h3 { color: var(--primary); margin: 0 0 10px; font-size: 22px; }
.wallet-empty p:last-child { color: var(--secondary); font-size: 14px; }
.fii-search { position: relative; margin-bottom: 48px; }
.fii-search label { margin-top: 0; }
.fii-search-row { max-width: 760px; display: grid; grid-template-columns: minmax(180px, 1fr) auto; gap: 12px; align-items: end; }
.fii-search input { border-bottom: 2px solid var(--primary); padding-left: 0; }
.fii-search-row button:disabled, .fii-add-button:disabled { opacity: .45; cursor: not-allowed; }
.fii-add-button { width: auto; min-width: 190px; margin-top: 0; }
.fii-results { position: absolute; z-index: 2; width: 100%; max-height: 264px; overflow-y: auto; background: var(--bg); border: 1px solid #d1d5db; border-top: 0; box-shadow: 0 10px 22px rgba(0,0,0,.12); }
.fii-result { width: 100%; margin: 0; padding: 14px 16px; border-radius: 0; background: var(--bg); color: var(--text); display: grid; grid-template-columns: 90px 1fr auto; gap: 16px; align-items: center; text-align: left; }
.fii-result:hover { background: #f3f4f6; color: var(--text); }
.fii-result.selected { background: #d1fae5; }
.fii-result strong { color: var(--primary); font: 700 14px 'Inter', sans-serif; }
.fii-result span { color: var(--secondary); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fii-result b { color: var(--primary); font: 500 14px 'Inter', sans-serif; }
.fii-detail { margin: 62px 0 0; padding-top: 40px; border-top: 1px solid #e5e7eb; }
.fii-detail .section-heading { margin-bottom: 24px; }
.fii-detail .eyebrow, .valuation-panel .eyebrow { color: var(--secondary); margin-bottom: 14px; }
.quote-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.quote-card { min-height: 108px; padding: 18px; border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; }
.quote-card span { color: var(--secondary); font-size: 13px; }
.quote-card strong { color: var(--primary); font: 600 17px 'Inter', sans-serif; }
.valuation-panel { margin-top: 48px; padding: clamp(24px, 4vw, 42px); border-radius: 8px; background: #f8fafc; border: 1px solid #e5e7eb; }
.valuation-panel .section-heading { margin-bottom: 30px; }
.valuation-panel h2 { font-size: clamp(24px, 3vw, 34px); }
.valuation-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .85fr); gap: clamp(24px, 5vw, 58px); align-items: start; }
.valuation-form label { margin-top: 20px; }
.valuation-form label:first-child { margin-top: 0; }
.valuation-form input:not([type="range"]), .valuation-form select { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 4px; background: #fff; color: var(--primary); font: 500 15px 'Inter', sans-serif; }
.valuation-form select { font-family: 'Inter', sans-serif; font-weight: 600; }
.valuation-form input:focus, .valuation-form select:focus { outline: 2px solid #93c5fd; outline-offset: 1px; }
.valuation-form .split { gap: 14px; }
.valuation-form .split > div { min-width: 0; }
.valuation-form button { margin-top: 24px; }
.tax-slider { display: block; width: 100%; accent-color: var(--primary); margin: 12px 0; }
.valuation-form output { color: var(--primary); font: 600 14px 'Inter', sans-serif; float: right; }
.valuation-result { padding: 22px; border-radius: 6px; background: #fff; border: 1px solid #e5e7eb; }
.valuation-result > .eyebrow { margin-bottom: 20px; }
.valuation-result .result-row { display: block; }
.valuation-result .result-row span { display: block; margin-bottom: 8px; }
.valuation-result .result-row strong { display: block; }
.valuation-result .result-meta { margin-top: 18px; }
.price-gauge { margin-top: 28px; }
.gauge-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: var(--secondary); font-size: 14px; }
.gauge-heading strong { color: var(--primary); font: 600 17px 'Inter', sans-serif; }
.gauge-slider { display: block; width: 100%; height: 14px; margin: 18px 0 8px; appearance: none; border-radius: 10px; background: linear-gradient(90deg, #a7f3d0 0%, #d1fae5 40%, #e5e7eb 50%, #fee2e2 100%); }
.gauge-slider::-webkit-slider-thumb { width: 20px; height: 20px; appearance: none; border: 3px solid #fff; border-radius: 50%; background: var(--primary); box-shadow: 0 1px 5px #64748b; }
.gauge-slider::-moz-range-thumb { width: 15px; height: 15px; border: 3px solid #fff; border-radius: 50%; background: var(--primary); box-shadow: 0 1px 5px #64748b; }
.gauge-labels { display: flex; justify-content: space-between; gap: 8px; color: var(--secondary); font-size: 12px; }
.valuation-status { margin: 20px 0 0; padding: 12px; border-radius: 4px; background: #f1f5f9; color: var(--primary); font-size: 14px; line-height: 1.5; }
.valuation-status[data-state="cheap"] { background: #ecfdf5; color: #047857; }
.valuation-status[data-state="expensive"] { background: #fef2f2; color: #b91c1c; }
.valuation-status[data-state="fair"] { background: #eff6ff; color: #1d4ed8; }
.valuation-error { margin: 18px 0 0; color: #b91c1c; font-size: 14px; line-height: 1.5; }
.valuation-disclaimer { margin: 24px 0 0; color: var(--secondary); font-size: 12px; line-height: 1.5; }

@media (max-width: 760px) { .shell { display: block; } .intro { min-height: 520px; } .calculator { max-width: none; } }
@media (max-width: 760px) { .auth-shell { display: block; } .auth-panel { min-height: 420px; } .auth-form { max-width: none; } }
@media (max-width: 600px) { .wallet-header { display: block; } .wallet-nav { margin-top: 28px; } .wallet-table th, .wallet-table td { padding-left: 6px; padding-right: 18px; } }
@media (max-width: 760px) { .fii-search-row { display: block; max-width: 520px; } .fii-add-button { width: 100%; margin-top: 14px; } }
@media (max-width: 760px) { .quote-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .valuation-grid { grid-template-columns: 1fr; } }
@media (max-width: 460px) { .quote-cards { grid-template-columns: 1fr; } .valuation-panel { padding: 22px 16px; } .wallet-nav { flex-wrap: wrap; } }
@media (max-width: 460px) { .split { grid-template-columns: 1fr; gap: 0; } h1 { letter-spacing: -2px; } }

/* Dark, minimal portfolio theme */
:root { --primary: #080b12; --text: #e5edf9; --bg: #090d15; --secondary: #94a3b8; --accent: #3b82f6; --error: #f87171; }
body { color: var(--text); background: var(--bg); }
.intro, .auth-panel { background: #070a10; }
.calculator, .auth-form { background: #111827; color: var(--text); border: 1px solid #263449; border-radius: 18px; box-shadow: 0 18px 60px rgba(0,0,0,.3); }
h2, label, .hint strong, .result-meta b { color: #e5edf9; }
.input-wrap { border-bottom-color: #3b82f6; }
.input-wrap span, input, .auth-form input { color: #e5edf9; }
input::placeholder { color: #64748b; }
button { background: #2563eb; color: #fff; border-radius: 12px; transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease; }
button:hover { background: #3b82f6; color: #fff; box-shadow: 0 8px 24px rgba(37,99,235,.24); transform: translateY(-1px); }
button span, button:hover span { color: #bfdbfe; }
.error { border-left-color: #ef4444; background: #29171c; color: #fecaca; }
.result { border-top-color: #334155; }
.result .eyebrow { color: #94a3b8; }
.result-row strong { color: #60a5fa; }
.result-meta { border-top-color: #263449; }
.collapsible { border-color: #263449; border-radius: 12px; }
.collapsible-trigger { background: #172033; color: #dbeafe; }
.collapsible-trigger:hover { background: #1d2a40; }
.collapsible-trigger.active { background: #1d4ed8; color: #fff; }
.collapsible-body { color: #cbd5e1; }
.collapsible-body strong { color: #93c5fd; }
.wallet-shell { min-height: 100vh; color: var(--text); background: #090d15; }
.wallet-header { background: #070a10; border-bottom: 1px solid #1e293b; }
.wallet-header h1 { color: #f8fafc; }
.wallet-header .eyebrow { color: #60a5fa; }
.wallet-nav a { color: #cbd5e1; border-bottom-color: #3b82f6; }
.wallet-nav a:hover { color: #93c5fd; border-color: #93c5fd; }
.wallet-content { color: var(--text); }
.wallet-content .eyebrow, .fii-detail .eyebrow, .valuation-panel .eyebrow { color: #60a5fa; }
.section-lede { color: #94a3b8; }
.wallet-table-wrap { border: 1px solid #263449; border-radius: 14px; background: #101722; }
.wallet-table th, .wallet-table td { border-bottom-color: #202b3b; }
.wallet-table thead th { color: #94a3b8; }
.wallet-table tbody th { color: #dbeafe; }
.wallet-table tbody td { color: #cbd5e1; }
.wallet-table tbody tr:last-child th, .wallet-table tbody tr:last-child td { border-bottom: 0; }
.wallet-table tbody tr.selected-row { background: #12213a; }
.ticker-link { color: #93c5fd; }
.ticker-link:hover { color: #bfdbfe; }
.remove-button { color: #fca5a5; border-color: #5b2930; background: transparent; }
.remove-button:hover { color: #fff; background: #7f1d1d; }
.wallet-empty { border-top-color: #263449; }
.wallet-empty .eyebrow { color: #60a5fa; }
.wallet-empty h3 { color: #e2e8f0; }
.wallet-empty p:last-child { color: #94a3b8; }
.fii-search label { color: #e2e8f0; }
.fii-search input { border-bottom-color: #3b82f6; }
.fii-add-button:disabled { background: #1e293b; color: #64748b; box-shadow: none; transform: none; }
.fii-results { background: #111827; border-color: #334155; border-radius: 0 0 12px 12px; box-shadow: 0 16px 35px rgba(0,0,0,.35); }
.fii-result { background: #111827; color: #e2e8f0; }
.fii-result:hover { background: #1e293b; color: #fff; }
.fii-result.selected { background: #172c4c; }
.fii-result strong, .fii-result b { color: #bfdbfe; }
.fii-result span { color: #94a3b8; }
.fii-detail { border-top-color: #263449; }
.quote-card { background: #111827; border-color: #263449; border-radius: 14px; }
.quote-card span { color: #94a3b8; }
.quote-card strong { color: #e2e8f0; }
.valuation-panel { background: #0e1522; border-color: #263449; border-radius: 18px; }
.valuation-form input:not([type="range"]), .valuation-form select { background: #0b111b; border-color: #334155; border-radius: 10px; color: #e2e8f0; }
.valuation-form select option { background: #111827; color: #e2e8f0; }
.valuation-form input:focus, .valuation-form select:focus { outline-color: #3b82f6; }
.valuation-result { background: #111827; border-color: #263449; border-radius: 14px; }
.valuation-result .result-meta { border-top-color: #263449; }
.valuation-result .result-row strong { color: #60a5fa; }
.valuation-result .result-meta b { color: #dbeafe; }
.gauge-heading strong { color: #bfdbfe; }
.gauge-slider { background: linear-gradient(90deg, #064e3b 0%, #065f46 40%, #334155 50%, #7f1d1d 100%); }
.gauge-slider::-webkit-slider-thumb { background: #60a5fa; }
.gauge-slider::-moz-range-thumb { background: #60a5fa; }
.gauge-labels, .valuation-disclaimer { color: #94a3b8; }
.valuation-status { background: #1e293b; color: #dbeafe; border: 1px solid #334155; border-radius: 10px; }
.valuation-status[data-state="cheap"] { background: #10271f; color: #86efac; border-color: #14532d; }
.valuation-status[data-state="expensive"] { background: #2b171b; color: #fca5a5; border-color: #7f1d1d; }
.valuation-status[data-state="fair"] { background: #14243b; color: #bfdbfe; border-color: #1e3a5f; }
.valuation-error { color: #fca5a5; }
.rate-value { min-height: 48px; padding: 12px; border: 1px solid #334155; border-radius: 10px; background: #0b111b; color: #93c5fd; font: 600 15px 'Inter', sans-serif; }
.rate-warning { color: #fbbf24; }
.auth-form input { border-bottom-color: #3b82f6; }
.auth-form input:focus { border-bottom-color: #60a5fa; }

/* Shared authenticated workspace navigation */
.workspace-layout { --sidebar-width: 256px; min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-width) minmax(0,1fr); background: #090d15; transition: grid-template-columns .22s ease; }
.workspace-layout.sidebar-collapsed { --sidebar-width: 76px; }
.app-sidebar { position: sticky; top: 0; z-index: 20; height: 100vh; min-height: 480px; display: flex; flex-direction: column; padding: 22px 14px 18px; overflow: hidden; background: linear-gradient(180deg,#0d1522,#090e17 78%); border-right: 1px solid #1e293b; }
.sidebar-brand { display: flex; align-items: center; gap: 12px; min-height: 50px; margin: 0 34px 32px 4px; color: #eaf2ff; text-decoration: none; font: 700 13px/1.45 'Inter',sans-serif; letter-spacing: 1.1px; }
.brand-mark { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border: 1px solid #3166a8; border-radius: 14px; background: radial-gradient(circle at 30% 20%,#2563eb,#10213a 74%); color: #dbeafe; font: 700 20px 'Inter',sans-serif; box-shadow: 0 8px 22px rgba(37,99,235,.2); }
.sidebar-collapse { position: absolute; top: 31px; right: 14px; display: grid; place-items: center; width: 30px; height: 30px; margin: 0; padding: 0; border: 1px solid #27364b; border-radius: 9px; background: #111a28; color: #9db2ce; }
.sidebar-collapse:hover { background: #17263b; color: #dbeafe; transform: none; box-shadow: none; }
.sidebar-collapse svg,.mobile-menu-toggle svg,.sidebar-link svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.app-sidebar .sidebar-collapse{display:inline-grid;place-content:center;place-items:center;box-sizing:border-box;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;line-height:0;flex-shrink:0;overflow:hidden}
.app-sidebar .sidebar-collapse svg{display:block;width:18px;height:18px;margin:0;flex:none;transition:transform .2s ease}
.wallet-table-wrap,.table-scroll{position:relative;max-width:100%}
.sidebar-section-label { margin: 0 8px 12px; color: #64748b; font: 500 12px 'Inter',sans-serif; letter-spacing: 1.25px; white-space: nowrap; }
.sidebar-nav { display: grid; gap: 5px; }
.sidebar-link { display: flex; align-items: center; gap: 13px; min-height: 44px; padding: 0 12px; border: 1px solid transparent; border-radius: 12px; color: #aab8cb; text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap; transition: color .16s ease,background .16s ease,border-color .16s ease; }
.sidebar-link svg { flex: 0 0 19px; color: #8296b1; }
.sidebar-link:hover { color: #eff6ff; background: #111d2d; border-color: #1d304b; }
.sidebar-link:hover svg { color: #93c5fd; }
.sidebar-link.is-active { color: #eaf3ff; background: linear-gradient(100deg,rgba(37,99,235,.22),rgba(37,99,235,.08)); border-color: rgba(59,130,246,.28); box-shadow: inset 2px 0 #60a5fa; }
.sidebar-link.is-active svg { color: #60a5fa; }
.sidebar-shortcuts-label { margin-top: 30px; }
.sidebar-shortcuts .sidebar-link { min-height: 38px; font-weight: 500; }
.sidebar-logout { margin-top: auto; }
.sidebar-logout svg { color: #8296b1; }
.sidebar-scrim { display: none; }
.workspace-layout > .wallet-shell { min-width: 0; }
.workspace-layout .wallet-header { position: relative; min-height: 142px; align-items: center; padding: 32px clamp(24px,5vw,76px); }
.workspace-layout .wallet-header .eyebrow { margin-bottom: 12px; }
.workspace-layout .wallet-content { width: 100%; max-width: 1500px; }
.mobile-menu-toggle { display: none; }
.header-shortcut { position: absolute; top: 50%; right: clamp(24px,5vw,76px); transform: translateY(-50%); display: inline-flex; align-items: center; gap: 8px; color: #bfdbfe; text-decoration: none; font-size: 14px; font-weight: 700; }
.header-shortcut:hover { color: #fff; }
.sidebar-collapsed .app-sidebar { padding-left: 12px; padding-right: 12px; }
.sidebar-collapsed .sidebar-brand { margin-left: 5px; margin-right: 0; }
.sidebar-collapsed .sidebar-collapse svg { transform: rotate(180deg); }
.sidebar-collapsed .sidebar-collapse { top: 82px; right: 22px; }
.sidebar-collapsed .sidebar-section-label { visibility: hidden; }
.sidebar-collapsed .sidebar-label { display: none; }
.sidebar-collapsed .sidebar-link { justify-content: center; padding: 0; }
.sidebar-collapsed .sidebar-link svg { flex-basis: 20px; }
.sidebar-collapsed .sidebar-logout { margin-top: auto; }
@media (max-width: 800px) {
  .workspace-layout,.workspace-layout.sidebar-collapsed { display: block; }
  .app-sidebar { position: fixed; inset: 0 auto 0 0; width: min(290px,84vw); height: 100dvh; min-height: 0; transform: translateX(-105%); transition: transform .22s ease; box-shadow: 20px 0 60px rgba(0,0,0,.38); }
  .workspace-layout.sidebar-open .app-sidebar { transform: translateX(0); }
  .sidebar-collapse { display: none; }
  .sidebar-scrim { position: fixed; inset: 0; z-index: 19; display: block; width: 100%; height: 100%; margin: 0; padding: 0; border-radius: 0; background: rgba(2,6,14,.66); opacity: 0; visibility: hidden; transition: opacity .2s ease,visibility .2s ease; }
  .sidebar-scrim:hover { transform: none; box-shadow: none; background: rgba(2,6,14,.66); }
  .workspace-layout.sidebar-open .sidebar-scrim { opacity: 1; visibility: visible; }
  .sidebar-collapsed .app-sidebar { padding: 22px 14px 18px; }
  .sidebar-collapsed .sidebar-brand { margin: 0 34px 32px 4px; }
  .sidebar-collapsed .sidebar-section-label { visibility: visible; }
  .sidebar-collapsed .sidebar-link { justify-content: flex-start; padding: 0 12px; }
  .sidebar-collapsed .sidebar-label { display: inline; }
  .workspace-layout .wallet-header { min-height: 102px; padding: 20px 20px 20px 70px; }
  .workspace-layout .wallet-header h1 { font-size: clamp(30px,8vw,44px); letter-spacing: -1.5px; }
  .mobile-menu-toggle { position: absolute; left: 18px; top: 50%; display: grid; place-items: center; width: 38px; height: 38px; margin: 0; padding: 0; border: 1px solid #26364b; border-radius: 11px; background: #111a28; color: #bfdbfe; transform: translateY(-50%); }
  .mobile-menu-toggle:hover { transform: translateY(-50%); background: #17263b; box-shadow: none; }
  .workspace-layout .wallet-header .eyebrow { font-size: 12px; margin-bottom: 8px; }
  .header-shortcut { right: 18px; top: auto; bottom: 12px; transform: none; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .workspace-layout,.app-sidebar,.sidebar-scrim { transition: none; } }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* Dashboard components and consistent dark controls */
:root { color-scheme: dark; --panel: #111a28; --panel-raised: #162235; --line: #26364b; --blue: #3b82f6; --muted: #9aabc1; --green: #34d399; --red: #fb7185; }
[hidden] { display: none !important; }
button, input, select, progress { font: inherit; }
input[type="number"], input[type="search"], select { color-scheme: dark; }
input[type="range"] { accent-color: #60a5fa; cursor: pointer; }
input[type="range"]:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible, a:focus-visible { outline: 2px solid #60a5fa; outline-offset: 3px; }
.wallet-header { background: radial-gradient(ellipse at 80% 0%, #142c4c 0%, #090e17 56%); padding-top: 42px; padding-bottom: 42px; }
.wallet-header h1 { letter-spacing: -2.5px; font-size: clamp(32px, 5vw, 56px); }
.wallet-content { max-width: 1380px; padding-top: clamp(32px, 5vw, 64px); }
.wallet-content > .section-heading { margin-bottom: 26px; }
.section-heading h2 { color: #edf4ff; }
.section-lede, .hint { color: #a5b4c8; }
.strategy-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 26px 0 62px; }
.overview-card, .allocation-card { background: linear-gradient(145deg,#121d2d,#0e1622); border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: 0 12px 36px rgba(0,0,0,.14); }
.overview-card { display: flex; flex-direction: column; gap: 8px; min-height: 130px; }
.overview-card span, .overview-card small { color: var(--muted); font-size: 14px; }
.overview-card strong { color: #f1f6ff; font: 600 25px 'Inter',sans-serif; }
.overview-card small { line-height: 1.5; }
.allocation-section { margin-bottom: 62px; }
.allocation-section .section-heading { margin-bottom: 24px; }
.allocation-grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.25fr); gap: 16px; align-items: stretch; }
.allocation-card h3 { margin: 0 0 22px; color: #e6eefb; font-size: 16px; }
.asset-chart-layout { display: grid; grid-template-columns: minmax(130px,.8fr) minmax(130px,1fr); align-items: center; gap: 20px; }
.allocation-donut { display: block; width: min(100%,220px); margin: auto; overflow: visible; }
.donut-track, .donut-segment { fill: none; stroke-width: 10; }
.donut-track { stroke: #26364b; }
.donut-segment { transform: rotate(-90deg); transform-origin: 50px 50px; stroke-linecap: butt; }
.donut-total { fill: #9aabc1; font: 12px 'Inter',sans-serif; }
.donut-total-value { fill: #f1f6ff; font: 12px 'Inter',sans-serif; }
.color-0 { stroke:#60a5fa; background:#60a5fa; }.color-1 { stroke:#34d399; background:#34d399; }.color-2 { stroke:#fbbf24; background:#fbbf24; }.color-3 { stroke:#c084fc; background:#c084fc; }.color-4 { stroke:#fb7185; background:#fb7185; }.color-5 { stroke:#22d3ee; background:#22d3ee; }.color-6 { stroke:#a3e635; background:#a3e635; }.color-7 { stroke:#f97316; background:#f97316; }
.chart-legend { display: grid; gap: 12px; list-style: none; padding: 0; margin: 0; }
.chart-legend li { display: grid; grid-template-columns: 10px 1fr auto; gap: 9px; align-items: center; color: #cbd6e5; font-size: 14px; }
.chart-legend b { color:#eff6ff; font: 500 14px 'Inter',sans-serif; }
.legend-dot { width: 9px; height: 9px; border-radius: 50%; }
.empty-chart { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.category-bars { max-height: 320px; overflow: auto; padding-right: 5px; display: grid; gap: 15px; }
.category-allocation-heading { display: flex; justify-content: space-between; gap: 12px; color: #d9e4f3; font-size: 13px; }
.category-allocation-heading b { white-space: nowrap; font-family:'Inter',sans-serif; }
.category-allocation-heading small { color:var(--muted); font-weight:400; }
.category-allocation progress { appearance:none; display:block; width:100%; height:8px; margin:8px 0 5px; overflow:hidden; border:0; border-radius:99px; background:#25354a; }
.category-allocation progress::-webkit-progress-bar { background:#25354a; border-radius:99px; }
.category-allocation progress::-webkit-progress-value { background:linear-gradient(90deg,#2563eb,#60a5fa); border-radius:99px; }
.category-allocation progress::-moz-progress-bar { background:linear-gradient(90deg,#2563eb,#60a5fa); border-radius:99px; }
.category-status { color:var(--muted); font-size:12px; }
.category-status[data-state="ok"] { color:#86efac; }.category-status[data-state="under"] { color:#fbbf24; }.category-status[data-state="over"] { color:#fda4af; }
.target-form { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.target-form label { margin:0 0 8px; color:#e2eaf6; }
.target-form-row { display:grid; grid-template-columns:minmax(0,1fr) 90px auto; gap:8px; }
.target-form-row input,.target-form-row select { min-width:0; height:42px; padding:8px 10px; color:#e5edf9; background:#0b111b; border:1px solid #34465f; border-radius:10px; }
.target-form-row button { width:auto; margin:0; padding:9px 13px; border-radius:10px; white-space:nowrap; }
.target-section { margin:0 0 62px; scroll-margin-top:24px; }
.target-section .section-heading { margin-bottom:22px; }
.target-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr); gap:16px; align-items:start; }
.target-card { min-width:0; padding:22px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(145deg,#121d2d,#0e1622); }
.target-card h3 { margin:0 0 20px; color:#e6eefb; font-size:16px; }
.target-card .target-form { margin:0; padding:0; border:0; }
.target-card .category-bars { max-height:none; }
.wallet-table-wrap { border-radius:16px; border:1px solid var(--line); background:#0e1622; }
.wallet-table { min-width:1100px; }
.wallet-table th,.wallet-table td { border-color:#202d40; vertical-align:middle; }
.wallet-table thead th { background:#121c2b; }
.wallet-table tbody tr:hover { background:#122039; }
.wallet-table tbody tr.selected-row { background:#142844; }
.position-form { display:grid; grid-template-columns:minmax(140px,1.1fr) minmax(110px,.8fr); gap:6px; min-width:290px; }
.position-form select,.position-form input { min-width:0; width:100%; height:34px; padding:5px 7px; border:1px solid #30425a; border-radius:8px; background:#0a111c; color:#dce8f7; font-size:12px; }
.position-form .quantity-label { margin:0; color:#9aabc1; font-size:12px; font-weight:500; }
.position-form .quantity-label input { display:block; margin-top:3px; font:13px 'Inter',sans-serif; }
.position-form .small-action { width:100%; margin:0; padding:7px 8px; border-radius:8px; font-size:12px; justify-content:center; }
.table-valuation { display:grid; gap:5px; min-width:128px; }
.table-valuation strong { color:#dbeafe; font:500 14px 'Inter',sans-serif; }
.table-status { color:#bdc9da; font:500 12px 'Inter',sans-serif; }
.table-status[data-state="cheap"] { color:#86efac; }.table-status[data-state="expensive"] { color:#fda4af; }.table-status[data-state="fair"] { color:#93c5fd; }
.table-valuation input[type="range"] { width:120px; height:6px; margin:1px 0; appearance:none; border-radius:99px; background:linear-gradient(90deg,#166534,#3b82f6 50%,#9f1239); }
.table-valuation input[type="range"]::-webkit-slider-thumb { appearance:none; width:12px; height:12px; border:2px solid #dbeafe; border-radius:50%; background:#60a5fa; }
.table-valuation input[type="range"]::-moz-range-thumb { width:9px; height:9px; border:2px solid #dbeafe; border-radius:50%; background:#60a5fa; }
.valuation-pending { color:#a5b4c8; font-size:12px; }
.fii-search input { border-bottom-color:#3b82f6; color:#e5edf9; }
.fii-search-row button { border-radius:12px; }
.quote-card { background:#111a28; border-color:#2b3b51; }
.quote-card strong { color:#eff6ff; }
.valuation-form label { color:#e4edf9; }
.valuation-form input:not([type="range"]),.valuation-form select { color:#f0f6ff; background:#0b111b; border-color:#33465f; border-radius:10px; }
.tax-slider { appearance:none; height:7px; border-radius:99px; background:linear-gradient(90deg,#2563eb,#60a5fa); }
.tax-slider::-webkit-slider-thumb { appearance:none; width:19px; height:19px; border:3px solid #dbeafe; border-radius:50%; background:#3b82f6; box-shadow:0 2px 10px #0009; }
.tax-slider::-moz-range-thumb { width:13px; height:13px; border:3px solid #dbeafe; border-radius:50%; background:#3b82f6; box-shadow:0 2px 10px #0009; }
.gauge-slider { appearance:none; height:12px; }
.gauge-slider:disabled { opacity:1; cursor:default; }
.gauge-slider::-webkit-slider-thumb { appearance:none; width:21px; height:21px; border:3px solid #eaf2ff; border-radius:50%; background:#60a5fa; box-shadow:0 2px 12px #000c; }
.gauge-slider::-moz-range-thumb { width:15px; height:15px; border:3px solid #eaf2ff; border-radius:50%; background:#60a5fa; box-shadow:0 2px 12px #000c; }
.valuation-result { background:#111a28; border-color:#2b3b51; }
.valuation-result .result-row span,.valuation-result .result-meta span { color:#a5b4c8; }
.valuation-result .valuation-error { color:#fda4af; }
.fii-detail { margin-top:42px; }
.quote-cards { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }
.quote-card { min-height:120px; }
.wallet-empty { border-color:var(--line); }
@media (max-width:760px) { .strategy-overview { grid-template-columns:1fr; margin-bottom:40px; }.allocation-grid,.target-layout { grid-template-columns:1fr; }.asset-chart-layout { grid-template-columns:minmax(120px,.75fr) minmax(120px,1fr); }.target-form-row { grid-template-columns:1fr 80px; }.target-form-row button { grid-column:1/-1; width:100%; }.wallet-content { padding-left:18px; padding-right:18px; } }
@media (max-width:460px) { .asset-chart-layout { grid-template-columns:1fr; }.allocation-donut { width:170px; }.chart-legend { grid-template-columns:1fr 1fr; }.wallet-header h1 { font-size:34px; }.overview-card { min-height:110px; } }
.risk-history-panel { margin:34px 0 26px; padding:clamp(20px,3.5vw,34px); border:1px solid #293a51; border-radius:18px; background:linear-gradient(145deg,#111b2a,#0d1520); }
.risk-history-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.risk-history-heading .eyebrow { margin:0 0 10px; }
.risk-history-heading h3 { margin:0; color:#eff6ff; font-size:clamp(19px,2.4vw,26px); letter-spacing:-.5px; }
.risk-history-heading > strong { color:#93c5fd; white-space:nowrap; font:600 20px 'Inter',sans-serif; }
.risk-current { display:grid; gap:4px; justify-items:end; text-align:right; }
.risk-current > span { color:#94a3b8; font-size:12px; }
.risk-current strong { color:#86efac; white-space:nowrap; font:600 20px 'Inter',sans-serif; }
.risk-current small { color:#86efac; font-size:12px; }
.risk-current.negative strong,.risk-current.negative small { color:#fda4af; }
.risk-history-panel .section-lede { max-width:820px; margin-top:12px; }
.risk-chart-meta,.risk-chart-dates { display:flex; justify-content:space-between; gap:20px; color:#a5b4c8; font:13px 'Inter',sans-serif; }
.risk-chart-meta { margin:22px 0 4px; }
.risk-chart { display:block; width:100%; min-height:180px; overflow:visible; }
.risk-gridline { stroke:#27364a; stroke-width:1; stroke-dasharray:4 6; }
.risk-axis-label { font:12px 'Inter',sans-serif; }
.premium-axis-label { fill:#93c5fd; }
.price-axis-label { fill:#6ee7b7; }
.risk-line { stroke:#60a5fa; stroke-width:3; stroke-linecap:round; }
.risk-point { fill:#bfdbfe; stroke:#2563eb; stroke-width:2; }
.risk-chart-dates { margin-top:-5px; }
.risk-history-empty { margin-top:18px; padding:16px; border:1px dashed #34465e; border-radius:12px; color:#c0cede; font-size:14px; line-height:1.6; }
.tax-toggle { display:flex; align-items:center; gap:10px; margin:22px 0 7px !important; color:#dce8f7 !important; font-size:14px !important; }
.tax-toggle input[type="checkbox"] { width:17px; height:17px; margin:0; accent-color:#3b82f6; }
.asset-position-form { margin:20px 0 44px; padding:20px; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); border:1px solid #26364b; border-radius:14px; background:#0e1622; }
.asset-position-form label { display:flex; flex-direction:column; gap:7px; margin:0; color:#b7c5d8; font-size:13px; }
.asset-position-form select,.asset-position-form input { height:40px; padding:8px 10px; border:1px solid #33465f; border-radius:9px; background:#0a111c; color:#e5edf9; }
.asset-position-form .small-action { align-self:end; height:40px; margin:0; border-radius:9px; justify-content:center; }
@media (max-width:600px) { .risk-history-heading { align-items:start; flex-direction:column; }.risk-history-heading > strong { font-size:17px; }.risk-chart { min-height:140px; }.asset-position-form { grid-template-columns:1fr 1fr; } }

/* Public product page and asset research details */
.landing-page { min-height:100vh; overflow-x:hidden; background:#080d16; color:#e8eef8; }
.landing-nav { position:relative; z-index:2; max-width:1380px; height:82px; margin:auto; padding:0 36px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #1b2637; }
.brand-lockup { display:inline-flex; align-items:center; gap:11px; color:#dce8f9; text-decoration:none; font:500 13px 'Inter',sans-serif; letter-spacing:1.3px; }
.brand-lockup b { color:#fff; font-weight:500; }
.brand-mark { display:grid; place-items:center; width:40px; height:40px; color:#60a5fa; border:1px solid #28436a; border-radius:12px; background:linear-gradient(145deg,#162b49,#0d1727); }
.brand-mark svg { width:28px; height:28px; }
.landing-nav nav { display:flex; align-items:center; gap:30px; }
.landing-nav nav a { color:#a9b7ca; text-decoration:none; font-size:14px; font-weight:600; }
.landing-nav nav a:hover { color:#fff; }
.landing-nav nav .nav-cta { padding:12px 17px; border:1px solid #354966; border-radius:10px; color:#eaf2ff; background:#111c2c; }
.nav-cta span { padding-left:9px; color:#60a5fa; }
.landing-hero { position:relative; isolation:isolate; min-height:660px; display:grid; grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr); align-items:center; gap:30px; max-width:1380px; margin:auto; padding:90px 36px 110px; }
.hero-copy { position:relative; z-index:1; }
.hero-copy .eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:30px; color:#76aefc; }
.live-dot { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:#60a5fa; box-shadow:0 0 14px #3b82f6b3; }
.hero-copy h1 { margin:0 0 24px; color:#f4f7fc; font-size:clamp(55px,6.5vw,86px); letter-spacing:-5px; line-height:.98; }
.hero-copy h1 em { color:#72aefb; font-style:normal; }
.hero-lede { max-width:500px; color:#a6b3c5; font-size:16px; line-height:1.8; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:34px; }
.primary-link { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:48px; padding:0 19px; border:1px solid #3b82f6; border-radius:11px; background:linear-gradient(135deg,#2563eb,#1d4ed8); color:#fff; text-decoration:none; font-size:14px; font-weight:700; box-shadow:0 10px 30px #1d4ed833; transition:transform .2s,box-shadow .2s; }
.primary-link:hover { transform:translateY(-2px); box-shadow:0 13px 34px #1d4ed855; }
.primary-link span { font-size:17px; }
.secondary-link { color:#b7c5d7; text-decoration:none; font-size:14px; font-weight:600; }
.secondary-link span { padding-left:7px; color:#60a5fa; }
.hero-proof { display:flex; gap:28px; margin-top:54px; padding-top:19px; border-top:1px solid #1e2b3e; color:#7f8da1; font:12px 'Inter',sans-serif; letter-spacing:.2px; }
.hero-proof b { margin-right:8px; color:#66a7ff; font-weight:500; }
.hero-visual { position:relative; z-index:1; min-height:425px; display:grid; align-items:center; justify-items:center; }
.visual-window { position:relative; z-index:1; width:min(100%,540px); min-height:345px; overflow:hidden; border:1px solid #2b3b52; border-radius:17px; background:linear-gradient(145deg,#111c2b,#0c1420); box-shadow:0 32px 100px #0008; transform:perspective(1100px) rotateY(-5deg) rotateX(2deg); }
.visual-topbar { height:49px; display:flex; align-items:center; justify-content:space-between; padding:0 17px; border-bottom:1px solid #243147; }
.visual-brand { display:flex; align-items:center; gap:9px; color:#bdcce0; font:12px 'Inter',sans-serif; letter-spacing:1px; }
.mini-brand-mark { display:grid; place-items:center; width:21px; height:21px; border-radius:6px; color:#8bbdff; background:#1c3456; font-size:14px; }
.visual-dots { display:flex; gap:5px; }.visual-dots i { width:5px; height:5px; border-radius:50%; background:#43536a; }
.visual-content { padding:27px 28px 24px; }
.visual-label { color:#8192aa; font:12px 'Inter',sans-serif; letter-spacing:1px; }
.visual-value { margin-top:9px; color:#f0f6ff; font:500 32px 'Inter',sans-serif; letter-spacing:-1px; }.visual-value span { color:#99abc2; font-size:19px; }
.visual-change { margin-top:7px; color:#8698af; font-size:12px; }.visual-change span { color:#55d6a2; margin-right:4px; }
.visual-chart { position:relative; height:135px; margin-top:24px; border-bottom:1px solid #223148; background:repeating-linear-gradient(to bottom,transparent 0,transparent 43px,#1b2a3c 44px); }
.visual-chart svg { position:absolute; inset:0; width:100%; height:100%; }
.chart-y { position:absolute; z-index:1; top:0; bottom:3px; left:0; display:flex; flex-direction:column; justify-content:space-between; color:#5f7189; font:12px 'Inter',sans-serif; }
.visual-legend { display:flex; justify-content:space-between; align-items:center; margin-top:15px; color:#8f9fb5; font-size:12px; }.visual-legend span:first-child { display:flex; align-items:center; gap:7px; }.legend-blue { width:7px; height:7px; border-radius:50%; background:#60a5fa; }.legend-tag { color:#687a91; font:12px 'Inter',sans-serif; letter-spacing:.3px; }
.floating-chip { position:absolute; z-index:2; display:flex; align-items:center; gap:12px; padding:12px 15px; border:1px solid #31445e; border-radius:12px; background:#111c2b; box-shadow:0 17px 42px #0008; }.chip-risk { top:17px; right:-11px; }.chip-allocation { bottom:0; left:-8px; }
.chip-icon { display:grid; place-items:center; width:33px; height:33px; border-radius:10px; background:#1a3152; color:#79b5ff; font-size:21px; }.floating-chip small,.floating-chip b { display:block; }.floating-chip small { margin-bottom:5px; color:#72839a; font:12px 'Inter',sans-serif; letter-spacing:.6px; }.floating-chip b { color:#e1eaf6; font-size:12px; font-weight:600; }.floating-chip b i { color:#60a5fa; font-style:normal; }
.hero-orbit { position:absolute; z-index:-1; border:1px solid #142238; border-radius:50%; pointer-events:none; }.orbit-one { width:690px; height:690px; right:-165px; top:-1px; }.orbit-two { width:490px; height:490px; right:-63px; top:98px; border-color:#152a45; }
.landing-features { padding:88px max(36px,calc((100vw - 1308px)/2)) 100px; border-top:1px solid #1b2637; background:#0b111b; }
.features-heading { max-width:650px; margin-bottom:40px; }.features-heading .eyebrow { margin-bottom:17px; }.features-heading h2,.landing-bottom h2 { margin:0; color:#eff5fd; font-size:clamp(28px,4vw,43px); letter-spacing:-1.8px; line-height:1.15; }.features-heading > p:last-child { margin-top:13px; color:#96a5ba; font-size:14px; line-height:1.7; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }.feature-card { min-height:230px; padding:24px; border:1px solid #223149; border-radius:14px; background:linear-gradient(145deg,#111a28,#0e1520); }.feature-icon { display:grid; place-items:center; width:39px; height:39px; border:1px solid #2b4365; border-radius:12px; background:#15243a; color:#77b3ff; font-size:19px; }.feature-index { margin:22px 0 10px; color:#7395c1; font:12px 'Inter',sans-serif; letter-spacing:.8px; }.feature-card h3 { margin:0; color:#e7effa; font-size:17px; }.feature-card > p:last-child { color:#95a4b8; font-size:13px; line-height:1.75; }
.landing-bottom { display:flex; align-items:center; justify-content:space-between; gap:25px; max-width:1308px; margin:auto; padding:80px 36px; }.landing-bottom .eyebrow { margin-bottom:15px; }.landing-footer { display:flex; justify-content:space-between; gap:20px; padding:23px 36px; border-top:1px solid #1b2637; color:#6f8097; font-size:12px; }.landing-footer span:first-child { color:#9aaec7; font:12px 'Inter',sans-serif; letter-spacing:.7px; }
.auth-shell { min-height:100vh; background:#080d16; }.auth-panel { position:relative; overflow:hidden; padding-top:55px; padding-bottom:55px; background:radial-gradient(ellipse at 12% 20%,#132846 0%,#080d16 66%); }.auth-panel::after { position:absolute; right:-160px; bottom:-280px; width:620px; height:620px; border:1px solid #142943; border-radius:50%; content:""; box-shadow:0 0 0 90px #0a122080,0 0 0 180px #0a122040; pointer-events:none; }.auth-brand { margin-bottom:57px; }.auth-eyebrow { display:flex; align-items:center; gap:9px; margin-bottom:22px; }.auth-panel h1 { max-width:560px; color:#f4f8ff; font-size:clamp(49px,6vw,76px); letter-spacing:-4px; }.auth-panel .lede { max-width:440px; color:#a8b8cf; }.auth-benefits { display:grid; gap:14px; margin-top:38px; color:#bccadd; font-size:13px; }.auth-benefits span { display:flex; align-items:center; gap:10px; }.auth-benefits i { display:grid; place-items:center; width:19px; height:19px; border:1px solid #315181; border-radius:50%; color:#8fc1ff; font-size:13px; font-style:normal; }
.auth-form { align-self:center; max-width:570px; padding:clamp(30px,5vw,58px); border:1px solid #26364a; background:linear-gradient(145deg,#121b29,#0f1723); border-radius:18px; }.auth-form .back-home { display:inline-block; margin-bottom:42px; color:#94a8c1; text-decoration:none; font-size:13px; }.auth-form .back-home:hover { color:#bfdbfe; }.auth-form .section-heading { margin-bottom:25px; }.auth-form .section-heading .eyebrow { margin-bottom:12px; }.auth-form h2 { color:#f0f6ff; font-size:clamp(25px,3vw,34px); letter-spacing:-1px; }.auth-form .section-lede { color:#94a3b8; }.auth-form label { margin:23px 0 8px; color:#dbe6f5; font-size:14px; }.auth-form input { min-height:48px; padding:12px 13px; border:1px solid #34465e; border-radius:9px; background:#0a111c; color:#f1f6ff; font:500 16px 'Inter',sans-serif; color-scheme:dark; }.auth-form input:focus { border-color:#60a5fa; box-shadow:0 0 0 3px #3b82f626; outline:0; }.auth-form button { margin-top:30px; border-radius:10px; }.auth-form .error { margin-top:10px; border:1px solid #753740; border-left:3px solid #f87171; background:#29171c; color:#fecaca; }
.asset-classification { display:grid; gap:4px; white-space:normal; min-width:150px; }.asset-classification strong { color:#e5efff; font:600 13px 'Inter',sans-serif; }.asset-classification span { color:#83baff; font:12px 'Inter',sans-serif; }.asset-classification small { color:#7d8da3; font:12px 'Inter',sans-serif; }
.asset-management-heading { margin:44px 0 0; }.asset-management-heading .eyebrow { margin:0 0 8px; }.asset-management-heading h3 { margin:0; color:#eaf2fc; font-size:19px; }.asset-management-heading > p:last-child { max-width:600px; margin:8px 0 0; color:#91a2b8; font-size:13px; line-height:1.65; }
.positive-value { color:#54d6a0!important; }.negative-value { color:#fb8190!important; }.subsection-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; }.subsection-heading h3 { margin:0; color:#e8f0fb; font-size:17px; }.subsection-heading .eyebrow { margin:0 0 8px; }.subsection-heading > span { color:#8292a8; font-size:12px; }.distribution-history { margin:34px 0; padding:24px; border:1px solid #26364b; border-radius:15px; background:#101824; }.distribution-table-wrap { margin-top:17px; overflow:auto; border:1px solid #26364b; border-radius:10px; }.distribution-table { width:100%; border-collapse:collapse; text-align:left; }.distribution-table th,.distribution-table td { padding:11px 14px; border-bottom:1px solid #202d40; color:#c8d4e4; font:12px 'Inter',sans-serif; }.distribution-table th { background:#151f2e; color:#8798af; font-size:12px; text-transform:uppercase; letter-spacing:.5px; }.distribution-table td:last-child { color:#9cc5ff; }.distribution-table tbody tr:last-child td { border-bottom:0; }.data-source-note { color:#8899af; font-size:12px; }.price-chart-heading { margin-top:33px; }.price-chart-heading > span { color:#a4caff; font:500 14px 'Inter',sans-serif; }.price-line { stroke:#36d6b0; stroke-width:2.5; stroke-linecap:round; }.price-point { fill:#b8ffe5; stroke:#10b981; stroke-width:2; }
@media(max-width:850px) { .landing-hero { grid-template-columns:1fr; padding-top:70px; }.hero-visual { width:min(100%,640px); justify-self:center; margin:35px 0 20px; }.landing-hero { min-height:auto; }.orbit-one,.orbit-two { right:-280px; }.auth-shell { grid-template-columns:1fr 1fr; }.auth-panel { padding-left:40px; padding-right:40px; }.auth-form { padding:32px; } }
@media(max-width:620px) { .landing-nav { height:70px; padding:0 18px; }.landing-nav nav { gap:14px; }.landing-nav nav a:not(.nav-cta) { display:none; }.brand-lockup { font-size:12px; gap:8px; }.brand-mark { width:34px; height:34px; }.landing-hero { padding:65px 22px 78px; }.hero-copy h1 { font-size:55px; letter-spacing:-3px; }.hero-lede { font-size:14px; }.hero-proof { gap:14px; flex-wrap:wrap; }.visual-window { min-height:315px; transform:none; }.visual-content { padding:22px 18px; }.visual-value { font-size:26px; }.floating-chip { padding:9px 10px; }.floating-chip b { max-width:175px; font-size:12px; }.chip-risk { right:-5px; }.chip-allocation { left:-4px; }.landing-features { padding:68px 22px; }.feature-grid { grid-template-columns:1fr; }.feature-card { min-height:190px; }.landing-bottom { display:block; padding:58px 22px; }.landing-bottom .primary-link { margin-top:22px; }.landing-footer { display:grid; padding:20px 22px; }.auth-shell { display:block; }.auth-panel { min-height:auto; padding:35px 24px 40px; }.auth-brand { margin-bottom:44px; }.auth-panel h1 { font-size:49px; }.auth-panel .lede { font-size:14px; }.auth-benefits { margin-top:25px; }.auth-form { max-width:none; margin:0 14px 24px; padding:27px 23px; }.auth-form .back-home { margin-bottom:27px; }.distribution-history { padding:17px 13px; } }

/* Refined selects and fund search controls */
.wallet-content select { min-width:0; appearance:none; color-scheme:dark; padding-right:40px!important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center; }
.wallet-content select:focus,.wallet-content input:focus { outline:0; border-color:#60a5fa!important; box-shadow:0 0 0 3px #3b82f626; }
.target-form-row select,.asset-position-form select { height:44px; border-radius:10px; }
.valuation-form select { border-radius:10px!important; }
.fii-search { max-width:760px; margin:0 0 42px; padding:20px; border:1px solid #23344a; border-radius:16px; background:linear-gradient(145deg,#101a29,#0d1521); }
.fii-search > label { display:block; margin:0 0 10px; color:#e4edf9; font-size:14px; font-weight:700; }
.fii-search-row { max-width:none; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:stretch; }
.fii-search input { width:100%; min-width:0; min-height:46px; padding:10px 13px; border:1px solid #34465f!important; border-radius:10px!important; background:#0a111c; color:#eff6ff; font:500 14px 'Inter',sans-serif; }
.fii-search input::placeholder { color:#718198; }
.fii-add-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-width:210px; min-height:46px; margin:0; padding:0 16px; border:1px solid #3b82f6; border-radius:10px!important; background:#2563eb; color:#fff; white-space:nowrap; }
.fii-add-button:hover:not(:disabled) { background:#1d4ed8; color:#fff; }
.fii-add-button .add-button-icon { display:inline-grid; flex:0 0 22px; place-items:center; width:22px; height:22px; border:1px solid #ffffff55; border-radius:50%; color:#fff; font-size:17px; font-weight:500; line-height:1; }
.fii-add-button > span:not(.add-button-icon),.fii-add-button:hover > span:not(.add-button-icon) { color:#fff; font:600 14px/1 'Inter',sans-serif; }
.fii-add-button:disabled { opacity:1; border-color:#293a51; background:#152033; color:#7e8da3; }
.fii-add-button:disabled .add-button-icon { border-color:#34445b; color:#8294ad; }
.fii-results { position:relative; width:100%; max-width:none; max-height:250px; margin-top:8px; overflow-y:auto; border:1px solid #2b3c53; border-radius:11px; background:#0c1420; box-shadow:0 14px 32px #0006; }
.fii-results:empty { display:none; }
.fii-result { grid-template-columns:90px minmax(0,1fr); gap:12px; padding:12px 14px; border-bottom:1px solid #202e41; background:#0c1420; color:#e5edf8; cursor:pointer; }
.fii-result:last-child { border-bottom:0; }
.fii-result:hover,.fii-result:focus-visible { background:#14233a; color:#fff; outline:0; }
.fii-result.selected { background:#142b49; box-shadow:inset 3px 0 #60a5fa; }
.fii-result strong { color:#dbeafe; font-size:14px; }
.fii-result span { color:#93a4bb; font-size:13px; }
#fii-search-status { margin:10px 0 0; min-height:15px; color:#8ea0b7; }
.asset-page-content { padding-top:clamp(24px,4vw,44px); }
.asset-page-content .fii-detail { margin-top:0; padding-top:0; border-top:0; }
.valuation-form input[type="search"] { margin-bottom:5px; }
.chart-legend { display:flex; flex-wrap:wrap; gap:20px; margin:20px 0 8px; color:#a6b5c9; font-size:13px; }
.chart-legend span { display:inline-flex; align-items:center; gap:8px; }
.chart-key { width:9px; height:9px; border-radius:50%; background:#60a5fa; }
.premium-key { background:#60a5fa; }.price-key { background:#36d6b0; }
.combined-market-chart-viewport,.distribution-chart-viewport { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-color:#385171 #0d1520; }
.combined-market-chart { width:100%; height:auto; min-height:0; aspect-ratio:790/260; }
.distribution-chart-content { width:100%; }
.distribution-chart { display:block; width:100%; height:auto; aspect-ratio:760/210; margin-top:14px; overflow:visible; }
.dividend-bar-label { fill:#dbeafe; font:12px 'Inter',sans-serif; pointer-events:none; }
.dividend-bar { fill:#60a5fa; opacity:.78; transition:opacity .15s,fill .15s; }
.dividend-bar:hover { fill:#93c5fd; opacity:1; }
.distribution-details { margin-top:16px; border-top:1px solid #26364b; color:#a5b4c8; }
.distribution-details summary { width:max-content; padding:13px 0 0; color:#a9c9f3; cursor:pointer; font-size:13px; }
.distribution-details .distribution-table-wrap { margin-top:12px; }
.fund-facts-panel,.fund-history-panel,.fund-portfolio-panel { margin:24px 0; padding:clamp(18px,3vw,28px); border:1px solid #293a51; border-radius:18px; background:linear-gradient(145deg,#111b2a,#0d1520); }
.fund-facts-panel > .subsection-heading,.fund-history-panel > .subsection-heading,.fund-portfolio-panel > .subsection-heading { margin-bottom:18px; }
.fund-facts-panel .subsection-heading h3,.fund-history-panel .subsection-heading h3,.fund-portfolio-panel .subsection-heading h3 { margin:0; color:#eff6ff; font-size:clamp(17px,2vw,22px); }
.fund-facts-grid,.portfolio-facts-grid { margin-top:0; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); }
.fund-facts-grid .quote-card,.portfolio-facts-grid .quote-card { min-height:88px; padding:14px; }
.fund-facts-grid .quote-card strong,.portfolio-facts-grid .quote-card strong { font-size:clamp(14px,1.7vw,19px); overflow-wrap:anywhere; }
.fund-history-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.fund-history-card { min-width:0; padding:16px; border:1px solid #293a51; border-radius:14px; background:#0b121d; }
.fund-history-card h4,.fund-portfolio-panel h4 { margin:0; color:#e5edf9; font-size:14px; }
.fund-history-card .chart-legend { gap:12px; min-height:32px; font-size:12px; }
.fund-history-viewport { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-color:#385171 #0d1520; }
.fund-history-chart { display:block; width:100%; height:auto; aspect-ratio:760/220; }
.equity-history-line,.investor-history-line,.pvp-history-line { fill:none; stroke-width:2.7; stroke-linejoin:round; stroke-linecap:round; }
.equity-history-line { stroke:#60a5fa; }.investor-history-line { stroke:#6ee7b7; }.pvp-history-line { stroke:#c4b5fd; }
.equity-key { background:#60a5fa; }.investors-key { background:#6ee7b7; }.pvp-key { background:#c4b5fd; }
.fund-portfolio-panel > h4 { margin:22px 0 10px; }
.fund-identity { margin:18px 0 34px; border:1px solid #293a51; border-radius:13px; background:#0e1622; color:#b9c7d9; }
.fund-identity summary { padding:14px 16px; cursor:pointer; color:#c8d8ed; font-size:14px; font-weight:700; }
.fund-identity-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; padding:4px 16px 16px; }
.fund-identity-grid span { display:grid; gap:5px; color:#8292a7; font-size:12px; }
.fund-identity-grid strong { color:#dbe6f5; font-size:13px; font-weight:500; overflow-wrap:anywhere; }
.property-table td small { display:block; max-width:340px; margin-top:4px; color:#7f91a9; font-size:12px; line-height:1.4; white-space:normal; }
.risk-current > span { text-transform:uppercase; letter-spacing:.5px; }
.risk-current.negative { color:#fda4af; }
.risk-current.positive { color:#86efac; }
@media(max-width:760px) { .fii-search { padding:16px; }.fii-search-row { display:grid; grid-template-columns:1fr; }.fii-add-button { width:100%; min-height:44px; margin:0; }.fii-result { grid-template-columns:75px minmax(0,1fr); gap:9px; } }
@media(max-width:600px) { .risk-history-heading { align-items:flex-start; }.risk-current { justify-items:start; text-align:left; }.combined-market-chart-viewport,.distribution-chart-viewport { margin-right:-4px; padding-bottom:5px; }.combined-market-chart { min-width:0; }.distribution-chart-content { min-width:560px; }.risk-chart-meta { font-size:12px; gap:8px; }.risk-chart-meta span:last-child { text-align:right; }.combined-market-chart .risk-axis-label { display:none; } }
@media(max-width:760px) { .fund-history-grid { grid-template-columns:1fr; }.fund-facts-panel,.fund-history-panel,.fund-portfolio-panel { padding:16px; }.fund-history-viewport { margin-right:-4px; }.fund-history-chart { min-width:0; }.fund-facts-panel .subsection-heading,.fund-history-panel .subsection-heading,.fund-portfolio-panel .subsection-heading { align-items:flex-start; flex-direction:column; gap:8px; }.fund-history-card .chart-legend { min-height:0; }.property-table { min-width:680px; } }
@media(max-width:600px) { .combined-market-chart-viewport::after,.distribution-chart-viewport::after,.fund-history-viewport::after { content:"Deslize na horizontal para ver toda a série"; display:block; padding:6px 4px 0; color:#8294ad; font-size:12px; } }

/* Research screener and investment notebook */
.research-filter-panel,.research-list-section,.research-data-note,.alchemy-builder,.alchemy-chart-block,.alchemy-note-block,.metric-picker { margin:20px 0; padding:clamp(16px,2.8vw,26px); border:1px solid #293a51; border-radius:18px; background:linear-gradient(145deg,#111b2a,#0d1520); }
.research-filter-main { display:grid; grid-template-columns:minmax(240px,2fr) minmax(180px,1fr) minmax(180px,1fr); gap:14px; align-items:end; }
.research-filter-main label,.research-range-filters label { display:grid; gap:8px; color:#aabbd0; font-size:13px; }
.research-filter-main select,.research-range-filters input,.research-range-filters select { width:100%; min-height:42px; padding:10px 12px; border:1px solid #304258; border-radius:10px; background:#0b121d; color:#edf4fd; color-scheme:dark; }
.research-filter-main select:focus,.research-range-filters input:focus,.research-range-filters select:focus { outline:2px solid #458ce0; outline-offset:1px; }
.research-filter-main .research-input-wrap { min-height:44px; }.research-query { min-width:0; }
.research-advanced { margin-top:18px; border-top:1px solid #25354a; }.research-advanced summary { padding:16px 0 4px; color:#9dc8ff; font-size:14px; cursor:pointer; }.research-range-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:14px 0 8px; }
.research-filter-footer,.research-list-heading,.research-pagination,.research-fund-title,.research-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }.research-filter-footer { margin-top:16px; padding-top:12px; border-top:1px solid #25354a; }.research-filter-footer .hint { margin:0; }
.research-list-heading { margin-bottom:14px; }.research-list-heading .eyebrow { margin:0 0 5px; }.research-list-heading h3 { margin:0; color:#eef5ff; font-size:18px; }.research-pagination { color:#9eabc0; font-size:13px; }.research-pagination .secondary-button { min-height:34px; padding:6px 10px; }.research-pagination .secondary-button:disabled { opacity:.4; cursor:default; }
.research-catalog { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.research-fund-card { min-width:0; padding:17px; border:1px solid #283a50; border-radius:14px; background:#0b121d; color:inherit; text-decoration:none; transition:border-color .16s,transform .16s,background .16s; }.research-fund-card:hover { transform:translateY(-2px); border-color:#4385cf; background:#101b2a; }.research-fund-title strong { color:#eff6ff; font:700 15px 'Inter',sans-serif; }.research-fund-title>span { max-width:65%; padding:5px 8px; border:1px solid #294564; border-radius:999px; color:#9ac8ff; font-size:12px; text-align:right; }.research-fund-card>p { min-height:19px; margin:9px 0 14px; color:#aab8ca; font-size:13px; }.research-fund-metrics { display:flex; flex-wrap:wrap; gap:9px 18px; min-height:36px; }.research-fund-metrics>span { display:grid; gap:4px; }.research-fund-metrics small { color:#70849e; font-size:12px; letter-spacing:.5px; }.research-fund-metrics b { color:#dce9f8; font:500 13px 'Inter',sans-serif; }.research-card-footer { margin-top:14px; padding-top:12px; border-top:1px solid #1f2c3e; color:#72859d; font-size:12px; }.research-card-footer b { color:#9ac8ff; font-size:12px; }.research-card-footer i { margin-left:4px; font-style:normal; }.research-loading,.research-empty { grid-column:1/-1; display:grid; place-items:center; gap:8px; padding:48px 16px; border:1px dashed #304258; border-radius:14px; color:#a9b9cd; text-align:center; font-size:14px; }.research-empty strong { color:#edf4fd; }.research-empty span { color:#94a7bf; }.research-loading span { width:22px; height:22px; border:2px solid #324860; border-top-color:#60a5fa; border-radius:50%; animation:research-spin .8s linear infinite; }@keyframes research-spin { to { transform:rotate(360deg); } }
.research-data-note { display:flex; align-items:baseline; gap:10px; color:#899bb2; font-size:12px; line-height:1.6; }.research-data-note strong { flex:none; color:#a9cfff; }
.alchemy-builder { display:flex; align-items:center; justify-content:space-between; gap:18px; }.alchemy-builder .eyebrow { margin:0 0 6px; }.alchemy-builder h3 { margin:0; color:#eff6ff; font-size:17px; }.alchemy-builder p:not(.eyebrow) { max-width:620px; margin:7px 0 0; color:#9caec4; font-size:13px; line-height:1.6; }.alchemy-builder-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }.alchemy-builder-actions .secondary-button { min-height:38px; padding:8px 12px; white-space:nowrap; }
.alchemy-blocks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }.alchemy-chart-block,.alchemy-note-block { min-width:0; margin:0; padding:18px; }.alchemy-block-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }.alchemy-block-header h4 { margin:0; color:#ecf4ff; font-size:14px; }.text-button { border:0; background:none; color:#879bb4; font-size:12px; cursor:pointer; }.text-button:hover { color:#fb8e9c; }.alchemy-chart-controls { display:flex; gap:8px; margin:14px 0; }.alchemy-chart-controls select { min-height:34px; padding:6px 9px; border:1px solid #304258; border-radius:9px; background:#0b121d; color:#dbeafe; color-scheme:dark; font-size:12px; }.alchemy-chart-canvas { min-width:0; }.alchemy-chart-canvas svg { display:block; width:100%; min-height:180px; }.alchemy-chart-canvas polyline { vector-effect:non-scaling-stroke; }.alchemy-chart-legend { display:flex; flex-wrap:wrap; gap:10px; margin-top:7px; }.alchemy-chart-legend span { color:#bac9db; font-size:12px; }.alchemy-chart-legend span:before { content:""; display:inline-block; width:8px; height:8px; margin-right:5px; border-radius:50%; background:var(--series-color); }.alchemy-chart-empty { display:grid; place-items:center; min-height:180px; border:1px dashed #304258; border-radius:10px; color:#899bb2; font-size:13px; text-align:center; }
.alchemy-format-toolbar { display:flex; gap:5px; margin:12px 0 7px; }.alchemy-format-toolbar button { min-width:30px; height:29px; padding:4px 8px; border:1px solid #304258; border-radius:7px; background:#121d2a; color:#c4d7ed; cursor:pointer; font-size:12px; }.alchemy-rich-editor { min-height:150px; padding:13px; border:1px solid #2d3e54; border-radius:10px; outline:none; background:#0a111b; color:#dce6f3; font-size:14px; line-height:1.7; }.alchemy-rich-editor:empty:before { content:attr(data-placeholder); color:#71839a; pointer-events:none; }.alchemy-rich-editor h2,.alchemy-rich-editor h3 { color:#eef6ff; }.alchemy-rich-editor blockquote { margin-left:0; padding-left:12px; border-left:2px solid #4b91df; color:#a8bdd5; }.metric-picker { padding:0 18px; }.metric-picker summary { padding:16px 0; color:#9dc8ff; cursor:pointer; font-size:13px; }.metric-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding:4px 0 17px; }.metric-options label { display:flex; align-items:center; gap:7px; color:#bfccdc; font-size:12px; }.metric-options input { accent-color:#4e9ff5; }
@media(max-width:760px) { .research-filter-main { grid-template-columns:1fr 1fr; }.research-query { grid-column:1/-1; }.research-range-filters { grid-template-columns:1fr 1fr; }.research-catalog { grid-template-columns:1fr; }.alchemy-builder { align-items:flex-start; flex-direction:column; }.alchemy-builder-actions { justify-content:flex-start; }.alchemy-blocks { grid-template-columns:1fr; }.metric-options { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .research-filter-main,.research-range-filters { grid-template-columns:1fr; }.research-query { grid-column:auto; }.research-filter-footer,.research-list-heading { align-items:flex-start; flex-direction:column; }.research-pagination { width:100%; justify-content:flex-start; }.research-pagination span { margin-right:auto; }.research-data-note { flex-direction:column; gap:4px; }.alchemy-builder-actions { display:grid; width:100%; grid-template-columns:1fr; }.alchemy-chart-controls { flex-wrap:wrap; }.research-fund-metrics { gap:10px 14px; } }
.alchemy-chart-canvas svg { touch-action:pan-y; }.alchemy-gridline { stroke:#29384c; stroke-width:1; stroke-dasharray:3 5; }.alchemy-axis-label { fill:#8294ad; font:12px 'Inter',sans-serif; }.alchemy-chart-readout { min-height:26px; margin:3px 0 4px; color:#d8e7f8; font:12px 'Inter',sans-serif; }
.research-filter-main { grid-template-columns:minmax(240px,2fr) repeat(3,minmax(145px,1fr)); }.research-filter-hint { margin:13px 0 0; color:#899bb2; font-size:12px; line-height:1.5; }
@media(max-width:760px) { .research-filter-main { grid-template-columns:1fr 1fr; } }

/* Separate, range-selectable market history charts */
.asset-detail-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.asset-detail-heading .section-heading { margin-bottom:24px; }
.asset-header-action { flex:none; padding-top:10px; }
.primary-action { width:auto; min-height:44px; margin:0; padding:12px 18px; border:1px solid #3779d6; border-radius:12px; background:linear-gradient(135deg,#2470ce,#1552a1); color:#fff; font-size:14px; box-shadow:0 8px 22px #0a3b7766; }
.primary-action:hover { background:#3989f2; color:#fff; }
.portfolio-badge { display:inline-flex; align-items:center; gap:7px; padding:12px 15px; border:1px solid #23795f; border-radius:999px; background:#102a27; color:#83e3be; font-size:13px; font-weight:700; }
.market-history-panel { margin-top:28px; padding:clamp(18px,3vw,30px); border:1px solid #293a51; border-radius:18px; background:linear-gradient(145deg,#111b2a,#0d1520); }
.market-history-panel > .section-lede { max-width:760px; margin:0 0 22px; }
.interactive-chart { position:relative; min-width:0; margin:16px 0; padding:20px; border:1px solid #293a51; border-radius:15px; background:#0a121e; }
.interactive-chart-heading,.interactive-chart-meta { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.interactive-chart-heading h4 { margin:0 0 5px; color:#eff6ff; font-size:15px; }
.interactive-chart-heading span,.interactive-chart-meta { color:#91a1b7; font-size:12px; }
.interactive-chart-meta { min-height:24px; margin-top:17px; }
.interactive-chart-meta strong { color:#dce9f9; font:500 13px 'Inter',sans-serif; text-align:right; }
.chart-periods { display:flex; gap:4px; padding:4px; border:1px solid #26364b; border-radius:10px; background:#0e1928; }
.chart-periods button { width:auto; margin:0; padding:7px 10px; border:0; border-radius:7px; background:transparent; color:#9bacbf; font:600 12px 'Inter',sans-serif; }
.chart-periods button:hover,.chart-periods button.active { background:#1b4d82; color:#eef6ff; }
.chart-canvas { position:relative; width:100%; min-width:0; margin-top:4px; }
.chart-canvas svg { display:block; width:100%; height:auto; aspect-ratio:760/250; overflow:visible; touch-action:pan-y; }
.interactive-line { fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.interactive-line.price-line { stroke:#36d6b0; }.interactive-line.premium-line { stroke:#71a9ff; }
.chart-canvas .interactive-ymax,.chart-canvas .interactive-ymin { fill:#8da0b8; font:12px 'Inter',sans-serif; }
.chart-hit-area { cursor:crosshair; }
.chart-crosshair { stroke:#a5b4c8; stroke-width:1; stroke-dasharray:4 4; pointer-events:none; opacity:0; }
.chart-focus-point { r:5; fill:#eaf3ff; stroke:#42a5ff; stroke-width:3; pointer-events:none; opacity:0; }
.interactive-chart.is-inspecting .chart-crosshair,.interactive-chart.is-inspecting .chart-focus-point { opacity:1; }
.chart-tooltip { position:absolute; z-index:2; min-width:150px; padding:8px 10px; border:1px solid #446383; border-radius:8px; background:#17263a; color:#f2f7ff; font:500 12px 'Inter',sans-serif; box-shadow:0 8px 24px #0008; pointer-events:none; }
.chart-tooltip[hidden] { display:none; }
.chart-data { display:none; }
.interactive-chart .risk-chart-dates { padding-top:8px; }
.research-page,.alchemy-page { min-height:calc(100vh - 130px); }
.research-search { max-width:850px; margin:32px 0 44px; }
.research-input-wrap { display:flex; align-items:center; gap:14px; padding:7px 16px; border:1px solid #30445f; border-radius:14px; background:#101b2b; }
.research-input-wrap > span { color:#70a9ff; font-size:26px; }
.research-input-wrap input,.alchemy-search input { min-height:44px; border:0; padding:10px 0; color:#edf4ff; font:500 15px 'Inter',sans-serif; }
.research-input-wrap input:focus,.alchemy-search input:focus { outline:0; }
.research-results { display:grid; gap:8px; margin-top:8px; }
.research-result { display:grid; grid-template-columns:120px minmax(0,1fr) auto; align-items:center; gap:14px; padding:15px 18px; border:1px solid #27384f; border-radius:12px; background:#0f1927; color:#e3eefc; text-decoration:none; transition:border-color .15s,transform .15s,background .15s; }
.research-result:hover { transform:translateY(-1px); border-color:#3979c4; background:#142338; }
.research-result strong { color:#9ec5ff; font:700 14px 'Inter',sans-serif; }
.research-result span { color:#91a1b7; font-size:14px; }
.research-result b { color:#73adff; font-size:13px; }
.research-tip { display:flex; max-width:850px; gap:15px; padding:18px; border:1px solid #233d5e; border-radius:14px; background:#0e1c2d; color:#dceaff; }
.research-tip > span { color:#71a9ff; font-size:22px; }
.research-tip strong { font-size:14px; }.research-tip p { margin:7px 0 0; color:#99abc2; font-size:13px; line-height:1.6; }
.alchemy-toolbar { display:grid; grid-template-columns:minmax(260px,620px) auto; align-items:end; gap:20px; margin:28px 0; }
.alchemy-search { position:relative; }
.alchemy-search label { color:#cbd8e8; }
.alchemy-search input { width:100%; padding:12px 15px; border:1px solid #30445f; border-radius:11px; background:#101b2b; }
.alchemy-search-results { position:absolute; z-index:5; top:100%; left:0; right:0; display:grid; gap:2px; padding:6px; border:1px solid #30445f; border-radius:0 0 12px 12px; background:#111b2a; box-shadow:0 16px 35px #0008; }
.alchemy-search-results:empty { display:none; }
.alchemy-search-result { width:100%; display:grid; grid-template-columns:100px minmax(0,1fr) auto; gap:12px; margin:0; padding:12px; border-radius:8px; background:transparent; text-align:left; }
.alchemy-search-result:hover { background:#1a2a40; color:#edf4ff; }
.alchemy-search-result strong { color:#a6caff; font:700 14px 'Inter',sans-serif; }.alchemy-search-result span { overflow:hidden; color:#9aabc0; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.alchemy-search-result b { color:#71a9ff; font-size:12px; }
.secondary-button { width:auto; margin:0; padding:10px 14px; border:1px solid #30445f; border-radius:9px; background:transparent; color:#a9bad0; font-size:12px; }
.secondary-button:hover { border-color:#548bd0; background:#16263b; color:white; }
.comparison-workspace { min-height:200px; padding:22px; border:1px solid #293a51; border-radius:17px; background:linear-gradient(145deg,#111b2a,#0d1520); }
.comparison-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.comparison-heading .eyebrow { margin-bottom:8px; }.comparison-heading h3 { margin:0; color:#eff6ff; font-size:19px; }
.comparison-empty { min-height:140px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#a6b5ca; text-align:center; }
.comparison-empty span { color:#72aaff; font-size:26px; }.comparison-empty strong { color:#e4edf9; font-size:14px; }.comparison-empty p { margin:0; color:#889bb3; font-size:13px; }
.comparison-table-wrap { max-width:100%; overflow-x:auto; }
.comparison-table { width:100%; min-width:600px; border-collapse:collapse; text-align:left; }
.comparison-table th,.comparison-table td { min-width:150px; padding:13px 14px; border-bottom:1px solid #26364b; color:#d6e2f1; font:500 13px 'Inter',sans-serif; }
.comparison-table thead th:first-child,.comparison-table tbody th { min-width:170px; color:#8fa2ba; font-size:12px; font-weight:600; }
.comparison-table thead th:not(:first-child) { background:#111d2d; }
.comparison-asset-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.comparison-asset-head a { color:#a9ccff; font:700 14px 'Inter',sans-serif; text-decoration:none; }
.comparison-asset-head button { width:24px; height:24px; margin:0; padding:0; justify-content:center; border:1px solid #354a64; border-radius:50%; background:transparent; color:#9db0c9; font-size:17px; }
.comparison-asset-head button:hover { background:#522c3c; color:#ffbeca; }
.alchemy-footnote { margin-top:14px; color:#72839a; font-size:12px; }
@media(max-width:760px) { .asset-detail-heading { flex-direction:column; gap:0; }.asset-header-action { width:100%; padding:0; }.asset-header-action .primary-action { width:100%; justify-content:center; }.alchemy-toolbar { grid-template-columns:1fr; gap:4px; }.interactive-chart { padding:14px 10px; }.interactive-chart-heading { align-items:flex-start; flex-direction:column; }.chart-periods { width:100%; justify-content:space-between; }.chart-periods button { flex:1; padding-inline:4px; }.interactive-chart-meta { align-items:flex-start; flex-direction:column; gap:4px; }.interactive-chart-meta strong { text-align:left; }.research-result { grid-template-columns:84px minmax(0,1fr); }.research-result b { grid-column:2; }.comparison-workspace { padding:16px 12px; }.comparison-heading { align-items:flex-start; }.comparison-heading h3 { font-size:16px; } }

/* Fund metrics: semantic icons and a consistent reading order within each card. */
.metric-symbols { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.quote-cards .quote-card { min-width:0; min-height:146px; padding:20px; gap:18px; border-radius:16px; background:linear-gradient(145deg,#121e2e,#0e1623); transition:border-color .18s ease,background .18s ease; }
.quote-cards .quote-card:hover { border-color:#3c5677; background:linear-gradient(145deg,#162438,#101b2a); }
.quote-card .metric-label { display:flex; align-items:center; gap:10px; min-height:34px; color:#a9bbd2; font-size:13px; font-weight:600; line-height:1.5; }
.metric-icon { display:block; flex:0 0 34px; width:34px; height:34px; padding:7px; border:1px solid rgba(96,165,250,.18); border-radius:11px; color:#7db6ff; background:rgba(59,130,246,.10); fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.metric-icon-dividend,.metric-icon-yield { color:#6ee7c0; border-color:rgba(110,231,192,.18); background:rgba(52,211,153,.08); }
.metric-icon-shield { color:#b1a3f4; border-color:rgba(177,163,244,.18); background:rgba(167,139,250,.08); }
.metric-icon-alert { color:#f6c77b; border-color:rgba(246,199,123,.18); background:rgba(251,191,36,.08); }
.quote-cards .quote-card strong { color:#edf4ff; font-size:clamp(17px,1.65vw,23px); line-height:1.3; letter-spacing:-.5px; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.quote-cards .quote-card strong.negative-value { color:#fb8b9d; }
.quote-cards .quote-card strong.positive-value { color:#6ee7b7; }
.fund-facts-grid .quote-card,.portfolio-facts-grid .quote-card { min-height:126px; padding:16px; gap:14px; }
.fund-facts-grid .quote-card strong,.portfolio-facts-grid .quote-card strong { font-size:clamp(16px,1.4vw,20px); }
@media(max-width:600px) {
  .quote-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .quote-cards .quote-card { padding:14px; min-height:138px; gap:14px; }
  .quote-card .metric-label { align-items:flex-start; flex-direction:column; gap:9px; font-size:12px; }
  .quote-cards .quote-card strong { font-size:17px; }
  .metric-icon { flex-basis:32px; width:32px; height:32px; padding:6px; border-radius:10px; }
}
@media(max-width:340px) { .quote-cards { grid-template-columns:1fr; } }

/* Asset detail: one identity, concise key metrics, and separate portfolio metadata. */
.workspace-layout .wallet-header.asset-page-header { display:flex; align-items:flex-start; gap:24px; padding-top:28px; padding-bottom:28px; }
.asset-heading-identity { min-width:0; flex:1; }
.asset-back-link { display:inline-block; margin-bottom:18px; color:#8fa7c8; text-decoration:none; font-size:13px; }
.asset-back-link:hover { color:#cbe1ff; }
.asset-title-line { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.workspace-layout .asset-page-header h1 { font-size:40px; letter-spacing:-1.5px; line-height:1.1; }
.fund-tag { display:inline-flex; padding:6px 10px; border:1px solid #29486c; border-radius:8px; color:#a8cafa; background:#11223a; font-size:12px; line-height:1.5; }
.asset-fund-name { max-width:70ch; margin:10px 0 0; color:#aabbd0; font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.asset-page-header .asset-header-action { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding-top:14px; }
.asset-page-header .asset-header-action .secondary-button { text-decoration:none; }
.asset-section-nav { position:sticky; top:0; z-index:5; display:flex; gap:5px; margin:0 0 28px; padding:10px 0; overflow-x:auto; scrollbar-width:thin; background:rgba(9,13,21,.96); border-bottom:1px solid #233147; backdrop-filter:blur(14px); }
.asset-section-nav a { flex:0 0 auto; padding:9px 12px; border-radius:8px; color:#93a8c3; text-decoration:none; font-size:13px; font-weight:600; }
.asset-section-nav a:hover,.asset-section-nav a:focus { color:#cfe4ff; background:#14243a; }
.asset-section,.asset-overview { scroll-margin-top:70px; }
.asset-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; }
.asset-section-heading .eyebrow { margin:0 0 9px; font-size:12px; }
.asset-section-heading h2,.asset-section-heading h3 { margin:0; color:#edf4ff; font-size:23px; font-weight:700; letter-spacing:-.6px; line-height:1.25; }
.asset-data-caption { color:#8195af; font-size:12px; line-height:1.6; text-align:right; }
.asset-key-metrics { grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); gap:14px; }
.quote-cards.asset-key-metrics .quote-card { justify-content:flex-start; min-height:182px; padding:21px; gap:14px; }
.asset-key-metrics .quote-card .metric-label { font-size:13px; line-height:1.5; }
.quote-cards.asset-key-metrics .quote-card strong { margin-top:2px; font-size:clamp(25px,2.5vw,32px); letter-spacing:-1px; overflow-wrap:normal; white-space:nowrap; }
.quote-card .metric-description { display:block; color:#8195af; font-family:'Inter',sans-serif; font-size:12px; line-height:1.5; font-weight:400; }
.quote-card .metric-change { margin-top:0; font-size:13px; font-weight:600; }
.asset-context-line { display:flex; flex-wrap:wrap; gap:14px 28px; margin:18px 0 0; color:#8195af; font-size:12px; line-height:1.7; }
.asset-context-line b { margin-left:8px; color:#cbdcf1; font-family:'Inter',sans-serif; font-weight:500; }
.asset-context-line .negative-value,.negative-value { color:#fb8b9d; }.asset-context-line .positive-value,.positive-value { color:#6ee7b7; }
.fii-detail > .asset-section { margin:38px 0 0; padding:24px; border:1px solid #25364c; border-radius:18px; background:linear-gradient(145deg,#101a28,#0c131f); }
.asset-section > .section-lede { max-width:90ch; margin-top:-7px; margin-bottom:22px; font-size:13px; line-height:1.8; }
.asset-fund-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:22px; }
.asset-fund-charts > :last-child { grid-column:1/-1; }
.asset-classification-strip { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:16px; padding:18px; margin-bottom:20px; border:1px solid #2b3b55; border-radius:12px; background:#0d1725; }
.asset-classification-strip div { display:grid; align-content:start; gap:8px; min-width:0; }
.asset-classification-strip span { color:#8298b5; font-size:12px; }
.asset-classification-strip strong { color:#c5d8f1; font-size:14px; line-height:1.6; overflow-wrap:break-word; font-weight:600; }
.position-metrics { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.position-metrics .quote-card strong { font-size:20px; }
.personal-position .asset-management-heading { margin-top:26px; }
.document-source-link { color:#9bc6ff; font-size:13px; text-decoration:none; line-height:1.6; }
.document-controls { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:20px 0; }
.document-controls label { width:min(100%,270px); margin:0; color:#9baec7; font-size:13px; }
.document-controls select,.target-form > select { display:block; width:100%; min-height:42px; margin-top:8px; padding:10px 12px; border:1px solid #31455f; border-radius:10px; color:#d4e4f8; background:#0c1420; font:14px 'Inter',sans-serif; }
#document-status { color:#8296b0; font-size:12px; line-height:1.6; }
.document-list { display:grid; gap:8px; margin-bottom:18px; }
.document-row { display:flex; align-items:center; gap:15px; padding:16px; border:1px solid #25384f; border-radius:12px; background:#0c1522; color:#e0ebfa; text-decoration:none; transition:background .16s,border-color .16s; }
.document-row:hover { background:#122139; border-color:#42628c; }
.document-row > div { flex:1; min-width:0; display:grid; gap:5px; }
.document-row strong { color:#d4e5fc; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.document-row small { color:#7fb0ee; font-size:12px; }
.document-row time { color:#8094af; font-size:12px; }
.document-open { color:#a5caff; font-size:13px; white-space:nowrap; }
.document-empty { padding:24px; border:1px dashed #2b415e; border-radius:12px; color:#93a9c6; font-size:14px; line-height:1.8; }
#document-load-more { margin:0; }

/* A shared chart UI with calendar-based positioning and values readable at any width. */
.analysis-chart { min-width:0; padding:20px; border:1px solid #26394f; border-radius:14px; background:#0b1420; }
.market-history-panel > .analysis-chart + .analysis-chart { margin-top:18px; }
.analysis-chart-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-bottom:14px; }
.analysis-chart-heading h4 { margin:0; color:#e1edfd; font-size:14px; line-height:1.5; }
.analysis-chart-heading p { max-width:65ch; margin:4px 0 0; color:#8195af; font-size:12px; line-height:1.6; }
.analysis-chart-periods { display:flex; flex-wrap:wrap; gap:3px; padding:3px; border:1px solid #24374f; border-radius:10px; background:#0a101b; }
.analysis-chart-periods button { width:auto; min-width:30px; margin:0; padding:6px 8px; justify-content:center; border-radius:7px; background:transparent; color:#8c9fba; font:600 12px 'Inter',sans-serif; }
.analysis-chart-periods button:hover { background:#172a44; color:#d6e8ff; transform:none; box-shadow:none; }
.analysis-chart-periods button.active { color:#dcecff; background:#1b3b66; box-shadow:0 1px 3px #0004; }
.analysis-chart-custom { display:flex; flex-wrap:wrap; gap:10px; padding:12px; border:1px solid #263a55; border-radius:10px; margin-bottom:14px; }
.analysis-chart-custom label { display:flex; align-items:center; gap:8px; margin:0; color:#96aac5; font-size:12px; }
.analysis-chart-custom input { width:150px; padding:8px 10px; border:1px solid #31465f; border-radius:7px; color:#d6e6fa; background:#101c2b; font-size:13px; }
.analysis-chart-summary { min-height:15px; margin:0 0 12px; color:#7f94af; font-size:12px; line-height:1.6; }
.analysis-chart-values { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.analysis-chart-value { flex:1 1 130px; display:grid; grid-template-columns:minmax(0,1fr); gap:5px; padding:10px 12px; border:1px solid #21324a; border-left:2px solid var(--series-color); border-radius:8px; background:#0e1929; }
.analysis-chart-value > span { color:var(--series-color); font-size:12px; }
.analysis-chart-value > strong { color:#dceafa; font:500 14px 'Inter',sans-serif; overflow-wrap:anywhere; }
.analysis-chart-value > small { color:#7088a9; font-size:12px; }
.analysis-chart-canvas { position:relative; width:100%; min-width:0; }
.analysis-chart-canvas > svg { display:block; width:100%; overflow:visible; touch-action:pan-y; }
.analysis-chart-grid { stroke:#203149; stroke-width:1; stroke-dasharray:3 4; }
.analysis-chart-axis { fill:#7890b0; font:12px 'Inter',sans-serif; }
.analysis-chart-line { fill:none; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
.analysis-chart-crosshair { stroke:#7893b9; stroke-width:1; stroke-dasharray:4 4; pointer-events:none; }
.analysis-chart-tooltip { position:absolute; top:10px; z-index:3; max-width:min(260px,90%); padding:10px 12px; border:1px solid #36547a; border-radius:8px; background:#0a1427f5; color:#d0e4ff; box-shadow:0 10px 30px #0005; font:12px/1.8 'Inter',sans-serif; white-space:pre-line; pointer-events:none; }
.analysis-chart-empty { display:grid; place-items:center; min-height:220px; padding:20px; margin:0; border:1px dashed #2b3e5b; border-radius:9px; color:#829ab9; font-size:14px; line-height:1.8; text-align:center; }
.analysis-chart-footnote { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; margin-top:8px; color:#617b9c; font-size:12px; line-height:1.6; }

/* Alchemy: make side-by-side composition and series selection explicit. */
.alchemy-howto { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:24px 0; }
.alchemy-howto > div { display:flex; align-items:flex-start; gap:11px; padding:16px; border:1px solid #25364d; border-radius:12px; background:#0f1928; }
.alchemy-howto b { display:grid; place-items:center; flex:0 0 25px; height:25px; border-radius:8px; background:#19365e; color:#99c3ff; font-size:13px; }
.alchemy-howto span { display:grid; gap:6px; color:#7f97b4; font-size:12px; line-height:1.7; }
.alchemy-howto strong { color:#c1d4ef; font-size:13px; }
.alchemy-selected-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:16px 0 24px; }
.alchemy-selected-assets { display:flex; flex-wrap:wrap; gap:9px; }
.alchemy-asset-chip { display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid #2b405b; border-left:3px solid var(--series-color); border-radius:10px; background:#0f1a2a; }
.alchemy-asset-chip a { color:var(--series-color); font:500 14px 'Inter',sans-serif; text-decoration:none; }
.alchemy-asset-chip small { color:#849cb9; font:12px 'Inter',sans-serif; }
.alchemy-asset-chip button { font-size:17px; }
.alchemy-selected-row > button { flex:none; margin:0; }
.alchemy-builder { align-items:flex-start; flex-direction:column; }
.alchemy-builder-actions { width:100%; justify-content:flex-start; align-items:center; }
.alchemy-builder-actions .primary-action { width:auto; min-height:38px; margin:0; padding:9px 14px; font-size:13px; }
.alchemy-blocks { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.alchemy-chart-block[data-width="full"],.alchemy-note-block,.alchemy-blocks-empty { grid-column:1/-1; }
.alchemy-block-header { margin-bottom:16px; }
.alchemy-block-actions { display:flex; align-items:center; gap:6px; }
.alchemy-block-actions button,.alchemy-asset-chip button { width:auto; margin:0; padding:4px 7px; justify-content:center; transform:none; box-shadow:none; }
.alchemy-block-actions button:disabled { opacity:.3; cursor:default; }
.alchemy-chart-setup { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin-bottom:14px; }
.alchemy-control { min-width:0; margin:0; color:#8ca1bd; font-size:12px; line-height:1.5; }
.alchemy-control select { display:block; width:100%; min-width:0; min-height:38px; margin-top:6px; padding:9px; border:1px solid #30455e; border-radius:9px; background:#0b1421; color:#c6daf4; font-size:12px; }
.alchemy-series-picker { display:flex; flex-wrap:wrap; gap:8px; min-width:0; margin:0 0 16px; padding:10px 0 0; border:0; }
.alchemy-series-picker legend { padding:0; color:#6d86a6; font-size:12px; }
.alchemy-series-picker label { display:flex; align-items:center; gap:6px; margin:0; padding:5px 8px; border:1px solid #29405c; border-radius:7px; color:var(--series-color); font:12px 'Inter',sans-serif; }
.alchemy-series-picker input { width:12px; height:12px; margin:0; padding:0; accent-color:var(--series-color); }
.alchemy-chart-block .analysis-chart { padding:15px 12px; background:#0a1320; }
.alchemy-blocks-empty { padding:32px; border:1px dashed #314c6c; border-radius:14px; background:#0c1625; }
.alchemy-blocks-empty h3 { margin:0 0 10px; color:#c5dbf7; font-size:17px; }
.alchemy-blocks-empty p { max-width:80ch; margin:0; color:#849bb8; font-size:14px; line-height:1.8; }
.alchemy-format-toolbar .text-button { width:auto; margin:0; padding:8px 10px; color:#a4bddb; font-size:12px; }

/* Editable category goals and inline save feedback. */
.target-form-row { grid-template-columns:minmax(70px,1fr) auto; margin-top:8px; }
.target-form > label { margin:16px 0 7px; }
.target-form-row input { min-width:0; }
.target-form-row button { grid-column:auto; margin:0; white-space:nowrap; }
.target-feedback { min-height:18px; color:#a6cfff; font-size:13px; line-height:1.6; }
.saved-targets-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #263a53; padding-top:18px; margin-top:22px; }
.saved-targets-heading h4 { margin:0; color:#c1d6f1; font-size:14px; }.saved-targets-heading span { color:#6e88a9; font-size:12px; }
.saved-targets { list-style:none; margin:12px 0 0; padding:0; }
.saved-targets li { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:13px 0; border-top:1px solid #213149; }
.saved-targets li > div:first-child { display:grid; gap:6px; min-width:0; }
.saved-targets strong { color:#aac2e0; font-size:13px; font-weight:600; overflow-wrap:anywhere; }
.saved-targets li span { color:#7fb5ff; font:14px 'Inter',sans-serif; }
.target-row-actions { display:flex; flex:none; gap:8px; }
.target-row-actions button { width:auto; margin:0; padding:6px 8px; font-size:12px; color:#a1c8fc; border:1px solid #304560; border-radius:7px; background:#101d30; }
.target-row-actions .target-delete { color:#b88e9e; border-color:#443347; background:transparent; }
.saved-targets .saved-targets-empty { display:block; color:#718baa; font-size:13px; line-height:1.7; }
@media(max-width:1100px) { .asset-key-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.asset-fund-charts { grid-template-columns:1fr; } }
@media(max-width:900px) { .alchemy-blocks { grid-template-columns:1fr; }.alchemy-howto { grid-template-columns:1fr; }.alchemy-chart-block[data-width="full"],.alchemy-note-block { grid-column:auto; } }
@media(max-width:800px) { .workspace-layout .wallet-header.asset-page-header { flex-wrap:wrap; gap:14px; padding-left:70px; }.asset-page-header .asset-header-action { width:100%; padding:0; }.asset-page-header .asset-header-action .primary-action { width:auto; }.asset-section-nav { margin-top:-10px; }.fii-detail > .asset-section { padding:18px; } }
@media(max-width:600px) {
  .workspace-layout .asset-page-header h1 { font-size:34px; }.asset-fund-name { font-size:13px; }.fund-tag { font-size:12px; }
  .asset-section-heading { flex-wrap:wrap; gap:8px; }.asset-section-heading h2,.asset-section-heading h3 { font-size:20px; }.asset-data-caption { text-align:left; }
  .quote-cards.asset-key-metrics .quote-card { padding:15px; min-height:175px; gap:10px; }.asset-key-metrics .quote-card .metric-label { flex-direction:column; font-size:12px; }.quote-cards.asset-key-metrics .quote-card strong { font-size:24px; }
  .asset-context-line { gap:8px; flex-direction:column; }.asset-classification-strip { grid-template-columns:1fr; }.fund-facts-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fii-detail > .asset-section { padding:16px 12px; }.analysis-chart { padding:14px 10px; }.analysis-chart-heading { flex-direction:column; }.analysis-chart-periods { width:100%; }.analysis-chart-periods button { flex:1; padding-inline:5px; }.analysis-chart-value { padding:8px; }.analysis-chart-value > strong { font-size:14px; }
  .document-controls { align-items:flex-start; flex-direction:column; }.document-controls label { width:100%; }.document-row { padding:12px; gap:10px; }.document-open { font-size:12px; }.document-row .metric-icon { width:28px; height:28px; flex-basis:28px; padding:5px; }
  .alchemy-chart-block { padding:14px 10px; }.alchemy-builder-actions { display:flex; }.alchemy-builder-actions .primary-action { width:100%; justify-content:center; }.alchemy-chart-setup { grid-template-columns:1fr; }.alchemy-howto > div { padding:13px; }
  .target-form-row { grid-template-columns:minmax(70px,1fr) auto; }.target-form-row button { width:auto; grid-column:auto; padding-inline:13px; }
}
/* Portfolio evolution: account notebooks, complete targets and transaction history. */
[hidden]{display:none!important}
.evolution-card label,.notebook-manager label,.alchemy-chart-title,.target-slider-row label{margin:0}
.evolution-card .text-button,.notebook-manager .text-button,.target-total-feedback .text-button{width:auto;margin:0;padding:9px 10px;font-size:.78rem;color:#a9caff;background:transparent;justify-content:center}
.notebook-sync input{width:18px;height:18px;padding:0;flex-shrink:0}.alchemy-asset-chip{flex-wrap:wrap;max-width:100%}.alchemy-block-actions{flex-wrap:wrap;justify-content:flex-end}
.alchemy-chart-block .analysis-chart-heading{flex-direction:column;align-items:stretch;gap:12px}.alchemy-chart-block .analysis-chart-heading>div:first-child{min-height:52px}.alchemy-chart-block .analysis-chart-periods{align-self:flex-start}.alchemy-chart-block .analysis-chart-summary{min-height:32px}
.evolution-page,.notebook-manager{min-width:0}
.evolution-card,.gordon-scenario-panel{background:#0d1624;border:1px solid #22334c;border-radius:18px;padding:24px;margin:24px 0;color:#dbe8fb;min-width:0}
.evolution-card h2,.evolution-card h3,.evolution-card h4,.gordon-scenario-panel h3{color:#eff5ff;margin:0 0 12px}
.evolution-card p,.gordon-scenario-panel p{color:#a5b5cd;line-height:1.6}
.evolution-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.evolution-grid>.evolution-card{margin:0}
.evolution-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}
.evolution-form label,.inline-form label,.notebook-manager label,.file-label,.alchemy-chart-title{display:flex;flex-direction:column;gap:8px;font-size:.85rem;color:#bed0e9;min-width:0}
.evolution-form input,.evolution-form select,.inline-form input,.notebook-manager input:not([type=checkbox]),.notebook-manager select,.alchemy-chart-title input,.target-number{width:100%;min-width:0;box-sizing:border-box;border:1px solid #304562;border-radius:10px;background:#080f1b;color:#edf5ff;padding:11px 12px;font:inherit;color-scheme:dark}
.evolution-form input:focus,.notebook-manager input:focus,.notebook-manager select:focus,.alchemy-chart-title input:focus,.target-number:focus{outline:2px solid #579cf8;outline-offset:2px}
.evolution-form input[readonly]{background:#111c2a;color:#aabbd2}
.evolution-form .wide{grid-column:1/-1}
.form-feedback{min-height:1.4em;color:#b5d5ff;line-height:1.6;overflow-wrap:anywhere}
.table-scroll{max-width:100%;overflow-x:auto;margin:18px 0;overscroll-behavior-x:contain}
.evolution-table{border-collapse:collapse;width:100%;text-align:left;font-size:.85rem;font-variant-numeric:tabular-nums}
.evolution-table th,.evolution-table td{padding:13px 14px;border-bottom:1px solid #26374d;white-space:nowrap}
.evolution-table th{font-size:.74rem;color:#a6bddb;background:#101d2f}
.evolution-table td{color:#dfebfc}.evolution-table tbody tr:hover{background:#122139}
.inline-actions,.inline-form,.notebook-actions{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
.inline-actions button{white-space:nowrap}.file-label{margin:18px 0}.file-label input{padding:12px;background:#101d2e;border:1px dashed #456184;border-radius:10px}
.planning-details{margin-top:24px}.planning-details summary,.data-provenance summary,.total-return-panel summary,.evolution-card>summary{cursor:pointer;color:#a9ccff;line-height:1.5;font-weight:600;padding:8px 0}
.planning-details[open] summary{margin-bottom:16px}
.concentration-limits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.concentration-limits fieldset{min-width:0;margin:0;padding:14px;border:1px solid #2b405c;border-radius:12px;display:flex;flex-direction:column;gap:14px}
.concentration-limits legend{padding:0 8px;color:#96c1ff;font-size:.85rem}
.target-draft-form{display:flex;flex-direction:column;gap:22px}.target-slider-row{display:grid;grid-template-columns:minmax(100px,1.2fr) minmax(80px,1fr) 94px 48px;gap:12px;align-items:center;border-bottom:1px solid #22334b;padding:13px 0}
.target-slider-row>label:first-child{font-size:.81rem;line-height:1.35;color:#c8d8ee}
.target-slider-row input[type=range]{width:100%;accent-color:#519dff;cursor:pointer;min-width:0;height:24px;margin:0}
.target-number-label{display:flex;align-items:center;gap:5px;color:#9fb7d7}.target-number{padding:8px;min-width:0;width:75px;font-size:.8rem}
.target-slider-row .text-button{padding:6px 0;font-size:.72rem;min-height:32px}.target-total-feedback{border:1px solid #2c4c74;border-radius:12px;background:#102039;padding:18px;position:sticky;bottom:12px;z-index:2}
.target-total-feedback strong{display:block;color:#adcfff;font-size:.95rem;margin-bottom:12px}.target-total-feedback strong[data-state=ok]{color:#6fe2b5}
.target-total-feedback progress{width:100%;height:9px;accent-color:#549fff}.target-total-feedback button{margin:6px 6px 0 0}
.target-draft-form button:disabled{opacity:.45;cursor:not-allowed}.target-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr)}
.data-provenance{background:#101a2a;border:1px solid #263e5b;border-radius:12px;padding:10px 16px;margin:20px 0}.data-provenance dl{display:grid;grid-template-columns:minmax(140px,1fr) 3fr;gap:14px;font-size:.8rem;line-height:1.6}.data-provenance dt{color:#d2e3fa}.data-provenance dd{margin:0;color:#9fb2cc}.data-provenance a{color:#88bcff}
.total-return-panel{margin:20px 0}.gordon-scenarios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.scenario-card{padding:18px;background:#101e31;border:1px solid #304867;border-radius:13px}.scenario-card strong{font-size:1.35rem;color:#b2d3ff;display:block;margin:12px 0}.scenario-card small{display:block;font-size:.76rem;line-height:1.6;color:#9eb4d1}
.notebook-manager{margin:24px 0 30px}.notebook-title-row{display:flex;align-items:center;gap:20px;justify-content:space-between;margin-bottom:16px}.notebook-title-row>label{flex:1;max-width:600px}.notebook-title-row input{font-size:1.1rem!important;font-weight:600}.notebook-title-row>span{font-size:.8rem;color:#96b8e5;max-width:340px;line-height:1.6}.notebook-actions label{flex:1;min-width:180px}.notebook-actions button{min-height:42px}.notebook-sync{flex-direction:row!important;align-items:center;margin-top:18px}.notebook-sync input{accent-color:#68aaff}.notebook-versions{margin:16px 0;max-height:300px;overflow:auto}.notebook-version{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 12px;border-bottom:1px solid #2c405b;font-size:.8rem}.alchemy-chart-title{margin:16px 0}.alchemy-chart-title input{font-size:.9rem}.alchemy-block-header h4{overflow-wrap:anywhere}.alchemy-asset-chip small{line-height:1.4}.alchemy-blocks>*{min-width:0}
@media(max-width:1100px){.target-layout,.evolution-grid{grid-template-columns:1fr}.concentration-limits{grid-template-columns:1fr 1fr}.notebook-title-row{align-items:start;flex-direction:column}.notebook-title-row>label{width:100%;max-width:none}}
@media(max-width:640px){.evolution-card,.gordon-scenario-panel{padding:18px;border-radius:14px}.evolution-form,.concentration-limits,.gordon-scenarios{grid-template-columns:1fr}.evolution-form .wide{grid-column:1}.target-slider-row{grid-template-columns:minmax(0,1fr) 96px 44px;gap:9px}.target-slider-row>label:first-child{grid-column:1/-1}.target-slider-row input[type=range]{grid-column:1}.target-total-feedback{position:static}.data-provenance dl{grid-template-columns:1fr;gap:7px}.data-provenance dd{margin-bottom:12px}.notebook-actions>button{flex:1 1 140px}.notebook-actions>label{flex-basis:100%}.notebook-version{align-items:start;flex-direction:column}.inline-form>*{width:100%}}

.goal-tolerance{margin-top:24px;padding-top:16px;border-top:1px solid #2b405d}.goal-tolerance summary{color:#a9caff;font-size:.8rem;cursor:pointer}.goal-tolerance form{margin-top:16px}.goal-tolerance label{margin:0;color:#bacde7;font-size:.78rem}

/* Compact goal editor and stable accents for each fund metric. */
.target-section > .section-heading { margin-bottom:20px; }
.target-section > .section-heading .eyebrow { margin-bottom:12px; }
.target-section > .section-heading h2 { font-size:28px; }
.target-section .target-card { padding:18px; }
.target-section .target-card h3 { margin-bottom:12px; font-size:14px; }
.target-draft-form { gap:12px; }
.target-slider-row { grid-template-columns:minmax(108px,1.1fr) minmax(80px,1fr) 76px 34px; gap:10px; padding:6px 0; min-height:42px; }
.target-slider-row > label:first-child { font-size:13px; line-height:1.4; }
.target-slider-row input[type=range] { height:20px; min-height:20px; padding:0; margin:0; }
.target-slider-row .target-number-label { margin:0; gap:4px; font-size:13px; }
.target-slider-row .target-number { width:58px; height:30px; min-height:30px; padding:5px 6px; font-size:13px; }
.target-slider-row .text-button { width:auto; min-height:28px; margin:0; padding:4px 0; justify-content:center; align-items:center; font-size:12px; line-height:1.2; }
.target-total-feedback { padding:12px; border-radius:10px; bottom:10px; }
.target-total-feedback strong { margin-bottom:7px; font-size:14px; }
.target-total-feedback progress { height:5px; display:block; }
.target-total-feedback .hint { margin-top:7px; font-size:12px; }
.target-total-feedback #target-save { min-height:32px; padding:8px 12px; font-size:13px; }
.target-total-feedback #target-reset { font-size:12px; padding:6px 8px; }
.target-total-feedback .target-feedback { margin:6px 0 0; font-size:12px; }
.target-total-feedback .target-feedback:empty { display:none; }
.target-section .category-allocation { margin-bottom:12px; }
.goal-tolerance { margin-top:16px; padding-top:12px; }
.asset-page-content .analysis-chart { border-top:2px solid var(--chart-accent,#7db6ff); }
.asset-page-content .analysis-chart-heading h4 { display:flex; align-items:center; gap:8px; }
.asset-page-content .analysis-chart-heading h4::before { content:''; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:var(--chart-accent,#7db6ff); }
@media(max-width:640px) {
  .target-section > .section-heading h2 { font-size:25px; }
  .target-slider-row { grid-template-columns:minmax(100px,1fr) minmax(60px,1fr) 70px 30px; gap:7px; min-height:44px; }
  .target-slider-row > label:first-child { grid-column:auto; }
  .target-slider-row input[type=range] { grid-column:auto; }
  .target-slider-row .target-number { width:53px; }
  .target-total-feedback { position:static; }
}
@media(max-width:420px) {
  .target-slider-row { grid-template-columns:minmax(0,1fr) 70px 30px; gap:6px 9px; padding:7px 0; }
  .target-slider-row > label:first-child { grid-column:1/-1; }
  .target-slider-row input[type=range] { grid-column:1; }
}

/* A readable type scale for the investment workspace; numbers align without monospace text. */
body { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased; font-optical-sizing:auto; }
button,input,select,textarea { font-family:inherit; }
input,output,table,.quote-card strong,.research-fund-metrics b,.analysis-chart-value,.target-number { font-variant-numeric:tabular-nums; }
.workspace-layout h1,.workspace-layout h2,.workspace-layout h3,.workspace-layout h4 { line-height:1.25; letter-spacing:-.025em; }
.section-lede,.asset-section-description,.analysis-chart-description,.chart-help,.alchemy-howto span { font-size:14px; line-height:1.7; }
.eyebrow,.sidebar-section-label { font-size:12px; letter-spacing:.09em; }
.sidebar-link { font-size:14px; }.sidebar-brand { line-height:1.4; }
.quote-card .metric-label,.asset-key-metrics .quote-card .metric-label { font-size:14px; line-height:1.45; }
.quote-card .metric-description { font-size:13px; line-height:1.5; }
.asset-key-metrics .quote-card strong { font-size:clamp(25px,2.5vw,34px); letter-spacing:-.035em; }
.analysis-chart-periods button { font-size:13px; min-height:34px; }
.analysis-chart-heading p,.analysis-chart-meta,.analysis-chart-footnote { font-size:12px; color:#a3b5cd; }
.analysis-chart-axis { font-size:11px; fill:#a0b3cf; }
.analysis-chart-value > strong { font-size:17px; }.analysis-chart-value > span,.analysis-chart-value > small { font-size:12px; }
.wallet-table { font-size:14px; }.wallet-table thead th { font-size:12px; text-transform:none; letter-spacing:0; }
.target-slider-row > label:first-child { font-size:14px; }.target-slider-row { grid-template-columns:minmax(155px,1.3fr) minmax(85px,1fr) 80px 38px; }
.target-slider-row .target-number { width:62px; }.target-total-feedback .hint,.target-feedback { font-size:13px; }
.alchemy-control,.alchemy-control select,.alchemy-format-toolbar .text-button { font-size:13px; }
.alchemy-series-picker legend,.alchemy-series-picker label,.alchemy-asset-chip small { font-size:12px; }
.research-filter-main label,.research-range-filters label { margin:0; font-size:13px; font-weight:500; }
.research-filter-main input,.research-filter-main select,.research-range-filters input { font-size:14px; line-height:1.4; }
.research-range-filters { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding-top:22px; }
.research-range-filters fieldset { min-width:0; margin:0; padding:0; border:0; }
.research-range-filters legend { margin-bottom:9px; padding:0; color:#d6e5f7; font-size:13px; font-weight:600; }
.research-range-pair { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:8px; align-items:end; }
.research-range-pair > span { padding-bottom:11px; color:#8da4c1; font-size:12px; }
.research-range-pair input { min-width:0; padding:10px; }
.research-filter-hint,.research-data-note,.research-filter-footer .hint { color:#a2b5cd; font-size:13px; line-height:1.65; }
.research-filter-error { color:#ffb7b7; font-size:14px; padding:10px 12px; border:1px solid #82454d; border-radius:8px; }
.research-filter-error[hidden] { display:none; }
.research-active-filters { display:flex; gap:8px; flex-wrap:wrap; }
.research-active-filters:empty { display:none; }
.research-active-filters span { padding:5px 10px; border:1px solid #345b88; border-radius:8px; color:#b2d3ff; font-size:12px; background:#12243b; }
.research-fund-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 12px; }
.research-fund-metrics small { font-size:12px; letter-spacing:0; text-transform:none; color:#9cb1ce; }
.research-fund-metrics b { font-size:15px; font-weight:600; }.research-fund-metrics .metric-unavailable { font-size:12px; font-weight:400; color:#8ba0bc; }
.research-fund-card > p { font-size:14px; line-height:1.6; }.research-fund-title > span { font-size:12px; }
.research-card-footer,.research-card-footer b,.research-pagination { font-size:13px; }
.research-data-note a { color:#91c1ff; text-underline-offset:3px; }
.research-loading,.research-empty { font-size:14px; }.research-loading > span { padding:0; }
@media(max-width:1100px) { .research-filter-main { grid-template-columns:1fr 1fr; }.research-range-filters { gap:12px; }.research-fund-title { align-items:flex-start; }.target-slider-row { grid-template-columns:minmax(130px,1.3fr) minmax(60px,1fr) 75px 38px; } }
@media(max-width:760px) { .research-range-filters { grid-template-columns:1fr; }.research-catalog { grid-template-columns:1fr; }.target-slider-row { grid-template-columns:minmax(130px,1.3fr) minmax(60px,1fr) 75px 38px; }.quote-cards.asset-key-metrics .quote-card { min-height:180px; }.analysis-chart-heading p { font-size:13px; } }
@media(max-width:480px) { .research-filter-main { grid-template-columns:1fr; }.research-query { grid-column:auto; }.research-fund-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.research-card-footer { align-items:flex-start; }.target-slider-row { grid-template-columns:minmax(0,1fr) 78px 38px; }.target-slider-row > label:first-child { grid-column:1/-1; }.target-slider-row input[type=range] { grid-column:1; }.target-total-feedback { position:static; } }

/* Consistent chart exploration on fund pages and analysis documents. */
.analysis-chart{min-width:0}.analysis-chart-line,.analysis-chart-bar{animation:chart-reveal .45s ease both;transition:opacity .16s,stroke-width .16s;vector-effect:non-scaling-stroke}.chart-series-muted{opacity:.18!important}.analysis-chart-line.chart-series-highlighted{stroke-width:3.5}.analysis-chart-bar.chart-series-highlighted{opacity:1}.analysis-chart-value[role=button]{cursor:pointer;border-radius:7px;outline-offset:3px;transition:background .16s}.analysis-chart-value[role=button]:is(:hover,:focus-visible){background:#1c3352;outline:1px solid #6088b8}.analysis-chart-tooltip{box-sizing:border-box;max-width:min(280px,calc(100% - 8px));font-size:13px;overflow-wrap:anywhere;white-space:pre-line;animation:chart-reveal .1s ease}.analysis-chart-crosshair{pointer-events:none}.analysis-chart-canvas svg [tabindex]:focus-visible{outline:2px solid #6cafff;outline-offset:3px}
html[data-theme=light] .analysis-chart-value[role=button]:is(:hover,:focus-visible){background:#e7f0ff;outline-color:#9cbbe1}html[data-theme=light] .analysis-chart-tooltip{background:#fffffff5;color:#254970;border-color:#b7cce6;box-shadow:0 8px 25px #2c4c7c22}
@keyframes chart-reveal{from{opacity:0}to{opacity:1}}
@media(max-width:650px){.analysis-chart-heading{gap:12px}.analysis-chart-periods{flex-wrap:wrap;max-width:100%}.analysis-chart-periods button{min-width:34px}.analysis-chart-values{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.analysis-chart-tooltip{font-size:12px;padding:8px 10px}.analysis-chart-custom{flex-wrap:wrap}.analysis-chart-custom input{min-width:0;max-width:100%}}
@media(prefers-reduced-motion:reduce){.analysis-chart-line,.analysis-chart-bar,.analysis-chart-tooltip{animation:none!important;transition:none!important}}

/* Shared outline icons and meaningful fund identities. */
.ui-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.brand-mark .ui-icon{width:27px;height:27px;flex-basis:27px}.fund-avatar{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border:1px solid #35567f;border-radius:14px;background:#14263e;color:#8bbaff}.fund-avatar .ui-icon{width:28px;height:28px}.asset-report-link{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;color:#a6caff;text-decoration:none;font-size:14px;line-height:1.6}.asset-report-link:hover{color:#cce3ff;text-decoration:underline;text-underline-offset:4px}.asset-report-link .ui-icon{width:17px;height:17px;flex-basis:17px}.asset-report-link .report-arrow{width:14px;height:14px;flex-basis:14px}.asset-report-link small{font-size:12px;color:#a5b6ce;margin-left:5px}.icon-heading{display:flex;align-items:center;gap:10px}.icon-heading .ui-icon{color:#8cb9f4}

/* Position hub and portfolio studies */
.positions-hub{margin:24px 0}.positions-hub .evolution-table{min-width:680px}.positions-hub td:first-child a{font-weight:700;color:#7db6ff}.position-editor{width:min(560px,calc(100vw - 32px));box-sizing:border-box;border:1px solid #2a3c55;border-radius:20px;padding:28px;background:#101c2c;color:#e3edfb;box-shadow:0 24px 100px #0008}.position-editor::backdrop{background:#020813aa;backdrop-filter:blur(4px)}.position-editor .evolution-form{margin:0}.position-editor h3{margin:0 0 8px}.position-editor .wide{grid-column:1/-1}.evolution-card>summary{cursor:pointer;font-weight:600;padding:4px 0}.strategy-analytics{margin:28px 0;min-width:0}.strategy-analytics h2{font-size:24px;margin:5px 0 12px}.strategy-analytics .asset-section-heading{gap:20px;flex-wrap:wrap}.strategy-analytics .asset-section-heading label{display:grid;gap:8px;font-size:13px;color:#a3b4ca}.strategy-analytics select,.risk-view-label select{width:auto;min-width:130px}.analytics-empty{padding:32px 20px;border:1px dashed #31455f;border-radius:14px;color:#a3b4ca;line-height:1.7}.analytics-method{margin-top:16px;color:#9eb0c9;font-size:13px;line-height:1.7}.analytics-method summary{cursor:pointer}.analytics-method p{max-width:900px}.correlation-table{width:100%;border-spacing:6px;border-collapse:separate;font-size:13px}.correlation-table th{font-weight:500;text-align:center;min-width:95px;padding:8px;line-height:1.5}.correlation-table th:first-child{text-align:left;min-width:155px}.correlation-table th small{display:block;opacity:.65}.correlation-table td{padding:0}.correlation-cell{width:100%;min-height:50px;padding:12px;border:1px solid #33485e;border-radius:9px;background:#172438;color:#dceaff;font-variant-numeric:tabular-nums;box-shadow:none;transform:none}.correlation-cell[data-sign=negative]{background:color-mix(in srgb,#248f82 calc(var(--correlation-strength)*65%),#112334)}.correlation-cell[data-sign=positive]{background:color-mix(in srgb,#4c68b8 calc(var(--correlation-strength)*65%),#112334)}.correlation-cell:hover,.correlation-cell:focus-visible{outline:2px solid #7db6ff;outline-offset:1px;transform:none;box-shadow:none}.correlation-detail{min-height:24px;line-height:1.7}.risk-overview{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1.3fr);gap:24px;margin:12px 0 20px}.risk-hero{padding:20px 24px;background:#14233a;border-radius:16px}.risk-hero-number{display:block;font-size:44px;line-height:1.25;letter-spacing:-2px;color:#b8a0ff;margin:8px 0}.risk-relative{padding:8px}.risk-relative h4{font-size:18px;margin:0 0 20px}.risk-comparison-row{display:grid;grid-template-columns:65px minmax(80px,1fr) 65px;gap:14px;align-items:center;margin:14px 0;font-size:13px}.risk-comparison-row b{text-align:right}.risk-comparison-track{height:10px;background:#24334a;border-radius:8px;overflow:hidden}.risk-comparison-track i{display:block;height:100%;border-radius:8px;background:#b8a0ff;transition:width .3s ease}.risk-comparison-track i[data-kind=index]{background:#69d5eb}.risk-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.risk-metric{padding:16px!important;min-width:0}.risk-metric strong{font-size:24px!important;margin:8px 0;display:block}.risk-metric small{font-size:12px;line-height:1.6;color:#a1b4cc;display:block}.dividend-stability{margin:10px 0 0;font-size:12px}.dividend-stability-row{display:flex;flex-wrap:wrap;gap:6px 16px;padding:7px 0;border-top:1px solid #33445b44}.dividend-stability-row strong{min-width:65px}.dividend-stability>.hint{display:block;line-height:1.5;font-size:11px;margin-top:5px}
@media(max-width:760px){.risk-overview{grid-template-columns:1fr;gap:10px}.risk-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-analytics .asset-section-heading>a{font-size:13px}.position-editor{padding:20px}.risk-hero-number{font-size:36px}.correlation-table th{min-width:85px}.strategy-analytics h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.risk-comparison-track i,.app-sidebar .sidebar-collapse svg{transition:none}}

.position-fund-identity{display:grid;gap:6px}.position-fund-identity select{width:120px!important;min-height:28px!important;padding:4px 6px!important;font-size:11px!important;background:transparent!important;border-color:transparent!important;margin:0!important;color:inherit}.position-fund-identity select:hover,.position-fund-identity select:focus{border-color:#6c8eb8!important}

#holding-results{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:650px){#holding-results{grid-template-columns:1fr}.risk-overview{gap:8px}.risk-hero{padding:18px}.risk-comparison-row{gap:8px;grid-template-columns:55px minmax(60px,1fr) 55px}}

.portfolio-history-controls{display:flex;align-items:center;flex-wrap:wrap;gap:18px 28px;margin:16px 0}.portfolio-history-controls>label:first-child{display:grid;gap:7px;font-size:13px}.portfolio-history-controls select{max-width:100%;min-width:0;width:320px}.portfolio-dividend-toggle{display:flex;align-items:center;gap:9px;margin:0;font-size:14px;cursor:pointer}.portfolio-dividend-toggle input{width:17px;height:17px;min-height:0;margin:0;accent-color:#367be8}.portfolio-dividend-toggle:has(input:disabled){opacity:.65}#portfolio-history-explanation{max-width:850px;line-height:1.7}@media(max-width:650px){.portfolio-history-controls{align-items:stretch;gap:14px}.portfolio-history-controls>label:first-child{width:100%}.portfolio-history-controls select{width:100%}.portfolio-dividend-toggle{font-size:13px}}

.portfolio-history-controls select{appearance:auto;min-height:42px;padding:10px 12px;border:1px solid var(--wa-border);border-radius:10px;background:var(--wa-inset);color:var(--wa-text);font:500 14px/1.4 'Inter',sans-serif}.portfolio-history-controls select:focus-visible{outline:2px solid var(--wa-accent);outline-offset:2px}.portfolio-dividend-toggle{align-self:flex-end;padding-bottom:10px}@media(max-width:650px){.portfolio-dividend-toggle{align-self:flex-start;padding-bottom:0}}

/* Selected values stay above the plot, so the curve is always unobstructed. */
.analysis-chart .analysis-chart-tooltip.analysis-chart-readout{position:static;inset:auto;z-index:auto;display:block;width:100%;max-width:none;margin:0 0 14px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;white-space:normal;pointer-events:auto;font:inherit;animation:none;overflow:visible}.analysis-chart-readout>.analysis-chart-values{margin:0}.analysis-chart .analysis-chart-readout-label{margin:0 0 7px;font:500 11px/1.5 'Inter',sans-serif;color:var(--wa-muted,#9fb4ce);min-height:17px;letter-spacing:.15px}.analysis-chart-readout[data-inspecting=true] .analysis-chart-readout-label{color:var(--wa-accent,#86b7ff)}.analysis-chart>.fund-comparison-controls,.analysis-chart>.chart-benchmark-toolbar{margin:12px 0 16px;padding:12px 0;border:0;border-top:1px solid var(--wa-border,#30445f);border-bottom:1px solid var(--wa-border,#30445f);background:transparent;min-width:0}.analysis-chart>.fund-comparison-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.analysis-chart .benchmark-choices{display:flex;flex-wrap:wrap;gap:6px}.analysis-chart .benchmark-chip,.analysis-chart>.chart-benchmark-toolbar label{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;min-height:30px;border:1px solid var(--wa-border,#30445f);border-radius:8px;background:var(--wa-inset,#0b1523);color:var(--wa-muted,#9fb4ce);font-size:12px;line-height:1.4;cursor:pointer}.analysis-chart .benchmark-chip:has(input:checked),.analysis-chart>.chart-benchmark-toolbar label:has(input:checked){border-color:var(--wa-accent,#86b7ff);background:var(--wa-raised,#14243a);color:var(--wa-text,#e3edfb)}.analysis-chart>.chart-benchmark-toolbar{display:flex;flex-wrap:wrap;gap:6px}.analysis-chart>.chart-benchmark-toolbar legend{font-size:11px;color:var(--wa-muted);padding:0 0 5px}.analysis-chart>.chart-benchmark-toolbar label{margin:0!important;font-size:11px!important}.analysis-chart>.chart-benchmark-toolbar input{width:13px;height:13px;min-height:0;margin:0;accent-color:var(--wa-accent)}.analysis-chart>.benchmark-comparison-note{margin-bottom:0;font-size:11px;line-height:1.7}.analysis-chart .fund-comparison-label{color:var(--wa-muted);font-size:12px}.analysis-chart .benchmark-dividends{font-size:12px}.analysis-chart-readout .analysis-chart-value>small{min-height:16px}
@media print{.analysis-chart .analysis-chart-tooltip.analysis-chart-readout{display:block!important}.fund-comparison-controls,.chart-benchmark-toolbar{display:none!important}}

.analysis-chart>.chart-benchmark-toolbar label{position:relative}.analysis-chart>.chart-benchmark-toolbar input{position:absolute;opacity:0;width:1px;height:1px}.analysis-chart>.chart-benchmark-toolbar label:before{content:'+';display:grid;place-items:center;width:12px;font-size:14px;line-height:1;color:var(--wa-muted)}.analysis-chart>.chart-benchmark-toolbar label:has(input:checked):before{content:'✓';font-size:12px;color:var(--wa-accent)}.analysis-chart>.chart-benchmark-toolbar label:focus-within{outline:2px solid var(--wa-accent);outline-offset:2px}.analysis-chart-readout .analysis-chart-value>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
