    :root {
      --bg: #090a08; --paper: #12140f; --line: #2a2e24;
      --text: #f2f0ea; --muted: #8d8a7c; --accent: #d7ff3c;
      --sell: #ff6b6b; --watch: #e8c547; --hold: #7dce9a; --skip: #8d8a7c;
      /* Emil: strong ease-out for press/hover; keep UI under ~200ms */
      --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
      --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
      --dur-press: 120ms;
      --dur-ui: 160ms;
      --focus-ring: color-mix(in srgb, var(--accent) 70%, transparent);
      color-scheme: dark;
    }
    * { box-sizing: border-box; }
    /* Any author `display` rule outranks the UA sheet's [hidden], which would
       otherwise leave admin-only nav links on screen for every signed-in user. */
    [hidden] { display: none !important; }
    html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
      }
    }
    html, body { margin: 0; background: var(--bg); color: var(--text); min-height: 100%; }
    body {
      font: 15px/1.45 "IBM Plex Sans", system-ui, sans-serif;
      -webkit-font-smoothing: antialiased;
    }
    .skip {
      position: absolute; left: 12px; top: 12px; z-index: 100;
      padding: 10px 14px; border-radius: 8px;
      background: var(--accent); color: #111; font-weight: 650;
      transform: translateY(-120%);
      transition: transform var(--dur-ui) var(--ease-out);
    }
    .skip:focus { transform: translateY(0); outline: none; }
    a { color: var(--accent); text-decoration: none; }
    a:hover { text-decoration: underline; }
    :focus { outline: none; }
    :focus-visible {
      outline: 2px solid var(--focus-ring);
      outline-offset: 2px;
    }
    .desk-nav a.nav-link.on:focus-visible,
    .chipset button.on:focus-visible,
    button.primary:focus-visible, .btn.primary:focus-visible {
      outline-color: #111;
      outline-offset: 2px;
    }
    .desk-nav { display: none; }
    .wrap { max-width: none; margin: 0; padding: 0 20px 48px; }
    header {
      display: flex; align-items: center; justify-content: space-between;
      gap: 12px; padding: max(18px, env(safe-area-inset-top)) 0 16px;
      border-bottom: 1px solid var(--line); margin-bottom: 22px;
    }
    .brand {
      display: flex; align-items: center; gap: 10px;
      font-family: Fraunces, Georgia, serif;
      font-size: 22px; font-weight: 600; letter-spacing: -0.03em;
      color: var(--text); text-decoration: none;
    }
    .brand:hover { text-decoration: none; }
    .brand .mark { width: 28px; height: 28px; flex: 0 0 28px; }
    .who { color: var(--muted); font-size: 13px; text-align: right; }
    .who button {
      display: block; margin-left: auto; margin-top: 2px;
      background: none; border: 0; color: var(--muted); cursor: pointer;
      font: 12px/1.4 "IBM Plex Sans", sans-serif; padding: 0;
    }
    .who button:hover { color: var(--text); }
    h1 {
      font-family: Fraunces, Georgia, serif;
      font-size: clamp(28px, 7vw, 40px);
      font-weight: 500; letter-spacing: -0.035em; line-height: 1.1;
      margin: 8px 0 10px;
    }
    .lede { color: var(--muted); margin: 0 0 22px; max-width: 38em; }
    .stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
    .stat {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 10px; padding: 12px 14px;
    }
    .stat .k { color: var(--muted); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; }
    .stat .v {
      font: 650 22px/1.2 "IBM Plex Mono", ui-monospace, monospace;
      margin-top: 4px;
    }
    .stat .v.up { color: var(--hold); }
    .stat .v.down { color: var(--sell); }
    .stat .s { color: var(--muted); font-size: 12px; margin-top: 2px; }
    .stat.keep .k { color: var(--hold); }
    .stat.keep .v { font-size: 22px; }
    .stat.quiet .v { color: var(--muted); font-size: 16px; }
    .lanes { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 16px; }
    .book-find {
      display: grid; gap: 10px; margin: 0 0 12px;
    }
    .book-find[hidden] { display: none; }
    .book-find .book-find-row {
      display: flex; flex-wrap: wrap; gap: 10px; align-items: end;
    }
    .book-find .book-find-q {
      flex: 1 1 180px; min-width: 0;
    }
    .book-find label {
      display: block; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
      color: var(--muted); font-weight: 650; margin: 0 0 6px;
    }
    .book-find input[type="search"] {
      width: 100%; margin: 0;
    }
    .book-find .chipset { margin: 0; }
    .book-find #bSort { margin-top: 0; }
    .book-filters {
      margin: 0;
      padding-top: 2px;
      border-top: 1px solid var(--line);
    }
    .book-filters button {
      border-style: dashed;
    }
    .book-filters button.on {
      border-style: solid;
    }
    #bookScanHint {
      margin: 0 0 10px; font-size: 12px;
    }
    .lane {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 8px; padding: 8px 10px; cursor: pointer;
      font: 700 11px/1.2 "IBM Plex Sans", sans-serif; letter-spacing: 0.06em;
      color: var(--muted);
      transition:
        border-color var(--dur-ui) var(--ease-out),
        color var(--dur-ui) var(--ease-out),
        transform var(--dur-press) var(--ease-out);
    }
    .lane:active { transform: scale(0.97); }
    .lane.on { border-color: #4a5040; color: var(--text); }
    .lane .n { display: block; font: 650 13px/1.3 "IBM Plex Mono", ui-monospace, monospace; margin-top: 3px; color: var(--text); font-weight: 650; letter-spacing: 0; }
    .up { color: var(--hold); }
    .down { color: var(--sell); }
    .row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; }
    button, .btn {
      font: 600 14px/1.2 "IBM Plex Sans", system-ui, sans-serif;
      border-radius: 8px; padding: 12px 16px; cursor: pointer;
      border: 1px solid var(--line); background: var(--paper); color: var(--text);
      text-decoration: none; display: inline-block; text-align: center;
      transition:
        border-color var(--dur-ui) var(--ease-out),
        background-color var(--dur-ui) var(--ease-out),
        color var(--dur-ui) var(--ease-out),
        transform var(--dur-press) var(--ease-out),
        opacity var(--dur-ui) var(--ease-out);
    }
    button:hover, .btn:hover { border-color: #4a5040; text-decoration: none; }
    button:active:not(:disabled), .btn:active { transform: scale(0.97); }
    button.primary, .btn.primary { background: var(--accent); color: #111; border-color: var(--accent); }
    button.ghost, .btn.ghost { background: transparent; }
    button.danger { color: var(--sell); }
    button:disabled { opacity: 0.5; cursor: wait; }
    input, select, textarea {
      width: 100%; background: var(--bg); color: var(--text);
      border: 1px solid var(--line); border-radius: 8px;
      padding: 12px 12px; font: 16px/1.4 "IBM Plex Sans", system-ui, sans-serif;
      transition: border-color var(--dur-ui) var(--ease-out), box-shadow var(--dur-ui) var(--ease-out);
    }
    input:focus-visible, select:focus-visible, textarea:focus-visible {
      border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
      outline: none;
    }
    input::placeholder, textarea::placeholder {
      color: color-mix(in srgb, var(--muted) 85%, transparent);
      opacity: 1;
    }
    textarea { min-height: 88px; resize: vertical; }
    label { display: block; font-size: 12px; color: var(--muted); font-weight: 600; margin: 14px 0 6px; }
    .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .err { color: var(--sell); font-size: 14px; margin: 10px 0; }
    .empty {
      background: var(--paper); border: 1px dashed var(--line);
      border-radius: 12px; padding: 28px 18px; color: var(--muted); text-align: center;
    }
    .empty strong { color: var(--text); display: block; margin-bottom: 6px; }
    .empty button.linkish {
      display: inline; padding: 0; margin: 0; border: 0; background: none;
      color: var(--accent, #7dce9a); font: inherit; font-weight: 600; text-decoration: underline;
      cursor: pointer;
    }
    .chipset button:disabled { opacity: 0.35; cursor: not-allowed; }
    .list .empty, .list .err { grid-column: 1 / -1; }
    .market-shelf-h { grid-column: 1 / -1; margin: 10px 0 0; }
    .market-shelf-h:first-child { margin-top: 0; }
    .market-shelf-h h2 {
      font-size: 15px; font-weight: 700; margin: 0 0 4px;
      font-family: "IBM Plex Sans", system-ui, sans-serif;
    }
    .market-shelf-h .fine { margin: 0 0 8px; }
    .card {
      display: block; width: 100%; text-align: left;
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 14px 14px 12px;
      font-weight: 500;
    }
    .card .top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
    .card .name { font-size: 17px; font-weight: 650; }
    .card .rank {
      display: inline-block; font: 800 12px/1 "IBM Plex Mono", ui-monospace, monospace;
      color: var(--accent); margin-right: 8px; letter-spacing: 0;
    }
    .card .set { color: var(--muted); font-size: 13px; margin-top: 3px; }
    .card .why.hedge-move { color: var(--muted); font-size: 12px; margin-top: 4px; font-weight: 500; }
    .card .conf { color: var(--muted); font-size: 13px; margin-top: 8px; }
    .card .pulse { color: var(--watch); font-size: 13px; margin-top: 8px; font-weight: 650; }
    .card .pulse.fire { color: var(--watch); }
    .card .demand {
      font: 650 13px/1.3 "IBM Plex Mono", ui-monospace, monospace;
      color: var(--accent); margin-top: 8px;
    }
    .cash-pick .demand {
      grid-column: 1 / -1;
      font: 650 12px/1.3 "IBM Plex Mono", ui-monospace, monospace;
      color: var(--accent); margin: 0;
    }
    .cash-pick .conf {
      grid-column: 1 / -1;
      color: var(--muted); font-size: 12px; margin: 0;
    }
    .cash-pick .pulse {
      grid-column: 1 / -1;
      color: var(--watch); font-size: 12px; margin: 0; font-weight: 650;
    }
    .pill {
      display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: 0.06em;
      padding: 3px 7px; border-radius: 4px; flex: 0 0 auto;
    }
    button.pill {
      font: 800 10px/1 "IBM Plex Sans", sans-serif;
      letter-spacing: 0.06em; padding: 3px 7px; border: 0; min-height: 0;
      border-radius: 4px; cursor: pointer; vertical-align: middle;
    }
    button.pill:hover { filter: brightness(1.12); border: 0; }
    button.pill[aria-expanded="true"] { box-shadow: 0 0 0 1px var(--accent); }
    .pill.sell { background: #3a1518; color: var(--sell); }
    .pill.watch, .pill.wait { background: #3a2e12; color: var(--watch); }
    .pill.hold { background: #123328; color: var(--hold); }
    .pill.skip { background: #1c1c1c; color: var(--skip); }
    .pill.right { background: #1a2a14; color: var(--accent); }
    .pill.maybe { background: #3a2e12; color: var(--watch); }
    .pill.wrong { background: #1c1c1c; color: var(--muted); }
    .pill.thin { background: #3a2e12; color: var(--watch); }
    .pill.pc { background: #1a1d16; color: var(--accent); }
    .pill.tag { background: #1a1d22; color: #c8c4b4; }
    .pill.rc { background: #1a2a14; color: var(--accent); font-weight: 700; }
    .pill.licensed-rc { background: #2a2414; color: #e8c547; font-weight: 650; }
    .pill.injured { background: #3a1518; color: var(--sell); }
    .pill.minors { background: #3a2e12; color: var(--watch); }
    .pill.fire { background: #3a2e12; color: var(--watch); }
    .pill.high { background: #1a2a14; color: var(--accent); }
    .pill.solid { background: #123328; color: var(--hold); }
    .pill.low { background: #1c1c1c; color: var(--muted); }
    .pills { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
    .check {
      display: flex; align-items: flex-start; gap: 10px;
      margin: 16px 0 4px; font-weight: 600; cursor: pointer;
    }
    .check input { width: auto; min-height: 22px; margin-top: 2px; flex: 0 0 auto; }
    .check .hint { color: var(--muted); font-weight: 500; font-size: 13px; display: block; }
    .nums {
      display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 8px;
      margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line);
    }
    .nums i { display: block; color: var(--muted); font-style: normal; font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; }
    .card .venues {
      display: flex; flex-wrap: wrap; gap: 6px 14px;
      margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line);
      color: var(--muted); font-size: 12px;
    }
    .card .venues b { color: var(--text); font-weight: 650; }
    .grade-list { display: grid; gap: 8px; margin: 14px 0 6px; }
    .grade-row {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 10px; padding: 10px 12px;
    }
    .grade-row .grade-name {
      font-size: 12px; font-weight: 700; letter-spacing: 0.04em;
      text-transform: uppercase; margin-bottom: 6px;
    }
    .grade-row .venues { margin: 0; padding: 0; border: 0; }
    .nums b { font-family: "IBM Plex Mono", ui-monospace, monospace; font-weight: 650; font-size: 13px; }
    .panel { display: none; }
    .panel.on { display: block; }
    .login { max-width: 400px; margin: 0 auto; }
    .fine { color: var(--muted); font-size: 13px; margin-top: 14px; }
    .week-note {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 20px 18px 16px; margin-bottom: 14px;
    }
    .week-note.latest { border-color: #3d4a14; }
    .week-note .when {
      color: var(--muted); font-size: 12px; letter-spacing: 0.06em;
      text-transform: uppercase; font-weight: 700;
    }
    .week-note h2 {
      font-family: Fraunces, Georgia, serif; font-size: 24px;
      font-weight: 500; letter-spacing: -0.03em; margin: 6px 0 14px;
    }
    .week-note .body { max-width: 46em; }
    .week-note .body p { margin: 0 0 12px; }
    .week-note .body .wn-lede { color: var(--text); max-width: 40em; }
    .week-note .body .wn-sports {
      display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px;
    }
    .week-note .body .wn-chip {
      font: 700 11px/1 "IBM Plex Sans", sans-serif; letter-spacing: 0.06em;
      text-transform: uppercase; padding: 7px 9px; border-radius: 6px;
      background: #161810; color: var(--muted);
    }
    .week-note .body .wn-chip.sell { background: #3a1518; color: var(--sell); }
    .week-note .body .wn-chip.buy { background: #123328; color: var(--hold); }
    .week-note .body .wn-chip.wait { background: #3a2e12; color: var(--watch); }
    .week-note .body .wn-stats {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 20px;
    }
    .week-note .body .wn-stat {
      background: #0d0e0b; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px;
      font: 650 18px/1.2 "IBM Plex Mono", ui-monospace, monospace;
    }
    .week-note .body .wn-stat span {
      display: block; color: var(--muted); font-size: 11px; letter-spacing: 0.08em;
      text-transform: uppercase; font-weight: 700; margin-bottom: 4px;
    }
    .week-note .body .wn-stat.up { color: var(--hold); }
    .week-note .body .wn-stat.down { color: var(--sell); }
    .week-note .body .wn-group { margin: 0 0 18px; }
    .week-note .body .wn-group h3 {
      font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
      font-weight: 800; margin: 0 0 10px; color: var(--muted);
    }
    .week-note .body .wn-group.sell h3 { color: var(--sell); }
    .week-note .body .wn-group.hold h3 { color: var(--hold); }
    .week-note .body .wn-group.wait h3,
    .week-note .body .wn-group.watch h3,
    .week-note .body .wn-group.thin h3 { color: var(--watch); }
    .week-note .body .wn-group.skip h3 { color: var(--skip); }
    .week-note .body .wn-card {
      background: #0d0e0b; border: 1px solid var(--line);
      border-left-width: 3px; border-radius: 10px; padding: 12px 14px; margin: 0 0 10px;
    }
    .week-note .body .wn-card.sell { border-left-color: var(--sell); }
    .week-note .body .wn-card.hold { border-left-color: var(--hold); }
    .week-note .body .wn-card.wait,
    .week-note .body .wn-card.watch,
    .week-note .body .wn-card.thin { border-left-color: var(--watch); }
    .week-note .body .wn-card.skip { border-left-color: var(--skip); }
    .week-note .body .wn-top {
      display: flex; justify-content: space-between; gap: 10px; align-items: flex-start;
    }
    .week-note .body .wn-name {
      font-size: 18px; font-weight: 650; margin: 0;
      font-family: Fraunces, Georgia, serif; letter-spacing: -0.02em;
    }
    .week-note .body .wn-badge {
      font-size: 10px; font-weight: 800; letter-spacing: 0.06em;
      padding: 3px 7px; border-radius: 4px; flex: 0 0 auto;
      background: #1a1d16; color: var(--accent);
    }
    .week-note .body .wn-card.raw .wn-badge { background: #2a2e14; }
    .week-note .body .wn-set { color: var(--muted); font-size: 13px; margin: 4px 0 10px; }
    .week-note .body .wn-nums {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 8px;
    }
    .week-note .body .wn-nums span {
      display: block; color: var(--muted); font-size: 10px; letter-spacing: 0.08em;
      text-transform: uppercase; font-weight: 700; margin-bottom: 2px;
    }
    .week-note .body .wn-nums div {
      font: 650 14px/1.25 "IBM Plex Mono", ui-monospace, monospace;
    }
    .week-note .body .wn-nums i {
      display: block; font-style: normal; color: var(--muted);
      font-size: 10px; font-weight: 500; letter-spacing: 0; margin-top: 2px;
    }
    .week-note .body .wn-listed { color: var(--muted); font-size: 13px; margin: 0 0 6px; }
    .week-note .body .wn-do { margin: 8px 0 0; font-weight: 650; }
    .week-note .body .wn-card.sell .wn-do { color: var(--sell); }
    .week-note .body .wn-card.hold .wn-do { color: var(--hold); }
    .week-note .body .wn-card.skip .wn-do { color: var(--muted); }
    .week-note .body .wn-watch { display: none; }
    .week-note .body .wn-empty { color: var(--muted); }
    .week-extra { margin: 28px 0 8px; }
    .week-extra h2 {
      font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
      font-weight: 800; margin: 0 0 6px; color: var(--muted);
    }
    .week-extra.watch h2 { color: var(--watch); }
    .week-extra.deals h2 { color: var(--hold); }
    .week-extra > .fine { margin: 0 0 12px; }
    .week-extra .week-more { margin: 10px 0 0; }
    footer { color: var(--muted); font-size: 12px; margin-top: 36px; padding-top: 16px; border-top: 1px solid var(--line); }
    .hits {
      display: none; background: var(--paper); border: 1px solid var(--line);
      border-radius: 10px; margin: 8px 0 14px; overflow: hidden; max-height: 360px;
      overflow-y: auto;
    }
    .hits.on { display: block; }
    .hits button {
      display: flex; align-items: center; gap: 10px;
      width: 100%; text-align: left; border: 0; border-radius: 0;
      border-bottom: 1px solid var(--line); background: transparent; padding: 12px 14px;
      font-weight: 500;
    }
    .hits button:last-child { border-bottom: 0; }
    .hits button:hover, .hits button.on { background: #1a1d16; }
    .hits .name { font-weight: 650; }
    .hits .meta { color: var(--muted); font-size: 12px; margin-top: 2px; }
    .picked {
      display: none; background: var(--paper); border: 1px solid var(--line);
      border-radius: 10px; padding: 12px 14px; margin: 8px 0 6px;
    }
    .picked.on { display: flex; gap: 12px; align-items: flex-start; }
    .picked .name { font-weight: 650; font-size: 17px; }
    .picked .meta { color: var(--muted); font-size: 13px; margin-top: 3px; }
    .details { display: none; }
    .details.on { display: block; }
    .add-alts { margin: 22px 0 0; color: var(--muted); font-size: 13px; }
    .add-alts button {
      background: none; border: 0; padding: 0; min-height: 0;
      color: var(--muted); text-decoration: underline; text-underline-offset: 3px;
      font: inherit; font-weight: 500; cursor: pointer;
    }
    .add-alts button:hover { color: var(--text); }
    #moreToggle {
      margin: 10px 0 0; padding: 0; min-height: 0; background: none; border: 0;
      color: var(--muted); font-weight: 500; font-size: 13px; text-decoration: underline;
      text-underline-offset: 3px;
    }
    #moreToggle:hover { color: var(--text); }
    #moreFields { margin-top: 14px; }
    .actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
    .actions button { flex: 1; min-width: 120px; }
    .change { margin-top: 8px; padding: 8px 12px; font-size: 13px; }
    .back { display: inline-block; color: var(--muted); font-size: 13px; margin-bottom: 10px; }
    .range { color: var(--muted); font-size: 12px; margin-top: 2px; }
    .tabs {
      display: none; gap: 2px; margin: -6px 0 18px; border-bottom: 1px solid var(--line);
      overflow-x: auto; -webkit-overflow-scrolling: touch;
    }
    .tabs.on { display: flex; }
    .tabs a {
      display: inline-flex; align-items: center; gap: 6px;
      color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 0.05em;
      text-transform: uppercase; padding: 10px 12px 11px; border-bottom: 2px solid transparent;
      white-space: nowrap;
    }
    .nav-ico {
      width: 16px; height: 16px; flex: 0 0 16px;
      stroke: currentColor; fill: none; stroke-width: 1.7;
      stroke-linecap: round; stroke-linejoin: round;
    }
    .nav-beta {
      display: inline-block;
      font: 800 8px/1 "IBM Plex Sans", sans-serif;
      letter-spacing: 0.08em; text-transform: uppercase;
      color: #111; background: var(--accent);
      padding: 2px 4px; border-radius: 3px;
      margin-left: 2px; vertical-align: 1px;
    }
    .desk-nav a.nav-link.on .nav-beta {
      background: #111; color: var(--accent);
    }
    h1 .nav-beta { font-size: 10px; vertical-align: 0.7em; margin-left: 8px; }
    .tabs a:hover { text-decoration: none; color: var(--text); }
    .tabs a.on { color: var(--text); border-bottom-color: var(--accent); }
    /* Nav density: primary home path; Beta / research under More */
    .nav-more-btn {
      display: inline-flex; align-items: center; gap: 6px;
      color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 0.05em;
      text-transform: uppercase; padding: 10px 12px 11px; border: 0; border-bottom: 2px solid transparent;
      background: transparent; border-radius: 0; min-height: 0; white-space: nowrap; cursor: pointer;
      font-family: inherit;
    }
    .nav-more-btn:hover { color: var(--text); }
    .nav-more-btn[aria-expanded="true"],
    .nav-more-btn.has-active {
      color: var(--text); border-bottom-color: var(--accent);
    }
    .nav-more-tray {
      display: flex; flex-wrap: wrap; gap: 4px; margin: -10px 0 16px;
      padding: 8px 0 10px; border-bottom: 1px solid var(--line);
    }
    .nav-more-tray a {
      display: inline-flex; align-items: center; gap: 6px;
      color: var(--muted); font-size: 12px; font-weight: 650; letter-spacing: 0.04em;
      text-transform: uppercase; padding: 8px 10px; border: 1px solid var(--line);
      border-radius: 8px; background: var(--paper); white-space: nowrap;
    }
    .nav-more-tray a:hover { text-decoration: none; color: var(--text); border-color: #4a5040; }
    .nav-more-tray a.on {
      color: #111; background: var(--accent); border-color: var(--accent);
    }
    .nav-more-tray a.on .nav-beta {
      background: #111; color: var(--accent);
    }
    .desk-nav details.nav-more {
      margin: 6px 0 0; border: 0;
    }
    .desk-nav details.nav-more > summary {
      display: flex; align-items: center; gap: 10px;
      list-style: none; cursor: pointer;
      color: var(--muted); font-size: 13px; font-weight: 650;
      padding: 9px 10px; border-radius: 8px;
      transition:
        border-color var(--dur-ui) var(--ease-out),
        background-color var(--dur-ui) var(--ease-out),
        color var(--dur-ui) var(--ease-out),
        transform var(--dur-press) var(--ease-out);
    }
    .desk-nav details.nav-more > summary::-webkit-details-marker { display: none; }
    .desk-nav details.nav-more > summary:hover { background: #1a1d16; color: var(--text); }
    .desk-nav details.nav-more > summary:active { transform: scale(0.98); }
    .desk-nav details.nav-more.has-active > summary {
      color: var(--text); background: #1a1d16;
    }
    .desk-nav details.nav-more .nav-more-panel {
      display: flex; flex-direction: column; gap: 2px;
      margin: 2px 0 4px 12px; padding: 4px 0 4px 8px;
      border-left: 1px solid var(--line);
    }
    .desk-nav details.nav-more .nav-more-panel a.nav-link {
      font-size: 12px; padding: 8px 10px;
    }
    .windows { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-bottom: 14px; }
    .win {
      background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px;
    }
    .win .k { font-size: 11px; font-weight: 800; letter-spacing: 0.08em; }
    .win .w { color: var(--muted); font-size: 12px; margin-top: 3px; }
    .cycle-wrap {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 10px 12px 8px; margin: 0 0 16px;
      overflow: auto; -webkit-overflow-scrolling: touch;
    }
    table.cycle { width: 100%; border-collapse: collapse; min-width: 640px; margin: 0; }
    table.cycle th, table.cycle td {
      text-align: center; font-size: 11px; padding: 6px 4px;
      border-bottom: 0;
    }
    table.cycle th { color: var(--muted); font-weight: 700; letter-spacing: 0.04em; }
    table.cycle th.sport, table.cycle td.sport { text-align: left; font-weight: 650; }
    table.cycle td.buy { background: #123328; color: var(--hold); }
    table.cycle td.wait { background: #3a2e12; color: var(--watch); }
    table.cycle td.sell { background: #3a1518; color: var(--sell); }
    table.cycle td.now { outline: 1px solid var(--text); outline-offset: -1px; }
    .cycle-legend {
      display: flex; gap: 14px; flex-wrap: wrap;
      font-size: 12px; margin: 0 0 8px;
    }
    .cycle-legend span { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); }
    .cycle-legend i {
      width: 10px; height: 10px; border-radius: 2px; flex: 0 0 10px;
    }
    .cycle-legend i.buy { background: #123328; box-shadow: inset 0 0 0 1px var(--hold); }
    .cycle-legend i.wait { background: #3a2e12; box-shadow: inset 0 0 0 1px var(--watch); }
    .cycle-legend i.sell { background: #3a1518; box-shadow: inset 0 0 0 1px var(--sell); }
    .cycle-why { color: var(--muted); font-size: 13px; margin: 8px 0 0; max-width: 52em; line-height: 1.45; }
    .more-wrap { margin: 10px 0 8px; }
    .more-wrap[hidden] { display: none; }
    .more-wrap button { width: 100%; }
    .cat-set {
      display: block; width: 100%; text-align: left;
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 14px; color: inherit; text-decoration: none;
      font-weight: 500;
    }
    .cat-set:hover { border-color: #4a5040; text-decoration: none; }
    .cat-set .name { font-size: 16px; font-weight: 650; }
    .cat-set .meta { color: var(--muted); font-size: 13px; margin-top: 4px; }
    .chipset { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 14px; }
    .chipset button {
      padding: 8px 12px; font-size: 12px; min-height: 0;
      transition:
        border-color var(--dur-ui) var(--ease-out),
        background-color var(--dur-ui) var(--ease-out),
        color var(--dur-ui) var(--ease-out),
        transform var(--dur-press) var(--ease-out);
    }
    .chipset button.on { background: var(--accent); color: #111; border-color: var(--accent); }
    .start-box .row { justify-content: center; margin-top: 14px; }
    .bulk-hit {
      display: grid; grid-template-columns: 22px 1fr auto; gap: 10px; align-items: center;
      background: var(--paper); border: 1px solid var(--line); border-radius: 10px;
      padding: 12px; margin-bottom: 8px; text-align: left;
    }
    .bulk-hit input[type="checkbox"] { width: auto; min-height: 0; }
    .bulk-hit .cost { width: 92px; padding: 8px 10px; }
    .bulk-hit .err { margin: 0; }
    .grade-bar {
      display: flex; flex-wrap: wrap; gap: 8px 14px;
      align-items: center; margin: 0 0 14px;
    }
    .grade-bar .chipset { margin: 0; }
    .grade-bar .pick {
      display: flex; align-items: center; gap: 8px;
    }
    .grade-bar .pick label {
      margin: 0; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted);
    }
    .grade-bar select { width: auto; min-width: 92px; padding: 8px 10px; }
    .guide-block {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 16px 16px 10px; margin-bottom: 12px;
    }
    .guide-block h2 {
      font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
      margin: 0 0 8px; color: var(--muted);
    }
    .guide-block ul { margin: 0 0 6px; padding-left: 18px; }
    .guide-block li { margin: 0 0 6px; }
    .role-lanes { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0 0 18px; }
    .role-lane { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
    .role-lane.right { background: #0e1a16; border-color: #1f6b54; }
    .role-lane.maybe { background: #1a160e; border-color: #6b5420; }
    .role-lane.wrong { background: #1a0e10; border-color: #6b1f28; }
    .role-lane h3 { margin: 8px 0 6px; font-size: 16px; }
    .role-lane p { margin: 0; color: var(--muted); font-size: 13px; }
    button.role-lane {
      display: block; width: 100%; text-align: left;
      font: inherit; color: inherit; cursor: pointer;
      min-height: 0; padding: 14px;
    }
    .role-lanes.pick { margin: 12px 0 16px; }
    .role-lanes.pick .role-lane.on {
      box-shadow: inset 0 0 0 2px var(--accent);
      outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
      outline-offset: 1px;
    }
    .role-lanes.pick .role-lane.on h3::after {
      content: " · on";
      color: var(--accent);
      font-weight: 600;
      font-size: 13px;
    }
    .card.right { border-color: #1f6b54; background: #0e1a16; }
    .card.maybe { border-color: #6b5420; background: #1a160e; }
    .card.wrong { border-color: #6b1f28; background: #1a0e10; }
    .print-warn {
      margin: 0 0 14px; padding: 12px 14px; border-radius: 10px;
      font-size: 14px; line-height: 1.45;
    }
    .print-warn.wrong { background: #1a0e10; border: 1px solid #6b1f28; color: #f0c8cc; }
    .print-warn.maybe { background: #1a160e; border: 1px solid #6b5420; color: #e8d4a8; }
    .print-warn strong { display: block; margin-bottom: 4px; font-weight: 650; }
    #guide h2 {
      font-size: 15px; margin: 28px 0 10px; display: flex; align-items: center; gap: 8px;
      letter-spacing: 0; text-transform: none; color: var(--text);
      font-family: "IBM Plex Sans", system-ui, sans-serif; font-weight: 700;
    }
    #guide h2:first-of-type { margin-top: 4px; }
    .exgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 12px; }
    .ex {
      background: var(--paper); border: 1px solid var(--line); border-radius: 12px;
      padding: 10px 10px 12px;
    }
    .ex.right { border-color: #1f6b54; background: #0e1a16; }
    .ex.maybe { border-color: #6b5420; background: #1a160e; }
    .ex.wrong { border-color: #6b1f28; background: #1a0e10; }
    .slab {
      aspect-ratio: 2.5 / 3.5; border-radius: 7px; padding: 7px 6px 6px;
      background: #12151a; display: flex; flex-direction: column; gap: 5px;
    }
    .slab.photo { position: relative; overflow: hidden; }
    .slab.photo .face { opacity: 0; }
    .slab.photo img.shot {
      position: absolute; left: 6px; right: 6px; top: 22px; bottom: 6px;
      object-fit: cover; border-radius: 4px; width: calc(100% - 12px); height: calc(100% - 28px);
    }
    .slab-tag {
      font-size: 8px; font-weight: 800; letter-spacing: 0.14em; text-align: center;
      color: #d4b45a;
    }
    .face {
      flex: 1; border-radius: 4px; padding: 8px 7px 7px;
      display: flex; flex-direction: column; justify-content: space-between;
      color: #f4f7fb;
    }
    .face.chrome { background: linear-gradient(165deg, #5b8fb8 0%, #1c3a56 55%, #0f2438 100%); }
    .face.auto { background: linear-gradient(165deg, #e0c36a 0%, #8a6418 50%, #3d2a08 100%); color: #1a1408; }
    .face.prizm { background: linear-gradient(165deg, #7aa2ff 0%, #c084fc 50%, #38bdf8 100%); color: #0b1020; }
    .face.optic { background: linear-gradient(165deg, #f5d76e 0%, #1e3a5f 45%, #0b1c33 100%); }
    .face.paper { background: linear-gradient(165deg, #c4a574 0%, #6b5340 55%, #2c221c 100%); }
    .face.now { background: linear-gradient(165deg, #f07178 0%, #7a1822 50%, #2a0c10 100%); }
    .face.mega { background: linear-gradient(165deg, #7c6bb5 0%, #2d2154 55%, #140e24 100%); }
    .face.bcp { background: linear-gradient(165deg, #6b8f71 0%, #243328 55%, #101810 100%); }
    .face.insert { background: linear-gradient(165deg, #ff6b4a 0%, #7a1d3a 50%, #2a0c18 100%); }
    .face.ginter { background: linear-gradient(165deg, #ead7a4 0%, #8a6a3a 50%, #3a2a14 100%); color: #2a1c0c; }
    .face-set { font-size: 8px; font-weight: 800; letter-spacing: 0.08em; opacity: 0.9; }
    .face-num { font-size: 20px; font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
    .face-name { font-size: 11px; font-weight: 800; letter-spacing: 0.03em; }
    .ex .name { margin-top: 8px; font-size: 13px; font-weight: 650; }
    .ex .desc { margin-top: 2px; color: var(--muted); font-size: 12px; }
    #guide table { width: 100%; border-collapse: collapse; margin: 8px 0 18px; }
    #guide td {
      padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top;
    }
    #guide td:first-child { font-weight: 650; white-space: nowrap; width: 28%; }
    .row-btns { display: flex; gap: 8px; margin-top: 10px; }
    .row-btns button, .row-btns .btn { flex: 1; padding: 8px 10px; font-size: 13px; min-height: 0; }
    .callbox {
      background: #1a1d16; border: 1px solid var(--line);
      border-radius: 10px; padding: 12px 14px; margin: 12px 0 16px;
    }
    .callbox .lead { margin: 6px 0 0; font-weight: 650; }
    .callbox .meta { color: var(--muted); font-size: 12px; margin-top: 4px; }
    .confbox {
      background: #1a1d16; border: 1px solid var(--line);
      border-radius: 10px; padding: 12px 14px; margin: 0 0 16px;
      overflow-x: auto;
    }
    .confbox .lead { margin: 8px 0 10px; font-weight: 650; }
    .confbox table { width: 100%; border-collapse: collapse; }
    .confbox th, .confbox td {
      text-align: left; padding: 7px 8px 7px 0; border-bottom: 1px solid var(--line);
      vertical-align: top; font-size: 13px;
    }
    .confbox th { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; }
    .confbox td.num, .confbox th.num {
      text-align: right; font: 650 13px/1.3 "IBM Plex Mono", ui-monospace, monospace;
      white-space: nowrap; padding-right: 0;
    }
    .confbox .factor-note { color: var(--muted); font-weight: 500; }
    .confbox .meta { color: var(--muted); font-size: 12px; margin: 10px 0 0; }
    .confbox[hidden] { display: none; }
    .pulsebox {
      background: #1a1d16; border: 1px solid var(--line);
      border-radius: 10px; padding: 12px 14px; margin: 0 0 16px;
    }
    .pulsebox .lead { margin: 8px 0 0; font-weight: 650; }
    .pulsebox .meta { color: var(--muted); font-size: 12px; margin: 6px 0 0; }
    .conf-wrap { margin: 0 0 16px; }
    button.conf-item {
      display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px;
      width: 100%; text-align: left; cursor: pointer;
      background: #1a1d16; border: 1px solid var(--line);
      border-radius: 10px; padding: 10px 12px; min-height: 0;
      font: inherit; color: inherit;
    }
    button.conf-item:hover { border-color: #4a5040; }
    button.conf-item[aria-expanded="true"] { border-color: var(--accent); }
    button.conf-item .k {
      width: 100%; color: var(--muted); font-size: 10px; font-weight: 700;
      letter-spacing: 0.06em; text-transform: uppercase;
    }
    button.conf-item .v { font-weight: 650; }
    button.conf-item .s { color: var(--muted); font-size: 12px; margin-left: auto; }
    .chart-card {
      background:
        radial-gradient(120% 80% at 0% 0%, rgba(215,255,60,0.07), transparent 55%),
        linear-gradient(165deg, #141710 0%, var(--paper, #12140f) 55%, #0e100c 100%);
      border: 1px solid var(--line);
      border-radius: 14px; padding: 14px 16px; margin: 0 0 16px;
      position: relative;
    }
    .chart-card > h3 {
      margin: 0 0 4px; font: 650 12px/1.2 inherit;
      letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted);
    }
    .chart-card > .fine,
    .chart-card > .equity-note,
    .chart-card .blurb {
      color: var(--muted); font-size: 12px; margin: 0 0 8px;
    }
    .chart-card svg.equity,
    .chart-card.study-chart svg {
      width: 100%; height: auto; display: block;
      cursor: crosshair;
    }
    .sw-scrub-wrap { position: relative; }
    .sw-scrub-svg { cursor: crosshair; touch-action: none; width: 100%; height: auto; display: block; }
    .sw-scrub-svg .sw-cross,
    .pi-pulse-svg .pi-cross {
      stroke: #d7ff3c; stroke-width: 1; stroke-dasharray: 3 3; opacity: 0.55;
    }
    .sw-scrub-svg .sw-active,
    .pi-pulse-svg .pi-active {
      fill: #d7ff3c; stroke: #090a08; stroke-width: 2;
    }
    .sw-scrub-wrap .eq-tip { min-width: 148px; }
    .chart-card[hidden] { display: none; }
    .equity-head {
      display: grid;
      grid-template-columns: repeat(5, auto);
      grid-template-areas: "mark cost pnl realized count";
      gap: 10px 22px;
      align-items: baseline;
      justify-content: start;
      margin-bottom: 8px;
    }
    .equity-head > div { min-width: 0; }
    .equity-head .k { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; }
    .equity-head .v {
      font-family: "IBM Plex Mono", ui-monospace, monospace;
      font-size: 20px; font-weight: 650; font-variant-numeric: tabular-nums;
      margin-top: 2px;
    }
    .equity-head .v > span:first-child { font: inherit; color: inherit; }
    .equity-head .v.up { color: var(--hold); }
    .equity-head .v.down { color: var(--sell); }
    .equity-head #bookPnlPct, .equity-head #nSoldHead {
      font-size: 12px; font-weight: 500; margin-left: 6px; color: var(--muted);
    }
    .equity-head .eq-mark { grid-area: mark; }
    .equity-head .eq-cost { grid-area: cost; }
    .equity-head .eq-pnl { grid-area: pnl; }
    .equity-head .eq-realized { grid-area: realized; }
    .equity-head .eq-count { grid-area: count; }
    .equity-tape {
      display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px;
      margin: 0 0 14px; padding: 10px 0 0;
      border-top: 1px solid var(--line);
    }
    .equity-tape[hidden] { display: none; }
    .equity-tape #tapeBook {
      padding: 8px 12px; min-height: 40px; font-size: 13px;
    }
    .equity-tape .fine {
      margin: 0; flex: 1 1 12em; min-width: 0;
    }
    .equity-tape .fine.warn { color: var(--watch); }
    .equity-note { color: var(--muted); font-size: 12px; margin: 0 0 8px; }
    .port-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 18px 0 16px; }
    .port-grid .windows { margin-bottom: 0; }
    .port-side {
      display: flex; flex-direction: column; gap: 10px;
      min-width: 0;
    }
    /* New portfolio: Holdings / Desk + empty onboarding + owned cards */
    .port-empty {
      border: 1px dashed var(--line); border-radius: 14px; padding: 28px 24px;
      text-align: center; background: var(--paper); margin: 0 0 20px;
    }
    .port-empty strong { display: block; font-size: 17px; margin-bottom: 8px; color: var(--text); }
    .port-empty > p {
      color: var(--muted); margin: 0 0 16px; font-size: 14px; max-width: 32em;
      margin-left: auto; margin-right: auto; line-height: 1.45;
    }
    .port-steps {
      display: grid; gap: 10px; text-align: left; max-width: 440px; margin: 20px auto 0;
    }
    .port-step {
      display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: start;
      padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #0d0e0b;
    }
    .port-step .n {
      width: 28px; height: 28px; border-radius: 50%; background: var(--line);
      display: grid; place-items: center;
      font: 650 13px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--muted);
    }
    .port-step h4 { margin: 0 0 4px; font-size: 14px; font-weight: 650; }
    .port-step p { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.35; }
    .port-step .row { margin-top: 10px; justify-content: flex-start; }
    .alert-strip { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
    .alert-chip {
      font-size: 12px; padding: 8px 12px; border-radius: 10px;
      border: 1px solid var(--line); background: var(--paper);
    }
    .alert-chip strong { color: var(--accent); }
    .alert-chip.warn { border-color: #6b5420; background: #1a160e; }
    .alert-chip.sell { border-color: #5a2020; background: #1a0e0e; }
    .alert-chip.sell strong { color: var(--sell); }
    #book .pf-owned-grid, #book .pf-hunt-grid {
      display: grid; gap: 10px;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      margin: 0 0 12px;
    }
    #book .pf-owned-card, #book .pf-hunt-card {
      border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--paper);
    }
    #book .pf-hunt-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
    #book .pf-sport {
      font-size: 10px; font-weight: 650; text-transform: uppercase; padding: 2px 7px; border-radius: 4px;
      background: #1a1d16; color: var(--muted);
    }
    #book .pf-sport.BASKETBALL { background: #e8782a33; color: #e8782a; }
    #book .pf-sport.WNBA { background: #c45c9a33; color: #c45c9a; }
    #book .pf-sport.SOCCER { background: #3d9a5c33; color: #3d9a5c; }
    #book .pf-sport.BASEBALL { background: #6b8cce33; color: #6b8cce; }
    #book .pf-sport.FOOTBALL { background: #c45c9a33; color: #c45c9a; }
    #book .pf-sport.HOCKEY { background: #5a9aa833; color: #5a9aa8; }
    #book .pf-sport.UFC { background: #c45c3a33; color: #e8785a; }
    #book .pf-status {
      font-size: 10px; font-weight: 650; text-transform: uppercase; padding: 2px 6px; border-radius: 4px;
      background: #1a1d16; color: var(--muted);
    }
    #book .pf-status.owned { background: #3d9a5c33; color: #3d9a5c; }
    #book .pf-status.sell { background: #c45c5c33; color: #c45c5c; }
    #book .pf-status.wait { background: #e8c54733; color: #e8c547; }
    #book .pf-status.buy { background: color-mix(in srgb, var(--accent) 25%, transparent); color: var(--accent); }
    #book .pf-owned-card h4, #book .pf-hunt-card h4 { font-size: 15px; font-weight: 650; margin: 6px 0 0; }
    #book .pf-print, #book .pf-card-note { font-size: 12px; color: var(--muted); margin: 4px 0 0; line-height: 1.35; }
    #book .pf-cost { font-size: 13px; color: var(--muted); margin: 8px 0 0; }
    #book .pf-cost b { color: var(--text); }
    #book .pf-desk {
      padding: 16px 18px; border: 1px solid var(--accent); border-radius: 14px;
      background: color-mix(in srgb, var(--paper) 82%, var(--accent) 18%);
      margin: 0 0 16px;
    }
    #book .pf-desk.locked {
      border-color: var(--line); background: var(--paper); opacity: 0.92;
    }
    #book .pf-desk-empty {
      margin: 14px 0 0; padding: 14px 14px 12px;
      border: 1px solid var(--line); border-radius: 10px; background: #0d0e0b;
    }
    #book .pf-desk-empty strong {
      display: block; font-size: 14px; font-weight: 650; margin: 0 0 6px;
    }
    #book .pf-desk-empty p {
      margin: 0; font-size: 13px; color: var(--muted); line-height: 1.4;
    }
    #book .pf-desk-empty .row { margin-top: 12px; justify-content: flex-start; }
    #book .pf-desk-empty .fine { margin-top: 10px; }
    #book .pf-stance {
      display: grid; gap: 12px; grid-template-columns: 1fr;
      margin: 0 0 8px;
    }
    @media (min-width: 640px) {
      #book .pf-stance { grid-template-columns: 1fr 1fr; }
    }
    #book .pf-stance .pf-k { margin-bottom: 6px; }
    #book .pf-desk-head {
      display: flex; flex-wrap: wrap; gap: 10px 16px; justify-content: space-between; margin: 0 0 12px;
    }
    #book .pf-desk-head h2 { font-size: 17px; font-weight: 650; margin: 0; }
    #book .pf-desk-cap {
      font: 650 12px/1.35 "IBM Plex Mono", ui-monospace, monospace;
      color: var(--muted); text-align: right; max-width: 28em;
    }
    #book .pf-season {
      padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px;
      margin: 0 0 14px; background: var(--paper);
    }
    #book .pf-k { font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
    #book .pf-v { font-size: 15px; font-weight: 650; margin: 4px 0 0; }
    #book .pf-budget {
      display: grid; gap: 16px; grid-template-columns: minmax(140px, 180px) 1fr; margin: 0 0 14px;
    }
    @media (max-width: 640px) {
      #book .pf-budget { grid-template-columns: 1fr; }
      #book .pf-owned-grid, #book .pf-hunt-grid { grid-template-columns: 1fr; }
    }
    #book .pf-budget-stats {
      display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); margin: 0 0 10px;
    }
    #book .pf-stat {
      border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--paper);
    }
    #book .pf-stat .v { font: 650 16px/1.2 "IBM Plex Mono", ui-monospace, monospace; margin-top: 4px; }
    #book .pf-legend { margin: 0; padding: 0; list-style: none; }
    #book .pf-legend li {
      display: grid; grid-template-columns: 10px 1fr auto auto; gap: 8px; align-items: center;
      font-size: 12px; padding: 4px 0; border-bottom: 1px solid var(--line);
    }
    #book .pf-legend .swatch { width: 10px; height: 10px; border-radius: 2px; }
    #book .pf-legend .amt { font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--muted); }
    #book .pf-strategy { margin: 0; padding: 0; list-style: none; }
    #book .pf-strategy li {
      font-size: 13px; padding: 3px 0 3px 14px; position: relative; line-height: 1.35;
    }
    #book .pf-strategy li::before {
      content: "·"; position: absolute; left: 0; color: var(--accent); font-weight: 700;
    }
    #book .pf-card-link {
      display: inline-block; margin-top: 8px; font-size: 12px; font-weight: 600; color: var(--accent);
    }
    #book .pf-season .pills { display: flex; flex-wrap: wrap; gap: 6px; }
    #book .pf-hunt-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
    #book .pf-hunt-actions .btn { padding: 7px 12px; font-size: 12px; min-height: 0; }
    #book .pf-window { font-size: 11px; color: var(--accent); margin: 6px 0 0; }
    #book h3.port-h {
      font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); font-weight: 550; margin: 16px 0 8px;
    }
    #book .list.port-cards .card .nums { grid-template-columns: repeat(2, 1fr); }
    #book .list.port-cards .card .why {
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden;
    }
    #book .port-meta-label {
      font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--muted); margin: 22px 0 10px;
    }
    @media (min-width: 720px) {
      .port-grid { grid-template-columns: minmax(200px, 280px) 1fr; align-items: start; }
    }
    .season-strip {
      display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
      padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px;
      background: var(--paper);
    }
    .season-strip .season-empty {
      font-size: 12px; color: var(--muted);
    }
    .season-strip .pill { font-size: 11px; }
    .alloc-card {
      border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px;
      background: var(--paper);
    }
    .alloc-card .alloc-k {
      font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); font-weight: 550; margin: 0 0 10px;
    }
    .alloc-body {
      display: grid; gap: 12px;
      grid-template-columns: 1fr;
      justify-items: center;
      align-items: start;
    }
    .alloc-body .pf-pie-wrap {
      width: 120px; height: 120px; margin: 0 auto;
      overflow: hidden; flex-shrink: 0;
    }
    .alloc-body .pf-pie { width: 120px; height: 120px; }
    .alloc-body .pf-pie-css::after { inset: 26%; }
    .alloc-body .pf-pie-label .pf-pie-total {
      font-size: 11px; max-width: 62%;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .alloc-body .pf-pie-label .pf-pie-sub { font-size: 9px; }
    .alloc-legend { margin: 0; padding: 0; list-style: none; width: 100%; min-width: 0; }
    .alloc-legend li {
      display: grid; grid-template-columns: 10px minmax(0, 1fr) auto auto; gap: 6px 8px;
      align-items: center; font-size: 12px; padding: 4px 0;
      border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
    }
    .alloc-legend li:last-child { border-bottom: 0; }
    .alloc-legend .swatch { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }
    .alloc-legend .name {
      min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .alloc-legend .pct {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--accent);
    }
    .alloc-legend .amt {
      font: 550 11px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--muted);
      white-space: nowrap;
    }
    .alloc-card #allocNote { margin: 8px 0 0; }
    .book-movers {
      display: grid; gap: 8px;
      grid-template-columns: 1fr;
      margin: 0;
    }
    .book-movers .bm-col {
      border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px;
      background: var(--paper); min-width: 0;
    }
    .book-movers .bm-k {
      font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); font-weight: 550; margin: 0 0 8px;
    }
    .book-movers .bm-row {
      display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px;
      align-items: baseline; padding: 3px 0;
      font-size: 13px; text-decoration: none; color: inherit;
      border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
    }
    .book-movers .bm-row:last-child { border-bottom: 0; }
    .book-movers .bm-row:hover .bm-name { color: var(--accent); }
    .book-movers .bm-name {
      min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      font-weight: 550;
    }
    .book-movers .bm-pct {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; white-space: nowrap;
    }
    .book-movers .bm-pct.up { color: #3d9a5c; }
    .book-movers .bm-pct.down { color: #c45c5c; }
    .book-movers .bm-empty { font-size: 12px; color: var(--muted); margin: 0; }
    .cash-picks { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 12px 0 0; }
    .cash-notes { color: var(--muted); font-size: 13px; margin: 0 0 8px; line-height: 1.45; max-width: 42em; }
    .cash-notes ul { margin: 0 0 14px; padding-left: 18px; }
    .cash-notes li { margin: 0 0 6px; }
    .cash-pick {
      display: grid;
      grid-template-columns: auto 1fr auto;
      gap: 8px 10px; align-items: center;
      background: #11130e; border: 1px solid var(--line); border-radius: 10px;
      padding: 8px 10px; color: inherit; text-decoration: none;
    }
    .cash-pick:hover { text-decoration: none; border-color: #4a5040; }
    .cash-pick .name { font-weight: 650; }
    .cash-pick .set { color: var(--muted); font-size: 12px; }
    .cash-pick .ask {
      text-align: right;
      font-family: "IBM Plex Mono", ui-monospace, monospace; font-weight: 650;
    }
    .cash-pick .ask i { display: block; font-style: normal; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
    .cash-pick .venues {
      grid-column: 1 / -1;
      display: flex; flex-wrap: wrap; gap: 6px 12px;
      color: var(--muted); font-size: 12px;
    }
    .cash-pick .venues b { color: var(--text); font-weight: 650; }
    .cash-pick .why {
      grid-column: 1 / -1; color: var(--muted); font-size: 12px; margin: 0; line-height: 1.4;
    }
    .plan-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 0 0 18px; }
    .cycle-wrap.tight { margin-bottom: 18px; }
    .plan-card {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 14px 16px;
    }
    .plan-card h3 {
      margin: 0 0 8px; font-size: 11px; letter-spacing: 0.08em;
      text-transform: uppercase; color: var(--muted);
    }
    .plan-card ul { margin: 0; padding-left: 16px; }
    .plan-card li { margin: 0 0 6px; }
    .plan-card a { font-weight: 650; }
    .chart-frame {
      position: relative;
      background: #0c0e0a;
      border: 1px solid var(--line);
      border-radius: 10px;
      overflow: hidden;
    }
    .chart-card svg.equity {
      width: 100%; height: auto; display: block;
      aspect-ratio: 720 / 280;
    }
    .eq-tip {
      position: absolute; pointer-events: none; z-index: 2;
      background: #171910; border: 1px solid var(--line);
      border-radius: 8px; padding: 8px 10px; min-width: 132px;
      box-shadow: 0 10px 28px rgba(0,0,0,0.45);
      font-size: 12px; line-height: 1.35;
    }
    .eq-tip[hidden] { display: none; }
    .eq-tip .d {
      color: var(--muted); font-size: 10px; font-weight: 700;
      letter-spacing: 0.07em; text-transform: uppercase; margin-bottom: 6px;
    }
    .eq-tip .r {
      display: flex; justify-content: space-between; gap: 14px;
      font-family: "IBM Plex Mono", ui-monospace, monospace; font-weight: 650;
    }
    .eq-tip .r span { color: var(--muted); font-weight: 500; }
    .eq-tip .r.up { color: var(--hold); }
    .eq-tip .r.down { color: var(--sell); }
    .eq-hit { cursor: crosshair; }
    .chart-leg {
      display: flex; gap: 16px; flex-wrap: wrap; align-items: center;
      color: var(--muted); font-size: 11px; margin-top: 10px;
    }
    .chart-leg i {
      display: inline-block; width: 16px; height: 3px; border-radius: 2px;
      vertical-align: middle; margin-right: 6px;
    }
    .chart-leg i.cost { border-top: 2px dashed var(--muted); height: 0; background: none; border-radius: 0; }
    .chart-leg i.markline { background: var(--hold); }
    .chart-leg i.pnl {
      height: 8px; width: 12px; border-radius: 2px;
      background: linear-gradient(180deg, rgba(125,206,154,0.45), rgba(125,206,154,0.08));
    }
    #card h3, #product h3 {
      font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase;
      color: var(--muted); margin: 22px 0 6px;
    }
    table.markets th, table.markets td {
      padding: 8px 10px; border-bottom: 1px solid var(--line);
      text-align: left; font-size: 13px; vertical-align: top;
    }
    table.markets th {
      color: var(--muted); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
    }
    table.markets .num {
      text-align: right; font-family: "IBM Plex Mono", ui-monospace, monospace;
      font-variant-numeric: tabular-nums;
    }
    table.markets .desc { color: var(--muted); font-size: 12px; }
    .popbar { width: 72px; }
    .popbar i { display: block; height: 8px; background: var(--accent); border-radius: 2px; }
    .viz-panel {
      border: 1px solid var(--line); border-radius: 14px; padding: 14px;
      background:
        radial-gradient(120% 80% at 0% 0%, rgba(215,255,60,0.07), transparent 55%),
        linear-gradient(165deg, #141710 0%, var(--paper, #12140f) 55%, #0e100c 100%);
      margin: 0 0 16px;
    }
    .viz-panel .viz-k {
      font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); font-weight: 550; margin: 0 0 6px;
    }
    .viz-panel .viz-title {
      font-size: 16px; font-weight: 650; margin: 0 0 10px;
    }
    .viz-kpis {
      display: grid; gap: 8px;
      grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
      margin: 0 0 14px;
    }
    .viz-kpi {
      border: 1px solid var(--line); border-radius: 10px; padding: 10px;
      text-align: center;
    }
    .viz-kpi i {
      display: block; font-style: normal; font-size: 10px; letter-spacing: 0.04em;
      text-transform: uppercase; color: var(--muted);
    }
    .viz-kpi b {
      display: block; margin-top: 4px;
      font: 650 18px/1.15 "IBM Plex Mono", ui-monospace, monospace;
    }
    .viz-kpi.gem b { color: var(--accent); }
    .viz-grid {
      display: grid; gap: 16px;
      grid-template-columns: minmax(140px, 200px) minmax(0, 1fr);
      align-items: center; margin: 0 0 12px;
    }
    @media (max-width: 640px) {
      .viz-grid { grid-template-columns: 1fr; justify-items: center; }
    }
    .viz-legend {
      margin: 0; padding: 0; list-style: none; font-size: 12px; width: 100%;
    }
    .viz-legend li {
      display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 8px;
      align-items: center; padding: 3px 0;
      border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
    }
    .viz-legend li:last-child { border-bottom: 0; }
    .viz-legend .sw { width: 10px; height: 10px; border-radius: 2px; }
    .viz-bars { display: grid; gap: 8px; margin: 0 0 8px; }
    .viz-bar-row {
      display: grid; grid-template-columns: 64px minmax(0, 1fr) 52px; gap: 8px;
      align-items: center; font-size: 12px;
    }
    .viz-bar-row .track {
      height: 10px; border-radius: 5px; background: var(--line); overflow: hidden;
    }
    .viz-bar-row .track > i {
      display: block; height: 100%; border-radius: 5px; font-style: normal;
    }
    .viz-bar-row .amt {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; text-align: right;
    }
    .viz-comp-chart {
      width: 100%; height: auto; display: block; margin: 0 0 12px;
      cursor: crosshair;
    }
    .viz-pie { display: block; color: var(--ink); max-width: 100%; }
    .comp-feed { display: grid; gap: 10px; margin: 12px 0 0; }
    .comp-sale {
      display: grid; grid-template-columns: 56px minmax(0, 1fr) auto;
      gap: 12px; align-items: center;
      border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px;
      background: var(--paper);
    }
    .comp-sale .comp-thumb {
      width: 56px; height: 78px; border-radius: 6px; overflow: hidden;
      background: var(--line); display: grid; place-items: center;
    }
    .comp-sale .comp-thumb img {
      width: 100%; height: 100%; object-fit: cover; display: block;
    }
    .comp-sale .comp-thumb .ph {
      font-size: 10px; color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase;
    }
    .comp-sale .comp-body { min-width: 0; }
    .comp-sale .comp-title {
      font-size: 13px; font-weight: 550; line-height: 1.3; margin: 0 0 4px;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
    .comp-sale .comp-title a { color: inherit; text-decoration: none; }
    .comp-sale .comp-title a:hover { color: var(--accent); }
    .comp-sale .comp-meta {
      font-size: 12px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 6px 10px;
    }
    .comp-sale .comp-meta .pillish {
      display: inline-block; padding: 1px 6px; border-radius: 4px;
      border: 1px solid var(--line); font-size: 11px;
    }
    .comp-sale .comp-px {
      text-align: right; font: 650 16px/1.1 "IBM Plex Mono", ui-monospace, monospace;
      white-space: nowrap;
    }
    .comp-sale .comp-px small {
      display: block; margin-top: 4px; font: 500 11px/1 var(--font, inherit);
      color: var(--muted); font-weight: 500;
    }
    @media (max-width: 520px) {
      .comp-sale { grid-template-columns: 48px minmax(0, 1fr); }
      .comp-sale .comp-px { grid-column: 2; text-align: left; margin-top: 2px; }
      .comp-sale .comp-thumb { width: 48px; height: 66px; }
    }
    .comp-src-bars { display: grid; gap: 6px; margin: 8px 0 0; }
    .comp-src-bars .viz-bar-row { grid-template-columns: 88px minmax(0, 1fr) 36px; }
    .viz-blurb {
      font-size: 13px; line-height: 1.4; margin: 0 0 10px;
    }
    .viz-fine { font-size: 12px; color: var(--muted); margin: 8px 0 0; line-height: 1.35; }
    .spark { width: 100%; height: 40px; display: block; margin: 8px 0 14px; }
    .price-chart { width: 100%; height: 200px; display: block; margin: 0 0 16px; }
    .chart-trends {
      display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center;
      margin: 0 0 8px; font-size: 13px; font-family: "IBM Plex Mono", ui-monospace, monospace;
    }
    .chart-trend {
      padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line);
      background: #14170f; color: var(--muted);
    }
    .chart-trend.up { color: var(--hold); border-color: rgba(125, 206, 154, 0.35); }
    .chart-trend.down { color: var(--sell); border-color: rgba(255, 107, 107, 0.35); }
    .chart-trend.flat { color: var(--muted); }
    .warn { color: var(--watch); font-size: 13px; }
    .hint { color: var(--muted); font-size: 12px; margin: 8px 0 16px; }
    .heatstrip {
      display: flex; gap: 1px; height: 12px; width: 96px; margin-top: 8px;
    }
    .heatstrip i { flex: 1; border-radius: 1px; background: #1a1d16; min-width: 0; }
    .heat-block { margin: 12px 0 18px; }
    .heat-block h3 { margin: 0 0 6px; }
    .heat-legend {
      display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
      color: var(--muted); font-size: 11px; margin: 0 0 8px;
    }
    .heat-swatch { display: flex; gap: 1px; width: 72px; height: 8px; }
    .heat-swatch i { flex: 1; }
    .heat-wrap { display: flex; gap: 6px; align-items: flex-start; overflow-x: auto; padding-bottom: 4px; }
    .heat-dows {
      display: grid; grid-template-rows: 14px repeat(7, 11px); gap: 2px;
      color: var(--muted); font-size: 9px; line-height: 11px; text-align: right;
      width: 12px; flex: 0 0 12px;
    }
    .heat-cal {
      display: grid;
      grid-template-rows: 14px repeat(7, 11px);
      grid-auto-flow: column;
      grid-auto-columns: 11px;
      gap: 2px;
    }
    .heat-cal .mlabel {
      font-size: 10px; color: var(--muted); line-height: 14px;
      white-space: nowrap; overflow: visible;
    }
    .heat-cell {
      width: 11px; height: 11px; border-radius: 2px; background: #1a1d16;
    }
    .heat-cell.has { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); }
    .card.has-menu { position: relative; padding: 0; display: flex; align-items: flex-start; }
    .card.has-menu > .thumb {
      margin: 12px 0 12px 12px; z-index: 2; flex: 0 0 56px;
    }
    .card-stack {
      flex: 1; min-width: 0; display: flex; flex-direction: column;
    }
    .card-main {
      display: flex; gap: 12px; align-items: flex-start;
      padding: 12px 48px 12px 12px;
      color: inherit; text-decoration: none; font-weight: 500;
      flex: 1; min-width: 0;
    }
    .card-stack > .card-main { flex: 0 0 auto; }
    .card-stack > .conf-wrap {
      margin: 0 48px 12px 12px;
    }
    #book .list.port-cards .card-stack > .conf-wrap {
      margin-top: -2px;
    }
    #book .list.port-cards button.conf-item {
      padding: 8px 10px; min-height: 40px;
    }
    #book .list.port-cards button.conf-item .s { font-size: 11px; }
    #book .list.port-cards .confbox {
      margin-top: 8px; padding: 10px 12px;
      border: 1px solid var(--line); border-radius: 10px; background: #0d0e0b;
    }
    .card-main .body { flex: 1; min-width: 0; }
    .thumb {
      position: relative;
      width: 56px; height: 78px; flex: 0 0 56px;
      border-radius: 7px; overflow: hidden;
      background: radial-gradient(120% 90% at 50% 18%, #2a3414 0%, #12140f 62%, #0b0c09 100%);
      border: 1px solid #3a4228;
      box-shadow: inset 0 0 0 1px rgba(215,255,60,0.08), 0 6px 16px rgba(0,0,0,0.28);
      display: flex; align-items: center; justify-content: center;
    }
    .thumb.sm { width: 40px; height: 56px; flex-basis: 40px; border-radius: 5px; }
    .thumb.lg { width: 108px; height: 150px; flex-basis: 108px; border-radius: 10px; }
    .thumb svg { width: 22px; height: 22px; pointer-events: none; }
    .thumb.sm svg { width: 16px; height: 16px; }
    .thumb.lg svg { width: 36px; height: 36px; }
    .thumb img {
      position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%;
      object-fit: cover; background: #12140f;
    }
    .hero { display: flex; gap: 16px; align-items: flex-start; margin: 4px 0 14px; }
    .hero .copy { flex: 1; min-width: 0; }
    .hero .copy h1 { margin-top: 0; }
    .p-kpis {
      display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px;
      margin: 0 0 16px;
    }
    .p-kpi {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 10px; padding: 12px 12px 10px;
    }
    .p-kpi i {
      display: block; color: var(--muted); font-style: normal;
      font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700;
    }
    .p-kpi b {
      display: block; margin-top: 6px;
      font: 650 22px/1.15 "IBM Plex Mono", ui-monospace, monospace;
    }
    .p-kpi b.up { color: var(--hold); }
    .p-kpi b.down { color: var(--sell); }
    .p-kpi .sub { color: var(--muted); font-size: 11px; margin-top: 4px; }
    .p-tabs {
      display: flex; gap: 2px; flex-wrap: wrap;
      border-bottom: 1px solid var(--line); margin: 0 0 16px;
    }
    .p-tabs button {
      background: transparent; border: 0; border-bottom: 2px solid transparent;
      border-radius: 0; min-height: 0; padding: 10px 12px; color: var(--muted);
      font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; font-size: 11px;
    }
    .p-tabs button.on { color: var(--accent); border-bottom-color: var(--accent); }
    .p-pane[hidden] { display: none !important; }
    .product-section-k {
      font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--muted); font-weight: 650; margin: 16px 0 8px;
    }
    .product-section-k:first-of-type { margin-top: 0; }
    .price-board {
      border: 1px solid var(--line); border-radius: 12px;
      background: var(--paper); padding: 12px 14px; margin: 0 0 12px;
    }
    .price-board .grade-bar {
      margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line);
    }
    .price-grid {
      display: grid; grid-template-columns: 1.05fr 1.35fr; gap: 12px;
      align-items: start;
    }
    .mid-block .k {
      font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
      color: var(--muted); font-weight: 650; margin: 0 0 4px;
    }
    .mid-block .v {
      font: 650 28px/1.1 "IBM Plex Mono", ui-monospace, monospace;
      margin: 0 0 4px;
    }
    .mid-block .s { font-size: 12px; color: var(--muted); margin: 0; }
    .desk-mini .pf-prices {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
    }
    .desk-mini .pf-prices span {
      text-align: center; border: 1px solid var(--line); border-radius: 8px; padding: 10px 6px;
    }
    .desk-mini .pf-prices label {
      display: block; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase;
      color: var(--muted); font-weight: 650; margin: 0 0 6px;
    }
    .desk-mini .pf-prices b {
      font: 650 22px/1.05 "IBM Plex Mono", ui-monospace, monospace;
    }
    .desk-mini .bid b { color: #3d9a5c; }
    .desk-mini .fair b { color: var(--accent); }
    .desk-mini .pass b { color: #c45c5c; }
    .price-listed {
      display: flex; flex-wrap: wrap; gap: 8px 14px;
      margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--line);
      font-size: 13px;
    }
    .price-listed span { color: var(--muted); }
    .price-listed b { color: var(--text); font-weight: 650; }
    .price-board .desk-note {
      margin: 10px 0 0; font-size: 13px; line-height: 1.4; font-weight: 550;
    }
    .price-board .desk-sub {
      margin: 4px 0 0; font-size: 12px; color: var(--muted); line-height: 1.35;
    }
    .verdict {
      border: 1px solid var(--line); border-radius: 12px;
      background: var(--paper); padding: 12px 14px; margin: 0 0 14px;
    }
    .verdict .lead { margin: 0 0 6px; font-size: 14px; line-height: 1.4; }
    .verdict .meta { margin: 0; font-size: 12px; color: var(--muted); }
    .verdict-row {
      display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
      margin-top: 10px;
    }
    .verdict .conf-wrap { margin: 0; }
    .verdict .conf-item {
      border: 1px solid var(--line); background: #0d0e0b;
      border-radius: 8px; padding: 7px 10px; min-height: 0;
    }
    .price-chart-wrap {
      border: 1px solid var(--line); border-radius: 14px;
      background:
        radial-gradient(120% 80% at 0% 0%, rgba(215,255,60,0.07), transparent 55%),
        linear-gradient(165deg, #141710 0%, var(--paper, #12140f) 55%, #0e100c 100%);
      padding: 14px 14px 10px; margin: 0 0 12px;
      overflow: visible; position: relative;
    }
    .price-chart-wrap h3 {
      margin: 0 0 4px; font: 650 12px/1.2 inherit;
      letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted);
    }
    .price-chart-wrap .lede { margin: 0 0 10px; font-size: 12px; color: var(--muted); }
    svg.price-chart {
      display: block; width: 100%; height: auto; min-height: 200px;
      color: var(--text); border-radius: 8px; cursor: crosshair; touch-action: none;
    }
    @media (max-width: 560px) {
      .price-grid { grid-template-columns: 1fr; }
      .desk-advice .pf-prices { grid-template-columns: repeat(2, 1fr); }
    }
    .p-analytics {
      display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px;
      margin: 0 0 16px;
    }
    .p-analytics .cell {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 10px; padding: 12px;
    }
    .p-analytics h3 { margin: 0 0 6px; }
    .p-analytics p { margin: 0; color: var(--muted); font-size: 13px; }
    .hero-shots { display: flex; gap: 10px; flex: 0 0 auto; }
    .hero-art-col { display: flex; flex-direction: column; gap: 8px; flex: 0 0 auto; align-items: stretch; }
    .hero-art-actions { display: flex; gap: 6px; }
    .hero-art-actions button {
      flex: 1; min-height: 32px; padding: 6px 8px; font-size: 12px; font-weight: 700;
      letter-spacing: 0.04em;
    }
    .hero .thumb { cursor: zoom-in; }
    .thumb[data-face]::after {
      content: attr(data-face);
      position: absolute; left: 6px; bottom: 6px; z-index: 2;
      font: 700 9px/1 "IBM Plex Sans", sans-serif;
      letter-spacing: 0.08em; text-transform: uppercase;
      color: #d7ff3c; background: rgba(12,14,10,0.78);
      padding: 3px 5px; border-radius: 4px;
    }
    .thumb.zoomable, .thumb.zoomable img { cursor: zoom-in; }
    .thumb.zoomable:hover, .hero .thumb:hover { border-color: var(--accent); }
    #zoom {
      display: none;
      position: fixed; top: 0; left: 0; right: 0; bottom: 0;
      z-index: 2147483647;
      background: rgba(5, 6, 4, 0.92);
      align-items: center; justify-content: center;
      padding: 28px 20px;
      margin: 0; border: 0;
    }
    #zoom.on { display: flex !important; }
    #zoom img {
      width: auto; height: auto;
      max-width: 96vw; max-height: 92vh;
      object-fit: contain; border-radius: 8px;
      box-shadow: 0 16px 48px rgba(0,0,0,0.55);
    }
    #zoom .zoom-close, #spin .spin-close {
      position: absolute; top: 14px; right: 14px;
      min-height: 0; padding: 8px 12px; z-index: 2;
    }
    #spin {
      display: none;
      position: fixed; top: 0; left: 0; right: 0; bottom: 0;
      z-index: 2147483647;
      background: rgba(5, 6, 4, 0.94);
      flex-direction: column; align-items: center; justify-content: center;
      padding: 56px 16px 28px; gap: 14px;
      margin: 0; border: 0;
    }
    #spin.on { display: flex !important; }
    .spin-stage {
      width: min(320px, 78vw); height: min(448px, 68vh);
      perspective: 1200px; cursor: grab; touch-action: none;
      user-select: none;
    }
    .spin-stage.dragging { cursor: grabbing; }
    .spin-card {
      position: relative; width: 100%; height: 100%;
      transform-style: preserve-3d;
      transition: transform 0.08s linear;
    }
    .spin-face {
      position: absolute; inset: 0;
      backface-visibility: hidden; -webkit-backface-visibility: hidden;
      border-radius: 12px; overflow: hidden;
      background: #12140f;
      box-shadow: 0 16px 40px rgba(0,0,0,0.45);
      display: flex; align-items: center; justify-content: center;
    }
    .spin-face img {
      width: 100%; height: 100%; object-fit: contain;
      background: #090a08; pointer-events: none;
    }
    .spin-face.back { transform: rotateY(180deg); }
    .spin-face.brand-back {
      background:
        radial-gradient(ellipse at 50% 28%, rgba(215, 255, 60, 0.16), transparent 55%),
        linear-gradient(165deg, #1a1c14 0%, #090a08 55%, #12140f 100%);
      color: #f2f0ea;
      flex-direction: column;
      gap: 14px;
      padding: 28px 20px;
      text-align: center;
    }
    .spin-face.brand-back img { display: none; }
    .spin-brand {
      display: none; flex-direction: column; align-items: center; justify-content: center;
      gap: 12px; width: 100%; height: 100%;
    }
    .spin-face.brand-back .spin-brand { display: flex; }
    .spin-brand-mark {
      width: 72px; height: 72px; border-radius: 16px;
      background: #090a08;
      box-shadow: 0 0 0 1px rgba(215,255,60,0.28), 0 10px 28px rgba(0,0,0,0.4);
      display: flex; align-items: center; justify-content: center;
    }
    .spin-brand-mark svg { width: 44px; height: 44px; display: block; }
    .spin-brand-name {
      margin: 0; font: 600 40px/1 Fraunces, Georgia, serif;
      letter-spacing: -0.02em; color: #f2f0ea;
    }
    .spin-brand-tag {
      margin: 0; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--accent); font-weight: 700;
    }
    .spin-hint { color: rgba(242,240,234,0.72); font-size: 13px; text-align: center; margin: 0; }
    .spin-hint b { color: #fff; }
    .spin-tools { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
    .spin-tools button { min-height: 36px; }
    #demoNotice {
      display: none;
      position: fixed; inset: 0; z-index: 100000;
      background: rgba(5, 6, 4, 0.88);
      align-items: center; justify-content: center;
      padding: 24px 16px;
    }
    #demoNotice.on { display: flex; }
    .notice-card {
      width: min(440px, 100%);
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 22px 20px 18px;
    }
    .notice-kicker {
      color: var(--accent);
      font: 700 11px/1 "IBM Plex Sans", sans-serif;
      letter-spacing: 0.08em; text-transform: uppercase;
      margin: 0 0 8px;
    }
    #demoNotice h2 {
      font-family: Fraunces, Georgia, serif;
      font-size: clamp(24px, 5vw, 28px);
      font-weight: 500; letter-spacing: -0.03em;
      line-height: 1.15; margin: 0 0 12px;
    }
    #demoNotice p { color: var(--muted); margin: 0 0 12px; }
    #demoNotice p:last-of-type { margin-bottom: 18px; }
    #demoNotice button.primary { width: 100%; }
    .est-fair {
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 16px 16px 14px; margin: 0 0 16px;
    }
    .est-fair .k { color: var(--muted); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; }
    .est-fair .v {
      font: 650 36px/1.1 "IBM Plex Mono", ui-monospace, monospace;
      margin: 4px 0 6px;
    }
    .est-fair .band { font: 650 16px/1.3 "IBM Plex Mono", ui-monospace, monospace; color: var(--muted); }
    .est-fair .math { color: var(--muted); font-size: 13px; margin: 8px 0 0; }
    .est-hits { display: none; margin: 8px 0 14px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
    .est-hits.on { display: block; }
    .est-hits button {
      display: block; width: 100%; text-align: left; border: 0; border-radius: 0;
      padding: 10px 12px; background: var(--paper);
    }
    .est-hits button:hover { background: #1a1d16; }
    .est-hits .name { font-weight: 650; }
    .est-hits .meta { color: var(--muted); font-size: 12px; }
    .est-picked {
      display: none; gap: 12px; align-items: flex-start;
      background: var(--paper); border: 1px solid var(--line);
      border-radius: 12px; padding: 12px; margin: 0 0 16px;
    }
    .est-picked.on { display: flex; }
    #estimate table, #study table { width: 100%; border-collapse: collapse; margin: 8px 0 16px; }
    #estimate td, #study td {
      padding: 8px 0; border-bottom: 1px solid var(--line); vertical-align: top;
    }
    #estimate td:first-child, #study td:first-child { font-weight: 650; white-space: nowrap; width: 28%; }
    #estimate td .mult { font: 650 13px/1.3 "IBM Plex Mono", ui-monospace, monospace; color: var(--accent); }
    #study .study-lead { margin: 10px 0 0; }
    #study .study-lead p { margin: 0 0 8px; }
    #study .study-lead p:last-child { margin-bottom: 0; }
    .study-chart { margin: 0 0 16px; }
    .study-chart svg { width: 100%; height: auto; display: block; }
    .study-chart .keys { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0 0; }
    .study-chart .keys button {
      display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted);
      background: transparent; border: 0; padding: 0; cursor: pointer; font: inherit;
    }
    .study-chart .keys button.off { opacity: 0.35; text-decoration: line-through; }
    .study-chart .keys i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
    .pill.gain { background: #1a2a14; color: var(--accent); }
    .study-filters { margin: 0 0 10px; }
    .study-body { display: flex; flex-direction: column; }
    .study-tape { margin: 0 0 16px; }
    .study-tape .study-chart { margin-bottom: 8px; }
    .study-tape .study-filters { margin: 0 0 10px; }
    .study-nums-scroll {
      overflow-x: auto; -webkit-overflow-scrolling: touch;
      margin: 0 -4px; padding: 0 4px 2px;
    }
    .study-nums-scroll .study-nums { margin-bottom: 8px; min-width: 520px; }
    .study-context { display: flex; flex-direction: column; }
    .study-news { margin: 0 0 20px; }
    .study-news a {
      display: block; padding: 10px 0; border-bottom: 1px solid var(--line);
      color: inherit; text-decoration: none;
    }
    .study-news a:hover { color: var(--hold); }
    .study-news .src { color: var(--muted); font-size: 12px; margin-top: 4px; }
    .study-vol { margin: 0 0 16px; }
    .study-vol .bars {
      display: flex; align-items: flex-end; gap: 3px; height: 92px; margin: 10px 0 6px;
    }
    .study-vol .bar {
      flex: 1; background: #2a3320; min-height: 3px; border-radius: 2px 2px 0 0;
    }
    .study-vol .bar.partial { opacity: 0.4; outline: 1px dashed #6a7a50; outline-offset: -1px; }
    .study-nums { width: 100%; border-collapse: collapse; margin: 0 0 16px; }
    .study-nums th {
      text-align: left; padding: 7px 8px 7px 0; border-bottom: 1px solid var(--line);
      color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700;
    }
    .study-nums td {
      padding: 8px 8px 8px 0; border-bottom: 1px solid var(--line);
      vertical-align: middle; font-size: 13px; width: auto;
    }
    .study-nums td.num, .study-nums th.num {
      text-align: right; padding-right: 0;
      font: 650 13px/1.3 "IBM Plex Mono", ui-monospace, monospace; white-space: nowrap;
    }
    .study-nums td.name { font-weight: 650; white-space: normal; }
    .study-nums .dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 7px; }
    .study-nums .up { color: #7dce9a; }
    .study-nums .down { color: #ff6b6b; }
    .study-nums .flat { color: var(--muted); }
    .admin-stats {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
      gap: 10px; margin: 0 0 28px;
    }
    .admin-stats .stat {
      background: var(--paper); border: 1px solid var(--line); border-radius: 10px;
      padding: 12px 14px;
    }
    .admin-stats .k { font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
    .admin-stats .v { font: 650 20px/1.2 "IBM Plex Mono", ui-monospace, monospace; margin-top: 4px; }
    .admin-form label, .admin-notes > label { display: block; margin: 10px 0 4px; font-size: 13px; color: var(--muted); }
    .admin-form input, .admin-notes input[type="email"] {
      width: 100%; max-width: 420px; box-sizing: border-box;
    }
    .admin-log {
      margin: 12px 0 0; padding: 12px; background: #12140f; color: #d7ff3c;
      border-radius: 8px; font: 12px/1.45 "IBM Plex Mono", ui-monospace, monospace;
      white-space: pre-wrap; max-height: 240px; overflow: auto;
    }
    #adminUsers { margin: 0 0 40px; overflow-x: auto; }
    #adminUsers table { width: 100%; border-collapse: collapse; font-size: 13px; }
    #adminUsers th, #adminUsers td {
      text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line); vertical-align: top;
    }
    #adminUsers th { color: var(--muted); font-weight: 550; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; }
    #adminUsers .acts { display: flex; flex-wrap: wrap; gap: 6px; }
    #adminUsers .acts button { font-size: 12px; padding: 4px 8px; }
    #adminUsers .tag-admin {
      display: inline-block; margin-left: 6px; font-size: 10px; padding: 1px 6px;
      border-radius: 4px; background: var(--accent); color: #111; font-weight: 650;
    }
    #investList .card .invest-why, #autosList .card .invest-why, #huntList .card .invest-why {
      margin: 8px 0 0; font-size: 12px; color: var(--muted); line-height: 1.35;
    }
    #investList .card .invest-score, #autosList .card .invest-score, #huntList .card .invest-score {
      font: 650 12px/1.2 "IBM Plex Mono", ui-monospace, monospace; color: var(--accent);
    }
    .portfolio-board { margin: 0 0 18px; }
    .portfolio-board .pf-now {
      padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px;
      background: color-mix(in srgb, var(--paper) 88%, var(--accent) 12%);
      margin: 0 0 12px;
    }
    .portfolio-board .pf-now .pf-k {
      font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted);
    }
    .portfolio-board .pf-now .pf-v { font-size: 15px; font-weight: 650; margin: 4px 0 0; line-height: 1.35; }
    .portfolio-board .pf-months {
      display: grid; gap: 8px;
      grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
      margin: 0 0 12px;
    }
    .portfolio-board .pf-month {
      border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px;
    }
    .portfolio-board .pf-month.now { border-color: var(--accent); }
    .portfolio-board .pf-month .m { font-weight: 650; margin: 0 0 4px; }
    .portfolio-board .pf-month .d {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--accent);
    }
    .portfolio-board .pf-month .a { font-size: 12px; color: var(--muted); margin: 6px 0 0; line-height: 1.3; }
    .portfolio-board .pf-bucket, .portfolio-board .pf-skip {
      margin: 0 0 12px; padding: 0; list-style: none;
    }
    .portfolio-board .pf-bucket li, .portfolio-board .pf-skip li {
      font-size: 13px; padding: 4px 0;
      border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
    }
    .portfolio-board .pf-bucket li b {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--accent);
      margin-right: 8px;
    }
    .portfolio-board h3 {
      font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); font-weight: 550; margin: 14px 0 8px;
    }
    .portfolio-board .pf-desk {
      padding: 14px 16px; border: 1px solid var(--accent); border-radius: 12px;
      background: color-mix(in srgb, var(--paper) 82%, var(--accent) 18%);
      margin: 0 0 16px;
    }
    .portfolio-board .pf-desk-head {
      display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: baseline;
      justify-content: space-between; margin: 0 0 10px;
    }
    .portfolio-board .pf-desk-head h2 {
      font-size: 16px; font-weight: 650; margin: 0; letter-spacing: -0.01em;
    }
    .portfolio-board .pf-desk-cap {
      font: 650 12px/1.3 "IBM Plex Mono", ui-monospace, monospace; color: var(--muted);
    }
    .portfolio-board .pf-desk-cap b { color: var(--accent); }
    .portfolio-board .pf-strategy {
      margin: 0 0 12px; padding: 0; list-style: none;
    }
    .portfolio-board .pf-strategy li {
      font-size: 13px; padding: 3px 0 3px 14px; position: relative; line-height: 1.35;
    }
    .portfolio-board .pf-strategy li::before {
      content: "·"; position: absolute; left: 0; color: var(--accent); font-weight: 700;
    }
    .portfolio-board .pf-hunt {
      width: 100%; border-collapse: collapse; font-size: 12px; margin: 0 0 12px;
    }
    .portfolio-board .pf-hunt th, .portfolio-board .pf-hunt td {
      text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line);
      vertical-align: top;
    }
    .portfolio-board .pf-hunt th {
      font-size: 10px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); font-weight: 550;
    }
    .portfolio-board .pf-hunt .pf-money {
      font: 650 12px/1.2 "IBM Plex Mono", ui-monospace, monospace; white-space: nowrap;
    }
    .portfolio-board .pf-hunt .pf-money.bid { color: #3d9a5c; }
    .portfolio-board .pf-hunt .pf-money.fair { color: var(--accent); }
    .portfolio-board .pf-hunt .pf-money.pass { color: #c45c5c; }
    .portfolio-board .pf-hunt .pf-note { color: var(--muted); font-size: 11px; line-height: 1.3; max-width: 220px; }
    .portfolio-board .pf-status {
      display: inline-block; font-size: 10px; font-weight: 650; letter-spacing: 0.03em;
      text-transform: uppercase; padding: 2px 6px; border-radius: 4px;
    }
    .portfolio-board .pf-status.offer { background: #3d9a5c33; color: #3d9a5c; }
    .portfolio-board .pf-status.buy { background: color-mix(in srgb, var(--accent) 25%, transparent); color: var(--accent); }
    .portfolio-board .pf-status.watch { background: #6b8cce33; color: #6b8cce; }
    .portfolio-board .pf-status.optional { background: var(--line); color: var(--muted); }
    .portfolio-board .pf-status.owned { background: #3d9a5c33; color: #3d9a5c; }
    .portfolio-board .pf-status.pending { background: #f0a04033; color: #f0a040; }
    .portfolio-board .pf-status.exit { background: #c45c5c33; color: #c45c5c; }
    .portfolio-board .pf-owned-grid {
      display: grid; gap: 10px; margin: 0 0 14px;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    }
    .portfolio-board .pf-owned-card {
      border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; background: var(--paper);
    }
    .portfolio-board .pf-owned-card .pf-cost {
      font-size: 13px; color: var(--muted); margin: 6px 0 0;
    }
    .portfolio-board .pf-owned-card .pf-cost b { color: var(--text); }
    .portfolio-board .pf-budget {
      display: grid; gap: 16px;
      grid-template-columns: minmax(140px, 180px) 1fr;
      align-items: start; margin: 0 0 14px;
    }
    @media (max-width: 640px) {
      .portfolio-board .pf-budget { grid-template-columns: 1fr; }
    }
    .portfolio-board .pf-pie-wrap,
    .pf-pie-wrap {
      display: flex; justify-content: center; position: relative;
      overflow: hidden;
    }
    .portfolio-board .pf-pie,
    .pf-pie {
      width: 168px; height: 168px; display: block; border-radius: 50%;
      position: relative;
    }
    .portfolio-board .pf-pie-css,
    .pf-pie-css {
      box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--line) 80%, transparent);
    }
    .portfolio-board .pf-pie-css::after,
    .pf-pie-css::after {
      content: ""; position: absolute; inset: 22%;
      border-radius: 50%; background: var(--paper);
      box-shadow: 0 0 0 1px color-mix(in srgb, var(--line) 60%, transparent);
    }
    .portfolio-board .pf-pie-label,
    .pf-pie-label {
      position: absolute; inset: 0; display: flex; flex-direction: column;
      align-items: center; justify-content: center; pointer-events: none;
    }
    .portfolio-board .pf-pie-label .pf-pie-total,
    .pf-pie-label .pf-pie-total {
      font: 650 13px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--ink, var(--text));
      max-width: 58%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      text-align: center;
    }
    .portfolio-board .pf-pie-label .pf-pie-sub,
    .pf-pie-label .pf-pie-sub {
      font: 550 10px/1 var(--sans, system-ui); color: var(--muted); margin-top: 2px;
    }
    .portfolio-board .pf-budget-stats {
      display: grid; gap: 8px;
      grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
      margin: 0 0 10px;
    }
    .portfolio-board .pf-stat {
      border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px;
      background: var(--paper);
    }
    .portfolio-board .pf-stat .k {
      font-size: 10px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted);
    }
    .portfolio-board .pf-stat .v {
      font: 650 16px/1.2 "IBM Plex Mono", ui-monospace, monospace; margin: 4px 0 0;
    }
    .portfolio-board .pf-legend { margin: 0; padding: 0; list-style: none; }
    .portfolio-board .pf-legend li {
      display: grid; grid-template-columns: 10px 1fr auto auto; gap: 8px;
      align-items: center; font-size: 12px; padding: 4px 0;
      border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
    }
    .portfolio-board .pf-legend .swatch {
      width: 10px; height: 10px; border-radius: 2px;
    }
    .portfolio-board .pf-legend .amt {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--muted);
    }
    .portfolio-board .pf-season {
      padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px;
      margin: 0 0 12px; background: var(--paper);
    }
    .portfolio-board .pf-season .pills { margin: 6px 0 0; }
    .portfolio-board .pf-hunt-grid {
      display: grid; gap: 10px;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      margin: 0 0 12px;
    }
    .portfolio-board .pf-hunt-card {
      border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px;
      background: var(--paper); display: flex; flex-direction: column; gap: 8px;
    }
    .portfolio-board .pf-hunt-card .pf-hunt-top {
      display: flex; justify-content: space-between; align-items: center; gap: 8px;
    }
    .portfolio-board .pf-hunt-card .pf-sport {
      font-size: 10px; font-weight: 650; letter-spacing: 0.04em; text-transform: uppercase;
      padding: 2px 7px; border-radius: 4px; background: var(--line); color: var(--muted);
    }
    .portfolio-board .pf-hunt-card .pf-sport.BASKETBALL { background: #e8782a33; color: #e8782a; }
    .portfolio-board .pf-hunt-card .pf-sport.SOCCER { background: #3d9a5c33; color: #3d9a5c; }
    .portfolio-board .pf-hunt-card .pf-sport.UFC { background: #c45c3a33; color: #e8785a; }
    .portfolio-board .pf-hunt-card h4 {
      font-size: 15px; font-weight: 650; margin: 0; line-height: 1.25;
    }
    .portfolio-board .pf-hunt-card .pf-print {
      font-size: 12px; color: var(--muted); margin: 0; line-height: 1.35;
    }
    .portfolio-board .pf-hunt-card .pf-window {
      font-size: 11px; color: var(--accent); margin: 0;
    }
    .portfolio-board .pf-hunt-card .pf-prices {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
    }
    .portfolio-board .pf-hunt-card .pf-prices span {
      text-align: center; border: 1px solid var(--line); border-radius: 8px; padding: 6px 4px;
    }
    .portfolio-board .pf-hunt-card .pf-prices label {
      display: block; font-size: 9px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); margin: 0 0 3px;
    }
    .portfolio-board .pf-hunt-card .pf-prices b {
      font: 650 13px/1 "IBM Plex Mono", ui-monospace, monospace;
    }
    .portfolio-board .pf-hunt-card .pf-prices .bid b { color: #3d9a5c; }
    .portfolio-board .pf-hunt-card .pf-prices .fair b { color: var(--accent); }
    .portfolio-board .pf-hunt-card .pf-prices .pass b { color: #c45c5c; }
    .desk-advice {
      border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px;
      background: var(--paper); margin: 0 0 14px;
    }
    .desk-advice .desk-k {
      font-size: 16px; letter-spacing: 0.02em; text-transform: none;
      color: var(--ink); font-weight: 650; margin: 0 0 10px; line-height: 1.25;
    }
    .desk-advice .pf-prices {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
      margin: 0 0 10px;
    }
    .desk-advice .pf-prices span {
      text-align: center; border: 1px solid var(--line); border-radius: 8px; padding: 6px 4px;
    }
    .desk-advice .pf-prices label {
      display: block; font-size: 9px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); margin: 0 0 3px;
    }
    .desk-advice .pf-prices b {
      font: 650 14px/1 "IBM Plex Mono", ui-monospace, monospace;
    }
    .desk-advice .pf-prices .bid b { color: #3d9a5c; }
    .desk-advice .pf-prices .fair b { color: var(--accent); }
    .desk-advice .pf-prices .pass b { color: #c45c5c; }
    .desk-advice .desk-note {
      margin: 0; font-size: 13px; line-height: 1.4; font-weight: 550;
    }
    .desk-advice .desk-sub {
      margin: 6px 0 0; font-size: 12px; color: var(--muted); line-height: 1.35;
    }
    .market-insight {
      border: 1px solid var(--line); border-radius: 12px; padding: 14px;
      background: var(--paper); margin: 0 0 14px;
    }
    .market-insight .mi-k {
      font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--muted); font-weight: 550; margin: 0 0 4px;
    }
    .market-insight .mi-title {
      font-size: 15px; font-weight: 650; margin: 0 0 10px;
    }
    .market-insight .mi-head {
      display: grid; gap: 12px;
      grid-template-columns: minmax(100px, 140px) 1fr;
      align-items: start; margin: 0 0 12px;
    }
    @media (max-width: 520px) {
      .market-insight .mi-head { grid-template-columns: 1fr; }
    }
    .market-insight .mi-score {
      border: 1px solid var(--line); border-radius: 10px; padding: 12px;
      text-align: center;
    }
    .market-insight .mi-score .mi-num {
      font: 650 28px/1 "IBM Plex Mono", ui-monospace, monospace;
      margin: 4px 0;
    }
    .market-insight .mi-score .mi-num span {
      font-size: 14px; color: var(--muted); font-weight: 550;
    }
    .market-insight .mi-score.tone-strong .mi-num { color: #3d9a5c; }
    .market-insight .mi-score.tone-up .mi-num { color: #3d9a5c; }
    .market-insight .mi-score.tone-neutral .mi-num { color: var(--accent); }
    .market-insight .mi-score.tone-down .mi-num { color: #c45c5c; }
    .market-insight .mi-score.tone-weak .mi-num { color: #c45c5c; }
    .market-insight .mi-label {
      font-size: 13px; font-weight: 650; margin: 0 0 4px;
    }
    .market-insight .mi-blurb {
      font-size: 12px; color: var(--muted); margin: 0; line-height: 1.4;
    }
    .market-insight .mi-risk {
      display: flex; flex-wrap: wrap; gap: 8px 14px;
      font-size: 12px; margin: 0 0 12px; color: var(--muted);
    }
    .market-insight .mi-risk strong { color: var(--ink, var(--text)); font-weight: 650; }
    .market-insight .mi-sigs {
      display: grid; gap: 8px; margin: 0 0 10px;
    }
    .market-insight .mi-sig {
      display: grid; grid-template-columns: minmax(0, 1fr) 42px;
      gap: 8px; align-items: center; font-size: 12px;
    }
    .market-insight .mi-sig .mi-bar {
      height: 6px; border-radius: 3px; background: var(--line); overflow: hidden;
      margin-top: 4px;
    }
    .market-insight .mi-sig .mi-bar > i {
      display: block; height: 100%; border-radius: 3px;
      background: var(--accent); font-style: normal;
    }
    .market-insight .mi-sig .mi-pct {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; text-align: right;
    }
    .market-insight .mi-sig .mi-name { font-weight: 550; }
    .market-insight .mi-sig .mi-detail { color: var(--muted); font-size: 11px; }
    .market-insight details {
      margin: 8px 0 0; font-size: 12px;
    }
    .market-insight details summary {
      cursor: pointer; color: var(--accent); font-weight: 550;
    }
    .market-insight .mi-takes {
      margin: 8px 0 0; padding-left: 18px; line-height: 1.45;
    }
    .market-insight .mi-note {
      margin: 10px 0 0; font-size: 11px; color: var(--muted); line-height: 1.35;
    }
    .pi-viz {
      display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 12px;
      margin: 14px 0 18px;
      width: 100%;
    }
    @media (max-width: 860px) { .pi-viz { grid-template-columns: 1fr; } }
    .pi-chart {
      background:
        radial-gradient(120% 80% at 0% 0%, rgba(215,255,60,0.07), transparent 55%),
        linear-gradient(165deg, #141710 0%, var(--paper, #12140f) 55%, #0e100c 100%);
      border: 1px solid var(--line); border-radius: 14px; padding: 14px 14px 8px;
    }
    .pi-chart h3 {
      margin: 0 0 4px; font: 650 12px/1.2 inherit;
      letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted);
    }
    .pi-chart .blurb { color: var(--muted); font-size: 12px; margin: 0 0 8px; }
    .pi-chart svg { width: 100%; height: auto; display: block; }
    .pi-pulse-wrap { position: relative; }
    .pi-pulse-svg { cursor: crosshair; touch-action: none; }
    .pi-pulse-svg .pi-cross { stroke: #d7ff3c; stroke-width: 1; stroke-dasharray: 3 3; opacity: 0.55; }
    .pi-pulse-svg .pi-active { fill: #d7ff3c; stroke: #090a08; stroke-width: 2; }
    .pi-pulse-wrap .eq-tip { min-width: 148px; }
    .pi-own {
      margin: 8px 0 0; padding: 8px 10px; border-radius: 10px;
      border: 1px dashed var(--line); background: rgba(215,255,60,0.04);
      font-size: 12px; line-height: 1.45; color: var(--muted);
    }
    .pi-own strong { color: var(--text); font-weight: 650; }
    .pi-own .venues { margin-top: 4px; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11px; }
    .pi-viz .pi-span { grid-column: 1 / -1; }
    .pi-pie-wrap {
      display: grid; grid-template-columns: 150px 1fr; gap: 12px; align-items: center;
    }
    @media (max-width: 520px) {
      .pi-pie-wrap { grid-template-columns: 1fr; justify-items: center; }
    }
    .pi-pie-svg { width: 150px; height: 150px; display: block; }
    .pi-pie-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
    .pi-pie-legend li {
      display: grid; grid-template-columns: 10px 1fr auto; gap: 8px; align-items: center;
      font-size: 12px; line-height: 1.3;
    }
    .pi-pie-legend .sw { width: 10px; height: 10px; border-radius: 2px; }
    .pi-pie-legend .nm { color: var(--text); }
    .pi-pie-legend .ct {
      font-family: "IBM Plex Mono", ui-monospace, monospace; color: var(--muted); font-size: 11px;
    }
    .pi-pie-legend li.on .nm { color: var(--accent); }
    .pi-hbar { display: flex; flex-direction: column; gap: 7px; }
    .pi-hbar-row {
      display: grid; grid-template-columns: 96px 1fr 58px; gap: 8px; align-items: center;
    }
    .pi-hbar-row .name {
      font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .pi-hbar-row .track {
      height: 9px; border-radius: 999px; background: #1a1c14;
      border: 1px solid var(--line); overflow: hidden;
    }
    .pi-hbar-row .fill {
      height: 100%; border-radius: 999px;
      background: linear-gradient(90deg, #9fbf2a, var(--accent));
    }
    .pi-hbar-row .val {
      text-align: right; font-variant-numeric: tabular-nums;
      font-size: 12px; color: var(--muted);
    }
    #piList {
      overflow-x: auto;
      margin-top: 4px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: var(--paper, #12140f);
    }
    #piList table.markets {
      width: 100%;
      border-collapse: collapse;
      table-layout: fixed;
      margin: 0;
    }
    #piList table.markets th,
    #piList table.markets td {
      padding: 10px 12px;
      border-bottom: 1px solid var(--line);
    }
    #piList table.markets thead th {
      position: sticky; top: 0; z-index: 1;
      background: #161910;
      border-bottom: 1px solid var(--line);
    }
    #piList table.markets tbody tr:last-child td { border-bottom: 0; }
    #piList table.markets .pi-rank { width: 44px; color: var(--muted); }
    #piList table.markets .pi-player { width: auto; }
    #piList table.markets .pi-num {
      width: 92px;
    }
    #piList table.markets .pi-study { width: 64px; text-align: right; }
    #piList table.markets th.pi-sort {
      cursor: pointer; user-select: none; white-space: nowrap;
    }
    #piList table.markets th.pi-sort:hover { color: var(--text); }
    #piList table.markets th.pi-sort.on { color: var(--accent); }
    #piList table.markets th.pi-sort .dir {
      font-size: 10px; margin-left: 3px; opacity: 0.85;
    }
    #piSort {
      margin-top: 10px;
    }
    #piList table.markets tr.pi-row { cursor: pointer; }
    #piList table.markets tr.pi-row:hover td { background: rgba(215,255,60,0.03); }
    .pi-hbar-row { cursor: pointer; }
    .pi-hbar-row:hover .name { color: var(--accent); }
    #player-index-player h1 {
      font-size: clamp(26px, 5vw, 34px); letter-spacing: -0.03em; margin: 0 0 6px;
    }
    #player-index-player .pi-player-stack {
      display: flex; flex-direction: column; gap: 16px; margin-top: 14px;
    }
    #player-index-player .pi-stat-strip {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0;
      border: 1px solid var(--line);
      border-radius: 12px;
      overflow: hidden;
      background: var(--paper, #12140f);
    }
    #player-index-player .pi-stat {
      padding: 12px 14px;
      border-right: 1px solid var(--line);
      min-width: 0;
    }
    #player-index-player .pi-stat:last-child { border-right: 0; }
    #player-index-player .pi-stat .k {
      font: 650 11px/1.2 inherit; letter-spacing: 0.04em;
      text-transform: uppercase; color: var(--muted);
    }
    #player-index-player .pi-stat .v {
      font-variant-numeric: tabular-nums; font-weight: 650;
      font-size: clamp(18px, 2.4vw, 24px); margin-top: 4px;
      letter-spacing: -0.02em;
    }
    #player-index-player .pi-stat .s {
      color: var(--muted); font-size: 11px; margin-top: 3px;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    #player-index-player .pi-card-cols {
      display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start;
    }
    #player-index-player .pi-section {
      border: 1px solid var(--line); border-radius: 14px; padding: 14px;
      background:
        radial-gradient(120% 80% at 0% 0%, rgba(215,255,60,0.05), transparent 55%),
        linear-gradient(165deg, #141710 0%, var(--paper, #12140f) 55%, #0e100c 100%);
    }
    #player-index-player .pi-section h3 {
      margin: 0 0 4px; font: 650 12px/1.2 inherit;
      letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted);
    }
    #player-index-player .pi-section .blurb {
      color: var(--muted); font-size: 12px; margin: 0 0 10px;
    }
    #player-index-player .pi-stars {
      display: flex; flex-wrap: wrap; gap: 8px;
    }
    #player-index-player .pi-star-chip {
      display: inline-flex; flex-direction: column; gap: 2px;
      border: 1px solid var(--line); border-radius: 10px;
      padding: 8px 10px; min-width: 120px; text-decoration: none;
      color: inherit; background: var(--bg, #090a08);
      cursor: pointer; text-align: left;
    }
    #player-index-player .pi-star-chip:hover {
      border-color: rgba(215,255,60,0.35);
    }
    #player-index-player .pi-star-chip .name {
      font-weight: 650; font-size: 13px;
    }
    #player-index-player .pi-star-chip .meta {
      color: var(--muted); font-size: 11px;
    }
    @media (max-width: 900px) {
      #player-index-player .pi-card-cols { grid-template-columns: 1fr; }
      #player-index-player .pi-stat-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      #player-index-player .pi-stat:nth-child(2n) { border-right: 0; }
      #player-index-player .pi-stat:nth-child(-n+2) {
        border-bottom: 1px solid var(--line);
      }
    }
    .pi-index-head {
      display: grid; grid-template-columns: auto 1fr; gap: 12px;
      align-items: start; margin: 0 0 10px;
    }
    @media (max-width: 560px) {
      .pi-index-head { grid-template-columns: 1fr; }
    }
    .pi-index-now {
      border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px;
      min-width: 96px; text-align: center;
    }
    .pi-index-num {
      font: 650 26px/1 "IBM Plex Mono", ui-monospace, monospace; margin: 4px 0;
    }
    .pi-index-now.up .pi-index-num { color: #3d9a5c; }
    .pi-index-now.down .pi-index-num { color: #c45c5c; }
    .pi-const { overflow-x: auto; }
    .pi-detail {
      background: var(--paper, #12140f); border: 1px solid var(--line);
      border-radius: 12px; padding: 14px; margin: 0 0 12px;
    }
    .pi-detail .pi-loading { color: var(--muted); font-size: 13px; }
    .pi-detail .pi-conf { color: var(--muted); font-size: 12px; margin-top: 4px; }
    .pi-sale-grid {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
      gap: 10px; margin-top: 10px;
    }
    .pi-sale-card {
      background: var(--bg, #090a08); border: 1px solid var(--line);
      border-radius: 10px; overflow: hidden; display: flex; flex-direction: column;
    }
    .pi-sale-card img {
      width: 100%; aspect-ratio: 5 / 7; object-fit: cover; background: #1a1c14; display: block;
    }
    .pi-sale-card .ph {
      width: 100%; aspect-ratio: 5 / 7; display: grid; place-items: center;
      background: #1a1c14; color: var(--muted); font-size: 11px;
    }
    .pi-sale-card .body { padding: 8px 9px 10px; display: flex; flex-direction: column; gap: 3px; }
    .pi-sale-card .price {
      font-variant-numeric: tabular-nums; font-weight: 650; color: var(--accent); font-size: 13px;
    }
    .pi-sale-card .title {
      font-size: 12px; line-height: 1.35;
      display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
    }
    .pi-sale-card .meta-line { color: var(--muted); font-size: 11px; }
    @media (max-width: 420px) {
      .desk-advice .pf-prices { grid-template-columns: repeat(2, 1fr); }
    }
    .portfolio-board .pf-hunt-card .pf-card-note {
      font-size: 12px; color: var(--muted); margin: 0; line-height: 1.35;
    }
    .portfolio-board .pf-hunt-card .pf-card-link {
      font-size: 12px;
    }
    .portfolio-board .pf-hunt-actions {
      display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: auto;
    }
    .portfolio-board .pf-hunt-actions .primary {
      font-size: 12px; padding: 6px 10px;
    }
    .portfolio-board .pf-later {
      margin: 12px 0; border: 1px solid var(--line); border-radius: 10px; padding: 0 12px;
    }
    .portfolio-board .pf-later summary {
      cursor: pointer; font-size: 12px; font-weight: 650; padding: 10px 0;
      color: var(--muted); list-style: none;
    }
    .portfolio-board .pf-later summary::-webkit-details-marker { display: none; }
    .portfolio-board .pf-later[open] summary { border-bottom: 1px solid var(--line); margin-bottom: 8px; }
    .tr-pick {
      margin: 10px 0 16px; max-height: 320px; overflow: auto;
      border: 1px solid var(--line); border-radius: 12px; background: var(--paper);
    }
    .tr-pick .tr-row {
      display: grid; grid-template-columns: 22px 1fr auto; gap: 10px; align-items: center;
      padding: 10px 12px; border-bottom: 1px solid var(--line); cursor: pointer;
    }
    .tr-pick .tr-row:last-child { border-bottom: 0; }
    .tr-pick .tr-row:hover { background: #1a1d16; }
    .tr-pick .tr-row.on { background: #1a2a14; }
    .tr-pick .name { font-weight: 650; font-size: 14px; }
    .tr-pick .meta { color: var(--muted); font-size: 12px; margin-top: 2px; }
    .tr-pick .tr-price {
      text-align: right;
      font: 650 13px/1.3 "IBM Plex Mono", ui-monospace, monospace;
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
      justify-self: end;
    }
    .tr-pick .tr-price .fine {
      display: block; margin-top: 2px; font-weight: 500; font-size: 11px; color: var(--muted);
    }
    .tr-ask {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
      gap: 10px; margin: 12px 0 16px;
    }
    .tr-ask .stat {
      background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px;
    }
    .tr-ask .k { font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
    .tr-ask .v {
      font: 650 18px/1.2 "IBM Plex Mono", ui-monospace, monospace;
      font-variant-numeric: tabular-nums;
      margin-top: 4px;
    }
    #trResult table { width: 100%; border-collapse: collapse; margin: 8px 0 16px; font-size: 13px; }
    #trResult th, #trResult td {
      text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--line); vertical-align: top;
    }
    #trResult th { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; }
    #trResult th.num, #trResult td.num {
      text-align: right;
      font: 650 13px/1.3 "IBM Plex Mono", ui-monospace, monospace;
      font-variant-numeric: tabular-nums;
    }
    .admin-back {
      display: inline-block; margin: 0 0 12px; color: var(--muted); text-decoration: none; font-size: 13px;
    }
    .admin-back:hover { color: var(--accent); }
    .admin-hub {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 12px; margin: 8px 0 28px;
    }
    .admin-hub a {
      display: block; padding: 18px 16px; background: var(--paper);
      border: 1px solid var(--line); border-radius: 12px; text-decoration: none; color: inherit;
      transition: border-color 0.15s ease, transform 0.15s ease;
    }
    .admin-hub a:hover { border-color: var(--accent); transform: translateY(-1px); }
    .admin-hub .hub-k {
      font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px;
    }
    .admin-hub .hub-t { font-size: 18px; font-weight: 650; margin: 0 0 6px; }
    .admin-hub .hub-d { font-size: 13px; color: var(--muted); margin: 0; line-height: 1.35; }
    .hedge-lab .hedge-banner {
      border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
      background: color-mix(in srgb, var(--accent) 8%, var(--paper));
      border-radius: 10px; padding: 10px 12px; margin: 0 0 14px;
      font-size: 13px; line-height: 1.4;
    }
    .letter-banner {
      border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
      background: color-mix(in srgb, var(--accent) 8%, var(--paper));
      border-radius: 10px; padding: 10px 12px; margin: 0 0 14px;
      font-size: 13px; line-height: 1.4;
    }
    .letter-banner strong { color: var(--accent); }
    .letter-layout {
      display: grid; gap: 18px;
      grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
      align-items: start;
    }
    @media (max-width: 800px) {
      .letter-layout { grid-template-columns: 1fr; }
      .letter-toc { position: static !important; display: flex; flex-wrap: wrap; gap: 6px; }
      .letter-toc a { border-radius: 999px; padding: 6px 10px; }
    }
    .letter-toc {
      position: sticky; top: 12px;
      display: flex; flex-direction: column; gap: 4px;
      padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper);
    }
    .letter-toc .toc-k {
      font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--muted); padding: 4px 8px 8px; font-weight: 650;
    }
    .letter-toc a {
      display: block; padding: 8px 10px; border-radius: 8px;
      color: var(--muted); text-decoration: none; font-size: 13px; font-weight: 550; line-height: 1.3;
    }
    .letter-toc a:hover { background: #1a1d16; color: var(--text); text-decoration: none; }
    .letter-toc a.on { background: color-mix(in srgb, var(--accent) 22%, transparent); color: var(--accent); }
    .letter-mast {
      margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line);
    }
    .letter-mast .issue {
      font: 650 11px/1 "IBM Plex Mono", ui-monospace, monospace;
      letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); margin: 0 0 6px;
    }
    .letter-mast h2 {
      font-family: Fraunces, Georgia, serif; font-weight: 500; letter-spacing: -0.03em;
      font-size: clamp(22px, 4vw, 30px); margin: 0 0 6px;
    }
    .letter-mast .sub { color: var(--muted); margin: 0; font-size: 14px; max-width: 40em; }
    .letter-kpis {
      display: grid; gap: 8px;
      grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
      margin: 0 0 20px;
    }
    .letter-kpis .stat {
      border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--paper);
    }
    .letter-kpis .k { font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); font-weight: 650; }
    .letter-kpis .v { font: 650 18px/1.2 "IBM Plex Mono", ui-monospace, monospace; margin-top: 4px; }
    .letter-section {
      margin: 0 0 28px; padding: 16px 16px 18px;
      border: 1px solid var(--line); border-radius: 14px; background: var(--paper);
      scroll-margin-top: 16px;
    }
    .letter-section .kicker {
      font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--accent); font-weight: 650; margin: 0 0 4px;
    }
    .letter-section h3 {
      font-family: Fraunces, Georgia, serif; font-weight: 500; letter-spacing: -0.02em;
      font-size: 20px; margin: 0 0 6px;
    }
    .letter-section .sec-lede { color: var(--muted); font-size: 13px; margin: 0 0 12px; line-height: 1.4; }
    .letter-section .sec-body p { margin: 0 0 10px; font-size: 14px; line-height: 1.5; color: var(--text); }
    .letter-section .sec-body p:last-child { margin-bottom: 0; }
    .letter-chart {
      margin: 14px 0 0; padding: 14px; border: 1px solid var(--line); border-radius: 14px;
      background:
        radial-gradient(120% 80% at 0% 0%, rgba(215,255,60,0.07), transparent 55%),
        linear-gradient(165deg, #141710 0%, var(--paper, #12140f) 55%, #0e100c 100%);
      overflow-x: auto;
    }
    .letter-chart svg { display: block; width: 100%; height: auto; max-width: 640px; }
    .letter-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 12px; }
    .letter-table th, .letter-table td {
      text-align: left; padding: 7px 8px; border-bottom: 1px solid var(--line); vertical-align: top;
    }
    .letter-table th {
      font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); font-weight: 650;
    }
    .letter-table .num { font: 550 13px/1.2 "IBM Plex Mono", ui-monospace, monospace; white-space: nowrap; }
    .letter-table a { color: var(--accent); }
    .letter-news { margin: 12px 0 0; padding: 0; list-style: none; }
    .letter-news li {
      font-size: 13px; padding: 6px 0; border-bottom: 1px solid var(--line); line-height: 1.35;
    }
    .letter-news li:last-child { border-bottom: 0; }
    .letter-news .src { color: var(--muted); font-size: 11px; }
    .letter-pills { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
    .letter-page .pf-pie-wrap {
      width: 148px; height: 148px; margin: 0 auto; position: relative;
    }
    .letter-page .pf-pie {
      width: 148px; height: 148px; border-radius: 50%;
      box-shadow: inset 0 0 0 1px var(--line); position: relative;
    }
    .letter-page .pf-pie-css::after {
      content: ""; position: absolute; inset: 22%; border-radius: 50%; background: var(--paper);
    }
    .letter-page .pf-pie-label {
      position: absolute; inset: 0; display: flex; flex-direction: column;
      align-items: center; justify-content: center; pointer-events: none;
    }
    .letter-page .pf-pie-total { font: 650 13px/1 "IBM Plex Mono", ui-monospace, monospace; }
    .letter-page .pf-pie-sub { font-size: 10px; color: var(--muted); margin-top: 2px; }
    .letter-page .pf-legend { margin: 0; padding: 0; list-style: none; }
    .letter-page .pf-legend li {
      display: grid; grid-template-columns: 10px 1fr auto auto; gap: 8px; align-items: center;
      font-size: 12px; padding: 4px 0; border-bottom: 1px solid var(--line);
    }
    .letter-page .pf-legend .swatch { width: 10px; height: 10px; border-radius: 2px; }
    .letter-page .pf-legend .amt {
      font: 650 12px/1 "IBM Plex Mono", ui-monospace, monospace; color: var(--muted);
    }
    .hedge-lab .hedge-probes { display: grid; gap: 12px; margin: 0 0 16px; }
    .hedge-lab .hedge-probe {
      border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px;
      background: var(--paper);
    }
    .hedge-lab .hedge-probe h3 { margin: 0 0 8px; font-size: 14px; font-weight: 650; }
    .hedge-lab .hedge-probe .row {
      display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
    }
    .hedge-lab .hedge-probe input[type="text"],
    .hedge-lab .hedge-probe select { flex: 1 1 140px; min-width: 0; }
    .hedge-lab .hedge-meta { font-size: 12px; color: var(--muted); margin: 0 0 10px; }
    .hedge-lab .hedge-kpis {
      display: grid; gap: 8px;
      grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
      margin: 0 0 12px;
    }
    .hedge-lab .hedge-kpi {
      border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px;
    }
    .hedge-lab .hedge-kpi i {
      display: block; font-style: normal; font-size: 10px; letter-spacing: 0.04em;
      text-transform: uppercase; color: var(--muted);
    }
    .hedge-lab .hedge-kpi b {
      display: block; margin-top: 4px;
      font: 650 15px/1.2 "IBM Plex Mono", ui-monospace, monospace;
    }
    .hedge-lab .hedge-match {
      display: grid; gap: 10px; grid-template-columns: 72px 1fr;
      align-items: start; margin: 0 0 12px;
    }
    .hedge-lab .hedge-match img {
      width: 72px; height: 100px; object-fit: cover; border-radius: 6px;
      background: var(--line);
    }
    .hedge-lab .hedge-match .hm-desc { font-weight: 550; margin: 0 0 4px; }
    .hedge-lab .hedge-match .fine { margin: 0; }
    .hedge-lab .hedge-cands { margin: 0 0 12px; padding: 0; list-style: none; }
    .hedge-lab .hedge-cands li {
      display: flex; justify-content: space-between; gap: 8px; align-items: baseline;
      padding: 4px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
      font-size: 13px;
    }
    .hedge-lab .hedge-cands li:last-child { border-bottom: 0; }
    .hedge-lab .hedge-cands button { font-size: 12px; padding: 2px 8px; }
    .hedge-lab details.hedge-json { margin: 10px 0 0; font-size: 12px; }
    .hedge-lab details.hedge-json pre {
      overflow: auto; max-height: 320px; margin: 8px 0 0;
      padding: 10px; border-radius: 8px; border: 1px solid var(--line);
      background: color-mix(in srgb, var(--ink) 4%, var(--paper));
      font: 12px/1.35 "IBM Plex Mono", ui-monospace, monospace;
      white-space: pre-wrap; word-break: break-word;
    }
    .hedge-lab .hedge-comps {
      width: 100%; border-collapse: collapse; font-size: 12px; margin: 8px 0 0;
    }
    .hedge-lab .hedge-comps th, .hedge-lab .hedge-comps td {
      text-align: left; padding: 4px 6px;
      border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
    }
    .hedge-lab .hedge-comps th { color: var(--muted); font-weight: 550; font-size: 11px; }
    .admin-page[hidden] { display: none !important; }
    .venues-table { margin: 0 0 16px; }
    .venues-table .lede { margin-bottom: 8px; }
    .picked.on { display: flex; gap: 12px; align-items: flex-start; }
    .card-main:hover { text-decoration: none; }
    .card-menu { position: absolute; top: 8px; right: 8px; z-index: 3; }
    .menu-btn {
      padding: 6px 10px; min-height: 0; font-size: 18px; line-height: 1;
      background: transparent; border-color: transparent; color: var(--muted);
    }
    .menu-btn:hover { color: var(--text); border-color: var(--line); }
    .card-menu .menu {
      display: none; position: absolute; right: 0; top: 100%;
      background: #171910; border: 1px solid var(--line);
      border-radius: 8px; min-width: 168px; overflow: hidden;
      box-shadow: 0 8px 24px rgba(0,0,0,0.35);
    }
    .card-menu.open .menu { display: block; }
    .card-menu .menu button, .card-menu .menu a {
      display: block; width: 100%; text-align: left; border: 0; border-radius: 0;
      padding: 10px 12px; background: transparent; font-weight: 600;
      color: var(--text); text-decoration: none; min-height: 0;
    }
    .card-menu .menu button:hover, .card-menu .menu a:hover { background: #1a1d16; text-decoration: none; }
    .watch-head {
      font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
      color: var(--muted); margin: 22px 0 10px;
    }
    @media (max-width: 980px) {
      .wrap { padding: 0 max(16px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); }
      .grid2 { grid-template-columns: 1fr; }
      .nums { grid-template-columns: 1fr 1fr; }
      .p-kpis, .p-analytics { grid-template-columns: 1fr 1fr; }
      .windows { grid-template-columns: 1fr 1fr; }
      .port-grid { display: flex; flex-direction: column; }
      .chart-card svg.equity { min-height: 168px; }
      .row .btn, .row button { flex: 1; }
      button, .btn, input, select, textarea { min-height: 44px; font-size: 16px; }
      .chipset button { min-height: 40px; }
      button.pill, button.conf-item { min-height: 0; }
      .equity-head {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-areas:
          "mark pnl cost"
          "realized count count";
        gap: 8px 12px;
        margin-bottom: 10px;
      }
      .equity-head .v { font-size: 17px; }
      .equity-head #bookPnlPct, .equity-head #nSoldHead {
        font-size: 11px; margin-left: 4px;
      }
      .equity-tape {
        gap: 8px 10px; margin: 0 0 12px; padding-top: 8px;
      }
    }
    @media (max-width: 640px) {
      .plan-grid { grid-template-columns: 1fr; }
      .confbox th:nth-child(2), .confbox td:nth-child(2) { display: none; }
      #study .est-fair .v { font-size: 28px; }
      #study .study-summary .math { font-size: 12px; line-height: 1.45; }
      #study .study-chart svg { min-height: 180px; }
      #study .study-nums td.name { min-width: 108px; }
      .equity-head {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
          "mark pnl"
          "cost realized"
          "count count";
        gap: 6px 10px;
        padding-bottom: 2px;
      }
      .equity-head .eq-mark .v,
      .equity-head .eq-pnl .v { font-size: 18px; }
      .equity-head .eq-cost .v,
      .equity-head .eq-count .v { font-size: 14px; font-weight: 600; color: var(--muted); }
      .equity-head .eq-realized .v { font-size: 14px; font-weight: 600; }
      .equity-head .eq-count .k { letter-spacing: 0.06em; }
    }
    @media (min-width: 640px) {
      .role-lanes { grid-template-columns: 1fr 1fr 1fr; }
      .stats { grid-template-columns: 1fr 1fr 1fr 1fr; }
    }
    @media (min-width: 981px) {
      html, body { height: 100%; }
      body.in { display: flex; min-height: 100dvh; overflow: hidden; }
      body:not(.in) .desk-nav { display: none; }
      body:not(.in) .wrap { max-width: 440px; margin: 0 auto; padding-top: 8vh; }
      .desk-nav {
        display: flex; flex-direction: column;
        width: 200px; flex: 0 0 200px;
        background: #0c0d0a; border-right: 1px solid var(--line);
        padding: 16px 12px 14px;
        height: 100dvh; overflow: auto;
      }
      .desk-nav .brand {
        font-size: 18px; padding: 0 6px 16px;
        border: 0; margin: 0;
      }
      .desk-nav .brand .kicker {
        color: var(--muted); font-size: 10px; letter-spacing: 0.08em;
        text-transform: uppercase; font-weight: 700;
        font-family: "IBM Plex Sans", sans-serif; line-height: 1; margin-bottom: 2px;
      }
      .desk-nav a.nav-link {
        display: flex; align-items: center; gap: 10px;
        width: 100%; text-align: left;
        color: var(--text); padding: 8px 10px; border-radius: 8px;
        font-weight: 600; margin-bottom: 2px;
        transition:
          background-color var(--dur-ui) var(--ease-out),
          color var(--dur-ui) var(--ease-out),
          transform var(--dur-press) var(--ease-out);
      }
      .desk-nav .nav-ico { width: 18px; height: 18px; flex: 0 0 18px; }
      .desk-nav a.nav-link:hover { background: #1a1d16; text-decoration: none; }
      .desk-nav a.nav-link:active { transform: scale(0.98); }
      .desk-nav a.nav-link.on { background: var(--accent); color: #111; }
      .desk-nav .who {
        margin-top: auto; padding: 10px; border: 1px solid var(--line);
        border-radius: 10px; background: var(--paper); text-align: left;
      }
      .desk-nav .who button { margin-left: 0; }
      .wrap {
        flex: 1; min-width: 0; height: 100dvh; overflow: auto;
        padding: 22px 28px 48px;
      }
      .phone-head { display: none; }
      .tabs { display: none !important; }
      .list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
      .windows { grid-template-columns: repeat(4, 1fr); }
      .port-grid { grid-template-columns: 260px 1fr; }
      #book .windows { grid-template-columns: 1fr; }
      .plan-grid { grid-template-columns: 1fr 1fr 1fr; }
      .cash-picks { grid-template-columns: 1fr 1fr; }
      .login { margin: 12vh auto 0; }
    }
  
