/* Spar members area — shared stylesheet. Extracted verbatim from the
   original single-page members.html (base + path/objection/radar/
   leaderboard section styles) so every members page renders identically.
   New multipage classes are appended at the end. */

      :root {
        color-scheme: light dark;
        --paper: #faf7f1;
        --paper-2: #f1eadd;
        --ink: #1c1712;
        --ink-soft: #57493a;
        --char: #171310;
        --char-2: #221b15;
        --char-line: #3a2f24;
        --cream: #f3ead9;
        --cream-soft: #cdbfa8;
        --glove: #e4572e;
        --glove-deep: #c7431f;
        --gold: #d9a441;
        --good: #2e7d4f;
        --bad: #c0392b;
        --card: #ffffff;
        --card-line: #e3d9c8;
        --shadow: 0 18px 40px rgba(28, 20, 10, 0.14);
        --radius: 14px;
      }
      @media (prefers-color-scheme: dark) {
        :root {
          --paper: #14100c;
          --paper-2: #1b1611;
          --ink: #f3ead9;
          --ink-soft: #c3b199;
          --card: #201913;
          --card-line: #3a2f24;
          --shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
        }
      }
      * { box-sizing: border-box; }
      html { scroll-behavior: smooth; }
      body {
        margin: 0;
        background: var(--paper);
        color: var(--ink);
        font-family: "Archivo", system-ui, sans-serif;
        font-size: 17px;
        line-height: 1.55;
        -webkit-font-smoothing: antialiased;
      }
      .wrap { max-width: 1120px; margin: 0 auto; padding: 0 20px; }
      h1, h2, h3 { line-height: 1.02; margin: 0; letter-spacing: -0.01em; }
      p { margin: 0; }
      a { color: inherit; }
      section { padding: 56px 0; }
      .kicker {
        font-family: "IBM Plex Mono", monospace;
        font-size: 12.5px; letter-spacing: 0.16em; text-transform: uppercase;
        color: var(--glove-deep); font-weight: 600;
      }
      @media (prefers-color-scheme: dark) { .kicker { color: var(--gold); } }
      .sec-title { font-size: clamp(30px, 4.6vw, 44px); font-weight: 900; text-transform: uppercase; margin: 12px 0 14px; }
      .sec-lede { color: var(--ink-soft); max-width: 44em; font-size: 18px; }

      .btn {
        display: inline-flex; align-items: center; justify-content: center; gap: 8px;
        font-weight: 700; font-size: 16px; text-decoration: none;
        padding: 14px 22px; border-radius: 10px; border: 1px solid transparent;
        cursor: pointer; font-family: inherit;
        transition: transform 0.12s ease, background 0.12s ease;
      }
      .btn:active { transform: translateY(1px); }
      .btn-glove { background: var(--glove); color: #fff; }
      .btn-glove:hover { background: var(--glove-deep); }
      .btn-ghost { background: transparent; color: var(--cream); border-color: var(--char-line); }
      .btn-ghost:hover { border-color: var(--cream-soft); }
      .btn-dark { background: var(--ink); color: var(--paper); }
      @media (prefers-color-scheme: dark) { .btn-dark { background: var(--cream); color: var(--char); } }

      /* ---- top bar (members-only chrome — deliberately NOT the public site's bar: no sales links live here) ---- */
      .topbar { background: var(--char); padding: 12px 0; }
      .topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
      .topbar-brand { color: var(--cream); font-weight: 900; font-size: 22px; letter-spacing: .04em; text-decoration: none; }
      .topbar-brand span { color: var(--glove); }
      .topbar-nav { display: flex; align-items: center; gap: 20px; }
      .topbar-nav a { color: var(--cream); font-weight: 600; font-size: 15px; text-decoration: none; }
      .topbar-nav a:hover { text-decoration: underline; text-underline-offset: 3px; }
      @media (max-width: 560px) { .topbar-nav a:not(.btn) { display: none; } }

      /* ---- members header band ---- */
      .member-head { background: var(--char); color: var(--cream); padding: 44px 0 40px; position: relative; overflow: hidden; }
      .member-head::before {
        content: ""; position: absolute; inset: 0;
        background-image: radial-gradient(rgba(243, 234, 217, 0.055) 1px, transparent 1px);
        background-size: 22px 22px; pointer-events: none;
      }
      .member-head .wrap { position: relative; }
      .member-head h1 { font-size: clamp(38px, 6vw, 64px); font-weight: 900; text-transform: uppercase; margin: 12px 0 10px; }
      .member-head h1 .accent { color: var(--glove); }
      .member-head p { color: var(--cream-soft); max-width: 40em; }

      /* ---- summary strip ---- */
      .stats { background: var(--char-2); color: var(--cream); }
      @media (prefers-color-scheme: light) { .stats { background: #241c14; } }
      .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
      .stat { padding: 26px 22px; border-left: 1px solid var(--char-line); }
      .stat:first-child { border-left: none; }
      .stat b { display: block; font-size: clamp(26px, 3.4vw, 38px); font-weight: 900; letter-spacing: -0.01em; }
      .stat b em { font-style: normal; color: var(--glove); }
      .stat span { font-size: 13.5px; color: var(--cream-soft); display: block; margin-top: 4px; line-height: 1.4; }
      @media (max-width: 900px) { .stats-grid { grid-template-columns: 1fr 1fr; } .stat { border-left: none; border-top: 1px solid var(--char-line); } .stat:nth-child(-n+2) { border-top: none; } .stat:nth-child(even) { border-left: 1px solid var(--char-line); } }

      /* ---- live sparring allowance meter ---- */
      .allowance { padding: 20px 22px 24px; border-top: 1px solid var(--char-line); }
      .allowance-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: baseline; font-size: 15px; }
      .allowance-head b { font-weight: 800; }
      .allowance-pct { font-weight: 900; color: var(--gold); white-space: nowrap; }
      .allowance-track { height: 10px; border-radius: 6px; background: rgba(243, 234, 217, 0.16); margin-top: 12px; overflow: hidden; }
      .allowance-fill { height: 100%; width: 0%; border-radius: 6px; background: var(--gold); transition: width .4s ease; }
      .allowance-fill.hot { background: var(--glove); }
      .allowance-note { font-size: 14px; color: var(--cream-soft); margin-top: 10px; line-height: 1.45; }

      /* ---- cards, forms, chat ---- */
      .card-box { background: var(--card); border: 1px solid var(--card-line); border-radius: 12px; padding: 22px; }
      .field-label { font-weight: 700; display: block; margin-bottom: 8px; }
      .field {
        width: 100%; min-height: 44px; padding: 10px 12px; border-radius: 8px;
        border: 1px solid var(--card-line); font-size: 16px; font-family: inherit;
        background: var(--card); color: var(--ink);
      }
      .field-flex { flex: 1; min-width: 220px; width: auto; }
      select.field { width: auto; max-width: 100%; }
      .status-line { margin-top: 12px; font-size: 15px; }
      .linklike { background: none; border: none; padding: 0; font: inherit; font-weight: 700; color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
      #sparChat { border: 1px solid var(--card-line); border-radius: 12px; padding: 16px; min-height: 180px; background: var(--card); max-height: 480px; overflow-y: auto; }
      #sparMicBtn.recording { background: var(--glove-deep); border-color: var(--glove-deep); color: #fff; }
      #sparMicBtn:disabled { opacity: .55; cursor: not-allowed; }
      #sparChat p, #historyTranscript p { margin: 0 0 10px; }
      .score-box { border: 1px solid var(--card-line); border-radius: 12px; padding: 18px; background: var(--card); }
      .score-box h3 { margin-bottom: 10px; }
      .history-item {
        display: block; width: 100%; text-align: left; font: inherit; color: inherit; cursor: pointer;
        background: var(--card); border: 1px solid var(--card-line); border-radius: 12px;
        padding: 16px 18px; margin-bottom: 12px;
      }
      .history-item:hover { border-color: var(--glove); }
      .history-top { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; flex-wrap: wrap; }
      .history-title { font-weight: 800; font-size: 18px; }
      .history-score { font-weight: 900; font-size: 22px; color: var(--glove-deep); }
      @media (prefers-color-scheme: dark) { .history-score { color: var(--glove); } }
      .history-meta { color: var(--ink-soft); font-size: 14.5px; margin-top: 4px; }

      /* ---- members section nav ---- */
      .secnav { background: var(--paper-2); border-bottom: 1px solid var(--card-line); position: sticky; top: 0; z-index: 6; }
      .secnav-inner { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; }
      .secnav a {
        font-weight: 700; font-size: 15px; text-decoration: none;
        padding: 8px 14px; border-radius: 999px;
        border: 1px solid var(--card-line); background: var(--card);
      }
      .secnav a:hover { border-color: var(--glove); }

      /* ---- welcome hero (dashboard top) ---- */
      .hero { background: var(--char); color: var(--cream); padding: 42px 0 38px; position: relative; overflow: hidden; border-top: 1px solid var(--char-line); }
      .hero::before {
        content: ""; position: absolute; inset: 0;
        background-image: radial-gradient(rgba(243, 234, 217, 0.055) 1px, transparent 1px);
        background-size: 22px 22px; pointer-events: none;
      }
      .hero .wrap { position: relative; }
      .hero-kicker {
        font-family: "IBM Plex Mono", monospace;
        font-size: 12.5px; letter-spacing: 0.16em; text-transform: uppercase;
        color: var(--gold); font-weight: 600;
      }
      .hero-title { font-size: clamp(36px, 6vw, 60px); font-weight: 900; text-transform: uppercase; margin: 12px 0 0; }
      .hero-title .accent { color: var(--glove); }
      .hero-state { font-size: 18.5px; font-weight: 600; margin-top: 14px; line-height: 1.5; }
      .hero-who { color: var(--cream-soft); font-size: 15px; margin-top: 5px; }
      .hero-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; }

      /* ---- the system (training library) ---- */
      .sys-grid { display: grid; grid-template-columns: 300px 1fr; gap: 30px; margin-top: 28px; align-items: start; }
      @media (max-width: 820px) { .sys-grid { grid-template-columns: 1fr; } }
      .sys-steps { list-style: none; margin: 0; padding: 0; position: sticky; top: 66px; }
      @media (max-width: 820px) { .sys-steps { position: static; } }
      .sys-steps li {
        display: flex; gap: 12px; align-items: baseline;
        padding: 12px 14px; margin-bottom: 8px;
        border: 1px solid var(--card-line); border-radius: 10px; background: var(--card);
        font-weight: 700;
      }
      .sys-steps .n { font-family: "IBM Plex Mono", monospace; font-size: 13.5px; font-weight: 600; color: var(--glove-deep); white-space: nowrap; }
      @media (prefers-color-scheme: dark) { .sys-steps .n { color: var(--glove); } }
      .sys-steps li a.sys-step-link { display: flex; gap: 12px; align-items: baseline; width: 100%; color: inherit; text-decoration: none; }
      .sys-steps li .go { margin-left: auto; font-family: "IBM Plex Mono", monospace; font-size: 13px; font-weight: 600; color: var(--glove-deep); white-space: nowrap; }
      @media (prefers-color-scheme: dark) { .sys-steps li .go { color: var(--glove); } }
      .sys-steps li:hover { border-color: var(--glove); }
      .sys-block { margin-bottom: 32px; }
      .sys-block:last-child { margin-bottom: 0; }
      .sys-block h3 { font-size: 21px; font-weight: 800; margin-bottom: 8px; }
      .sys-list { list-style: none; margin: 0; padding: 0; }
      .sys-list li { padding: 9px 2px; border-bottom: 1px solid var(--card-line); }
      .sys-list li:last-child { border-bottom: none; }

      /* ---- speak-back recovery on a homeowner line ---- */
      .hear-btn {
        margin-left: 10px; font: inherit; font-size: 13.5px; font-weight: 700;
        padding: 4px 12px; border-radius: 999px; cursor: pointer; vertical-align: baseline;
        border: 1px solid var(--glove); background: var(--card); color: var(--glove-deep);
      }
      @media (prefers-color-scheme: dark) { .hear-btn { color: var(--glove); } }

      footer { background: var(--char); color: var(--cream); padding: 34px 0 30px; margin-top: 20px; }
      .foot-small { color: var(--cream-soft); font-size: 13.5px; }
      .foot-small a { color: var(--cream-soft); }
    

  .pathx-card {
    display: flex; gap: 16px; flex-wrap: wrap; align-items: center; justify-content: space-between;
    background: var(--char, #171310); color: var(--cream, #f3ead9);
    border-radius: var(--radius, 14px); padding: 22px; margin-top: 20px;
    box-shadow: var(--shadow, 0 18px 40px rgba(28, 20, 10, 0.14));
  }
  .pathx-now { font-size: 19px; font-weight: 700; margin: 0 0 6px; }
  .pathx-assign { font-size: 15px; margin: 0; opacity: .92; }
  .pathx-round {
    border: 1px solid rgba(28, 20, 10, .14); border-radius: var(--radius, 14px);
    padding: 18px; margin-top: 14px; background: #fff;
  }
  .pathx-round.current { border-color: var(--glove, #c8552b); box-shadow: var(--shadow, 0 18px 40px rgba(28, 20, 10, 0.10)); }
  .pathx-round-head { display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; justify-content: space-between; }
  .pathx-round-title { font-size: 18px; font-weight: 700; margin: 0; }
  .pathx-chip {
    font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: .04em;
    border: 1px solid rgba(28, 20, 10, .25); border-radius: 999px; padding: 3px 10px; white-space: nowrap;
  }
  .pathx-chip.done { background: #2e7d32; border-color: #2e7d32; color: #fff; }
  .pathx-chip.now { background: var(--glove, #c8552b); border-color: var(--glove, #c8552b); color: #fff; }
  .pathx-goal { font-size: 14.5px; font-style: italic; margin: 8px 0 0; opacity: .85; }
  .pathx-meta { font-size: 14px; margin: 8px 0 0; }
  .pathx-sub { font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; margin: 14px 0 6px; opacity: .7; }
  .pathx-lessons, .pathx-practice { display: flex; gap: 8px; flex-wrap: wrap; }
  .pathx-lesson, .pathx-spar {
    font: inherit; font-size: 14px; text-align: left; cursor: pointer;
    border: 1px solid rgba(28, 20, 10, .25); background: transparent; color: var(--ink, #171310);
    border-radius: 10px; padding: 8px 12px;
  }
  .pathx-lesson:hover, .pathx-spar:hover { border-color: var(--glove, #c8552b); }
  .pathx-gap { font-size: 13.5px; margin: 6px 0 0; opacity: .65; }
  .pathx-reader {
    border: 1px solid rgba(28, 20, 10, .14); border-radius: var(--radius, 14px);
    padding: 22px; margin-top: 18px; background: #fff;
  }
  .pathx-back { font: inherit; font-size: 14px; cursor: pointer; background: none; border: none; padding: 0; color: var(--glove, #c8552b); font-weight: 700; }
  .pathx-reader-title { font-size: 22px; margin: 12px 0 4px; }
  .pathx-reader-meta { font-size: 13.5px; margin: 0 0 14px; opacity: .7; }
  .pathx-body { white-space: pre-wrap; font-size: 15.5px; line-height: 1.6; }


  .objx-panel {
    background: var(--char, #171310);
    color: var(--cream, #f3ead9);
    border-radius: var(--radius, 14px);
    padding: 26px 22px 28px;
    box-shadow: var(--shadow, 0 18px 40px rgba(28, 20, 10, 0.14));
  }
  .objx-kicker {
    font-family: "IBM Plex Mono", monospace;
    font-size: 12.5px; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--gold, #d9a441); font-weight: 600; margin: 0;
  }
  .objx-title {
    font-size: clamp(26px, 4vw, 36px); font-weight: 900; text-transform: uppercase;
    letter-spacing: -0.01em; line-height: 1.02; margin: 10px 0 8px; color: var(--cream, #f3ead9);
  }
  .objx-lede { color: var(--cream-soft, #cdbfa8); font-size: 16.5px; margin: 0 0 18px; max-width: 40em; }
  .objx-search {
    width: 100%; font: inherit; font-size: 19px; font-weight: 600;
    padding: 16px 18px; border-radius: 10px; border: 2px solid var(--char-line, #3a2f24);
    background: var(--char-2, #221b15); color: var(--cream, #f3ead9);
  }
  .objx-search::placeholder { color: var(--cream-soft, #cdbfa8); font-weight: 500; }
  .objx-search:focus { outline: 3px solid var(--glove, #e4572e); outline-offset: 1px; }
  .objx-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 6px; }
  .objx-chip {
    font: inherit; font-size: 15px; font-weight: 700; cursor: pointer;
    padding: 10px 16px; border-radius: 999px;
    border: 1px solid var(--char-line, #3a2f24);
    background: transparent; color: var(--cream, #f3ead9);
  }
  .objx-chip[aria-pressed="true"] { background: var(--glove, #e4572e); border-color: var(--glove, #e4572e); color: #fff; }
  .objx-status { color: var(--cream-soft, #cdbfa8); font-size: 15px; margin: 12px 0 0; }
  .objx-list { display: grid; gap: 10px; margin-top: 14px; }
  .objx-item {
    font: inherit; text-align: left; cursor: pointer; width: 100%;
    background: var(--char-2, #221b15); color: var(--cream, #f3ead9);
    border: 1px solid var(--char-line, #3a2f24); border-radius: 10px;
    padding: 16px 18px; min-height: 60px;
  }
  .objx-item:active { border-color: var(--glove, #e4572e); }
  .objx-item-title { display: block; font-size: 18.5px; font-weight: 800; line-height: 1.25; }
  .objx-item-sub { display: block; color: var(--cream-soft, #cdbfa8); font-size: 14.5px; margin-top: 4px; }
  .objx-tag {
    display: inline-block; font-family: "IBM Plex Mono", monospace; font-size: 11px;
    letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600;
    border: 1px solid var(--gold, #d9a441); color: var(--gold, #d9a441);
    border-radius: 999px; padding: 2px 8px; margin-left: 8px; vertical-align: 2px;
  }
  .objx-back {
    font: inherit; font-size: 16px; font-weight: 700; cursor: pointer;
    background: transparent; border: 1px solid var(--char-line, #3a2f24);
    color: var(--cream, #f3ead9); border-radius: 10px; padding: 12px 18px; min-height: 52px;
  }
  .objx-resp-title { font-size: clamp(24px, 3.6vw, 32px); font-weight: 900; line-height: 1.1; margin: 16px 0 4px; color: var(--cream, #f3ead9); }
  .objx-said { color: var(--cream-soft, #cdbfa8); font-size: 17px; font-style: italic; margin: 6px 0 0; }
  .objx-steps { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 4px; padding: 0; list-style: none; }
  .objx-steps li {
    font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: 0.06em;
    border: 1px solid var(--char-line, #3a2f24); border-radius: 999px; padding: 5px 10px;
    color: var(--cream-soft, #cdbfa8);
  }
  .objx-steps li b { color: var(--gold, #d9a441); font-weight: 600; }
  .objx-line {
    background: var(--cream, #f3ead9); color: #1c1712;
    border-radius: 10px; padding: 18px 20px; margin-top: 12px;
    font-size: 20px; line-height: 1.5; font-weight: 600;
  }
  .objx-doctrine { margin-top: 16px; }
  .objx-doctrine-open { color: var(--gold, #d9a441); font-size: 17px; font-weight: 700; margin: 0 0 4px; }
  .objx-doctrine-head {
    font-size: clamp(28px, 4.4vw, 40px); font-weight: 900; text-transform: uppercase;
    letter-spacing: -0.01em; line-height: 1.05; margin: 0; color: var(--cream, #f3ead9);
  }
  .objx-fwline {
    border: 1px solid var(--char-line, #3a2f24); border-radius: 10px;
    padding: 14px 18px; margin-top: 10px; font-size: 16.5px; line-height: 1.5;
    color: var(--cream, #f3ead9);
  }
  .objx-fwline b { color: var(--gold, #d9a441); }
  .objx-fwlink {
    font: inherit; font-size: 15.5px; font-weight: 700; cursor: pointer; margin-top: 16px;
    background: transparent; border: 0; color: var(--gold, #d9a441); padding: 8px 0; text-decoration: underline;
  }


  .rdrx { margin: 0 auto; max-width: 720px; }
  .rdrx-card { background: #1b1f2a; border: 1px solid #2c3243; border-radius: 14px; padding: 18px; }
  .rdrx-form { display: flex; flex-direction: column; gap: 10px; }
  .rdrx-input { font-size: 18px; padding: 16px; border-radius: 12px; border: 1px solid #2c3243; background: #12151d; color: #f2f4f8; width: 100%; box-sizing: border-box; }
  .rdrx-go { font-size: 18px; padding: 16px; border-radius: 12px; width: 100%; }
  .rdrx-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
  .rdrx-loc { font-size: 15px; padding: 12px 16px; border-radius: 12px; }
  .rdrx-status { font-size: 14px; color: #aab3c5; min-height: 1.2em; }
  .rdrx-meter { font-size: 14px; color: #aab3c5; }
  .rdrx-label { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .08em; padding: 2px 8px; border-radius: 999px; margin-right: 8px; vertical-align: 2px; }
  .rdrx-l-record { background: #233a5e; color: #bcd4ff; }
  .rdrx-l-estimate { background: #4a3a12; color: #ffd97a; }
  .rdrx-l-read { background: #3d2a4d; color: #dcbcff; }
  .rdrx-l-storm { background: #5e2433; color: #ffbcc9; }
  .rdrx-l-plan { background: #1e4d33; color: #a8ecc4; }
  .rdrx-block { margin-top: 18px; }
  .rdrx-block h3 { margin: 0 0 8px; font-size: 17px; }
  .rdrx-line { padding: 7px 0; border-bottom: 1px solid #232836; font-size: 15.5px; line-height: 1.45; }
  .rdrx-line:last-child { border-bottom: none; }
  .rdrx-plan-item { padding: 10px 0; border-bottom: 1px solid #232836; }
  .rdrx-plan-item:last-child { border-bottom: none; }
  .rdrx-plan-title { font-size: 16px; font-weight: 700; }
  .rdrx-plan-body { font-size: 15px; line-height: 1.5; color: #dbe1ec; margin-top: 4px; }
  .rdrx-src { font-size: 12.5px; color: #8d97ab; margin-top: 4px; }
  .rdrx-run { display: inline-block; margin-top: 6px; font-weight: 700; }
  .rdrx-disclaimer { font-size: 13px; color: #8d97ab; line-height: 1.5; margin-top: 10px; }
  .rdrx-hist-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #232836; font-size: 15px; }
  .rdrx-hist-item:last-child { border-bottom: none; }
  .rdrx-del { background: none; border: 1px solid #2c3243; color: #aab3c5; border-radius: 8px; padding: 6px 10px; font-size: 13px; cursor: pointer; }
  .rdrx-addr { font-size: 19px; font-weight: 800; }
  .rdrx-sub { font-size: 13px; color: #8d97ab; }


  .lbx-toggle { display: flex; gap: 8px; flex-wrap: wrap; margin: 18px 0 6px; }
  .lbx-toggle button {
    font: inherit; font-size: 14px; cursor: pointer;
    border: 1px solid rgba(28, 20, 10, .25); background: transparent; color: var(--ink, #171310);
    border-radius: 999px; padding: 6px 14px;
  }
  .lbx-toggle button.on { background: var(--char, #171310); color: var(--cream, #f3ead9); border-color: var(--char, #171310); }
  .lbx-you-line { font-size: 16px; font-weight: 700; margin: 10px 0 0; }
  .lbx-table { width: 100%; border-collapse: collapse; margin-top: 14px; background: #fff; border: 1px solid rgba(28, 20, 10, .14); border-radius: var(--radius, 14px); overflow: hidden; }
  .lbx-table th, .lbx-table td { text-align: left; padding: 10px 12px; font-size: 15px; border-bottom: 1px solid rgba(28, 20, 10, .08); }
  .lbx-table th { font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; opacity: .65; }
  .lbx-table tr:last-child td { border-bottom: none; }
  .lbx-table tr.lbx-you td { background: #fdf3e3; font-weight: 700; }
  .lbx-sub { display: block; font-size: 13px; opacity: .65; font-weight: 400; }
  .lbx-num { text-align: right; }
  .lbx-empty { font-size: 15px; margin-top: 14px; }

/* ---- multipage additions (2026-11-02 members restructure) ---- */
.secnav a[aria-current="page"] { background: var(--char); color: var(--cream); border-color: var(--char); }
.secnav .secnav-logout {
  font: inherit; font-weight: 700; font-size: 15px; cursor: pointer;
  padding: 8px 14px; border-radius: 999px; margin-left: auto;
  border: 1px solid var(--card-line); background: transparent; color: var(--ink);
}
.secnav .secnav-logout:hover { border-color: var(--glove); }
.menu-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin-top: 22px; }
.menu-card {
  display: block; text-decoration: none; background: var(--card);
  border: 1px solid var(--card-line); border-radius: 12px; padding: 18px;
}
.menu-card:hover { border-color: var(--glove); }
.menu-card b { display: block; font-size: 18px; font-weight: 800; margin-bottom: 4px; }
.menu-card span { color: var(--ink-soft); font-size: 14.5px; line-height: 1.45; display: block; }
.crumb { font-size: 15px; font-weight: 700; margin-bottom: 14px; }
.crumb a { color: var(--glove-deep); text-decoration: none; }
.crumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (prefers-color-scheme: dark) { .crumb a { color: var(--glove); } }
.pager { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.pager a {
  font-weight: 700; font-size: 15.5px; text-decoration: none;
  border: 1px solid var(--card-line); background: var(--card);
  border-radius: 10px; padding: 12px 16px; max-width: 48%;
}
.pager a:hover { border-color: var(--glove); }
.pager a.next { margin-left: auto; text-align: right; }
.pager a small { display: block; font-weight: 600; color: var(--ink-soft); font-size: 13px; margin-top: 2px; }
.placeholder-note {
  border: 1px dashed var(--card-line); border-radius: 12px; padding: 16px 18px;
  color: var(--ink-soft); font-size: 15px; margin-top: 22px;
}
.wc-flag { background: #f6d365; color: #1c1712; border-radius: 3px; padding: 0 2px; font-weight: 700; }
@media (prefers-color-scheme: dark) { .wc-flag { background: #8a6d1f; color: #fff8e6; } }
.wc-out {
  white-space: pre-wrap; font-size: 16.5px; line-height: 1.65;
  border: 1px solid var(--card-line); border-radius: 12px; padding: 18px 20px; background: var(--card);
}
.wc-finding { padding: 8px 2px; border-bottom: 1px solid var(--card-line); font-size: 15.5px; }
.wc-finding:last-child { border-bottom: none; }
textarea.field { width: 100%; min-height: 170px; resize: vertical; line-height: 1.55; }
.link-rows { display: grid; gap: 10px; margin-top: 18px; }
.link-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  text-decoration: none; background: var(--card); border: 1px solid var(--card-line);
  border-radius: 12px; padding: 16px 18px;
}
.link-row:hover { border-color: var(--glove); }
.link-row b { font-size: 17px; }
.link-row span { color: var(--ink-soft); font-size: 14.5px; text-align: right; }
.hist-events { list-style: none; margin: 12px 0 0; padding: 0; }
.hist-events li { padding: 8px 2px; border-bottom: 1px solid var(--card-line); font-size: 15px; }
.hist-events li:last-child { border-bottom: none; }
.hist-events .when { color: var(--ink-soft); font-size: 13.5px; }
a.pathx-lesson, a.pathx-spar { text-decoration: none; display: inline-block; }

/* App-shell feel (2026-11-03): stop the whole page rubber-banding/panning
   inside the iOS app — content scrolls, the shell stays put. */
html, body { overscroll-behavior: none; overflow-x: clip; }
