
  :root{
    --ink:#1B2A41;
    --ink-soft:#3F4E66;
    --paper:#FBF8F2;
    --paper-line:#E4DCC8;
    --canvas:#F0EEE8;
    --panel:#FFFFFF;
    --brass:#A67C3D;
    --brass-dark:#8A6530;
    --slate:#6B7A90;
    --warn:#A6472E;
    --warn-bg:#F7E9E4;
    --good:#4C7A5E;
    --good-bg:#E9F1EC;
    --border:#DDE1E6;
    --radius:6px;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:transparent;
    color:var(--ink);
    font-family:'IBM Plex Sans',system-ui,sans-serif;
    font-size:14px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  a{color:var(--brass-dark);}

  .btn{
    font-family:'IBM Plex Sans',sans-serif;
    font-size:13px;font-weight:500;padding:8px 14px;border-radius:var(--radius);
    border:1px solid transparent;cursor:pointer;
    transition:background .15s ease, border-color .15s ease, opacity .15s ease;
    white-space:nowrap;
  }
  .btn-brass{background:var(--brass);color:#fff;}
  .btn-brass:hover{background:var(--brass-dark);}
  .btn-brass.not-ready{background:#C9BCA3;}

  /* ---------- utility row (privacy note, top of form panel) ---------- */
  .util-row{
    padding:12px 20px;border-bottom:1px solid var(--border);
    font-size:11.5px;color:var(--slate);
  }

  /* ---------- layout ---------- */
  main{
    display:grid;grid-template-columns:minmax(320px,460px) 1fr;gap:28px;
    padding:28px;max-width:1400px;margin:0 auto;align-items:start;
  }
  @media (max-width:900px){ main{grid-template-columns:1fr;padding:16px;gap:20px;} }

  /* ---------- form panel ---------- */
  .form-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;}
  section.step{padding:22px 24px;border-bottom:1px solid var(--border);}
  section.step:last-child{border-bottom:none;}
  .step h2{
    font-family:'Lora',serif;font-size:16.5px;font-weight:600;margin:0 0 4px 0;
    display:flex;align-items:baseline;gap:8px;
  }
  .step h2 .mark{color:var(--brass-dark);font-family:'Lora',serif;font-style:italic;font-size:15px;}
  .step .sub{font-size:12.5px;color:var(--slate);margin:0 0 16px 0;}

  label{display:block;font-size:12.5px;font-weight:500;color:var(--ink-soft);margin-bottom:5px;}
  .field{margin-bottom:14px;}
  input[type=text],input[type=email],input[type=tel],select,textarea{
    width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius);
    font-family:'IBM Plex Sans',sans-serif;font-size:13.5px;color:var(--ink);background:#fff;
  }
  textarea{resize:vertical;min-height:56px;}
  input:focus,select:focus,textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass);}
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}

  .check-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;}
  .check-grid.cols-3{grid-template-columns:1fr 1fr 1fr;}
  .check-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--ink);}
  .check-row input{margin-top:2px;flex-shrink:0;}
  .check-row label{margin-bottom:0;font-weight:400;color:var(--ink);cursor:pointer;}

  .radio-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
  .radio-row input{flex-shrink:0;}
  .radio-row label{margin-bottom:0;font-weight:400;color:var(--ink);cursor:pointer;}

  .oba-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center;}
  .oba-row .rm{background:none;border:none;color:var(--warn);cursor:pointer;font-size:18px;line-height:1;padding:4px 6px;}
  .link-btn{background:none;border:none;color:var(--brass-dark);font-size:12.5px;font-weight:600;cursor:pointer;padding:0;}

  .toggle-line{display:flex;align-items:flex-start;gap:8px;padding:10px 0;border-top:1px dashed var(--border);font-size:13px;}
  .toggle-line:first-of-type{border-top:none;}
  .toggle-line input{margin-top:3px;flex-shrink:0;}

  .warn-box{
    background:var(--warn-bg);border:1px solid #E3C3B8;color:#7A3423;border-radius:var(--radius);
    padding:10px 12px;font-size:12.5px;margin-top:8px;display:none;
  }
  .warn-box.show{display:block;}

  .disclaimer{
    font-size:12px;color:var(--slate);background:#F7F5F0;border:1px solid var(--border);
    border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;
  }

  .attest-row{
    display:flex;align-items:flex-start;gap:10px;background:#F7F5F0;border:1px solid var(--border);
    border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;
  }
  .attest-row input{margin-top:3px;flex-shrink:0;}
  .attest-row label{font-weight:500;color:var(--ink);margin-bottom:0;cursor:pointer;}

  .gen-status{font-size:12px;margin-top:8px;color:var(--warn);display:none;}
  .gen-status.show{display:block;}
  .gen-status.ok{color:var(--good);}

  /* ---------- preview panel ---------- */
  .preview-wrap{position:sticky;top:20px;}
  .preview-label{
    font-size:12px;text-transform:uppercase;letter-spacing:0.08em;color:var(--slate);font-weight:600;
    margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;
  }
  #letterViewport{overflow:hidden;position:relative;border-radius:2px;box-shadow:0 1px 3px rgba(27,42,65,.08), 0 12px 32px rgba(27,42,65,.14);}
  #letterPage{
    width:8.5in;min-height:11in;background:#FFFFFF;padding:0.7in 0.8in;
    font-family:'Lora',serif;color:#20242C;position:absolute;top:0;left:0;transform-origin:top left;
  }
  #letterPage h1{font-size:14.5px;font-weight:600;margin:0 0 14px 0;color:var(--ink);border-bottom:1px solid var(--border);padding-bottom:10px;}
  #letterPage p{font-size:11px;line-height:1.55;margin:0 0 9px 0;}
  #letterPage h3{font-size:11.5px;font-weight:600;margin:14px 0 5px 0;color:var(--ink);}
  #letterPage .ph{color:var(--brass-dark);font-style:italic;}
  #letterPage .sect{page-break-inside:avoid;break-inside:avoid;}
  #letterPage .sig-block{margin-top:18px;page-break-inside:avoid;break-inside:avoid;}
  #letterPage .sig-heading{font-family:'IBM Plex Sans',sans-serif;font-size:9.5px;text-transform:uppercase;letter-spacing:0.06em;color:#6B7A90;}
  #letterPage .sig-rule{font-family:monospace;color:#999999;letter-spacing:0.5px;margin-top:18px;font-size:11px;line-height:1;}
  #letterPage .sig-caption{font-size:9.5px;color:#6B7A90;margin-top:2px;}
  #letterPage .prepared-by{margin-top:18px;font-size:11px;}
  #letterPage table.contact-table{
    width:100%;border-collapse:collapse;margin-top:16px;border-top:1px solid var(--border);
    font-size:10px;color:#20242C;page-break-inside:avoid;break-inside:avoid;
  }
  #letterPage table.contact-table td{padding:2px 0;vertical-align:top;}
  #letterPage table.contact-table td:first-child{padding-right:14px;}
  #letterPage table.contact-table tr:first-child td{padding-top:11px;}
  #letterPage .last-updated{
    margin-top:16px;font-size:9px;color:var(--slate);font-family:'IBM Plex Sans',sans-serif;
  }
  .field-missing{outline:2px solid var(--warn) !important;outline-offset:2px;border-radius:4px;}

  @media print{
    body *{visibility:hidden;}
    #letterPage,#letterPage *{visibility:visible;}
    #letterPage{position:fixed;top:0;left:0;transform:none !important;box-shadow:none;min-height:0;}
  }
