:root{color-scheme:light dark;--bg:#f5f5f0;--surface:#fff;--ink:#242d29;--muted:#616c66;--line:#d7ddd7;--accent:#235e47;--soft:#edf4ee;--error:#a23232}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:11px 17px;background:var(--surface);color:var(--ink);font-weight:600}
button:hover:not(:disabled){border-color:var(--accent);background:var(--soft)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}header{max-width:1120px;margin:auto;padding:30px 28px;display:flex;justify-content:space-between;align-items:center;gap:15px}
.brand{font-size:20px;font-weight:750;letter-spacing:-.7px}.badge{font-size:12px;border:1px solid var(--line);padding:5px 10px;border-radius:6px;color:var(--muted)}
main{max-width:1120px;margin:36px auto 70px;padding:0 28px;display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}h1{font-size:clamp(34px,4vw,48px);line-height:1.12;letter-spacing:-1.8px;margin:20px 0}h1 span{color:var(--accent)}p{color:var(--muted)}.intro p{max-width:340px}.intro small{display:block;color:var(--muted);margin-top:34px}
.steps{display:flex;gap:16px;padding:0;margin:0 0 30px;list-style:none;font-size:13px;color:var(--muted)}.steps li{display:flex;align-items:center;gap:7px}.steps b{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:50%}.steps [aria-current]{color:var(--accent);font-weight:700}.steps [aria-current] b{background:var(--accent);color:#fff;border-color:var(--accent)}
h2{font-size:25px;letter-spacing:-.6px;margin:0 0 5px}h3{font-size:16px;margin:0;overflow-wrap:anywhere}.lead{margin:0 0 24px;font-size:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px;margin:14px 0}.cardhead{display:flex;align-items:center;justify-content:space-between;gap:15px}.textbutton{border:0;background:transparent;padding:5px;color:var(--muted);font-size:13px}
label{display:block;font-weight:600;font-size:14px;margin:18px 0 7px}input,select{width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink)}input::placeholder{color:var(--muted)}.hint{font-size:12px;color:var(--muted);margin:7px 0 16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:20px}.row .primary{margin-left:auto}
.status{font-size:13px;color:var(--accent);margin-top:8px}.error{color:var(--error);font-size:14px;overflow-wrap:anywhere}.add{width:100%;border-style:dashed;background:transparent}.rule{border:0;border-top:1px solid var(--line);margin:25px 0}.summary{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.success{font-size:34px;color:var(--accent);margin-bottom:14px}.stage-note{max-width:1064px;margin:0 auto 30px;padding:18px 0;border-top:1px solid var(--line);font-size:13px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(prefers-color-scheme:dark){:root{--bg:#181e1b;--surface:#202923;--ink:#eef2ec;--muted:#adb9af;--line:#46534a;--accent:#367855;--soft:#2b3c30;--error:#ffaaaa}h1 span{color:#91c7a6}}
@media(max-width:760px){header{padding:18px 22px}main{display:block;margin:0 auto 40px;padding:0 22px}.intro{margin-bottom:22px}.intro h1{font-size:30px;line-height:1.12;margin:6px 0 12px;letter-spacing:-1px}.intro h1 br{display:none}.intro h1 span::before{content:' '}.intro p{margin:0;max-width:100%;font-size:14px}.intro small{display:none}.steps{gap:12px;margin-bottom:20px}.card{padding:18px}.row .primary{margin-left:0;flex:1}.stage-note{margin:0 22px 30px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}.card{animation:appear .2s ease-out}@keyframes appear{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}}

/* DEMO banner */
.demo-banner{
  background:#1f2937;color:#e5e7eb;font-size:13px;text-align:center;
  padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.12);
  letter-spacing:.2px;
}
