:root{--bg:#fff;--fg:#1a1a1a;--muted:#4a4a4a;--accent:#0b5cad;--soft:#f2f5f9;--line:#c8d0da}*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:18px/1.6 system-ui,Segoe UI,sans-serif}a{color:var(--accent)}
a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:3px solid #ffbf47;outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:9}
header,main,footer{max-width:46rem;margin:auto;padding:1rem 1.25rem}header{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:baseline;border-bottom:1px solid var(--line)}
nav a{margin-right:1rem}label{display:block;margin:.9rem 0 .2rem;font-weight:600}input,select,textarea{font:inherit;padding:.45rem;width:100%;border:1px solid #6b7785;border-radius:6px;background:#fff;color:var(--fg)}
input[type=color]{padding:.1rem;height:2.6rem}output,.result{display:block;margin:1.2rem 0;padding:1rem;background:var(--soft);border-radius:8px;font-size:1.2rem}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;padding:.6rem 1.1rem;border-radius:6px;font:inherit;font-weight:600;cursor:pointer}
.muted{color:var(--muted)}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));padding:0;list-style:none}.card{border:1px solid var(--line);border-radius:8px;padding:1rem}
fieldset{border:1px solid var(--line);border-radius:8px;margin:1rem 0}ul.plain{list-style:none;padding:0}label.inline{display:flex;gap:.5rem;font-weight:400;align-items:flex-start}label.inline input{width:1.2rem;height:1.2rem;margin-top:.35rem}
#preview{border:1px solid var(--line);border-radius:8px;padding:1rem;margin:1rem 0}#preview table{width:100%;border-collapse:collapse}#preview th,#preview td{border:1px solid #888;padding:.4rem;text-align:left}
@media print{body.pp *{visibility:hidden}body.pp #preview,body.pp #preview *{visibility:visible}body.pp #preview{position:absolute;left:0;top:0;width:100%;border:0}}
.preview{padding:1rem;border:1px solid var(--line);border-radius:8px;margin:1rem 0}textarea{min-height:14rem;font-family:ui-monospace,Consolas,monospace;font-size:.9rem}