/* DESIGN.md adaptation: AKK identity, financial density, no remote assets. */
#app { background: var(--nx-bg); height: calc(100dvh - 3px); }
.nx-workspace { background: var(--nx-bg); }
button, input, select, textarea { font-family: inherit; }
button:disabled { cursor: not-allowed; opacity: .55; }
:where(button, a, input, select, textarea):focus-visible { outline: 2px solid #716297; outline-offset: 3px; }
.nx-btn-primary:focus-visible, .nx-sidebar-item.active:focus-visible { outline-color: var(--nx-green); }
.nx-eyebrow { color: var(--nx-text-muted); font-size: 11px; font-weight: 700; letter-spacing: .16em; line-height: 1.5; margin: 0 0 16px; }
.nx-eyebrow::before { content: ''; display: inline-block; width: 24px; height: 3px; background: var(--nx-green); vertical-align: middle; margin-right: 10px; }

/* Two-column sign-in; system fonts and text keep the preview self-contained. */
.nx-auth-screen { height: 100%; width: 100%; position: relative; overflow-y: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(440px, 1fr); align-items: center; background: var(--nx-card-bg); }
.nx-auth-story { align-self: stretch; padding: clamp(32px, 5vw, 80px); min-height: 650px; display: flex; flex-direction: column; justify-content: space-between; background: #1a005d; color: #fff; border-radius: 0 26px 26px 0; }
.nx-auth-wordmark { font-size: 38px; font-weight: 800; letter-spacing: -.06em; }
.nx-auth-wordmark span { display: block; font-size: 9px; font-weight: 600; letter-spacing: .22em; margin-top: 4px; color: #e5efca; }
.nx-auth-story-content { max-width: 510px; margin: 64px 0; }
.nx-auth-story .nx-eyebrow { color: #e5efca; }
.nx-auth-story h2 { font-size: clamp(36px, 4.1vw, 60px); line-height: 1.08; font-weight: 400; letter-spacing: -.035em; margin-bottom: 28px; }
.nx-auth-story-content > p:not(.nx-eyebrow) { font-size: 16px; line-height: 1.7; color: #cfcadd; max-width: 380px; }
.nx-auth-asset-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.nx-auth-asset-tags span { padding: 9px 14px; border: 1px solid #716297; border-radius: 999px; font-size: 12px; color: #e5efca; }
.nx-auth-caption { color: #cfcadd; font-size: 12px; line-height: 1.5; }
.nx-auth-card { margin: 88px auto 48px; padding: 32px; }
.nx-auth-card > .text-center { text-align: left; margin-bottom: 32px; }
.nx-auth-card > .text-center > .flex { justify-content: flex-start; margin-bottom: 28px; }
.nx-auth-card h1 { font-size: 28px; font-weight: 600; line-height: 1.2; }
.nx-auth-card h1 + p { font-size: 13px; line-height: 1.6; margin-top: 12px; }
.nx-auth-card form input:not([type="checkbox"]) { border-radius: 999px; min-height: 48px; }
.nx-auth-card button[type="submit"] { border-radius: 999px; min-height: 48px; box-shadow: none; background: #1a005d; color: #fff; }
.nx-auth-controls { z-index: 1; }
.nx-auth-controls button { border-radius: 999px; box-shadow: none; }

/* Overview: generous heading, a featured NAV, and compact secondary metrics. */
.nx-overview-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 8px 0 32px; }
.nx-overview-intro h1 { color: var(--nx-text-main); font-size: clamp(30px, 3.3vw, 48px); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; margin-bottom: 16px; }
.nx-overview-description { font-size: 14px; line-height: 1.6; color: var(--nx-text-muted); }
.nx-profile-caption { display: flex; align-items: center; gap: 8px; border: 1px solid var(--nx-border); padding: 10px 16px; border-radius: 999px; max-width: 260px; font-size: 12px; overflow-wrap: anywhere; background: var(--nx-card-bg); }
.nx-profile-dot { width: 7px; height: 7px; background: var(--nx-green); border-radius: 50%; flex-shrink: 0; }
.nx-overview-metrics.nx-overview-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.nx-overview-metrics > .nx-metric-card { min-height: 108px; }
.nx-overview-metrics > .nx-metric-card:first-child { grid-row: span 2; background: #1a005d; border-color: #1a005d; padding: 28px 24px; }
.nx-overview-metrics > .nx-metric-card:first-child .nx-metric-label { color: #e5efca; }
.nx-overview-metrics > .nx-metric-card:first-child .nx-metric-value { color: #fff; font-size: clamp(20px, 2vw, 30px); font-weight: 500; padding: 16px 0; }
.nx-overview-metrics > .nx-metric-card:first-child .nx-metric-sub { color: #cfcadd; }
.nx-overview-metrics .nx-metric-sub { white-space: normal; overflow: visible; line-height: 1.5; }

/* Shared components keep existing data and interaction bindings. */
#main-scroll-container { padding: 32px; scroll-padding: 24px; }
.nx-card { padding: 24px; margin-bottom: 24px; }
.nx-card > h3:first-child { font-size: 15px; margin-bottom: 24px; }
.nx-table th { background: var(--nx-navy); padding-top: 13px; padding-bottom: 13px; }
.nx-table td { padding-top: 12px; padding-bottom: 12px; }
.nx-modal { border-radius: 26px; box-shadow: var(--nx-shadow-lg); }
#app .nx-modal-content { background: var(--nx-card-bg); border-radius: 26px; box-shadow: var(--nx-shadow-lg); max-height: 90dvh; }
.nx-modal-header { padding: 22px 24px; }
.nx-modal-body { padding: 24px; }
.nx-modal-footer { padding: 18px 24px; background: var(--nx-card-subtle); }
.nx-textarea { border-radius: 16px; }
.nx-input, .nx-select { border-radius: 999px; }
.nx-sidebar-item { min-height: 44px; }
.nx-sidebar-item:hover { background: var(--nx-green-light); }
.nx-sidebar-item.active .nx-icon { color: #8ec300 !important; }
.nx-sidebar-header img { height: 48px; width: auto; }
.nx-sidebar-container.collapsed .nx-sidebar-header img { height: 28px; }
.nx-sidebar-container.collapsed { width: 76px; }
.nx-sidebar-container.collapsed .nx-sidebar-header { padding: 22px 12px; flex-direction: column; gap: 16px; }
.nx-sidebar-container.collapsed .nx-sidebar-search { padding: 12px; }
.nx-sidebar-container.collapsed .nx-sidebar-group { padding: 0; }
.nx-desktop-control { display: flex; }
.nx-mobile-control.nx-mobile-control { display: none; }
.dark :where(button, a, input, select, textarea):focus-visible { outline-color: #bbdb66; }
.dark .nx-overview-metrics > .nx-metric-card:first-child { border-color: #716297; }
.nx-bottom-nav { background: var(--nx-card-bg); }
.nx-toast-success { color: #1a005d; }
.nx-toast { max-width: min(420px, calc(100vw - 32px)); overflow-wrap: anywhere; }

/* Sector board: flat line icon and monochrome financial states. */
.nx-sector-board { --board-ink: #202020; --board-muted: #808080; --board-neutral: #606060; --board-heading: #f0f0f0; }
.dark .nx-sector-board { --board-ink: #f3f4f6; --board-muted: #9ca3af; --board-neutral: #bfc3cb; --board-heading: #1e293b; }
.nx-sector-heading-icon { width: 32px; height: 32px; color: var(--nx-text-muted); }
.nx-sector-board .nx-sector-table th { color: var(--board-neutral); background: var(--board-heading); }
.nx-sector-board .nx-sector-table td { color: var(--board-ink); }
.nx-sector-board .nx-sector-table .nx-price-up { color: var(--board-ink); }
.nx-sector-board .nx-sector-table .nx-price-down,
.nx-sector-board .nx-sector-table .nx-price-missing { color: var(--board-muted); }
.nx-sector-board .nx-sector-table .nx-price-flat { color: var(--board-neutral); }
.nx-sector-board .nx-sector-table svg { color: var(--board-neutral); }

@media (min-width: 1200px) {
  .nx-sidebar-container:not(.collapsed) { width: 256px; }
}
@media (min-width: 1280px) {
  .nx-sidebar-container:not(.collapsed) { width: 304px; }
}
@media (max-width: 1199px) {
  .nx-mobile-control.nx-mobile-control { display: flex; }
  .nx-desktop-control { display: none; }
  .nx-sidebar-container { box-shadow: var(--nx-shadow-lg); }
  /* A collapsed desktop menu still exposes labels in the mobile drawer. */
  .nx-sidebar-container.collapsed .nx-sidebar-header > [style] { display: flex !important; }
  .nx-sidebar-container.collapsed .nx-sidebar-header > div:nth-child(2) { display: none !important; }
  .nx-sidebar-container.collapsed .nx-sidebar-header { flex-direction: row; padding: 24px; }
  .nx-sidebar-container.collapsed :is(.nx-sidebar-label, .nx-label, .nx-badge, .nx-sidebar-footer-text, .nx-search-text) { display: block !important; }
  .nx-sidebar-container.collapsed .nx-sidebar-group-title { display: block !important; }
  .nx-sidebar-container.collapsed .nx-sidebar-item { justify-content: flex-start; gap: 10px; padding: 12px; }
  .nx-sidebar-container.collapsed .nx-sidebar-search { padding: 16px 24px 8px; }
  .nx-sidebar-container.collapsed .nx-sidebar-search-box { justify-content: flex-start; gap: 8px; padding: 10px 12px; }
  #main-scroll-container { padding: 24px 24px 100px; }
  .nx-toast-container { bottom: calc(80px + env(safe-area-inset-bottom, 0px)); right: 16px; }
  .nx-metric-card { padding: 18px !important; }
  .nx-card { padding: 20px !important; border-radius: 16px !important; }
  .nx-modal { padding: 0 !important; border-radius: 26px !important; max-height: 90dvh !important; }
  .nx-modal-header { margin-bottom: 0 !important; padding: 20px !important; }
}
@media (max-width: 899px) {
  .nx-auth-screen { display: flex; justify-content: center; align-items: flex-start; padding: 72px 16px 32px; background: var(--nx-bg); }
  .nx-auth-story { display: none; }
  .nx-auth-card { margin: auto; padding: 32px 24px; background: var(--nx-card-bg); border: 1px solid var(--nx-border); border-radius: 26px; }
  .nx-auth-card h1 { font-size: 26px; }
  .nx-overview-intro { align-items: flex-start; flex-direction: column; gap: 16px; padding-bottom: 24px; }
  .nx-overview-metrics.nx-overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nx-overview-metrics > .nx-metric-card:first-child { grid-column: span 2; grid-row: auto; min-height: 160px; }
  .nx-overview-metrics > .nx-metric-card:first-child .nx-metric-value { font-size: 30px !important; }
}
@media (max-width: 599px) {
  #main-scroll-container { padding: 24px 16px 100px; }
  .nx-top-navbar { gap: 8px; padding: 12px; }
  .nx-top-navbar h2 { font-size: 13px; }
  .nx-overview-intro .nx-eyebrow { font-size: 10px; margin-bottom: 12px; }
  .nx-overview-description { font-size: 13px; }
  .nx-overview-metrics { gap: 12px; }
  .nx-metric-card { padding: 16px !important; }
  .nx-btn { padding: 9px 14px; }
  .nx-modal-body, .nx-modal-footer { padding: 16px; }
  .nx-modal-footer { flex-wrap: wrap; }
  .nx-card { padding: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
