:root{--blue:#578796;--blue-deep:#3c5f6b;--blue-soft:#e4edf0;--blue-mist:#f1f5f7;--rose:#c97c86;--rose-soft:#f7e6e8;--ivory:#faf7f2;--text:#333;--text-muted:#6a6a6a;--border:#e9e2d8;--success:#5b8c5a;--error:#b5484d}*,:before,:after{box-sizing:border-box}html,body{background:var(--ivory);color:var(--text);margin:0;padding:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.5}.page{max-width:44rem;margin:0 auto;padding:2rem 1rem 4rem}.page--narrow{max-width:24rem}.title{margin:0 0 1rem;font-size:1.75rem;line-height:1.2}.stack{flex-direction:column;gap:1rem;display:flex}.muted{color:var(--text-muted)}.card{border:1px solid var(--border);background:#fff;border-radius:1rem;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.field{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.field input{font:inherit;border:1px solid var(--border);background:#fff;border-radius:.5rem;padding:.75rem}.error{color:var(--error);margin:0}.button{font:inherit;color:var(--blue-deep);border:1px solid var(--blue);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}.button--primary{color:#fff;background:var(--rose);border-color:var(--rose)}.button:disabled{opacity:.5;cursor:not-allowed}.button:focus-visible,.field input:focus-visible,.choice:focus-within{outline:2px solid var(--blue);outline-offset:2px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.toolbar .title{margin:0}.toolbar__actions{align-items:center;gap:.5rem;display:flex}.toolbar select{font:inherit;border:1px solid var(--border);background:#fff;border-radius:.5rem;padding:.5rem}.card__title{margin:0;font-size:1.15rem}.card p{margin:0}.meta{color:var(--text-muted);margin:0;font-size:.85rem}.ok{color:var(--success)}.score{color:var(--blue);flex-direction:column;align-items:center;padding:1rem 0;font-size:2.5rem;display:flex}.progress{width:100%;height:.25rem;accent-color:var(--rose)}.choices{border:0;flex-direction:column;gap:.5rem;margin:0;padding:0;display:flex}.choices legend{margin-bottom:.75rem;padding:0}.choice{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:.75rem;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.choice--selected{background:var(--blue-mist);border-color:var(--blue)}
