:root{color-scheme:dark;font-family:system-ui,sans-serif;background:#11151b;color:#edf2f7}body{margin:0;padding:32px 18px}main{max-width:510px;margin:5vh auto;padding:28px;background:#1c232d;border:1px solid #344252;border-radius:16px}.brand{font-size:12px;letter-spacing:.15em;color:#a8c5da}h1{font-size:29px}p{line-height:1.65}form{display:grid;gap:12px;margin:28px 0}input,button{box-sizing:border-box;width:100%;padding:14px;border-radius:8px;font:inherit}input{border:1px solid #71849b;background:#121820;color:#fff}button{background:#acd9cd;border:0;color:#10241f;cursor:pointer;font-weight:650}button:disabled{opacity:.5;cursor:default}.note{color:#aab7c8;font-size:13px}#status{font-weight:600}input:focus-visible,button:focus-visible{outline:3px solid #acd9cd;outline-offset:3px}
[hidden]{display:none!important}
main{transition:border-color .2s ease,box-shadow .2s ease}
main[data-state="pending"] #status{display:flex;align-items:center;gap:14px}
main[data-state="pending"] #status::before{content:"";display:block;width:22px;height:22px;flex-shrink:0;border:3px solid #344252;border-top-color:#acd9cd;border-radius:50%;animation:coffre-spin .85s linear infinite}
main[data-state="pending"] button:disabled{opacity:1;background:#344252;color:#edf2f7}
main[data-state="success"]{border-color:#7fe1b1;box-shadow:0 0 0 4px #7fe1b11a}
main[data-state="success"] #status{padding:22px;background:#15382c;color:#b8f5d5;border:1px solid #428d69;border-radius:12px;font-size:20px;line-height:1.55;animation:coffre-confirm .3s ease-out}
main[data-state="error"] #status{padding:18px;background:#392329;border:1px solid #b76c78;border-radius:12px;color:#ffd3d9}
.return-link{display:block;text-align:center;padding:14px;border-radius:8px;background:#acd9cd;color:#10241f;text-decoration:none;font-weight:650}
.return-link:focus-visible,#status:focus-visible{outline:3px solid #acd9cd;outline-offset:3px}
@keyframes coffre-spin{to{transform:rotate(360deg)}}
@keyframes coffre-confirm{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){main{transition:none}main[data-state="pending"] #status::before,main[data-state="success"] #status{animation:none}}
