*{box-sizing:border-box}body{margin:0;font:16px/1.55 system-ui,sans-serif;color:#1a1a2e;background:#fafafa}
header,main,footer{max-width:960px;margin:auto;padding:1rem 1.25rem}header{display:flex;justify-content:space-between;align-items:center}
header a{color:#1a1a2e;text-decoration:none;font-weight:700}nav a{margin-left:1rem;font-weight:500}
.hero{padding:2.5rem 0}.hero h1{font-size:2.3rem;line-height:1.15;margin:.2rem 0}.lead{font-size:1.15rem;color:#444}
.card{background:#fff;border:1px solid #ddd;border-radius:12px;padding:1.25rem;margin:1.25rem 0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
label{display:block;font-weight:600;margin:.6rem 0 .2rem}input,select,textarea{width:100%;padding:.6rem;border:1px solid #888;border-radius:8px;font:inherit}
textarea{min-height:140px;font-family:ui-monospace,monospace;font-size:13px}
.btn{display:inline-block;background:#3b2db8;color:#fff;border:0;border-radius:8px;padding:.7rem 1.2rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;margin-top:.8rem}
.btn.alt{background:#fff;color:#3b2db8;border:2px solid #3b2db8}.note{font-size:.88rem;color:#555}
.issue{border-left:4px solid #c0392b;padding:.4rem .8rem;margin:.5rem 0;background:#fff5f4}.issue.warn{border-color:#d68910;background:#fffaf0}.ok{border-left:4px solid #1e8449;padding:.4rem .8rem;background:#f2fbf5}
code{background:#eee;padding:0 .25rem;border-radius:4px;word-break:break-all}table{width:100%;border-collapse:collapse}td,th{padding:.4rem;border-bottom:1px solid #ddd;text-align:left}
#msg{font-weight:600;margin-top:.5rem}pre{white-space:pre-wrap;background:#fff;border:1px solid #ccc;padding:1rem;border-radius:8px}
