:root{
  --ink:#1B2A41;
  --ink-soft:#3F4E66;
  --brass:#A67C3D;
  --brass-dark:#8A6530;
  --slate:#6B7A90;
  --warn:#A6472E;
  --warn-bg:#F7E9E4;
  --good:#4C7A5E;
  --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;}

/* ---------- 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:#FFFFFF;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],input[type=date],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:70px;}
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;}

.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;}

.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);}

.field-missing{outline:2px solid var(--warn) !important;outline-offset:2px;border-radius:4px;}

.link-btn{
  background:none;border:none;padding:0;font-family:'IBM Plex Sans',sans-serif;
  font-size:12.5px;font-weight:600;color:var(--brass-dark);cursor:pointer;
}
.link-btn:hover{text-decoration:underline;}
.link-btn:disabled{color:var(--slate);cursor:default;text-decoration:none;}

.product-entry{
  border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 16px;margin-bottom:12px;background:#FBFAF8;
}
.product-entry-header{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;
}
.product-entry-title{
  font-family:'Lora',serif;font-size:13px;font-weight:600;color:var(--ink-soft);
}
.remove-product-btn{
  background:none;border:none;color:var(--warn);font-size:12px;font-weight:600;cursor:pointer;padding:0;
}
.remove-product-btn:hover{text-decoration:underline;}

/* ---------- AI polish ---------- */
.polish-btn{
  background:none;border:1px solid var(--border);border-radius:var(--radius);
  padding:6px 12px;font-family:'IBM Plex Sans',sans-serif;font-size:12px;font-weight:600;
  color:var(--brass-dark);cursor:pointer;margin-top:4px;
}
.polish-btn:hover{background:#F7F5F0;}
.polish-btn:disabled{opacity:0.6;cursor:default;}
.polish-panel{margin-top:10px;display:none;}
.polish-panel.show{display:block;}
.polish-panel .polish-text{
  font-size:13px;line-height:1.5;background:#F7F5F0;border:1px solid var(--border);
  border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;white-space:pre-wrap;
}
.polish-panel .polish-actions{display:flex;gap:8px;}
.polish-panel .polish-actions button{
  font-family:'IBM Plex Sans',sans-serif;font-size:12px;font-weight:600;
  padding:6px 12px;border-radius:var(--radius);cursor:pointer;
}
.polish-use{background:var(--brass);color:#fff;border:none;}
.polish-use:hover{background:var(--brass-dark);}
.polish-discard{background:none;border:1px solid var(--border);color:var(--slate);}
.polish-note{font-size:12px;color:var(--slate);margin-top:8px;}
.polish-note.warn{color:var(--warn);}

/* ---------- 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 .letterhead{font-size:11px;line-height:1.55;margin:0 0 4px 0;}
#letterPage p{font-size:11px;line-height:1.55;margin:0 0 9px 0;}
#letterPage ul{font-size:11px;line-height:1.55;margin:0 0 9px 0;padding-left:22px;}
#letterPage ul li{margin-bottom:4px;}
#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 .closing{margin-top:18px;font-size:11px;}
#letterPage .sig-space{height:0.5in;}
#letterPage .contact-block{font-size:10px;color:#20242C;page-break-inside:avoid;break-inside:avoid;}
#letterPage .contact-block div{margin-bottom:2px;}
#letterPage .contact-block .name{font-weight:600;}

@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;}
}
