
:root{--green:#365b46;--ink:#273d32;--muted:#7c857b;--line:#e1e5db;--gold:#a98147}*{box-sizing:border-box}body{margin:0;background:#f7f8f2;color:var(--ink);font:14px Arial,sans-serif;background-image:radial-gradient(ellipse at 12% 20%,#e9eee088,transparent 45%),radial-gradient(ellipse at 90% 80%,#eee7d755,transparent 40%)}header{height:86px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:var(--green)}.logo{font:28px Georgia;letter-spacing:5px}.logo small{display:block;font:9px Arial;letter-spacing:2px;margin-top:7px;color:var(--muted)}.badge{font-size:11px;color:var(--gold);background:#f0ecdf;padding:9px 13px;border-radius:30px}main{max-width:620px;margin:35px auto;padding:0 20px}h1{font:35px Georgia;margin:13px 0;color:var(--ink)}h2{font:28px Georgia;margin:10px 0}h3{font:21px Georgia}p{color:var(--muted);line-height:1.7}.intro{text-align:center;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);text-transform:uppercase}.steps{display:flex;justify-content:center;gap:25px;margin:28px 0;color:#959b90;font-size:11px}.steps b{border-radius:50%;border:1px solid #d3d9cd;display:inline-grid;place-items:center;width:22px;height:22px;margin-right:7px}.steps .active{color:var(--green)}.steps .active b{background:var(--green);color:white;border-color:var(--green)}.card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:30px;box-shadow:0 20px 70px #344c2e08;animation:enter .35s ease}.switch{display:flex;background:#f1f3ec;padding:5px;border-radius:10px;margin:23px 0}.switch button{width:50%;padding:12px;border:0;background:transparent;border-radius:7px;color:var(--muted)}.switch .on{background:white;color:var(--green);box-shadow:0 2px 8px #00000008}button,input,select,textarea{font:inherit}button{cursor:pointer}.btn{background:var(--green);color:white;border:0;border-radius:9px;padding:15px 20px;width:100%;margin-top:23px}.secondary{background:white;color:var(--green);border:1px solid var(--line)}.link{background:none;border:0;color:var(--green);padding:5px;font-size:12px}label{display:block;font-size:12px;margin:18px 0 7px;color:#546550}input,select,textarea{width:100%;padding:13px;border:1px solid #dce1d5;border-radius:8px;color:var(--ink);background:#fff;outline:none}input:focus,textarea:focus,select:focus{border-color:#709264;box-shadow:0 0 0 3px #e9f0e4}input[aria-invalid=true]{border-color:#b65845}textarea{height:137px;resize:vertical;line-height:1.7}.cols{display:grid;grid-template-columns:1fr 1fr;gap:15px}.error{font-size:12px;color:#aa473c;line-height:1.5;margin-top:6px}.help{font-size:11px;color:var(--muted);line-height:1.7}.check{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:14px}.check input{width:auto}.row{display:flex;justify-content:space-between;align-items:center;gap:15px}.review{border-bottom:1px solid var(--line);padding:17px 0}.review small{color:var(--muted);font-size:11px;display:block;margin-bottom:7px}.review strong{font-weight:normal}.icon{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:#edf2e7;color:#66815a;font-size:22px;margin-bottom:20px}.note{background:#f4f6ee;border-radius:9px;padding:13px 15px;font-size:12px;color:#6c7b60;line-height:1.7;margin-top:20px}.ring{width:174px;height:174px;position:relative;margin:26px auto}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:5}.ring .track{stroke:#edf0e7}.ring .value{stroke:#6e8d5b;stroke-linecap:round;stroke-dasharray:477.5;transition:stroke-dashoffset .6s}.ringtext{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ringtext b{font:39px Georgia}.ringtext small{font-size:10px;margin-top:7px;color:var(--muted)}.stage{display:flex;gap:13px;padding:13px 0;color:#a0a59b;font-size:13px}.stage .mark{width:22px;height:22px;border:1px solid #dfe4d7;border-radius:50%;display:grid;place-items:center;font-size:11px}.stage.done{color:#5f7750}.stage.current{color:var(--ink)}.stage.current .mark{border:2px solid #769564;border-top-color:transparent;animation:spin 1.4s linear infinite}.stage.done .mark{background:#edf2e7;border-color:#edf2e7}.center{text-align:center}.foot{text-align:center;font-size:11px;color:#92988d;line-height:1.8;margin:23px auto}.demo-controls{display:flex;justify-content:center;gap:15px;margin-top:20px}.demo-controls button{font-size:11px;background:none;border:0;color:#89917f;text-decoration:underline}.success{background:#eaf1e2;font-size:34px;width:75px;height:75px;border-radius:50%;display:grid;place-items:center;margin:10px auto 22px}.pill{display:inline-block;background:#f0f3e9;padding:7px 11px;border-radius:20px;font-size:11px;color:#6d805e;margin-top:9px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:550px){main{margin:25px auto}.card{padding:23px}.steps{gap:12px;font-size:10px}h1{font-size:30px}.cols{grid-template-columns:1fr}.badge{font-size:9px}}
.clarify{background:#fff6c8;border:1px solid #dfca63;border-radius:13px;padding:17px;margin:20px 0}.clarify h3{font:17px Arial;margin:0 0 8px}.clarify p{font-size:12px;margin:0 0 12px}.choice-row{display:flex;gap:10px;flex-wrap:wrap}.choice-row .btn{flex:1;font-size:11px;margin:0;min-width:170px}.btn:disabled{opacity:.45;cursor:not-allowed}
.approved-inline-0{display:flex;align-items:center;gap:18px;font-size:12px}

.approved-birth header nav{display:flex;align-items:center;gap:22px;font-size:12px}.approved-birth a.btn{display:flex;align-items:center;justify-content:center;width:100%;text-decoration:none;margin-top:14px}.approved-birth .foot{line-height:1.8}

/* Progress is part of document flow, above its own scrollable checklist. */
.generation-progress{position:relative;flex-shrink:0}.generation-progress .ringtext{position:absolute;inset:0}
.generation-checklist{position:relative;max-height:340px;overflow-y:auto;overscroll-behavior:contain;padding:0 8px 0 0}.generation-checklist .stage{align-items:center;min-height:46px}.generation-checklist .mark{flex-shrink:0}.generation-complete{text-align:center;font-weight:600;color:var(--green)}@media(max-width:600px){.generation-checklist{max-height:34vh}}

/* Five stable stages fit without a scrolling checklist. */
.generation-checklist{max-height:none;overflow:visible;padding:0}.generation-checklist .stage{min-height:38px}@media(max-width:600px){.generation-checklist{max-height:none}}
