/* Revision 02: neutral graphite surfaces. Status colours retain their meaning. */
:root {
  --bg: #09090b;
  --panel: #121315;
  --panel-high: #191b1e;
  --side: #0d0e10;
  --line: #2a2d32;
  --line-soft: #22252a;
  --text: #e7e9ed;
  --muted: #a0a5ae;
  --dim: #828a96;
  background: var(--bg);
  color: var(--text);
}
body { background: var(--bg); }
.demo-bar { background: #1b1b1c; border-color: #343438; }
.sidebar, .topbar { background: var(--side); border-color: var(--line-soft); }
.space-card, .context-bar { background: #151619; border-color: #30333a; }
.space-avatar, .avatar { background: #20282b; border-color: #3d494d; }
.profile, .date-context { border-color: #30333a; }
.nav-item { color: #a4abb6; }
.nav-item > svg { color: #939eaa; }
.nav-item:hover { background: #1b1e21; }
.nav-item.active { background: linear-gradient(100deg, #1b3235, #192125); border-color: #315056; }
.brand > span > span { color: #a0a8b2; }
.brand > small { background: #1c292b; border-color: #344347; }
.workspace-label > span, .nav-group-label, .page-heading p, .timezone { color: #9098a4; }
.breadcrumb { color: #b5bbc5; }
.icon-btn:hover { background: #272b30; border-color: #3d444c; }
.button { background: #20242a; border-color: #3d444c; color: #c2c8d1; }
.button:hover { background: #2b3339; border-color: #5a7377; }
select, .context-bar select { background: #202328; border-color: #3c414a; color: #d2d6dd; }
.version-chip { background: #24252e; border-color: #3d3d4c; color: #a4a8c1; }
.context-divider { background: #363a42; }
.context-bar label > span, .account-context, .date-context, .stat-label { color: #a3aab5; }
.stat { background: linear-gradient(135deg, #1b1d21, #141517); border-color: #30343a; }
.stat-sub, .panel-head p, .stock-code, .node-title small { color: #929daa; }
.panel { background: linear-gradient(135deg, #17191c, #121315 65%); border-color: var(--line); }
.segmented { background: #0e1013; border-color: #333941; }
.segmented button { color: #a5adb9; }
.segmented button.active { background: #273a3e; color: #a8e4e5; }
.segmented button:hover { background: #293136; }
.chart-foot, .preview-stocks > div, .panel-note { border-color: #2b3036; }
.chart-legend { color: #aeb6c1; }
.equity-chart text { fill: #969fab; }
.equity-chart line { stroke: #30353c; }
.model-icon { background: #203337; border-color: #40575b; }
.strategy-card { background: #14171b; border-color: #303840; }
.strategy-card.selected { background: linear-gradient(100deg, #1e3236, #1a2026); border-color: #47636a; }
.future-link { border-color: #3c444d; color: #9aa7b4; }
.badge.muted { background: #21252a; border-color: #414852; color: #a5b0bf; }
.table-wrap { scrollbar-color: #484f57 #141619; }
th { background: #202328; border-color: #343a42; color: #b4bdc9; }
td { border-color: #292d33; color: #c3c9d2; }
tbody tr:hover { background: #2a303644; }
.highlight-row { background: #263a3c55; }
.panel-note, .log-footer, .log-filters { background: #14171a; border-color: #2e343b; }
.log-item { border-color: #292e35; }
.log-item p { color: #c0c8d1; }
.log-item time, .log-item small, .cell-sub { color: #959faa; }
.log-list { background: #101214; }
.notice.quiet { background: #191d21; border-color: #353d45; color: #a1b0bd; }
.prediction-card { background: linear-gradient(140deg, #1b2528, #16181d); border-color: #36434a; }
.prediction-card::after { opacity: .28; }
.signal-label { border-color: #333d43; }
.account-hero { background: radial-gradient(ellipse at 82% 20%, #324b4a33, transparent 63%), linear-gradient(120deg, #191e21, #111315); border-color: #3a434a; }
.allocation-ring::before { background: #171c1f; }
.allocation-block, .allocation-legend > small { border-color: #394149; }
.capital-total, .small-divider, .compact-list > div { border-color: #343b43; }
.small-divider { background: #343b43; }
.position-summary { background: #181c20; border-color: #343b43; }
.position-summary > div, .position-summary > div:nth-child(odd) { border-color: #3a4149; }
.holdings-table td:first-child, .holdings-table th:first-child,
.daily-table-panel td:first-child, .daily-table-panel th:first-child { background: #1b2025; }
.daily-bars::before { border-color: #454d57; }
.future-panel { background: radial-gradient(ellipse at 50% 30%, #36474b22, transparent 65%), #121416; border-color: #30363e; }
.future-flow > span { background: #1c2328; border-color: #3a444e; }
dialog { background: #191d22; border-color: #48515c; color: #e0e5ea; }
dialog::backdrop { background: #040406bb; }
.dialog-head, .detail-grid > div { border-color: #343d47; }
.compare-dialog > section { background: #202830; border-color: #3a4856; }
#toast { background: #223237; border-color: #4b6b71; }

/* Review gallery follows the same neutral surface palette. */
.review-page .review-notice { background: #1b1b1d; border-color: #3c3a3f; }
.review-page p { color: #a0a8b4; }
.review-page .review-brand > span { color: #a6a0b4; }
.review-page .tags > span { background: #1b2025; border-color: #39444d; }
.review-page .palette > span { background: #1b1d21; border-color: #363a43; }
.review-page .palette small { color: #8995a3; }
.review-page .review-nav { background: #09090bf5; border-color: #30353d; }
.review-page .review-nav a:hover { background: #202e32; }
.review-page .hero-shot, .review-page .desktop-grid > article,
.review-page .state-grid > article, .review-page .mobile-strip > article,
.review-page .guide-grid article, .review-page .check-panel { background: #17191d; border-color: #343a43; }
.review-page .desktop-grid article > a { background: #09090b; }
.review-page .hero-shot img, .review-page .desktop-grid .shot-heading,
.review-page .mobile-strip a { border-color: #343a43; }
.review-page .mobile-strip { scrollbar-color: #48545c #13171b; }
.review-page .review-stop { background: linear-gradient(120deg, #202b2e, #191c24); border-color: #48575f; }
.review-page th { background: #252a31; border-color: #414a55; }
.review-page td { border-color: #303841; }

/* Minimal, purpose-neutral entry. Local generated stargazer artwork. */
main.entry-page#main {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  max-width: none;
  padding: 110px 7.7%;
  margin: 0;
  overflow: hidden;
  background: #070709;
}
.entry-sky { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: #070709; }
.entry-background { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 90% 50%; filter: saturate(.76) brightness(.88); }
.entry-sky::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #050509bd 0%, #05050966 34%, #05050908 57%, #05050922 100%), linear-gradient(180deg, #05050918, transparent 66%, #05050930); }
.entry-content { position: relative; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .86fr); align-items: center; gap: clamp(50px, 7.6vw, 132px); width: 100%; max-width: 1250px; margin: 0 auto; padding-bottom: 56px; }
/* Emphasise the consequence: time is the cost, the last sentence is the warning. */
.entry-quote { position: relative; margin: 0; padding: 0 0 4px; font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; font-size: inherit; font-weight: 400; letter-spacing: 0; line-height: 1; color: #efede9; text-shadow: 0 2px 22px #000b; }
.quote-premise { display: block; margin: 0 0 32px 3px; font-size: 16px; line-height: 1.85; letter-spacing: .1em; color: #a6a4a4; }
.quote-premise > span { display: block; white-space: nowrap; }
.quote-consequence, .quote-warning { display: block; }
.quote-cost { display: block; margin: 0 0 17px 3px; font-size: 25px; font-weight: 400; line-height: 1.5; letter-spacing: .06em; color: #c2bfc0; white-space: nowrap; }
.quote-time { position: relative; display: inline-block; margin-left: .12em; color: #e4cba7; font-size: 1.06em; font-weight: 550; }
.quote-time::after { content: ""; position: absolute; left: .02em; right: .04em; bottom: -.02em; height: 1px; background: #b69a6c80; }
.quote-cope { display: block; width: max-content; font-size: clamp(43px, 3.8vw, 57px); line-height: 1.25; font-weight: 520; letter-spacing: .07em; color: #dfdddc; }
.quote-unwanted { display: block; width: max-content; margin-top: 9px; font-size: clamp(45px, 4.2vw, 64px); line-height: 1.28; font-weight: 600; letter-spacing: .03em; white-space: nowrap; color: #f5f0e8; }
.quote-period { display: inline-block; margin-left: -.05em; font-size: .6em; color: #c6b397; }
.entry-panel { width: 100%; padding: 36px 32px 38px; border: 1px solid #e3ddff26; background: linear-gradient(130deg, #1b1a20ba, #121217a6); border-radius: 16px; backdrop-filter: blur(16px); box-shadow: 0 24px 80px #0003; }
.entry-panel h2 { font-size: 26px; font-weight: 480; letter-spacing: .12em; margin: 0 0 30px; color: #eae9ef; }
.entry-panel #demo-login > label { color: #afacba; font-size: 12px; display: block; margin: 22px 0 10px; }
.entry-input { display: flex; align-items: center; min-height: 51px; border: 1px solid #e5e0ff21; background: #0b0b0e66; border-radius: 6px; }
.entry-input:focus-within { border-color: #c2b6e58c; box-shadow: 0 0 0 3px #b6a6e312; }
.entry-input input { width: 100%; min-width: 0; padding: 15px; border: 0; border-radius: inherit; background: transparent; color: #d0cdd9; font-size: 14px; font-family: inherit; outline: none; letter-spacing: .06em; }
.entry-input input[type=password] { letter-spacing: .25em; }
.entry-submit { display: flex; justify-content: center; align-items: center; width: 100%; min-height: 50px; margin-top: 32px; border: 1px solid #efebf9; border-radius: 6px; background: #e3dfee; color: #24212d; font-size: 14px; font-weight: 600; letter-spacing: .2em; }
.entry-submit:hover { background: #f5f0ff; border-color: #fff; }
.entry-submit:active { background: #cfc8df; }
.entry-page :focus-visible { outline-color: #c4b6e8; }
.entry-preview-note { position: absolute; bottom: 14px; left: 0; right: 0; margin: 0; text-align: center; font-size: 10px; color: #898391; letter-spacing: .08em; }
@media (max-width: 1000px) {
  main.entry-page#main { padding: 85px 6%; }
  .entry-content { grid-template-columns: minmax(0, 1.25fr) minmax(275px, 1fr); gap: 40px; }
  .quote-premise { font-size: 14px; margin-bottom: 26px; }
  .quote-cost { font-size: 20px; margin-bottom: 13px; }
  .quote-cope { font-size: 39px; }
  .quote-unwanted { font-size: 41px; letter-spacing: .02em; }
  .entry-panel { padding: 30px 25px; }
}
@media (max-width: 700px) {
  main.entry-page#main { display: block; padding: 36px 27px 78px; }
  .entry-content { display: block; max-width: 390px; padding-bottom: 0; }
  .entry-quote { height: 244px; margin: 0 0 170px; padding: 0; }
  .quote-premise { margin: 0 0 23px 1px; font-size: 12px; line-height: 1.75; letter-spacing: .09em; }
  .quote-cost { margin: 0 0 12px 1px; font-size: 17px; line-height: 1.5; letter-spacing: .04em; }
  .quote-cope { font-size: clamp(31px, 8.6vw, 37px); line-height: 1.22; letter-spacing: .07em; }
  .quote-unwanted { font-size: clamp(32px, 9.3vw, 40px); line-height: 1.25; letter-spacing: .02em; margin-top: 7px; }
  .entry-sky { height: 445px; }
  .entry-background { object-position: 48% 100%; filter: saturate(.76) brightness(.88); }
  .entry-sky::after { background: linear-gradient(180deg, #07070977 0%, #07070925 45%, transparent 72%, transparent 94%, #070709 100%), linear-gradient(90deg, #07070944, transparent 75%); }
  .entry-panel { padding: 26px 24px 29px; background: linear-gradient(130deg, #19181eb3, #111116a3); border-radius: 13px; }
  .entry-panel h2 { font-size: 23px; margin-bottom: 24px; }
  .entry-panel #demo-login > label { margin-top: 20px; }
  .entry-input { min-height: 49px; }
  .entry-submit { min-height: 49px; margin-top: 27px; }
  .entry-preview-note { bottom: 23px; font-size: 9px; }
}
