  /* ======================================================================
     ADBA brand tokens, sampled from adbioresources.org
     ====================================================================== */
  .adba-tool{
    --adba-magenta:#96175D;
    --adba-magenta-dark:#7A1149;
    --adba-magenta-tint:#f6eaf1;
    --adba-lime:#B2BB1C;
    --adba-lime-dark:#98a017;
    --adba-teal:#008DA8;
    --adba-sky:#71CEF5;
    --adba-grey:#808285;
    --adba-grey-dark:#616161;
    --adba-charcoal:#3F4042;
    --line:#e2e3e5;
    --line-soft:#eeeff0;
    --bg:#ffffff;
    --bg-soft:#f7f7f8;
    --warn-bg:#fdf6e3;
    --warn-line:#e8c56a;
    --err:#b3261e;
    --radius:0;
    --btn-radius:0 18px 0 18px;
    --font:"futura-pt","Jost","Century Gothic","Futura","Avenir Next",
           -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  }

  .adba-tool *{box-sizing:border-box}
  .adba-tool{
    font-family:var(--font);
    font-size:18px;
    line-height:1.5;
    color:var(--adba-grey);
    background:var(--bg);
    max-width:960px;
    margin:0 auto;
    -webkit-font-smoothing:antialiased;
  }
  .adba-tool p{margin:0 0 16px}
  .adba-tool a{color:var(--adba-magenta)}
  .adba-tool a:hover{color:var(--adba-magenta-dark)}

  .wrap{padding:0 24px}
  @media (max-width:600px){ .wrap{padding:0 16px} }

  /* --- Masthead ---------------------------------------------------------- */
  .masthead{background:var(--adba-magenta);color:#fff;padding:30px 24px 34px}
  .masthead img{height:52px;width:auto;display:block;margin-bottom:26px}
  @media (max-width:600px){ .masthead img{height:38px} }
  .masthead .kicker{
    font-size:.8rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
    color:var(--adba-sky);margin:0 0 10px;
  }
  .masthead h1{
    font-family:var(--font);font-size:3rem;line-height:1.02;font-weight:700;
    text-transform:uppercase;letter-spacing:-.01em;margin:0 0 14px;color:#fff;
  }
  @media (max-width:600px){ .masthead h1{font-size:2.1rem} }
  .masthead p{color:rgba(255,255,255,.92);font-size:1.08rem;max-width:44em;margin:0 0 6px}
  .masthead .deadline{
    display:inline-block;margin-top:16px;background:var(--adba-lime);color:#fff;
    font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    padding:8px 18px;border-radius:var(--btn-radius);
  }

  /* --- Headings ---------------------------------------------------------- */
  .adba-tool h2{
    font-family:var(--font);font-size:1.85rem;font-weight:600;line-height:1.15;
    color:var(--adba-magenta);margin:0 0 10px;
  }
  .adba-tool h3{
    font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--adba-teal);margin:30px 0 12px;
  }
  .adba-tool h4{font-size:1.05rem;font-weight:600;color:var(--adba-grey-dark);margin:0 0 8px}
  .lede{font-size:1.05rem;color:var(--adba-grey)}

  .step-badge{
    display:inline-block;background:var(--adba-teal);color:#fff;
    font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    padding:6px 14px;border-radius:var(--btn-radius);margin-bottom:14px;
  }

  section.card{border:1px solid var(--line);padding:30px 28px;margin:30px 0;background:var(--bg)}
  section.card.soft{background:var(--bg-soft)}
  @media (max-width:600px){ section.card{padding:22px 18px} }

  /* --- Stats strip ------------------------------------------------------- */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;border-top:4px solid var(--adba-lime)}
  @media (max-width:620px){ .stats{grid-template-columns:repeat(2,1fr)} }
  .stat{background:var(--adba-charcoal);color:#fff;padding:20px 14px;text-align:center;border-right:1px solid rgba(255,255,255,.12)}
  .stat:last-child{border-right:0}
  .stat b{display:block;font-size:1.9rem;font-weight:700;line-height:1;color:var(--adba-sky)}
  .stat span{font-size:.78rem;color:rgba(255,255,255,.8);display:block;margin-top:6px;letter-spacing:.03em}

  /* --- Live tally -------------------------------------------------------- */
  .tally{background:var(--adba-magenta-tint);border-left:6px solid var(--adba-magenta);padding:26px 28px;margin:30px 0}
  .tally-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
  .tally-num{
    font-size:4.2rem;font-weight:700;line-height:.95;color:var(--adba-magenta);
    font-variant-numeric:tabular-nums;letter-spacing:-.02em;
  }
  @media (max-width:600px){ .tally-num{font-size:3rem} }
  .tally-label{font-size:1.1rem;font-weight:600;color:var(--adba-magenta-dark)}
  .tally-sub{font-size:.9rem;color:var(--adba-grey);margin-top:8px}

  .sig-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:20px 0 12px}
  .sig-controls input{max-width:280px}

  .sig-table-wrap{max-height:420px;overflow-y:auto;border:1px solid var(--line);background:#fff}
  table.sig{width:100%;border-collapse:collapse;font-size:.9rem}
  table.sig th{
    position:sticky;top:0;background:var(--adba-charcoal);color:#fff;text-align:left;
    padding:10px 14px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  }
  table.sig td{padding:9px 14px;border-top:1px solid var(--line-soft);vertical-align:top;color:var(--adba-grey-dark)}
  table.sig tr:nth-child(even) td{background:#fafafa}
  table.sig td.org{font-weight:600;color:var(--adba-magenta)}
  .sig-empty{padding:26px;text-align:center;color:var(--adba-grey);font-size:.92rem}

  /* --- Letter preview ---------------------------------------------------- */
  details.letter{border:1px solid var(--line);margin:22px 0;background:var(--bg-soft)}
  details.letter summary{
    cursor:pointer;padding:16px 20px;font-weight:600;color:var(--adba-magenta);
    list-style:none;user-select:none;font-size:.95rem;
  }
  details.letter summary::-webkit-details-marker{display:none}
  details.letter summary::before{content:"▸ ";display:inline-block}
  details.letter[open] summary::before{content:"▾ "}
  .letter-body{
    padding:18px 22px 22px;font-size:.9rem;line-height:1.6;white-space:pre-wrap;
    max-height:400px;overflow-y:auto;border-top:1px solid var(--line);background:#fff;
  }

  /* --- Forms ------------------------------------------------------------- */
  .grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
  .grid .full{grid-column:1 / -1}
  @media (max-width:620px){ .grid{grid-template-columns:1fr} }

  .field label{display:block;font-weight:600;font-size:.85rem;margin-bottom:6px;color:var(--adba-grey-dark)}
  .field .hint{display:block;font-weight:400;color:var(--adba-grey);font-size:.78rem;margin-top:3px;line-height:1.4}
  .req{color:var(--adba-magenta);margin-left:2px}

  .adba-tool input[type=text],.adba-tool input[type=email],.adba-tool input[type=tel],
  .adba-tool input[type=url],.adba-tool select,.adba-tool textarea{
    width:100%;padding:11px 13px;border:1px solid #cfd0d2;border-radius:0;
    font:inherit;font-size:.92rem;background:#fff;color:var(--adba-grey-dark);
  }
  .adba-tool textarea{min-height:150px;resize:vertical;line-height:1.55}
  .adba-tool input:focus,.adba-tool select:focus,.adba-tool textarea:focus{
    outline:none;border-color:var(--adba-magenta);box-shadow:0 0 0 3px rgba(150,23,93,.14);
  }
  .adba-tool [aria-invalid=true]{border-color:var(--err) !important;background:#fff6f5}

  .check{display:flex;gap:11px;align-items:flex-start;margin:13px 0;font-size:.88rem}
  .check input{margin-top:3px;flex:0 0 auto;width:17px;height:17px;accent-color:var(--adba-magenta)}
  .check label{font-weight:400;line-height:1.45;color:var(--adba-grey-dark)}

  .btn{
    display:inline-block;background:var(--adba-lime);color:#fff;border:2px solid var(--adba-lime);
    padding:13px 30px;border-radius:var(--btn-radius);font:inherit;font-size:.92rem;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none;text-align:center;
    transition:background .15s,border-color .15s,color .15s;
  }
  .btn:hover{background:var(--adba-lime-dark);border-color:var(--adba-lime-dark);color:#fff}
  .btn:disabled{background:#c4c5c7;border-color:#c4c5c7;cursor:not-allowed}
  .btn.primary{background:var(--adba-magenta);border-color:var(--adba-magenta)}
  .btn.primary:hover{background:var(--adba-magenta-dark);border-color:var(--adba-magenta-dark)}
  .btn.secondary{background:#fff;color:var(--adba-magenta);border-color:var(--adba-magenta)}
  .btn.secondary:hover{background:var(--adba-magenta);color:#fff}
  .btn.small{padding:9px 18px;font-size:.78rem}
  .btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;align-items:center}

  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

  .status{margin-top:18px;padding:14px 17px;font-size:.9rem;display:none;border-left:5px solid}
  .status.show{display:block}
  .status.ok{background:#f2f6e0;border-color:var(--adba-lime);color:#5d6309}
  .status.err{background:#fdecea;border-color:var(--err);color:var(--err)}
  .status.info{background:var(--warn-bg);border-color:var(--warn-line);color:#6b5310}

  /* --- MP card ----------------------------------------------------------- */
  .mp-card{display:none;gap:20px;align-items:center;margin-top:22px;padding:20px;
    border:1px solid var(--line);border-left:6px solid var(--adba-teal);background:#fff}
  .mp-card.show{display:flex}
  @media (max-width:520px){ .mp-card{flex-direction:column;text-align:center} }
  .mp-card img{width:84px;height:84px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:var(--bg-soft)}
  .mp-name{font-size:1.3rem;font-weight:600;margin:0 0 6px;color:var(--adba-grey-dark)}
  .mp-meta{font-size:.86rem;color:var(--adba-grey);margin:0 0 5px}
  .party-chip{display:inline-block;padding:3px 11px;font-size:.72rem;font-weight:600;
    letter-spacing:.05em;text-transform:uppercase;color:#fff;background:#666;border-radius:var(--btn-radius)}
  .mp-email{font-size:.85rem;font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}

  .compose{display:none;margin-top:28px}
  .compose.show{display:block}

  .angle-box{border:1px solid var(--adba-sky);border-left:6px solid var(--adba-teal);
    background:#f0fafd;padding:18px 20px;margin:24px 0}
  .angle-box h4{margin:0 0 8px;color:var(--adba-teal)}
  .angle-box textarea{min-height:120px;background:#fff}

  .note{font-size:.8rem;color:var(--adba-grey);margin-top:12px;line-height:1.5}
  .divider{border:0;border-top:1px solid var(--line);margin:34px 0}

  /* --- Footer band ------------------------------------------------------- */
  .footer-band{background:var(--adba-charcoal);color:rgba(255,255,255,.75);
    padding:22px 24px;font-size:.8rem;margin-top:40px;line-height:1.6}
  .footer-band a{color:var(--adba-sky)}

  /* --- Additions: coverage line, share block, MP role -------------------- */
  .tally-coverage{font-size:.95rem;color:var(--adba-magenta-dark);margin:10px 0 0}
  .tally-coverage strong{font-size:1.15rem}

  .share-block{margin-top:22px;padding:20px 22px;background:var(--bg-soft);
    border-left:6px solid var(--adba-lime)}
  .share-block h4{color:var(--adba-magenta);margin:0 0 6px}

  .mp-role{font-size:.82rem;color:var(--adba-teal);font-weight:600;margin:0 0 5px;
    letter-spacing:.02em}
