*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1d2330;background:#f7f8fa}
main{max-width:960px;margin:0 auto;padding:1rem 1.25rem 3rem}
.site-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;background:#fff;border-bottom:1px solid #e3e6eb}
.brand{font-weight:700;color:#1d2330;text-decoration:none}.by{color:#667}
h1{font-size:1.9rem;margin:.5rem 0}.lede{color:#445}
.privacy{background:#eaf6ee;border:1px solid #bfe3cb;padding:.6rem .8rem;border-radius:8px}
.drop{border:2px dashed #9aa5b5;border-radius:12px;padding:2rem;text-align:center;background:#fff;cursor:pointer}
.drop.over{border-color:#2d6cdf;background:#eef4ff}
.controls{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0;align-items:end}
.controls label{display:flex;flex-direction:column;font-size:.9rem;gap:.25rem}
select,button,.btn{font:inherit;padding:.45rem .8rem;border-radius:8px;border:1px solid #b8c0cc;background:#fff}
button.primary,.btn{background:#2d6cdf;color:#fff;border-color:#2d6cdf;text-decoration:none;display:inline-block;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
.preview{overflow:auto;max-height:420px;background:#fff;border:1px solid #e3e6eb;border-radius:8px}
.preview table{border-collapse:collapse;font-size:.85rem}.preview td,.preview th{border:1px solid #eee;padding:.25rem .5rem;white-space:nowrap}
.status{min-height:1.5em;color:#445}.status.err{color:#b00020}
.cta-card{margin:2rem 0;padding:1rem 1.25rem;background:#fff;border:1px solid #d7dde6;border-radius:12px}
.quiet{font-size:.9rem;color:#556}
.site-footer{border-top:1px solid #e3e6eb;padding:1rem 1.25rem;color:#667;font-size:.9rem;text-align:center}
.faq h3{font-size:1.05rem;margin-bottom:.2rem}
.hidden{display:none}
tr.bad td { background: #fdecea; }
