
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
  }
  ::selection{background: var(--accent); color: var(--paper);}

  h1,h2,h3,h4 {
    font-family: var(--serif);
    font-weight: 400;
    letter-spacing: -.02em;
    margin: 0;
  }
  em { font-style: italic; color: var(--accent-deep); }
  a { color: inherit; }

  .mono {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  /* ============ GRAIN OVERLAY ============ */
  .grain {
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
    opacity: .05;
    mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }

  /* ============ NAV ============ */
  .nav {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(243,239,230,.85);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--rule-soft);
    padding: 18px 40px;
  }
  .nav-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 40px;
  }
  .brand {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--ink);
  }
  .brand-mark {
    width: 28px;
    height: 28px;
    transition: transform .6s cubic-bezier(.7,0,.3,1);
  }
  .brand:hover .brand-mark { transform: rotate(180deg); }
  .brand-name { font-family: var(--serif); font-size: 22px; line-height: 1; }
  .brand-name em { font-style: italic; color: var(--accent-deep); }
  .nav-links {
    display: flex;
    gap: 32px;
    justify-content: center;
  }
  .nav-link {
    font-size: 13.5px;
    color: var(--ink-2);
    text-decoration: none;
    padding: 8px 0;
    position: relative;
    cursor: pointer;
    user-select: none;
  }
  .nav-link::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 2px;
    height: 1px;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }
  .nav-link.active { color: var(--ink); }
  .nav-meta {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .nav-meta .live {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .live-dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--accent);
    animation: pulse 2s infinite;
  }
  @keyframes pulse {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 60%, transparent); }
    50%      { box-shadow: 0 0 0 8px color-mix(in oklab, var(--accent) 0%, transparent); }
  }

  /* ============ BUTTONS ============ */
  .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 22px;
    border-radius: 999px;
    font-family: var(--sans);
    font-size: 13.5px;
    font-weight: 500;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  }
  .btn svg { width: 16px; height: 16px; transition: transform .25s ease; }
  .btn-primary { background: var(--ink); color: var(--paper); }
  .btn-primary:hover { background: var(--accent-deep); transform: translateY(-2px); }
  .btn-primary:hover svg { transform: translateX(4px); }
  .btn-ghost { border: 1px solid var(--ink); color: var(--ink); background: transparent; }
  .btn-ghost:hover { background: var(--ink); color: var(--paper); }
  .btn-sm { padding: 10px 16px; font-size: 12.5px; }
  .btn-count {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-3);
    margin-left: 6px;
  }

  /* ============ KICKERS ============ */
  .kicker {
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--mono);
    font-size: 11.5px;
    color: var(--ink-3);
    letter-spacing: .03em;
    text-transform: uppercase;
    margin-bottom: 18px;
  }
  .kicker-dash {
    display: inline-block;
    width: 40px;
    height: 1px;
    background: var(--ink);
  }

  /* ============ PAGE SHELL ============ */
  main {
    max-width: 1400px;
    margin: 0 auto;
    padding: 80px 40px 100px;
  }
  .view { display: none; }
  .view.active { display: block; }

  /* ============ HERO TITLES ============ */
  .hero-title {
    font-family: var(--serif);
    font-weight: 400;
    font-size: clamp(44px, 6.5vw, 92px);
    line-height: .96;
    letter-spacing: -.025em;
    margin: 0 0 28px;
    max-width: 16ch;
  }
  .hero-title em {
    font-style: italic;
    color: var(--accent-deep);
    position: relative;
  }
  .hero-title em::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: .08em;
    height: .08em;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    animation: underline 1.6s cubic-bezier(.7,0,.3,1) .5s forwards;
  }
  @keyframes underline { to { transform: scaleX(1); } }

  .hero-sub {
    font-size: 19px;
    line-height: 1.45;
    max-width: 56ch;
    color: var(--ink-2);
    margin: 0 0 36px;
  }

  /* Rise-up animation on hero lines */
  .rise { opacity: 0; transform: translateY(16px); animation: rise 1.1s cubic-bezier(.2,.8,.2,1) forwards; }
  .rise-1 { animation-delay: .05s; }
  .rise-2 { animation-delay: .18s; }
  .rise-3 { animation-delay: .32s; }
  @keyframes rise { to { opacity: 1; transform: translateY(0); } }

  /* ============ STATS ROW ============ */
  .stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 1px solid var(--rule-soft);
    border-bottom: 1px solid var(--rule-soft);
    padding: 28px 0;
    margin: 48px 0;
  }
  .stat + .stat { border-left: 1px solid var(--rule-soft); padding-left: 28px; }
  .stat { padding-right: 28px; }
  .stat-n {
    font-family: var(--serif);
    font-size: 44px;
    line-height: 1;
    margin-bottom: 10px;
  }
  .stat-n em { font-style: italic; color: var(--accent-deep); }
  .stat-l {
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .05em;
    text-transform: uppercase;
  }

  /* ============ PANELS ============ */
  .panel {
    background: var(--paper);
    border: 1px solid var(--rule-soft);
    border-radius: 6px;
  }
  .panel + .panel { margin-top: 32px; }

  /* ============ CONFIGURE VIEW ============ */
  .cfg-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 32px;
  }
  .chat-panel {
    display: flex;
    flex-direction: column;
    min-height: 620px;
    max-height: 720px;
    overflow: hidden;
  }
  .chat-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .chat-topbar-title {
    font-family: var(--serif);
    font-size: 22px;
  }
  .chat-topbar-title em { font-style: italic; color: var(--accent-deep); }
  .chat-topbar-status {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
  }

  .chat-scroll {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
  }
  .chat-scroll::-webkit-scrollbar { width: 6px; }
  .chat-scroll::-webkit-scrollbar-thumb { background: var(--rule-soft); border-radius: 999px; }

  .msg { margin: 12px 0; display: flex; gap: 10px; align-items: flex-end; max-width: 90%; }
  .msg.bot { align-self: flex-start; }
  .msg.user { margin-left: auto; flex-direction: row-reverse; }
  .avatar {
    width: 12px; height: 12px;
    border-radius: 999px;
    flex-shrink: 0;
    margin-bottom: 14px;   /* aligns the dot near the bottom of the bubble */
  }
  .msg.bot .avatar {
    background: var(--accent-deep);
  }
  .msg.user .avatar {
    background: var(--ink);
  }
  .bubble {
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.5;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-wrap: anywhere;
    border-radius: 14px;
    flex: 0 1 auto;
    min-width: 0;     /* let the bubble shrink inside the flex row */
  }
  .msg.bot .bubble {
    background: var(--paper-2);
    color: var(--ink);
    border: 1px solid var(--rule-soft);
    border-bottom-left-radius: 4px;   /* "tail" corner toward avatar */
  }
  .msg.user .bubble {
    background: var(--ink);
    color: var(--paper);
    border-bottom-right-radius: 4px;
  }
  .bubble em { font-style: italic; color: var(--accent-deep); }
  .msg.user .bubble em { color: color-mix(in oklab, var(--accent) 80%, white); }
  .bubble strong { font-weight: 600; }

  /* Compact fast-track: one-line playbook-upload bar at the top */
  .fast-track-compact {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    margin: 16px 0 20px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--paper-2);
  }
  .fast-track-compact .fast-track-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
  }
  .fast-track-compact .fast-track-title { font-family: var(--serif); font-size: 15px; color: var(--ink); }
  .fast-track-compact .fast-track-sub { font-size: 12.5px; color: var(--ink-3); }

  /* Configure grid: form (~60%) + brainstorm chat sidebar (~40%) */
  .configure-grid {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 24px;
    align-items: start;
    margin: 8px 0 40px;
  }
  .configure-grid .brainstorm-panel {
    position: sticky;
    top: 20px;
    max-height: calc(100vh - 40px);
    display: flex;
    flex-direction: column;
  }
  .configure-grid .brainstorm-panel .chat-scroll {
    flex: 1;
    min-height: 280px;
    max-height: calc(100vh - 260px);
  }
  @media (max-width: 980px) {
    .configure-grid { grid-template-columns: 1fr; }
    .configure-grid .brainstorm-panel { position: static; max-height: none; }
    .configure-grid .brainstorm-panel .chat-scroll { max-height: 380px; }
  }

  /* Primary form panel */
  .quick-setup-panel { padding: 28px 30px; }
  .quick-setup-header { margin-bottom: 18px; }
  .quick-setup-heading { font-family: var(--serif); font-size: 26px; font-weight: 500; margin: 0 0 6px; color: var(--ink); }
  .quick-setup-lede { font-size: 14px; color: var(--ink-2); margin: 0; max-width: 60ch; }
  .quick-setup-body { padding: 0; border-top: none; }

  /* Per-field "Ask for ideas" button */
  .qs-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }
  .qs-help-btn {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--accent-deep);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    padding: 3px 8px;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
  }
  .qs-help-btn:hover {
    background: color-mix(in oklab, var(--accent) 12%, transparent);
    border-color: color-mix(in oklab, var(--accent-deep) 30%, transparent);
  }

  /* Suggestion pill — output from brainstorm chat. Click to paste into
     the target field. Looks like an option-pill but has an "add" cue. */
  .suggest-pills {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 8px 0 14px 48px;
    max-width: 90%;
  }
  .suggest-pill {
    font: inherit;
    font-size: 13px;
    padding: 8px 12px;
    border: 1px solid var(--rule);
    background: var(--paper);
    color: var(--ink);
    border-radius: 4px;
    cursor: pointer;
    text-align: left;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    transition: background .12s ease, border-color .12s ease;
  }
  .suggest-pill:hover {
    background: color-mix(in oklab, var(--accent) 10%, transparent);
    border-color: var(--accent-deep);
  }
  .suggest-pill .suggest-plus {
    color: var(--accent-deep);
    font-family: var(--mono);
    font-size: 14px;
    flex-shrink: 0;
    margin-top: 1px;
  }
  .suggest-pill .suggest-field-tag {
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
    display: block;
    margin-bottom: 3px;
  }
  .suggest-pill .suggest-text { flex: 1; line-height: 1.4; }
  .suggest-pill.added {
    background: color-mix(in oklab, var(--accent) 18%, transparent);
    border-color: var(--accent-deep);
    color: var(--accent-deep);
    cursor: default;
  }
  .suggest-pill.added .suggest-plus::before { content: '✓'; }
  .suggest-pill.added:not(.added-text)::before { content: ''; }
  .qs-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 18px;
    margin-top: 18px;
  }
  .qs-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .qs-field-wide { grid-column: 1 / -1; }
  .qs-label {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .qs-field input,
  .qs-field select,
  .qs-field textarea {
    font-family: var(--sans);
    font-size: 14px;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 8px 10px;
    transition: border-color .12s ease;
  }
  .qs-field textarea { resize: vertical; font-family: var(--sans); line-height: 1.5; }
  .qs-field input:focus,
  .qs-field select:focus,
  .qs-field textarea:focus {
    outline: none;
    border-color: var(--ink);
  }
  .qs-status {
    font-family: var(--mono);
    font-size: 11.5px;
    color: var(--ink-3);
    letter-spacing: .04em;
  }
  .qs-status.err { color: #b4341f; }
  .qs-status.ok { color: var(--accent-deep); }
  @media (max-width: 680px) {
    .qs-grid { grid-template-columns: 1fr; }
  }

  /* Quick-reply option pills — rendered when bot message contains
     <option>...</option> tags. Clicking a pill sends that value as
     the next user message. */
  .option-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0 14px 48px; /* align under bubble (past avatar) */
    max-width: 84%;
  }
  .option-pill {
    font: inherit;
    font-size: 13.5px;
    padding: 6px 12px;
    border: 1px solid var(--rule);
    background: var(--paper);
    color: var(--ink);
    border-radius: 999px;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
  }
  .option-pill:hover {
    background: var(--ink);
    color: var(--paper);
    border-color: var(--ink);
  }
  .option-pill:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .typing-indicator { display: flex; gap: 4px; padding: 14px 16px; align-items: center; }
  .typing-indicator span {
    width: 6px; height: 6px;
    background: var(--ink-3);
    border-radius: 50%;
    animation: bounce 1.2s infinite ease-in-out;
  }
  .typing-indicator span:nth-child(2) { animation-delay: .15s; }
  .typing-indicator span:nth-child(3) { animation-delay: .3s; }
  @keyframes bounce {
    0%, 80%, 100% { transform: translateY(0); opacity: .4; }
    40% { transform: translateY(-4px); opacity: 1; }
  }

  .chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 0 24px 12px;
  }
  .chip {
    padding: 8px 14px;
    border: 1px solid var(--rule-soft);
    border-radius: 999px;
    background: var(--paper);
    font-size: 12.5px;
    color: var(--ink-2);
    cursor: pointer;
    transition: all .2s ease;
    user-select: none;
  }
  .chip:hover {
    border-color: var(--ink);
    color: var(--ink);
    background: var(--paper-2);
  }

  .chat-input-area {
    border-top: 1px solid var(--rule-soft);
    padding: 16px 24px;
  }
  .msg-counter {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 24px 8px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .msg-counter.warn { color: var(--warn); }
  .msg-counter-bar {
    flex: 1;
    height: 2px;
    background: var(--rule-soft);
    margin: 0 12px;
    border-radius: 999px;
    overflow: hidden;
  }
  .msg-counter-fill {
    height: 100%;
    background: var(--accent-deep);
    width: 0;
    transition: width .35s cubic-bezier(.2,.8,.2,1), background .2s ease;
  }
  .msg-counter.warn .msg-counter-fill { background: var(--warn); }

  .quota-block {
    padding: 64px 40px;
    text-align: center;
    border: 1px solid var(--warn);
    border-radius: 6px;
    background: var(--warn-tint);
  }

  .fast-track {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 20px;
    align-items: center;
    padding: 18px 22px;
    margin-bottom: 24px;
    background: var(--paper-2);
    border: 1px solid var(--rule-soft);
    border-radius: 6px;
    transition: background .25s ease, border-color .25s ease;
  }
  .fast-track:hover { background: var(--accent-tint); border-color: var(--accent-deep); }
  .fast-track-icon {
    width: 32px; height: 32px;
    display: grid; place-items: center;
    color: var(--accent-deep);
  }
  .fast-track-copy { line-height: 1.35; }
  .fast-track-title {
    font-family: var(--serif);
    font-size: 20px;
    letter-spacing: -.01em;
  }
  .fast-track-title em { font-style: italic; color: var(--accent-deep); }
  .fast-track-sub {
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-top: 3px;
  }

  .playbook-dropzone {
    border: 1px dashed var(--ink);
    border-radius: 6px;
    padding: 48px 32px;
    margin-bottom: 24px;
    background: var(--paper-2);
    text-align: center;
    cursor: pointer;
    transition: background .25s ease, border-color .25s ease;
  }
  .playbook-dropzone:hover, .playbook-dropzone.drag { background: var(--accent-tint); border-color: var(--accent-deep); }
  .playbook-dropzone-title { font-family: var(--serif); font-size: 28px; margin-bottom: 8px; }
  .playbook-dropzone-title em { font-style: italic; color: var(--accent-deep); }
  .playbook-dropzone-sub { color: var(--ink-3); font-size: 14px; margin-bottom: 16px; }
  .playbook-parse {
    padding: 32px;
    margin-bottom: 24px;
    background: var(--paper);
    border: 1px solid var(--rule-soft);
    border-radius: 6px;
  }
  .playbook-parse-title { font-family: var(--serif); font-size: 22px; margin-bottom: 4px; }
  .playbook-parse-title em { font-style: italic; color: var(--accent-deep); }
  .playbook-parse-status {
    font-family: var(--mono);
    font-size: 11.5px;
    letter-spacing: .04em;
    color: var(--ink-3);
    margin-bottom: 14px;
  }
  .playbook-parse-status.saved { color: var(--accent-deep); }
  .playbook-parse-status.editing { color: #b45309; }
  .playbook-parse-line {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid var(--rule-soft);
    font-size: 14px;
  }
  .playbook-parse-line:first-of-type { border-top: none; }
  .playbook-parse-k {
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
    min-width: 140px;
  }
  .playbook-parse-v { color: var(--ink); flex: 1; }
  .playbook-parse-check { color: var(--accent-deep); font-family: var(--mono); font-size: 12px; }
  .quota-kicker {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--accent-deep);
    margin-bottom: 12px;
  }
  .quota-block h3 {
    font-family: var(--serif);
    font-size: 32px;
    margin-bottom: 14px;
  }
  .quota-block h3 em { color: var(--accent-deep); }
  .quota-block p {
    color: var(--ink-2);
    max-width: 52ch;
    margin: 0 auto 24px;
  }
  .quota-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
  .chat-input-row {
    display: flex;
    gap: 10px;
    align-items: stretch;     /* equal heights for textarea + button */
  }
  .chat-input {
    flex: 1;
    border: 1px solid var(--rule-soft);
    border-radius: 10px;
    padding: 14px 16px;
    font-family: var(--sans);
    font-size: 14px;
    line-height: 1.5;
    color: var(--ink);
    background: var(--paper);
    resize: none;            /* disable manual resize handle */
    height: 88px;            /* fixed at-rest height; large enough to show
                                a 2-line placeholder without scrollbars */
    max-height: 200px;
    overflow-y: auto;        /* scroll only kicks in past max-height */
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  .chat-input::placeholder { color: var(--ink-3); }
  .chat-input:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--ink) 8%, transparent);
  }
  .chat-input:disabled {
    background: var(--paper-2);
    color: var(--ink-3);
    cursor: not-allowed;
  }
  /* Send button matches the input's height + corner radius so the
     pair reads as a single rounded module. Targets the chat row only. */
  .chat-input-row #send-btn {
    border-radius: 10px;
    padding: 0 24px;
    align-self: stretch;
    height: 88px;
    flex-shrink: 0;
    font-weight: 500;
  }

  /* Profile sidebar */
  .profile-panel { padding: 0; }
  .profile-section {
    padding: 22px 24px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .profile-section:last-child { border-bottom: none; }
  .profile-section-title {
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 14px;
  }
  .profile-field { margin-bottom: 12px; }
  .profile-field:last-child { margin-bottom: 0; }
  .profile-field-label {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 3px;
  }
  .profile-field-value {
    font-family: var(--serif);
    font-size: 18px;
    color: var(--ink);
    line-height: 1.2;
  }
  .profile-field-value.empty {
    font-family: var(--sans);
    font-size: 13px;
    color: var(--ink-4);
    font-style: italic;
  }

  .pill-list { display: flex; flex-wrap: wrap; gap: 5px; }
  .pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    background: color-mix(in oklab, var(--accent) 12%, white);
    color: var(--accent-deep);
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .pill::before {
    content: '';
    display: inline-block;
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 20%, transparent);
  }

  .red-flag-list { display: flex; flex-direction: column; gap: 8px; }
  .red-flag {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 13px;
    color: var(--ink-2);
  }
  .red-flag::before {
    content: '';
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--warn);
    flex-shrink: 0;
    transform: translateY(-2px);
  }

  /* ============ REVIEW VIEW ============ */
  .dropzone {
    border: 1px dashed var(--ink);
    border-radius: 6px;
    padding: 72px 40px;
    background: var(--paper-2);
    text-align: center;
    cursor: pointer;
    transition: background .25s ease, border-color .25s ease;
  }
  .dropzone:hover, .dropzone.drag {
    background: var(--accent-tint);
    border-color: var(--accent-deep);
  }
  .dropzone-title {
    font-family: var(--serif);
    font-size: 36px;
    line-height: 1.05;
    margin-bottom: 10px;
  }
  .dropzone-title em { font-style: italic; color: var(--accent-deep); }
  .dropzone-sub {
    color: var(--ink-3);
    font-size: 14.5px;
    margin-bottom: 22px;
  }
  .format-row {
    display: flex;
    gap: 10px;
    justify-content: center;
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .format-row span { padding: 4px 10px; border: 1px solid var(--rule-soft); border-radius: 999px; }
  .upload-cta-row { margin-top: 24px; display: flex; gap: 12px; justify-content: center; }

  /* Progress */
  .progress-file {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 28px 32px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .progress-elapsed {
    margin-left: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    padding-left: 18px;
    border-left: 1px solid var(--rule-soft);
  }
  .progress-elapsed-label {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .progress-elapsed-time {
    font-family: var(--mono);
    font-variant-numeric: tabular-nums;
    font-size: 22px;
    color: var(--ink);
    font-weight: 500;
  }
  .progress-file-icon {
    width: 44px; height: 56px;
    background: var(--paper-2);
    border: 1px solid var(--rule-soft);
    border-radius: 4px;
    display: grid;
    place-items: center;
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .04em;
    color: var(--ink-2);
  }
  .progress-file-name {
    font-family: var(--serif);
    font-size: 22px;
    line-height: 1.2;
    margin-bottom: 2px;
  }
  .progress-file-sub {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-3);
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .stage-list { padding: 24px 32px 32px; display: flex; flex-direction: column; gap: 4px; }
  .stage {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 14px 0;
    border-top: 1px solid var(--rule-soft);
  }
  .stage:first-child { border-top: none; }
  .stage-icon {
    width: 22px; height: 22px;
    border-radius: 50%;
    border: 1px solid var(--rule-soft);
    background: var(--paper);
    display: grid;
    place-items: center;
    font-family: var(--mono);
    font-size: 10px;
    color: var(--ink-4);
  }
  .stage.running .stage-icon {
    border-color: var(--accent-deep);
    color: var(--accent-deep);
    animation: spin 1s linear infinite;
  }
  .stage.done .stage-icon {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--paper);
  }
  .stage.done .stage-icon::before { content: '✓'; font-family: var(--sans); font-size: 12px; }
  .stage.done .stage-icon span { display: none; }
  @keyframes spin { to { transform: rotate(360deg); } }
  .stage-label {
    font-size: 15px;
    color: var(--ink-3);
  }
  .stage.running .stage-label, .stage.done .stage-label { color: var(--ink); }
  .stage.running .stage-label { font-weight: 500; }
  .stage-detail {
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .05em;
    text-transform: uppercase;
  }

  /* Results */
  .results-head {
    padding: 32px 36px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .results-head-kicker { margin-bottom: 14px; }
  .results-head-title {
    font-family: var(--serif);
    font-size: 38px;
    line-height: 1.05;
    letter-spacing: -.02em;
    margin-bottom: 6px;
  }
  .results-head-sub {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-3);
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-bottom: 28px;
  }
  .results-meta {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 1px solid var(--rule-soft);
    padding-top: 20px;
  }
  .results-meta > div + div { border-left: 1px solid var(--rule-soft); padding-left: 20px; }
  .results-meta > div { padding-right: 20px; }
  .results-meta-l {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 6px;
  }
  .results-meta-v {
    font-family: var(--serif);
    font-size: 26px;
    line-height: 1;
  }
  .results-meta-v.warn { color: var(--warn); }

  .severity-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-bottom: 1px solid var(--rule-soft);
  }
  .sev {
    padding: 22px 24px;
    border-right: 1px solid var(--rule-soft);
  }
  .sev:last-child { border-right: none; }
  .sev-l {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 10px;
  }
  .sev-n {
    font-family: var(--serif);
    font-size: 42px;
    line-height: 1;
  }
  .sev.blocker .sev-l, .sev.blocker .sev-n { color: var(--warn); }
  .sev.major .sev-l, .sev.major .sev-n { color: var(--accent-deep); }
  .sev.moderate .sev-l, .sev.moderate .sev-n { color: var(--ink-2); }
  .sev.minor .sev-l, .sev.minor .sev-n { color: var(--ink-3); }

  /* Tabbed results panel — Top 3 / All Findings / Structural / Coverage */
  .results-tabs-wrap { display: block; }
  .results-tabs {
    display: flex;
    gap: 4px;
    padding: 0 36px;
    border-bottom: 1px solid var(--rule);
    background: var(--paper-2);
  }
  .results-tab {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 16px 18px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--ink-3);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color .12s ease, border-color .12s ease;
  }
  .results-tab:hover { color: var(--ink-2); }
  .results-tab.active {
    color: var(--ink);
    border-bottom-color: var(--accent-deep);
    background: var(--paper);
  }
  .tab-count {
    display: inline-block;
    min-width: 18px;
    padding: 2px 6px;
    background: var(--paper);
    border: 1px solid var(--rule);
    border-radius: 999px;
    font-size: 10px;
    color: var(--ink-3);
    text-align: center;
  }
  .results-tab.active .tab-count {
    background: var(--accent-deep);
    color: var(--paper);
    border-color: var(--accent-deep);
  }
  .tab-panel { display: none; }
  .tab-panel.active { display: block; }
  /* legacy-schema indicator on archive reviews from before Wave 3 */
  .results-tabs-wrap.legacy-schema::before {
    content: 'Reviewed under prior schema — some fields may be missing.';
    display: block;
    padding: 8px 36px;
    background: color-mix(in oklab, var(--warn) 10%, var(--paper));
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .04em;
    color: var(--ink-2);
    border-bottom: 1px solid var(--rule-soft);
  }

  /* Existential finding badge */
  .finding-existential {
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 3px 7px;
    border-radius: 3px;
    background: var(--warn);
    color: var(--paper);
    font-weight: 600;
    flex-shrink: 0;
  }
  .finding-card.existential {
    border-left-width: 4px;
    box-shadow: 0 0 0 1px color-mix(in oklab, var(--warn) 20%, transparent);
  }
  .priority-card.existential {
    border-left-width: 4px;
  }

  /* Per-finding meta chips (specialist + jurisdiction_assumed) */
  .finding-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .finding-meta-chip {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .04em;
    padding: 3px 8px;
    background: var(--paper-2);
    color: var(--ink-3);
    border-radius: 3px;
    border: 1px solid var(--rule);
  }
  .finding-meta-chip.jurisdiction {
    background: color-mix(in oklab, var(--accent) 6%, var(--paper-2));
    border-color: color-mix(in oklab, var(--accent-deep) 25%, var(--rule));
    color: var(--accent-deep);
  }

  /* Coverage pass tab — per-specialist collapsible sections */
  .coverage-section { padding: 26px 36px 22px; }
  .coverage-section .coverage-head { margin-bottom: 16px; }
  .coverage-title {
    font-family: var(--serif);
    font-size: 20px;
    font-weight: 500;
    color: var(--ink);
    line-height: 1.2;
  }
  .coverage-sub {
    font-size: 12.5px;
    color: var(--ink-3);
    margin-top: 4px;
    line-height: 1.45;
  }
  .coverage-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .coverage-specialist {
    border: 1px solid var(--rule);
    border-radius: 4px;
    background: var(--paper);
    overflow: hidden;
  }
  .coverage-specialist[open] { background: var(--paper-2); }
  .coverage-specialist-summary {
    padding: 12px 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    user-select: none;
    list-style: none;
  }
  .coverage-specialist-summary::-webkit-details-marker { display: none; }
  .coverage-specialist-name {
    font-family: var(--mono);
    font-size: 12px;
    color: var(--ink);
    flex: 1;
  }
  .coverage-specialist-count {
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
  }
  .coverage-collapse-arrow {
    font-size: 12px;
    color: var(--ink-3);
    transition: transform .12s ease;
  }
  .coverage-specialist[open] .coverage-collapse-arrow { transform: rotate(90deg); }
  .coverage-entries {
    padding: 8px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .coverage-entry {
    padding: 10px 12px;
    background: var(--paper);
    border: 1px solid var(--rule-soft);
    border-radius: 3px;
    font-size: 13px;
    line-height: 1.5;
  }
  .coverage-entry-head {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 6px;
  }
  .coverage-status {
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 7px;
    border-radius: 3px;
    background: var(--ink-3);
    color: var(--paper);
    flex-shrink: 0;
  }
  .coverage-entry.status-present .coverage-status { background: var(--accent-deep); }
  .coverage-entry.status-absent .coverage-status { background: var(--warn); }
  .coverage-entry.status-partially-addressed .coverage-status { background: var(--ink-2); }
  .coverage-entry.status-not-applicable-to-this-deal .coverage-status { background: var(--ink-3); }
  .coverage-entry.status-cross-referenced-to-master .coverage-status { background: var(--accent); color: var(--ink); }
  .coverage-item { font-weight: 500; color: var(--ink); }
  .coverage-source {
    font-family: var(--mono);
    font-size: 10px;
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-left: auto;
  }
  .coverage-evidence {
    color: var(--ink-2);
    font-style: italic;
  }
  .coverage-profile-ref {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-3);
    margin-top: 4px;
  }

  /* Deal-posture dropdown on the Upload panel */
  .upload-posture {
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .upload-posture-label {
    display: block;
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin-bottom: 8px;
  }
  .upload-posture-label .req { color: var(--warn); }
  .upload-posture select {
    width: 100%;
    font-family: var(--sans);
    font-size: 15px;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 10px 12px;
    cursor: pointer;
  }
  .upload-posture select:focus { outline: none; border-color: var(--ink); }
  .upload-posture-hint {
    font-size: 12.5px;
    color: var(--ink-3);
    margin-top: 8px;
    line-height: 1.45;
  }

  /* Pre-upload acknowledgment box (Florida Rule 4-1.6 / 4-1.18 / 4-1.1).
     Always visible — user must check the box before upload completes. */
  .upload-ack {
    margin-top: 18px;
    padding: 14px 16px;
    border: 1px solid var(--rule);
    border-radius: 8px;
    background: var(--paper-2);
    transition: border-color .15s ease, background .15s ease;
  }
  .upload-ack-label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
  }
  .upload-ack-label input[type="checkbox"] {
    margin-top: 4px;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    accent-color: var(--accent-deep);
  }
  .upload-ack-text {
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--ink-2);
  }
  .upload-ack-text a {
    color: var(--accent-deep);
    border-bottom: 1px solid var(--accent);
  }
  .upload-ack.upload-ack-error {
    border-color: #b3532f;
    background: rgba(179, 83, 47, .04);
  }

  /* Classification confirm panel (between upload and progress) */
  #review-confirm { padding: 32px 36px; }
  .confirm-head { margin-bottom: 24px; }
  .confirm-title {
    font-family: var(--serif);
    font-size: 28px;
    font-weight: 500;
    margin: 10px 0 8px;
    color: var(--ink);
    line-height: 1.2;
  }
  .confirm-title em { color: var(--accent-deep); font-style: italic; }
  .confirm-sub {
    font-size: 14px;
    color: var(--ink-2);
    line-height: 1.5;
    margin-bottom: 8px;
  }
  .confirm-confidence {
    font-family: var(--mono);
    font-size: 11.5px;
    letter-spacing: .04em;
    color: var(--ink-3);
  }

  .confirm-governing {
    margin: 22px 0;
    padding: 20px 22px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    background: var(--paper-2);
  }
  .confirm-governing.hidden { display: none; }
  .confirm-governing-head {
    font-family: var(--serif);
    font-size: 17px;
    color: var(--ink);
    margin-bottom: 4px;
  }
  .confirm-governing-sub {
    font-size: 13px;
    color: var(--ink-3);
    margin-bottom: 14px;
    line-height: 1.5;
  }
  .confirm-governing-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
    flex-wrap: wrap;
  }
  .cg-tab {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 6px 12px;
    border: 1px solid var(--rule);
    background: var(--paper);
    color: var(--ink-2);
    border-radius: 999px;
    cursor: pointer;
  }
  .cg-tab.active {
    background: var(--ink);
    color: var(--paper);
    border-color: var(--ink);
  }
  .cg-panel {
    width: 100%;
    font-family: var(--sans);
    font-size: 14px;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 10px 12px;
    resize: vertical;
    line-height: 1.5;
  }
  .cg-panel.hidden { display: none; }
  .cg-file-hint {
    font-size: 12.5px;
    color: var(--ink-3);
    margin-top: 6px;
    line-height: 1.45;
  }

  /* ===== Streaming-findings preview (progress panel) ===== */
  .stream-findings {
    margin-top: 28px;
    padding: 18px 20px;
    border-top: 1px solid var(--rule);
  }
  .stream-findings.hidden { display: none; }
  .stream-findings-head {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 14px;
  }
  .stream-findings-title {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-2);
  }
  .stream-findings-sub {
    font-size: 12.5px;
    color: var(--ink-3);
  }
  .stream-findings-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .stream-card {
    padding: 12px 14px;
    border: 1px solid var(--rule);
    border-radius: 10px;
    background: var(--paper);
    border-left-width: 3px;
    animation: streamCardIn 220ms ease-out;
  }
  @keyframes streamCardIn {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  .stream-card-blocker  { border-left-color: #c0392b; }
  .stream-card-major    { border-left-color: #d97706; }
  .stream-card-moderate { border-left-color: #ca8a04; }
  .stream-card-minor    { border-left-color: var(--ink-3); }
  .stream-card-head {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 6px;
  }
  .stream-card-sev {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-2);
    padding: 2px 8px;
    border: 1px solid var(--rule);
    border-radius: 999px;
  }
  .stream-card-spec {
    font-size: 12px;
    color: var(--ink-3);
  }
  .stream-card-cat {
    font-size: 11.5px;
    color: var(--ink-3);
    background: var(--paper-2, #fafaf7);
    padding: 1px 8px;
    border-radius: 999px;
  }
  .stream-card-body {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--ink-1);
    margin-top: 4px;
  }
  .stream-card-quote {
    font-size: 12.5px;
    font-style: italic;
    color: var(--ink-3);
    margin-top: 6px;
    padding-left: 10px;
    border-left: 2px solid var(--rule);
  }

  .confirm-party {
    margin-top: 22px;
    padding: 16px 18px;
    border: 1px solid var(--rule);
    border-radius: 12px;
    background: var(--paper-2, #fafaf7);
  }
  .confirm-party.hidden { display: none; }
  .confirm-party-sub {
    font-size: 13px;
    color: var(--ink-3);
    margin: 6px 0 12px;
  }
  .confirm-party-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .confirm-party-btn {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 10px 16px;
    border: 1px solid var(--rule);
    background: var(--paper);
    color: var(--ink-1);
    border-radius: 10px;
    cursor: pointer;
    text-align: left;
    min-width: 200px;
  }
  .confirm-party-btn:hover { border-color: var(--accent-deep); }
  .confirm-party-btn.active {
    background: var(--accent-deep);
    color: var(--paper);
    border-color: var(--accent-deep);
  }
  .confirm-party-btn .cp-term {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .confirm-party-btn .cp-name {
    font-size: 13px;
    opacity: 0.9;
  }
  /* .confirm-mode-label is reused by the party picker — keep its styling. */
  .confirm-mode-label {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .confirm-actions {
    margin-top: 28px;
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
  }
  .confirm-countdown {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .04em;
    color: inherit;
    margin-left: 8px;
    opacity: 0.85;
  }

  /* Structural issues / missing clauses — first-class section */
  .structural-section {
    padding: 26px 36px 22px;
    border-bottom: 1px solid var(--rule-soft);
    background: color-mix(in oklab, var(--warn) 4%, var(--paper));
  }
  .structural-section.hidden { display: none; }
  .structural-head { margin-bottom: 16px; }
  .structural-title {
    font-family: var(--serif);
    font-size: 20px;
    font-weight: 500;
    color: var(--ink);
    line-height: 1.2;
  }
  .structural-sub {
    font-size: 12.5px;
    color: var(--ink-3);
    margin-top: 4px;
    line-height: 1.45;
  }
  .structural-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  /* Top 3 to Raise — partner-level priority section above findings list */
  .priority-three-section {
    padding: 26px 36px 20px;
    border-bottom: 1px solid var(--rule-soft);
    background: color-mix(in oklab, var(--accent) 4%, var(--paper));
  }
  .priority-three-section.hidden { display: none; }
  .priority-three-head { margin-bottom: 14px; }
  .priority-three-title {
    font-family: var(--serif);
    font-size: 20px;
    font-weight: 500;
    color: var(--ink);
    line-height: 1.2;
  }
  .priority-three-sub {
    font-size: 12.5px;
    color: var(--ink-3);
    margin-top: 4px;
  }
  .priority-three-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .priority-card {
    background: var(--paper);
    border: 1px solid var(--rule);
    border-left: 3px solid var(--accent-deep);
    border-radius: 4px;
    padding: 14px 18px;
  }
  .priority-card.sev-blocker { border-left-color: var(--warn); }
  .priority-card.sev-major { border-left-color: var(--accent-deep); }
  .priority-card.sev-moderate { border-left-color: var(--ink-2); }
  .priority-card.sev-minor { border-left-color: var(--ink-3); }
  .priority-card-head {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 8px;
  }
  .priority-card-num {
    font-family: var(--mono);
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-3);
    min-width: 18px;
  }
  .priority-card-rationale {
    font-size: 14px;
    line-height: 1.55;
    color: var(--ink);
    margin-bottom: 8px;
  }
  .priority-card-ask {
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--ink-2);
    padding: 8px 12px;
    background: var(--paper-2);
    border-radius: 3px;
  }
  .priority-card-label {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin-right: 6px;
  }

  /* Negotiating ladder inside finding cards — position / fallback / walkaway */
  .neg-ladder {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .neg-row {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 10px;
    padding: 6px 10px;
    background: var(--paper-2);
    border-radius: 3px;
    align-items: start;
  }
  .neg-row.walkaway {
    background: color-mix(in oklab, var(--warn) 8%, var(--paper-2));
    border-left: 2px solid var(--warn);
  }
  .neg-label {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
  .neg-value {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--ink);
  }
  @media (max-width: 680px) {
    .neg-row { grid-template-columns: 1fr; gap: 3px; }
  }

  /* In-browser findings viewer ---------------------------------------- */
  .findings-section {
    padding: 30px 36px 6px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .findings-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 20px;
  }
  .findings-collapse-btn {
    font: inherit;
    appearance: none;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ink);
    text-align: left;
  }
  .findings-title {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 500;
    color: var(--ink);
    line-height: 1.2;
  }
  .findings-count-badge {
    font-family: var(--mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .04em;
    color: var(--ink-3);
    margin-left: 6px;
    vertical-align: middle;
  }
  .findings-collapse-arrow {
    font-size: 14px;
    color: var(--ink-3);
    transition: transform .15s ease;
  }
  .findings-section.collapsed .findings-collapse-arrow { transform: rotate(-90deg); }
  .findings-section.collapsed .findings-head-right,
  .findings-section.collapsed .findings-list { display: none; }
  .findings-head-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    flex: 1;
    min-width: 0;
  }
  .findings-sub {
    font-size: 12.5px;
    color: var(--ink-3);
  }
  @media (max-width: 680px) {
    .findings-head-right { align-items: flex-start; width: 100%; }
  }
  .findings-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .findings-filter {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 6px 12px;
    border: 1px solid var(--rule);
    background: var(--paper);
    color: var(--ink-2);
    border-radius: 999px;
    cursor: pointer;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
  }
  .findings-filter:hover { border-color: var(--ink); color: var(--ink); }
  .findings-filter .ff-count {
    font-family: var(--mono);
    font-size: 10px;
    margin-left: 6px;
    opacity: 0.7;
  }
  .findings-filter.active {
    background: var(--ink);
    color: var(--paper);
    border-color: var(--ink);
  }
  .findings-filter.active .ff-count { opacity: 1; }
  .findings-filter.blocker.active { background: var(--warn); border-color: var(--warn); }
  .findings-filter.major.active { background: var(--accent-deep); border-color: var(--accent-deep); }
  .findings-filter.moderate.active { background: var(--ink-2); border-color: var(--ink-2); }
  .findings-filter.minor.active { background: var(--ink-3); border-color: var(--ink-3); }

  .findings-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding-bottom: 20px;
  }
  .findings-empty {
    font-family: var(--mono);
    font-size: 11.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ink-3);
    padding: 40px 0;
    text-align: center;
  }

  .finding-card {
    border: 1px solid var(--rule);
    border-left: 3px solid var(--ink-3);
    border-radius: 4px;
    background: var(--paper);
    overflow: hidden;
    transition: box-shadow .15s ease, border-color .15s ease;
  }
  .finding-card:hover { box-shadow: 0 2px 12px color-mix(in oklab, var(--ink) 8%, transparent); }
  .finding-card.sev-blocker  { border-left-color: var(--warn); }
  .finding-card.sev-major    { border-left-color: var(--accent-deep); }
  .finding-card.sev-moderate { border-left-color: var(--ink-2); }
  .finding-card.sev-minor    { border-left-color: var(--ink-3); }

  .finding-head {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 14px 18px;
    cursor: pointer;
    user-select: none;
  }
  .finding-sev-tag {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
    background: var(--ink);
    color: var(--paper);
    flex-shrink: 0;
  }
  .finding-sev-tag.blocker  { background: var(--warn); }
  .finding-sev-tag.major    { background: var(--accent-deep); }
  .finding-sev-tag.moderate { background: var(--ink-2); }
  .finding-sev-tag.minor    { background: var(--ink-3); }

  /* Source-of-finding indicator: playbook-driven vs industry-baseline */
  .finding-tier {
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 3px;
    flex-shrink: 0;
    font-weight: 500;
  }
  .finding-tier.tier-client-position,
  .finding-tier.tier-playbook /* legacy alias */ {
    background: color-mix(in oklab, var(--accent) 18%, transparent);
    color: var(--accent-deep);
    border: 1px solid color-mix(in oklab, var(--accent-deep) 30%, transparent);
  }
  .finding-tier.tier-baseline {
    background: transparent;
    color: var(--ink-3);
    border: 1px solid var(--rule);
  }

  .finding-category {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ink-3);
    flex-shrink: 0;
  }
  .finding-markup {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ink-3);
    flex-shrink: 0;
  }
  .finding-preview {
    font-size: 13.5px;
    color: var(--ink-2);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .finding-toggle {
    font-family: var(--mono);
    font-size: 12px;
    color: var(--ink-3);
    flex-shrink: 0;
    transition: transform .12s ease;
  }
  .finding-card.open .finding-toggle { transform: rotate(90deg); }

  .finding-body {
    padding: 0 18px 18px 18px;
    display: none;
    border-top: 1px solid var(--rule-soft);
    padding-top: 16px;
  }
  .finding-card.open .finding-body { display: block; }
  .finding-block + .finding-block { margin-top: 14px; }
  .finding-block-label {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-3);
    margin-bottom: 6px;
  }
  .finding-source {
    font-family: var(--serif);
    font-style: italic;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ink);
    padding: 10px 14px;
    background: var(--paper-2);
    border-left: 2px solid var(--ink-3);
    border-radius: 2px;
    white-space: pre-wrap;
  }
  .finding-source.strike { text-decoration: line-through; text-decoration-color: var(--warn); text-decoration-thickness: 1px; }
  .finding-suggested {
    font-family: var(--serif);
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ink);
    padding: 10px 14px;
    background: color-mix(in oklab, var(--accent) 8%, var(--paper-2));
    border-left: 2px solid var(--accent-deep);
    border-radius: 2px;
    white-space: pre-wrap;
  }
  .finding-comment {
    font-size: 14px;
    line-height: 1.6;
    color: var(--ink-2);
    white-space: pre-wrap;
  }
  @media (max-width: 680px) {
    .findings-section { padding: 20px 20px 6px; }
    .finding-head { flex-wrap: wrap; }
    .finding-preview { white-space: normal; }
  }

  .action-row {
    padding: 24px 36px;
    border-bottom: 1px solid var(--rule-soft);
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
  }

  /* Findings */
  .findings-list { padding: 32px 36px; }
  .findings-header-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ink);
    margin-bottom: 24px;
  }
  .findings-header-title {
    font-family: var(--serif);
    font-size: 32px;
    letter-spacing: -.02em;
  }
  .findings-header-title em { font-style: italic; color: var(--accent-deep); }
  .findings-header-count {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .finding {
    padding: 24px 0;
    border-bottom: 1px solid var(--rule-soft);
  }
  .finding:last-child { border-bottom: none; }
  .finding-topline {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .finding-badge {
    padding: 4px 10px;
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .finding-badge.blocker {
    background: var(--warn-tint);
    color: var(--warn);
  }
  .finding-badge.major {
    background: var(--accent-tint);
    color: var(--accent-deep);
  }
  .finding-badge.moderate, .finding-badge.minor {
    background: var(--paper-2);
    color: var(--ink-2);
  }
  .finding-escalation {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--warn);
    font-weight: 600;
  }
  .finding-title {
    font-family: var(--serif);
    font-size: 26px;
    line-height: 1.15;
    letter-spacing: -.015em;
    margin-bottom: 12px;
    max-width: 68ch;
  }
  .finding-title em { font-style: italic; color: var(--accent-deep); }
  .finding-quote {
    font-family: var(--serif);
    font-style: italic;
    font-size: 16px;
    line-height: 1.5;
    color: var(--ink-2);
    border-left: 2px solid var(--rule);
    padding: 4px 0 4px 18px;
    margin: 10px 0;
    max-width: 72ch;
  }
  .finding-replacement {
    margin-top: 14px;
    padding: 14px 18px;
    background: var(--accent-tint);
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--ink);
    max-width: 72ch;
  }
  .finding-replacement-label {
    font-family: var(--mono);
    font-size: 9.5px;
    color: var(--accent-deep);
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 6px;
  }

  .show-all-row {
    text-align: center;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--rule-soft);
  }
  .link-ul {
    font-family: var(--sans);
    font-size: 14px;
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px solid var(--accent);
    padding-bottom: 2px;
    cursor: pointer;
  }
  .link-ul:hover { color: var(--accent-deep); }

  .back-row {
    padding: 24px 36px;
    border-top: 1px solid var(--rule-soft);
    text-align: center;
  }

  /* ============ HISTORY VIEW ============ */
  .history-list { }
  .history-col-head {
    display: grid;
    grid-template-columns: 1fr 200px 140px 140px 120px;
    gap: 20px;
    padding: 16px 32px;
    border-bottom: 1px solid var(--ink);
    font-family: var(--mono);
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .history-row {
    display: grid;
    grid-template-columns: 1fr 200px 140px 140px 120px;
    gap: 20px;
    padding: 22px 32px;
    border-bottom: 1px solid var(--rule-soft);
    align-items: center;
    cursor: pointer;
    transition: background .25s ease;
  }
  .history-row:hover { background: var(--paper-2); }
  .history-row-wrap:last-child .history-row { border-bottom: none; }
  .history-row-wrap.open .history-row { background: var(--paper-2); border-bottom-color: transparent; }
  .history-row-arrow {
    font-family: var(--mono);
    font-size: 13px;
    color: var(--ink-3);
    margin-left: 8px;
    display: inline-block;
    transition: transform .15s ease;
  }
  .history-row-wrap.open .history-row-arrow { transform: rotate(90deg); color: var(--ink-2); }

  /* Inline findings drawer inside an expanded archive row */
  .history-row-drawer {
    border-bottom: 1px solid var(--rule-soft);
    background: var(--paper-2);
  }
  .history-row-drawer.hidden { display: none; }
  .history-row-drawer .drawer-head { padding: 0 4px; }
  .history-row-drawer .severity-row {
    border-top: 1px solid var(--rule-soft);
    border-bottom: 1px solid var(--rule-soft);
  }
  .history-row-drawer .findings-section {
    padding: 22px 32px 8px;
    border-bottom: none;
  }
  .history-row-drawer .findings-list { padding-bottom: 24px; }
  .history-row-drawer .action-row {
    padding: 20px 32px 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  /* Don't remove the row bottom-border on last archive row when drawer is open */
  .history-row-wrap:last-child.open .history-row { border-bottom: 1px solid var(--rule-soft); }
  .history-row-wrap:last-child.open .history-row-drawer { border-bottom: none; }
  .h-name {
    font-family: var(--serif);
    font-size: 20px;
    line-height: 1.25;
    letter-spacing: -.01em;
  }
  .h-name em { font-style: italic; color: var(--accent-deep); }
  .h-meta {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-3);
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  .h-meta.emph { color: var(--ink); }
  .status-pill {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .status-pill.complete {
    background: var(--accent-tint);
    color: var(--accent-deep);
  }
  .status-pill.escalated {
    background: var(--warn-tint);
    color: var(--warn);
  }

  /* ============ BANNER ============ */
  .banner {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px 10px 12px;
    border: 1px solid var(--rule-soft);
    border-radius: 999px;
    background: var(--paper-2);
    font-size: 13px;
    color: var(--ink-2);
    margin-bottom: 28px;
  }
  .banner-tag {
    font-family: var(--mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 8px;
    background: var(--ink);
    color: var(--paper);
    border-radius: 999px;
  }

  /* ============ UTILITIES ============ */
  .hidden { display: none !important; }

  @media (max-width: 960px) {
    .nav { padding: 16px 22px; }
    .nav-inner { gap: 24px; }
    .nav-links { display: none; }
    main { padding: 48px 22px 80px; }
    .cfg-grid { grid-template-columns: 1fr; }
    .stats, .severity-row, .results-meta { grid-template-columns: repeat(2, 1fr); }
    .history-col-head, .history-row { grid-template-columns: 1fr 100px; }
    .history-col-head > *:nth-child(n+3), .history-row > *:nth-child(n+3) { display: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    .hero-title em::after, .rise, .live-dot { animation: none !important; }
    .rise { opacity: 1; transform: none; }
    .hero-title em::after { transform: scaleX(1); }
  }
