:root {
  --ink: #17211b;
  --muted: #657069;
  --paper: #f5f3ec;
  --panel: rgba(255, 255, 255, 0.82);
  --line: rgba(23, 33, 27, 0.12);
  --green: #0d6b45;
  --green-deep: #08442e;
  --mint: #b9f3d2;
  --lime: #d9f37a;
  --red: #b64235;
  --shadow: 0 24px 60px rgba(32, 46, 38, 0.09);
  --body-background: linear-gradient(145deg, #f7f5ee 0%, #ecefe6 100%);
  --panel-border: rgba(255,255,255,.85);
  --input-background: rgba(255,255,255,.76);
  --input-focus-background: #fff;
  --surface-solid: #fff;
  --line-soft: rgba(23,33,27,.07);
  --chart-text: #657069;
  --chart-grid: rgba(23,33,27,.10);
  --chart-up: #16855b;
  --chart-down: #c94b55;
  --chart-accent: #0d6b45;
  --chart-accent-fill: rgba(13,107,69,.28);
  --chart-accent-clear: rgba(13,107,69,0);
  --chart-center: #fbfcf8;
  --chart-strong: #17211b;
  --market-up: #16855b;
  --market-down: #c94b55;
  --market-up-featured: #b9f3d2;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; min-height: 100vh; background: var(--body-background); transition: background .2s ease, color .2s ease; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .22; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E"); }
button, input, select { font: inherit; }
a { color: inherit; }

.ambient { position: fixed; border-radius: 50%; filter: blur(5px); pointer-events: none; }
.ambient-one { width: 420px; height: 420px; right: -160px; top: 80px; background: radial-gradient(circle, rgba(185,243,210,.55), transparent 70%); }
.ambient-two { width: 360px; height: 360px; left: -190px; bottom: -80px; background: radial-gradient(circle, rgba(217,243,122,.22), transparent 68%); }

.topbar { position: relative; z-index: 5; height: 76px; max-width: 1240px; margin: auto; padding: 0 30px; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: -.03em; text-decoration: none; font-size: 20px; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; color: #effff6; background: var(--green-deep); border-radius: 10px 10px 10px 3px; font-family: Georgia, serif; font-style: italic; }
.paper-pill { display: flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid rgba(13,107,69,.25); color: var(--green); border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.paper-pill span, .pulse-dot { width: 7px; height: 7px; border-radius: 50%; background: #19a76c; box-shadow: 0 0 0 4px rgba(25,167,108,.12); }
.main-nav { display: flex; align-items: center; gap: 4px; margin-left: 8px; }
.main-nav a { padding: 9px 10px; border-radius: 9px; color: var(--muted); text-decoration: none; font-size: 12px; font-weight: 750; white-space: nowrap; }
.main-nav a:hover, .main-nav a.active { color: var(--green-deep); background: rgba(185,243,210,.28); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 15px; }
.topbar-actions form { margin: 0; }
.theme-toggle { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 999px; padding: 7px 11px; background: var(--input-background); color: var(--ink); cursor: pointer; font-size: 11px; font-weight: 800; transition: background .18s ease, border-color .18s ease, transform .18s ease; }
.theme-toggle:hover { border-color: rgba(13,107,69,.38); transform: translateY(-1px); }
.theme-toggle:focus-visible { outline: 3px solid rgba(13,107,69,.23); outline-offset: 2px; }
.theme-toggle-icon { width: 16px; font-size: 15px; line-height: 1; text-align: center; }
.guide-button { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(13,107,69,.24); border-radius: 999px; padding: 7px 11px; color: var(--green); background: rgba(185,243,210,.17); cursor: pointer; font-size: 11px; font-weight: 850; white-space: nowrap; transition: .18s ease; }
.guide-button:hover { border-color: rgba(13,107,69,.42); background: rgba(185,243,210,.34); transform: translateY(-1px); }
.guide-button:focus-visible { outline: 3px solid rgba(13,107,69,.23); outline-offset: 2px; }
.guide-button-icon { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: #fff; background: var(--green); font-size: 11px; font-weight: 900; }
.color-scheme-control select { width: auto; min-width: 118px; padding: 8px 30px 8px 10px; border-radius: 9px; background-color: var(--input-background); font-size: 11px; font-weight: 800; cursor: pointer; }
.language-form select { width: auto; min-width: 92px; padding: 8px 30px 8px 10px; border-radius: 9px; background-color: rgba(255,255,255,.72); font-size: 12px; font-weight: 750; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.user-email { color: var(--muted); font-size: 13px; }
.text-button { border: 0; border-bottom: 1px solid currentColor; padding: 2px 0; background: transparent; cursor: pointer; color: var(--ink); }

.auth-shell { position: relative; z-index: 1; max-width: 1180px; min-height: calc(100vh - 76px); margin: auto; padding: 78px 30px; display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 90px; }
.eyebrow, .kicker { margin: 0 0 18px; color: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .17em; }
.auth-copy h1 { max-width: 700px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(52px, 6vw, 86px); line-height: .96; font-weight: 500; letter-spacing: -.055em; }
.auth-copy h1 em { color: var(--green); font-weight: 500; }
.lede { max-width: 590px; margin: 28px 0 40px; color: var(--muted); font-size: 18px; line-height: 1.65; }
.trust-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.trust-list > div { border-top: 1px solid var(--line); padding-top: 15px; }
.trust-list span { color: var(--green); font: italic 18px Georgia, serif; }
.trust-list p { margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.trust-list strong { color: var(--ink); font-size: 13px; }

.panel { background: var(--panel); border: 1px solid var(--panel-border); box-shadow: var(--shadow); backdrop-filter: blur(16px); border-radius: 22px; }
.auth-card { padding: 40px; }
.auth-card-head h2 { margin: 0; font-family: Georgia, serif; font-size: 34px; letter-spacing: -.03em; }
.auth-card-head > p:last-child { color: var(--muted); margin: 10px 0 28px; }
.stack-form { display: grid; gap: 18px; }
label span { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 750; }
input, select { width: 100%; border: 1px solid var(--line); border-radius: 11px; padding: 13px 14px; color: var(--ink); background: var(--input-background); outline: none; transition: .18s ease; }
input:focus, select:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(13,107,69,.09); background: var(--input-focus-background); }
.primary-button { border: 0; border-radius: 11px; padding: 14px 18px; background: var(--green-deep); color: #fff; font-weight: 800; cursor: pointer; box-shadow: 0 10px 24px rgba(8,68,46,.2); transition: transform .15s ease, background .15s ease; }
.primary-button:hover { background: var(--green); transform: translateY(-1px); }
.secondary-button { border: 1px solid rgba(13,107,69,.28); border-radius: 11px; padding: 13px 18px; background: rgba(185,243,210,.24); color: var(--green-deep); font-weight: 800; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.secondary-button:hover { background: rgba(185,243,210,.5); transform: translateY(-1px); }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 25px 0; color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.otp-note { margin: -7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.code-input { font: 500 30px/1 Georgia, serif; letter-spacing: .3em; text-align: center; }
.resend-form { margin: 18px 0 0; text-align: center; }
.text-link-button { border: 0; padding: 2px; background: transparent; color: var(--green); font: inherit; font-size: 13px; font-weight: 800; text-decoration: underline; cursor: pointer; }
.auth-switch { margin: 23px 0 0; color: var(--muted); text-align: center; font-size: 13px; }
.auth-switch a { color: var(--green); font-weight: 800; }

.dashboard-shell { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: 55px 30px 90px; }
.dashboard-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 36px; }
.dashboard-heading h1 { margin: 0 0 8px; font: 500 clamp(38px, 5vw, 58px)/1 Georgia, serif; letter-spacing: -.045em; }
.dashboard-heading h1 span { color: var(--green); font-style: italic; }
.dashboard-heading p:last-child { margin: 0; color: var(--muted); }
.environment-card { min-width: 180px; display: flex; gap: 13px; align-items: center; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.46); }
.environment-card div { display: grid; gap: 3px; }
.environment-card small { color: var(--muted); font-size: 9px; letter-spacing: .14em; }
.environment-card strong { color: var(--green); font-size: 12px; letter-spacing: .11em; }
.inline-alert { display: flex; gap: 15px; padding: 15px 18px; margin-bottom: 20px; border: 1px solid rgba(182,66,53,.2); border-radius: 12px; background: rgba(255,237,233,.82); color: var(--red); font-size: 13px; }

.connect-hero { display: grid; grid-template-columns: 1.05fr .95fr; gap: 65px; padding: 52px; }
.step-badge { display: inline-block; border-radius: 999px; padding: 6px 9px; background: var(--lime); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.connect-copy h2 { margin: 18px 0 12px; font: 500 40px/1.05 Georgia, serif; letter-spacing: -.04em; }
.connect-copy > p { max-width: 520px; color: var(--muted); line-height: 1.7; }
.endpoint-lock { display: inline-grid; gap: 4px; margin-top: 24px; padding: 12px 14px; border-left: 3px solid var(--green); background: rgba(185,243,210,.25); }
.endpoint-lock span { color: var(--green); font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.endpoint-lock code { font-size: 12px; }
.connect-form { padding: 28px; border-radius: 16px; background: rgba(255,255,255,.6); border: 1px solid var(--line); }
.connect-form small { color: var(--muted); line-height: 1.5; }
.quick-start-form { align-content: center; }
.quick-start-form h3 { margin: 0 0 10px; font: 500 28px/1.08 Georgia, serif; letter-spacing: -.03em; }
.quick-start-form p:not(.kicker) { margin: 0; color: var(--muted); line-height: 1.65; font-size: 13px; }
.quick-start-mark { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px 18px 18px 5px; background: var(--mint); color: var(--green-deep); font: italic 700 30px Georgia, serif; }

.metric-grid { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 14px; margin-bottom: 14px; }
.metric-card { min-height: 152px; padding: 25px; display: flex; flex-direction: column; justify-content: space-between; }
.metric-card.featured { background: var(--green-deep); color: #fff; }
.metric-card small { color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.metric-card.featured small, .metric-card.featured span { color: rgba(255,255,255,.62); }
.metric-card strong { font: 500 29px Georgia, serif; letter-spacing: -.03em; }
.metric-card span { color: var(--muted); font-size: 11px; }
.status-word { color: var(--green); font: 800 21px/1 sans-serif !important; letter-spacing: .08em !important; }
.positive { color: var(--market-up) !important; }
.negative { color: var(--market-down) !important; }
.featured .positive { color: var(--market-up-featured) !important; }
.funding-value { color: #9b6c12; font: 800 17px/1.25 sans-serif !important; letter-spacing: 0 !important; }

.visual-grid { display: grid; grid-template-columns: 1.45fr .55fr; gap: 14px; margin-bottom: 14px; }
.portfolio-shell { padding-bottom: 24px; }
.portfolio-section { margin-bottom: 18px; }
.portfolio-section .section-heading { margin-bottom: 10px; }
.portfolio-section .section-heading small { color: var(--green); font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.portfolio-section .section-heading h2 { margin: 5px 0 0; font: 500 28px Georgia, serif; }
.dashboard-equity-grid { grid-template-columns: 1fr; }
.dashboard-allocation-panel { margin-bottom: 0; }
.dashboard-allocation-panel canvas { width: 100%; display: block; }
.dashboard-allocation-panel .chart-legend { justify-content: center; }
.portfolio-chart-panel canvas, .allocation-panel canvas { width: 100%; display: block; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 10px; color: var(--muted); font-size: 10px; }
.chart-legend span { display: flex; align-items: center; gap: 5px; }
.chart-legend i { width: 8px; height: 8px; border-radius: 50%; }
.chart-method-note { margin: 12px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }

.trading-workspace { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(350px, .72fr); align-items: start; gap: 14px; margin-bottom: 14px; }
.market-only-workspace { margin-bottom: 14px; }
.dashboard-market-panel { position: relative; z-index: 3; min-width: 0; overflow: visible; padding: 28px; }
.market-only-workspace .dashboard-market-panel { margin-bottom: 0; }
.dashboard-market-head { margin-bottom: 18px; }
.dashboard-market-head p { max-width: 620px; margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.dashboard-market-search { position: relative; z-index: 65; display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: end; gap: 12px; max-width: 760px; }
.trading-workspace .dashboard-market-search { max-width: none; }
.dashboard-market-search .secondary-button { min-height: 46px; white-space: nowrap; }
.chart-symbol-field { min-width: 0; }
.market-chart-controls { display: grid; gap: 10px; margin: 18px 0; }
.market-range-buttons { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 7px; margin: 0; }
.market-range-buttons button { border: 1px solid var(--line); border-radius: 999px; padding: 8px 12px; background: rgba(255,255,255,.68); color: var(--muted); font-size: 11px; font-weight: 800; cursor: pointer; transition: .16s ease; }
.market-range-buttons button:hover { color: var(--green); border-color: rgba(13,107,69,.35); }
.market-range-buttons button.active { border-color: var(--green-deep); background: var(--green-deep); color: #fff; box-shadow: 0 7px 18px rgba(8,68,46,.16); }
.dashboard-market-summary { display: flex; justify-content: space-between; align-items: end; gap: 20px; padding: 12px 2px 4px; }
.dashboard-market-summary > div { display: grid; gap: 5px; }
.dashboard-market-summary strong { font: 500 25px Georgia, serif; }
.dashboard-market-summary span { color: var(--muted); font-size: 11px; }
.dashboard-market-price { text-align: right; }
.dashboard-market-price strong { font-size: 30px; }
.dashboard-market-canvas-wrap { position: relative; min-height: 360px; margin-top: 6px; }
#dashboard-price-chart { display: block; width: 100%; }
.dashboard-earnings-overlay { position: absolute; inset: 0; z-index: 3; overflow: hidden; pointer-events: none; }
.dashboard-earnings-marker { position: absolute; display: grid; min-width: 72px; max-width: 104px; transform: translateX(-50%); border: 1px solid color-mix(in srgb, #8f63c7 68%, var(--line)); border-radius: 9px; padding: 5px 7px; color: #fff; background: #6f43a6; box-shadow: 0 7px 16px rgba(47,24,79,.22); pointer-events: auto; cursor: pointer; text-align: left; line-height: 1.1; }
.dashboard-earnings-marker.edge-left { transform: none; }
.dashboard-earnings-marker.edge-right { transform: translateX(-100%); }
.dashboard-earnings-marker:hover, .dashboard-earnings-marker:focus-visible { z-index: 2; outline: 3px solid color-mix(in srgb, #b98ced 48%, transparent); outline-offset: 2px; }
.dashboard-earnings-marker strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-earnings-marker span { margin-top: 3px; font-size: 8px; opacity: .86; }
.dashboard-earnings-marker.estimated strong::after { content: " · 预计"; font-weight: 600; opacity: .88; }
body[data-language="en"] .dashboard-earnings-marker.estimated strong::after { content: " · est."; }
.dashboard-market-status { position: absolute; inset: 0; z-index: 6; display: grid; place-items: center; margin: 0; border-radius: 14px; background: rgba(251,252,248,.72); color: var(--muted); font-size: 13px; backdrop-filter: blur(3px); }
.dashboard-market-status[hidden] { display: none; }
.dashboard-market-status.error { color: var(--red); }
.market-data-provenance { margin: .45rem 0 0; color: var(--muted); font-size: .82rem; }

.event-calendar { padding: 28px; margin-bottom: 14px; }
.event-calendar-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; }
.event-calendar-head .kicker { margin-bottom: 8px; }
.event-calendar-head h2 { margin: 0; font: 500 28px/1.1 Georgia, serif; letter-spacing: -.03em; }
.event-calendar-head > div:first-child > p:last-child { max-width: 680px; margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.next-event-summary { min-width: 210px; display: grid; gap: 5px; border-left: 3px solid var(--green); padding: 9px 0 9px 14px; }
.next-event-summary small { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.next-event-summary strong { max-width: 260px; font-size: 13px; }
.next-event-summary span { color: var(--green); font-size: 12px; font-weight: 850; }
.event-filter-bar { display: flex; flex-wrap: wrap; gap: 7px; margin: 22px 0 14px; }
.event-filter-bar button { border: 1px solid var(--line); border-radius: 999px; padding: 7px 11px; color: var(--muted); background: var(--input-background); cursor: pointer; font-size: 10px; font-weight: 850; }
.event-filter-bar button.active { border-color: var(--green-deep); color: #fff; background: var(--green-deep); }
.future-events-toggle { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; border: 1px solid var(--line); border-radius: 999px; padding: 5px 10px 5px 7px; color: var(--ink); background: var(--input-background); cursor: pointer; font-size: 10px; font-weight: 850; }
.chart-future-events-toggle { min-height: 34px; white-space: nowrap; }
.chart-display-controls { display: grid; gap: 8px; border: 1px solid var(--line-soft); border-radius: 16px; padding: 10px; background: color-mix(in srgb, var(--input-background) 84%, transparent); }
.chart-display-label { padding-left: 3px; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .14em; }
.chart-event-toggles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.chart-event-toggles .future-events-toggle { margin-left: 0; }
.chart-event-toggles .future-events-toggle { justify-content: center; min-height: 36px; text-align: center; }
.future-events-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.future-events-toggle-track { position: relative; width: 30px; height: 18px; border-radius: 999px; background: var(--line); transition: background .18s ease; }
.future-events-toggle-track i { position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.24); transition: transform .18s ease; }
.future-events-toggle input:checked + .future-events-toggle-track { background: var(--green); }
.future-events-toggle input:checked + .future-events-toggle-track i { transform: translateX(12px); }
.future-events-toggle input:focus-visible + .future-events-toggle-track { outline: 3px solid rgba(13,107,69,.23); outline-offset: 2px; }
.chart-event-details { margin-top: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--input-background); }
.chart-event-details-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.chart-event-details h3 { margin: 3px 0 0; font-size: 20px; }
.chart-event-details .text-button { padding: 2px 8px; font-size: 24px; line-height: 1; }
.chart-event-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.chart-event-metrics[hidden] { display: none; }
.chart-event-metrics div { padding: 10px 12px; border-radius: 12px; background: var(--surface); }
.chart-event-metrics span { display: block; color: var(--muted); font-size: 10px; font-weight: 800; }
.chart-event-metrics strong { display: block; margin-top: 4px; font-size: 15px; }
.event-source-link { font-weight: 800; color: var(--green); }
.earnings-report-details { margin: 16px 0; padding: 16px; border: 1px solid color-mix(in srgb, #8f63c7 34%, var(--line)); border-radius: 16px; background: color-mix(in srgb, #8f63c7 7%, var(--surface)); }
.earnings-report-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.earnings-report-head h4 { margin: 4px 0 0; font: 600 19px/1.2 Georgia, serif; }
.earnings-accounting-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.earnings-accounting-metrics div { padding: 12px; border: 1px solid var(--line-soft); border-radius: 13px; background: var(--input-background); }
.earnings-accounting-metrics span, .earnings-accounting-metrics small { display: block; color: var(--muted); font-size: 9px; font-weight: 800; }
.earnings-accounting-metrics strong { display: block; margin: 5px 0; font-size: 17px; }
.earnings-guidance-card { padding: 13px 14px; border-radius: 13px; background: color-mix(in srgb, var(--green) 9%, var(--input-background)); }
.earnings-guidance-card p { margin: 7px 0; line-height: 1.55; }
.earnings-guidance-card small { color: var(--muted); line-height: 1.5; }
.fed-decision-details { margin: 16px 0; padding: 16px; border: 1px solid color-mix(in srgb, #3979b8 38%, var(--line)); border-radius: 16px; background: color-mix(in srgb, #3979b8 8%, var(--surface)); }
.fed-decision-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.fed-decision-metrics div, .fed-policy-notes div { padding: 12px; border: 1px solid var(--line-soft); border-radius: 13px; background: var(--input-background); }
.fed-decision-metrics span, .fed-policy-notes span { display: block; color: var(--muted); font-size: 9px; font-weight: 800; }
.fed-decision-metrics strong, .fed-policy-notes strong { display: block; margin-top: 5px; font-size: 15px; line-height: 1.4; }
.fed-policy-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.market-month-calendar { margin-bottom: 18px; border: 1px solid var(--line-soft); border-radius: 18px; padding: 18px; background: color-mix(in srgb, var(--surface-solid) 68%, transparent); }
.market-calendar-toolbar { display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; gap: 12px; margin-bottom: 15px; }
.market-calendar-toolbar > div { display: grid; gap: 3px; text-align: center; }
.market-calendar-toolbar small { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.market-calendar-toolbar strong { font: 500 21px/1.2 Georgia, serif; }
.market-calendar-toolbar button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: var(--input-background); cursor: pointer; font: 500 24px/1 Georgia, serif; transition: .16s ease; }
.market-calendar-toolbar button:hover { border-color: rgba(13,107,69,.4); color: var(--green); transform: translateY(-1px); }
.market-calendar-weekdays, .market-calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.market-calendar-weekdays { margin-bottom: 6px; }
.market-calendar-weekdays span { padding: 4px; color: var(--muted); text-align: center; font-size: 9px; font-weight: 850; letter-spacing: .04em; }
.market-calendar-day { position: relative; display: grid; align-content: start; justify-items: start; min-height: 78px; border: 1px solid transparent; border-radius: 12px; padding: 8px; color: var(--ink); background: var(--input-background); font: inherit; text-align: left; transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.market-calendar-day:disabled { cursor: default; }
.market-calendar-day.outside-month { opacity: .34; }
.market-calendar-day.is-today .market-calendar-day-number { display: grid; place-items: center; width: 24px; height: 24px; margin: -3px 0 0 -3px; border-radius: 50%; color: #fff; background: var(--green); }
.market-calendar-day.has-events { border-color: rgba(13,107,69,.20); cursor: pointer; }
.market-calendar-day.has-events:hover { border-color: rgba(13,107,69,.48); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(9,55,38,.10); }
.market-calendar-day.selected { border-color: var(--green); box-shadow: 0 0 0 3px rgba(22,133,91,.13); }
.market-calendar-day-number { font-size: 11px; font-weight: 850; }
.calendar-event-bubbles { display: flex; align-items: center; gap: 4px; margin-top: 11px; }
.calendar-event-bubble { display: block; width: 9px; height: 9px; border-radius: 50%; background: #8f63c7; box-shadow: 0 0 0 3px rgba(143,99,199,.13); }
.calendar-event-bubble.bubble-macro { background: #3979b8; box-shadow: 0 0 0 3px rgba(57,121,184,.13); }
.calendar-event-bubble.bubble-fed { background: #bd7a15; box-shadow: 0 0 0 3px rgba(189,122,21,.13); }
.calendar-mini-countdown { align-self: end; margin-top: 8px; color: var(--muted); font-size: 8px; font-weight: 800; }
.calendar-day-details { display: grid; gap: 10px; margin-top: 14px; border-top: 1px solid var(--line-soft); padding-top: 14px; }
.calendar-day-details-empty { padding: 12px 4px 2px; color: var(--muted); text-align: center; font-size: 11px; }
.calendar-day-details-heading { display: grid; gap: 4px; }
.calendar-day-details-heading small { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.calendar-day-details-heading strong { font: 500 18px/1.2 Georgia, serif; }
.calendar-selected-event { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; border-radius: 13px; padding: 14px 16px; background: rgba(143,99,199,.10); }
.calendar-selected-event.event-macro { background: rgba(57,121,184,.10); }
.calendar-selected-event.event-fed { background: rgba(189,122,21,.11); }
.calendar-selected-copy { min-width: 0; }
.calendar-selected-type { color: #6c4797; font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.event-macro .calendar-selected-type { color: #2e6b9f; }
.event-fed .calendar-selected-type { color: #9b650f; }
.calendar-selected-copy h3 { margin: 5px 0 0; font-size: 13px; }
.calendar-selected-copy p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.calendar-selected-copy a { color: var(--green); font-weight: 800; }
.calendar-selected-countdown { display: grid; gap: 4px; min-width: 96px; text-align: right; }
.calendar-selected-countdown small { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.calendar-selected-countdown strong { color: var(--green); font: 500 20px/1 Georgia, serif; }
.event-list { display: grid; gap: 8px; max-height: 520px; overflow-y: auto; padding-right: 3px; }
.event-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto minmax(126px, auto); align-items: center; gap: 16px; border: 1px solid var(--line-soft); border-radius: 15px; padding: 12px 14px; background: color-mix(in srgb, var(--surface-solid) 72%, transparent); transition: border-color .18s ease, opacity .18s ease, transform .18s ease; }
.event-row:hover { border-color: rgba(13,107,69,.25); transform: translateY(-1px); }
.event-row[hidden] { display: none; }
.event-row.event-past { opacity: .64; }
.event-row.reminder-due { border-color: rgba(211,154,41,.5); box-shadow: 0 0 0 3px rgba(211,154,41,.10); }
.event-date-tile { display: grid; place-items: center; min-height: 58px; border-radius: 12px; color: #fff; background: var(--green-deep); text-decoration: none; }
.event-date-tile span { font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.event-date-tile strong { font: 500 24px/1 Georgia, serif; }
.event-copy { min-width: 0; }
.event-title-line { display: flex; align-items: center; gap: 7px; margin-bottom: 5px; }
.event-type-badge, .event-symbol { display: inline-flex; border-radius: 999px; padding: 4px 7px; font-size: 8px; font-weight: 900; letter-spacing: .06em; }
.event-type-badge { color: #4f2e79; background: rgba(143,99,199,.16); }
.event-macro .event-type-badge { color: #245d93; background: rgba(57,121,184,.15); }
.event-fed .event-type-badge { color: #875207; background: rgba(189,122,21,.16); }
.event-symbol { color: var(--green); background: rgba(22,133,91,.11); }
.event-copy h3 { overflow: hidden; margin: 0; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.event-copy p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.event-copy a { color: var(--green); font-weight: 800; }
.event-countdown { min-width: 74px; color: var(--ink); text-align: right; font: 500 17px/1 Georgia, serif; }
.reminder-due .event-countdown { color: #a56609; }
.event-reminder-control { display: grid; gap: 5px; }
.event-reminder-control > span { margin: 0; color: var(--muted); font-size: 9px; }
.event-reminder-control select { min-width: 126px; padding: 8px 28px 8px 9px; font-size: 10px; }
.event-calendar-note { margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

.order-panel, .safety-panel, .table-panel { padding: 28px; }
.trading-ticket { min-width: 0; }
.trading-ticket .panel-head { align-items: flex-start; }
.trading-ticket .order-form { grid-template-columns: 1fr; }
.trading-ticket .order-form > * { grid-column: 1; }
.safety-section { margin-bottom: 14px; }
.safety-section .safety-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 25px; }
.panel-head small { color: var(--green); font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.panel-head h2 { margin: 5px 0 0; font: 500 25px Georgia, serif; letter-spacing: -.025em; }
.panel-head > span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.market-badge { padding: 6px 8px; border-radius: 6px; background: rgba(217,243,122,.48); color: var(--green-deep) !important; }
.order-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.wide { grid-column: 1 / -1; }
.confirm-row { display: flex; align-items: start; gap: 10px; padding: 12px; border-radius: 10px; background: rgba(185,243,210,.2); cursor: pointer; }
.confirm-row input { width: 16px; margin-top: 2px; accent-color: var(--green); }
.confirm-row span { margin: 0; color: var(--muted); line-height: 1.45; font-weight: 500; }
.confirm-row strong { color: var(--green); }
.shield { display: grid !important; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--mint); color: var(--green) !important; font-size: 15px !important; }
.safety-list { list-style: none; padding: 0; margin: 0 0 23px; display: grid; gap: 15px; }
.safety-list li { display: flex; gap: 12px; }
.safety-list li > span { color: var(--green); font: italic 15px Georgia, serif; }
.safety-list strong { font-size: 13px; }
.safety-list p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.danger-button { width: 100%; border: 1px solid rgba(182,66,53,.24); border-radius: 10px; padding: 11px; color: var(--red); background: rgba(255,255,255,.46); font-weight: 700; cursor: pointer; }

.table-panel { margin-bottom: 14px; box-shadow: 0 12px 38px rgba(32,46,38,.06); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { padding: 11px 12px; color: var(--muted); text-align: left; font-size: 9px; letter-spacing: .11em; border-bottom: 1px solid var(--line); }
td { padding: 15px 12px; border-bottom: 1px solid rgba(23,33,27,.07); white-space: nowrap; }
tbody tr:last-child td { border-bottom: 0; }
.empty-state { padding: 30px; text-align: center; color: var(--muted); }
.order-status { padding: 5px 7px; border-radius: 5px; background: rgba(185,243,210,.22); color: var(--green); font-size: 9px; font-weight: 800; }
.status-rejected, .status-canceled, .status-cancelled { color: var(--red); background: rgba(182,66,53,.10); }
.panel-link { color: var(--green); font-size: 11px; font-weight: 800; text-decoration: none; }

.symbol-autocomplete { position: relative; }
.symbol-suggestions { position: absolute; z-index: 80; top: calc(100% + 6px); right: 0; left: 0; overflow-x: hidden; overflow-y: auto; max-height: min(420px, 60vh); border: 1px solid var(--line); border-radius: 13px; background: var(--surface-solid); box-shadow: 0 20px 50px rgba(23,33,27,.18); }
.symbol-suggestions[hidden] { display: none; }
.symbol-suggestion { width: 100%; display: grid; grid-template-columns: minmax(65px,.35fr) 1fr auto; align-items: center; gap: 12px; border: 0; border-bottom: 1px solid var(--line-soft); padding: 11px 13px; background: var(--surface-solid); color: var(--ink); text-align: left; cursor: pointer; }
.symbol-suggestion:last-child { border-bottom: 0; }
.symbol-suggestion:hover, .symbol-suggestion.active { background: #eff8f1; }
.symbol-suggestion strong { color: var(--green-deep); }
.symbol-suggestion span { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.symbol-suggestion small { color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.symbol-search-message { padding: 13px; color: var(--muted); font-size: 12px; }

.activity-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; margin-bottom: 18px; padding: 5px; }
.activity-tabs a { display: grid; gap: 4px; padding: 16px 18px; border-radius: 16px; color: var(--muted); text-decoration: none; }
.activity-tabs a.active { color: #fff; background: var(--green-deep); }
.activity-tabs small { font-size: 8px; font-weight: 900; letter-spacing: .16em; }
.activity-tabs strong { font-size: 13px; }
.activity-summary-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1.4fr; gap: 14px; margin-bottom: 14px; }
.activity-summary-grid .metric-card { min-height: 126px; }
.mini-chart-card { min-width: 0; padding: 22px; }
.mini-chart-card small, .market-stat-panel > small { color: var(--green); font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.mini-chart-card canvas { width: 100%; display: block; margin-top: 4px; }
.activity-chart-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin-top: 2px; }
.activity-chart-legend[hidden] { display: none; }
.activity-legend-item { display: flex; align-items: center; gap: 7px; min-width: 0; color: var(--muted); font-size: 10px; white-space: nowrap; }
.activity-legend-item > i { position: relative; flex: 0 0 22px; height: 1px; background: var(--activity-legend-color); }
.activity-legend-item > i::after { position: absolute; top: 50%; right: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--activity-legend-color); content: ''; transform: translate(0, -50%); }
.activity-legend-item > span { overflow: hidden; text-overflow: ellipsis; }
.history-order-row { cursor: pointer; outline: none; }
.history-order-row td { transition: background .16s ease, border-color .16s ease; }
.history-order-row:hover td, .history-order-row:focus-visible td { background: rgba(22,133,91,.055); }
.history-order-row.selected td { background: rgba(22,133,91,.09); border-bottom-color: transparent; }
.history-order-manage { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 112px; border: 1px solid rgba(13,107,69,.28); border-radius: 9px; padding: 8px 10px; color: var(--green); background: var(--input-background); cursor: pointer; font-size: 10px; font-weight: 850; white-space: nowrap; }
.history-order-manage span { font-size: 16px; line-height: .7; transition: transform .16s ease; }
.history-order-manage[aria-expanded="true"] span { transform: rotate(90deg); }
.history-order-workspace-row td { padding: 0 12px 14px; border-bottom: 1px solid var(--line-soft); }
.history-order-workspace { position: sticky; left: 12px; width: min(980px, calc(100vw - 108px)); box-sizing: border-box; border: 1px solid rgba(13,107,69,.18); border-radius: 15px; padding: 18px; background: color-mix(in srgb, var(--surface-solid) 78%, var(--mint)); box-shadow: inset 4px 0 0 var(--green); }
.history-order-workspace-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.history-order-workspace-head small { color: var(--green); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.history-order-workspace-head h3 { margin: 5px 0 0; font: 500 20px/1.2 Georgia, serif; }
.history-order-workspace-head p { max-width: 700px; margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.closed-order-badge { flex: 0 0 auto; border-radius: 999px; padding: 7px 10px; color: var(--muted); background: rgba(101,112,105,.11); font-size: 9px; font-weight: 800; white-space: nowrap; }
.history-reorder-form { display: grid; grid-template-columns: repeat(3, minmax(140px, 1fr)); align-items: end; gap: 12px; margin-top: 17px; border-top: 1px solid var(--line-soft); padding-top: 17px; }
.history-reorder-form label { min-width: 0; }
.history-reorder-form input, .history-reorder-form select { width: 100%; }
.history-reorder-form .history-reorder-confirm { grid-column: span 2; align-self: stretch; }
.history-reorder-form > .primary-button { min-height: 45px; }
.compact-value { font-size: 20px !important; }
.activity-table { min-height: 310px; }
.tax-lot-notice { align-items: flex-start; }
.tax-lot-notice span { line-height: 1.55; }
.wash-rule-notice { border-color: rgba(174,121,21,.24); background: rgba(255,245,214,.76); color: var(--ink); }
.wash-rule-notice strong { color: #8b5a08; }
.wash-rule-notice a { margin-left: auto; color: var(--green); white-space: nowrap; font-size: 11px; font-weight: 800; text-decoration: none; }
.tax-lot-chart-panel { margin-bottom: 18px; }
.tax-lot-chart-panel canvas { width: 100%; display: block; }
.tax-lot-data-row { cursor: pointer; outline: none; }
.tax-lot-data-row td { transition: background .16s ease, border-color .16s ease; }
.tax-lot-data-row:hover td, .tax-lot-data-row:focus-visible td { background: rgba(22,133,91,.055); }
.tax-lot-data-row:focus-visible td { border-bottom-color: rgba(22,133,91,.38); }
.tax-lot-data-row.selected td { background: rgba(22,133,91,.09); border-bottom-color: transparent; }
.tax-lot-symbol-link { display: grid; gap: 3px; color: var(--ink); text-decoration: none; }
.tax-lot-symbol-link span { color: var(--green); font-size: 9px; font-weight: 800; }
.tax-lot-manage-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 128px; border: 1px solid rgba(13,107,69,.28); border-radius: 9px; padding: 9px 11px; color: var(--green); background: var(--input-background); cursor: pointer; font-size: 10px; font-weight: 850; white-space: nowrap; }
.tax-lot-manage-button span { font-size: 16px; line-height: .7; transition: transform .16s ease; }
.tax-lot-manage-button[aria-expanded="true"] span { transform: rotate(90deg); }
.tax-lot-action-status { display: block; max-width: 130px; margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.35; white-space: normal; }
.tax-lot-workspace-row td { padding: 0 12px 14px; border-bottom: 1px solid var(--line-soft); }
.tax-lot-workspace { position: sticky; left: 12px; width: min(1040px, calc(100vw - 108px)); box-sizing: border-box; border: 1px solid rgba(13,107,69,.18); border-radius: 15px; padding: 18px; background: color-mix(in srgb, var(--surface-solid) 78%, var(--mint)); box-shadow: inset 4px 0 0 var(--green); }
.tax-lot-workspace-summary { display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.tax-lot-workspace-summary small { color: var(--green); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.tax-lot-workspace-summary h3 { margin: 5px 0 0; font: 500 20px/1.2 Georgia, serif; }
.tax-lot-workspace-summary p { margin: 6px 0 0; color: var(--muted); font-size: 10px; }
.secondary-button.compact { padding: 9px 12px; font-size: 10px; white-space: nowrap; }
.tax-lot-order-form { display: grid; grid-template-columns: repeat(3, minmax(140px, 1fr)); align-items: end; gap: 12px; margin-top: 17px; border-top: 1px solid var(--line-soft); padding-top: 17px; }
.tax-lot-order-form label { min-width: 0; }
.tax-lot-order-form input, .tax-lot-order-form select { width: 100%; }
.tax-lot-order-form .tax-lot-confirm { grid-column: span 2; align-self: stretch; }
.tax-lot-order-form > .primary-button { min-height: 45px; }
.tax-lot-fifo-blocked { margin-top: 17px; border-top: 1px solid var(--line-soft); padding: 16px 16px 2px; color: var(--ink); background: rgba(211,154,41,.08); border-radius: 0 0 11px 11px; }
.tax-lot-fifo-blocked strong { font-size: 12px; }
.tax-lot-fifo-blocked p { max-width: 860px; margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.wash-sale-orders { margin-bottom: 14px; }
.wash-sale-orders td { vertical-align: top; }
.wash-sale-orders td small, .wash-guidance small { display: block; margin-top: 6px; color: var(--muted); line-height: 1.45; white-space: normal; }
.wash-status-badge { display: inline-flex; width: max-content; padding: 5px 8px; border-radius: 999px; font-size: 9px; font-weight: 900; letter-spacing: .04em; white-space: nowrap; }
.wash-status-badge.flagged { background: rgba(182,66,53,.13); color: var(--red); }
.wash-status-badge.monitoring { background: rgba(211,154,41,.17); color: #8b5a08; }
.wash-status-badge.clear { background: rgba(22,133,91,.13); color: var(--green); }
.replacement-match { display: block; margin-bottom: 5px; white-space: nowrap; }
.fill-id { display: inline-block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; color: var(--muted); font-size: 10px; }
.wash-guidance { min-width: 250px; white-space: normal; }
.wash-guidance strong { display: block; margin-top: 7px; font-size: 13px; }
.muted-note { color: var(--muted); font-size: 11px; }

.market-chart-grid { display: grid; grid-template-columns: 1.55fr .65fr; gap: 14px; }
.market-side-grid { display: grid; grid-template-rows: auto 1fr; gap: 14px; min-width: 0; }
.primary-market-chart { min-width: 0; }
.chart-key { display: flex; gap: 12px; color: var(--muted); font-size: 10px; }
.chart-key span { display: flex; align-items: center; gap: 5px; }
.chart-key span::before { content: ""; width: 8px; height: 8px; border-radius: 2px; }
.chart-key .up::before { background: var(--chart-up); }
.chart-key .down::before { background: var(--chart-down); }
.market-stat-panel { padding: 25px; }
.market-stat-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.market-stat-row:last-child { border-bottom: 0; }
.market-stat-row span { color: var(--muted); font-size: 11px; }
.market-stat-row strong { font: 500 18px Georgia, serif; }
#close-chart { width: 100%; display: block; }

.toast-stack { position: fixed; z-index: 20; right: 24px; bottom: 24px; display: grid; gap: 10px; width: min(390px, calc(100vw - 48px)); }
.toast { padding: 14px 16px; border-radius: 11px; background: var(--surface-solid); box-shadow: 0 16px 38px rgba(23,33,27,.16); font-size: 13px; border-left: 4px solid var(--green); animation: toast-in .24s ease-out; }
.toast-error { border-left-color: var(--red); }
@keyframes toast-in { from { opacity: 0; transform: translateY(10px); } }

.tour-layer { position: fixed; inset: 0; z-index: 1000; pointer-events: none; }
.tour-layer[hidden] { display: none; }
.tour-spotlight { position: fixed; border: 2px solid #9cf0c5; border-radius: 16px; box-shadow: 0 0 0 9999px rgba(4,12,8,.66), 0 0 0 5px rgba(92,220,153,.22); pointer-events: none; transition: left .24s ease, top .24s ease, width .24s ease, height .24s ease; }
.tour-popover { position: fixed; z-index: 2; max-width: calc(100vw - 32px); border: 1px solid var(--panel-border); border-radius: 18px; padding: 20px; color: var(--ink); background: var(--surface-solid); box-shadow: 0 24px 70px rgba(0,0,0,.28); pointer-events: auto; outline: none; }
.tour-popover-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tour-step-label { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.tour-close { display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 50%; color: var(--muted); background: var(--input-background); cursor: pointer; font-size: 20px; line-height: 1; }
.tour-popover h2 { margin: 13px 0 9px; font: 500 25px/1.12 Georgia, serif; letter-spacing: -.025em; }
.tour-popover p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.tour-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; }
.tour-controls > div { display: flex; gap: 8px; }
.tour-skip { border: 0; padding: 8px 2px; color: var(--muted); background: transparent; cursor: pointer; font-size: 11px; font-weight: 750; }
.tour-arrow { border: 1px solid var(--line); border-radius: 9px; padding: 9px 12px; color: var(--ink); background: var(--input-background); cursor: pointer; font-size: 11px; font-weight: 850; }
.tour-arrow:hover:not(:disabled) { border-color: rgba(13,107,69,.38); }
.tour-arrow:disabled { opacity: .38; cursor: default; }
.tour-arrow-primary { border-color: var(--green-deep); color: #fff; background: var(--green-deep); }
.tour-close:focus-visible, .tour-skip:focus-visible, .tour-arrow:focus-visible { outline: 3px solid rgba(13,107,69,.24); outline-offset: 2px; }

html[data-theme="dark"] {
  --ink: #edf7f1;
  --muted: #aab9b1;
  --paper: #0b120f;
  --panel: rgba(20,31,25,.88);
  --line: rgba(229,245,235,.14);
  --green: #67d6a2;
  --mint: #45b982;
  --lime: #b8d85c;
  --red: #ff8b7e;
  --shadow: 0 24px 70px rgba(0,0,0,.32);
  --body-background: linear-gradient(145deg, #0b120f 0%, #111c17 100%);
  --panel-border: rgba(224,244,232,.10);
  --input-background: rgba(25,39,31,.9);
  --input-focus-background: #1d2d25;
  --surface-solid: #17251e;
  --line-soft: rgba(229,245,235,.09);
  --chart-text: #aab9b1;
  --chart-grid: rgba(229,245,235,.13);
  --chart-up: #57d39b;
  --chart-down: #ff8174;
  --chart-accent: #67d6a2;
  --chart-accent-fill: rgba(103,214,162,.25);
  --chart-accent-clear: rgba(103,214,162,0);
  --chart-center: #14211b;
  --chart-strong: #edf7f1;
  --market-up: #57d39b;
  --market-down: #ff8174;
  --market-up-featured: #89e7bc;
  color-scheme: dark;
}
html[data-market-colors="red-up"] {
  --chart-up: #c94b55;
  --chart-down: #16855b;
  --market-up: #c94b55;
  --market-down: #16855b;
  --market-up-featured: #ffb4ab;
}
html[data-theme="dark"][data-market-colors="red-up"] {
  --chart-up: #ff8174;
  --chart-down: #57d39b;
  --market-up: #ff8174;
  --market-down: #57d39b;
  --market-up-featured: #ff9e94;
}
html[data-theme="dark"] body::before { opacity: .12; }
html[data-theme="dark"] .ambient-one { background: radial-gradient(circle, rgba(36,151,101,.25), transparent 70%); }
html[data-theme="dark"] .ambient-two { background: radial-gradient(circle, rgba(157,188,72,.12), transparent 68%); }
html[data-theme="dark"] .brand-mark { color: #effff6; background: #0d583b; }
html[data-theme="dark"] .paper-pill { border-color: rgba(103,214,162,.34); }
html[data-theme="dark"] .guide-button { border-color: rgba(103,214,162,.28); background: rgba(48,132,89,.19); }
html[data-theme="dark"] .main-nav a:hover,
html[data-theme="dark"] .main-nav a.active { color: #d9f8e7; background: rgba(61,157,109,.24); }
html[data-theme="dark"] .language-form select { background-color: var(--input-background); }
html[data-theme="dark"] .environment-card { background: rgba(24,39,31,.7); }
html[data-theme="dark"] .connect-form { background: rgba(29,45,36,.78); }
html[data-theme="dark"] .market-range-buttons button { background: var(--input-background); }
html[data-theme="dark"] .market-range-buttons button.active { background: #16734f; border-color: #55c991; }
html[data-theme="dark"] .dashboard-market-status { background: rgba(12,20,16,.8); }
html[data-theme="dark"] .confirm-row { background: rgba(44,127,84,.2); }
html[data-theme="dark"] .danger-button { background: rgba(28,42,34,.68); }
html[data-theme="dark"] .symbol-suggestion:hover,
html[data-theme="dark"] .symbol-suggestion.active { background: #20362b; }
html[data-theme="dark"] .symbol-suggestion strong,
html[data-theme="dark"] .secondary-button,
html[data-theme="dark"] .market-badge { color: #baf1d4; }
html[data-theme="dark"] .secondary-button { background: rgba(48,132,89,.23); border-color: rgba(103,214,162,.32); }
html[data-theme="dark"] .secondary-button:hover { background: rgba(48,132,89,.36); }
html[data-theme="dark"] .inline-alert { background: rgba(104,39,34,.34); }
html[data-theme="dark"] .wash-rule-notice { border-color: rgba(222,176,81,.28); background: rgba(91,65,20,.34); }
html[data-theme="dark"] .wash-rule-notice strong,
html[data-theme="dark"] .wash-status-badge.monitoring { color: #f0c76d; }
html[data-theme="dark"] td { border-bottom-color: var(--line-soft); }
html[data-theme="dark"] .funding-value { color: #f0c76d; }
html[data-theme="dark"] ::selection { color: #07110c; background: #83e6b5; }

@media (max-width: 1050px) {
  .main-nav { order: 3; width: 100%; overflow-x: auto; }
  .topbar { height: auto; min-height: 76px; flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; }
}

@media (max-width: 900px) {
  .auth-shell { grid-template-columns: 1fr; gap: 45px; padding-top: 50px; }
  .trust-list { display: none; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .connect-hero, .visual-grid, .market-chart-grid { grid-template-columns: 1fr; }
  .activity-summary-grid { grid-template-columns: 1fr 1fr; }
  .connect-hero { gap: 35px; }
}

@media (max-width: 1120px) {
  .trading-workspace { grid-template-columns: 1fr; }
  .trading-ticket .order-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trading-ticket .order-form > * { grid-column: auto; }
  .trading-ticket .order-form > .wide { grid-column: 1 / -1; }
}

@media (max-width: 1080px) {
  .user-email { display: none; }
  .main-nav a { padding-left: 7px; padding-right: 7px; }
}

@media (max-width: 620px) {
  .topbar { padding: 0 18px; }
  .paper-pill, .user-email { display: none; }
  .theme-toggle-label { display: none; }
  .theme-toggle { width: 36px; justify-content: center; padding: 7px; }
  .guide-button { width: 36px; justify-content: center; padding: 7px; }
  .guide-button-label { display: none; }
  .color-scheme-control select { min-width: 105px; max-width: 122px; }
  .tour-popover { padding: 18px; }
  .tour-controls { align-items: stretch; flex-direction: column-reverse; }
  .tour-controls > div { display: grid; grid-template-columns: 1fr 1fr; }
  .tour-skip { text-align: left; }
  .auth-shell, .dashboard-shell { padding-left: 18px; padding-right: 18px; }
  .auth-card, .connect-hero { padding: 28px 22px; }
  .dashboard-heading { align-items: start; }
  .environment-card { min-width: 0; padding: 12px; }
  .environment-card div { display: none; }
  .metric-grid { grid-template-columns: 1fr; }
  .activity-summary-grid { grid-template-columns: 1fr; }
  .activity-tabs a { padding: 13px 9px; text-align: center; }
  .activity-tabs small { display: none; }
  .order-form { grid-template-columns: 1fr; }
  .order-form > * { grid-column: 1; }
  .trading-ticket .order-form { grid-template-columns: 1fr; }
  .trading-ticket .order-form > *, .trading-ticket .order-form > .wide { grid-column: 1; }
  .safety-section .safety-list { grid-template-columns: 1fr; }
  .dashboard-market-panel { padding: 22px 16px; }
  .dashboard-market-head, .dashboard-market-summary { align-items: flex-start; }
  .dashboard-market-head { flex-direction: column; }
  .dashboard-market-search { grid-template-columns: 1fr; }
  .dashboard-market-summary { flex-direction: column; }
  .dashboard-market-price { text-align: left; }
  .market-range-buttons { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; }
  .market-range-buttons button { flex: 0 0 auto; }
  .chart-event-toggles { grid-template-columns: 1fr; }
  .chart-event-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .earnings-accounting-metrics { grid-template-columns: 1fr; }
  .fed-decision-metrics, .fed-policy-notes { grid-template-columns: 1fr; }
  .event-calendar { padding: 22px 16px; }
  .event-calendar-head { flex-direction: column; }
  .next-event-summary { width: 100%; }
  .market-month-calendar { padding: 13px 10px; }
  .market-calendar-weekdays, .market-calendar-days { gap: 3px; }
  .market-calendar-day { min-height: 66px; padding: 6px; border-radius: 9px; }
  .calendar-event-bubble { width: 7px; height: 7px; }
  .calendar-mini-countdown { overflow: hidden; max-width: 100%; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
  .calendar-selected-event { grid-template-columns: 1fr; }
  .calendar-selected-countdown { text-align: left; }
  .tax-lot-workspace-summary { align-items: flex-start; flex-direction: column; }
  .tax-lot-workspace { left: 0; width: calc(100vw - 76px); padding: 15px; }
  .tax-lot-order-form { grid-template-columns: 1fr; }
  .tax-lot-order-form .tax-lot-confirm { grid-column: 1; }
  .history-order-workspace { left: 0; width: calc(100vw - 76px); padding: 15px; }
  .history-order-workspace-head { flex-direction: column; }
  .history-reorder-form { grid-template-columns: 1fr; }
  .history-reorder-form .history-reorder-confirm { grid-column: 1; }
  .event-row { grid-template-columns: 58px minmax(0, 1fr); gap: 12px; }
  .event-countdown { grid-column: 1; text-align: center; font-size: 14px; }
  .event-reminder-control { grid-column: 2; }
}

.form-error { color: var(--danger, #ff7b7b); line-height: 1.5; }
.oauth-button { display: inline-block; text-decoration: none; margin-top: 1rem; text-align: center; }
.legal-page { max-width: 850px; }
.legal-page article { padding: clamp(1.5rem, 4vw, 3rem); }
.legal-page h2 { margin-top: 2rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-grid .wide { grid-column: 1 / -1; }
.pii-form { min-width: 0; }
@media (max-width: 700px) { .form-grid { grid-template-columns: 1fr; } .form-grid .wide { grid-column: auto; } }
.conditional-field[hidden] { display: none; }
.order-actions summary { cursor: pointer; color: var(--green); font-weight: 700; }
.order-actions form { display: grid; gap: 6px; margin-top: 8px; min-width: 130px; }
.order-actions input { max-width: 130px; }
.history-readonly-notice { display: flex; align-items: center; gap: 12px; margin: 0 18px 14px; padding: 13px 15px; border: 1px solid var(--line-soft); border-radius: 13px; color: var(--muted); background: var(--input-background); }
.history-readonly-notice strong { flex: 0 0 auto; color: var(--ink); }
.closed-order-readonly { display: inline-block; max-width: 190px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; white-space: normal; }
.compact { padding: 7px 9px; }
.symbol-search { position: relative; z-index: 60; display: flex; align-items: end; gap: 12px; overflow: visible; padding: 18px; margin-bottom: 18px; }
.symbol-search label { flex: 1; }
.chart-panel { padding: 26px; overflow: hidden; }
#price-chart { width: 100%; display: block; }
.market-metrics { position: relative; z-index: 1; margin-top: 18px; }
.market-shell .market-chart-grid { position: relative; z-index: 1; }
.demo-notice { display:flex; align-items:flex-start; gap:14px; padding:18px 20px; margin-bottom:24px; border-color:rgba(13,107,69,.28); background:linear-gradient(120deg,rgba(13,107,69,.10),rgba(217,243,122,.12)); }
.demo-notice-mark { display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border-radius:50%; color:#fff; background:var(--chart-accent,#0d6b45); font-weight:800; }
.demo-notice strong { display:block; margin:1px 0 5px; }
.demo-notice p { margin:0; color:var(--muted,#657069); line-height:1.55; }
.compact-demo-notice { margin-top:-6px; }
