/* Canonical CSS owner: market. Historical layers consolidated 2026-08-02. */ @media (max-width: 720px) { .stock-dialog { width: calc(-16px + 100vw); max-width: none; max-height: calc(-20px + 100dvh); border-radius: 8px; } } .detail-section h3 { margin: 0px; font-size: 14px; letter-spacing: 0px; } .note-row { display: grid; grid-template-columns: 100px minmax(0px, 1fr) minmax(0px, 1fr) auto; gap: 14px; align-items: start; padding: 11px 0px; border-bottom: 1px solid var(--line); } .note-row small, .note-row time { color: var(--text-muted); font-size: 12px; } .note-block strong { display: block; margin-bottom: 4px; font-size: 12px; } .note-block p { margin: 0px; overflow-wrap: anywhere; line-height: 1.6; white-space: pre-wrap; } .risk-note { color: rgb(104, 118, 129); } .stock-chart-section { padding: 14px 18px 10px; border-bottom: 1px solid var(--line); } .detail-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; } .detail-section-heading h3 { margin: 0px; font-size: 14px; } .detail-section-heading span { color: var(--text-muted); font-size: 12px; } .chart-heading-controls { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0px; } .chart-mode-toggle.segmented { height: 28px; flex: 0 0 auto; } .chart-mode-toggle .segment { min-width: 44px; padding: 0px 9px; font-size: 12px; } .price-chart { width: 100%; height: 300px; display: block; background: rgb(251, 252, 253); border: 1px solid var(--line); } .moneyflow-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 12px 0px 0px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); } .moneyflow-grid div { min-height: 62px; padding: 9px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); } .moneyflow-grid dt { color: var(--text-muted); font-size: 12px; } .moneyflow-grid dd { margin: 6px 0px 0px; font-weight: 700; } .inline-edit-form { display: flex; gap: 8px; margin-top: 12px; } .compact-form { margin-top: 12px; } .compact-form textarea { min-height: 78px; } .compact-notes { margin-top: 14px; } .compact-notes .note-row { grid-template-columns: 90px minmax(0px, 1fr) minmax(0px, 1fr) auto; } .detail-code { color: var(--text-muted); font-size: 12px; } .detail-price-line { display: flex; align-items: center; gap: 12px; padding: 18px; border-bottom: 1px solid var(--line); } .detail-price-line strong { color: var(--coral); font-size: 30px; } .detail-price-line > span:nth-child(2) { color: var(--coral); font-size: 17px; } .detail-section { padding: 18px; border-bottom: 1px solid var(--line); } .detail-section p { line-height: 1.8; } .sector-chip { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 4px; white-space: nowrap; background: var(--blue-soft); color: var(--blue-dark); font-size: 12px; } .detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0px; margin: 12px 0px 0px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); } .detail-grid div { min-height: 68px; padding: 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); } .detail-grid dt { color: var(--text-muted); font-size: 12px; } .detail-grid dd { margin: 7px 0px 0px; font-weight: 700; } .stock-preview-trigger { cursor: pointer; text-decoration: underline transparent; text-underline-offset: 3px; transition: color var(--motion-fast) ease, text-decoration-color var(--motion-fast) ease, background-color var(--motion-fast) ease; } .stock-preview-trigger:hover { color: var(--action); text-decoration-color: currentcolor; } .stock-preview-trigger:focus-visible { color: var(--action); text-decoration-color: currentcolor; outline: rgba(29, 101, 193, 0.42) solid 2px; outline-offset: -2px; } .stock-preview-backdrop { display: none; } .stock-preview-backdrop[hidden], .stock-preview-loading[hidden], .stock-preview[hidden] { display: none; } .stock-preview { width: 520px; height: 398px; position: fixed; z-index: 65; display: grid; grid-template-rows: 64px 38px 230px 30px 36px; overflow: hidden; border: 1px solid var(--border-strong); border-radius: 8px; background: var(--surface); box-shadow: rgba(24, 34, 45, 0.2) 0px 18px 48px; animation: stock-preview-enter var(--motion-medium) var(--ease-out) both; } @keyframes stock-preview-enter { 0% { opacity: 0; transform: translateY(5px) scale(0.985); } 100% { opacity: 1; transform: translateY(0px) scale(1); } } .stock-preview-header { min-width: 0px; display: grid; grid-template-columns: minmax(0px, 1fr) auto 32px; align-items: center; gap: 12px; padding: 8px 10px 8px 14px; border-bottom: 1px solid var(--border); } .stock-preview-identity { min-width: 0px; display: grid; grid-template-columns: auto minmax(0px, 1fr); align-items: baseline; column-gap: 8px; } .stock-preview-identity > span { color: var(--text-secondary); font-size: 12px; font-variant-numeric: tabular-nums; } .stock-preview-identity > strong { min-width: 0px; overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; } .stock-preview-identity > small { grid-column: 1 / -1; margin-top: 3px; overflow: hidden; color: var(--text-secondary); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .stock-preview-quote { display: flex; align-items: baseline; gap: 7px; font-variant-numeric: tabular-nums; } .stock-preview-quote > strong { font-size: 21px; } .stock-preview-quote > span { font-size: 13px; font-weight: 700; } .stock-preview-close { width: 30px; min-height: 30px; border-color: transparent; background: transparent; } .stock-preview-close .lucide { width: 16px; height: 16px; } .stock-preview-tabs { display: flex; align-items: stretch; padding: 0px 10px; border-bottom: 1px solid var(--border); } .stock-preview-tab { min-width: 62px; padding: 0px 12px; border-width: 0px 0px 2px; border-style: none none solid; border-color: currentcolor currentcolor transparent; border-image: none; background: transparent; color: var(--text-secondary); cursor: pointer; font-size: 12px; } .stock-preview-tab:hover { color: var(--text-primary); } .stock-preview-tab.active { border-bottom-color: var(--action); color: var(--action); font-weight: 700; } .stock-preview-tabs > span { align-self: center; margin-left: auto; color: var(--text-secondary); font-size: 11px; } .stock-preview-chart-shell { min-width: 0px; position: relative; padding: 6px 10px 2px; background: var(--chart-background); } .stock-preview-chart-shell canvas { width: 100%; height: 220px; display: block; } .stock-preview-loading { position: absolute; inset: 6px 10px 2px; display: flex; align-items: center; justify-content: center; gap: 9px; background: var(--chart-background); color: var(--text-secondary); font-size: 12px; } .stock-preview-loading .spinner { width: 18px; height: 18px; } .stock-preview-summary { min-width: 0px; margin: 0px; padding: 5px 12px; overflow: hidden; color: var(--text-secondary); font-size: 11px; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; } .stock-preview-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 3px 8px 3px 12px; border-top: 1px solid var(--border); } .stock-preview-footer > span { min-width: 0px; overflow: hidden; color: var(--text-secondary); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .stock-preview-footer .button { min-height: 28px; display: inline-flex; align-items: center; gap: 6px; padding: 0px 9px; border-color: transparent; color: var(--action); font-size: 12px; } .stock-preview-footer .lucide { width: 14px; height: 14px; } @media (max-width: 720px) { body.stock-preview-open { overflow: hidden; } .stock-preview-backdrop:not([hidden]) { position: fixed; inset: 0px; z-index: 70; display: block; background: rgba(23, 26, 31, 0.3); animation: preview-backdrop-enter var(--motion-medium) ease both; } @keyframes preview-backdrop-enter { 0% { opacity: 0; } 100% { opacity: 1; } } .stock-preview { width: 100%; height: min(490px, -64px + 100dvh); max-height: calc(-64px + 100dvh); z-index: 80; grid-template-rows: 64px 40px minmax(210px, 1fr) 34px 42px; border-right: 0px; border-bottom: 0px; border-left: 0px; border-radius: 8px 8px 0px 0px; animation-name: stock-preview-sheet-enter; inset: auto 0px 0px !important; } @keyframes stock-preview-sheet-enter { 0% { opacity: 0; transform: translateY(24px); } 100% { opacity: 1; transform: translateY(0px); } } .stock-preview-chart-shell canvas { height: 100%; min-height: 210px; } .stock-preview-summary { padding-right: 10px; padding-left: 10px; } } @media (max-width: 860px) { .note-row { grid-template-columns: 86px minmax(0px, 1fr) auto; } .note-row .note-block:nth-of-type(2) { grid-column: 2 / -1; } .moneyflow-grid { grid-template-columns: repeat(2, 1fr); } .risk-note { display: none; } } @media (max-width: 520px) { .chart-mode-toggle.segmented { width: auto; } .detail-section-heading { align-items: flex-start; gap: 8px; } .chart-heading-controls { flex-wrap: wrap; } .stock-dialog { margin: 8px auto; max-height: calc(-16px + 100vh); } .price-chart { height: 240px; } .compact-notes .note-row, .note-row { grid-template-columns: 1fr auto; } .note-row .note-block, .note-row .note-block:nth-of-type(2) { grid-column: 1 / -1; } } .entity-detail-dialog .detail-grid div { min-width: 0px; } .entity-detail-dialog .detail-grid dd { overflow-wrap: anywhere; } @media (max-width: 720px) { .entity-detail-dialog .detail-grid { grid-template-columns: repeat(2, minmax(0px, 1fr)); } } .inline-edit-form input { min-width: 0px; height: 32px; flex: 1 1 0%; padding: 0px 8px; border: 1px solid var(--line-strong); border-radius: 4px; } :is(.global-search-dialog, .stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) { --dialog-line: #e1e6ec; --dialog-line-strong: #cfd7e1; --dialog-muted: #f7f9fb; --dialog-ink: #1f2937; --dialog-sub: #687586; border: 1px solid var(--dialog-line-strong); border-radius: 10px; background: rgb(255, 255, 255); color: var(--dialog-ink); box-shadow: rgba(25, 36, 48, 0.2) 0px 26px 72px, rgba(25, 36, 48, 0.08) 0px 4px 14px; } :is(.global-search-dialog, .stock-dialog, .settings-dialog:not(.heaven-reading-dialog))::backdrop { background: rgba(28, 39, 50, 0.46); backdrop-filter: blur(3px); } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog))[open] { animation: 180ms cubic-bezier(0.2, 0.78, 0.25, 1) 0s 1 normal both running stage18-dialog-enter; } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) .dialog-header { position: sticky; top: 0px; z-index: 8; min-height: 66px; padding: 12px 18px; border-bottom: 1px solid var(--dialog-line); background: rgba(255, 255, 255, 0.97); backdrop-filter: blur(10px); } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) .dialog-header h2 { margin: 2px 0px 0px; color: var(--dialog-ink); font-size: 18px; font-weight: 740; line-height: 1.25; } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) :is(.dialog-eyebrow, .detail-code) { color: rgb(123, 135, 149); font-size: 10.5px; font-weight: 620; line-height: 1.2; } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) .dialog-header .icon-button { width: 34px; height: 34px; border-radius: 7px; color: rgb(89, 102, 120); } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) .dialog-header .icon-button:hover { border-color: rgb(190, 200, 212); background: rgb(245, 247, 250); } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) :is(input, select, textarea):focus-visible { border-color: rgb(142, 175, 233); outline: 0px; box-shadow: rgba(37, 99, 235, 0.09) 0px 0px 0px 3px; } .stock-dialog { border-radius: 9px; width: min(810px, -24px + 100vw); max-height: calc(-24px + 100dvh); margin: 12px 12px 12px auto; overflow: hidden auto; overscroll-behavior: contain; } .stock-dialog .dialog-header-actions { flex-wrap: wrap; justify-content: flex-end; gap: 7px; } .stock-dialog .dialog-header-actions .button { min-height: 32px; padding-inline: 10px; border-radius: 7px; font-size: 11px; } .stock-dialog .detail-price-line { gap: 11px; padding: 15px 18px 14px; border-color: var(--dialog-line); background: linear-gradient(rgb(255, 255, 255) 0%, rgb(251, 252, 254) 100%); } .stock-dialog .detail-price-line strong { font-size: 29px; line-height: 1; } .stock-dialog .detail-price-line > span:nth-child(2) { font-size: 14px; font-weight: 650; } .stock-dialog .streak-pill { padding: 4px 7px; border-radius: 5px; font-size: 10px; } .stock-dialog .stock-chart-section { padding: 15px 18px 14px; border-color: var(--dialog-line); } .stock-dialog .detail-section-heading { margin-bottom: 10px; } .stock-dialog .detail-section h3, .stock-dialog .detail-section-heading h3 { color: rgb(38, 51, 66); font-size: 13.5px; font-weight: 720; } .stock-dialog .chart-heading-controls > span { max-width: 240px; overflow: hidden; color: rgb(122, 134, 149); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; } .stock-dialog .chart-mode-toggle.segmented { height: 30px; padding: 2px; border-radius: 7px; } .stock-dialog .chart-mode-toggle .segment { min-width: 43px; border-radius: 5px; font-size: 11px; } .stock-dialog .price-chart { height: 282px; border-color: var(--dialog-line); border-radius: 7px; background: rgb(251, 252, 253); } .stock-dialog .detail-section { padding: 15px 18px; border-color: var(--dialog-line); } .stock-dialog .detail-section > h3 { margin: 0px 0px 11px; } .stock-dialog .moneyflow-grid { overflow: hidden; margin-top: 10px; border: 1px solid var(--dialog-line); border-radius: 7px; background: rgb(255, 255, 255); grid-template-columns: repeat(4, minmax(0px, 1fr)); } .stock-dialog .detail-grid { overflow: hidden; margin-top: 10px; border: 1px solid var(--dialog-line); border-radius: 7px; background: rgb(255, 255, 255); grid-template-columns: repeat(3, minmax(0px, 1fr)); } .stock-dialog :is(.moneyflow-grid, .detail-grid) > div { min-height: 58px; padding: 10px 11px; border-top: 0px; border-left: 0px; border-image: none; border-right: 1px solid var(--dialog-line); border-bottom: 1px solid var(--dialog-line); background: rgb(255, 255, 255); } .stock-dialog .moneyflow-grid > div:last-child { border-right: 0px; } .stock-dialog .detail-grid > div:nth-child(3n) { border-right: 0px; } .stock-dialog .detail-grid > div:nth-last-child(-n+3) { border-bottom: 0px; } .stock-dialog :is(.moneyflow-grid, .detail-grid) dt { color: rgb(123, 135, 148); font-size: 10.5px; } .stock-dialog :is(.moneyflow-grid, .detail-grid) dd { margin-top: 5px; font-size: 13px; } .stock-dialog .inline-edit-form input { min-width: 0px; flex: 1 1 0%; } .stock-dialog .journal-form.compact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 0px; padding: 0px; } .stock-dialog .journal-form.compact-form .dialog-actions { grid-column: 1 / -1; } .stock-dialog .compact-form textarea { min-height: 84px; } .stock-dialog .compact-notes { max-height: 240px; overflow-y: auto; } .entity-detail-dialog .detail-grid { grid-template-columns: repeat(3, minmax(0px, 1fr)); } @media (max-width: 760px) { :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog), .global-search-dialog) { width: calc(-16px + 100vw); max-width: none; max-height: calc(-16px + 100dvh); margin: 8px auto; border-radius: 8px; } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) .dialog-header { min-height: 60px; padding: 10px 12px; } :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog)) .dialog-header h2 { font-size: 16px; } .stock-dialog .dialog-header { align-items: flex-start; } .stock-dialog .dialog-header-actions { gap: 5px; } .stock-dialog .dialog-header-actions .button { min-height: 30px; padding-inline: 8px; } .stock-dialog .dialog-header-actions .button span { display: none; } .stock-dialog .detail-price-line, .stock-dialog .detail-section, .stock-dialog .stock-chart-section { padding-inline: 13px; } .stock-dialog .price-chart { height: 236px; } .stock-dialog .moneyflow-grid { grid-template-columns: repeat(2, minmax(0px, 1fr)); } .stock-dialog .moneyflow-grid > div:nth-child(2n) { border-right: 0px; } .stock-dialog .moneyflow-grid > div:nth-last-child(-n+2) { border-bottom: 0px; } .entity-detail-dialog .detail-grid, .stock-dialog .detail-grid { grid-template-columns: repeat(2, minmax(0px, 1fr)); } .stock-dialog .detail-grid > div:nth-child(3n) { border-right: 1px solid var(--dialog-line); } .stock-dialog .detail-grid > div:nth-child(2n) { border-right: 0px; } .stock-dialog .detail-grid > div:nth-last-child(-n+3) { border-bottom: 1px solid var(--dialog-line); } .stock-dialog .detail-grid > div:nth-last-child(-n+2) { border-bottom: 0px; } .stock-dialog .journal-form.compact-form { grid-template-columns: 1fr; } .stock-dialog .journal-form.compact-form .dialog-actions { grid-column: auto; } } @media (max-width: 460px) { .entity-detail-dialog .detail-grid, .stock-dialog .detail-grid, .stock-dialog .moneyflow-grid { grid-template-columns: 1fr; } .stock-dialog :is(.moneyflow-grid, .detail-grid) > div { border-right: 0px !important; border-bottom: 1px solid var(--dialog-line) !important; } .stock-dialog :is(.moneyflow-grid, .detail-grid) > div:last-child { border-bottom: 0px !important; } } @media (prefers-reduced-motion: reduce) { :is(.stock-dialog, .settings-dialog:not(.heaven-reading-dialog))[open] { animation: auto ease 0s 1 normal none running none; } } :root[data-theme="dark"] :is(dialog, .stock-dialog, .settings-dialog, .global-search-dialog, .strategy-drawer) { border-color: var(--border-strong); background: var(--surface); color: var(--text-primary); box-shadow: var(--shadow); } :root[data-theme="dark"] :is(.dialog-header, .global-search-head, .settings-section, .detail-section, .stock-chart-section) { border-color: var(--line-soft); background-color: var(--surface); } :root[data-theme="dark"] :is(.price-chart, .stock-preview-chart, .entity-detail-chart) { border-color: var(--border); background: var(--chart-background); } :root[data-theme="dark"] .stock-dialog { --dialog-line: var(--line-soft); --dialog-line-strong: var(--border-strong); --dialog-muted: var(--surface-muted); --dialog-ink: var(--text-primary); --dialog-sub: var(--text-secondary); } :root[data-theme="dark"] .stock-dialog .dialog-header { border-color: var(--dialog-line); background: var(--surface); } :root[data-theme="dark"] .stock-dialog :is(.dialog-header h2, .detail-section h3, .detail-section-heading h3) { color: var(--dialog-ink); } :root[data-theme="dark"] .stock-dialog :is(.dialog-eyebrow, .detail-code, .chart-heading-controls > span) { color: var(--text-secondary); } :root[data-theme="dark"] .stock-dialog .dialog-header .icon-button { color: var(--text-secondary); } :root[data-theme="dark"] .stock-dialog .dialog-header .icon-button:hover { border-color: var(--border-strong); background: var(--surface-subtle); } :root[data-theme="dark"] .stock-dialog .detail-price-line { border-color: var(--dialog-line); background: var(--surface-muted); } :root[data-theme="dark"] .stock-dialog :is(.moneyflow-grid, .detail-grid) { border-color: var(--dialog-line); background: var(--surface-muted); } :root[data-theme="dark"] .stock-dialog :is(.moneyflow-grid, .detail-grid) > div { border-color: var(--dialog-line); background: var(--surface); } :root[data-theme="dark"] .stock-dialog :is(.moneyflow-grid, .detail-grid) dt { color: var(--text-secondary); } :root[data-theme="dark"] .stock-dialog :is(.moneyflow-grid, .detail-grid) dd { color: var(--text-primary); }