    :root {
      color-scheme: dark;
      --bg: #050914;
      --surface: rgba(13, 24, 42, 0.9);
      --surface-2: rgba(18, 33, 53, 0.94);
      --surface-3: rgba(255, 255, 255, 0.055);
      --ink: #eef4f8;
      --muted: #9fb0be;
      --line: rgba(147, 171, 192, 0.22);
      --accent: #5fb7c8;
      --accent-2: #d29a55;
      --danger: #ff8b7f;
      --warn: #efbc68;
      --ok: #83d6a4;
      --blue: #8bb7ff;
      --violet: #b6a4ff;
      --shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
      --body-gradient: linear-gradient(145deg, rgba(3, 7, 18, 0.98), rgba(7, 20, 38, 0.98) 48%, rgba(4, 15, 30, 0.98));
      --app-gradient:
        linear-gradient(180deg, rgba(255,255,255,0.055) 0, transparent 260px),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.016) 0 1px, transparent 1px 76px);
      --chrome-bg: rgba(5, 10, 22, 0.9);
    }

    * { box-sizing: border-box; }

    html,
    body {
      max-width: 100%;
      overflow-x: hidden;
      overflow-x: clip;
    }

    body {
      margin: 0;
      color: var(--ink);
      background:
        var(--body-gradient),
        var(--bg);
      font-family: "Yu Gothic UI", "Hiragino Sans", "Meiryo", system-ui, sans-serif;
      line-height: 1.55;
    }

    body.theme-asset {
      --bg: #030b11;
      --surface: rgba(7, 22, 32, 0.92);
      --surface-2: rgba(9, 31, 44, 0.96);
      --surface-3: rgba(95, 183, 200, 0.085);
      --muted: #a3bac5;
      --line: rgba(95, 183, 200, 0.25);
      --accent: #5fb7c8;
      --accent-2: #8fd7e2;
      --body-gradient:
        radial-gradient(circle at 18% 0%, rgba(95,183,200,0.2), transparent 31%),
        linear-gradient(145deg, rgba(2,9,15,0.99), rgba(4,24,36,0.98) 48%, rgba(2,11,18,0.99));
      --app-gradient:
        linear-gradient(180deg, rgba(95,183,200,0.08) 0, transparent 260px),
        repeating-linear-gradient(90deg, rgba(95,183,200,0.025) 0 1px, transparent 1px 76px);
      --chrome-bg: rgba(3, 14, 22, 0.92);
      --shadow: 0 18px 48px rgba(0, 12, 18, 0.44);
    }

    body.theme-dividend {
      --bg: #130d04;
      --surface: rgba(34, 24, 8, 0.92);
      --surface-2: rgba(46, 32, 10, 0.96);
      --surface-3: rgba(239, 188, 104, 0.09);
      --muted: #c8b78f;
      --line: rgba(239, 188, 104, 0.25);
      --accent: #efbc68;
      --accent-2: #d29a55;
      --warn: #ffd48a;
      --body-gradient:
        radial-gradient(circle at 72% 0%, rgba(239,188,104,0.2), transparent 30%),
        linear-gradient(145deg, rgba(13,8,2,0.99), rgba(39,27,8,0.98) 50%, rgba(14,9,3,0.99));
      --app-gradient:
        linear-gradient(180deg, rgba(239,188,104,0.08) 0, transparent 260px),
        repeating-linear-gradient(90deg, rgba(239,188,104,0.025) 0 1px, transparent 1px 76px);
      --chrome-bg: rgba(20, 13, 4, 0.92);
      --shadow: 0 18px 48px rgba(18, 9, 0, 0.48);
    }

    body.theme-plan {
      --bg: #06120d;
      --surface: rgba(9, 30, 21, 0.92);
      --surface-2: rgba(12, 41, 28, 0.96);
      --surface-3: rgba(131, 214, 164, 0.09);
      --muted: #a9c7b5;
      --line: rgba(131, 214, 164, 0.25);
      --accent: #83d6a4;
      --accent-2: #b6e8c9;
      --body-gradient:
        radial-gradient(circle at 22% 0%, rgba(131,214,164,0.18), transparent 31%),
        linear-gradient(145deg, rgba(3,14,9,0.99), rgba(8,28,19,0.98) 50%, rgba(5,17,13,0.99));
      --app-gradient:
        linear-gradient(180deg, rgba(131,214,164,0.08) 0, transparent 260px),
        repeating-linear-gradient(90deg, rgba(131,214,164,0.024) 0 1px, transparent 1px 76px);
      --chrome-bg: rgba(5, 18, 12, 0.92);
      --shadow: 0 18px 48px rgba(0, 18, 8, 0.48);
    }

    body.command-overlay-open {
      overflow: hidden;
    }

    body.asset-locking {
      overflow: hidden;
    }

    .asset-lock-shield {
      position: fixed;
      inset: 0;
      z-index: 2147483647;
      display: grid;
      place-items: center;
      padding: 24px;
      color: #eef4f8;
      background: #050914;
      text-align: center;
    }

    .asset-lock-shield[hidden] {
      display: none;
    }

    .asset-lock-shield > div {
      display: grid;
      gap: 8px;
    }

    .asset-lock-shield strong {
      font-size: clamp(20px, 5vw, 34px);
    }

    .asset-lock-shield span {
      color: #b9c7d1;
    }

    button, input, select, textarea { font: inherit; }

    button {
      cursor: pointer;
      color: inherit;
    }

    .app {
      min-width: 0;
      max-width: 100%;
      min-height: 100vh;
      padding-bottom: 96px;
      background: var(--app-gradient);
    }

    .topbar {
      position: sticky;
      top: 0;
      z-index: 20;
      border-bottom: 1px solid var(--line);
      background: var(--chrome-bg);
      backdrop-filter: blur(14px);
    }

    .topbar-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      width: min(1180px, calc(100% - 28px));
      margin: 0 auto;
      padding: 12px 0;
    }

    .brand {
      min-width: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      column-gap: 8px;
      align-items: end;
    }

    .brand-title {
      grid-column: 1 / -1;
      margin: 0;
      font-size: 17px;
      font-weight: 900;
      letter-spacing: 0;
    }

    .brand-meta {
      min-width: 0;
      margin: 1px 0 0;
      color: var(--muted);
      font-size: 12px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .data-mode-badge {
      display: inline-flex;
      align-items: center;
      width: fit-content;
      margin: 1px 0 0;
      border: 1px solid rgba(239,188,104,0.42);
      border-radius: 999px;
      padding: 3px 8px;
      background: rgba(239,188,104,0.13);
      color: #f3d28b;
      font-size: 11px;
      font-weight: 900;
      line-height: 1.2;
      white-space: nowrap;
    }

    .data-mode-badge.real {
      border-color: rgba(131,214,164,0.48);
      background: rgba(131,214,164,0.13);
      color: #a9f0c2;
    }

    .top-actions {
      display: flex;
      gap: 8px;
      align-items: center;
      min-width: 0;
    }

    .top-actions button,
    .back-button,
    .ghost-button,
    .primary-button,
    .chip {
      min-height: 36px;
      border: 1px solid var(--line);
      border-radius: 7px;
      background: rgba(255,255,255,0.055);
      padding: 7px 11px;
      color: var(--ink);
      text-decoration: none;
      white-space: nowrap;
    }

    .primary-button {
      border-color: color-mix(in srgb, var(--accent), transparent 46%);
      background: color-mix(in srgb, var(--accent), transparent 80%);
      color: #e8fbff;
      font-weight: 800;
    }

    main {
      min-width: 0;
      max-width: 100%;
      width: min(1180px, calc(100% - 28px));
      margin: 0 auto;
      padding: 18px 0 104px;
    }

    .view { display: none; min-width: 0; max-width: 100%; }
    .view.active { display: block; }

    .panel,
    .metric-card,
    .meaning-card,
    .alert-card,
    .project-card,
    .holding-card,
    .command-tile,
    .chart-card,
    .task-card {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--surface);
      box-shadow: var(--shadow);
      backdrop-filter: blur(18px);
    }

    .panel { padding: 16px; }

    .view-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 14px;
    }

    .view-title { min-width: 0; }

    .eyebrow,
    .label {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    h1, h2, h3 {
      margin: 0;
      line-height: 1.32;
      letter-spacing: 0;
    }

    h1 { font-size: clamp(22px, 6vw, 34px); }
    h2 { font-size: 19px; }
    h3 { font-size: 15px; }

    .muted {
      color: var(--muted);
      margin: 0;
    }

    .summary-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
      gap: 14px;
      align-items: stretch;
    }

    .home-scene {
      min-height: calc(100vh - 178px);
      display: grid;
      grid-template-rows: auto minmax(360px, 1fr) auto;
      gap: 12px;
      position: relative;
      overflow: hidden;
      border: 1px solid rgba(130, 164, 190, 0.26);
      border-radius: 8px;
      padding: 14px;
      background:
        linear-gradient(180deg, rgba(8, 17, 31, 0.34), rgba(5, 10, 22, 0.9)),
        radial-gradient(circle at 76% 30%, rgba(95, 183, 200, 0.2), transparent 28%),
        linear-gradient(110deg, rgba(18, 33, 53, 0.96), rgba(6, 13, 27, 0.96));
      box-shadow: var(--shadow);
    }

    .home-scene::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      background:
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,0.022) 1px, transparent 1px);
      background-size: 64px 64px;
      mask-image: linear-gradient(180deg, rgba(0,0,0,0.8), rgba(0,0,0,0.16));
    }

    .home-kpi-strip {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }

    .home-kpi-card {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 8px;
      padding: 10px;
      background: rgba(5, 10, 22, 0.62);
      backdrop-filter: blur(14px);
    }

    .home-kpi-card strong {
      display: block;
      margin-top: 3px;
      font-size: clamp(18px, 4.8vw, 26px);
      line-height: 1.08;
      overflow-wrap: anywhere;
    }

    .character-zone {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: minmax(0, 0.82fr) minmax(260px, 0.72fr);
      align-items: end;
      gap: 12px;
    }

    .home-briefing {
      align-self: start;
      max-width: 620px;
      display: grid;
      gap: 10px;
    }

    .character-stage {
      min-height: 340px;
      position: relative;
      display: grid;
      align-items: end;
      justify-items: center;
      --sister-tone: var(--accent);
    }

    .character-stage::before {
      content: "";
      position: absolute;
      left: 50%;
      bottom: 8px;
      width: min(86%, 340px);
      height: 34%;
      transform: translateX(-50%);
      border: 1px solid color-mix(in srgb, var(--sister-tone), transparent 54%);
      border-radius: 8px;
      background:
        linear-gradient(180deg, color-mix(in srgb, var(--sister-tone), transparent 86%), rgba(5, 10, 22, 0.18)),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.045) 0 1px, transparent 1px 18px);
      opacity: 0.7;
    }

    .character-placeholder {
      width: min(82%, 320px);
      aspect-ratio: 0.58;
      position: relative;
      filter: drop-shadow(0 24px 36px rgba(0,0,0,0.42));
    }

    .asset-chan {
      isolation: isolate;
    }

    .asset-chan::before {
      content: "";
      position: absolute;
      inset: 8% 12% 2%;
      z-index: -1;
      border-radius: 999px 999px 24px 24px;
      background:
        linear-gradient(180deg, rgba(95,183,200,0.12), transparent 52%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.08) 0 1px, transparent 1px 18px);
      border: 1px solid rgba(95,183,200,0.16);
    }

    .asset-chan span {
      position: absolute;
      display: block;
    }

    .asset-chan-halo {
      left: 50%;
      top: 1%;
      width: 52%;
      aspect-ratio: 1;
      transform: translateX(-50%);
      border: 1px solid rgba(239,188,104,0.4);
      border-radius: 50%;
      background:
        conic-gradient(from 210deg, transparent 0 20%, rgba(239,188,104,0.5) 20% 28%, transparent 28% 58%, rgba(95,183,200,0.42) 58% 66%, transparent 66%);
      opacity: 0.78;
    }

    .asset-chan-hair {
      left: 50%;
      top: 8%;
      width: 46%;
      height: 29%;
      transform: translateX(-50%);
      border-radius: 48% 48% 42% 42%;
      background:
        radial-gradient(circle at 70% 18%, rgba(95,183,200,0.7), transparent 12%),
        linear-gradient(140deg, #202b39, #0b1321 62%, #050914);
      box-shadow: 0 0 0 8px rgba(10, 19, 34, 0.78);
    }

    .asset-chan-head {
      left: 50%;
      top: 14%;
      width: 34%;
      height: 21%;
      transform: translateX(-50%);
      border: 1px solid rgba(238,244,248,0.36);
      border-radius: 48% 48% 44% 44%;
      background:
        radial-gradient(circle at 36% 48%, #111927 0 3%, transparent 4%),
        radial-gradient(circle at 64% 48%, #111927 0 3%, transparent 4%),
        linear-gradient(180deg, #eef4f8, #ccd8df);
      box-shadow: inset 0 -9px 0 rgba(210,154,85,0.16);
    }

    .asset-chan-head::after {
      content: "";
      position: absolute;
      left: 41%;
      top: 64%;
      width: 18%;
      height: 4%;
      border-radius: 999px;
      background: rgba(255,139,127,0.54);
    }

    .asset-chan-visor {
      left: 50%;
      top: 11%;
      width: 40%;
      height: 7%;
      transform: translateX(-50%);
      border: 1px solid rgba(95,183,200,0.55);
      border-radius: 999px 999px 6px 6px;
      background: linear-gradient(90deg, rgba(95,183,200,0.18), rgba(131,214,164,0.26), rgba(95,183,200,0.18));
    }

    .asset-chan-body {
      left: 50%;
      bottom: 6%;
      width: 60%;
      height: 60%;
      transform: translateX(-50%);
      border: 1px solid rgba(95,183,200,0.28);
      border-radius: 38% 38% 9% 9%;
      background:
        linear-gradient(116deg, transparent 0 44%, rgba(95,183,200,0.58) 45% 50%, transparent 51%),
        linear-gradient(180deg, rgba(29, 48, 68, 0.98), rgba(7, 14, 27, 0.98));
    }

    .asset-chan-body::before {
      content: "";
      position: absolute;
      left: 18%;
      top: 10%;
      width: 64%;
      height: 24%;
      border-radius: 0 0 12px 12px;
      background: linear-gradient(180deg, rgba(238,244,248,0.92), rgba(159,176,190,0.34));
      clip-path: polygon(0 0, 48% 58%, 100% 0, 78% 100%, 22% 100%);
    }

    .asset-chan-body::after {
      content: "PNS";
      position: absolute;
      right: 12%;
      top: 42%;
      color: rgba(238,244,248,0.82);
      font-size: 11px;
      font-weight: 900;
      letter-spacing: 0;
      border: 1px solid rgba(238,244,248,0.24);
      border-radius: 6px;
      padding: 2px 5px;
      background: rgba(5,10,22,0.38);
    }

    .asset-chan-ledger {
      right: 7%;
      bottom: 22%;
      width: 28%;
      height: 25%;
      border: 1px solid rgba(239,188,104,0.45);
      border-radius: 8px;
      background:
        linear-gradient(90deg, rgba(239,188,104,0.22) 0 18%, transparent 18%),
        repeating-linear-gradient(180deg, rgba(255,255,255,0.16) 0 1px, transparent 1px 9px),
        rgba(13,24,42,0.96);
      transform: rotate(-7deg);
    }

    .asset-chan-terminal {
      left: 5%;
      bottom: 18%;
      width: 30%;
      height: 18%;
      border: 1px solid rgba(131,214,164,0.36);
      border-radius: 8px;
      background:
        linear-gradient(90deg, rgba(131,214,164,0.54) 0 42%, transparent 42% 52%, rgba(95,183,200,0.52) 52% 72%, transparent 72%),
        rgba(5,10,22,0.86);
      box-shadow: 0 0 20px rgba(95,183,200,0.12);
    }

    .asset-chan-coin {
      right: 18%;
      top: 33%;
      width: 14%;
      aspect-ratio: 1;
      border-radius: 50%;
      border: 1px solid rgba(239,188,104,0.6);
      background: radial-gradient(circle at 35% 30%, #ffe3a1, #d29a55 58%, #6b4a22);
    }

    .asset-chan-coin::after {
      content: "Y";
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      color: rgba(5,10,22,0.74);
      font-size: 13px;
      font-weight: 900;
    }

    .character-stage[data-mood="alert"] .asset-chan-halo {
      border-color: rgba(255,139,127,0.56);
      background: conic-gradient(from 210deg, transparent 0 20%, rgba(255,139,127,0.52) 20% 30%, transparent 30% 58%, rgba(239,188,104,0.45) 58% 67%, transparent 67%);
    }

    .character-stage[data-mood="dividend"] .asset-chan-coin {
      box-shadow: 0 0 28px rgba(239,188,104,0.32);
    }

    .character-stage[data-mood="defense"] .asset-chan-terminal {
      border-color: rgba(255,139,127,0.5);
      box-shadow: 0 0 24px rgba(255,139,127,0.16);
    }

    .character-image {
      position: relative;
      z-index: 1;
      width: min(82%, 330px);
      max-height: 72vh;
      object-fit: contain;
      filter: drop-shadow(0 24px 36px rgba(0,0,0,0.42));
      border-radius: 8px;
    }

    .character-image[hidden] { display: none; }
    .character-placeholder[hidden] { display: none; }

    .character-message {
      position: absolute;
      right: 0;
      bottom: 12px;
      width: min(100%, 360px);
      border: 1px solid rgba(95, 183, 200, 0.34);
      border-radius: 8px;
      padding: 12px;
      background: rgba(5, 10, 22, 0.78);
      backdrop-filter: blur(14px);
    }

    .character-message h3 {
      margin-bottom: 8px;
    }

    .character-dossier {
      display: grid;
      gap: 8px;
      margin-top: 10px;
    }

    .character-duty {
      display: grid;
      grid-template-columns: 44px minmax(0, 1fr) auto;
      gap: 8px;
      align-items: center;
      min-width: 0;
      padding: 8px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      background: rgba(238,244,248,0.05);
    }

    .character-duty.active {
      border-color: color-mix(in srgb, var(--sister-tone, var(--accent)), transparent 42%);
      background:
        linear-gradient(135deg, color-mix(in srgb, var(--sister-tone, var(--accent)), transparent 84%), rgba(238,244,248,0.05));
    }

    .character-duty img {
      width: 44px;
      aspect-ratio: 1;
      object-fit: cover;
      object-position: center 18%;
      border-radius: 8px;
      border: 1px solid rgba(238,244,248,0.18);
      background: #eef4f8;
    }

    .character-duty strong {
      display: block;
      min-width: 0;
      font-size: 12px;
    }

    .character-duty span {
      display: block;
      min-width: 0;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.5;
    }

    .character-duty .status {
      white-space: nowrap;
    }

    .home-alert-panel {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 10px;
      align-items: center;
      border: 1px solid rgba(255, 139, 127, 0.28);
      border-radius: 8px;
      padding: 10px;
      background: rgba(41, 16, 20, 0.52);
    }

    .command-dock {
      position: relative;
      z-index: 1;
      display: grid;
      gap: 10px;
    }

    .hero-number {
      margin: 8px 0 0;
      font-size: clamp(36px, 8vw, 66px);
      line-height: 1;
      font-weight: 950;
      letter-spacing: 0;
    }

    .hero-copy {
      margin: 12px 0 0;
      color: var(--muted);
      max-width: 72ch;
    }

    .meter {
      height: 12px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
    }

    .meter span {
      display: block;
      width: var(--value, 0%);
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--accent), var(--ok));
    }

    .badge,
    .status {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 26px;
      border-radius: 999px;
      padding: 4px 9px;
      font-size: 12px;
      font-weight: 900;
      white-space: nowrap;
    }

    .status.high,
    .badge.alert {
      background: rgba(255, 139, 127, 0.14);
      color: var(--danger);
      border: 1px solid rgba(255, 139, 127, 0.34);
    }

    .status.medium,
    .status.moderate,
    .badge.warn {
      background: rgba(239, 188, 104, 0.14);
      color: var(--warn);
      border: 1px solid rgba(239, 188, 104, 0.34);
    }

    .status.low,
    .status.ok {
      background: rgba(131, 214, 164, 0.14);
      color: var(--ok);
      border: 1px solid rgba(131, 214, 164, 0.34);
    }

    .status.unknown {
      background: rgba(159, 176, 190, 0.13);
      color: #c7d4dd;
      border: 1px solid rgba(159, 176, 190, 0.28);
    }

    .asset-auth-box {
      display: grid;
      gap: 12px;
    }

    .passkey-settings-layout {
      display: grid;
      grid-template-columns: minmax(0, 560px);
      justify-content: center;
    }

    .passkey-settings-panel {
      min-width: 0;
    }

    #settings .settings-view-head {
      align-items: center;
      flex-direction: row;
      width: min(100%, 560px);
      margin-inline: auto;
    }

    #settings .settings-view-head h1 {
      font-size: clamp(22px, 5vw, 28px);
    }

    #settings .settings-view-head .back-button {
      width: auto;
      min-width: 44px;
      min-height: 44px;
    }

    .passkey-unavailable-note {
      margin: 0;
      text-align: center;
    }

    .passkey-settings-intro {
      margin: 0;
      text-align: center;
    }

    .asset-passkey-list {
      display: grid;
      gap: 8px;
      border-top: 1px solid rgba(238,244,248,0.12);
      padding-top: 10px;
    }

    .asset-passkey-list[hidden] {
      display: none;
    }

    .asset-passkey-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 10px;
      align-items: center;
      min-height: 40px;
    }

    .asset-passkey-row span {
      min-width: 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
    }

    .asset-passkey-row button {
      min-width: 72px;
    }

    .asset-auth-switch {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 12px;
      align-items: center;
      padding: 10px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      background: rgba(238,244,248,0.05);
    }

    .asset-auth-switch > strong {
      font-size: 14px;
    }

    .asset-auth-switch strong,
    .asset-auth-switch span {
      display: block;
      min-width: 0;
    }

    .asset-auth-status {
      text-align: center;
      font-size: 12px;
    }

    .asset-auth-switch span {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
    }

    .switch-control {
      position: relative;
      width: 50px;
      height: 28px;
      flex: none;
    }

    .switch-control input {
      position: absolute;
      inset: 0;
      opacity: 0;
    }

    .switch-control i {
      position: absolute;
      inset: 0;
      border-radius: 999px;
      border: 1px solid rgba(238,244,248,0.18);
      background: rgba(5,10,22,0.8);
      transition: border-color 160ms ease, background 160ms ease;
    }

    .switch-control i::after {
      content: "";
      position: absolute;
      top: 4px;
      left: 4px;
      width: 18px;
      height: 18px;
      border-radius: 999px;
      background: #c7d4dd;
      transition: transform 160ms ease, background 160ms ease;
    }

    .switch-control input:checked + i {
      border-color: rgba(239,188,104,0.65);
      background: rgba(210,154,85,0.24);
    }

    .switch-control input:checked + i::after {
      transform: translateX(22px);
      background: var(--warn);
    }

    .switch-control input:focus-visible + i {
      outline: 2px solid var(--accent);
      outline-offset: 2px;
    }

    .metric-row,
    .metric-grid,
    .explain-grid,
    .chart-grid,
    .project-grid,
    .holding-grid,
    .command-grid,
    .alert-grid {
      display: grid;
      gap: 12px;
    }

    .metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .explain-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .chart-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .financial-statements { margin: 12px 0; }
    .financial-statements-head,
    .financial-statements-controls { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
    .financial-statements-head { margin-bottom: 4px; }
    .financial-statements-head h2 { margin: 0; }
    .financial-statements-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(310px, .88fr); gap: 12px; align-items: stretch; }
    .financial-position-panel,
    .financial-activity-stack,
    .financial-activity-panel { min-width: 0; }
    .financial-activity-stack { position: relative; display: grid; grid-template-rows: auto auto; align-content: start; gap: 12px; }
    .financial-activity-stack::before { content: ""; position: absolute; z-index: 1; left: -13px; top: 50%; width: 14px; border-top: 2px solid var(--accent); }
    .financial-activity-stack::after { content: ""; position: absolute; z-index: 1; left: -3px; top: calc(50% - 4px); border: 4px solid transparent; border-left-color: var(--accent); }
    .financial-activity-panel { display: flex; align-items: stretch; }
    .financial-activity-panel > div { width: 100%; }
    .financial-statements .chart-card { padding: 10px; }
    .financial-sync-status { margin: 4px 0; color: var(--muted); font-size: 10px; min-height: 1.3em; overflow-wrap: anywhere; }
    .financial-chart-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
    .financial-chart-values > table:only-child { grid-column: 1 / -1; }
    .financial-chart-values th small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
    .financial-chart-values .is-total { background: rgba(131, 214, 164, .06); }
    .financial-chart-values .is-total th, .financial-chart-values .is-total td { font-weight: 700; }
    .financial-chart-visual summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-size: 12px; color: var(--muted); }
    .financial-chart-visual summary::before { content: "＋"; margin-right: 6px; }
    .financial-chart-visual[open] summary::before { content: "−"; }
    .financial-chart-groups { display: grid; gap: 12px; }
    .financial-current-balance-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; color: var(--muted); font-size: 11px; }
    .financial-current-balance-head strong { color: var(--ink); font-size: 13px; }
    .financial-current-balance .financial-chart-date { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
    .financial-balance-box { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 180px; border: 1px solid var(--accent); }
    .financial-balance-assets { display: grid; grid-template-rows: .58fr 1fr; border-right: 1px solid var(--accent); }
    .financial-balance-funding { display: grid; grid-template-rows: 1fr 1fr; }
    .financial-balance-cell { display: flex; flex-direction: column; justify-content: center; gap: 5px; min-width: 0; padding: 10px 8px; font-size: 10px; }
    .financial-balance-cell strong { font-size: clamp(13px, 2vw, 18px); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .financial-balance-cell.cash { color: #efdc78; background: rgba(239, 220, 120, .1); border-bottom: 1px solid #efdc78; }
    .financial-balance-cell.assets { background: rgba(95, 183, 200, .06); }
    .financial-balance-cell.equity { border-top: 1px solid var(--accent); background: rgba(239, 188, 136, .07); }
    .financial-current-balance .is-missing { color: var(--muted); font-weight: 400; }
    .financial-current-balance .is-negative { color: var(--danger); }
    .financial-chart-group { min-width: 0; }
    .financial-chart-group h4 { margin: 2px 0 4px; font-size: 11px; color: var(--muted); }
    .financial-chart-axis { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; line-height: 1; }
    .financial-chart-row { margin-top: 6px; }
    .financial-chart-row-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 8px; font-size: 11px; }
    .financial-chart-row-heading strong { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .financial-chart-row.is-total .financial-chart-row-heading { font-weight: 700; }
    .financial-chart-track { position: relative; height: 8px; margin-top: 2px; background: rgba(157, 184, 198, .08); }
    .financial-chart-zero { position: absolute; top: -1px; height: 10px; width: 1px; background: var(--muted); }
    .financial-chart-bar { position: absolute; height: 100%; background: #5fb7c8; }
    .financial-chart-bar.negative { background: #ef8c82; }
    .financial-chart-bar.total { background: #83d6a4; }
    .financial-chart-bar.is-zero { width: 2px !important; }
    .financial-chart-values { margin-top: 8px; font-size: 13px; }
    .financial-chart-values summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: var(--muted); }
    .financial-chart-values summary::before { content: "＋"; margin-right: 6px; }
    .financial-chart-values[open] summary::before { content: "−"; }
    .financial-chart-values table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
    .financial-chart-values caption { text-align: left; padding: 5px 0; }
    .financial-chart-values th,
    .financial-chart-values td { padding: 6px 4px; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
    .financial-chart-values th { text-align: left; font-weight: 400; }
    .financial-chart-values td { text-align: right; font-variant-numeric: tabular-nums; }
    .financial-chart-empty { color: var(--muted); padding: 20px 0; }
    @media (max-width: 700px) {
      .financial-balance-box { min-height: 154px; }
      .financial-balance-cell { gap: 3px; padding: 7px 6px; font-size: 9px; }
      .financial-balance-cell strong { font-size: clamp(11px, 3.5vw, 14px); white-space: nowrap; letter-spacing: -.04em; overflow-wrap: normal; }
    }
    .financial-current-balance {
      --balance-cash: #efdc78;
      --balance-stocks: #8bb7ff;
      --balance-funds: #b6a4ff;
      --balance-bonds: #5fb7c8;
      --balance-liabilities: #ff8b7f;
      --balance-equity: #83d6a4;
    }
    .financial-current-diagram { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 220px; border: 1px solid var(--accent); }
    .financial-current-asset-blocks { display: grid; grid-template-rows: .65fr 1fr; min-width: 0; border-right: 2px solid var(--accent); }
    .financial-current-funding-blocks { display: grid; grid-template-rows: 1fr 1fr; min-width: 0; }
    .financial-current-balance .financial-balance-cell { position: relative; align-items: flex-start; gap: 4px; width: 100%; min-height: 76px; padding: 12px; font-family: inherit; font-size: 12px; text-align: left; border: 0; border-left: 4px solid; border-radius: 0; cursor: pointer; }
    .financial-current-balance .financial-balance-cell::after { content: "›"; position: absolute; right: 7px; top: 5px; font-size: 17px; }
    .financial-current-balance .financial-balance-cell:hover { box-shadow: inset 0 0 0 1px currentColor; }
    .financial-current-balance .financial-balance-cell[aria-expanded="true"] { box-shadow: inset 0 0 0 2px currentColor; }
    .financial-current-balance .financial-balance-cell:focus-visible { outline: 2px solid var(--ink); outline-offset: -4px; }
    .financial-current-balance .financial-balance-cell > span { padding-right: 10px; }
    .financial-current-balance .financial-balance-cell strong { color: var(--ink); font-size: clamp(18px, 2vw, 24px); white-space: normal; overflow-wrap: anywhere; letter-spacing: 0; }
    .financial-current-balance .financial-balance-cell.cash { color: var(--balance-cash); background: rgba(239, 220, 120, .17); border-bottom: 1px solid var(--balance-cash); }
    .financial-current-balance .financial-balance-cell.assets { color: var(--balance-stocks); background: rgba(139, 183, 255, .2); }
    .financial-current-balance .financial-balance-cell.liabilities { color: var(--balance-liabilities); background: rgba(255, 139, 127, .19); }
    .financial-current-balance .financial-balance-cell.equity { color: var(--balance-equity); background: rgba(131, 214, 164, .2); border-top: 1px solid var(--balance-equity); }
    .financial-current-tap-hint { margin: 5px 0 0; color: var(--muted); font-size: 11px; text-align: right; }
    .financial-current-equation { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; margin: 8px 0 0; font-size: 12px; }
    .financial-current-equation small { color: var(--muted); font-size: 10px; }
    .financial-current-detail { min-width: 0; margin-top: 12px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
    .financial-current-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; }
    .financial-current-detail-head h3 { margin: 0; font-size: 14px; }
    .financial-current-detail-head .ghost-button { min-height: 44px; font-size: 12px; }
    .financial-balance-detail { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; font-size: 13px; }
    .financial-balance-detail thead th { padding: 4px 12px 8px; color: var(--muted); font-size: 10px; font-weight: 400; }
    .financial-balance-detail th { width: 48%; color: var(--ink); text-align: left; font-weight: 500; }
    .financial-balance-detail td, .financial-balance-detail thead th:last-child { text-align: right; }
    .financial-balance-detail th, .financial-balance-detail td { padding: 8px 12px; vertical-align: top; white-space: normal; overflow-wrap: anywhere; }
    .financial-balance-detail td strong { font-size: 14px; font-weight: 650; font-variant-numeric: tabular-nums; }
    .financial-balance-detail small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; font-weight: 400; line-height: 1.45; }
    .balance-tone-cash { --balance-tone: var(--balance-cash); --balance-fill: rgba(239, 220, 120, .12); }
    .balance-tone-stocks { --balance-tone: var(--balance-stocks); --balance-fill: rgba(139, 183, 255, .12); }
    .balance-tone-funds { --balance-tone: var(--balance-funds); --balance-fill: rgba(182, 164, 255, .12); }
    .balance-tone-bonds, .balance-tone-crypto { --balance-tone: var(--balance-bonds); --balance-fill: rgba(95, 183, 200, .12); }
    .balance-tone-property { --balance-tone: var(--balance-cash); --balance-fill: rgba(239, 220, 120, .12); }
    .balance-tone-other { --balance-tone: var(--muted); --balance-fill: rgba(159, 176, 190, .1); }
    .balance-tone-liabilities { --balance-tone: var(--balance-liabilities); --balance-fill: rgba(255, 139, 127, .12); }
    .balance-tone-equity { --balance-tone: var(--balance-equity); --balance-fill: rgba(131, 214, 164, .12); }
    .financial-balance-detail tbody { background: var(--balance-fill); border-left: 3px solid var(--balance-tone); }
    .financial-balance-detail tfoot { background: var(--balance-fill); border-top: 2px solid var(--balance-tone); }
    .financial-balance-detail .is-total th, .financial-balance-detail .is-total td { font-weight: 700; }
    .financial-balance-detail tbody + tbody { border-top: 4px solid var(--bg); }
    .financial-balance-detail tbody tr + tr { border-top: 1px solid var(--line); }
    .financial-balance-detail .financial-balance-group-heading th { padding: 6px 12px; color: var(--balance-tone); font-size: 11px; font-weight: 700; }
    .financial-current-balance strong.is-missing { color: var(--muted); font-weight: 400; }
    .financial-current-balance strong.is-negative { color: var(--danger); }
    .financial-activity-statement { display: flex; flex-direction: column; gap: 10px; height: auto; }
    .financial-activity-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
    .financial-activity-head > div { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .financial-activity-head span { display: inline-grid; place-items: center; flex: 0 0 auto; min-width: 34px; min-height: 24px; padding: 2px 6px; color: #061b20; background: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .04em; }
    .financial-activity-head h3 { margin: 0; font-size: 13px; line-height: 1.25; }
    .financial-activity-head em { flex: 0 0 auto; padding: 3px 6px; color: var(--muted); border: 1px solid var(--line); font-size: 9px; font-style: normal; }
    .financial-activity-head em.is-complete { color: #83d6a4; border-color: rgba(131, 214, 164, .5); }
    .financial-activity-period { margin: 0; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
    .financial-cashflow-unreconciled { display: grid; align-content: start; gap: 10px; }
    .financial-reconciliation-warning { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; padding: 8px 10px; color: #ffc1b9; background: rgba(255, 139, 127, .09); border-left: 3px solid var(--danger); font-size: 11px; }
    .financial-reconciliation-warning strong { flex: 0 0 auto; color: var(--danger); font-size: 10px; }
    .financial-reconciliation-warning span { color: var(--muted); text-align: right; overflow-wrap: anywhere; }
    .financial-cash-balance-pair { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; }
    .financial-cash-balance-pair > span { color: var(--muted); font-size: 18px; }
    .financial-cash-balance-card { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; min-width: 0; padding: 8px; background: rgba(255, 152, 83, .1); border: 1px solid rgba(255, 152, 83, .48); }
    .financial-cash-balance-card > span { color: #ffbd8d; font-size: 9px; }
    .financial-cash-balance-card strong { color: var(--ink); font-size: 12px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .financial-cash-balance-card.is-missing { background: repeating-linear-gradient(135deg, transparent 0 7px, rgba(159, 176, 190, .1) 7px 9px); border-color: var(--line); }
    .financial-cash-balance-card.is-missing > span,
    .financial-cash-balance-card strong.is-missing { color: var(--muted); }
    .financial-cash-movement-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
    .financial-cash-movement { display: grid; grid-template-columns: auto 1fr; gap: 1px 4px; align-items: baseline; min-width: 0; padding: 6px; border: 1px solid var(--line); }
    .financial-cash-movement b { grid-row: 1 / span 2; color: var(--accent); font-size: 16px; line-height: 1; }
    .financial-cash-movement > span { color: var(--muted); font-size: 10px; }
    .financial-cash-movement strong { color: var(--ink); font-size: 11px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .financial-cash-movement.is-negative b,
    .financial-cash-movement.is-negative strong { color: var(--danger); }
    .financial-cash-movement.is-zero b { color: #ffd33d; font-size: 11px; }
    .financial-cash-movement.is-missing b,
    .financial-cash-movement.is-missing strong { color: var(--muted); }
    .financial-cashflow-waterfall { min-height: 132px; }
    .financial-cashflow-waterfall svg { display: block; width: 100%; height: 96px; overflow: visible; }
    .financial-cashflow-waterfall rect { fill: var(--accent); }
    .financial-cashflow-waterfall rect.balance { fill: #ff9853; }
    .financial-cashflow-waterfall rect.investing { fill: #ffd33d; }
    .financial-cashflow-waterfall rect.financing { fill: #79d64b; }
    .financial-cashflow-waterfall rect.negative { fill: var(--danger); }
    .financial-cashflow-waterfall rect.zero { fill: #ffd33d; }
    .financial-waterfall-baseline { stroke: rgba(95, 183, 200, .48); stroke-width: 1; }
    .financial-waterfall-connectors line { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 4 3; }
    .financial-waterfall-values { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; text-align: center; }
    .financial-waterfall-values div { min-width: 0; }
    .financial-waterfall-values span { display: block; color: var(--muted); font-size: 8px; }
    .financial-waterfall-values strong { display: block; margin-top: 2px; color: var(--ink); font-size: 9px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .financial-waterfall-values strong.is-negative { color: var(--danger); }
    .financial-profit-cascade { display: grid; grid-template-columns: repeat(var(--profit-stages), minmax(0, 1fr)); align-items: end; gap: 4px; min-height: 156px; padding: 6px 2px 3px; border-bottom: 1px solid rgba(95, 183, 200, .5); }
    .financial-profit-stage { display: flex; align-items: flex-end; min-width: 0; height: var(--stage-height); }
    .financial-profit-stack { display: flex; flex-direction: column; width: 100%; height: 100%; }
    .financial-profit-expense,
    .financial-profit-level { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 28px; padding: 3px 2px; border: 1px solid rgba(95, 183, 200, .55); text-align: center; overflow: hidden; }
    .financial-profit-expense { flex: 0 0 var(--expense-share); color: #ffc1b9; background: rgba(255, 139, 127, .15); border-color: rgba(255, 139, 127, .52); }
    .financial-profit-level { flex: 1 1 auto; color: #aee9f2; background: rgba(95, 183, 200, .17); }
    .financial-profit-stage:nth-child(2) .financial-profit-level { color: #b7ceff; background: rgba(139, 183, 255, .19); border-color: rgba(139, 183, 255, .58); }
    .financial-profit-stage.is-result .financial-profit-level { color: #b5efca; background: rgba(131, 214, 164, .2); border-color: rgba(131, 214, 164, .6); }
    .financial-profit-expense span,
    .financial-profit-level span { color: inherit; font-size: 9px; line-height: 1.1; }
    .financial-profit-expense strong,
    .financial-profit-level strong { max-width: 100%; margin-top: 2px; color: var(--ink); font-size: 10px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .financial-profit-expense strong.is-negative { color: var(--danger); }
    .financial-profit-stage.is-missing .financial-profit-stack,
    .financial-profit-expense.is-missing { background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(159, 176, 190, .14) 6px 8px); }
    .financial-profit-stage strong.is-missing { color: var(--muted); font-size: 9px; font-weight: 400; }
    .financial-activity-note { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
    .financial-activity-diagram .cf-status { margin: 0; }
    .financial-activity-diagram .financial-chart-note { margin: 8px 0 0; }
    @media (max-width: 700px) {
      .financial-statements-grid { grid-template-columns: minmax(0, 1fr); }
      .financial-activity-stack::before,
      .financial-activity-stack::after { display: none; }
      .financial-current-diagram { min-height: 190px; }
      .financial-current-balance .financial-balance-cell { padding: 9px 7px; font-size: 11px; }
      .financial-current-balance .financial-balance-cell strong { font-size: clamp(14px, 4vw, 19px); }
      .financial-balance-detail th, .financial-balance-detail td { padding: 7px 10px; }
      .financial-cash-balance-card { flex-direction: column; align-items: flex-start; }
      .financial-reconciliation-warning { align-items: flex-start; flex-direction: column; gap: 2px; }
      .financial-reconciliation-warning span { text-align: left; }
      .financial-cash-movement-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .financial-cash-movement { padding: 5px 4px; }
      .financial-cash-movement b { font-size: 14px; }
      .financial-profit-cascade { min-height: 148px; }
    }
    .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .holding-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .command-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

    .metric-card,
    .meaning-card,
    .alert-card,
    .project-card,
    .holding-card,
    .chart-card,
    .task-card {
      padding: 14px;
      min-width: 0;
    }

    .metric-card strong,
    .meaning-card strong {
      display: block;
      margin-top: 4px;
      font-size: 24px;
      line-height: 1.15;
      overflow-wrap: anywhere;
    }

    .metric-note,
    .card-note {
      margin: 7px 0 0;
      color: var(--muted);
      font-size: 12px;
    }

    .meaning-card {
      display: grid;
      gap: 10px;
    }

    .meaning-main {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 12px;
      align-items: center;
    }

    .ring {
      --pct: 0;
      display: grid;
      place-items: center;
      width: 82px;
      aspect-ratio: 1;
      border-radius: 50%;
      background:
        radial-gradient(circle at center, var(--surface-2) 0 54%, transparent 55%),
        conic-gradient(var(--tone, var(--accent)) calc(var(--pct) * 1%), rgba(255,255,255,0.1) 0);
      border: 1px solid rgba(255,255,255,0.08);
      font-weight: 900;
      font-size: 14px;
    }

    .mini-gauge {
      height: 12px;
      overflow: hidden;
      border-radius: 999px;
      background:
        linear-gradient(90deg,
          rgba(255,139,127,0.42) 0 25%,
          rgba(239,188,104,0.42) 25% 50%,
          rgba(131,214,164,0.42) 50% 75%,
          rgba(95,183,200,0.42) 75% 100%);
      border: 1px solid rgba(255,255,255,0.08);
      position: relative;
    }

    .mini-gauge span {
      position: absolute;
      inset: 0 auto 0 0;
      width: var(--value, 0%);
      background: rgba(255,255,255,0.42);
      border-radius: inherit;
    }

    .command-tile {
      min-height: 122px;
      padding: 13px;
      display: grid;
      grid-template-rows: auto 1fr auto;
      gap: 8px;
      text-align: left;
      background:
        linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.025)),
      var(--surface);
    }

    .command-tile.section-icon-button {
      min-height: 116px;
      border-color: rgba(255,255,255,0.14);
      background:
        linear-gradient(160deg, rgba(255,255,255,0.1), rgba(255,255,255,0.026)),
        rgba(7, 14, 27, 0.78);
    }

    .command-tile.section-icon-button[data-importance="high"] {
      border-color: rgba(255, 139, 127, 0.36);
    }

    .command-tile.active,
    .command-tile:focus-visible {
      outline: 2px solid rgba(95, 183, 200, 0.65);
      outline-offset: 2px;
    }

    .tile-top {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      align-items: flex-start;
    }

    .tile-icon {
      display: grid;
      place-items: center;
      width: 36px;
      aspect-ratio: 1;
      border-radius: 8px;
      background: rgba(95,183,200,0.16);
      color: #dffbff;
      font-weight: 950;
      font-size: 13px;
    }

    .section-icon-button .tile-icon {
      width: 42px;
      border-radius: 8px;
      background: rgba(95,183,200,0.18);
      font-size: 18px;
    }

    .tile-title {
      margin: 0;
      font-weight: 900;
      font-size: 15px;
    }

    .tile-sub {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
    }

    .stack {
      display: grid;
      gap: 10px;
    }

    .alert-card {
      border-left: 4px solid var(--warn);
    }

    .alert-card.high { border-left-color: var(--danger); }
    .alert-card.medium { border-left-color: var(--warn); }
    .alert-card.low { border-left-color: var(--ok); }
    .alert-card.unknown { border-left-color: var(--muted); }

    .alert-card header,
    .project-card header,
    .holding-card header {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: flex-start;
      margin-bottom: 8px;
    }

    .project-toolbar {
      margin: 12px 0;
    }

    #project-summary-metrics:empty {
      display: none;
    }

    .project-card {
      display: grid;
      gap: 10px;
    }

    .completed-project-section {
      display: grid;
      gap: 10px;
      margin-top: 14px;
      padding-top: 12px;
      border-top: 1px solid rgba(238,244,248,0.1);
    }

    .completed-project-section > summary,
    .priority-directive-fold > summary {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center;
      gap: 10px;
      cursor: pointer;
      list-style: none;
    }

    .completed-project-section > summary::-webkit-details-marker,
    .priority-directive-fold > summary::-webkit-details-marker,
    .compact-list-fold > summary::-webkit-details-marker {
      display: none;
    }

    .completed-project-section > summary span,
    .priority-directive-fold > summary span {
      min-width: 0;
    }

    .completed-project-section > summary small,
    .completed-project-section > summary strong,
    .priority-directive-fold > summary small,
    .priority-directive-fold > summary strong {
      display: block;
    }

    .completed-project-section > summary small,
    .priority-directive-fold > summary small {
      color: var(--muted);
      font-size: 10px;
      font-weight: 900;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .completed-project-section > summary strong,
    .priority-directive-fold > summary strong {
      margin-top: 2px;
      color: var(--text);
      font-size: 18px;
    }

    .completed-project-section > summary b,
    .priority-directive-fold > summary b {
      color: var(--muted);
      font-size: 12px;
    }

    .completed-project-section > summary::after,
    .priority-directive-fold > summary::after {
      content: "+";
      color: var(--ok);
      font-size: 18px;
      font-weight: 900;
    }

    .completed-project-section[open] > summary::after,
    .priority-directive-fold[open] > summary::after {
      content: "−";
    }

    .completed-project-section > .completed-project-grid {
      margin-top: 10px;
    }

    .completed-project-grid .project-card {
      border-color: rgba(131,214,164,0.24);
      background:
        linear-gradient(160deg, rgba(131,214,164,0.09), rgba(255,255,255,0.025) 44%),
        rgba(7,14,27,0.88);
    }

    .priority-directive-panel {
      display: grid;
      gap: 14px;
      margin: 14px 0 18px;
      padding: 14px;
      border: 1px solid rgba(239,188,104,0.26);
      border-radius: 8px;
      background:
        linear-gradient(135deg, rgba(210,154,85,0.14), rgba(95,183,200,0.065)),
        rgba(6, 12, 24, 0.72);
      box-shadow: var(--shadow);
    }

    .priority-directive-detail {
      display: grid;
      gap: 14px;
      margin-top: 14px;
      padding-top: 12px;
      border-top: 1px solid rgba(239,188,104,0.18);
    }

    .directive-section {
      display: grid;
      gap: 10px;
      min-width: 0;
    }

    .directive-section .project-section-head {
      margin: 0;
    }

    .directive-card-list,
    .directive-watch-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
      min-width: 0;
    }

    .directive-card-list.compact {
      gap: 8px;
    }

    .directive-group-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      min-width: 0;
    }

    .directive-group-grid .directive-group-card:first-child {
      grid-column: 1 / -1;
    }

    .directive-group-card,
    .directive-target-card,
    .directive-watch-card {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .directive-group-card {
      display: grid;
      gap: 10px;
      padding: 12px;
    }

    .directive-group-card > header,
    .directive-target-card > header,
    .directive-watch-card > header {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 10px;
    }

    .directive-target-card,
    .directive-watch-card {
      display: grid;
      gap: 10px;
      padding: 12px;
    }

    .directive-target-card h3,
    .directive-watch-card h3 {
      margin: 0;
      font-size: 17px;
      line-height: 1.3;
      overflow-wrap: anywhere;
    }

    .directive-role {
      margin: 0;
      color: #dffbff;
      font-size: 12px;
      font-weight: 900;
      line-height: 1.45;
    }

    .directive-facts {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 7px;
    }

    .directive-facts div {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      padding: 8px;
      background: rgba(3,6,14,0.32);
    }

    .directive-facts span,
    .directive-facts strong {
      display: block;
    }

    .directive-facts span {
      color: var(--muted);
      font-size: 10px;
      font-weight: 900;
      line-height: 1.25;
    }

    .directive-facts strong {
      margin-top: 3px;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.25;
      overflow-wrap: anywhere;
    }

    .directive-progress .project-progress-track span {
      background: linear-gradient(90deg, #efbc68, #5fb7c8);
    }

    .plan-command-hero,
    .ten-year-plan-panel {
      margin-bottom: 12px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background:
        linear-gradient(135deg, rgba(210,154,85,0.12), rgba(131,214,164,0.055)),
        var(--surface);
      box-shadow: var(--shadow);
    }

    .plan-command-hero {
      display: grid;
      grid-template-columns: minmax(118px, 0.28fr) minmax(0, 1fr);
      gap: 14px;
      align-items: center;
      padding: 14px;
    }

    .plan-command-portrait {
      position: relative;
      display: grid;
      place-items: end center;
      min-height: 150px;
      margin: 0;
      overflow: hidden;
      border-radius: 8px;
      background:
        radial-gradient(circle at 50% 20%, rgba(210,154,85,0.22), transparent 58%),
        rgba(255,255,255,0.04);
    }

    .plan-command-portrait img {
      display: block;
      width: min(150px, 100%);
      max-height: 180px;
      object-fit: contain;
      filter: drop-shadow(0 16px 22px rgba(0,0,0,0.4));
    }

    .plan-command-copy {
      min-width: 0;
    }

    .plan-command-hero.compact {
      grid-template-columns: 72px minmax(0, 1fr);
      gap: 10px;
      padding: 10px;
    }

    .plan-command-hero.compact .plan-command-portrait {
      min-height: 72px;
    }

    .plan-command-hero.compact .plan-command-portrait img {
      max-height: 92px;
    }

    .plan-command-hero.compact .plan-command-copy strong {
      display: block;
      margin-top: 2px;
      color: var(--text);
      font-size: clamp(16px, 4vw, 21px);
      line-height: 1.25;
    }

    .plan-command-hero.compact .plan-command-copy p:last-child {
      margin: 5px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }

    .plan-command-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 12px;
    }

    .plan-command-actions button {
      min-height: 38px;
    }

    .plan-command-copy h2,
    .ten-year-plan-head h2 {
      margin: 2px 0 8px;
      font-size: clamp(22px, 5vw, 34px);
      line-height: 1.18;
      letter-spacing: 0;
    }

    .plan-command-nav {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
      gap: 8px;
      margin: 0 0 12px;
      padding: 2px 0;
      overflow: visible;
    }

    .plan-command-nav button {
      min-height: 40px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: rgba(255,255,255,0.06);
      color: var(--muted);
      padding: 8px 12px;
      font-weight: 900;
      white-space: normal;
      line-height: 1.35;
    }

    .plan-command-nav button.active,
    .plan-command-nav button:focus-visible,
    .plan-command-nav button:hover {
      border-color: rgba(131,214,164,0.46);
      background: rgba(131,214,164,0.14);
      color: var(--text);
    }

    .plan-dashboard-card {
      margin-bottom: 12px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: rgba(12,25,33,0.88);
      padding: 14px;
      box-shadow: var(--shadow);
    }

    .plan-dashboard-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 12px;
    }

    .plan-dashboard-head h2,
    .project-section-head h2 {
      margin: 0;
      font-size: 21px;
      letter-spacing: 0;
    }

    .project-section-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      margin: 16px 0 8px;
    }

    .plan-summary-main {
      display: grid;
      gap: 8px;
      margin-bottom: 12px;
      padding: 12px;
      border: 1px solid rgba(131,214,164,0.18);
      border-radius: 8px;
      background: linear-gradient(135deg, rgba(131,214,164,0.14), rgba(95,183,200,0.08));
    }

    .plan-summary-main span {
      color: var(--muted);
      font-size: 12px;
      font-weight: 900;
    }

    .plan-summary-main strong {
      display: block;
      margin-top: 2px;
      color: var(--text);
      font-size: clamp(30px, 8vw, 46px);
      line-height: 1;
      overflow-wrap: anywhere;
    }

    .plan-summary-actions {
      margin-top: 10px;
    }

    .compact-list-fold {
      margin-top: 10px;
      border-top: 1px solid rgba(238,244,248,0.1);
      padding-top: 9px;
    }

    .compact-list-fold > summary {
      color: var(--muted);
      cursor: pointer;
      font-size: 12px;
      font-weight: 900;
      list-style: none;
    }

    .compact-list-fold > summary::after {
      content: "+";
      float: right;
      color: var(--ok);
    }

    .compact-list-fold[open] > summary::after {
      content: "−";
    }

    .compact-list-fold > .action-check-list,
    .compact-list-fold > .phase-card-list {
      margin-top: 9px;
    }

    .phase-current article {
      border-color: rgba(131,214,164,0.36);
      background: rgba(131,214,164,0.09);
    }

    .plan-kpi-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
    }

    .plan-kpi-grid article,
    .scenario-strip article,
    .decision-candidate-list article,
    .action-check-list article,
    .phase-card-list article {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: rgba(255,255,255,0.045);
      padding: 10px;
      min-width: 0;
    }

    .plan-kpi-grid article.primary {
      border-color: rgba(131,214,164,0.38);
      background: rgba(131,214,164,0.1);
    }

    .plan-kpi-grid span,
    .plan-kpi-grid small,
    .scenario-strip p,
    .scenario-strip small,
    .decision-candidate-list .card-note,
    .action-check-list p {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
    }

    .plan-kpi-grid strong,
    .scenario-strip strong {
      display: block;
      margin: 4px 0 2px;
      color: var(--text);
      font-size: 20px;
      line-height: 1.15;
      overflow-wrap: anywhere;
    }

    .scenario-strip {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-top: 12px;
    }

    .scenario-strip .status {
      display: inline-flex;
      margin-bottom: 4px;
    }

    .decision-candidate-list,
    .action-check-list,
    .phase-card-list {
      display: grid;
      gap: 8px;
    }

    .decision-candidate-list article {
      display: grid;
      gap: 8px;
    }

    .decision-candidate-list header,
    .phase-card-list header {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: flex-start;
    }

    .decision-candidate-list h3,
    .phase-card-list h3 {
      margin: 2px 0 0;
      font-size: 16px;
      line-height: 1.35;
      letter-spacing: 0;
    }

    .action-check-list article {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 10px;
      align-items: flex-start;
    }

    .action-check-list strong {
      display: block;
      margin-bottom: 2px;
      color: var(--text);
    }

    .phase-card-list article.active {
      border-color: rgba(210,154,85,0.42);
      background: linear-gradient(135deg, rgba(210,154,85,0.14), rgba(255,255,255,0.045));
    }

    .project-memo {
      display: grid;
      gap: 10px;
    }

    .project-memo summary {
      min-height: 40px;
      cursor: pointer;
      font-weight: 900;
      color: var(--text);
    }

    .ten-year-plan-panel {
      padding: 14px;
    }

    .ten-year-plan-head {
      display: flex;
      justify-content: space-between;
      gap: 14px;
      align-items: flex-start;
      margin-bottom: 12px;
    }

    .ten-year-plan-head .top-actions {
      flex-wrap: wrap;
      justify-content: flex-end;
    }

    .ten-year-plan-head .top-actions button {
      white-space: normal;
    }

    .ten-year-plan-head > div:first-child {
      min-width: 0;
      max-width: 760px;
    }

    .ten-year-plan-meter {
      display: grid;
      gap: 8px;
      padding: 12px;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .ten-year-progress-list {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin-top: 10px;
    }

    .ten-year-summary-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      margin-top: 10px;
    }

    .ten-year-progress-card {
      display: grid;
      gap: 8px;
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
      padding: 12px;
    }

    .ten-year-progress-card header {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: flex-start;
    }

    .ten-year-progress-card h3 {
      overflow-wrap: anywhere;
      font-size: 21px;
      line-height: 1.15;
    }

    .ten-year-progress-card.compact {
      gap: 6px;
      padding: 10px;
    }

    .ten-year-progress-card.compact h3 {
      font-size: 18px;
    }

    .ten-year-nisa-card {
      display: grid;
      gap: 10px;
      margin-top: 12px;
      padding: 13px;
      border: 1px solid rgba(131,214,164,0.26);
      border-radius: 8px;
      background:
        linear-gradient(135deg, rgba(131,214,164,0.12), rgba(210,154,85,0.08)),
        rgba(255,255,255,0.045);
    }

    .ten-year-nisa-card h3 {
      margin: 2px 0 4px;
      font-size: 20px;
      line-height: 1.18;
      overflow-wrap: anywhere;
    }

    .ten-year-nisa-card strong {
      display: block;
      color: var(--text);
      font-size: clamp(24px, 5vw, 34px);
      line-height: 1.08;
      overflow-wrap: anywhere;
    }

    .ten-year-nisa-card > p {
      margin: 0;
      color: var(--muted);
    }

    .ten-year-nisa-actuals,
    .ten-year-deposit-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .ten-year-nisa-actuals div,
    .ten-year-deposit-grid article {
      min-width: 0;
      padding: 10px;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 8px;
      background: rgba(5,12,22,0.36);
    }

    .ten-year-nisa-actuals span,
    .ten-year-deposit-grid span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .ten-year-nisa-actuals strong,
    .ten-year-deposit-grid strong {
      display: block;
      margin-top: 3px;
      color: var(--text);
      font-size: 19px;
      line-height: 1.12;
      overflow-wrap: anywhere;
    }

    .ten-year-deposit-grid {
      margin-top: 10px;
    }

    .ten-year-deposit-grid p {
      margin: 5px 0 0;
      color: var(--muted);
      font-size: 12px;
    }

    .ten-year-cashflow-plan {
      display: grid;
      gap: 14px;
    }

    .ten-year-capacity-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 9px;
    }

    .ten-year-capacity-grid article {
      min-width: 0;
      padding: 12px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .ten-year-capacity-grid article.is-primary {
      border-color: rgba(131,214,164,0.32);
      background: linear-gradient(135deg, rgba(131,214,164,0.13), rgba(95,183,200,0.07));
    }

    .ten-year-capacity-grid article.is-alert {
      border-color: rgba(255,139,127,0.34);
      background: rgba(255,139,127,0.08);
    }

    .ten-year-capacity-grid span,
    .ten-year-capacity-grid small {
      display: block;
      color: var(--muted);
      font-size: 12px;
    }

    .ten-year-capacity-grid strong {
      display: block;
      margin: 5px 0;
      color: var(--text);
      font-size: clamp(19px, 2.3vw, 27px);
      line-height: 1.12;
      overflow-wrap: anywhere;
    }

    .ten-year-proposal-callout {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 12px;
      align-items: start;
      padding: 12px;
      border-left: 4px solid var(--ok);
      border-radius: 6px;
      background: rgba(131,214,164,0.08);
    }

    .ten-year-proposal-callout > strong {
      color: var(--ok);
    }

    .ten-year-proposal-callout p {
      margin: 0;
      color: var(--text);
    }

    .ten-year-ledger-block {
      display: grid;
      gap: 8px;
      min-width: 0;
    }

    .ten-year-ledger-block > header {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: end;
    }

    .ten-year-ledger-block h3 {
      margin: 2px 0 0;
      font-size: 19px;
    }

    .ten-year-ledger-block > header > span {
      color: var(--muted);
      font-size: 12px;
      font-weight: 900;
    }

    .ten-year-cashflow-table {
      min-width: 900px;
    }

    .ten-year-cashflow-table td small {
      display: block;
      max-width: 260px;
      margin-top: 3px;
      color: var(--muted);
      font-weight: 500;
      white-space: normal;
    }

    .core-plan-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin: 12px 0;
    }

    .core-plan-card {
      display: grid;
      gap: 12px;
      min-width: 0;
      padding: 14px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background:
        linear-gradient(135deg, rgba(95,183,200,0.1), rgba(255,255,255,0.035)),
        var(--surface);
      box-shadow: var(--shadow);
    }

    .core-plan-card.core {
      border-color: rgba(131,214,164,0.34);
      background:
        linear-gradient(135deg, rgba(131,214,164,0.16), rgba(210,154,85,0.1)),
        var(--surface);
    }

    .core-plan-card header,
    .compact-plan-chart header {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: flex-start;
    }

    .core-plan-card h2 {
      margin: 2px 0 0;
      font-size: 22px;
      line-height: 1.16;
      overflow-wrap: anywhere;
    }

    .core-card-body {
      display: grid;
      grid-template-columns: 150px minmax(0, 1fr);
      gap: 10px;
      align-items: center;
    }

    .plan-card-facts,
    .one-million-metrics,
    .plan-overview-grid,
    .plan-gap-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .plan-card-facts div,
    .one-million-metrics article,
    .plan-overview-grid article,
    .plan-gap-list div {
      min-width: 0;
      padding: 9px;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .plan-card-facts span,
    .one-million-metrics span,
    .plan-overview-grid span,
    .plan-gap-list span,
    .plan-gap-list small {
      display: block;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .plan-card-facts strong,
    .one-million-metrics strong,
    .plan-overview-grid strong,
    .plan-gap-list strong {
      display: block;
      margin-top: 2px;
      color: var(--text);
      font-size: 17px;
      line-height: 1.16;
      overflow-wrap: anywhere;
    }

    .plan-mini-svg,
    .plan-line-svg,
    .plan-ring-svg {
      display: block;
      width: 100%;
      height: auto;
      max-width: 100%;
    }

    .plan-ring-svg {
      max-width: 180px;
      margin: 0 auto;
    }

    .plan-ring-value {
      fill: var(--text);
      font-size: 24px;
      font-weight: 900;
    }

    .plan-ring-label {
      fill: var(--muted);
      font-size: 11px;
      font-weight: 800;
    }

    .plan-compact-summary {
      margin: 12px 0;
    }

    .compact-plan-chart {
      min-width: 0;
    }

    .compact-plan-chart .plan-ring-svg {
      max-width: 210px;
    }

    .plan-stack-bar {
      position: relative;
      height: 34px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 999px;
      background: rgba(255,255,255,0.06);
    }

    .plan-stack-bar span {
      position: absolute;
      left: var(--left);
      width: var(--width);
      top: 0;
      bottom: 0;
      background: var(--color);
    }

    .plan-stack-legend {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin-top: 10px;
    }

    .plan-stack-legend div {
      min-width: 0;
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      gap: 7px;
      align-items: center;
      padding: 8px;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 8px;
      background: rgba(255,255,255,0.035);
    }

    .plan-stack-legend i {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: var(--color);
    }

    .plan-stack-legend span,
    .plan-stack-legend small {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      overflow-wrap: anywhere;
    }

    .plan-stack-legend strong {
      color: var(--text);
      font-size: 13px;
      overflow-wrap: anywhere;
    }

    .plan-stack-legend small {
      grid-column: 2 / -1;
    }

    .project-bars {
      display: grid;
      gap: 8px;
      min-width: 0;
    }

    .project-bar-row {
      display: grid;
      grid-template-columns: minmax(88px, 1fr) minmax(80px, 1.2fr) auto;
      gap: 8px;
      align-items: center;
      min-width: 0;
      font-size: 12px;
      font-weight: 800;
      color: var(--muted);
    }

    .project-bar-row span {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .project-bar-row div {
      height: 10px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
    }

    .project-bar-row i {
      display: block;
      width: min(100%, var(--value, 0%));
      height: 100%;
      border-radius: inherit;
      background: var(--color);
    }

    .project-bar-row strong {
      color: var(--text);
      font-size: 12px;
    }

    .plan-page-grid,
    .one-million-hero {
      display: grid;
      grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.9fr);
      gap: 12px;
      align-items: stretch;
    }

    .plan-page-lead {
      display: flex;
      justify-content: space-between;
      gap: 14px;
      align-items: flex-start;
    }

    .plan-page-lead h2,
    .plan-section h2 {
      margin: 2px 0 8px;
      line-height: 1.18;
    }

    .plan-section {
      margin-top: 12px;
    }

    .plan-roadmap,
    .plan-tree {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 8px;
      margin-top: 12px;
    }

    .plan-roadmap article,
    .plan-tree article {
      min-width: 0;
      padding: 11px;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .plan-roadmap article.active,
    .plan-tree article.root {
      border-color: rgba(131,214,164,0.32);
      background: linear-gradient(135deg, rgba(131,214,164,0.12), rgba(210,154,85,0.08));
    }

    .plan-roadmap strong,
    .plan-tree strong {
      display: block;
      color: var(--text);
      line-height: 1.25;
      overflow-wrap: anywhere;
    }

    .plan-roadmap p,
    .plan-tree span {
      display: block;
      margin: 6px 0 0;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .plan-card-title,
    .plan-structure-node {
      display: flex;
      align-items: center;
      gap: 10px;
      min-width: 0;
    }

    .plan-icon {
      flex: 0 0 auto;
      display: grid;
      place-items: center;
      width: 38px;
      aspect-ratio: 1;
      border: 1px solid rgba(238,244,248,0.18);
      border-radius: 8px;
      background: rgba(5,10,22,0.52);
      color: var(--ink);
      font-weight: 950;
      line-height: 1;
      box-shadow: inset 0 0 18px rgba(255,255,255,0.04);
    }

    .plan-icon-ten { border-color: rgba(95,183,200,0.38); color: #d8fbff; }
    .plan-icon-core { border-color: rgba(131,214,164,0.48); color: #d9ffe8; }
    .plan-icon-support { border-color: rgba(210,154,85,0.4); color: #ffe4b8; }

    .plan-structure-tree {
      position: relative;
      display: grid;
      gap: 12px;
      margin-top: 12px;
    }

    .plan-structure-tree::before {
      content: "";
      position: absolute;
      top: 58px;
      bottom: 72px;
      left: 19px;
      width: 2px;
      border-radius: 99px;
      background: linear-gradient(180deg, rgba(95,183,200,0.55), rgba(131,214,164,0.55), rgba(210,154,85,0.32));
    }

    .plan-structure-node {
      position: relative;
      z-index: 1;
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      padding: 12px;
      background: rgba(255,255,255,0.045);
    }

    .plan-structure-node > div {
      min-width: 0;
    }

    .plan-structure-node strong,
    .plan-structure-node span {
      display: block;
      overflow-wrap: anywhere;
    }

    .plan-structure-node strong {
      color: var(--ink);
      line-height: 1.25;
    }

    .plan-structure-node span {
      margin-top: 4px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .plan-structure-node.core {
      border-color: rgba(131,214,164,0.36);
      background: linear-gradient(135deg, rgba(131,214,164,0.14), rgba(210,154,85,0.08)), rgba(255,255,255,0.045);
    }

    .plan-structure-node.core button {
      margin-left: auto;
      white-space: nowrap;
    }

    .plan-structure-supports {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      padding-left: 32px;
    }

    .plan-tree {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .plan-tree .root {
      grid-column: 1 / -1;
    }

    .core-plan-progress-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
    }

    .plan-progress-card,
    .support-plan-card {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      background: rgba(255,255,255,0.045);
      cursor: pointer;
    }

    .plan-progress-card {
      display: grid;
      gap: 10px;
      align-content: start;
      padding: 14px;
      background: linear-gradient(150deg, rgba(131,214,164,0.12), rgba(95,183,200,0.07)), rgba(255,255,255,0.04);
    }

    .plan-progress-card:focus-visible,
    .support-plan-card:focus-visible {
      outline: 2px solid rgba(131,214,164,0.68);
      outline-offset: 2px;
    }

    .plan-progress-card > span,
    .support-plan-card > span {
      color: var(--muted);
      font-size: 11px;
      font-weight: 900;
    }

    .plan-progress-card > strong,
    .support-plan-card > strong {
      color: var(--ink);
      line-height: 1.25;
      overflow-wrap: anywhere;
    }

    .plan-progress-card > p {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.5;
    }

    .plan-progress-card .plan-ring-svg {
      max-width: 118px;
    }

    .support-plan-rail {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: minmax(156px, 1fr);
      gap: 10px;
      overflow-x: auto;
      padding-bottom: 4px;
      scroll-snap-type: x proximity;
    }

    .support-plan-card {
      display: grid;
      gap: 6px;
      padding: 12px;
      scroll-snap-align: start;
    }

    .support-plan-card b {
      color: var(--progress-tone, var(--ok));
    }

    .ai-investment-proposal {
      border-color: rgba(95,183,200,0.34);
      background:
        linear-gradient(145deg, rgba(95,183,200,0.12), rgba(131,214,164,0.07)),
        var(--surface);
    }

    .ai-proposal-empty,
    .ai-proposal-decision {
      display: grid;
      gap: 8px;
      border: 1px solid rgba(95,183,200,0.22);
      border-radius: 8px;
      padding: 13px;
      background: rgba(95,183,200,0.07);
    }

    .ai-proposal-empty p,
    .ai-proposal-decision p,
    .ai-proposal-sources {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.65;
    }

    .ai-proposal-empty .primary-button {
      justify-self: start;
      min-height: 44px;
    }

    .ai-proposal-kpis {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      margin-top: 12px;
    }

    .ai-proposal-kpis article {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 8px;
      padding: 10px;
      background: rgba(4,14,23,0.48);
    }

    .ai-proposal-kpis article.alert,
    .ai-proposal-decision.alert {
      border-color: rgba(255,139,127,0.4);
      background: rgba(255,139,127,0.09);
    }

    .ai-proposal-kpis span,
    .ai-proposal-kpis small,
    .ai-allocation-row span,
    .ai-allocation-row small {
      display: block;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.45;
    }

    .ai-proposal-kpis strong {
      display: block;
      margin: 4px 0 2px;
      color: var(--ink);
      font-size: 18px;
      line-height: 1.18;
      overflow-wrap: anywhere;
    }

    .future-strategy-phases {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-top: 12px;
    }

    .future-strategy-phases article {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      padding: 11px;
      background: rgba(4,14,23,0.44);
    }

    .future-strategy-phases article.current {
      border-color: rgba(131,214,164,0.42);
      box-shadow: inset 0 3px 0 rgba(131,214,164,0.72);
    }

    .future-strategy-phases article.alert {
      border-color: rgba(255,139,127,0.42);
      box-shadow: inset 0 3px 0 rgba(255,139,127,0.72);
    }

    .future-strategy-phases article.done {
      opacity: 0.72;
    }

    .future-strategy-phases span,
    .future-strategy-phases p {
      color: var(--muted);
      font-size: 11px;
      line-height: 1.55;
    }

    .future-strategy-phases strong {
      display: block;
      margin: 4px 0;
      color: var(--ink);
      font-size: 15px;
      line-height: 1.35;
      overflow-wrap: anywhere;
    }

    .future-strategy-phases p {
      margin: 0;
    }

    .ai-proposal-decision {
      margin-top: 10px;
    }

    .ai-proposal-fold {
      margin-top: 10px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background: rgba(4,14,23,0.34);
      overflow: hidden;
    }

    .ai-proposal-fold > summary {
      min-height: 44px;
      padding: 11px 13px;
      color: var(--ink);
      cursor: pointer;
      font-weight: 900;
    }

    .ai-allocation-list {
      display: grid;
      gap: 7px;
      padding: 0 10px 10px;
    }

    .ai-allocation-row b {
      color: var(--ink);
      font-size: 12px;
      overflow-wrap: anywhere;
    }

    .ai-allocation-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(100px, 0.25fr) minmax(120px, 0.28fr);
      gap: 10px;
      align-items: center;
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      padding: 9px;
      background: rgba(255,255,255,0.035);
    }

    .ai-allocation-row strong {
      display: block;
      color: var(--ink);
      font-size: 13px;
      line-height: 1.35;
      overflow-wrap: anywhere;
    }

    .ai-proposal-sources {
      margin-top: 11px;
    }

    .ai-proposal-sources a {
      color: #b8e9f3;
      font-weight: 800;
    }

    .support-plan-card b {
      color: var(--ok);
      font-size: 22px;
      line-height: 1.1;
      font-variant-numeric: tabular-nums;
    }

    .support-plan-card strong {
      min-height: 40px;
      font-size: 13px;
    }

    .future-sheet-hero {
      display: grid;
      grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.6fr);
      gap: 12px;
      align-items: stretch;
      margin-bottom: 12px;
      border: 1px solid rgba(131,214,164,0.2);
      border-radius: 8px;
      padding: 14px;
      background:
        linear-gradient(90deg, rgba(131,214,164,0.12), rgba(5,10,22,0.76)),
        repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 31px),
        rgba(5,10,22,0.82);
      box-shadow: inset 4px 0 0 rgba(131,214,164,0.56);
    }

    .future-sheet-hero h2 {
      margin: 0 0 6px;
      font-size: clamp(26px, 7vw, 42px);
      line-height: 1.05;
      color: var(--text);
    }

    .future-current-ledger {
      display: grid;
      align-content: center;
      gap: 5px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      padding: 12px;
      background: rgba(3,6,14,0.44);
    }

    .future-current-ledger span,
    .future-current-ledger small,
    .future-scenario-card span,
    .future-scenario-card p,
    .future-band span,
    .future-band small {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.45;
    }

    .future-current-ledger strong {
      color: var(--text);
      font-size: clamp(22px, 6vw, 34px);
      line-height: 1.08;
      overflow-wrap: anywhere;
    }

    .future-scenario-strip,
    .future-focus-grid,
    .future-assumption-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 12px;
    }

    .future-scenario-card,
    .future-focus-grid article,
    .future-assumption-grid article {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 8px;
      padding: 11px;
      background: rgba(255,255,255,0.04);
    }

    .future-scenario-card {
      border-color: color-mix(in srgb, var(--tone), transparent 64%);
      box-shadow: inset 0 3px 0 var(--tone);
    }

    .future-scenario-card strong {
      display: block;
      margin: 4px 0;
      color: var(--text);
      font-size: clamp(20px, 5vw, 28px);
      line-height: 1.1;
      overflow-wrap: anywhere;
    }

    .future-timeline-ledger {
      display: grid;
      gap: 0;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background: rgba(3,6,14,0.38);
    }

    .future-timeline-row {
      display: grid;
      grid-template-columns: 150px minmax(0, 1fr) minmax(190px, 0.42fr) auto;
      gap: 12px;
      align-items: center;
      min-width: 0;
      padding: 12px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
      background:
        linear-gradient(90deg, rgba(255,255,255,0.035), transparent),
        repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 32px);
    }

    .future-timeline-row:last-child {
      border-bottom: 0;
    }

    .future-timeline-row.current {
      background:
        linear-gradient(90deg, rgba(131,214,164,0.16), rgba(255,255,255,0.035)),
        repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 32px);
    }

    .future-date strong,
    .future-date span,
    .future-event h3,
    .future-event p,
    .future-event small,
    .future-band strong {
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .future-date strong {
      display: block;
      color: var(--text);
      font-size: 18px;
      line-height: 1.18;
    }

    .future-date span {
      display: block;
      margin-top: 4px;
      color: var(--accent);
      font-size: 12px;
      font-weight: 900;
    }

    .future-event h3 {
      margin: 0 0 5px;
      color: var(--text);
      font-size: clamp(16px, 4vw, 19px);
      line-height: 1.25;
    }

    .future-event p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.65;
    }

    .future-event small {
      display: block;
      margin-top: 5px;
      color: #f2d49c;
      font-size: 12px;
      font-weight: 900;
    }

    .future-band {
      display: grid;
      gap: 4px;
      justify-items: start;
    }

    .future-band strong {
      color: var(--text);
      font-size: 15px;
      line-height: 1.22;
    }

    .future-focus-grid {
      margin: 0;
    }

    .future-focus-grid article:not(.no-link) {
      cursor: pointer;
    }

    .future-focus-grid header {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: flex-start;
      margin-bottom: 8px;
    }

    .future-focus-grid h3 {
      margin: 2px 0 0;
      color: var(--text);
      font-size: 16px;
      line-height: 1.25;
      overflow-wrap: anywhere;
    }

    .future-focus-grid .facts {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      margin: 0 0 8px;
    }

    .future-assumption-grid {
      margin: 0;
    }

    .future-assumption-grid span,
    .future-assumption-grid p {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.55;
    }

    .future-assumption-grid strong {
      display: block;
      margin: 4px 0;
      color: var(--text);
      font-size: 16px;
      line-height: 1.25;
      overflow-wrap: anywhere;
    }

    .one-million-ring {
      display: grid;
      place-items: center;
      text-align: center;
    }

    .one-million-ring .label,
    .one-million-ring .muted {
      justify-self: stretch;
      text-align: left;
    }

    .one-million-metrics {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .plan-detail-charts {
      margin-top: 12px;
    }

    .project-card__quick-values {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .plan-handoff-card {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center;
      gap: 12px;
      margin: 12px 0;
      border: 1px solid rgba(131,214,164,0.24);
      border-radius: 8px;
      padding: 12px;
      background:
        linear-gradient(90deg, rgba(131,214,164,0.12), rgba(5,10,22,0.78)),
        rgba(5,10,22,0.74);
      box-shadow: inset 3px 0 0 rgba(131,214,164,0.58);
    }

    .plan-handoff-card:empty {
      display: none;
    }

    .plan-handoff-copy h3 {
      margin: 2px 0 4px;
      font-size: clamp(15px, 4vw, 18px);
      line-height: 1.28;
    }

    .plan-handoff-copy p:last-child {
      margin: 0;
      color: rgba(238,244,248,0.7);
      font-size: 12px;
      line-height: 1.55;
    }

    .plan-handoff-facts {
      display: grid;
      grid-template-columns: repeat(3, minmax(72px, 1fr));
      gap: 6px;
      min-width: min(360px, 42vw);
    }

    .plan-handoff-facts div {
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 8px;
      padding: 7px;
      background: rgba(3,6,14,0.38);
    }

    .plan-handoff-facts span,
    .plan-handoff-facts strong {
      display: block;
    }

    .plan-handoff-facts span {
      color: rgba(238,244,248,0.58);
      font-size: 10px;
      font-weight: 800;
    }

    .plan-handoff-facts strong {
      margin-top: 2px;
      color: #f5fbff;
      font-size: 12px;
      line-height: 1.22;
    }

    .inline-link-button {
      border: 0;
      padding: 0;
      background: transparent;
      color: #b7f3ca;
      font: inherit;
      font-weight: 900;
      text-decoration: underline;
      cursor: pointer;
    }

    .project-card h3 {
      margin-bottom: 2px;
    }

    .project-card .primary-button,
    .project-card .ghost-button {
      justify-self: start;
    }

    .project-card__quick-values {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .project-card__quick-values div {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      padding: 8px;
      background: rgba(255,255,255,0.035);
    }

    .project-card__quick-values span,
    .project-card__next span {
      display: block;
      color: var(--muted);
      font-size: 10px;
      font-weight: 900;
      line-height: 1.25;
    }

    .project-card__quick-values strong {
      display: block;
      margin-top: 3px;
      color: var(--ink);
      font-size: 15px;
      line-height: 1.25;
      overflow-wrap: anywhere;
    }

    .project-card__next {
      margin: 0;
      color: rgba(238,244,248,0.78);
      display: -webkit-box;
      font-size: 12px;
      font-weight: 800;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 3;
      line-height: 1.5;
      overflow: hidden;
    }

    .project-card__detail-fold {
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 8px;
      background: rgba(255,255,255,0.035);
      padding: 8px 10px;
    }

    .project-card__detail-fold > summary {
      color: var(--muted);
      font-size: 12px;
      font-weight: 900;
      cursor: pointer;
      list-style: none;
    }

    .project-card__detail-fold > summary::-webkit-details-marker {
      display: none;
    }

    .project-card__detail-fold > summary::after {
      content: "+";
      float: right;
      color: var(--ok);
      font-size: 14px;
    }

    .project-card__detail-fold[open] > summary::after {
      content: "-";
    }

    .project-card__detail-fold .project-card__quick-values {
      margin-top: 10px;
    }

    .plan-book-guide {
      display: grid;
      grid-template-columns: 96px minmax(0, 1fr);
      gap: 14px;
      align-items: center;
      margin-bottom: 12px;
      border: 1px solid rgba(131,214,164,0.24);
      border-radius: 10px;
      padding: 12px;
      background:
        linear-gradient(120deg, rgba(131,214,164,0.13), rgba(95,183,200,0.055) 58%, rgba(5,10,22,0.82)),
        var(--surface);
      box-shadow: var(--shadow);
    }

    .plan-book-guide .plan-command-portrait {
      min-height: 102px;
    }

    .plan-book-guide .plan-command-portrait img {
      max-height: 120px;
    }

    .plan-book-guide-copy {
      min-width: 0;
    }

    .plan-book-guide-copy h2 {
      margin: 2px 0 8px;
      font-size: clamp(19px, 4vw, 27px);
      line-height: 1.2;
    }

    .plan-book-guide-copy > p:last-child {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .plan-book-flow {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
      gap: 7px;
      align-items: center;
    }

    .plan-book-flow span {
      display: flex;
      align-items: center;
      gap: 7px;
      min-height: 40px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      padding: 7px 9px;
      background: rgba(4,9,17,0.48);
      color: var(--ink);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.3;
    }

    .plan-book-flow span b {
      color: var(--ok);
      font-size: 10px;
      font-variant-numeric: tabular-nums;
    }

    .plan-book-flow i {
      color: var(--accent);
      font-style: normal;
      font-weight: 950;
    }

    .plan-book-overview {
      display: grid;
      grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
      gap: 12px;
      margin-bottom: 18px;
      border: 1px solid var(--line);
      border-radius: 10px;
      padding: 13px;
      background: rgba(7,16,24,0.88);
      box-shadow: var(--shadow);
    }

    .plan-book-overview > header {
      grid-column: 1 / -1;
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: flex-start;
    }

    .plan-book-overview h2,
    .plan-book-section-head h2 {
      margin: 2px 0 0;
      font-size: 20px;
      line-height: 1.25;
    }

    .plan-book-overview-rail {
      display: grid;
      grid-template-columns: minmax(76px, 1fr) 26px minmax(76px, 1fr) 26px minmax(76px, 1fr);
      align-items: center;
      min-width: 0;
      border: 1px solid rgba(131,214,164,0.18);
      border-radius: 9px;
      padding: 10px;
      background: linear-gradient(90deg, rgba(131,214,164,0.09), rgba(95,183,200,0.05));
    }

    .plan-book-overview-rail div {
      display: grid;
      place-items: center;
      gap: 3px;
      min-width: 0;
      text-align: center;
    }

    .plan-book-overview-rail div b {
      display: grid;
      place-items: center;
      min-width: 44px;
      height: 44px;
      border: 1px solid rgba(238,244,248,0.16);
      border-radius: 50%;
      background: rgba(5,10,22,0.72);
      color: var(--ink);
      font-size: 14px;
      font-variant-numeric: tabular-nums;
    }

    .plan-book-overview-rail div.done b,
    .plan-book-overview-rail div.current b {
      border-color: rgba(131,214,164,0.46);
      box-shadow: 0 0 0 4px rgba(131,214,164,0.08);
    }

    .plan-book-overview-rail div.current b {
      color: var(--ok);
    }

    .plan-book-overview-rail div span {
      max-width: 100%;
      color: var(--muted);
      font-size: 10px;
      font-weight: 900;
      line-height: 1.3;
      overflow-wrap: anywhere;
    }

    .plan-book-overview-rail > i {
      height: 2px;
      background: linear-gradient(90deg, var(--ok), var(--accent));
      opacity: 0.55;
    }

    .plan-book-overview-stats {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 7px;
    }

    .plan-book-overview-stats div {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.09);
      border-radius: 8px;
      padding: 9px;
      background: rgba(255,255,255,0.035);
    }

    .plan-book-overview-stats span,
    .plan-book-overview-stats small {
      display: block;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.35;
    }

    .plan-book-overview-stats strong {
      display: block;
      margin: 3px 0 2px;
      color: var(--ink);
      font-size: 18px;
      line-height: 1.2;
      overflow-wrap: anywhere;
    }

    .plan-book-section {
      margin-top: 18px;
    }

    .plan-book-section-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: flex-end;
      margin-bottom: 9px;
    }

    .plan-book-section-head > p {
      margin: 0;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
    }

    .plan-book-list {
      display: grid;
      gap: 10px;
    }

    .view-head.plan-execution-head {
      align-items: center;
      flex-direction: row;
      gap: 16px;
    }

    .plan-execution-portrait {
      flex: 0 0 auto;
      width: 72px;
      height: 88px;
      object-fit: contain;
    }

    .plan-execution-section {
      margin-top: 18px;
    }

    .plan-execution-section > .plan-book-section-head {
      align-items: center;
      margin-bottom: 14px;
    }

    .plan-execution-section h2 {
      margin: 0;
      font-size: clamp(20px, 3vw, 25px);
      letter-spacing: .02em;
    }

    .plan-execution-section #project-result-count {
      flex-shrink: 0;
      font-size: 13px;
      font-variant-numeric: tabular-nums;
    }

    .plan-execution-toolbar {
      margin-bottom: 16px;
    }

    .plan-status-filters {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }

    .plan-status-filters button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 44px;
      padding: 8px 15px;
      border: 1px solid var(--line);
      border-radius: 8px;
      color: var(--muted);
      background: var(--surface);
      font: inherit;
      font-size: 14px;
      font-weight: 700;
      cursor: pointer;
    }

    .plan-status-filters button.active {
      border-color: var(--accent);
      background: var(--accent);
      color: #06120d;
    }

    .plan-status-filters button > span {
      min-width: 22px;
      border-radius: 4px;
      padding: 0 4px;
      background: rgba(159,176,190,.13);
      font-size: 12px;
      font-variant-numeric: tabular-nums;
    }

    .plan-status-filters button.active > span {
      background: rgba(6,18,13,.12);
    }

    .plan-search-fields {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(170px, .35fr);
      gap: 12px;
      margin-top: 12px;
    }

    .plan-search-fields label {
      display: grid;
      gap: 5px;
      min-width: 0;
      color: var(--muted);
      font-size: 12px;
    }

    .plan-search-fields input,
    .plan-search-fields select {
      width: 100%;
      min-width: 0;
      min-height: 44px;
      border: 1px solid var(--line);
      border-radius: 7px;
      padding: 9px 12px;
      color: var(--ink);
      background: #091e15;
      font: inherit;
      font-size: 16px;
    }

    .plan-search-fields input::placeholder {
      color: var(--muted);
      opacity: .85;
    }

    .execution-plan {
      min-width: 0;
      border: 1px solid var(--line);
      border-radius: 10px;
      background: #0a1d16;
      overflow-wrap: anywhere;
    }

    .execution-plan-body {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1fr);
      gap: 24px;
      padding: 22px;
      align-items: start;
    }

    .execution-plan-body > * {
      min-width: 0;
    }

    .execution-plan-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
      color: var(--muted);
      font-size: 12px;
    }

    .execution-plan-status {
      flex-shrink: 0;
      border: 1px solid var(--line);
      border-radius: 5px;
      padding: 3px 8px;
      color: var(--accent);
      font-weight: 700;
    }

    .execution-plan[data-plan-status="delayed"] .execution-plan-status {
      color: var(--warn);
      border-color: var(--warn);
    }

    .execution-plan[data-plan-status="not_started"] .execution-plan-status,
    .execution-plan[data-plan-status="paused"] .execution-plan-status,
    .execution-plan[data-plan-status="cancelled"] .execution-plan-status {
      color: var(--muted);
    }

    .execution-plan h3 {
      margin: 10px 0 0;
      font-size: 19px;
      line-height: 1.55;
      font-weight: 750;
    }

    .execution-plan h3 a {
      color: var(--ink);
      text-decoration: none;
      text-underline-offset: 4px;
    }

    .execution-plan h3 a:hover {
      text-decoration: underline;
    }

    .execution-plan-values {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px 16px;
      margin: 0;
    }

    .execution-plan-values dt,
    .execution-plan-action > span,
    .execution-plan-progress-label > span {
      color: var(--muted);
      font-size: 12px;
    }

    .execution-plan-values dd {
      margin: 4px 0 0;
      color: var(--ink);
      font-family: system-ui, "Meiryo", sans-serif;
      font-size: 18px;
      font-weight: 650;
      line-height: 1.4;
      font-variant-numeric: tabular-nums;
    }

    .execution-plan-values .execution-plan-remaining {
      grid-column: 1 / -1;
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      justify-content: space-between;
      gap: 4px 12px;
      padding-top: 9px;
      border-top: 1px solid var(--line);
    }

    .execution-plan-remaining dd {
      margin: 0;
      font-size: 16px;
      color: var(--accent-2);
    }

    .execution-plan-progress-label {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      margin-top: 12px;
      font-size: 13px;
      font-variant-numeric: tabular-nums;
    }

    .execution-plan-track {
      height: 6px;
      overflow: hidden;
      margin-top: 6px;
      border-radius: 4px;
      background: rgba(169,199,181,.15);
    }

    .execution-plan-track > span {
      display: block;
      height: 100%;
      border-radius: inherit;
      background: var(--accent);
    }

    .execution-plan-action {
      padding-left: 18px;
      border-left: 2px solid var(--line);
    }

    .execution-plan-action p {
      margin: 7px 0 0;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.8;
    }

    .execution-plan-review,
    .execution-plan-unknown {
      margin: 10px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.6;
    }

    .execution-plan-footer {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      padding: 6px 16px;
      border-top: 1px solid var(--line);
    }

    .execution-plan-details {
      flex: 1;
      min-width: 0;
    }

    .execution-plan-details > summary {
      display: flex;
      align-items: center;
      gap: 8px;
      width: fit-content;
      min-height: 44px;
      padding: 8px 6px;
      color: var(--muted);
      cursor: pointer;
      font-size: 13px;
      list-style: none;
    }

    .execution-plan-details > summary::-webkit-details-marker { display: none; }
    .execution-plan-details > summary::before { content: "+"; font-size: 18px; }
    .execution-plan-details[open] > summary::before { content: "−"; }

    .execution-plan-details-body {
      padding: 0 6px 12px;
      font-size: 14px;
      line-height: 1.75;
    }

    .execution-plan-details-body > p { margin: 0 0 12px; }
    .execution-plan .plan-book-detail-facts span { font-size: 12px; }
    .execution-plan .plan-book-detail-facts strong { font-size: 13px; }

    .execution-plan-open {
      display: inline-flex;
      flex-shrink: 0;
      align-items: center;
      justify-content: center;
      gap: 12px;
      min-height: 44px;
      padding: 8px 12px;
      color: var(--accent-2);
      border-radius: 6px;
      text-decoration: none;
      font-size: 14px;
      font-weight: 700;
    }

    .execution-plan-open:hover { background: var(--surface-3); }

    .plan-execution-section :is(button, input, select, a, summary):focus-visible,
    .completed-project-grid :is(a, summary):focus-visible {
      outline: 2px solid var(--accent);
      outline-offset: 3px;
    }

    .execution-plan-empty {
      padding: 26px 18px;
      border: 1px dashed var(--line);
      border-radius: 10px;
      color: var(--muted);
      text-align: center;
    }

    .execution-plan-empty button { min-height: 44px; }

    @media (max-width: 1050px) {
      .execution-plan-body { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
      .execution-plan-heading { grid-column: 1 / -1; }
      .execution-plan h3 { margin-top: 6px; }
      .execution-plan .plan-book-detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 600px) {
      .plan-execution-portrait { width: 54px; height: 72px; }
      .plan-status-filters { gap: 6px; }
      .plan-status-filters button { flex: 1 1 auto; padding: 8px 10px; font-size: 13px; }
      .plan-search-fields { grid-template-columns: minmax(0, 1fr); gap: 10px; }
      .plan-category-field { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
      .execution-plan-body { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 16px; }
      .execution-plan-action { border-left: 0; border-top: 1px solid var(--line); padding: 12px 0 0; }
      .execution-plan-action p { margin-top: 4px; }
      .execution-plan-footer { flex-wrap: wrap; padding: 5px 10px; }
      .execution-plan-details[open] { flex-basis: 100%; }
      .execution-plan-details[open] + .execution-plan-open { margin-left: auto; }
      .execution-plan .plan-book-detail-facts { grid-template-columns: minmax(0, 1fr); }
    }

    .plan-book-item {
      min-width: 0;
      overflow: hidden;
      border: 1px solid rgba(238,244,248,0.12);
      border-left: 4px solid var(--accent);
      border-radius: 10px;
      background:
        linear-gradient(100deg, rgba(95,183,200,0.08), transparent 46%),
        rgba(7,15,24,0.92);
      box-shadow: 0 8px 24px rgba(0,0,0,0.18);
    }

    .plan-book-item.completed {
      border-left-color: var(--ok);
      background:
        linear-gradient(100deg, rgba(131,214,164,0.08), transparent 46%),
        rgba(7,15,24,0.92);
    }

    .plan-book-item-main {
      display: grid;
      grid-template-columns: 76px minmax(0, 1fr) auto;
      gap: 13px;
      align-items: center;
      min-width: 0;
      padding: 13px;
      color: inherit;
      text-decoration: none;
    }

    .plan-book-item-main:hover {
      background: rgba(131,214,164,0.045);
    }

    .plan-book-item-main:focus-visible {
      outline: 2px solid var(--accent);
      outline-offset: -3px;
    }

    .plan-book-progress-visual {
      display: grid;
      place-items: center;
      align-content: center;
      width: 72px;
      aspect-ratio: 1;
      border-radius: 50%;
      background:
        radial-gradient(circle, #0a1520 0 56%, transparent 58%),
        conic-gradient(var(--plan-tone, var(--ok)) calc(var(--plan-progress) * 1%), rgba(255,255,255,0.09) 0);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
      text-align: center;
    }

    .plan-book-progress-visual.unknown {
      background:
        radial-gradient(circle, #0a1520 0 56%, transparent 58%),
        conic-gradient(var(--accent) 18%, rgba(255,255,255,0.09) 0);
    }

    .plan-book-progress-visual strong,
    .plan-book-progress-visual span {
      display: block;
    }

    .plan-book-progress-visual strong {
      color: var(--ink);
      font-size: 16px;
      line-height: 1;
    }

    .plan-book-progress-visual span {
      margin-top: 3px;
      color: var(--muted);
      font-size: 9px;
      font-weight: 900;
    }

    .plan-book-item-copy {
      min-width: 0;
    }

    .plan-book-item-copy > header {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: flex-start;
    }

    .plan-book-item-copy h3 {
      margin: 2px 0 0;
      color: var(--ink);
      font-size: clamp(17px, 3vw, 21px);
      line-height: 1.3;
    }

    .plan-book-item-summary {
      margin: 5px 0 8px;
      color: rgba(238,244,248,0.72);
      font-size: 12px;
      line-height: 1.5;
    }

    .plan-book-value-flow {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      gap: 8px;
      align-items: center;
    }

    .plan-book-value-flow div {
      min-width: 0;
      border-radius: 7px;
      padding: 6px 8px;
      background: rgba(255,255,255,0.035);
    }

    .plan-book-value-flow span,
    .plan-book-next span {
      display: block;
      color: var(--muted);
      font-size: 9px;
      font-weight: 900;
    }

    .plan-book-value-flow strong {
      display: block;
      margin-top: 2px;
      color: var(--ink);
      font-size: 12px;
      line-height: 1.3;
      overflow-wrap: anywhere;
    }

    .plan-book-value-flow i {
      color: var(--accent);
      font-style: normal;
      font-weight: 950;
    }

    .plan-book-progress-line {
      height: 5px;
      margin-top: 7px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
    }

    .plan-book-progress-line span {
      display: block;
      width: min(100%, var(--value, 0%));
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, color-mix(in srgb, var(--progress-tone, var(--ok)), #ffffff 28%), var(--progress-tone, var(--ok)));
    }

    .plan-book-next {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 7px;
      align-items: baseline;
      margin: 7px 0 0;
    }

    .plan-book-next strong {
      color: rgba(238,244,248,0.82);
      font-size: 11px;
      line-height: 1.4;
      overflow-wrap: anywhere;
    }

    .plan-book-open-label {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      min-width: max-content;
      border: 1px solid rgba(131,214,164,0.32);
      border-radius: 999px;
      padding: 8px 10px;
      color: #d9ffe8;
      background: rgba(131,214,164,0.09);
      font-size: 11px;
      font-weight: 950;
    }

    .plan-book-item-fold {
      border-top: 1px solid rgba(238,244,248,0.09);
      background: rgba(3,7,13,0.32);
    }

    .plan-book-item-fold > summary {
      display: flex;
      justify-content: space-between;
      align-items: center;
      min-height: 42px;
      padding: 9px 13px;
      color: var(--muted);
      cursor: pointer;
      font-size: 11px;
      font-weight: 900;
      list-style: none;
    }

    .plan-book-item-fold > summary::-webkit-details-marker {
      display: none;
    }

    .plan-book-item-fold > summary::after {
      content: "+";
      color: var(--ok);
      font-size: 16px;
    }

    .plan-book-item-fold[open] > summary::after {
      content: "−";
    }

    .plan-book-item-fold-body {
      display: grid;
      gap: 9px;
      padding: 0 13px 13px;
    }

    .plan-book-item-fold-body > p {
      margin: 0;
      color: rgba(238,244,248,0.72);
      font-size: 12px;
      line-height: 1.55;
    }

    .plan-book-detail-facts {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 7px;
    }

    .plan-book-detail-facts div {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.08);
      border-radius: 7px;
      padding: 8px;
      background: rgba(255,255,255,0.03);
    }

    .plan-book-detail-facts span,
    .plan-book-detail-facts strong {
      display: block;
    }

    .plan-book-detail-facts span {
      color: var(--muted);
      font-size: 9px;
      font-weight: 900;
    }

    .plan-book-detail-facts strong {
      margin-top: 3px;
      color: var(--ink);
      font-size: 11px;
      line-height: 1.4;
      overflow-wrap: anywhere;
    }

    .plan-book-support {
      margin-top: 18px;
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 10px;
      background: rgba(255,255,255,0.025);
    }

    .plan-book-support > summary {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      gap: 10px;
      align-items: center;
      min-height: 50px;
      padding: 11px 13px;
      cursor: pointer;
      list-style: none;
    }

    .plan-book-support > summary::-webkit-details-marker {
      display: none;
    }

    .plan-book-support > summary span small,
    .plan-book-support > summary span strong {
      display: block;
    }

    .plan-book-support > summary span small {
      color: var(--muted);
      font-size: 9px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .plan-book-support > summary span strong {
      margin-top: 2px;
      color: var(--ink);
      font-size: 15px;
    }

    .plan-book-support > summary b {
      color: var(--muted);
      font-size: 10px;
    }

    .plan-book-support > summary::after {
      content: "+";
      color: var(--accent);
      font-size: 18px;
    }

    .plan-book-support[open] > summary::after {
      content: "−";
    }

    .plan-book-support-body {
      padding: 0 12px 12px;
    }

    #project-list-start {
      scroll-margin-top: 14px;
    }

    .projects-council-fold {
      margin-top: 14px;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 8px;
      background: rgba(255,255,255,0.035);
    }

    .projects-council-fold > summary {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 10px;
      min-height: 42px;
      padding: 10px 12px;
      color: var(--ink);
      font-size: 13px;
      font-weight: 900;
      cursor: pointer;
      list-style: none;
    }

    .projects-council-fold > summary::-webkit-details-marker {
      display: none;
    }

    .projects-council-fold > summary::after {
      content: "+";
      color: var(--accent);
      font-size: 18px;
      line-height: 1;
    }

    .projects-council-fold[open] > summary::after {
      content: "-";
    }

    .projects-council-fold .explain-grid {
      margin: 0 10px 10px;
    }

    .project-progress {
      display: grid;
      gap: 6px;
    }

    .project-completed-line {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 10px;
      min-height: 36px;
      padding: 8px 10px;
      border: 1px solid rgba(131,214,164,0.2);
      border-radius: 8px;
      background: rgba(131,214,164,0.08);
      color: var(--ink);
      font-size: 12px;
      font-weight: 900;
    }

    .project-completed-line strong {
      font-variant-numeric: tabular-nums;
    }

    .project-progress-head {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .project-progress-track {
      height: 13px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 999px;
      background: rgba(255,255,255,0.065);
    }

    .project-progress-track span {
      display: block;
      width: min(100%, var(--value, 0%));
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--accent), var(--ok));
      box-shadow: 0 0 18px rgba(95,183,200,0.28);
    }

    .project-tag-list,
    .risk-tag-list {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      min-width: 0;
    }

    .risk-audit-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .project-detail-hero {
      display: grid;
      gap: 12px;
      margin-bottom: 12px;
    }

    .project-detail-title-row {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: flex-start;
    }

    .project-detail-title-row h2 {
      font-size: 24px;
    }

    .project-detail-kpi strong {
      font-size: 22px;
    }

    .project-management-hero .muted {
      max-width: 760px;
      margin: 6px 0 0;
    }

    .project-detail-links {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      align-items: center;
    }

    .project-management-section {
      display: grid;
      gap: 12px;
      margin-top: 12px;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--surface);
      padding: 14px;
      box-shadow: var(--shadow);
    }

    .project-management-section .top-actions {
      flex-wrap: wrap;
    }

    .project-management-section .top-actions .ghost-button {
      min-width: 0;
      max-width: 100%;
      height: auto;
      overflow-wrap: anywhere;
      white-space: normal;
    }

    .project-management-kpis {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .project-management-kpi {
      min-width: 0;
      min-height: 78px;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      background:
        linear-gradient(160deg, rgba(131,214,164,0.06), rgba(255,255,255,0.025) 56%),
        rgba(255,255,255,0.035);
      padding: 9px;
    }

    .project-management-kpi span,
    .project-check-row span,
    .project-check-row div span {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
    }

    .project-management-kpi strong {
      display: block;
      margin-top: 3px;
      font-size: 15px;
      line-height: 1.35;
      overflow-wrap: anywhere;
    }

    .project-next-action {
      display: grid;
      gap: 4px;
      border-left: 3px solid var(--accent);
      border-radius: 7px;
      background: rgba(255,255,255,0.04);
      padding: 10px 12px;
    }

    .project-next-action strong {
      overflow-wrap: anywhere;
    }

    .project-next-action span {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .project-year-fold,
    .project-completed-fold {
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 8px;
      background: rgba(255,255,255,0.035);
      overflow: hidden;
    }

    .project-year-fold summary,
    .project-completed-fold summary {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      min-height: 42px;
      padding: 10px 12px;
      cursor: pointer;
      font-weight: 900;
    }

    .project-checklist {
      display: grid;
      gap: 8px;
      padding: 0 10px 10px;
    }

    .project-check-row {
      display: grid;
      grid-template-columns: auto minmax(180px, 1fr) repeat(3, minmax(92px, 0.45fr));
      gap: 8px;
      align-items: center;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      background: rgba(255,255,255,0.03);
      padding: 8px;
    }

    .project-check-row.pending {
      border-color: rgba(239,188,104,0.28);
      background: rgba(239,188,104,0.07);
    }

    .project-check-row p {
      margin: 2px 0 0;
      color: var(--muted);
      font-size: 12px;
    }

    .project-check-note {
      grid-column: 2 / -1;
    }

    .project-log-table-wrap {
      width: 100%;
      overflow-x: auto;
    }

    .project-log-table {
      width: 100%;
      min-width: 720px;
      border-collapse: collapse;
    }

    .project-log-table th,
    .project-log-table td {
      border-bottom: 1px solid rgba(255,255,255,0.08);
      padding: 9px 8px;
      text-align: left;
      vertical-align: top;
      font-size: 12px;
    }

    .project-log-table th {
      color: var(--muted);
      font-weight: 900;
      white-space: nowrap;
    }

    .project-memo-lines {
      display: grid;
      gap: 8px;
    }

    .project-memo-lines p {
      margin: 0;
      border-left: 3px solid var(--accent-2);
      border-radius: 7px;
      background: rgba(255,255,255,0.035);
      padding: 9px 11px;
      color: var(--ink);
    }

    .project-detail-error {
      display: grid;
      gap: 10px;
      max-width: 720px;
    }

    .facts {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-top: 10px;
    }

    .fact {
      min-width: 0;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      padding: 8px;
      background: rgba(255,255,255,0.035);
    }

    .fact span {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
    }

    .fact strong {
      display: block;
      margin-top: 2px;
      font-size: 14px;
      overflow-wrap: anywhere;
    }

    .toolbar {
      display: grid;
      grid-template-columns: minmax(0, 1.5fr) minmax(120px, 0.7fr) auto auto;
      gap: 8px;
      margin: 12px 0;
    }

    input,
    select,
    textarea {
      width: 100%;
      min-height: 40px;
      border: 1px solid var(--line);
      border-radius: 7px;
      background: rgba(255,255,255,0.06);
      color: var(--ink);
      padding: 8px 10px;
    }

    textarea {
      min-height: 94px;
      resize: vertical;
    }

    option { background: #101a2a; }

    .table-wrap {
      overflow-x: auto;
      border: 1px solid var(--line);
      border-radius: 8px;
    }

    table {
      width: 100%;
      border-collapse: collapse;
      min-width: 760px;
      background: rgba(255,255,255,0.03);
    }

    th,
    td {
      padding: 10px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
      text-align: left;
      vertical-align: top;
      font-size: 13px;
    }

    th {
      color: var(--muted);
      font-size: 12px;
      white-space: nowrap;
    }

    .holding-ledger {
      display: grid;
      gap: 14px;
    }

    .holding-summary-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .holding-summary-card {
      min-width: 0;
      padding: 13px;
      border: 1px solid rgba(238,244,248,0.11);
      border-radius: 8px;
      background:
        linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.025)),
        rgba(8, 15, 27, 0.82);
    }

    .holding-summary-card.priority {
      border-color: rgba(95,183,200,0.26);
      background:
        linear-gradient(180deg, rgba(95,183,200,0.14), rgba(255,255,255,0.025)),
        rgba(8, 15, 27, 0.88);
    }

    .holding-summary-card span,
    .holding-control-label,
    .holding-card__label {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-weight: 900;
      line-height: 1.35;
    }

    .holding-summary-card strong {
      display: block;
      margin-top: 5px;
      color: var(--ink);
      font-size: 20px;
      line-height: 1.18;
      font-variant-numeric: tabular-nums;
      overflow-wrap: anywhere;
    }

    .holding-summary-card small {
      display: block;
      margin-top: 5px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.35;
    }

    .margin-position-section {
      display: grid;
      gap: 10px;
      padding: 12px;
      border: 1px solid rgba(210,154,85,0.22);
      border-left: 4px solid var(--warn);
      border-radius: 8px;
      background: rgba(8, 15, 27, 0.72);
    }

    .margin-position-section .section-heading.compact {
      margin: 0;
      align-items: center;
    }

    .margin-position-summary {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .margin-position-list {
      gap: 10px;
    }

    .margin-position-card {
      cursor: default;
      border-color: rgba(210,154,85,0.24);
      background:
        linear-gradient(160deg, rgba(210,154,85,0.12), rgba(255,255,255,0.025) 44%),
        rgba(7,14,27,0.9);
    }

    .margin-position-card .holding-card__main {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .margin-position-card .holding-card__middle {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .holding-view-panel {
      display: grid;
      gap: 14px;
      min-width: 0;
    }

    .holding-view-panel[hidden] {
      display: none;
    }

    .holding-disclosure,
    .holding-ranking-section {
      border: 1px solid rgba(95,183,200,0.2);
      border-radius: 8px;
      background: rgba(8, 15, 27, 0.68);
    }

    .holding-ranking-section {
      padding: 12px;
    }

    .holding-ranking-heading {
      margin: 0;
      align-items: center;
    }

    .holding-disclosure > summary {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center;
      gap: 10px;
      min-height: 58px;
      padding: 11px 12px;
      cursor: pointer;
      list-style: none;
    }

    .holding-disclosure > summary::-webkit-details-marker {
      display: none;
    }

    .holding-disclosure > summary::after {
      content: "+";
      display: grid;
      place-items: center;
      width: 30px;
      height: 30px;
      border: 1px solid rgba(95,183,200,0.28);
      border-radius: 999px;
      color: var(--accent);
      font-size: 20px;
      line-height: 1;
    }

    .holding-disclosure[open] > summary::after {
      content: "−";
    }

    .holding-disclosure > summary:hover,
    .holding-disclosure > summary:focus-visible {
      background: rgba(95,183,200,0.08);
      outline: none;
    }

    .holding-disclosure > summary small,
    .holding-disclosure > summary strong {
      display: block;
    }

    .holding-disclosure > summary small {
      color: var(--muted);
      font-size: 11px;
      font-weight: 900;
      letter-spacing: 0.08em;
    }

    .holding-disclosure > summary strong {
      margin-top: 2px;
      color: var(--ink);
      font-size: 16px;
      line-height: 1.35;
    }

    .holding-disclosure-hint {
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
      white-space: nowrap;
    }

    .holding-disclosure > .holding-insights,
    .holding-disclosure > .holding-ranking-grid {
      margin: 0 12px 12px;
      padding-top: 12px;
      border-top: 1px solid rgba(238,244,248,0.08);
    }

    .holding-ranking-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
    }

    .holding-ranking-card {
      min-width: 0;
      display: grid;
      gap: 8px;
      padding: 10px;
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .holding-ranking-card header,
    .holding-ranking-row {
      display: grid;
      gap: 8px;
      align-items: start;
    }

    .holding-ranking-card header {
      grid-template-columns: minmax(0, 1fr) auto;
    }

    .holding-ranking-card h3 {
      margin: 2px 0 0;
      font-size: 15px;
      line-height: 1.35;
    }

    .holding-ranking-list {
      display: grid;
      gap: 7px;
    }

    .holding-ranking-coverage {
      margin: 0;
      color: var(--warn);
      font-size: 10px;
      line-height: 1.4;
    }

    .holding-ranking-row {
      grid-template-columns: 24px minmax(0, 1fr) minmax(92px, auto);
      padding: 8px;
      border: 1px solid rgba(238,244,248,0.08);
      border-radius: 8px;
      background: rgba(0,0,0,0.14);
      cursor: pointer;
    }

    .holding-ranking-row > span {
      display: grid;
      place-items: center;
      width: 24px;
      aspect-ratio: 1;
      border-radius: 7px;
      background: rgba(95,183,200,0.16);
      color: #dff8ff;
      font-size: 12px;
      font-weight: 950;
    }

    .holding-ranking-row strong,
    .holding-ranking-row small {
      display: block;
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .holding-ranking-row strong {
      color: var(--ink);
      font-size: 12px;
      line-height: 1.35;
    }

    .holding-ranking-row small {
      margin-top: 2px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.35;
    }

    .holding-insights {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
    }

    .holding-insight {
      min-width: 0;
      padding: 12px;
      border: 1px solid rgba(238,244,248,0.1);
      border-left: 3px solid var(--tone, var(--accent));
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .holding-insight strong {
      display: block;
      margin-bottom: 5px;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.35;
    }

    .holding-insight p {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .holding-control-panel {
      display: grid;
      gap: 10px;
      padding: 10px;
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 8px;
      background: rgba(5,10,22,0.78);
    }

    .holding-search-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(170px, 0.34fr);
      gap: 8px;
    }

    .holding-filter-scroll {
      display: flex;
      gap: 6px;
      overflow-x: auto;
      padding-bottom: 2px;
      scrollbar-width: thin;
    }

    .holding-filter-scroll button {
      flex: 0 0 auto;
      min-height: 34px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 999px;
      background: rgba(255,255,255,0.045);
      color: var(--muted);
      padding: 6px 10px;
      font-size: 12px;
      font-weight: 900;
      white-space: nowrap;
    }

    .holding-filter-scroll button.active,
    .holding-view-mode button.active {
      border-color: rgba(95,183,200,0.58);
      background: rgba(95,183,200,0.2);
      color: #effcff;
    }

    .holding-view-mode {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 6px;
    }

    .holding-view-mode button {
      min-width: 0;
      min-height: 44px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      background: rgba(255,255,255,0.045);
      color: var(--muted);
      padding: 6px 8px;
      font-size: 12px;
      font-weight: 900;
    }

    .holding-ledger-list {
      display: grid;
      gap: 12px;
    }

    .holding-card {
      display: grid;
      gap: 12px;
      padding: 13px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      background:
        linear-gradient(160deg, rgba(95,183,200,0.08), rgba(255,255,255,0.025) 42%),
        rgba(7,14,27,0.9);
      box-shadow: 0 14px 28px rgba(0,0,0,0.24);
      cursor: pointer;
    }

    .holding-card.concentration-high {
      border-color: rgba(239,188,104,0.34);
      background:
        linear-gradient(160deg, rgba(239,188,104,0.13), rgba(95,183,200,0.06) 48%, rgba(255,255,255,0.025)),
        rgba(7,14,27,0.92);
    }

    .holding-card:focus-visible {
      outline: 2px solid rgba(95,183,200,0.68);
      outline-offset: 2px;
    }

    .holding-card__header,
    .holding-card__badges,
    .holding-card__sub,
    .holding-card__actions,
    .holding-table-name {
      display: flex;
      gap: 8px;
      align-items: center;
      min-width: 0;
    }

    .holding-card__header {
      justify-content: space-between;
      align-items: flex-start;
    }

    .holding-card__identity {
      min-width: 0;
    }

    .holding-card__identity-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
      margin-top: 4px;
    }

    .holding-card__name {
      color: var(--ink);
      font-size: 17px;
      font-weight: 950;
      line-height: 1.35;
      overflow-wrap: anywhere;
    }

    .holding-card__code {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.4;
    }

    .holding-card__badges,
    .holding-card__actions {
      flex-wrap: wrap;
    }

    .holding-card__main {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .holding-card__main > div,
    .holding-card__middle > div {
      min-width: 0;
      padding: 10px;
      border: 1px solid rgba(238,244,248,0.09);
      border-radius: 8px;
      background: rgba(255,255,255,0.045);
    }

    .holding-card__main strong {
      display: block;
      margin-top: 3px;
      color: var(--ink);
      font-size: 22px;
      line-height: 1.12;
      font-variant-numeric: tabular-nums;
      overflow-wrap: anywhere;
    }

    .holding-card__middle {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
    }

    .holding-card__middle strong {
      display: block;
      margin-top: 3px;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.25;
      font-variant-numeric: tabular-nums;
      overflow-wrap: anywhere;
    }

    .holding-card__meta {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 6px;
    }

    .holding-card__meta span {
      min-width: 0;
      padding: 7px 8px;
      border: 1px solid rgba(238,244,248,0.08);
      border-radius: 7px;
      background: rgba(255,255,255,0.035);
      color: var(--ink);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.35;
      overflow-wrap: anywhere;
    }

    .holding-card__meta b {
      display: block;
      margin-bottom: 2px;
      color: var(--muted);
      font-size: 10px;
      font-weight: 950;
    }

    .holding-card__meta .wide {
      grid-column: span 2;
    }

    .holding-card__sub {
      flex-wrap: wrap;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.45;
    }

    .holding-card__sub span {
      min-width: 0;
    }

    .holding-card__detail {
      display: grid;
      gap: 10px;
      padding-top: 10px;
      border-top: 1px solid rgba(238,244,248,0.1);
    }

    .holding-detail-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .holding-detail-grid .fact strong {
      font-variant-numeric: tabular-nums;
    }

    .holding-card__actions button {
      min-height: 34px;
      border-radius: 8px;
      font-size: 12px;
    }

    .holding-empty {
      padding: 18px;
      border: 1px dashed rgba(238,244,248,0.2);
      border-radius: 8px;
      color: var(--muted);
      text-align: center;
      background: rgba(255,255,255,0.035);
    }

    .holding-load-more {
      display: flex;
      justify-content: center;
      margin-top: 12px;
    }

    .holding-load-more:empty {
      display: none;
    }

    .holding-skeleton {
      display: grid;
      gap: 10px;
    }

    .holding-skeleton span {
      display: block;
      height: 14px;
      border-radius: 999px;
      background: linear-gradient(90deg, rgba(255,255,255,0.06), rgba(255,255,255,0.16), rgba(255,255,255,0.06));
      background-size: 220% 100%;
      animation: skeleton-pan 1.4s ease-in-out infinite;
    }

    .holding-skeleton span:nth-child(1) { width: 74%; height: 20px; }
    .holding-skeleton span:nth-child(2) { width: 46%; }
    .holding-skeleton span:nth-child(3) { width: 92%; height: 34px; }

    @keyframes skeleton-pan {
      from { background-position: 100% 0; }
      to { background-position: -100% 0; }
    }

    .badge,
    .status-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 0;
      min-height: 24px;
      border: 1px solid rgba(238,244,248,0.14);
      border-radius: 999px;
      padding: 3px 8px;
      font-size: 11px;
      font-weight: 950;
      line-height: 1.2;
      white-space: nowrap;
    }

    .badge.category {
      color: #dceef4;
      background: rgba(95,183,200,0.1);
      border-color: rgba(95,183,200,0.24);
    }

    .badge.audit {
      color: #ffe4d6;
      background: rgba(255,139,127,0.13);
      border-color: rgba(255,139,127,0.3);
    }

    .status-badge.stable {
      color: #dffcf2;
      background: rgba(90,190,165,0.14);
      border-color: rgba(90,190,165,0.34);
    }

    .status-badge.notice {
      color: #ffe8b7;
      background: rgba(210,154,85,0.16);
      border-color: rgba(210,154,85,0.36);
    }

    .status-badge.alert {
      color: #ffd9d5;
      background: rgba(255,139,127,0.15);
      border-color: rgba(255,139,127,0.38);
    }

    .status-badge.check {
      color: #eadfff;
      background: rgba(182,164,255,0.14);
      border-color: rgba(182,164,255,0.34);
    }

    .status-badge.unknown {
      color: #d4dee6;
      background: rgba(159,176,190,0.13);
      border-color: rgba(159,176,190,0.28);
    }

    .profit-positive { color: #73d8c4 !important; }
    .profit-negative { color: #ff9b91 !important; }
    .profit-neutral { color: #c7d4dd !important; }

    .holding-table {
      min-width: 1040px;
    }

    .holding-table th,
    .holding-table td {
      min-height: 48px;
      padding: 12px 10px;
      vertical-align: middle;
      font-variant-numeric: tabular-nums;
    }

    .holding-table thead th {
      position: sticky;
      top: 0;
      z-index: 4;
      background: rgba(12,22,37,0.98);
      backdrop-filter: blur(12px);
    }

    .holding-table tbody tr {
      transition: background 140ms ease;
    }

    .holding-table tbody tr:hover {
      background: rgba(95,183,200,0.075);
    }

    .holding-table .num {
      text-align: right;
      white-space: nowrap;
    }

    .holding-table .sticky-code,
    .holding-table .sticky-name {
      position: sticky;
      z-index: 3;
      background: rgba(8, 15, 27, 0.98);
    }

    .holding-table thead .sticky-code,
    .holding-table thead .sticky-name {
      z-index: 5;
      background: rgba(12,22,37,0.98);
    }

    .holding-table .sticky-code {
      left: 0;
      min-width: 96px;
      max-width: 96px;
    }

    .holding-table .sticky-name {
      left: 96px;
      min-width: 250px;
      max-width: 250px;
      white-space: normal;
    }

    .holding-table-name {
      justify-content: space-between;
      align-items: flex-start;
    }

    .chart {
      width: 100%;
      min-height: 240px;
    }

    .chart.compact {
      min-height: 172px;
    }

    .chart svg {
      display: block;
      width: 100%;
      height: auto;
    }

    .asset-role-native {
      display: grid;
      justify-items: center;
      gap: 4px;
    }

    .asset-role-native svg {
      width: min(100%, 420px);
      filter: drop-shadow(0 8px 22px rgba(0,0,0,0.28));
    }

    .asset-role-center-label {
      fill: var(--muted);
      font-size: 12px;
      font-weight: 900;
    }

    .asset-role-center-value {
      fill: var(--ink);
      font-size: 15px;
      font-weight: 950;
    }

    .asset-role-depth-note {
      color: var(--muted);
      font-size: 11px;
      font-weight: 850;
      text-align: center;
    }

    .native-donut { width: min(100%, 360px); margin: 8px auto; overflow: visible; }
    .native-donut-track { stroke: rgba(255,255,255,0.08); }
    .native-donut-slice { transition: opacity 120ms ease; }
    .native-donut-slice:hover { opacity: 0.78; }
    .native-donut-label { fill: var(--ink); font-size: 8px; font-weight: 900; }
    @media (prefers-reduced-motion: reduce) { .native-donut-slice { transition: none; } }

    .chart-axis,
    .chart-grid-line {
      stroke: rgba(255,255,255,0.14);
      stroke-width: 1;
    }

    .chart-line {
      fill: none;
      stroke-width: 3;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .chart-label {
      fill: var(--muted);
      font-size: 12px;
    }

    .chart-bar { rx: 5; }
    .chart-point { stroke: var(--bg); stroke-width: 2; }

    .chart-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 12px;
      align-items: center;
      margin-top: 8px;
      padding-top: 8px;
      border-top: 1px solid rgba(238,244,248,0.08);
    }

    .chart-legend-item {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      min-width: 0;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.4;
    }

    .chart-legend-marker {
      width: 16px;
      height: 8px;
      flex: none;
      border-radius: 999px;
      background: var(--legend-color, var(--accent));
      box-shadow: 0 0 0 1px rgba(238,244,248,0.12) inset;
    }

    .chart-legend-marker.dashed {
      background:
        repeating-linear-gradient(90deg, var(--legend-color, var(--accent)) 0 5px, transparent 5px 9px);
      box-shadow: none;
    }

    .chart-legend-value {
      color: var(--text);
      font-weight: 900;
    }

    #investment-map .view-head {
      margin-bottom: 8px;
    }

    #investment-map .view-title {
      max-width: 720px;
    }

    #investment-map .view-title h1 {
      line-height: 1.05;
    }

    #investment-map .view-title .muted {
      margin-top: 4px;
    }

    .map-dashboard {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(260px, 0.32fr);
      gap: 12px;
      align-items: stretch;
      margin-top: 0;
    }

    .investment-map-hero {
      padding: 10px;
      background:
        linear-gradient(180deg, rgba(8,18,31,0.96), rgba(3,7,16,0.98)),
        var(--surface);
    }

    .investment-map-hero > header {
      margin-bottom: 6px;
    }

    .investment-map-hero .chart-description {
      max-width: 680px;
    }

    .map-stage {
      min-height: min(68svh, 680px);
      position: relative;
      overflow: hidden;
      border: 1px solid rgba(95,183,200,0.22);
      border-radius: 8px;
      background:
        radial-gradient(circle at 50% 48%, rgba(95,183,200,0.13), transparent 42%),
        linear-gradient(180deg, rgba(4, 9, 20, 0.74), rgba(2, 5, 13, 0.96)),
        rgba(4, 9, 20, 0.94);
      box-shadow: inset 0 0 70px rgba(0,0,0,0.46);
    }

    .map-stage::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      background:
        linear-gradient(90deg, rgba(255,255,255,0.026) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,0.018) 1px, transparent 1px);
      background-size: 64px 64px;
      mask-image: radial-gradient(circle at 50% 48%, rgba(0,0,0,0.9), rgba(0,0,0,0.16) 72%);
    }

    .map-stage svg {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      display: block;
    }

    .map-layer-controls {
      position: absolute;
      z-index: 3;
      top: 10px;
      right: 10px;
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 6px;
      max-width: min(440px, calc(100% - 20px));
      padding: 6px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      background: rgba(4,9,20,0.72);
      backdrop-filter: blur(12px);
    }

    .map-total-window {
      position: absolute;
      z-index: 4;
      top: 10px;
      left: 10px;
      max-width: min(420px, calc(100% - 470px));
      border: 1px solid rgba(238,244,248,0.18);
      border-radius: 8px;
      padding: 10px 13px;
      background:
        linear-gradient(135deg, rgba(95,183,200,0.18), rgba(4,9,20,0.84)),
        rgba(4,9,20,0.82);
      box-shadow: 0 16px 34px rgba(0,0,0,0.38), inset 3px 0 0 rgba(95,183,200,0.62);
      backdrop-filter: blur(14px);
      pointer-events: none;
    }

    .map-total-window span {
      display: block;
      margin-bottom: 4px;
      color: rgba(238,244,248,0.68);
      font-size: 11px;
      font-weight: 900;
      line-height: 1.1;
    }

    .map-total-window .map-total-number {
      font-size: clamp(24px, 4.8vw, 44px);
      line-height: 0.98;
    }

    .map-total-window small {
      display: block;
      margin-top: 7px;
      color: rgba(238,244,248,0.76);
      font-size: 10px;
      font-weight: 800;
      line-height: 1.2;
    }

    .map-layer-controls button {
      min-height: 34px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 7px;
      background: rgba(255,255,255,0.045);
      color: var(--muted);
      padding: 6px 9px;
      font-size: 12px;
      font-weight: 900;
      white-space: nowrap;
    }

    .map-layer-controls button.active {
      border-color: rgba(95,183,200,0.58);
      background: rgba(95,183,200,0.2);
      color: #effcff;
      box-shadow: 0 0 18px rgba(95,183,200,0.15);
    }

    .map-heat-legend {
      position: absolute;
      z-index: 3;
      top: 64px;
      right: 10px;
      width: min(230px, calc(100% - 20px));
      border: 1px solid rgba(238,244,248,0.14);
      border-radius: 8px;
      padding: 8px 10px;
      background: rgba(4,9,20,0.78);
      box-shadow: 0 12px 28px rgba(0,0,0,0.28);
      backdrop-filter: blur(12px);
      pointer-events: none;
    }

    .map-heat-legend > div:first-child,
    .map-heat-values {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }

    .map-heat-legend strong {
      color: var(--ink);
      font-size: 11px;
      letter-spacing: 0.08em;
    }

    .map-heat-legend span {
      color: var(--muted);
      font-size: 10px;
      font-weight: 800;
    }

    .map-heat-legend .map-heat-scale {
      display: block;
      height: 8px;
      margin: 6px 0 4px;
      border: 1px solid rgba(238,244,248,0.16);
      border-radius: 999px;
      background: linear-gradient(90deg, #214b61 0%, #2f8292 25%, #5fb7c8 50%, #d29a55 75%, #efbc68 100%);
      box-shadow: 0 0 14px rgba(239,188,104,0.16);
    }

    .map-heat-values span:last-child {
      color: #f4cf8a;
    }

    .map-summary-bar {
      position: absolute;
      z-index: 3;
      right: 10px;
      bottom: 10px;
      left: 10px;
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 6px;
      padding: 8px;
      border: 1px solid rgba(238,244,248,0.13);
      border-radius: 8px;
      background: rgba(4,9,20,0.72);
      backdrop-filter: blur(14px);
    }

    .map-summary-item {
      min-width: 0;
      border-left: 2px solid rgba(95,183,200,0.5);
      padding-left: 8px;
    }

    .map-summary-item span {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
      line-height: 1.2;
    }

    .map-summary-item strong {
      display: block;
      margin-top: 2px;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.2;
      overflow-wrap: anywhere;
    }

    .map-feature {
      stroke: rgba(185, 204, 216, 0.18);
      stroke-width: 0.72;
      vector-effect: non-scaling-stroke;
      transition: fill 160ms ease, opacity 160ms ease, stroke 160ms ease;
    }

    .map-feature.background,
    .map-feature.country {
      fill: rgba(160,178,190,0.06);
      stroke: rgba(195,211,222,0.08);
      pointer-events: none;
    }

    .map-feature.invested {
      fill: var(--map-fill, rgba(95,183,200,0.5));
      stroke: var(--map-stroke, rgba(238,244,248,0.58));
      cursor: pointer;
      pointer-events: all;
      filter: drop-shadow(0 0 var(--map-glow, 5px) var(--map-glow-color, rgba(95,183,200,0.2)));
    }

    .map-feature.top-country {
      stroke-width: 1.3;
    }

    .map-feature.selected {
      stroke: #ffffff;
      stroke-width: 2.2;
      filter: drop-shadow(0 0 12px rgba(239,188,104,0.5));
    }

    .map-marker {
      fill: var(--marker-fill, rgba(210,154,85,0.86));
      stroke: rgba(255,255,255,0.78);
      stroke-width: 1.2;
      cursor: pointer;
      filter: drop-shadow(0 0 var(--marker-glow, 10px) var(--marker-glow-color, rgba(210,154,85,0.34)));
    }

    .map-marker.selected {
      stroke: #ffffff;
      stroke-width: 2.2;
    }

    .map-marker-label {
      fill: #eef8fb;
      font-size: 11px;
      font-weight: 950;
      paint-order: stroke;
      stroke: rgba(2,5,13,0.88);
      stroke-width: 4px;
      pointer-events: none;
    }

    .map-panel {
      position: sticky;
      top: 78px;
      align-self: start;
      max-height: calc(100svh - 104px);
      overflow-y: auto;
    }

    .map-detail-list,
    .rank-list,
    .country-card-grid {
      display: grid;
      gap: 8px;
      margin-top: 10px;
    }

    .country-card-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .map-asset-row,
    .rank-row,
    .country-rank-card {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 10px;
      align-items: center;
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 9px;
      background: rgba(255,255,255,0.04);
    }

    .holding-ledger-footer {
      padding: 8px 2px 0;
      border-top: 1px solid rgba(238,244,248,0.08);
    }

    .holding-ledger-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 14px;
    }

    .holding-ledger-meta-item {
      min-width: 0;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.5;
    }

    .holding-ledger-meta-item strong {
      color: rgba(238,244,248,0.82);
      font-size: inherit;
      font-weight: 800;
      overflow-wrap: anywhere;
    }

    .country-rank-card {
      min-height: 86px;
      cursor: pointer;
      text-align: left;
    }

    .country-rank-card:hover,
    .country-rank-card:focus-visible {
      border-color: rgba(95,183,200,0.42);
      background: rgba(95,183,200,0.09);
      outline: none;
    }

    .country-rank-card strong,
    .map-asset-row strong,
    .rank-row strong {
      display: block;
      overflow-wrap: anywhere;
    }

    .country-rank-card .rank-index {
      align-self: start;
      color: var(--accent);
      font-size: 12px;
      font-weight: 950;
    }

    .country-rank-card .country-card-meta {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin-top: 5px;
    }

    .country-rank-card .country-card-meta span {
      min-width: 0;
      color: var(--ink);
      font-size: 12px;
      line-height: 1.35;
    }

    .country-rank-card .country-card-meta small,
    .country-rank-card .country-card-meta strong {
      display: inline;
      font-size: inherit;
    }

    .country-rank-card .country-card-meta small {
      margin-right: 5px;
      color: var(--muted);
      font-size: 10px;
    }

    .country-ranking-fold,
    .map-asset-bucket-fold {
      margin-top: 10px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background: rgba(255,255,255,0.035);
      overflow: hidden;
    }

    .country-ranking-fold > summary,
    .map-asset-bucket-fold > summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      min-width: 0;
      padding: 11px 12px;
      cursor: pointer;
      color: var(--ink);
      font-weight: 900;
    }

    .country-ranking-fold > summary::-webkit-details-marker,
    .map-asset-bucket-fold > summary::-webkit-details-marker {
      display: none;
    }

    .country-ranking-fold > summary strong,
    .map-asset-bucket-fold > summary strong {
      color: var(--accent);
      font-size: 13px;
      white-space: nowrap;
    }

    .map-asset-bucket-fold > summary small {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      white-space: nowrap;
    }

    .country-ranking-fold .country-card-grid,
    .map-asset-bucket-fold .map-detail-list {
      padding: 0 10px 10px;
    }

    .country-detail-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 12px;
    }

    .country-detail-heading {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 10px;
      align-items: center;
    }

    .country-flag-badge {
      display: grid;
      place-items: center;
      width: 46px;
      aspect-ratio: 1.35;
      border: 1px solid rgba(238,244,248,0.18);
      border-radius: 7px;
      background:
        linear-gradient(180deg, rgba(255,255,255,0.09), rgba(255,255,255,0.025)),
        rgba(4,9,20,0.72);
      box-shadow: 0 10px 24px rgba(0,0,0,0.24);
      font-size: 26px;
      line-height: 1;
    }

    .map-bottom-sheet {
      position: fixed;
      inset: 0;
      z-index: 86;
      display: grid;
      align-items: end;
      background: rgba(1,4,10,0.48);
      backdrop-filter: blur(8px);
    }

    .map-bottom-sheet[hidden] {
      display: none;
    }

    .map-sheet-backdrop {
      position: absolute;
      inset: 0;
      border: 0;
      background: transparent;
      padding: 0;
    }

    .map-sheet-card {
      position: relative;
      z-index: 1;
      width: min(760px, 100%);
      max-height: min(70svh, 680px);
      overflow-y: auto;
      justify-self: center;
      border: 1px solid rgba(95,183,200,0.32);
      border-radius: 8px 8px 0 0;
      background: rgba(7,15,27,0.98);
      box-shadow: 0 -18px 60px rgba(0,0,0,0.42);
      padding: 14px;
    }

    .map-sheet-card header {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 10px;
      margin-bottom: 10px;
    }

    .map-sheet-close {
      min-width: 42px;
      min-height: 38px;
      border: 1px solid var(--line);
      border-radius: 7px;
      background: rgba(255,255,255,0.055);
      color: var(--ink);
      font-weight: 950;
    }

    .nonstate-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 12px;
    }

    .classification-note {
      border-left: 3px solid var(--warn);
      padding-left: 10px;
    }

    .dividend-tree-view .view-head {
      margin-bottom: 12px;
    }

    .dividend-command-grid {
      grid-template-columns: repeat(5, minmax(0, 1fr));
      margin-top: 16px;
    }

    .dividend-kpi-card {
      position: relative;
      overflow: hidden;
      border: 1px solid rgba(239,188,104,0.2);
      background:
        linear-gradient(135deg, rgba(239,188,104,0.12), rgba(95,183,200,0.06)),
        var(--surface);
    }

    .dividend-kpi-card::after {
      content: "";
      position: absolute;
      inset: auto 12px 10px auto;
      width: 42px;
      height: 42px;
      border-radius: 999px;
      border: 1px solid rgba(239,188,104,0.16);
      background: radial-gradient(circle, rgba(239,188,104,0.22), transparent 64%);
      pointer-events: none;
    }

    .dividend-kpi-card strong {
      position: relative;
      z-index: 1;
    }

    .dividend-tree-shell {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(220px, 0.34fr);
      gap: 12px;
      align-items: stretch;
      margin-top: 12px;
    }

    .dividend-tree-card {
      position: relative;
      overflow: hidden;
      border: 1px solid rgba(164, 196, 159, .24);
      border-radius: 12px;
      background: radial-gradient(ellipse at 50% 40%, #18362b, #0b1c19 72%);
      box-shadow: var(--shadow);
    }

    .dividend-tree-stage { position: relative; padding: 14px 8px; container-type: inline-size; }
    .dividend-tree-stage svg { display: block; width: 100%; max-width: 660px; height: auto; margin-inline: auto; }
    .orchard-caption { margin: 0 8px 4px; text-align: center; color: #b8c8ba; font-size: 12px; }
    .orchard-ground { fill: #061510; opacity: .65; }
    .orchard-bark-detail { fill: none; stroke: #dfb779; stroke-width: 2; opacity: .48; stroke-linecap: round; }
    .orchard-grass { fill: none; stroke: #698e57; stroke-width: 3; stroke-linecap: round; }
    .orchard-sector { cursor: pointer; outline: none; }
    .orchard-crown { stroke: #578166; stroke-opacity: .55; stroke-width: 1.5; transition: stroke 150ms ease; }
    .orchard-sector-hit { fill: transparent; stroke: transparent; stroke-width: 2; pointer-events: all; }
    .orchard-sector:hover .orchard-sector-hit, .orchard-sector:focus-visible .orchard-sector-hit { fill: #fff4cd08; stroke: #f6d48d; }
    .orchard-sector-divider { fill: none; stroke: #c7d7b5; stroke-opacity: .2; stroke-width: 1.5; stroke-dasharray: 3 8; }
    .orchard-floor { position: relative; max-width: 660px; margin: -38px auto 14px; padding: 0 0 12px; border-radius: 50%; background: radial-gradient(ellipse at 50% 45%, #65513575, #332e2440 55%, transparent 72%); }
    .orchard-floor-heading { margin: 0; color: #e4d5b5; font-size: 13px; text-align: center; }
    .orchard-monthly-amount { display: grid; gap: 4px; margin: 12px 12px 0; text-align: center; color: #e4d5b5; }
    .orchard-monthly-amount > span { font-size: 12px; }
    .orchard-monthly-amount > strong { font-size: clamp(22px, 5cqw, 30px); line-height: 1.3; color: #ffe2a4; font-variant-numeric: tabular-nums; }
    .orchard-monthly-amount > small { font-size: 11px; color: #a7b49e; }
    .orchard-floor-heading span { margin-left: 8px; color: #a7b49e; font-size: 11px; }
    .orchard-fallen-fruits { position: relative; width: 100%; container-type: inline-size; }
    .orchard-fallen-fruit { position: absolute; display: grid; place-items: center; width: max(44px, var(--fallen-size)); height: max(44px, var(--fallen-size)); min-height: 0; border: 0; border-radius: 50%; padding: 0; background: transparent; cursor: pointer; pointer-events: none; transform: translate(-50%, -50%); }
    .orchard-fallen-fruit:hover, .orchard-fallen-fruit:focus-visible { z-index: 1; outline: 2px solid #f6d48d; outline-offset: 4px; }
    .orchard-fallen-drop { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: var(--fallen-size); height: var(--fallen-size); container-type: inline-size; border: 1px solid #fbd5a1; border-radius: 50%; color: #30291e; background: radial-gradient(circle at 32% 25%, #fff0bc, var(--fruit-color) 62%, #a9533f); box-shadow: inset 0 0 0 2px #633b2b38, 1px 3px 2px #0008; transform: rotate(var(--fall-tilt)); transform-origin: 50% 85%; animation: orchard-fruit-drop 820ms both; animation-delay: var(--fall-delay); }
    .orchard-fallen-drop .orchard-coin-symbol { font-size: 50cqw; line-height: 1; }
    .orchard-fallen-drop { pointer-events: auto; }
    .orchard-fallen-drop strong { max-width: 96%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(7px, 19cqw, 11px); line-height: 1.4; }
    .orchard-fallen-fruit[data-cash-receivable="false"] .orchard-fallen-drop { outline: 2px dashed #d1b6ee; outline-offset: 2px; }
    .orchard-floor-empty { position: absolute; inset: 45% 0 auto; text-align: center; color: #a9bba7; font-size: 12px; margin: 0; }
    @keyframes orchard-fruit-drop {
      0% { opacity: 0; transform: translate(var(--fall-drift), max(-400px, -65cqw)) rotate(-28deg); animation-timing-function: cubic-bezier(.55, .05, .9, .5); }
      8% { opacity: 1; }
      64% { opacity: 1; transform: translate(0, 0) rotate(var(--fall-tilt)) scale(1.12, .85); animation-timing-function: ease-out; }
      78% { transform: translate(2px, -10px) rotate(calc(var(--fall-tilt) + 5deg)) scale(.98, 1.02); animation-timing-function: ease-in; }
      90% { transform: translate(0, 0) rotate(var(--fall-tilt)) scale(1.04, .96); }
      100% { opacity: 1; transform: rotate(var(--fall-tilt)); }
    }
    @media (prefers-reduced-motion: reduce) { .orchard-fallen-drop { animation: none; } }
    .orchard-ripeness-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 12px; max-width: 620px; margin: 8px auto 12px; color: #c6d0bc; font-size: 11px; }
    .orchard-ripeness-legend span { display: inline-flex; align-items: center; gap: 4px; }
    .orchard-ripeness-legend i { width: 10px; height: 10px; border-radius: 50%; background: var(--fruit-color); }
    .orchard-holding small.orchard-payment-label { color: #e2d3ac; }
    .orchard-leaves { fill: #70a16b; fill-opacity: .2; stroke: #8cbb80; stroke-opacity: .15; stroke-width: 3; }
    .orchard-twig { fill: none; stroke: #a88b57; stroke-width: 3; stroke-linecap: round; opacity: .5; }
    .dividend-node .node-fruit { stroke: #ffe4a8; stroke-opacity: .65; stroke-width: 1; filter: drop-shadow(0 4px 4px #07181088); }
    .dividend-node[data-cash-receivable="false"] .node-fruit { stroke: #d1b6ee; stroke-width: 3; stroke-dasharray: 5 3; }
    .orchard-coin-rim { fill: none; stroke: #544328; stroke-opacity: .45; stroke-width: 1; pointer-events: none; }
    .orchard-coin-symbol { fill: #263226; color: #263226; font-family: Arial, sans-serif; font-weight: 800; pointer-events: none; }
    .orchard-company { fill: #fff5de; font-size: 20px; font-weight: 650; paint-order: stroke; stroke: #193c2d; stroke-width: 4px; stroke-linejoin: round; }
    .orchard-sector-name { fill: #f6e8c9; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 24px; font-weight: 700; }
    .orchard-sector-amount { fill: #d5dfcb; font-size: 20px; font-variant-numeric: tabular-nums; }
    .orchard-sector-more { fill: #d7cfb1; font-size: 19px; }
    .orchard-empty { fill: #bdceb9; font-size: 20px; }
    .orchard-sector-totals { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid #ffffff20; }
    .orchard-sector-totals > div:first-child { grid-column: 1 / -1; }
    .orchard-sector-totals span, .orchard-sector-totals strong { display: block; }
    .orchard-sector-totals span { color: #b8c8ba; font-size: 12px; }
    .orchard-sector-totals strong { color: #f7e4b9; font-variant-numeric: tabular-nums; margin-top: 4px; }
    .orchard-sector-totals > div:first-child strong { font-size: 28px; }
    .orchard-list-heading { margin: 18px 0 8px; color: var(--muted); font-size: 12px; }
    .orchard-holdings { display: grid; }
    .orchard-holding { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 84px; padding: 12px 0; text-align: left; border: 0; border-bottom: 1px solid #ffffff1c; border-radius: 0; background: transparent; color: #edf1e8; cursor: pointer; }
    .orchard-holding:hover, .orchard-holding:focus-visible { background: #b8c8ba12; }
    .orchard-holding:focus-visible { outline: 2px solid #f6d48d; outline-offset: -2px; }
    .orchard-holding-fruit { display: grid; place-items: center; width: 50px; height: 50px; }
    .orchard-holding-fruit > span { position: relative; display: grid; place-items: center; width: var(--fruit-diameter); height: var(--fruit-diameter); font-size: calc(var(--fruit-diameter) * .6); line-height: 1; border-radius: 50%; background: radial-gradient(circle at 28% 22%, #fff0bc, var(--fruit-color) 60%, #9a793d); box-shadow: inset 0 0 0 1px #ffe4a8aa, 0 2px 0 #635135; }
    .orchard-holding-fruit > span::before { content: ""; position: absolute; inset: 10%; border: 1px solid #54432870; border-radius: 50%; pointer-events: none; }
    .orchard-holding-name { min-width: 0; overflow-wrap: anywhere; }
    .orchard-holding-name strong { display: block; font-size: 14px; line-height: 1.5; }
    .orchard-holding small { display: block; color: #b9c6cc; font-size: 11px; line-height: 1.7; }
    .orchard-holding small.orchard-excluded { color: #d1b6ee; }
    .orchard-holding-amount { text-align: right; font-variant-numeric: tabular-nums; }
    .orchard-holding-amount strong { font-size: 15px; color: #f6dfaf; }
    #dividend-sector-modal { z-index: 81; }
    #dividend-node-modal { z-index: 82; }
    #dividend-node-modal .dividend-modal-card { width: min(520px, 100%); }
    #dividend-node-modal .view-head { display: flex; flex-direction: row; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
    #dividend-node-modal .view-head > div { min-width: 0; }
    #dividend-node-modal h2 { margin: 4px 0 0; font-size: 20px; line-height: 1.35; overflow-wrap: anywhere; }
    #dividend-node-modal [data-close-dividend-modal] { width: auto; flex: 0 0 auto; min-height: 40px; padding: 6px 10px; }
    .dividend-forecast-meta { margin: 0 0 10px; color: var(--muted); font-size: 11px; }
    .dividend-forecast-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px 0; border-block: 1px solid var(--line); }
    .dividend-forecast-totals span { display: block; color: var(--muted); font-size: 11px; }
    .dividend-forecast-totals strong { display: block; margin-top: 5px; font-size: clamp(20px, 5.4vw, 26px); line-height: 1.25; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .dividend-forecast-facts { margin: 8px 0; font-size: 13px; }
    .dividend-forecast-facts > div { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 12px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid var(--line); }
    .dividend-forecast-facts dt { color: var(--muted); }
    .dividend-forecast-facts dd { margin: 0; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .dividend-forecast-facts small { display: block; color: var(--muted); font-size: 10px; font-weight: 400; margin-top: 2px; }
    .dividend-forecast-excluded { margin: 10px 0; color: #dec5f7; font-size: 12px; line-height: 1.5; }
    .dividend-forecast-tax { font-size: 12px; }
    .dividend-forecast-tax summary { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 40px; cursor: pointer; list-style: none; }
    .dividend-forecast-tax summary::-webkit-details-marker { display: none; }
    .dividend-forecast-tax summary strong { margin-left: 6px; font-variant-numeric: tabular-nums; }
    .dividend-forecast-tax summary > span:last-child::after { content: " ＋"; }
    .dividend-forecast-tax[open] summary > span:last-child::after { content: " −"; }
    .dividend-forecast-tax > p { margin: 8px 0; color: var(--muted); line-height: 1.5; }
    .dividend-forecast-actions { display: flex; justify-content: flex-end; margin-top: 8px; }
    .dividend-forecast-actions button { min-height: 40px; padding: 6px 10px; font-size: 12px; }
    @media (prefers-reduced-motion: reduce) { .orchard-crown { transition: none; } }

    .dividend-guide {
      display: grid;
      grid-template-rows: auto auto 1fr;
      gap: 10px;
      padding: 12px;
    }

    .dividend-guide-portrait {
      overflow: hidden;
      min-height: 220px;
      border: 1px solid rgba(239,188,104,0.24);
      border-radius: 8px;
      background:
        radial-gradient(circle at 50% 18%, rgba(239,188,104,0.2), transparent 30%),
        rgba(5,10,22,0.58);
    }

    .dividend-guide-portrait img {
      display: block;
      width: 100%;
      height: 100%;
      min-height: 220px;
      object-fit: cover;
      object-position: center 16%;
    }

    .dividend-guide-comment {
      border: 1px solid rgba(239,188,104,0.24);
      border-radius: 8px;
      padding: 10px;
      background: rgba(239,188,104,0.1);
    }

    .dividend-audit-lines {
      display: grid;
      gap: 7px;
      margin-top: 8px;
    }

    .dividend-audit-line {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 8px;
      align-items: start;
      margin: 0;
      color: var(--text);
      font-size: 13px;
      line-height: 1.5;
    }

    .dividend-audit-line::before {
      content: "";
      width: 8px;
      height: 8px;
      margin-top: 0.58em;
      border-radius: 999px;
      background: var(--warn);
      box-shadow: 0 0 0 4px rgba(239,188,104,0.12);
    }

    .dividend-node-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 8px;
    }

    .status.dividend-cash-excluded {
      border-color: rgba(182,164,255,0.4);
      background: rgba(182,164,255,0.14);
      color: #ddd5ff;
    }

    .dividend-tree-controls {
      display: grid;
      gap: 8px;
      align-self: end;
    }

    .dividend-tree-modal {
      position: fixed;
      inset: 0;
      z-index: 80;
      display: grid;
      place-items: center;
      padding: 18px;
      background: rgba(2,6,14,0.74);
      backdrop-filter: blur(10px);
    }

    .dividend-tree-modal[hidden] {
      display: none;
    }

    .dividend-modal-card {
      width: min(620px, 100%);
      max-height: min(86dvh, 720px);
      overflow-y: auto;
      border: 1px solid rgba(239,188,104,0.32);
      border-radius: 8px;
      background: rgba(9,18,31,0.98);
      box-shadow: var(--shadow);
      padding: 14px;
    }

    .dividend-zoom-card {
      width: min(980px, 100%);
    }

    .dividend-zoom-card .dividend-tree-stage {
      min-height: 0;
    }

    .dividend-modal-note {
      margin-top: 12px;
      padding: 10px;
      border: 1px solid rgba(239,188,104,0.22);
      border-radius: 8px;
      background: rgba(239,188,104,0.08);
      color: var(--muted);
      font-size: 13px;
      line-height: 1.6;
    }

    .chart-card header,
    .source-note {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 10px;
      margin-bottom: 10px;
    }

    .chart-description,
    .source-note {
      color: var(--muted);
      font-size: 12px;
    }

    .benchmark-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 12px;
    }

    .benchmark-card {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: var(--surface);
      padding: 14px;
      box-shadow: var(--shadow);
    }

    .ranking-mode-strip {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0 0 12px;
      padding: 10px 12px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background: rgba(255,255,255,0.045);
    }

    .ranking-mode-strip p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.6;
    }

    .ranking-summary-grid,
    .ranking-gauge-grid,
    .paycheck-lines {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
    }

    .ranking-summary-card,
    .ranking-gauge-card,
    .empty-state-card {
      min-width: 0;
      border: 1px solid var(--line);
      border-radius: 8px;
      background: linear-gradient(160deg, rgba(95,183,200,0.08), rgba(255,255,255,0.035)), var(--surface);
      padding: 14px;
      box-shadow: var(--shadow);
    }

    .ranking-summary-card header,
    .ranking-gauge-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 10px;
    }

    .ranking-summary-card h2 {
      margin: 2px 0 0;
      font-size: 16px;
      line-height: 1.25;
    }

    .ranking-summary-card > strong {
      display: block;
      color: var(--ink);
      font-size: 22px;
      line-height: 1.2;
      overflow-wrap: anywhere;
    }

    .ranking-summary-card > p,
    .ranking-gauge-card p {
      margin: 8px 0 10px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .ranking-summary-card .facts,
    .dividend-paycheck .facts,
    .nisa-rank .facts,
    .self-growth-rank .facts,
    .defense-rank .facts,
    #ranking-matrix-chart .facts {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin-top: 10px;
    }

    .ranking-summary-card .fact,
    .dividend-paycheck .fact,
    .nisa-rank .fact,
    .self-growth-rank .fact,
    .defense-rank .fact,
    #ranking-matrix-chart .fact {
      min-width: 0;
      padding: 8px;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      background: rgba(255,255,255,0.04);
    }

    .ranking-summary-card .fact strong,
    .dividend-paycheck .fact strong,
    .nisa-rank .fact strong,
    .self-growth-rank .fact strong,
    .defense-rank .fact strong,
    #ranking-matrix-chart .fact strong {
      overflow-wrap: anywhere;
    }

    .ranking-distance-panel,
    .ranking-chart-grid {
      margin-top: 12px;
    }

    .ranking-aggregate-panel {
      margin-top: 12px;
    }

    .ranking-aggregate-grid {
      display: grid;
      gap: 12px;
    }

    .ranking-aggregate-grid-wide {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ranking-aggregate-grid-three {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ranking-aggregate-block {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.09);
      border-radius: 8px;
      padding: 14px;
      background: rgba(255,255,255,0.025);
    }

    .ranking-aggregate-block > h3,
    .ranking-aggregate-block > header h3 {
      margin: 0 0 10px;
      color: var(--ink);
      font-size: 15px;
      line-height: 1.3;
    }

    .ranking-aggregate-block > header {
      min-height: 52px;
      margin-bottom: 10px;
      border-bottom: 1px solid rgba(238,244,248,0.08);
    }

    .ranking-source-strip {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 10px;
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px solid rgba(238,244,248,0.08);
    }

    .ranking-source-strip > span {
      color: var(--muted);
      font-size: 11px;
      font-weight: 900;
    }

    .ranking-source-strip .ranking-source-button {
      min-height: 28px;
      margin: 0 8px 0 0;
      padding: 5px 8px;
    }

    .ranking-extra-chart {
      margin-top: 14px;
    }

    .ranking-progress-track,
    .rank-ladder-track {
      position: relative;
      height: 10px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
    }

    .ranking-progress-track span {
      display: block;
      width: var(--value, 0%);
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--accent), var(--ok));
    }

    .rank-ladder {
      padding-top: 22px;
    }

    .rank-ladder-track {
      overflow: visible;
      background: linear-gradient(90deg, rgba(95,183,200,0.25), rgba(210,154,85,0.35), rgba(131,214,164,0.45));
    }

    .rank-current-marker,
    .rank-average-marker {
      position: absolute;
      top: 50%;
      transform: translate(-50%, -50%);
      width: 18px;
      height: 18px;
      border: 2px solid #071015;
      border-radius: 50%;
      background: var(--ok);
      box-shadow: 0 0 0 5px rgba(131,214,164,0.18), 0 8px 20px rgba(0,0,0,0.38);
      z-index: 2;
    }

    .rank-current-marker b {
      position: absolute;
      left: 50%;
      bottom: 22px;
      transform: translateX(-50%);
      width: max-content;
      max-width: 160px;
      color: var(--ink);
      font-size: 12px;
      font-weight: 900;
      white-space: normal;
      text-align: center;
      overflow-wrap: anywhere;
    }

    .rank-average-marker {
      width: 10px;
      height: 28px;
      border-radius: 999px;
      background: var(--accent);
      opacity: 0.85;
      z-index: 1;
    }

    .rank-ladder-steps {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(94px, 1fr));
      gap: 8px;
      margin-top: 18px;
    }

    .rank-ladder-steps div {
      min-width: 0;
      padding: 8px;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      background: rgba(255,255,255,0.035);
    }

    .rank-ladder-steps div.reached {
      border-color: rgba(131,214,164,0.28);
      background: rgba(131,214,164,0.08);
    }

    .rank-ladder-steps div.next {
      border-color: rgba(210,154,85,0.55);
      background: rgba(210,154,85,0.12);
    }

    .rank-ladder-steps div.final {
      border-color: rgba(95,183,200,0.45);
      box-shadow: inset 0 0 0 1px rgba(95,183,200,0.18);
    }

    .rank-ladder-steps span,
    .rank-ladder-steps strong,
    .ranking-gauge-head span,
    .ranking-gauge-head strong,
    .paycheck-lines span,
    .paycheck-lines strong {
      display: block;
      overflow-wrap: anywhere;
    }

    .rank-ladder-steps span,
    .paycheck-lines span {
      color: var(--muted);
      font-size: 11px;
    }

    .rank-ladder-steps strong,
    .paycheck-lines strong {
      margin-top: 3px;
      color: var(--ink);
      font-size: 12px;
    }

    .rank-pyramid {
      display: grid;
      gap: 7px;
      align-items: center;
      padding: 8px 0 0;
    }

    .rank-pyramid article {
      width: var(--width, 100%);
      justify-self: center;
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.11);
      border-radius: 8px;
      padding: 9px 10px;
      background: rgba(255,255,255,0.035);
      text-align: center;
    }

    .rank-pyramid article.reached {
      border-color: rgba(131,214,164,0.25);
      background: rgba(131,214,164,0.08);
    }

    .rank-pyramid article.next {
      border-color: rgba(210,154,85,0.52);
      background: rgba(210,154,85,0.12);
    }

    .rank-pyramid article.active {
      border-color: rgba(95,183,200,0.58);
      box-shadow: 0 0 0 1px rgba(95,183,200,0.18), 0 12px 28px rgba(0,0,0,0.2);
    }

    .rank-pyramid article.final {
      background: linear-gradient(135deg, rgba(95,183,200,0.14), rgba(131,214,164,0.08));
    }

    .rank-pyramid span,
    .rank-pyramid strong {
      display: block;
      overflow-wrap: anywhere;
    }

    .rank-pyramid span {
      color: var(--ink);
      font-size: 13px;
      font-weight: 950;
      line-height: 1.2;
    }

    .rank-pyramid strong {
      margin-top: 3px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.3;
    }

    .rank-pyramid-current {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin-top: 6px;
    }

    .rank-pyramid-current div {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 8px;
      padding: 8px;
      background: rgba(255,255,255,0.04);
    }

    .asset-pyramid-panel {
      border-color: rgba(95,183,200,0.22);
      background:
        linear-gradient(135deg, rgba(95,183,200,0.08), rgba(210,154,85,0.07) 46%, rgba(131,214,164,0.05)),
        var(--surface);
    }

    .asset-pyramid-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(300px, 1fr);
      gap: 14px;
      align-items: stretch;
    }

    .asset-pyramid-figure {
      min-width: 0;
    }

    .asset-pyramid-stack {
      display: grid;
      gap: 0;
      padding: 12px 0 0;
      isolation: isolate;
    }

    .asset-pyramid-tier {
      position: relative;
      min-width: 0;
      height: 68px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 8px 0;
    }

    .asset-pyramid-tier::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(110deg, var(--tier-tone), color-mix(in srgb, var(--tier-tone), white 18%));
      clip-path: polygon(var(--tier-top) 0, calc(100% - var(--tier-top)) 0, calc(100% - var(--tier-bottom)) 100%, var(--tier-bottom) 100%);
      box-shadow: inset 0 -2px 0 rgba(7,23,31,0.65);
    }

    .asset-pyramid-tier.active::after {
      content: "";
      position: absolute;
      inset: 0;
      border-top: 2px solid #f5f0d5;
      border-bottom: 2px solid #f5f0d5;
      pointer-events: none;
    }

    .asset-pyramid-tier-main {
      text-align: center;
    }

    .asset-pyramid-tier.summit {
      justify-content: flex-start;
    }

    .asset-pyramid-tier.summit .asset-pyramid-tier-main {
      text-align: left;
      max-width: 40%;
    }

    .asset-pyramid-caption {
      margin: 12px 0 0;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.7;
    }

    .asset-pyramid-tier-main,
    .asset-pyramid-tier-main span,
    .asset-pyramid-tier-main strong,
    .asset-pyramid-badges,
    .asset-pyramid-tier-track {
      min-width: 0;
    }

    .asset-pyramid-tier-main span,
    .asset-pyramid-tier-main strong,
    .asset-pyramid-badge {
      display: block;
      overflow-wrap: anywhere;
    }

    .asset-pyramid-tier-main span {
      color: #102e37;
      font-size: 14px;
      font-weight: 950;
      line-height: 1.2;
    }

    .asset-pyramid-tier-main strong {
      margin-top: 4px;
      color: #284850;
      font-size: 11px;
      line-height: 1.25;
    }

    .asset-pyramid-tier.summit .asset-pyramid-tier-main span {
      color: #f4fbff;
    }

    .asset-pyramid-tier.summit .asset-pyramid-tier-main strong {
      color: #bdcbd0;
    }

    .asset-pyramid-badges {
      position: absolute;
      right: 0;
      top: 6px;
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      max-width: 42%;
      gap: 3px;
    }

    .asset-pyramid-badge {
      border: 1px solid rgba(238,244,248,0.2);
      border-radius: 999px;
      padding: 2px 5px;
      background: rgba(3,7,12,0.58);
      color: rgba(238,244,248,0.88);
      font-size: 10px;
      font-style: normal;
      font-weight: 950;
      line-height: 1.1;
      white-space: nowrap;
    }

    .asset-pyramid-badge.current {
      border-color: rgba(238,244,248,0.58);
      background: #163f4c;
      color: #ffffff;
    }

    .asset-pyramid-badge.average {
      background: rgba(210,154,85,0.22);
    }

    .asset-pyramid-badge.median {
      background: rgba(131,214,164,0.18);
    }

    .asset-pyramid-brief {
      min-width: 0;
      display: grid;
      align-content: center;
      gap: 10px;
      border-left: 1px solid rgba(238,244,248,0.1);
      padding-left: 16px;
    }

    .asset-pyramid-brief h3 {
      margin: 0;
      color: var(--ink);
      font-size: clamp(22px, 5vw, 32px);
      line-height: 1.08;
      overflow-wrap: anywhere;
    }

    .asset-pyramid-brief p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.6;
    }

    .asset-pyramid-facts {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .asset-pyramid-facts div {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.09);
      border-radius: 8px;
      padding: 8px;
      background: rgba(255,255,255,0.04);
    }

    .asset-pyramid-facts span,
    .asset-pyramid-facts strong {
      display: block;
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .asset-pyramid-facts span {
      color: var(--muted);
      font-size: 11px;
      font-weight: 900;
    }

    .asset-pyramid-facts strong {
      margin-top: 3px;
      color: var(--ink);
      font-size: 13px;
      line-height: 1.3;
    }

    .asset-pyramid-scale-note {
      max-width: 560px;
      margin: 4px auto 0;
      color: var(--muted);
      font-size: 9px;
      line-height: 1.5;
      text-align: center;
    }

    .ranking-source-button {
      justify-self: start;
      min-height: 32px;
      margin-top: 10px;
      border: 1px solid rgba(95,183,200,0.34);
      border-radius: 8px;
      padding: 7px 10px;
      background: rgba(95,183,200,0.1);
      color: var(--ink);
      font-size: 12px;
      font-weight: 900;
      cursor: pointer;
    }

    .ranking-source-modal {
      position: fixed;
      inset: 0;
      z-index: 90;
      display: grid;
      place-items: center;
      padding: 18px;
      background: rgba(3,7,12,0.72);
      backdrop-filter: blur(8px);
    }

    .ranking-source-modal[hidden] {
      display: none;
    }

    .ranking-source-card {
      position: relative;
      width: min(620px, 100%);
      max-height: min(82vh, 720px);
      overflow: auto;
      border: 1px solid rgba(238,244,248,0.16);
      border-radius: 8px;
      padding: 16px;
      background: rgba(9,18,29,0.98);
      box-shadow: 0 28px 80px rgba(0,0,0,0.45);
    }

    .icon-close-button {
      position: absolute;
      top: 10px;
      right: 10px;
      width: 34px;
      aspect-ratio: 1;
      border: 1px solid rgba(238,244,248,0.16);
      border-radius: 8px;
      background: rgba(255,255,255,0.06);
      color: var(--ink);
      font-size: 20px;
      line-height: 1;
      cursor: pointer;
    }

    .ranking-source-character {
      display: grid;
      grid-template-columns: 88px minmax(0, 1fr);
      gap: 12px;
      align-items: center;
      padding-right: 36px;
      margin-bottom: 12px;
    }

    .ranking-source-character img {
      width: 88px;
      aspect-ratio: 1;
      object-fit: cover;
      border: 1px solid rgba(238,244,248,0.14);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
    }

    .ranking-source-character h2 {
      margin: 2px 0 6px;
      font-size: 20px;
      line-height: 1.25;
    }

    .rank-matrix {
      position: relative;
      min-height: 280px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 8px;
      background:
        linear-gradient(90deg, transparent 49.7%, rgba(255,255,255,0.16) 49.7%, rgba(255,255,255,0.16) 50.3%, transparent 50.3%),
        linear-gradient(0deg, transparent 49.7%, rgba(255,255,255,0.16) 49.7%, rgba(255,255,255,0.16) 50.3%, transparent 50.3%),
        linear-gradient(135deg, rgba(95,183,200,0.08), rgba(131,214,164,0.08));
      overflow: hidden;
    }

    .matrix-label {
      position: absolute;
      max-width: 42%;
      color: rgba(238,244,248,0.76);
      font-size: 12px;
      font-weight: 800;
    }

    .matrix-label.top-left { top: 12px; left: 12px; }
    .matrix-label.top-right { top: 12px; right: 12px; text-align: right; }
    .matrix-label.bottom-left { bottom: 12px; left: 12px; }
    .matrix-label.bottom-right { right: 12px; bottom: 12px; text-align: right; }

    .matrix-point {
      position: absolute;
      width: 18px;
      height: 18px;
      border: 2px solid #071015;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 0 0 7px rgba(210,154,85,0.16), 0 10px 22px rgba(0,0,0,0.35);
      transform: translate(-50%, 50%);
    }

    .matrix-point b {
      position: absolute;
      left: 50%;
      bottom: 22px;
      transform: translateX(-50%);
      color: var(--ink);
      font-size: 11px;
      white-space: nowrap;
    }

    .paycheck-lines {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      margin: 12px 0;
    }

    .paycheck-lines article {
      padding: 9px;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 7px;
      background: rgba(255,255,255,0.035);
    }

    .paycheck-lines article.reached {
      border-color: rgba(131,214,164,0.3);
      background: rgba(131,214,164,0.08);
    }

    .paycheck-lines article.emphasis {
      border-color: rgba(210,154,85,0.48);
    }

    .compare-row {
      display: grid;
      grid-template-columns: 112px minmax(0, 1fr) 92px;
      gap: 10px;
      align-items: center;
      margin-top: 8px;
      font-size: 12px;
    }

    .compare-track {
      height: 12px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
    }

    .compare-track span {
      display: block;
      width: var(--value, 0%);
      height: 100%;
      border-radius: inherit;
      background: var(--tone, var(--accent));
    }

    .segmented {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin: 10px 0;
    }

    .segmented button {
      min-height: 34px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: rgba(255,255,255,0.045);
      color: var(--muted);
      padding: 6px 10px;
      font-size: 12px;
      font-weight: 800;
    }

    .segmented button.active {
      border-color: rgba(95, 183, 200, 0.5);
      background: rgba(95, 183, 200, 0.18);
      color: #e8fbff;
    }

    .project-toolbar .segmented {
      flex-wrap: nowrap;
      overflow-x: auto;
      padding-bottom: 4px;
      scrollbar-width: thin;
      scroll-snap-type: x proximity;
    }

    .project-toolbar .segmented button {
      flex: 0 0 auto;
      scroll-snap-align: start;
    }

    .project-toolbar .segmented button.active {
      border-color: rgba(239,188,104,0.72);
      background: rgba(239,188,104,0.18);
      color: #fff2cf;
      box-shadow: inset 0 -2px 0 rgba(239,188,104,0.72);
    }

    .form-grid {
      display: grid;
      gap: 10px;
    }

    .form-grid.two {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .field span {
      display: block;
      margin-bottom: 4px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .bottom-tabs {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 30;
      padding: 8px 10px max(8px, env(safe-area-inset-bottom));
      border-top: 1px solid var(--line);
      background: rgba(5, 10, 22, 0.92);
      backdrop-filter: blur(16px);
    }

    .bottom-tabs nav {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 6px;
      width: min(640px, 100%);
      margin: 0 auto;
    }

    .bottom-tabs button,
    .bottom-tabs a {
      min-width: 0;
      min-height: 62px;
      display: grid;
      place-items: center;
      gap: 3px;
      border: 1px solid rgba(238,244,248,0.12);
      border-radius: 8px;
      background: rgba(5,10,22,0.74);
      color: var(--muted);
      font-size: 12px;
      font-weight: 900;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
      text-decoration: none;
    }

    .bottom-tabs button.active {
      border-color: rgba(95,183,200,0.36);
      background: rgba(95,183,200,0.16);
      color: var(--ink);
    }

    .bottom-tab-icon {
      display: block;
      width: 24px;
      height: 24px;
      object-fit: contain;
      filter: drop-shadow(0 0 8px rgba(95,183,200,0.18));
    }

    .bottom-tab-label {
      display: block;
      font-size: 12px;
      line-height: 1.1;
      white-space: nowrap;
    }

    .desktop-only { display: block; }
    .mobile-only { display: none; }

    .asset-summary-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .asset-action-strip {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 12px;
    }

    .asset-action-button {
      min-width: 0;
      min-height: 68px;
      display: grid;
      grid-template-columns: 42px minmax(0, 1fr);
      align-items: center;
      gap: 10px;
      border: 1px solid rgba(95,183,200,0.2);
      border-radius: 8px;
      padding: 10px;
      background: rgba(255,255,255,0.045);
      color: var(--ink);
      text-align: left;
      cursor: pointer;
    }

    .asset-action-button.primary {
      border-color: rgba(95,183,200,0.38);
      background: linear-gradient(135deg, rgba(95,183,200,0.14), rgba(255,255,255,0.04));
    }

    .asset-action-button i {
      display: grid;
      place-items: center;
      width: 42px;
      aspect-ratio: 1;
      border: 1px solid rgba(238,244,248,0.14);
      border-radius: 8px;
      background:
        linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,0.05) 1px, transparent 1px),
        rgba(5,10,22,0.72);
      background-size: 10px 10px;
      color: var(--accent);
      font-style: normal;
      font-weight: 950;
    }

    .asset-action-button strong,
    .asset-action-button span span {
      display: block;
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .asset-action-button span span {
      margin-top: 2px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
    }

    .allocation-gap-list {
      display: grid;
      gap: 10px;
    }

    .allocation-gap-row,
    .allocation-total-note,
    .million-plan {
      border: 1px solid var(--line);
      border-radius: 8px;
      background: rgba(255,255,255,0.04);
      padding: 12px;
    }

    .allocation-total-note {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }

    .allocation-total-note span:first-child {
      color: var(--muted);
      font-size: 12px;
      font-weight: 900;
    }

    .allocation-total-note strong {
      color: var(--ink);
      font-size: 20px;
    }

    .million-plan {
      display: grid;
      grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
      gap: 12px;
      align-items: stretch;
    }

    .million-plan-main strong,
    .map-total-number {
      display: block;
      font-size: clamp(28px, 6vw, 52px);
      line-height: 1;
      letter-spacing: 0;
    }

    .million-track,
    .allocation-track {
      position: relative;
      height: 14px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
      box-shadow: inset 0 0 0 1px rgba(238,244,248,0.08);
    }

    .million-current,
    .allocation-current {
      display: block;
      width: var(--current, 0%);
      height: 100%;
      border-radius: inherit;
      background: var(--tone, var(--accent));
    }

    .million-time,
    .allocation-ideal {
      position: absolute;
      top: -4px;
      left: var(--time, var(--ideal, 0%));
      width: 2px;
      height: 22px;
      border-radius: 99px;
      background: #eef4f8;
      box-shadow: 0 0 0 2px rgba(5,10,22,0.85), 0 0 14px rgba(238,244,248,0.36);
    }

    .allocation-gap-row {
      display: grid;
      gap: 8px;
    }

    .allocation-gap-head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 10px;
    }

    .allocation-gap-head strong {
      display: block;
      overflow-wrap: anywhere;
    }

    .allocation-gap-head span,
    .allocation-gap-meta {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }

    .allocation-gap-meta {
      display: flex;
      justify-content: space-between;
      gap: 8px;
    }

    .country-rank-main {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 6px 10px;
      align-items: center;
    }

    .country-rank-main .country-card-meta {
      grid-column: 1 / -1;
    }

    .country-rank-copy .muted {
      margin: 2px 0 0;
      font-size: 11px;
      line-height: 1.3;
    }

    .dividend-period-strip {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 10px;
      padding: 8px 10px;
      border-block: 1px solid rgba(239,188,104,0.18);
      background: rgba(239,188,104,0.045);
    }

    .dividend-period-strip strong {
      color: var(--ink);
      font-size: 16px;
      letter-spacing: 0.02em;
    }

    .dividend-period-strip small {
      margin-left: auto;
      color: var(--muted);
      font-size: 11px;
    }

    .dividend-cashflow-card {
      margin-bottom: 12px;
      overflow: hidden;
      border-color: rgba(95,183,200,0.22);
      background: linear-gradient(150deg, rgba(8,22,34,0.98), rgba(7,15,27,0.98));
    }

    .dividend-cashflow-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
    }

    .dividend-cashflow-head h2 {
      margin-top: 2px;
    }

    .dividend-cashflow-summary {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 1px;
      margin-top: 12px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 7px;
      background: rgba(255,255,255,0.09);
    }

    .dividend-cashflow-summary > div {
      min-width: 0;
      padding: 10px;
      background: rgba(5,13,23,0.94);
    }

    .dividend-cashflow-summary span,
    .dividend-cashflow-summary small {
      display: block;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.4;
    }

    .dividend-cashflow-summary strong {
      display: block;
      margin: 3px 0;
      color: var(--ink);
      font-size: clamp(15px, 2.1vw, 21px);
      font-variant-numeric: tabular-nums;
      overflow-wrap: anywhere;
    }

    .dividend-cashflow-rail {
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));
      gap: 2px;
      height: 210px;
      overflow-x: auto;
      margin-top: 14px;
      padding-top: 6px;
      border-bottom: 1px solid rgba(255,255,255,0.12);
    }

    .dividend-cashflow-month {
      display: grid;
      grid-template-rows: auto minmax(72px, 1fr) auto auto;
      gap: 4px;
      min-width: 0;
      padding: 4px 0;
      border: 1px solid transparent;
      border-radius: 5px;
      background: transparent;
      font: inherit;
      cursor: pointer;
      color: var(--muted);
      text-align: center;
    }

    .dividend-cashflow-month:hover,
    .dividend-cashflow-month:focus-visible {
      border-color: var(--accent);
      background: rgba(239,188,104,0.08);
      outline: none;
    }

    .dividend-us-summary { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(158, 143, 233, .4); }
    .dividend-us-summary h3 { margin: 0; }
    .dividend-us-summary h3::before { content: ""; display: inline-block; width: 4px; height: 16px; margin-right: 7px; border-radius: 2px; background: #a68bea; vertical-align: -2px; }
    .dividend-us-summary h3 small { display: block; font-size: 10px; color: var(--muted); }
    .dividend-us-summary .ghost-button { min-height: 44px; flex-shrink: 0; }
    .dividend-detail-total { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; margin: 16px 0; }
    .dividend-detail-total > span { flex: 1 1 160px; }
    .dividend-detail-total strong { flex-shrink: 0; margin-left: auto; font-size: 22px; white-space: nowrap; }
    .dividend-contributions { list-style: none; padding: 0; margin: 12px 0; }
    .dividend-contribution-group { border-bottom: 1px solid var(--line); }
    .dividend-contribution-group > .dividend-contribution { border-bottom: 0; }
    .dividend-contribution-group > details > summary { cursor: pointer; min-height: 44px; padding: 10px 0; color: var(--accent); }
    .dividend-contribution-group > details > ul { margin: 0; padding-left: 12px; border-left: 2px solid var(--line); }
    .dividend-contribution { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
    .dividend-contribution small { display: block; font-size: 11px; color: var(--muted); line-height: 1.6; overflow-wrap: anywhere; }
    .dividend-contribution strong { overflow-wrap: anywhere; }
    .dividend-contribution-amount { text-align: right; font-variant-numeric: tabular-nums; }
    .dividend-detail-link { padding: 8px 0; min-height: 44px; background: none; border: 0; color: var(--accent); text-align: left; font: inherit; text-decoration: underline; cursor: pointer; overflow-wrap: anywhere; }
    .dividend-payment-source a { display: inline-flex; align-items: center; min-height: 28px; color: #bba6ff; text-underline-offset: 3px; }
    .dividend-market-detail { margin: 18px 0; }
    .dividend-market-detail h3 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 0; font-size: 13px; }
    .dividend-market-detail h3 strong { margin-left: auto; font-variant-numeric: tabular-nums; }
    .dividend-market-detail .dividend-contributions { margin-top: 0; }

    .dividend-cashflow-month > span,
    .dividend-cashflow-month > small {
      font-size: 9px;
      line-height: 1.2;
      overflow-wrap: anywhere;
    }

    .dividend-cashflow-month > strong {
      min-width: 0;
      color: var(--ink);
      font-size: clamp(7px, 2.1vw, 10px);
      font-variant-numeric: tabular-nums;
      line-height: 1.1;
      white-space: nowrap;
    }

    .dividend-cashflow-month.is-current > span {
      color: #fff2cf;
      font-weight: 900;
    }

    .dividend-cashflow-track {
      display: flex;
      align-items: end;
      justify-content: center;
      gap: 2px;
      min-height: 72px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
      background: linear-gradient(to top, rgba(255,255,255,0.025), transparent);
    }

    .dividend-cashflow-market-bar {
      display: flex;
      flex-direction: column-reverse;
      align-self: stretch;
      width: min(12px, 38%);
      height: 100%;
    }

    .dividend-cashflow-market-bar i {
      display: block;
      width: 100%;
      height: var(--bar);
      min-height: 2px;
      flex-shrink: 0;
      background: linear-gradient(var(--dividend-series-light), var(--dividend-series-color));
    }

    .dividend-cashflow-market-bar i:last-child { border-radius: 3px 3px 0 0; }
    .dividend-cashflow-market-bar .is-scheduled { background: repeating-linear-gradient(135deg, transparent 0 3px, rgba(0,0,0,.16) 3px 5px), linear-gradient(var(--dividend-series-light), var(--dividend-series-color)); }
    .dividend-series-label.is-jp.is-actual, .dividend-cashflow-market-bar .is-jp.is-actual { --dividend-series-light: #9ee4bd; --dividend-series-color: #4fa878; }
    .dividend-series-label.is-jp.is-scheduled, .dividend-cashflow-market-bar .is-jp.is-scheduled { --dividend-series-light: #f5cd88; --dividend-series-color: #c88b39; }
    .dividend-series-label.is-us.is-actual, .dividend-cashflow-market-bar .is-us.is-actual { --dividend-series-light: #9cceff; --dividend-series-color: #4e91df; }
    .dividend-series-label.is-us.is-scheduled, .dividend-cashflow-market-bar .is-us.is-scheduled { --dividend-series-light: #d4b6ff; --dividend-series-color: #9470d4; }
    .dividend-series-label.is-other, .dividend-cashflow-market-bar .is-other { --dividend-series-light: #c6cbd5; --dividend-series-color: #7d879d; }

    .dividend-cashflow-legend {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px 12px;
      margin-top: 9px;
      color: var(--muted);
      font-size: 10px;
    }

    .dividend-series-label::before {
      content: "";
      display: inline-block;
      width: 8px;
      height: 8px;
      margin-right: 5px;
      border-radius: 2px;
      flex-shrink: 0;
      background: var(--dividend-series-color);
    }

    .dividend-series-label.is-scheduled::before { background: repeating-linear-gradient(135deg, transparent 0 3px, rgba(0,0,0,.2) 3px 5px), var(--dividend-series-color); }

    .dividend-cashflow-note {
      margin: 7px 0 0;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.5;
    }

    .dividend-overview-card {
      position: relative;
      overflow: hidden;
      border-color: rgba(239,188,104,0.24);
      background:
        radial-gradient(circle at 92% 4%, rgba(239,188,104,0.12), transparent 24%),
        linear-gradient(155deg, rgba(14,27,42,0.98), rgba(7,15,27,0.98));
    }

    .dividend-overview-card::before {
      content: "";
      position: absolute;
      inset: 0 auto 0 0;
      width: 3px;
      background: linear-gradient(180deg, var(--warn), rgba(95,183,200,0.72));
    }

    .dividend-overview-head,
    .dividend-breakdown-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
    }

    .dividend-forecast-total {
      display: block;
      margin-top: 3px;
      color: #fff6dc;
      font-size: clamp(30px, 5vw, 46px);
      font-variant-numeric: tabular-nums;
      line-height: 1.08;
      letter-spacing: -0.035em;
    }

    .dividend-receipt-totals {
      display: grid;
      grid-template-columns: repeat(2, minmax(132px, 1fr));
      gap: 7px;
      width: min(390px, 52%);
    }

    .dividend-receipt-total {
      min-width: 0;
      padding: 9px 10px;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 7px;
      background: rgba(5,12,22,0.62);
    }

    .dividend-receipt-total.is-receivable {
      border-color: rgba(131,214,164,0.3);
    }

    .dividend-receipt-total.is-excluded {
      border-color: rgba(182,164,255,0.3);
    }

    .dividend-receipt-total span,
    .dividend-receipt-total small {
      display: block;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.35;
    }

    .dividend-receipt-total strong {
      display: block;
      margin: 3px 0 2px;
      color: var(--ink);
      font-size: clamp(17px, 2.4vw, 24px);
      font-variant-numeric: tabular-nums;
      line-height: 1.15;
      overflow-wrap: anywhere;
    }

    .dividend-tax-summary {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 1px;
      margin-top: 12px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 7px;
      background: rgba(255,255,255,0.09);
    }

    .dividend-tax-summary > div {
      min-width: 0;
      padding: 9px 10px;
      background: rgba(6,14,25,0.94);
    }

    .dividend-tax-summary span,
    .dividend-tax-summary small {
      display: block;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.35;
    }

    .dividend-tax-summary strong {
      display: block;
      margin: 3px 0 2px;
      color: var(--ink);
      font-size: clamp(15px, 2vw, 20px);
      font-variant-numeric: tabular-nums;
      line-height: 1.15;
      overflow-wrap: anywhere;
    }

    .dividend-tax-assumption {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.5;
    }

    .dividend-tax-assumption a {
      color: var(--accent-2);
    }

    .dividend-receipt-exclusions {
      display: grid;
      gap: 7px;
      margin-top: 12px;
      padding: 10px;
      border: 1px solid rgba(182,164,255,0.24);
      border-radius: 7px;
      background: rgba(182,164,255,0.08);
    }

    .dividend-receipt-exclusions[hidden] {
      display: none;
    }

    .dividend-receipt-exclusions > p {
      margin: 0;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.45;
    }

    .dividend-receipt-exclusion-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 3px 12px;
      align-items: center;
    }

    .dividend-receipt-exclusion-row span,
    .dividend-receipt-exclusion-row small {
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .dividend-receipt-exclusion-row small {
      grid-column: 1 / -1;
      color: var(--muted);
      font-size: 10px;
    }

    .dividend-compact-metrics {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 1px;
      margin-top: 14px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 7px;
      background: rgba(255,255,255,0.09);
    }

    .dividend-compact-stat {
      position: relative;
      min-width: 0;
      padding: 10px 11px 9px;
      background: rgba(6,14,25,0.92);
    }

    .dividend-compact-stat::before {
      content: "";
      position: absolute;
      inset: 0 auto 0 0;
      width: 2px;
      background: var(--muted);
      opacity: 0.75;
    }

    .dividend-compact-stat[data-status="low"]::before { background: var(--ok); }
    .dividend-compact-stat[data-status="moderate"]::before { background: var(--warn); }
    .dividend-compact-stat[data-status="high"]::before { background: var(--danger); }

    .dividend-compact-stat span,
    .dividend-compact-stat small {
      display: block;
      color: var(--muted);
      font-size: 10px;
      line-height: 1.35;
    }

    .dividend-compact-stat strong {
      display: block;
      margin: 3px 0 2px;
      color: var(--ink);
      font-size: clamp(16px, 2.2vw, 21px);
      font-variant-numeric: tabular-nums;
      line-height: 1.15;
      overflow-wrap: anywhere;
    }

    .dividend-breakdown-head {
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid rgba(255,255,255,0.09);
    }

    .dividend-breakdown-head h2 {
      margin-top: 2px;
    }

    .dividend-segmented {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      width: min(680px, 100%);
      margin: 10px auto 2px;
      padding: 3px;
      border-radius: 8px;
      background: rgba(255,255,255,0.055);
    }

    .dividend-segmented button {
      min-height: 44px;
      border-color: transparent;
      border-radius: 6px;
    }

    .dividend-segmented button.active {
      border-color: rgba(239,188,104,0.24);
      background: rgba(239,188,104,0.14);
      color: #fff2cf;
    }

    .dividend-composition-chart {
      min-height: 360px;
    }

    .dividend-tax-genre-list {
      display: grid;
      gap: 1px;
      overflow: hidden;
      border: 1px solid rgba(255,255,255,0.09);
      border-radius: 7px;
      background: rgba(255,255,255,0.08);
    }

    .dividend-tax-genre-row {
      display: grid;
      grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 1fr));
      gap: 8px;
      align-items: center;
      min-width: 0;
      padding: 8px 10px;
      background: rgba(6,14,25,0.94);
      font-size: 11px;
      font-variant-numeric: tabular-nums;
    }

    .dividend-tax-genre-row span,
    .dividend-tax-genre-row strong {
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .dividend-tax-genre-row span:not(:first-child) {
      text-align: right;
    }

    .dividend-tax-genre-row.is-head {
      color: var(--muted);
      font-size: 10px;
    }

    .dividend-analysis-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    @media (max-width: 920px) {
      .topbar-inner,
      main {
        width: min(100% - 22px, 760px);
      }

      .top-actions .desktop-nav {
        display: none;
      }

      .summary-grid,
      .character-zone,
      .map-dashboard,
      .metric-grid,
      .explain-grid,
      .chart-grid,
      .asset-summary-grid,
      .asset-action-strip,
      .asset-action-grid,
      .asset-chart-audit,
      .project-grid,
      .project-management-kpis,
      .holding-summary-grid,
      .holding-insights,
      .holding-ranking-grid,
      .margin-position-summary,
      .margin-position-card .holding-card__main,
      .margin-position-card .holding-card__middle,
      .holding-grid,
      .risk-audit-grid,
      .nonstate-grid,
      .benchmark-grid,
      .ranking-summary-grid,
      .ranking-gauge-grid,
      .ranking-aggregate-grid-wide,
      .ranking-aggregate-grid-three,
      .asset-pyramid-layout,
      .paycheck-lines,
      .dividend-tree-shell,
      .core-plan-grid,
      .plan-page-grid,
      .one-million-hero,
      .future-sheet-hero,
      .future-scenario-strip,
      .future-focus-grid,
      .future-assumption-grid,
      .future-strategy-phases,
      .scenario-strip,
      .plan-roadmap,
      .plan-tree,
      .plan-structure-supports {
        grid-template-columns: 1fr;
      }

      .plan-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .plan-book-overview {
        grid-template-columns: 1fr;
      }

      .plan-book-detail-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .dividend-compact-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .dividend-cashflow-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .dividend-overview-head {
        display: grid;
      }

      .dividend-receipt-totals {
        width: 100%;
      }

      .dividend-tax-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .plan-dashboard-head {
        align-items: flex-start;
      }

      .future-timeline-row {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
      }

      .map-dashboard {
        grid-template-columns: 1fr;
      }

      .ranking-mode-strip,
      .ranking-summary-card header,
      .ranking-gauge-head {
        display: grid;
        align-items: start;
      }

      .asset-pyramid-brief {
        border-left: 0;
        border-top: 1px solid rgba(238,244,248,0.1);
        padding: 14px 0 0;
      }

      .rank-ladder-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .map-layer-controls {
        top: auto;
        right: 10px;
        bottom: 102px;
        left: 10px;
        justify-content: center;
      }

      .map-total-window {
        right: 10px;
        max-width: none;
      }

      .map-heat-legend {
        top: 76px;
        right: 10px;
      }

      .asset-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .million-plan {
        grid-template-columns: 1fr;
      }

      .plan-command-hero,
      .plan-handoff-card,
      .ten-year-plan-head,
      .directive-group-grid,
      .ten-year-progress-list {
        grid-template-columns: 1fr;
      }

      .directive-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .ten-year-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .ten-year-capacity-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .ten-year-nisa-actuals,
      .ten-year-deposit-grid,
      .plan-stack-legend,
      .one-million-metrics,
      .future-focus-grid .facts {
        grid-template-columns: 1fr;
      }

      .plan-handoff-facts {
        min-width: 0;
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .ten-year-plan-head {
        display: grid;
      }

      .asset-summary-card.priority {
        grid-column: auto;
      }

      .dividend-command-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .map-panel {
        display: none;
        position: static;
      }

      .country-card-grid {
        grid-template-columns: 1fr;
      }

      .command-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .home-scene {
        min-height: calc(100svh - 132px);
      }

      .home-kpi-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .character-stage {
        min-height: 250px;
      }

      .character-placeholder,
      .character-image {
        width: min(64%, 250px);
      }

      .toolbar {
        grid-template-columns: 1fr;
      }

      .holding-control-panel {
        position: sticky;
        top: 8px;
        z-index: 20;
        margin-inline: -2px;
        background: rgba(5,10,22,0.92);
        backdrop-filter: blur(16px);
      }

      .holding-search-row {
        grid-template-columns: 1fr;
      }

      .desktop-only { display: none; }
      .mobile-only { display: block; }
      .holding-ledger-list.mobile-only { display: grid; }
    }

    @media (max-width: 520px) {
      .ten-year-capacity-grid {
        grid-template-columns: 1fr;
      }

      .ten-year-proposal-callout {
        grid-template-columns: 1fr;
      }

      .plan-command-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .plan-book-guide {
        grid-template-columns: 68px minmax(0, 1fr);
        gap: 9px;
        padding: 10px;
      }

      .plan-book-guide .plan-command-portrait {
        min-height: 78px;
      }

      .plan-book-guide .plan-command-portrait img {
        max-height: 92px;
      }

      .plan-book-guide-copy h2 {
        font-size: 17px;
      }

      .plan-book-flow {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 5px;
      }

      .plan-book-flow i {
        display: none;
      }

      .plan-book-flow span {
        display: grid;
        gap: 2px;
        min-height: 54px;
        padding: 6px;
        font-size: 10px;
      }

      .plan-book-overview {
        padding: 10px;
      }

      .plan-book-overview-rail {
        grid-template-columns: minmax(64px, 1fr) 18px minmax(64px, 1fr) 18px minmax(64px, 1fr);
        padding: 8px 5px;
      }

      .plan-book-overview-rail div b {
        min-width: 38px;
        height: 38px;
        font-size: 12px;
      }

      .plan-book-overview-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .plan-book-section-head {
        align-items: flex-start;
      }

      .plan-book-section-head > p {
        max-width: 112px;
        text-align: right;
      }

      .plan-book-item-main {
        grid-template-columns: 58px minmax(0, 1fr);
        gap: 9px;
        align-items: start;
        padding: 10px;
      }

      .plan-book-progress-visual {
        width: 56px;
      }

      .plan-book-progress-visual strong {
        font-size: 13px;
      }

      .plan-book-item-copy > header {
        display: grid;
        gap: 5px;
      }

      .plan-book-item-copy > header .status {
        justify-self: start;
      }

      .plan-book-item-copy h3 {
        font-size: 16px;
      }

      .plan-book-item-summary {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        overflow: hidden;
      }

      .plan-book-next {
        grid-template-columns: 1fr;
        gap: 2px;
      }

      .plan-book-open-label {
        grid-column: 1 / -1;
        justify-self: stretch;
        justify-content: center;
        min-height: 38px;
      }

      .plan-book-item-fold > summary {
        min-height: 44px;
      }

      .plan-book-detail-facts {
        grid-template-columns: 1fr;
      }

      .plan-book-support > summary {
        grid-template-columns: minmax(0, 1fr) auto;
      }

      .plan-book-support > summary b {
        display: none;
      }

      .app { padding-bottom: 88px; }
      .topbar-inner { padding: 10px 0; }
      .brand-title { font-size: 15px; }
      .brand-meta { font-size: 11px; }
      .data-mode-badge { margin-top: 1px; font-size: 10px; }
      .top-actions button { min-height: 34px; padding: 6px 9px; }
      main { padding-top: 12px; }
      .panel { padding: 13px; }
      .command-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .command-tile { min-height: 112px; padding: 11px; }
      .command-tile.section-icon-button { min-height: 104px; }
      .tile-icon { width: 32px; font-size: 12px; }
      .section-icon-button .tile-icon { width: 36px; font-size: 16px; }
      .hero-number { font-size: 36px; }
      .facts { grid-template-columns: 1fr; }
      .priority-directive-panel {
        margin-left: -2px;
        margin-right: -2px;
        padding: 11px;
      }
      .directive-facts {
        grid-template-columns: 1fr;
      }
      .directive-target-card,
      .directive-watch-card,
      .directive-group-card {
        padding: 10px;
      }
      .form-grid.two { grid-template-columns: 1fr; }
      .view-head { align-items: stretch; flex-direction: column; }
      .back-button { width: 100%; text-align: center; }
      #assets .top-actions {
        display: grid;
        grid-template-columns: 1fr;
      }
      #assets .view-head {
        margin-bottom: 8px;
      }
      #assets .view-title .muted {
        display: none;
      }
      .asset-command-summary {
        margin-left: -11px;
        margin-right: -11px;
        border-radius: 0;
        padding: 10px 11px;
      }
      .asset-command-summary header {
        margin-bottom: 8px;
      }
      .asset-command-summary .chart-description {
        line-height: 1.35;
      }
      .asset-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
      }
      .asset-summary-card {
        padding: 8px;
      }
      .asset-summary-card strong {
        margin-top: 2px;
        font-size: 17px;
      }
      .asset-summary-card .label,
      .asset-summary-card .metric-note {
        font-size: 10px;
        line-height: 1.3;
      }
      .asset-summary-card .metric-note {
        margin-top: 4px;
      }
      .asset-action-button {
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 7px;
        min-height: 52px;
        padding: 8px;
      }
      .asset-action-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .asset-action-button i {
        width: 32px;
        border-radius: 7px;
      }
      .asset-action-button small,
      .asset-action-button span span {
        display: none;
      }
      .plan-structure-supports {
        padding-left: 0;
      }
      .plan-structure-node.core {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
      }
      .plan-structure-node.core button {
        grid-column: 1 / -1;
        margin-left: 0;
      }
      .plan-command-hero {
        grid-template-columns: 86px minmax(0, 1fr);
        padding: 11px;
        gap: 10px;
      }
      .plan-command-portrait {
        min-height: 92px;
      }
      .plan-command-portrait img {
        max-height: 108px;
      }
      .plan-command-copy h2 {
        font-size: 19px;
      }
      .plan-command-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 7px;
      }
      .ten-year-plan-panel {
        padding: 11px;
      }
      .ten-year-plan-head .top-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
      }
      .ten-year-progress-card.compact h3 {
        font-size: 16px;
      }
      .ten-year-nisa-card {
        padding: 11px;
      }
      .ten-year-nisa-card strong {
        font-size: 24px;
      }
      .ten-year-nisa-actuals strong,
      .ten-year-deposit-grid strong {
        font-size: 18px;
      }
      .project-card {
        gap: 8px;
        padding: 11px;
      }
      .project-card .primary-button {
        width: 100%;
      }
      .project-card__quick-values {
        gap: 6px;
      }
      .project-card__quick-values div {
        padding: 7px;
      }
      .project-management-section {
        padding: 12px;
      }
      .project-check-row {
        grid-template-columns: 1fr;
        align-items: start;
      }
      .project-check-note {
        grid-column: 1;
      }
      .asset-command-section > summary {
        grid-template-columns: 1fr;
      }
      .asset-command-section > summary::after {
        justify-self: start;
      }
      .holding-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .holding-summary-card { padding: 10px; }
      .holding-summary-card strong { font-size: 17px; }
      .holding-ledger-list { gap: 8px; }
      .holding-card {
        gap: 8px;
        padding: 10px;
        box-shadow: 0 8px 18px rgba(0,0,0,0.2);
      }
      .holding-card__header { align-items: center; }
      .holding-card__name {
        font-size: 16px;
        line-height: 1.25;
      }
      .holding-card__identity-meta {
        gap: 5px;
        margin-top: 3px;
      }
      .holding-card__code { font-size: 11px; }
      .holding-card__identity-meta .badge {
        padding: 3px 7px;
        font-size: 10px;
      }
      .holding-card__main,
      .holding-card__middle {
        gap: 0;
        overflow: hidden;
        border: 1px solid rgba(238,244,248,0.09);
        border-radius: 8px;
        background: rgba(255,255,255,0.035);
      }
      .holding-card__main {
        grid-template-columns: 1.1fr 1.1fr 0.8fr;
      }
      .holding-card__middle {
        grid-template-columns: 1.2fr 0.9fr 1fr 1fr;
      }
      .holding-card__main > div,
      .holding-card__middle > div {
        padding: 7px 8px;
        border: 0;
        border-left: 1px solid rgba(238,244,248,0.08);
        border-radius: 0;
        background: transparent;
      }
      .holding-card__main > div:first-child,
      .holding-card__middle > div:first-child {
        border-left: 0;
      }
      .holding-card__main strong {
        margin-top: 2px;
        font-size: clamp(14px, 3.9vw, 18px);
        line-height: 1.15;
      }
      .holding-card__middle strong {
        margin-top: 2px;
        font-size: clamp(11px, 3vw, 14px);
        line-height: 1.2;
      }
      .holding-card__label { font-size: 10px; }
      .holding-card > [data-holding-toggle] {
        min-height: 36px;
        padding: 6px 10px;
        font-size: 12px;
      }
      .holding-card__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .holding-card__meta .wide { grid-column: 1 / -1; }
      .holding-detail-grid { grid-template-columns: 1fr; }
      .holding-view-mode button { padding-inline: 6px; font-size: 11px; }
      .holding-disclosure > summary {
        grid-template-columns: minmax(0, 1fr) auto;
      }
      .holding-disclosure-hint { display: none; }
      .holding-ledger-meta { gap: 3px 10px; }
      .holding-ledger-meta-item {
        display: inline;
        padding: 0;
        border: 0;
      }
      .holding-ledger-meta-item strong { margin: 0; text-align: left; }
      .bottom-tabs button { min-height: 62px; }
      .bottom-tab-icon { width: 23px; height: 23px; }
      .bottom-tab-label { font-size: 11px; }
      .home-scene { padding: 10px; }
      .home-kpi-card { padding: 9px; }
      .home-kpi-card strong { font-size: 18px; }
      .character-message { position: relative; right: auto; bottom: auto; width: 100%; }
      .home-alert-panel { grid-template-columns: 1fr; }
      .compare-row { grid-template-columns: 86px minmax(0, 1fr) 76px; }
      #investment-map .view-head {
        gap: 8px;
        margin-bottom: 6px;
      }
      #investment-map .view-title .muted {
        font-size: 12px;
        line-height: 1.45;
      }
      .investment-map-hero {
        margin-left: -11px;
        margin-right: -11px;
        border-radius: 0;
        padding: 8px;
      }
      .investment-map-hero > header {
        align-items: center;
      }
      .investment-map-hero .chart-description {
        display: none;
      }
      .map-stage {
        min-height: min(74svh, 620px);
        border-radius: 8px;
      }
      .map-layer-controls {
        top: auto;
        right: 8px;
        bottom: 102px;
        left: 8px;
        justify-content: center;
      }
      .map-layer-controls button {
        flex: 1 1 calc(50% - 6px);
      }
      .map-summary-bar {
        right: 8px;
        bottom: 8px;
        left: 8px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .map-summary-item strong {
        font-size: 13px;
      }
      .map-total-window {
        top: 8px;
        right: 8px;
        left: 8px;
        max-width: none;
        padding: 8px 10px;
      }
      .map-total-window .map-total-number {
        font-size: clamp(22px, 7vw, 32px);
      }
      .map-heat-legend {
        top: 72px;
        right: 8px;
        width: min(210px, calc(100% - 16px));
        padding: 7px 9px;
      }
      .map-marker-label {
        font-size: 10px;
      }
      .map-sheet-card {
        max-height: 70svh;
      }
      .map-detail-list { max-height: 56svh; overflow-y: auto; }
      .dividend-command-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .dividend-tree-stage { padding: 6px; }
      .dividend-tree-stage svg { min-height: 0; }
      .dividend-tree-card { min-height: 0; }
      .dividend-guide { grid-template-columns: 92px minmax(0, 1fr); grid-template-rows: auto auto; align-items: stretch; }
      .dividend-guide-portrait { min-height: 150px; }
      .dividend-guide-portrait img { min-height: 150px; }
      .dividend-tree-controls { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .dividend-tree-modal {
        place-items: end center;
        padding: 0;
      }
      .dividend-modal-card {
        width: 100%;
        max-height: 86svh;
        border-radius: 8px 8px 0 0;
      }
      .dividend-zoom-card .dividend-tree-stage { min-height: 70svh; }
    }

    html {
      min-height: 100%;
    }

    body.home-active {
      width: 100%;
      height: 100dvh;
      max-height: 100dvh;
      overflow: hidden;
      background:
        radial-gradient(circle at 50% 0%, rgba(95,183,200,0.16), transparent 34%),
        linear-gradient(145deg, rgba(3, 7, 18, 0.98), rgba(7, 20, 38, 0.98) 48%, rgba(4, 15, 30, 0.98)),
        var(--bg);
    }

    body.home-active .app {
      width: 100%;
      height: 100dvh;
      max-height: 100dvh;
      display: grid;
      place-items: center;
      overflow: hidden;
      padding: 0;
      background:
        radial-gradient(circle at 50% 42%, rgba(210,154,85,0.08), transparent 31%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.018) 0 1px, transparent 1px 76px);
    }

    body.home-active .topbar,
    body.home-active > .app > .bottom-tabs {
      display: none;
    }

    body.home-active main {
      width: 100%;
      height: 100dvh;
      max-height: 100dvh;
      display: grid;
      place-items: center;
      margin: 0;
      padding: 0;
      overflow: hidden;
    }

    body.home-active #home.active {
      width: min(430px, 100%);
      height: 100dvh;
      max-height: 100dvh;
      display: block;
      overflow: hidden;
    }

    body.home-active .home-phone-shell {
      width: 100%;
      height: 100dvh;
      max-height: 100dvh;
      overflow: hidden;
      background:
        linear-gradient(180deg, rgba(8, 18, 34, 0.98), rgba(3, 8, 18, 0.99)),
        var(--bg);
      box-shadow: 0 0 0 1px rgba(147,171,192,0.18), 0 30px 80px rgba(0,0,0,0.48);
    }

    body.home-active .home-scene {
      width: 100%;
      height: 100dvh;
      max-height: 100dvh;
      min-height: 0;
      display: grid;
      grid-template-rows: auto minmax(0, 1fr) auto;
      gap: clamp(7px, 1.3dvh, 12px);
      overflow: hidden;
      border: 0;
      border-radius: 0;
      padding: max(10px, env(safe-area-inset-top)) 10px max(8px, env(safe-area-inset-bottom));
      background:
        radial-gradient(circle at 50% 36%, rgba(95,183,200,0.18), transparent 28%),
        radial-gradient(circle at 52% 61%, rgba(210,154,85,0.12), transparent 34%),
        linear-gradient(180deg, rgba(8,17,31,0.88), rgba(5,10,22,0.98));
      box-shadow: none;
    }

    body.home-active .home-scene::after {
      content: "";
      position: absolute;
      inset: 9dvh 18px 10dvh;
      pointer-events: none;
      border: 1px solid rgba(95,183,200,0.12);
      border-radius: 50% 50% 9px 9px;
      background:
        linear-gradient(180deg, rgba(95,183,200,0.07), transparent 58%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 22px);
      opacity: 0.7;
    }

    body.home-active .home-asset-header {
      position: relative;
      z-index: 2;
      width: min(88%, 360px);
      justify-self: center;
      display: grid;
      gap: clamp(4px, 0.8dvh, 8px);
      border: 1px solid rgba(95,183,200,0.34);
      border-radius: 8px;
      padding: clamp(9px, 1.6dvh, 14px);
      text-align: center;
      background:
        linear-gradient(180deg, rgba(95,183,200,0.13), rgba(5,10,22,0.74)),
        rgba(13,24,42,0.88);
      box-shadow: 0 14px 34px rgba(0,0,0,0.28);
      backdrop-filter: blur(16px);
    }

    body.home-active .home-asset-header h1 {
      font-size: clamp(27px, 8vw, 42px);
      line-height: 1;
      font-weight: 950;
      overflow-wrap: anywhere;
    }

    body.home-active .home-asset-meta {
      display: flex;
      justify-content: center;
      gap: 10px;
      color: var(--muted);
      font-size: clamp(10px, 2.7vw, 12px);
      font-weight: 800;
      line-height: 1.35;
    }

    body.home-active .home-asset-meta strong {
      color: var(--ink);
      font-weight: 950;
    }

    body.home-active .home-hub-grid {
      position: relative;
      z-index: 2;
      min-height: 0;
      display: grid;
      grid-template-columns: clamp(66px, 20vw, 86px) minmax(0, 1fr) clamp(66px, 20vw, 86px);
      gap: clamp(6px, 2vw, 10px);
      align-items: stretch;
    }

    body.home-active .home-left-menu,
    body.home-active .home-bottom-nav {
      display: grid;
      gap: 8px;
    }

    body.home-active .home-left-menu {
      align-content: center;
    }

    body.home-active .home-icon-button,
    body.home-active .home-nav-button,
    body.home-active .home-mission-badge {
      border: 1px solid rgba(147,171,192,0.24);
      border-radius: 8px;
      background: rgba(5,10,22,0.64);
      color: var(--ink);
      box-shadow: 0 12px 28px rgba(0,0,0,0.24);
      backdrop-filter: blur(14px);
    }

    body.home-active .home-icon-button {
      min-width: 0;
      min-height: clamp(70px, 14dvh, 92px);
      display: grid;
      align-content: center;
      justify-items: center;
      gap: 5px;
      padding: 8px 5px;
      text-align: center;
    }

    body.home-active .home-icon-button .home-icon,
    body.home-active .home-nav-button .home-icon {
      display: grid;
      place-items: center;
      width: clamp(30px, 8vw, 38px);
      aspect-ratio: 1;
      border-radius: 8px;
      background: rgba(95,183,200,0.17);
      color: #e8fbff;
      font-size: clamp(15px, 4vw, 18px);
      font-weight: 950;
    }

    body.home-active .home-icon-button .home-menu-label {
      font-size: clamp(11px, 3vw, 13px);
      font-weight: 950;
      line-height: 1.2;
    }

    body.home-active .home-icon-button .home-menu-badge {
      color: var(--muted);
      font-size: 10px;
      font-weight: 800;
      line-height: 1.1;
    }

    body.home-active .home-character-wrap {
      min-width: 0;
      min-height: 0;
      position: relative;
      display: grid;
      align-items: end;
    }

    body.home-active .character-stage {
      min-height: 0;
      height: 100%;
      align-items: end;
      overflow: visible;
    }

    body.home-active .character-stage::before {
      bottom: clamp(42px, 8dvh, 64px);
      width: min(96%, 260px);
      height: 30%;
      border-radius: 50%;
      opacity: 0.58;
    }

    body.home-active .character-placeholder {
      width: min(116%, 250px);
      max-height: calc(100dvh - 230px);
      align-self: end;
    }

    body.home-active .character-image {
      width: min(116%, 250px);
      max-height: calc(100dvh - 230px);
      align-self: end;
    }

    body.home-active .character-message {
      left: 50%;
      right: auto;
      bottom: clamp(0px, 1dvh, 8px);
      width: min(122%, 245px);
      transform: translateX(-50%);
      padding: clamp(8px, 1.3dvh, 11px);
      text-align: center;
    }

    body.home-active .character-message h3 {
      margin-bottom: 4px;
      font-size: clamp(12px, 3.2vw, 15px);
      line-height: 1.28;
    }

    body.home-active .character-message .card-note {
      font-size: clamp(10px, 2.6vw, 12px);
      line-height: 1.28;
    }

    body.home-active .home-mission-badge {
      min-width: 0;
      align-self: center;
      min-height: clamp(86px, 18dvh, 128px);
      display: grid;
      align-content: center;
      justify-items: center;
      gap: 5px;
      padding: 8px 5px;
      text-align: center;
      border-color: rgba(239,188,104,0.38);
      background:
        linear-gradient(180deg, rgba(239,188,104,0.13), rgba(5,10,22,0.68)),
        rgba(5,10,22,0.62);
    }

    body.home-active .mission-icon {
      display: grid;
      place-items: center;
      width: clamp(30px, 8vw, 38px);
      aspect-ratio: 1;
      border-radius: 50%;
      background: rgba(239,188,104,0.16);
      color: var(--warn);
      font-weight: 950;
      border: 1px solid rgba(239,188,104,0.34);
    }

    body.home-active .mission-label {
      color: var(--muted);
      font-size: clamp(10px, 2.8vw, 12px);
      font-weight: 900;
      line-height: 1.2;
    }

    body.home-active .home-mission-badge strong {
      color: var(--ink);
      font-size: clamp(17px, 4.5vw, 22px);
      line-height: 1;
    }

    body.home-active .home-bottom-nav {
      position: relative;
      z-index: 2;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 6px;
      padding-bottom: env(safe-area-inset-bottom);
    }

    body.home-active .home-nav-button {
      min-width: 0;
      min-height: clamp(52px, 9dvh, 66px);
      display: grid;
      align-content: center;
      justify-items: center;
      gap: 3px;
      padding: 6px 3px;
      color: var(--muted);
      font-size: clamp(10px, 2.8vw, 12px);
      font-weight: 950;
    }

    body.home-active .home-nav-button.active {
      border-color: rgba(95,183,200,0.48);
      background:
        linear-gradient(180deg, rgba(95,183,200,0.2), rgba(5,10,22,0.72)),
        rgba(5,10,22,0.7);
      color: var(--ink);
    }

    body.home-active .home-icon-button:focus-visible,
    body.home-active .home-nav-button:focus-visible,
    body.home-active .home-mission-badge:focus-visible {
      outline: 2px solid rgba(95,183,200,0.72);
      outline-offset: 2px;
    }

    @media (min-width: 700px) {
      body.home-active .home-phone-shell {
        width: 430px;
        border-radius: 28px;
        border: 1px solid rgba(147,171,192,0.24);
      }

      body.home-active .home-scene {
        border-radius: 28px;
      }
    }

    @media (max-height: 700px) {
      body.home-active .home-asset-header {
        padding: 8px;
      }

      body.home-active .home-asset-header h1 {
        font-size: clamp(24px, 7vw, 34px);
      }

      body.home-active .home-icon-button {
        min-height: 64px;
      }

      body.home-active .home-mission-badge {
        min-height: 78px;
      }

      body.home-active .home-nav-button {
        min-height: 48px;
      }

      body.home-active .character-message .card-note {
        display: none;
      }
    }
    .home-sister-panels {
      position: relative;
      z-index: 2;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      min-height: 0;
    }

    .sister-panel {
      min-width: 0;
      display: grid;
      grid-template-rows: auto 1fr auto;
      gap: 9px;
      border: 1px solid color-mix(in srgb, var(--sister-tone), transparent 58%);
      border-radius: 8px;
      padding: 10px;
      background:
        linear-gradient(155deg, color-mix(in srgb, var(--sister-tone), transparent 86%), rgba(5,10,22,0.7)),
        rgba(13,24,42,0.9);
      box-shadow: 0 16px 34px rgba(0,0,0,0.26);
      backdrop-filter: blur(16px);
    }

    .sister-panel-head {
      display: grid;
      grid-template-columns: 54px minmax(0, 1fr);
      gap: 9px;
      align-items: center;
      min-width: 0;
    }

    .sister-panel-portrait {
      width: 54px;
      aspect-ratio: 1;
      border-radius: 8px;
      border: 1px solid rgba(238,244,248,0.18);
      object-fit: cover;
      object-position: center 18%;
      background:
        radial-gradient(circle at 50% 18%, color-mix(in srgb, var(--sister-tone), transparent 45%), transparent 42%),
        rgba(238,244,248,0.1);
    }

    .sister-panel-portrait.placeholder {
      display: grid;
      place-items: center;
      color: var(--ink);
      font-size: 12px;
      font-weight: 950;
    }

    .sister-panel-kpis {
      display: grid;
      gap: 6px;
    }

    .sister-kpi {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 7px;
      padding: 7px;
      background: rgba(5,10,22,0.52);
    }

    .sister-kpi span {
      display: block;
      color: var(--muted);
      font-size: 10px;
      font-weight: 800;
    }

    .sister-kpi strong {
      display: block;
      overflow-wrap: anywhere;
      font-size: 14px;
      line-height: 1.22;
    }

    .sister-panel-actions {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 6px;
    }

    .sister-panel-actions button {
      min-width: 0;
      min-height: 36px;
      border: 1px solid rgba(238,244,248,0.14);
      border-radius: 7px;
      background: rgba(238,244,248,0.055);
      padding: 6px 7px;
      color: var(--ink);
      font-size: 11px;
      font-weight: 850;
    }

    .home-command-row {
      position: relative;
      z-index: 2;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(130px, auto);
      gap: 8px;
      align-items: stretch;
    }

    .home-command-row .home-left-menu {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-content: stretch;
    }

    .bottom-tabs {
      background:
        linear-gradient(180deg, rgba(13,24,42,0.78), rgba(5,10,22,0.96)),
        rgba(5,10,22,0.94);
    }

    .bottom-tabs button,
    .bottom-tabs a {
      display: grid;
      place-items: center;
      gap: 3px;
      border-radius: 7px;
      background: rgba(5,10,22,0.74);
      color: var(--muted);
      font-weight: 850;
    }

    .bottom-tabs button.active {
      border-color: color-mix(in srgb, var(--accent), transparent 42%);
      background:
        linear-gradient(180deg, color-mix(in srgb, var(--accent), transparent 80%), color-mix(in srgb, var(--accent), transparent 92%));
      color: var(--ink);
      box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent), transparent 92%);
    }

    body.home-active {
      height: auto;
      max-height: none;
      overflow: auto;
    }

    body.home-active .app,
    body.home-active main,
    body.home-active #home.active,
    body.home-active .home-phone-shell {
      height: auto;
      min-height: 100dvh;
      max-height: none;
      overflow: visible;
    }

    body.home-active .app {
      display: block;
      padding-bottom: 96px;
    }

    body.home-active main {
      width: min(1180px, calc(100% - 28px));
      display: block;
      margin: 0 auto;
      padding: 18px 0 28px;
    }

    body.home-active #home.active,
    body.home-active .home-phone-shell {
      width: 100%;
    }

    body.home-active .topbar,
    body.home-active > .app > .bottom-tabs {
      display: block;
    }

    body.home-active .home-scene {
      min-height: calc(100dvh - 132px);
      height: auto;
      max-height: none;
      padding-bottom: 14px;
    }

    body.home-active .home-scene::before {
      background:
        radial-gradient(circle at 22% 18%, rgba(95,183,200,0.12), transparent 17%),
        radial-gradient(circle at 82% 54%, rgba(239,188,104,0.1), transparent 19%),
        linear-gradient(30deg, transparent 0 46%, rgba(95,183,200,0.08) 46% 47%, transparent 47%),
        linear-gradient(150deg, transparent 0 50%, rgba(182,164,255,0.07) 50% 51%, transparent 51%),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,0.02) 1px, transparent 1px);
      background-size: auto, auto, 160px 160px, 180px 180px, 54px 54px, 54px 54px;
      mask-image: none;
    }

    body.home-active .home-scene::after {
      inset: 14px;
      border-radius: 8px;
      background:
        radial-gradient(circle at 50% 42%, transparent 0 25%, rgba(95,183,200,0.12) 25.4% 25.8%, transparent 26.2%),
        radial-gradient(circle at 50% 42%, transparent 0 43%, rgba(239,188,104,0.09) 43.2% 43.6%, transparent 44%),
        linear-gradient(90deg, transparent 0 49.8%, rgba(95,183,200,0.08) 50%, transparent 50.2%),
        linear-gradient(180deg, transparent 0 49.8%, rgba(95,183,200,0.06) 50%, transparent 50.2%);
      opacity: 0.8;
    }

    body.home-active .home-asset-header {
      width: 100%;
      max-width: none;
      justify-self: stretch;
    }

    body.home-active .home-left-menu,
    body.home-active .home-bottom-nav {
      display: grid;
    }

    body.home-active .home-mission-badge {
      min-height: 64px;
      align-self: stretch;
    }

    @media (max-width: 760px) {
      .rank-pyramid-current,
      .asset-pyramid-facts {
        grid-template-columns: 1fr;
      }

      .core-plan-progress-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
      }

      .plan-progress-card {
        gap: 7px;
        padding: 10px;
      }

      .plan-progress-card .plan-ring-svg {
        max-width: 104px;
      }

      .ai-proposal-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .ai-allocation-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
      }

      .ai-allocation-row > div:first-child {
        grid-column: 1 / -1;
      }

      .support-plan-rail {
        grid-auto-columns: minmax(148px, 78vw);
      }

      .ranking-source-character {
        grid-template-columns: 68px minmax(0, 1fr);
      }

      .ranking-source-character img {
        width: 68px;
      }

      .asset-pyramid-tier {
        height: 68px;
      }

      .asset-pyramid-tier-main span {
        font-size: 12px;
      }

      .asset-pyramid-tier-main strong {
        font-size: 10px;
      }

      .asset-pyramid-badge {
        padding: 2px 5px;
        font-size: 10px;
      }

      .home-sister-panels {
        grid-template-columns: 1fr;
      }

      .sister-panel {
        grid-template-rows: auto auto auto;
      }

      .sister-panel-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

    @media (max-width: 520px) {
      body.home-active main {
        width: 100%;
        padding: 0;
      }

      body.home-active .home-scene {
        border-radius: 0;
        border-left: 0;
        border-right: 0;
        min-height: calc(100dvh - 74px);
      }

      .home-command-row {
        grid-template-columns: 1fr;
      }

      .sister-panel-kpis {
        grid-template-columns: 1fr;
      }
    }

    body.home-active .topbar,
    body.home-active > .app > .bottom-tabs {
      display: none;
    }

    body.home-active {
      height: 100vh;
      height: 100svh;
      min-height: 100vh;
      min-height: 100svh;
      max-height: 100vh;
      max-height: 100svh;
      overflow: hidden;
    }

    body.home-active .app,
    body.home-active main,
    body.home-active #home.active,
    body.home-active .home-phone-shell {
      width: 100%;
      height: 100vh;
      height: 100svh;
      min-height: 100vh;
      min-height: 100svh;
      max-height: 100vh;
      max-height: 100svh;
      overflow: hidden;
    }

    body.home-active .app {
      padding-bottom: 0;
    }

    body.home-active main {
      margin: 0;
      padding: 0;
    }

    body.home-active .home-strategy-room {
      position: relative;
      width: 100%;
      min-height: 100vh;
      min-height: 100svh;
      max-height: 100vh;
      max-height: 100svh;
      display: grid;
      grid-template-rows: auto minmax(0, 1fr) auto;
      gap: clamp(8px, 1.7svh, 14px);
      padding:
        max(10px, env(safe-area-inset-top))
        max(12px, env(safe-area-inset-right))
        max(10px, env(safe-area-inset-bottom))
        max(12px, env(safe-area-inset-left));
      overflow: hidden;
      border: 0;
      border-radius: 0;
      background:
        linear-gradient(180deg, rgba(2, 5, 12, 0.08) 0%, rgba(2, 5, 12, 0.16) 38%, rgba(2, 5, 12, 0.56) 78%, rgba(2, 5, 12, 0.86) 100%),
        #050914;
    }

    body.home-active .home-strategy-room::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      background:
        linear-gradient(90deg, rgba(255,255,255,0.032) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,0.024) 1px, transparent 1px),
        radial-gradient(circle at 50% 48%, rgba(95,183,200,0.1), transparent 32%);
      background-size: 48px 48px, 48px 48px, auto;
      opacity: 0.34;
      mask-image: linear-gradient(180deg, rgba(0,0,0,0.28), rgba(0,0,0,0.08));
    }

    body.home-active .home-strategy-room::after {
      content: "";
      position: absolute;
      inset: 8px;
      border: 1px solid rgba(147,171,192,0.22);
      border-radius: 8px;
      pointer-events: none;
      background:
        radial-gradient(circle at 50% 60%, transparent 0 31%, rgba(210,154,85,0.09) 31.2% 31.6%, transparent 31.8%),
        radial-gradient(circle at 50% 60%, transparent 0 46%, rgba(95,183,200,0.07) 46.2% 46.6%, transparent 46.8%);
      opacity: 0.38;
    }

    .home-council-header {
      position: relative;
      z-index: 5;
      grid-row: 1;
      min-width: 0;
      text-align: center;
      padding-top: clamp(14px, 2.4dvh, 22px);
      text-shadow: 0 2px 18px rgba(0,0,0,0.86);
    }

    .home-council-header h1 {
      margin: 2px 0 0;
      font-size: clamp(22px, 7vw, 31px);
      font-weight: 950;
      text-shadow: 0 2px 18px rgba(0,0,0,0.72);
    }

    .home-council-header p:last-child {
      margin: 4px auto 0;
      color: rgba(238,244,248,0.78);
      font-size: clamp(12px, 3.25vw, 14px);
      font-weight: 700;
    }

    .round-table-stage {
      position: absolute;
      z-index: 2;
      left: 50%;
      top: 50%;
      width: min(calc(100% - 24px), 75vh);
      width: min(calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)), 75svh);
      min-height: 0;
      aspect-ratio: 3 / 4;
      display: grid;
      place-items: center;
      overflow: hidden;
      isolation: isolate;
      transform: translate(-50%, -50%);
      background:
        linear-gradient(180deg, rgba(2,5,12,0.02), rgba(2,5,12,0.04) 56%, rgba(2,5,12,0.52)),
        url("../images/home/strategy_round_table_bg.webp?v=7c96eb0b549c") center / 100% 100% no-repeat;
    }

    .round-table-layer {
      display: none;
    }

    .department-grid {
      position: absolute;
      inset: 0;
      z-index: 3;
      pointer-events: none;
    }

    .department-character-button {
      --dept-tone: var(--accent);
      --dept-x: 0;
      position: absolute;
      width: clamp(92px, 29%, 132px);
      min-height: clamp(72px, 15%, 106px);
      display: grid;
      align-content: end;
      border: 0;
      background: transparent;
      padding: 0;
      color: var(--ink);
      text-align: center;
      cursor: pointer;
      filter: drop-shadow(0 18px 24px rgba(0,0,0,0.5));
      transform: translateX(var(--dept-x));
      transition: transform 160ms ease, filter 160ms ease;
      touch-action: manipulation;
      pointer-events: auto;
    }
    .department-external-link {
      text-decoration: none;
    }

    .department-external-icon {
      display: grid;
      place-items: center;
      justify-self: center;
      width: 32px;
      aspect-ratio: 1;
      margin-bottom: 5px;
      border: 1px solid rgba(206, 218, 231, 0.3);
      border-radius: 999px;
      background: color-mix(in srgb, var(--dept-tone), transparent 82%);
      color: #f5fbff;
      font-size: 18px;
      font-weight: 950;
    }

    .council-icon-button {
      text-decoration: none;
    }


    body.home-active .department-character-button[data-department="asset"] {
      --dept-x: -50%;
      left: 25%;
      right: auto;
      top: 41%;
    }

    body.home-active .department-character-button[data-department="finance"] {
      --dept-x: -50%;
      left: 75%;
      top: 41%;
    }

    body.home-active .department-character-button[data-department="dividend"] {
      --dept-x: -50%;
      left: 25%;
      top: 76%;
      bottom: auto;
    }

    body.home-active .department-character-button[data-department="plan"] {
      --dept-x: -50%;
      left: 75%;
      right: auto;
      top: 76%;
      bottom: auto;
      z-index: 4;
    }

    .department-character-button:hover,
    .department-character-button:focus-visible {
      filter: drop-shadow(0 0 18px color-mix(in srgb, var(--dept-tone), transparent 28%)) drop-shadow(0 20px 26px rgba(0,0,0,0.58));
    }

    .department-character-button:hover,
    .department-character-button:focus-visible,
    .department-character-button:active {
      transform: translateX(var(--dept-x)) translateY(-3px) scale(1.035);
    }

    .department-character-button[data-department="plan"]:hover,
    .department-character-button[data-department="plan"]:focus-visible,
    .department-character-button[data-department="plan"]:active {
      transform: translateX(var(--dept-x)) translateY(-3px) scale(1.035);
    }

    .department-character-button:focus-visible,
    .mission-documents-button:focus-visible,
    .home-world-map-hotspot:focus-visible,
    .home-nav-button:focus-visible {
      outline: 2px solid rgba(238,244,248,0.86);
      outline-offset: 3px;
    }

    .department-character-button::before {
      content: "";
      position: absolute;
      left: 14%;
      right: 14%;
      bottom: 20px;
      height: 44%;
      border-radius: 50%;
      background: radial-gradient(circle, color-mix(in srgb, var(--dept-tone), transparent 54%), transparent 67%);
      opacity: 0.5;
      z-index: -1;
    }

    .department-character-button > img {
      display: none;
      width: 100%;
      aspect-ratio: 0.68;
      object-fit: contain;
      margin: 0 auto -2px;
    }

    .dept-nameplate {
      display: grid;
      align-items: center;
      min-height: 34px;
      border: 2px solid var(--dept-tone);
      border-radius: 8px;
      padding: 6px 8px;
      background: linear-gradient(180deg, rgba(5,10,22,0.92), rgba(5,10,22,0.7));
      box-shadow: 0 8px 18px rgba(0,0,0,0.36), inset 0 1px 0 rgba(255,255,255,0.12);
      backdrop-filter: blur(12px);
    }

    .dept-nameplate strong {
      display: block;
      font-size: clamp(12px, 3.2vw, 14px);
      line-height: 1.08;
    }

    .department-overlay {
      position: fixed;
      inset: 0;
      z-index: 80;
      display: grid;
      place-items: center;
      padding: clamp(12px, 4vw, 28px);
      box-sizing: border-box;
      background: rgba(0, 0, 0, 0.5);
      backdrop-filter: blur(7px);
    }

    .data-mode-badge.mixed {
      color: #ffe1a6;
      border-color: rgba(239, 188, 104, 0.5);
      background: rgba(239, 188, 104, 0.12);
    }

    .department-overlay[hidden] {
      display: none;
    }

    .department-overlay-window {
      --department-tone: var(--accent);
      position: relative;
      width: min(calc(100vw - clamp(24px, 8vw, 56px)), 1080px);
      max-width: 100%;
      max-height: calc(100dvh - 24px);
      display: grid;
      grid-template-columns: minmax(0, 0.92fr) minmax(220px, 0.72fr);
      gap: clamp(12px, 3vw, 26px);
      overflow-y: auto;
      overflow-x: hidden;
      box-sizing: border-box;
      overscroll-behavior: contain;
      border: 1px solid color-mix(in srgb, var(--department-tone), transparent 36%);
      border-radius: 8px;
      background:
        linear-gradient(135deg, color-mix(in srgb, var(--department-tone), transparent 84%), transparent 40%),
        rgba(3, 6, 14, 0.66);
      box-shadow: 0 22px 56px rgba(0,0,0,0.46), inset 0 1px 0 rgba(255,255,255,0.12);
    }

    .department-overlay-window::before {
      content: "";
      position: absolute;
      inset: 10px;
      border: 1px solid rgba(238,244,248,0.08);
      border-radius: 8px;
      pointer-events: none;
    }

    .department-overlay-menu {
      position: relative;
      z-index: 2;
      isolation: isolate;
      display: grid;
      align-content: center;
      gap: 12px;
      min-width: 0;
      padding: clamp(18px, 4vw, 30px);
    }

    .department-overlay-menu::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      border-radius: 8px;
      background:
        linear-gradient(90deg, rgba(3,6,14,0.88) 0%, rgba(3,6,14,0.68) 62%, rgba(3,6,14,0.06) 100%);
      box-shadow: 0 14px 28px rgba(3,6,14,0.18);
      pointer-events: none;
    }

    .department-overlay-menu > * {
      position: relative;
      z-index: 1;
    }

    .department-overlay-heading {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
      min-width: 0;
    }

    .department-overlay-title-copy {
      min-width: 0;
    }

    .department-overlay-menu h2 {
      margin: 3px 0 0;
      font-size: clamp(22px, 5vw, 34px);
      line-height: 1.05;
      white-space: nowrap;
      word-break: keep-all;
      overflow-wrap: normal;
      text-shadow: 0 2px 16px rgba(0,0,0,0.82);
    }

    .department-overlay-demo-guide {
      margin: 0;
      border-left: 3px solid color-mix(in srgb, var(--department-tone), #ffffff 18%);
      padding: 8px 10px;
      background: rgba(5,10,22,0.62);
      color: rgba(238,244,248,0.82);
      font-size: 12px;
      line-height: 1.5;
    }

    .department-overlay-demo-guide[hidden] {
      display: none;
    }

    .department-overlay-role {
      color: rgba(238,244,248,0.74);
      font-size: 13px;
      line-height: 1.55;
    }

    .department-overlay-actions {
      display: grid;
      gap: 8px;
      margin-top: 6px;
    }

    .department-overlay-action {
      width: 100%;
      min-height: 54px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 10px;
      border: 1px solid rgba(238,244,248,0.13);
      border-radius: 8px;
      padding: 10px 12px;
      background: rgba(5,10,22,0.86);
      color: var(--ink);
      text-align: left;
      text-decoration: none;
      cursor: pointer;
      box-shadow: 0 12px 24px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.08);
      backdrop-filter: blur(10px);
    }

    .department-overlay-action:hover,
    .department-overlay-action:focus-visible {
      border-color: color-mix(in srgb, var(--department-tone), transparent 22%);
      background: linear-gradient(135deg, color-mix(in srgb, var(--department-tone), transparent 80%), rgba(5,10,22,0.76));
    }

    .department-overlay-action strong,
    .department-overlay-action-text,
    .department-overlay-action-note {
      display: block;
      min-width: 0;
    }

    .department-overlay-action strong {
      font-size: 14px;
      line-height: 1.22;
    }

    .department-overlay-action-note {
      margin-top: 3px;
      color: rgba(238,244,248,0.66);
      font-size: 11px;
      line-height: 1.45;
    }

    .department-overlay-action::after {
      content: ">";
      color: color-mix(in srgb, var(--department-tone), #ffffff 28%);
      font-size: 20px;
      font-weight: 900;
    }

    .department-overlay-external-action::after {
      content: "↗";
    }

    .department-overlay-character {
      --department-character-x: 0%;
      --department-character-y: 0%;
      position: relative;
      z-index: 1;
      display: grid;
      align-items: end;
      justify-items: end;
      min-height: min(620px, calc(100dvh - 48px));
      margin: 0;
      padding: 18px 0 0 0;
    }

    .department-overlay-line {
      position: absolute;
      top: clamp(14px, 4dvh, 36px);
      right: clamp(8px, 3vw, 22px);
      z-index: 3;
      width: min(88%, 300px);
      margin: 0;
      border: 1px solid color-mix(in srgb, var(--department-tone), transparent 44%);
      border-radius: 8px;
      padding: 9px 12px 9px 14px;
      background:
        linear-gradient(135deg, color-mix(in srgb, var(--department-tone), transparent 68%), rgba(5,10,22,0.8));
      color: #f5fbff;
      font-size: 12px;
      font-weight: 800;
      line-height: 1.45;
      text-shadow: 0 2px 10px rgba(0,0,0,0.68);
      box-shadow: 0 10px 22px rgba(0,0,0,0.2), inset 3px 0 0 color-mix(in srgb, var(--department-tone), #ffffff 18%);
      backdrop-filter: blur(12px);
      white-space: normal;
      overflow-wrap: anywhere;
    }

    .department-overlay-line::after {
      content: "";
      position: absolute;
      right: 28px;
      bottom: -8px;
      width: 14px;
      aspect-ratio: 1;
      border-right: 1px solid color-mix(in srgb, var(--department-tone), transparent 44%);
      border-bottom: 1px solid color-mix(in srgb, var(--department-tone), transparent 44%);
      background: rgba(5,10,22,0.8);
      transform: rotate(45deg);
    }

    .department-overlay-character::before {
      content: "";
      position: absolute;
      right: 8%;
      bottom: 4%;
      width: min(78%, 290px);
      height: 42%;
      border: 1px solid color-mix(in srgb, var(--department-tone), transparent 54%);
      border-radius: 8px;
      background:
        repeating-linear-gradient(90deg, rgba(255,255,255,0.055) 0 1px, transparent 1px 18px),
        linear-gradient(180deg, color-mix(in srgb, var(--department-tone), transparent 84%), rgba(5,10,22,0.1));
      opacity: 0.34;
    }

    .department-overlay-character img {
      position: relative;
      z-index: 1;
      width: min(118%, 420px);
      min-width: 140px;
      max-height: min(620px, calc(100dvh - 54px));
      object-fit: contain;
      object-position: right bottom;
      filter: brightness(1.18) contrast(1.04) drop-shadow(0 22px 30px rgba(0,0,0,0.28));
      transform: translateX(var(--department-character-x)) translateY(var(--department-character-y));
    }

    .department-overlay-close {
      position: relative;
      flex: 0 0 44px;
      z-index: 2;
      width: 44px;
      min-height: 44px;
      display: grid;
      place-items: center;
      border: 1px solid rgba(238,244,248,0.16);
      border-radius: 999px;
      background: rgba(5,10,22,0.72);
      color: var(--ink);
      font-size: 18px;
      font-weight: 900;
    }

    .department-overlay-close:hover,
    .department-overlay-close:focus-visible {
      border-color: rgba(238,244,248,0.5);
      background: rgba(238,244,248,0.12);
    }

    .council-icon-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 10px;
    }

    .council-icon-button {
      width: 38px;
      min-height: 38px;
      display: grid;
      place-items: center;
      border: 1px solid rgba(238,244,248,0.16);
      border-radius: 8px;
      background: rgba(5,10,22,0.72);
      color: var(--ink);
      font-size: 13px;
      font-weight: 950;
      line-height: 1;
    }

    .council-icon-button:hover,
    .council-icon-button:focus-visible {
      border-color: color-mix(in srgb, var(--accent), transparent 36%);
      background: rgba(95,183,200,0.14);
    }

    .mission-documents-button {
      position: absolute;
      left: 50%;
      top: 88%;
      z-index: 4;
      width: clamp(72px, 21%, 104px);
      min-height: 44px;
      padding: 0;
      border: 0;
      color: var(--ink);
      background: transparent;
      transform: translate(-50%, -50%) rotate(-2deg);
      filter: drop-shadow(0 18px 20px rgba(0,0,0,0.5));
      transition: transform 160ms ease, filter 160ms ease;
    }

    .mission-documents-button:hover,
    .mission-documents-button:focus-visible,
    .mission-documents-button:active {
      transform: translate(-50%, -52%) rotate(-1deg) scale(1.045);
      filter: drop-shadow(0 0 20px rgba(239,188,104,0.42)) drop-shadow(0 18px 22px rgba(0,0,0,0.56));
    }

    .home-world-map-hotspot {
      position: absolute;
      left: 16%;
      right: 16%;
      top: 3%;
      height: 27%;
      z-index: 2;
      border: 0;
      border-radius: 0;
      background: transparent;
      color: transparent;
      cursor: pointer;
      transition: background 160ms ease, box-shadow 160ms ease;
      touch-action: manipulation;
    }

    .home-world-map-hotspot span {
      display: none;
    }

    .home-world-map-hotspot:hover,
    .home-world-map-hotspot:focus-visible,
    .home-world-map-hotspot:active {
      background: rgba(95,183,200,0.035);
      box-shadow: inset 0 0 28px rgba(95,183,200,0.08);
    }

    .mission-documents-button img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 1;
      object-fit: contain;
    }

    .mission-status {
      position: absolute;
      left: 50%;
      bottom: -8px;
      min-width: 74px;
      transform: translateX(-50%);
      border: 1px solid rgba(239,188,104,0.5);
      border-radius: 999px;
      padding: 3px 8px;
      background: rgba(5,10,22,0.86);
      color: #ffe7aa;
      font-size: 11px;
      font-weight: 900;
      white-space: nowrap;
      box-shadow: 0 8px 18px rgba(0,0,0,0.34);
    }

    body.home-active .home-bottom-nav {
      position: relative;
      z-index: 5;
      grid-row: 3;
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 6px;
      min-width: 0;
    }

    body.home-active .home-nav-button {
      min-width: 0;
      min-height: 50px;
      border: 1px solid rgba(147,171,192,0.22);
      border-radius: 8px;
      background: rgba(5,10,22,0.66);
      color: rgba(238,244,248,0.84);
      display: grid;
      place-items: center;
      gap: 2px;
      padding: 5px 3px;
      backdrop-filter: blur(12px);
    }

    body.home-active .home-nav-button.active {
      border-color: rgba(95,183,200,0.58);
      background: rgba(95,183,200,0.17);
      color: #e8fbff;
    }

    body.home-active .home-nav-button .home-icon {
      width: 20px;
      aspect-ratio: 1;
      object-fit: contain;
    }

    body.home-active .home-nav-button[data-view="projects"] .home-icon {
      filter: brightness(0.82) saturate(0.88);
    }

    body.home-active .home-nav-button span:last-child {
      font-size: 10px;
      font-weight: 900;
      line-height: 1.1;
    }

    @media (min-width: 760px) {
      body.home-active .home-phone-shell {
        width: 430px;
        max-width: calc(100vw - 28px);
        min-height: 100dvh;
        margin: 0 auto;
        border-left: 1px solid rgba(147,171,192,0.24);
        border-right: 1px solid rgba(147,171,192,0.24);
        box-shadow: 0 22px 60px rgba(0,0,0,0.42);
      }
    }

    @media (max-width: 370px), (max-height: 720px) {
      .department-character-button {
        width: clamp(92px, 28%, 122px);
      }

      .round-table-layer {
        width: min(92%, 360px);
        top: 52%;
      }

      .dept-nameplate {
        min-height: 32px;
        padding: 4px 6px;
      }

      .department-overlay {
        padding: 8px;
      }

      .department-overlay-window {
        grid-template-columns: minmax(0, 1fr) clamp(134px, 40vw, 164px);
        gap: 0;
        max-height: calc(100dvh - 16px);
      }

      .department-overlay-menu {
        padding: 16px 8px 14px 14px;
      }

      .department-overlay-menu::before {
        inset: 0 -12px 0 0;
        background:
          linear-gradient(90deg, rgba(3,6,14,0.94) 0%, rgba(3,6,14,0.82) 72%, rgba(3,6,14,0.08) 100%);
        box-shadow: 0 12px 22px rgba(3,6,14,0.12);
      }

      .department-overlay-menu h2 {
        font-size: clamp(19px, 6vw, 24px);
      }

      .department-overlay-role {
        font-size: 11px;
      }

      .department-overlay-action {
        min-height: 48px;
        padding: 8px 9px;
      }

      .department-overlay-action-note {
        display: none;
      }

      .department-overlay-character {
        --department-character-x: 24%;
        --department-character-y: 7%;
        min-height: calc(100dvh - 34px);
        padding: 54px 0 0 0;
      }

      .department-overlay-line {
        position: fixed;
        top: 54px;
        left: clamp(132px, 42vw, 158px);
        right: auto;
        width: min(174px, calc(100vw - 170px));
        max-width: calc(100vw - 36px);
        padding: 7px 9px 7px 11px;
        font-size: 10.5px;
      }

      .department-overlay-character img {
        width: auto;
        height: calc(108dvh - 34px);
        max-width: none;
        max-height: none;
      }
    }

    .desktop-nav {
      display: flex;
      align-items: center;
      gap: 5px;
      min-width: 0;
      padding: 4px;
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 8px;
      background: rgba(5,10,22,0.5);
    }

    .desktop-nav button,
    .desktop-nav a {
      min-width: 0;
      min-height: 36px;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      border: 1px solid transparent;
      border-radius: 7px;
      background: transparent;
      color: var(--muted);
      padding: 7px 10px;
      font-size: 12px;
      font-weight: 900;
      white-space: nowrap;
      text-decoration: none;
    }

    .desktop-nav button:hover,
    .desktop-nav button:focus-visible,
    .desktop-nav a:hover,
    .desktop-nav a:focus-visible {
      border-color: color-mix(in srgb, var(--accent), transparent 50%);
      background: color-mix(in srgb, var(--accent), transparent 88%);
      color: var(--ink);
      outline: none;
    }

    .desktop-nav button.active,
    .desktop-nav a.active {
      border-color: color-mix(in srgb, var(--accent), transparent 34%);
      background:
        linear-gradient(180deg, color-mix(in srgb, var(--accent), transparent 78%), rgba(255,255,255,0.035));
      color: var(--ink);
      box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent), transparent 90%);
    }

    .desktop-nav-icon {
      width: 18px;
      height: 18px;
      flex: none;
      object-fit: contain;
      filter: drop-shadow(0 0 8px color-mix(in srgb, var(--accent), transparent 72%));
    }

    @media (min-width: 921px) {
      .app {
        padding-bottom: 0;
      }

      .topbar-inner,
      main {
        width: min(1440px, calc(100% - 48px));
      }

      .bottom-tabs,
      body.home-active > .app > .bottom-tabs {
        display: none;
      }

      .top-actions {
        gap: 10px;
      }

      body.home-active {
        height: auto;
        min-height: 100vh;
        min-height: 100svh;
        max-height: none;
        overflow: auto;
      }

      body.home-active .topbar {
        display: block;
      }

      body.home-active .app,
      body.home-active main,
      body.home-active #home.active,
      body.home-active .home-phone-shell {
        height: auto;
        min-height: 0;
        max-height: none;
        overflow: visible;
      }

      body.home-active main {
        width: min(1440px, calc(100% - 48px));
        display: block;
        margin: 0 auto;
        padding: 20px 0 32px;
      }

      body.home-active #home.active,
      body.home-active .home-phone-shell {
        width: 100%;
      }

      body.home-active .home-phone-shell {
        border: 1px solid rgba(147,171,192,0.22);
        border-radius: 12px;
        background:
          linear-gradient(180deg, rgba(8,18,34,0.72), rgba(3,8,18,0.92)),
          var(--bg);
        box-shadow: 0 26px 70px rgba(0,0,0,0.34);
      }

      body.home-active .home-strategy-room {
        min-height: calc(100svh - 126px);
        max-height: none;
        height: auto;
        grid-template-rows: auto minmax(620px, 1fr) auto;
        gap: 18px;
        padding: clamp(22px, 2.2vw, 34px);
        border: 0;
        border-radius: 12px;
      }

      .home-council-header {
        padding-top: 0;
      }

      .home-council-header h1 {
        font-size: clamp(34px, 3.3vw, 56px);
      }

      .home-council-header p:last-child {
        max-width: 720px;
        font-size: 15px;
      }

      .round-table-stage {
        position: relative;
        left: auto;
        top: auto;
        grid-row: 2;
        justify-self: center;
        align-self: center;
        width: min(100%, 720px, max(480px, calc((100svh - 350px) * 0.75)));
        aspect-ratio: 3 / 4;
        transform: none;
        background-size: 100% auto;
      }

      .department-character-button {
        width: clamp(118px, 16%, 168px);
        min-height: clamp(86px, 13%, 126px);
      }

      .dept-nameplate {
        min-height: 40px;
      }

      .dept-nameplate strong {
        font-size: clamp(14px, 1.1vw, 17px);
      }

      .mission-documents-button {
        width: clamp(92px, 13%, 132px);
      }

      body.home-active .home-bottom-nav {
        justify-self: center;
        width: min(760px, 100%);
        grid-template-columns: repeat(5, minmax(0, 1fr));
      }

      body.home-active .home-nav-button {
        min-height: 58px;
      }

      .department-overlay-window {
        width: min(1040px, 100%);
      }

      .department-overlay-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .department-overlay-action {
        min-height: 62px;
      }
    }

    /* Finance command: red is reserved for treasury focus and warnings. */
    body.theme-finance {
      --accent: #d95555;
      --accent-soft: rgba(217,85,85,0.16);
    }

    .finance-view {
      --finance-red: #d95555;
      --finance-red-bright: #ff7a70;
      --finance-black: #070a11;
      --finance-gold: #d8b16a;
      width: 100%;
      max-width: 100%;
      overflow-x: clip;
    }

    .finance-view > *,
    .finance-briefing > div,
    .finance-section-stack,
    .finance-section,
    .finance-section > header > div {
      min-width: 0;
      max-width: 100%;
    }

    .finance-view-head {
      border-bottom: 2px solid rgba(217,85,85,0.52);
      padding-bottom: 12px;
    }

    .finance-briefing {
      min-height: 260px;
      display: grid;
      grid-template-columns: minmax(150px, 0.34fr) minmax(0, 1fr);
      align-items: center;
      gap: clamp(14px, 3vw, 28px);
      overflow: hidden;
      border: 1px solid rgba(217,85,85,0.32);
      border-radius: 8px;
      padding: 18px clamp(16px, 3vw, 30px) 0;
      background:
        linear-gradient(110deg, rgba(217,85,85,0.1), transparent 46%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 44px),
        rgba(7,10,17,0.82);
      box-shadow: var(--shadow);
    }

    .finance-portrait {
      width: min(100%, 240px);
      max-height: 310px;
      align-self: end;
      justify-self: center;
      object-fit: contain;
      object-position: center bottom;
      filter: drop-shadow(0 22px 28px rgba(0,0,0,0.62));
    }

    .finance-briefing h2 {
      margin: 4px 0 8px;
      font-size: clamp(21px, 4vw, 34px);
      line-height: 1.18;
      overflow-wrap: anywhere;
    }

    .finance-briefing p:not(.label) {
      max-width: 720px;
      margin: 0;
      color: var(--muted);
      line-height: 1.7;
      overflow-wrap: anywhere;
    }

    .finance-briefing-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 14px;
    }

    .finance-section-stack {
      display: grid;
      gap: 12px;
      margin-top: 14px;
    }

    .finance-section {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.12);
      border-left: 3px solid rgba(217,85,85,0.62);
      border-radius: 8px;
      padding: 14px;
      background: linear-gradient(145deg, rgba(217,85,85,0.045), transparent 42%), var(--surface);
      box-shadow: var(--shadow);
    }

    .finance-section > header,
    .finance-section > header > div {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }

    .finance-section > header > div {
      justify-content: flex-start;
    }

    .finance-section h2 { margin: 0; font-size: clamp(18px, 4vw, 22px); }

    .finance-section-mark {
      display: inline-grid;
      width: 28px;
      height: 28px;
      place-items: center;
      flex: 0 0 auto;
      margin: 0;
      border: 1px solid rgba(217,85,85,0.55);
      border-radius: 50%;
      color: #ffd4cf;
      background: rgba(217,85,85,0.13);
      font: 900 12px/1 ui-monospace, "Cascadia Mono", monospace;
    }

    .finance-metric-grid,
    .finance-capacity-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin-top: 12px;
    }

    .finance-metric,
    .finance-capacity-card {
      min-width: 0;
      border: 1px solid rgba(238,244,248,0.1);
      border-radius: 7px;
      padding: 12px;
      background: rgba(5,10,22,0.56);
    }

    .finance-metric span,
    .finance-capacity-card span { color: var(--muted); font-size: 12px; font-weight: 800; }
    .finance-metric strong,
    .finance-capacity-card strong { display: block; margin-top: 6px; font-size: clamp(18px, 4.4vw, 26px); overflow-wrap: anywhere; }
    .finance-metric small,
    .finance-capacity-card small { display: block; margin-top: 4px; color: var(--muted); line-height: 1.35; overflow-wrap: anywhere; }
    .finance-metric.important { border-color: rgba(217,85,85,0.34); }
    .finance-metric.alert,
    .finance-capacity-card.alert { border-color: rgba(255,122,112,0.6); background: rgba(217,85,85,0.12); }

    .finance-forecast-chart { display: grid; gap: 9px; margin-top: 12px; min-width: 0; }

    .finance-fold { padding: 0; }
    .finance-fold summary { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; cursor: pointer; }
    .finance-fold summary span { display: flex; align-items: center; gap: 10px; font-weight: 900; }
    .finance-fold summary small { color: var(--muted); }
    .finance-fold[open] .finance-list { padding: 0 14px 14px; }

    .finance-list { display: grid; gap: 8px; margin-top: 12px; }
    .finance-list-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; border: 1px solid rgba(255,255,255,0.09); border-radius: 7px; padding: 10px; background: rgba(5,10,22,0.48); }
    .finance-list-row strong { display: block; }
    .finance-list-row p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
    .finance-list-row > strong { text-align: right; white-space: nowrap; }
    .finance-list-row.warning { border-color: rgba(239,188,104,0.38); }
    .finance-list-row.alert { border-color: rgba(255,122,112,0.5); background: rgba(217,85,85,0.1); }

    .finance-review-intro {
      margin: 10px 0 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.6;
    }

    .finance-required-data {
      display: grid;
      grid-template-columns: 78px minmax(0, 1fr) auto;
      gap: 14px;
      align-items: stretch;
      overflow: hidden;
      border: 1px solid rgba(239,188,104,0.32);
      border-radius: 8px;
      background: rgba(5,10,22,0.6);
    }

    .finance-required-data.alert {
      border-color: rgba(255,122,112,0.58);
      background: rgba(217,85,85,0.1);
    }

    .finance-required-data.alert .finance-required-cadence {
      border-right-color: rgba(255,122,112,0.34);
      background: repeating-linear-gradient(-45deg, rgba(217,85,85,0.2) 0 5px, rgba(217,85,85,0.07) 5px 10px);
    }

    .finance-required-data.alert .finance-required-cadence span,
    .finance-required-data.alert .finance-required-body dt {
      color: #ff9f95;
    }

    .finance-required-data.notice {
      border-color: rgba(95,183,200,0.32);
    }

    .finance-required-cadence {
      display: grid;
      align-content: center;
      justify-items: center;
      gap: 5px;
      padding: 12px 8px;
      border-right: 1px solid rgba(239,188,104,0.25);
      background: repeating-linear-gradient(-45deg, rgba(239,188,104,0.12) 0 5px, rgba(239,188,104,0.04) 5px 10px);
      text-align: center;
    }

    .finance-required-cadence span {
      color: #ffe2ad;
      font: 950 15px/1 ui-monospace, "Cascadia Mono", monospace;
    }

    .finance-required-cadence b {
      color: var(--muted);
      font-size: 10px;
      letter-spacing: 0.08em;
    }

    .finance-required-body { min-width: 0; padding: 12px 0; }
    .finance-required-body h3 { margin: 0; color: var(--ink); font-size: 15px; line-height: 1.4; }
    .finance-required-body dl { display: grid; gap: 5px; margin: 9px 0 0; }
    .finance-required-body dl div { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 8px; }
    .finance-required-body dt { color: #efbc68; font-size: 11px; font-weight: 900; }
    .finance-required-body dd { margin: 0; color: var(--ink); font-size: 12px; font-weight: 800; line-height: 1.5; }
    .finance-required-body p { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
    .finance-required-action { display: grid; align-content: center; padding: 12px 12px 12px 0; }
    .finance-required-action .ghost-button { white-space: nowrap; }
    .finance-required-empty { border: 1px solid rgba(131,214,164,0.28); border-radius: 8px; padding: 14px; background: rgba(131,214,164,0.07); }
    .finance-required-empty strong { color: var(--ok); }
    .finance-required-empty p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }

    .finance-forecast-scroll { overflow: hidden; padding-bottom: 5px; }
    .finance-forecast-grid { min-width: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3px; align-items: end; height: 230px; padding-top: 22px; }
    .finance-forecast-month { height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto auto; gap: 5px; text-align: center; }
    .finance-forecast-bars { height: 100%; display: flex; align-items: end; justify-content: center; gap: 3px; }
    .finance-forecast-bars i { width: clamp(2px, 0.65vw, 8px); min-height: 2px; height: var(--height); border-radius: 2px 2px 0 0; background: var(--color); }
    .finance-forecast-month b { font-size: 11px; }
    .finance-forecast-month small { color: var(--muted); font-size: 9px; }
    .finance-forecast-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: 11px; }
    .finance-forecast-legend i { display: inline-block; width: 9px; height: 9px; margin-right: 4px; background: var(--color); }

    .finance-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 14px; background: rgba(2,5,12,0.8); backdrop-filter: blur(10px); }
    .finance-modal[hidden] { display: none; }
    .finance-modal-card { width: min(620px, 100%); max-height: min(90dvh, 780px); overflow-y: auto; border: 1px solid rgba(217,85,85,0.42); border-radius: 8px; padding: 16px; background: #090f19; box-shadow: 0 30px 90px rgba(0,0,0,0.62); }
    .finance-form { display: grid; gap: 11px; margin-top: 14px; }
    .finance-form[hidden] { display: none; }
    .finance-form fieldset { display: grid; gap: 8px; border: 1px solid rgba(255,255,255,0.1); border-radius: 7px; padding: 10px; }
    .finance-check { min-height: 44px; display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 13px; font-weight: 800; }
    .finance-check input { width: 20px; height: 20px; }
    .form-error { min-height: 20px; margin: 0; color: #ff9b91; font-size: 12px; font-weight: 800; }
    .finance-toast { position: fixed; right: 14px; bottom: 88px; z-index: 100; max-width: min(360px, calc(100vw - 28px)); border: 1px solid rgba(131,214,164,0.45); border-radius: 7px; padding: 11px 14px; background: rgba(9,18,29,0.98); box-shadow: var(--shadow); }

    .personal-ir-view {
      --ir-paper: #eef3f5;
      --ir-ink: #101b28;
      --ir-blue: #5fb7c8;
      --ir-blue-deep: #2b7086;
      --ir-copper: #d29a55;
      --ir-liability: #d7836d;
      --ir-rule: rgba(151, 190, 204, 0.28);
      min-width: 0;
    }

    .personal-ir-head { border-bottom: 1px solid var(--ir-rule); padding-bottom: 14px; }
    .personal-ir-cover {
      position: relative;
      display: grid;
      gap: 18px;
      overflow: hidden;
      margin-top: 14px;
      border: 1px solid rgba(95,183,200,0.35);
      border-radius: 10px;
      padding: 22px;
      background:
        linear-gradient(90deg, rgba(95,183,200,0.08) 1px, transparent 1px) 0 0 / 28px 28px,
        linear-gradient(rgba(95,183,200,0.08) 1px, transparent 1px) 0 0 / 28px 28px,
        radial-gradient(circle at 90% 10%, rgba(95,183,200,0.18), transparent 35%),
        #07111d;
    }
    .personal-ir-cover::after { content: "IR"; position: absolute; right: -8px; bottom: -44px; color: rgba(238,243,245,0.035); font: 950 clamp(120px, 38vw, 270px)/1 ui-monospace, "Cascadia Mono", Consolas, monospace; letter-spacing: -0.12em; pointer-events: none; }
    .personal-ir-cover-copy { position: relative; z-index: 1; }
    .personal-ir-folio { margin: 0; color: var(--ir-blue); font: 800 10px/1.3 ui-monospace, "Cascadia Mono", Consolas, monospace; letter-spacing: 0.16em; }
    .personal-ir-cover h2 { max-width: 700px; margin: 14px 0 0; color: var(--ir-paper); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(28px, 7vw, 52px); font-weight: 700; line-height: 1.18; letter-spacing: 0.02em; }
    .personal-ir-cover-copy > p:last-child { max-width: 620px; margin: 16px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
    .personal-ir-cover > .status { position: absolute; top: 16px; right: 16px; z-index: 2; }
    .personal-ir-seal { position: relative; z-index: 1; display: grid; width: 96px; height: 96px; align-content: center; justify-items: center; border: 1px solid rgba(95,183,200,0.58); border-radius: 50%; color: var(--ir-blue); background: rgba(7,17,29,0.72); box-shadow: inset 0 0 0 5px rgba(95,183,200,0.06); }
    .personal-ir-seal span { font-size: 10px; font-weight: 900; letter-spacing: 0.18em; }
    .personal-ir-seal strong { margin-top: 5px; font-size: 15px; }

    .personal-ir-balance, .personal-ir-chart-card, .personal-ir-notes { margin-top: 12px; border: 1px solid rgba(255,255,255,0.1); border-radius: 9px; padding: 16px; background: rgba(5,10,22,0.7); }
    .personal-ir-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
    .personal-ir-section-head h2 { margin: 3px 0 0; font-size: clamp(18px, 4.4vw, 24px); }
    .personal-ir-section-head .label { color: var(--ir-blue); }
    .personal-ir-balance-spine { display: grid; gap: 10px; margin-top: 18px; }
    .personal-ir-balance-line { display: grid; grid-template-columns: minmax(0, 1fr) 38px minmax(0, 1fr); gap: 8px; align-items: stretch; }
    .personal-ir-balance-side { min-width: 0; border: 1px solid rgba(255,255,255,0.1); border-radius: 7px; padding: 13px; background: #081321; }
    .personal-ir-balance-side.right { text-align: right; }
    .personal-ir-balance-side span { display: block; color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: 0.08em; }
    .personal-ir-balance-side strong { display: block; margin-top: 5px; color: var(--ir-paper); font: 850 clamp(12px, 3.2vw, 26px)/1.15 ui-monospace, "Cascadia Mono", Consolas, monospace; letter-spacing: -0.05em; white-space: nowrap; }
    .personal-ir-balance-equals { display: grid; place-items: center; color: var(--ir-blue); font: 900 22px/1 ui-monospace, "Cascadia Mono", Consolas, monospace; }
    .personal-ir-balance-meter { display: grid; grid-template-columns: var(--liability-share, 7%) minmax(0, 1fr); overflow: hidden; height: 10px; border-radius: 99px; background: rgba(255,255,255,0.07); }
    .personal-ir-balance-meter span:first-child { background: var(--ir-liability); }
    .personal-ir-balance-meter span:last-child { background: var(--ir-blue-deep); }
    .personal-ir-balance-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: 10px; }
    .personal-ir-balance-legend span::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 2px; background: var(--legend-tone); }
    .personal-ir-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
    .personal-ir-kpi { min-width: 0; border-top: 1px solid var(--ir-rule); padding-top: 10px; }
    .personal-ir-kpi span { display: block; color: var(--muted); font-size: 10px; font-weight: 900; }
    .personal-ir-kpi strong { display: block; margin-top: 4px; color: var(--ir-paper); font: 850 clamp(15px, 4vw, 21px)/1.2 ui-monospace, "Cascadia Mono", Consolas, monospace; overflow-wrap: anywhere; }

    .personal-ir-chart-grid { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
    .personal-ir-chart-card, .personal-ir-notes { min-width: 0; }
    .personal-ir-chart-note { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
    .personal-ir-bars { display: grid; gap: 11px; margin-top: 16px; }
    .personal-ir-bar-row { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 8px; align-items: center; }
    .personal-ir-bar-label { color: var(--text); font-size: 10px; font-weight: 900; line-height: 1.3; }
    .personal-ir-bar-main { min-width: 0; }
    .personal-ir-bar-track { overflow: hidden; height: 9px; border-radius: 99px; background: rgba(255,255,255,0.07); }
    .personal-ir-bar-fill { width: var(--bar-width, 0%); height: 100%; border-radius: inherit; background: var(--bar-tone, var(--ir-blue)); transform-origin: left center; animation: personal-ir-grow 500ms ease both; }
    .personal-ir-bar-value { display: flex; justify-content: space-between; gap: 8px; margin-top: 4px; color: var(--muted); font: 700 9px/1.3 ui-monospace, "Cascadia Mono", Consolas, monospace; }
    .personal-ir-bar-value strong { color: var(--text); }

    .personal-ir-flow-chart { position: relative; display: grid; gap: 10px; margin-top: 18px; }
    .personal-ir-flow-chart::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(92px + (100% - 92px) / 2); width: 1px; background: rgba(238,243,245,0.36); }
    .personal-ir-flow-row { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 8px; align-items: center; }
    .personal-ir-flow-label { color: var(--text); font-size: 10px; font-weight: 900; }
    .personal-ir-flow-lanes { display: grid; grid-template-columns: 1fr 1fr; min-width: 0; }
    .personal-ir-flow-lane { display: flex; min-width: 0; align-items: center; }
    .personal-ir-flow-lane.negative { justify-content: flex-end; }
    .personal-ir-flow-bar { width: var(--bar-width, 0%); min-width: var(--bar-min, 0); height: 18px; border-radius: 3px; background: var(--bar-tone); }
    .personal-ir-flow-lane.negative .personal-ir-flow-bar { background: var(--ir-liability); }
    .personal-ir-flow-lane.positive .personal-ir-flow-bar { background: var(--ir-blue); }
    .personal-ir-flow-value { grid-column: 2; margin-top: -5px; color: var(--muted); font: 700 9px/1.2 ui-monospace, "Cascadia Mono", Consolas, monospace; text-align: center; }

    .personal-ir-data-table { width: 100%; min-width: 0; margin-top: 16px; border-collapse: collapse; table-layout: fixed; font-size: 10px; }
    .personal-ir-data-table caption { margin-bottom: 6px; color: var(--muted); text-align: left; font-weight: 800; }
    .personal-ir-data-table th, .personal-ir-data-table td { border-top: 1px solid rgba(255,255,255,0.08); padding: 7px 4px; text-align: left; }
    .personal-ir-data-table th:last-child, .personal-ir-data-table td:last-child { text-align: right; }
    .personal-ir-data-table th { color: var(--muted); font-size: 9px; letter-spacing: 0.06em; }
    .personal-ir-data-table td { color: var(--text); }
    .personal-ir-notes-list { display: grid; gap: 8px; margin-top: 14px; }
    .personal-ir-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: start; border-top: 1px solid rgba(255,255,255,0.08); padding-top: 9px; }
    .personal-ir-note .status { min-width: 58px; text-align: center; }
    .personal-ir-note p { margin: 0; color: var(--text); font-size: 11px; line-height: 1.55; }

    @keyframes personal-ir-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
    @media (prefers-reduced-motion: reduce) { .personal-ir-bar-fill { animation: none; } }

    @media (min-width: 701px) {
      .personal-ir-cover { grid-template-columns: minmax(0, 1fr) auto; align-items: end; min-height: 300px; padding: 34px; }
      .personal-ir-seal { width: 118px; height: 118px; }
      .personal-ir-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
      .personal-ir-chart-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
      .personal-ir-chart-wide, .personal-ir-notes { grid-column: 1 / -1; }
      .personal-ir-chart-card, .personal-ir-notes { margin-top: 12px; padding: 20px; }
      .personal-ir-bar-row { grid-template-columns: 118px minmax(0, 1fr); }
      .personal-ir-flow-row { grid-template-columns: 120px minmax(0, 1fr); }
      .personal-ir-flow-chart::before { left: calc(128px + (100% - 128px) / 2); }
    }

    .investment-history-view { --ledger-red: #d95555; --ledger-gold: #d8b16a; --ledger-blue: #5fb7c8; min-width: 0; }
    .investment-history-head { border-bottom: 1px solid rgba(217,85,85,0.32); padding-bottom: 14px; }
    .investment-history-ledger { position: relative; overflow: hidden; margin-top: 14px; border: 1px solid rgba(217,85,85,0.34); border-radius: 9px; padding: 16px; background: linear-gradient(135deg, rgba(217,85,85,0.12), rgba(7,10,17,0.82) 42%, rgba(216,177,106,0.07)); }
    .investment-history-ledger::before { content: "LEDGER"; position: absolute; right: -8px; top: -22px; color: rgba(255,255,255,0.035); font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: clamp(64px, 16vw, 144px); font-weight: 900; letter-spacing: -0.08em; pointer-events: none; }
    .investment-history-ledger-head { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
    .investment-history-ledger h2 { margin: 3px 0 0; font-size: clamp(20px, 4.5vw, 28px); }
    .investment-history-ledger > .muted { position: relative; margin: 8px 0 0; }
    .investment-history-summary { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 15px; }
    .investment-history-summary article { min-width: 0; border-top: 1px solid rgba(255,255,255,0.12); padding-top: 9px; }
    .investment-history-summary article.transaction-total, .investment-history-summary article.realized-profit-loss { grid-column: 1 / -1; border-color: rgba(216,177,106,0.42); padding: 10px 11px; background: rgba(5,10,22,0.42); }
    .investment-history-summary article.realized-profit-loss { border-color: rgba(131,214,164,0.46); }
    .investment-history-summary article.realized-profit-loss.loss { border-color: rgba(255,154,146,0.58); }
    .investment-history-summary article.realized-profit-loss.profit strong, .investment-event-quick-facts .realized-profit-loss.profit strong { color: #9be5b8; }
    .investment-history-summary article.realized-profit-loss.loss strong, .investment-event-quick-facts .realized-profit-loss.loss strong { color: #ff9a92; }
    .investment-history-summary span { display: block; color: var(--muted); font-size: 11px; font-weight: 800; }
    .investment-history-summary strong { display: block; margin-top: 3px; font-size: clamp(16px, 3.7vw, 22px); overflow-wrap: anywhere; }
    .investment-history-summary small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; font-weight: 700; }
    .investment-history-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 14px; border: 1px solid rgba(255,255,255,0.1); border-radius: 9px; padding: 12px; background: rgba(5,10,22,0.58); }
    .investment-history-controls label { min-width: 0; display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 800; }
    .investment-history-controls input, .investment-history-controls select { width: 100%; min-height: 42px; border: 1px solid rgba(255,255,255,0.16); border-radius: 6px; padding: 8px 9px; color: var(--text); background: #0a111d; }
    .investment-history-controls .investment-history-search, .investment-history-controls > button { grid-column: 1 / -1; }
    .investment-history-results-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 14px; margin: 14px 2px 8px; }
    .investment-history-results-head p { margin: 0; font-size: 11px; }
    .investment-history-list { position: relative; display: grid; gap: 9px; }
    .investment-history-list::before { content: ""; position: absolute; left: 73px; top: 0; bottom: 0; width: 1px; background: linear-gradient(var(--ledger-red), rgba(216,177,106,0.22)); }
    .investment-event-card { --event-tone: var(--ledger-blue); position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; min-width: 0; }
    .investment-event-card.buy { --event-tone: #d95555; }
    .investment-event-card.sell { --event-tone: #83d6a4; }
    .investment-event-card.dividend { --event-tone: #d8b16a; }
    .investment-event-card.margin-to-cash, .investment-event-card.margin-close { --event-tone: #8bb7ff; }
    .investment-event-card::before { content: ""; position: absolute; left: 69px; top: 22px; z-index: 2; width: 9px; height: 9px; border: 2px solid #090f19; border-radius: 50%; background: var(--event-tone); box-shadow: 0 0 0 3px rgba(95,183,200,0.2); }
    .investment-event-date { padding-top: 12px; text-align: right; }
    .investment-event-date time { display: block; color: var(--text); font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 10px; font-weight: 800; }
    .investment-event-date span { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
    .investment-event-main { min-width: 0; border: 1px solid rgba(255,255,255,0.1); border-left: 3px solid var(--event-tone); border-radius: 8px; padding: 12px; background: rgba(5,10,22,0.72); }
    .investment-event-heading { display: grid; gap: 9px; min-width: 0; }
    .investment-event-heading > div { min-width: 0; }
    .investment-event-type { color: var(--event-tone); font-size: 11px; font-weight: 900; }
    .investment-event-heading h3 { margin: 3px 0 0; font-size: 16px; overflow-wrap: anywhere; }
    .investment-event-heading p { margin: 3px 0 0; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
    .investment-event-flow { justify-self: start; font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 15px; }
    .investment-event-flow.outflow { color: #ff9a92; }
    .investment-event-flow.inflow { color: #9be5b8; }
    .investment-event-quick-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 10px; overflow: hidden; border: 1px solid rgba(255,255,255,0.08); border-radius: 5px; background: rgba(255,255,255,0.08); }
    .investment-event-quick-facts > div { min-width: 0; padding: 7px; background: #090f19; }
    .investment-event-quick-facts span, .investment-event-detail-grid span { display: block; color: var(--muted); font-size: 9px; font-weight: 800; }
    .investment-event-quick-facts strong, .investment-event-detail-grid strong { display: block; margin-top: 3px; font-size: 11px; overflow-wrap: anywhere; }
    .investment-event-details { margin-top: 8px; border-top: 1px solid rgba(255,255,255,0.08); padding-top: 8px; }
    .investment-event-details summary { min-height: 36px; display: flex; align-items: center; color: var(--muted); cursor: pointer; font-size: 11px; font-weight: 800; }
    .investment-event-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 8px 0 2px; }
    .investment-event-detail-grid > div { min-width: 0; border-left: 1px solid rgba(255,255,255,0.1); padding-left: 8px; }
    .investment-history-empty { border: 1px dashed rgba(216,177,106,0.36); border-radius: 8px; padding: 28px 18px; text-align: center; background: rgba(216,177,106,0.05); }
    .investment-history-empty p { margin: 6px 0 0; color: var(--muted); }
    .investment-history-load-more { width: 100%; margin-top: 12px; min-height: 46px; }

    @media (min-width: 701px) {
      .investment-history-summary { grid-template-columns: repeat(6, minmax(0, 1fr)); }
      .investment-history-summary article { grid-column: span 2; }
      .investment-history-summary article.transaction-total, .investment-history-summary article.realized-profit-loss { grid-column: span 3; }
      .investment-history-controls { grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(120px, 0.7fr)); }
      .investment-history-controls .investment-history-search, .investment-history-controls > button { grid-column: auto; }
      .investment-event-card { grid-template-columns: 86px minmax(0, 1fr); gap: 22px; }
      .investment-history-list::before { left: 96px; }
      .investment-event-card::before { left: 92px; }
      .investment-event-heading { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
      .investment-event-flow { justify-self: end; text-align: right; }
      .investment-event-quick-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
      .investment-event-detail-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    }

    @media (max-width: 700px) {
      .finance-briefing { min-height: 230px; grid-template-columns: 104px minmax(0, 1fr); padding: 12px 12px 0; }
      .finance-portrait { width: 126px; max-width: 34vw; max-height: 220px; }
      .finance-briefing-actions { display: grid; grid-template-columns: 1fr; }
      .finance-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .finance-capacity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .finance-section > header { align-items: flex-start; }
      .finance-section > header > button { max-width: 46%; white-space: normal; }
    }

    @media (max-width: 390px) {
      .finance-view { overflow-x: clip; }
      .finance-briefing { grid-template-columns: 88px minmax(0, 1fr); gap: 10px; }
      .finance-portrait { width: 108px; max-width: 31vw; }
      .finance-briefing h2 { font-size: 18px; }
      .finance-briefing p:not(.label) { font-size: 12px; line-height: 1.5; }
      .finance-list-row { grid-template-columns: minmax(0, 1fr); }
      .finance-list-row > strong { text-align: left; }
      .finance-required-data { grid-template-columns: 64px minmax(0, 1fr); gap: 10px; }
      .finance-required-action { grid-column: 2; padding: 0 10px 12px 0; }
      .finance-required-action .ghost-button { width: 100%; }
      .finance-required-body { padding-right: 10px; }
      .finance-required-body dl div { grid-template-columns: 62px minmax(0, 1fr); }
      .finance-forecast-grid { height: 190px; gap: 1px; }
      .finance-forecast-bars { gap: 1px; }
      .finance-forecast-month small { display: none; }
      body.home-active .department-character-button { width: clamp(92px, 27%, 112px); }
    }

    @media (min-width: 371px) and (max-width: 560px) {
      .department-overlay-character {
        --department-character-x: 18%;
        --department-character-y: 4%;
      }
    }

    @media (max-width: 560px) {
      .ranking-summary-card .facts,
      .dividend-paycheck .facts,
      .nisa-rank .facts,
      .self-growth-rank .facts,
      .defense-rank .facts,
      #ranking-matrix-chart .facts,
      .rank-ladder-steps {
        grid-template-columns: 1fr;
      }

      .ranking-summary-card > strong {
        font-size: 19px;
      }

      .rank-current-marker b {
        max-width: 118px;
        font-size: 11px;
      }

      .rank-matrix {
        min-height: 230px;
      }

      .dividend-period-strip {
        margin-inline: -2px;
      }

      .dividend-overview-card {
        padding: 12px;
      }

      .dividend-cashflow-card {
        padding: 12px 9px;
      }

      .dividend-cashflow-rail {
        gap: 2px;
        height: 176px;
      }

      .dividend-cashflow-month > strong {
        font-size: clamp(7px, 2.1vw, 9px);
      }

      .dividend-cashflow-month > small {
        display: none;
      }

      .dividend-forecast-total {
        font-size: 32px;
      }

      .dividend-compact-stat {
        padding: 9px 8px 8px;
      }

      .dividend-compact-stat strong {
        font-size: 17px;
      }

      .dividend-breakdown-head {
        align-items: center;
      }

      .dividend-segmented {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .dividend-segmented button:last-child:nth-child(odd) {
        grid-column: 1 / -1;
      }

      .dividend-tax-genre-row {
        gap: 4px;
        padding: 7px 5px;
        font-size: 10px;
      }

      .dividend-composition-chart {
        min-height: 320px;
      }
    }

    @media (max-width: 767px) {
      .department-overlay {
        place-items: center;
        padding:
          max(12px, env(safe-area-inset-top))
          max(12px, env(safe-area-inset-right))
          max(12px, env(safe-area-inset-bottom))
          max(12px, env(safe-area-inset-left));
      }

      .department-overlay-window {
        width: min(calc(100vw - 24px), 1080px);
        max-width: 100%;
        max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        display: flex;
        flex-direction: column;
        gap: 20px;
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-gutter: stable;
        -webkit-overflow-scrolling: touch;
      }

      .department-overlay-window::before {
        inset: 6px;
      }

      .department-overlay-menu {
        width: 100%;
        min-width: 0;
        display: flex;
        flex-direction: column;
        align-content: initial;
        gap: 12px;
        padding: 16px;
        box-sizing: border-box;
      }

      .department-overlay-menu::before {
        inset: 0;
        border-radius: 0;
        background: linear-gradient(180deg, rgba(3,6,14,0.96), rgba(3,6,14,0.76));
      }

      .department-overlay-heading {
        position: sticky;
        top: 0;
        z-index: 6;
        align-items: center;
        margin: -16px -16px 0;
        padding:
          max(12px, env(safe-area-inset-top))
          12px
          10px
          16px;
        background: rgba(3,6,14,0.96);
        box-shadow: 0 1px 0 rgba(238,244,248,0.1);
        backdrop-filter: blur(12px);
      }

      .department-overlay-title-copy {
        max-width: calc(100% - 60px);
      }

      .department-overlay-menu h2 {
        font-size: clamp(23px, 7vw, 30px);
        white-space: nowrap;
        word-break: keep-all;
        overflow-wrap: normal;
      }

      .department-overlay-role {
        max-width: 100%;
        font-size: 13px;
        line-height: 1.6;
        word-break: normal;
        overflow-wrap: break-word;
      }

      .department-overlay-demo-guide {
        position: static;
        width: 100%;
        box-sizing: border-box;
      }

      .department-overlay-actions {
        width: 100%;
        min-width: 0;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        margin-top: 2px;
      }

      .department-overlay-action {
        width: 100%;
        min-width: 0;
        min-height: 64px;
        grid-template-columns: minmax(0, 1fr) 24px;
        gap: 12px;
        padding: 14px 16px;
        box-sizing: border-box;
      }

      .department-overlay-action strong {
        font-size: 15px;
        line-height: 1.35;
        word-break: keep-all;
        overflow-wrap: normal;
      }

      .department-overlay-action-note {
        display: block;
        font-size: 12px;
        line-height: 1.55;
        word-break: normal;
        overflow-wrap: break-word;
      }

      .department-overlay-action::after {
        align-self: center;
        justify-self: end;
      }

      .department-overlay-character {
        --department-character-x: 0%;
        --department-character-y: 0%;
        position: relative;
        width: 100%;
        min-width: 0;
        min-height: 180px;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        padding: 0 16px 18px;
        box-sizing: border-box;
      }

      .department-overlay-character::before {
        right: 12%;
        bottom: 70px;
        width: min(76%, 280px);
        height: 190px;
      }

      .department-overlay-character img {
        order: 1;
        position: relative;
        display: block;
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 280px;
        margin: 0 auto;
        object-fit: contain;
        object-position: center bottom;
        transform: none;
      }

      .department-overlay-line {
        order: 2;
        position: relative;
        inset: auto;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 10px 12px;
        box-sizing: border-box;
        font-size: 12px;
        line-height: 1.55;
        white-space: normal;
        word-break: normal;
        overflow-wrap: break-word;
      }

      .department-overlay-line::after {
        display: none;
      }

      .department-overlay-close {
        position: relative;
        top: auto;
        right: auto;
        flex-basis: 44px;
        width: 44px;
        min-height: 44px;
      }
    }

.asset-auth-box[hidden] {
  display: none !important;
}

/* Treasury control deck --------------------------------------------------- */
body.theme-finance {
  --accent: #ef6c63;
  --accent-soft: rgba(239,108,99,0.14);
}

.finance-view {
  --finance-red: #ef6c63;
  --finance-red-deep: #9d3139;
  --finance-red-bright: #ffaaa3;
  --finance-black: #05080e;
  --finance-panel: #0b1220;
  --finance-gold: #d7ad67;
  --finance-cyan: #6bc4d4;
  position: relative;
  isolation: auto;
}

.finance-view::before {
  position: absolute;
  z-index: -1;
  inset: 74px -80px auto;
  height: 520px;
  content: "";
  background:
    radial-gradient(circle at 16% 22%, rgba(239,108,99,0.15), transparent 32%),
    radial-gradient(circle at 82% 4%, rgba(107,196,212,0.08), transparent 27%);
  pointer-events: none;
}

.finance-view-head {
  align-items: end;
  border-bottom: 1px solid rgba(239,108,99,0.34);
  padding-bottom: 15px;
}

.finance-view-head .eyebrow {
  color: var(--finance-red-bright);
  letter-spacing: 0.12em;
}

.finance-view-head h1 {
  margin-top: 4px;
  font-size: clamp(30px, 5vw, 50px);
  line-height: 1;
}

.finance-view-lead {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.finance-briefing {
  min-height: 360px;
  grid-template-columns: minmax(220px, 0.38fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  border-color: rgba(239,108,99,0.4);
  border-radius: 3px 24px 3px 3px;
  padding: 0;
  background:
    linear-gradient(118deg, rgba(239,108,99,0.12), transparent 41%),
    linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,0.025) 50%, transparent 50.2%),
    var(--finance-black);
  box-shadow: 0 28px 80px rgba(0,0,0,0.34), inset 0 1px rgba(255,255,255,0.04);
}

.finance-portrait-stage {
  position: relative;
  display: grid;
  min-height: 360px;
  align-items: end;
  justify-items: center;
  overflow: hidden;
  border-right: 1px solid rgba(239,108,99,0.2);
  background:
    linear-gradient(180deg, transparent 62%, rgba(239,108,99,0.15)),
    repeating-linear-gradient(0deg, transparent 0 35px, rgba(255,255,255,0.035) 35px 36px);
}

.finance-portrait-stage::before,
.finance-portrait-stage::after {
  position: absolute;
  width: min(29vw, 270px);
  aspect-ratio: 1;
  border: 1px solid rgba(239,108,99,0.32);
  border-radius: 50%;
  content: "";
}

.finance-portrait-stage::before {
  bottom: 24px;
  box-shadow: 0 0 0 24px rgba(239,108,99,0.035), 0 0 70px rgba(239,108,99,0.12);
}

.finance-portrait-stage::after {
  bottom: 49px;
  width: min(22vw, 205px);
  border-style: dashed;
}

.finance-portrait-code {
  position: absolute;
  z-index: 2;
  top: 18px;
  left: 18px;
  color: rgba(255,255,255,0.42);
  font: 800 10px/1 ui-monospace, "Cascadia Mono", monospace;
  letter-spacing: 0.18em;
}

.finance-portrait {
  position: relative;
  z-index: 1;
  width: min(100%, 270px);
  max-width: none;
  max-height: 350px;
  filter: drop-shadow(0 24px 28px rgba(0,0,0,0.72));
}

.finance-briefing-copy {
  position: relative;
  display: grid;
  align-content: center;
  min-width: 0;
  padding: clamp(24px, 4vw, 52px);
}

.finance-command-decision {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 16px;
  width: min(100%, 480px);
  margin-bottom: 18px;
  border-top: 1px solid rgba(239,108,99,0.58);
  border-bottom: 1px solid rgba(239,108,99,0.2);
  padding: 10px 0;
}

.finance-command-decision span,
.finance-command-decision small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.finance-command-decision strong,
.finance-command-decision b {
  justify-self: end;
  color: var(--ink);
  font-size: 13px;
}

.finance-command-decision b {
  color: var(--finance-red-bright);
  font: 900 clamp(20px, 3vw, 32px)/1.1 ui-monospace, "Cascadia Mono", monospace;
}

.finance-command-decision.is-ready strong { color: var(--ok); }
.finance-command-decision.is-alert strong,
.finance-command-decision.is-alert b { color: var(--finance-red-bright); }
.finance-command-decision.is-unknown strong { color: var(--warn); }

.finance-briefing-copy > .label {
  color: var(--finance-gold);
  font-size: 10px;
  letter-spacing: 0.12em;
}

.finance-briefing h2 {
  max-width: 720px;
  margin: 7px 0 10px;
  font-size: clamp(24px, 3.3vw, 42px);
  line-height: 1.15;
}

.finance-briefing-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 230px));
  gap: 8px;
  margin-top: 20px;
}

.finance-briefing-actions button { min-height: 48px; }

.finance-briefing-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-top: 10px;
}

.finance-briefing-links .ghost-button {
  min-height: 34px;
  border: 0;
  padding: 4px 0;
  color: var(--muted);
  background: transparent;
  box-shadow: none;
  text-decoration: underline;
  text-decoration-color: rgba(239,108,99,0.36);
  text-underline-offset: 4px;
}

.finance-past-materials {
  margin-top: 12px;
  border: 1px solid rgba(239, 108, 99, 0.24);
  border-radius: 8px;
}

.finance-past-materials > summary {
  padding: 14px;
  color: var(--muted);
  cursor: pointer;
  line-height: 1.5;
}

.finance-past-materials > summary:focus-visible {
  outline: 2px solid var(--finance-gold);
  outline-offset: 3px;
}

.finance-past-materials .finance-briefing-links {
  display: grid;
  margin: 0;
  padding: 0 14px 14px;
}

.finance-past-materials .ghost-button {
  min-height: 44px;
  text-align: left;
}

.finance-command-rail {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 3px;
  background: rgba(255,255,255,0.1);
}

.finance-summary-basis {
  margin: 8px 2px 0;
  font-size: 11px;
}

.finance-payroll-ocr {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-top: 10px;
  border: 1px solid rgba(107,196,212,0.3);
  border-left: 3px solid var(--finance-cyan);
  border-radius: 3px 14px 3px 3px;
  padding: 16px 18px;
  background:
    linear-gradient(100deg, rgba(107,196,212,0.1), transparent 44%),
    rgba(7,12,21,0.96);
}

.finance-payroll-ocr-copy { min-width: 0; }
.finance-payroll-ocr-copy .label { color: var(--finance-cyan); }
.finance-payroll-ocr-copy h2 { margin: 4px 0 5px; font-size: clamp(18px, 3vw, 24px); }
.finance-payroll-ocr-copy p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.finance-payroll-ocr-action { display: grid; justify-items: stretch; gap: 5px; min-width: 190px; }
.finance-payroll-ocr-action small { color: var(--muted); font-size: 10px; text-align: center; }

.payroll-ocr-card { width: min(760px, 100%); }
.payroll-ocr-source {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 7px;
  padding: 13px;
  background: rgba(5,10,22,0.72);
}
.payroll-ocr-source h3 { margin: 0; font-size: 15px; }
.payroll-ocr-source p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.payroll-file-button { position: relative; display: grid; }
.payroll-file-button span {
  display: grid;
  min-height: 44px;
  place-items: center;
  border: 1px solid rgba(107,196,212,0.48);
  border-radius: 6px;
  padding: 9px 14px;
  color: var(--ink);
  background: rgba(107,196,212,0.1);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
.payroll-file-button:focus-within span { outline: 2px solid var(--finance-cyan); outline-offset: 2px; }
.payroll-file-button input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.payroll-ocr-preview {
  position: relative;
  overflow: hidden;
  min-height: 180px;
  margin: 12px 0 0;
  border: 1px solid rgba(107,196,212,0.3);
  border-radius: 7px;
  background: #03070c;
}
.payroll-ocr-preview[hidden] { display: none; }
.payroll-ocr-preview img { display: block; width: 100%; max-height: 360px; object-fit: contain; }
.payroll-ocr-preview figcaption {
  position: absolute;
  right: 8px;
  bottom: 8px;
  max-width: calc(100% - 16px);
  border-radius: 3px;
  padding: 4px 7px;
  color: var(--ink);
  background: rgba(3,7,12,0.88);
  font: 800 10px/1.3 ui-monospace, "Cascadia Mono", monospace;
  overflow-wrap: anywhere;
}
.payroll-scan-line {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  opacity: 0;
  background: var(--finance-cyan);
  box-shadow: 0 0 16px 4px rgba(107,196,212,0.38);
  pointer-events: none;
}
.payroll-ocr-preview.is-recognizing .payroll-scan-line { opacity: 1; animation: payroll-scan 2.2s ease-in-out infinite; }
@keyframes payroll-scan { 0%, 100% { transform: translateY(10px); } 50% { transform: translateY(330px); } }
@media (prefers-reduced-motion: reduce) { .payroll-ocr-preview.is-recognizing .payroll-scan-line { animation: none; top: 50%; } }

.payroll-ocr-progress { display: grid; gap: 7px; margin-top: 12px; }
.payroll-ocr-progress[hidden] { display: none; }
.payroll-ocr-progress div { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; font-weight: 800; }
.payroll-ocr-progress strong { color: var(--finance-cyan); font-family: ui-monospace, "Cascadia Mono", monospace; }
.payroll-ocr-progress progress { width: 100%; height: 7px; accent-color: var(--finance-cyan); }
.payroll-recognize-button { width: 100%; margin-top: 2px; }
.payroll-ocr-card > .form-error { margin-top: 7px; }

.payroll-ocr-result { display: grid; gap: 13px; margin-top: 16px; border-top: 1px solid rgba(107,196,212,0.26); padding-top: 16px; }
.payroll-ocr-result[hidden] { display: none; }
.payroll-result-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.payroll-result-head h3 { margin: 3px 0 0; font-size: 19px; }
.payroll-result-warning { margin: 0; border-left: 2px solid var(--finance-gold); padding-left: 9px; color: #ffe2ad; font-size: 11px; line-height: 1.55; }
.payroll-result-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.payroll-result-fields .field { min-width: 0; }
.payroll-net-pay { grid-column: 1 / -1; }
.payroll-net-pay input { border-color: rgba(107,196,212,0.56); font-size: 18px; font-weight: 900; }
.payroll-itemized-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.payroll-itemized-grid section { min-width: 0; border: 1px solid rgba(255,255,255,0.09); border-radius: 6px; padding: 10px; background: rgba(5,10,22,0.58); }
.payroll-itemized-grid h4 { margin: 0 0 7px; color: var(--muted); font-size: 11px; }
.payroll-itemized-grid dl { display: grid; gap: 4px; margin: 0; }
.payroll-itemized-grid dl div { display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid rgba(255,255,255,0.07); padding-top: 5px; font-size: 11px; }
.payroll-itemized-grid dt { color: var(--muted); }
.payroll-itemized-grid dd { margin: 0; color: var(--ink); font-family: ui-monospace, "Cascadia Mono", monospace; font-weight: 800; }
.payroll-itemized-grid .payroll-empty { color: var(--muted); font-size: 11px; }
.payroll-raw-text textarea { resize: vertical; font-family: ui-monospace, "Cascadia Mono", monospace; font-size: 11px; line-height: 1.55; }
.payroll-ocr-warnings { display: grid; gap: 4px; margin: 0; padding: 9px 9px 9px 28px; color: #ffbbb5; background: rgba(239,108,99,0.09); font-size: 11px; }
.payroll-ocr-warnings[hidden] { display: none; }
.payroll-result-actions { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; }

.finance-command-node {
  position: relative;
  min-width: 0;
  padding: 12px 16px;
  background: rgba(7,12,21,0.96);
}

.finance-command-node:not(:last-child)::after {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: -6px;
  width: 10px;
  height: 10px;
  border-top: 1px solid rgba(239,108,99,0.6);
  border-right: 1px solid rgba(239,108,99,0.6);
  content: "";
  transform: translateY(-50%) rotate(45deg);
}

.finance-command-node span,
.finance-command-node small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.finance-command-node strong {
  display: block;
  margin: 5px 0 2px;
  font: 900 clamp(15px, 2vw, 21px)/1.1 ui-monospace, "Cascadia Mono", monospace;
  overflow-wrap: anywhere;
}

.finance-command-node.is-result {
  background: linear-gradient(120deg, rgba(239,108,99,0.16), rgba(7,12,21,0.96));
}

.finance-command-node.is-alert strong { color: var(--finance-red-bright); }

.finance-section-stack {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  grid-template-areas:
    "capacity capacity"
    "commitment commitment"
    "forecast forecast"
    "review review";
  gap: 10px;
  margin-top: 10px;
}

.finance-section {
  border-left: 1px solid rgba(238,244,248,0.12);
  border-radius: 3px 12px 3px 3px;
  padding: clamp(14px, 2vw, 20px);
  background:
    linear-gradient(145deg, rgba(239,108,99,0.045), transparent 42%),
    rgba(11,18,32,0.92);
  box-shadow: 0 18px 42px rgba(0,0,0,0.22);
}

.finance-capacity-section { grid-area: capacity; }
.finance-commitment-section { grid-area: commitment; }
.finance-forecast-section { grid-area: forecast; }
.finance-review-section { grid-area: review; }

.finance-section h2 { font-size: clamp(17px, 3vw, 22px); }

.finance-section-note {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.finance-section-mark {
  width: 31px;
  height: 22px;
  border-color: rgba(239,108,99,0.48);
  border-radius: 2px;
  color: #ffd4cf;
  background: rgba(239,108,99,0.1);
  font-size: 10px;
}

.finance-metric-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(238,244,248,0.09);
  border-radius: 3px;
  background: rgba(238,244,248,0.09);
}

.finance-metric,
.finance-capacity-card {
  border: 0;
  border-radius: 0;
  padding: 13px;
  background: rgba(5,10,22,0.78);
}

.finance-metric strong,
.finance-capacity-card strong {
  font: 900 clamp(17px, 3vw, 25px)/1.15 ui-monospace, "Cascadia Mono", monospace;
}

.finance-metric.important {
  grid-column: 1 / -1;
  box-shadow: inset 3px 0 var(--finance-red);
  background: linear-gradient(110deg, rgba(239,108,99,0.15), rgba(5,10,22,0.78));
}

.finance-metric.alert,
.finance-capacity-card.alert { background: rgba(239,108,99,0.14); }

.finance-capacity-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 3px;
  background: rgba(255,255,255,0.09);
}

.finance-capacity-card {
  position: relative;
  min-height: 112px;
  padding-top: 30px;
}

.finance-capacity-card::before {
  position: absolute;
  top: 11px;
  left: 13px;
  color: rgba(255,255,255,0.27);
  content: attr(data-step);
  font: 800 9px/1 ui-monospace, "Cascadia Mono", monospace;
  letter-spacing: 0.1em;
}

.finance-capacity-card:not(:last-child)::after {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: -5px;
  width: 8px;
  height: 8px;
  border-top: 1px solid rgba(239,108,99,0.45);
  border-right: 1px solid rgba(239,108,99,0.45);
  content: "";
  transform: rotate(45deg);
}

.finance-fold { padding: 0; }
.finance-fold summary { min-height: 62px; padding: 14px 18px; }
.finance-fold[open] .finance-list { padding: 0 18px 18px; }

.finance-list-row { border-radius: 3px; padding: 11px; background: rgba(5,10,22,0.58); }

.finance-forecast-grid {
  height: 260px;
  gap: 4px;
  padding: 22px 6px 0;
  border-bottom: 1px solid rgba(107,196,212,0.26);
  background: repeating-linear-gradient(0deg, transparent 0 51px, rgba(255,255,255,0.04) 51px 52px);
}

.finance-modal { z-index: 1000; }
.finance-toast { z-index: 1010; }

@media (max-width: 900px) {
  .finance-section-stack {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "capacity" "commitment" "forecast" "review";
  }

  .finance-briefing {
    min-height: 330px;
    grid-template-columns: minmax(180px, 0.33fr) minmax(0, 1fr);
  }

  .finance-portrait-stage { min-height: 330px; }
  .finance-portrait { max-height: 315px; }
  .finance-capacity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .finance-view-head {
    flex-direction: row;
    align-items: flex-end;
  }

  .finance-view-head .back-button {
    width: auto;
    flex: 0 0 auto;
    text-align: center;
  }

  .finance-view-lead { max-width: 260px; }

  .finance-briefing {
    min-height: 0;
    grid-template-columns: 112px minmax(0, 1fr);
    border-radius: 3px 16px 3px 3px;
    padding: 0;
  }

  .finance-portrait-stage { min-height: 286px; }
  .finance-portrait-stage::before { width: 132px; bottom: 18px; }
  .finance-portrait-stage::after { width: 94px; bottom: 37px; }
  .finance-portrait-code { top: 12px; left: 10px; font-size: 8px; }
  .finance-portrait { width: 140px; max-width: 132%; max-height: 260px; }
  .finance-briefing-copy { padding: 18px 14px; }
  .finance-command-decision { margin-bottom: 13px; padding: 8px 0; }
  .finance-command-decision b { font-size: 18px; }
  .finance-briefing h2 { font-size: clamp(18px, 5.3vw, 26px); }
  .finance-briefing p:not(.label) { font-size: 12px; line-height: 1.5; }
  .finance-briefing-actions { grid-template-columns: minmax(0, 1fr); margin-top: 14px; }
  .finance-briefing-actions button { min-height: 44px; }
  .finance-briefing-links { display: grid; }
  .finance-briefing-links .ghost-button { justify-content: flex-start; min-height: 30px; text-align: left; }
  .finance-command-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-command-node:nth-child(2)::after { display: none; }
  .finance-capacity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-payroll-ocr { grid-template-columns: minmax(0, 1fr); }
  .finance-payroll-ocr-action { min-width: 0; }
  .payroll-ocr-source { grid-template-columns: minmax(0, 1fr); }
  .payroll-result-actions { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 430px) {
  .payroll-result-fields,
  .payroll-itemized-grid { grid-template-columns: minmax(0, 1fr); }
  .payroll-net-pay { grid-column: auto; }
  .finance-view-head h1 { font-size: 34px; }
  .finance-view-lead { display: none; }
  .finance-briefing { grid-template-columns: 92px minmax(0, 1fr); }
  .finance-portrait-stage { min-height: 300px; }
  .finance-portrait { width: 118px; max-width: 140%; max-height: 245px; }
  .finance-briefing-copy { padding: 15px 11px; }
  .finance-command-decision { gap: 2px 8px; }
  .finance-command-decision span,
  .finance-command-decision small { font-size: 8px; }
  .finance-command-decision strong { font-size: 11px; }
  .finance-briefing h2 { font-size: 18px; }
  .finance-briefing-links { gap: 1px; }
  .finance-command-node { padding: 10px; }
  .finance-command-node strong { font-size: 14px; }
  .finance-section { padding: 12px; }
  .finance-fold { padding: 0; }
  .finance-metric strong,
  .finance-capacity-card strong { font-size: 16px; }
  .finance-capacity-grid { grid-template-columns: minmax(0, 1fr); }
  .finance-capacity-card,
  .finance-capacity-card:last-child { grid-column: auto; min-height: 92px; }
  .finance-capacity-card:not(:last-child)::after { top: auto; right: 18px; bottom: -4px; transform: rotate(135deg); }
}

.finance-ledger-view,
.liability-ledger-card {
  --ledger-grid: rgba(161, 184, 207, 0.16);
  --ledger-header: #101b2a;
  --ledger-cell: rgba(8, 16, 27, 0.88);
  --ledger-accent: #5fb7c8;
  --ledger-inflow: #83d6a4;
  --ledger-outflow: #ee8d7f;
}

.finance-ledger-head { align-items: end; }

.finance-ledger-overview {
  padding: 22px;
  border: 1px solid rgba(95, 183, 200, 0.36);
  border-left: 4px solid var(--ledger-accent);
  background: linear-gradient(115deg, rgba(27, 49, 68, 0.9), rgba(8, 16, 27, 0.96));
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
}

.finance-ledger-overview > header,
.liability-ledger-card .personal-ir-section-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.finance-ledger-overview h2 { margin: 3px 0 8px; }

.finance-ledger-summary,
.liability-ledger-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 18px;
  overflow: hidden;
  border: 1px solid var(--ledger-grid);
  background: var(--ledger-grid);
}

.finance-ledger-summary article,
.liability-ledger-summary article {
  min-width: 0;
  padding: 14px;
  background: rgba(9, 18, 30, 0.94);
}

.finance-ledger-summary span,
.liability-ledger-summary span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 0.75rem;
}

.finance-ledger-summary strong,
.liability-ledger-summary strong {
  display: block;
  overflow-wrap: anywhere;
  font-family: "IBM Plex Mono", "Consolas", monospace;
  font-size: clamp(0.92rem, 2.5vw, 1.18rem);
  font-variant-numeric: tabular-nums;
}

.finance-ledger-controls {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(120px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  margin: 16px 0;
  padding: 14px;
  border: 1px solid var(--line);
  background: rgba(9, 18, 30, 0.78);
}

.finance-ledger-controls label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.74rem;
}

.finance-ledger-controls input,
.finance-ledger-controls select {
  width: 100%;
  min-height: 42px;
}

.finance-ledger-results-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin: 0 2px 10px;
}

.ledger-sheet-wrap {
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--ledger-grid);
  background: var(--ledger-cell);
  scrollbar-color: rgba(95, 183, 200, 0.6) rgba(8, 16, 27, 0.85);
}

.ledger-sheet {
  width: 100%;
  min-width: 900px;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
}

.ledger-sheet caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.ledger-sheet th,
.ledger-sheet td {
  padding: 10px 12px;
  border-right: 1px solid var(--ledger-grid);
  border-bottom: 1px solid var(--ledger-grid);
  white-space: nowrap;
}

.ledger-sheet th {
  position: sticky;
  top: 0;
  z-index: 2;
  color: #cbd9e8;
  background: var(--ledger-header);
  text-align: left;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
}

.ledger-sheet th:first-child,
.ledger-sheet td:first-child { position: sticky; left: 0; }
.ledger-sheet th:first-child { z-index: 3; }
.ledger-sheet td:first-child { z-index: 1; background: #0d1826; }
.ledger-sheet tbody tr:hover td { background-color: rgba(95, 183, 200, 0.08); }
.ledger-sheet tbody tr:hover td:first-child { background-color: #132436; }

.ledger-sheet .number {
  text-align: right;
  font-family: "IBM Plex Mono", "Consolas", monospace;
}

.ledger-sheet .ledger-primary,
.ledger-sheet .ledger-balance {
  color: #f0f5fa;
  font-weight: 700;
}

.ledger-sheet tfoot th,
.ledger-sheet tfoot td {
  color: #f0f5fa;
  background: #132437;
  font-weight: 700;
}

.ledger-row-alert td {
  box-shadow: inset 0 1px rgba(238, 141, 127, 0.13), inset 0 -1px rgba(238, 141, 127, 0.13);
}

.ledger-state,
.ledger-section {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid rgba(174, 185, 199, 0.25);
  color: #cbd5df;
  background: rgba(174, 185, 199, 0.08);
  font-size: 0.68rem;
}

.ledger-section.operating { border-color: rgba(131, 214, 164, 0.35); color: var(--ledger-inflow); }
.ledger-section.investing { border-color: rgba(210, 154, 85, 0.4); color: #e1b97f; }
.ledger-section.financing { border-color: rgba(139, 183, 255, 0.38); color: #9ec3ff; }
.ledger-inflow { color: var(--ledger-inflow); }
.ledger-outflow { color: var(--ledger-outflow); }

.finance-ledger-empty {
  padding: 36px 20px;
  border: 1px dashed rgba(174, 185, 199, 0.3);
  text-align: center;
}

.finance-ledger-empty p { margin: 8px 0 0; color: var(--muted); }
.finance-ledger-load-more { display: block; margin: 16px auto 0; }
.finance-ledger-load-more[hidden] { display: none; }
.liability-ledger-card { border-top: 3px solid var(--ir-liability); }
.liability-ledger-card .ledger-sheet-wrap { margin-top: 14px; }
.liability-explainer {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  border: 1px solid rgba(95, 183, 200, 0.32);
  border-radius: 8px;
  padding: 12px;
  background: linear-gradient(135deg, rgba(95, 183, 200, 0.11), rgba(9, 18, 30, 0.84));
  color: var(--muted);
}

.liability-explainer strong {
  flex-basis: 100%;
  color: var(--ink);
  text-align: center;
}

.liability-explainer span {
  border: 1px solid var(--ledger-grid);
  border-radius: 7px;
  padding: 6px 9px;
  background: rgba(9, 18, 30, 0.92);
  color: var(--ink);
  font-weight: 850;
}

.liability-explainer b { color: var(--ledger-accent); }
.liability-explainer small { flex-basis: 100%; text-align: center; }

.liability-repayment-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.liability-repayment-card {
  min-width: 0;
  border: 1px solid var(--ledger-grid);
  border-left: 4px solid var(--ledger-accent);
  border-radius: 8px;
  padding: 14px;
  background: rgba(9, 18, 30, 0.92);
}

.liability-repayment-card.is-overdue { border-left-color: var(--ledger-outflow); }

.liability-repayment-card > header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
}

.liability-repayment-card h3 { margin: 3px 0 0; font-size: 1rem; }
.liability-kind { color: var(--muted); font-size: 0.7rem; font-weight: 850; }

.liability-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 6px;
  margin-top: 12px;
}

.liability-flow > div {
  min-width: 0;
  border: 1px solid var(--ledger-grid);
  border-radius: 7px;
  padding: 9px 7px;
  background: rgba(5, 12, 22, 0.78);
}

.liability-flow > div span,
.liability-meta span {
  display: block;
  color: var(--muted);
  font-size: 0.68rem;
}

.liability-flow > div strong {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
  font-family: "IBM Plex Mono", "Consolas", monospace;
  font-size: clamp(0.78rem, 2.3vw, 0.95rem);
}

.liability-flow-current {
  border-color: rgba(239, 188, 104, 0.38) !important;
  background: rgba(239, 188, 104, 0.08) !important;
}

.liability-flow-operator {
  align-self: center;
  color: var(--ledger-accent);
  font-size: 1rem;
  font-weight: 950;
}

.liability-progress {
  height: 6px;
  margin-top: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(238, 244, 248, 0.09);
}

.liability-progress span {
  display: block;
  width: var(--liability-progress);
  height: 100%;
  background: linear-gradient(90deg, var(--ledger-accent), var(--ledger-inflow));
}

.liability-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 10px;
}

.liability-meta > div {
  min-width: 0;
  border-top: 1px solid var(--ledger-grid);
  padding-top: 7px;
}

.liability-meta strong {
  display: block;
  margin-top: 3px;
  overflow-wrap: anywhere;
  font-size: 0.78rem;
}

.liability-formula {
  margin: 10px 0 0;
  color: var(--muted);
  font-family: "IBM Plex Mono", "Consolas", monospace;
  font-size: 0.72rem;
  line-height: 1.5;
}

.liability-ledger-desktop { margin-top: 14px; }
.liability-ledger-sheet { min-width: 780px; }
@media (max-width: 820px) {
  .liability-repayment-list { grid-template-columns: 1fr; }
  .liability-ledger-desktop { display: none; }
}

@media (max-width: 420px) {
  .liability-flow { gap: 4px; }
  .liability-flow > div { padding: 8px 5px; }
  .liability-flow > div strong { font-size: 0.72rem; }
  .liability-flow-operator { font-size: 0.88rem; }
  .liability-meta { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .finance-ledger-summary,
  .liability-ledger-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .finance-ledger-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .finance-ledger-search,
  .finance-ledger-controls .ghost-button { grid-column: 1 / -1; }

  .finance-ledger-results-head { display: block; }

  .ledger-sheet-wrap {
    margin-inline: -14px;
    border-inline: 0;
  }
}

@media (max-width: 480px) {
  .finance-ledger-summary article,
  .liability-ledger-summary article { padding: 11px; }

  .finance-ledger-controls { grid-template-columns: 1fr; }

  .finance-ledger-search,
  .finance-ledger-controls .ghost-button { grid-column: auto; }
}

.personal-ir-history-index {
  margin-top: 16px;
  border: 1px solid rgba(95, 183, 200, 0.3);
  border-left: 4px solid var(--ir-blue);
  padding: clamp(16px, 4vw, 28px);
  background:
    linear-gradient(135deg, rgba(95, 183, 200, 0.1), transparent 42%),
    rgba(5, 10, 22, 0.74);
}

.personal-ir-history-index > header,
.personal-ir-history-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.personal-ir-history-index h2,
.personal-ir-history-heading h3 {
  margin: 4px 0 0;
}

.personal-ir-history-guide {
  max-width: 720px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}

.personal-ir-history-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

.personal-ir-history-card {
  display: grid;
  grid-template-columns: minmax(130px, 0.32fr) minmax(0, 1fr);
  border: 1px solid rgba(255, 255, 255, 0.11);
  background: rgba(8, 17, 29, 0.92);
}

.personal-ir-history-archive > summary {
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  color: var(--muted);
  cursor: pointer;
  line-height: 1.6;
}

.personal-ir-history-archive > summary:focus-visible {
  outline: 2px solid var(--accent, #5fb7c8);
  outline-offset: 3px;
}

.personal-ir-history-period {
  display: grid;
  align-content: center;
  gap: 8px;
  border-right: 1px solid rgba(95, 183, 200, 0.22);
  padding: 18px;
  background: rgba(95, 183, 200, 0.08);
}

.personal-ir-history-period span,
.personal-ir-history-heading p,
.personal-ir-history-scope {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

.personal-ir-history-period strong {
  color: var(--ir-paper);
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: 14px;
}

.personal-ir-history-body {
  min-width: 0;
  padding: 18px;
}

.personal-ir-history-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 16px 0 0;
  background: rgba(255, 255, 255, 0.09);
}

.personal-ir-history-facts div {
  min-width: 0;
  padding: 10px;
  background: #0a1421;
}

.personal-ir-history-facts dt {
  color: var(--muted);
  font-size: 10px;
}

.personal-ir-history-facts dd {
  margin: 5px 0 0;
  color: var(--text);
  font: 800 12px/1.3 ui-monospace, "Cascadia Mono", Consolas, monospace;
  overflow-wrap: anywhere;
}

.personal-ir-history-scope {
  margin-top: 12px;
}

.personal-ir-history-open {
  width: 100%;
  margin-top: 14px;
}

.personal-ir-history-empty {
  border: 1px dashed rgba(95, 183, 200, 0.32);
  padding: 30px 18px;
  text-align: center;
}

.personal-ir-history-empty p {
  margin: 8px 0 0;
  color: var(--muted);
}

/* Treasury evidence rail: verified income, asset history, and outflow records. */
.finance-records {
  position: relative;
  margin-top: 12px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 3px 16px 3px 3px;
  padding: clamp(16px, 2.4vw, 24px);
  background:
    linear-gradient(120deg, rgba(107, 196, 212, 0.055), transparent 36%),
    linear-gradient(300deg, rgba(239, 108, 99, 0.055), transparent 42%),
    rgba(5, 10, 18, 0.92);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.26);
}

.finance-records-head {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(90px, 1fr);
  align-items: end;
  gap: 20px;
}

.finance-records-head .label { color: var(--finance-gold); }
.finance-records-head h2 { margin: 4px 0 5px; font-size: clamp(20px, 3vw, 28px); }
.finance-records-head p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

.finance-records-rule {
  height: 1px;
  margin-bottom: 8px;
  background: linear-gradient(90deg, rgba(239,108,99,0.55), rgba(107,196,212,0.42), transparent);
}

.finance-record-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}

.finance-record-grid::before {
  position: absolute;
  z-index: 0;
  top: 13px;
  right: 7%;
  left: 7%;
  height: 1px;
  background: linear-gradient(90deg, var(--finance-cyan), var(--finance-gold), var(--finance-red-bright));
  content: "";
  opacity: 0.55;
}

.finance-record-card {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 344px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-top-color: rgba(255, 255, 255, 0.18);
  border-radius: 3px 12px 3px 3px;
  padding: 34px 15px 15px;
  background: rgba(9, 16, 28, 0.95);
  box-shadow: inset 0 1px rgba(255,255,255,0.025);
}

.finance-record-card::before {
  position: absolute;
  top: 5px;
  left: 14px;
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--finance-cyan);
  background: #08111d;
  content: attr(data-register);
  font: 800 7px/1 ui-monospace, "Cascadia Mono", monospace;
}

.finance-asset-record::before { color: var(--finance-gold); }
.finance-expense-record::before { color: var(--finance-red-bright); }

.finance-record-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  min-height: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding-bottom: 10px;
}

.finance-record-card > header .label { color: var(--muted); font-size: 9px; letter-spacing: 0.12em; }
.finance-record-card > header h3 { margin: 3px 0 0; font-size: 15px; }
.finance-record-card > header .ghost-button { min-height: 32px; padding: 6px 9px; font-size: 10px; white-space: nowrap; }
#finance-payroll-ocr-title { margin: 9px 0 -5px; color: var(--finance-cyan); font-size: 9px; font-weight: 800; letter-spacing: 0.06em; }
.finance-record-content { min-height: 235px; }

.finance-record-primary {
  display: grid;
  gap: 5px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: 16px 0 13px;
}

.finance-record-primary span,
.finance-record-primary small,
.finance-record-note {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.finance-record-primary strong {
  color: var(--ink);
  font: 900 clamp(22px, 3vw, 31px)/1.08 ui-monospace, "Cascadia Mono", Consolas, monospace;
  letter-spacing: -0.04em;
}

.finance-salary-record .finance-record-primary strong { color: #a9edf7; }
.finance-asset-record .finance-record-primary strong { color: #ffe0a1; }

.finance-record-facts {
  display: grid;
  gap: 1px;
  margin: 10px 0 0;
  background: rgba(255,255,255,0.07);
}

.finance-record-facts div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 9px;
  background: #08111d;
}

.finance-record-facts dt { color: var(--muted); font-size: 10px; }
.finance-record-facts dd { margin: 0; color: var(--ink); font: 800 11px/1.3 ui-monospace, "Cascadia Mono", monospace; text-align: right; }
.finance-record-note { margin: 9px 0 0; }

.finance-asset-sparkline { display: block; width: 100%; height: auto; margin-top: 5px; overflow: visible; }
.finance-record-axis { stroke: rgba(255,255,255,0.14); stroke-width: 1; }
.finance-asset-area { fill: rgba(216,177,106,0.08); }
.finance-asset-line { fill: none; stroke: var(--finance-gold); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.finance-asset-point { fill: #08111d; stroke: #ffe0a1; stroke-width: 3; }
.finance-record-svg-label { fill: var(--muted); font: 800 12px/1 ui-monospace, "Cascadia Mono", monospace; }

.finance-expense-overview {
  display: grid;
  grid-template-columns: minmax(112px, 0.72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: 13px;
  min-height: 235px;
  padding-top: 13px;
}

.finance-expense-donut {
  position: relative;
  display: grid;
  width: min(132px, 100%);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background: var(--expense-segments);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.08), 0 16px 36px rgba(0,0,0,0.28);
}

.finance-expense-donut::after {
  position: absolute;
  inset: 21%;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: inherit;
  background: #08111d;
  content: "";
}

.finance-expense-donut div { position: relative; z-index: 1; display: grid; gap: 2px; text-align: center; }
.finance-expense-donut strong { font: 900 16px/1 ui-monospace, "Cascadia Mono", monospace; }
.finance-expense-donut span { color: var(--muted); font-size: 9px; font-weight: 800; }
.finance-expense-copy { min-width: 0; }
.finance-expense-copy > p { margin: 0 0 8px; color: var(--muted); font-size: 10px; }
.finance-expense-copy ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.finance-expense-copy li { display: grid; grid-template-columns: 7px minmax(0, 1fr) auto; align-items: center; gap: 6px; font-size: 9px; }
.finance-expense-copy li i { width: 7px; height: 7px; border-radius: 50%; background: var(--record-color); }
.finance-expense-copy li span { min-width: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finance-expense-copy li strong { font: 800 9px/1.2 ui-monospace, "Cascadia Mono", monospace; }
.finance-expense-copy li small { grid-column: 2 / -1; color: var(--muted); font-size: 8px; text-align: right; }

.finance-record-empty {
  display: grid;
  min-height: 216px;
  align-content: center;
  border: 1px dashed rgba(255,255,255,0.14);
  margin-top: 13px;
  padding: 18px;
  text-align: center;
}

.finance-record-empty strong { font-size: 13px; }
.finance-record-empty p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.finance-records-privacy { margin: 12px 0 0; color: var(--muted); font-size: 10px; text-align: right; }

/* Saved statements are an archive rail, not live account cards. */
.personal-ir-history-list { gap: 22px; }

.personal-ir-fiscal-group {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 0;
}

.personal-ir-fiscal-head {
  display: grid;
  align-content: start;
  gap: 5px;
  border-top: 1px solid rgba(95,183,200,0.48);
  padding: 14px 14px 0 0;
}

.personal-ir-fiscal-head span { color: var(--ir-blue); font: 900 11px/1.2 ui-monospace, "Cascadia Mono", monospace; letter-spacing: 0.07em; }
.personal-ir-fiscal-head strong { color: var(--muted); font-size: 10px; }
.personal-ir-fiscal-track { display: grid; gap: 8px; border-left: 1px solid rgba(95,183,200,0.3); padding-left: 22px; }

.personal-ir-history-card {
  position: relative;
  grid-template-columns: 54px minmax(0, 1fr);
  border-color: rgba(255,255,255,0.1);
  border-radius: 2px 10px 2px 2px;
  background: rgba(8,17,29,0.88);
}

.personal-ir-history-marker {
  position: relative;
  display: grid;
  place-items: center;
  border-right: 1px solid rgba(95,183,200,0.2);
  color: var(--ir-blue);
  background: rgba(95,183,200,0.07);
  font: 900 13px/1 ui-monospace, "Cascadia Mono", monospace;
}

.personal-ir-history-marker i {
  position: absolute;
  top: 50%;
  left: -29px;
  width: 11px;
  height: 11px;
  border: 2px solid var(--ir-blue);
  border-radius: 50%;
  background: #07101b;
  transform: translateY(-50%);
}

.personal-ir-history-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 18px; padding: 14px 16px; }
.personal-ir-history-heading { grid-column: 1; }
.personal-ir-history-heading h3 { font-size: 15px; }
.personal-ir-history-scope { grid-column: 1; margin-top: 0; }
.personal-ir-history-open { grid-column: 2; grid-row: 1 / span 2; width: auto; min-height: 38px; margin: 0; white-space: nowrap; }

@media (max-width: 980px) {
  .finance-record-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-expense-record { grid-column: 1 / -1; min-height: 280px; }
  .finance-expense-record .finance-record-content { min-height: 170px; }
  .finance-expense-overview { grid-template-columns: 150px minmax(0, 1fr); min-height: 170px; }
}

@media (max-width: 700px) {
  .finance-records { padding: 14px 12px; }
  .finance-records-head { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .finance-records-rule { margin: 0; }
  .finance-record-grid { grid-template-columns: minmax(0, 1fr); }
  .finance-record-grid::before { top: 10px; right: auto; bottom: 10px; left: 9px; width: 1px; height: auto; background: linear-gradient(var(--finance-cyan), var(--finance-gold), var(--finance-red-bright)); }
  .finance-record-card,
  .finance-expense-record { grid-column: auto; min-height: 0; padding: 20px 12px 12px 32px; }
  .finance-record-card::before { top: 19px; left: 0; }
  .finance-record-content,
  .finance-expense-record .finance-record-content { min-height: 0; }
  .finance-expense-overview { grid-template-columns: 126px minmax(0, 1fr); min-height: 180px; }
  .finance-records-privacy { text-align: left; }

  .personal-ir-fiscal-group { grid-template-columns: minmax(0, 1fr); }
  .personal-ir-fiscal-head { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 10px 0; }
  .personal-ir-fiscal-track { padding-left: 16px; }
  .personal-ir-history-card { grid-template-columns: 42px minmax(0, 1fr); }
  .personal-ir-history-marker i { left: -23px; }
  .personal-ir-history-body { grid-template-columns: minmax(0, 1fr); }
  .personal-ir-history-heading,
  .personal-ir-history-scope,
  .personal-ir-history-open { grid-column: 1; grid-row: auto; }
  .personal-ir-history-open { width: 100%; }
}

@media (max-width: 400px) {
  .finance-record-card > header { align-items: flex-start; }
  .finance-record-card > header .ghost-button { padding-inline: 7px; }
  .finance-expense-overview { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .finance-expense-copy { width: 100%; }
}

.personal-ir-report-paper {
  --report-paper: #f1f2ee;
  --report-ink: #171b1d;
  --report-muted: #5d666a;
  --report-rule: #9ca5a5;
  width: min(920px, 100%);
  margin: 18px auto 0;
  padding: clamp(18px, 5vw, 56px);
  box-sizing: border-box;
  color: var(--report-ink);
  background:
    linear-gradient(rgba(23, 27, 29, 0.018) 1px, transparent 1px) 0 0 / 100% 26px,
    var(--report-paper);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.34);
}

.personal-ir-report-cover {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
  align-items: end;
  min-height: 220px;
  border-top: 6px solid var(--report-ink);
  border-bottom: 1px solid var(--report-ink);
  padding: 28px 0 24px;
}

.personal-ir-report-cover .personal-ir-folio {
  color: var(--report-muted);
}

.personal-ir-report-cover h2 {
  margin: 18px 0 0;
  color: var(--report-ink);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(38px, 9vw, 70px);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.personal-ir-report-cover p:last-child {
  margin: 18px 0 0;
  color: var(--report-muted);
  font-size: 13px;
}

.personal-ir-report-cover-meta {
  display: grid;
  justify-items: end;
  gap: 8px;
  text-align: right;
}

.personal-ir-report-cover-meta strong {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 18px;
}

.personal-ir-report-cover-meta > span:last-child {
  color: var(--report-muted);
  font-size: 12px;
}

.personal-ir-report-index {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 18px;
  border-block: 1px solid var(--report-rule);
}

.personal-ir-report-index span {
  padding: 11px 8px;
  color: var(--report-muted);
  font-size: 10px;
  line-height: 1.4;
  text-align: center;
}

.personal-ir-report-index span + span {
  border-left: 1px solid #c8cecc;
}

.personal-ir-statement {
  margin-top: 46px;
}

.personal-ir-statement-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 2px solid var(--report-ink);
  padding-bottom: 10px;
}

.personal-ir-statement-head > div {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.personal-ir-statement-head > div > span {
  color: var(--report-muted);
  font: 700 11px/1 ui-monospace, "Cascadia Mono", Consolas, monospace;
}

.personal-ir-statement-head h2 {
  margin: 0;
  color: var(--report-ink);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(22px, 5vw, 30px);
  letter-spacing: 0.06em;
}

.personal-ir-statement-head p,
.personal-ir-statement-note {
  margin: 0;
  color: var(--report-muted);
  font-size: 11px;
  line-height: 1.6;
  text-align: right;
}

.personal-ir-statement-note {
  margin-top: 12px;
  text-align: left;
}

.personal-ir-statement-table {
  width: 100%;
  min-width: 0;
  margin-top: 14px;
  border-collapse: collapse;
  table-layout: fixed;
  color: var(--report-ink);
  background: transparent;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.personal-ir-statement-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.personal-ir-statement-table th,
.personal-ir-statement-table td {
  border-bottom: 1px solid #c8cecc;
  padding: 9px 10px;
}

.personal-ir-statement-table thead th {
  color: var(--report-muted);
  font-size: 10px;
  font-weight: 600;
  text-align: left;
}

.personal-ir-statement-table thead th:last-child,
.personal-ir-statement-table td {
  text-align: right;
}

.personal-ir-statement-table tbody th {
  font-weight: 500;
  text-align: left;
}

.personal-ir-statement-table .statement-group th {
  border-bottom-color: var(--report-rule);
  padding-top: 18px;
  font-weight: 800;
}

.personal-ir-statement-table .statement-indent th {
  padding-left: 28px;
}

.personal-ir-statement-table .statement-subtotal th,
.personal-ir-statement-table .statement-subtotal td {
  border-top: 1px solid var(--report-ink);
  font-weight: 700;
}

.personal-ir-statement-table .statement-total th,
.personal-ir-statement-table .statement-total td {
  border-top: 2px solid var(--report-ink);
  border-bottom: 3px double var(--report-ink);
  font-weight: 800;
}

.personal-ir-statement-table .statement-unknown td {
  color: #8a4c36;
  font-weight: 700;
}

.personal-ir-report-notes ol {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: report-note;
}

.personal-ir-report-notes li {
  counter-increment: report-note;
  position: relative;
  border-bottom: 1px solid #c8cecc;
  padding: 14px 8px 14px 42px;
}

.personal-ir-report-notes li::before {
  content: counter(report-note, decimal-leading-zero);
  position: absolute;
  top: 15px;
  left: 8px;
  color: var(--report-muted);
  font: 700 10px/1 ui-monospace, "Cascadia Mono", Consolas, monospace;
}

.personal-ir-report-notes h3 {
  margin: 0;
  color: var(--report-ink);
  font-size: 13px;
}

.personal-ir-report-notes p {
  margin: 7px 0 0;
  color: var(--report-muted);
  font-size: 12px;
  line-height: 1.8;
}

.personal-ir-report-paper .liability-ledger-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 16px;
  border-color: #c8cecc;
  background: #c8cecc;
}

.personal-ir-report-paper .liability-ledger-summary article {
  background: #e5e7e2;
}

.personal-ir-report-paper .liability-ledger-summary span {
  color: var(--report-muted);
}

.personal-ir-report-paper .liability-ledger-summary strong {
  color: var(--report-ink);
}

.personal-ir-report-paper .liability-repayment-card {
  border-color: #9ca5a5;
  border-left-color: #6f4e00;
  color: var(--report-ink);
  background: #e5e7e2;
}

.personal-ir-report-paper .liability-repayment-card.is-overdue {
  border-left-color: #8a3f32;
}

.personal-ir-report-paper .liability-repayment-card h3,
.personal-ir-report-paper .liability-flow strong,
.personal-ir-report-paper .liability-meta strong {
  color: var(--report-ink);
}

.personal-ir-report-paper .liability-kind,
.personal-ir-report-paper .liability-flow > div span,
.personal-ir-report-paper .liability-meta span,
.personal-ir-report-paper .liability-formula {
  color: var(--report-muted);
}

.personal-ir-report-paper .liability-flow > div {
  border-color: #aeb6b3;
  background: #f7f7f3;
}

.personal-ir-report-paper .liability-flow-current {
  border-color: #b49a5f !important;
  background: #efe3c4 !important;
}

.personal-ir-report-paper .liability-flow-operator {
  color: #6f4e00;
}

.personal-ir-report-paper .liability-meta > div {
  border-color: #aeb6b3;
}

.personal-ir-report-paper .liability-progress {
  background: #b8bfbc;
}

.personal-ir-report-paper .ledger-sheet-wrap {
  margin-top: 14px;
  border-color: #9ca5a5;
  background: #e5e7e2;
}

.personal-ir-report-paper .ledger-sheet {
  min-width: 780px;
  color: var(--report-ink);
}

.personal-ir-report-paper .ledger-sheet th,
.personal-ir-report-paper .ledger-sheet td {
  border-color: #c8cecc;
}

.personal-ir-report-paper .ledger-sheet th {
  color: var(--report-ink);
  background: #d8ddd9;
}

.personal-ir-report-paper .ledger-sheet td,
.personal-ir-report-paper .ledger-sheet td:first-child {
  color: var(--report-ink);
  background: #f1f2ee;
}

.personal-ir-report-paper .ledger-state {
  border-color: #9ca5a5;
  color: var(--report-ink);
  background: transparent;
}

.personal-ir-report-paper .ledger-sheet tfoot th,
.personal-ir-report-paper .ledger-sheet tfoot td {
  color: var(--report-ink);
  background: #d8ddd9;
}

.task-list-intro {
  max-width: 760px;
  margin-bottom: 14px;
}

.task-list-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.task-list-summary article,
.task-department-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.task-list-summary article {
  display: grid;
  gap: 4px;
  padding: 13px 14px;
}

.task-list-summary span,
.task-department-head p {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.task-list-summary strong {
  font-size: 22px;
}

.task-department-list {
  display: grid;
  gap: 14px;
}

.task-department-section {
  overflow: hidden;
}

.task-department-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,0.035);
}

.task-department-head > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.task-department-head img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

.task-department-head p,
.task-empty p,
.pending-task-copy p {
  margin: 0;
}

.task-department-count {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 9px;
  color: var(--ink);
  background: rgba(5,10,22,0.58);
  font-size: 12px;
  font-weight: 900;
}

.pending-task-list {
  display: grid;
}

.pending-task-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border-left: 3px solid rgba(147,171,192,0.42);
}

.pending-task-card + .pending-task-card {
  border-top: 1px solid var(--line);
}

.pending-task-card.high { border-left-color: var(--danger); }
.pending-task-card.medium,
.pending-task-card.moderate { border-left-color: var(--warn); }

.pending-task-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.pending-task-copy p:last-child,
.task-empty p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.pending-task-action {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.task-empty {
  padding: 18px 16px;
}

@media (max-width: 700px) {
  .task-list-summary {
    gap: 6px;
  }

  .task-list-summary article {
    padding: 10px;
  }

  .task-list-summary strong {
    font-size: 18px;
  }

  .pending-task-card {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .pending-task-action {
    justify-content: space-between;
  }

  .pending-task-action .primary-button {
    white-space: normal;
  }

  .personal-ir-history-card {
    grid-template-columns: 1fr;
  }

  .personal-ir-history-period {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    border-right: 0;
    border-bottom: 1px solid rgba(95, 183, 200, 0.22);
    padding: 13px 14px;
  }

  .personal-ir-history-facts {
    grid-template-columns: 1fr;
  }

  .personal-ir-report-paper {
    padding: 18px 14px 32px;
  }

  .personal-ir-report-cover {
    grid-template-columns: 1fr;
    min-height: 0;
    padding-top: 20px;
  }

  .personal-ir-report-cover-meta {
    justify-items: start;
    text-align: left;
  }

  .personal-ir-report-index {
    display: flex;
    overflow-x: auto;
  }

  .personal-ir-report-index span {
    flex: 0 0 130px;
  }

  .personal-ir-statement {
    margin-top: 36px;
  }

  .personal-ir-statement-head {
    display: block;
  }

  .personal-ir-statement-head > p {
    margin-top: 8px;
    text-align: left;
  }

  .personal-ir-statement-table th,
  .personal-ir-statement-table td {
    padding-inline: 7px;
  }

  .personal-ir-report-paper .liability-ledger-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .personal-ir-report-paper .ledger-sheet-wrap {
    margin-inline: 0;
    border-inline: 1px solid #9ca5a5;
  }
}
/* Debt ledger — a D1-backed, append-only principal rail. */
.debt-ledger-view {
  --debt-red: #f07167;
  --debt-red-dark: #8f312f;
  --debt-cyan: #7dd8ec;
  --debt-gold: #f1bd62;
  position: relative;
}

.debt-ledger-view::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent 0 15%, rgba(240, 113, 103, .035) 15% 15.15%, transparent 15.15% 74%, rgba(125, 216, 236, .025) 74% 74.12%, transparent 74.12%),
    radial-gradient(circle at 8% 20%, rgba(143, 49, 47, .13), transparent 30%);
}

.debt-command-strip {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid rgba(240, 113, 103, .34);
  border-left: 4px solid var(--debt-red);
  background: linear-gradient(110deg, rgba(74, 22, 24, .42), rgba(8, 14, 21, .86) 58%);
}

.debt-command-strip h2,
.debt-entry-panel h2,
.debt-history-panel h2 {
  margin: 2px 0 4px;
}

.debt-command-strip p:last-child {
  margin: 0;
  color: var(--muted);
}

.debt-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.debt-summary-card {
  position: relative;
  min-height: 112px;
  padding: 16px;
  overflow: hidden;
  border: 1px solid rgba(125, 216, 236, .2);
  background: rgba(6, 12, 19, .86);
}

.debt-summary-card::after {
  content: attr(data-index);
  position: absolute;
  right: 9px;
  bottom: -13px;
  color: rgba(125, 216, 236, .06);
  font: 700 54px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.debt-summary-card span,
.debt-summary-card small {
  display: block;
  color: var(--muted);
}

.debt-summary-card strong {
  display: block;
  margin: 7px 0;
  color: #f7fbff;
  font-size: clamp(1.25rem, 2.5vw, 1.9rem);
  font-variant-numeric: tabular-nums;
}

.debt-summary-card.is-alert strong { color: #ff9b92; }
.debt-summary-card.is-due strong { color: var(--debt-gold); }

.debt-account-rails {
  display: grid;
  gap: 10px;
  margin-bottom: 18px;
}

.debt-account-rail {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(250px, 2fr) minmax(145px, auto);
  align-items: center;
  gap: 18px;
  padding: 15px 18px;
  border: 1px solid rgba(255, 255, 255, .1);
  background: rgba(10, 16, 24, .8);
}

.debt-account-name strong,
.debt-account-name span,
.debt-rail-values strong,
.debt-rail-values span {
  display: block;
}

.debt-account-name span,
.debt-rail-values span,
.debt-account-rail small {
  color: var(--muted);
}

.debt-rail-track {
  position: relative;
  height: 10px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .05);
}

.debt-rail-track i {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--repayment-rate);
  background: linear-gradient(90deg, var(--debt-red-dark), var(--debt-cyan));
  box-shadow: 0 0 16px rgba(125, 216, 236, .34);
}

.debt-rail-caption {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 7px;
  font-size: .78rem;
}

.debt-rail-values {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.debt-rail-values strong { color: #ffaaa2; }

.debt-workspace {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(0, 1.55fr);
  gap: 14px;
  align-items: start;
}

.debt-entry-panel,
.debt-history-panel {
  border: 1px solid rgba(255, 255, 255, .1);
  background: rgba(5, 10, 16, .9);
}

.debt-entry-panel > header,
.debt-history-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 17px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, .09);
}

.debt-entry-panel > header > span,
.debt-history-panel > header > span {
  color: var(--debt-cyan);
  font: 700 .76rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
}

.debt-entry-form {
  display: grid;
  gap: 12px;
  padding: 18px;
}

.debt-new-account-fields,
.debt-entry-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.debt-entry-fields .field:last-child { grid-column: 1 / -1; }
.debt-entry-form textarea { resize: vertical; min-height: 76px; }
.debt-entry-form small { color: var(--muted); }

.debt-entry-policy {
  margin: 0;
  padding: 10px 12px;
  border-left: 2px solid var(--debt-gold);
  color: #d5dde7;
  background: rgba(241, 189, 98, .07);
  font-size: .82rem;
}

.debt-entry-form[aria-busy="true"] { opacity: .66; pointer-events: none; }
.debt-entry-form :disabled { cursor: not-allowed; opacity: .58; }

.debt-history-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.debt-history-controls label,
.debt-entry-form .field {
  display: grid;
  gap: 5px;
}

.debt-history-controls label > span,
.debt-entry-form .field > span {
  color: var(--muted);
  font-size: .75rem;
  letter-spacing: .04em;
}

.debt-history-list {
  max-height: 720px;
  overflow: auto;
}

.debt-history-row {
  display: grid;
  grid-template-columns: 92px minmax(150px, 1fr) minmax(110px, auto) 92px;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.debt-history-row:last-child { border-bottom: 0; }
.debt-history-row time,
.debt-history-row p,
.debt-history-source { color: var(--muted); }
.debt-history-row p { margin: 3px 0 0; font-size: .78rem; }
.debt-history-row strong { font-variant-numeric: tabular-nums; }
.debt-history-amount { text-align: right; color: #ffaaa2; }
.debt-history-row.is-decrease .debt-history-amount { color: var(--debt-cyan); }

.debt-history-source {
  justify-self: end;
  padding: 4px 7px;
  border: 1px solid currentColor;
  font: 700 .68rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.debt-ledger-empty {
  padding: 26px 20px;
  border: 1px dashed rgba(125, 216, 236, .25);
  color: var(--muted);
  text-align: center;
}

.debt-ledger-empty strong { display: block; margin-bottom: 5px; color: #e9f3fa; }

@media (max-width: 920px) {
  .debt-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .debt-workspace { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .debt-command-strip { align-items: flex-start; flex-direction: column; }
  .debt-summary-grid { grid-template-columns: 1fr 1fr; }
  .debt-summary-card { min-height: 98px; padding: 13px; }
  .debt-account-rail { grid-template-columns: 1fr; gap: 10px; }
  .debt-rail-values { text-align: left; }
  .debt-new-account-fields,
  .debt-entry-fields,
  .debt-history-controls { grid-template-columns: 1fr; }
  .debt-history-row { grid-template-columns: 76px minmax(0, 1fr) auto; gap: 8px; }
  .debt-history-source { grid-column: 2 / -1; justify-self: start; }
}

/* Data lineage register */
.data-sources-view {
  --lineage-cyan: #7dd8ec;
  --lineage-gold: #efbc68;
  --lineage-green: #83d6a4;
  --lineage-ink: rgba(5, 11, 18, .94);
}

.data-lineage-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, .78fr) minmax(480px, 1.45fr);
  gap: 28px;
  align-items: center;
  margin-bottom: 14px;
  padding: 24px;
  overflow: hidden;
  border: 1px solid rgba(125, 216, 236, .28);
  background:
    linear-gradient(105deg, rgba(10, 39, 51, .72), rgba(5, 11, 18, .94) 55%),
    repeating-linear-gradient(90deg, transparent 0 47px, rgba(125, 216, 236, .035) 48px);
}

.data-lineage-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: linear-gradient(90deg, var(--lineage-cyan), var(--lineage-gold), transparent 88%);
}

.data-source-kicker,
.data-source-code,
.data-lineage-route small {
  font: 700 .69rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .13em;
}

.data-source-kicker { margin: 0 0 8px; color: var(--lineage-cyan); }
.data-lineage-hero h2 { margin: 0 0 8px; color: #f4fbff; font-size: clamp(1.35rem, 2.7vw, 2.05rem); }
.data-lineage-hero p:last-child { margin: 0; color: #bdcad4; line-height: 1.75; }

.data-lineage-route {
  display: grid;
  grid-template-columns: repeat(7, auto);
  align-items: center;
  justify-content: end;
  gap: 9px;
}

.data-lineage-route span {
  display: grid;
  min-width: 92px;
  gap: 4px;
  padding: 12px 10px;
  border: 1px solid rgba(125, 216, 236, .22);
  background: rgba(5, 12, 19, .78);
  text-align: center;
}

.data-lineage-route small { color: var(--lineage-cyan); }
.data-lineage-route strong { color: #eef8fc; font-size: .84rem; }
.data-lineage-route i { width: 24px; height: 1px; background: linear-gradient(90deg, var(--lineage-cyan), var(--lineage-gold)); }
.data-lineage-route i::after { content: ""; display: block; width: 5px; height: 5px; margin: -2px 0 0 auto; border-top: 1px solid var(--lineage-gold); border-right: 1px solid var(--lineage-gold); transform: rotate(45deg); }

.data-source-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.data-source-overview > div {
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, .09);
  border-top-color: rgba(125, 216, 236, .32);
  background: rgba(6, 12, 19, .78);
}

.data-source-overview span,
.data-source-overview small { display: block; color: var(--muted); }
.data-source-overview strong { display: block; margin: 3px 0; color: #f3f8fb; font-size: 1.45rem; font-variant-numeric: tabular-nums; }
.data-source-overview small { font-size: .72rem; }

.data-source-filters {
  display: flex;
  gap: 7px;
  margin-bottom: 12px;
  padding-bottom: 3px;
  overflow-x: auto;
}

.data-source-filter {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid rgba(255, 255, 255, .12);
  color: #c3ced6;
  background: rgba(6, 12, 19, .78);
}

.data-source-filter[aria-pressed="true"] {
  border-color: var(--lineage-cyan);
  color: #effcff;
  background: rgba(30, 89, 104, .48);
  box-shadow: inset 0 -2px var(--lineage-cyan);
}

.data-source-filter:focus-visible,
.data-source-record:focus-within { outline: 2px solid var(--lineage-gold); outline-offset: 2px; }

.data-source-list { display: grid; gap: 10px; }

.data-source-record {
  display: grid;
  grid-template-columns: minmax(205px, .68fr) minmax(0, 1.8fr);
  gap: 18px;
  padding: 17px 18px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-left: 3px solid var(--lineage-cyan);
  background: var(--lineage-ink);
}

.data-source-record[data-group="transactions"] { border-left-color: var(--lineage-green); }
.data-source-record[data-group="finance"] { border-left-color: #ff8b7f; }
.data-source-record[data-group="plans"] { border-left-color: var(--lineage-gold); }
.data-source-record[data-group="reference"] { border-left-color: #b6a4ff; }

.data-source-record-head { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.data-source-code { color: var(--lineage-cyan); }
.data-source-record h2 { margin: 0; color: #f5f9fc; font-size: 1.08rem; line-height: 1.4; }
.data-source-state { display: inline-flex; gap: 6px; align-items: center; padding: 4px 7px; border: 1px solid rgba(131, 214, 164, .38); color: #a7e8be; font-size: .72rem; }
.data-source-state.is-pending { border-color: rgba(239, 188, 104, .4); color: #f5ce87; }
.data-source-state.is-local { border-color: rgba(182, 164, 255, .42); color: #cfc3ff; }
.data-source-observed { margin: 0; color: var(--muted); font-size: .75rem; word-break: break-word; }

.data-source-record-body { min-width: 0; }
.data-source-pipeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.data-source-pipeline > div { min-width: 0; padding: 10px 11px; border: 1px solid rgba(255, 255, 255, .075); background: rgba(255, 255, 255, .025); }
.data-source-pipeline small { display: block; margin-bottom: 4px; color: var(--muted); font-size: .68rem; letter-spacing: .06em; }
.data-source-pipeline strong { display: block; color: #dfe9ef; font-size: .82rem; line-height: 1.55; }

.data-source-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin-top: 9px; color: var(--muted); font-size: .75rem; }
.data-source-meta strong { color: #dce8ee; font-weight: 600; }
.data-source-consumers { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.data-source-consumers span { padding: 4px 7px; border: 1px solid rgba(125, 216, 236, .16); color: #abc0cb; background: rgba(125, 216, 236, .035); font-size: .7rem; }

.data-source-boundary-note {
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(239, 188, 104, .24);
  border-left: 3px solid var(--lineage-gold);
  background: rgba(58, 41, 14, .18);
}

.data-source-boundary-note strong { color: var(--lineage-gold); }
.data-source-boundary-note p { margin: 5px 0 0; color: #c6cdd2; line-height: 1.65; }
.settings-source-link { width: 100%; margin-top: 12px; }

@media (max-width: 980px) {
  .data-lineage-hero { grid-template-columns: 1fr; }
  .data-lineage-route { justify-content: start; }
  .data-source-record { grid-template-columns: 1fr; gap: 12px; }
  .data-source-record-head { display: grid; grid-template-columns: 1fr auto; }
  .data-source-record-head h2,
  .data-source-observed { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .data-lineage-hero { padding: 18px 15px; }
  .data-lineage-route { grid-template-columns: 1fr; width: 100%; gap: 5px; }
  .data-lineage-route span { width: 100%; min-width: 0; text-align: left; }
  .data-lineage-route i { width: 1px; height: 13px; margin-left: 20px; background: linear-gradient(var(--lineage-cyan), var(--lineage-gold)); }
  .data-lineage-route i::after { margin: 9px 0 0 -2px; transform: rotate(135deg); }
  .data-source-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .data-source-pipeline { grid-template-columns: 1fr; }
  .data-source-record { padding: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .data-source-filter { scroll-behavior: auto; }
}

/* Cash flow: the reference's balance columns and activity arrows, in the app palette. */
.cf-card { --cf-balance: #b9e6f6; --cf-operating: #83c9ec; --cf-investing: #efb38d; --cf-financing: #bad99e; }
.cf-card h2 { font-size: 16px; }
.cf-card .financial-chart-date, .cf-card .financial-chart-note, .cf-status { font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.cf-status { color: var(--muted); }
.cf-flow { display: block; width: 100%; max-width: 680px; height: auto; margin: 16px auto 0; overflow: visible; }
.cf-flow text { fill: var(--ink); font: 600 16px sans-serif; }
.cf-flow rect, .cf-flow path:not(.cf-baseline):not(.cf-connector):not(.cf-flat) { stroke: #506773; stroke-width: 2; stroke-linejoin: round; }
.cf-balance { fill: var(--cf-balance); }
.cf-operating { fill: var(--cf-operating); }
.cf-investing { fill: var(--cf-investing); }
.cf-financing { fill: var(--cf-financing); }
.cf-missing { fill: transparent; stroke-dasharray: 5 4; }
.cf-baseline, .cf-connector, .cf-flat { fill: none; stroke: var(--muted); stroke-width: 2; }
.cf-connector { stroke-dasharray: 3 4; }
.cf-amounts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; margin: 12px 0 0; }
.cf-amounts > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; padding: 10px 0; border-top: 1px solid var(--line); min-width: 0; }
.cf-amounts dt { font-size: 12px; color: var(--muted); }
.cf-amounts dd { margin: 0; font-size: 14px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.cf-amounts .cf-net { font-weight: 700; }
@media (max-width: 480px) { .cf-amounts { grid-template-columns: 1fr; } }

.current-borrowing-details { margin-top: 1rem; }
.current-borrowing-details h4 { margin: 0; overflow-wrap: anywhere; }
.current-borrowing-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-bottom: 0; }
.current-borrowing-fields dt { color: var(--muted); font-size: .8rem; }
.current-borrowing-fields dd { margin: .25rem 0 0; font-weight: 700; overflow-wrap: anywhere; }
@media (max-width: 360px) { .current-borrowing-fields { grid-template-columns: 1fr; } }

.asset-pyramid-share { position: absolute; right: 0; bottom: 6px; font-size: 11px; color: var(--ink); }
.asset-pyramid-share small { margin-right: 4px; }

/* Shared graph values and reconciliation remain readable on small screens. */
#graph-data-summary { overflow-wrap: anywhere; }
#graph-data-checks, #graph-data-rows {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 12px;
  margin-block: 16px 24px;
}
#graph-data .fact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding: 16px;
  border: 1px solid #34505c;
  border-radius: 12px;
  overflow-wrap: anywhere;
}
